@stlhorizon/vue-ui 1.2.6 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1098,11 +1098,11 @@ const Ue = {
1098
1098
  emits: ["click"],
1099
1099
  setup(e, { emit: s }) {
1100
1100
  const t = e, l = u(() => t.to && !t.href ? "router-link" : t.href || t.external ? "a" : "button"), n = u(() => `w-4 h-4 ${t.iconPosition === "left" ? "mr-2" : "ml-2"}`), i = x(
1101
- "transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 inline-flex items-center",
1101
+ "transition-colors duration-200 inline-flex items-center",
1102
1102
  {
1103
1103
  variants: {
1104
1104
  variant: {
1105
- primary: "text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300",
1105
+ primary: "text-blue-800 hover:text-blue-800 dark:text-blue-500 dark:hover:text-blue-400",
1106
1106
  secondary: "text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-300",
1107
1107
  muted: "text-gray-500 hover:text-gray-700 dark:text-gray-500 dark:hover:text-gray-400",
1108
1108
  danger: "text-red-600 hover:text-red-800 dark:text-red-400 dark:hover:text-red-300",
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@
30
30
  <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor">
31
31
  <path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14" />
32
32
  </svg>
33
- `},n=t,r=l,s=e.ref(null),i=e.computed(()=>n.id||e.useId()),u=e.computed(()=>Array.isArray(n.modelValue)?n.modelValue.includes(n.value):n.modelValue),v=b=>{const g=b.target.checked;if(Array.isArray(n.modelValue)){const C=[...n.modelValue];if(g)C.push(n.value);else{const V=C.indexOf(n.value);V>-1&&C.splice(V,1)}r("update:modelValue",C)}else r("update:modelValue",g);r("change",g)},p=()=>{!n.disabled&&s.value&&s.value.click()},x=e.computed(()=>{if(n.error)return`${i.value}-error`}),y=e.computed(()=>({sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6"})[n.size]);e.computed(()=>({default:"border-slate-300 text-blue-600 focus:ring-blue-500",error:"border-red-300 text-red-600 focus:ring-red-500"})[n.variant]);const N=e.computed(()=>["absolute inset-0 w-full h-full opacity-0 cursor-pointer",{"cursor-not-allowed":n.disabled}]),h=e.computed(()=>["flex items-center justify-center rounded border-2 transition-all duration-200","cursor-pointer select-none",y.value,{"bg-blue-600 border-blue-600 text-white":u.value&&!n.disabled&&n.variant==="default","bg-red-600 border-red-600 text-white":u.value&&!n.disabled&&n.variant==="error","bg-slate-200 border-slate-300 text-slate-400":u.value&&n.disabled,"bg-white border-slate-300 hover:border-slate-400":!u.value&&!n.disabled&&n.variant==="default","bg-white border-red-300 hover:border-red-400":!u.value&&!n.disabled&&n.variant==="error","bg-slate-50 border-slate-200":!u.value&&n.disabled,"cursor-not-allowed":n.disabled,"focus-within:ring-2 focus-within:ring-offset-2":!n.disabled,"focus-within:ring-blue-500":!n.disabled&&n.variant==="default","focus-within:ring-red-500":!n.disabled&&n.variant==="error"}]),f=e.computed(()=>["text-sm font-medium cursor-pointer select-none",{"text-slate-900":!n.disabled,"text-slate-500":n.disabled}]),d=e.computed(()=>["text-xs text-slate-500 mt-1"]);return e.watch(()=>n.indeterminate,b=>{s.value&&(s.value.indeterminate=b)},{immediate:!0}),(b,g)=>(e.openBlock(),e.createElementBlock("div",yt,[e.createElementVNode("div",xt,[e.createElementVNode("input",{id:i.value,ref_key:"checkboxRef",ref:s,type:"checkbox",checked:u.value,indeterminate:t.indeterminate,disabled:t.disabled,required:t.required,class:e.normalizeClass(N.value),"aria-describedby":x.value,onChange:v},null,42,Ct),e.createElementVNode("div",{class:e.normalizeClass(h.value),onClick:p},[u.value&&!t.indeterminate?(e.openBlock(),e.createBlock(a,{key:0,class:"w-3 h-3"})):t.indeterminate?(e.openBlock(),e.createBlock(o,{key:1,class:"w-3 h-3"})):e.createCommentVNode("",!0)],2)]),e.createElementVNode("div",wt,[e.createElementVNode("label",{for:i.value,class:e.normalizeClass(f.value)},[e.renderSlot(b.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)])],10,Bt),t.description?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(d.value)},e.toDisplayString(t.description),3)):e.createCommentVNode("",!0)])]))}},Vt={key:0,class:"px-3 text-sm text-gray-500 bg-white dark:bg-gray-900 dark:text-gray-400 relative z-10"},ce={__name:"Divider",props:{orientation:{type:String,default:"horizontal",validator:t=>["horizontal","vertical"].includes(t)},size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},color:{type:String,default:"gray",validator:t=>["gray","primary","secondary"].includes(t)},faded:{type:Boolean,default:!1},label:{type:String,default:null},spacing:{type:String,default:null}},setup(t){const l=t,a=m.cva("divider relative flex items-center",{variants:{orientation:{horizontal:"w-full h-px flex items-center",vertical:"h-full w-px"},size:{sm:"",md:"",lg:""},color:{gray:"bg-gray-200 dark:bg-gray-700",primary:"bg-blue-500",secondary:"bg-gray-400"}},compoundVariants:[{orientation:"horizontal",size:"sm",class:"my-2"},{orientation:"horizontal",size:"md",class:"my-4"},{orientation:"horizontal",size:"lg",class:"my-6"},{orientation:"vertical",size:"sm",class:"mx-2"},{orientation:"vertical",size:"md",class:"mx-4"},{orientation:"vertical",size:"lg",class:"mx-6"}],defaultVariants:{orientation:"horizontal",size:"md",color:"gray"}}),o=e.computed(()=>l.spacing?l.spacing:"");return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(c)(e.unref(a)({orientation:t.orientation,size:t.size,color:t.color}),{"opacity-50":t.faded},o.value))},[t.label&&t.orientation==="horizontal"?(e.openBlock(),e.createElementBlock("span",Vt,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0)],2))}},St=["aria-label"],Nt={key:0,class:"sr-only"},J={__name:"Spinner",props:{size:{type:String,default:"md",validator:t=>["xs","sm","md","lg","xl"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","primary","secondary"].includes(t)},label:{type:String,default:"Loading..."},class:String},setup(t){const l=t,a=m.cva("inline-flex items-center justify-center",{variants:{variant:{default:"text-muted-foreground",primary:"text-primary",secondary:"text-secondary-foreground"}}}),o=m.cva("animate-spin",{variants:{size:{xs:"h-3 w-3",sm:"h-4 w-4",md:"h-6 w-6",lg:"h-8 w-8",xl:"h-12 w-12"}}}),n=e.computed(()=>c(a({variant:l.variant}),l.class)),r=e.computed(()=>o({size:l.size}));return(s,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.value),role:"status","aria-label":t.label},[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(r.value),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[...i[0]||(i[0]=[e.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e.createElementVNode("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])],2)),t.label?(e.openBlock(),e.createElementBlock("span",Nt,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0)],10,St))}},zt=["src","alt","loading"],de={__name:"Image",props:{src:{type:String,required:!0},alt:{type:String,default:""},aspectRatio:{type:String,default:"auto",validator:t=>["auto","square","16/9","4/3","3/2"].includes(t)},objectFit:{type:String,default:"cover",validator:t=>["cover","contain","fill","none","scale-down"].includes(t)},loading:{type:String,default:"lazy",validator:t=>["lazy","eager"].includes(t)},showSpinner:{type:Boolean,default:!0},class:String},emits:["load","error"],setup(t,{emit:l}){const a=t,o=l,n=e.ref(!0),r=e.ref(!1),s=m.cva("relative overflow-hidden bg-muted",{variants:{aspectRatio:{auto:"",square:"aspect-square","16/9":"aspect-video","4/3":"aspect-[4/3]","3/2":"aspect-[3/2]"}}}),i=e.computed(()=>c(s({aspectRatio:a.aspectRatio}),a.class)),u=e.computed(()=>c("h-full w-full transition-opacity duration-300",{"object-cover":a.objectFit==="cover","object-contain":a.objectFit==="contain","object-fill":a.objectFit==="fill","object-none":a.objectFit==="none","object-scale-down":a.objectFit==="scale-down"},n.value&&"opacity-0",r.value&&"hidden")),v=e.computed(()=>"absolute inset-0 flex items-center justify-center bg-muted"),p=e.computed(()=>"absolute inset-0 flex flex-col items-center justify-center gap-2 bg-muted"),x=N=>{n.value=!1,r.value=!1,o("load",N)},y=N=>{n.value=!1,r.value=!0,o("error",N)};return(N,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createElementVNode("img",{src:t.src,alt:t.alt,class:e.normalizeClass(u.value),loading:t.loading,onLoad:x,onError:y},null,42,zt),n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(v.value)},[t.showSpinner?(e.openBlock(),e.createBlock(J,{key:0,size:"sm"})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(p.value)},[e.createVNode(L,{name:"ImageOff",class:"h-8 w-8 text-muted-foreground"}),h[0]||(h[0]=e.createElementVNode("span",{class:"text-sm text-muted-foreground"},"Failed to load image",-1))],2)):e.createCommentVNode("",!0)],2))}},Et={class:"relative"},$t={key:0,class:"absolute left-3 top-1/2 transform -translate-y-1/2 pointer-events-none"},Dt=["id","type","value","placeholder","disabled","readonly","required","autocomplete","aria-describedby","aria-invalid"],Tt={key:1,class:"absolute right-3 top-1/2 transform -translate-y-1/2"},Mt=["aria-label"],U={__name:"Input",props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text",validator:t=>["text","email","password","number","tel","url","search","date"].includes(t)},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","error","success"].includes(t)},iconLeft:{type:[String,Object],default:null},iconRight:{type:[String,Object],default:null},clearable:{type:Boolean,default:!1},clearLabel:{type:String,default:"Clear input"},autocomplete:{type:String,default:null},error:{type:String,default:null},id:{type:String,default:null}},emits:["update:modelValue","blur","focus","clear","keydown"],setup(t,{expose:l,emit:a}){const o=t,n=a,r=e.ref(null),s=e.computed(()=>o.id||e.useId()),i=g=>{n("update:modelValue",g.target.value)},u=g=>{n("blur",g)},v=g=>{n("focus",g)},p=g=>{n("keydown",g)},x=()=>{n("update:modelValue",""),n("clear"),r.value?.focus()},y=e.computed(()=>!!o.error||o.variant==="error"),N=e.computed(()=>{if(o.error)return`${s.value}-error`}),h=e.computed(()=>({sm:"px-3 py-1.5 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-3 text-base"})[o.size]),f=e.computed(()=>({default:"border-slate-300 focus:border-blue-500 focus:ring-blue-500",error:"border-red-300 focus:border-red-500 focus:ring-red-500",success:"border-green-300 focus:border-green-500 focus:ring-green-500"})[o.variant]),d=e.computed(()=>["text-slate-400",{sm:"w-4 h-4",md:"w-4 h-4",lg:"w-5 h-5"}[o.size]]),b=e.computed(()=>["block w-full rounded-lg border bg-white transition-colors duration-200","focus:outline-none focus:ring-2 focus:ring-offset-0","disabled:bg-slate-50 disabled:text-slate-500 disabled:cursor-not-allowed","placeholder:text-slate-400",h.value,f.value,{"pl-10":o.iconLeft,"pr-10":o.iconRight||o.clearable}]);return l({focus:()=>r.value?.focus(),blur:()=>r.value?.blur(),select:()=>r.value?.select()}),(g,C)=>(e.openBlock(),e.createElementBlock("div",Et,[t.iconLeft?(e.openBlock(),e.createElementBlock("div",$t,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconLeft),{class:e.normalizeClass(d.value)},null,8,["class"]))])):e.createCommentVNode("",!0),e.createElementVNode("input",{id:s.value,ref_key:"inputRef",ref:r,type:t.type,value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required,autocomplete:t.autocomplete,class:e.normalizeClass(b.value),"aria-describedby":N.value,"aria-invalid":y.value,onInput:i,onBlur:u,onFocus:v,onKeydown:p},null,42,Dt),t.iconRight||t.clearable?(e.openBlock(),e.createElementBlock("div",Tt,[t.clearable&&t.modelValue&&!t.disabled?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:x,class:"text-slate-400 hover:text-slate-600 transition-colors",type:"button","aria-label":t.clearLabel},[e.createVNode(L,{name:"x-mark",class:"w-5 h-5"})],8,Mt)):t.iconRight?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconRight),{key:1,class:e.normalizeClass(d.value)},null,8,["class"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}},Lt=["for"],ee={__name:"Label",props:{htmlFor:String,size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},required:Boolean,disabled:Boolean,class:String},setup(t){const l=t,a=m.cva("font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",{variants:{size:{sm:"text-sm",md:"text-sm",lg:"text-base"}}}),o=e.computed(()=>c(a({size:l.size}),l.disabled&&"cursor-not-allowed opacity-70",l.class));return(n,r)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(o.value),for:t.htmlFor},[e.renderSlot(n.$slots,"default")],10,Lt))}},ue={__name:"Link",props:{href:{type:String,default:null},to:{type:[String,Object],default:null},external:{type:Boolean,default:!1},target:{type:String,default:null},rel:{type:String,default:null},variant:{type:String,default:"primary",validator:t=>["primary","secondary","muted","danger","success"].includes(t)},size:{type:String,default:"md",validator:t=>["xs","sm","md","lg","xl"].includes(t)},underline:{type:String,default:"hover",validator:t=>["always","hover","never"].includes(t)},disabled:{type:Boolean,default:!1},icon:{type:String,default:null},iconPosition:{type:String,default:"left",validator:t=>["left","right"].includes(t)},showExternalIcon:{type:Boolean,default:!0},block:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:l}){const a=t,o=e.computed(()=>a.to&&!a.href?"router-link":a.href||a.external?"a":"button"),n=e.computed(()=>`w-4 h-4 ${a.iconPosition==="left"?"mr-2":"ml-2"}`),r=m.cva("transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 inline-flex items-center",{variants:{variant:{primary:"text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300",secondary:"text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-300",muted:"text-gray-500 hover:text-gray-700 dark:text-gray-500 dark:hover:text-gray-400",danger:"text-red-600 hover:text-red-800 dark:text-red-400 dark:hover:text-red-300",success:"text-green-600 hover:text-green-800 dark:text-green-400 dark:hover:text-green-300"},size:{xs:"text-xs",sm:"text-sm",md:"text-base",lg:"text-lg",xl:"text-xl"},underline:{always:"underline",hover:"hover:underline",never:"no-underline"},block:{true:"block w-full",false:"inline-flex items-center"},disabled:{true:"opacity-50 cursor-not-allowed pointer-events-none",false:"cursor-pointer"}},defaultVariants:{variant:"primary",size:"md",underline:"hover",block:!1,disabled:!1}}),s=u=>{if(a.disabled){u.preventDefault();return}i("click",u)},i=l;return(u,v)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{href:o.value==="a"?t.href:void 0,to:o.value==="router-link"?t.to:void 0,target:t.external?"_blank":t.target,rel:t.external?"noopener noreferrer":t.rel,class:e.normalizeClass(e.unref(c)(e.unref(r)({variant:t.variant,size:t.size,underline:t.underline,block:t.block,disabled:t.disabled}),u.$attrs.class)),onClick:s},{default:e.withCtx(()=>[t.icon&&t.iconPosition==="left"?(e.openBlock(),e.createBlock(L,{key:0,name:t.icon,class:e.normalizeClass(n.value)},null,8,["name","class"])):e.createCommentVNode("",!0),e.renderSlot(u.$slots,"default"),t.icon&&t.iconPosition==="right"?(e.openBlock(),e.createBlock(L,{key:1,name:t.icon,class:e.normalizeClass(n.value)},null,8,["name","class"])):e.createCommentVNode("",!0),t.external&&t.showExternalIcon?(e.openBlock(),e.createBlock(L,{key:2,name:"external-link",class:"w-3 h-3 ml-1 inline-block"})):e.createCommentVNode("",!0)]),_:3},8,["href","to","target","rel","class"]))}},It=["src","alt"],me={__name:"Logo",props:{src:String,alt:String,text:String,size:{type:String,default:"md",validator:t=>["sm","md","lg","xl"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","minimal"].includes(t)},class:String},setup(t){const l=t,a=m.cva("flex items-center",{variants:{size:{sm:"h-6",md:"h-8",lg:"h-10",xl:"h-12"}}}),o=e.computed(()=>c(a({size:l.size}),l.class)),n=e.computed(()=>c("h-full w-auto object-contain")),r=e.computed(()=>c("font-bold text-foreground",{"text-lg":l.size==="sm","text-xl":l.size==="md","text-2xl":l.size==="lg","text-3xl":l.size==="xl"}));return(s,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value)},[t.src?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.src,alt:t.alt||"Logo",class:e.normalizeClass(n.value)},null,10,It)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(r.value)},e.toDisplayString(t.text||"Logo"),3))],2))}},jt=["value","disabled","selected"],te={__name:"Option",props:{value:{type:[String,Number,Boolean],required:!0},label:{type:String,default:""},disabled:{type:Boolean,default:!1},selected:{type:Boolean,default:!1}},setup(t){return(l,a)=>(e.openBlock(),e.createElementBlock("option",{value:t.value,disabled:t.disabled,selected:t.selected},[e.renderSlot(l.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)])],8,jt))}},At=["aria-valuenow"],fe={__name:"ProgressBar",props:{value:{type:Number,default:0},max:{type:Number,default:100},size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","success","warning","destructive"].includes(t)},showLabel:Boolean,class:String},setup(t){const l=t,a=e.computed(()=>{const u=l.value/l.max*100;return Math.min(Math.max(u,0),100)}),o=m.cva("relative w-full overflow-hidden rounded-full bg-secondary",{variants:{size:{sm:"h-2",md:"h-3",lg:"h-4"}}}),n=m.cva("h-full w-full flex-1 transition-all duration-300 ease-in-out",{variants:{variant:{default:"bg-primary",success:"bg-green-500",warning:"bg-yellow-500",destructive:"bg-destructive"}}}),r=e.computed(()=>c(o({size:l.size}),l.class)),s=e.computed(()=>n({variant:l.variant})),i=e.computed(()=>"absolute inset-0 flex items-center justify-center text-xs font-medium text-primary-foreground");return(u,v)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(r.value)},[e.createElementVNode("div",{class:e.normalizeClass(s.value),style:e.normalizeStyle({width:`${a.value}%`}),role:"progressbar","aria-valuenow":a.value,"aria-valuemin":0,"aria-valuemax":100},null,14,At),t.showLabel?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(i.value)},e.toDisplayString(a.value)+"% ",3)):e.createCommentVNode("",!0)],2))}},Ft={class:"flex items-center space-x-2"},Pt=["aria-checked","disabled"],ve={__name:"Radio",props:{modelValue:null,value:{required:!0},label:String,disabled:Boolean,size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},class:String},emits:["update:modelValue"],setup(t,{emit:l}){const a=t,o=l,n=e.computed(()=>a.modelValue===a.value),r=m.cva("aspect-square rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",{variants:{size:{sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"}}}),s=e.computed(()=>c(r({size:a.size}),a.disabled&&"cursor-not-allowed opacity-50",a.class)),i=e.computed(()=>c("flex items-center justify-center rounded-full bg-primary",{"h-2 w-2":a.size==="sm","h-2.5 w-2.5":a.size==="md","h-3 w-3":a.size==="lg"})),u=e.computed(()=>c("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",!a.disabled&&"cursor-pointer")),v=()=>{a.disabled||o("update:modelValue",a.value)};return(p,x)=>(e.openBlock(),e.createElementBlock("div",Ft,[e.createElementVNode("button",{type:"button",role:"radio","aria-checked":n.value,disabled:t.disabled,class:e.normalizeClass(s.value),onClick:v},[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(i.value)},null,2)):e.createCommentVNode("",!0)],10,Pt),t.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(u.value),onClick:v},e.toDisplayString(t.label),3)):e.createCommentVNode("",!0)]))}},_t=["value","disabled"],X={__name:"Select",props:{modelValue:{type:[String,Number,Boolean],default:""},disabled:{type:Boolean,default:!1},class:String},emits:["update:modelValue"],setup(t){const l=t,a=m.cva("border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm min-w-[60px] focus:border-transparent",{variants:{disabled:{true:"bg-gray-100 cursor-not-allowed opacity-50",false:"bg-white hover:border-slate-400"}}}),o=e.computed(()=>c(a({disabled:l.disabled}),"px-3 py-2",l.class));return(n,r)=>(e.openBlock(),e.createElementBlock("select",e.mergeProps({value:t.modelValue,onChange:r[0]||(r[0]=s=>n.$emit("update:modelValue",s.target.value)),disabled:t.disabled,class:o.value},n.$attrs),[e.renderSlot(n.$slots,"default")],16,_t))}},Rt=["aria-checked","disabled"],pe={__name:"Switch",props:{modelValue:Boolean,disabled:Boolean,size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},class:String},emits:["update:modelValue"],setup(t,{emit:l}){const a=t,o=l,n=m.cva("peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",{variants:{size:{sm:"h-5 w-9",md:"h-6 w-11",lg:"h-7 w-12"},checked:{true:"bg-primary",false:"bg-input"}}}),r=m.cva("pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform",{variants:{size:{sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},checked:{true:"",false:""}},compoundVariants:[{size:"sm",checked:!0,class:"translate-x-4"},{size:"sm",checked:!1,class:"translate-x-0"},{size:"md",checked:!0,class:"translate-x-5"},{size:"md",checked:!1,class:"translate-x-0"},{size:"lg",checked:!0,class:"translate-x-5"},{size:"lg",checked:!1,class:"translate-x-0"}]}),s=e.computed(()=>c(n({size:a.size,checked:a.modelValue}),a.class)),i=e.computed(()=>r({size:a.size,checked:a.modelValue})),u=()=>{a.disabled||o("update:modelValue",!a.modelValue)};return(v,p)=>(e.openBlock(),e.createElementBlock("button",{type:"button",role:"switch","aria-checked":t.modelValue,disabled:t.disabled,class:e.normalizeClass(s.value),onClick:u},[e.createElementVNode("span",{class:e.normalizeClass(i.value)},null,2)],10,Rt))}},ge={__name:"Text",props:{as:{type:String,default:"p"},size:{type:String,default:"md",validator:t=>["xs","sm","md","lg","xl"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","muted","destructive"].includes(t)},weight:{type:String,default:"normal",validator:t=>["normal","medium","semibold","bold"].includes(t)},align:{type:String,default:"left",validator:t=>["left","center","right","justify"].includes(t)},class:String},setup(t){const l=t,a=m.cva("leading-relaxed",{variants:{size:{xs:"text-xs",sm:"text-sm",md:"text-base",lg:"text-lg",xl:"text-xl"},variant:{default:"text-foreground",muted:"text-muted-foreground",destructive:"text-destructive"},weight:{normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold"},align:{left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"}}}),o=e.computed(()=>c(a({size:l.size,variant:l.variant,weight:l.weight,align:l.align}),l.class));return(n,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.as),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class"]))}},qt=["id","value","placeholder","disabled","readonly","required","rows","maxlength","aria-describedby","aria-invalid"],he={__name:"Textarea",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},rows:{type:Number,default:3},maxlength:{type:Number,default:null},resize:{type:String,default:"vertical",validator:t=>["none","vertical","horizontal","both"].includes(t)},autoResize:{type:Boolean,default:!1},size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","error","success"].includes(t)},error:{type:String,default:null},id:{type:String,default:null}},emits:["update:modelValue","blur","focus","keydown"],setup(t,{expose:l,emit:a}){const o=t,n=a,r=e.ref(null),s=e.computed(()=>o.id||e.useId()),i=d=>{n("update:modelValue",d.target.value),o.autoResize&&e.nextTick(()=>f())},u=d=>n("blur",d),v=d=>n("focus",d),p=d=>n("keydown",d),x=e.computed(()=>!!o.error||o.variant==="error"),y=e.computed(()=>o.error?`${s.value}-error`:void 0),N=m.cva("block w-full rounded-lg border transition-colors duration-200 placeholder:text-slate-400 focus:outline-none focus:ring-2 focus:ring-offset-0 disabled:bg-slate-50 disabled:text-slate-500 disabled:cursor-not-allowed",{variants:{size:{sm:"px-3 py-1.5 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-3 text-base"},variant:{default:"border-slate-300 focus:border-blue-500 focus:ring-blue-500",error:"border-red-300 focus:border-red-500 focus:ring-red-500",success:"border-green-300 focus:border-green-500 focus:ring-green-500"},resize:{none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"}},defaultVariants:{size:"md",variant:"default",resize:"vertical"}}),h=e.computed(()=>c(N({size:o.size,variant:o.variant,resize:o.resize}))),f=()=>{if(!r.value||!o.autoResize)return;const d=r.value;d.style.height="auto",d.style.height=`${d.scrollHeight}px`};return e.watch(()=>o.modelValue,()=>{o.autoResize&&e.nextTick(()=>f())},{immediate:!0}),l({focus:()=>r.value?.focus(),blur:()=>r.value?.blur(),select:()=>r.value?.select()}),(d,b)=>(e.openBlock(),e.createElementBlock("textarea",{id:s.value,ref_key:"textareaRef",ref:r,value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required,rows:t.rows,maxlength:t.maxlength,class:e.normalizeClass(h.value),"aria-describedby":y.value,"aria-invalid":x.value,onInput:i,onBlur:u,onFocus:v,onKeydown:p},null,42,qt))}},be={__name:"Tooltip",props:{content:{type:String,required:!0},placement:{type:String,default:"top",validator:t=>["top","bottom","left","right"].includes(t)},delay:{type:Number,default:0},class:String},setup(t){const l=t,a=e.ref(!1);let o=null;const n=m.cva("absolute z-50 px-3 py-1.5 text-sm text-primary-foreground bg-primary rounded-md shadow-md pointer-events-none whitespace-nowrap",{variants:{placement:{top:"bottom-full left-1/2 transform -translate-x-1/2 mb-2",bottom:"top-full left-1/2 transform -translate-x-1/2 mt-2",left:"right-full top-1/2 transform -translate-y-1/2 mr-2",right:"left-full top-1/2 transform -translate-y-1/2 ml-2"}}}),r=m.cva("absolute w-2 h-2 bg-primary transform rotate-45",{variants:{placement:{top:"top-full left-1/2 transform -translate-x-1/2 -mt-1",bottom:"bottom-full left-1/2 transform -translate-x-1/2 -mb-1",left:"left-full top-1/2 transform -translate-y-1/2 -ml-1",right:"right-full top-1/2 transform -translate-y-1/2 -mr-1"}}}),s=e.computed(()=>c(n({placement:l.placement}),l.class)),i=e.computed(()=>r({placement:l.placement})),u=()=>{o&&clearTimeout(o),o=setTimeout(()=>{a.value=!0},l.delay)},v=()=>{o&&clearTimeout(o),a.value=!1};return(p,x)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-block",onMouseenter:u,onMouseleave:v},[e.renderSlot(p.$slots,"default"),e.createVNode(e.Transition,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(s.value),role:"tooltip"},[e.createTextVNode(e.toDisplayString(t.content)+" ",1),e.createElementVNode("div",{class:e.normalizeClass(i.value)},null,2)],2)):e.createCommentVNode("",!0)]),_:1})],32))}},Q={__name:"Typography",props:{variant:{type:String,default:"body-md",validator:t=>["body-xs","body-sm","body-md","body-lg","text-xs","text-sm","text-md","text-lg","display-sm","display-md","display-lg","caption","overline"].includes(t)},color:{type:String,default:"default",validator:t=>["default","primary","secondary","success","warning","danger","muted"].includes(t)},align:{type:String,default:"left",validator:t=>["left","center","right","justify"].includes(t)},italic:Boolean,underline:Boolean,truncate:Boolean,noWrap:Boolean},setup(t){const l=t,a=e.computed(()=>({"body-xs":"p","body-sm":"p","body-md":"p","body-lg":"p","text-xs":"h6","text-sm":"h5","text-md":"h4","text-lg":"h3","display-sm":"h2","display-md":"h1","display-lg":"h1",caption:"span",overline:"span"})[l.variant]||"p"),o=e.computed(()=>({"body-xs":"text-xs leading-normal","body-sm":"text-sm leading-relaxed","body-md":"text-base leading-relaxed","body-lg":"text-lg leading-relaxed","text-xs":"text-md font-semibold leading-snug","text-sm":"text-xl font-semibold leading-snug","text-md":"text-2xl font-semibold leading-snug","text-lg":"text-3xl font-bold leading-snug","display-sm":"text-4xl font-bold leading-tight tracking-tight","display-md":"text-5xl font-bold leading-tight tracking-tight","display-lg":"text-6xl font-bold leading-tight tracking-tight",caption:"text-xs leading-normal",overline:"text-xs font-medium uppercase tracking-wider leading-normal"})[l.variant]),n=e.computed(()=>({default:"text-slate-900",primary:"text-blue-600",secondary:"text-slate-600",success:"text-green-600",warning:"text-yellow-600",danger:"text-red-600",muted:"text-slate-500"})[l.color]),r=e.computed(()=>({left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"})[l.align]),s=e.computed(()=>[o.value,n.value,r.value,{italic:l.italic,underline:l.underline,truncate:l.truncate,"whitespace-nowrap":l.noWrap}]);return(i,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{class:e.normalizeClass(s.value)},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class"]))}},Ht={class:"flex items-start gap-3"},Ot={key:0,class:"flex-shrink-0 mt-0.5"},Ut={class:"flex-1 min-w-0"},Zt={key:0,class:"font-medium text-sm mb-1"},Gt={key:1,class:"mt-3 flex gap-2"},Kt=["aria-label"],ke=Object.assign({inheritAttrs:!1},{__name:"Alert",props:{variant:{type:String,default:"info",validator:t=>["info","success","warning","error","default","destructive"].includes(t)},title:String,message:String,dismissible:{type:Boolean,default:!1},dismissLabel:{type:String,default:"Dismiss alert"},showIcon:{type:Boolean,default:!0},actions:{type:Array,default:()=>[]},autoClose:{type:[Boolean,Number],default:!1}},emits:["dismiss","action"],setup(t,{emit:l}){const a=t,o=l,n=e.ref(!0),r=()=>{n.value=!1,o("dismiss")},s=d=>{o("action",d),d.onClick&&d.onClick()};if(a.autoClose){const d=typeof a.autoClose=="number"?a.autoClose:5e3;setTimeout(r,d)}const i={template:`
33
+ `},n=t,r=l,s=e.ref(null),i=e.computed(()=>n.id||e.useId()),u=e.computed(()=>Array.isArray(n.modelValue)?n.modelValue.includes(n.value):n.modelValue),v=b=>{const g=b.target.checked;if(Array.isArray(n.modelValue)){const C=[...n.modelValue];if(g)C.push(n.value);else{const V=C.indexOf(n.value);V>-1&&C.splice(V,1)}r("update:modelValue",C)}else r("update:modelValue",g);r("change",g)},p=()=>{!n.disabled&&s.value&&s.value.click()},x=e.computed(()=>{if(n.error)return`${i.value}-error`}),y=e.computed(()=>({sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6"})[n.size]);e.computed(()=>({default:"border-slate-300 text-blue-600 focus:ring-blue-500",error:"border-red-300 text-red-600 focus:ring-red-500"})[n.variant]);const N=e.computed(()=>["absolute inset-0 w-full h-full opacity-0 cursor-pointer",{"cursor-not-allowed":n.disabled}]),h=e.computed(()=>["flex items-center justify-center rounded border-2 transition-all duration-200","cursor-pointer select-none",y.value,{"bg-blue-600 border-blue-600 text-white":u.value&&!n.disabled&&n.variant==="default","bg-red-600 border-red-600 text-white":u.value&&!n.disabled&&n.variant==="error","bg-slate-200 border-slate-300 text-slate-400":u.value&&n.disabled,"bg-white border-slate-300 hover:border-slate-400":!u.value&&!n.disabled&&n.variant==="default","bg-white border-red-300 hover:border-red-400":!u.value&&!n.disabled&&n.variant==="error","bg-slate-50 border-slate-200":!u.value&&n.disabled,"cursor-not-allowed":n.disabled,"focus-within:ring-2 focus-within:ring-offset-2":!n.disabled,"focus-within:ring-blue-500":!n.disabled&&n.variant==="default","focus-within:ring-red-500":!n.disabled&&n.variant==="error"}]),f=e.computed(()=>["text-sm font-medium cursor-pointer select-none",{"text-slate-900":!n.disabled,"text-slate-500":n.disabled}]),d=e.computed(()=>["text-xs text-slate-500 mt-1"]);return e.watch(()=>n.indeterminate,b=>{s.value&&(s.value.indeterminate=b)},{immediate:!0}),(b,g)=>(e.openBlock(),e.createElementBlock("div",yt,[e.createElementVNode("div",xt,[e.createElementVNode("input",{id:i.value,ref_key:"checkboxRef",ref:s,type:"checkbox",checked:u.value,indeterminate:t.indeterminate,disabled:t.disabled,required:t.required,class:e.normalizeClass(N.value),"aria-describedby":x.value,onChange:v},null,42,Ct),e.createElementVNode("div",{class:e.normalizeClass(h.value),onClick:p},[u.value&&!t.indeterminate?(e.openBlock(),e.createBlock(a,{key:0,class:"w-3 h-3"})):t.indeterminate?(e.openBlock(),e.createBlock(o,{key:1,class:"w-3 h-3"})):e.createCommentVNode("",!0)],2)]),e.createElementVNode("div",wt,[e.createElementVNode("label",{for:i.value,class:e.normalizeClass(f.value)},[e.renderSlot(b.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)])],10,Bt),t.description?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(d.value)},e.toDisplayString(t.description),3)):e.createCommentVNode("",!0)])]))}},Vt={key:0,class:"px-3 text-sm text-gray-500 bg-white dark:bg-gray-900 dark:text-gray-400 relative z-10"},ce={__name:"Divider",props:{orientation:{type:String,default:"horizontal",validator:t=>["horizontal","vertical"].includes(t)},size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},color:{type:String,default:"gray",validator:t=>["gray","primary","secondary"].includes(t)},faded:{type:Boolean,default:!1},label:{type:String,default:null},spacing:{type:String,default:null}},setup(t){const l=t,a=m.cva("divider relative flex items-center",{variants:{orientation:{horizontal:"w-full h-px flex items-center",vertical:"h-full w-px"},size:{sm:"",md:"",lg:""},color:{gray:"bg-gray-200 dark:bg-gray-700",primary:"bg-blue-500",secondary:"bg-gray-400"}},compoundVariants:[{orientation:"horizontal",size:"sm",class:"my-2"},{orientation:"horizontal",size:"md",class:"my-4"},{orientation:"horizontal",size:"lg",class:"my-6"},{orientation:"vertical",size:"sm",class:"mx-2"},{orientation:"vertical",size:"md",class:"mx-4"},{orientation:"vertical",size:"lg",class:"mx-6"}],defaultVariants:{orientation:"horizontal",size:"md",color:"gray"}}),o=e.computed(()=>l.spacing?l.spacing:"");return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(c)(e.unref(a)({orientation:t.orientation,size:t.size,color:t.color}),{"opacity-50":t.faded},o.value))},[t.label&&t.orientation==="horizontal"?(e.openBlock(),e.createElementBlock("span",Vt,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0)],2))}},St=["aria-label"],Nt={key:0,class:"sr-only"},J={__name:"Spinner",props:{size:{type:String,default:"md",validator:t=>["xs","sm","md","lg","xl"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","primary","secondary"].includes(t)},label:{type:String,default:"Loading..."},class:String},setup(t){const l=t,a=m.cva("inline-flex items-center justify-center",{variants:{variant:{default:"text-muted-foreground",primary:"text-primary",secondary:"text-secondary-foreground"}}}),o=m.cva("animate-spin",{variants:{size:{xs:"h-3 w-3",sm:"h-4 w-4",md:"h-6 w-6",lg:"h-8 w-8",xl:"h-12 w-12"}}}),n=e.computed(()=>c(a({variant:l.variant}),l.class)),r=e.computed(()=>o({size:l.size}));return(s,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.value),role:"status","aria-label":t.label},[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(r.value),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[...i[0]||(i[0]=[e.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e.createElementVNode("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])],2)),t.label?(e.openBlock(),e.createElementBlock("span",Nt,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0)],10,St))}},zt=["src","alt","loading"],de={__name:"Image",props:{src:{type:String,required:!0},alt:{type:String,default:""},aspectRatio:{type:String,default:"auto",validator:t=>["auto","square","16/9","4/3","3/2"].includes(t)},objectFit:{type:String,default:"cover",validator:t=>["cover","contain","fill","none","scale-down"].includes(t)},loading:{type:String,default:"lazy",validator:t=>["lazy","eager"].includes(t)},showSpinner:{type:Boolean,default:!0},class:String},emits:["load","error"],setup(t,{emit:l}){const a=t,o=l,n=e.ref(!0),r=e.ref(!1),s=m.cva("relative overflow-hidden bg-muted",{variants:{aspectRatio:{auto:"",square:"aspect-square","16/9":"aspect-video","4/3":"aspect-[4/3]","3/2":"aspect-[3/2]"}}}),i=e.computed(()=>c(s({aspectRatio:a.aspectRatio}),a.class)),u=e.computed(()=>c("h-full w-full transition-opacity duration-300",{"object-cover":a.objectFit==="cover","object-contain":a.objectFit==="contain","object-fill":a.objectFit==="fill","object-none":a.objectFit==="none","object-scale-down":a.objectFit==="scale-down"},n.value&&"opacity-0",r.value&&"hidden")),v=e.computed(()=>"absolute inset-0 flex items-center justify-center bg-muted"),p=e.computed(()=>"absolute inset-0 flex flex-col items-center justify-center gap-2 bg-muted"),x=N=>{n.value=!1,r.value=!1,o("load",N)},y=N=>{n.value=!1,r.value=!0,o("error",N)};return(N,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createElementVNode("img",{src:t.src,alt:t.alt,class:e.normalizeClass(u.value),loading:t.loading,onLoad:x,onError:y},null,42,zt),n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(v.value)},[t.showSpinner?(e.openBlock(),e.createBlock(J,{key:0,size:"sm"})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(p.value)},[e.createVNode(L,{name:"ImageOff",class:"h-8 w-8 text-muted-foreground"}),h[0]||(h[0]=e.createElementVNode("span",{class:"text-sm text-muted-foreground"},"Failed to load image",-1))],2)):e.createCommentVNode("",!0)],2))}},Et={class:"relative"},$t={key:0,class:"absolute left-3 top-1/2 transform -translate-y-1/2 pointer-events-none"},Dt=["id","type","value","placeholder","disabled","readonly","required","autocomplete","aria-describedby","aria-invalid"],Tt={key:1,class:"absolute right-3 top-1/2 transform -translate-y-1/2"},Mt=["aria-label"],U={__name:"Input",props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text",validator:t=>["text","email","password","number","tel","url","search","date"].includes(t)},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","error","success"].includes(t)},iconLeft:{type:[String,Object],default:null},iconRight:{type:[String,Object],default:null},clearable:{type:Boolean,default:!1},clearLabel:{type:String,default:"Clear input"},autocomplete:{type:String,default:null},error:{type:String,default:null},id:{type:String,default:null}},emits:["update:modelValue","blur","focus","clear","keydown"],setup(t,{expose:l,emit:a}){const o=t,n=a,r=e.ref(null),s=e.computed(()=>o.id||e.useId()),i=g=>{n("update:modelValue",g.target.value)},u=g=>{n("blur",g)},v=g=>{n("focus",g)},p=g=>{n("keydown",g)},x=()=>{n("update:modelValue",""),n("clear"),r.value?.focus()},y=e.computed(()=>!!o.error||o.variant==="error"),N=e.computed(()=>{if(o.error)return`${s.value}-error`}),h=e.computed(()=>({sm:"px-3 py-1.5 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-3 text-base"})[o.size]),f=e.computed(()=>({default:"border-slate-300 focus:border-blue-500 focus:ring-blue-500",error:"border-red-300 focus:border-red-500 focus:ring-red-500",success:"border-green-300 focus:border-green-500 focus:ring-green-500"})[o.variant]),d=e.computed(()=>["text-slate-400",{sm:"w-4 h-4",md:"w-4 h-4",lg:"w-5 h-5"}[o.size]]),b=e.computed(()=>["block w-full rounded-lg border bg-white transition-colors duration-200","focus:outline-none focus:ring-2 focus:ring-offset-0","disabled:bg-slate-50 disabled:text-slate-500 disabled:cursor-not-allowed","placeholder:text-slate-400",h.value,f.value,{"pl-10":o.iconLeft,"pr-10":o.iconRight||o.clearable}]);return l({focus:()=>r.value?.focus(),blur:()=>r.value?.blur(),select:()=>r.value?.select()}),(g,C)=>(e.openBlock(),e.createElementBlock("div",Et,[t.iconLeft?(e.openBlock(),e.createElementBlock("div",$t,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconLeft),{class:e.normalizeClass(d.value)},null,8,["class"]))])):e.createCommentVNode("",!0),e.createElementVNode("input",{id:s.value,ref_key:"inputRef",ref:r,type:t.type,value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required,autocomplete:t.autocomplete,class:e.normalizeClass(b.value),"aria-describedby":N.value,"aria-invalid":y.value,onInput:i,onBlur:u,onFocus:v,onKeydown:p},null,42,Dt),t.iconRight||t.clearable?(e.openBlock(),e.createElementBlock("div",Tt,[t.clearable&&t.modelValue&&!t.disabled?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:x,class:"text-slate-400 hover:text-slate-600 transition-colors",type:"button","aria-label":t.clearLabel},[e.createVNode(L,{name:"x-mark",class:"w-5 h-5"})],8,Mt)):t.iconRight?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconRight),{key:1,class:e.normalizeClass(d.value)},null,8,["class"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}},Lt=["for"],ee={__name:"Label",props:{htmlFor:String,size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},required:Boolean,disabled:Boolean,class:String},setup(t){const l=t,a=m.cva("font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",{variants:{size:{sm:"text-sm",md:"text-sm",lg:"text-base"}}}),o=e.computed(()=>c(a({size:l.size}),l.disabled&&"cursor-not-allowed opacity-70",l.class));return(n,r)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(o.value),for:t.htmlFor},[e.renderSlot(n.$slots,"default")],10,Lt))}},ue={__name:"Link",props:{href:{type:String,default:null},to:{type:[String,Object],default:null},external:{type:Boolean,default:!1},target:{type:String,default:null},rel:{type:String,default:null},variant:{type:String,default:"primary",validator:t=>["primary","secondary","muted","danger","success"].includes(t)},size:{type:String,default:"md",validator:t=>["xs","sm","md","lg","xl"].includes(t)},underline:{type:String,default:"hover",validator:t=>["always","hover","never"].includes(t)},disabled:{type:Boolean,default:!1},icon:{type:String,default:null},iconPosition:{type:String,default:"left",validator:t=>["left","right"].includes(t)},showExternalIcon:{type:Boolean,default:!0},block:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:l}){const a=t,o=e.computed(()=>a.to&&!a.href?"router-link":a.href||a.external?"a":"button"),n=e.computed(()=>`w-4 h-4 ${a.iconPosition==="left"?"mr-2":"ml-2"}`),r=m.cva("transition-colors duration-200 inline-flex items-center",{variants:{variant:{primary:"text-blue-800 hover:text-blue-800 dark:text-blue-500 dark:hover:text-blue-400",secondary:"text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-300",muted:"text-gray-500 hover:text-gray-700 dark:text-gray-500 dark:hover:text-gray-400",danger:"text-red-600 hover:text-red-800 dark:text-red-400 dark:hover:text-red-300",success:"text-green-600 hover:text-green-800 dark:text-green-400 dark:hover:text-green-300"},size:{xs:"text-xs",sm:"text-sm",md:"text-base",lg:"text-lg",xl:"text-xl"},underline:{always:"underline",hover:"hover:underline",never:"no-underline"},block:{true:"block w-full",false:"inline-flex items-center"},disabled:{true:"opacity-50 cursor-not-allowed pointer-events-none",false:"cursor-pointer"}},defaultVariants:{variant:"primary",size:"md",underline:"hover",block:!1,disabled:!1}}),s=u=>{if(a.disabled){u.preventDefault();return}i("click",u)},i=l;return(u,v)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{href:o.value==="a"?t.href:void 0,to:o.value==="router-link"?t.to:void 0,target:t.external?"_blank":t.target,rel:t.external?"noopener noreferrer":t.rel,class:e.normalizeClass(e.unref(c)(e.unref(r)({variant:t.variant,size:t.size,underline:t.underline,block:t.block,disabled:t.disabled}),u.$attrs.class)),onClick:s},{default:e.withCtx(()=>[t.icon&&t.iconPosition==="left"?(e.openBlock(),e.createBlock(L,{key:0,name:t.icon,class:e.normalizeClass(n.value)},null,8,["name","class"])):e.createCommentVNode("",!0),e.renderSlot(u.$slots,"default"),t.icon&&t.iconPosition==="right"?(e.openBlock(),e.createBlock(L,{key:1,name:t.icon,class:e.normalizeClass(n.value)},null,8,["name","class"])):e.createCommentVNode("",!0),t.external&&t.showExternalIcon?(e.openBlock(),e.createBlock(L,{key:2,name:"external-link",class:"w-3 h-3 ml-1 inline-block"})):e.createCommentVNode("",!0)]),_:3},8,["href","to","target","rel","class"]))}},It=["src","alt"],me={__name:"Logo",props:{src:String,alt:String,text:String,size:{type:String,default:"md",validator:t=>["sm","md","lg","xl"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","minimal"].includes(t)},class:String},setup(t){const l=t,a=m.cva("flex items-center",{variants:{size:{sm:"h-6",md:"h-8",lg:"h-10",xl:"h-12"}}}),o=e.computed(()=>c(a({size:l.size}),l.class)),n=e.computed(()=>c("h-full w-auto object-contain")),r=e.computed(()=>c("font-bold text-foreground",{"text-lg":l.size==="sm","text-xl":l.size==="md","text-2xl":l.size==="lg","text-3xl":l.size==="xl"}));return(s,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value)},[t.src?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.src,alt:t.alt||"Logo",class:e.normalizeClass(n.value)},null,10,It)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(r.value)},e.toDisplayString(t.text||"Logo"),3))],2))}},jt=["value","disabled","selected"],te={__name:"Option",props:{value:{type:[String,Number,Boolean],required:!0},label:{type:String,default:""},disabled:{type:Boolean,default:!1},selected:{type:Boolean,default:!1}},setup(t){return(l,a)=>(e.openBlock(),e.createElementBlock("option",{value:t.value,disabled:t.disabled,selected:t.selected},[e.renderSlot(l.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)])],8,jt))}},At=["aria-valuenow"],fe={__name:"ProgressBar",props:{value:{type:Number,default:0},max:{type:Number,default:100},size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","success","warning","destructive"].includes(t)},showLabel:Boolean,class:String},setup(t){const l=t,a=e.computed(()=>{const u=l.value/l.max*100;return Math.min(Math.max(u,0),100)}),o=m.cva("relative w-full overflow-hidden rounded-full bg-secondary",{variants:{size:{sm:"h-2",md:"h-3",lg:"h-4"}}}),n=m.cva("h-full w-full flex-1 transition-all duration-300 ease-in-out",{variants:{variant:{default:"bg-primary",success:"bg-green-500",warning:"bg-yellow-500",destructive:"bg-destructive"}}}),r=e.computed(()=>c(o({size:l.size}),l.class)),s=e.computed(()=>n({variant:l.variant})),i=e.computed(()=>"absolute inset-0 flex items-center justify-center text-xs font-medium text-primary-foreground");return(u,v)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(r.value)},[e.createElementVNode("div",{class:e.normalizeClass(s.value),style:e.normalizeStyle({width:`${a.value}%`}),role:"progressbar","aria-valuenow":a.value,"aria-valuemin":0,"aria-valuemax":100},null,14,At),t.showLabel?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(i.value)},e.toDisplayString(a.value)+"% ",3)):e.createCommentVNode("",!0)],2))}},Ft={class:"flex items-center space-x-2"},Pt=["aria-checked","disabled"],ve={__name:"Radio",props:{modelValue:null,value:{required:!0},label:String,disabled:Boolean,size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},class:String},emits:["update:modelValue"],setup(t,{emit:l}){const a=t,o=l,n=e.computed(()=>a.modelValue===a.value),r=m.cva("aspect-square rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",{variants:{size:{sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"}}}),s=e.computed(()=>c(r({size:a.size}),a.disabled&&"cursor-not-allowed opacity-50",a.class)),i=e.computed(()=>c("flex items-center justify-center rounded-full bg-primary",{"h-2 w-2":a.size==="sm","h-2.5 w-2.5":a.size==="md","h-3 w-3":a.size==="lg"})),u=e.computed(()=>c("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",!a.disabled&&"cursor-pointer")),v=()=>{a.disabled||o("update:modelValue",a.value)};return(p,x)=>(e.openBlock(),e.createElementBlock("div",Ft,[e.createElementVNode("button",{type:"button",role:"radio","aria-checked":n.value,disabled:t.disabled,class:e.normalizeClass(s.value),onClick:v},[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(i.value)},null,2)):e.createCommentVNode("",!0)],10,Pt),t.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(u.value),onClick:v},e.toDisplayString(t.label),3)):e.createCommentVNode("",!0)]))}},_t=["value","disabled"],X={__name:"Select",props:{modelValue:{type:[String,Number,Boolean],default:""},disabled:{type:Boolean,default:!1},class:String},emits:["update:modelValue"],setup(t){const l=t,a=m.cva("border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm min-w-[60px] focus:border-transparent",{variants:{disabled:{true:"bg-gray-100 cursor-not-allowed opacity-50",false:"bg-white hover:border-slate-400"}}}),o=e.computed(()=>c(a({disabled:l.disabled}),"px-3 py-2",l.class));return(n,r)=>(e.openBlock(),e.createElementBlock("select",e.mergeProps({value:t.modelValue,onChange:r[0]||(r[0]=s=>n.$emit("update:modelValue",s.target.value)),disabled:t.disabled,class:o.value},n.$attrs),[e.renderSlot(n.$slots,"default")],16,_t))}},Rt=["aria-checked","disabled"],pe={__name:"Switch",props:{modelValue:Boolean,disabled:Boolean,size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},class:String},emits:["update:modelValue"],setup(t,{emit:l}){const a=t,o=l,n=m.cva("peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",{variants:{size:{sm:"h-5 w-9",md:"h-6 w-11",lg:"h-7 w-12"},checked:{true:"bg-primary",false:"bg-input"}}}),r=m.cva("pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform",{variants:{size:{sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},checked:{true:"",false:""}},compoundVariants:[{size:"sm",checked:!0,class:"translate-x-4"},{size:"sm",checked:!1,class:"translate-x-0"},{size:"md",checked:!0,class:"translate-x-5"},{size:"md",checked:!1,class:"translate-x-0"},{size:"lg",checked:!0,class:"translate-x-5"},{size:"lg",checked:!1,class:"translate-x-0"}]}),s=e.computed(()=>c(n({size:a.size,checked:a.modelValue}),a.class)),i=e.computed(()=>r({size:a.size,checked:a.modelValue})),u=()=>{a.disabled||o("update:modelValue",!a.modelValue)};return(v,p)=>(e.openBlock(),e.createElementBlock("button",{type:"button",role:"switch","aria-checked":t.modelValue,disabled:t.disabled,class:e.normalizeClass(s.value),onClick:u},[e.createElementVNode("span",{class:e.normalizeClass(i.value)},null,2)],10,Rt))}},ge={__name:"Text",props:{as:{type:String,default:"p"},size:{type:String,default:"md",validator:t=>["xs","sm","md","lg","xl"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","muted","destructive"].includes(t)},weight:{type:String,default:"normal",validator:t=>["normal","medium","semibold","bold"].includes(t)},align:{type:String,default:"left",validator:t=>["left","center","right","justify"].includes(t)},class:String},setup(t){const l=t,a=m.cva("leading-relaxed",{variants:{size:{xs:"text-xs",sm:"text-sm",md:"text-base",lg:"text-lg",xl:"text-xl"},variant:{default:"text-foreground",muted:"text-muted-foreground",destructive:"text-destructive"},weight:{normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold"},align:{left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"}}}),o=e.computed(()=>c(a({size:l.size,variant:l.variant,weight:l.weight,align:l.align}),l.class));return(n,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.as),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class"]))}},qt=["id","value","placeholder","disabled","readonly","required","rows","maxlength","aria-describedby","aria-invalid"],he={__name:"Textarea",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},rows:{type:Number,default:3},maxlength:{type:Number,default:null},resize:{type:String,default:"vertical",validator:t=>["none","vertical","horizontal","both"].includes(t)},autoResize:{type:Boolean,default:!1},size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","error","success"].includes(t)},error:{type:String,default:null},id:{type:String,default:null}},emits:["update:modelValue","blur","focus","keydown"],setup(t,{expose:l,emit:a}){const o=t,n=a,r=e.ref(null),s=e.computed(()=>o.id||e.useId()),i=d=>{n("update:modelValue",d.target.value),o.autoResize&&e.nextTick(()=>f())},u=d=>n("blur",d),v=d=>n("focus",d),p=d=>n("keydown",d),x=e.computed(()=>!!o.error||o.variant==="error"),y=e.computed(()=>o.error?`${s.value}-error`:void 0),N=m.cva("block w-full rounded-lg border transition-colors duration-200 placeholder:text-slate-400 focus:outline-none focus:ring-2 focus:ring-offset-0 disabled:bg-slate-50 disabled:text-slate-500 disabled:cursor-not-allowed",{variants:{size:{sm:"px-3 py-1.5 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-3 text-base"},variant:{default:"border-slate-300 focus:border-blue-500 focus:ring-blue-500",error:"border-red-300 focus:border-red-500 focus:ring-red-500",success:"border-green-300 focus:border-green-500 focus:ring-green-500"},resize:{none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"}},defaultVariants:{size:"md",variant:"default",resize:"vertical"}}),h=e.computed(()=>c(N({size:o.size,variant:o.variant,resize:o.resize}))),f=()=>{if(!r.value||!o.autoResize)return;const d=r.value;d.style.height="auto",d.style.height=`${d.scrollHeight}px`};return e.watch(()=>o.modelValue,()=>{o.autoResize&&e.nextTick(()=>f())},{immediate:!0}),l({focus:()=>r.value?.focus(),blur:()=>r.value?.blur(),select:()=>r.value?.select()}),(d,b)=>(e.openBlock(),e.createElementBlock("textarea",{id:s.value,ref_key:"textareaRef",ref:r,value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required,rows:t.rows,maxlength:t.maxlength,class:e.normalizeClass(h.value),"aria-describedby":y.value,"aria-invalid":x.value,onInput:i,onBlur:u,onFocus:v,onKeydown:p},null,42,qt))}},be={__name:"Tooltip",props:{content:{type:String,required:!0},placement:{type:String,default:"top",validator:t=>["top","bottom","left","right"].includes(t)},delay:{type:Number,default:0},class:String},setup(t){const l=t,a=e.ref(!1);let o=null;const n=m.cva("absolute z-50 px-3 py-1.5 text-sm text-primary-foreground bg-primary rounded-md shadow-md pointer-events-none whitespace-nowrap",{variants:{placement:{top:"bottom-full left-1/2 transform -translate-x-1/2 mb-2",bottom:"top-full left-1/2 transform -translate-x-1/2 mt-2",left:"right-full top-1/2 transform -translate-y-1/2 mr-2",right:"left-full top-1/2 transform -translate-y-1/2 ml-2"}}}),r=m.cva("absolute w-2 h-2 bg-primary transform rotate-45",{variants:{placement:{top:"top-full left-1/2 transform -translate-x-1/2 -mt-1",bottom:"bottom-full left-1/2 transform -translate-x-1/2 -mb-1",left:"left-full top-1/2 transform -translate-y-1/2 -ml-1",right:"right-full top-1/2 transform -translate-y-1/2 -mr-1"}}}),s=e.computed(()=>c(n({placement:l.placement}),l.class)),i=e.computed(()=>r({placement:l.placement})),u=()=>{o&&clearTimeout(o),o=setTimeout(()=>{a.value=!0},l.delay)},v=()=>{o&&clearTimeout(o),a.value=!1};return(p,x)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-block",onMouseenter:u,onMouseleave:v},[e.renderSlot(p.$slots,"default"),e.createVNode(e.Transition,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(s.value),role:"tooltip"},[e.createTextVNode(e.toDisplayString(t.content)+" ",1),e.createElementVNode("div",{class:e.normalizeClass(i.value)},null,2)],2)):e.createCommentVNode("",!0)]),_:1})],32))}},Q={__name:"Typography",props:{variant:{type:String,default:"body-md",validator:t=>["body-xs","body-sm","body-md","body-lg","text-xs","text-sm","text-md","text-lg","display-sm","display-md","display-lg","caption","overline"].includes(t)},color:{type:String,default:"default",validator:t=>["default","primary","secondary","success","warning","danger","muted"].includes(t)},align:{type:String,default:"left",validator:t=>["left","center","right","justify"].includes(t)},italic:Boolean,underline:Boolean,truncate:Boolean,noWrap:Boolean},setup(t){const l=t,a=e.computed(()=>({"body-xs":"p","body-sm":"p","body-md":"p","body-lg":"p","text-xs":"h6","text-sm":"h5","text-md":"h4","text-lg":"h3","display-sm":"h2","display-md":"h1","display-lg":"h1",caption:"span",overline:"span"})[l.variant]||"p"),o=e.computed(()=>({"body-xs":"text-xs leading-normal","body-sm":"text-sm leading-relaxed","body-md":"text-base leading-relaxed","body-lg":"text-lg leading-relaxed","text-xs":"text-md font-semibold leading-snug","text-sm":"text-xl font-semibold leading-snug","text-md":"text-2xl font-semibold leading-snug","text-lg":"text-3xl font-bold leading-snug","display-sm":"text-4xl font-bold leading-tight tracking-tight","display-md":"text-5xl font-bold leading-tight tracking-tight","display-lg":"text-6xl font-bold leading-tight tracking-tight",caption:"text-xs leading-normal",overline:"text-xs font-medium uppercase tracking-wider leading-normal"})[l.variant]),n=e.computed(()=>({default:"text-slate-900",primary:"text-blue-600",secondary:"text-slate-600",success:"text-green-600",warning:"text-yellow-600",danger:"text-red-600",muted:"text-slate-500"})[l.color]),r=e.computed(()=>({left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"})[l.align]),s=e.computed(()=>[o.value,n.value,r.value,{italic:l.italic,underline:l.underline,truncate:l.truncate,"whitespace-nowrap":l.noWrap}]);return(i,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{class:e.normalizeClass(s.value)},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class"]))}},Ht={class:"flex items-start gap-3"},Ot={key:0,class:"flex-shrink-0 mt-0.5"},Ut={class:"flex-1 min-w-0"},Zt={key:0,class:"font-medium text-sm mb-1"},Gt={key:1,class:"mt-3 flex gap-2"},Kt=["aria-label"],ke=Object.assign({inheritAttrs:!1},{__name:"Alert",props:{variant:{type:String,default:"info",validator:t=>["info","success","warning","error","default","destructive"].includes(t)},title:String,message:String,dismissible:{type:Boolean,default:!1},dismissLabel:{type:String,default:"Dismiss alert"},showIcon:{type:Boolean,default:!0},actions:{type:Array,default:()=>[]},autoClose:{type:[Boolean,Number],default:!1}},emits:["dismiss","action"],setup(t,{emit:l}){const a=t,o=l,n=e.ref(!0),r=()=>{n.value=!1,o("dismiss")},s=d=>{o("action",d),d.onClick&&d.onClick()};if(a.autoClose){const d=typeof a.autoClose=="number"?a.autoClose:5e3;setTimeout(r,d)}const i={template:`
34
34
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
35
35
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
36
36
  d="M12 9v2m0 4h.01M21 12A9 9 0 1112 3a9 9 0 019 9z" />