PageSourceSearch

https://formation-plongee-elearning.lovable.app/assets/CourseCard-BAMySP00.js

js formation-plongee-elearning.lovable.app collected 2026-10-03 03:31:48 UTC 3,406 bytes, 1 lines download raw bytes

1import{l as e,n as t,r as n}from"./i18n-Cc0HG6Co.js";import{c as r}from"./Layout-CB8FiGaL.js";import{n as i,r as a,t as o}from"./analytics-DaSGxf_N.js";import{n as s,t as c}from"./list-checks-cZ_UTYd_.js";var l=r(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),u=e();function d({course:e}){let{t:r,lang:d}=t();return(0,u.jsxs)(`article`,{className:`group flex flex-col overflow-hidden rounded-2xl border border-border bg-card shadow-sm transition hover:-translate-y-1 hover:shadow-xl`,children:[(0,u.jsxs)(`div`,{className:`relative aspect-[16/10] overflow-hidden`,children:[(0,u.jsx)(`img`,{src:e.image,alt:e.title[d],loading:`lazy`,className:`h-full w-full object-cover transition duration-500 group-hover:scale-105`}),e.levelKey&&(0,u.jsx)(`div`,{className:`absolute left-3 top-3 rounded-full bg-accent/95 px-3 py-1 text-xs font-semibold text-accent-foreground`,children:r(e.levelKey)}),e.free&&(0,u.jsx)(`div`,{className:`absolute right-3 top-3 rounded-full bg-primary px-3 py-1 text-xs font-bold text-primary-foreground`,children:r(`free`)})]}),(0,u.jsxs)(`div`,{className:`flex flex-1 flex-col p-6`,children:[(0,u.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-widest text-primary`,children:r(`ebookPdf`)}),(0,u.jsx)(`h3`,{className:`mt-2 font-serif text-xl leading-snug text-foreground`,children:e.title[d]}),(0,u.jsx)(`p`,{className:`mt-3 text-sm leading-relaxed text-muted-foreground`,children:e.short[d]}),(e.pages||e.videos||e.quizzes)&&(0,u.jsxs)(`div`,{className:`mt-5 flex flex-wrap gap-x-5 gap-y-1 text-xs text-muted-foreground`,children:[e.pages?(0,u.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,u.jsx)(l,{className:`h-3.5 w-3.5`}),e.pages,` `,r(`pages`)]}):null,e.videos?(0,u.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,u.jsx)(s,{className:`h-3.5 w-3.5`}),e.videos,` `,r(`modules`)]}):null,e.quizzes?(0,u.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,u.jsx)(c,{className:`h-3.5 w-3.5`}),e.quizzes,` `,r(`quizzes`)]}):null]}),(0,u.jsx)(`div`,{className:`mt-5 flex items-end justify-between`,children:(0,u.jsxs)(`div`,{children:[(0,u.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:r(`price`)}),(0,u.jsx)(`div`,{className:`font-serif text-2xl font-bold text-foreground`,children:e.free?r(`free`):e.price})]})}),(0,u.jsxs)(`div`,{className:`mt-6 flex flex-col gap-2 sm:flex-row`,children:[(0,u.jsxs)(n,{to:`/formation/$slug`,params:{slug:e.slug},className:`inline-flex flex-1 items-center justify-center gap-1.5 rounded-md border border-border bg-background px-4 py-2.5 text-sm font-semibold text-foreground transition hover:bg-secondary`,children:[r(`cardMore`),` `,(0,u.jsx)(a,{className:`h-4 w-4`})]}),(0,u.jsxs)(`a`,{href:e.orderLinks[d],target:`_blank`,rel:`noopener noreferrer`,onClick:()=>o(`course_order_click`,{slug:e.slug,lang:d,location:`card`}),className:`inline-flex flex-1 items-center justify-center gap-1.5 rounded-md bg-primary px-4 py-2.5 text-sm font-semibold text-primary-foreground transition hover:opacity-90`,children:[(0,u.jsx)(i,{className:`h-4 w-4`}),r(`cardBuy`)]})]})]})]})}export{d as t};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.