@overmap-ai/forms 1.1.5-fields-json-types.0 → 1.1.5-fields-json-types.3

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.
@@ -1 +1 @@
1
- (function(c,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("react/jsx-runtime"),require("@overmap-ai/blocks"),require("class-variance-authority"),require("react"),require("@xyflow/react/dist/style.css"),require("@xyflow/react"),require("graphology-dag"),require("react-hook-form"),require("uuid"),require("@hello-pangea/dnd"),require("file-saver"),require("@overmap-ai/hooks"),require("react-zxing"),require("@dagrejs/dagre"),require("@adrekic/zod-fieldsjson"),require("graphology"),require("graphology-traversal"),require("lodash.get"),require("lodash.set")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@overmap-ai/blocks","class-variance-authority","react","@xyflow/react/dist/style.css","@xyflow/react","graphology-dag","react-hook-form","uuid","@hello-pangea/dnd","file-saver","@overmap-ai/hooks","react-zxing","@dagrejs/dagre","@adrekic/zod-fieldsjson","graphology","graphology-traversal","lodash.get","lodash.set"],n):(c=typeof globalThis<"u"?globalThis:c||self,n(c.forms={},c.jsxRuntime,c.blocks,c.classVarianceAuthority,c.React,null,c.react,c.graphologyDag,c.reactHookForm,c.uuid,c.dnd,c.fileSaver,c.hooks,c.reactZxing,c.Dagre,c.zodFieldsjson,c.graphology,c.graphologyTraversal,c.get,c.set))})(this,(function(c,n,a,R,d,ga,_,Mn,Y,F,Li,xn,fo,ho,In,qn,po,go,On,mo){"use strict";const Co=i=>i.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Vo=i=>i.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase()),_n=i=>{const e=Vo(i);return e.charAt(0).toUpperCase()+e.slice(1)},Tn=(...i)=>i.filter((e,t,r)=>!!e&&e.trim()!==""&&r.indexOf(e)===t).join(" ").trim(),yo=i=>{for(const e in i)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var vo={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const zo=d.forwardRef(({color:i="currentColor",size:e=24,strokeWidth:t=2,absoluteStrokeWidth:r,className:o="",children:l,iconNode:s,...f},u)=>d.createElement("svg",{ref:u,...vo,width:e,height:e,stroke:i,strokeWidth:r?Number(t)*24/Number(e):t,className:Tn("lucide",o),...!l&&!yo(f)&&{"aria-hidden":"true"},...f},[...s.map(([h,p])=>d.createElement(h,p)),...Array.isArray(l)?l:[l]]));const N=(i,e)=>{const t=d.forwardRef(({className:r,...o},l)=>d.createElement(zo,{ref:l,iconNode:e,className:Tn(`lucide-${Co(_n(i))}`,`lucide-${i}`,r),...o}));return t.displayName=_n(i),t};const So=N("align-justify",[["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 18h18",key:"1h113x"}],["path",{d:"M3 6h18",key:"d0wm0j"}]]);const wo=N("arrow-down-up",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"m21 8-4-4-4 4",key:"1c9v7m"}],["path",{d:"M17 4v16",key:"7dpous"}]]);const Fo=N("arrow-left-right",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]);const No=N("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);const H=N("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const ci=N("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const Bi=N("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);const bo=N("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const Mo=N("circle-dot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);const xo=N("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const Io=N("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);const En=N("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);const Ln=N("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]);const qo=N("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);const Bn=N("clipboard-paste",[["path",{d:"M11 14h10",key:"1w8e9d"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v1.344",key:"1e62lh"}],["path",{d:"m17 18 4-4-4-4",key:"z2g111"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113",key:"bjbb7m"}],["rect",{x:"8",y:"2",width:"8",height:"4",rx:"1",key:"ublpy"}]]);const Oo=N("copy-check",[["path",{d:"m12 15 2 2 4-4",key:"2c609p"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);const Ai=N("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);const An=N("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);const $n=N("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);const _o=N("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);const To=N("file",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);const Eo=N("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);const Lo=N("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);const Dn=N("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);const Pn=N("layout-panel-top",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}]]);const Bo=N("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);const Ao=N("list-checks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);const $o=N("list-todo",[["rect",{x:"3",y:"5",width:"6",height:"6",rx:"1",key:"1defrl"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);const Do=N("list",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);const Po=N("maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]]);const ui=N("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const jn=N("move-down",[["path",{d:"M8 18L12 22L16 18",key:"cskvfv"}],["path",{d:"M12 2V22",key:"r89rzk"}]]);const Un=N("move-up",[["path",{d:"M8 6L12 2L16 6",key:"1yvkyx"}],["path",{d:"M12 2V22",key:"r89rzk"}]]);const Z=N("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const jo=N("rectangle-ellipsis",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M7 12h.01",key:"eqddd0"}]]);const Uo=N("scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]);const ko=N("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const Go=N("square-check",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const Jo=N("square-dashed",[["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M21 14v1",key:"169vum"}]]);const kn=N("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);const Ho=N("text-cursor-input",[["path",{d:"M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6",key:"1528k5"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1",key:"1mj8rg"}],["path",{d:"M9 6v12",key:"velyjx"}]]);const Wo=N("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);const ve=N("trash",[["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);const $i=N("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);const Ko=N("video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]);const oe=N("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Di=d.memo(i=>{const{ref:e,file:t,className:r,error:o,rightSlot:l,size:s,...f}=i,u=()=>o?n.jsxs(n.Fragment,{children:[n.jsx(a.LuIcon,{icon:Bi,color:"var(--base-a11)"}),n.jsx(a.Text,{accentColor:"base",className:"truncate",size:s,children:o})]}):t?n.jsxs(n.Fragment,{children:[n.jsx(a.LuIcon,{icon:To,color:"var(--base-a11)"}),n.jsx(a.Text,{className:"truncate",size:s,children:t.name})]}):n.jsx(n.Fragment,{children:n.jsx("div",{className:"flex w-full justify-center",children:n.jsx(a.Spinner,{size:s})})});return n.jsxs(a.Card,{className:R.cx(r,"flex w-full items-center gap-2"),ref:e,size:"xs",...f,children:[u(),l]})});Di.displayName="FileCard";function Pe(i){return Array.isArray(i)?i.every(e=>typeof e=="string"):!1}class je{observers=new Set;notify(e){for(const t of this.observers)t(e)}observe(e){return this.observers.add(e),()=>{this.observers.delete(e)}}}class ze extends je{identifier;constructor(e){const{identifier:t}=e;super(),this.identifier=t}getOptions(){return{identifier:this.identifier}}setOptions(e){"identifier"in e&&e.identifier!==void 0&&(this.identifier=e.identifier),this.notify(this)}serialize(){return{type:this.type,identifier:this.identifier}}config(){return{type:this.type,identifier:this.identifier}}static _deserializeConfig(e){const{identifier:t,type:r}=e;return{identifier:t,type:r}}static _serializeConfig(e){const{identifier:t,type:r}=e;return{identifier:t,type:r}}}class b extends ze{label;description;required;image;constructor(e){const{label:t,description:r=null,required:o,image:l,...s}=e;super(s),this.label=t,this.description=r,this.required=o,this.image=l}getError(e){if(!(!this.required&&this.isValueBlank(e))){if(this.required&&this.isValueBlank(e))return"This field is required.";for(const t of this.getFieldValidators()){const r=t(e);if(r)return r}}}serialize(){return{...super.serialize(),label:this.label,description:this.description,required:this.required}}config(){return{...super.config(),label:this.label,description:this.description,required:this.required,image:this.image}}static _deserializeConfig(e){const{label:t,description:r,required:o,...l}=e;return{...ze._deserializeConfig(l),label:t,description:r,required:o}}static _serializeConfig(e){const{label:t,description:r,required:o,...l}=e;return{...ze._serializeConfig(l),label:t,description:r,required:o}}getOptions(){return{...super.getOptions(),label:this.label,description:this.description,required:this.required,image:this.image}}setOptions(e){"label"in e&&e.label!==void 0&&(this.label=e.label),"description"in e&&(this.description=e.description??null),"required"in e&&e.required!==void 0&&(this.required=e.required),"image"in e&&(this.image=e.image),super.setOptions(e)}isValueBlank(e){return this.areValuesEqual(e,this.blankValue())}cleanValue(e){return e}isValueClean(e){return this.areValuesEqual(e,this.cleanValue(e))}cleanSerializedValue(e){return e}isSerializedValueClean(e){return this.areSerializedValuesEqual(e,this.cleanSerializedValue(e))}isSerializedValueBlank(e){return this.areSerializedValuesEqual(e,this.blankSerializedValue())}getFieldValidators(){return[]}}const E=d.createContext({}),Pi=i=>{const[e,t]=d.useState(null);return d.useLayoutEffect(()=>{const r=URL.createObjectURL(i);return t(r),()=>{URL.revokeObjectURL(r)}},[i]),e},Oe=d.memo(i=>{const{file:e,...t}=i,r=Pi(e);return n.jsx("img",{src:r??void 0,alt:e.name,...t})});Oe.displayName="ImageFile";const Gn=d.createContext(()=>{throw new Error("No ImageViewerProvider found")}),fi=()=>d.useContext(Gn),ji=d.memo(i=>{const{file:e,onClose:t}=i,r=d.useCallback(()=>{xn.saveAs(e,e.name)},[e]);return n.jsx(a.Overlay.Root,{open:!0,onOpenChange:t,children:n.jsxs(a.Overlay.Content,{onOpenAutoFocus:a.preventDefault,children:[n.jsxs(a.ButtonGroup,{className:"absolute right-0 top-0 flex items-center gap-2 p-2",accentColor:"base",variant:"ghost",children:[n.jsxs(a.Tooltip.Root,{children:[n.jsx(a.Tooltip.Trigger,{asChild:!0,children:n.jsx(a.IconButton,{onClick:r,"aria-label":"download",children:n.jsx(a.LuIcon,{icon:An})})}),n.jsx(a.Tooltip.Content,{size:"sm",children:"Download"})]}),n.jsx(a.Separator,{orientation:"vertical",size:"sm"}),n.jsx(a.Overlay.Close,{asChild:!0,children:n.jsx(a.IconButton,{onClick:t,"aria-label":"close",children:n.jsx(a.LuIcon,{icon:oe})})})]}),n.jsx("figure",{className:"flex size-full items-center justify-center overflow-hidden p-4",children:n.jsx(Oe,{className:"max-h-full max-w-full",file:e})})]})})});ji.displayName="ImageViewer";const Jn=d.memo(i=>{const{children:e}=i,[t,r]=d.useState(null),o=d.useCallback(()=>{r(null)},[]),l=d.useCallback(f=>{r(f(o))},[o]),s=d.useCallback(()=>{t&&(t.onClose&&t.onClose(),o())},[o,t]);return n.jsxs(Gn.Provider,{value:l,children:[e,t&&n.jsx(ji,{file:t.file,onClose:s})]})});Jn.displayName="FileViewerProvider";const L=d.memo(i=>{const{label:e,error:t,description:r,required:o,children:l,inputId:s,image:f,size:u}=i,[h,p]=d.useState(void 0),g=fi();d.useEffect(()=>{f instanceof Promise?f.then(p).catch(console.error):p(f)},[f]);const m=d.useCallback(()=>{h&&g(()=>({file:h}))},[g,h]),C=o?`${e} *`:e;return n.jsxs("div",{className:"flex flex-col gap-1",children:[h&&n.jsx(Oe,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:h,onClick:m}),(!!e||!!r)&&n.jsxs("div",{className:"flex flex-col",children:[n.jsx("label",{className:"w-max max-w-full",htmlFor:s,children:n.jsx(a.Text,{size:u,className:"text-wrap",children:C})}),!!r&&n.jsx(a.Text,{accentColor:"base",size:u,children:r})]}),l,!!t&&n.jsx(a.Text,{accentColor:"danger",size:u,children:t})]})});L.displayName="InputWithLabel";const Hn=i=>i.map(e=>n.jsx(d.Fragment,{children:e.render()},e.identifier)),hi=i=>i.map(e=>n.jsx(d.Fragment,{children:e.render()},e.identifier)),P=i=>{const{field:e}=i,{field:{value:t,name:r,onChange:o,onBlur:l,disabled:s},fieldState:{isTouched:f,error:u}}=Y.useController({name:e.identifier});return{value:t,name:r,disabled:s,isTouched:f,error:u?.message??"",onChange:o,onBlur:l}},Wn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),[h,p]=d.useState(""),[g,m]=d.useState(""),C=d.useCallback(z=>{s(z),l()},[s,l]),v=d.useCallback(z=>{r&&r.findIndex(O=>O===z.target.value.trim())>=0?m("All options must be unique"):z.target.value?m(""):m("Option cannot be empty"),p(z.target.value)},[p,r]),S=d.useCallback(()=>{if(g)return;if(!h.trim()){m("Option cannot be empty");return}const z=h.trim();C([...r,z]),p("")},[h,g,C,r]),w=d.useCallback(z=>{z.key==="Enter"&&(z.preventDefault(),S())},[S]),y=d.useCallback(z=>{const O=Array.from(r);O.splice(z,1),C(O)},[r,C]),x=d.useCallback(z=>{if(!z.destination)return;const O=z.source.index,$=z.destination.index,G=Array.from(r),[te]=G.splice(O,1);G.splice($,0,te),C(G)},[C,r]),I=d.useCallback(()=>{l()},[l]);return n.jsx(Li.DragDropContext,{onDragEnd:x,children:n.jsxs(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:g||f,image:e.image,children:[(!u||r.length===0)&&n.jsxs("div",{className:"flex gap-2",children:[n.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"surface",size:t,children:n.jsx(a.Input.Field,{value:h,onChange:v,onKeyDown:w,id:e.identifier,placeholder:e.placeholder??"Press enter to add a new option",onBlur:I,name:o,disabled:u})}),n.jsx(a.IconButton,{size:t,accentColor:"base",variant:"soft",type:"button","aria-label":"Add option",disabled:!!g||u,onClick:S,children:n.jsx(a.LuIcon,{icon:Z})})]}),r.length!==0&&n.jsx(Li.Droppable,{droppableId:`${e.identifier}-droppable`,children:z=>n.jsxs("div",{className:"flex flex-col gap-1",...z.droppableProps,ref:z.innerRef,children:[r.map((O,$)=>n.jsx(Li.Draggable,{draggableId:`${O}-draggable`,index:$,isDragDisabled:u,children:({draggableProps:G,dragHandleProps:te,innerRef:De})=>n.jsxs(a.Badge,{...te,...G,ref:De,className:"flex items-center justify-between gap-2",accentColor:"base",size:t,variant:"soft",children:[n.jsx(a.Text,{className:"truncate",highContrast:!0,children:Ui(O).label}),n.jsx(a.IconButton,{className:"bg-transparent!",size:t,variant:"ghost",type:"button","aria-label":"Delete option",accentColor:"base",disabled:u,onClick:()=>{y($)},children:n.jsx(a.LuIcon,{icon:oe})})]})},`${e.identifier}-${O}-${$}`)),z.placeholder]})})]})})});Wn.displayName="MultiStringFieldInput";class ae extends b{type="multi-string";minimumLength;maximumLength;placeholder;constructor(e){const{minimumLength:t,maximumLength:r,placeholder:o,...l}=e;super(l),this.minimumLength=t,this.maximumLength=r,this.placeholder=o}render(){return n.jsx(Wn,{field:this})}serialize(){return{...super.serialize(),minimum_length:this.minimumLength,maximum_length:this.maximumLength,placeholder:this.placeholder}}config(){return{...super.config(),minimumLength:this.minimumLength,maximumLength:this.maximumLength,placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),minimumLength:this.minimumLength,maximumLength:this.maximumLength,placeholder:this.placeholder}}duplicate(e){return new ae({...this.getOptions(),identifier:e})}setOptions(e){"minimumLength"in e&&(this.minimumLength=e.minimumLength),"maximumLength"in e&&(this.maximumLength=e.maximumLength),"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}serializeValue(e){return e}deserializeValue(e){return e}getFieldValidators(){const e=super.getFieldValidators();return e.push(t=>{if(this.minimumLength!==void 0&&t.length<this.minimumLength)return`Must have at least ${this.minimumLength} options.`}),e.push(t=>{if(this.maximumLength!==void 0&&t.length>this.maximumLength)return`Must have at most ${this.maximumLength} options.`}),e}static deserialize(e){return new ae(e)}static fromConfig(e){return new ae(e)}static deserializeConfig(e){const{minimum_length:t,maximum_length:r,placeholder:o,...l}=e;return{...b._deserializeConfig(l),minimumLength:t,maximumLength:r,placeholder:o}}static serializeConfig(e){const{minimumLength:t,maximumLength:r,placeholder:o,...l}=e;return{...b._serializeConfig(l),minimum_length:t,maximum_length:r,placeholder:o}}isSerializedValue(e){return Pe(e)}isValue(e){return Pe(e)}blankValue(){return[]}areValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}}function Ui(i){return typeof i=="string"&&(i={label:i,value:i}),i}function _e(i){return i.map(Ui)}class Q extends b{options;constructor(e){const{options:t,...r}=e;super(r),this.options=_e(t)}serialize(){return{...super.serialize(),options:this.options}}config(){return{...super.config(),options:this.options}}static _deserializeConfig(e){const{options:t,...r}=e;return{...b._deserializeConfig(r),options:t}}static _serializeConfig(e){const{options:t,...r}=e;return{...b._serializeConfig(r),options:_e(t)}}getOptions(){return{...super.getOptions(),options:this.options}}setOptions(e){"options"in e&&e.options!==void 0&&(this.options=_e(e.options)),super.setOptions(e)}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new ae({label:"Options",description:"List possible options for the user to select from.",required:!0,identifier:`${t}options`,minimumLength:2}),showDirectly:!0}]}}const ki=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(g=>{s(!!g),l()},[l,s]),p=d.useCallback(()=>{l()},[l]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,error:f,image:e.image,required:e.required,children:n.jsx(a.Checkbox.Root,{id:e.identifier,name:o,checked:r??!1,onCheckedChange:h,onBlur:p,size:t,accentColor:"base",variant:"surface",disabled:u,children:n.jsx(a.Checkbox.Indicator,{children:n.jsx(a.LuIcon,{icon:H})})})})});ki.displayName="BooleanFieldInput";class le extends b{type="boolean";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}setOptions(e){super.setOptions(e)}duplicate(e){return new le({...this.getOptions(),identifier:e})}static deserialize(e){return new le(e)}static fromConfig(e){return new le(e)}static deserializeConfig(e){return b._deserializeConfig(e)}static serializeConfig(e){return b._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(ki,{field:this})}isSerializedValue(e){return typeof e=="boolean"}isValue(e){return typeof e=="boolean"}blankValue(){return!1}blankSerializedValue(){return!1}areSerializedValuesEqual(e,t){return e===t}areValuesEqual(e,t){return e===t}}const Kn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(m=>{const C=m.target.valueAsNumber,v=isNaN(C)?null:C;s(v)},[s]),p=d.useCallback(()=>{l()},[l]),g=d.useCallback(m=>{m.key==="Enter"&&m.preventDefault()},[]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsx(a.Input.Root,{accentColor:"base",variant:"surface",size:t,children:n.jsx(a.Input.Field,{id:e.identifier,name:o,onChange:h,onBlur:p,value:r??"",type:"number",min:e.minimum??Number.MIN_SAFE_INTEGER,max:e.maximum??Number.MAX_SAFE_INTEGER,step:e.integers?1:"any",placeholder:e.placeholder??"Enter a number",disabled:u,onKeyDown:g})})})});Kn.displayName="NumberFieldInput";class J extends b{type="number";minimum;maximum;integers;placeholder;constructor(e){const{minimum:t,maximum:r,integers:o,placeholder:l,...s}=e;super(s),this.minimum=t,this.maximum=r,this.integers=o,this.placeholder=l}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"Minimum",description:"Minimum value",integers:!0,required:!1,identifier:`${t}minimum`}),showDirectly:!1},{field:new J({label:"Maximum",description:"Maximum value",integers:!0,required:!1,identifier:`${t}maximum`}),showDirectly:!1},{field:new le({label:"Integers",description:"Whole numbers only",required:!1,identifier:`${t}integers`}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),t=this.minimum,r=this.maximum;return typeof t=="number"&&e.push(o=>{if(typeof o=="number"&&o<t)return`Must be at least ${this.minimum}.`}),e.push(o=>{if(typeof o=="number"&&o<Number.MIN_SAFE_INTEGER)return"Cant be less than MIN_SAFE_INTEGER."}),typeof r=="number"&&e.push(o=>{if(typeof o=="number"&&o>r)return`Must be at most ${r}.`}),e.push(o=>{if(typeof o=="number"&&o>Number.MAX_SAFE_INTEGER)return"Cant be greater than MAX_SAFE_INTEGER."}),this.integers&&e.push(o=>{if(typeof o=="number"&&!Number.isInteger(o))return"Must be a whole number."}),e}serialize(){return{...super.serialize(),minimum:this.minimum,maximum:this.maximum,integers:this.integers,placeholder:this.placeholder}}config(){return{...super.config(),minimum:this.minimum,maximum:this.maximum,integers:this.integers,placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),minimum:this.minimum,maximum:this.maximum,integers:this.integers,placeholder:this.placeholder}}duplicate(e){return new J({...this.getOptions(),identifier:e})}setOptions(e){"minimum"in e&&(this.minimum=e.minimum),"maximum"in e&&(this.maximum=e.maximum),"integers"in e&&(this.integers=e.integers),"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new J(e)}static fromConfig(e){return new J(e)}static deserializeConfig(e){const{minimum:t,maximum:r,integers:o,placeholder:l,...s}=e;return{...b._deserializeConfig(s),minimum:t,maximum:r,integers:o,placeholder:l}}static serializeConfig(e){const{minimum:t,maximum:r,integers:o=!1,placeholder:l,...s}=e;return{...b._serializeConfig(s),minimum:t,maximum:r,integers:o,placeholder:l}}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Kn,{field:this})}isSerializedValue(e){return this.isValue(e)}isValue(e){return typeof e=="number"&&!isNaN(e)||e===null}areValuesEqual(e,t){return e===t}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}}class Se extends b{minLength;maxLength;placeholder;constructor(e){const{minLength:t,maxLength:r,placeholder:o,...l}=e;super(l),this.minLength=t,this.maxLength=r,this.placeholder=o}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"Minimum length",description:"Minimum number of characters",required:!1,identifier:`${t}minimum_length`,minimum:0,integers:!0}),showDirectly:!1},{field:new J({label:"Maximum length",description:"Maximum number of characters",required:!1,identifier:`${t}maximum_length`,minimum:1,integers:!0}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),t=this.minLength,r=this.maxLength;return typeof t=="number"&&e.push(o=>{if(o.length<t)return`Minimum ${t} character(s).`}),typeof r=="number"&&e.push(o=>{if(o.length>r)return`Maximum ${r} character(s).`}),e}serialize(){return{...super.serialize(),minimum_length:this.minLength,maximum_length:this.maxLength,placeholder:this.placeholder}}config(){return{...super.config(),minLength:this.minLength,maxLength:this.maxLength,placeholder:this.placeholder}}static _deserializeConfig(e){const{maximum_length:t,minimum_length:r,placeholder:o,...l}=e;return{...b._deserializeConfig(l),minLength:r,maxLength:t,placeholder:o}}static _serializeConfig(e){const{minLength:t,maxLength:r,placeholder:o,...l}=e;return{...b._serializeConfig(l),minimum_length:t,maximum_length:r,placeholder:o}}getOptions(){return{...super.getOptions(),minLength:this.minLength,maxLength:this.maxLength,placeholder:this.placeholder}}setOptions(e){"minLength"in e&&(this.minLength=e.minLength),"maxLength"in e&&(this.maxLength=e.maxLength),"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}serializeValue(e){return e}deserializeValue(e){return e}isSerializedValue(e){return typeof e=="string"}isValue(e){return typeof e=="string"}blankValue(){return""}blankSerializedValue(){return""}areSerializedValuesEqual(e,t){return e===t}areValuesEqual(e,t){return e===t}}const Xn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(g=>{s(g),l()},[l,s]),p=d.useCallback(()=>{l()},[l]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsx(a.CheckboxGroup.Root,{id:e.identifier,name:o,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:t,values:r,onValuesChange:h,disabled:u,children:e.options.map((g,m)=>n.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[n.jsx(a.CheckboxGroup.Item,{value:g.value,onBlur:p,children:n.jsx(a.CheckboxGroup.ItemIndicator,{children:n.jsx(a.LuIcon,{icon:H})})}),n.jsx(a.Text,{size:t,accentColor:"base",className:"truncate",children:g.label})]},`${e.identifier}-${g.value}-${m}`))})})});Xn.displayName="CheckboxListFieldInput";class ee extends Q{type="checkbox-list";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new ee({...this.getOptions(),identifier:e})}static deserialize(e){return new ee(e)}static fromConfig(e){return new ee(e)}static deserializeConfig(e){return ee._deserializeConfig(e)}static serializeConfig(e){return ee._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Xn,{field:this})}isSerializedValue(e){if(!Pe(e))return!1;const t=new Set(this.options.map(({value:r})=>r));return e.every(r=>t.has(r))}isValue(e){return this.isSerializedValue(e)}blankValue(){return[]}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}areValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}}const Gi=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),[h,p]=d.useState(!1),g=d.useCallback(C=>{s(C??null),l(),p(!1)},[s,l]),m=d.useCallback(C=>{p(C),C||l()},[l]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs(a.Popover.Root,{open:h,onOpenChange:m,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:n.jsxs(a.Button,{id:e.identifier,name:o,type:"button",className:"!justify-between",accentColor:"base",variant:"surface",size:t,disabled:u,children:[n.jsx(a.Text,{className:"truncate",highContrast:!!r,children:r?r.toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit"}):"yyyy-mm-dd"}),n.jsx(a.LuIcon,{icon:ci})]})}),n.jsx(a.Popover.Content,{align:"start",size:t,children:n.jsx(a.DayPicker,{size:t,required:!1,mode:"single",variant:"solid",selected:r??void 0,onSelect:g})})]})})});Gi.displayName="DateFieldInput";class we extends b{type="date";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new we({...this.getOptions(),identifier:e})}static deserialize(e){return new we(e)}static fromConfig(e){return new we(e)}static deserializeConfig(e){return b._deserializeConfig(e)}static serializeConfig(e){return b._serializeConfig(e)}setOptions(e){super.setOptions(e)}serializeValue(e){return e?e.toISOString():null}deserializeValue(e){return e?new Date(e):null}render(){return n.jsx(Gi,{field:this})}isSerializedValue(e){return typeof e!="string"&&e!==null?!1:this.isValue(this.deserializeValue(e))}isValue(e){return!(!(e instanceof Date)&&e!==null||e instanceof Date&&isNaN(e.getTime()))}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}areValuesEqual(e,t){return!e&&!t?!0:!e||!t?!1:e.getTime()===t.getTime()}}var q=(i=>(i.Text="text",i.Selection="selection",i.Numeric="numeric",i.Temporal="temporal",i.Capture="capture",i.Assessment="assessment",i.Verification="verification",i))(q||{});const Yn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(g=>{s(g),l()},[l,s]),p=d.useCallback(g=>{g||l()},[l]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs(a.Menu.Root,{onOpenChange:p,align:"start",children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsxs(a.Button,{id:e.identifier,name:o,className:"!justify-between",variant:"surface",type:"button",size:t,accentColor:"base",disabled:u,children:[n.jsx(a.Text,{className:"truncate",highContrast:r&&r.length>0,children:r&&r.length>0?r.join(", "):e.placeholder??"Select one or more..."}),n.jsx(a.LuIcon,{icon:ci})]})}),n.jsx(a.Menu.Content,{size:t,children:n.jsx(a.Menu.Scroll,{children:n.jsxs(a.Menu.MultiSelectGroup,{values:r,onValuesChange:h,children:[n.jsxs(a.Menu.SelectAllItem,{children:[n.jsx(a.Menu.CheckboxItemIndicator,{children:g=>g?n.jsx(a.LuIcon,{icon:ui}):n.jsx(a.LuIcon,{icon:H})}),"Select all"]}),e.options.map((g,m)=>n.jsxs(a.Menu.MultiSelectItem,{value:g.value,children:[n.jsx(a.Menu.SelectedIndicator,{children:n.jsx(a.LuIcon,{icon:H})}),g.label]},`${e.identifier}-${g.value}-${m}`))]})})})]})})});Yn.displayName="MultiSelectFieldInput";class ie extends Q{type="multi-select";placeholder;constructor(e){const{placeholder:t,...r}=e;super(r),this.placeholder=t}serialize(){return{...super.serialize(),placeholder:this.placeholder}}config(){return{...super.config(),placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),placeholder:this.placeholder}}duplicate(e){return new ie({...this.getOptions(),identifier:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new ie(e)}static fromConfig(e){return new ie(e)}static deserializeConfig(e){const{placeholder:t,...r}=e;return{...Q._deserializeConfig(r),placeholder:t}}static serializeConfig(e){const{placeholder:t,...r}=e;return{...Q._serializeConfig(r),placeholder:t}}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Yn,{field:this})}isSerializedValue(e){if(!Pe(e))return!1;const t=new Set(this.options.map(({value:r})=>r));return e.every(r=>t.has(r))}isValue(e){return this.isSerializedValue(e)}blankValue(){return[]}areValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}}const Zn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(m=>{s(m??null),l()},[l,s]),p=d.useCallback(m=>{m||l()},[l]),g=d.useMemo(()=>e.options.find(m=>m.value===r),[e.options,r]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs(a.Menu.Root,{onOpenChange:p,align:"start",children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsxs(a.Button,{id:e.identifier,name:o,className:"!justify-between",accentColor:"base",variant:"surface",type:"button",size:t,disabled:u,children:[n.jsx(a.Text,{className:"truncate",highContrast:!!g,children:g?g.label:e.placeholder??"Select one..."}),n.jsx(a.LuIcon,{icon:ci})]})}),n.jsx(a.Menu.Content,{size:t,children:n.jsx(a.Menu.Scroll,{children:n.jsx(a.Menu.SelectGroup,{required:!1,value:r??void 0,onValueChange:h,children:e.options.map((m,C)=>n.jsxs(a.Menu.SelectItem,{value:m.value,children:[n.jsx(a.Menu.SelectedIndicator,{children:n.jsx(a.LuIcon,{icon:H})}),m.label]},`${e.identifier}-${m.value}-${C}`))})})})]})})});Zn.displayName="SelectFieldInput";class re extends Q{type="select";placeholder;constructor(e){const{placeholder:t,...r}=e;super(r),this.placeholder=t}serialize(){return{...super.serialize(),placeholder:this.placeholder}}config(){return{...super.config(),placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),placeholder:this.placeholder}}duplicate(e){return new re({...this.getOptions(),identifier:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new re(e)}static fromConfig(e){return new re(e)}static deserializeConfig(e){const{placeholder:t,...r}=e;return{...Q._deserializeConfig(r),placeholder:t}}static serializeConfig(e){const{placeholder:t,...r}=e;return{...Q._serializeConfig(r),placeholder:t}}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Zn,{field:this})}isSerializedValue(e){return typeof e!="string"&&e!==null?!1:new Set([null,...this.options.map(({value:r})=>r)]).has(e)}isValue(e){return this.isSerializedValue(e)}blankValue(){return null}areValuesEqual(e,t){return e===t}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}}const Qn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(m=>{s(m)},[s]),p=d.useCallback(()=>{l()},[l]),g=d.useMemo(()=>Array.from({length:e.length},()=>F.v4()),[e.length]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs(a.OneTimePasswordField.Root,{id:e.identifier,name:o,value:r,onValueChange:h,validationType:e.validationType,disabled:u,orientation:"horizontal",dir:"ltr",type:"text",autoComplete:"off",autoFocus:!1,autoSubmit:!1,className:"p-0.25 flex h-max w-full gap-1 overflow-x-auto",accentColor:"base",variant:"surface",size:t,onBlur:p,children:[g.map(m=>n.jsx(a.OneTimePasswordField.Input,{id:m},m)),n.jsx(a.OneTimePasswordField.HiddenInput,{})]})})});Qn.displayName="OTPFieldInput";class se extends b{type="otp";length;validationType;constructor(e){const{length:t,validationType:r,...o}=e;super(o),this.length=t,this.validationType=r}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"Length",integers:!0,required:!1,minimum:1,maximum:16,identifier:`${t}length`}),showDirectly:!1},{field:new re({label:"Type",required:!1,identifier:`${t}validationType`,options:[{value:"none",label:"Any"},{value:"numeric",label:"Numeric"},{value:"alpha",label:"Alpha"},{value:"alphanumeric",label:"Alphanumeric"}]}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),t=this.length;return e.push(r=>{if(r.length!=t)return`Must be ${t} characters.`}),e}serialize(){return{...super.serialize(),length:this.length,validationType:this.validationType}}config(){return{...super.config(),length:this.length,validationType:this.validationType}}getOptions(){return{...super.getOptions(),length:this.length,validationType:this.validationType}}duplicate(e){return new se({...this.getOptions(),identifier:e})}setOptions(e){"length"in e&&e.length!==void 0&&(this.length=e.length),"validationType"in e&&e.validationType!==void 0&&(this.validationType=e.validationType),super.setOptions(e)}static deserialize(e){return new se(e)}static fromConfig(e){return new se(e)}static deserializeConfig(e){const{length:t,validationType:r,...o}=e;return{...b._deserializeConfig(o),length:t,validationType:r}}static serializeConfig(e){const{length:t,validationType:r,...o}=e;return{...b._serializeConfig(o),length:t,validationType:r}}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Qn,{field:this})}isSerializedValue(e){return typeof e=="string"}isValue(e){return typeof e=="string"}blankValue(){return""}areValuesEqual(e,t){return e===t}blankSerializedValue(){return""}areSerializedValuesEqual(e,t){return e===t}}const Fe={pass:{label:"Pass",icon:bo},fail:{label:"Fail",icon:Io},na:{label:"N/A",icon:xo}},Te=Object.keys(Fe);class de extends File{uuid;constructor(e,...t){super(...t),this.uuid=e}static from(e,t){return new de(e,[t],t.name,{lastModified:t.lastModified,type:t.type})}}class Ne extends Promise{_uuid;constructor(e,t){super(e),this._uuid=t}get uuid(){return this._uuid}set uuid(e){this._uuid=e}static from(e,t){return new Ne((r,o)=>{Promise.resolve(e).then(r).catch(o)},t)}then(e,t){const r=super.then(e,t);return r.uuid=this.uuid,r}catch(e){const t=super.catch(e);return t.uuid=this.uuid,t}finally(e){const t=super.finally(e);return t.uuid=this.uuid,t}}function Rn(i){return Array.isArray(i)?i.every(e=>e instanceof Ne||e instanceof de):!1}function pi(i,e){const t=new Set(i.map(({uuid:o})=>o)),r=new Set(e.map(({uuid:o})=>o));return t.size===r.size&&t.isSubsetOf(r)}const Ji=d.memo(i=>{const{ref:e,file:t,error:r,rightSlot:o,className:l,size:s,...f}=i;return n.jsxs(a.Card,{className:R.cx(l,"p-0! relative flex h-48 w-full flex-col overflow-hidden"),ref:e,size:"xs",...f,children:[!t&&!r&&n.jsx("div",{className:"absolute inset-0 flex grow items-center justify-center",children:n.jsx(a.Spinner,{size:s})}),!!t&&!r&&n.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-hidden p-3",children:n.jsx(Oe,{className:"block size-full max-w-full object-cover",file:t})}),!!r&&n.jsx("div",{className:"grow"}),(!!t||!!r)&&n.jsxs(n.Fragment,{children:[n.jsx(a.Separator,{size:"full"}),n.jsxs("div",{className:"flex w-full shrink-0 items-center gap-2 self-end p-3",children:[r?n.jsx(a.LuIcon,{color:"var(--base-11)",icon:Bi}):t&&n.jsx(a.LuIcon,{color:"var(--base-11)",icon:Dn}),n.jsx(a.Text,{className:"truncate",size:s,children:r??t?.name}),o]})]})]})});Ji.displayName="ImageCard";const Hi=d.memo(i=>{const{file:e,...t}=i,r=Pi(e);return n.jsx("video",{src:r??void 0,...t})});Hi.displayName="VideoFile";const Wi=d.memo(i=>{const{ref:e,file:t,className:r,error:o,rightSlot:l,size:s,...f}=i;return n.jsxs(a.Card,{className:R.cx(r,"p-0! relative flex h-48 w-full flex-col overflow-hidden"),ref:e,size:"xs",...f,children:[!t&&!o&&n.jsx("div",{className:"absolute inset-0 flex grow items-center justify-center",children:n.jsx(a.Spinner,{size:s})}),!!t&&!o&&n.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-hidden p-3",children:n.jsx(Hi,{className:"block size-full max-w-full object-cover",file:t,controls:!0})}),!!o&&n.jsx("div",{className:"grow"}),(!!t||!!o)&&n.jsxs(n.Fragment,{children:[n.jsx(a.Separator,{size:"full"}),n.jsxs("div",{className:"flex w-full shrink-0 items-center gap-2 self-end p-3",children:[o?n.jsx(a.LuIcon,{color:"var(--danger-11)",icon:Bi}):t&&n.jsx(a.LuIcon,{color:"var(--base-11)",icon:Ko}),n.jsx(a.Text,{className:"truncate",size:s,children:o??t?.name}),l]})]})]})});Wi.displayName="VideoCard";const Ki=d.memo(i=>{const{fileOrPromise:e,onRemove:t,disabled:r,size:o}=i,[l,s]=d.useState(e instanceof Ne?null:e),[f,u]=d.useState(null),h=fi();fo.useActiveEffect(y=>{if(u(null),!(e instanceof Ne)){s(e);return}s(null),e.then(x=>{y()&&s(x)}).catch(x=>{y()&&u(x instanceof Error?x.message:"Unknown error")})},[e]);const p=d.useCallback(()=>{if(!l)return;const y=new Blob([l]);xn.saveAs(y,l.name)},[l]),g=d.useCallback(()=>{t(e)},[t,e]),m=d.useCallback(()=>{if(!l)return;const y=URL.createObjectURL(l);window.open(y,"_blank"),URL.revokeObjectURL(y)},[l]),C=d.useCallback(()=>{l&&h(y=>({file:l,onDelete:r?void 0:()=>{g(),y()}}))},[r,g,h,l]),v=d.useMemo(()=>n.jsx("div",{className:"flex grow justify-end",children:n.jsxs(a.Menu.Root,{modal:!0,children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.IconButton,{onClick:a.stopPropagation,type:"button",variant:"ghost",accentColor:"base",size:o,children:n.jsx(a.LuIcon,{icon:$n})})}),n.jsxs(a.Menu.Content,{size:o,children:[n.jsxs(a.Menu.Item,{onSelect:p,disabled:!l,children:[n.jsx(a.LuIcon,{icon:An})," Download"]}),r?null:n.jsxs(n.Fragment,{children:[n.jsx(a.Menu.Separator,{}),n.jsxs(a.Menu.Item,{onSelect:g,children:[n.jsx(a.LuIcon,{icon:ve})," Delete"]})]})]})]})}),[r,g,p,l,o]),S=!!l?.type.startsWith("image/"),w=!!l?.type.startsWith("video/");return S?n.jsx(Ji,{className:"cursor-pointer",onClick:C,file:l,error:f??void 0,rightSlot:v,size:o}):w?n.jsx(Wi,{className:"cursor-pointer",onClick:C,file:l,error:f??void 0,rightSlot:v,size:o}):n.jsx(Di,{className:"cursor-pointer",file:l,error:f??void 0,onClick:m,rightSlot:v,size:o})});Ki.displayName="DisplayFile";const et=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useRef(null),p=d.useCallback(z=>{const O=e.cleanValue({...r,status:z});s(O),l()},[e,l,s,r]),g=d.useCallback(z=>{const O=z.target.value,$={...r,notes:O};s($)},[r,s]),m=d.useCallback(()=>{l()},[l]),C=d.useCallback(z=>{const O=r.files.filter(({uuid:$})=>$!==z.uuid);s({...r,files:O}),l()},[s,l,r]),v=d.useCallback(()=>{h.current?.click()},[]),S=d.useCallback(z=>{const O=Array.from(z.target.files??[]).map(G=>de.from(F.v4(),G)),$={...r,files:[...r.files,...O]};s($),l()},[l,s,r]);d.useEffect(()=>{if(!h.current)return;const z=new AbortController;return h.current.addEventListener("cancel",()=>{l()},{signal:z.signal}),()=>{z.abort()}},[l,r]);const w=r.status&&e.showNotesAndFilesOn.includes(r.status),y=`${e.identifier}-status`,x=`${e.identifier}-notes`,I=`${e.identifier}-files`;return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsx(a.RadioGroup.Root,{id:y,className:"flex gap-2",name:o,value:r.status,disabled:u,accentColor:"base",variant:"surface",size:t,onValueChange:p,children:Te.map(z=>{const{label:O}=Fe[z];return n.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[n.jsx(a.RadioGroup.Item,{value:z,children:n.jsx(a.RadioGroup.Indicator,{children:n.jsx(a.LuIcon,{icon:En,className:"fill-current"})})}),n.jsx(a.Text,{size:t,accentColor:"base",className:"truncate",children:O})]},`${e.identifier}-${z}`)})}),w&&n.jsxs(n.Fragment,{children:[n.jsx("div",{children:n.jsx(a.TextArea,{id:x,value:r.notes??"",name:o,onChange:g,onBlur:m,className:"field-sizing-content min-h-12 w-full",placeholder:"Notes",resize:"vertical",accentColor:"base",variant:"surface",size:t,disabled:u})}),n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsxs(a.Button,{className:"w-max",size:t,variant:"surface",accentColor:"base",onClick:v,type:"button",disabled:u,children:[n.jsx(a.LuIcon,{icon:$i}),"Select files"]}),n.jsx("input",{id:I,name:o,type:"file",ref:h,multiple:!0,className:"hidden",onChange:S,value:""}),r.files.length>0&&n.jsx("div",{className:"flex h-max flex-wrap gap-2",children:r.files.map(z=>n.jsx(Ki,{size:t,fileOrPromise:z,onRemove:C,disabled:u},z.uuid))})]})]})]})})});et.displayName="PassFailFieldInput";const Xi=i=>typeof i=="string"&&Te.includes(i),it=i=>!(i===null||typeof i!="object"||!("status"in i)||!Xi(i.status)||!("notes"in i)||typeof i.notes!="string"||!("files"in i)||!(Array.isArray(i.files)&&i.files.length===0)),nt=i=>!(i===null||typeof i!="object"||!("status"in i)||!Xi(i.status)||!("notes"in i)||typeof i.notes!="string"||!("files"in i)||!Rn(i.files)),tt=i=>({status:i.status,notes:i.notes,files:[]}),rt=i=>({status:i.status,notes:i.notes,files:[]}),ot=(i,e)=>!(i.status!==e.status||i.notes!==e.notes||!pi(i.files,e.files)),at=(i,e)=>!(i.status!==e.status||i.notes!==e.notes||i.files.length!==e.files.length);class ce extends b{type="pass-fail";showNotesAndFilesOn;constructor(e){const{showNotesAndFilesOn:t,...r}=e;super(r),this.showNotesAndFilesOn=t}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new ie({identifier:`${t}showNotesAndFilesOn`,label:"Show notes and files on",description:"Show the notes and files on desired statuses.",options:Te.map(r=>{const{label:o}=Fe[r];return{value:r,label:o}}),required:!1}),showDirectly:!1}]}serialize(){return{...super.serialize(),showNotesAndFilesOn:this.showNotesAndFilesOn}}config(){return{...super.config(),showNotesAndFilesOn:this.showNotesAndFilesOn}}getOptions(){return{...super.getOptions(),showNotesAndFilesOn:this.showNotesAndFilesOn}}duplicate(e){return new ce({...this.getOptions(),identifier:e})}setOptions(e){"showNotesAndFilesOn"in e&&e.showNotesAndFilesOn!==void 0&&(this.showNotesAndFilesOn=e.showNotesAndFilesOn),super.setOptions(e)}getFieldValidators(){const e=super.getFieldValidators(),t=this.showNotesAndFilesOn,r=this.blankValue();return t.length>0&&(e.push(o=>{if(!(!o.status||!t.includes(o.status))&&r.notes===o.notes)return"Notes is required."}),e.push(o=>{if(!(!o.status||!t.includes(o.status))&&pi(r.files,o.files))return"Files is required."})),e}static deserialize(e){const{showNotesAndFilesOn:t,...r}=e;return new ce({...r,showNotesAndFilesOn:t})}static fromConfig(e){return new ce(e)}static deserializeConfig(e){const{showNotesAndFilesOn:t,...r}=e;return{...b._deserializeConfig(r),showNotesAndFilesOn:t}}static serializeConfig(e){const{showNotesAndFilesOn:t,...r}=e;return{...b._serializeConfig(r),showNotesAndFilesOn:t}}serializeValue(e){return tt(e)}deserializeValue(e){return rt(e)}render(){return n.jsx(et,{field:this})}isSerializedValue(e){return it(e)}isValue(e){return nt(e)}areValuesEqual(e,t){return ot(e,t)}blankValue(){return{status:null,notes:"",files:[]}}cleanValue(e){return e.status&&this.showNotesAndFilesOn.includes(e.status)?e:{status:e.status,notes:"",files:[]}}cleanSerializedValue(e){return super.cleanSerializedValue(e)}blankSerializedValue(){return{status:null,notes:"",files:[]}}areSerializedValuesEqual(e,t){return at(e,t)}}const lt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(m=>{s(m),l()},[l,s]),p=d.useCallback(()=>{l()},[l]),g=d.useCallback(()=>{s(null),l()},[l,s]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs(a.RadioGroup.Root,{id:e.identifier,name:o,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:t,value:r??"",onValueChange:h,disabled:u,children:[e.options.map((m,C)=>n.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[n.jsx(a.RadioGroup.Item,{value:m.value,onBlur:p,children:n.jsx(a.RadioGroup.Indicator,{children:n.jsx(a.LuIcon,{icon:En,className:"fill-current"})})}),n.jsx(a.Text,{size:t,accentColor:"base",className:"truncate",children:m.label})]},`${e.identifier}-${m.value}-${C}`)),!!r&&n.jsxs(a.Button,{onClick:g,className:"-mx-2 w-max",type:"button",variant:"ghost",accentColor:"base",size:t,children:[n.jsx(a.LuIcon,{icon:oe}),"Clear"]})]})})});lt.displayName="RadioFieldInput";class ue extends Q{type="radio";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new ue({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new ue(e)}static fromConfig(e){return new ue(e)}static deserializeConfig(e){return Q._deserializeConfig(e)}static serializeConfig(e){return Q._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(lt,{field:this})}isSerializedValue(e){return typeof e!="string"&&e!==null?!1:new Set([null,...this.options.map(({value:r})=>r)]).has(e)}isValue(e){return this.isSerializedValue(e)}blankValue(){return null}areValuesEqual(e,t){return e===t}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}}const Xo=R.cva(["group flex cursor-pointer items-center justify-center text-yellow-500 transition-colors disabled:pointer-events-none disabled:opacity-50"],{variants:{size:{xs:["size-5"],sm:["size-6"],md:["size-7"],lg:["size-8"],xl:["size-9"]}}}),st=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(m=>{s(m),l()},[l,s]),p=d.useCallback(()=>{s(null),l()},[l,s]),g=Array.from({length:e.maxRating},(m,C)=>C+1);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs("div",{className:"flex flex-row items-center gap-1",children:[n.jsx(a.Rating.Root,{id:e.identifier,name:o,className:"flex items-center gap-0.5",value:r,onValueChange:h,disabled:u,children:g.map(m=>n.jsx(a.Rating.Item,{value:m,className:Xo({size:t}),children:n.jsx(a.LuIcon,{icon:kn,className:"size-full group-data-[active=true]:fill-current"})},`${e.identifier}-${m}`))}),!u&&r!==null&&n.jsx(a.IconButton,{onClick:p,type:"button",variant:"ghost",accentColor:"base",size:t,children:n.jsx(a.LuIcon,{icon:oe})})]})})});st.displayName="RatingFieldInput";class fe extends b{type="rating";maxRating;constructor(e){const{maxRating:t,...r}=e;super(r),this.maxRating=t}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"Max Rating",description:"Maximum rating value",integers:!0,required:!1,minimum:1,maximum:10,identifier:`${t}maxRating`}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),t=this.maxRating;return e.push(r=>{if(typeof r=="number"&&(r<1||r>t))return`Rating must be between 1 and ${t}.`}),e}serialize(){return{...super.serialize(),maxRating:this.maxRating}}config(){return{...super.config(),maxRating:this.maxRating}}getOptions(){return{...super.getOptions(),maxRating:this.maxRating}}duplicate(e){return new fe({...this.getOptions(),identifier:e})}setOptions(e){"maxRating"in e&&e.maxRating!==void 0&&(this.maxRating=e.maxRating),super.setOptions(e)}static deserialize(e){return new fe(e)}static fromConfig(e){return new fe(e)}static deserializeConfig(e){const{maxRating:t,...r}=e;return{...b._deserializeConfig(r),maxRating:t}}static serializeConfig(e){const{maxRating:t,...r}=e;return{...b._serializeConfig(r),maxRating:t}}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(st,{field:this})}isSerializedValue(e){return this.isValue(e)}isValue(e){return typeof e=="number"&&!isNaN(e)||e===null}areValuesEqual(e,t){return e===t}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}}const Yi=d.createContext(null),dt=()=>{const i=d.use(Yi);if(!i)throw new Error("useScannerContext must be used within a component tree wrapped by ScannerProvider.");return i},Yo=()=>{const i=d.use(Yi);if(!i)throw new Error("useScanner must be used within a component tree wrapped by ScannerProvider.");return i.openScanner},gi=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,...s}=i;return n.jsxs(a.Overlay.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[!!e&&n.jsx(a.Overlay.Trigger,{asChild:!0,children:e}),n.jsxs(a.Overlay.Content,{children:[n.jsx(a.Overlay.Title,{className:"sr-only",children:"Scanner"}),n.jsx(a.Overlay.Description,{className:"sr-only",children:"Scan a barcode or a qr code."}),n.jsx(ct,{...s})]})]})});gi.displayName="Scanner";const ct=d.memo(i=>{const{paused:e,formats:t,timeBetweenDecodingAttempts:r,trySkew:o,onDecodeResult:l,onDecodeError:s,onError:f}=i,{wasmUrl:u}=dt(),{ref:h}=ho.useZxing({wasmUrl:u,paused:e,formats:t,timeBetweenDecodingAttempts:r,trySkew:o,onDecodeResult:l,onDecodeError:s,onError:f,constraints:{video:{width:{ideal:1920,min:1280},height:{ideal:1080,min:720},aspectRatio:{ideal:16/9},facingMode:"environment"}}});return n.jsxs("div",{className:"bg-(--color-background) flex size-full flex-col justify-center overflow-hidden",children:[n.jsx("div",{className:"flex w-full justify-end p-4",children:n.jsx(a.Overlay.Close,{asChild:!0,children:n.jsx(a.IconButton,{"aria-label":"close",variant:"soft",accentColor:"base",children:n.jsx(a.LuIcon,{icon:oe})})})}),n.jsx("div",{className:"max-h-full w-full grow overflow-hidden p-4",children:n.jsx("video",{className:"size-full",ref:h,muted:!0,playsInline:!0})})]})});ct.displayName="ScannerInternal";const ut=d.memo(i=>{const{children:e,wasmUrl:t}=i,[r,o]=d.useState(null),l=d.useCallback(()=>{o(null)},[]),s=d.useCallback(h=>{o(h(l))},[l]),f=d.useCallback(()=>{r&&(r.onClose&&r.onClose(),l())},[l,r]),u=d.useMemo(()=>({wasmUrl:t,openScanner:s}),[t,s]);return n.jsxs(Yi,{value:u,children:[e,r&&n.jsx(gi,{open:!0,onOpenChange:f,...r})]})});ut.displayName="ScannerProvider";const ft=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),[h,p]=d.useState(!1),g=d.useCallback(w=>{const y=w.target.value;s(y)},[s]),m=d.useCallback(()=>{l()},[l]),C=d.useCallback(w=>{s(w.rawValue.trim()),l(),p(!1)},[s,l]),v=d.useCallback(()=>{p(!0)},[]),S=d.useCallback(()=>{p(!1),l()},[l]);return n.jsxs(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:[n.jsx(a.TextArea,{className:"field-sizing-content w-full",accentColor:"base",variant:"surface",size:t,id:e.identifier,name:o,value:r??"",placeholder:"Enter a qr or barcode",onChange:g,onBlur:m,disabled:u}),n.jsxs(a.Button,{onClick:v,className:"w-max",type:"button",variant:"soft",size:t,accentColor:"base",disabled:u,children:[n.jsx(a.LuIcon,{icon:Po}),"Scan"]}),n.jsx(gi,{open:h,onDecodeResult:C,onOpenChange:S})]})});ft.displayName="ScanFieldInput";class be extends b{type="qr";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new be({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new be(e)}static fromConfig(e){return new be(e)}static deserializeConfig(e){return b._deserializeConfig(e)}static serializeConfig(e){return b._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(ft,{field:this})}isSerializedValue(e){return typeof e=="string"}isValue(e){return typeof e=="string"}blankValue(){return""}areValuesEqual(e,t){return e===t}blankSerializedValue(){return""}areSerializedValuesEqual(e,t){return e===t}}const ht=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(m=>{const C=m.target.value;s(C)},[s]),p=d.useCallback(()=>{l()},[l]),g=d.useCallback(m=>{m.key==="Enter"&&m.preventDefault()},[]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsx(a.Input.Root,{accentColor:"base",variant:"surface",size:t,children:n.jsx(a.Input.Field,{id:e.identifier,className:"truncate",name:o,value:r??"",type:"text",placeholder:e.placeholder??"Enter a short description",onChange:h,onBlur:p,disabled:u,onKeyDown:g})})})});ht.displayName="StringFieldInput";class he extends Se{type="string";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new he({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){const{maximum_length:t,minimum_length:r,...o}=e;return new he({...o,maxLength:t,minLength:r})}static fromConfig(e){return new he(e)}static deserializeConfig(e){return Se._deserializeConfig(e)}static serializeConfig(e){return Se._serializeConfig(e)}render(){return n.jsx(ht,{field:this})}}const pt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(g=>{const m=g.target.value;s(m)},[s]),p=d.useCallback(()=>{l()},[l]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsx(a.TextArea,{id:e.identifier,value:r??"",name:o,onChange:h,onBlur:p,className:"field-sizing-content min-h-12",placeholder:e.placeholder??"Enter a description",resize:"vertical",accentColor:"base",variant:"surface",size:t,disabled:u})})});pt.displayName="TextFieldInput";class pe extends Se{type="text";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new pe({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){const{maximum_length:t,minimum_length:r,...o}=e;return new pe({...o,maxLength:t,minLength:r})}static fromConfig(e){return new pe(e)}static deserializeConfig(e){return Se._deserializeConfig(e)}static serializeConfig(e){return Se._serializeConfig(e)}render(){return n.jsx(pt,{field:this})}}const Zi=Zo(),gt=new Set(Zi);function Zo(i=!0){const e=new Set;for(let t=-12;t<=14;t++){const r=t>=0?"+":"-",o=Math.abs(t).toString().padStart(2,"0");e.add(`${r}${o}:00`)}if(i){const t=[-12.5,-9.5,-3.5,3.5,4.5,5.5,6.5,9.5,10.5,12.5];for(const r of t){const o=r>=0?"+":"-",l=Math.floor(Math.abs(r)).toString().padStart(2,"0");e.add(`${o}${l}:30`)}}return Array.from(e).sort((t,r)=>mt(t)-mt(r))}function mt(i){const e=i[0]==="+"?1:-1,t=Number(i.slice(1,3)),r=Number(i.slice(4,6));return e*(t*60+r)}const Qo="+00:00",Ro=/^T([01]\d|2[0-3]):([0-5]\d):00([+-]\d{2}:\d{2})$/,mi=i=>typeof i=="string"&&gt.has(i),Ct=()=>{const i=-new Date().getTimezoneOffset(),e=i>=0?"+":"-",t=Math.abs(i),r=Math.floor(t/60),o=t%60,l=`${e}${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`;return mi(l)?l:Qo};function Vt(i){const e=/^([+-])(\d{2}):(\d{2})$/.exec(i);if(!e)throw new Error(`Invalid UTC offset: ${i}`);return(e[1]==="+"?1:-1)*(Number(e[2])*60+Number(e[3]))}const Ue=i=>{const e=Ro.exec(i);if(!e)return null;const t=e[3];return mi(t)?{hours:Number(e[1]),minutes:Number(e[2]),utcOffset:t}:null},B=i=>typeof i=="string"&&Ue(i)!==null,Qi=(i,e,t=Ct())=>{if(!Number.isInteger(i)||i<0||i>23)throw new Error(`Invalid hour: ${i}`);if(!Number.isInteger(e)||e<0||e>59)throw new Error(`Invalid minute: ${e}`);if(!mi(t))throw new Error("Unsupported UTC offset");const r=i.toString().padStart(2,"0"),o=e.toString().padStart(2,"0");return`T${r}:${o}:00${t}`},Ci=i=>`UTC${i}`,ge=i=>{const e=Ue(i);if(!e)throw new Error(`Invalid time value: ${i}`);return(e.hours*60+e.minutes-Vt(e.utcOffset)+1440)%1440},Vi=(i,e=!0)=>{const t=Ue(i);if(!t)throw new Error(`Invalid time value: ${i}`);const r=(t.hours%12||12).toString().padStart(2,"0"),o=t.minutes.toString().padStart(2,"0"),l=t.hours>=12?"PM":"AM",s=`${r}:${o} ${l}`;return e?`${s} ${Ci(t.utcOffset)}`:s},ke=i=>typeof i=="object"&&(B(i.from)||B(i.to)),Ri=(i,e)=>{const t=ge(i),r=e.from?ge(e.from):null,o=e.to?ge(e.to):null;return r===null&&o===null?!0:r===null?t<=o:o===null?t>=r:r<=o?t>=r&&t<=o:t>=r||t<=o},yi=d.memo(i=>{const{value:e,onChange:t,onBlur:r,disabled:o,size:l="md",id:s,name:f,compact:u=!1}=i,h=e?Ue(e):null,p=h?`${h.hours.toString().padStart(2,"0")}:${h.minutes.toString().padStart(2,"0")}`:"",g=d.useCallback(v=>{const S=v.target.value;if(!S){t(null);return}const[w,y]=S.split(":").map(Number);t(Qi(w,y,h?.utcOffset))},[t,h?.utcOffset]),m=d.useCallback(v=>{h&&(t(Qi(h.hours,h.minutes,v)),r?.())},[r,t,h]),C=d.useCallback(v=>{v||r?.()},[r]);return n.jsxs("div",{className:"flex min-w-0 gap-2",children:[n.jsx(a.Input.Root,{className:"min-w-0 grow",accentColor:"base",variant:"surface",size:l,children:n.jsx(a.Input.Field,{id:s,name:f,className:R.cx("[&::-webkit-calendar-picker-indicator]:invert-40 dark:[&::-webkit-calendar-picker-indicator]:invert-60",{"[&::-webkit-datetime-edit]:opacity-60":!e}),type:"time",step:60,value:p,onChange:g,onBlur:r,disabled:o})}),n.jsxs(a.Menu.Root,{align:"end",onOpenChange:C,children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsxs(a.Button,{type:"button",className:u?"!justify-between":"min-w-32 !justify-between",accentColor:"base",variant:"surface",size:l,disabled:o||!h,children:[n.jsx(a.Text,{className:"truncate",highContrast:!!h,children:h?Ci(h.utcOffset):"UTC offset"}),n.jsx(a.LuIcon,{icon:ci})]})}),n.jsx(a.Menu.Content,{size:l,children:n.jsx(a.Menu.Scroll,{children:n.jsx(a.Menu.SelectGroup,{required:!0,value:h?.utcOffset,onValueChange:m,children:Zi.map(v=>n.jsxs(a.Menu.SelectItem,{value:v,children:[n.jsx(a.Menu.SelectedIndicator,{children:n.jsx(a.LuIcon,{icon:H})}),Ci(v)]},v))})})})]})]})});yi.displayName="TimeFieldControl";const en=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e});return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsx(yi,{id:e.identifier,name:o,size:t,value:r,onChange:s,onBlur:l,disabled:u})})});en.displayName="TimeFieldInput";class Me extends b{type="time";constructor(e){super(e)}static deserialize(e){return new Me(e)}static fromConfig(e){return new Me(e)}static deserializeConfig(e){return b._deserializeConfig(e)}static serializeConfig(e){return b._serializeConfig(e)}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new Me({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(en,{field:this})}isSerializedValue(e){return e===null||B(e)}isValue(e){return e===null||B(e)}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}areValuesEqual(e,t){return e===t}}const yt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useRef(null),p=d.useCallback(()=>{h.current?.click()},[]),g=d.useCallback(()=>{if(!h.current)return;const y=h.current.files;if(!y){l();return}const x=Array.from(y).map(z=>de.from(F.v4(),z)),I=[...r,...x];s(I),l()},[l,s,r]),m=d.useCallback(y=>{const x=r.filter(({uuid:I})=>I!==y.uuid);s(x),l()},[r,s,l]);d.useEffect(()=>{if(!h.current)return;const y=new AbortController;return h.current.addEventListener("cancel",()=>{l()},{signal:y.signal}),()=>{y.abort()}},[l,r]);const C=e.maximumFiles!==1,w=C?"Select files":"Select a file";return n.jsxs(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:[n.jsxs(a.Button,{className:"w-max",size:t,variant:"surface",accentColor:"base",onClick:p,type:"button",disabled:u,children:[n.jsx(a.LuIcon,{icon:$i}),w]}),n.jsx("input",{id:e.identifier,name:o,type:"file",ref:h,accept:e.extensions?.join(","),multiple:C,className:"hidden",onChange:g,value:""}),r.length>0&&n.jsx("div",{className:"mt-1 flex h-max flex-col gap-2",children:r.map(y=>n.jsx(Ki,{size:t,fileOrPromise:y,onRemove:m,disabled:u},y.uuid))})]})});yt.displayName="UploadFieldInput";class me extends b{type="upload";extensions;maximumSize;maximumFiles;constructor(e){const{extensions:t,maximumFiles:r,maximumSize:o,...l}=e;super(l),this.maximumSize=o,this.maximumFiles=r,this.extensions=t}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"How many files can be uploaded?",description:"By default, only one file can be uploaded.",required:!1,minimum:0,identifier:`${t}maximumFiles`,integers:!0}),showDirectly:!1},{field:new J({label:"What is the maximum size of each file?",description:"Maximum file size in MB.",required:!1,identifier:`${t}maximumSize`,minimum:0,integers:!0}),showDirectly:!1},{field:new ie({label:"Accepted file types",description:"Types of allowed files to upload. If left blank, all files will be accepted.",required:!1,identifier:`${t}extensions`,options:[{value:"image/*",label:"Images"},{value:"audio/*",label:"Audio files"},{value:"video/*",label:"Videos"},{value:"text/*",label:"Text files"},{value:"application/*",label:"Application files (includes PDFs and Word documents)"}]}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),t=this.maximumSize,r=t&&t*1e3*1e3,o=this.maximumFiles;return typeof t=="number"&&typeof r=="number"&&e.push(l=>{if(l.some(s=>s instanceof de&&s.size>r))return`Files must be at most ${t}MB.`}),typeof o=="number"&&e.push(l=>{if(l.length>o)return`You can only upload ${o} files.`}),e}serialize(){return{...super.serialize(),extensions:this.extensions,maximum_size:this.maximumSize,maximum_files:this.maximumFiles}}config(){return{...super.config(),extensions:this.extensions,maximumSize:this.maximumSize,maximumFiles:this.maximumFiles}}getOptions(){return{...super.getOptions(),extensions:this.extensions,maximumSize:this.maximumSize,maximumFiles:this.maximumFiles}}duplicate(e){return new me({...this.getOptions(),identifier:e})}setOptions(e){"maximumSize"in e&&(this.maximumSize=e.maximumSize),"maximumFiles"in e&&(this.maximumFiles=e.maximumFiles),"extensions"in e&&(this.extensions=e.extensions),super.setOptions(e)}static deserialize(e){const{maximum_size:t,maximum_files:r,...o}=e;return new me({...o,maximumSize:t,maximumFiles:r})}static fromConfig(e){return new me(e)}static deserializeConfig(e){const{extensions:t,maximum_size:r,maximum_files:o,...l}=e;return{...b._deserializeConfig(l),extensions:t,maximumSize:r,maximumFiles:o}}static serializeConfig(e){const{extensions:t,maximumSize:r,maximumFiles:o,...l}=e;return{...b._serializeConfig(l),extensions:t,maximum_size:r,maximum_files:o}}serializeValue(e){return[]}deserializeValue(e){return[]}render(){return n.jsx(yt,{field:this})}isSerializedValue(e){return Array.isArray(e)&&e.length===0}isValue(e){return Array.isArray(e)?e.every(t=>t instanceof Ne||t instanceof de):!1}areValuesEqual(e,t){return pi(e,t)}blankValue(){return[]}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){return e.length===t.length}}const vt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(E),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(C=>{const v=C.target.value;v!==""&&!URL.canParse(v)||s(v!==""?new URL(v):null)},[s]),p=d.useCallback(()=>{l()},[l]),g=d.useCallback(C=>{C.key==="Enter"&&C.preventDefault()},[]),m=d.useCallback(()=>{r!==null&&window.open(r,"_blank","noopener,noreferrer")},[r]);return n.jsx(L,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs("div",{className:"flex w-full gap-2",children:[n.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"surface",size:t,children:n.jsx(a.Input.Field,{id:e.identifier,className:"truncate",name:o,value:r?r.toString():"",type:"url",inputMode:"url",placeholder:e.placeholder??"https://example.com",onChange:h,onBlur:p,disabled:u,onKeyDown:g})}),n.jsx(a.IconButton,{size:t,variant:"soft",accentColor:"base",type:"button",disabled:r===null,onClick:m,children:n.jsx(a.LuIcon,{icon:_o})})]})})});vt.displayName="URLFieldInput";class xe extends b{type="url";placeholder;constructor(e){const{placeholder:t,...r}=e;super(r),this.placeholder=t}serialize(){return{...super.serialize(),placeholder:this.placeholder}}config(){return{...super.config(),placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),placeholder:this.placeholder}}duplicate(e){return new xe({...this.getOptions(),identifier:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new xe(e)}static fromConfig(e){return new xe(e)}static deserializeConfig(e){const{placeholder:t,...r}=e;return{...b._deserializeConfig(r),placeholder:t}}static serializeConfig(e){const{placeholder:t,...r}=e;return{...b._serializeConfig(r),placeholder:t}}serializeValue(e){return e?.toString()??null}deserializeValue(e){return e===null?null:new URL(e)}isSerializedValue(e){return e===null?!0:typeof e!="string"?!1:URL.canParse(e)}isValue(e){return e===null||e instanceof URL}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}areValuesEqual(e,t){return e?.toString()===t?.toString()}render(){return n.jsx(vt,{field:this})}}const Ee={date:we,time:Me,number:J,boolean:le,select:re,string:he,url:xe,text:pe,upload:me,qr:be,"multi-string":ae,"multi-select":ie,radio:ue,"checkbox-list":ee,"pass-fail":ce,otp:se,rating:fe},zt=Object.keys(Ee),T={"checkbox-list":{description:"Allows the user to select a multiple options from a list.",group:q.Selection,icon:Oo,name:"Checkbox list"},"multi-select":{description:"Allows the user to select a multiple options from a list of options.",group:q.Selection,icon:Ao,name:"Multi-select"},"multi-string":{description:"Allows the user to provide multiple unique strings.",group:q.Text,icon:Do,name:"Multi-string"},"pass-fail":{description:"Track pass, fail, or N/A outcome.",group:q.Assessment,icon:qo,name:"Pass - Fail"},boolean:{description:"Perfect for both optional and required yes/no questions.",group:q.Selection,icon:Go,name:"Checkbox"},date:{description:"Allows specifying a date.",group:q.Temporal,icon:No,name:"Date"},time:{description:"Allows specifying a time and UTC offset.",group:q.Temporal,icon:Wo,name:"Time"},number:{description:"Allows specifying a number within a given range.",group:q.Numeric,icon:Lo,name:"Number"},otp:{description:"Allows specifying a number within a given range.",group:q.Verification,icon:jo,name:"OTP"},qr:{description:"Used for scanning/reading QR and barcodes.",group:q.Capture,icon:Uo,name:"Scan"},radio:{description:"Allows the user to select a single option from a list of options.",group:q.Selection,icon:Mo,name:"Option list"},rating:{description:"Allows users to select a rating value.",group:q.Assessment,icon:kn,name:"Rating"},select:{description:"Allows the user to select a single option from a list of options.",group:q.Selection,icon:$o,name:"Dropdown"},string:{description:"Short text fields can hold up to 500 characters on a single line.",group:q.Text,icon:Ho,name:"Short Text"},text:{description:"Paragraph fields can hold up to 10000 characters and can have multiple lines.",group:q.Text,icon:So,name:"Paragraph"},upload:{description:"Allows a file to be uploaded.",group:q.Capture,icon:$i,name:"Upload"},url:{description:"Allows users to enter a URL.",group:q.Text,icon:Bo,name:"URL"}},St={[q.Assessment]:{name:"Assessment"},[q.Capture]:{name:"Capture"},[q.Numeric]:{name:"Numeric"},[q.Selection]:{name:"Selection"},[q.Temporal]:{name:"Temporal"},[q.Text]:{name:"Text"},[q.Verification]:{name:"Verification"}},A="Unlabelled",nn="Unlabelled";class M{id;label;getApplyFn;serialize;deserialize;constructor(e){const{id:t,getApplyFn:r,label:o,serialize:l,deserialize:s}=e;this.id=t,this.getApplyFn=r,this.label=o,this.serialize=l,this.deserialize=s}static create(e){return new M(e)}}const wt=M.create({id:"nullable-boolean-equals",label:"is",getApplyFn:i=>e=>e===i,serialize:i=>i,deserialize:i=>i}),Ft=M.create({id:"nullable-boolean-not-equals",label:"is not",getApplyFn:i=>e=>e!==i,serialize:i=>i,deserialize:i=>i}),Nt=M.create({id:"date-equals",getApplyFn:i=>e=>e.getTime()===i.getTime(),label:"is",serialize:i=>i.toISOString(),deserialize:i=>new Date(i)}),bt=M.create({id:"date-not-equals",getApplyFn:i=>e=>e.getTime()!==i.getTime(),label:"is not",serialize:i=>i.toISOString(),deserialize:i=>new Date(i)}),Mt=M.create({id:"date-before",getApplyFn:i=>e=>e.getTime()<i.getTime(),label:"before",serialize:i=>i.toISOString(),deserialize:i=>new Date(i)}),xt=M.create({id:"date-after",label:"after",getApplyFn:i=>e=>e.getTime()>i.getTime(),serialize:i=>i.toISOString(),deserialize:i=>new Date(i)}),It=M.create({id:"date-range-in",label:"in between",getApplyFn:i=>e=>!(i?.from&&i.from.getTime()>e.getTime()||i?.to&&i.to.getTime()<e.getTime()),serialize:i=>({from:i.from?.toISOString()??null,to:i.to?.toISOString()??null}),deserialize:i=>({from:i.from?new Date(i.from):void 0,to:i.to?new Date(i.to):void 0})}),qt=M.create({id:"date-range-not-in",label:"not in between",getApplyFn:i=>e=>!!(i?.from&&i.from.getTime()>e.getTime()||i?.to&&i.to.getTime()<e.getTime()),serialize:i=>({from:i.from?.toISOString()??null,to:i.to?.toISOString()??null}),deserialize:i=>({from:i.from?new Date(i.from):void 0,to:i.to?new Date(i.to):void 0})}),Ot=M.create({id:"has-files",label:"is",getApplyFn:i=>e=>e.length>0,serialize:i=>i,deserialize:i=>i}),_t=M.create({id:"does-not-have-files",label:"is not",getApplyFn:i=>e=>e.length===0,serialize:i=>i,deserialize:i=>i}),tn=M.create({id:"number-equals",getApplyFn:i=>e=>e===i,label:"is",serialize:i=>i,deserialize:i=>i}),rn=M.create({id:"number-not-equals",getApplyFn:i=>e=>e!==i,label:"is not",serialize:i=>i,deserialize:i=>i}),on=M.create({id:"number-less-than",getApplyFn:i=>e=>e<i,label:"is less than",serialize:i=>i,deserialize:i=>i}),an=M.create({id:"number-less-than-or-equals",getApplyFn:i=>e=>e<=i,label:"is less than or equal to",serialize:i=>i,deserialize:i=>i}),ln=M.create({id:"number-greater-than",getApplyFn:i=>e=>e>i,label:"is greater than",serialize:i=>i,deserialize:i=>i}),sn=M.create({id:"number-greater-than-or-equals",getApplyFn:i=>e=>e>=i,label:"is greater than or equal to",serialize:i=>i,deserialize:i=>i}),dn=M.create({id:"number-range-in",getApplyFn:i=>e=>!(i.to&&e>i.to||i.from&&e<i.from),label:"is between",serialize:i=>i,deserialize:i=>i}),cn=M.create({id:"number-range-not-in",getApplyFn:i=>e=>!!(i.to&&e>i.to||i.from&&e<i.from),label:"is not between",serialize:i=>i,deserialize:i=>i}),Tt=M.create({id:"pass-fail-equals",getApplyFn:i=>e=>e===i,label:"is",serialize:i=>i,deserialize:i=>i}),Et=M.create({id:"pass-fail-not-equals",getApplyFn:i=>e=>e!==i,label:"is not",serialize:i=>i,deserialize:i=>i}),Lt=M.create({id:"pass-fail-array-includes",getApplyFn:i=>{const e=new Set(i);return t=>e.has(t)},label:"is any of",serialize:i=>i,deserialize:i=>i}),Bt=M.create({id:"pass-fail-array-excludes",getApplyFn:i=>{const e=new Set(i);return t=>!e.has(t)},label:"is none of",serialize:i=>i,deserialize:i=>i}),Ce=M.create({id:"nullable-string-equals",getApplyFn:i=>e=>e===i,label:"is",serialize:i=>i,deserialize:i=>i}),Ve=M.create({id:"nullable-string-not-equals",getApplyFn:i=>e=>e!==i,label:"is not",serialize:i=>i,deserialize:i=>i}),Le=M.create({id:"string-includes",getApplyFn:i=>e=>e.includes(i),label:"includes",serialize:i=>i,deserialize:i=>i}),Be=M.create({id:"string-excludes",getApplyFn:i=>e=>!e.includes(i),label:"does not include",serialize:i=>i,deserialize:i=>i}),un=M.create({id:"string-array-includes",getApplyFn:i=>{const e=new Set(i);return t=>e.has(t)},label:"is any of",serialize:i=>i,deserialize:i=>i}),fn=M.create({id:"string-array-excludes",getApplyFn:i=>{const e=new Set(i);return t=>!e.has(t)},label:"is none of",serialize:i=>i,deserialize:i=>i}),vi=M.create({id:"string-array-every",getApplyFn:i=>{const e=new Set(i);return t=>{const r=new Set(t);return e.isSubsetOf(r)}},label:"has all of",serialize:i=>i,deserialize:i=>i}),zi=M.create({id:"string-array-some",getApplyFn:i=>{const e=new Set(i);return t=>{const r=new Set(t);return!e.isDisjointFrom(r)}},label:"has any of",serialize:i=>i,deserialize:i=>i}),Si=M.create({id:"string-array-none",getApplyFn:i=>{const e=new Set(i);return t=>{const r=new Set(t);return e.isDisjointFrom(r)}},label:"has none of",serialize:i=>i,deserialize:i=>i}),wi=M.create({id:"string-array-equals",getApplyFn:i=>{const e=new Set(i);return t=>{const r=new Set(t);return e.size===r.size&&r.isSubsetOf(e)}},label:"is",serialize:i=>i,deserialize:i=>i}),Fi=M.create({id:"string-array-not-equals",getApplyFn:i=>{const e=new Set(i);return t=>{const r=new Set(t);return e.size!==r.size||!r.isSubsetOf(e)}},label:"is not",serialize:i=>i,deserialize:i=>i}),At=M.create({id:"time-equals",label:"is",getApplyFn:i=>e=>e===i,serialize:i=>i,deserialize:i=>i}),$t=M.create({id:"time-not-equals",label:"is not",getApplyFn:i=>e=>e!==i,serialize:i=>i,deserialize:i=>i}),Dt=M.create({id:"time-before",label:"before",getApplyFn:i=>e=>ge(e)<ge(i),serialize:i=>i,deserialize:i=>i}),Pt=M.create({id:"time-after",label:"after",getApplyFn:i=>e=>ge(e)>ge(i),serialize:i=>i,deserialize:i=>i}),jt=M.create({id:"time-range-in",label:"in between",getApplyFn:i=>e=>Ri(e,i),serialize:i=>i,deserialize:i=>i}),Ut=M.create({id:"time-range-not-in",label:"not in between",getApplyFn:i=>e=>!Ri(e,i),serialize:i=>i,deserialize:i=>i}),V=i=>i;class j extends je{id;conditionValue;conditionModifier;field;constructor(e){const{id:t,field:r,conditionValue:o,conditionModifier:l}=e;super(),this.id=t,this.field=r,this.conditionValue=o,this.conditionModifier=l}serialize(){return{id:this.id,type:this.field.type,fieldId:this.field.identifier,conditionValue:this.conditionValue!==void 0?this.modifiers[this.conditionModifier].modifier.serialize(this.conditionValue):void 0,conditionModifier:this.conditionModifier}}getConditionValue=()=>this.conditionValue;transformValue(e){return e}setConditionValue=e=>{const t=this.modifiers[this.conditionModifier];e!==void 0&&!t.isConditionValueValid(e)||(this.conditionValue=e,this.notify(this))};getConditionModifier=()=>this.conditionModifier;setConditionModifier=e=>{const t=this.modifiers[e],r=this.getConditionValue();r&&!t.isConditionValueValid(r)&&(this.conditionValue=void 0),this.conditionModifier=e,this.notify(this)};getConditionModifiers=()=>Object.entries(this.modifiers);accessorFn=e=>e[this.field.identifier];getApplyFn=()=>{const e=this.modifiers[this.conditionModifier],t=this.getConditionValue(),r=t!==void 0&&e.isConditionValueValid(t),o=r?e.modifier.getApplyFn(t):null;return l=>{if(!r)return!0;const s=this.transformValue(l);return e.isValueValid(s)?o(s):!1}}}const kt=d.memo,Ie=kt(function(i){const{ref:e,children:t,...r}=i,o=d.useCallback(l=>typeof t=="function"?n.jsxs(n.Fragment,{children:[t(l),n.jsx(a.Menu.SelectedIndicator,{className:"ml-[auto]",children:n.jsx(a.LuIcon,{icon:H})})]}):n.jsxs(n.Fragment,{children:[t,n.jsx(a.Menu.SelectedIndicator,{className:"ml-[auto]",children:n.jsx(a.LuIcon,{icon:H})})]}),[t]);return n.jsx(a.Menu.SelectItem,{ref:e,...r,children:o})}),Gt=kt(function(i){const{ref:e,children:t,...r}=i,o=d.useCallback(l=>typeof t=="function"?n.jsxs(n.Fragment,{children:[t(l),n.jsx(a.Menu.SelectedIndicator,{className:"ml-auto",children:n.jsx(a.LuIcon,{icon:H})})]}):n.jsxs(n.Fragment,{children:[t,n.jsx(a.Menu.SelectedIndicator,{className:"ml-auto",children:n.jsx(a.LuIcon,{icon:H})})]}),[t]);return n.jsx(a.Menu.MultiSelectItem,{ref:e,...r,children:o})}),hn=d.memo(i=>{const{ref:e,children:t,...r}=i,o=d.useCallback(l=>typeof t=="function"?n.jsxs(n.Fragment,{children:[t(l),n.jsx(a.Menu.CheckboxItemIndicator,{className:"ml-[auto]",children:s=>s?n.jsx(a.LuIcon,{icon:ui}):n.jsx(a.LuIcon,{icon:H})})]}):n.jsxs(n.Fragment,{children:[t,n.jsx(a.Menu.CheckboxItemIndicator,{className:"ml-[auto]",children:s=>s?n.jsx(a.LuIcon,{icon:ui}):n.jsx(a.LuIcon,{icon:H})})]}),[t]);return n.jsx(a.Menu.SelectAllItem,{ref:e,...r,children:o})});hn.displayName="SelectAllItemTemplate";const k=i=>{const{children:e,condition:t,size:r="sm",variant:o,accentColor:l,radius:s}=i,f=d.useCallback(u=>{t.setConditionModifier(u)},[t]);return n.jsxs(a.Menu.Root,{align:"start",children:[n.jsx(a.Menu.ClickTrigger,{children:e}),n.jsx(a.Menu.Content,{size:r,variant:o,radius:s,accentColor:l,children:n.jsx(a.Menu.SelectGroup,{required:!0,value:t.getConditionModifier(),onValueChange:f,children:t.getConditionModifiers().map(([u,h])=>n.jsx(Ie,{value:u,children:h.modifier.label},u))})})]})},Ni=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,align:f,accentColor:u="base",...h}=i;return n.jsxs(a.Popover.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:e}),n.jsx(a.Popover.Content,{size:s,align:f,children:n.jsx(a.DayPicker,{size:s,accentColor:u,...h})})]})});Ni.displayName="DayPickerPopover";const Jt=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,accentColor:f="base",values:u,onValuesChange:h,placeholder:p="Enter text",...g}=i,[m,C]=d.useState(""),v=d.useCallback(x=>{C(x.target.value)},[]),S=d.useCallback(x=>{x.key==="Enter"&&(x.preventDefault(),x.stopPropagation(),h([...u,m]),C(""))},[m,h,u]),w=d.useCallback(()=>{h([...u,m]),C("")},[m,h,u]),y=d.useCallback(x=>{const I=[...u];I.splice(x,1),h(I)},[h,u]);return n.jsxs(a.Popover.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:e}),n.jsx(a.Popover.Content,{size:s,onClick:a.stopPropagation,accentColor:f,...g,children:n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsxs("div",{className:"flex gap-2",children:[n.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"outline",size:"sm",children:n.jsx(a.Input.Field,{value:m,onChange:v,onKeyDown:S,placeholder:p,...g})}),n.jsx(a.IconButton,{size:"sm",accentColor:"base",variant:"soft",type:"button",onClick:w,children:n.jsx(a.LuIcon,{icon:Z})})]}),u.length>0&&n.jsx("div",{className:"flex flex-col gap-1",children:u.map((x,I)=>n.jsxs(a.Badge,{className:"flex items-center justify-between gap-2",accentColor:"base",size:"sm",variant:"soft",children:[n.jsx("span",{className:"truncate",children:x}),n.jsx(a.IconButton,{size:"xs",variant:"ghost",type:"button",accentColor:"base",onClick:()=>{y(I)},children:n.jsx(a.LuIcon,{icon:oe})})]},`${x}-${I}`))})]})})]})});Jt.displayName="NumberInputPopover";const qe=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,accentColor:f="base",value:u,onValueChange:h,placeholder:p="Enter a number",...g}=i,[m,C]=d.useState(null);d.useEffect(()=>{u!==void 0&&C(u)},[u]);const v=d.useCallback(w=>{const y=w.target.valueAsNumber;C(isNaN(y)?null:y)},[]),S=d.useCallback(w=>{const y=w.target.valueAsNumber;h?.(isNaN(y)?null:y)},[h]);return n.jsxs(a.Popover.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:e}),n.jsx(a.Popover.Content,{size:s,onClick:a.stopPropagation,...g,children:n.jsx(a.Input.Root,{size:s,accentColor:f,children:n.jsx(a.Input.Field,{placeholder:p,type:"number",value:m??"",onChange:v,onBlur:S})})})]})});qe.displayName="NumberInputPopover";const U=i=>{const{condition:e,onClick:t,...r}=i,o=d.useCallback(()=>{t(e)},[e,t]);return n.jsx(a.IconButton,{onClick:o,...r,children:n.jsx(a.LuIcon,{icon:oe})})};U.displayName="RemoveConditionButton";const Ge=d.memo(i=>{const{ref:e,selectFieldOptions:t,...r}=i,o=d.useMemo(()=>_e(t),[t]);return n.jsxs(a.Menu.MultiSelectGroup,{ref:e,...r,children:[n.jsx(hn,{children:"Select all"}),o.map(l=>n.jsx(Gt,{value:l.value,children:n.jsx("span",{className:"truncate",children:l.label})},l.value))]})});Ge.displayName="SelectFieldOptionMultiSelectGroup";const pn=d.memo(i=>{const{ref:e,selectFieldOptions:t,...r}=i,o=d.useMemo(()=>_e(t),[t]);return n.jsx(a.Menu.SelectGroup,{ref:e,...r,children:o.map(l=>n.jsx(Ie,{value:l.value,children:n.jsx("span",{className:"truncate",children:l.label})},l.value))})});pn.displayName="SelectFieldOptionSelectGroup";const Ae=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,accentColor:f="base",value:u,onValueChange:h,placeholder:p="Enter text",...g}=i,[m,C]=d.useState(""),v=d.useCallback(w=>{C(w.target.value)},[]),S=d.useCallback(w=>{const y=w.target.value;h?.(y)},[h]);return d.useEffect(()=>{u&&C(u)},[u]),n.jsxs(a.Popover.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:e}),n.jsx(a.Popover.Content,{size:s,onClick:a.stopPropagation,...g,children:n.jsx(a.Input.Root,{size:s,accentColor:f,children:n.jsx(a.Input.Field,{placeholder:p,type:"text",value:m,onChange:v,onBlur:S})})})]})});Ae.displayName="TextInputPopover";const bi=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s="sm",accentColor:f="base",value:u,onValueChange:h,...p}=i;return n.jsxs(a.Popover.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:e}),n.jsx(a.Popover.Content,{size:s,onClick:a.stopPropagation,accentColor:f,...p,children:n.jsx(yi,{compact:!0,size:s,value:u,onChange:h})})]})});bi.displayName="TimeInputPopover";const Ht=i=>{const{condition:e,onRemove:t}=i,r=e.getConditionValue(),o=e.getConditionModifier(),l=()=>{switch(r){case void 0:return"...";case!0:return"true";case!1:return"false";case null:return"empty"}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[e.field.type].icon}),n.jsx("span",{className:"truncate",children:e.field.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[o].modifier.label})}),n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:l()})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsxs(a.Menu.SelectGroup,{required:!0,value:r,onValueChange:e.setConditionValue,children:[n.jsx(Ie,{value:!0,children:"true"}),n.jsx(Ie,{value:!1,children:"false"})]})})]}),n.jsx(U,{condition:e,onClick:t})]})},Wt={equals:V({modifier:wt,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ft,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Je extends j{modifiers=Wt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Wt[o];let f;return r!==void 0&&(f=s.modifier.deserialize(r)),new Je({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Ht,{condition:this,...e},this.id)}}const $e=[],Kt=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{u.length>0?e.setConditionValue(u):e.setConditionValue(void 0)},[e]),f=()=>o===void 0?"...":o===null?"empty":o.length===0?"...":`${o.length} options`;return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"soft",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"soft",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"truncate",children:f()})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(Ge,{values:o??$e,selectFieldOptions:e.field.options,onValuesChange:s})})]}),n.jsx(U,{condition:e,onClick:t})]})},Xt={equals:V({modifier:wi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Fi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),every:V({modifier:vi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),some:V({modifier:zi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),none:V({modifier:Si,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class He extends j{modifiers=Xt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Xt[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new He({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Kt,{condition:this,...e},this.id)}}class Mi extends je{conditions;constructor(e){super(),this.conditions=this.initConditions(e)}conditionObserver=()=>{this.conditions=[...this.conditions],this.notify(this)};initConditions=e=>{for(const t of e)t.observe(this.conditionObserver);return e};getConditions(){return this.conditions}addCondition(e){this.conditions=this.initConditions([...this.conditions,e]),this.notify(this)}addConditions(e){this.conditions=this.initConditions([...this.conditions,...e]),this.notify(this)}removeCondition(e){this.conditions=this.initConditions(this.conditions.filter(t=>t.id!==e.id)),this.notify(this)}removeConditions(e){const t=new Set(e.map(r=>r.id));this.conditions=this.initConditions(this.conditions.filter(r=>!t.has(r.id))),this.notify(this)}applyConditions(e){return this.conditions.length===0?!0:this.conditions.map(r=>[r.getApplyFn(),r.accessorFn]).every(([r,o])=>r(o(e)))}}const ea=(i,e)=>d.useMemo(()=>{const t=new Mi(i);return t.observe(r=>e(r.getConditions())),t},[i,e]),Yt=i=>{const{condition:e,onRemove:t}=i,r=e.getConditionValue(),o=e.getConditionModifier(),l=()=>{switch(o){case"equals":case"notEquals":{const s=e.modifiers.equals,f=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Ni,{required:!1,size:"sm",mode:"single",selected:f??void 0,onSelect:u=>e.setConditionValue(u),children:n.jsx(a.Button,{type:"button",className:"truncate",children:f!==void 0?f?.toLocaleDateString()??"empty":"..."})})}case"before":case"after":{const s=e.modifiers.after,f=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Ni,{required:!0,size:"sm",mode:"single",selected:f,onSelect:e.setConditionValue,children:n.jsx(a.Button,{type:"button",className:"truncate",children:f?f.toLocaleDateString():"..."})})}case"in":case"notIn":{const s=e.modifiers.in,f=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Ni,{required:!0,mode:"range",size:"sm",selected:f,onSelect:e.setConditionValue,children:n.jsx(a.Button,{className:"truncate",children:f?`${f.from?.toLocaleDateString()} - ${f.to?.toLocaleDateString()}`:"..."})})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[e.field.type].icon}),n.jsx("span",{className:"truncate",children:e.field.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[o].modifier.label})}),l(),n.jsx(U,{condition:e,onClick:t})]})},Zt={equals:V({modifier:Nt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>i instanceof Date,isSerializedValueValid:i=>typeof i=="string"}),notEquals:V({modifier:bt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>i instanceof Date,isSerializedValueValid:i=>typeof i=="string"}),before:V({modifier:Mt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>i instanceof Date,isSerializedValueValid:i=>typeof i=="string"}),after:V({modifier:xt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>i instanceof Date,isSerializedValueValid:i=>typeof i=="string"}),in:V({modifier:It,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>"to"in(i??{})&&"from"in(i??{}),isSerializedValueValid:i=>typeof i=="object"&&"to"in i&&"from"in i}),notIn:V({modifier:qt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>"to"in(i??{})&&"from"in(i??{}),isSerializedValueValid:i=>typeof i=="object"&&"to"in i&&"from"in i})};class We extends j{modifiers=Zt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Zt[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new We({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Yt,{condition:this,...e},this.id)}}const Qt=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{u.length>0?e.setConditionValue(u):e.setConditionValue(void 0)},[e]),f=()=>o===void 0?"...":o===null?"empty":o.length===0?"...":`${o.length} options`;return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"truncate",children:f()})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(Ge,{values:o??$e,selectFieldOptions:r.options,onValuesChange:s})})]}),n.jsx(U,{condition:e,onClick:t})]})},Rt={equals:V({modifier:wi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Fi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),every:V({modifier:vi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),some:V({modifier:zi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),none:V({modifier:Si,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Ke extends j{modifiers=Rt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Rt[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ke({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Qt,{condition:this,...e},this.id)}}const er=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{e.setConditionValue(u.length>0?u:void 0)},[e]),f=()=>{if(o===void 0)return"...";if(o===null)return"empty";switch(o.length){case 0:return"...";case 1:return o[0].toString();default:return`${o.length} values`}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsx(Jt,{values:o??$e,onValuesChange:s,children:n.jsx(a.Button,{type:"button",className:"truncate",children:f()})}),n.jsx(U,{condition:e,onClick:t})]})},ir={equals:V({modifier:wi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Fi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),every:V({modifier:vi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),some:V({modifier:zi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),none:V({modifier:Si,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Xe extends j{modifiers=ir;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=ir[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Xe({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(er,{condition:this,...e},this.id)}}const nr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{e.setConditionValue(u??void 0)},[e]),f=()=>{switch(l){case"equals":case"greaterThanOrEquals":case"lessThanOrEquals":case"greaterThan":case"lessThan":{const u=e.modifiers.greaterThan,h=o!==void 0&&u.isConditionValueValid(o)?o:void 0;return n.jsx(qe,{value:h??null,onValueChange:s,size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:h!==void 0?h??"empty":"..."})})}case"inRange":case"notInRange":{const u=e.modifiers.inRange,h=o!==void 0&&u.isConditionValueValid(o)?o:void 0;return n.jsxs(n.Fragment,{children:[n.jsx(qe,{value:h?.from??null,onValueChange:p=>{e.setConditionValue({from:p,to:h?.to??null})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:h?.from??"..."})}),n.jsx(qe,{value:h?.to??null,onValueChange:p=>{e.setConditionValue({from:h?.from??null,to:p})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:h?.to??"..."})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),f(),n.jsx(U,{condition:e,onClick:t})]})},tr={equals:V({modifier:tn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),notEquals:V({modifier:rn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThan:V({modifier:on,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThanOrEquals:V({modifier:an,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),greaterThan:V({modifier:ln,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),greaterThanOrEquals:V({modifier:sn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),inRange:V({modifier:dn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"}),notInRange:V({modifier:cn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"})};class Ye extends j{modifiers=tr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=tr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ye({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(nr,{condition:this,...e},this.id)}}const rr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Ae,{value:o??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:o||"..."})})})}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},or={equals:V({modifier:Ce,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ve,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Ze extends j{modifiers=or;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=or[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ze({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(rr,{condition:this,...e},this.id)}}const ar=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":{const f=e.modifiers.equals,u=o!==void 0&&f.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:u!==void 0?u?Fe[u].label:"empty":"..."})})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(a.Menu.SelectGroup,{required:!1,value:u,onValueChange:e.setConditionValue,children:Te.map(h=>{const{label:p}=Fe[h];return n.jsx(Ie,{value:h,children:n.jsx("span",{className:"truncate",children:p})},h)})})})]})}case"includes":case"excludes":{const f=e.modifiers.includes,u=o!==void 0&&f.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",children:u?`${u.length} statuses`:"..."})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsxs(a.Menu.MultiSelectGroup,{values:u??$e,onValuesChange:e.setConditionValue,children:[n.jsx(hn,{children:"Select all"}),Te.map(h=>{const{label:p,icon:g}=Fe[h];return n.jsxs(Gt,{value:h,children:[n.jsx(a.LuIcon,{icon:g}),n.jsx("span",{className:"truncate",children:p})]},h)})]})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},lr={equals:V({modifier:Tt,isValueValid:i=>i!==null,isConditionValueValid:i=>typeof i=="string",isSerializedValueValid:i=>typeof i=="string"}),notEquals:V({modifier:Et,isValueValid:i=>i!==null,isConditionValueValid:i=>typeof i=="string",isSerializedValueValid:i=>typeof i=="string"}),includes:V({modifier:Lt,isValueValid:i=>i!==null,isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)}),excludes:V({modifier:Bt,isValueValid:i=>i!==null,isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)})};class Qe extends j{modifiers=lr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=lr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Qe({field:t,conditionModifier:o,conditionValue:f,...l})}transformValue(e){return e.status}render(e){return n.jsx(ar,{condition:this,...e},this.id)}}const sr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useMemo(()=>r.options.map(h=>typeof h=="string"?{value:h,label:h}:h),[r.options]),f=d.useMemo(()=>{const h={};for(const p of s)h[p.value]=p.label;return h},[s]),u=()=>{switch(l){case"equals":case"notEquals":{const h=e.modifiers.equals,p=o!==void 0&&h.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:p!==void 0?p?f[p]:"empty":"..."})})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(pn,{required:!0,selectFieldOptions:r.options,value:p??void 0,onValueChange:e.setConditionValue})})]})}case"includes":case"excludes":{const h=e.modifiers.includes,p=o!==void 0&&h.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",children:p?`${p.length} options`:"..."})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(Ge,{selectFieldOptions:r.options,values:p??$e,onValuesChange:e.setConditionValue})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),u(),n.jsx(U,{condition:e,onClick:t})]})},dr={equals:V({modifier:Ce,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),notEquals:V({modifier:Ve,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),includes:V({modifier:un,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)}),excludes:V({modifier:fn,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)})};class Re extends j{modifiers=dr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=dr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Re({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(sr,{condition:this,...e},this.id)}}const cr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"greaterThanOrEquals":case"lessThanOrEquals":case"greaterThan":case"lessThan":{const f=e.modifiers[l],u=o!==void 0&&f.isConditionValueValid(o)?o:void 0;return n.jsx(qe,{value:u??null,onValueChange:h=>e.setConditionValue(h??void 0),size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:u!==void 0?u:"..."})})}case"inRange":case"notInRange":{const f=e.modifiers.inRange,u=o!==void 0&&f.isConditionValueValid(o)?o:void 0;return n.jsxs(n.Fragment,{children:[n.jsx(qe,{value:u?.from??null,onValueChange:h=>{e.setConditionValue({from:h,to:u?.to??null})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:u?.from??"..."})}),n.jsx(qe,{value:u?.to??null,onValueChange:h=>{e.setConditionValue({from:u?.from??null,to:h})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:u?.to??"..."})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},ur={equals:V({modifier:tn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),notEquals:V({modifier:rn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThan:V({modifier:on,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThanOrEquals:V({modifier:an,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),greaterThan:V({modifier:ln,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),greaterThanOrEquals:V({modifier:sn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),inRange:V({modifier:dn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"}),notInRange:V({modifier:cn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"})};class ei extends j{modifiers=ur;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=ur[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ei({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(cr,{condition:this,...e},this.id)}}const fr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Ae,{value:o??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:o||"..."})})})}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},hr={equals:V({modifier:Ce,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ve,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ii extends j{modifiers=hr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=hr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ii({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(fr,{condition:this,...e},this.id)}}const pr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useMemo(()=>r.options.map(p=>typeof p=="string"?{value:p,label:p}:p),[r.options]),f=d.useMemo(()=>{const p={};for(const g of s)p[g.value]=g.label;return p},[s]),u=d.useCallback(p=>{p.length>0?e.setConditionValue(p):e.setConditionValue([])},[e]),h=()=>{switch(l){case"equals":case"notEquals":{const p=e.modifiers.equals,g=o!==void 0&&p.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:g!==void 0?g?f[g]:"empty":"..."})})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(pn,{required:!1,selectFieldOptions:r.options,value:g??void 0,onValueChange:e.setConditionValue})})]})}case"includes":case"excludes":{const p=e.modifiers.includes,g=o!==void 0&&p.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",children:g?`${g.length} options`:"..."})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(Ge,{selectFieldOptions:r.options,values:g??$e,onValuesChange:u})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),h(),n.jsx(U,{condition:e,onClick:t})]})},gr={equals:V({modifier:Ce,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),notEquals:V({modifier:Ve,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),includes:V({modifier:un,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)}),excludes:V({modifier:fn,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)})};class ni extends j{modifiers=gr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=gr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ni({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(pr,{condition:this,...e},this.id)}}const mr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Ae,{value:o??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:o||"..."})})})}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},Cr={equals:V({modifier:Ce,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ve,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ti extends j{modifiers=Cr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Cr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ti({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(mr,{condition:this,...e},this.id)}}const Vr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Ae,{value:o??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:o||"..."})})})}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},yr={equals:V({modifier:Ce,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ve,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ri extends j{modifiers=yr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=yr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ri({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Vr,{condition:this,...e},this.id)}}const vr=i=>{const{condition:e,onRemove:t}=i,r=e.getConditionValue(),o=e.getConditionModifier(),l=()=>{switch(o){case"equals":case"notEquals":case"before":case"after":{const s=typeof r=="string"?r:void 0;return n.jsx(bi,{value:s,onValueChange:f=>e.setConditionValue(f??void 0),size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:s?Vi(s):"..."})})}case"in":case"notIn":{const s=r&&typeof r=="object"?r:void 0,f=u=>{e.setConditionValue(u.from||u.to?u:void 0)};return n.jsxs(n.Fragment,{children:[n.jsx(bi,{value:s?.from,onValueChange:u=>f({from:u,to:s?.to??null}),size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:s?.from?Vi(s.from):"..."})}),n.jsx(bi,{value:s?.to,onValueChange:u=>f({from:s?.from??null,to:u}),size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:s?.to?Vi(s.to):"..."})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[e.field.type].icon}),n.jsx("span",{className:"truncate",children:e.field.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[o].modifier.label})}),l(),n.jsx(U,{condition:e,onClick:t})]})},zr={equals:V({modifier:At,isValueValid:i=>B(i),isConditionValueValid:i=>B(i),isSerializedValueValid:i=>B(i)}),notEquals:V({modifier:$t,isValueValid:i=>B(i),isConditionValueValid:i=>B(i),isSerializedValueValid:i=>B(i)}),before:V({modifier:Dt,isValueValid:i=>B(i),isConditionValueValid:i=>B(i),isSerializedValueValid:i=>B(i)}),after:V({modifier:Pt,isValueValid:i=>B(i),isConditionValueValid:i=>B(i),isSerializedValueValid:i=>B(i)}),in:V({modifier:jt,isValueValid:i=>B(i),isConditionValueValid:i=>ke(i),isSerializedValueValid:i=>ke(i)}),notIn:V({modifier:Ut,isValueValid:i=>B(i),isConditionValueValid:i=>ke(i),isSerializedValueValid:i=>ke(i)})};class oi extends j{modifiers=zr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=zr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new oi({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(vr,{condition:this,...e},this.id)}}const Sr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(o){case void 0:return"...";case!0:return"true";case!1:return"false";case null:return"empty"}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:s()})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsxs(a.Menu.SelectGroup,{required:!0,value:o,onValueChange:e.setConditionValue,children:[n.jsx(Ie,{value:!0,children:"empty"}),n.jsx(Ie,{value:!1,children:"not empty"})]})})]}),n.jsx(U,{condition:e,onClick:t})]})},wr={equals:V({modifier:Ot,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:_t,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ai extends j{modifiers=wr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=wr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ai({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Sr,{condition:this,...e},this.id)}}const Fr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Ae,{value:o??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:o||"..."})})})}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||A})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},Nr={equals:V({modifier:Ce,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ve,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class li extends j{modifiers=Nr;constructor(e){super(e)}transformValue(e){return e?.toString()??""}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Nr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new li({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Fr,{condition:this,...e},this.id)}}const ia={date:We,time:oi,number:Ye,boolean:Je,select:ni,string:ti,url:li,text:ri,upload:ai,qr:ii,"multi-string":Xe,"multi-select":Ke,radio:Re,"checkbox-list":He,"pass-fail":Qe,otp:Ze,rating:ei},br=(i,e)=>{if(i.type!==e.type)throw new Error(`field and condition type mismatch ${i.type} !== ${e.type}`);return ia[e.type].deserialize(e,i)},xi=(i,e)=>{const t=gn(i,e),r={};for(const o of i)r[o.identifier]=o;return t.map(o=>br(r[o.fieldId],o))},Mr=(i,e)=>mn(i,e).map(r=>r.serialize()),gn=(i,e)=>{const t=new Set(i.map(r=>r.identifier));return e.filter(r=>t.has(r.fieldId))},mn=(i,e)=>{const t=new Set(i.map(r=>r.identifier));return e.filter(r=>t.has(r.field.identifier))},Ii=i=>Ee[i.type].deserialize(i);function na(i){return i.map(Ii)}function xr(i){return i.type==="section"?W.deserialize(i):Ii(i)}const qi=i=>i.map(xr),Cn=i=>Ee[i.type].fromConfig(i),Ir=i=>i.map(e=>Cn(e)),qr=i=>i.type==="section"?W.fromConfig(i):Cn(i),Or=i=>i.map(qr),Vn=i=>Ee[i.type].deserializeConfig(i),_r=i=>i.map(Vn),Tr=i=>i.type==="section"?W.deserializeConfig(i):Vn(i),Er=i=>i.map(Tr),yn=i=>Ee[i.type].serializeConfig(i),Lr=i=>i.map(yn),Br=i=>i.type==="section"?W.serializeConfig(i):yn(i),Ar=i=>i.map(Br);function ta(i){const e={};for(const t of i)e[t.identifier]=t;return e}function $r(i,e,t=!0){const r=t?Oi(i,e):e,o={};for(const l of i){if(!(l.identifier in r))continue;const s=r[l.identifier];o[l.identifier]=l.serializeValue(s)}return o}function Dr(i,e,t=!0){const r=t?vn(i,e):e,o={};for(const l of i){if(!(l.identifier in r))continue;const s=r[l.identifier];o[l.identifier]=l.deserializeValue(s)}return o}function Oi(i,e){const t={};for(const r of i){if(!(r.identifier in e))continue;const o=e[r.identifier];r.isValue(o)&&(t[r.identifier]=r.cleanValue(o))}return t}function vn(i,e){const t={};for(const r of i){if(!(r.identifier in e))continue;const o=e[r.identifier];r.isSerializedValue(o)&&(t[r.identifier]=r.cleanSerializedValue(o))}return t}function Pr(i,e){const t=Oi(i,e),r={},o={};for(const l of i){if(!(l.identifier in t))continue;const s=t[l.identifier];switch(l.type){case"upload":if(!l.isValue(s))break;o[l.identifier]=s,r[l.identifier]=[];break;case"pass-fail":if(!l.isValue(s))break;o[l.identifier]=s.files,r[l.identifier]={...s,files:[]};break;default:r[l.identifier]=e[l.identifier]}}return[r,o]}function jr(i,e,t){const r={};for(const o of i){if(!(o.identifier in e))continue;const l=e[o.identifier];switch(o.type){case"upload":if(!o.isValue(l))break;r[o.identifier]=t[o.identifier]??[];break;case"pass-fail":if(!o.isValue(l))break;r[o.identifier]={...l,files:t[o.identifier]??[]};break;default:if(!o.isValue(l))break;r[o.identifier]=l}}return r}const Ur=(i,e)=>{const t={};for(const r of i){const o=e[r.identifier];t[r.identifier]=o!==void 0?o:r.blankValue()}return t},kr=(i,e,t)=>{const r={};for(const o of i){const l=e[o.identifier],s=t[o.identifier];o.areValuesEqual(l,s)||(r[o.identifier]=s)}return r},Gr=(i,e,t)=>{const r={};for(const o of i){const l=e[o.identifier],s=t[o.identifier];o.areValuesEqual(l,s)&&(r[o.identifier]=s)}return r},zn=(i,e,t)=>i.every(r=>{const o=e[r.identifier],l=t[r.identifier];return r.areValuesEqual(o,l)}),Sn=i=>{const e={};for(const t of i)e[t.identifier]=t.blankValue();return e},Jr=(i,e)=>zn(i,e,Sn(i)),ra=R.cva(["flex","flex-col"],{variants:{size:{xs:["gap-2"],sm:["gap-4"],md:["gap-6"],lg:["gap-8"],xl:["gap-10"]}}}),_i=R.cva(["flex","flex-col"],{variants:{size:{xs:["gap-2"],sm:["gap-4"],md:["gap-6"],lg:["gap-8"],xl:["gap-10"]}}}),Hr=d.memo(i=>{const{fieldSection:e}=i,{label:t,description:r}=e,o=Y.useWatch(),{fieldSchema:l,size:s}=d.use(E),f=d.useMemo(()=>l.getFieldSections(),[l]),u=d.useMemo(()=>f.findIndex(({identifier:m})=>m===e.identifier),[f,e.identifier]),h=d.useMemo(()=>f.filter(m=>e.identifier in m.conditions),[f,e.identifier]),p=d.useMemo(()=>h.length===0?!0:h.some(m=>{const C=m.getConditions(e.identifier);return new Mi(C).applyConditions(o)}),[h,e,o]),g=hi(e.fields);return p?n.jsxs(n.Fragment,{children:[u!==0?n.jsx(a.Separator,{size:"full"}):null,n.jsxs("div",{className:"flex flex-col gap-4",children:[(t||r)&&n.jsx(n.Fragment,{children:n.jsxs("div",{className:"flex flex-col gap-1",children:[n.jsx(a.Heading,{size:s,children:t}),r&&n.jsx(a.Text,{accentColor:"base",size:s,children:r})]})}),n.jsx("div",{className:_i({size:s}),children:g})]})]}):null});Hr.displayName="FieldSectionLayout";class W extends ze{type="section";label;description;conditions;fields=[];constructor(e){const{label:t=null,description:r=null,fields:o,conditions:l={},...s}=e;super(s),this.label=t,this.description=r,this.fields=this.initFields(o),this.conditions=this.initConditions(l)}serialize(){return{...super.serialize(),label:this.label,description:this.description,fields:this.fields.map(e=>e.serialize()),conditions:Object.fromEntries(Object.entries(this.conditions).map(([e,t])=>[e,t.map(r=>r.serialize())]))}}static deserialize=e=>{const t=e.fields.map(Ii),r={};for(const[o,l]of Object.entries(e.conditions))r[o]=xi(t,l);return new W({...e,fields:t,conditions:r})};static fromConfig=e=>{const t=Ir(e.fields),r={};for(const[o,l]of Object.entries(e.conditions??{}))r[o]=xi(t,l);return new W({...e,fields:t,conditions:r})};static deserializeConfig(e){const{label:t,description:r,fields:o,conditions:l,...s}=e;return{...ze._deserializeConfig(s),label:t,description:r,fields:_r(o),conditions:l}}static serializeConfig(e){const{label:t,description:r,fields:o,conditions:l,...s}=e;return{...ze._serializeConfig(s),label:t??null,description:r,fields:Lr(o),conditions:l??{}}}config(){return{...super.config(),label:this.label,description:this.description,fields:this.fields.map(e=>e.config()),conditions:Object.fromEntries(Object.entries(this.conditions).map(([e,t])=>[e,t.map(r=>r.serialize())]))}}getOptions(){return{...super.getOptions(),label:this.label,description:this.description,fields:this.fields,conditions:this.conditions}}duplicate(e){return new W({...this.getOptions(),identifier:e,fields:this.fields.map(t=>t.duplicate(F.v4()))})}setOptions(e){"label"in e&&(this.label=e.label??null),"description"in e&&(this.description=e.description??null),"fields"in e&&e.fields!==void 0&&(this.fields=e.fields),"conditions"in e&&(this.conditions=e.conditions??{}),super.setOptions(e)}getErrors(e){const t={};for(const r of this.fields){const o=r.getError(e[r.identifier]);o&&(t[r.identifier]=o)}return t}fieldObserver=()=>{this.notify(this)};initFields=e=>{for(const t of e)t.observe(this.fieldObserver);return e};getFields(){return this.fields}addField(e,t){const r=[...this.fields];r.splice(t??this.fields.length,0,e),this.fields=this.initFields(r),this.notify(this)}moveField(e,t){const r=[...this.fields],[o]=r.splice(e,1);r.splice(t,0,o),this.fields=r,this.notify(this)}removeField(e){this.fields=this.initFields(this.fields.filter(({identifier:r})=>r!==e.identifier));const t={};for(const[r,o]of Object.entries(this.conditions))t[r]=o.filter(l=>l.field.identifier!==e.identifier);this.conditions=t,this.notify(this)}conditionObserver=()=>{this.notify(this)};initConditions=e=>{for(const t of Object.values(e).flat())t.observe(this.conditionObserver);return e};getConditions(e){return this.conditions[e]}addCondition(e,t){this.conditions=this.initConditions({...this.conditions,[e]:[...this.conditions[e]??[],t]}),this.notify(this)}addConditions(e,t){this.conditions=this.initConditions({...this.conditions,[e]:[...this.conditions[e]??[],...t]}),this.notify(this)}removeCondition(e,t){this.conditions=this.initConditions({...this.conditions,[e]:(this.conditions[e]??[]).filter(r=>r.id!==t.id)}),this.notify(this)}removeConditions(e,t){const r=new Set(t.map(o=>o.id));this.conditions=this.initConditions({...this.conditions,[e]:(this.conditions[e]??[]).filter(o=>!r.has(o.id))}),this.notify(this)}getConditionals(){return new Set(Object.keys(this.conditions))}addConditional(e){this.conditions=this.initConditions({...this.conditions,[e]:[]}),this.notify(this)}removeConditional(e){const t={...this.conditions};delete t[e],this.conditions=this.initConditions(t),this.notify(this)}render(){return n.jsx(Hr,{fieldSection:this})}}const ne=d.createContext({}),Ti=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:o,onSelectFieldType:l,...s}=i,f=d.useMemo(()=>{const u={[q.Assessment]:[],[q.Capture]:[],[q.Numeric]:[],[q.Selection]:[],[q.Temporal]:[],[q.Text]:[],[q.Verification]:[]};for(const h of zt){const{group:p}=T[h];u[p].push(h)}return u},[]);return n.jsxs(a.Menu.Root,{...s,children:[n.jsx(a.Menu.ClickTrigger,{children:e}),n.jsx(a.Menu.Content,{variant:t,size:r,accentColor:o,children:n.jsx(a.Menu.Scroll,{children:Object.entries(f).map(([u,h])=>{const{name:p}=St[u];return h.length===0?null:n.jsxs(a.Menu.Group,{children:[n.jsx(a.Menu.Label,{children:p}),h.map(g=>n.jsx(Wr,{fieldType:g,onSelectFieldType:l},g))]},u)})})})]})});Ti.displayName="CreateFieldDropdownMenu";const Wr=d.memo(i=>{const{fieldType:e,onSelectFieldType:t}=i,r=d.useCallback(()=>{t(e)},[e,t]),{icon:o,name:l}=T[e];return n.jsxs(a.Menu.Item,{onSelect:r,children:[n.jsx(a.LuIcon,{icon:o}),n.jsx(a.Text,{className:"truncate",children:l})]})});Wr.displayName="CreateFieldDropdownMenuItem";const Ei=i=>{switch(i){case"text":return new pe({label:"",required:!1,identifier:F.v4()});case"boolean":return new le({label:"",required:!1,identifier:F.v4()});case"number":return new J({label:"",required:!1,identifier:F.v4()});case"date":return new we({label:"",required:!1,identifier:F.v4()});case"time":return new Me({label:"",required:!1,identifier:F.v4()});case"string":return new he({label:"",required:!1,identifier:F.v4()});case"url":return new xe({label:"",required:!1,identifier:F.v4()});case"select":return new re({label:"",options:[],required:!1,identifier:F.v4()});case"multi-string":return new ae({label:"",required:!1,identifier:F.v4()});case"multi-select":return new ie({label:"",options:[],required:!1,identifier:F.v4()});case"upload":return new me({label:"",required:!1,identifier:F.v4()});case"qr":return new be({label:"",required:!1,identifier:F.v4()});case"radio":return new ue({label:"",options:[],required:!1,identifier:F.v4()});case"checkbox-list":return new ee({label:"",options:[],required:!1,identifier:F.v4()});case"pass-fail":return new ce({label:"",required:!1,identifier:F.v4(),showNotesAndFilesOn:["fail"]});case"otp":return new se({label:"",validationType:"none",required:!1,identifier:F.v4(),length:6});case"rating":return new fe({label:"",required:!1,identifier:F.v4(),maxRating:5})}},wn=i=>{switch(i.type){case"text":return new ri({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"boolean":return new Je({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"number":return new Ye({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"date":return new We({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"time":return new oi({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"string":return new ti({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"url":return new li({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"select":return new ni({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"multi-string":return new Xe({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"multi-select":return new Ke({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"upload":return new ai({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"qr":return new ii({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"radio":return new Re({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"checkbox-list":return new He({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"pass-fail":return new Qe({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"otp":return new Ze({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"rating":return new ei({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i})}},Kr=(i,e)=>{switch(i){case"checkbox-list":return ee.getFieldCreationSchema(e);case"multi-select":return ie.getFieldCreationSchema(e);case"number":return J.getFieldCreationSchema(e);case"radio":return ue.getFieldCreationSchema(e);case"select":return re.getFieldCreationSchema(e);case"string":return he.getFieldCreationSchema(e);case"text":return pe.getFieldCreationSchema(e);case"upload":return me.getFieldCreationSchema(e);case"pass-fail":return ce.getFieldCreationSchema(e);case"otp":return se.getFieldCreationSchema(e);case"rating":return fe.getFieldCreationSchema(e);default:return}},Xr=d.memo(i=>{const{popoverInputs:e,...t}=i;return n.jsxs(a.Popover.Root,{children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:n.jsxs(a.Button,{variant:"soft",type:"button",size:"sm",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:ko}),"Settings"]})}),n.jsx(a.Popover.Content,{size:"sm",...t,children:n.jsx("div",{className:R.cx("flex w-full max-w-[350px] flex-col",_i({size:"sm"})),children:e})})]})});Xr.displayName="FieldSettingsPopover";const Yr=d.memo(i=>{const{parentPath:e,fieldIndex:t,field:r}=i,o=fi(),{disableRequiredFields:l}=d.use(ne),[s,f]=d.useState(void 0);d.useEffect(()=>{r.image instanceof Promise?r.image.then(f).catch(console.error):f(r.image)},[r]);const u=d.useCallback(()=>{r.setOptions({image:void 0})},[r]),[h,p]=d.useMemo(()=>{const z=[],O=[],$=Kr(r.type,`${e}.${t}`)??[];for(const G of $)G.showDirectly?z.push(G.field):O.push(G.field);return[z,O]},[r,e,t]),g=hi(h),m=hi(p),C=p.length>0,v=d.useCallback(()=>{s&&o(()=>({file:s}))},[o,s]),S=d.useCallback(z=>{r.setOptions({required:!!z})},[r]),w=d.useCallback(z=>{r.setOptions({label:z.target.value})},[r]),y=d.useCallback(z=>{r.setOptions({description:z.target.value})},[r]),{icon:x,name:I}=T[r.type];return n.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[n.jsxs("div",{className:"flex w-full justify-between gap-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsxs(a.Badge,{accentColor:"base",variant:"soft",size:"sm",children:[n.jsx(a.LuIcon,{icon:x}),I]}),!l&&n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(a.Checkbox.Root,{checked:r.required,onCheckedChange:S,size:"sm",children:n.jsx(a.Checkbox.Indicator,{children:n.jsx(a.LuIcon,{icon:H})})}),n.jsx(a.Text,{size:"sm",accentColor:"base",children:"Required"})]})]}),C&&n.jsx(Xr,{popoverInputs:m,align:"end"})]}),s&&n.jsxs("div",{className:"group relative inline-block w-full min-w-[300px]",children:[n.jsx(Oe,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:s,onClick:v}),n.jsx(a.IconButton,{type:"button",className:"group-hover:not-disabled:flex absolute right-2 top-2 hidden",variant:"solid",accentColor:"base","aria-label":"delete",onClick:u,size:"sm",children:n.jsx(a.LuIcon,{icon:ve})})]}),n.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[n.jsx(a.Input.Root,{variant:"outline",size:"md",children:n.jsx(a.Input.Field,{placeholder:"Enter your question",value:r.label??"",onChange:w,maxLength:200})}),n.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a field description (optional)",value:r.description??"",onChange:y,maxLength:1e3,resize:"vertical",size:"md"})]}),h.length>0&&n.jsx("div",{className:R.cx("w-full",_i({size:"sm"})),children:g})]})});Yr.displayName="FieldBuilder";const Fn=d.memo(i=>{const{field:e,fieldSection:t,fieldIndex:r,sectionIndex:o}=i,l=d.useRef(null),s=`fields.${o}.fields`,f=d.useCallback(S=>{t.addField(Ei(S),r+1)},[r,t]),u=d.useCallback(()=>{t.addField(e.duplicate(F.v4()))},[e,t]),h=d.useCallback(S=>{const w=S==="up"?o-1:o+1;t.moveField(r,w)},[t,r,o]),p=d.useCallback(S=>{const{files:w}=S.target;if(!w||w.length!==1)return;const y=w.item(0);y&&e.setOptions({image:y})},[e]),g=d.useCallback(()=>{h("up")},[h]),m=d.useCallback(()=>{h("down")},[h]),C=d.useCallback(()=>{l.current?.click()},[]),v=d.useCallback(()=>{t.removeField(e)},[e,t]);return n.jsxs(a.Card,{className:"flex w-full items-center justify-between gap-4",size:"sm",children:[n.jsx(Yr,{fieldIndex:r,field:e,parentPath:s}),n.jsxs(a.ButtonGroup,{className:"flex flex-col gap-0.5",variant:"ghost",accentColor:"base",size:"sm",children:[n.jsx(Ti,{onSelectFieldType:f,size:"sm",children:n.jsx(a.IconButton,{type:"button",children:n.jsx(a.LuIcon,{icon:Z})})}),n.jsx(a.IconButton,{type:"button",onClick:g,children:n.jsx(a.LuIcon,{icon:Un})}),n.jsx(a.IconButton,{type:"button",onClick:m,children:n.jsx(a.LuIcon,{icon:jn})}),n.jsx(a.IconButton,{type:"button",onClick:u,children:n.jsx(a.LuIcon,{icon:Ai})}),n.jsx(a.IconButton,{type:"button",onClick:C,children:n.jsx(a.LuIcon,{icon:Dn})}),n.jsx(a.IconButton,{type:"button",onClick:v,children:n.jsx(a.LuIcon,{icon:ve})})]}),n.jsx("input",{className:"hidden",ref:l,type:"file",accept:"image/*",onChange:p})]})});Fn.displayName="FieldBuilderWithActions";const Nn=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:o,fields:l,onSelectField:s,...f}=i;return n.jsxs(a.Menu.Root,{...f,children:[n.jsx(a.Menu.ClickTrigger,{children:e}),n.jsx(a.Menu.Content,{variant:t,size:r,accentColor:o,children:n.jsx(a.Menu.Scroll,{children:l.map(u=>n.jsx(Zr,{field:u,onSelectField:s},u.identifier))})})]})});Nn.displayName="FieldDropdownMenu";const Zr=d.memo(i=>{const{field:e,onSelectField:t}=i,r=d.useCallback(()=>{t(e)},[e,t]);return n.jsxs(a.Menu.Item,{onSelect:r,children:[n.jsx(a.LuIcon,{icon:T[e.type].icon}),e.label||A]})});Zr.displayName="FieldDropdownMenuItem";const Qr=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:o,fieldSections:l,onSelectFieldSection:s,...f}=i;return n.jsxs(a.Menu.Root,{...f,children:[n.jsx(a.Menu.ClickTrigger,{children:e}),n.jsx(a.Menu.Content,{variant:t,size:r,accentColor:o,children:l.map(u=>n.jsx(Rr,{fieldSection:u,onSelectFieldSection:s},u.identifier))})]})});Qr.displayName="FieldSectionDropdownMenu";const Rr=d.memo(i=>{const{fieldSection:e,onSelectFieldSection:t}=i,r=d.useCallback(()=>{t(e)},[e,t]);return n.jsxs(a.Menu.Item,{onSelect:r,children:[n.jsx(a.LuIcon,{icon:Pn}),e.label||nn]})});Rr.displayName="FieldSectionDropdownMenuItem";const eo=d.memo(i=>{const{id:e,sourceX:t,sourceY:r,targetX:o,targetY:l,style:s,markerEnd:f,data:u}=i,{targetSection:h,sourceSection:p,layoutDirection:g}=u,m=d.useMemo(()=>p.getConditions(h.identifier),[p,h.identifier]),C=d.useCallback(()=>{p.removeConditional(h.identifier)},[p,h.identifier]),v=d.useCallback(I=>{p.addCondition(h.identifier,wn(I))},[p,h.identifier]),S=d.useCallback(I=>{p.removeCondition(h.identifier,I)},[p,h.identifier]),[w,y,x]=_.getBezierPath({sourceX:t,sourceY:r,sourcePosition:g==="LR"?_.Position.Right:_.Position.Bottom,targetX:o,targetY:l,targetPosition:g==="LR"?_.Position.Left:_.Position.Top});return n.jsxs(n.Fragment,{children:[n.jsx(_.BaseEdge,{id:e,path:w,style:s,markerEnd:f,labelX:y,labelY:x}),n.jsx(_.EdgeLabelRenderer,{children:n.jsxs(a.Card,{size:"xs",variant:"surface",className:"nodrag nopan bg-(--base-2) pointer-events-auto absolute inline-flex flex-col gap-2",onMouseDown:a.stopPropagation,onClick:a.stopPropagation,"data-floating-content":"",style:{transform:`translate(-50%, -50%) translate(${y}px, ${x}px)`},children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(a.Text,{size:"xs",className:"max-w-[280px] truncate",children:p.label||"Untitled section"}),n.jsxs("div",{className:"ml-auto flex items-center gap-1",children:[n.jsx(Nn,{fields:p.fields,onSelectField:v,children:n.jsx(a.IconButton,{"aria-label":"Add condition",type:"button",variant:"surface",size:"xs",accentColor:"base",children:n.jsx(a.LuIcon,{icon:Z})})}),n.jsxs(a.Tooltip.Root,{children:[n.jsx(a.Tooltip.Trigger,{asChild:!0,children:n.jsx(a.IconButton,{"aria-label":"Remove conditional logic",type:"button",variant:"surface",size:"xs",accentColor:"base",color:"danger",onClick:C,children:n.jsx(a.LuIcon,{icon:ve})})}),n.jsx(a.Tooltip.Content,{size:"sm",children:"Remove conditional logic"})]})]})]}),m.length>0&&n.jsx("div",{className:"flex h-max w-full flex-col flex-wrap gap-1",children:m.map(I=>n.jsx(d.Fragment,{children:I.render({onRemove:S})},I.id))})]})})]})});eo.displayName="FieldSectionConditionEdgeComponent";const io=d.memo(i=>{const{data:e,selected:t}=i,{fieldSection:r,index:o,layoutDirection:l}=e,{fieldSchema:s}=d.use(ne),f=d.useCallback(()=>{s.removeFieldSection(r)},[s,r]),u=d.useCallback(C=>{r.addField(Ei(C))},[r]),h=d.useCallback(()=>{const C=new W({identifier:F.v4(),fields:[]});s.addFieldSection(C),r.addConditional(C.identifier)},[s,r]),p=d.useCallback(()=>{s.addFieldSection(r.duplicate(F.v4()))},[s,r]),g=d.useCallback(C=>{r.setOptions({label:C.target.value})},[r]),m=d.useCallback(C=>{r.setOptions({description:C.target.value})},[r]);return n.jsxs(a.Card,{variant:"surface",className:"bg-(--base-2) relative cursor-pointer",size:"sm","data-selected":t?"true":void 0,children:[n.jsxs("div",{className:"flex flex-col gap-3",children:[n.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[n.jsx(a.Input.Root,{variant:"outline",size:"md",accentColor:"base",children:n.jsx(a.Input.Field,{placeholder:"Enter a section label (optional)",value:r.label??"",onChange:g,maxLength:200})}),n.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a section description (optional)",value:r.description??"",onChange:m,maxLength:1e3,resize:"vertical",size:"md"})]}),n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx(a.Text,{weight:"bold",children:"Fields"}),n.jsx(Ti,{onSelectFieldType:u,size:"sm",children:n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:Z})," Add field"]})})]}),n.jsx("div",{className:"flex flex-col gap-3",children:r.fields.map((C,v)=>n.jsx(Fn,{field:C,fieldSection:r,fieldIndex:v,sectionIndex:o},C.identifier))})]}),n.jsx(_.NodeToolbar,{isVisible:!0,position:_.Position.Right,align:"start",offset:8,onMouseDown:a.stopPropagation,children:n.jsx(a.Card,{variant:"surface",className:"bg-(--base-2) flex flex-col items-center gap-1 p-1",size:"xs",onClick:a.stopPropagation,children:n.jsxs(a.ButtonGroup,{className:"flex flex-col gap-2",variant:"surface",size:"xs",accentColor:"base",children:[n.jsx(a.IconButton,{type:"button",onClick:h,children:n.jsx(a.LuIcon,{icon:Eo})}),n.jsx(a.IconButton,{type:"button",onClick:p,children:n.jsx(a.LuIcon,{icon:Ai})}),n.jsx(a.IconButton,{type:"button",onClick:f,children:n.jsx(a.LuIcon,{icon:ve})})]})})}),n.jsx(_.Handle,{type:"target",className:"size-4! bg-(--base-3)! border-(--base-7)!",position:l==="LR"?_.Position.Left:_.Position.Top}),n.jsx(_.Handle,{type:"source",className:"size-4! bg-(--base-3)! border-(--base-7)!",position:l==="LR"?_.Position.Right:_.Position.Bottom})]})});io.displayName="CustomNode";const oa={fieldSection:io},aa={fieldSectionCondition:eo},la=(i,e,t)=>{const r=new In.graphlib.Graph().setDefaultEdgeLabel(()=>({}));return r.setGraph({rankdir:t,nodesep:200,edgesep:500,ranksep:500}),e.forEach(o=>r.setEdge(o.source,o.target,{width:500,height:200,labelpos:"c"})),i.forEach(o=>r.setNode(o.id,{...o,width:o.measured?.width??0,height:o.measured?.height??0})),In.layout(r),[i.map(o=>{const l=r.node(o.id),s=l.x-(o.measured?.width??0)/2,f=l.y-(o.measured?.height??0)/2;return{...o,position:{x:s,y:f}}}),e]},sa={hideAttribution:!0},no=d.memo(()=>{const{errors:i}=Y.useFormState(),{handleSubmit:e}=Y.useFormContext(),{onSave:t,onCancel:r}=d.use(ne),{fieldSchema:o}=d.use(ne),l=d.useRef(null),[s,f]=d.useState(),[u,h]=d.useState("TB");d.useLayoutEffect(()=>{l.current&&l.current.classList.remove("light")},[]);const p=d.useMemo(()=>o.fieldSections.map((D,K)=>({id:D.identifier,position:{x:0,y:0},data:{index:K,fieldSection:D,layoutDirection:u},draggable:!0,type:"fieldSection"})),[o.fieldSections,u]),g=d.useMemo(()=>{const D=[],K={};for(const X of o.fieldSections)K[X.identifier]=X;for(const X of o.fieldSections){const si=X.conditions;for(const[di,pa]of Object.entries(si))D.push({id:`${X.identifier}-${di}`,source:X.identifier,target:di,data:{targetSection:K[di],sourceSection:X,layoutDirection:u},animated:pa.length>0,markerEnd:_.MarkerType.Arrow,style:{strokeWidth:2,stroke:"var(--base-a8)"},type:"fieldSectionCondition"})}return D},[o.fieldSections,u]),[m,C,v]=_.useNodesState(p),[S,w,y]=_.useEdgesState(g);d.useEffect(()=>{C(p)},[p,C]),d.useEffect(()=>{w(g)},[g,w]);const[x,I]=d.useMemo(()=>la(m,S,u),[S,u,m]),z=d.useCallback(()=>{o.addFieldSection(new W({identifier:F.v4(),fields:[]}))},[o]),O=d.useCallback(D=>{const{source:K,target:X}=D,si=o.fieldSections.find(({identifier:di})=>di===K);si.setOptions({conditions:{...si.conditions,[X]:[]}})},[o.fieldSections]),$=d.useCallback(D=>{const K=o.getSectionDependencyGraph();return!Mn.willCreateCycle(K,D.source,D.target)},[o]),G=d.useCallback(()=>{s?.zoomOut()},[s]),te=d.useCallback(()=>{s?.zoomIn()},[s]),De=d.useCallback(()=>{s?.fitView()},[s]);return n.jsxs("form",{className:"flex size-full flex-col gap-4",onSubmit:e(t),children:[n.jsxs(a.Card,{className:"relative size-full",variant:"outline",children:[n.jsx(_.ReactFlow,{ref:l,onInit:f,nodes:x,onNodesChange:v,edges:I,onEdgesChange:y,nodeTypes:oa,edgeTypes:aa,onConnect:O,attributionPosition:"bottom-left",fitView:!0,minZoom:0,isValidConnection:$,proOptions:sa}),n.jsx(_.Panel,{position:"top-left",children:n.jsx(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:n.jsxs(a.Button,{type:"button",variant:"surface",onClick:z,children:[n.jsx(a.LuIcon,{icon:Z})," Add section"]})})}),n.jsxs(_.Panel,{position:"top-right",className:"flex flex-col items-center gap-2",children:[n.jsxs(a.ToggleGroup.Root,{className:"flex flex-col",type:"single",accentColor:"base",size:"sm",value:u,onValueChange:h,children:[n.jsx(a.ToggleGroup.IconItem,{className:"rounded-b-none",value:"LR",type:"button",children:n.jsx(a.LuIcon,{icon:Fo})}),n.jsx(a.ToggleGroup.IconItem,{className:"rounded-t-none",value:"TB",type:"button",children:n.jsx(a.LuIcon,{icon:wo})})]}),n.jsx(a.Separator,{size:"sm"}),n.jsxs(a.ButtonGroup,{className:"flex flex-col",size:"sm",accentColor:"base",variant:"soft",children:[n.jsx(a.IconButton,{className:"rounded-b-none",onClick:te,type:"button",children:n.jsx(a.LuIcon,{icon:Z})}),n.jsx(a.IconButton,{onClick:G,radius:"none",type:"button",children:n.jsx(a.LuIcon,{icon:ui})}),n.jsx(a.IconButton,{className:"rounded-t-none",onClick:De,type:"button",children:n.jsx(a.LuIcon,{icon:Jo})})]})]}),n.jsx(_.Panel,{position:"bottom-right",children:n.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:[r&&n.jsx(a.Button,{type:"button",variant:"soft",accentColor:"base",onClick:r,children:"Cancel"}),n.jsx(a.Button,{type:"submit",variant:"surface",children:"Save"})]})})]}),!!i.fields?.message&&n.jsx(a.Text,{size:"xs",accentColor:"danger",children:i.fields.message})]})});no.displayName="FormBuilderFlowBuilder";const da=(i,e,t={})=>{const{conditions:r=!1}=t,o=i.get(e.identifier);if(!o)throw new Error(`Attempting to reseed serialized section with identifier ${e.identifier} which is not present in the reseeded identifier map`);const l=new Map,s=e.fields.map(u=>{const h=F.v4();return l.set(u.identifier,h),{...u,identifier:h}}),f={};if(r)for(const[u,h]of Object.entries(e.conditions??{})){const p=i.get(u);if(!p)continue;const g=h.map(m=>{const C=l.get(m.fieldId);if(!C)throw new Error(`Serialized condition referencing undefined field with identifier: ${m.fieldId}`);return{...m,fieldId:C}});f[p]=g}return{...e,identifier:o,conditions:f,fields:s}},ca=(i,e={})=>{const t=new Map(i.map(r=>[r.identifier,F.v4()]));return i.map(r=>da(t,r,e))},bn=(i,e)=>{const t={},r=i.filter(o=>o instanceof W);for(const o of i)if(o instanceof W){const l=r.filter(f=>o.identifier in f.conditions);if(l.length>0&&!l.some(f=>{const u=f.getConditions(o.identifier);return new Mi(u).applyConditions(e)}))continue;const s=o.getErrors(e);Object.assign(t,s)}else{if(!(o instanceof b))throw new Error("Invalid field type");const l=o.identifier,s=o.getError(On(e,l));s&&mo(t,l,s)}return t},ua=async i=>{const e={};for(const t of i){const{fields:r}=t;for(const o of r)if(o.image)if(o.image instanceof Promise)try{e[o.identifier]=await o.image}catch(l){console.error("Failed to get image from promise",l)}else e[o.identifier]=o.image}return e};async function fa(i){const e={};for(const[t,r]of Object.entries(i))e[t]=await Promise.all(r);return e}class ye extends je{fieldSections;constructor(e){super(),this.fieldSections=this.initFields(e)}serialize(){return this.fieldSections.map(e=>e.serialize())}config(){return this.fieldSections.map(e=>e.config())}static deserialize(e){return new ye(qi(e))}static fromConfig(e){return new ye(Or(e))}static serializeConfig(e){return Ar(e)}static deserializeConfig(e){return Er(e)}static reseedFieldSections(e,t){return ca(e,t)}fieldObserver=()=>{this.notify(this)};initFields=e=>{for(const t of e)t.observe(this.fieldObserver);return e};getFields(){return this.fieldSections.flatMap(e=>e.getFields())}getFieldSections(){return this.fieldSections}addFieldSection(e,t){const r=[...this.fieldSections];r.splice(t??this.fieldSections.length,0,e),this.fieldSections=this.initFields(r),this.notify(this)}removeFieldSection(e){const t=this.fieldSections.filter(r=>r.identifier!==e.identifier);for(const r of t)r.removeConditional(r.identifier);this.fieldSections=this.initFields(t),this.notify(this)}moveFieldSection(e,t){const r=[...this.fieldSections],[o]=r.splice(e,1);r.splice(t,0,o),this.fieldSections=this.initFields(r),this.notify(this)}getSectionDependencyGraph(){const e=new po.DirectedGraph({type:"directed"});for(const t of this.fieldSections)for(const r of Object.keys(t.conditions))e.mergeEdge(t.identifier,r);return e}getDependenciesOfSection(e){const t=this.getSectionDependencyGraph(),r=new Map(this.fieldSections.map(l=>[l.identifier,l])),o=[];return go.bfsFromNode(t,e,(l,s,f)=>{o.push(r.get(l))},{mode:"in"}),o}cleanValues(e){return Oi(this.getFields(),e)}cleanSerializedValues(e){return vn(this.getFields(),e)}deserializeValues(e,t){return Dr(this.getFields(),e,t)}serializeValues(e,t){return $r(this.getFields(),e,t)}initializeValues(e){return Ur(this.getFields(),e)}validateValues(e){return bn(this.getFieldSections(),e)}areValuesValid(e){return Object.keys(this.validateValues(e)).length===0}deserializeConditions(e){return xi(this.getFields(),e)}cleanConditions(e){return mn(this.getFields(),e)}serializeConditions(e){return Mr(this.getFields(),e)}cleanSerializedConditions(e){return gn(this.getFields(),e)}changedFieldValues(e,t){return kr(this.getFields(),e,t)}unchangedFieldValues(e,t){return Gr(this.getFields(),e,t)}areValuesEqual(e,t){return zn(this.getFields(),e,t)}areValuesBlank(e){return Jr(this.getFields(),e)}blankValues(){return Sn(this.getFields())}extractFilesAndPromisesFromFieldValues(e){return Pr(this.getFields(),e)}insertFilesAndPromisesToFieldValues(e,t){return jr(this.getFields(),e,t)}}const to=d.memo(i=>{const{sourceFieldSection:e,targetFieldSection:t}=i,r=d.useMemo(()=>e.getConditions(t.identifier),[e,t.identifier]),o=d.useCallback(()=>{e.removeConditional(t.identifier)},[e,t.identifier]),l=d.useCallback(f=>{e.addCondition(t.identifier,wn(f))},[e,t.identifier]),s=d.useCallback(f=>{e.removeCondition(t.identifier,f)},[e,t.identifier]);return n.jsxs(a.Card,{className:"flex flex-col gap-2",size:"sm",children:[n.jsxs(a.ButtonGroup,{className:"flex justify-between gap-2",size:"sm",accentColor:"base",variant:"soft",children:[n.jsxs(a.Badge,{accentColor:"base",variant:"soft",size:"sm",children:[n.jsx(a.LuIcon,{icon:Pn}),e.label??nn]}),n.jsx(a.IconButton,{type:"button",onClick:o,variant:"ghost",children:n.jsx(a.LuIcon,{icon:ve})})]}),n.jsxs("div",{className:"flex h-max w-full flex-wrap gap-2",children:[r.map(f=>f.render({onRemove:s})),n.jsx(Nn,{fields:e.fields,onSelectField:l,align:"start",children:n.jsx(a.IconButton,{type:"button",size:"sm",variant:"soft",accentColor:"base",children:n.jsx(a.LuIcon,{icon:Z})})})]})]})});to.displayName="FieldSectionConditionalItem";const ro=d.memo(i=>{const{fieldSection:e}=i,{fieldSchema:t}=d.use(ne),r=d.useMemo(()=>t.fieldSections.filter(u=>e.identifier in u.conditions),[t.fieldSections,e.identifier]),o=d.useCallback(u=>{u.addConditional(e.identifier)},[e.identifier]),l=d.useCallback(u=>{e.setOptions({label:u.target.value})},[e]),s=d.useCallback(u=>{e.setOptions({description:u.target.value})},[e]),f=d.useMemo(()=>{const u=t.getSectionDependencyGraph();return t.fieldSections.filter(h=>!Mn.willCreateCycle(u,h.identifier,e.identifier))},[e.identifier,t]);return n.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[n.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[n.jsx(a.Input.Root,{variant:"outline",size:"md",children:n.jsx(a.Input.Field,{placeholder:"Enter a section label (optional)",value:e.label??"",onChange:l,maxLength:200})}),n.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a section description (optional)",value:e.description??"",onChange:s,maxLength:1e3,resize:"vertical",size:"md"})]}),n.jsx(a.Separator,{size:"full"}),n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsxs("div",{className:"flex justify-between gap-2",children:[n.jsx(a.Text,{accentColor:"base",children:"Conditions"}),n.jsx(Qr,{fieldSections:f,onSelectFieldSection:o,children:n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",className:"w-max",children:[n.jsx(a.LuIcon,{icon:Z}),"Add condition"]})})]}),r.map(u=>n.jsx(to,{sourceFieldSection:u,targetFieldSection:e},u.identifier))]}),n.jsx(a.Separator,{size:"full"})]})});ro.displayName="FieldSectionBuilder";const oo=d.memo(i=>{const{fieldSection:e,sectionIndex:t}=i,{fieldSchema:r}=d.use(ne),o=a.useAlertDialog(),l=d.useCallback(()=>{r.removeFieldSection(e)},[r,e]),s=d.useCallback(S=>{const w=S==="up"?t-1:t+1;r.moveFieldSection(t,w)},[r,t]),f=d.useCallback(()=>{r.addFieldSection(e.duplicate(F.v4()))},[r,e]),u=d.useCallback(S=>{e.addField(Ei(S))},[e]),h=d.useCallback(()=>{s("up")},[s]),p=d.useCallback(()=>{s("down")},[s]),g=d.useCallback(async()=>{const S=[e.serialize()],w=ye.reseedFieldSections(S,{conditions:!1}),y=JSON.stringify(w);await navigator.clipboard.writeText(y),a.toast.success({title:"Section copied"})},[e]),m=d.useCallback(async()=>{const w=r.getDependenciesOfSection(e.identifier).map(I=>I.serialize()),y=ye.reseedFieldSections(w,{conditions:!0}),x=JSON.stringify(y);await navigator.clipboard.writeText(x),a.toast.success({title:"Section copied"})},[e,r]),C=d.useCallback(async()=>{const S=r.getDependenciesOfSection(e.identifier),w=S.length>1,y=S.length-1;w?o({title:"Copy section dependencies?",description:`This section has ${y} dependent section${y>1?"s":""} that will also be copied to maintain the conditions. Do you want to include these dependencies?`,action:"Include",onAction:m,cancel:"Dont include",onCancel:g}):g()},[e,r,o,m,g]),v=d.useCallback(async()=>{let S="";try{S=await navigator.clipboard.readText()}catch{a.toast.error({title:"Paste failed",description:"Unable to read clipboard contents."});return}const w=S.trim();if(!w){a.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}try{const y=JSON.parse(w),x=qn.JSONFieldSectionSchema.array().parse(y),I=qi(x);if(I.length===0){a.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}for(const[z,O]of I.entries())r.addFieldSection(O,t+1+z);a.toast.success({title:"Sections pasted",description:"Serialized JSON imported successfully."})}catch(y){console.error(y),a.toast.error({title:"Invalid JSON",description:"Check the JSON and try again."})}},[r,t]);return n.jsxs(a.Card,{variant:"outline",className:"flex w-full items-center justify-between gap-4",size:"sm",children:[n.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[n.jsx(ro,{fieldSection:e}),n.jsxs("div",{className:"flex w-full flex-col gap-2",children:[n.jsxs("div",{className:"flex justify-between gap-2",children:[n.jsx(a.Text,{accentColor:"base",size:"md",children:"Fields"}),n.jsx(Ti,{onSelectFieldType:u,size:"sm",children:n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",children:[n.jsx(a.LuIcon,{icon:Z})," Add field"]})})]}),e.fields.map((S,w)=>n.jsx(Fn,{field:S,fieldSection:e,fieldIndex:w,sectionIndex:t},S.identifier))]})]}),n.jsxs(a.ButtonGroup,{className:"flex flex-col gap-0.5",variant:"ghost",accentColor:"base",size:"sm",children:[n.jsx(a.IconButton,{type:"button",onClick:h,children:n.jsx(a.LuIcon,{icon:Un})}),n.jsx(a.IconButton,{type:"button",onClick:p,children:n.jsx(a.LuIcon,{icon:jn})}),n.jsxs(a.Menu.Root,{align:"end",children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.IconButton,{type:"button",children:n.jsx(a.LuIcon,{icon:$n})})}),n.jsxs(a.Menu.Content,{size:"sm",children:[n.jsxs(a.Menu.Item,{onSelect:f,children:[n.jsx(a.LuIcon,{icon:Ai}),"Duplicate section"]}),n.jsxs(a.Menu.Item,{onSelect:C,children:[n.jsx(a.LuIcon,{icon:Ln}),"Copy JSON"]}),n.jsxs(a.Menu.Item,{onSelect:v,children:[n.jsx(a.LuIcon,{icon:Bn}),"Paste JSON"]}),n.jsxs(a.Menu.Item,{onSelect:l,children:[n.jsx(a.LuIcon,{icon:ve}),"Delete section"]})]})]})]})]})});oo.displayName="FieldSectionWithActions";const ao=d.memo(()=>{const{handleSubmit:i}=Y.useFormContext(),{errors:e}=Y.useFormState(),{onSave:t,onCancel:r}=d.use(ne),{fieldSchema:o}=d.use(ne),l=d.useCallback(()=>{o.addFieldSection(new W({identifier:F.v4(),fields:[]}))},[o]),s=d.useCallback(async()=>{try{const u=o.serialize(),h=ye.reseedFieldSections(u),p=JSON.stringify(h);await navigator.clipboard.writeText(p),a.toast.success({title:"Sections copied",description:"All sections JSON copied to clipboard."})}catch{a.toast.error({title:"Copy failed",description:"Unable to copy the sections JSON."})}},[o]),f=d.useCallback(async()=>{let u="";try{u=await navigator.clipboard.readText()}catch{a.toast.error({title:"Paste failed",description:"Unable to read clipboard contents."});return}const h=u.trim();if(!h){a.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}try{const p=JSON.parse(h),g=qn.JSONFieldSectionSchema.array().parse(p),m=qi(g);if(m.length===0){a.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}for(const[C,v]of m.entries())o.addFieldSection(v,o.fieldSections.length+C);a.toast.success({title:"Sections pasted",description:"Serialized JSON imported successfully."})}catch(p){console.error(p),a.toast.error({title:"Invalid JSON",description:"Check the JSON and try again."})}},[o]);return n.jsxs("form",{className:"flex flex-col gap-4",onSubmit:i(t),children:[n.jsxs("div",{className:"flex flex-col gap-4",children:[n.jsxs("div",{className:"flex items-center justify-end gap-2",children:[n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",onClick:s,children:[n.jsx(a.LuIcon,{icon:Ln})," Copy JSON"]}),n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",onClick:f,children:[n.jsx(a.LuIcon,{icon:Bn})," Paste JSON"]})]}),o.fieldSections.map((u,h)=>n.jsx(oo,{fieldSection:u,sectionIndex:h},u.identifier)),n.jsxs(a.Button,{className:"mb-4",type:"button",variant:"soft",accentColor:"base",size:"sm",onClick:l,children:[n.jsx(a.LuIcon,{icon:Z})," Add section"]})]}),!!e.fields?.message&&n.jsx(a.Text,{size:"xs",accentColor:"danger",children:e.fields.message}),n.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:[r&&n.jsx(a.Button,{type:"button",variant:"soft",accentColor:"base",onClick:r,children:"Cancel"}),n.jsx(a.Button,{type:"submit",variant:"surface",children:"Save"})]})]})});ao.displayName="FormBuilderListBuilder";function lo(i){const e=t=>{const r={};for(const[o,l]of Object.entries(t))typeof l=="string"?r[o]={type:"validate",message:l}:r[o]=e(l);return r};return e(i)}const so=d.memo(d.forwardRef((i,e)=>{const{disabled:t=!1,fieldSchema:r,values:o={},onValuesChange:l,onSubmit:s,submitText:f="Submit",hideSubmit:u=!1,cancelText:h,onCancel:p,hideCancel:g=!1,className:m,submitButtonProps:C,cancelButtonProps:v,cancelIcon:S,submitIcon:w,size:y="md"}=i,x=d.useMemo(()=>r.initializeValues(o),[r,o]),I=d.useCallback(D=>{s?.(D)},[s]),z=Y.useForm({values:x,mode:"onBlur",criteriaMode:"all",disabled:t,resolver:D=>{const K=r.validateValues(D),X=lo(K);return Object.keys(K).length>0?{values:{},errors:X}:{values:D,errors:{}}}}),O=d.useCallback(D=>{l?.(D)},[l]);d.useEffect(()=>{const{unsubscribe:D}=z.watch((K,{type:X})=>{X==="change"&&O(K)});return()=>{D()}},[z,O]);const $=Hn(r.getFieldSections()),G=d.useMemo(()=>({fieldSchema:r,size:y}),[r,y]),te=!g&&!!p,De=!u;return n.jsx(Y.FormProvider,{...z,children:n.jsx(E,{value:G,children:n.jsxs("form",{ref:e,className:R.cx(m,"flex flex-col gap-4"),onSubmit:z.handleSubmit(I),children:[n.jsx("div",{className:ra({size:y}),children:$}),!t&&(te||De)?n.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:y,children:[te?n.jsxs(a.Button,{accentColor:"base",type:"button",variant:"soft",onClick:p,...v,children:[n.jsx(a.LuIcon,{icon:S??oe}),h]}):null,De?n.jsxs(a.Button,{type:"submit",accentColor:"primary",variant:"surface",...C,children:[n.jsx(a.LuIcon,{icon:w??H}),f]}):null]}):null]})})})})),co=d.memo(()=>{const{fieldSchema:i}=d.use(ne);return n.jsx(so,{fieldSchema:i,disabled:!1})});co.displayName="FormBuilderPreview";const uo=d.memo(i=>{const{children:e,initialFields:t,onSave:r,onCancel:o,disableRequiredFields:l=!1}=i,s=d.useCallback(v=>{const S={};(!v.fields||v.fields.length===0)&&(S.fields="At least one field is required.");const w=[];for(const[I,z]of v.fields.entries())for(const[O,$]of z.fields.entries()){const G=Kr($.type,`fields.${I}.fields.${O}`)?.map(({field:te})=>te)??[];w.push(...G)}const y={};for(const I of w)y[I.identifier]=On(v,I.identifier);const x=bn(w,y);return Object.keys(x).length>0&&(S.fields=x.fields),Object.keys(S).length>0&&a.toast.error({title:"Some form settings are invalid",description:"Please check settings highlighted in red."}),S},[]),f=d.useMemo(()=>({fields:t??[]}),[t]),u=Y.useForm({values:f,mode:"onSubmit",criteriaMode:"all",reValidateMode:"onSubmit",resolver:v=>{const S=s(v),w=lo(S);return Object.keys(S).length>0?{values:{},errors:w}:{values:v,errors:{}}}}),h=d.useCallback(v=>{u.setValue("fields",v.serialize())},[u]),p=Y.useWatch({control:u.control,compute:v=>v.fields}),g=d.useMemo(()=>{const v=ye.deserialize(p);return v.observe(h),v},[p,h]),m=d.useMemo(()=>({fieldSchema:g,disableRequiredFields:l,onSave:r,onCancel:o}),[l,r,o,g]),C=d.useMemo(()=>({fieldSchema:g,size:"sm"}),[g]);return n.jsx(ne,{value:m,children:n.jsx(E,{value:C,children:n.jsx(Y.FormProvider,{...u,children:e})})})});uo.displayName="FormBuilderRoot";const ha={Root:uo,FlowBuilder:no,ListBuilder:ao,Preview:co};c.BaseCondition=j,c.BaseField=b,c.BaseFormElement=ze,c.BaseOptionsField=Q,c.BaseStringField=Se,c.BooleanEqualsConditionModifier=wt,c.BooleanField=le,c.BooleanFieldCondition=Je,c.BooleanFieldConditionCell=Ht,c.BooleanFieldInput=ki,c.BooleanNotEqualsConditionModifier=Ft,c.CheckboxListField=ee,c.CheckboxListFieldCondition=He,c.CheckboxListFieldConditionCell=Kt,c.ConditionManager=Mi,c.DateAfterConditionModifier=xt,c.DateBeforeConditionModifier=Mt,c.DateEqualsConditionModifier=Nt,c.DateField=we,c.DateFieldCondition=We,c.DateFieldConditionCell=Yt,c.DateFieldInput=Gi,c.DateNotEqualsConditionModifier=bt,c.DateRangeInConditionModifier=It,c.DateRangeNotInConditionModifier=qt,c.DoesNotHaveFilesConditionModifier=_t,c.FIELD_TYPES=zt,c.FieldSchema=ye,c.FieldSection=W,c.FieldTypeGroup=q,c.FieldTypeToClsMapping=Ee,c.FieldsRenderer=so,c.FileCard=Di,c.FormBuilder=ha,c.HasFilesConditionModifier=Ot,c.ImageCard=Ji,c.ImageFile=Oe,c.ImageViewer=ji,c.ImageViewerProvider=Jn,c.InputWithLabel=L,c.MultiSelectField=ie,c.MultiSelectFieldCondition=Ke,c.MultiSelectFieldConditionCell=Qt,c.MultiStringField=ae,c.MultiStringFieldCondition=Xe,c.MultiStringFieldConditionCell=er,c.NumberEqualsConditionModifier=tn,c.NumberField=J,c.NumberFieldCondition=Ye,c.NumberFieldConditionCell=nr,c.NumberGreaterThanConditionModifier=ln,c.NumberGreaterThanOrEqualsConditionModifier=sn,c.NumberLessThanConditionModifier=on,c.NumberLessThanOrEqualsConditionModifier=an,c.NumberNotEqualsConditionModifier=rn,c.NumberRangeInConditionModifier=dn,c.NumberRangeNotInConditionModifier=cn,c.OTPField=se,c.OTPFieldCondition=Ze,c.OTPFieldConditionCell=rr,c.Observable=je,c.PassFailArrayExcludesConditionModifier=Bt,c.PassFailArrayIncludesConditionModifier=Lt,c.PassFailEqualsConditionModifier=Tt,c.PassFailField=ce,c.PassFailFieldCondition=Qe,c.PassFailFieldConditionCell=ar,c.PassFailNotEqualsConditionModifier=Et,c.RadioField=ue,c.RadioFieldCondition=Re,c.RadioFieldConditionCell=sr,c.RatingField=fe,c.RatingFieldCondition=ei,c.RatingFieldConditionCell=cr,c.ScanField=be,c.ScanFieldCondition=ii,c.ScanFieldConditionCell=fr,c.Scanner=gi,c.ScannerProvider=ut,c.SelectField=re,c.SelectFieldCondition=ni,c.SelectFieldConditionCell=pr,c.StringArrayEqualsConditionModifier=wi,c.StringArrayEveryConditionModifier=vi,c.StringArrayExcludesConditionModifier=fn,c.StringArrayIncludesConditionModifier=un,c.StringArrayNoneConditionModifier=Si,c.StringArrayNotEqualsConditionModifier=Fi,c.StringArraySomeConditionModifier=zi,c.StringEqualsConditionModifier=Ce,c.StringExcludesConditionModifier=Be,c.StringField=he,c.StringFieldCondition=ti,c.StringFieldConditionCell=mr,c.StringIncludesConditionModifier=Le,c.StringNotEqualsConditionModifier=Ve,c.TextField=pe,c.TextFieldCondition=ri,c.TextFieldConditionCell=Vr,c.TimeAfterConditionModifier=Pt,c.TimeBeforeConditionModifier=Dt,c.TimeEqualsConditionModifier=At,c.TimeField=Me,c.TimeFieldCondition=oi,c.TimeFieldConditionCell=vr,c.TimeFieldControl=yi,c.TimeFieldInput=en,c.TimeNotEqualsConditionModifier=$t,c.TimeRangeInConditionModifier=jt,c.TimeRangeNotInConditionModifier=Ut,c.UNLABELLED_FIELD_LABEL=A,c.UNLABELLED_SECTION_LABEL=nn,c.URLField=xe,c.URLFieldCondition=li,c.URLFieldConditionCell=Fr,c.UTC_OFFSETS=Zi,c.UTC_OFFSETS_SET=gt,c.UUIDFile=de,c.UUIDPromise=Ne,c.UploadField=me,c.UploadFieldCondition=ai,c.UploadFieldConditionCell=Sr,c.VideoCard=Wi,c.VideoFile=Hi,c.areFieldValuesBlank=Jr,c.areFieldValuesEqual=zn,c.areFileAndPromiseArraysEqual=pi,c.areJSONPassFailFieldValuesEqual=at,c.arePassFieldValuesEqual=ot,c.awaitFilesAndPromises=fa,c.blankFieldValues=Sn,c.changedFieldValues=kr,c.cleanConditions=mn,c.cleanFieldValues=Oi,c.cleanSerializedConditions=gn,c.cleanSerializedFieldValues=vn,c.createCondition=wn,c.createConditionModifierConfig=V,c.createField=Ei,c.createTime=Qi,c.deserializeCondition=br,c.deserializeConditions=xi,c.deserializeField=Ii,c.deserializeFieldConfig=Vn,c.deserializeFieldConfigs=_r,c.deserializeFieldElement=xr,c.deserializeFieldElementConfig=Tr,c.deserializeFieldElementConfigs=Er,c.deserializeFieldElements=qi,c.deserializeFieldValues=Dr,c.deserializeFields=na,c.deserializePassFailFieldValue=rt,c.extractFilesAndPromisesFromFieldValues=Pr,c.fieldDataMapping=T,c.fieldElementFromConfig=qr,c.fieldElementsFromConfigs=Or,c.fieldFromConfig=Cn,c.fieldSpacingCva=_i,c.fieldTypeGroupDataMapping=St,c.fieldsFromConfigs=Ir,c.formatTime=Vi,c.formatUTCOffset=Ci,c.getCurrentUTCOffset=Ct,c.getFieldsMapping=ta,c.getImagesFromFields=ua,c.getUTCMinuteOfDay=ge,c.getUTCOffsetMinutes=Vt,c.initializeFieldValues=Ur,c.insertFilesAndPromisesToFieldValues=jr,c.isFileAndPromiseArray=Rn,c.isJSONPassFailFieldValue=it,c.isPassFailFieldStatus=Xi,c.isPassFailFieldValue=nt,c.isStringArray=Pe,c.isTime=B,c.isTimeInRange=Ri,c.isTimeRange=ke,c.isUTCOffset=mi,c.normalizeFieldOption=Ui,c.normalizeFieldOptions=_e,c.parseTime=Ue,c.passFailFieldStatusMapping=Fe,c.passFailFieldStatuses=Te,c.serializeConditions=Mr,c.serializeFieldConfig=yn,c.serializeFieldConfigs=Lr,c.serializeFieldElementConfig=Br,c.serializeFieldElementConfigs=Ar,c.serializeFieldValues=$r,c.serializePassFailFieldValue=tt,c.unchangedFieldValues=Gr,c.useConditionManager=ea,c.useFieldInput=P,c.useFieldInputs=hi,c.useFieldSectionInputs=Hn,c.useImageViewer=fi,c.useObjectUrl=Pi,c.useScanner=Yo,c.useScannerContext=dt,c.validateFieldValues=bn,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(c,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("react/jsx-runtime"),require("@overmap-ai/blocks"),require("class-variance-authority"),require("react"),require("@xyflow/react/dist/style.css"),require("@xyflow/react"),require("graphology-dag"),require("react-hook-form"),require("uuid"),require("@hello-pangea/dnd"),require("file-saver"),require("@overmap-ai/hooks"),require("react-zxing"),require("@dagrejs/dagre"),require("@adrekic/zod-fieldsjson"),require("graphology"),require("graphology-traversal"),require("lodash.get"),require("lodash.set")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@overmap-ai/blocks","class-variance-authority","react","@xyflow/react/dist/style.css","@xyflow/react","graphology-dag","react-hook-form","uuid","@hello-pangea/dnd","file-saver","@overmap-ai/hooks","react-zxing","@dagrejs/dagre","@adrekic/zod-fieldsjson","graphology","graphology-traversal","lodash.get","lodash.set"],n):(c=typeof globalThis<"u"?globalThis:c||self,n(c.forms={},c.jsxRuntime,c.blocks,c.classVarianceAuthority,c.React,null,c.react,c.graphologyDag,c.reactHookForm,c.uuid,c.dnd,c.fileSaver,c.hooks,c.reactZxing,c.Dagre,c.zodFieldsjson,c.graphology,c.graphologyTraversal,c.get,c.set))})(this,(function(c,n,a,R,d,ma,_,Mn,Y,F,Ai,xn,In,ho,qn,On,po,mo,_n,go){"use strict";const Co=i=>i.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Vo=i=>i.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase()),Tn=i=>{const e=Vo(i);return e.charAt(0).toUpperCase()+e.slice(1)},En=(...i)=>i.filter((e,t,r)=>!!e&&e.trim()!==""&&r.indexOf(e)===t).join(" ").trim(),yo=i=>{for(const e in i)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var vo={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const zo=d.forwardRef(({color:i="currentColor",size:e=24,strokeWidth:t=2,absoluteStrokeWidth:r,className:o="",children:l,iconNode:s,...f},u)=>d.createElement("svg",{ref:u,...vo,width:e,height:e,stroke:i,strokeWidth:r?Number(t)*24/Number(e):t,className:En("lucide",o),...!l&&!yo(f)&&{"aria-hidden":"true"},...f},[...s.map(([h,p])=>d.createElement(h,p)),...Array.isArray(l)?l:[l]]));const b=(i,e)=>{const t=d.forwardRef(({className:r,...o},l)=>d.createElement(zo,{ref:l,iconNode:e,className:En(`lucide-${Co(Tn(i))}`,`lucide-${i}`,r),...o}));return t.displayName=Tn(i),t};const So=b("align-justify",[["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 18h18",key:"1h113x"}],["path",{d:"M3 6h18",key:"d0wm0j"}]]);const wo=b("arrow-down-up",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"m21 8-4-4-4 4",key:"1c9v7m"}],["path",{d:"M17 4v16",key:"7dpous"}]]);const Fo=b("arrow-left-right",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]);const bo=b("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);const H=b("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const ui=b("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const $i=b("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);const No=b("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const Mo=b("circle-dot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);const xo=b("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const Io=b("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);const Ln=b("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);const Bn=b("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]);const qo=b("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);const An=b("clipboard-paste",[["path",{d:"M11 14h10",key:"1w8e9d"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v1.344",key:"1e62lh"}],["path",{d:"m17 18 4-4-4-4",key:"z2g111"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113",key:"bjbb7m"}],["rect",{x:"8",y:"2",width:"8",height:"4",rx:"1",key:"ublpy"}]]);const Oo=b("copy-check",[["path",{d:"m12 15 2 2 4-4",key:"2c609p"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);const Di=b("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);const $n=b("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);const Dn=b("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);const _o=b("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);const To=b("file",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);const Eo=b("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);const Lo=b("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);const Pn=b("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);const jn=b("layout-panel-top",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}]]);const Bo=b("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);const Ao=b("list-checks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);const $o=b("list-todo",[["rect",{x:"3",y:"5",width:"6",height:"6",rx:"1",key:"1defrl"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);const Do=b("list",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);const Po=b("maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]]);const fi=b("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const Un=b("move-down",[["path",{d:"M8 18L12 22L16 18",key:"cskvfv"}],["path",{d:"M12 2V22",key:"r89rzk"}]]);const kn=b("move-up",[["path",{d:"M8 6L12 2L16 6",key:"1yvkyx"}],["path",{d:"M12 2V22",key:"r89rzk"}]]);const Z=b("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const jo=b("rectangle-ellipsis",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M7 12h.01",key:"eqddd0"}]]);const Uo=b("scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]);const ko=b("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const Go=b("square-check",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const Jo=b("square-dashed",[["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M21 14v1",key:"169vum"}]]);const Gn=b("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);const Ho=b("text-cursor-input",[["path",{d:"M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6",key:"1528k5"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1",key:"1mj8rg"}],["path",{d:"M9 6v12",key:"velyjx"}]]);const Wo=b("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);const ve=b("trash",[["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);const Pi=b("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);const Ko=b("video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]);const oe=b("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),ji=d.memo(i=>{const{ref:e,file:t,className:r,error:o,rightSlot:l,size:s,...f}=i,u=()=>o?n.jsxs(n.Fragment,{children:[n.jsx(a.LuIcon,{icon:$i,color:"var(--base-a11)"}),n.jsx(a.Text,{accentColor:"base",className:"truncate",size:s,children:o})]}):t?n.jsxs(n.Fragment,{children:[n.jsx(a.LuIcon,{icon:To,color:"var(--base-a11)"}),n.jsx(a.Text,{className:"truncate",size:s,children:t.name})]}):n.jsx(n.Fragment,{children:n.jsx("div",{className:"flex w-full justify-center",children:n.jsx(a.Spinner,{size:s})})});return n.jsxs(a.Card,{className:R.cx(r,"flex w-full items-center gap-2"),ref:e,size:"xs",...f,children:[u(),l]})});ji.displayName="FileCard";function Pe(i){return Array.isArray(i)?i.every(e=>typeof e=="string"):!1}class je{observers=new Set;notify(e){for(const t of this.observers)t(e)}observe(e){return this.observers.add(e),()=>{this.observers.delete(e)}}}class ze extends je{identifier;constructor(e){const{identifier:t}=e;super(),this.identifier=t}getOptions(){return{identifier:this.identifier}}setOptions(e){"identifier"in e&&e.identifier!==void 0&&(this.identifier=e.identifier),this.notify(this)}serialize(){return{type:this.type,identifier:this.identifier}}config(){return{type:this.type,identifier:this.identifier}}static _deserializeConfig(e){const{identifier:t,type:r}=e;return{identifier:t,type:r}}static _serializeConfig(e){const{identifier:t,type:r}=e;return{identifier:t,type:r}}}class N extends ze{label;description;required;image;constructor(e){const{label:t,description:r=null,required:o,image:l,...s}=e;super(s),this.label=t,this.description=r,this.required=o,this.image=l}getError(e){if(!(!this.required&&this.isValueBlank(e))){if(this.required&&this.isValueBlank(e))return"This field is required.";for(const t of this.getFieldValidators()){const r=t(e);if(r)return r}}}serialize(){return{...super.serialize(),label:this.label,description:this.description,required:this.required}}config(){return{...super.config(),label:this.label,description:this.description,required:this.required,image:this.image}}static _deserializeConfig(e){const{label:t,description:r,required:o,...l}=e;return{...ze._deserializeConfig(l),label:t,description:r,required:o}}static _serializeConfig(e){const{label:t,description:r,required:o,...l}=e;return{...ze._serializeConfig(l),label:t,description:r,required:o}}getOptions(){return{...super.getOptions(),label:this.label,description:this.description,required:this.required,image:this.image}}setOptions(e){"label"in e&&e.label!==void 0&&(this.label=e.label),"description"in e&&(this.description=e.description??null),"required"in e&&e.required!==void 0&&(this.required=e.required),"image"in e&&(this.image=e.image),super.setOptions(e)}isValueBlank(e){return this.areValuesEqual(e,this.blankValue())}cleanValue(e){return e}isValueClean(e){return this.areValuesEqual(e,this.cleanValue(e))}cleanSerializedValue(e){return e}isSerializedValueClean(e){return this.areSerializedValuesEqual(e,this.cleanSerializedValue(e))}isSerializedValueBlank(e){return this.areSerializedValuesEqual(e,this.blankSerializedValue())}getFieldValidators(){return[]}}const L=d.createContext({}),Ui=i=>{const[e,t]=d.useState(null);return d.useLayoutEffect(()=>{const r=URL.createObjectURL(i);return t(r),()=>{URL.revokeObjectURL(r)}},[i]),e},Oe=d.memo(i=>{const{file:e,...t}=i,r=Ui(e);return n.jsx("img",{src:r??void 0,alt:e.name,...t})});Oe.displayName="ImageFile";const Jn=d.createContext(()=>{throw new Error("No ImageViewerProvider found")}),hi=()=>d.useContext(Jn),ki=d.memo(i=>{const{file:e,onClose:t}=i,r=d.useCallback(()=>{xn.saveAs(e,e.name)},[e]);return n.jsx(a.Overlay.Root,{open:!0,onOpenChange:t,children:n.jsxs(a.Overlay.Content,{onOpenAutoFocus:a.preventDefault,children:[n.jsxs(a.ButtonGroup,{className:"absolute right-0 top-0 flex items-center gap-2 p-2",accentColor:"base",variant:"ghost",children:[n.jsxs(a.Tooltip.Root,{children:[n.jsx(a.Tooltip.Trigger,{asChild:!0,children:n.jsx(a.IconButton,{onClick:r,"aria-label":"download",children:n.jsx(a.LuIcon,{icon:$n})})}),n.jsx(a.Tooltip.Content,{size:"sm",children:"Download"})]}),n.jsx(a.Separator,{orientation:"vertical",size:"sm"}),n.jsx(a.Overlay.Close,{asChild:!0,children:n.jsx(a.IconButton,{onClick:t,"aria-label":"close",children:n.jsx(a.LuIcon,{icon:oe})})})]}),n.jsx("figure",{className:"flex size-full items-center justify-center overflow-hidden p-4",children:n.jsx(Oe,{className:"max-h-full max-w-full",file:e})})]})})});ki.displayName="ImageViewer";const Hn=d.memo(i=>{const{children:e}=i,[t,r]=d.useState(null),o=d.useCallback(()=>{r(null)},[]),l=d.useCallback(f=>{r(f(o))},[o]),s=d.useCallback(()=>{t&&(t.onClose&&t.onClose(),o())},[o,t]);return n.jsxs(Jn.Provider,{value:l,children:[e,t&&n.jsx(ki,{file:t.file,onClose:s})]})});Hn.displayName="FileViewerProvider";const B=d.memo(i=>{const{label:e,error:t,description:r,required:o,children:l,inputId:s,image:f,size:u}=i,[h,p]=d.useState(void 0),m=hi();d.useEffect(()=>{f instanceof Promise?f.then(p).catch(console.error):p(f)},[f]);const g=d.useCallback(()=>{h&&m(()=>({file:h}))},[m,h]),C=o?`${e} *`:e;return n.jsxs("div",{className:"flex flex-col gap-1",children:[h&&n.jsx(Oe,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:h,onClick:g}),(!!e||!!r)&&n.jsxs("div",{className:"flex flex-col",children:[n.jsx("label",{className:"w-max max-w-full",htmlFor:s,children:n.jsx(a.Text,{size:u,className:"text-wrap",children:C})}),!!r&&n.jsx(a.Text,{accentColor:"base",size:u,children:r})]}),l,!!t&&n.jsx(a.Text,{accentColor:"danger",size:u,children:t})]})});B.displayName="InputWithLabel";const Wn=i=>i.map(e=>n.jsx(d.Fragment,{children:e.render()},e.identifier)),pi=i=>i.map(e=>n.jsx(d.Fragment,{children:e.render()},e.identifier)),P=i=>{const{field:e}=i,{field:{value:t,name:r,onChange:o,onBlur:l,disabled:s},fieldState:{isTouched:f,error:u}}=Y.useController({name:e.identifier});return{value:t,name:r,disabled:s,isTouched:f,error:u?.message??"",onChange:o,onBlur:l}},Kn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),[h,p]=d.useState(""),[m,g]=d.useState(""),C=d.useCallback(y=>{s(y),l()},[s,l]),z=d.useCallback(y=>{r&&r.findIndex(I=>I===y.target.value.trim())>=0?g("All options must be unique"):y.target.value?g(""):g("Option cannot be empty"),p(y.target.value)},[p,r]),S=d.useCallback(()=>{if(m)return;if(!h.trim()){g("Option cannot be empty");return}const y=h.trim();C([...r,y]),p("")},[h,m,C,r]),w=d.useCallback(y=>{y.key==="Enter"&&(y.preventDefault(),S())},[S]),v=d.useCallback(y=>{const I=Array.from(r);I.splice(y,1),C(I)},[r,C]),x=d.useCallback(y=>{if(!y.destination)return;const I=y.source.index,E=y.destination.index,G=Array.from(r),[te]=G.splice(I,1);G.splice(E,0,te),C(G)},[C,r]),O=d.useCallback(()=>{l()},[l]);return n.jsx(Ai.DragDropContext,{onDragEnd:x,children:n.jsxs(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:m||f,image:e.image,children:[(!u||r.length===0)&&n.jsxs("div",{className:"flex gap-2",children:[n.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"surface",size:t,children:n.jsx(a.Input.Field,{value:h,onChange:z,onKeyDown:w,id:e.identifier,placeholder:e.placeholder??"Press enter to add a new option",onBlur:O,name:o,disabled:u})}),n.jsx(a.IconButton,{size:t,accentColor:"base",variant:"soft",type:"button","aria-label":"Add option",disabled:!!m||u,onClick:S,children:n.jsx(a.LuIcon,{icon:Z})})]}),r.length!==0&&n.jsx(Ai.Droppable,{droppableId:`${e.identifier}-droppable`,children:y=>n.jsxs("div",{className:"flex flex-col gap-1",...y.droppableProps,ref:y.innerRef,children:[r.map((I,E)=>n.jsx(Ai.Draggable,{draggableId:`${I}-draggable`,index:E,isDragDisabled:u,children:({draggableProps:G,dragHandleProps:te,innerRef:De})=>n.jsxs(a.Badge,{...te,...G,ref:De,className:"flex items-center justify-between gap-2",accentColor:"base",size:t,variant:"soft",children:[n.jsx(a.Text,{className:"truncate",highContrast:!0,children:Gi(I).label}),n.jsx(a.IconButton,{className:"bg-transparent!",size:t,variant:"ghost",type:"button","aria-label":"Delete option",accentColor:"base",disabled:u,onClick:()=>{v(E)},children:n.jsx(a.LuIcon,{icon:oe})})]})},`${e.identifier}-${I}-${E}`)),y.placeholder]})})]})})});Kn.displayName="MultiStringFieldInput";class ae extends N{type="multi-string";minimumLength;maximumLength;placeholder;constructor(e){const{minimumLength:t,maximumLength:r,placeholder:o,...l}=e;super(l),this.minimumLength=t,this.maximumLength=r,this.placeholder=o}render(){return n.jsx(Kn,{field:this})}serialize(){return{...super.serialize(),minimum_length:this.minimumLength,maximum_length:this.maximumLength,placeholder:this.placeholder}}config(){return{...super.config(),minimumLength:this.minimumLength,maximumLength:this.maximumLength,placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),minimumLength:this.minimumLength,maximumLength:this.maximumLength,placeholder:this.placeholder}}duplicate(e){return new ae({...this.getOptions(),identifier:e})}setOptions(e){"minimumLength"in e&&(this.minimumLength=e.minimumLength),"maximumLength"in e&&(this.maximumLength=e.maximumLength),"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}serializeValue(e){return e}deserializeValue(e){return e}getFieldValidators(){const e=super.getFieldValidators();return e.push(t=>{if(this.minimumLength!==void 0&&t.length<this.minimumLength)return`Must have at least ${this.minimumLength} options.`}),e.push(t=>{if(this.maximumLength!==void 0&&t.length>this.maximumLength)return`Must have at most ${this.maximumLength} options.`}),e}static deserialize(e){return new ae(e)}static fromConfig(e){return new ae(e)}static deserializeConfig(e){const{minimum_length:t,maximum_length:r,placeholder:o,...l}=e;return{...N._deserializeConfig(l),minimumLength:t,maximumLength:r,placeholder:o}}static serializeConfig(e){const{minimumLength:t,maximumLength:r,placeholder:o,...l}=e;return{...N._serializeConfig(l),minimum_length:t,maximum_length:r,placeholder:o}}isSerializedValue(e){return Pe(e)}isValue(e){return Pe(e)}blankValue(){return[]}areValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}}function Gi(i){return typeof i=="string"&&(i={label:i,value:i}),i}function _e(i){return i.map(Gi)}class Q extends N{options;constructor(e){const{options:t,...r}=e;super(r),this.options=_e(t)}serialize(){return{...super.serialize(),options:this.options}}config(){return{...super.config(),options:this.options}}static _deserializeConfig(e){const{options:t,...r}=e;return{...N._deserializeConfig(r),options:t}}static _serializeConfig(e){const{options:t,...r}=e;return{...N._serializeConfig(r),options:_e(t)}}getOptions(){return{...super.getOptions(),options:this.options}}setOptions(e){"options"in e&&e.options!==void 0&&(this.options=_e(e.options)),super.setOptions(e)}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new ae({label:"Options",description:"List possible options for the user to select from.",required:!0,identifier:`${t}options`,minimumLength:2}),showDirectly:!0}]}}const Ji=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(m=>{s(!!m),l()},[l,s]),p=d.useCallback(()=>{l()},[l]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,error:f,image:e.image,required:e.required,children:n.jsx(a.Checkbox.Root,{id:e.identifier,name:o,checked:r??!1,onCheckedChange:h,onBlur:p,size:t,accentColor:"base",variant:"surface",disabled:u,children:n.jsx(a.Checkbox.Indicator,{children:n.jsx(a.LuIcon,{icon:H})})})})});Ji.displayName="BooleanFieldInput";class le extends N{type="boolean";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}setOptions(e){super.setOptions(e)}duplicate(e){return new le({...this.getOptions(),identifier:e})}static deserialize(e){return new le(e)}static fromConfig(e){return new le(e)}static deserializeConfig(e){return N._deserializeConfig(e)}static serializeConfig(e){return N._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Ji,{field:this})}isSerializedValue(e){return typeof e=="boolean"}isValue(e){return typeof e=="boolean"}blankValue(){return!1}blankSerializedValue(){return!1}areSerializedValuesEqual(e,t){return e===t}areValuesEqual(e,t){return e===t}}const Xn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(g=>{const C=g.target.valueAsNumber,z=isNaN(C)?null:C;s(z)},[s]),p=d.useCallback(()=>{l()},[l]),m=d.useCallback(g=>{g.key==="Enter"&&g.preventDefault()},[]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsx(a.Input.Root,{accentColor:"base",variant:"surface",size:t,children:n.jsx(a.Input.Field,{id:e.identifier,name:o,onChange:h,onBlur:p,value:r??"",type:"number",min:e.minimum??Number.MIN_SAFE_INTEGER,max:e.maximum??Number.MAX_SAFE_INTEGER,step:e.integers?1:"any",placeholder:e.placeholder??"Enter a number",disabled:u,onKeyDown:m})})})});Xn.displayName="NumberFieldInput";class J extends N{type="number";minimum;maximum;integers;placeholder;constructor(e){const{minimum:t,maximum:r,integers:o,placeholder:l,...s}=e;super(s),this.minimum=t,this.maximum=r,this.integers=o,this.placeholder=l}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"Minimum",description:"Minimum value",integers:!0,required:!1,identifier:`${t}minimum`}),showDirectly:!1},{field:new J({label:"Maximum",description:"Maximum value",integers:!0,required:!1,identifier:`${t}maximum`}),showDirectly:!1},{field:new le({label:"Integers",description:"Whole numbers only",required:!1,identifier:`${t}integers`}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),t=this.minimum,r=this.maximum;return typeof t=="number"&&e.push(o=>{if(typeof o=="number"&&o<t)return`Must be at least ${this.minimum}.`}),e.push(o=>{if(typeof o=="number"&&o<Number.MIN_SAFE_INTEGER)return"Cant be less than MIN_SAFE_INTEGER."}),typeof r=="number"&&e.push(o=>{if(typeof o=="number"&&o>r)return`Must be at most ${r}.`}),e.push(o=>{if(typeof o=="number"&&o>Number.MAX_SAFE_INTEGER)return"Cant be greater than MAX_SAFE_INTEGER."}),this.integers&&e.push(o=>{if(typeof o=="number"&&!Number.isInteger(o))return"Must be a whole number."}),e}serialize(){return{...super.serialize(),minimum:this.minimum,maximum:this.maximum,integers:this.integers,placeholder:this.placeholder}}config(){return{...super.config(),minimum:this.minimum,maximum:this.maximum,integers:this.integers,placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),minimum:this.minimum,maximum:this.maximum,integers:this.integers,placeholder:this.placeholder}}duplicate(e){return new J({...this.getOptions(),identifier:e})}setOptions(e){"minimum"in e&&(this.minimum=e.minimum),"maximum"in e&&(this.maximum=e.maximum),"integers"in e&&(this.integers=e.integers),"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new J(e)}static fromConfig(e){return new J(e)}static deserializeConfig(e){const{minimum:t,maximum:r,integers:o,placeholder:l,...s}=e;return{...N._deserializeConfig(s),minimum:t,maximum:r,integers:o,placeholder:l}}static serializeConfig(e){const{minimum:t,maximum:r,integers:o=!1,placeholder:l,...s}=e;return{...N._serializeConfig(s),minimum:t,maximum:r,integers:o,placeholder:l}}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Xn,{field:this})}isSerializedValue(e){return this.isValue(e)}isValue(e){return typeof e=="number"&&!isNaN(e)||e===null}areValuesEqual(e,t){return e===t}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}}class Se extends N{minLength;maxLength;placeholder;constructor(e){const{minLength:t,maxLength:r,placeholder:o,...l}=e;super(l),this.minLength=t,this.maxLength=r,this.placeholder=o}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"Minimum length",description:"Minimum number of characters",required:!1,identifier:`${t}minimum_length`,minimum:0,integers:!0}),showDirectly:!1},{field:new J({label:"Maximum length",description:"Maximum number of characters",required:!1,identifier:`${t}maximum_length`,minimum:1,integers:!0}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),t=this.minLength,r=this.maxLength;return typeof t=="number"&&e.push(o=>{if(o.length<t)return`Minimum ${t} character(s).`}),typeof r=="number"&&e.push(o=>{if(o.length>r)return`Maximum ${r} character(s).`}),e}serialize(){return{...super.serialize(),minimum_length:this.minLength,maximum_length:this.maxLength,placeholder:this.placeholder}}config(){return{...super.config(),minLength:this.minLength,maxLength:this.maxLength,placeholder:this.placeholder}}static _deserializeConfig(e){const{maximum_length:t,minimum_length:r,placeholder:o,...l}=e;return{...N._deserializeConfig(l),minLength:r,maxLength:t,placeholder:o}}static _serializeConfig(e){const{minLength:t,maxLength:r,placeholder:o,...l}=e;return{...N._serializeConfig(l),minimum_length:t,maximum_length:r,placeholder:o}}getOptions(){return{...super.getOptions(),minLength:this.minLength,maxLength:this.maxLength,placeholder:this.placeholder}}setOptions(e){"minLength"in e&&(this.minLength=e.minLength),"maxLength"in e&&(this.maxLength=e.maxLength),"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}serializeValue(e){return e}deserializeValue(e){return e}isSerializedValue(e){return typeof e=="string"}isValue(e){return typeof e=="string"}blankValue(){return""}blankSerializedValue(){return""}areSerializedValuesEqual(e,t){return e===t}areValuesEqual(e,t){return e===t}}const Yn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(m=>{s(m),l()},[l,s]),p=d.useCallback(()=>{l()},[l]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsx(a.CheckboxGroup.Root,{id:e.identifier,name:o,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:t,values:r,onValuesChange:h,disabled:u,children:e.options.map((m,g)=>n.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[n.jsx(a.CheckboxGroup.Item,{value:m.value,onBlur:p,children:n.jsx(a.CheckboxGroup.ItemIndicator,{children:n.jsx(a.LuIcon,{icon:H})})}),n.jsx(a.Text,{size:t,accentColor:"base",className:"truncate",children:m.label})]},`${e.identifier}-${m.value}-${g}`))})})});Yn.displayName="CheckboxListFieldInput";class ee extends Q{type="checkbox-list";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new ee({...this.getOptions(),identifier:e})}static deserialize(e){return new ee(e)}static fromConfig(e){return new ee(e)}static deserializeConfig(e){return ee._deserializeConfig(e)}static serializeConfig(e){return ee._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Yn,{field:this})}isSerializedValue(e){if(!Pe(e))return!1;const t=new Set(this.options.map(({value:r})=>r));return e.every(r=>t.has(r))}isValue(e){return this.isSerializedValue(e)}blankValue(){return[]}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}areValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}}const Hi=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),[h,p]=d.useState(!1),m=d.useCallback(C=>{s(C??null),l(),p(!1)},[s,l]),g=d.useCallback(C=>{p(C),C||l()},[l]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs(a.Popover.Root,{open:h,onOpenChange:g,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:n.jsxs(a.Button,{id:e.identifier,name:o,type:"button",className:"!justify-between",accentColor:"base",variant:"surface",size:t,disabled:u,children:[n.jsx(a.Text,{className:"truncate",highContrast:!!r,children:r?r.toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit"}):"yyyy-mm-dd"}),n.jsx(a.LuIcon,{icon:ui})]})}),n.jsx(a.Popover.Content,{align:"start",size:t,children:n.jsx(a.DayPicker,{size:t,required:!1,mode:"single",variant:"solid",selected:r??void 0,onSelect:m})})]})})});Hi.displayName="DateFieldInput";class we extends N{type="date";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new we({...this.getOptions(),identifier:e})}static deserialize(e){return new we(e)}static fromConfig(e){return new we(e)}static deserializeConfig(e){return N._deserializeConfig(e)}static serializeConfig(e){return N._serializeConfig(e)}setOptions(e){super.setOptions(e)}serializeValue(e){return e?e.toISOString():null}deserializeValue(e){return e?new Date(e):null}render(){return n.jsx(Hi,{field:this})}isSerializedValue(e){return typeof e!="string"&&e!==null?!1:this.isValue(this.deserializeValue(e))}isValue(e){return!(!(e instanceof Date)&&e!==null||e instanceof Date&&isNaN(e.getTime()))}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}areValuesEqual(e,t){return!e&&!t?!0:!e||!t?!1:e.getTime()===t.getTime()}}var q=(i=>(i.Text="text",i.Selection="selection",i.Numeric="numeric",i.Temporal="temporal",i.Capture="capture",i.Assessment="assessment",i.Verification="verification",i))(q||{});const Zn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(m=>{s(m),l()},[l,s]),p=d.useCallback(m=>{m||l()},[l]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs(a.Menu.Root,{onOpenChange:p,align:"start",children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsxs(a.Button,{id:e.identifier,name:o,className:"!justify-between",variant:"surface",type:"button",size:t,accentColor:"base",disabled:u,children:[n.jsx(a.Text,{className:"truncate",highContrast:r&&r.length>0,children:r&&r.length>0?r.join(", "):e.placeholder??"Select one or more..."}),n.jsx(a.LuIcon,{icon:ui})]})}),n.jsx(a.Menu.Content,{size:t,children:n.jsx(a.Menu.Scroll,{children:n.jsxs(a.Menu.MultiSelectGroup,{values:r,onValuesChange:h,children:[n.jsxs(a.Menu.SelectAllItem,{children:[n.jsx(a.Menu.CheckboxItemIndicator,{children:m=>m?n.jsx(a.LuIcon,{icon:fi}):n.jsx(a.LuIcon,{icon:H})}),"Select all"]}),e.options.map((m,g)=>n.jsxs(a.Menu.MultiSelectItem,{value:m.value,children:[n.jsx(a.Menu.SelectedIndicator,{children:n.jsx(a.LuIcon,{icon:H})}),m.label]},`${e.identifier}-${m.value}-${g}`))]})})})]})})});Zn.displayName="MultiSelectFieldInput";class ie extends Q{type="multi-select";placeholder;constructor(e){const{placeholder:t,...r}=e;super(r),this.placeholder=t}serialize(){return{...super.serialize(),placeholder:this.placeholder}}config(){return{...super.config(),placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),placeholder:this.placeholder}}duplicate(e){return new ie({...this.getOptions(),identifier:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new ie(e)}static fromConfig(e){return new ie(e)}static deserializeConfig(e){const{placeholder:t,...r}=e;return{...Q._deserializeConfig(r),placeholder:t}}static serializeConfig(e){const{placeholder:t,...r}=e;return{...Q._serializeConfig(r),placeholder:t}}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Zn,{field:this})}isSerializedValue(e){if(!Pe(e))return!1;const t=new Set(this.options.map(({value:r})=>r));return e.every(r=>t.has(r))}isValue(e){return this.isSerializedValue(e)}blankValue(){return[]}areValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){const r=new Set(e),o=new Set(t);return r.size===o.size&&r.isSubsetOf(o)}}const Qn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(g=>{s(g??null),l()},[l,s]),p=d.useCallback(g=>{g||l()},[l]),m=d.useMemo(()=>e.options.find(g=>g.value===r),[e.options,r]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs(a.Menu.Root,{onOpenChange:p,align:"start",children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsxs(a.Button,{id:e.identifier,name:o,className:"!justify-between",accentColor:"base",variant:"surface",type:"button",size:t,disabled:u,children:[n.jsx(a.Text,{className:"truncate",highContrast:!!m,children:m?m.label:e.placeholder??"Select one..."}),n.jsx(a.LuIcon,{icon:ui})]})}),n.jsx(a.Menu.Content,{size:t,children:n.jsx(a.Menu.Scroll,{children:n.jsx(a.Menu.SelectGroup,{required:!1,value:r??void 0,onValueChange:h,children:e.options.map((g,C)=>n.jsxs(a.Menu.SelectItem,{value:g.value,children:[n.jsx(a.Menu.SelectedIndicator,{children:n.jsx(a.LuIcon,{icon:H})}),g.label]},`${e.identifier}-${g.value}-${C}`))})})})]})})});Qn.displayName="SelectFieldInput";class re extends Q{type="select";placeholder;constructor(e){const{placeholder:t,...r}=e;super(r),this.placeholder=t}serialize(){return{...super.serialize(),placeholder:this.placeholder}}config(){return{...super.config(),placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),placeholder:this.placeholder}}duplicate(e){return new re({...this.getOptions(),identifier:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new re(e)}static fromConfig(e){return new re(e)}static deserializeConfig(e){const{placeholder:t,...r}=e;return{...Q._deserializeConfig(r),placeholder:t}}static serializeConfig(e){const{placeholder:t,...r}=e;return{...Q._serializeConfig(r),placeholder:t}}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Qn,{field:this})}isSerializedValue(e){return typeof e!="string"&&e!==null?!1:new Set([null,...this.options.map(({value:r})=>r)]).has(e)}isValue(e){return this.isSerializedValue(e)}blankValue(){return null}areValuesEqual(e,t){return e===t}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}}const Rn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(g=>{s(g)},[s]),p=d.useCallback(()=>{l()},[l]),m=d.useMemo(()=>Array.from({length:e.length},()=>F.v4()),[e.length]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs(a.OneTimePasswordField.Root,{id:e.identifier,name:o,value:r,onValueChange:h,validationType:e.validationType,disabled:u,orientation:"horizontal",dir:"ltr",type:"text",autoComplete:"off",autoFocus:!1,autoSubmit:!1,className:"p-0.25 flex h-max w-full gap-1 overflow-x-auto",accentColor:"base",variant:"surface",size:t,onBlur:p,children:[m.map(g=>n.jsx(a.OneTimePasswordField.Input,{id:g},g)),n.jsx(a.OneTimePasswordField.HiddenInput,{})]})})});Rn.displayName="OTPFieldInput";class se extends N{type="otp";length;validationType;constructor(e){const{length:t,validationType:r,...o}=e;super(o),this.length=t,this.validationType=r}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"Length",integers:!0,required:!1,minimum:1,maximum:16,identifier:`${t}length`}),showDirectly:!1},{field:new re({label:"Type",required:!1,identifier:`${t}validationType`,options:[{value:"none",label:"Any"},{value:"numeric",label:"Numeric"},{value:"alpha",label:"Alpha"},{value:"alphanumeric",label:"Alphanumeric"}]}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),t=this.length;return e.push(r=>{if(r.length!=t)return`Must be ${t} characters.`}),e}serialize(){return{...super.serialize(),length:this.length,validationType:this.validationType}}config(){return{...super.config(),length:this.length,validationType:this.validationType}}getOptions(){return{...super.getOptions(),length:this.length,validationType:this.validationType}}duplicate(e){return new se({...this.getOptions(),identifier:e})}setOptions(e){"length"in e&&e.length!==void 0&&(this.length=e.length),"validationType"in e&&e.validationType!==void 0&&(this.validationType=e.validationType),super.setOptions(e)}static deserialize(e){return new se(e)}static fromConfig(e){return new se(e)}static deserializeConfig(e){const{length:t,validationType:r,...o}=e;return{...N._deserializeConfig(o),length:t,validationType:r}}static serializeConfig(e){const{length:t,validationType:r,...o}=e;return{...N._serializeConfig(o),length:t,validationType:r}}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Rn,{field:this})}isSerializedValue(e){return typeof e=="string"}isValue(e){return typeof e=="string"}blankValue(){return""}areValuesEqual(e,t){return e===t}blankSerializedValue(){return""}areSerializedValuesEqual(e,t){return e===t}}const Fe={pass:{label:"Pass",icon:No},fail:{label:"Fail",icon:Io},na:{label:"N/A",icon:xo}},Te=Object.keys(Fe);class de extends File{uuid;constructor(e,...t){super(...t),this.uuid=e}static from(e,t){return new de(e,[t],t.name,{lastModified:t.lastModified,type:t.type})}}class be extends Promise{_uuid;constructor(e,t){super(e),this._uuid=t}get uuid(){return this._uuid}set uuid(e){this._uuid=e}static from(e,t){return new be((r,o)=>{Promise.resolve(e).then(r).catch(o)},t)}then(e,t){const r=super.then(e,t);return r.uuid=this.uuid,r}catch(e){const t=super.catch(e);return t.uuid=this.uuid,t}finally(e){const t=super.finally(e);return t.uuid=this.uuid,t}}function et(i){return Array.isArray(i)?i.every(e=>e instanceof be||e instanceof de):!1}function mi(i,e){const t=new Set(i.map(({uuid:o})=>o)),r=new Set(e.map(({uuid:o})=>o));return t.size===r.size&&t.isSubsetOf(r)}const Wi=d.memo(i=>{const{ref:e,file:t,error:r,rightSlot:o,className:l,size:s,...f}=i;return n.jsxs(a.Card,{className:R.cx(l,"p-0! relative flex h-48 w-full flex-col overflow-hidden"),ref:e,size:"xs",...f,children:[!t&&!r&&n.jsx("div",{className:"absolute inset-0 flex grow items-center justify-center",children:n.jsx(a.Spinner,{size:s})}),!!t&&!r&&n.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-hidden p-3",children:n.jsx(Oe,{className:"block size-full max-w-full object-cover",file:t})}),!!r&&n.jsx("div",{className:"grow"}),(!!t||!!r)&&n.jsxs(n.Fragment,{children:[n.jsx(a.Separator,{size:"full"}),n.jsxs("div",{className:"flex w-full shrink-0 items-center gap-2 self-end p-3",children:[r?n.jsx(a.LuIcon,{color:"var(--base-11)",icon:$i}):t&&n.jsx(a.LuIcon,{color:"var(--base-11)",icon:Pn}),n.jsx(a.Text,{className:"truncate",size:s,children:r??t?.name}),o]})]})]})});Wi.displayName="ImageCard";const Ki=d.memo(i=>{const{file:e,...t}=i,r=Ui(e);return n.jsx("video",{src:r??void 0,...t})});Ki.displayName="VideoFile";const Xi=d.memo(i=>{const{ref:e,file:t,className:r,error:o,rightSlot:l,size:s,...f}=i;return n.jsxs(a.Card,{className:R.cx(r,"p-0! relative flex h-48 w-full flex-col overflow-hidden"),ref:e,size:"xs",...f,children:[!t&&!o&&n.jsx("div",{className:"absolute inset-0 flex grow items-center justify-center",children:n.jsx(a.Spinner,{size:s})}),!!t&&!o&&n.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-hidden p-3",children:n.jsx(Ki,{className:"block size-full max-w-full object-cover",file:t,controls:!0})}),!!o&&n.jsx("div",{className:"grow"}),(!!t||!!o)&&n.jsxs(n.Fragment,{children:[n.jsx(a.Separator,{size:"full"}),n.jsxs("div",{className:"flex w-full shrink-0 items-center gap-2 self-end p-3",children:[o?n.jsx(a.LuIcon,{color:"var(--danger-11)",icon:$i}):t&&n.jsx(a.LuIcon,{color:"var(--base-11)",icon:Ko}),n.jsx(a.Text,{className:"truncate",size:s,children:o??t?.name}),l]})]})]})});Xi.displayName="VideoCard";const Yi=d.memo(i=>{const{fileOrPromise:e,onRemove:t,disabled:r,size:o}=i,[l,s]=d.useState(e instanceof be?null:e),[f,u]=d.useState(null),h=hi();In.useActiveEffect(v=>{if(u(null),!(e instanceof be)){s(e);return}s(null),e.then(x=>{v()&&s(x)}).catch(x=>{v()&&u(x instanceof Error?x.message:"Unknown error")})},[e]);const p=d.useCallback(()=>{if(!l)return;const v=new Blob([l]);xn.saveAs(v,l.name)},[l]),m=d.useCallback(()=>{t(e)},[t,e]),g=d.useCallback(()=>{if(!l)return;const v=URL.createObjectURL(l);window.open(v,"_blank"),URL.revokeObjectURL(v)},[l]),C=d.useCallback(()=>{l&&h(v=>({file:l,onDelete:r?void 0:()=>{m(),v()}}))},[r,m,h,l]),z=d.useMemo(()=>n.jsx("div",{className:"flex grow justify-end",children:n.jsxs(a.Menu.Root,{modal:!0,children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.IconButton,{onClick:a.stopPropagation,type:"button",variant:"ghost",accentColor:"base",size:o,children:n.jsx(a.LuIcon,{icon:Dn})})}),n.jsxs(a.Menu.Content,{size:o,children:[n.jsxs(a.Menu.Item,{onSelect:p,disabled:!l,children:[n.jsx(a.LuIcon,{icon:$n})," Download"]}),r?null:n.jsxs(n.Fragment,{children:[n.jsx(a.Menu.Separator,{}),n.jsxs(a.Menu.Item,{onSelect:m,children:[n.jsx(a.LuIcon,{icon:ve})," Delete"]})]})]})]})}),[r,m,p,l,o]),S=!!l?.type.startsWith("image/"),w=!!l?.type.startsWith("video/");return S?n.jsx(Wi,{className:"cursor-pointer",onClick:C,file:l,error:f??void 0,rightSlot:z,size:o}):w?n.jsx(Xi,{className:"cursor-pointer",onClick:C,file:l,error:f??void 0,rightSlot:z,size:o}):n.jsx(ji,{className:"cursor-pointer",file:l,error:f??void 0,onClick:g,rightSlot:z,size:o})});Yi.displayName="DisplayFile";const it=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useRef(null),p=d.useCallback(y=>{const I=e.cleanValue({...r,status:y});s(I),l()},[e,l,s,r]),m=d.useCallback(y=>{const I=y.target.value,E={...r,notes:I};s(E)},[r,s]),g=d.useCallback(()=>{l()},[l]),C=d.useCallback(y=>{const I=r.files.filter(({uuid:E})=>E!==y.uuid);s({...r,files:I}),l()},[s,l,r]),z=d.useCallback(()=>{h.current?.click()},[]),S=d.useCallback(y=>{const I=Array.from(y.target.files??[]).map(G=>de.from(F.v4(),G)),E={...r,files:[...r.files,...I]};s(E),l()},[l,s,r]);d.useEffect(()=>{if(!h.current)return;const y=new AbortController;return h.current.addEventListener("cancel",()=>{l()},{signal:y.signal}),()=>{y.abort()}},[l,r]);const w=r.status&&e.showNotesAndFilesOn.includes(r.status),v=`${e.identifier}-status`,x=`${e.identifier}-notes`,O=`${e.identifier}-files`;return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsx(a.RadioGroup.Root,{id:v,className:"flex gap-2",name:o,value:r.status,disabled:u,accentColor:"base",variant:"surface",size:t,onValueChange:p,children:Te.map(y=>{const{label:I}=Fe[y];return n.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[n.jsx(a.RadioGroup.Item,{value:y,children:n.jsx(a.RadioGroup.Indicator,{children:n.jsx(a.LuIcon,{icon:Ln,className:"fill-current"})})}),n.jsx(a.Text,{size:t,accentColor:"base",className:"truncate",children:I})]},`${e.identifier}-${y}`)})}),w&&n.jsxs(n.Fragment,{children:[n.jsx("div",{children:n.jsx(a.TextArea,{id:x,value:r.notes??"",name:o,onChange:m,onBlur:g,className:"field-sizing-content min-h-12 w-full",placeholder:"Notes",resize:"vertical",accentColor:"base",variant:"surface",size:t,disabled:u})}),n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsxs(a.Button,{className:"w-max",size:t,variant:"surface",accentColor:"base",onClick:z,type:"button",disabled:u,children:[n.jsx(a.LuIcon,{icon:Pi}),"Select files"]}),n.jsx("input",{id:O,name:o,type:"file",ref:h,multiple:!0,className:"hidden",onChange:S,value:""}),r.files.length>0&&n.jsx("div",{className:"flex h-max flex-wrap gap-2",children:r.files.map(y=>n.jsx(Yi,{size:t,fileOrPromise:y,onRemove:C,disabled:u},y.uuid))})]})]})]})})});it.displayName="PassFailFieldInput";const Zi=i=>typeof i=="string"&&Te.includes(i),nt=i=>!(i===null||typeof i!="object"||!("status"in i)||!Zi(i.status)||!("notes"in i)||typeof i.notes!="string"||!("files"in i)||!(Array.isArray(i.files)&&i.files.length===0)),tt=i=>!(i===null||typeof i!="object"||!("status"in i)||!Zi(i.status)||!("notes"in i)||typeof i.notes!="string"||!("files"in i)||!et(i.files)),rt=i=>({status:i.status,notes:i.notes,files:[]}),ot=i=>({status:i.status,notes:i.notes,files:[]}),at=(i,e)=>!(i.status!==e.status||i.notes!==e.notes||!mi(i.files,e.files)),lt=(i,e)=>!(i.status!==e.status||i.notes!==e.notes||i.files.length!==e.files.length);class ce extends N{type="pass-fail";showNotesAndFilesOn;constructor(e){const{showNotesAndFilesOn:t,...r}=e;super(r),this.showNotesAndFilesOn=t}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new ie({identifier:`${t}showNotesAndFilesOn`,label:"Show notes and files on",description:"Show the notes and files on desired statuses.",options:Te.map(r=>{const{label:o}=Fe[r];return{value:r,label:o}}),required:!1}),showDirectly:!1}]}serialize(){return{...super.serialize(),showNotesAndFilesOn:this.showNotesAndFilesOn}}config(){return{...super.config(),showNotesAndFilesOn:this.showNotesAndFilesOn}}getOptions(){return{...super.getOptions(),showNotesAndFilesOn:this.showNotesAndFilesOn}}duplicate(e){return new ce({...this.getOptions(),identifier:e})}setOptions(e){"showNotesAndFilesOn"in e&&e.showNotesAndFilesOn!==void 0&&(this.showNotesAndFilesOn=e.showNotesAndFilesOn),super.setOptions(e)}getFieldValidators(){const e=super.getFieldValidators(),t=this.showNotesAndFilesOn,r=this.blankValue();return t.length>0&&(e.push(o=>{if(!(!o.status||!t.includes(o.status))&&r.notes===o.notes)return"Notes is required."}),e.push(o=>{if(!(!o.status||!t.includes(o.status))&&mi(r.files,o.files))return"Files is required."})),e}static deserialize(e){const{showNotesAndFilesOn:t,...r}=e;return new ce({...r,showNotesAndFilesOn:t})}static fromConfig(e){return new ce(e)}static deserializeConfig(e){const{showNotesAndFilesOn:t,...r}=e;return{...N._deserializeConfig(r),showNotesAndFilesOn:t}}static serializeConfig(e){const{showNotesAndFilesOn:t,...r}=e;return{...N._serializeConfig(r),showNotesAndFilesOn:t}}serializeValue(e){return rt(e)}deserializeValue(e){return ot(e)}render(){return n.jsx(it,{field:this})}isSerializedValue(e){return nt(e)}isValue(e){return tt(e)}areValuesEqual(e,t){return at(e,t)}blankValue(){return{status:null,notes:"",files:[]}}cleanValue(e){return e.status&&this.showNotesAndFilesOn.includes(e.status)?e:{status:e.status,notes:"",files:[]}}cleanSerializedValue(e){return super.cleanSerializedValue(e)}blankSerializedValue(){return{status:null,notes:"",files:[]}}areSerializedValuesEqual(e,t){return lt(e,t)}}const st=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(g=>{s(g),l()},[l,s]),p=d.useCallback(()=>{l()},[l]),m=d.useCallback(()=>{s(null),l()},[l,s]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs(a.RadioGroup.Root,{id:e.identifier,name:o,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:t,value:r??"",onValueChange:h,disabled:u,children:[e.options.map((g,C)=>n.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[n.jsx(a.RadioGroup.Item,{value:g.value,onBlur:p,children:n.jsx(a.RadioGroup.Indicator,{children:n.jsx(a.LuIcon,{icon:Ln,className:"fill-current"})})}),n.jsx(a.Text,{size:t,accentColor:"base",className:"truncate",children:g.label})]},`${e.identifier}-${g.value}-${C}`)),!!r&&n.jsxs(a.Button,{onClick:m,className:"-mx-2 w-max",type:"button",variant:"ghost",accentColor:"base",size:t,children:[n.jsx(a.LuIcon,{icon:oe}),"Clear"]})]})})});st.displayName="RadioFieldInput";class ue extends Q{type="radio";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new ue({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new ue(e)}static fromConfig(e){return new ue(e)}static deserializeConfig(e){return Q._deserializeConfig(e)}static serializeConfig(e){return Q._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(st,{field:this})}isSerializedValue(e){return typeof e!="string"&&e!==null?!1:new Set([null,...this.options.map(({value:r})=>r)]).has(e)}isValue(e){return this.isSerializedValue(e)}blankValue(){return null}areValuesEqual(e,t){return e===t}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}}const Xo=R.cva(["group flex cursor-pointer items-center justify-center text-yellow-500 transition-colors disabled:pointer-events-none disabled:opacity-50"],{variants:{size:{xs:["size-5"],sm:["size-6"],md:["size-7"],lg:["size-8"],xl:["size-9"]}}}),dt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(g=>{s(g),l()},[l,s]),p=d.useCallback(()=>{s(null),l()},[l,s]),m=Array.from({length:e.maxRating},(g,C)=>C+1);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs("div",{className:"flex flex-row items-center gap-1",children:[n.jsx(a.Rating.Root,{id:e.identifier,name:o,className:"flex items-center gap-0.5",value:r,onValueChange:h,disabled:u,children:m.map(g=>n.jsx(a.Rating.Item,{value:g,className:Xo({size:t}),children:n.jsx(a.LuIcon,{icon:Gn,className:"size-full group-data-[active=true]:fill-current"})},`${e.identifier}-${g}`))}),!u&&r!==null&&n.jsx(a.IconButton,{onClick:p,type:"button",variant:"ghost",accentColor:"base",size:t,children:n.jsx(a.LuIcon,{icon:oe})})]})})});dt.displayName="RatingFieldInput";class fe extends N{type="rating";maxRating;constructor(e){const{maxRating:t,...r}=e;super(r),this.maxRating=t}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"Max Rating",description:"Maximum rating value",integers:!0,required:!1,minimum:1,maximum:10,identifier:`${t}maxRating`}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),t=this.maxRating;return e.push(r=>{if(typeof r=="number"&&(r<1||r>t))return`Rating must be between 1 and ${t}.`}),e}serialize(){return{...super.serialize(),maxRating:this.maxRating}}config(){return{...super.config(),maxRating:this.maxRating}}getOptions(){return{...super.getOptions(),maxRating:this.maxRating}}duplicate(e){return new fe({...this.getOptions(),identifier:e})}setOptions(e){"maxRating"in e&&e.maxRating!==void 0&&(this.maxRating=e.maxRating),super.setOptions(e)}static deserialize(e){return new fe(e)}static fromConfig(e){return new fe(e)}static deserializeConfig(e){const{maxRating:t,...r}=e;return{...N._deserializeConfig(r),maxRating:t}}static serializeConfig(e){const{maxRating:t,...r}=e;return{...N._serializeConfig(r),maxRating:t}}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(dt,{field:this})}isSerializedValue(e){return this.isValue(e)}isValue(e){return typeof e=="number"&&!isNaN(e)||e===null}areValuesEqual(e,t){return e===t}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}}const Qi=d.createContext(null),ct=()=>{const i=d.use(Qi);if(!i)throw new Error("useScannerContext must be used within a component tree wrapped by ScannerProvider.");return i},Yo=()=>{const i=d.use(Qi);if(!i)throw new Error("useScanner must be used within a component tree wrapped by ScannerProvider.");return i.openScanner},gi=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,...s}=i;return n.jsxs(a.Overlay.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[!!e&&n.jsx(a.Overlay.Trigger,{asChild:!0,children:e}),n.jsxs(a.Overlay.Content,{children:[n.jsx(a.Overlay.Title,{className:"sr-only",children:"Scanner"}),n.jsx(a.Overlay.Description,{className:"sr-only",children:"Scan a barcode or a qr code."}),n.jsx(ut,{...s})]})]})});gi.displayName="Scanner";const ut=d.memo(i=>{const{paused:e,formats:t,timeBetweenDecodingAttempts:r,trySkew:o,onDecodeResult:l,onDecodeError:s,onError:f}=i,{wasmUrl:u}=ct(),{ref:h}=ho.useZxing({wasmUrl:u,paused:e,formats:t,timeBetweenDecodingAttempts:r,trySkew:o,onDecodeResult:l,onDecodeError:s,onError:f,constraints:{video:{width:{ideal:1920,min:1280},height:{ideal:1080,min:720},aspectRatio:{ideal:16/9},facingMode:"environment"}}});return n.jsxs("div",{className:"bg-(--color-background) flex size-full flex-col justify-center overflow-hidden",children:[n.jsx("div",{className:"flex w-full justify-end p-4",children:n.jsx(a.Overlay.Close,{asChild:!0,children:n.jsx(a.IconButton,{"aria-label":"close",variant:"soft",accentColor:"base",children:n.jsx(a.LuIcon,{icon:oe})})})}),n.jsx("div",{className:"max-h-full w-full grow overflow-hidden p-4",children:n.jsx("video",{className:"size-full",ref:h,muted:!0,playsInline:!0})})]})});ut.displayName="ScannerInternal";const ft=d.memo(i=>{const{children:e,wasmUrl:t}=i,[r,o]=d.useState(null),l=d.useCallback(()=>{o(null)},[]),s=d.useCallback(h=>{o(h(l))},[l]),f=d.useCallback(()=>{r&&(r.onClose&&r.onClose(),l())},[l,r]),u=d.useMemo(()=>({wasmUrl:t,openScanner:s}),[t,s]);return n.jsxs(Qi,{value:u,children:[e,r&&n.jsx(gi,{open:!0,onOpenChange:f,...r})]})});ft.displayName="ScannerProvider";const ht=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),[h,p]=d.useState(!1),m=d.useCallback(w=>{const v=w.target.value;s(v)},[s]),g=d.useCallback(()=>{l()},[l]),C=d.useCallback(w=>{s(w.rawValue.trim()),l(),p(!1)},[s,l]),z=d.useCallback(()=>{p(!0)},[]),S=d.useCallback(()=>{p(!1),l()},[l]);return n.jsxs(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:[n.jsx(a.TextArea,{className:"field-sizing-content w-full",accentColor:"base",variant:"surface",size:t,id:e.identifier,name:o,value:r??"",placeholder:"Enter a qr or barcode",onChange:m,onBlur:g,disabled:u}),n.jsxs(a.Button,{onClick:z,className:"w-max",type:"button",variant:"soft",size:t,accentColor:"base",disabled:u,children:[n.jsx(a.LuIcon,{icon:Po}),"Scan"]}),n.jsx(gi,{open:h,onDecodeResult:C,onOpenChange:S})]})});ht.displayName="ScanFieldInput";class Ne extends N{type="qr";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new Ne({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new Ne(e)}static fromConfig(e){return new Ne(e)}static deserializeConfig(e){return N._deserializeConfig(e)}static serializeConfig(e){return N._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(ht,{field:this})}isSerializedValue(e){return typeof e=="string"}isValue(e){return typeof e=="string"}blankValue(){return""}areValuesEqual(e,t){return e===t}blankSerializedValue(){return""}areSerializedValuesEqual(e,t){return e===t}}const pt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(g=>{const C=g.target.value;s(C)},[s]),p=d.useCallback(()=>{l()},[l]),m=d.useCallback(g=>{g.key==="Enter"&&g.preventDefault()},[]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsx(a.Input.Root,{accentColor:"base",variant:"surface",size:t,children:n.jsx(a.Input.Field,{id:e.identifier,className:"truncate",name:o,value:r??"",type:"text",placeholder:e.placeholder??"Enter a short description",onChange:h,onBlur:p,disabled:u,onKeyDown:m})})})});pt.displayName="StringFieldInput";class he extends Se{type="string";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new he({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){const{maximum_length:t,minimum_length:r,...o}=e;return new he({...o,maxLength:t,minLength:r})}static fromConfig(e){return new he(e)}static deserializeConfig(e){return Se._deserializeConfig(e)}static serializeConfig(e){return Se._serializeConfig(e)}render(){return n.jsx(pt,{field:this})}}const mt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(m=>{const g=m.target.value;s(g)},[s]),p=d.useCallback(()=>{l()},[l]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsx(a.TextArea,{id:e.identifier,value:r??"",name:o,onChange:h,onBlur:p,className:"field-sizing-content min-h-12",placeholder:e.placeholder??"Enter a description",resize:"vertical",accentColor:"base",variant:"surface",size:t,disabled:u})})});mt.displayName="TextFieldInput";class pe extends Se{type="text";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new pe({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){const{maximum_length:t,minimum_length:r,...o}=e;return new pe({...o,maxLength:t,minLength:r})}static fromConfig(e){return new pe(e)}static deserializeConfig(e){return Se._deserializeConfig(e)}static serializeConfig(e){return Se._serializeConfig(e)}render(){return n.jsx(mt,{field:this})}}const Ri=Zo(),gt=new Set(Ri);function Zo(i=!0){const e=new Set;for(let t=-12;t<=14;t++){const r=t>=0?"+":"-",o=Math.abs(t).toString().padStart(2,"0");e.add(`${r}${o}:00`)}if(i){const t=[-12.5,-9.5,-3.5,3.5,4.5,5.5,6.5,9.5,10.5,12.5];for(const r of t){const o=r>=0?"+":"-",l=Math.floor(Math.abs(r)).toString().padStart(2,"0");e.add(`${o}${l}:30`)}}return Array.from(e).sort((t,r)=>Ct(t)-Ct(r))}function Ct(i){const e=i[0]==="+"?1:-1,t=Number(i.slice(1,3)),r=Number(i.slice(4,6));return e*(t*60+r)}const Qo="+00:00",Ro=/^T([01]\d|2[0-3]):([0-5]\d):00([+-]\d{2}:\d{2})$/,Ci=i=>typeof i=="string"&&gt.has(i),Vt=()=>{const i=-new Date().getTimezoneOffset(),e=i>=0?"+":"-",t=Math.abs(i),r=Math.floor(t/60),o=t%60,l=`${e}${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`;return Ci(l)?l:Qo};function yt(i){const e=/^([+-])(\d{2}):(\d{2})$/.exec(i);if(!e)throw new Error(`Invalid UTC offset: ${i}`);return(e[1]==="+"?1:-1)*(Number(e[2])*60+Number(e[3]))}const Ue=i=>{const e=Ro.exec(i);if(!e)return null;const t=e[3];return Ci(t)?{hours:Number(e[1]),minutes:Number(e[2]),utcOffset:t}:null},A=i=>typeof i=="string"&&Ue(i)!==null,en=(i,e,t=Vt())=>{if(!Number.isInteger(i)||i<0||i>23)throw new Error(`Invalid hour: ${i}`);if(!Number.isInteger(e)||e<0||e>59)throw new Error(`Invalid minute: ${e}`);if(!Ci(t))throw new Error("Unsupported UTC offset");const r=i.toString().padStart(2,"0"),o=e.toString().padStart(2,"0");return`T${r}:${o}:00${t}`},Vi=i=>`UTC${i}`,me=i=>{const e=Ue(i);if(!e)throw new Error(`Invalid time value: ${i}`);return(e.hours*60+e.minutes-yt(e.utcOffset)+1440)%1440},yi=(i,e=!0)=>{const t=Ue(i);if(!t)throw new Error(`Invalid time value: ${i}`);const r=(t.hours%12||12).toString().padStart(2,"0"),o=t.minutes.toString().padStart(2,"0"),l=t.hours>=12?"PM":"AM",s=`${r}:${o} ${l}`;return e?`${s} ${Vi(t.utcOffset)}`:s},ke=i=>typeof i=="object"&&(A(i.from)||A(i.to)),nn=(i,e)=>{const t=me(i),r=e.from?me(e.from):null,o=e.to?me(e.to):null;return r===null&&o===null?!0:r===null?t<=o:o===null?t>=r:r<=o?t>=r&&t<=o:t>=r||t<=o},vi=d.memo(i=>{const{value:e,onChange:t,onBlur:r,disabled:o,size:l="md",id:s,name:f,compact:u=!1}=i,h=e?Ue(e):null,p=h?`${h.hours.toString().padStart(2,"0")}:${h.minutes.toString().padStart(2,"0")}`:"",m=d.useCallback(z=>{const S=z.target.value;if(!S){t(null);return}const[w,v]=S.split(":").map(Number);t(en(w,v,h?.utcOffset))},[t,h?.utcOffset]),g=d.useCallback(z=>{h&&(t(en(h.hours,h.minutes,z)),r?.())},[r,t,h]),C=d.useCallback(z=>{z||r?.()},[r]);return n.jsxs("div",{className:"flex min-w-0 gap-2",children:[n.jsx(a.Input.Root,{className:"min-w-0 grow",accentColor:"base",variant:"surface",size:l,children:n.jsx(a.Input.Field,{id:s,name:f,className:R.cx("[&::-webkit-calendar-picker-indicator]:invert-40 dark:[&::-webkit-calendar-picker-indicator]:invert-60",{"[&::-webkit-datetime-edit]:opacity-60":!e}),type:"time",step:60,value:p,onChange:m,onBlur:r,disabled:o})}),n.jsxs(a.Menu.Root,{align:"end",onOpenChange:C,children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsxs(a.Button,{type:"button",className:u?"!justify-between":"min-w-32 !justify-between",accentColor:"base",variant:"surface",size:l,disabled:o||!h,children:[n.jsx(a.Text,{className:"truncate",highContrast:!!h,children:h?Vi(h.utcOffset):"UTC offset"}),n.jsx(a.LuIcon,{icon:ui})]})}),n.jsx(a.Menu.Content,{size:l,children:n.jsx(a.Menu.Scroll,{children:n.jsx(a.Menu.SelectGroup,{required:!0,value:h?.utcOffset,onValueChange:g,children:Ri.map(z=>n.jsxs(a.Menu.SelectItem,{value:z,children:[n.jsx(a.Menu.SelectedIndicator,{children:n.jsx(a.LuIcon,{icon:H})}),Vi(z)]},z))})})})]})]})});vi.displayName="TimeFieldControl";const tn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e});return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsx(vi,{id:e.identifier,name:o,size:t,value:r,onChange:s,onBlur:l,disabled:u})})});tn.displayName="TimeFieldInput";class Me extends N{type="time";constructor(e){super(e)}static deserialize(e){return new Me(e)}static fromConfig(e){return new Me(e)}static deserializeConfig(e){return N._deserializeConfig(e)}static serializeConfig(e){return N._serializeConfig(e)}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new Me({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(tn,{field:this})}isSerializedValue(e){return e===null||A(e)}isValue(e){return e===null||A(e)}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}areValuesEqual(e,t){return e===t}}const vt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useRef(null),p=d.useCallback(()=>{h.current?.click()},[]),m=d.useCallback(()=>{if(!h.current)return;const v=h.current.files;if(!v){l();return}const x=Array.from(v).map(y=>de.from(F.v4(),y)),O=[...r,...x];s(O),l()},[l,s,r]),g=d.useCallback(v=>{const x=r.filter(({uuid:O})=>O!==v.uuid);s(x),l()},[r,s,l]);d.useEffect(()=>{if(!h.current)return;const v=new AbortController;return h.current.addEventListener("cancel",()=>{l()},{signal:v.signal}),()=>{v.abort()}},[l,r]);const C=e.maximumFiles!==1,w=C?"Select files":"Select a file";return n.jsxs(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:[n.jsxs(a.Button,{className:"w-max",size:t,variant:"surface",accentColor:"base",onClick:p,type:"button",disabled:u,children:[n.jsx(a.LuIcon,{icon:Pi}),w]}),n.jsx("input",{id:e.identifier,name:o,type:"file",ref:h,accept:e.extensions?.join(","),multiple:C,className:"hidden",onChange:m,value:""}),r.length>0&&n.jsx("div",{className:"mt-1 flex h-max flex-col gap-2",children:r.map(v=>n.jsx(Yi,{size:t,fileOrPromise:v,onRemove:g,disabled:u},v.uuid))})]})});vt.displayName="UploadFieldInput";class ge extends N{type="upload";extensions;maximumSize;maximumFiles;constructor(e){const{extensions:t,maximumFiles:r,maximumSize:o,...l}=e;super(l),this.maximumSize=o,this.maximumFiles=r,this.extensions=t}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"How many files can be uploaded?",description:"By default, only one file can be uploaded.",required:!1,minimum:0,identifier:`${t}maximumFiles`,integers:!0}),showDirectly:!1},{field:new J({label:"What is the maximum size of each file?",description:"Maximum file size in MB.",required:!1,identifier:`${t}maximumSize`,minimum:0,integers:!0}),showDirectly:!1},{field:new ie({label:"Accepted file types",description:"Types of allowed files to upload. If left blank, all files will be accepted.",required:!1,identifier:`${t}extensions`,options:[{value:"image/*",label:"Images"},{value:"audio/*",label:"Audio files"},{value:"video/*",label:"Videos"},{value:"text/*",label:"Text files"},{value:"application/*",label:"Application files (includes PDFs and Word documents)"}]}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),t=this.maximumSize,r=t&&t*1e3*1e3,o=this.maximumFiles;return typeof t=="number"&&typeof r=="number"&&e.push(l=>{if(l.some(s=>s instanceof de&&s.size>r))return`Files must be at most ${t}MB.`}),typeof o=="number"&&e.push(l=>{if(l.length>o)return`You can only upload ${o} files.`}),e}serialize(){return{...super.serialize(),extensions:this.extensions,maximum_size:this.maximumSize,maximum_files:this.maximumFiles}}config(){return{...super.config(),extensions:this.extensions,maximumSize:this.maximumSize,maximumFiles:this.maximumFiles}}getOptions(){return{...super.getOptions(),extensions:this.extensions,maximumSize:this.maximumSize,maximumFiles:this.maximumFiles}}duplicate(e){return new ge({...this.getOptions(),identifier:e})}setOptions(e){"maximumSize"in e&&(this.maximumSize=e.maximumSize),"maximumFiles"in e&&(this.maximumFiles=e.maximumFiles),"extensions"in e&&(this.extensions=e.extensions),super.setOptions(e)}static deserialize(e){const{maximum_size:t,maximum_files:r,...o}=e;return new ge({...o,maximumSize:t,maximumFiles:r})}static fromConfig(e){return new ge(e)}static deserializeConfig(e){const{extensions:t,maximum_size:r,maximum_files:o,...l}=e;return{...N._deserializeConfig(l),extensions:t,maximumSize:r,maximumFiles:o}}static serializeConfig(e){const{extensions:t,maximumSize:r,maximumFiles:o,...l}=e;return{...N._serializeConfig(l),extensions:t,maximum_size:r,maximum_files:o}}serializeValue(e){return[]}deserializeValue(e){return[]}render(){return n.jsx(vt,{field:this})}isSerializedValue(e){return Array.isArray(e)&&e.length===0}isValue(e){return Array.isArray(e)?e.every(t=>t instanceof be||t instanceof de):!1}areValuesEqual(e,t){return mi(e,t)}blankValue(){return[]}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){return e.length===t.length}}const zt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:o,onBlur:l,onChange:s,error:f,disabled:u}=P({field:e}),h=d.useCallback(C=>{const z=C.target.value;z!==""&&!URL.canParse(z)||s(z!==""?new URL(z):null)},[s]),p=d.useCallback(()=>{l()},[l]),m=d.useCallback(C=>{C.key==="Enter"&&C.preventDefault()},[]),g=d.useCallback(()=>{r!==null&&window.open(r,"_blank","noopener,noreferrer")},[r]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:n.jsxs("div",{className:"flex w-full gap-2",children:[n.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"surface",size:t,children:n.jsx(a.Input.Field,{id:e.identifier,className:"truncate",name:o,value:r?r.toString():"",type:"url",inputMode:"url",placeholder:e.placeholder??"https://example.com",onChange:h,onBlur:p,disabled:u,onKeyDown:m})}),n.jsx(a.IconButton,{size:t,variant:"soft",accentColor:"base",type:"button",disabled:r===null,onClick:g,children:n.jsx(a.LuIcon,{icon:_o})})]})})});zt.displayName="URLFieldInput";class xe extends N{type="url";placeholder;constructor(e){const{placeholder:t,...r}=e;super(r),this.placeholder=t}serialize(){return{...super.serialize(),placeholder:this.placeholder}}config(){return{...super.config(),placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),placeholder:this.placeholder}}duplicate(e){return new xe({...this.getOptions(),identifier:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new xe(e)}static fromConfig(e){return new xe(e)}static deserializeConfig(e){const{placeholder:t,...r}=e;return{...N._deserializeConfig(r),placeholder:t}}static serializeConfig(e){const{placeholder:t,...r}=e;return{...N._serializeConfig(r),placeholder:t}}serializeValue(e){return e?.toString()??null}deserializeValue(e){return e===null?null:new URL(e)}isSerializedValue(e){return e===null?!0:typeof e!="string"?!1:URL.canParse(e)}isValue(e){return e===null||e instanceof URL}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,t){return e===t}areValuesEqual(e,t){return e?.toString()===t?.toString()}render(){return n.jsx(zt,{field:this})}}const Ee={date:we,time:Me,number:J,boolean:le,select:re,string:he,url:xe,text:pe,upload:ge,qr:Ne,"multi-string":ae,"multi-select":ie,radio:ue,"checkbox-list":ee,"pass-fail":ce,otp:se,rating:fe},St=Object.keys(Ee),T={"checkbox-list":{description:"Allows the user to select a multiple options from a list.",group:q.Selection,icon:Oo,name:"Checkbox list"},"multi-select":{description:"Allows the user to select a multiple options from a list of options.",group:q.Selection,icon:Ao,name:"Multi-select"},"multi-string":{description:"Allows the user to provide multiple unique strings.",group:q.Text,icon:Do,name:"Multi-string"},"pass-fail":{description:"Track pass, fail, or N/A outcome.",group:q.Assessment,icon:qo,name:"Pass - Fail"},boolean:{description:"Perfect for both optional and required yes/no questions.",group:q.Selection,icon:Go,name:"Checkbox"},date:{description:"Allows specifying a date.",group:q.Temporal,icon:bo,name:"Date"},time:{description:"Allows specifying a time and UTC offset.",group:q.Temporal,icon:Wo,name:"Time"},number:{description:"Allows specifying a number within a given range.",group:q.Numeric,icon:Lo,name:"Number"},otp:{description:"Allows specifying a number within a given range.",group:q.Verification,icon:jo,name:"OTP"},qr:{description:"Used for scanning/reading QR and barcodes.",group:q.Capture,icon:Uo,name:"Scan"},radio:{description:"Allows the user to select a single option from a list of options.",group:q.Selection,icon:Mo,name:"Option list"},rating:{description:"Allows users to select a rating value.",group:q.Assessment,icon:Gn,name:"Rating"},select:{description:"Allows the user to select a single option from a list of options.",group:q.Selection,icon:$o,name:"Dropdown"},string:{description:"Short text fields can hold up to 500 characters on a single line.",group:q.Text,icon:Ho,name:"Short Text"},text:{description:"Paragraph fields can hold up to 10000 characters and can have multiple lines.",group:q.Text,icon:So,name:"Paragraph"},upload:{description:"Allows a file to be uploaded.",group:q.Capture,icon:Pi,name:"Upload"},url:{description:"Allows users to enter a URL.",group:q.Text,icon:Bo,name:"URL"}},wt={[q.Assessment]:{name:"Assessment"},[q.Capture]:{name:"Capture"},[q.Numeric]:{name:"Numeric"},[q.Selection]:{name:"Selection"},[q.Temporal]:{name:"Temporal"},[q.Text]:{name:"Text"},[q.Verification]:{name:"Verification"}},$="Unlabelled",zi="Unlabelled";class M{id;label;getApplyFn;serialize;deserialize;constructor(e){const{id:t,getApplyFn:r,label:o,serialize:l,deserialize:s}=e;this.id=t,this.getApplyFn=r,this.label=o,this.serialize=l,this.deserialize=s}static create(e){return new M(e)}}const Ft=M.create({id:"nullable-boolean-equals",label:"is",getApplyFn:i=>e=>e===i,serialize:i=>i,deserialize:i=>i}),bt=M.create({id:"nullable-boolean-not-equals",label:"is not",getApplyFn:i=>e=>e!==i,serialize:i=>i,deserialize:i=>i}),Nt=M.create({id:"date-equals",getApplyFn:i=>e=>e.getTime()===i.getTime(),label:"is",serialize:i=>i.toISOString(),deserialize:i=>new Date(i)}),Mt=M.create({id:"date-not-equals",getApplyFn:i=>e=>e.getTime()!==i.getTime(),label:"is not",serialize:i=>i.toISOString(),deserialize:i=>new Date(i)}),xt=M.create({id:"date-before",getApplyFn:i=>e=>e.getTime()<i.getTime(),label:"before",serialize:i=>i.toISOString(),deserialize:i=>new Date(i)}),It=M.create({id:"date-after",label:"after",getApplyFn:i=>e=>e.getTime()>i.getTime(),serialize:i=>i.toISOString(),deserialize:i=>new Date(i)}),qt=M.create({id:"date-range-in",label:"in between",getApplyFn:i=>e=>!(i?.from&&i.from.getTime()>e.getTime()||i?.to&&i.to.getTime()<e.getTime()),serialize:i=>({from:i.from?.toISOString()??null,to:i.to?.toISOString()??null}),deserialize:i=>({from:i.from?new Date(i.from):void 0,to:i.to?new Date(i.to):void 0})}),Ot=M.create({id:"date-range-not-in",label:"not in between",getApplyFn:i=>e=>!!(i?.from&&i.from.getTime()>e.getTime()||i?.to&&i.to.getTime()<e.getTime()),serialize:i=>({from:i.from?.toISOString()??null,to:i.to?.toISOString()??null}),deserialize:i=>({from:i.from?new Date(i.from):void 0,to:i.to?new Date(i.to):void 0})}),_t=M.create({id:"has-files",label:"is",getApplyFn:i=>e=>e.length>0,serialize:i=>i,deserialize:i=>i}),Tt=M.create({id:"does-not-have-files",label:"is not",getApplyFn:i=>e=>e.length===0,serialize:i=>i,deserialize:i=>i}),rn=M.create({id:"number-equals",getApplyFn:i=>e=>e===i,label:"is",serialize:i=>i,deserialize:i=>i}),on=M.create({id:"number-not-equals",getApplyFn:i=>e=>e!==i,label:"is not",serialize:i=>i,deserialize:i=>i}),an=M.create({id:"number-less-than",getApplyFn:i=>e=>e<i,label:"is less than",serialize:i=>i,deserialize:i=>i}),ln=M.create({id:"number-less-than-or-equals",getApplyFn:i=>e=>e<=i,label:"is less than or equal to",serialize:i=>i,deserialize:i=>i}),sn=M.create({id:"number-greater-than",getApplyFn:i=>e=>e>i,label:"is greater than",serialize:i=>i,deserialize:i=>i}),dn=M.create({id:"number-greater-than-or-equals",getApplyFn:i=>e=>e>=i,label:"is greater than or equal to",serialize:i=>i,deserialize:i=>i}),cn=M.create({id:"number-range-in",getApplyFn:i=>e=>!(i.to&&e>i.to||i.from&&e<i.from),label:"is between",serialize:i=>i,deserialize:i=>i}),un=M.create({id:"number-range-not-in",getApplyFn:i=>e=>!!(i.to&&e>i.to||i.from&&e<i.from),label:"is not between",serialize:i=>i,deserialize:i=>i}),Et=M.create({id:"pass-fail-equals",getApplyFn:i=>e=>e===i,label:"is",serialize:i=>i,deserialize:i=>i}),Lt=M.create({id:"pass-fail-not-equals",getApplyFn:i=>e=>e!==i,label:"is not",serialize:i=>i,deserialize:i=>i}),Bt=M.create({id:"pass-fail-array-includes",getApplyFn:i=>{const e=new Set(i);return t=>e.has(t)},label:"is any of",serialize:i=>i,deserialize:i=>i}),At=M.create({id:"pass-fail-array-excludes",getApplyFn:i=>{const e=new Set(i);return t=>!e.has(t)},label:"is none of",serialize:i=>i,deserialize:i=>i}),Ce=M.create({id:"nullable-string-equals",getApplyFn:i=>e=>e===i,label:"is",serialize:i=>i,deserialize:i=>i}),Ve=M.create({id:"nullable-string-not-equals",getApplyFn:i=>e=>e!==i,label:"is not",serialize:i=>i,deserialize:i=>i}),Le=M.create({id:"string-includes",getApplyFn:i=>e=>e.includes(i),label:"includes",serialize:i=>i,deserialize:i=>i}),Be=M.create({id:"string-excludes",getApplyFn:i=>e=>!e.includes(i),label:"does not include",serialize:i=>i,deserialize:i=>i}),fn=M.create({id:"string-array-includes",getApplyFn:i=>{const e=new Set(i);return t=>e.has(t)},label:"is any of",serialize:i=>i,deserialize:i=>i}),hn=M.create({id:"string-array-excludes",getApplyFn:i=>{const e=new Set(i);return t=>!e.has(t)},label:"is none of",serialize:i=>i,deserialize:i=>i}),Si=M.create({id:"string-array-every",getApplyFn:i=>{const e=new Set(i);return t=>{const r=new Set(t);return e.isSubsetOf(r)}},label:"has all of",serialize:i=>i,deserialize:i=>i}),wi=M.create({id:"string-array-some",getApplyFn:i=>{const e=new Set(i);return t=>{const r=new Set(t);return!e.isDisjointFrom(r)}},label:"has any of",serialize:i=>i,deserialize:i=>i}),Fi=M.create({id:"string-array-none",getApplyFn:i=>{const e=new Set(i);return t=>{const r=new Set(t);return e.isDisjointFrom(r)}},label:"has none of",serialize:i=>i,deserialize:i=>i}),bi=M.create({id:"string-array-equals",getApplyFn:i=>{const e=new Set(i);return t=>{const r=new Set(t);return e.size===r.size&&r.isSubsetOf(e)}},label:"is",serialize:i=>i,deserialize:i=>i}),Ni=M.create({id:"string-array-not-equals",getApplyFn:i=>{const e=new Set(i);return t=>{const r=new Set(t);return e.size!==r.size||!r.isSubsetOf(e)}},label:"is not",serialize:i=>i,deserialize:i=>i}),$t=M.create({id:"time-equals",label:"is",getApplyFn:i=>e=>e===i,serialize:i=>i,deserialize:i=>i}),Dt=M.create({id:"time-not-equals",label:"is not",getApplyFn:i=>e=>e!==i,serialize:i=>i,deserialize:i=>i}),Pt=M.create({id:"time-before",label:"before",getApplyFn:i=>e=>me(e)<me(i),serialize:i=>i,deserialize:i=>i}),jt=M.create({id:"time-after",label:"after",getApplyFn:i=>e=>me(e)>me(i),serialize:i=>i,deserialize:i=>i}),Ut=M.create({id:"time-range-in",label:"in between",getApplyFn:i=>e=>nn(e,i),serialize:i=>i,deserialize:i=>i}),kt=M.create({id:"time-range-not-in",label:"not in between",getApplyFn:i=>e=>!nn(e,i),serialize:i=>i,deserialize:i=>i}),V=i=>i;class j extends je{id;conditionValue;conditionModifier;field;constructor(e){const{id:t,field:r,conditionValue:o,conditionModifier:l}=e;super(),this.id=t,this.field=r,this.conditionValue=o,this.conditionModifier=l}serialize(){return{id:this.id,type:this.field.type,fieldId:this.field.identifier,conditionValue:this.conditionValue!==void 0?this.modifiers[this.conditionModifier].modifier.serialize(this.conditionValue):void 0,conditionModifier:this.conditionModifier}}getConditionValue=()=>this.conditionValue;transformValue(e){return e}setConditionValue=e=>{const t=this.modifiers[this.conditionModifier];e!==void 0&&!t.isConditionValueValid(e)||(this.conditionValue=e,this.notify(this))};getConditionModifier=()=>this.conditionModifier;setConditionModifier=e=>{const t=this.modifiers[e],r=this.getConditionValue();r&&!t.isConditionValueValid(r)&&(this.conditionValue=void 0),this.conditionModifier=e,this.notify(this)};getConditionModifiers=()=>Object.entries(this.modifiers);accessorFn=e=>e[this.field.identifier];getApplyFn=()=>{const e=this.modifiers[this.conditionModifier],t=this.getConditionValue(),r=t!==void 0&&e.isConditionValueValid(t),o=r?e.modifier.getApplyFn(t):null;return l=>{if(!r)return!0;const s=this.transformValue(l);return e.isValueValid(s)?o(s):!1}}}const Gt=d.memo,Ie=Gt(function(i){const{ref:e,children:t,...r}=i,o=d.useCallback(l=>typeof t=="function"?n.jsxs(n.Fragment,{children:[t(l),n.jsx(a.Menu.SelectedIndicator,{className:"ml-[auto]",children:n.jsx(a.LuIcon,{icon:H})})]}):n.jsxs(n.Fragment,{children:[t,n.jsx(a.Menu.SelectedIndicator,{className:"ml-[auto]",children:n.jsx(a.LuIcon,{icon:H})})]}),[t]);return n.jsx(a.Menu.SelectItem,{ref:e,...r,children:o})}),Jt=Gt(function(i){const{ref:e,children:t,...r}=i,o=d.useCallback(l=>typeof t=="function"?n.jsxs(n.Fragment,{children:[t(l),n.jsx(a.Menu.SelectedIndicator,{className:"ml-auto",children:n.jsx(a.LuIcon,{icon:H})})]}):n.jsxs(n.Fragment,{children:[t,n.jsx(a.Menu.SelectedIndicator,{className:"ml-auto",children:n.jsx(a.LuIcon,{icon:H})})]}),[t]);return n.jsx(a.Menu.MultiSelectItem,{ref:e,...r,children:o})}),pn=d.memo(i=>{const{ref:e,children:t,...r}=i,o=d.useCallback(l=>typeof t=="function"?n.jsxs(n.Fragment,{children:[t(l),n.jsx(a.Menu.CheckboxItemIndicator,{className:"ml-[auto]",children:s=>s?n.jsx(a.LuIcon,{icon:fi}):n.jsx(a.LuIcon,{icon:H})})]}):n.jsxs(n.Fragment,{children:[t,n.jsx(a.Menu.CheckboxItemIndicator,{className:"ml-[auto]",children:s=>s?n.jsx(a.LuIcon,{icon:fi}):n.jsx(a.LuIcon,{icon:H})})]}),[t]);return n.jsx(a.Menu.SelectAllItem,{ref:e,...r,children:o})});pn.displayName="SelectAllItemTemplate";const k=i=>{const{children:e,condition:t,size:r="sm",variant:o,accentColor:l,radius:s}=i,f=d.useCallback(u=>{t.setConditionModifier(u)},[t]);return n.jsxs(a.Menu.Root,{align:"start",children:[n.jsx(a.Menu.ClickTrigger,{children:e}),n.jsx(a.Menu.Content,{size:r,variant:o,radius:s,accentColor:l,children:n.jsx(a.Menu.SelectGroup,{required:!0,value:t.getConditionModifier(),onValueChange:f,children:t.getConditionModifiers().map(([u,h])=>n.jsx(Ie,{value:u,children:h.modifier.label},u))})})]})},Mi=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,align:f,accentColor:u="base",...h}=i;return n.jsxs(a.Popover.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:e}),n.jsx(a.Popover.Content,{size:s,align:f,children:n.jsx(a.DayPicker,{size:s,accentColor:u,...h})})]})});Mi.displayName="DayPickerPopover";const Ht=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,accentColor:f="base",values:u,onValuesChange:h,placeholder:p="Enter text",...m}=i,[g,C]=d.useState(""),z=d.useCallback(x=>{C(x.target.value)},[]),S=d.useCallback(x=>{x.key==="Enter"&&(x.preventDefault(),x.stopPropagation(),h([...u,g]),C(""))},[g,h,u]),w=d.useCallback(()=>{h([...u,g]),C("")},[g,h,u]),v=d.useCallback(x=>{const O=[...u];O.splice(x,1),h(O)},[h,u]);return n.jsxs(a.Popover.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:e}),n.jsx(a.Popover.Content,{size:s,onClick:a.stopPropagation,accentColor:f,...m,children:n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsxs("div",{className:"flex gap-2",children:[n.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"outline",size:"sm",children:n.jsx(a.Input.Field,{value:g,onChange:z,onKeyDown:S,placeholder:p,...m})}),n.jsx(a.IconButton,{size:"sm",accentColor:"base",variant:"soft",type:"button",onClick:w,children:n.jsx(a.LuIcon,{icon:Z})})]}),u.length>0&&n.jsx("div",{className:"flex flex-col gap-1",children:u.map((x,O)=>n.jsxs(a.Badge,{className:"flex items-center justify-between gap-2",accentColor:"base",size:"sm",variant:"soft",children:[n.jsx("span",{className:"truncate",children:x}),n.jsx(a.IconButton,{size:"xs",variant:"ghost",type:"button",accentColor:"base",onClick:()=>{v(O)},children:n.jsx(a.LuIcon,{icon:oe})})]},`${x}-${O}`))})]})})]})});Ht.displayName="NumberInputPopover";const qe=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,accentColor:f="base",value:u,onValueChange:h,placeholder:p="Enter a number",...m}=i,[g,C]=d.useState(null);d.useEffect(()=>{u!==void 0&&C(u)},[u]);const z=d.useCallback(w=>{const v=w.target.valueAsNumber;C(isNaN(v)?null:v)},[]),S=d.useCallback(w=>{const v=w.target.valueAsNumber;h?.(isNaN(v)?null:v)},[h]);return n.jsxs(a.Popover.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:e}),n.jsx(a.Popover.Content,{size:s,onClick:a.stopPropagation,...m,children:n.jsx(a.Input.Root,{size:s,accentColor:f,children:n.jsx(a.Input.Field,{placeholder:p,type:"number",value:g??"",onChange:z,onBlur:S})})})]})});qe.displayName="NumberInputPopover";const U=i=>{const{condition:e,onClick:t,...r}=i,o=d.useCallback(()=>{t(e)},[e,t]);return n.jsx(a.IconButton,{onClick:o,...r,children:n.jsx(a.LuIcon,{icon:oe})})};U.displayName="RemoveConditionButton";const Ge=d.memo(i=>{const{ref:e,selectFieldOptions:t,...r}=i,o=d.useMemo(()=>_e(t),[t]);return n.jsxs(a.Menu.MultiSelectGroup,{ref:e,...r,children:[n.jsx(pn,{children:"Select all"}),o.map(l=>n.jsx(Jt,{value:l.value,children:n.jsx("span",{className:"truncate",children:l.label})},l.value))]})});Ge.displayName="SelectFieldOptionMultiSelectGroup";const mn=d.memo(i=>{const{ref:e,selectFieldOptions:t,...r}=i,o=d.useMemo(()=>_e(t),[t]);return n.jsx(a.Menu.SelectGroup,{ref:e,...r,children:o.map(l=>n.jsx(Ie,{value:l.value,children:n.jsx("span",{className:"truncate",children:l.label})},l.value))})});mn.displayName="SelectFieldOptionSelectGroup";const Ae=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,accentColor:f="base",value:u,onValueChange:h,placeholder:p="Enter text",...m}=i,[g,C]=d.useState(""),z=d.useCallback(w=>{C(w.target.value)},[]),S=d.useCallback(w=>{const v=w.target.value;h?.(v)},[h]);return d.useEffect(()=>{u&&C(u)},[u]),n.jsxs(a.Popover.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:e}),n.jsx(a.Popover.Content,{size:s,onClick:a.stopPropagation,...m,children:n.jsx(a.Input.Root,{size:s,accentColor:f,children:n.jsx(a.Input.Field,{placeholder:p,type:"text",value:g,onChange:z,onBlur:S})})})]})});Ae.displayName="TextInputPopover";const xi=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s="sm",accentColor:f="base",value:u,onValueChange:h,...p}=i;return n.jsxs(a.Popover.Root,{open:t,onOpenChange:r,defaultOpen:o,modal:l,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:e}),n.jsx(a.Popover.Content,{size:s,onClick:a.stopPropagation,accentColor:f,...p,children:n.jsx(vi,{compact:!0,size:s,value:u,onChange:h})})]})});xi.displayName="TimeInputPopover";const Wt=i=>{const{condition:e,onRemove:t}=i,r=e.getConditionValue(),o=e.getConditionModifier(),l=()=>{switch(r){case void 0:return"...";case!0:return"true";case!1:return"false";case null:return"empty"}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[e.field.type].icon}),n.jsx("span",{className:"truncate",children:e.field.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[o].modifier.label})}),n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:l()})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsxs(a.Menu.SelectGroup,{required:!0,value:r,onValueChange:e.setConditionValue,children:[n.jsx(Ie,{value:!0,children:"true"}),n.jsx(Ie,{value:!1,children:"false"})]})})]}),n.jsx(U,{condition:e,onClick:t})]})},Kt={equals:V({modifier:Ft,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:bt,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Je extends j{modifiers=Kt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Kt[o];let f;return r!==void 0&&(f=s.modifier.deserialize(r)),new Je({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Wt,{condition:this,...e},this.id)}}const $e=[],Xt=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{u.length>0?e.setConditionValue(u):e.setConditionValue(void 0)},[e]),f=()=>o===void 0?"...":o===null?"empty":o.length===0?"...":`${o.length} options`;return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"soft",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"soft",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"truncate",children:f()})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(Ge,{values:o??$e,selectFieldOptions:e.field.options,onValuesChange:s})})]}),n.jsx(U,{condition:e,onClick:t})]})},Yt={equals:V({modifier:bi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ni,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),every:V({modifier:Si,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),some:V({modifier:wi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),none:V({modifier:Fi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class He extends j{modifiers=Yt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Yt[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new He({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Xt,{condition:this,...e},this.id)}}class Ii extends je{conditions;constructor(e){super(),this.conditions=this.initConditions(e)}conditionObserver=()=>{this.conditions=[...this.conditions],this.notify(this)};initConditions=e=>{for(const t of e)t.observe(this.conditionObserver);return e};getConditions(){return this.conditions}addCondition(e){this.conditions=this.initConditions([...this.conditions,e]),this.notify(this)}addConditions(e){this.conditions=this.initConditions([...this.conditions,...e]),this.notify(this)}removeCondition(e){this.conditions=this.initConditions(this.conditions.filter(t=>t.id!==e.id)),this.notify(this)}removeConditions(e){const t=new Set(e.map(r=>r.id));this.conditions=this.initConditions(this.conditions.filter(r=>!t.has(r.id))),this.notify(this)}applyConditions(e){return this.conditions.length===0?!0:this.conditions.map(r=>[r.getApplyFn(),r.accessorFn]).every(([r,o])=>r(o(e)))}}const ea=(i,e)=>d.useMemo(()=>{const t=new Ii(i);return t.observe(r=>e(r.getConditions())),t},[i,e]),Zt=i=>{const{condition:e,onRemove:t}=i,r=e.getConditionValue(),o=e.getConditionModifier(),l=()=>{switch(o){case"equals":case"notEquals":{const s=e.modifiers.equals,f=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Mi,{required:!1,size:"sm",mode:"single",selected:f??void 0,onSelect:u=>e.setConditionValue(u),children:n.jsx(a.Button,{type:"button",className:"truncate",children:f!==void 0?f?.toLocaleDateString()??"empty":"..."})})}case"before":case"after":{const s=e.modifiers.after,f=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Mi,{required:!0,size:"sm",mode:"single",selected:f,onSelect:e.setConditionValue,children:n.jsx(a.Button,{type:"button",className:"truncate",children:f?f.toLocaleDateString():"..."})})}case"in":case"notIn":{const s=e.modifiers.in,f=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Mi,{required:!0,mode:"range",size:"sm",selected:f,onSelect:e.setConditionValue,children:n.jsx(a.Button,{className:"truncate",children:f?`${f.from?.toLocaleDateString()} - ${f.to?.toLocaleDateString()}`:"..."})})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[e.field.type].icon}),n.jsx("span",{className:"truncate",children:e.field.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[o].modifier.label})}),l(),n.jsx(U,{condition:e,onClick:t})]})},Qt={equals:V({modifier:Nt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>i instanceof Date,isSerializedValueValid:i=>typeof i=="string"}),notEquals:V({modifier:Mt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>i instanceof Date,isSerializedValueValid:i=>typeof i=="string"}),before:V({modifier:xt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>i instanceof Date,isSerializedValueValid:i=>typeof i=="string"}),after:V({modifier:It,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>i instanceof Date,isSerializedValueValid:i=>typeof i=="string"}),in:V({modifier:qt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>"to"in(i??{})&&"from"in(i??{}),isSerializedValueValid:i=>typeof i=="object"&&"to"in i&&"from"in i}),notIn:V({modifier:Ot,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>"to"in(i??{})&&"from"in(i??{}),isSerializedValueValid:i=>typeof i=="object"&&"to"in i&&"from"in i})};class We extends j{modifiers=Qt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Qt[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new We({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Zt,{condition:this,...e},this.id)}}const Rt=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{u.length>0?e.setConditionValue(u):e.setConditionValue(void 0)},[e]),f=()=>o===void 0?"...":o===null?"empty":o.length===0?"...":`${o.length} options`;return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"truncate",children:f()})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(Ge,{values:o??$e,selectFieldOptions:r.options,onValuesChange:s})})]}),n.jsx(U,{condition:e,onClick:t})]})},er={equals:V({modifier:bi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ni,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),every:V({modifier:Si,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),some:V({modifier:wi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),none:V({modifier:Fi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Ke extends j{modifiers=er;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=er[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ke({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Rt,{condition:this,...e},this.id)}}const ir=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{e.setConditionValue(u.length>0?u:void 0)},[e]),f=()=>{if(o===void 0)return"...";if(o===null)return"empty";switch(o.length){case 0:return"...";case 1:return o[0].toString();default:return`${o.length} values`}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsx(Ht,{values:o??$e,onValuesChange:s,children:n.jsx(a.Button,{type:"button",className:"truncate",children:f()})}),n.jsx(U,{condition:e,onClick:t})]})},nr={equals:V({modifier:bi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ni,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),every:V({modifier:Si,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),some:V({modifier:wi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),none:V({modifier:Fi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Xe extends j{modifiers=nr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=nr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Xe({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(ir,{condition:this,...e},this.id)}}const tr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{e.setConditionValue(u??void 0)},[e]),f=()=>{switch(l){case"equals":case"greaterThanOrEquals":case"lessThanOrEquals":case"greaterThan":case"lessThan":{const u=e.modifiers.greaterThan,h=o!==void 0&&u.isConditionValueValid(o)?o:void 0;return n.jsx(qe,{value:h??null,onValueChange:s,size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:h!==void 0?h??"empty":"..."})})}case"inRange":case"notInRange":{const u=e.modifiers.inRange,h=o!==void 0&&u.isConditionValueValid(o)?o:void 0;return n.jsxs(n.Fragment,{children:[n.jsx(qe,{value:h?.from??null,onValueChange:p=>{e.setConditionValue({from:p,to:h?.to??null})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:h?.from??"..."})}),n.jsx(qe,{value:h?.to??null,onValueChange:p=>{e.setConditionValue({from:h?.from??null,to:p})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:h?.to??"..."})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),f(),n.jsx(U,{condition:e,onClick:t})]})},rr={equals:V({modifier:rn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),notEquals:V({modifier:on,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThan:V({modifier:an,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThanOrEquals:V({modifier:ln,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),greaterThan:V({modifier:sn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),greaterThanOrEquals:V({modifier:dn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),inRange:V({modifier:cn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"}),notInRange:V({modifier:un,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"})};class Ye extends j{modifiers=rr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=rr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ye({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(tr,{condition:this,...e},this.id)}}const or=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Ae,{value:o??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:o||"..."})})})}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},ar={equals:V({modifier:Ce,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ve,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Ze extends j{modifiers=ar;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=ar[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ze({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(or,{condition:this,...e},this.id)}}const lr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":{const f=e.modifiers.equals,u=o!==void 0&&f.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:u!==void 0?u?Fe[u].label:"empty":"..."})})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(a.Menu.SelectGroup,{required:!1,value:u,onValueChange:e.setConditionValue,children:Te.map(h=>{const{label:p}=Fe[h];return n.jsx(Ie,{value:h,children:n.jsx("span",{className:"truncate",children:p})},h)})})})]})}case"includes":case"excludes":{const f=e.modifiers.includes,u=o!==void 0&&f.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",children:u?`${u.length} statuses`:"..."})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsxs(a.Menu.MultiSelectGroup,{values:u??$e,onValuesChange:e.setConditionValue,children:[n.jsx(pn,{children:"Select all"}),Te.map(h=>{const{label:p,icon:m}=Fe[h];return n.jsxs(Jt,{value:h,children:[n.jsx(a.LuIcon,{icon:m}),n.jsx("span",{className:"truncate",children:p})]},h)})]})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},sr={equals:V({modifier:Et,isValueValid:i=>i!==null,isConditionValueValid:i=>typeof i=="string",isSerializedValueValid:i=>typeof i=="string"}),notEquals:V({modifier:Lt,isValueValid:i=>i!==null,isConditionValueValid:i=>typeof i=="string",isSerializedValueValid:i=>typeof i=="string"}),includes:V({modifier:Bt,isValueValid:i=>i!==null,isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)}),excludes:V({modifier:At,isValueValid:i=>i!==null,isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)})};class Qe extends j{modifiers=sr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=sr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Qe({field:t,conditionModifier:o,conditionValue:f,...l})}transformValue(e){return e.status}render(e){return n.jsx(lr,{condition:this,...e},this.id)}}const dr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useMemo(()=>r.options.map(h=>typeof h=="string"?{value:h,label:h}:h),[r.options]),f=d.useMemo(()=>{const h={};for(const p of s)h[p.value]=p.label;return h},[s]),u=()=>{switch(l){case"equals":case"notEquals":{const h=e.modifiers.equals,p=o!==void 0&&h.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:p!==void 0?p?f[p]:"empty":"..."})})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(mn,{required:!0,selectFieldOptions:r.options,value:p??void 0,onValueChange:e.setConditionValue})})]})}case"includes":case"excludes":{const h=e.modifiers.includes,p=o!==void 0&&h.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",children:p?`${p.length} options`:"..."})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(Ge,{selectFieldOptions:r.options,values:p??$e,onValuesChange:e.setConditionValue})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),u(),n.jsx(U,{condition:e,onClick:t})]})},cr={equals:V({modifier:Ce,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),notEquals:V({modifier:Ve,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),includes:V({modifier:fn,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)}),excludes:V({modifier:hn,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)})};class Re extends j{modifiers=cr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=cr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Re({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(dr,{condition:this,...e},this.id)}}const ur=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"greaterThanOrEquals":case"lessThanOrEquals":case"greaterThan":case"lessThan":{const f=e.modifiers[l],u=o!==void 0&&f.isConditionValueValid(o)?o:void 0;return n.jsx(qe,{value:u??null,onValueChange:h=>e.setConditionValue(h??void 0),size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:u!==void 0?u:"..."})})}case"inRange":case"notInRange":{const f=e.modifiers.inRange,u=o!==void 0&&f.isConditionValueValid(o)?o:void 0;return n.jsxs(n.Fragment,{children:[n.jsx(qe,{value:u?.from??null,onValueChange:h=>{e.setConditionValue({from:h,to:u?.to??null})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:u?.from??"..."})}),n.jsx(qe,{value:u?.to??null,onValueChange:h=>{e.setConditionValue({from:u?.from??null,to:h})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:u?.to??"..."})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},fr={equals:V({modifier:rn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),notEquals:V({modifier:on,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThan:V({modifier:an,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThanOrEquals:V({modifier:ln,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),greaterThan:V({modifier:sn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),greaterThanOrEquals:V({modifier:dn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),inRange:V({modifier:cn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"}),notInRange:V({modifier:un,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"})};class ei extends j{modifiers=fr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=fr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ei({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(ur,{condition:this,...e},this.id)}}const hr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Ae,{value:o??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:o||"..."})})})}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},pr={equals:V({modifier:Ce,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ve,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ii extends j{modifiers=pr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=pr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ii({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(hr,{condition:this,...e},this.id)}}const mr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=d.useMemo(()=>r.options.map(p=>typeof p=="string"?{value:p,label:p}:p),[r.options]),f=d.useMemo(()=>{const p={};for(const m of s)p[m.value]=m.label;return p},[s]),u=d.useCallback(p=>{p.length>0?e.setConditionValue(p):e.setConditionValue([])},[e]),h=()=>{switch(l){case"equals":case"notEquals":{const p=e.modifiers.equals,m=o!==void 0&&p.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:m!==void 0?m?f[m]:"empty":"..."})})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(mn,{required:!1,selectFieldOptions:r.options,value:m??void 0,onValueChange:e.setConditionValue})})]})}case"includes":case"excludes":{const p=e.modifiers.includes,m=o!==void 0&&p.isConditionValueValid(o)?o:void 0;return n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",children:m?`${m.length} options`:"..."})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(Ge,{selectFieldOptions:r.options,values:m??$e,onValuesChange:u})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),h(),n.jsx(U,{condition:e,onClick:t})]})},gr={equals:V({modifier:Ce,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),notEquals:V({modifier:Ve,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),includes:V({modifier:fn,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)}),excludes:V({modifier:hn,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)})};class ni extends j{modifiers=gr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=gr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ni({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(mr,{condition:this,...e},this.id)}}const Cr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Ae,{value:o??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:o||"..."})})})}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},Vr={equals:V({modifier:Ce,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ve,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ti extends j{modifiers=Vr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Vr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ti({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(Cr,{condition:this,...e},this.id)}}const yr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Ae,{value:o??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:o||"..."})})})}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},vr={equals:V({modifier:Ce,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ve,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ri extends j{modifiers=vr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=vr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ri({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(yr,{condition:this,...e},this.id)}}const zr=i=>{const{condition:e,onRemove:t}=i,r=e.getConditionValue(),o=e.getConditionModifier(),l=()=>{switch(o){case"equals":case"notEquals":case"before":case"after":{const s=typeof r=="string"?r:void 0;return n.jsx(xi,{value:s,onValueChange:f=>e.setConditionValue(f??void 0),size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:s?yi(s):"..."})})}case"in":case"notIn":{const s=r&&typeof r=="object"?r:void 0,f=u=>{e.setConditionValue(u.from||u.to?u:void 0)};return n.jsxs(n.Fragment,{children:[n.jsx(xi,{value:s?.from,onValueChange:u=>f({from:u,to:s?.to??null}),size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:s?.from?yi(s.from):"..."})}),n.jsx(xi,{value:s?.to,onValueChange:u=>f({from:s?.from??null,to:u}),size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:s?.to?yi(s.to):"..."})})]})}}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[e.field.type].icon}),n.jsx("span",{className:"truncate",children:e.field.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[o].modifier.label})}),l(),n.jsx(U,{condition:e,onClick:t})]})},Sr={equals:V({modifier:$t,isValueValid:i=>A(i),isConditionValueValid:i=>A(i),isSerializedValueValid:i=>A(i)}),notEquals:V({modifier:Dt,isValueValid:i=>A(i),isConditionValueValid:i=>A(i),isSerializedValueValid:i=>A(i)}),before:V({modifier:Pt,isValueValid:i=>A(i),isConditionValueValid:i=>A(i),isSerializedValueValid:i=>A(i)}),after:V({modifier:jt,isValueValid:i=>A(i),isConditionValueValid:i=>A(i),isSerializedValueValid:i=>A(i)}),in:V({modifier:Ut,isValueValid:i=>A(i),isConditionValueValid:i=>ke(i),isSerializedValueValid:i=>ke(i)}),notIn:V({modifier:kt,isValueValid:i=>A(i),isConditionValueValid:i=>ke(i),isSerializedValueValid:i=>ke(i)})};class oi extends j{modifiers=Sr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Sr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new oi({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(zr,{condition:this,...e},this.id)}}const wr=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(o){case void 0:return"...";case!0:return"true";case!1:return"false";case null:return"empty"}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsxs(a.Menu.Root,{children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:s()})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsxs(a.Menu.SelectGroup,{required:!0,value:o,onValueChange:e.setConditionValue,children:[n.jsx(Ie,{value:!0,children:"empty"}),n.jsx(Ie,{value:!1,children:"not empty"})]})})]}),n.jsx(U,{condition:e,onClick:t})]})},Fr={equals:V({modifier:_t,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Tt,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ai extends j{modifiers=Fr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Fr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ai({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(wr,{condition:this,...e},this.id)}}const br=i=>{const{condition:e,onRemove:t}=i,r=e.field,o=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Ae,{value:o??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:o||"..."})})})}};return n.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:T[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||$})]}),n.jsx(k,{condition:e,children:n.jsx(a.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(U,{condition:e,onClick:t})]})},Nr={equals:V({modifier:Ce,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ve,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class li extends j{modifiers=Nr;constructor(e){super(e)}transformValue(e){return e?.toString()??""}static deserialize(e,t){const{conditionValue:r,conditionModifier:o,...l}=e,s=Nr[o],f=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new li({field:t,conditionModifier:o,conditionValue:f,...l})}render(e){return n.jsx(br,{condition:this,...e},this.id)}}const ia={date:We,time:oi,number:Ye,boolean:Je,select:ni,string:ti,url:li,text:ri,upload:ai,qr:ii,"multi-string":Xe,"multi-select":Ke,radio:Re,"checkbox-list":He,"pass-fail":Qe,otp:Ze,rating:ei},Mr=(i,e)=>{if(i.type!==e.type)throw new Error(`field and condition type mismatch ${i.type} !== ${e.type}`);return ia[e.type].deserialize(e,i)},qi=(i,e)=>{const t=gn(i,e),r={};for(const o of i)r[o.identifier]=o;return t.map(o=>Mr(r[o.fieldId],o))},xr=(i,e)=>Cn(i,e).map(r=>r.serialize()),gn=(i,e)=>{const t=new Set(i.map(r=>r.identifier));return e.filter(r=>t.has(r.fieldId))},Cn=(i,e)=>{const t=new Set(i.map(r=>r.identifier));return e.filter(r=>t.has(r.field.identifier))},Oi=i=>Ee[i.type].deserialize(i);function na(i){return i.map(Oi)}function Ir(i){return i.type==="section"?W.deserialize(i):Oi(i)}const _i=i=>i.map(Ir),Vn=i=>Ee[i.type].fromConfig(i),qr=i=>i.map(e=>Vn(e)),Or=i=>i.type==="section"?W.fromConfig(i):Vn(i),_r=i=>i.map(Or),yn=i=>Ee[i.type].deserializeConfig(i),Tr=i=>i.map(yn),Er=i=>i.type==="section"?W.deserializeConfig(i):yn(i),Lr=i=>i.map(Er),vn=i=>Ee[i.type].serializeConfig(i),Br=i=>i.map(vn),Ar=i=>i.type==="section"?W.serializeConfig(i):vn(i),$r=i=>i.map(Ar);function ta(i){const e={};for(const t of i)e[t.identifier]=t;return e}function Dr(i,e,t=!0){const r=t?Ti(i,e):e,o={};for(const l of i){if(!(l.identifier in r))continue;const s=r[l.identifier];o[l.identifier]=l.serializeValue(s)}return o}function Pr(i,e,t=!0){const r=t?zn(i,e):e,o={};for(const l of i){if(!(l.identifier in r))continue;const s=r[l.identifier];o[l.identifier]=l.deserializeValue(s)}return o}function Ti(i,e){const t={};for(const r of i){if(!(r.identifier in e))continue;const o=e[r.identifier];r.isValue(o)&&(t[r.identifier]=r.cleanValue(o))}return t}function zn(i,e){const t={};for(const r of i){if(!(r.identifier in e))continue;const o=e[r.identifier];r.isSerializedValue(o)&&(t[r.identifier]=r.cleanSerializedValue(o))}return t}function jr(i,e){const t=Ti(i,e),r={},o={};for(const l of i){if(!(l.identifier in t))continue;const s=t[l.identifier];switch(l.type){case"upload":if(!l.isValue(s))break;o[l.identifier]=s,r[l.identifier]=[];break;case"pass-fail":if(!l.isValue(s))break;o[l.identifier]=s.files,r[l.identifier]={...s,files:[]};break;default:r[l.identifier]=e[l.identifier]}}return[r,o]}function Ur(i,e,t){const r={};for(const o of i){if(!(o.identifier in e))continue;const l=e[o.identifier];switch(o.type){case"upload":if(!o.isValue(l))break;r[o.identifier]=t[o.identifier]??[];break;case"pass-fail":if(!o.isValue(l))break;r[o.identifier]={...l,files:t[o.identifier]??[]};break;default:if(!o.isValue(l))break;r[o.identifier]=l}}return r}const kr=(i,e)=>{const t={};for(const r of i){const o=e[r.identifier];t[r.identifier]=o!==void 0?o:r.blankValue()}return t},Gr=(i,e,t)=>{const r={};for(const o of i){const l=e[o.identifier],s=t[o.identifier];o.areValuesEqual(l,s)||(r[o.identifier]=s)}return r},Jr=(i,e,t)=>{const r={};for(const o of i){const l=e[o.identifier],s=t[o.identifier];o.areValuesEqual(l,s)&&(r[o.identifier]=s)}return r},Sn=(i,e,t)=>i.every(r=>{const o=e[r.identifier],l=t[r.identifier];return r.areValuesEqual(o,l)}),wn=i=>{const e={};for(const t of i)e[t.identifier]=t.blankValue();return e},Hr=(i,e)=>Sn(i,e,wn(i)),ra=R.cva(["flex","flex-col"],{variants:{size:{xs:["gap-2"],sm:["gap-4"],md:["gap-6"],lg:["gap-8"],xl:["gap-10"]}}}),Ei=R.cva(["flex","flex-col"],{variants:{size:{xs:["gap-2"],sm:["gap-4"],md:["gap-6"],lg:["gap-8"],xl:["gap-10"]}}}),Wr=d.memo(i=>{const{fieldSection:e}=i,{label:t,description:r}=e,o=Y.useWatch(),{fieldSchema:l,size:s}=d.use(L),f=d.useMemo(()=>l.getFieldSections(),[l]),u=d.useMemo(()=>f.findIndex(({identifier:g})=>g===e.identifier),[f,e.identifier]),h=d.useMemo(()=>f.filter(g=>e.identifier in g.conditions),[f,e.identifier]),p=d.useMemo(()=>h.length===0?!0:h.some(g=>{const C=g.getConditions(e.identifier);return new Ii(C).applyConditions(o)}),[h,e,o]),m=pi(e.fields);return p?n.jsxs(n.Fragment,{children:[u!==0?n.jsx(a.Separator,{size:"full"}):null,n.jsxs("div",{className:"flex flex-col gap-4",children:[(t||r)&&n.jsx(n.Fragment,{children:n.jsxs("div",{className:"flex flex-col gap-1",children:[n.jsx(a.Heading,{size:s,children:t}),r&&n.jsx(a.Text,{accentColor:"base",size:s,children:r})]})}),n.jsx("div",{className:Ei({size:s}),children:m})]})]}):null});Wr.displayName="FieldSectionLayout";class W extends ze{type="section";label;description;conditions;fields=[];constructor(e){const{label:t=null,description:r=null,fields:o,conditions:l={},...s}=e;super(s),this.label=t,this.description=r,this.fields=this.initFields(o),this.conditions=this.initConditions(l)}serialize(){return{...super.serialize(),label:this.label,description:this.description,fields:this.fields.map(e=>e.serialize()),conditions:Object.fromEntries(Object.entries(this.conditions).map(([e,t])=>[e,t.map(r=>r.serialize())]))}}static deserialize=e=>{const t=e.fields.map(Oi),r={};for(const[o,l]of Object.entries(e.conditions))r[o]=qi(t,l);return new W({...e,fields:t,conditions:r})};static fromConfig=e=>{const t=qr(e.fields),r={};for(const[o,l]of Object.entries(e.conditions??{}))r[o]=qi(t,l);return new W({...e,fields:t,conditions:r})};static deserializeConfig(e){const{label:t,description:r,fields:o,conditions:l,...s}=e;return{...ze._deserializeConfig(s),label:t,description:r,fields:Tr(o),conditions:l}}static serializeConfig(e){const{label:t,description:r,fields:o,conditions:l,...s}=e;return{...ze._serializeConfig(s),label:t??null,description:r,fields:Br(o),conditions:l??{}}}config(){return{...super.config(),label:this.label,description:this.description,fields:this.fields.map(e=>e.config()),conditions:Object.fromEntries(Object.entries(this.conditions).map(([e,t])=>[e,t.map(r=>r.serialize())]))}}getOptions(){return{...super.getOptions(),label:this.label,description:this.description,fields:this.fields,conditions:this.conditions}}duplicate(e){return new W({...this.getOptions(),identifier:e,fields:this.fields.map(t=>t.duplicate(F.v4()))})}setOptions(e){"label"in e&&(this.label=e.label??null),"description"in e&&(this.description=e.description??null),"fields"in e&&e.fields!==void 0&&(this.fields=e.fields),"conditions"in e&&(this.conditions=e.conditions??{}),super.setOptions(e)}getErrors(e){const t={};for(const r of this.fields){const o=r.getError(e[r.identifier]);o&&(t[r.identifier]=o)}return t}fieldObserver=()=>{this.notify(this)};initFields=e=>{for(const t of e)t.observe(this.fieldObserver);return e};getFields(){return this.fields}addField(e,t){const r=[...this.fields];r.splice(t??this.fields.length,0,e),this.fields=this.initFields(r),this.notify(this)}moveField(e,t){const r=[...this.fields],[o]=r.splice(e,1);r.splice(t,0,o),this.fields=r,this.notify(this)}removeField(e){this.fields=this.initFields(this.fields.filter(({identifier:r})=>r!==e.identifier));const t={};for(const[r,o]of Object.entries(this.conditions))t[r]=o.filter(l=>l.field.identifier!==e.identifier);this.conditions=t,this.notify(this)}conditionObserver=()=>{this.notify(this)};initConditions=e=>{for(const t of Object.values(e).flat())t.observe(this.conditionObserver);return e};getConditions(e){return this.conditions[e]}addCondition(e,t){this.conditions=this.initConditions({...this.conditions,[e]:[...this.conditions[e]??[],t]}),this.notify(this)}addConditions(e,t){this.conditions=this.initConditions({...this.conditions,[e]:[...this.conditions[e]??[],...t]}),this.notify(this)}removeCondition(e,t){this.conditions=this.initConditions({...this.conditions,[e]:(this.conditions[e]??[]).filter(r=>r.id!==t.id)}),this.notify(this)}removeConditions(e,t){const r=new Set(t.map(o=>o.id));this.conditions=this.initConditions({...this.conditions,[e]:(this.conditions[e]??[]).filter(o=>!r.has(o.id))}),this.notify(this)}getConditionals(){return new Set(Object.keys(this.conditions))}addConditional(e){this.conditions=this.initConditions({...this.conditions,[e]:[]}),this.notify(this)}removeConditional(e){const t={...this.conditions};delete t[e],this.conditions=this.initConditions(t),this.notify(this)}render(){return n.jsx(Wr,{fieldSection:this})}}const ne=d.createContext({}),Li=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:o,onSelectFieldType:l,...s}=i,f=d.useMemo(()=>{const u={[q.Assessment]:[],[q.Capture]:[],[q.Numeric]:[],[q.Selection]:[],[q.Temporal]:[],[q.Text]:[],[q.Verification]:[]};for(const h of St){const{group:p}=T[h];u[p].push(h)}return u},[]);return n.jsxs(a.Menu.Root,{...s,children:[n.jsx(a.Menu.ClickTrigger,{children:e}),n.jsx(a.Menu.Content,{variant:t,size:r,accentColor:o,children:n.jsx(a.Menu.Scroll,{children:Object.entries(f).map(([u,h])=>{const{name:p}=wt[u];return h.length===0?null:n.jsxs(a.Menu.Group,{children:[n.jsx(a.Menu.Label,{children:p}),h.map(m=>n.jsx(Kr,{fieldType:m,onSelectFieldType:l},m))]},u)})})})]})});Li.displayName="CreateFieldDropdownMenu";const Kr=d.memo(i=>{const{fieldType:e,onSelectFieldType:t}=i,r=d.useCallback(()=>{t(e)},[e,t]),{icon:o,name:l}=T[e];return n.jsxs(a.Menu.Item,{onSelect:r,children:[n.jsx(a.LuIcon,{icon:o}),n.jsx(a.Text,{className:"truncate",children:l})]})});Kr.displayName="CreateFieldDropdownMenuItem";const Bi=i=>{switch(i){case"text":return new pe({label:"",required:!1,identifier:F.v4()});case"boolean":return new le({label:"",required:!1,identifier:F.v4()});case"number":return new J({label:"",required:!1,identifier:F.v4()});case"date":return new we({label:"",required:!1,identifier:F.v4()});case"time":return new Me({label:"",required:!1,identifier:F.v4()});case"string":return new he({label:"",required:!1,identifier:F.v4()});case"url":return new xe({label:"",required:!1,identifier:F.v4()});case"select":return new re({label:"",options:[],required:!1,identifier:F.v4()});case"multi-string":return new ae({label:"",required:!1,identifier:F.v4()});case"multi-select":return new ie({label:"",options:[],required:!1,identifier:F.v4()});case"upload":return new ge({label:"",required:!1,identifier:F.v4()});case"qr":return new Ne({label:"",required:!1,identifier:F.v4()});case"radio":return new ue({label:"",options:[],required:!1,identifier:F.v4()});case"checkbox-list":return new ee({label:"",options:[],required:!1,identifier:F.v4()});case"pass-fail":return new ce({label:"",required:!1,identifier:F.v4(),showNotesAndFilesOn:["fail"]});case"otp":return new se({label:"",validationType:"none",required:!1,identifier:F.v4(),length:6});case"rating":return new fe({label:"",required:!1,identifier:F.v4(),maxRating:5})}},si=i=>{switch(i.type){case"text":return new ri({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"boolean":return new Je({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"number":return new Ye({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"date":return new We({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"time":return new oi({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"string":return new ti({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"url":return new li({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"select":return new ni({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"multi-string":return new Xe({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"multi-select":return new Ke({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"upload":return new ai({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"qr":return new ii({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"radio":return new Re({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"checkbox-list":return new He({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"pass-fail":return new Qe({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"otp":return new Ze({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"rating":return new ei({id:F.v4(),conditionValue:void 0,conditionModifier:"equals",field:i})}},Xr=(i,e)=>{switch(i){case"checkbox-list":return ee.getFieldCreationSchema(e);case"multi-select":return ie.getFieldCreationSchema(e);case"number":return J.getFieldCreationSchema(e);case"radio":return ue.getFieldCreationSchema(e);case"select":return re.getFieldCreationSchema(e);case"string":return he.getFieldCreationSchema(e);case"text":return pe.getFieldCreationSchema(e);case"upload":return ge.getFieldCreationSchema(e);case"pass-fail":return ce.getFieldCreationSchema(e);case"otp":return se.getFieldCreationSchema(e);case"rating":return fe.getFieldCreationSchema(e);default:return}},Yr=d.memo(i=>{const{popoverInputs:e,...t}=i;return n.jsxs(a.Popover.Root,{children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:n.jsxs(a.Button,{variant:"soft",type:"button",size:"sm",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:ko}),"Settings"]})}),n.jsx(a.Popover.Content,{size:"sm",...t,children:n.jsx("div",{className:R.cx("flex w-full max-w-[350px] flex-col",Ei({size:"sm"})),children:e})})]})});Yr.displayName="FieldSettingsPopover";const Zr=d.memo(i=>{const{parentPath:e,fieldIndex:t,field:r}=i,o=hi(),{disableRequiredFields:l}=d.use(ne),[s,f]=d.useState(void 0);In.useActiveEffect(y=>{const I=r.image;if(I){if(!(I instanceof Promise)){f(I);return}f(void 0),I.then(E=>{y()&&f(E)})}},[r.image]);const u=d.useCallback(()=>{r.setOptions({image:void 0})},[r]),[h,p]=d.useMemo(()=>{const y=[],I=[],E=Xr(r.type,`${e}.${t}`)??[];for(const G of E)G.showDirectly?y.push(G.field):I.push(G.field);return[y,I]},[r,e,t]),m=pi(h),g=pi(p),C=p.length>0,z=d.useCallback(()=>{s&&o(()=>({file:s}))},[o,s]),S=d.useCallback(y=>{r.setOptions({required:!!y})},[r]),w=d.useCallback(y=>{r.setOptions({label:y.target.value})},[r]),v=d.useCallback(y=>{r.setOptions({description:y.target.value})},[r]),{icon:x,name:O}=T[r.type];return n.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[n.jsxs("div",{className:"flex w-full justify-between gap-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsxs(a.Badge,{accentColor:"base",variant:"soft",size:"sm",children:[n.jsx(a.LuIcon,{icon:x}),O]}),!l&&n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(a.Checkbox.Root,{checked:r.required,onCheckedChange:S,size:"sm",children:n.jsx(a.Checkbox.Indicator,{children:n.jsx(a.LuIcon,{icon:H})})}),n.jsx(a.Text,{size:"sm",accentColor:"base",children:"Required"})]})]}),C&&n.jsx(Yr,{popoverInputs:g,align:"end"})]}),s&&n.jsxs("div",{className:"group relative inline-block w-full min-w-[300px]",children:[n.jsx(Oe,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:s,onClick:z}),n.jsx(a.IconButton,{type:"button",className:"group-hover:not-disabled:flex absolute right-2 top-2 hidden",variant:"solid",accentColor:"base","aria-label":"delete",onClick:u,size:"sm",children:n.jsx(a.LuIcon,{icon:ve})})]}),n.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[n.jsx(a.Input.Root,{variant:"outline",size:"md",children:n.jsx(a.Input.Field,{placeholder:"Enter your question",value:r.label??"",onChange:w,maxLength:200})}),n.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a field description (optional)",value:r.description??"",onChange:v,maxLength:1e3,resize:"vertical",size:"md"})]}),h.length>0&&n.jsx("div",{className:R.cx("w-full",Ei({size:"sm"})),children:m})]})});Zr.displayName="FieldBuilder";const Fn=d.memo(i=>{const{field:e,fieldSection:t,fieldIndex:r,sectionIndex:o}=i,l=d.useRef(null),s=`fields.${o}.fields`,f=d.useCallback(S=>{t.addField(Bi(S),r+1)},[r,t]),u=d.useCallback(()=>{t.addField(e.duplicate(F.v4()))},[e,t]),h=d.useCallback(S=>{const w=S==="up"?o-1:o+1;t.moveField(r,w)},[t,r,o]),p=d.useCallback(S=>{const{files:w}=S.target;if(!w||w.length!==1)return;const v=w.item(0);v&&e.setOptions({image:v})},[e]),m=d.useCallback(()=>{h("up")},[h]),g=d.useCallback(()=>{h("down")},[h]),C=d.useCallback(()=>{l.current?.click()},[]),z=d.useCallback(()=>{t.removeField(e)},[e,t]);return n.jsxs(a.Card,{className:"flex w-full items-center justify-between gap-4",size:"sm",children:[n.jsx(Zr,{fieldIndex:r,field:e,parentPath:s}),n.jsxs(a.ButtonGroup,{className:"flex flex-col gap-0.5",variant:"ghost",accentColor:"base",size:"sm",children:[n.jsx(Li,{onSelectFieldType:f,size:"sm",children:n.jsx(a.IconButton,{type:"button",children:n.jsx(a.LuIcon,{icon:Z})})}),n.jsx(a.IconButton,{type:"button",onClick:m,children:n.jsx(a.LuIcon,{icon:kn})}),n.jsx(a.IconButton,{type:"button",onClick:g,children:n.jsx(a.LuIcon,{icon:Un})}),n.jsx(a.IconButton,{type:"button",onClick:u,children:n.jsx(a.LuIcon,{icon:Di})}),n.jsx(a.IconButton,{type:"button",onClick:C,children:n.jsx(a.LuIcon,{icon:Pn})}),n.jsx(a.IconButton,{type:"button",onClick:z,children:n.jsx(a.LuIcon,{icon:ve})})]}),n.jsx("input",{className:"hidden",ref:l,type:"file",accept:"image/*",onChange:p})]})});Fn.displayName="FieldBuilderWithActions";const bn=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:o,fields:l,onSelectField:s,onSelectAllFields:f,...u}=i,h=d.useCallback(()=>{f?.(l)},[f,l]);return n.jsxs(a.Menu.Root,{...u,children:[n.jsx(a.Menu.ClickTrigger,{children:e}),n.jsx(a.Menu.Content,{variant:t,size:r,accentColor:o,children:n.jsxs(a.Menu.Scroll,{children:[f?n.jsx(a.Menu.Item,{onSelect:h,children:"Select all"}):null,l.map(p=>n.jsx(Qr,{field:p,onSelectField:s},p.identifier))]})})]})});bn.displayName="FieldDropdownMenu";const Qr=d.memo(i=>{const{field:e,onSelectField:t}=i,r=d.useCallback(()=>{t(e)},[e,t]);return n.jsxs(a.Menu.Item,{onSelect:r,children:[n.jsx(a.LuIcon,{icon:T[e.type].icon}),e.label||$]})});Qr.displayName="FieldDropdownMenuItem";const Rr=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:o,fieldSections:l,onSelectFieldSection:s,...f}=i;return n.jsxs(a.Menu.Root,{...f,children:[n.jsx(a.Menu.ClickTrigger,{children:e}),n.jsx(a.Menu.Content,{variant:t,size:r,accentColor:o,children:l.map(u=>n.jsx(eo,{fieldSection:u,onSelectFieldSection:s},u.identifier))})]})});Rr.displayName="FieldSectionDropdownMenu";const eo=d.memo(i=>{const{fieldSection:e,onSelectFieldSection:t}=i,r=d.useCallback(()=>{t(e)},[e,t]);return n.jsxs(a.Menu.Item,{onSelect:r,children:[n.jsx(a.LuIcon,{icon:jn}),e.label||zi]})});eo.displayName="FieldSectionDropdownMenuItem";const io=d.memo(i=>{const{id:e,sourceX:t,sourceY:r,targetX:o,targetY:l,style:s,markerEnd:f,data:u}=i,{targetSection:h,sourceSection:p,layoutDirection:m}=u,g=d.useMemo(()=>p.getConditions(h.identifier),[p,h.identifier]),C=d.useCallback(()=>{p.removeConditional(h.identifier)},[p,h.identifier]),z=d.useCallback(y=>{p.addCondition(h.identifier,si(y))},[p,h.identifier]),S=d.useCallback(y=>{p.addConditions(h.identifier,y.map(si))},[p,h.identifier]),w=d.useCallback(y=>{p.removeCondition(h.identifier,y)},[p,h.identifier]),[v,x,O]=_.getBezierPath({sourceX:t,sourceY:r,sourcePosition:m==="LR"?_.Position.Right:_.Position.Bottom,targetX:o,targetY:l,targetPosition:m==="LR"?_.Position.Left:_.Position.Top});return n.jsxs(n.Fragment,{children:[n.jsx(_.BaseEdge,{id:e,path:v,style:s,markerEnd:f,labelX:x,labelY:O}),n.jsx(_.EdgeLabelRenderer,{children:n.jsxs(a.Card,{size:"xs",variant:"surface",className:"nodrag nopan bg-(--base-2)! pointer-events-auto absolute inline-flex flex-col gap-2",onMouseDown:a.stopPropagation,onClick:a.stopPropagation,"data-floating-content":"",style:{transform:`translate(-50%, -50%) translate(${x}px, ${O}px)`},children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(a.Text,{size:"xs",className:"max-w-[280px] truncate",children:p.label||zi}),n.jsxs("div",{className:"ml-auto flex items-center gap-1",children:[n.jsx(bn,{size:"sm",fields:p.fields,onSelectField:z,onSelectAllFields:S,children:n.jsx(a.IconButton,{"aria-label":"Add condition",type:"button",variant:"surface",size:"xs",accentColor:"base",children:n.jsx(a.LuIcon,{icon:Z})})}),n.jsxs(a.Tooltip.Root,{children:[n.jsx(a.Tooltip.Trigger,{asChild:!0,children:n.jsx(a.IconButton,{"aria-label":"Remove conditional logic",type:"button",variant:"surface",size:"xs",accentColor:"base",color:"danger",onClick:C,children:n.jsx(a.LuIcon,{icon:ve})})}),n.jsx(a.Tooltip.Content,{size:"sm",children:"Remove conditional logic"})]})]})]}),g.length>0&&n.jsx("div",{className:"flex h-max w-full flex-col flex-wrap gap-1",children:g.map(y=>n.jsx(d.Fragment,{children:y.render({onRemove:w})},y.id))})]})})]})});io.displayName="FieldSectionConditionEdgeComponent";const no=d.memo(i=>{const{data:e,selected:t}=i,{fieldSection:r,index:o,layoutDirection:l}=e,{fieldSchema:s}=d.use(ne),f=d.useCallback(()=>{s.removeFieldSection(r)},[s,r]),u=d.useCallback(C=>{r.addField(Bi(C))},[r]),h=d.useCallback(()=>{const C=new W({identifier:F.v4(),fields:[]});s.addFieldSection(C),r.addConditional(C.identifier)},[s,r]),p=d.useCallback(()=>{s.addFieldSection(r.duplicate(F.v4()))},[s,r]),m=d.useCallback(C=>{r.setOptions({label:C.target.value})},[r]),g=d.useCallback(C=>{r.setOptions({description:C.target.value})},[r]);return n.jsxs(a.Card,{variant:"surface",className:"bg-(--base-2) relative cursor-pointer",size:"sm","data-selected":t?"true":void 0,children:[n.jsxs("div",{className:"flex flex-col gap-3",children:[n.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[n.jsx(a.Input.Root,{variant:"outline",size:"md",accentColor:"base",children:n.jsx(a.Input.Field,{placeholder:"Enter a section label (optional)",value:r.label??"",onChange:m,maxLength:200})}),n.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a section description (optional)",value:r.description??"",onChange:g,maxLength:1e3,resize:"vertical",size:"md"})]}),n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx(a.Text,{weight:"bold",children:"Fields"}),n.jsx(Li,{onSelectFieldType:u,size:"sm",children:n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",accentColor:"base",children:[n.jsx(a.LuIcon,{icon:Z})," Add field"]})})]}),n.jsx("div",{className:"flex flex-col gap-3",children:r.fields.map((C,z)=>n.jsx(Fn,{field:C,fieldSection:r,fieldIndex:z,sectionIndex:o},C.identifier))})]}),n.jsx(_.NodeToolbar,{isVisible:!0,position:_.Position.Right,align:"start",offset:8,onMouseDown:a.stopPropagation,children:n.jsx(a.Card,{variant:"surface",className:"bg-(--base-2) flex flex-col items-center gap-1 p-1",size:"xs",onClick:a.stopPropagation,children:n.jsxs(a.ButtonGroup,{className:"flex flex-col gap-2",variant:"surface",size:"xs",accentColor:"base",children:[n.jsx(a.IconButton,{type:"button",onClick:h,children:n.jsx(a.LuIcon,{icon:Eo})}),n.jsx(a.IconButton,{type:"button",onClick:p,children:n.jsx(a.LuIcon,{icon:Di})}),n.jsx(a.IconButton,{type:"button",onClick:f,children:n.jsx(a.LuIcon,{icon:ve})})]})})}),n.jsx(_.Handle,{type:"target",className:"size-4! bg-(--base-3)! border-(--base-7)!",position:l==="LR"?_.Position.Left:_.Position.Top}),n.jsx(_.Handle,{type:"source",className:"size-4! bg-(--base-3)! border-(--base-7)!",position:l==="LR"?_.Position.Right:_.Position.Bottom})]})});no.displayName="CustomNode";const oa={fieldSection:no},aa={fieldSectionCondition:io},la=(i,e,t)=>{const r=new qn.graphlib.Graph().setDefaultEdgeLabel(()=>({}));return r.setGraph({rankdir:t,nodesep:200,edgesep:500,ranksep:500}),e.forEach(o=>r.setEdge(o.source,o.target,{width:500,height:200,labelpos:"c"})),i.forEach(o=>r.setNode(o.id,{...o,width:o.measured?.width??0,height:o.measured?.height??0})),qn.layout(r),[i.map(o=>{const l=r.node(o.id),s=l.x-(o.measured?.width??0)/2,f=l.y-(o.measured?.height??0)/2;return{...o,position:{x:s,y:f}}}),e]},sa={hideAttribution:!0},to=d.memo(()=>{const{errors:i}=Y.useFormState(),{handleSubmit:e}=Y.useFormContext(),{onSave:t,onCancel:r}=d.use(ne),{fieldSchema:o}=d.use(ne),l=d.useRef(null),[s,f]=d.useState(),[u,h]=d.useState("TB");d.useLayoutEffect(()=>{l.current&&l.current.classList.remove("light")},[]);const p=d.useMemo(()=>o.fieldSections.map((D,K)=>({id:D.identifier,position:{x:0,y:0},data:{index:K,fieldSection:D,layoutDirection:u},draggable:!0,type:"fieldSection"})),[o.fieldSections,u]),m=d.useMemo(()=>{const D=[],K={};for(const X of o.fieldSections)K[X.identifier]=X;for(const X of o.fieldSections){const di=X.conditions;for(const[ci,pa]of Object.entries(di))D.push({id:`${X.identifier}-${ci}`,source:X.identifier,target:ci,data:{targetSection:K[ci],sourceSection:X,layoutDirection:u},animated:pa.length>0,markerEnd:_.MarkerType.Arrow,style:{strokeWidth:2,stroke:"var(--base-a8)"},type:"fieldSectionCondition"})}return D},[o.fieldSections,u]),[g,C,z]=_.useNodesState(p),[S,w,v]=_.useEdgesState(m);d.useEffect(()=>{C(p)},[p,C]),d.useEffect(()=>{w(m)},[m,w]);const[x,O]=d.useMemo(()=>la(g,S,u),[S,u,g]),y=d.useCallback(()=>{o.addFieldSection(new W({identifier:F.v4(),fields:[]}))},[o]),I=d.useCallback(D=>{const{source:K,target:X}=D,di=o.fieldSections.find(({identifier:ci})=>ci===K);di.setOptions({conditions:{...di.conditions,[X]:[]}})},[o.fieldSections]),E=d.useCallback(D=>{const K=o.getSectionDependencyGraph();return!Mn.willCreateCycle(K,D.source,D.target)},[o]),G=d.useCallback(()=>{s?.zoomOut()},[s]),te=d.useCallback(()=>{s?.zoomIn()},[s]),De=d.useCallback(()=>{s?.fitView()},[s]);return n.jsxs("form",{className:"flex size-full flex-col gap-4",onSubmit:e(t),children:[n.jsxs(a.Card,{className:"relative size-full",variant:"outline",children:[n.jsx(_.ReactFlow,{ref:l,onInit:f,nodes:x,onNodesChange:z,edges:O,onEdgesChange:v,nodeTypes:oa,edgeTypes:aa,onConnect:I,attributionPosition:"bottom-left",fitView:!0,minZoom:0,isValidConnection:E,proOptions:sa}),n.jsx(_.Panel,{position:"top-left",children:n.jsx(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:n.jsxs(a.Button,{type:"button",variant:"surface",onClick:y,children:[n.jsx(a.LuIcon,{icon:Z})," Add section"]})})}),n.jsxs(_.Panel,{position:"top-right",className:"flex flex-col items-center gap-2",children:[n.jsxs(a.ToggleGroup.Root,{className:"flex flex-col",type:"single",accentColor:"base",size:"sm",value:u,onValueChange:h,children:[n.jsx(a.ToggleGroup.IconItem,{className:"rounded-b-none",value:"LR",type:"button",children:n.jsx(a.LuIcon,{icon:Fo})}),n.jsx(a.ToggleGroup.IconItem,{className:"rounded-t-none",value:"TB",type:"button",children:n.jsx(a.LuIcon,{icon:wo})})]}),n.jsx(a.Separator,{size:"sm"}),n.jsxs(a.ButtonGroup,{className:"flex flex-col",size:"sm",accentColor:"base",variant:"soft",children:[n.jsx(a.IconButton,{className:"rounded-b-none",onClick:te,type:"button",children:n.jsx(a.LuIcon,{icon:Z})}),n.jsx(a.IconButton,{onClick:G,radius:"none",type:"button",children:n.jsx(a.LuIcon,{icon:fi})}),n.jsx(a.IconButton,{className:"rounded-t-none",onClick:De,type:"button",children:n.jsx(a.LuIcon,{icon:Jo})})]})]}),n.jsx(_.Panel,{position:"bottom-right",children:n.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:[r&&n.jsx(a.Button,{type:"button",variant:"soft",accentColor:"base",onClick:r,children:"Cancel"}),n.jsx(a.Button,{type:"submit",variant:"surface",children:"Save"})]})})]}),!!i.fields?.message&&n.jsx(a.Text,{size:"xs",accentColor:"danger",children:i.fields.message})]})});to.displayName="FormBuilderFlowBuilder";const da=(i,e,t={})=>{const{conditions:r=!1}=t,o=i.get(e.identifier);if(!o)throw new Error(`Attempting to reseed serialized section with identifier ${e.identifier} which is not present in the reseeded identifier map`);const l=new Map,s=e.fields.map(u=>{const h=F.v4();return l.set(u.identifier,h),{...u,identifier:h}}),f={};if(r)for(const[u,h]of Object.entries(e.conditions??{})){const p=i.get(u);if(!p)continue;const m=h.map(g=>{const C=l.get(g.fieldId);if(!C)throw new Error(`Serialized condition referencing undefined field with identifier: ${g.fieldId}`);return{...g,fieldId:C}});f[p]=m}return{...e,identifier:o,conditions:f,fields:s}},ca=(i,e={})=>{const t=new Map(i.map(r=>[r.identifier,F.v4()]));return i.map(r=>da(t,r,e))},Nn=(i,e)=>{const t={},r=i.filter(o=>o instanceof W);for(const o of i)if(o instanceof W){const l=r.filter(f=>o.identifier in f.conditions);if(l.length>0&&!l.some(f=>{const u=f.getConditions(o.identifier);return new Ii(u).applyConditions(e)}))continue;const s=o.getErrors(e);Object.assign(t,s)}else{if(!(o instanceof N))throw new Error("Invalid field type");const l=o.identifier,s=o.getError(_n(e,l));s&&go(t,l,s)}return t},ua=async i=>{const e={};for(const t of i){const{fields:r}=t;for(const o of r)if(o.image)if(o.image instanceof Promise)try{e[o.identifier]=await o.image}catch(l){console.error("Failed to get image from promise",l)}else e[o.identifier]=o.image}return e};async function fa(i){const e={};for(const[t,r]of Object.entries(i))e[t]=await Promise.all(r);return e}class ye extends je{fieldSections;constructor(e){super(),this.fieldSections=this.initFields(e)}serialize(){return this.fieldSections.map(e=>e.serialize())}config(){return this.fieldSections.map(e=>e.config())}static deserialize(e){return new ye(_i(e))}static fromConfig(e){return new ye(_r(e))}static serializeConfig(e){return $r(e)}static deserializeConfig(e){return Lr(e)}static reseedFieldSections(e,t){return ca(e,t)}fieldObserver=()=>{this.notify(this)};initFields=e=>{for(const t of e)t.observe(this.fieldObserver);return e};getFields(){return this.fieldSections.flatMap(e=>e.getFields())}getFieldSections(){return this.fieldSections}addFieldSection(e,t){const r=[...this.fieldSections];r.splice(t??this.fieldSections.length,0,e),this.fieldSections=this.initFields(r),this.notify(this)}removeFieldSection(e){const t=this.fieldSections.filter(r=>r.identifier!==e.identifier);for(const r of t)r.removeConditional(r.identifier);this.fieldSections=this.initFields(t),this.notify(this)}moveFieldSection(e,t){const r=[...this.fieldSections],[o]=r.splice(e,1);r.splice(t,0,o),this.fieldSections=this.initFields(r),this.notify(this)}getSectionDependencyGraph(){const e=new po.DirectedGraph({type:"directed"});for(const t of this.fieldSections)for(const r of Object.keys(t.conditions))e.mergeEdge(t.identifier,r);return e}getDependenciesOfSection(e){const t=this.getSectionDependencyGraph(),r=new Map(this.fieldSections.map(l=>[l.identifier,l])),o=[];return mo.bfsFromNode(t,e,(l,s,f)=>{o.push(r.get(l))},{mode:"in"}),o}cleanValues(e){return Ti(this.getFields(),e)}cleanSerializedValues(e){return zn(this.getFields(),e)}deserializeValues(e,t){return Pr(this.getFields(),e,t)}serializeValues(e,t){return Dr(this.getFields(),e,t)}initializeValues(e){return kr(this.getFields(),e)}validateValues(e){return Nn(this.getFieldSections(),e)}areValuesValid(e){return Object.keys(this.validateValues(e)).length===0}deserializeConditions(e){return qi(this.getFields(),e)}cleanConditions(e){return Cn(this.getFields(),e)}serializeConditions(e){return xr(this.getFields(),e)}cleanSerializedConditions(e){return gn(this.getFields(),e)}changedFieldValues(e,t){return Gr(this.getFields(),e,t)}unchangedFieldValues(e,t){return Jr(this.getFields(),e,t)}areValuesEqual(e,t){return Sn(this.getFields(),e,t)}areValuesBlank(e){return Hr(this.getFields(),e)}blankValues(){return wn(this.getFields())}extractFilesAndPromisesFromFieldValues(e){return jr(this.getFields(),e)}insertFilesAndPromisesToFieldValues(e,t){return Ur(this.getFields(),e,t)}}const ro=d.memo(i=>{const{sourceFieldSection:e,targetFieldSection:t}=i,r=d.useMemo(()=>e.getConditions(t.identifier),[e,t.identifier]),o=d.useCallback(()=>{e.removeConditional(t.identifier)},[e,t.identifier]),l=d.useCallback(u=>{e.addCondition(t.identifier,si(u))},[e,t.identifier]),s=d.useCallback(u=>{e.addConditions(t.identifier,u.map(si))},[e,t.identifier]),f=d.useCallback(u=>{e.removeCondition(t.identifier,u)},[e,t.identifier]);return n.jsxs(a.Card,{className:"flex flex-col gap-2",size:"sm",children:[n.jsxs(a.ButtonGroup,{className:"flex justify-between gap-2",size:"sm",accentColor:"base",variant:"soft",children:[n.jsxs(a.Badge,{accentColor:"base",variant:"soft",size:"sm",children:[n.jsx(a.LuIcon,{icon:jn}),e.label??zi]}),n.jsx(a.IconButton,{type:"button",onClick:o,variant:"ghost",children:n.jsx(a.LuIcon,{icon:ve})})]}),n.jsxs("div",{className:"flex h-max w-full flex-wrap gap-2",children:[r.map(u=>u.render({onRemove:f})),n.jsx(bn,{fields:e.fields,onSelectField:l,onSelectAllFields:s,align:"start",size:"sm",children:n.jsx(a.IconButton,{type:"button",size:"sm",variant:"soft",accentColor:"base",children:n.jsx(a.LuIcon,{icon:Z})})})]})]})});ro.displayName="FieldSectionConditionalItem";const oo=d.memo(i=>{const{fieldSection:e}=i,{fieldSchema:t}=d.use(ne),r=d.useMemo(()=>t.fieldSections.filter(u=>e.identifier in u.conditions),[t.fieldSections,e.identifier]),o=d.useCallback(u=>{u.addConditional(e.identifier)},[e.identifier]),l=d.useCallback(u=>{e.setOptions({label:u.target.value})},[e]),s=d.useCallback(u=>{e.setOptions({description:u.target.value})},[e]),f=d.useMemo(()=>{const u=t.getSectionDependencyGraph();return t.fieldSections.filter(h=>!Mn.willCreateCycle(u,h.identifier,e.identifier))},[e.identifier,t]);return n.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[n.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[n.jsx(a.Input.Root,{variant:"outline",size:"md",children:n.jsx(a.Input.Field,{placeholder:"Enter a section label (optional)",value:e.label??"",onChange:l,maxLength:200})}),n.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a section description (optional)",value:e.description??"",onChange:s,maxLength:1e3,resize:"vertical",size:"md"})]}),n.jsx(a.Separator,{size:"full"}),n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsxs("div",{className:"flex justify-between gap-2",children:[n.jsx(a.Text,{accentColor:"base",children:"Conditions"}),n.jsx(Rr,{fieldSections:f,onSelectFieldSection:o,children:n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",className:"w-max",children:[n.jsx(a.LuIcon,{icon:Z}),"Add condition"]})})]}),r.map(u=>n.jsx(ro,{sourceFieldSection:u,targetFieldSection:e},u.identifier))]}),n.jsx(a.Separator,{size:"full"})]})});oo.displayName="FieldSectionBuilder";const ao=d.memo(i=>{const{fieldSection:e,sectionIndex:t}=i,{fieldSchema:r}=d.use(ne),o=a.useAlertDialog(),l=d.useCallback(()=>{r.removeFieldSection(e)},[r,e]),s=d.useCallback(S=>{const w=S==="up"?t-1:t+1;r.moveFieldSection(t,w)},[r,t]),f=d.useCallback(()=>{r.addFieldSection(e.duplicate(F.v4()))},[r,e]),u=d.useCallback(S=>{e.addField(Bi(S))},[e]),h=d.useCallback(()=>{s("up")},[s]),p=d.useCallback(()=>{s("down")},[s]),m=d.useCallback(async()=>{const S=[e.serialize()],w=ye.reseedFieldSections(S,{conditions:!1}),v=JSON.stringify(w);await navigator.clipboard.writeText(v),a.toast.success({title:"Section copied"})},[e]),g=d.useCallback(async()=>{const w=r.getDependenciesOfSection(e.identifier).map(O=>O.serialize()),v=ye.reseedFieldSections(w,{conditions:!0}),x=JSON.stringify(v);await navigator.clipboard.writeText(x),a.toast.success({title:"Section copied"})},[e,r]),C=d.useCallback(async()=>{const S=r.getDependenciesOfSection(e.identifier),w=S.length>1,v=S.length-1;w?o({title:"Copy section dependencies?",description:`This section has ${v} dependent section${v>1?"s":""} that will also be copied to maintain the conditions. Do you want to include these dependencies?`,action:"Include",onAction:g,cancel:"Dont include",onCancel:m}):m()},[e,r,o,g,m]),z=d.useCallback(async()=>{let S="";try{S=await navigator.clipboard.readText()}catch{a.toast.error({title:"Paste failed",description:"Unable to read clipboard contents."});return}const w=S.trim();if(!w){a.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}try{const v=JSON.parse(w),x=On.JSONFieldSectionSchema.array().parse(v),O=_i(x);if(O.length===0){a.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}for(const[y,I]of O.entries())r.addFieldSection(I,t+1+y);a.toast.success({title:"Sections pasted",description:"Serialized JSON imported successfully."})}catch(v){console.error(v),a.toast.error({title:"Invalid JSON",description:"Check the JSON and try again."})}},[r,t]);return n.jsxs(a.Card,{variant:"outline",className:"flex w-full items-center justify-between gap-4",size:"sm",children:[n.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[n.jsx(oo,{fieldSection:e}),n.jsxs("div",{className:"flex w-full flex-col gap-2",children:[n.jsxs("div",{className:"flex justify-between gap-2",children:[n.jsx(a.Text,{accentColor:"base",size:"md",children:"Fields"}),n.jsx(Li,{onSelectFieldType:u,size:"sm",children:n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",children:[n.jsx(a.LuIcon,{icon:Z})," Add field"]})})]}),e.fields.map((S,w)=>n.jsx(Fn,{field:S,fieldSection:e,fieldIndex:w,sectionIndex:t},S.identifier))]})]}),n.jsxs(a.ButtonGroup,{className:"flex flex-col gap-0.5",variant:"ghost",accentColor:"base",size:"sm",children:[n.jsx(a.IconButton,{type:"button",onClick:h,children:n.jsx(a.LuIcon,{icon:kn})}),n.jsx(a.IconButton,{type:"button",onClick:p,children:n.jsx(a.LuIcon,{icon:Un})}),n.jsxs(a.Menu.Root,{align:"end",children:[n.jsx(a.Menu.ClickTrigger,{children:n.jsx(a.IconButton,{type:"button",children:n.jsx(a.LuIcon,{icon:Dn})})}),n.jsxs(a.Menu.Content,{size:"sm",children:[n.jsxs(a.Menu.Item,{onSelect:f,children:[n.jsx(a.LuIcon,{icon:Di}),"Duplicate section"]}),n.jsxs(a.Menu.Item,{onSelect:C,children:[n.jsx(a.LuIcon,{icon:Bn}),"Copy JSON"]}),n.jsxs(a.Menu.Item,{onSelect:z,children:[n.jsx(a.LuIcon,{icon:An}),"Paste JSON"]}),n.jsxs(a.Menu.Item,{onSelect:l,children:[n.jsx(a.LuIcon,{icon:ve}),"Delete section"]})]})]})]})]})});ao.displayName="FieldSectionWithActions";const lo=d.memo(()=>{const{handleSubmit:i}=Y.useFormContext(),{errors:e}=Y.useFormState(),{onSave:t,onCancel:r}=d.use(ne),{fieldSchema:o}=d.use(ne),l=d.useCallback(()=>{o.addFieldSection(new W({identifier:F.v4(),fields:[]}))},[o]),s=d.useCallback(async()=>{try{const u=o.serialize(),h=ye.reseedFieldSections(u,{conditions:!0}),p=JSON.stringify(h);await navigator.clipboard.writeText(p),a.toast.success({title:"Sections copied",description:"All sections JSON copied to clipboard."})}catch{a.toast.error({title:"Copy failed",description:"Unable to copy the sections JSON."})}},[o]),f=d.useCallback(async()=>{let u="";try{u=await navigator.clipboard.readText()}catch{a.toast.error({title:"Paste failed",description:"Unable to read clipboard contents."});return}const h=u.trim();if(!h){a.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}try{const p=JSON.parse(h),m=On.JSONFieldSectionSchema.array().parse(p),g=_i(m);if(g.length===0){a.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}for(const[C,z]of g.entries())o.addFieldSection(z,o.fieldSections.length+C);a.toast.success({title:"Sections pasted",description:"Serialized JSON imported successfully."})}catch(p){console.error(p),a.toast.error({title:"Invalid JSON",description:"Check the JSON and try again."})}},[o]);return n.jsxs("form",{className:"flex flex-col gap-4",onSubmit:i(t),children:[n.jsxs("div",{className:"flex flex-col gap-4",children:[n.jsxs("div",{className:"flex items-center justify-end gap-2",children:[n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",onClick:s,children:[n.jsx(a.LuIcon,{icon:Bn})," Copy JSON"]}),n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",onClick:f,children:[n.jsx(a.LuIcon,{icon:An})," Paste JSON"]})]}),o.fieldSections.map((u,h)=>n.jsx(ao,{fieldSection:u,sectionIndex:h},u.identifier)),n.jsxs(a.Button,{className:"mb-4",type:"button",variant:"soft",accentColor:"base",size:"sm",onClick:l,children:[n.jsx(a.LuIcon,{icon:Z})," Add section"]})]}),!!e.fields?.message&&n.jsx(a.Text,{size:"xs",accentColor:"danger",children:e.fields.message}),n.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:[r&&n.jsx(a.Button,{type:"button",variant:"soft",accentColor:"base",onClick:r,children:"Cancel"}),n.jsx(a.Button,{type:"submit",variant:"surface",children:"Save"})]})]})});lo.displayName="FormBuilderListBuilder";function so(i){const e=t=>{const r={};for(const[o,l]of Object.entries(t))typeof l=="string"?r[o]={type:"validate",message:l}:r[o]=e(l);return r};return e(i)}const co=d.memo(d.forwardRef((i,e)=>{const{disabled:t=!1,fieldSchema:r,values:o={},onValuesChange:l,onSubmit:s,submitText:f="Submit",hideSubmit:u=!1,cancelText:h,onCancel:p,hideCancel:m=!1,className:g,submitButtonProps:C,cancelButtonProps:z,cancelIcon:S,submitIcon:w,size:v="md"}=i,x=d.useMemo(()=>r.initializeValues(o),[r,o]),O=d.useCallback(D=>{s?.(D)},[s]),y=Y.useForm({values:x,mode:"onBlur",criteriaMode:"all",disabled:t,resolver:D=>{const K=r.validateValues(D),X=so(K);return Object.keys(K).length>0?{values:{},errors:X}:{values:D,errors:{}}}}),I=d.useCallback(D=>{l?.(D)},[l]);d.useEffect(()=>{const{unsubscribe:D}=y.watch((K,{type:X})=>{X==="change"&&I(K)});return()=>{D()}},[y,I]);const E=Wn(r.getFieldSections()),G=d.useMemo(()=>({fieldSchema:r,size:v}),[r,v]),te=!m&&!!p,De=!u;return n.jsx(Y.FormProvider,{...y,children:n.jsx(L,{value:G,children:n.jsxs("form",{ref:e,className:R.cx(g,"flex flex-col gap-4"),onSubmit:y.handleSubmit(O),children:[n.jsx("div",{className:ra({size:v}),children:E}),!t&&(te||De)?n.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:v,children:[te?n.jsxs(a.Button,{accentColor:"base",type:"button",variant:"soft",onClick:p,...z,children:[n.jsx(a.LuIcon,{icon:S??oe}),h]}):null,De?n.jsxs(a.Button,{type:"submit",accentColor:"primary",variant:"surface",...C,children:[n.jsx(a.LuIcon,{icon:w??H}),f]}):null]}):null]})})})})),uo=d.memo(()=>{const{fieldSchema:i}=d.use(ne);return n.jsx(co,{fieldSchema:i,disabled:!1})});uo.displayName="FormBuilderPreview";const fo=d.memo(i=>{const{children:e,initialFields:t,onSave:r,onCancel:o,disableRequiredFields:l=!1}=i,s=d.useCallback(z=>{const S={};(!z.fields||z.fields.length===0)&&(S.fields="At least one field is required.");const w=[];for(const[O,y]of z.fields.entries())for(const[I,E]of y.fields.entries()){const G=Xr(E.type,`fields.${O}.fields.${I}`)?.map(({field:te})=>te)??[];w.push(...G)}const v={};for(const O of w)v[O.identifier]=_n(z,O.identifier);const x=Nn(w,v);return Object.keys(x).length>0&&(S.fields=x.fields),Object.keys(S).length>0&&a.toast.error({title:"Some form settings are invalid",description:"Please check settings highlighted in red."}),S},[]),f=d.useMemo(()=>({fields:t??[]}),[t]),u=Y.useForm({values:f,mode:"onSubmit",criteriaMode:"all",reValidateMode:"onSubmit",resolver:z=>{const S=s(z),w=so(S);return Object.keys(S).length>0?{values:{},errors:w}:{values:z,errors:{}}}}),h=d.useCallback(z=>{u.setValue("fields",z.config())},[u]),p=Y.useWatch({control:u.control,compute:z=>z.fields}),m=d.useMemo(()=>{const z=ye.fromConfig(p);return z.observe(h),z},[p,h]),g=d.useMemo(()=>({fieldSchema:m,disableRequiredFields:l,onSave:r,onCancel:o}),[l,r,o,m]),C=d.useMemo(()=>({fieldSchema:m,size:"sm"}),[m]);return n.jsx(ne,{value:g,children:n.jsx(L,{value:C,children:n.jsx(Y.FormProvider,{...u,children:e})})})});fo.displayName="FormBuilderRoot";const ha={Root:fo,FlowBuilder:to,ListBuilder:lo,Preview:uo};c.BaseCondition=j,c.BaseField=N,c.BaseFormElement=ze,c.BaseOptionsField=Q,c.BaseStringField=Se,c.BooleanEqualsConditionModifier=Ft,c.BooleanField=le,c.BooleanFieldCondition=Je,c.BooleanFieldConditionCell=Wt,c.BooleanFieldInput=Ji,c.BooleanNotEqualsConditionModifier=bt,c.CheckboxListField=ee,c.CheckboxListFieldCondition=He,c.CheckboxListFieldConditionCell=Xt,c.ConditionManager=Ii,c.DateAfterConditionModifier=It,c.DateBeforeConditionModifier=xt,c.DateEqualsConditionModifier=Nt,c.DateField=we,c.DateFieldCondition=We,c.DateFieldConditionCell=Zt,c.DateFieldInput=Hi,c.DateNotEqualsConditionModifier=Mt,c.DateRangeInConditionModifier=qt,c.DateRangeNotInConditionModifier=Ot,c.DoesNotHaveFilesConditionModifier=Tt,c.FIELD_TYPES=St,c.FieldSchema=ye,c.FieldSection=W,c.FieldTypeGroup=q,c.FieldTypeToClsMapping=Ee,c.FieldsRenderer=co,c.FileCard=ji,c.FormBuilder=ha,c.HasFilesConditionModifier=_t,c.ImageCard=Wi,c.ImageFile=Oe,c.ImageViewer=ki,c.ImageViewerProvider=Hn,c.InputWithLabel=B,c.MultiSelectField=ie,c.MultiSelectFieldCondition=Ke,c.MultiSelectFieldConditionCell=Rt,c.MultiStringField=ae,c.MultiStringFieldCondition=Xe,c.MultiStringFieldConditionCell=ir,c.NumberEqualsConditionModifier=rn,c.NumberField=J,c.NumberFieldCondition=Ye,c.NumberFieldConditionCell=tr,c.NumberGreaterThanConditionModifier=sn,c.NumberGreaterThanOrEqualsConditionModifier=dn,c.NumberLessThanConditionModifier=an,c.NumberLessThanOrEqualsConditionModifier=ln,c.NumberNotEqualsConditionModifier=on,c.NumberRangeInConditionModifier=cn,c.NumberRangeNotInConditionModifier=un,c.OTPField=se,c.OTPFieldCondition=Ze,c.OTPFieldConditionCell=or,c.Observable=je,c.PassFailArrayExcludesConditionModifier=At,c.PassFailArrayIncludesConditionModifier=Bt,c.PassFailEqualsConditionModifier=Et,c.PassFailField=ce,c.PassFailFieldCondition=Qe,c.PassFailFieldConditionCell=lr,c.PassFailNotEqualsConditionModifier=Lt,c.RadioField=ue,c.RadioFieldCondition=Re,c.RadioFieldConditionCell=dr,c.RatingField=fe,c.RatingFieldCondition=ei,c.RatingFieldConditionCell=ur,c.ScanField=Ne,c.ScanFieldCondition=ii,c.ScanFieldConditionCell=hr,c.Scanner=gi,c.ScannerProvider=ft,c.SelectField=re,c.SelectFieldCondition=ni,c.SelectFieldConditionCell=mr,c.StringArrayEqualsConditionModifier=bi,c.StringArrayEveryConditionModifier=Si,c.StringArrayExcludesConditionModifier=hn,c.StringArrayIncludesConditionModifier=fn,c.StringArrayNoneConditionModifier=Fi,c.StringArrayNotEqualsConditionModifier=Ni,c.StringArraySomeConditionModifier=wi,c.StringEqualsConditionModifier=Ce,c.StringExcludesConditionModifier=Be,c.StringField=he,c.StringFieldCondition=ti,c.StringFieldConditionCell=Cr,c.StringIncludesConditionModifier=Le,c.StringNotEqualsConditionModifier=Ve,c.TextField=pe,c.TextFieldCondition=ri,c.TextFieldConditionCell=yr,c.TimeAfterConditionModifier=jt,c.TimeBeforeConditionModifier=Pt,c.TimeEqualsConditionModifier=$t,c.TimeField=Me,c.TimeFieldCondition=oi,c.TimeFieldConditionCell=zr,c.TimeFieldControl=vi,c.TimeFieldInput=tn,c.TimeNotEqualsConditionModifier=Dt,c.TimeRangeInConditionModifier=Ut,c.TimeRangeNotInConditionModifier=kt,c.UNLABELLED_FIELD_LABEL=$,c.UNLABELLED_SECTION_LABEL=zi,c.URLField=xe,c.URLFieldCondition=li,c.URLFieldConditionCell=br,c.UTC_OFFSETS=Ri,c.UTC_OFFSETS_SET=gt,c.UUIDFile=de,c.UUIDPromise=be,c.UploadField=ge,c.UploadFieldCondition=ai,c.UploadFieldConditionCell=wr,c.VideoCard=Xi,c.VideoFile=Ki,c.areFieldValuesBlank=Hr,c.areFieldValuesEqual=Sn,c.areFileAndPromiseArraysEqual=mi,c.areJSONPassFailFieldValuesEqual=lt,c.arePassFieldValuesEqual=at,c.awaitFilesAndPromises=fa,c.blankFieldValues=wn,c.changedFieldValues=Gr,c.cleanConditions=Cn,c.cleanFieldValues=Ti,c.cleanSerializedConditions=gn,c.cleanSerializedFieldValues=zn,c.createCondition=si,c.createConditionModifierConfig=V,c.createField=Bi,c.createTime=en,c.deserializeCondition=Mr,c.deserializeConditions=qi,c.deserializeField=Oi,c.deserializeFieldConfig=yn,c.deserializeFieldConfigs=Tr,c.deserializeFieldElement=Ir,c.deserializeFieldElementConfig=Er,c.deserializeFieldElementConfigs=Lr,c.deserializeFieldElements=_i,c.deserializeFieldValues=Pr,c.deserializeFields=na,c.deserializePassFailFieldValue=ot,c.extractFilesAndPromisesFromFieldValues=jr,c.fieldDataMapping=T,c.fieldElementFromConfig=Or,c.fieldElementsFromConfigs=_r,c.fieldFromConfig=Vn,c.fieldSpacingCva=Ei,c.fieldTypeGroupDataMapping=wt,c.fieldsFromConfigs=qr,c.formatTime=yi,c.formatUTCOffset=Vi,c.getCurrentUTCOffset=Vt,c.getFieldsMapping=ta,c.getImagesFromFields=ua,c.getUTCMinuteOfDay=me,c.getUTCOffsetMinutes=yt,c.initializeFieldValues=kr,c.insertFilesAndPromisesToFieldValues=Ur,c.isFileAndPromiseArray=et,c.isJSONPassFailFieldValue=nt,c.isPassFailFieldStatus=Zi,c.isPassFailFieldValue=tt,c.isStringArray=Pe,c.isTime=A,c.isTimeInRange=nn,c.isTimeRange=ke,c.isUTCOffset=Ci,c.normalizeFieldOption=Gi,c.normalizeFieldOptions=_e,c.parseTime=Ue,c.passFailFieldStatusMapping=Fe,c.passFailFieldStatuses=Te,c.serializeConditions=xr,c.serializeFieldConfig=vn,c.serializeFieldConfigs=Br,c.serializeFieldElementConfig=Ar,c.serializeFieldElementConfigs=$r,c.serializeFieldValues=Dr,c.serializePassFailFieldValue=rt,c.unchangedFieldValues=Jr,c.useConditionManager=ea,c.useFieldInput=P,c.useFieldInputs=pi,c.useFieldSectionInputs=Wn,c.useImageViewer=hi,c.useObjectUrl=Ui,c.useScanner=Yo,c.useScannerContext=ct,c.validateFieldValues=Nn,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));