ynotsoft-dynamic-form 1.0.39 → 1.0.40
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/dynamic-form.js +4 -4
- package/dist/dynamic-form.umd.cjs +2 -2
- package/dist/index.css +1 -1
- package/package.json +2 -2
- package/README.md +0 -692
package/dist/dynamic-form.js
CHANGED
|
@@ -3637,13 +3637,13 @@ function mo({ field: e, formValues: t, handleChange: n, handleBlur: o, touched:
|
|
|
3637
3637
|
{
|
|
3638
3638
|
...e.props,
|
|
3639
3639
|
id: e.name,
|
|
3640
|
-
type: e.type || "
|
|
3640
|
+
type: e.type || "",
|
|
3641
3641
|
value: t[e.name] || "",
|
|
3642
3642
|
onChange: (a) => n(e.name, a.target.value),
|
|
3643
3643
|
onBlur: () => o(e.name),
|
|
3644
3644
|
disabled: i,
|
|
3645
3645
|
name: e.name,
|
|
3646
|
-
placeholder: e.placeholder,
|
|
3646
|
+
placeholder: e.placeholder || "",
|
|
3647
3647
|
min: e.minLength,
|
|
3648
3648
|
max: e.maxLength,
|
|
3649
3649
|
className: `flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 ${s ? "border-red-500 focus-visible:ring-red-500" : "border-input focus-visible:ring-blue-500"} ${i ? "bg-gray-50 text-gray-500" : "bg-background"}`
|
|
@@ -8277,7 +8277,7 @@ const Md = ({
|
|
|
8277
8277
|
]
|
|
8278
8278
|
}
|
|
8279
8279
|
),
|
|
8280
|
-
/* @__PURE__ */ f("div", { children: E })
|
|
8280
|
+
A.override ? /* @__PURE__ */ f("div", { children: E }) : /* @__PURE__ */ f("div", { children: E })
|
|
8281
8281
|
] });
|
|
8282
8282
|
return /* @__PURE__ */ f("div", { className: `mb-4 ${A.fieldClass || "col-span-8"}`, children: L === "card" ? /* @__PURE__ */ f("div", { className: D, children: $ }) : $ });
|
|
8283
8283
|
}
|
|
@@ -8309,7 +8309,7 @@ const Md = ({
|
|
|
8309
8309
|
onSubmit: k,
|
|
8310
8310
|
className: "grid grid-cols-12 gap-x-4 mx-auto w-full ",
|
|
8311
8311
|
children: [
|
|
8312
|
-
o ? o.fields.map((E) => /* @__PURE__ */ f("div", { className: "col-span-full", children: F(E) }, E.name)) : /* @__PURE__ */ f("div", { children: "Loading..." }),
|
|
8312
|
+
o ? o.fields.map((E) => /* @__PURE__ */ f("div", { className: "col-span-full", children: F(E) }, E.name + E.type)) : /* @__PURE__ */ f("div", { children: "Loading..." }),
|
|
8313
8313
|
/* @__PURE__ */ f(
|
|
8314
8314
|
"div",
|
|
8315
8315
|
{
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
`,children:[l.jsx(Dc,{placeholder:e.placeholder||`Select ${e.label?.toLowerCase()||""}`}),l.jsx(Fc,{className:"ml-2 text-gray-500",children:l.jsx(Zc,{className:"w-4 h-4"})})]}),l.jsx($c,{children:l.jsxs(Rc,{className:"bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[var(--radix-select-trigger-width)]",position:"popper",sideOffset:5,children:[l.jsx(Uc,{className:"flex items-center justify-center h-6 text-gray-500 bg-gray-50",children:l.jsx(Pr,{className:"fill-white stroke-gray-200"})}),l.jsxs(Bc,{className:"p-1",children:[e.groupLabel&&l.jsx(zc,{children:l.jsx(Wc,{className:"px-2 py-1 text-xs text-gray-500 uppercase tracking-wide",children:e.groupLabel})}),i.map(c=>l.jsx(Vc,{value:c.value,className:`relative flex items-center px-3 py-2 text-sm rounded cursor-pointer select-none
|
|
45
45
|
data-[state=checked]:bg-blue-50
|
|
46
46
|
data-[state=checked]:text-blue-600
|
|
47
|
-
`,children:l.jsx(Hc,{children:c.label})},c.value)),e.separator&&l.jsx(jc,{className:"my-1 h-px bg-gray-200"})]}),l.jsx(Pr,{className:"fill-white stroke-gray-200"})]})})]}),r&&l.jsx("p",{className:"mt-1 text-sm text-red-500",children:r})]})}function rl({field:e,formValues:t,handleChange:o,handleBlur:n,error:r}){const s=e.readOnly&&e.disabled;return l.jsxs(l.Fragment,{children:[l.jsx("input",{...e.props,type:"email",value:t[e.name]||"",onChange:a=>o(e.name,a.target.value),onBlur:()=>n(e.name),disabled:s,name:e.name,placeholder:e.placeholder,className:`flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 ${r?"border-red-500 focus-visible:ring-red-500":"border-input focus-visible:ring-blue-500"} ${s?"bg-gray-100 text-gray-500 cursor-not-allowed":"bg-background"}`}),r&&l.jsx("p",{className:"mt-1 text-sm text-red-500",children:r})]})}function Or({field:e,formValues:t,handleChange:o,handleBlur:n,touched:r,error:s}){const a=e.readOnly||e.disabled;return l.jsxs(l.Fragment,{children:[l.jsx("input",{...e.props,id:e.name,type:e.type||"text",value:t[e.name]||"",onChange:i=>o(e.name,i.target.value),onBlur:()=>n(e.name),disabled:a,name:e.name,placeholder:e.placeholder,min:e.minLength,max:e.maxLength,className:`flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 ${s?"border-red-500 focus-visible:ring-red-500":"border-input focus-visible:ring-blue-500"} ${a?"bg-gray-50 text-gray-500":"bg-background"}`}),s&&l.jsx("p",{className:"mt-1 text-sm text-red-600",children:s})]})}function sl({field:e,formValues:t}){const o=t[e.name]||e.content||"";return l.jsx("div",{className:`mb-4 ${e.fieldClass?e.fieldClass:"col-span-full"}`,id:e.name.toLowerCase()+"_id",children:l.jsx("div",{className:"w-full px-3 py-2 border rounded-md overflow-y-auto max-h-40 prose prose-sm max-w-none",dangerouslySetInnerHTML:{__html:o}})},e.name)}function al({field:e,formValues:t,handleChange:o,handleBlur:n,error:r}){const s=e.disabled&&e.disabled(t);return l.jsxs("div",{className:"mt-1",children:[l.jsxs("div",{className:"space-x-2",children:[l.jsx("input",{...e.props,id:"id_"+e.name,type:"checkbox",checked:t[e.name]||!1,onChange:a=>o(e.name,a.target.checked),onBlur:()=>n(e.name),disabled:s,className:`rounded border-gray-300 ${s?"opacity-50 cursor-not-allowed":""} ${r?"border-red-500":""}`}),l.jsxs("label",{className:"",htmlFor:"id_"+e.name,children:[e.label,e.required&&l.jsx("span",{className:"text-red-500",children:"*"})]})]}),r&&l.jsx("p",{className:"mt-1 text-sm text-red-500",children:r})]})}function il(e,t){return u.useReducer((o,n)=>t[o][n]??o,e)}var Ot=e=>{const{present:t,children:o}=e,n=cl(t),r=typeof o=="function"?o({present:n.isPresent}):u.Children.only(o),s=q(n.ref,ll(r));return typeof o=="function"||n.isPresent?u.cloneElement(r,{ref:s}):null};Ot.displayName="Presence";function cl(e){const[t,o]=u.useState(),n=u.useRef(null),r=u.useRef(e),s=u.useRef("none"),a=e?"mounted":"unmounted",[i,c]=il(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return u.useEffect(()=>{const d=It(n.current);s.current=i==="mounted"?d:"none"},[i]),te(()=>{const d=n.current,f=r.current;if(f!==e){const g=s.current,h=It(d);e?c("MOUNT"):h==="none"||d?.display==="none"?c("UNMOUNT"):c(f&&g!==h?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,c]),te(()=>{if(t){let d;const f=t.ownerDocument.defaultView??window,m=h=>{const p=It(n.current).includes(CSS.escape(h.animationName));if(h.target===t&&p&&(c("ANIMATION_END"),!r.current)){const v=t.style.animationFillMode;t.style.animationFillMode="forwards",d=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=v)})}},g=h=>{h.target===t&&(s.current=It(n.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",m),t.addEventListener("animationend",m),()=>{f.clearTimeout(d),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",m),t.removeEventListener("animationend",m)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:u.useCallback(d=>{n.current=d?getComputedStyle(d):null,o(d)},[])}}function It(e){return e?.animationName||"none"}function ll(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,o=t&&"isReactWarning"in t&&t.isReactWarning;return o?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,o=t&&"isReactWarning"in t&&t.isReactWarning,o?e.props.ref:e.props.ref||e.ref)}var Tt="Popover",[Ir]=Oe(Tt,[vt]),ot=vt(),[dl,Ne]=Ir(Tt),Tr=e=>{const{__scopePopover:t,children:o,open:n,defaultOpen:r,onOpenChange:s,modal:a=!1}=e,i=ot(t),c=u.useRef(null),[d,f]=u.useState(!1),[m,g]=et({prop:n,defaultProp:r??!1,onChange:s,caller:Tt});return l.jsx(_n,{...i,children:l.jsx(dl,{scope:t,contentId:Xe(),triggerRef:c,open:m,onOpenChange:g,onOpenToggle:u.useCallback(()=>g(h=>!h),[g]),hasCustomAnchor:d,onCustomAnchorAdd:u.useCallback(()=>f(!0),[]),onCustomAnchorRemove:u.useCallback(()=>f(!1),[]),modal:a,children:o})})};Tr.displayName=Tt;var Mr="PopoverAnchor",ul=u.forwardRef((e,t)=>{const{__scopePopover:o,...n}=e,r=Ne(Mr,o),s=ot(o),{onCustomAnchorAdd:a,onCustomAnchorRemove:i}=r;return u.useEffect(()=>(a(),()=>i()),[a,i]),l.jsx(so,{...s,...n,ref:t})});ul.displayName=Mr;var _r="PopoverTrigger",Lr=u.forwardRef((e,t)=>{const{__scopePopover:o,...n}=e,r=Ne(_r,o),s=ot(o),a=q(t,r.triggerRef),i=l.jsx(U.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Br(r.open),...n,ref:a,onClick:W(e.onClick,r.onOpenToggle)});return r.hasCustomAnchor?i:l.jsx(so,{asChild:!0,...s,children:i})});Lr.displayName=_r;var wo="PopoverPortal",[fl,pl]=Ir(wo,{forceMount:void 0}),Dr=e=>{const{__scopePopover:t,forceMount:o,children:n,container:r}=e,s=Ne(wo,t);return l.jsx(fl,{scope:t,forceMount:o,children:l.jsx(Ot,{present:o||s.open,children:l.jsx(ao,{asChild:!0,container:r,children:n})})})};Dr.displayName=wo;var je="PopoverContent",Fr=u.forwardRef((e,t)=>{const o=pl(je,e.__scopePopover),{forceMount:n=o.forceMount,...r}=e,s=Ne(je,e.__scopePopover);return l.jsx(Ot,{present:n||s.open,children:s.modal?l.jsx(hl,{...r,ref:t}):l.jsx(gl,{...r,ref:t})})});Fr.displayName=je;var ml=qe("PopoverContent.RemoveScroll"),hl=u.forwardRef((e,t)=>{const o=Ne(je,e.__scopePopover),n=u.useRef(null),r=q(t,n),s=u.useRef(!1);return u.useEffect(()=>{const a=n.current;if(a)return Bn(a)},[]),l.jsx(po,{as:ml,allowPinchZoom:!0,children:l.jsx($r,{...e,ref:r,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:W(e.onCloseAutoFocus,a=>{a.preventDefault(),s.current||o.triggerRef.current?.focus()}),onPointerDownOutside:W(e.onPointerDownOutside,a=>{const i=a.detail.originalEvent,c=i.button===0&&i.ctrlKey===!0,d=i.button===2||c;s.current=d},{checkForDefaultPrevented:!1}),onFocusOutside:W(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),gl=u.forwardRef((e,t)=>{const o=Ne(je,e.__scopePopover),n=u.useRef(!1),r=u.useRef(!1);return l.jsx($r,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(n.current||o.triggerRef.current?.focus(),s.preventDefault()),n.current=!1,r.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(n.current=!0,s.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const a=s.target;o.triggerRef.current?.contains(a)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&r.current&&s.preventDefault()}})}),$r=u.forwardRef((e,t)=>{const{__scopePopover:o,trapFocus:n,onOpenAutoFocus:r,onCloseAutoFocus:s,disableOutsidePointerEvents:a,onEscapeKeyDown:i,onPointerDownOutside:c,onFocusOutside:d,onInteractOutside:f,...m}=e,g=Ne(je,o),h=ot(o);return Go(),l.jsx(jt,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:r,onUnmountAutoFocus:s,children:l.jsx(Wt,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:f,onEscapeKeyDown:i,onPointerDownOutside:c,onFocusOutside:d,onDismiss:()=>g.onOpenChange(!1),children:l.jsx(Ln,{"data-state":Br(g.open),role:"dialog",id:g.contentId,...h,...m,ref:t,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),Rr="PopoverClose",vl=u.forwardRef((e,t)=>{const{__scopePopover:o,...n}=e,r=Ne(Rr,o);return l.jsx(U.button,{type:"button",...n,ref:t,onClick:W(e.onClick,()=>r.onOpenChange(!1))})});vl.displayName=Rr;var bl="PopoverArrow",yl=u.forwardRef((e,t)=>{const{__scopePopover:o,...n}=e,r=ot(o);return l.jsx(Dn,{...r,...n,ref:t})});yl.displayName=bl;function Br(e){return e?"open":"closed"}var wl=Tr,xl=Lr,Cl=Dr,Sl=Fr;function zr(e){var t,o,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t<r;t++)e[t]&&(o=zr(e[t]))&&(n&&(n+=" "),n+=o)}else for(o in e)e[o]&&(n&&(n+=" "),n+=o);return n}function El(){for(var e,t,o=0,n="",r=arguments.length;o<r;o++)(e=arguments[o])&&(t=zr(e))&&(n&&(n+=" "),n+=t);return n}const kl=(e,t)=>{const o=new Array(e.length+t.length);for(let n=0;n<e.length;n++)o[n]=e[n];for(let n=0;n<t.length;n++)o[e.length+n]=t[n];return o},Pl=(e,t)=>({classGroupId:e,validator:t}),Wr=(e=new Map,t=null,o)=>({nextPart:e,validators:t,classGroupId:o}),Mt="-",Vr=[],Nl="arbitrary..",Al=e=>{const t=Il(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]"))return Ol(a);const i=a.split(Mt),c=i[0]===""&&i.length>1?1:0;return Hr(i,c,t)},getConflictingClassGroupIds:(a,i)=>{if(i){const c=n[a],d=o[a];return c?d?kl(d,c):c:d||Vr}return o[a]||Vr}}},Hr=(e,t,o)=>{if(e.length-t===0)return o.classGroupId;const r=e[t],s=o.nextPart.get(r);if(s){const d=Hr(e,t+1,s);if(d)return d}const a=o.validators;if(a===null)return;const i=t===0?e.join(Mt):e.slice(t).join(Mt),c=a.length;for(let d=0;d<c;d++){const f=a[d];if(f.validator(i))return f.classGroupId}},Ol=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),o=t.indexOf(":"),n=t.slice(0,o);return n?Nl+n:void 0})(),Il=e=>{const{theme:t,classGroups:o}=e;return Tl(o,t)},Tl=(e,t)=>{const o=Wr();for(const n in e){const r=e[n];xo(r,o,n,t)}return o},xo=(e,t,o,n)=>{const r=e.length;for(let s=0;s<r;s++){const a=e[s];Ml(a,t,o,n)}},Ml=(e,t,o,n)=>{if(typeof e=="string"){_l(e,t,o);return}if(typeof e=="function"){Ll(e,t,o,n);return}Dl(e,t,o,n)},_l=(e,t,o)=>{const n=e===""?t:Ur(t,e);n.classGroupId=o},Ll=(e,t,o,n)=>{if(Fl(e)){xo(e(n),t,o,n);return}t.validators===null&&(t.validators=[]),t.validators.push(Pl(o,e))},Dl=(e,t,o,n)=>{const r=Object.entries(e),s=r.length;for(let a=0;a<s;a++){const[i,c]=r[a];xo(c,Ur(t,i),o,n)}},Ur=(e,t)=>{let o=e;const n=t.split(Mt),r=n.length;for(let s=0;s<r;s++){const a=n[s];let i=o.nextPart.get(a);i||(i=Wr(),o.nextPart.set(a,i)),o=i}return o},Fl=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,$l=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,o=Object.create(null),n=Object.create(null);const r=(s,a)=>{o[s]=a,t++,t>e&&(t=0,n=o,o=Object.create(null))};return{get(s){let a=o[s];if(a!==void 0)return a;if((a=n[s])!==void 0)return r(s,a),a},set(s,a){s in o?o[s]=a:r(s,a)}}},Co="!",jr=":",Rl=[],Gr=(e,t,o,n,r)=>({modifiers:e,hasImportantModifier:t,baseClassName:o,maybePostfixModifierPosition:n,isExternal:r}),Bl=e=>{const{prefix:t,experimentalParseClassName:o}=e;let n=r=>{const s=[];let a=0,i=0,c=0,d;const f=r.length;for(let p=0;p<f;p++){const v=r[p];if(a===0&&i===0){if(v===jr){s.push(r.slice(c,p)),c=p+1;continue}if(v==="/"){d=p;continue}}v==="["?a++:v==="]"?a--:v==="("?i++:v===")"&&i--}const m=s.length===0?r:r.slice(c);let g=m,h=!1;m.endsWith(Co)?(g=m.slice(0,-1),h=!0):m.startsWith(Co)&&(g=m.slice(1),h=!0);const b=d&&d>c?d-c:void 0;return Gr(s,h,g,b)};if(t){const r=t+jr,s=n;n=a=>a.startsWith(r)?s(a.slice(r.length)):Gr(Rl,!1,a,void 0,!0)}if(o){const r=n;n=s=>o({className:s,parseClassName:r})}return n},zl=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((o,n)=>{t.set(o,1e6+n)}),o=>{const n=[];let r=[];for(let s=0;s<o.length;s++){const a=o[s],i=a[0]==="[",c=t.has(a);i||c?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},Wl=e=>({cache:$l(e.cacheSize),parseClassName:Bl(e),sortModifiers:zl(e),...Al(e)}),Vl=/\s+/,Hl=(e,t)=>{const{parseClassName:o,getClassGroupId:n,getConflictingClassGroupIds:r,sortModifiers:s}=t,a=[],i=e.trim().split(Vl);let c="";for(let d=i.length-1;d>=0;d-=1){const f=i[d],{isExternal:m,modifiers:g,hasImportantModifier:h,baseClassName:b,maybePostfixModifierPosition:p}=o(f);if(m){c=f+(c.length>0?" "+c:c);continue}let v=!!p,y=n(v?b.substring(0,p):b);if(!y){if(!v){c=f+(c.length>0?" "+c:c);continue}if(y=n(b),!y){c=f+(c.length>0?" "+c:c);continue}v=!1}const w=g.length===0?"":g.length===1?g[0]:s(g).join(":"),x=h?w+Co:w,S=x+y;if(a.indexOf(S)>-1)continue;a.push(S);const N=r(y,v);for(let P=0;P<N.length;++P){const k=N[P];a.push(x+k)}c=f+(c.length>0?" "+c:c)}return c},Ul=(...e)=>{let t=0,o,n,r="";for(;t<e.length;)(o=e[t++])&&(n=Kr(o))&&(r&&(r+=" "),r+=n);return r},Kr=e=>{if(typeof e=="string")return e;let t,o="";for(let n=0;n<e.length;n++)e[n]&&(t=Kr(e[n]))&&(o&&(o+=" "),o+=t);return o},jl=(e,...t)=>{let o,n,r,s;const a=c=>{const d=t.reduce((f,m)=>m(f),e());return o=Wl(d),n=o.cache.get,r=o.cache.set,s=i,i(c)},i=c=>{const d=n(c);if(d)return d;const f=Hl(c,o);return r(c,f),f};return s=a,(...c)=>s(Ul(...c))},Gl=[],J=e=>{const t=o=>o[e]||Gl;return t.isThemeGetter=!0,t},Yr=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,qr=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Kl=/^\d+\/\d+$/,Yl=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ql=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Xl=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Zl=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ql=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ge=e=>Kl.test(e),z=e=>!!e&&!Number.isNaN(Number(e)),Ae=e=>!!e&&Number.isInteger(Number(e)),So=e=>e.endsWith("%")&&z(e.slice(0,-1)),ye=e=>Yl.test(e),Jl=()=>!0,ed=e=>ql.test(e)&&!Xl.test(e),Xr=()=>!1,td=e=>Zl.test(e),od=e=>Ql.test(e),nd=e=>!M(e)&&!_(e),rd=e=>Ke(e,ts,Xr),M=e=>Yr.test(e),_e=e=>Ke(e,os,ed),Eo=e=>Ke(e,ld,z),Zr=e=>Ke(e,Jr,Xr),sd=e=>Ke(e,es,od),_t=e=>Ke(e,ns,td),_=e=>qr.test(e),nt=e=>Ye(e,os),ad=e=>Ye(e,dd),Qr=e=>Ye(e,Jr),id=e=>Ye(e,ts),cd=e=>Ye(e,es),Lt=e=>Ye(e,ns,!0),Ke=(e,t,o)=>{const n=Yr.exec(e);return n?n[1]?t(n[1]):o(n[2]):!1},Ye=(e,t,o=!1)=>{const n=qr.exec(e);return n?n[1]?t(n[1]):o:!1},Jr=e=>e==="position"||e==="percentage",es=e=>e==="image"||e==="url",ts=e=>e==="length"||e==="size"||e==="bg-size",os=e=>e==="length",ld=e=>e==="number",dd=e=>e==="family-name",ns=e=>e==="shadow",ud=jl(()=>{const e=J("color"),t=J("font"),o=J("text"),n=J("font-weight"),r=J("tracking"),s=J("leading"),a=J("breakpoint"),i=J("container"),c=J("spacing"),d=J("radius"),f=J("shadow"),m=J("inset-shadow"),g=J("text-shadow"),h=J("drop-shadow"),b=J("blur"),p=J("perspective"),v=J("aspect"),y=J("ease"),w=J("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],S=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],N=()=>[...S(),_,M],P=()=>["auto","hidden","clip","visible","scroll"],k=()=>["auto","contain","none"],C=()=>[_,M,c],F=()=>[Ge,"full","auto",...C()],E=()=>[Ae,"none","subgrid",_,M],O=()=>["auto",{span:["full",Ae,_,M]},Ae,_,M],I=()=>[Ae,"auto",_,M],L=()=>["auto","min","max","fr",_,M],R=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],D=()=>["start","end","center","stretch","center-safe","end-safe"],$=()=>["auto",...C()],B=()=>[Ge,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],A=()=>[e,_,M],j=()=>[...S(),Qr,Zr,{position:[_,M]}],ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],he=()=>["auto","cover","contain",id,rd,{size:[_,M]}],we=()=>[So,nt,_e],Z=()=>["","none","full",d,_,M],X=()=>["",z,nt,_e],le=()=>["solid","dashed","dotted","double"],ge=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],T=()=>[z,So,Qr,Zr],K=()=>["","none",b,_,M],Q=()=>["none",z,_,M],H=()=>["none",z,_,M],G=()=>[z,_,M],Y=()=>[Ge,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ye],breakpoint:[ye],color:[Jl],container:[ye],"drop-shadow":[ye],ease:["in","out","in-out"],font:[nd],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ye],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ye],shadow:[ye],spacing:["px",z],text:[ye],"text-shadow":[ye],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ge,M,_,v]}],container:["container"],columns:[{columns:[z,M,_,i]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:N()}],overflow:[{overflow:P()}],"overflow-x":[{"overflow-x":P()}],"overflow-y":[{"overflow-y":P()}],overscroll:[{overscroll:k()}],"overscroll-x":[{"overscroll-x":k()}],"overscroll-y":[{"overscroll-y":k()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:F()}],"inset-x":[{"inset-x":F()}],"inset-y":[{"inset-y":F()}],start:[{start:F()}],end:[{end:F()}],top:[{top:F()}],right:[{right:F()}],bottom:[{bottom:F()}],left:[{left:F()}],visibility:["visible","invisible","collapse"],z:[{z:[Ae,"auto",_,M]}],basis:[{basis:[Ge,"full","auto",i,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[z,Ge,"auto","initial","none",M]}],grow:[{grow:["",z,_,M]}],shrink:[{shrink:["",z,_,M]}],order:[{order:[Ae,"first","last","none",_,M]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:O()}],"col-start":[{"col-start":I()}],"col-end":[{"col-end":I()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:O()}],"row-start":[{"row-start":I()}],"row-end":[{"row-end":I()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":L()}],"auto-rows":[{"auto-rows":L()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...R(),"normal"]}],"justify-items":[{"justify-items":[...D(),"normal"]}],"justify-self":[{"justify-self":["auto",...D()]}],"align-content":[{content:["normal",...R()]}],"align-items":[{items:[...D(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...D(),{baseline:["","last"]}]}],"place-content":[{"place-content":R()}],"place-items":[{"place-items":[...D(),"baseline"]}],"place-self":[{"place-self":["auto",...D()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:$()}],mx:[{mx:$()}],my:[{my:$()}],ms:[{ms:$()}],me:[{me:$()}],mt:[{mt:$()}],mr:[{mr:$()}],mb:[{mb:$()}],ml:[{ml:$()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:B()}],w:[{w:[i,"screen",...B()]}],"min-w":[{"min-w":[i,"screen","none",...B()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[a]},...B()]}],h:[{h:["screen","lh",...B()]}],"min-h":[{"min-h":["screen","lh","none",...B()]}],"max-h":[{"max-h":["screen","lh",...B()]}],"font-size":[{text:["base",o,nt,_e]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,_,Eo]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",So,M]}],"font-family":[{font:[ad,M,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,_,M]}],"line-clamp":[{"line-clamp":[z,"none",_,Eo]}],leading:[{leading:[s,...C()]}],"list-image":[{"list-image":["none",_,M]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",_,M]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:A()}],"text-color":[{text:A()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...le(),"wavy"]}],"text-decoration-thickness":[{decoration:[z,"from-font","auto",_,_e]}],"text-decoration-color":[{decoration:A()}],"underline-offset":[{"underline-offset":[z,"auto",_,M]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",_,M]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",_,M]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:j()}],"bg-repeat":[{bg:ee()}],"bg-size":[{bg:he()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ae,_,M],radial:["",_,M],conic:[Ae,_,M]},cd,sd]}],"bg-color":[{bg:A()}],"gradient-from-pos":[{from:we()}],"gradient-via-pos":[{via:we()}],"gradient-to-pos":[{to:we()}],"gradient-from":[{from:A()}],"gradient-via":[{via:A()}],"gradient-to":[{to:A()}],rounded:[{rounded:Z()}],"rounded-s":[{"rounded-s":Z()}],"rounded-e":[{"rounded-e":Z()}],"rounded-t":[{"rounded-t":Z()}],"rounded-r":[{"rounded-r":Z()}],"rounded-b":[{"rounded-b":Z()}],"rounded-l":[{"rounded-l":Z()}],"rounded-ss":[{"rounded-ss":Z()}],"rounded-se":[{"rounded-se":Z()}],"rounded-ee":[{"rounded-ee":Z()}],"rounded-es":[{"rounded-es":Z()}],"rounded-tl":[{"rounded-tl":Z()}],"rounded-tr":[{"rounded-tr":Z()}],"rounded-br":[{"rounded-br":Z()}],"rounded-bl":[{"rounded-bl":Z()}],"border-w":[{border:X()}],"border-w-x":[{"border-x":X()}],"border-w-y":[{"border-y":X()}],"border-w-s":[{"border-s":X()}],"border-w-e":[{"border-e":X()}],"border-w-t":[{"border-t":X()}],"border-w-r":[{"border-r":X()}],"border-w-b":[{"border-b":X()}],"border-w-l":[{"border-l":X()}],"divide-x":[{"divide-x":X()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":X()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...le(),"hidden","none"]}],"divide-style":[{divide:[...le(),"hidden","none"]}],"border-color":[{border:A()}],"border-color-x":[{"border-x":A()}],"border-color-y":[{"border-y":A()}],"border-color-s":[{"border-s":A()}],"border-color-e":[{"border-e":A()}],"border-color-t":[{"border-t":A()}],"border-color-r":[{"border-r":A()}],"border-color-b":[{"border-b":A()}],"border-color-l":[{"border-l":A()}],"divide-color":[{divide:A()}],"outline-style":[{outline:[...le(),"none","hidden"]}],"outline-offset":[{"outline-offset":[z,_,M]}],"outline-w":[{outline:["",z,nt,_e]}],"outline-color":[{outline:A()}],shadow:[{shadow:["","none",f,Lt,_t]}],"shadow-color":[{shadow:A()}],"inset-shadow":[{"inset-shadow":["none",m,Lt,_t]}],"inset-shadow-color":[{"inset-shadow":A()}],"ring-w":[{ring:X()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:A()}],"ring-offset-w":[{"ring-offset":[z,_e]}],"ring-offset-color":[{"ring-offset":A()}],"inset-ring-w":[{"inset-ring":X()}],"inset-ring-color":[{"inset-ring":A()}],"text-shadow":[{"text-shadow":["none",g,Lt,_t]}],"text-shadow-color":[{"text-shadow":A()}],opacity:[{opacity:[z,_,M]}],"mix-blend":[{"mix-blend":[...ge(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ge()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[z]}],"mask-image-linear-from-pos":[{"mask-linear-from":T()}],"mask-image-linear-to-pos":[{"mask-linear-to":T()}],"mask-image-linear-from-color":[{"mask-linear-from":A()}],"mask-image-linear-to-color":[{"mask-linear-to":A()}],"mask-image-t-from-pos":[{"mask-t-from":T()}],"mask-image-t-to-pos":[{"mask-t-to":T()}],"mask-image-t-from-color":[{"mask-t-from":A()}],"mask-image-t-to-color":[{"mask-t-to":A()}],"mask-image-r-from-pos":[{"mask-r-from":T()}],"mask-image-r-to-pos":[{"mask-r-to":T()}],"mask-image-r-from-color":[{"mask-r-from":A()}],"mask-image-r-to-color":[{"mask-r-to":A()}],"mask-image-b-from-pos":[{"mask-b-from":T()}],"mask-image-b-to-pos":[{"mask-b-to":T()}],"mask-image-b-from-color":[{"mask-b-from":A()}],"mask-image-b-to-color":[{"mask-b-to":A()}],"mask-image-l-from-pos":[{"mask-l-from":T()}],"mask-image-l-to-pos":[{"mask-l-to":T()}],"mask-image-l-from-color":[{"mask-l-from":A()}],"mask-image-l-to-color":[{"mask-l-to":A()}],"mask-image-x-from-pos":[{"mask-x-from":T()}],"mask-image-x-to-pos":[{"mask-x-to":T()}],"mask-image-x-from-color":[{"mask-x-from":A()}],"mask-image-x-to-color":[{"mask-x-to":A()}],"mask-image-y-from-pos":[{"mask-y-from":T()}],"mask-image-y-to-pos":[{"mask-y-to":T()}],"mask-image-y-from-color":[{"mask-y-from":A()}],"mask-image-y-to-color":[{"mask-y-to":A()}],"mask-image-radial":[{"mask-radial":[_,M]}],"mask-image-radial-from-pos":[{"mask-radial-from":T()}],"mask-image-radial-to-pos":[{"mask-radial-to":T()}],"mask-image-radial-from-color":[{"mask-radial-from":A()}],"mask-image-radial-to-color":[{"mask-radial-to":A()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":S()}],"mask-image-conic-pos":[{"mask-conic":[z]}],"mask-image-conic-from-pos":[{"mask-conic-from":T()}],"mask-image-conic-to-pos":[{"mask-conic-to":T()}],"mask-image-conic-from-color":[{"mask-conic-from":A()}],"mask-image-conic-to-color":[{"mask-conic-to":A()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:j()}],"mask-repeat":[{mask:ee()}],"mask-size":[{mask:he()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",_,M]}],filter:[{filter:["","none",_,M]}],blur:[{blur:K()}],brightness:[{brightness:[z,_,M]}],contrast:[{contrast:[z,_,M]}],"drop-shadow":[{"drop-shadow":["","none",h,Lt,_t]}],"drop-shadow-color":[{"drop-shadow":A()}],grayscale:[{grayscale:["",z,_,M]}],"hue-rotate":[{"hue-rotate":[z,_,M]}],invert:[{invert:["",z,_,M]}],saturate:[{saturate:[z,_,M]}],sepia:[{sepia:["",z,_,M]}],"backdrop-filter":[{"backdrop-filter":["","none",_,M]}],"backdrop-blur":[{"backdrop-blur":K()}],"backdrop-brightness":[{"backdrop-brightness":[z,_,M]}],"backdrop-contrast":[{"backdrop-contrast":[z,_,M]}],"backdrop-grayscale":[{"backdrop-grayscale":["",z,_,M]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[z,_,M]}],"backdrop-invert":[{"backdrop-invert":["",z,_,M]}],"backdrop-opacity":[{"backdrop-opacity":[z,_,M]}],"backdrop-saturate":[{"backdrop-saturate":[z,_,M]}],"backdrop-sepia":[{"backdrop-sepia":["",z,_,M]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",_,M]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[z,"initial",_,M]}],ease:[{ease:["linear","initial",y,_,M]}],delay:[{delay:[z,_,M]}],animate:[{animate:["none",w,_,M]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,_,M]}],"perspective-origin":[{"perspective-origin":N()}],rotate:[{rotate:Q()}],"rotate-x":[{"rotate-x":Q()}],"rotate-y":[{"rotate-y":Q()}],"rotate-z":[{"rotate-z":Q()}],scale:[{scale:H()}],"scale-x":[{"scale-x":H()}],"scale-y":[{"scale-y":H()}],"scale-z":[{"scale-z":H()}],"scale-3d":["scale-3d"],skew:[{skew:G()}],"skew-x":[{"skew-x":G()}],"skew-y":[{"skew-y":G()}],transform:[{transform:[_,M,"","none","gpu","cpu"]}],"transform-origin":[{origin:N()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Y()}],"translate-x":[{"translate-x":Y()}],"translate-y":[{"translate-y":Y()}],"translate-z":[{"translate-z":Y()}],"translate-none":["translate-none"],accent:[{accent:A()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:A()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",_,M]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",_,M]}],fill:[{fill:["none",...A()]}],"stroke-w":[{stroke:[z,nt,_e,Eo]}],stroke:[{stroke:["none",...A()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function Dt(...e){return ud(El(e))}function ko({...e}){return l.jsx(wl,{"data-slot":"popover",...e})}function Po({...e}){return l.jsx(xl,{"data-slot":"popover-trigger",...e})}function No({className:e,align:t="center",sideOffset:o=4,...n}){return l.jsx(Cl,{children:l.jsx(Sl,{"data-slot":"popover-content",align:t,sideOffset:o,className:Dt("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...n})})}function fd({field:e,formValues:t,handleChange:o,handleBlur:n,error:r}){const[s,a]=V.useState(!1),i=t[e.name]??{from:null,to:null},c=f=>o(e.name,f),d=()=>o(e.name,{from:null,to:null});return l.jsxs("div",{children:[l.jsxs(ko,{open:s,onOpenChange:a,children:[l.jsx(Po,{asChild:!0,children:l.jsxs("button",{type:"button",id:e.name,"aria-haspopup":"dialog","aria-expanded":s,onClick:()=>a(!0),onKeyDown:f=>f.key==="Enter"&&a(!0),className:`
|
|
47
|
+
`,children:l.jsx(Hc,{children:c.label})},c.value)),e.separator&&l.jsx(jc,{className:"my-1 h-px bg-gray-200"})]}),l.jsx(Pr,{className:"fill-white stroke-gray-200"})]})})]}),r&&l.jsx("p",{className:"mt-1 text-sm text-red-500",children:r})]})}function rl({field:e,formValues:t,handleChange:o,handleBlur:n,error:r}){const s=e.readOnly&&e.disabled;return l.jsxs(l.Fragment,{children:[l.jsx("input",{...e.props,type:"email",value:t[e.name]||"",onChange:a=>o(e.name,a.target.value),onBlur:()=>n(e.name),disabled:s,name:e.name,placeholder:e.placeholder,className:`flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 ${r?"border-red-500 focus-visible:ring-red-500":"border-input focus-visible:ring-blue-500"} ${s?"bg-gray-100 text-gray-500 cursor-not-allowed":"bg-background"}`}),r&&l.jsx("p",{className:"mt-1 text-sm text-red-500",children:r})]})}function Or({field:e,formValues:t,handleChange:o,handleBlur:n,touched:r,error:s}){const a=e.readOnly||e.disabled;return l.jsxs(l.Fragment,{children:[l.jsx("input",{...e.props,id:e.name,type:e.type||"",value:t[e.name]||"",onChange:i=>o(e.name,i.target.value),onBlur:()=>n(e.name),disabled:a,name:e.name,placeholder:e.placeholder||"",min:e.minLength,max:e.maxLength,className:`flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 ${s?"border-red-500 focus-visible:ring-red-500":"border-input focus-visible:ring-blue-500"} ${a?"bg-gray-50 text-gray-500":"bg-background"}`}),s&&l.jsx("p",{className:"mt-1 text-sm text-red-600",children:s})]})}function sl({field:e,formValues:t}){const o=t[e.name]||e.content||"";return l.jsx("div",{className:`mb-4 ${e.fieldClass?e.fieldClass:"col-span-full"}`,id:e.name.toLowerCase()+"_id",children:l.jsx("div",{className:"w-full px-3 py-2 border rounded-md overflow-y-auto max-h-40 prose prose-sm max-w-none",dangerouslySetInnerHTML:{__html:o}})},e.name)}function al({field:e,formValues:t,handleChange:o,handleBlur:n,error:r}){const s=e.disabled&&e.disabled(t);return l.jsxs("div",{className:"mt-1",children:[l.jsxs("div",{className:"space-x-2",children:[l.jsx("input",{...e.props,id:"id_"+e.name,type:"checkbox",checked:t[e.name]||!1,onChange:a=>o(e.name,a.target.checked),onBlur:()=>n(e.name),disabled:s,className:`rounded border-gray-300 ${s?"opacity-50 cursor-not-allowed":""} ${r?"border-red-500":""}`}),l.jsxs("label",{className:"",htmlFor:"id_"+e.name,children:[e.label,e.required&&l.jsx("span",{className:"text-red-500",children:"*"})]})]}),r&&l.jsx("p",{className:"mt-1 text-sm text-red-500",children:r})]})}function il(e,t){return u.useReducer((o,n)=>t[o][n]??o,e)}var Ot=e=>{const{present:t,children:o}=e,n=cl(t),r=typeof o=="function"?o({present:n.isPresent}):u.Children.only(o),s=q(n.ref,ll(r));return typeof o=="function"||n.isPresent?u.cloneElement(r,{ref:s}):null};Ot.displayName="Presence";function cl(e){const[t,o]=u.useState(),n=u.useRef(null),r=u.useRef(e),s=u.useRef("none"),a=e?"mounted":"unmounted",[i,c]=il(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return u.useEffect(()=>{const d=It(n.current);s.current=i==="mounted"?d:"none"},[i]),te(()=>{const d=n.current,f=r.current;if(f!==e){const g=s.current,h=It(d);e?c("MOUNT"):h==="none"||d?.display==="none"?c("UNMOUNT"):c(f&&g!==h?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,c]),te(()=>{if(t){let d;const f=t.ownerDocument.defaultView??window,m=h=>{const p=It(n.current).includes(CSS.escape(h.animationName));if(h.target===t&&p&&(c("ANIMATION_END"),!r.current)){const v=t.style.animationFillMode;t.style.animationFillMode="forwards",d=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=v)})}},g=h=>{h.target===t&&(s.current=It(n.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",m),t.addEventListener("animationend",m),()=>{f.clearTimeout(d),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",m),t.removeEventListener("animationend",m)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:u.useCallback(d=>{n.current=d?getComputedStyle(d):null,o(d)},[])}}function It(e){return e?.animationName||"none"}function ll(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,o=t&&"isReactWarning"in t&&t.isReactWarning;return o?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,o=t&&"isReactWarning"in t&&t.isReactWarning,o?e.props.ref:e.props.ref||e.ref)}var Tt="Popover",[Ir]=Oe(Tt,[vt]),ot=vt(),[dl,Ne]=Ir(Tt),Tr=e=>{const{__scopePopover:t,children:o,open:n,defaultOpen:r,onOpenChange:s,modal:a=!1}=e,i=ot(t),c=u.useRef(null),[d,f]=u.useState(!1),[m,g]=et({prop:n,defaultProp:r??!1,onChange:s,caller:Tt});return l.jsx(_n,{...i,children:l.jsx(dl,{scope:t,contentId:Xe(),triggerRef:c,open:m,onOpenChange:g,onOpenToggle:u.useCallback(()=>g(h=>!h),[g]),hasCustomAnchor:d,onCustomAnchorAdd:u.useCallback(()=>f(!0),[]),onCustomAnchorRemove:u.useCallback(()=>f(!1),[]),modal:a,children:o})})};Tr.displayName=Tt;var Mr="PopoverAnchor",ul=u.forwardRef((e,t)=>{const{__scopePopover:o,...n}=e,r=Ne(Mr,o),s=ot(o),{onCustomAnchorAdd:a,onCustomAnchorRemove:i}=r;return u.useEffect(()=>(a(),()=>i()),[a,i]),l.jsx(so,{...s,...n,ref:t})});ul.displayName=Mr;var _r="PopoverTrigger",Lr=u.forwardRef((e,t)=>{const{__scopePopover:o,...n}=e,r=Ne(_r,o),s=ot(o),a=q(t,r.triggerRef),i=l.jsx(U.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Br(r.open),...n,ref:a,onClick:W(e.onClick,r.onOpenToggle)});return r.hasCustomAnchor?i:l.jsx(so,{asChild:!0,...s,children:i})});Lr.displayName=_r;var wo="PopoverPortal",[fl,pl]=Ir(wo,{forceMount:void 0}),Dr=e=>{const{__scopePopover:t,forceMount:o,children:n,container:r}=e,s=Ne(wo,t);return l.jsx(fl,{scope:t,forceMount:o,children:l.jsx(Ot,{present:o||s.open,children:l.jsx(ao,{asChild:!0,container:r,children:n})})})};Dr.displayName=wo;var je="PopoverContent",Fr=u.forwardRef((e,t)=>{const o=pl(je,e.__scopePopover),{forceMount:n=o.forceMount,...r}=e,s=Ne(je,e.__scopePopover);return l.jsx(Ot,{present:n||s.open,children:s.modal?l.jsx(hl,{...r,ref:t}):l.jsx(gl,{...r,ref:t})})});Fr.displayName=je;var ml=qe("PopoverContent.RemoveScroll"),hl=u.forwardRef((e,t)=>{const o=Ne(je,e.__scopePopover),n=u.useRef(null),r=q(t,n),s=u.useRef(!1);return u.useEffect(()=>{const a=n.current;if(a)return Bn(a)},[]),l.jsx(po,{as:ml,allowPinchZoom:!0,children:l.jsx($r,{...e,ref:r,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:W(e.onCloseAutoFocus,a=>{a.preventDefault(),s.current||o.triggerRef.current?.focus()}),onPointerDownOutside:W(e.onPointerDownOutside,a=>{const i=a.detail.originalEvent,c=i.button===0&&i.ctrlKey===!0,d=i.button===2||c;s.current=d},{checkForDefaultPrevented:!1}),onFocusOutside:W(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),gl=u.forwardRef((e,t)=>{const o=Ne(je,e.__scopePopover),n=u.useRef(!1),r=u.useRef(!1);return l.jsx($r,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(n.current||o.triggerRef.current?.focus(),s.preventDefault()),n.current=!1,r.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(n.current=!0,s.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const a=s.target;o.triggerRef.current?.contains(a)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&r.current&&s.preventDefault()}})}),$r=u.forwardRef((e,t)=>{const{__scopePopover:o,trapFocus:n,onOpenAutoFocus:r,onCloseAutoFocus:s,disableOutsidePointerEvents:a,onEscapeKeyDown:i,onPointerDownOutside:c,onFocusOutside:d,onInteractOutside:f,...m}=e,g=Ne(je,o),h=ot(o);return Go(),l.jsx(jt,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:r,onUnmountAutoFocus:s,children:l.jsx(Wt,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:f,onEscapeKeyDown:i,onPointerDownOutside:c,onFocusOutside:d,onDismiss:()=>g.onOpenChange(!1),children:l.jsx(Ln,{"data-state":Br(g.open),role:"dialog",id:g.contentId,...h,...m,ref:t,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),Rr="PopoverClose",vl=u.forwardRef((e,t)=>{const{__scopePopover:o,...n}=e,r=Ne(Rr,o);return l.jsx(U.button,{type:"button",...n,ref:t,onClick:W(e.onClick,()=>r.onOpenChange(!1))})});vl.displayName=Rr;var bl="PopoverArrow",yl=u.forwardRef((e,t)=>{const{__scopePopover:o,...n}=e,r=ot(o);return l.jsx(Dn,{...r,...n,ref:t})});yl.displayName=bl;function Br(e){return e?"open":"closed"}var wl=Tr,xl=Lr,Cl=Dr,Sl=Fr;function zr(e){var t,o,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t<r;t++)e[t]&&(o=zr(e[t]))&&(n&&(n+=" "),n+=o)}else for(o in e)e[o]&&(n&&(n+=" "),n+=o);return n}function El(){for(var e,t,o=0,n="",r=arguments.length;o<r;o++)(e=arguments[o])&&(t=zr(e))&&(n&&(n+=" "),n+=t);return n}const kl=(e,t)=>{const o=new Array(e.length+t.length);for(let n=0;n<e.length;n++)o[n]=e[n];for(let n=0;n<t.length;n++)o[e.length+n]=t[n];return o},Pl=(e,t)=>({classGroupId:e,validator:t}),Wr=(e=new Map,t=null,o)=>({nextPart:e,validators:t,classGroupId:o}),Mt="-",Vr=[],Nl="arbitrary..",Al=e=>{const t=Il(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]"))return Ol(a);const i=a.split(Mt),c=i[0]===""&&i.length>1?1:0;return Hr(i,c,t)},getConflictingClassGroupIds:(a,i)=>{if(i){const c=n[a],d=o[a];return c?d?kl(d,c):c:d||Vr}return o[a]||Vr}}},Hr=(e,t,o)=>{if(e.length-t===0)return o.classGroupId;const r=e[t],s=o.nextPart.get(r);if(s){const d=Hr(e,t+1,s);if(d)return d}const a=o.validators;if(a===null)return;const i=t===0?e.join(Mt):e.slice(t).join(Mt),c=a.length;for(let d=0;d<c;d++){const f=a[d];if(f.validator(i))return f.classGroupId}},Ol=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),o=t.indexOf(":"),n=t.slice(0,o);return n?Nl+n:void 0})(),Il=e=>{const{theme:t,classGroups:o}=e;return Tl(o,t)},Tl=(e,t)=>{const o=Wr();for(const n in e){const r=e[n];xo(r,o,n,t)}return o},xo=(e,t,o,n)=>{const r=e.length;for(let s=0;s<r;s++){const a=e[s];Ml(a,t,o,n)}},Ml=(e,t,o,n)=>{if(typeof e=="string"){_l(e,t,o);return}if(typeof e=="function"){Ll(e,t,o,n);return}Dl(e,t,o,n)},_l=(e,t,o)=>{const n=e===""?t:Ur(t,e);n.classGroupId=o},Ll=(e,t,o,n)=>{if(Fl(e)){xo(e(n),t,o,n);return}t.validators===null&&(t.validators=[]),t.validators.push(Pl(o,e))},Dl=(e,t,o,n)=>{const r=Object.entries(e),s=r.length;for(let a=0;a<s;a++){const[i,c]=r[a];xo(c,Ur(t,i),o,n)}},Ur=(e,t)=>{let o=e;const n=t.split(Mt),r=n.length;for(let s=0;s<r;s++){const a=n[s];let i=o.nextPart.get(a);i||(i=Wr(),o.nextPart.set(a,i)),o=i}return o},Fl=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,$l=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,o=Object.create(null),n=Object.create(null);const r=(s,a)=>{o[s]=a,t++,t>e&&(t=0,n=o,o=Object.create(null))};return{get(s){let a=o[s];if(a!==void 0)return a;if((a=n[s])!==void 0)return r(s,a),a},set(s,a){s in o?o[s]=a:r(s,a)}}},Co="!",jr=":",Rl=[],Gr=(e,t,o,n,r)=>({modifiers:e,hasImportantModifier:t,baseClassName:o,maybePostfixModifierPosition:n,isExternal:r}),Bl=e=>{const{prefix:t,experimentalParseClassName:o}=e;let n=r=>{const s=[];let a=0,i=0,c=0,d;const f=r.length;for(let p=0;p<f;p++){const v=r[p];if(a===0&&i===0){if(v===jr){s.push(r.slice(c,p)),c=p+1;continue}if(v==="/"){d=p;continue}}v==="["?a++:v==="]"?a--:v==="("?i++:v===")"&&i--}const m=s.length===0?r:r.slice(c);let g=m,h=!1;m.endsWith(Co)?(g=m.slice(0,-1),h=!0):m.startsWith(Co)&&(g=m.slice(1),h=!0);const b=d&&d>c?d-c:void 0;return Gr(s,h,g,b)};if(t){const r=t+jr,s=n;n=a=>a.startsWith(r)?s(a.slice(r.length)):Gr(Rl,!1,a,void 0,!0)}if(o){const r=n;n=s=>o({className:s,parseClassName:r})}return n},zl=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((o,n)=>{t.set(o,1e6+n)}),o=>{const n=[];let r=[];for(let s=0;s<o.length;s++){const a=o[s],i=a[0]==="[",c=t.has(a);i||c?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},Wl=e=>({cache:$l(e.cacheSize),parseClassName:Bl(e),sortModifiers:zl(e),...Al(e)}),Vl=/\s+/,Hl=(e,t)=>{const{parseClassName:o,getClassGroupId:n,getConflictingClassGroupIds:r,sortModifiers:s}=t,a=[],i=e.trim().split(Vl);let c="";for(let d=i.length-1;d>=0;d-=1){const f=i[d],{isExternal:m,modifiers:g,hasImportantModifier:h,baseClassName:b,maybePostfixModifierPosition:p}=o(f);if(m){c=f+(c.length>0?" "+c:c);continue}let v=!!p,y=n(v?b.substring(0,p):b);if(!y){if(!v){c=f+(c.length>0?" "+c:c);continue}if(y=n(b),!y){c=f+(c.length>0?" "+c:c);continue}v=!1}const w=g.length===0?"":g.length===1?g[0]:s(g).join(":"),x=h?w+Co:w,S=x+y;if(a.indexOf(S)>-1)continue;a.push(S);const N=r(y,v);for(let P=0;P<N.length;++P){const k=N[P];a.push(x+k)}c=f+(c.length>0?" "+c:c)}return c},Ul=(...e)=>{let t=0,o,n,r="";for(;t<e.length;)(o=e[t++])&&(n=Kr(o))&&(r&&(r+=" "),r+=n);return r},Kr=e=>{if(typeof e=="string")return e;let t,o="";for(let n=0;n<e.length;n++)e[n]&&(t=Kr(e[n]))&&(o&&(o+=" "),o+=t);return o},jl=(e,...t)=>{let o,n,r,s;const a=c=>{const d=t.reduce((f,m)=>m(f),e());return o=Wl(d),n=o.cache.get,r=o.cache.set,s=i,i(c)},i=c=>{const d=n(c);if(d)return d;const f=Hl(c,o);return r(c,f),f};return s=a,(...c)=>s(Ul(...c))},Gl=[],J=e=>{const t=o=>o[e]||Gl;return t.isThemeGetter=!0,t},Yr=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,qr=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Kl=/^\d+\/\d+$/,Yl=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ql=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Xl=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Zl=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ql=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ge=e=>Kl.test(e),z=e=>!!e&&!Number.isNaN(Number(e)),Ae=e=>!!e&&Number.isInteger(Number(e)),So=e=>e.endsWith("%")&&z(e.slice(0,-1)),ye=e=>Yl.test(e),Jl=()=>!0,ed=e=>ql.test(e)&&!Xl.test(e),Xr=()=>!1,td=e=>Zl.test(e),od=e=>Ql.test(e),nd=e=>!M(e)&&!_(e),rd=e=>Ke(e,ts,Xr),M=e=>Yr.test(e),_e=e=>Ke(e,os,ed),Eo=e=>Ke(e,ld,z),Zr=e=>Ke(e,Jr,Xr),sd=e=>Ke(e,es,od),_t=e=>Ke(e,ns,td),_=e=>qr.test(e),nt=e=>Ye(e,os),ad=e=>Ye(e,dd),Qr=e=>Ye(e,Jr),id=e=>Ye(e,ts),cd=e=>Ye(e,es),Lt=e=>Ye(e,ns,!0),Ke=(e,t,o)=>{const n=Yr.exec(e);return n?n[1]?t(n[1]):o(n[2]):!1},Ye=(e,t,o=!1)=>{const n=qr.exec(e);return n?n[1]?t(n[1]):o:!1},Jr=e=>e==="position"||e==="percentage",es=e=>e==="image"||e==="url",ts=e=>e==="length"||e==="size"||e==="bg-size",os=e=>e==="length",ld=e=>e==="number",dd=e=>e==="family-name",ns=e=>e==="shadow",ud=jl(()=>{const e=J("color"),t=J("font"),o=J("text"),n=J("font-weight"),r=J("tracking"),s=J("leading"),a=J("breakpoint"),i=J("container"),c=J("spacing"),d=J("radius"),f=J("shadow"),m=J("inset-shadow"),g=J("text-shadow"),h=J("drop-shadow"),b=J("blur"),p=J("perspective"),v=J("aspect"),y=J("ease"),w=J("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],S=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],N=()=>[...S(),_,M],P=()=>["auto","hidden","clip","visible","scroll"],k=()=>["auto","contain","none"],C=()=>[_,M,c],F=()=>[Ge,"full","auto",...C()],E=()=>[Ae,"none","subgrid",_,M],O=()=>["auto",{span:["full",Ae,_,M]},Ae,_,M],I=()=>[Ae,"auto",_,M],L=()=>["auto","min","max","fr",_,M],R=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],D=()=>["start","end","center","stretch","center-safe","end-safe"],$=()=>["auto",...C()],B=()=>[Ge,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],A=()=>[e,_,M],j=()=>[...S(),Qr,Zr,{position:[_,M]}],ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],he=()=>["auto","cover","contain",id,rd,{size:[_,M]}],we=()=>[So,nt,_e],Z=()=>["","none","full",d,_,M],X=()=>["",z,nt,_e],le=()=>["solid","dashed","dotted","double"],ge=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],T=()=>[z,So,Qr,Zr],K=()=>["","none",b,_,M],Q=()=>["none",z,_,M],H=()=>["none",z,_,M],G=()=>[z,_,M],Y=()=>[Ge,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ye],breakpoint:[ye],color:[Jl],container:[ye],"drop-shadow":[ye],ease:["in","out","in-out"],font:[nd],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ye],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ye],shadow:[ye],spacing:["px",z],text:[ye],"text-shadow":[ye],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ge,M,_,v]}],container:["container"],columns:[{columns:[z,M,_,i]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:N()}],overflow:[{overflow:P()}],"overflow-x":[{"overflow-x":P()}],"overflow-y":[{"overflow-y":P()}],overscroll:[{overscroll:k()}],"overscroll-x":[{"overscroll-x":k()}],"overscroll-y":[{"overscroll-y":k()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:F()}],"inset-x":[{"inset-x":F()}],"inset-y":[{"inset-y":F()}],start:[{start:F()}],end:[{end:F()}],top:[{top:F()}],right:[{right:F()}],bottom:[{bottom:F()}],left:[{left:F()}],visibility:["visible","invisible","collapse"],z:[{z:[Ae,"auto",_,M]}],basis:[{basis:[Ge,"full","auto",i,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[z,Ge,"auto","initial","none",M]}],grow:[{grow:["",z,_,M]}],shrink:[{shrink:["",z,_,M]}],order:[{order:[Ae,"first","last","none",_,M]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:O()}],"col-start":[{"col-start":I()}],"col-end":[{"col-end":I()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:O()}],"row-start":[{"row-start":I()}],"row-end":[{"row-end":I()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":L()}],"auto-rows":[{"auto-rows":L()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...R(),"normal"]}],"justify-items":[{"justify-items":[...D(),"normal"]}],"justify-self":[{"justify-self":["auto",...D()]}],"align-content":[{content:["normal",...R()]}],"align-items":[{items:[...D(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...D(),{baseline:["","last"]}]}],"place-content":[{"place-content":R()}],"place-items":[{"place-items":[...D(),"baseline"]}],"place-self":[{"place-self":["auto",...D()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:$()}],mx:[{mx:$()}],my:[{my:$()}],ms:[{ms:$()}],me:[{me:$()}],mt:[{mt:$()}],mr:[{mr:$()}],mb:[{mb:$()}],ml:[{ml:$()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:B()}],w:[{w:[i,"screen",...B()]}],"min-w":[{"min-w":[i,"screen","none",...B()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[a]},...B()]}],h:[{h:["screen","lh",...B()]}],"min-h":[{"min-h":["screen","lh","none",...B()]}],"max-h":[{"max-h":["screen","lh",...B()]}],"font-size":[{text:["base",o,nt,_e]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,_,Eo]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",So,M]}],"font-family":[{font:[ad,M,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,_,M]}],"line-clamp":[{"line-clamp":[z,"none",_,Eo]}],leading:[{leading:[s,...C()]}],"list-image":[{"list-image":["none",_,M]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",_,M]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:A()}],"text-color":[{text:A()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...le(),"wavy"]}],"text-decoration-thickness":[{decoration:[z,"from-font","auto",_,_e]}],"text-decoration-color":[{decoration:A()}],"underline-offset":[{"underline-offset":[z,"auto",_,M]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",_,M]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",_,M]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:j()}],"bg-repeat":[{bg:ee()}],"bg-size":[{bg:he()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ae,_,M],radial:["",_,M],conic:[Ae,_,M]},cd,sd]}],"bg-color":[{bg:A()}],"gradient-from-pos":[{from:we()}],"gradient-via-pos":[{via:we()}],"gradient-to-pos":[{to:we()}],"gradient-from":[{from:A()}],"gradient-via":[{via:A()}],"gradient-to":[{to:A()}],rounded:[{rounded:Z()}],"rounded-s":[{"rounded-s":Z()}],"rounded-e":[{"rounded-e":Z()}],"rounded-t":[{"rounded-t":Z()}],"rounded-r":[{"rounded-r":Z()}],"rounded-b":[{"rounded-b":Z()}],"rounded-l":[{"rounded-l":Z()}],"rounded-ss":[{"rounded-ss":Z()}],"rounded-se":[{"rounded-se":Z()}],"rounded-ee":[{"rounded-ee":Z()}],"rounded-es":[{"rounded-es":Z()}],"rounded-tl":[{"rounded-tl":Z()}],"rounded-tr":[{"rounded-tr":Z()}],"rounded-br":[{"rounded-br":Z()}],"rounded-bl":[{"rounded-bl":Z()}],"border-w":[{border:X()}],"border-w-x":[{"border-x":X()}],"border-w-y":[{"border-y":X()}],"border-w-s":[{"border-s":X()}],"border-w-e":[{"border-e":X()}],"border-w-t":[{"border-t":X()}],"border-w-r":[{"border-r":X()}],"border-w-b":[{"border-b":X()}],"border-w-l":[{"border-l":X()}],"divide-x":[{"divide-x":X()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":X()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...le(),"hidden","none"]}],"divide-style":[{divide:[...le(),"hidden","none"]}],"border-color":[{border:A()}],"border-color-x":[{"border-x":A()}],"border-color-y":[{"border-y":A()}],"border-color-s":[{"border-s":A()}],"border-color-e":[{"border-e":A()}],"border-color-t":[{"border-t":A()}],"border-color-r":[{"border-r":A()}],"border-color-b":[{"border-b":A()}],"border-color-l":[{"border-l":A()}],"divide-color":[{divide:A()}],"outline-style":[{outline:[...le(),"none","hidden"]}],"outline-offset":[{"outline-offset":[z,_,M]}],"outline-w":[{outline:["",z,nt,_e]}],"outline-color":[{outline:A()}],shadow:[{shadow:["","none",f,Lt,_t]}],"shadow-color":[{shadow:A()}],"inset-shadow":[{"inset-shadow":["none",m,Lt,_t]}],"inset-shadow-color":[{"inset-shadow":A()}],"ring-w":[{ring:X()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:A()}],"ring-offset-w":[{"ring-offset":[z,_e]}],"ring-offset-color":[{"ring-offset":A()}],"inset-ring-w":[{"inset-ring":X()}],"inset-ring-color":[{"inset-ring":A()}],"text-shadow":[{"text-shadow":["none",g,Lt,_t]}],"text-shadow-color":[{"text-shadow":A()}],opacity:[{opacity:[z,_,M]}],"mix-blend":[{"mix-blend":[...ge(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ge()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[z]}],"mask-image-linear-from-pos":[{"mask-linear-from":T()}],"mask-image-linear-to-pos":[{"mask-linear-to":T()}],"mask-image-linear-from-color":[{"mask-linear-from":A()}],"mask-image-linear-to-color":[{"mask-linear-to":A()}],"mask-image-t-from-pos":[{"mask-t-from":T()}],"mask-image-t-to-pos":[{"mask-t-to":T()}],"mask-image-t-from-color":[{"mask-t-from":A()}],"mask-image-t-to-color":[{"mask-t-to":A()}],"mask-image-r-from-pos":[{"mask-r-from":T()}],"mask-image-r-to-pos":[{"mask-r-to":T()}],"mask-image-r-from-color":[{"mask-r-from":A()}],"mask-image-r-to-color":[{"mask-r-to":A()}],"mask-image-b-from-pos":[{"mask-b-from":T()}],"mask-image-b-to-pos":[{"mask-b-to":T()}],"mask-image-b-from-color":[{"mask-b-from":A()}],"mask-image-b-to-color":[{"mask-b-to":A()}],"mask-image-l-from-pos":[{"mask-l-from":T()}],"mask-image-l-to-pos":[{"mask-l-to":T()}],"mask-image-l-from-color":[{"mask-l-from":A()}],"mask-image-l-to-color":[{"mask-l-to":A()}],"mask-image-x-from-pos":[{"mask-x-from":T()}],"mask-image-x-to-pos":[{"mask-x-to":T()}],"mask-image-x-from-color":[{"mask-x-from":A()}],"mask-image-x-to-color":[{"mask-x-to":A()}],"mask-image-y-from-pos":[{"mask-y-from":T()}],"mask-image-y-to-pos":[{"mask-y-to":T()}],"mask-image-y-from-color":[{"mask-y-from":A()}],"mask-image-y-to-color":[{"mask-y-to":A()}],"mask-image-radial":[{"mask-radial":[_,M]}],"mask-image-radial-from-pos":[{"mask-radial-from":T()}],"mask-image-radial-to-pos":[{"mask-radial-to":T()}],"mask-image-radial-from-color":[{"mask-radial-from":A()}],"mask-image-radial-to-color":[{"mask-radial-to":A()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":S()}],"mask-image-conic-pos":[{"mask-conic":[z]}],"mask-image-conic-from-pos":[{"mask-conic-from":T()}],"mask-image-conic-to-pos":[{"mask-conic-to":T()}],"mask-image-conic-from-color":[{"mask-conic-from":A()}],"mask-image-conic-to-color":[{"mask-conic-to":A()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:j()}],"mask-repeat":[{mask:ee()}],"mask-size":[{mask:he()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",_,M]}],filter:[{filter:["","none",_,M]}],blur:[{blur:K()}],brightness:[{brightness:[z,_,M]}],contrast:[{contrast:[z,_,M]}],"drop-shadow":[{"drop-shadow":["","none",h,Lt,_t]}],"drop-shadow-color":[{"drop-shadow":A()}],grayscale:[{grayscale:["",z,_,M]}],"hue-rotate":[{"hue-rotate":[z,_,M]}],invert:[{invert:["",z,_,M]}],saturate:[{saturate:[z,_,M]}],sepia:[{sepia:["",z,_,M]}],"backdrop-filter":[{"backdrop-filter":["","none",_,M]}],"backdrop-blur":[{"backdrop-blur":K()}],"backdrop-brightness":[{"backdrop-brightness":[z,_,M]}],"backdrop-contrast":[{"backdrop-contrast":[z,_,M]}],"backdrop-grayscale":[{"backdrop-grayscale":["",z,_,M]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[z,_,M]}],"backdrop-invert":[{"backdrop-invert":["",z,_,M]}],"backdrop-opacity":[{"backdrop-opacity":[z,_,M]}],"backdrop-saturate":[{"backdrop-saturate":[z,_,M]}],"backdrop-sepia":[{"backdrop-sepia":["",z,_,M]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",_,M]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[z,"initial",_,M]}],ease:[{ease:["linear","initial",y,_,M]}],delay:[{delay:[z,_,M]}],animate:[{animate:["none",w,_,M]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,_,M]}],"perspective-origin":[{"perspective-origin":N()}],rotate:[{rotate:Q()}],"rotate-x":[{"rotate-x":Q()}],"rotate-y":[{"rotate-y":Q()}],"rotate-z":[{"rotate-z":Q()}],scale:[{scale:H()}],"scale-x":[{"scale-x":H()}],"scale-y":[{"scale-y":H()}],"scale-z":[{"scale-z":H()}],"scale-3d":["scale-3d"],skew:[{skew:G()}],"skew-x":[{"skew-x":G()}],"skew-y":[{"skew-y":G()}],transform:[{transform:[_,M,"","none","gpu","cpu"]}],"transform-origin":[{origin:N()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Y()}],"translate-x":[{"translate-x":Y()}],"translate-y":[{"translate-y":Y()}],"translate-z":[{"translate-z":Y()}],"translate-none":["translate-none"],accent:[{accent:A()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:A()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",_,M]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",_,M]}],fill:[{fill:["none",...A()]}],"stroke-w":[{stroke:[z,nt,_e,Eo]}],stroke:[{stroke:["none",...A()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function Dt(...e){return ud(El(e))}function ko({...e}){return l.jsx(wl,{"data-slot":"popover",...e})}function Po({...e}){return l.jsx(xl,{"data-slot":"popover-trigger",...e})}function No({className:e,align:t="center",sideOffset:o=4,...n}){return l.jsx(Cl,{children:l.jsx(Sl,{"data-slot":"popover-content",align:t,sideOffset:o,className:Dt("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...n})})}function fd({field:e,formValues:t,handleChange:o,handleBlur:n,error:r}){const[s,a]=V.useState(!1),i=t[e.name]??{from:null,to:null},c=f=>o(e.name,f),d=()=>o(e.name,{from:null,to:null});return l.jsxs("div",{children:[l.jsxs(ko,{open:s,onOpenChange:a,children:[l.jsx(Po,{asChild:!0,children:l.jsxs("button",{type:"button",id:e.name,"aria-haspopup":"dialog","aria-expanded":s,onClick:()=>a(!0),onKeyDown:f=>f.key==="Enter"&&a(!0),className:`
|
|
48
48
|
inline-flex items-center justify-between gap-2
|
|
49
49
|
w-full h-9 rounded-md border bg-white
|
|
50
50
|
px-3 py-2 text-sm font-normal shadow-sm
|
|
@@ -87,4 +87,4 @@
|
|
|
87
87
|
`,children:"AM"}),l.jsx("button",{type:"button",onClick:()=>g("PM"),className:`
|
|
88
88
|
px-3 py-1 text-sm font-medium rounded
|
|
89
89
|
${m==="PM"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}
|
|
90
|
-
`,children:"PM"})]})]}),l.jsxs("div",{className:"flex items-center justify-between gap-2 border-t border-gray-200 pt-3",children:[l.jsx("button",{type:"button",onClick:p,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-gray-300 bg-white hover:bg-gray-100 hover:text-gray-900 h-9 px-4 py-2",children:"Clear"}),l.jsx("button",{type:"button",onClick:b,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-blue-600 text-white hover:bg-blue-700 h-9 px-4 py-2",children:"Done"})]})]})})]}),r&&l.jsx("p",{className:"mt-1 text-sm text-red-500",children:r})]})}function au({message:e}){return l.jsx("div",{className:"rounded-lg bg-red-50 border border-red-100 p-4 shadow-sm",children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx(el,{"aria-hidden":"true",className:"size-5 text-red-500 shrink-0"}),l.jsx("span",{className:"text-sm font-medium text-red-900",children:e})]})})}function iu({message:e}){return l.jsx("div",{className:"rounded-lg bg-amber-50 border border-amber-100 p-4 shadow-sm",children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx(Qc,{"aria-hidden":"true",className:"size-5 text-amber-600 shrink-0"}),l.jsx("span",{className:"text-sm font-medium text-amber-900",children:e})]})})}function cu({message:e}){return l.jsx("div",{className:"rounded-lg bg-green-50 border border-green-100 p-4 shadow-sm",children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx(Jc,{"aria-hidden":"true",className:"size-5 text-green-600 shrink-0"}),l.jsx("span",{className:"text-sm font-medium text-green-900",children:e})]})})}function lu({message:e}){return l.jsx("div",{className:"rounded-lg bg-blue-50 border border-blue-100 p-4 shadow-sm",children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx(ol,{"aria-hidden":"true",className:"size-5 text-blue-600 shrink-0"}),l.jsx("span",{className:"text-sm font-medium text-blue-900",children:e})]})})}function du({field:e}){const{variant:t="info",message:o,content:n}=e,r=o||n||"";switch(t.toLowerCase()){case"error":case"danger":return l.jsx(au,{message:r});case"success":return l.jsx(cu,{message:r});case"warning":case"warn":return l.jsx(iu,{message:r});case"info":case"information":default:return l.jsx(lu,{message:r})}}const Ps=({apiClient:e,api_URL:t,footerMode:o="normal",formDefinition:n,sendFormValues:r,children:s,defaultValues:a={},onFieldsChange:i=()=>{}})=>{const[c,d]=V.useState({...a}),[f,m]=V.useState({}),[g,h]=V.useState({}),[b,p]=V.useState({}),v=["hidden","html","linebreak","header","alert"],y=V.useMemo(()=>({file:rs,multifile:rs,dateRange:fd,date:ru,dayTimePicker:md,time:su,hidden:Os,multiselect:Is,select:nl,email:rl,litertext:sl,checkbox:al,radiogroup:ou,input:Or,textarea:pd,header:nu,alert:du,linebreak:Od}),[]),w=async(E,O=null)=>{if(!e){const I=`apiClient prop is required when using fields with optionsUrl. Field "${E.name}" requires optionsUrl but no apiClient was provided.`;console.error(I),st.toast.error(I);return}try{const I=await e(`/${E.optionsUrl}`);let L=[];E.type==="select"?L=[{value:"",label:`Select ${E.label.toLowerCase()}`},...I.data]:L=[...I.data.map(R=>({value:R.value,label:R.label}))],n.fields.forEach(R=>{R.name===E.name&&(R.options=L)})}catch(I){console.error(`Failed to load options for ${E.name}:`,I)}finally{}};V.useEffect(()=>{if(n?.fields&&n.fields.length>0){if(!n.fields.some(I=>I.value))return;n.fields.forEach(I=>{I.optionsUrl&&w(I)});const O={};n.fields.forEach(I=>{O[I.name]=a[I.name]??I.value??(I.type==="multiselect"?[]:"")}),d(O)}},[n]);const x=(E,O,I)=>{if(typeof E.disabled=="function"&&E.disabled(I)||E.disabled===!0)return null;const L=typeof O=="object"&&O!==null&&!Array.isArray(O)&&!(O instanceof Date),R=O==null||typeof O=="string"&&O.trim()===""||Array.isArray(O)&&O.length===0||E.type==="checkbox"&&O===!1||L&&Object.keys(O).length===0;if(E.required&&R)return`${E.label} is required`;if(R&&!E.required)return null;if(E.validate){const D=E.validate(O,I);if(D)return D}if(E.type==="email"&&O&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(O))return"Please enter a valid email address";if(E.type==="number"){if(E.min!==void 0&&O<E.min)return`${E.label} must be at least ${E.min}`;if(E.max!==void 0&&O>E.max)return`${E.label} must be no more than ${E.max}`}return E.type==="date"&&O&&!Do(O).isValid()?`${E.label} must be a valid date`:E.maxLength&&O&&O.length>E.maxLength?`${E.label} must not exceed ${E.maxLength} characters`:null},S=(E,O)=>{const I=n.fields.find(D=>D.name===E);if(!I)return;const L={...c};I.type==="multiselect"?L[E]=Array.isArray(O)?O:Array.from(O.target.selectedOptions).map(D=>D.value):I.type==="dateRange"?L[E]=[{startDate:O[0].from,endDate:O[0].to,key:"selection"}]:I.type==="dayTimePicker"?L[E]=O?Do(O).format("YYYY-MM-DD HH:mm:ss"):"":L[E]=O,I.type==="select"&&n.fields.forEach(D=>{D.showIf&&!D.showIf(L)&&(L[D.name]=D.type==="multiselect"?[]:"")}),n.fields.forEach(D=>{typeof D.disabled=="function"&&D.disabled(L)&&(L[D.name]=D.type==="multiselect"?[]:"")}),d(L);const R={};n.fields.forEach(D=>{const $=typeof D.disabled=="function"?D.disabled(c):!!D.disabled;if((!D.showIf||D.showIf(c))&&!$){const B=x(D,c[D.name],c);B&&(R[D.name]=B)}}),m(R),m(R)},N=E=>{h({...g,[E]:!0})},P=E=>{E.preventDefault();const O={};n.fields.forEach(L=>{O[L.name]=!0}),h(O);const I={};n.fields.forEach(L=>{if((!L.showIf||L.showIf(c))&&(!L.disabled||!L.disabled(c))){const R=x(L,c[L.name],c);R&&(I[L.name]=R)}}),m(I),Object.keys(I).length===0?r(c):st.toast.error("Please correct the errors in the form")};V.useEffect(()=>{i(c)},[c,i]);const k={green:"border-green-500 bg-green-50",blue:"border-blue-500 bg-blue-50",red:"border-red-500 bg-red-50",yellow:"border-yellow-500 bg-yellow-50",purple:"border-purple-500 bg-purple-50",indigo:"border-indigo-500 bg-indigo-50",gray:"border-gray-500 bg-gray-50",pink:"border-pink-500 bg-pink-50",orange:"border-orange-500 bg-orange-50"};function C(E,O,I){if(v.includes(O.type))return l.jsx("div",{className:O.fieldClass||"col-span-full",children:E});const L=O.containerStyle,R=O.color||"blue",D=L==="card"?`rounded-lg border text-card-foreground shadow-sm p-4 ${O.containerClassName||k[R]||k.blue}`:"",$=l.jsxs(l.Fragment,{children:[O.label&&l.jsxs("label",{htmlFor:O.name,className:"block text-sm font-medium mb-1",children:[O.label,O.required&&l.jsx("span",{className:"text-red-500 ml-1",children:"*"})]}),l.jsx("div",{children:E})]});return l.jsx("div",{className:`mb-4 ${O.fieldClass||"col-span-8"}`,children:L==="card"?l.jsx("div",{className:D,children:$}):$})}const F=E=>{if(E.showIf&&!E.showIf(c))return null;const O=y[E.type]||Or;c[E.name]===void 0&&(c[E.name]=E.value!==void 0?E.value:E.type==="multiselect"?[]:"");const I=g[E.name]&&f[E.name]?f[E.name]:null;return C(l.jsx(O,{field:E,formValues:c,handleChange:S,handleBlur:()=>N(E.name),setCharCounts:p,charCount:b[E.name]||0,api_URL:t,error:I}),E)};return l.jsxs("form",{onSubmit:P,className:"grid grid-cols-12 gap-x-4 mx-auto w-full ",children:[n?n.fields.map(E=>l.jsx("div",{className:"col-span-full",children:F(E)},E.name)):l.jsx("div",{children:"Loading..."}),l.jsx("div",{className:o==="sticky"?"absolute col-span-full w-full bottom-0 bg-white py-4 flex justify-end gap-2 z-50":"col-span-full mt-4 flex justify-end gap-2",children:s})]})};oe.DynamicForm=Ps,oe.default=Ps,Object.defineProperties(oe,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
90
|
+
`,children:"PM"})]})]}),l.jsxs("div",{className:"flex items-center justify-between gap-2 border-t border-gray-200 pt-3",children:[l.jsx("button",{type:"button",onClick:p,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-gray-300 bg-white hover:bg-gray-100 hover:text-gray-900 h-9 px-4 py-2",children:"Clear"}),l.jsx("button",{type:"button",onClick:b,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-blue-600 text-white hover:bg-blue-700 h-9 px-4 py-2",children:"Done"})]})]})})]}),r&&l.jsx("p",{className:"mt-1 text-sm text-red-500",children:r})]})}function au({message:e}){return l.jsx("div",{className:"rounded-lg bg-red-50 border border-red-100 p-4 shadow-sm",children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx(el,{"aria-hidden":"true",className:"size-5 text-red-500 shrink-0"}),l.jsx("span",{className:"text-sm font-medium text-red-900",children:e})]})})}function iu({message:e}){return l.jsx("div",{className:"rounded-lg bg-amber-50 border border-amber-100 p-4 shadow-sm",children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx(Qc,{"aria-hidden":"true",className:"size-5 text-amber-600 shrink-0"}),l.jsx("span",{className:"text-sm font-medium text-amber-900",children:e})]})})}function cu({message:e}){return l.jsx("div",{className:"rounded-lg bg-green-50 border border-green-100 p-4 shadow-sm",children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx(Jc,{"aria-hidden":"true",className:"size-5 text-green-600 shrink-0"}),l.jsx("span",{className:"text-sm font-medium text-green-900",children:e})]})})}function lu({message:e}){return l.jsx("div",{className:"rounded-lg bg-blue-50 border border-blue-100 p-4 shadow-sm",children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx(ol,{"aria-hidden":"true",className:"size-5 text-blue-600 shrink-0"}),l.jsx("span",{className:"text-sm font-medium text-blue-900",children:e})]})})}function du({field:e}){const{variant:t="info",message:o,content:n}=e,r=o||n||"";switch(t.toLowerCase()){case"error":case"danger":return l.jsx(au,{message:r});case"success":return l.jsx(cu,{message:r});case"warning":case"warn":return l.jsx(iu,{message:r});case"info":case"information":default:return l.jsx(lu,{message:r})}}const Ps=({apiClient:e,api_URL:t,footerMode:o="normal",formDefinition:n,sendFormValues:r,children:s,defaultValues:a={},onFieldsChange:i=()=>{}})=>{const[c,d]=V.useState({...a}),[f,m]=V.useState({}),[g,h]=V.useState({}),[b,p]=V.useState({}),v=["hidden","html","linebreak","header","alert"],y=V.useMemo(()=>({file:rs,multifile:rs,dateRange:fd,date:ru,dayTimePicker:md,time:su,hidden:Os,multiselect:Is,select:nl,email:rl,litertext:sl,checkbox:al,radiogroup:ou,input:Or,textarea:pd,header:nu,alert:du,linebreak:Od}),[]),w=async(E,O=null)=>{if(!e){const I=`apiClient prop is required when using fields with optionsUrl. Field "${E.name}" requires optionsUrl but no apiClient was provided.`;console.error(I),st.toast.error(I);return}try{const I=await e(`/${E.optionsUrl}`);let L=[];E.type==="select"?L=[{value:"",label:`Select ${E.label.toLowerCase()}`},...I.data]:L=[...I.data.map(R=>({value:R.value,label:R.label}))],n.fields.forEach(R=>{R.name===E.name&&(R.options=L)})}catch(I){console.error(`Failed to load options for ${E.name}:`,I)}finally{}};V.useEffect(()=>{if(n?.fields&&n.fields.length>0){if(!n.fields.some(I=>I.value))return;n.fields.forEach(I=>{I.optionsUrl&&w(I)});const O={};n.fields.forEach(I=>{O[I.name]=a[I.name]??I.value??(I.type==="multiselect"?[]:"")}),d(O)}},[n]);const x=(E,O,I)=>{if(typeof E.disabled=="function"&&E.disabled(I)||E.disabled===!0)return null;const L=typeof O=="object"&&O!==null&&!Array.isArray(O)&&!(O instanceof Date),R=O==null||typeof O=="string"&&O.trim()===""||Array.isArray(O)&&O.length===0||E.type==="checkbox"&&O===!1||L&&Object.keys(O).length===0;if(E.required&&R)return`${E.label} is required`;if(R&&!E.required)return null;if(E.validate){const D=E.validate(O,I);if(D)return D}if(E.type==="email"&&O&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(O))return"Please enter a valid email address";if(E.type==="number"){if(E.min!==void 0&&O<E.min)return`${E.label} must be at least ${E.min}`;if(E.max!==void 0&&O>E.max)return`${E.label} must be no more than ${E.max}`}return E.type==="date"&&O&&!Do(O).isValid()?`${E.label} must be a valid date`:E.maxLength&&O&&O.length>E.maxLength?`${E.label} must not exceed ${E.maxLength} characters`:null},S=(E,O)=>{const I=n.fields.find(D=>D.name===E);if(!I)return;const L={...c};I.type==="multiselect"?L[E]=Array.isArray(O)?O:Array.from(O.target.selectedOptions).map(D=>D.value):I.type==="dateRange"?L[E]=[{startDate:O[0].from,endDate:O[0].to,key:"selection"}]:I.type==="dayTimePicker"?L[E]=O?Do(O).format("YYYY-MM-DD HH:mm:ss"):"":L[E]=O,I.type==="select"&&n.fields.forEach(D=>{D.showIf&&!D.showIf(L)&&(L[D.name]=D.type==="multiselect"?[]:"")}),n.fields.forEach(D=>{typeof D.disabled=="function"&&D.disabled(L)&&(L[D.name]=D.type==="multiselect"?[]:"")}),d(L);const R={};n.fields.forEach(D=>{const $=typeof D.disabled=="function"?D.disabled(c):!!D.disabled;if((!D.showIf||D.showIf(c))&&!$){const B=x(D,c[D.name],c);B&&(R[D.name]=B)}}),m(R),m(R)},N=E=>{h({...g,[E]:!0})},P=E=>{E.preventDefault();const O={};n.fields.forEach(L=>{O[L.name]=!0}),h(O);const I={};n.fields.forEach(L=>{if((!L.showIf||L.showIf(c))&&(!L.disabled||!L.disabled(c))){const R=x(L,c[L.name],c);R&&(I[L.name]=R)}}),m(I),Object.keys(I).length===0?r(c):st.toast.error("Please correct the errors in the form")};V.useEffect(()=>{i(c)},[c,i]);const k={green:"border-green-500 bg-green-50",blue:"border-blue-500 bg-blue-50",red:"border-red-500 bg-red-50",yellow:"border-yellow-500 bg-yellow-50",purple:"border-purple-500 bg-purple-50",indigo:"border-indigo-500 bg-indigo-50",gray:"border-gray-500 bg-gray-50",pink:"border-pink-500 bg-pink-50",orange:"border-orange-500 bg-orange-50"};function C(E,O,I){if(v.includes(O.type))return l.jsx("div",{className:O.fieldClass||"col-span-full",children:E});const L=O.containerStyle,R=O.color||"blue",D=L==="card"?`rounded-lg border text-card-foreground shadow-sm p-4 ${O.containerClassName||k[R]||k.blue}`:"",$=l.jsxs(l.Fragment,{children:[O.label&&l.jsxs("label",{htmlFor:O.name,className:"block text-sm font-medium mb-1",children:[O.label,O.required&&l.jsx("span",{className:"text-red-500 ml-1",children:"*"})]}),O.override?l.jsx("div",{children:E}):l.jsx("div",{children:E})]});return l.jsx("div",{className:`mb-4 ${O.fieldClass||"col-span-8"}`,children:L==="card"?l.jsx("div",{className:D,children:$}):$})}const F=E=>{if(E.showIf&&!E.showIf(c))return null;const O=y[E.type]||Or;c[E.name]===void 0&&(c[E.name]=E.value!==void 0?E.value:E.type==="multiselect"?[]:"");const I=g[E.name]&&f[E.name]?f[E.name]:null;return C(l.jsx(O,{field:E,formValues:c,handleChange:S,handleBlur:()=>N(E.name),setCharCounts:p,charCount:b[E.name]||0,api_URL:t,error:I}),E)};return l.jsxs("form",{onSubmit:P,className:"grid grid-cols-12 gap-x-4 mx-auto w-full ",children:[n?n.fields.map(E=>l.jsx("div",{className:"col-span-full",children:F(E)},E.name+E.type)):l.jsx("div",{children:"Loading..."}),l.jsx("div",{className:o==="sticky"?"absolute col-span-full w-full bottom-0 bg-white py-4 flex justify-end gap-2 z-50":"col-span-full mt-4 flex justify-end gap-2",children:s})]})};oe.DynamicForm=Ps,oe.default=Ps,Object.defineProperties(oe,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-900:oklch(39.3% .095 152.535);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-500:oklch(58.5% .233 277.117);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-500:oklch(65.6% .241 354.308);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-1\/2{top:50%}.bottom-0{bottom:calc(var(--spacing)*0)}.left-1\/2{left:50%}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-7{grid-column:span 7/span 7}.col-span-8{grid-column:span 8/span 8}.col-span-9{grid-column:span 9/span 9}.col-span-10{grid-column:span 10/span 10}.col-span-11{grid-column:span 11/span 11}.col-span-12{grid-column:span 12/span 12}.col-span-full{grid-column:1/-1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-4{margin-block:calc(var(--spacing)*4)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-10{margin-top:calc(var(--spacing)*10)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.h-2{height:calc(var(--spacing)*2)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-full{height:100%}.h-px{height:1px}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-14{width:calc(var(--spacing)*14)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-\[420px\]{width:420px}.w-\[480px\]{width:480px}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-none{max-width:none}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-amber-100{border-color:var(--color-amber-100)}.border-blue-100{border-color:var(--color-blue-100)}.border-blue-500{border-color:var(--color-blue-500)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-500{border-color:var(--color-gray-500)}.border-green-100{border-color:var(--color-green-100)}.border-green-500{border-color:var(--color-green-500)}.border-indigo-500{border-color:var(--color-indigo-500)}.border-orange-500{border-color:var(--color-orange-500)}.border-pink-500{border-color:var(--color-pink-500)}.border-purple-500{border-color:var(--color-purple-500)}.border-red-100{border-color:var(--color-red-100)}.border-red-500{border-color:var(--color-red-500)}.border-yellow-500{border-color:var(--color-yellow-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-200{background-color:var(--color-blue-200)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-pink-50{background-color:var(--color-pink-50)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.fill-white{fill:var(--color-white)}.stroke-gray-200{stroke:var(--color-gray-200)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-3{padding-top:calc(var(--spacing)*3)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.text-amber-600{color:var(--color-amber-600)}.text-amber-900{color:var(--color-amber-900)}.text-black{color:var(--color-black)}.text-blue-600{color:var(--color-blue-600)}.text-blue-900{color:var(--color-blue-900)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-green-900{color:var(--color-green-900)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-900{color:var(--color-red-900)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-1\.5:after{content:var(--tw-content);height:calc(var(--spacing)*1.5)}.after\:w-1\.5:after{content:var(--tw-content);width:calc(var(--spacing)*1.5)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}@media(hover:hover){.hover\:border-blue-400:hover{border-color:var(--color-blue-400)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-red-700:hover{color:var(--color-red-700)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-blue-500:focus-visible{--tw-ring-color:var(--color-blue-500)}.focus-visible\:ring-red-500:focus-visible{--tw-ring-color:var(--color-red-500)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=checked\]\:border-blue-600[data-state=checked]{border-color:var(--color-blue-600)}.data-\[state\=checked\]\:bg-blue-50[data-state=checked]{background-color:var(--color-blue-50)}.data-\[state\=checked\]\:bg-blue-600[data-state=checked]{background-color:var(--color-blue-600)}.data-\[state\=checked\]\:text-blue-600[data-state=checked]{color:var(--color-blue-600)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media(min-width:40rem){.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-5{grid-column:span 5/span 5}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:col-span-7{grid-column:span 7/span 7}.sm\:col-span-8{grid-column:span 8/span 8}.sm\:col-span-9{grid-column:span 9/span 9}.sm\:col-span-10{grid-column:span 10/span 10}.sm\:col-span-11{grid-column:span 11/span 11}.sm\:col-span-12{grid-column:span 12/span 12}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.sm\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.sm\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.sm\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:48rem){.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-7{grid-column:span 7/span 7}.md\:col-span-8{grid-column:span 8/span 8}.md\:col-span-9{grid-column:span 9/span 9}.md\:col-span-10{grid-column:span 10/span 10}.md\:col-span-11{grid-column:span 11/span 11}.md\:col-span-12{grid-column:span 12/span 12}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.md\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.md\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-span-9{grid-column:span 9/span 9}.lg\:col-span-10{grid-column:span 10/span 10}.lg\:col-span-11{grid-column:span 11/span 11}.lg\:col-span-12{grid-column:span 12/span 12}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:80rem){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-5{grid-column:span 5/span 5}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:col-span-7{grid-column:span 7/span 7}.xl\:col-span-8{grid-column:span 8/span 8}.xl\:col-span-9{grid-column:span 9/span 9}.xl\:col-span-10{grid-column:span 10/span 10}.xl\:col-span-11{grid-column:span 11/span 11}.xl\:col-span-12{grid-column:span 12/span 12}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xl\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
|
|
1
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-900:oklch(39.3% .095 152.535);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-500:oklch(58.5% .233 277.117);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-500:oklch(62.7% .265 303.9);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-500:oklch(65.6% .241 354.308);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-1\/2{top:50%}.bottom-0{bottom:calc(var(--spacing)*0)}.left-1\/2{left:50%}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-7{grid-column:span 7/span 7}.col-span-8{grid-column:span 8/span 8}.col-span-9{grid-column:span 9/span 9}.col-span-10{grid-column:span 10/span 10}.col-span-11{grid-column:span 11/span 11}.col-span-12{grid-column:span 12/span 12}.col-span-full{grid-column:1/-1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-4{margin-block:calc(var(--spacing)*4)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.h-2{height:calc(var(--spacing)*2)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-full{height:100%}.h-px{height:1px}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-\[70vh\]{max-height:70vh}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-14{width:calc(var(--spacing)*14)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-none{max-width:none}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-amber-100{border-color:var(--color-amber-100)}.border-blue-100{border-color:var(--color-blue-100)}.border-blue-500{border-color:var(--color-blue-500)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-500{border-color:var(--color-gray-500)}.border-green-100{border-color:var(--color-green-100)}.border-green-500{border-color:var(--color-green-500)}.border-indigo-500{border-color:var(--color-indigo-500)}.border-orange-500{border-color:var(--color-orange-500)}.border-pink-500{border-color:var(--color-pink-500)}.border-purple-500{border-color:var(--color-purple-500)}.border-red-100{border-color:var(--color-red-100)}.border-red-500{border-color:var(--color-red-500)}.border-yellow-500{border-color:var(--color-yellow-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-200{background-color:var(--color-blue-200)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-green-50{background-color:var(--color-green-50)}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-pink-50{background-color:var(--color-pink-50)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-red-50{background-color:var(--color-red-50)}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.fill-white{fill:var(--color-white)}.stroke-gray-200{stroke:var(--color-gray-200)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-3{padding-top:calc(var(--spacing)*3)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.text-amber-600{color:var(--color-amber-600)}.text-amber-900{color:var(--color-amber-900)}.text-blue-600{color:var(--color-blue-600)}.text-blue-900{color:var(--color-blue-900)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-green-900{color:var(--color-green-900)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-900{color:var(--color-red-900)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-1\.5:after{content:var(--tw-content);height:calc(var(--spacing)*1.5)}.after\:w-1\.5:after{content:var(--tw-content);width:calc(var(--spacing)*1.5)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}@media(hover:hover){.hover\:border-blue-400:hover{border-color:var(--color-blue-400)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-red-700:hover{color:var(--color-red-700)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-blue-500:focus-visible{--tw-ring-color:var(--color-blue-500)}.focus-visible\:ring-red-500:focus-visible{--tw-ring-color:var(--color-red-500)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=checked\]\:border-blue-600[data-state=checked]{border-color:var(--color-blue-600)}.data-\[state\=checked\]\:bg-blue-50[data-state=checked]{background-color:var(--color-blue-50)}.data-\[state\=checked\]\:bg-blue-600[data-state=checked]{background-color:var(--color-blue-600)}.data-\[state\=checked\]\:text-blue-600[data-state=checked]{color:var(--color-blue-600)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media(min-width:40rem){.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-5{grid-column:span 5/span 5}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:col-span-7{grid-column:span 7/span 7}.sm\:col-span-8{grid-column:span 8/span 8}.sm\:col-span-9{grid-column:span 9/span 9}.sm\:col-span-10{grid-column:span 10/span 10}.sm\:col-span-11{grid-column:span 11/span 11}.sm\:col-span-12{grid-column:span 12/span 12}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.sm\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.sm\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.sm\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:48rem){.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-7{grid-column:span 7/span 7}.md\:col-span-8{grid-column:span 8/span 8}.md\:col-span-9{grid-column:span 9/span 9}.md\:col-span-10{grid-column:span 10/span 10}.md\:col-span-11{grid-column:span 11/span 11}.md\:col-span-12{grid-column:span 12/span 12}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.md\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.md\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-span-9{grid-column:span 9/span 9}.lg\:col-span-10{grid-column:span 10/span 10}.lg\:col-span-11{grid-column:span 11/span 11}.lg\:col-span-12{grid-column:span 12/span 12}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:80rem){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-5{grid-column:span 5/span 5}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:col-span-7{grid-column:span 7/span 7}.xl\:col-span-8{grid-column:span 8/span 8}.xl\:col-span-9{grid-column:span 9/span 9}.xl\:col-span-10{grid-column:span 10/span 10}.xl\:col-span-11{grid-column:span 11/span 11}.xl\:col-span-12{grid-column:span 12/span 12}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xl\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ynotsoft-dynamic-form",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.40",
|
|
4
4
|
"description": "DynamicForm React component library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/dynamic-form.umd.cjs",
|
|
@@ -62,4 +62,4 @@
|
|
|
62
62
|
"lucide-react": "^0.554.0",
|
|
63
63
|
"tailwind-merge": "^3.4.0"
|
|
64
64
|
}
|
|
65
|
-
}
|
|
65
|
+
}
|
package/README.md
DELETED
|
@@ -1,692 +0,0 @@
|
|
|
1
|
-
# DynamicForm Component - Complete Field Reference
|
|
2
|
-
|
|
3
|
-
## Install
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
npm install ynotsoft-dynamic-form
|
|
7
|
-
|
|
8
|
-
# install peer dependencies
|
|
9
|
-
npm install react-hot-toast dayjs react-select react-day-picker dompurify @radix-ui/react-label @radix-ui/react-popover @radix-ui/react-radio-group @radix-ui/react-select @radix-ui/react-separator @heroicons/react
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### Build the Library
|
|
14
|
-
|
|
15
|
-
From the root of the library (dynamic-form/):
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
npm run build
|
|
19
|
-
npm link
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### Link It Inside the Example App
|
|
23
|
-
|
|
24
|
-
Now connect the example app to the linked library:
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
cd ../example
|
|
28
|
-
npm link ynotsoft-dynamic-form
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Start the Example App
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
npm run dev
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### TODO:
|
|
38
|
-
|
|
39
|
-
- remove radixui as dependency, maybe replace with ShadCN and maintain it ourselves
|
|
40
|
-
|
|
41
|
-
## Overview
|
|
42
|
-
|
|
43
|
-
The DynamicForm component provides a flexible, declarative way to build forms with various field types, validation, conditional logic, and styling options.
|
|
44
|
-
|
|
45
|
-
## Basic Usage
|
|
46
|
-
|
|
47
|
-
```javascript
|
|
48
|
-
import DynamicForm from "./lib/DynamicForm/DynamicForm";
|
|
49
|
-
|
|
50
|
-
const formDefinition = {
|
|
51
|
-
fields: [
|
|
52
|
-
// Field definitions here
|
|
53
|
-
],
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
<DynamicForm
|
|
57
|
-
formDefinition={formDefinition}
|
|
58
|
-
defaultValues={{ name: "John Doe" }}
|
|
59
|
-
sendFormValues={(values) => console.log(values)}
|
|
60
|
-
onFieldsChange={(values) => console.log("Changed:", values)}
|
|
61
|
-
/>;
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## Field Types
|
|
67
|
-
|
|
68
|
-
### 1. Header Field
|
|
69
|
-
|
|
70
|
-
Used for section titles and form organization.
|
|
71
|
-
|
|
72
|
-
```javascript
|
|
73
|
-
{
|
|
74
|
-
type: 'header',
|
|
75
|
-
label: 'Personal Information',
|
|
76
|
-
size: 'xl', // 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl'
|
|
77
|
-
align: 'left', // 'left' | 'center' | 'right'
|
|
78
|
-
underline: true // Boolean - adds bottom border
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### 2. Input Field
|
|
83
|
-
|
|
84
|
-
Standard text input with shadcn/ui styling.
|
|
85
|
-
|
|
86
|
-
```javascript
|
|
87
|
-
{
|
|
88
|
-
name: 'fullName',
|
|
89
|
-
label: 'Full Name',
|
|
90
|
-
type: 'input',
|
|
91
|
-
required: true,
|
|
92
|
-
placeholder: 'Enter your name',
|
|
93
|
-
value: 'John Doe',
|
|
94
|
-
disabled: false,
|
|
95
|
-
maxLength: 100,
|
|
96
|
-
validate: (value) => {
|
|
97
|
-
if (value.length < 2) return 'Name must be at least 2 characters';
|
|
98
|
-
return null;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### 3. Email Field
|
|
104
|
-
|
|
105
|
-
Email input with validation and shadcn/ui styling.
|
|
106
|
-
|
|
107
|
-
```javascript
|
|
108
|
-
{
|
|
109
|
-
name: 'email',
|
|
110
|
-
label: 'Email Address',
|
|
111
|
-
type: 'email',
|
|
112
|
-
required: true,
|
|
113
|
-
placeholder: 'you@example.com',
|
|
114
|
-
value: 'john@example.com'
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### 4. TextArea Field
|
|
119
|
-
|
|
120
|
-
Multi-line text input.
|
|
121
|
-
|
|
122
|
-
```javascript
|
|
123
|
-
{
|
|
124
|
-
name: 'description',
|
|
125
|
-
label: 'Description',
|
|
126
|
-
type: 'textarea',
|
|
127
|
-
required: false,
|
|
128
|
-
placeholder: 'Enter description...',
|
|
129
|
-
rows: 4,
|
|
130
|
-
maxLength: 500,
|
|
131
|
-
showCharCount: true,
|
|
132
|
-
value: 'Initial description'
|
|
133
|
-
}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### 5. Select Field
|
|
137
|
-
|
|
138
|
-
Dropdown selection with single choice.
|
|
139
|
-
|
|
140
|
-
```javascript
|
|
141
|
-
{
|
|
142
|
-
name: 'country',
|
|
143
|
-
label: 'Country',
|
|
144
|
-
type: 'select',
|
|
145
|
-
required: true,
|
|
146
|
-
value: 'us',
|
|
147
|
-
options: [
|
|
148
|
-
{ value: '', label: 'Select a country' },
|
|
149
|
-
{ value: 'us', label: 'United States' },
|
|
150
|
-
{ value: 'uk', label: 'United Kingdom' },
|
|
151
|
-
{ value: 'ca', label: 'Canada' }
|
|
152
|
-
],
|
|
153
|
-
// Dynamic options from API
|
|
154
|
-
optionsUrl: '/api/countries',
|
|
155
|
-
dependsOn: 'region' // Reload when 'region' changes
|
|
156
|
-
}
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### 6. MultiSelect Field
|
|
160
|
-
|
|
161
|
-
Multiple selection dropdown.
|
|
162
|
-
|
|
163
|
-
```javascript
|
|
164
|
-
{
|
|
165
|
-
name: 'interests',
|
|
166
|
-
label: 'Interests',
|
|
167
|
-
type: 'multiselect',
|
|
168
|
-
required: true,
|
|
169
|
-
value: ['sports', 'tech'],
|
|
170
|
-
options: [
|
|
171
|
-
{ value: 'sports', label: 'Sports' },
|
|
172
|
-
{ value: 'music', label: 'Music' },
|
|
173
|
-
{ value: 'tech', label: 'Technology' },
|
|
174
|
-
{ value: 'travel', label: 'Travel' }
|
|
175
|
-
],
|
|
176
|
-
validate: (value) => {
|
|
177
|
-
if (value && value.length > 3) return 'Select up to 3 interests';
|
|
178
|
-
return null;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### 7. Checkbox Field
|
|
184
|
-
|
|
185
|
-
Single checkbox with flexible layouts and card styling.
|
|
186
|
-
|
|
187
|
-
```javascript
|
|
188
|
-
{
|
|
189
|
-
name: 'agreeTerms',
|
|
190
|
-
label: 'I agree to terms',
|
|
191
|
-
type: 'checkbox',
|
|
192
|
-
required: true,
|
|
193
|
-
value: false,
|
|
194
|
-
description: 'By checking this, you agree to our terms and conditions',
|
|
195
|
-
|
|
196
|
-
// Layout options
|
|
197
|
-
layout: 'inline', // 'inline' | 'stacked' | 'default'
|
|
198
|
-
|
|
199
|
-
// Card container styling
|
|
200
|
-
containerStyle: 'card', // Wraps in bordered card
|
|
201
|
-
color: 'blue', // 'green' | 'blue' | 'red' | 'yellow' | 'purple' | 'indigo' | 'gray' | 'pink' | 'orange'
|
|
202
|
-
}
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
**Checkbox Layouts:**
|
|
206
|
-
|
|
207
|
-
- `default`: Standard checkbox with label above
|
|
208
|
-
- `inline`: Checkbox and label side-by-side
|
|
209
|
-
- `stacked`: Checkbox, label, and description stacked vertically
|
|
210
|
-
|
|
211
|
-
### 8. Radio Group Field
|
|
212
|
-
|
|
213
|
-
Single selection from multiple options using Radix UI.
|
|
214
|
-
|
|
215
|
-
```javascript
|
|
216
|
-
{
|
|
217
|
-
name: 'paymentMethod',
|
|
218
|
-
label: 'Payment Method',
|
|
219
|
-
type: 'radiogroup',
|
|
220
|
-
required: true,
|
|
221
|
-
value: 'card',
|
|
222
|
-
options: [
|
|
223
|
-
{ value: 'card', label: 'Credit Card' },
|
|
224
|
-
{ value: 'paypal', label: 'PayPal' },
|
|
225
|
-
{ value: 'bank', label: 'Bank Transfer' }
|
|
226
|
-
],
|
|
227
|
-
|
|
228
|
-
// Layout options
|
|
229
|
-
inline: true, // Display options horizontally
|
|
230
|
-
|
|
231
|
-
// Color variants
|
|
232
|
-
color: 'blue', // 'green' | 'blue' | 'red' | 'yellow' | 'purple' | 'indigo' | 'gray' | 'pink' | 'orange'
|
|
233
|
-
|
|
234
|
-
// Card container styling
|
|
235
|
-
containerStyle: 'card',
|
|
236
|
-
color: 'green'
|
|
237
|
-
}
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
### 9. Date Picker Field
|
|
241
|
-
|
|
242
|
-
Single date selection with shadcn/ui calendar.
|
|
243
|
-
|
|
244
|
-
```javascript
|
|
245
|
-
{
|
|
246
|
-
name: 'birthDate',
|
|
247
|
-
label: 'Birth Date',
|
|
248
|
-
type: 'date',
|
|
249
|
-
required: true,
|
|
250
|
-
placeholder: 'Select date',
|
|
251
|
-
value: new Date('1990-01-01')
|
|
252
|
-
}
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
**Features:**
|
|
256
|
-
|
|
257
|
-
- Year/month dropdown selectors
|
|
258
|
-
- Clear and Done buttons
|
|
259
|
-
- Blue highlight for selected date
|
|
260
|
-
- Popover interface
|
|
261
|
-
|
|
262
|
-
### 10. Date Range Picker Field
|
|
263
|
-
|
|
264
|
-
Select date ranges (from/to).
|
|
265
|
-
|
|
266
|
-
```javascript
|
|
267
|
-
{
|
|
268
|
-
name: 'projectDates',
|
|
269
|
-
label: 'Project Timeline',
|
|
270
|
-
type: 'dateRange',
|
|
271
|
-
required: true,
|
|
272
|
-
placeholder: 'Select date range',
|
|
273
|
-
value: {
|
|
274
|
-
from: new Date('2025-01-01'),
|
|
275
|
-
to: new Date('2025-12-31')
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
### 11. Time Field
|
|
281
|
-
|
|
282
|
-
Time picker with AM/PM selection.
|
|
283
|
-
|
|
284
|
-
```javascript
|
|
285
|
-
{
|
|
286
|
-
name: 'appointmentTime',
|
|
287
|
-
label: 'Appointment Time',
|
|
288
|
-
type: 'time',
|
|
289
|
-
required: true,
|
|
290
|
-
placeholder: 'Select time',
|
|
291
|
-
value: '03:45 PM'
|
|
292
|
-
}
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
**Features:**
|
|
296
|
-
|
|
297
|
-
- Hour/minute spinners
|
|
298
|
-
- AM/PM toggle buttons
|
|
299
|
-
- Clear and Done buttons
|
|
300
|
-
- Format: "HH:MM AM/PM"
|
|
301
|
-
|
|
302
|
-
### 12. Date Time Picker Field
|
|
303
|
-
|
|
304
|
-
Combined date and time selection.
|
|
305
|
-
|
|
306
|
-
```javascript
|
|
307
|
-
{
|
|
308
|
-
name: 'meetingDateTime',
|
|
309
|
-
label: 'Meeting Date & Time',
|
|
310
|
-
type: 'dayTimePicker',
|
|
311
|
-
required: true,
|
|
312
|
-
value: new Date('2025-10-17T15:30:00')
|
|
313
|
-
}
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
### 13. File Upload Field
|
|
317
|
-
|
|
318
|
-
Single or multiple file uploads.
|
|
319
|
-
|
|
320
|
-
```javascript
|
|
321
|
-
{
|
|
322
|
-
name: 'documents',
|
|
323
|
-
label: 'Upload Documents',
|
|
324
|
-
type: 'file', // or 'multifile' for multiple
|
|
325
|
-
required: true,
|
|
326
|
-
accept: '.pdf,.doc,.docx,.jpg,.jpeg,.png',
|
|
327
|
-
maxSize: 5 * 1024 * 1024, // 5 MB
|
|
328
|
-
multiple: false
|
|
329
|
-
}
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
### 14. Hidden Field
|
|
333
|
-
|
|
334
|
-
Store hidden values in the form.
|
|
335
|
-
|
|
336
|
-
```javascript
|
|
337
|
-
{
|
|
338
|
-
name: 'userId',
|
|
339
|
-
type: 'hidden',
|
|
340
|
-
value: '12345'
|
|
341
|
-
}
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
### 15. HTML/Literal Field
|
|
345
|
-
|
|
346
|
-
Display rich HTML content (non-editable).
|
|
347
|
-
|
|
348
|
-
```javascript
|
|
349
|
-
{
|
|
350
|
-
type: 'litertext',
|
|
351
|
-
content: '<div class="alert">Important notice here</div>'
|
|
352
|
-
}
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
### 16. Alert Message Field
|
|
356
|
-
|
|
357
|
-
Display contextual alert messages with icons (info, success, warning, error).
|
|
358
|
-
|
|
359
|
-
```javascript
|
|
360
|
-
{
|
|
361
|
-
type: 'alert',
|
|
362
|
-
variant: 'info', // 'info' | 'success' | 'warning' | 'error' | 'danger'
|
|
363
|
-
message: 'This is an informational message'
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
// Success alert
|
|
367
|
-
{
|
|
368
|
-
type: 'alert',
|
|
369
|
-
variant: 'success',
|
|
370
|
-
message: 'Your form was submitted successfully!'
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
// Warning alert
|
|
374
|
-
{
|
|
375
|
-
type: 'alert',
|
|
376
|
-
variant: 'warning',
|
|
377
|
-
message: 'Please review your information before submitting'
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
// Error alert
|
|
381
|
-
{
|
|
382
|
-
type: 'alert',
|
|
383
|
-
variant: 'error',
|
|
384
|
-
message: 'There was an error processing your request'
|
|
385
|
-
}
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
**Features:**
|
|
389
|
-
|
|
390
|
-
- Color-coded backgrounds (blue, green, yellow, red)
|
|
391
|
-
- Icon indicators for each variant
|
|
392
|
-
- Clean, accessible design
|
|
393
|
-
- No user interaction required (display only)
|
|
394
|
-
|
|
395
|
-
### 17. Line Break Field
|
|
396
|
-
|
|
397
|
-
Add visual spacing between sections.
|
|
398
|
-
|
|
399
|
-
```javascript
|
|
400
|
-
{
|
|
401
|
-
type: "linebreak";
|
|
402
|
-
}
|
|
403
|
-
```
|
|
404
|
-
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
## Global Field Format Options
|
|
408
|
-
|
|
409
|
-
Apply consistent styling to all fields (except header, html, linebreak, hidden, alert):
|
|
410
|
-
|
|
411
|
-
```javascript
|
|
412
|
-
{
|
|
413
|
-
name: 'email',
|
|
414
|
-
label: 'Email',
|
|
415
|
-
type: 'email',
|
|
416
|
-
|
|
417
|
-
// Card container
|
|
418
|
-
containerStyle: 'card',
|
|
419
|
-
color: 'blue', // Card border/accent color
|
|
420
|
-
|
|
421
|
-
// Layout for checkbox/radio
|
|
422
|
-
layout: 'inline', // or 'stacked' | 'default'
|
|
423
|
-
inline: true, // For radio groups
|
|
424
|
-
}
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
---
|
|
428
|
-
|
|
429
|
-
## Advanced Features
|
|
430
|
-
|
|
431
|
-
### Conditional Display
|
|
432
|
-
|
|
433
|
-
Show/hide fields based on other values:
|
|
434
|
-
|
|
435
|
-
```javascript
|
|
436
|
-
{
|
|
437
|
-
name: 'state',
|
|
438
|
-
label: 'State',
|
|
439
|
-
type: 'select',
|
|
440
|
-
showIf: (values) => values.country === 'us',
|
|
441
|
-
options: [...]
|
|
442
|
-
}
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
### Conditional Disable
|
|
446
|
-
|
|
447
|
-
Disable fields based on conditions:
|
|
448
|
-
|
|
449
|
-
```javascript
|
|
450
|
-
{
|
|
451
|
-
name: 'billingAddress',
|
|
452
|
-
label: 'Billing Address',
|
|
453
|
-
type: 'input',
|
|
454
|
-
disabled: (values) => values.sameAsShipping === true
|
|
455
|
-
}
|
|
456
|
-
```
|
|
457
|
-
|
|
458
|
-
### Custom Validation
|
|
459
|
-
|
|
460
|
-
Field-level validation functions:
|
|
461
|
-
|
|
462
|
-
```javascript
|
|
463
|
-
{
|
|
464
|
-
name: 'password',
|
|
465
|
-
label: 'Password',
|
|
466
|
-
type: 'input',
|
|
467
|
-
validate: (value) => {
|
|
468
|
-
if (value.length < 8) return 'Password must be at least 8 characters';
|
|
469
|
-
if (!/[A-Z]/.test(value)) return 'Must contain uppercase letter';
|
|
470
|
-
if (!/[0-9]/.test(value)) return 'Must contain a number';
|
|
471
|
-
return null;
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
```
|
|
475
|
-
|
|
476
|
-
### Dynamic Options
|
|
477
|
-
|
|
478
|
-
Load options from API:
|
|
479
|
-
|
|
480
|
-
```javascript
|
|
481
|
-
{
|
|
482
|
-
name: 'city',
|
|
483
|
-
label: 'City',
|
|
484
|
-
type: 'select',
|
|
485
|
-
optionsUrl: '/api/cities',
|
|
486
|
-
dependsOn: 'state', // Reload when state changes
|
|
487
|
-
}
|
|
488
|
-
```
|
|
489
|
-
|
|
490
|
-
---
|
|
491
|
-
|
|
492
|
-
## Complete Example
|
|
493
|
-
|
|
494
|
-
```javascript
|
|
495
|
-
const formDefinition = {
|
|
496
|
-
fields: [
|
|
497
|
-
// Section Header
|
|
498
|
-
{
|
|
499
|
-
type: "header",
|
|
500
|
-
label: "Personal Information",
|
|
501
|
-
size: "xl",
|
|
502
|
-
underline: true,
|
|
503
|
-
},
|
|
504
|
-
|
|
505
|
-
// Alert Message
|
|
506
|
-
{
|
|
507
|
-
type: "alert",
|
|
508
|
-
variant: "info",
|
|
509
|
-
message:
|
|
510
|
-
"Please provide accurate information. All fields marked with * are required.",
|
|
511
|
-
},
|
|
512
|
-
|
|
513
|
-
// Input Field
|
|
514
|
-
{
|
|
515
|
-
name: "fullName",
|
|
516
|
-
label: "Full Name",
|
|
517
|
-
type: "input",
|
|
518
|
-
required: true,
|
|
519
|
-
placeholder: "John Doe",
|
|
520
|
-
containerStyle: "card",
|
|
521
|
-
color: "blue",
|
|
522
|
-
},
|
|
523
|
-
|
|
524
|
-
// Email Field
|
|
525
|
-
{
|
|
526
|
-
name: "email",
|
|
527
|
-
label: "Email",
|
|
528
|
-
type: "email",
|
|
529
|
-
required: true,
|
|
530
|
-
placeholder: "you@example.com",
|
|
531
|
-
},
|
|
532
|
-
|
|
533
|
-
// Date Picker
|
|
534
|
-
{
|
|
535
|
-
name: "birthDate",
|
|
536
|
-
label: "Birth Date",
|
|
537
|
-
type: "date",
|
|
538
|
-
required: true,
|
|
539
|
-
placeholder: "Select your birth date",
|
|
540
|
-
},
|
|
541
|
-
|
|
542
|
-
// Time Picker
|
|
543
|
-
{
|
|
544
|
-
name: "preferredTime",
|
|
545
|
-
label: "Preferred Contact Time",
|
|
546
|
-
type: "time",
|
|
547
|
-
placeholder: "Select time",
|
|
548
|
-
},
|
|
549
|
-
|
|
550
|
-
// Section Header
|
|
551
|
-
{
|
|
552
|
-
type: "header",
|
|
553
|
-
label: "Preferences",
|
|
554
|
-
size: "lg",
|
|
555
|
-
underline: true,
|
|
556
|
-
},
|
|
557
|
-
|
|
558
|
-
// Radio Group
|
|
559
|
-
{
|
|
560
|
-
name: "contactMethod",
|
|
561
|
-
label: "Preferred Contact Method",
|
|
562
|
-
type: "radiogroup",
|
|
563
|
-
required: true,
|
|
564
|
-
value: "email",
|
|
565
|
-
inline: true,
|
|
566
|
-
color: "green",
|
|
567
|
-
options: [
|
|
568
|
-
{ value: "email", label: "Email" },
|
|
569
|
-
{ value: "phone", label: "Phone" },
|
|
570
|
-
{ value: "sms", label: "SMS" },
|
|
571
|
-
],
|
|
572
|
-
},
|
|
573
|
-
|
|
574
|
-
// MultiSelect
|
|
575
|
-
{
|
|
576
|
-
name: "interests",
|
|
577
|
-
label: "Areas of Interest",
|
|
578
|
-
type: "multiselect",
|
|
579
|
-
value: [],
|
|
580
|
-
options: [
|
|
581
|
-
{ value: "sports", label: "Sports" },
|
|
582
|
-
{ value: "tech", label: "Technology" },
|
|
583
|
-
{ value: "travel", label: "Travel" },
|
|
584
|
-
{ value: "food", label: "Food & Dining" },
|
|
585
|
-
],
|
|
586
|
-
},
|
|
587
|
-
|
|
588
|
-
// Checkbox
|
|
589
|
-
{
|
|
590
|
-
name: "newsletter",
|
|
591
|
-
label: "Subscribe to newsletter",
|
|
592
|
-
type: "checkbox",
|
|
593
|
-
layout: "inline",
|
|
594
|
-
description: "Get weekly updates and special offers",
|
|
595
|
-
containerStyle: "card",
|
|
596
|
-
color: "purple",
|
|
597
|
-
},
|
|
598
|
-
|
|
599
|
-
// TextArea
|
|
600
|
-
{
|
|
601
|
-
name: "comments",
|
|
602
|
-
label: "Additional Comments",
|
|
603
|
-
type: "textarea",
|
|
604
|
-
rows: 4,
|
|
605
|
-
maxLength: 500,
|
|
606
|
-
showCharCount: true,
|
|
607
|
-
placeholder: "Any additional information...",
|
|
608
|
-
},
|
|
609
|
-
|
|
610
|
-
// File Upload
|
|
611
|
-
{
|
|
612
|
-
name: "documents",
|
|
613
|
-
label: "Upload Documents",
|
|
614
|
-
type: "file",
|
|
615
|
-
accept: ".pdf,.doc,.docx",
|
|
616
|
-
maxSize: 5 * 1024 * 1024,
|
|
617
|
-
},
|
|
618
|
-
],
|
|
619
|
-
};
|
|
620
|
-
|
|
621
|
-
// Usage
|
|
622
|
-
<DynamicForm
|
|
623
|
-
formDefinition={formDefinition}
|
|
624
|
-
defaultValues={{
|
|
625
|
-
fullName: "John Doe",
|
|
626
|
-
email: "john@example.com",
|
|
627
|
-
contactMethod: "email",
|
|
628
|
-
}}
|
|
629
|
-
sendFormValues={(values) => {
|
|
630
|
-
console.log("Form submitted:", values);
|
|
631
|
-
}}
|
|
632
|
-
onFieldsChange={(values) => {
|
|
633
|
-
console.log("Form changed:", values);
|
|
634
|
-
}}
|
|
635
|
-
/>;
|
|
636
|
-
```
|
|
637
|
-
|
|
638
|
-
---
|
|
639
|
-
|
|
640
|
-
## Styling Reference
|
|
641
|
-
|
|
642
|
-
### Card Container Colors
|
|
643
|
-
|
|
644
|
-
Available for `containerStyle='card'`:
|
|
645
|
-
|
|
646
|
-
- `green` - Green border and accent
|
|
647
|
-
- `blue` - Blue border and accent
|
|
648
|
-
- `red` - Red border and accent
|
|
649
|
-
- `yellow` - Yellow border and accent
|
|
650
|
-
- `purple` - Purple border and accent
|
|
651
|
-
- `indigo` - Indigo border and accent
|
|
652
|
-
- `gray` - Gray border and accent
|
|
653
|
-
- `pink` - Pink border and accent
|
|
654
|
-
- `orange` - Orange border and accent
|
|
655
|
-
|
|
656
|
-
### Header Sizes
|
|
657
|
-
|
|
658
|
-
- `sm` - Small header
|
|
659
|
-
- `md` - Medium header
|
|
660
|
-
- `lg` - Large header
|
|
661
|
-
- `xl` - Extra large (default)
|
|
662
|
-
- `2xl` - 2X large
|
|
663
|
-
- `3xl` - 3X large
|
|
664
|
-
- `4xl` - 4X large
|
|
665
|
-
|
|
666
|
-
### Layout Options (Checkbox/Radio)
|
|
667
|
-
|
|
668
|
-
- `default` - Standard vertical layout
|
|
669
|
-
- `inline` - Horizontal with label beside control
|
|
670
|
-
- `stacked` - Vertical with description below
|
|
671
|
-
|
|
672
|
-
---
|
|
673
|
-
|
|
674
|
-
## Props
|
|
675
|
-
|
|
676
|
-
### DynamicForm Props
|
|
677
|
-
|
|
678
|
-
- `formDefinition` - Object containing field definitions
|
|
679
|
-
- `defaultValues` - Initial form values
|
|
680
|
-
- `sendFormValues` - Callback when form is submitted
|
|
681
|
-
- `onFieldsChange` - Callback when any field changes
|
|
682
|
-
- `children` - Additional content (e.g., submit button)
|
|
683
|
-
|
|
684
|
-
---
|
|
685
|
-
|
|
686
|
-
## Notes
|
|
687
|
-
|
|
688
|
-
- All fields support `required`, `disabled`, `showIf` properties
|
|
689
|
-
- Fields are automatically validated on blur and submit
|
|
690
|
-
- Error messages display below invalid fields
|
|
691
|
-
- Form values are managed internally with React state
|
|
692
|
-
- shadcn/ui components used for consistent styling
|