1import{i,s as $,C as B,f as x,o as F,c as S,m as A,n as _,h as w}from"./index-QOKqwe_A.js";function E(o={}){const{liftAmount:s=8,stiffness:l=170,damping:d=26,mass:f=1}=o,t=i(null),r=i({y:0,scale:1}),e=i(!1);let a=null,n={y:0,scale:0},c={y:0,scale:1};const p=(v,m,u)=>{const b=(v-m)*l/100,M=u*d/100,k=(b-M)/f;return u+=k,m+=u,{current:m,velocity:u}},y=()=>{const v={y:e.value?-s:0,scale:e.value?1.02:1},m=p(v.y,c.y,n.y);c.y=m.current,n.y=m.velocity;const u=p(v.scale,c.scale,n.scale);c.scale=u.current,n.scale=u.velocity,r.value={y:c.y,scale:c.scale},Math.abs(n.y)<.01&&Math.abs(n.scale)<.001||(a=requestAnimationFrame(y))},g=()=>{e.value=!0,a&&cancelAnimationFrame(a),a=requestAnimationFrame(y)},h=()=>{e.value=!1,a&&cancelAnimationFrame(a),a=requestAnimationFrame(y)};return $(()=>{t.value&&(t.value.addEventListener("mouseenter",g),t.value.addEventListener("mouseleave",h))}),B(()=>{t.value&&(t.value.removeEventListener("mouseenter",g),t.value.removeEventListener("mouseleave",h)),a&&cancelAnimationFrame(a)}),{elementRef:t,transform:r,style:()=>({transform:`translateY(${r.value.y}px) scale(${r.value.scale})`,transition:"box-shadow 150ms ease-out"})}}function L(o={}){const{maxRotation:s=.5,maxOffset:l=2,seed:d=Math.random()}=o,f=i(null),t=i({rotate:0,x:0,y:0}),r=(e,a)=>{const n=Math.sin(d*9999)*1e4,c=n-Math.floor(n);return e+c*(a-e)};return $(()=>{t.value={rotate:r(-s,s),x:r(-l,l),y:r(-l,l)}}),{elementRef:f,transforms:t,style:()=>({transform:`rotate(${t.value.rotate}deg) translate(${t.value.x}px, ${t.value.y}px)`})}}const C={__name:"Card",props:{hoverable:{type:Boolean,default:!0},microBreak:{type:Boolean,default:!1},variant:{type:String,default:"default",validator:o=>["default","bordered","glass"].includes(o)},padding:{type:String,default:"md",validator:o=>["sm","md","lg","none"].includes(o)}},setup(o){const s=o,l=i(null),{transform:d}=s.hoverable?E():{transform:i({y:0,scale:1})},{transforms:f}=s.microBreak?L():{transforms:i({rotate:0,x:0,y:0})},t=x(()=>{const e="rounded-lg transition-all duration-300",a={default:"bg-white shadow-md hover:shadow-xl border border-stone-200",bordered:"bg-white border-2 border-stone-300 hover:border-amber-600",glass:"glass shadow-lg"},n={none:"",sm:"p-4",md:"p-6",lg:"p-8"};return`${e} ${a[s.variant]} ${n[s.padding]}`}),r=x(()=>{const e={};if(s.hoverable&&(e.transform=`translateY(${d.value.y}px) scale(${d.value.scale})`),s.microBreak){const a=e.transform||"";e.transform=`${a} rotate(${f.value.rotate}deg)`.trim()}return e});return(e,a)=>(F(),S("div",{ref_key:"cardRef",ref:l,class:_(t.value),style:w(r.value)},[A(e.$slots,"default")],6))}};export{C as _};
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.