@overmap-ai/forms 1.1.4 → 1.1.5-field-schema-improvements.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/form/builder/Root.d.ts +2 -2
- package/dist/form/builder/components/FieldDropdownMenu.d.ts +1 -0
- package/dist/form/builder/list/sectionSerialization.d.ts +3 -3
- package/dist/form/builder/typings.d.ts +3 -3
- package/dist/form/conditions/BaseCondition/BaseCondition.d.ts +9 -14
- package/dist/form/conditions/BaseCondition/typings.d.ts +4 -6
- package/dist/form/conditions/BooleanFieldCondition/BooleanFieldCondition.d.ts +5 -6
- package/dist/form/conditions/BooleanFieldCondition/BooleanFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/BooleanFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/CheckboxListFieldCondition/CheckboxListFieldCondition.d.ts +5 -6
- package/dist/form/conditions/CheckboxListFieldCondition/CheckboxListFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/CheckboxListFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/DateFieldCondition/DateFieldCondition.d.ts +12 -13
- package/dist/form/conditions/DateFieldCondition/DateFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/DateFieldCondition/typings.d.ts +6 -4
- package/dist/form/conditions/MultiSelectFieldCondition/MultiSelectFieldCondition.d.ts +5 -6
- package/dist/form/conditions/MultiSelectFieldCondition/MultiSelectFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/MultiSelectFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/MultiStringFieldCondition/MultiStringFieldCondition.d.ts +5 -6
- package/dist/form/conditions/MultiStringFieldCondition/MultiStringFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/MultiStringFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/NumberFieldCondition/NumberFieldCondition.d.ts +5 -6
- package/dist/form/conditions/NumberFieldCondition/NumberFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/NumberFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/OTPFieldCondition/OTPFieldCondition.d.ts +5 -6
- package/dist/form/conditions/OTPFieldCondition/OTPFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/OTPFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/PassFailFieldCondition/PassFailFieldCondition.d.ts +6 -7
- package/dist/form/conditions/PassFailFieldCondition/PassFailFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/PassFailFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/RadioFieldCondition/RadioFieldCondition.d.ts +5 -6
- package/dist/form/conditions/RadioFieldCondition/RadioFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/RadioFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/RatingFieldCondition/RatingFieldCondition.d.ts +5 -6
- package/dist/form/conditions/RatingFieldCondition/RatingFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/RatingFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/ScanFieldCondition/ScanFieldCondition.d.ts +5 -6
- package/dist/form/conditions/ScanFieldCondition/ScanFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/ScanFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/SelectFieldCondition/SelectFieldCondition.d.ts +5 -6
- package/dist/form/conditions/SelectFieldCondition/SelectFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/SelectFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/StringFieldCondition/StringFieldCondition.d.ts +5 -6
- package/dist/form/conditions/StringFieldCondition/StringFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/StringFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/TextFieldCondition/TextFieldCondition.d.ts +5 -7
- package/dist/form/conditions/TextFieldCondition/TextFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/TextFieldCondition/typings.d.ts +6 -4
- package/dist/form/conditions/TimeFieldCondition/TimeFieldCondition.d.ts +6 -7
- package/dist/form/conditions/TimeFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/URLFieldCondition/URLFieldCondition.d.ts +5 -6
- package/dist/form/conditions/URLFieldCondition/URLFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/URLFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/UploadFieldCondition/UploadFieldCondition.d.ts +5 -6
- package/dist/form/conditions/UploadFieldCondition/UploadFieldCondition.test.d.ts +1 -0
- package/dist/form/conditions/UploadFieldCondition/index.d.ts +1 -1
- package/dist/form/conditions/UploadFieldCondition/typings.d.ts +5 -4
- package/dist/form/conditions/components/SelectFieldOptionMultiSelectGroup.d.ts +1 -1
- package/dist/form/conditions/components/SelectFieldOptionSelectGroup.d.ts +1 -1
- package/dist/form/conditions/components/TimeInputPopover.d.ts +1 -1
- package/dist/form/conditions/typings.d.ts +24 -25
- package/dist/form/conditions/utils.d.ts +6 -5
- package/dist/form/fields/BaseField/BaseField.d.ts +13 -9
- package/dist/form/fields/BaseField/typings.d.ts +9 -9
- package/dist/form/fields/BaseFormElement/BaseFormElement.d.ts +11 -7
- package/dist/form/fields/BaseFormElement/typings.d.ts +5 -5
- package/dist/form/fields/BaseOptionsField/BaseOptionsField.d.ts +7 -6
- package/dist/form/fields/BaseOptionsField/index.d.ts +1 -0
- package/dist/form/fields/BaseOptionsField/typings.d.ts +6 -7
- package/dist/form/fields/BaseOptionsField/utils.d.ts +3 -0
- package/dist/form/fields/BaseStringField/BaseStringField.d.ts +8 -9
- package/dist/form/fields/BaseStringField/typings.d.ts +9 -4
- package/dist/form/fields/BooleanField/BooleanField.d.ts +10 -6
- package/dist/form/fields/BooleanField/typings.d.ts +3 -2
- package/dist/form/fields/CheckboxListField/CheckboxListField.d.ts +10 -7
- package/dist/form/fields/CheckboxListField/index.d.ts +0 -1
- package/dist/form/fields/CheckboxListField/typings.d.ts +4 -2
- package/dist/form/fields/DateField/DateField.d.ts +10 -7
- package/dist/form/fields/DateField/typings.d.ts +4 -2
- package/dist/form/fields/FieldSection/FieldSection.d.ts +19 -20
- package/dist/form/fields/FieldSection/FieldSection.test.d.ts +1 -0
- package/dist/form/fields/FieldSection/index.d.ts +0 -1
- package/dist/form/fields/FieldSection/typings.d.ts +15 -9
- package/dist/form/fields/MultiSelectField/MultiSelectField.d.ts +10 -8
- package/dist/form/fields/MultiSelectField/index.d.ts +0 -1
- package/dist/form/fields/MultiSelectField/typings.d.ts +5 -2
- package/dist/form/fields/MultiStringField/MultiStringField.d.ts +13 -13
- package/dist/form/fields/MultiStringField/index.d.ts +0 -1
- package/dist/form/fields/MultiStringField/typings.d.ts +9 -4
- package/dist/form/fields/NumberField/NumberField.d.ts +13 -14
- package/dist/form/fields/NumberField/index.d.ts +0 -1
- package/dist/form/fields/NumberField/typings.d.ts +11 -5
- package/dist/form/fields/OTPField/OTPField.d.ts +12 -16
- package/dist/form/fields/OTPField/index.d.ts +0 -1
- package/dist/form/fields/OTPField/typings.d.ts +5 -6
- package/dist/form/fields/PassFailField/PassFailField.d.ts +17 -15
- package/dist/form/fields/PassFailField/constants.d.ts +1 -1
- package/dist/form/fields/PassFailField/index.d.ts +0 -1
- package/dist/form/fields/PassFailField/typings.d.ts +5 -7
- package/dist/form/fields/PassFailField/utils.d.ts +6 -5
- package/dist/form/fields/RadioField/RadioField.d.ts +10 -7
- package/dist/form/fields/RadioField/index.d.ts +0 -1
- package/dist/form/fields/RadioField/typings.d.ts +4 -2
- package/dist/form/fields/RatingField/RatingField.d.ts +10 -8
- package/dist/form/fields/RatingField/index.d.ts +0 -1
- package/dist/form/fields/RatingField/typings.d.ts +5 -2
- package/dist/form/fields/ScanField/ScanField.d.ts +10 -7
- package/dist/form/fields/ScanField/index.d.ts +0 -1
- package/dist/form/fields/ScanField/typings.d.ts +4 -2
- package/dist/form/fields/SelectField/SelectField.d.ts +10 -8
- package/dist/form/fields/SelectField/index.d.ts +0 -1
- package/dist/form/fields/SelectField/typings.d.ts +5 -2
- package/dist/form/fields/StringField/StringField.d.ts +10 -7
- package/dist/form/fields/StringField/index.d.ts +0 -2
- package/dist/form/fields/StringField/typings.d.ts +4 -2
- package/dist/form/fields/TextField/TextField.d.ts +10 -6
- package/dist/form/fields/TextField/index.d.ts +0 -2
- package/dist/form/fields/TextField/typings.d.ts +3 -2
- package/dist/form/fields/TimeField/TimeField.d.ts +9 -5
- package/dist/form/fields/TimeField/TimeFieldControl.d.ts +1 -1
- package/dist/form/fields/TimeField/index.d.ts +1 -1
- package/dist/form/fields/TimeField/typings.d.ts +3 -10
- package/dist/form/fields/TimeField/utils.d.ts +1 -1
- package/dist/form/fields/URLField/URLField.d.ts +11 -9
- package/dist/form/fields/URLField/index.d.ts +0 -1
- package/dist/form/fields/URLField/typings.d.ts +5 -2
- package/dist/form/fields/UploadField/UploadField.d.ts +12 -12
- package/dist/form/fields/UploadField/index.d.ts +1 -2
- package/dist/form/fields/UploadField/typings.d.ts +9 -9
- package/dist/form/fields/components/InputWithLabel.d.ts +4 -4
- package/dist/form/fields/constants.d.ts +1 -4
- package/dist/form/fields/hooks.d.ts +1 -1
- package/dist/form/fields/typings.d.ts +27 -22
- package/dist/form/fields/utils.d.ts +23 -12
- package/dist/form/modifiers/passFailStatus.d.ts +1 -1
- package/dist/form/modifiers/time.d.ts +1 -1
- package/dist/form/schema/FieldSchema.d.ts +20 -14
- package/dist/form/schema/index.d.ts +1 -0
- package/dist/form/schema/typings.d.ts +3 -0
- package/dist/form/typings.d.ts +5 -6
- package/dist/form/utils.d.ts +3 -5
- package/dist/forms.js +3625 -3298
- package/dist/forms.umd.cjs +1 -1
- package/package.json +7 -5
- package/dist/form/fields/StringField/constants.d.ts +0 -1
- package/dist/form/fields/TextField/constants.d.ts +0 -1
package/dist/forms.umd.cjs
CHANGED
|
@@ -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("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","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.graphology,c.graphologyTraversal,c.get,c.set))})(this,(function(c,n,o,Q,d,aa,O,Dn,Y,b,Oi,Pn,eo,io,jn,no,to,Un,ro){"use strict";const oo=i=>i.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ao=i=>i.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase()),Gn=i=>{const e=ao(i);return e.charAt(0).toUpperCase()+e.slice(1)},kn=(...i)=>i.filter((e,t,r)=>!!e&&e.trim()!==""&&r.indexOf(e)===t).join(" ").trim(),lo=i=>{for(const e in i)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var so={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 co=d.forwardRef(({color:i="currentColor",size:e=24,strokeWidth:t=2,absoluteStrokeWidth:r,className:a="",children:l,iconNode:s,...h},u)=>d.createElement("svg",{ref:u,...so,width:e,height:e,stroke:i,strokeWidth:r?Number(t)*24/Number(e):t,className:kn("lucide",a),...!l&&!lo(h)&&{"aria-hidden":"true"},...h},[...s.map(([f,p])=>d.createElement(f,p)),...Array.isArray(l)?l:[l]]));const N=(i,e)=>{const t=d.forwardRef(({className:r,...a},l)=>d.createElement(co,{ref:l,iconNode:e,className:kn(`lucide-${oo(Gn(i))}`,`lucide-${i}`,r),...a}));return t.displayName=Gn(i),t};const uo=N("align-justify",[["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 18h18",key:"1h113x"}],["path",{d:"M3 6h18",key:"d0wm0j"}]]);const ho=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 po=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 J=N("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const si=N("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const _i=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 go=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 Co=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 Vo=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 Hn=N("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);const Jn=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 yo=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 Wn=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 vo=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 Ti=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 Xn=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 Kn=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 So=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 zo=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 Fo=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 wo=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 Yn=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 Zn=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 No=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 Mo=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 xo=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 Io=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 di=N("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const Qn=N("move-down",[["path",{d:"M8 18L12 22L16 18",key:"cskvfv"}],["path",{d:"M12 2V22",key:"r89rzk"}]]);const Rn=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 qo=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 Oo=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 _o=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 To=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 Lo=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 et=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 Bo=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 Ao=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 se=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 Li=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 Eo=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 ne=N("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Bi=d.memo(i=>{const{ref:e,file:t,className:r,error:a,rightSlot:l,size:s,...h}=i,u=()=>a?n.jsxs(n.Fragment,{children:[n.jsx(o.LuIcon,{icon:_i,color:"var(--base-a11)"}),n.jsx(o.Text,{accentColor:"base",className:"truncate",size:s,children:a})]}):t?n.jsxs(n.Fragment,{children:[n.jsx(o.LuIcon,{icon:zo,color:"var(--base-a11)"}),n.jsx(o.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(o.Spinner,{size:s})})});return n.jsxs(o.Card,{className:Q.cx(r,"flex w-full items-center gap-2"),ref:e,size:"xs",...h,children:[u(),l]})});Bi.displayName="FileCard";function Ae(i){return Array.isArray(i)?i.every(e=>typeof e=="string"):!1}class Ee{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 Ai extends Ee{identifier;constructor(e){const{identifier:t}=e;super(),this.identifier=t}getOptions(){return{identifier:this.identifier}}setOptions(e){this.identifier=e.identifier??this.identifier,this.notify(this)}serialize(){return{type:this.type,identifier:this.identifier}}}class k extends Ai{label;description;required;image;constructor(e){const{label:t,description:r=null,required:a,image:l,...s}=e;super(s),this.label=t,this.description=r,this.required=a,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,image:this.image}}getOptions(){return{...super.getOptions(),label:this.label,description:this.description,required:this.required,image:this.image}}setOptions(e){const{label:t,description:r=null,required:a,image:l,...s}=e;this.label=t??this.label,this.description=r??this.description,this.required=a??this.required,this.image=l??this.image,super.setOptions(s)}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({}),Ei=i=>{const[e,t]=d.useState(null);return d.useLayoutEffect(()=>{const r=URL.createObjectURL(i);return t(r),()=>{URL.revokeObjectURL(r)}},[i]),e},we=d.memo(i=>{const{file:e,...t}=i,r=Ei(e);return n.jsx("img",{src:r??void 0,alt:e.name,...t})});we.displayName="ImageFile";const it=d.createContext(()=>{throw new Error("No ImageViewerProvider found")}),ci=()=>d.useContext(it),$i=d.memo(i=>{const{file:e,onClose:t}=i,r=d.useCallback(()=>{Pn.saveAs(e,e.name)},[e]);return n.jsx(o.Overlay.Root,{open:!0,onOpenChange:t,children:n.jsxs(o.Overlay.Content,{onOpenAutoFocus:o.preventDefault,children:[n.jsxs(o.ButtonGroup,{className:"absolute right-0 top-0 flex items-center gap-2 p-2",accentColor:"base",variant:"ghost",children:[n.jsxs(o.Tooltip.Root,{children:[n.jsx(o.Tooltip.Trigger,{asChild:!0,children:n.jsx(o.IconButton,{onClick:r,"aria-label":"download",children:n.jsx(o.LuIcon,{icon:Xn})})}),n.jsx(o.Tooltip.Content,{size:"sm",children:"Download"})]}),n.jsx(o.Separator,{orientation:"vertical",size:"sm"}),n.jsx(o.Overlay.Close,{asChild:!0,children:n.jsx(o.IconButton,{onClick:t,"aria-label":"close",children:n.jsx(o.LuIcon,{icon:ne})})})]}),n.jsx("figure",{className:"flex size-full items-center justify-center overflow-hidden p-4",children:n.jsx(we,{className:"max-h-full max-w-full",file:e})})]})})});$i.displayName="ImageViewer";const nt=d.memo(i=>{const{children:e}=i,[t,r]=d.useState(null),a=d.useCallback(()=>{r(null)},[]),l=d.useCallback(h=>{r(h(a))},[a]),s=d.useCallback(()=>{t&&(t.onClose&&t.onClose(),a())},[a,t]);return n.jsxs(it.Provider,{value:l,children:[e,t&&n.jsx($i,{file:t.file,onClose:s})]})});nt.displayName="FileViewerProvider";const B=d.memo(i=>{const{label:e,error:t,description:r,required:a,children:l,inputId:s,image:h,size:u}=i,[f,p]=d.useState(void 0),g=ci();d.useEffect(()=>{h instanceof Promise?h.then(p).catch(console.error):p(h)},[h]);const m=d.useCallback(()=>{f&&g(()=>({file:f}))},[g,f]),C=a?`${e} *`:e;return n.jsxs("div",{className:"flex flex-col gap-1",children:[f&&n.jsx(we,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:f,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(o.Text,{size:u,className:"text-wrap",children:C})}),!!r&&n.jsx(o.Text,{accentColor:"base",size:u,children:r})]}),l,!!t&&n.jsx(o.Text,{accentColor:"danger",size:u,children:t})]})});B.displayName="InputWithLabel";const tt=i=>i.map(e=>n.jsx(d.Fragment,{children:e.render()},e.identifier)),ui=i=>i.map(e=>n.jsx(d.Fragment,{children:e.render()},e.identifier)),D=i=>{const{field:e}=i,{field:{value:t,name:r,onChange:a,onBlur:l,disabled:s},fieldState:{isTouched:h,error:u}}=Y.useController({name:e.identifier});return{value:t,name:r,disabled:s,isTouched:h,error:u?.message??"",onChange:a,onBlur:l}},Di=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),[f,p]=d.useState(""),[g,m]=d.useState(""),C=d.useCallback(F=>{s(F),l()},[s,l]),v=d.useCallback(F=>{r&&r.findIndex(w=>w===F.target.value.trim())>=0?m("All options must be unique"):F.target.value?m(""):m("Option cannot be empty"),p(F.target.value)},[p,r]),y=d.useCallback(()=>{if(g)return;if(!f.trim()){m("Option cannot be empty");return}const F=f.trim();C([...r,F]),p("")},[f,g,C,r]),S=d.useCallback(F=>{F.key==="Enter"&&(F.preventDefault(),y())},[y]),z=d.useCallback(F=>{const w=Array.from(r);w.splice(F,1),C(w)},[r,C]),x=d.useCallback(F=>{if(!F.destination)return;const w=F.source.index,T=F.destination.index,G=Array.from(r),[ee]=G.splice(w,1);G.splice(T,0,ee),C(G)},[C,r]),I=d.useCallback(()=>{l()},[l]);return n.jsx(Oi.DragDropContext,{onDragEnd:x,children:n.jsxs(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:g||h,image:e.image,children:[(!u||r.length===0)&&n.jsxs("div",{className:"flex gap-2",children:[n.jsx(o.Input.Root,{className:"grow",accentColor:"base",variant:"surface",size:t,children:n.jsx(o.Input.Field,{value:f,onChange:v,onKeyDown:S,id:e.identifier,placeholder:e.placeholder,onBlur:I,name:a,disabled:u})}),n.jsx(o.IconButton,{size:t,accentColor:"base",variant:"soft",type:"button","aria-label":"Add option",disabled:!!g||u,onClick:y,children:n.jsx(o.LuIcon,{icon:Z})})]}),r.length!==0&&n.jsx(Oi.Droppable,{droppableId:`${e.identifier}-droppable`,children:F=>n.jsxs("div",{className:"flex flex-col gap-1",...F.droppableProps,ref:F.innerRef,children:[r.map((w,T)=>n.jsx(Oi.Draggable,{draggableId:`${w}-draggable`,index:T,isDragDisabled:u,children:({draggableProps:G,dragHandleProps:ee,innerRef:Be})=>n.jsxs(o.Badge,{...ee,...G,ref:Be,className:"flex items-center justify-between gap-2",accentColor:"base",size:t,variant:"soft",children:[n.jsx(o.Text,{className:"truncate",highContrast:!0,children:typeof w=="object"&&"label"in w?w.label:w}),n.jsx(o.IconButton,{className:"bg-transparent!",size:t,variant:"ghost",type:"button","aria-label":"Delete option",accentColor:"base",disabled:u,onClick:()=>{z(T)},children:n.jsx(o.LuIcon,{icon:ne})})]})},`${e.identifier}-${w}-${T}`)),F.placeholder]})})]})})});Di.displayName="MultiStringFieldInput";class de extends k{type="multi-string";minLength;maxLength;placeholder;constructor(e){const{minimum_length:t,maximum_length:r,placeholder:a,...l}=e;super(l),this.minLength=t??0,this.maxLength=r??1/0,this.placeholder=a??"Press enter to add a new option"}render(){return n.jsx(Di,{field:this})}serialize(){return{...super.serialize(),minimum_length:this.minLength,maximum_length:this.maxLength,placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),minimum_length:this.minLength,maximum_length:this.maxLength,placeholder:this.placeholder}}duplicate(e){return new de({...this.getOptions(),identifier:e})}setOptions(e){const{minimum_length:t,maximum_length:r,placeholder:a,...l}=e;this.minLength=t??this.minLength,this.maxLength=r??this.maxLength,this.placeholder=a??this.placeholder,super.setOptions(l)}serializeValue(e){return e}deserializeValue(e){return e}getFieldValidators(){const e=super.getFieldValidators();return e.push(t=>{if(t.length<this.minLength)return`Must have at least ${this.minLength} options.`}),e.push(t=>{if(t.length>this.maxLength)return`Must have at most ${this.maxLength} options.`}),e}static deserialize(e){return new de(e)}isSerializedValue(e){return Ae(e)}isValue(e){return Ae(e)}blankValue(){return[]}areValuesEqual(e,t){const r=new Set(e),a=new Set(t);return r.size===a.size&&r.isSubsetOf(a)}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){const r=new Set(e),a=new Set(t);return r.size===a.size&&r.isSubsetOf(a)}}class $e extends k{options;constructor(e){const{options:t,...r}=e;super(r),this.options=t.map(a=>(typeof a=="string"&&(a={label:a,value:a}),a))}serialize(){return{...super.serialize(),options:this.options}}getOptions(){return{...super.getOptions(),options:this.options}}setOptions(e){const{options:t,...r}=e;this.options=t?.map(a=>(typeof a=="string"&&(a={label:a,value:a}),a))??this.options,super.setOptions(r)}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new de({label:"Options",description:"List possible options for the user to select from.",required:!0,identifier:`${t}options`,minimum_length:2}),showDirectly:!0}]}}const Pi=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=d.useCallback(g=>{s(!!g),l()},[l,s]),p=d.useCallback(()=>{l()},[l]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,error:h,image:e.image,required:e.required,children:n.jsx(o.Checkbox.Root,{id:e.identifier,name:a,checked:r??!1,onCheckedChange:f,onBlur:p,size:t,accentColor:"base",variant:"surface",disabled:u,children:n.jsx(o.Checkbox.Indicator,{children:n.jsx(o.LuIcon,{icon:J})})})})});Pi.displayName="BooleanFieldInput";class ce extends k{type="boolean";constructor(e){super(e)}serialize(){return super.serialize()}getOptions(){return super.getOptions()}setOptions(e){super.setOptions(e)}duplicate(e){return new ce({...this.getOptions(),identifier:e})}static deserialize(e){return new ce(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Pi,{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 ji=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=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(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsx(o.Input.Root,{accentColor:"base",variant:"surface",size:t,children:n.jsx(o.Input.Field,{id:e.identifier,name:a,onChange:f,onBlur:p,value:r??"",type:"number",min:e.minimum,max:e.maximum,step:e.integers?1:"any",placeholder:e.placeholder??"Enter a number",disabled:u,onKeyDown:g})})})});ji.displayName="NumberFieldInput";class H extends k{type="number";minimum;maximum;integers;placeholder;constructor(e){const{minimum:t=Number.MIN_SAFE_INTEGER,maximum:r=Number.MAX_SAFE_INTEGER,integers:a=!1,placeholder:l,...s}=e;super(s),this.minimum=t,this.maximum=r,this.integers=a,this.placeholder=l}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new H({label:"Minimum",description:"Minimum value",integers:!0,required:!1,identifier:`${t}minimum`}),showDirectly:!1},{field:new H({label:"Maximum",description:"Maximum value",integers:!0,required:!1,identifier:`${t}maximum`}),showDirectly:!1},{field:new ce({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(a=>{if(typeof a=="number"&&a<t)return`Must be at least ${this.minimum}.`}),typeof r=="number"&&e.push(a=>{if(typeof a=="number"&&a>r)return`Must be at most ${this.maximum}.`}),this.integers&&e.push(a=>{if(typeof a=="number"&&!Number.isInteger(a))return"Must be a whole number."}),e}serialize(){return{...super.serialize(),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 H({...this.getOptions(),identifier:e})}setOptions(e){const{minimum:t,maximum:r,integers:a,placeholder:l,...s}=e;this.minimum=t??this.minimum,this.maximum=r??this.maximum,this.integers=a??this.integers,this.placeholder=l??this.placeholder,super.setOptions(s)}static deserialize(e){return new H(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(ji,{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 De=1e4;class Ui extends k{minLength;maxLength;placeholder;constructor(e){const{minLength:t,maxLength:r,placeholder:a="",...l}=e;super(l),this.minLength=t?Math.max(t,0):void 0,this.maxLength=r?Math.max(r,0):De,this.placeholder=a}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new H({label:"Minimum length",description:"Minimum number of characters",required:!1,identifier:`${t}minimum_length`,minimum:0,maximum:100,integers:!0}),showDirectly:!1},{field:new H({label:"Maximum length",description:"Maximum number of characters",required:!1,identifier:`${t}maximum_length`,minimum:1,maximum:De,integers:!0}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators();return this.minLength&&e.push(t=>{if(this.minLength&&(!t||t.length<this.minLength))return!this.required&&!t?void 0:`Minimum ${this.minLength} character(s).`}),this.maxLength&&e.push(t=>{if(typeof t=="string"&&this.maxLength&&t.length>this.maxLength)return`Maximum ${this.maxLength} character(s).`}),e}serialize(){return{...super.serialize(),minimum_length:this.minLength,maximum_length:this.maxLength,placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),minLength:this.minLength,maxLength:this.maxLength,placeholder:this.placeholder}}setOptions(e){const{minLength:t,maxLength:r,placeholder:a,...l}=e;this.minLength=t,this.maxLength=r??this.maxLength,this.placeholder=a,super.setOptions(l)}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 Gi=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=d.useCallback(g=>{s(g),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:h,image:e.image,children:n.jsx(o.CheckboxGroup.Root,{id:e.identifier,name:a,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:t,values:r,onValuesChange:f,disabled:u,children:e.options.map((g,m)=>n.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[n.jsx(o.CheckboxGroup.Item,{value:g.value,onBlur:p,children:n.jsx(o.CheckboxGroup.ItemIndicator,{children:n.jsx(o.LuIcon,{icon:J})})}),n.jsx(o.Text,{size:t,accentColor:"base",className:"truncate",children:g.label})]},`${e.identifier}-${g.value}-${m}`))})})});Gi.displayName="CheckboxListFieldInput";class ue extends $e{type="checkbox-list";constructor(e){super(e)}serialize(){return super.serialize()}getOptions(){return super.getOptions()}duplicate(e){return new ue({...this.getOptions(),identifier:e})}static deserialize(e){return new ue(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Gi,{field:this})}isSerializedValue(e){if(!Ae(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),a=new Set(t);return r.size===a.size&&r.isSubsetOf(a)}areValuesEqual(e,t){const r=new Set(e),a=new Set(t);return r.size===a.size&&r.isSubsetOf(a)}}const ki=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),[f,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(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs(o.Popover.Root,{open:f,onOpenChange:m,children:[n.jsx(o.Popover.Trigger,{asChild:!0,children:n.jsxs(o.Button,{id:e.identifier,name:a,type:"button",className:"!justify-between",accentColor:"base",variant:"surface",size:t,disabled:u,children:[n.jsx(o.Text,{className:"truncate",highContrast:!!r,children:r?r.toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit"}):"yyyy-mm-dd"}),n.jsx(o.LuIcon,{icon:si})]})}),n.jsx(o.Popover.Content,{align:"start",size:t,children:n.jsx(o.DayPicker,{size:t,required:!1,mode:"single",variant:"solid",selected:r??void 0,onSelect:g})})]})})});ki.displayName="DateFieldInput";class be extends k{type="date";constructor(e){super(e)}serialize(){return super.serialize()}getOptions(){return super.getOptions()}duplicate(e){return new be({...this.getOptions(),identifier:e})}static deserialize(e){return new be(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(ki,{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 Hi=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=d.useCallback(g=>{s(g),l()},[l,s]),p=d.useCallback(g=>{g||l()},[l]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs(o.Menu.Root,{onOpenChange:p,align:"start",children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsxs(o.Button,{id:e.identifier,name:a,className:"!justify-between",variant:"surface",type:"button",size:t,accentColor:"base",disabled:u,children:[n.jsx(o.Text,{className:"truncate",highContrast:r&&r.length>0,children:r&&r.length>0?r.join(", "):e.placeholder??"Select one or more..."}),n.jsx(o.LuIcon,{icon:si})]})}),n.jsx(o.Menu.Content,{size:t,children:n.jsx(o.Menu.Scroll,{children:n.jsxs(o.Menu.MultiSelectGroup,{values:r,onValuesChange:f,children:[n.jsxs(o.Menu.SelectAllItem,{children:[n.jsx(o.Menu.CheckboxItemIndicator,{children:g=>g?n.jsx(o.LuIcon,{icon:di}):n.jsx(o.LuIcon,{icon:J})}),"Select all"]}),e.options.map((g,m)=>n.jsxs(o.Menu.MultiSelectItem,{value:g.value,children:[n.jsx(o.Menu.SelectedIndicator,{children:n.jsx(o.LuIcon,{icon:J})}),g.label]},`${e.identifier}-${g.value}-${m}`))]})})})]})})});Hi.displayName="MultiSelectFieldInput";class ie extends $e{type="multi-select";placeholder;constructor(e){const{placeholder:t,...r}=e;super(r),this.placeholder=t}serialize(){return super.serialize()}getOptions(){return{...super.getOptions(),placeholder:this.placeholder}}duplicate(e){return new ie({...this.getOptions(),identifier:e})}setOptions(e){const{placeholder:t}=e;this.placeholder=t,super.setOptions(e)}static deserialize(e){return new ie(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Hi,{field:this})}isSerializedValue(e){if(!Ae(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),a=new Set(t);return r.size===a.size&&r.isSubsetOf(a)}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){const r=new Set(e),a=new Set(t);return r.size===a.size&&r.isSubsetOf(a)}}const Ji=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=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(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs(o.Menu.Root,{onOpenChange:p,align:"start",children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsxs(o.Button,{id:e.identifier,name:a,className:"!justify-between",accentColor:"base",variant:"surface",type:"button",size:t,disabled:u,children:[n.jsx(o.Text,{className:"truncate",highContrast:!!g,children:g?g.label:e.placeholder??"Select one..."}),n.jsx(o.LuIcon,{icon:si})]})}),n.jsx(o.Menu.Content,{size:t,children:n.jsx(o.Menu.Scroll,{children:n.jsx(o.Menu.SelectGroup,{required:!1,value:r??void 0,onValueChange:f,children:e.options.map((m,C)=>n.jsxs(o.Menu.SelectItem,{value:m.value,children:[n.jsx(o.Menu.SelectedIndicator,{children:n.jsx(o.LuIcon,{icon:J})}),m.label]},`${e.identifier}-${m.value}-${C}`))})})})]})})});Ji.displayName="SelectFieldInput";class te extends $e{type="select";placeholder;constructor(e){const{placeholder:t,...r}=e;super(r),this.placeholder=t}serialize(){return super.serialize()}getOptions(){return{...super.getOptions(),placeholder:this.placeholder}}duplicate(e){return new te({...this.getOptions(),identifier:e})}setOptions(e){const{placeholder:t}=e;this.placeholder=t,super.setOptions(e)}static deserialize(e){return new te(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Ji,{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 Wi=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=d.useCallback(m=>{s(m)},[s]),p=d.useCallback(()=>{l()},[l]),g=d.useMemo(()=>Array.from({length:e.length},()=>b.v4()),[e.length]);return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs(o.OneTimePasswordField.Root,{id:e.identifier,name:a,value:r,onValueChange:f,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(o.OneTimePasswordField.Input,{id:m},m)),n.jsx(o.OneTimePasswordField.HiddenInput,{})]})})});Wi.displayName="OTPFieldInput";class he extends k{type="otp";length;validationType;constructor(e){const{length:t,validationType:r,...a}=e;super(a),this.length=t,this.validationType=r}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new H({label:"Length",integers:!0,required:!1,minimum:1,maximum:16,identifier:`${t}length`}),showDirectly:!1},{field:new te({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}}getOptions(){return{...super.getOptions(),length:this.length,validationType:this.validationType}}duplicate(e){return new he({...this.getOptions(),identifier:e})}setOptions(e){const{length:t,validationType:r,...a}=e;this.length=t??this.length,this.validationType=r??this.validationType,super.setOptions(a)}static deserialize(e){return new he(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(Wi,{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:go},fail:{label:"Fail",icon:Vo},na:{label:"N/A",icon:Co}},Ne=Object.keys(fe);class re extends File{uuid;constructor(e,...t){super(...t),this.uuid=e}static from(e,t){return new re(e,[t],t.name,{lastModified:t.lastModified,type:t.type})}}class pe 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 pe((r,a)=>{Promise.resolve(e).then(r).catch(a)},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 rt(i){return Array.isArray(i)?i.every(e=>e instanceof pe||e instanceof re):!1}function hi(i,e){const t=new Set(i.map(({uuid:a})=>a)),r=new Set(e.map(({uuid:a})=>a));return t.size===r.size&&t.isSubsetOf(r)}const Xi=d.memo(i=>{const{ref:e,file:t,error:r,rightSlot:a,className:l,size:s,...h}=i;return n.jsxs(o.Card,{className:Q.cx(l,"p-0! relative flex h-48 w-full flex-col overflow-hidden"),ref:e,size:"xs",...h,children:[!t&&!r&&n.jsx("div",{className:"absolute inset-0 flex grow items-center justify-center",children:n.jsx(o.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(we,{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(o.Separator,{size:"full"}),n.jsxs("div",{className:"flex w-full shrink-0 items-center gap-2 self-end p-3",children:[r?n.jsx(o.LuIcon,{color:"var(--base-11)",icon:_i}):t&&n.jsx(o.LuIcon,{color:"var(--base-11)",icon:Yn}),n.jsx(o.Text,{className:"truncate",size:s,children:r??t?.name}),a]})]})]})});Xi.displayName="ImageCard";const Ki=d.memo(i=>{const{file:e,...t}=i,r=Ei(e);return n.jsx("video",{src:r??void 0,...t})});Ki.displayName="VideoFile";const Yi=d.memo(i=>{const{ref:e,file:t,className:r,error:a,rightSlot:l,size:s,...h}=i;return n.jsxs(o.Card,{className:Q.cx(r,"p-0! relative flex h-48 w-full flex-col overflow-hidden"),ref:e,size:"xs",...h,children:[!t&&!a&&n.jsx("div",{className:"absolute inset-0 flex grow items-center justify-center",children:n.jsx(o.Spinner,{size:s})}),!!t&&!a&&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})}),!!a&&n.jsx("div",{className:"grow"}),(!!t||!!a)&&n.jsxs(n.Fragment,{children:[n.jsx(o.Separator,{size:"full"}),n.jsxs("div",{className:"flex w-full shrink-0 items-center gap-2 self-end p-3",children:[a?n.jsx(o.LuIcon,{color:"var(--danger-11)",icon:_i}):t&&n.jsx(o.LuIcon,{color:"var(--base-11)",icon:Eo}),n.jsx(o.Text,{className:"truncate",size:s,children:a??t?.name}),l]})]})]})});Yi.displayName="VideoCard";const Zi=d.memo(i=>{const{fileOrPromise:e,onRemove:t,disabled:r,size:a}=i,[l,s]=d.useState(e instanceof pe?null:e),[h,u]=d.useState(null),f=ci();eo.useActiveEffect(z=>{if(u(null),!(e instanceof pe)){s(e);return}s(null),e.then(x=>{z()&&s(x)}).catch(x=>{z()&&u(x instanceof Error?x.message:"Unknown error")})},[e]);const p=d.useCallback(()=>{if(!l)return;const z=new Blob([l]);Pn.saveAs(z,l.name)},[l]),g=d.useCallback(()=>{t(e)},[t,e]),m=d.useCallback(()=>{if(!l)return;const z=URL.createObjectURL(l);window.open(z,"_blank"),URL.revokeObjectURL(z)},[l]),C=d.useCallback(()=>{l&&f(z=>({file:l,onDelete:r?void 0:()=>{g(),z()}}))},[r,g,f,l]),v=d.useMemo(()=>n.jsx("div",{className:"flex grow justify-end",children:n.jsxs(o.Menu.Root,{modal:!0,children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.IconButton,{onClick:o.stopPropagation,type:"button",variant:"ghost",accentColor:"base",size:a,children:n.jsx(o.LuIcon,{icon:Kn})})}),n.jsxs(o.Menu.Content,{size:a,children:[n.jsxs(o.Menu.Item,{onSelect:p,disabled:!l,children:[n.jsx(o.LuIcon,{icon:Xn})," Download"]}),r?null:n.jsxs(n.Fragment,{children:[n.jsx(o.Menu.Separator,{}),n.jsxs(o.Menu.Item,{onSelect:g,children:[n.jsx(o.LuIcon,{icon:se})," Delete"]})]})]})]})}),[r,g,p,l,a]),y=!!l?.type.startsWith("image/"),S=!!l?.type.startsWith("video/");return y?n.jsx(Xi,{className:"cursor-pointer",onClick:C,file:l,error:h??void 0,rightSlot:v,size:a}):S?n.jsx(Yi,{className:"cursor-pointer",onClick:C,file:l,error:h??void 0,rightSlot:v,size:a}):n.jsx(Bi,{className:"cursor-pointer",file:l,error:h??void 0,onClick:m,rightSlot:v,size:a})});Zi.displayName="DisplayFile";const Qi=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=d.useRef(null),p=d.useCallback(F=>{const w=e.cleanValue({...r,status:F});s(w),l()},[e,l,s,r]),g=d.useCallback(F=>{const w=F.target.value,T={...r,notes:w};s(T)},[r,s]),m=d.useCallback(()=>{l()},[l]),C=d.useCallback(F=>{const w=r.files.filter(({uuid:T})=>T!==F.uuid);s({...r,files:w}),l()},[s,l,r]),v=d.useCallback(()=>{f.current?.click()},[]),y=d.useCallback(F=>{const w=Array.from(F.target.files??[]).map(G=>re.from(b.v4(),G)),T={...r,files:[...r.files,...w]};s(T),l()},[l,s,r]);d.useEffect(()=>{if(!f.current)return;const F=new AbortController;return f.current.addEventListener("cancel",()=>{l()},{signal:F.signal}),()=>{F.abort()}},[l,r]);const S=r.status&&e.showNotesAndFilesOn.includes(r.status),z=`${e.identifier}-status`,x=`${e.identifier}-notes`,I=`${e.identifier}-files`;return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsx(o.RadioGroup.Root,{id:z,className:"flex gap-2",name:a,value:r.status,disabled:u,accentColor:"base",variant:"surface",size:t,onValueChange:p,children:Ne.map(F=>{const{label:w}=fe[F];return n.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[n.jsx(o.RadioGroup.Item,{value:F,children:n.jsx(o.RadioGroup.Indicator,{children:n.jsx(o.LuIcon,{icon:Hn,className:"fill-current"})})}),n.jsx(o.Text,{size:t,accentColor:"base",className:"truncate",children:w})]},`${e.identifier}-${F}`)})}),S&&n.jsxs(n.Fragment,{children:[n.jsx("div",{children:n.jsx(o.TextArea,{id:x,value:r.notes??"",name:a,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(o.Button,{className:"w-max",size:t,variant:"surface",accentColor:"base",onClick:v,type:"button",disabled:u,children:[n.jsx(o.LuIcon,{icon:Li}),"Select files"]}),n.jsx("input",{id:I,name:a,type:"file",ref:f,multiple:!0,className:"hidden",onChange:y,value:""}),r.files.length>0&&n.jsx("div",{className:"flex h-max flex-wrap gap-2",children:r.files.map(F=>n.jsx(Zi,{size:t,fileOrPromise:F,onRemove:C,disabled:u},F.uuid))})]})]})]})})});Qi.displayName="PassFailFieldInput";const Ri=i=>typeof i=="string"&&Ne.includes(i),ot=i=>!(i===null||typeof i!="object"||!("status"in i)||!Ri(i.status)||!("notes"in i)||typeof i.notes!="string"||!("files"in i)||!(Array.isArray(i.files)&&i.files.length===0)),at=i=>!(i===null||typeof i!="object"||!("status"in i)||!Ri(i.status)||!("notes"in i)||typeof i.notes!="string"||!("files"in i)||!rt(i.files)),lt=i=>({status:i.status,notes:i.notes,files:[]}),st=i=>({status:i.status,notes:i.notes,files:[]}),dt=(i,e)=>!(i.status!==e.status||i.notes!==e.notes||!hi(i.files,e.files)),ct=(i,e)=>!(i.status!==e.status||i.notes!==e.notes||i.files.length!==e.files.length);class ge extends k{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:Ne.map(r=>{const{label:a}=fe[r];return{value:r,label:a}}),required:!1}),showDirectly:!1}]}serialize(){return{...super.serialize(),showNotesAndFilesOn:this.showNotesAndFilesOn}}getOptions(){return{...super.getOptions(),showNotesAndFilesOn:this.showNotesAndFilesOn}}duplicate(e){return new ge({...this.getOptions(),identifier:e})}setOptions(e){const{showNotesAndFilesOn:t,...r}=e;this.showNotesAndFilesOn=t??this.showNotesAndFilesOn,super.setOptions(r)}getFieldValidators(){const e=super.getFieldValidators(),t=this.showNotesAndFilesOn,r=this.blankValue();return t.length>0&&(e.push(a=>{if(!(!a.status||!t.includes(a.status))&&r.notes===a.notes)return"Notes is required."}),e.push(a=>{if(!(!a.status||!t.includes(a.status))&&hi(r.files,a.files))return"Files is required."})),e}static deserialize(e){return new ge({...e,showNotesAndFilesOn:e.showNotesAndFilesOn??!1})}serializeValue(e){return lt(e)}deserializeValue(e){return st(e)}render(){return n.jsx(Qi,{field:this})}isSerializedValue(e){return ot(e)}isValue(e){return at(e)}areValuesEqual(e,t){return dt(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 ct(e,t)}}const en=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=d.useCallback(m=>{s(m),l()},[l,s]),p=d.useCallback(()=>{l()},[l]),g=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:h,image:e.image,children:n.jsxs(o.RadioGroup.Root,{id:e.identifier,name:a,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:t,value:r??"",onValueChange:f,disabled:u,children:[e.options.map((m,C)=>n.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[n.jsx(o.RadioGroup.Item,{value:m.value,onBlur:p,children:n.jsx(o.RadioGroup.Indicator,{children:n.jsx(o.LuIcon,{icon:Hn,className:"fill-current"})})}),n.jsx(o.Text,{size:t,accentColor:"base",className:"truncate",children:m.label})]},`${e.identifier}-${m.value}-${C}`)),!!r&&n.jsxs(o.Button,{onClick:g,className:"-mx-2 w-max",type:"button",variant:"ghost",accentColor:"base",size:t,children:[n.jsx(o.LuIcon,{icon:ne}),"Clear"]})]})})});en.displayName="RadioFieldInput";class me extends $e{type="radio";constructor(e){super(e)}serialize(){return super.serialize()}getOptions(){return super.getOptions()}duplicate(e){return new me({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new me(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(en,{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 $o=Q.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"]}}}),nn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=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(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs("div",{className:"flex flex-row items-center gap-1",children:[n.jsx(o.Rating.Root,{id:e.identifier,name:a,className:"flex items-center gap-0.5",value:r,onValueChange:f,disabled:u,children:g.map(m=>n.jsx(o.Rating.Item,{value:m,className:$o({size:t}),children:n.jsx(o.LuIcon,{icon:et,className:"size-full group-data-[active=true]:fill-current"})},`${e.identifier}-${m}`))}),!u&&r!==null&&n.jsx(o.IconButton,{onClick:p,type:"button",variant:"ghost",accentColor:"base",size:t,children:n.jsx(o.LuIcon,{icon:ne})})]})})});nn.displayName="RatingFieldInput";class Ce extends k{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 H({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}}getOptions(){return{...super.getOptions(),maxRating:this.maxRating}}duplicate(e){return new Ce({...this.getOptions(),identifier:e})}setOptions(e){const{maxRating:t,...r}=e;this.maxRating=t??this.maxRating,super.setOptions(r)}static deserialize(e){return new Ce(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(nn,{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 tn=d.createContext(null),ut=()=>{const i=d.use(tn);if(!i)throw new Error("useScannerContext must be used within a component tree wrapped by ScannerProvider.");return i},Do=()=>{const i=d.use(tn);if(!i)throw new Error("useScanner must be used within a component tree wrapped by ScannerProvider.");return i.openScanner},fi=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:a,modal:l,...s}=i;return n.jsxs(o.Overlay.Root,{open:t,onOpenChange:r,defaultOpen:a,modal:l,children:[!!e&&n.jsx(o.Overlay.Trigger,{asChild:!0,children:e}),n.jsxs(o.Overlay.Content,{children:[n.jsx(o.Overlay.Title,{className:"sr-only",children:"Scanner"}),n.jsx(o.Overlay.Description,{className:"sr-only",children:"Scan a barcode or a qr code."}),n.jsx(ht,{...s})]})]})});fi.displayName="Scanner";const ht=d.memo(i=>{const{paused:e,formats:t,timeBetweenDecodingAttempts:r,trySkew:a,onDecodeResult:l,onDecodeError:s,onError:h}=i,{wasmUrl:u}=ut(),{ref:f}=io.useZxing({wasmUrl:u,paused:e,formats:t,timeBetweenDecodingAttempts:r,trySkew:a,onDecodeResult:l,onDecodeError:s,onError:h,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(o.Overlay.Close,{asChild:!0,children:n.jsx(o.IconButton,{"aria-label":"close",variant:"soft",accentColor:"base",children:n.jsx(o.LuIcon,{icon:ne})})})}),n.jsx("div",{className:"max-h-full w-full grow overflow-hidden p-4",children:n.jsx("video",{className:"size-full",ref:f,muted:!0,playsInline:!0})})]})});ht.displayName="ScannerInternal";const ft=d.memo(i=>{const{children:e,wasmUrl:t}=i,[r,a]=d.useState(null),l=d.useCallback(()=>{a(null)},[]),s=d.useCallback(f=>{a(f(l))},[l]),h=d.useCallback(()=>{r&&(r.onClose&&r.onClose(),l())},[l,r]),u=d.useMemo(()=>({wasmUrl:t,openScanner:s}),[t,s]);return n.jsxs(tn,{value:u,children:[e,r&&n.jsx(fi,{open:!0,onOpenChange:h,...r})]})});ft.displayName="ScannerProvider";const rn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),[f,p]=d.useState(!1),g=d.useCallback(S=>{const z=S.target.value;s(z)},[s]),m=d.useCallback(()=>{l()},[l]),C=d.useCallback(S=>{s(S.rawValue.trim()),l(),p(!1)},[s,l]),v=d.useCallback(()=>{p(!0)},[]),y=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:h,image:e.image,children:[n.jsx(o.TextArea,{className:"field-sizing-content w-full",accentColor:"base",variant:"surface",size:t,id:e.identifier,name:a,value:r??"",placeholder:"Enter a qr or barcode",onChange:g,onBlur:m,disabled:u}),n.jsxs(o.Button,{onClick:v,className:"w-max",type:"button",variant:"soft",size:t,accentColor:"base",disabled:u,children:[n.jsx(o.LuIcon,{icon:Io}),"Scan"]}),n.jsx(fi,{open:f,onDecodeResult:C,onOpenChange:y})]})});rn.displayName="ScanFieldInput";class Me extends k{type="qr";constructor(e){super(e)}serialize(){return super.serialize()}getOptions(){return super.getOptions()}duplicate(e){return new Me({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new Me(e)}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 on=500,an=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=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(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsx(o.Input.Root,{accentColor:"base",variant:"surface",size:t,children:n.jsx(o.Input.Field,{id:e.identifier,className:"truncate",name:a,value:r??"",type:"text",placeholder:e.placeholder,onChange:f,onBlur:p,disabled:u,onKeyDown:g})})})});an.displayName="StringFieldInput";class Ve extends Ui{type="string";constructor(e){const{...t}=e,r=e.maxLength?Math.min(on,e.maxLength):on,a=e.minLength?Math.min(e.minLength,r):void 0;super({...t,maxLength:r,minLength:a})}serialize(){return super.serialize()}getOptions(){return super.getOptions()}duplicate(e){return new Ve({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){const{maximum_length:t,minimum_length:r,...a}=e;return new Ve({...a,maxLength:t,minLength:r,placeholder:"Enter a short description"})}render(){return n.jsx(an,{field:this})}}const ln=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=d.useCallback(g=>{const m=g.target.value;s(m)},[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:h,image:e.image,children:n.jsx(o.TextArea,{id:e.identifier,value:r??"",name:a,onChange:f,onBlur:p,className:"field-sizing-content min-h-12",placeholder:e.placeholder,resize:"vertical",accentColor:"base",variant:"surface",size:t,disabled:u})})});ln.displayName="TextFieldInput";class ye extends Ui{type="text";constructor(e){const t=e.maxLength?Math.min(De,e.maxLength):De,r=e.minLength?Math.min(e.minLength,t):void 0;super({...e,maxLength:t,minLength:r})}serialize(){return super.serialize()}getOptions(){return super.getOptions()}duplicate(e){return new ye({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}static deserialize(e){const{maximum_length:t,minimum_length:r,...a}=e;return new ye({...a,maxLength:t,minLength:r,placeholder:"Enter a description"})}render(){return n.jsx(ln,{field:this})}}const sn=Po(),pt=new Set(sn);function Po(i=!0){const e=new Set;for(let t=-12;t<=14;t++){const r=t>=0?"+":"-",a=Math.abs(t).toString().padStart(2,"0");e.add(`${r}${a}: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 a=r>=0?"+":"-",l=Math.floor(Math.abs(r)).toString().padStart(2,"0");e.add(`${a}${l}:30`)}}return Array.from(e).sort((t,r)=>gt(t)-gt(r))}function gt(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 jo="+00:00",Uo=/^T([01]\d|2[0-3]):([0-5]\d):00([+-]\d{2}:\d{2})$/,pi=i=>typeof i=="string"&&pt.has(i),mt=()=>{const i=-new Date().getTimezoneOffset(),e=i>=0?"+":"-",t=Math.abs(i),r=Math.floor(t/60),a=t%60,l=`${e}${r.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}`;return pi(l)?l:jo};function Ct(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 Pe=i=>{const e=Uo.exec(i);if(!e)return null;const t=e[3];return pi(t)?{hours:Number(e[1]),minutes:Number(e[2]),utcOffset:t}:null},A=i=>typeof i=="string"&&Pe(i)!==null,dn=(i,e,t=mt())=>{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(!pi(t))throw new Error("Unsupported UTC offset");const r=i.toString().padStart(2,"0"),a=e.toString().padStart(2,"0");return`T${r}:${a}:00${t}`},gi=i=>`UTC${i}`,oe=i=>{const e=Pe(i);if(!e)throw new Error(`Invalid time value: ${i}`);return(e.hours*60+e.minutes-Ct(e.utcOffset)+1440)%1440},mi=(i,e=!0)=>{const t=Pe(i);if(!t)throw new Error(`Invalid time value: ${i}`);const r=(t.hours%12||12).toString().padStart(2,"0"),a=t.minutes.toString().padStart(2,"0"),l=t.hours>=12?"PM":"AM",s=`${r}:${a} ${l}`;return e?`${s} ${gi(t.utcOffset)}`:s},je=i=>typeof i=="object"&&(A(i.from)||A(i.to)),cn=(i,e)=>{const t=oe(i),r=e.from?oe(e.from):null,a=e.to?oe(e.to):null;return r===null&&a===null?!0:r===null?t<=a:a===null?t>=r:r<=a?t>=r&&t<=a:t>=r||t<=a},Ci=d.memo(i=>{const{value:e,onChange:t,onBlur:r,disabled:a,size:l="md",id:s,name:h,compact:u=!1}=i,f=e?Pe(e):null,p=f?`${f.hours.toString().padStart(2,"0")}:${f.minutes.toString().padStart(2,"0")}`:"",g=d.useCallback(v=>{const y=v.target.value;if(!y){t(null);return}const[S,z]=y.split(":").map(Number);t(dn(S,z,f?.utcOffset))},[t,f?.utcOffset]),m=d.useCallback(v=>{f&&(t(dn(f.hours,f.minutes,v)),r?.())},[r,t,f]),C=d.useCallback(v=>{v||r?.()},[r]);return n.jsxs("div",{className:"flex min-w-0 gap-2",children:[n.jsx(o.Input.Root,{className:"min-w-0 grow",accentColor:"base",variant:"surface",size:l,children:n.jsx(o.Input.Field,{id:s,name:h,className:Q.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:a})}),n.jsxs(o.Menu.Root,{align:"end",onOpenChange:C,children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsxs(o.Button,{type:"button",className:u?"!justify-between":"min-w-32 !justify-between",accentColor:"base",variant:"surface",size:l,disabled:a||!f,children:[n.jsx(o.Text,{className:"truncate",highContrast:!!f,children:f?gi(f.utcOffset):"UTC offset"}),n.jsx(o.LuIcon,{icon:si})]})}),n.jsx(o.Menu.Content,{size:l,children:n.jsx(o.Menu.Scroll,{children:n.jsx(o.Menu.SelectGroup,{required:!0,value:f?.utcOffset,onValueChange:m,children:sn.map(v=>n.jsxs(o.Menu.SelectItem,{value:v,children:[n.jsx(o.Menu.SelectedIndicator,{children:n.jsx(o.LuIcon,{icon:J})}),gi(v)]},v))})})})]})]})});Ci.displayName="TimeFieldControl";const un=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e});return n.jsx(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsx(Ci,{id:e.identifier,name:a,size:t,value:r,onChange:s,onBlur:l,disabled:u})})});un.displayName="TimeFieldInput";class xe extends k{type="time";constructor(e){super(e)}static deserialize(e){return new xe(e)}getOptions(){return super.getOptions()}duplicate(e){return new xe({...this.getOptions(),identifier:e})}setOptions(e){super.setOptions(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return n.jsx(un,{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 hn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=d.useRef(null),p=d.useCallback(()=>{f.current?.click()},[]),g=d.useCallback(()=>{if(!f.current)return;const S=f.current.files;if(!S){l();return}const z=Array.from(S).map(I=>re.from(b.v4(),I)),x=[...r,...z];s(x),l()},[l,s,r]),m=d.useCallback(S=>{const z=r.filter(({uuid:x})=>x!==S.uuid);s(z),l()},[r,s,l]);d.useEffect(()=>{if(!f.current)return;const S=new AbortController;return f.current.addEventListener("cancel",()=>{l()},{signal:S.signal}),()=>{S.abort()}},[l,r]);const y=e.maxFiles>1?"Select files":"Select a file";return n.jsxs(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:[n.jsxs(o.Button,{className:"w-max",size:t,variant:"surface",accentColor:"base",onClick:p,type:"button",disabled:u,children:[n.jsx(o.LuIcon,{icon:Li}),y]}),n.jsx("input",{id:e.identifier,name:a,type:"file",ref:f,accept:e.extensions?.join(","),multiple:e.maxFiles>1,className:"hidden",onChange:g,value:""}),r.length>0&&n.jsx("div",{className:"mt-1 flex h-max flex-col gap-2",children:r.map(S=>n.jsx(Zi,{size:t,fileOrPromise:S,onRemove:m,disabled:u},S.uuid))})]})});hn.displayName="UploadFieldInput";class ve extends k{type="upload";extensions;maxFileSize;maxFiles;constructor(e){const{extensions:t,maximum_files:r,maximum_size:a,...l}=e;super(l),this.maxFileSize=typeof a=="number"?a:void 0,this.maxFiles=Math.max(typeof r=="number"?r:1,1),this.extensions=t}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new H({label:"How many files can be uploaded?",description:"By default, only one file can be uploaded.",required:!1,minimum:1,maximum:10,identifier:`${t}maximum_files`,integers:!0}),showDirectly:!1},{field:new H({label:"What is the maximum size of each file?",description:`Maximum file size in megabytes (between 1MB–${qe}MB).`,required:!1,identifier:`${t}maximum_size`,minimum:1,maximum:qe,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.maxFileSize??qe,r=t*1e3*1e3,a=this.maxFiles||1;return e.push(l=>{if(l.some(s=>s instanceof re&&s.size>r))return`Files must be at most ${t}MB.`}),e.push(l=>{if(l.length>a)return`You can only upload ${a} files.`}),e}serialize(){return{...super.serialize(),extensions:this.extensions,maximum_size:this.maxFileSize,maximum_files:this.maxFiles}}getOptions(){return{...super.getOptions(),extensions:this.extensions,maximum_size:this.maxFileSize,maximum_files:this.maxFiles}}duplicate(e){return new ve({...this.getOptions(),identifier:e})}setOptions(e){const{extensions:t,maximum_files:r,maximum_size:a,...l}=e;this.maxFileSize=typeof a=="number"?a:this.maxFileSize,this.maxFiles=typeof r=="number"?r:this.maxFiles,this.extensions=t,super.setOptions(l)}static deserialize(e){return new ve(e)}serializeValue(e){return[]}deserializeValue(e){return[]}render(){return n.jsx(hn,{field:this})}isSerializedValue(e){return Array.isArray(e)&&e.length===0}isValue(e){return Array.isArray(e)?e.every(t=>t instanceof pe||t instanceof re):!1}areValuesEqual(e,t){return hi(e,t)}blankValue(){return[]}blankSerializedValue(){return[]}areSerializedValuesEqual(e,t){return e.length===t.length}}const fn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(L),{value:r,name:a,onBlur:l,onChange:s,error:h,disabled:u}=D({field:e}),f=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(B,{size:t,inputId:e.identifier,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs("div",{className:"flex w-full gap-2",children:[n.jsx(o.Input.Root,{className:"grow",accentColor:"base",variant:"surface",size:t,children:n.jsx(o.Input.Field,{id:e.identifier,className:"truncate",name:a,value:r?r.toString():"",type:"url",inputMode:"url",placeholder:e.placeholder,onChange:f,onBlur:p,disabled:u,onKeyDown:g})}),n.jsx(o.IconButton,{size:t,variant:"soft",accentColor:"base",type:"button",disabled:r===null,onClick:m,children:n.jsx(o.LuIcon,{icon:So})})]})})});fn.displayName="URLFieldInput";class Ie extends k{type="url";placeholder;constructor(e){const{placeholder:t="https://example.com",...r}=e;super(r),this.placeholder=t}serialize(){return{...super.serialize(),placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),placeholder:this.placeholder}}duplicate(e){return new Ie({...this.getOptions(),identifier:e})}setOptions(e){const{placeholder:t,...r}=e;this.placeholder=t??this.placeholder,super.setOptions(r)}static deserialize(e){return new Ie(e)}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(fn,{field:this})}}const pn={date:be,time:xe,number:H,boolean:ce,select:te,string:Ve,url:Ie,text:ye,upload:ve,qr:Me,"multi-string":de,"multi-select":ie,radio:me,"checkbox-list":ue,"pass-fail":ge,otp:he,rating:Ce},Vt=Object.keys(pn),_={"checkbox-list":{description:"Allows the user to select a multiple options from a list.",group:q.Selection,icon:vo,name:"Checkbox list"},"multi-select":{description:"Allows the user to select a multiple options from a list of options.",group:q.Selection,icon:No,name:"Multi-select"},"multi-string":{description:"Allows the user to provide multiple unique strings.",group:q.Text,icon:xo,name:"Multi-string"},"pass-fail":{description:"Track pass, fail, or N/A outcome.",group:q.Assessment,icon:yo,name:"Pass - Fail"},boolean:{description:"Perfect for both optional and required yes/no questions.",group:q.Selection,icon:To,name:"Checkbox"},date:{description:"Allows specifying a date.",group:q.Temporal,icon:po,name:"Date"},time:{description:"Allows specifying a time and UTC offset.",group:q.Temporal,icon:Ao,name:"Time"},number:{description:"Allows specifying a number within a given range.",group:q.Numeric,icon:wo,name:"Number"},otp:{description:"Allows specifying a number within a given range.",group:q.Verification,icon:qo,name:"OTP"},qr:{description:"Used for scanning/reading QR and barcodes.",group:q.Capture,icon:Oo,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:et,name:"Rating"},select:{description:"Allows the user to select a single option from a list of options.",group:q.Selection,icon:Mo,name:"Dropdown"},string:{description:"Short text fields can hold up to 500 characters on a single line.",group:q.Text,icon:Bo,name:"Short Text"},text:{description:"Paragraph fields can hold up to 10000 characters and can have multiple lines.",group:q.Text,icon:uo,name:"Paragraph"},upload:{description:"Allows a file to be uploaded.",group:q.Capture,icon:Li,name:"Upload"},url:{description:"Allows users to enter a URL.",group:q.Text,icon:bo,name:"URL"}},yt={[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"}},qe=50,vt=qe*1e3,St=vt*1e3,E="Unlabelled",gn="Unlabelled";class M{id;label;getApplyFn;serialize;deserialize;constructor(e){const{id:t,getApplyFn:r,label:a,serialize:l,deserialize:s}=e;this.id=t,this.getApplyFn=r,this.label=a,this.serialize=l,this.deserialize=s}static create(e){return new M(e)}}const zt=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}),wt=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)}),Nt=M.create({id:"date-before",getApplyFn:i=>e=>e.getTime()<i.getTime(),label:"before",serialize:i=>i.toISOString(),deserialize:i=>new Date(i)}),Mt=M.create({id:"date-after",label:"after",getApplyFn:i=>e=>e.getTime()>i.getTime(),serialize:i=>i.toISOString(),deserialize:i=>new Date(i)}),xt=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})}),It=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})}),qt=M.create({id:"has-files",label:"is",getApplyFn:i=>e=>e.length>0,serialize:i=>i,deserialize:i=>i}),Ot=M.create({id:"does-not-have-files",label:"is not",getApplyFn:i=>e=>e.length===0,serialize:i=>i,deserialize:i=>i}),mn=M.create({id:"number-equals",getApplyFn:i=>e=>e===i,label:"is",serialize:i=>i,deserialize:i=>i}),Cn=M.create({id:"number-not-equals",getApplyFn:i=>e=>e!==i,label:"is not",serialize:i=>i,deserialize:i=>i}),Vn=M.create({id:"number-less-than",getApplyFn:i=>e=>e<i,label:"is less than",serialize:i=>i,deserialize:i=>i}),yn=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}),vn=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}),zn=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}),Fn=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}),_t=M.create({id:"pass-fail-equals",getApplyFn:i=>e=>e===i,label:"is",serialize:i=>i,deserialize:i=>i}),Tt=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}),ae=M.create({id:"nullable-string-equals",getApplyFn:i=>e=>e===i,label:"is",serialize:i=>i,deserialize:i=>i}),le=M.create({id:"nullable-string-not-equals",getApplyFn:i=>e=>e!==i,label:"is not",serialize:i=>i,deserialize:i=>i}),Oe=M.create({id:"string-includes",getApplyFn:i=>e=>e.includes(i),label:"includes",serialize:i=>i,deserialize:i=>i}),_e=M.create({id:"string-excludes",getApplyFn:i=>e=>!e.includes(i),label:"does not include",serialize:i=>i,deserialize:i=>i}),wn=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}),bn=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}),yi=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}),vi=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}),Si=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}),zi=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}),Et=M.create({id:"time-not-equals",label:"is not",getApplyFn:i=>e=>e!==i,serialize:i=>i,deserialize:i=>i}),$t=M.create({id:"time-before",label:"before",getApplyFn:i=>e=>oe(e)<oe(i),serialize:i=>i,deserialize:i=>i}),Dt=M.create({id:"time-after",label:"after",getApplyFn:i=>e=>oe(e)>oe(i),serialize:i=>i,deserialize:i=>i}),Pt=M.create({id:"time-range-in",label:"in between",getApplyFn:i=>e=>cn(e,i),serialize:i=>i,deserialize:i=>i}),jt=M.create({id:"time-range-not-in",label:"not in between",getApplyFn:i=>e=>!cn(e,i),serialize:i=>i,deserialize:i=>i}),V=i=>i;class P extends Ee{id;conditionValue;conditionModifier;field;constructor(e){const{id:t,field:r,conditionValue:a,conditionModifier:l}=e;super(),this.id=t,this.field=r,this.conditionValue=a,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),a=r?e.modifier.getApplyFn(t):null;return l=>{if(!r)return!0;const s=this.transformValue(l);return e.isValueValid(s)?a(s):!1}}}const Ut=d.memo,Se=Ut(function(i){const{ref:e,children:t,...r}=i,a=d.useCallback(l=>typeof t=="function"?n.jsxs(n.Fragment,{children:[t(l),n.jsx(o.Menu.SelectedIndicator,{className:"ml-[auto]",children:n.jsx(o.LuIcon,{icon:J})})]}):n.jsxs(n.Fragment,{children:[t,n.jsx(o.Menu.SelectedIndicator,{className:"ml-[auto]",children:n.jsx(o.LuIcon,{icon:J})})]}),[t]);return n.jsx(o.Menu.SelectItem,{ref:e,...r,children:a})}),Gt=Ut(function(i){const{ref:e,children:t,...r}=i,a=d.useCallback(l=>typeof t=="function"?n.jsxs(n.Fragment,{children:[t(l),n.jsx(o.Menu.SelectedIndicator,{className:"ml-auto",children:n.jsx(o.LuIcon,{icon:J})})]}):n.jsxs(n.Fragment,{children:[t,n.jsx(o.Menu.SelectedIndicator,{className:"ml-auto",children:n.jsx(o.LuIcon,{icon:J})})]}),[t]);return n.jsx(o.Menu.MultiSelectItem,{ref:e,...r,children:a})}),Nn=d.memo(i=>{const{ref:e,children:t,...r}=i,a=d.useCallback(l=>typeof t=="function"?n.jsxs(n.Fragment,{children:[t(l),n.jsx(o.Menu.CheckboxItemIndicator,{className:"ml-[auto]",children:s=>s?n.jsx(o.LuIcon,{icon:di}):n.jsx(o.LuIcon,{icon:J})})]}):n.jsxs(n.Fragment,{children:[t,n.jsx(o.Menu.CheckboxItemIndicator,{className:"ml-[auto]",children:s=>s?n.jsx(o.LuIcon,{icon:di}):n.jsx(o.LuIcon,{icon:J})})]}),[t]);return n.jsx(o.Menu.SelectAllItem,{ref:e,...r,children:a})});Nn.displayName="SelectAllItemTemplate";const U=i=>{const{children:e,condition:t,size:r="sm",variant:a,accentColor:l,radius:s}=i,h=d.useCallback(u=>{t.setConditionModifier(u)},[t]);return n.jsxs(o.Menu.Root,{align:"start",children:[n.jsx(o.Menu.ClickTrigger,{children:e}),n.jsx(o.Menu.Content,{size:r,variant:a,radius:s,accentColor:l,children:n.jsx(o.Menu.SelectGroup,{required:!0,value:t.getConditionModifier(),onValueChange:h,children:t.getConditionModifiers().map(([u,f])=>n.jsx(Se,{value:u,children:f.modifier.label},u))})})]})},Fi=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:a,modal:l,size:s,align:h,accentColor:u="base",...f}=i;return n.jsxs(o.Popover.Root,{open:t,onOpenChange:r,defaultOpen:a,modal:l,children:[n.jsx(o.Popover.Trigger,{asChild:!0,children:e}),n.jsx(o.Popover.Content,{size:s,align:h,children:n.jsx(o.DayPicker,{size:s,accentColor:u,...f})})]})});Fi.displayName="DayPickerPopover";const kt=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:a,modal:l,size:s,accentColor:h="base",values:u,onValuesChange:f,placeholder:p="Enter text",...g}=i,[m,C]=d.useState(""),v=d.useCallback(x=>{C(x.target.value)},[]),y=d.useCallback(x=>{x.key==="Enter"&&(x.preventDefault(),x.stopPropagation(),f([...u,m]),C(""))},[m,f,u]),S=d.useCallback(()=>{f([...u,m]),C("")},[m,f,u]),z=d.useCallback(x=>{const I=[...u];I.splice(x,1),f(I)},[f,u]);return n.jsxs(o.Popover.Root,{open:t,onOpenChange:r,defaultOpen:a,modal:l,children:[n.jsx(o.Popover.Trigger,{asChild:!0,children:e}),n.jsx(o.Popover.Content,{size:s,onClick:o.stopPropagation,accentColor:h,...g,children:n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsxs("div",{className:"flex gap-2",children:[n.jsx(o.Input.Root,{className:"grow",accentColor:"base",variant:"outline",size:"sm",children:n.jsx(o.Input.Field,{value:m,onChange:v,onKeyDown:y,placeholder:p,...g})}),n.jsx(o.IconButton,{size:"sm",accentColor:"base",variant:"soft",type:"button",onClick:S,children:n.jsx(o.LuIcon,{icon:Z})})]}),u.length>0&&n.jsx("div",{className:"flex flex-col gap-1",children:u.map((x,I)=>n.jsxs(o.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(o.IconButton,{size:"xs",variant:"ghost",type:"button",accentColor:"base",onClick:()=>{z(I)},children:n.jsx(o.LuIcon,{icon:ne})})]},`${x}-${I}`))})]})})]})});kt.displayName="NumberInputPopover";const ze=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:a,modal:l,size:s,accentColor:h="base",value:u,onValueChange:f,placeholder:p="Enter a number",...g}=i,[m,C]=d.useState(null);d.useEffect(()=>{u!==void 0&&C(u)},[u]);const v=d.useCallback(S=>{const z=S.target.valueAsNumber;C(isNaN(z)?null:z)},[]),y=d.useCallback(S=>{const z=S.target.valueAsNumber;f?.(isNaN(z)?null:z)},[f]);return n.jsxs(o.Popover.Root,{open:t,onOpenChange:r,defaultOpen:a,modal:l,children:[n.jsx(o.Popover.Trigger,{asChild:!0,children:e}),n.jsx(o.Popover.Content,{size:s,onClick:o.stopPropagation,...g,children:n.jsx(o.Input.Root,{size:s,accentColor:h,children:n.jsx(o.Input.Field,{placeholder:p,type:"number",value:m??"",onChange:v,onBlur:y})})})]})});ze.displayName="NumberInputPopover";const j=i=>{const{condition:e,onClick:t,...r}=i,a=d.useCallback(()=>{t(e)},[e,t]);return n.jsx(o.IconButton,{onClick:a,...r,children:n.jsx(o.LuIcon,{icon:ne})})};j.displayName="RemoveConditionButton";const Ue=d.memo(i=>{const{ref:e,selectFieldOptions:t,...r}=i,a=d.useMemo(()=>t.map(l=>typeof l=="string"?{value:l,label:l}:l),[t]);return n.jsxs(o.Menu.MultiSelectGroup,{ref:e,...r,children:[n.jsx(Nn,{children:"Select all"}),a.map(l=>n.jsx(Gt,{value:l.value,children:n.jsx("span",{className:"truncate",children:l.label})},l.value))]})});Ue.displayName="SelectFieldOptionMultiSelectGroup";const Mn=d.memo(i=>{const{ref:e,selectFieldOptions:t,...r}=i,a=d.useMemo(()=>t.map(l=>typeof l=="string"?{value:l,label:l}:l),[t]);return n.jsx(o.Menu.SelectGroup,{ref:e,...r,children:a.map(l=>n.jsx(Se,{value:l.value,children:n.jsx("span",{className:"truncate",children:l.label})},l.value))})});Mn.displayName="SelectFieldOptionSelectGroup";const Te=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:a,modal:l,size:s,accentColor:h="base",value:u,onValueChange:f,placeholder:p="Enter text",...g}=i,[m,C]=d.useState(""),v=d.useCallback(S=>{C(S.target.value)},[]),y=d.useCallback(S=>{const z=S.target.value;f?.(z)},[f]);return d.useEffect(()=>{u&&C(u)},[u]),n.jsxs(o.Popover.Root,{open:t,onOpenChange:r,defaultOpen:a,modal:l,children:[n.jsx(o.Popover.Trigger,{asChild:!0,children:e}),n.jsx(o.Popover.Content,{size:s,onClick:o.stopPropagation,...g,children:n.jsx(o.Input.Root,{size:s,accentColor:h,children:n.jsx(o.Input.Field,{placeholder:p,type:"text",value:m,onChange:v,onBlur:y})})})]})});Te.displayName="TextInputPopover";const wi=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:a,modal:l,size:s="sm",accentColor:h="base",value:u,onValueChange:f,...p}=i;return n.jsxs(o.Popover.Root,{open:t,onOpenChange:r,defaultOpen:a,modal:l,children:[n.jsx(o.Popover.Trigger,{asChild:!0,children:e}),n.jsx(o.Popover.Content,{size:s,onClick:o.stopPropagation,accentColor:h,...p,children:n.jsx(Ci,{compact:!0,size:s,value:u,onChange:f})})]})});wi.displayName="TimeInputPopover";const Ht=i=>{const{condition:e,onRemove:t}=i,r=e.getConditionValue(),a=e.getConditionModifier(),l=()=>{switch(r){case void 0:return"...";case!0:return"true";case!1:return"false";case null:return"empty"}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[e.field.type].icon}),n.jsx("span",{className:"truncate",children:e.field.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[a].modifier.label})}),n.jsxs(o.Menu.Root,{children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:l()})}),n.jsx(o.Menu.Content,{size:"sm",children:n.jsxs(o.Menu.SelectGroup,{required:!0,value:r,onValueChange:e.setConditionValue,children:[n.jsx(Se,{value:!0,children:"true"}),n.jsx(Se,{value:!1,children:"false"})]})})]}),n.jsx(j,{condition:e,onClick:t})]})},Jt={equals:V({modifier:zt,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ft,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Ge extends P{modifiers=Jt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=Jt[a];let h;return r!==void 0&&(h=s.modifier.deserialize(r)),new Ge({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(Ht,{condition:this,...e},this.id)}}const Le=[],Wt=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{u.length>0?e.setConditionValue(u):e.setConditionValue(void 0)},[e]),h=()=>a===void 0?"...":a===null?"empty":a.length===0?"...":`${a.length} options`;return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"soft",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"soft",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsxs(o.Menu.Root,{children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.Button,{type:"button",className:"truncate",children:h()})}),n.jsx(o.Menu.Content,{size:"sm",children:n.jsx(Ue,{values:a??Le,selectFieldOptions:e.field.options,onValuesChange:s})})]}),n.jsx(j,{condition:e,onClick:t})]})},Xt={equals:V({modifier:Si,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:zi,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:yi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),none:V({modifier:vi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ke extends P{modifiers=Xt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=Xt[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ke({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(Wt,{condition:this,...e},this.id)}}class bi extends Ee{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,a])=>r(a(e)))}}const Go=(i,e)=>d.useMemo(()=>{const t=new bi(i);return t.observe(r=>e(r.getConditions())),t},[i,e]),Kt=i=>{const{condition:e,onRemove:t}=i,r=e.getConditionValue(),a=e.getConditionModifier(),l=()=>{switch(a){case"equals":case"notEquals":{const s=e.modifiers.equals,h=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Fi,{required:!1,size:"sm",mode:"single",selected:h??void 0,onSelect:u=>e.setConditionValue(u),children:n.jsx(o.Button,{type:"button",className:"truncate",children:h!==void 0?h?.toLocaleDateString()??"empty":"..."})})}case"before":case"after":{const s=e.modifiers.after,h=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Fi,{required:!0,size:"sm",mode:"single",selected:h,onSelect:e.setConditionValue,children:n.jsx(o.Button,{type:"button",className:"truncate",children:h?h.toLocaleDateString():"..."})})}case"in":case"notIn":{const s=e.modifiers.in,h=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Fi,{required:!0,mode:"range",size:"sm",selected:h,onSelect:e.setConditionValue,children:n.jsx(o.Button,{className:"truncate",children:h?`${h.from?.toLocaleDateString()} - ${h.to?.toLocaleDateString()}`:"..."})})}}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[e.field.type].icon}),n.jsx("span",{className:"truncate",children:e.field.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[a].modifier.label})}),l(),n.jsx(j,{condition:e,onClick:t})]})},Yt={equals:V({modifier:wt,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:Nt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>i instanceof Date,isSerializedValueValid:i=>typeof i=="string"}),after:V({modifier:Mt,isValueValid:i=>i instanceof Date,isConditionValueValid:i=>i instanceof Date,isSerializedValueValid:i=>typeof i=="string"}),in:V({modifier:xt,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: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})};class He extends P{modifiers=Yt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=Yt[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new He({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(Kt,{condition:this,...e},this.id)}}const Zt=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{u.length>0?e.setConditionValue(u):e.setConditionValue(void 0)},[e]),h=()=>a===void 0?"...":a===null?"empty":a.length===0?"...":`${a.length} options`;return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsxs(o.Menu.Root,{children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.Button,{type:"button",className:"truncate",children:h()})}),n.jsx(o.Menu.Content,{size:"sm",children:n.jsx(Ue,{values:a??Le,selectFieldOptions:r.options,onValuesChange:s})})]}),n.jsx(j,{condition:e,onClick:t})]})},Qt={equals:V({modifier:Si,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:zi,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:yi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),none:V({modifier:vi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Je extends P{modifiers=Qt;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=Qt[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Je({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(Zt,{condition:this,...e},this.id)}}const Rt=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{e.setConditionValue(u.length>0?u:void 0)},[e]),h=()=>{if(a===void 0)return"...";if(a===null)return"empty";switch(a.length){case 0:return"...";case 1:return a[0].toString();default:return`${a.length} values`}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsx(kt,{values:a??Le,onValuesChange:s,children:n.jsx(o.Button,{type:"button",className:"truncate",children:h()})}),n.jsx(j,{condition:e,onClick:t})]})},er={equals:V({modifier:Si,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:zi,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:yi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),none:V({modifier:vi,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class We extends P{modifiers=er;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=er[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new We({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(Rt,{condition:this,...e},this.id)}}const ir=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=d.useCallback(u=>{e.setConditionValue(u??void 0)},[e]),h=()=>{switch(l){case"equals":case"greaterThanOrEquals":case"lessThanOrEquals":case"greaterThan":case"lessThan":{const u=e.modifiers.greaterThan,f=a!==void 0&&u.isConditionValueValid(a)?a:void 0;return n.jsx(ze,{value:f??null,onValueChange:s,size:"sm",children:n.jsx(o.Button,{type:"button",className:"truncate",children:f!==void 0?f??"empty":"..."})})}case"inRange":case"notInRange":{const u=e.modifiers.inRange,f=a!==void 0&&u.isConditionValueValid(a)?a:void 0;return n.jsxs(n.Fragment,{children:[n.jsx(ze,{value:f?.from??null,onValueChange:p=>{e.setConditionValue({from:p,to:f?.to??null})},size:"sm",children:n.jsx(o.Button,{className:"truncate",children:f?.from??"..."})}),n.jsx(ze,{value:f?.to??null,onValueChange:p=>{e.setConditionValue({from:f?.from??null,to:p})},size:"sm",children:n.jsx(o.Button,{className:"truncate",children:f?.to??"..."})})]})}}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),h(),n.jsx(j,{condition:e,onClick:t})]})},nr={equals:V({modifier:mn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),notEquals:V({modifier:Cn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThan:V({modifier:Vn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThanOrEquals:V({modifier:yn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),greaterThan:V({modifier:vn,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:zn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"}),notInRange:V({modifier:Fn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"})};class Xe extends P{modifiers=nr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=nr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Xe({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(ir,{condition:this,...e},this.id)}}const tr=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Te,{value:a??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(o.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:a||"..."})})})}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(j,{condition:e,onClick:t})]})},rr={equals:V({modifier:ae,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Oe,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:_e,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Ke extends P{modifiers=rr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=rr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ke({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(tr,{condition:this,...e},this.id)}}const or=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":{const h=e.modifiers.equals,u=a!==void 0&&h.isConditionValueValid(a)?a:void 0;return n.jsxs(o.Menu.Root,{children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.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(o.Menu.Content,{size:"sm",children:n.jsx(o.Menu.SelectGroup,{required:!1,value:u,onValueChange:e.setConditionValue,children:Ne.map(f=>{const{label:p}=fe[f];return n.jsx(Se,{value:f,children:n.jsx("span",{className:"truncate",children:p})},f)})})})]})}case"includes":case"excludes":{const h=e.modifiers.includes,u=a!==void 0&&h.isConditionValueValid(a)?a:void 0;return n.jsxs(o.Menu.Root,{children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.Button,{type:"button",children:u?`${u.length} statuses`:"..."})}),n.jsx(o.Menu.Content,{size:"sm",children:n.jsxs(o.Menu.MultiSelectGroup,{values:u??Le,onValuesChange:e.setConditionValue,children:[n.jsx(Nn,{children:"Select all"}),Ne.map(f=>{const{label:p,icon:g}=fe[f];return n.jsxs(Gt,{value:f,children:[n.jsx(o.LuIcon,{icon:g}),n.jsx("span",{className:"truncate",children:p})]},f)})]})})]})}}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(j,{condition:e,onClick:t})]})},ar={equals:V({modifier:_t,isValueValid:i=>i!==null,isConditionValueValid:i=>typeof i=="string",isSerializedValueValid:i=>typeof i=="string"}),notEquals:V({modifier:Tt,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 Ye extends P{modifiers=ar;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=ar[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ye({field:t,conditionModifier:a,conditionValue:h,...l})}transformValue(e){return e.status}render(e){return n.jsx(or,{condition:this,...e},this.id)}}const lr=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=d.useMemo(()=>r.options.map(f=>typeof f=="string"?{value:f,label:f}:f),[r.options]),h=d.useMemo(()=>{const f={};for(const p of s)f[p.value]=p.label;return f},[s]),u=()=>{switch(l){case"equals":case"notEquals":{const f=e.modifiers.equals,p=a!==void 0&&f.isConditionValueValid(a)?a:void 0;return n.jsxs(o.Menu.Root,{children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:p!==void 0?p?h[p]:"empty":"..."})})}),n.jsx(o.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 f=e.modifiers.includes,p=a!==void 0&&f.isConditionValueValid(a)?a:void 0;return n.jsxs(o.Menu.Root,{children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.Button,{type:"button",children:p?`${p.length} options`:"..."})}),n.jsx(o.Menu.Content,{size:"sm",children:n.jsx(Ue,{selectFieldOptions:r.options,values:p??Le,onValuesChange:e.setConditionValue})})]})}}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),u(),n.jsx(j,{condition:e,onClick:t})]})},sr={equals:V({modifier:ae,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),notEquals:V({modifier:le,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),includes:V({modifier:wn,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)}),excludes:V({modifier:bn,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)})};class Ze extends P{modifiers=sr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=sr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ze({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(lr,{condition:this,...e},this.id)}}const dr=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"greaterThanOrEquals":case"lessThanOrEquals":case"greaterThan":case"lessThan":{const h=e.modifiers[l],u=a!==void 0&&h.isConditionValueValid(a)?a:void 0;return n.jsx(ze,{value:u??null,onValueChange:f=>e.setConditionValue(f??void 0),size:"sm",children:n.jsx(o.Button,{type:"button",className:"truncate",children:u!==void 0?u:"..."})})}case"inRange":case"notInRange":{const h=e.modifiers.inRange,u=a!==void 0&&h.isConditionValueValid(a)?a:void 0;return n.jsxs(n.Fragment,{children:[n.jsx(ze,{value:u?.from??null,onValueChange:f=>{e.setConditionValue({from:f,to:u?.to??null})},size:"sm",children:n.jsx(o.Button,{className:"truncate",children:u?.from??"..."})}),n.jsx(ze,{value:u?.to??null,onValueChange:f=>{e.setConditionValue({from:u?.from??null,to:f})},size:"sm",children:n.jsx(o.Button,{className:"truncate",children:u?.to??"..."})})]})}}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(j,{condition:e,onClick:t})]})},cr={equals:V({modifier:mn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),notEquals:V({modifier:Cn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThan:V({modifier:Vn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),lessThanOrEquals:V({modifier:yn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="number",isSerializedValueValid:i=>typeof i=="number"}),greaterThan:V({modifier:vn,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:zn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"}),notInRange:V({modifier:Fn,isValueValid:i=>typeof i=="number",isConditionValueValid:i=>typeof i=="object",isSerializedValueValid:i=>typeof i=="object"})};class Qe extends P{modifiers=cr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=cr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Qe({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(dr,{condition:this,...e},this.id)}}const ur=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Te,{value:a??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(o.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:a||"..."})})})}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(j,{condition:e,onClick:t})]})},hr={equals:V({modifier:ae,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Oe,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:_e,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Re extends P{modifiers=hr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=hr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Re({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(ur,{condition:this,...e},this.id)}}const fr=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=d.useMemo(()=>r.options.map(p=>typeof p=="string"?{value:p,label:p}:p),[r.options]),h=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]),f=()=>{switch(l){case"equals":case"notEquals":{const p=e.modifiers.equals,g=a!==void 0&&p.isConditionValueValid(a)?a:void 0;return n.jsxs(o.Menu.Root,{children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:g!==void 0?g?h[g]:"empty":"..."})})}),n.jsx(o.Menu.Content,{size:"sm",children:n.jsx(Mn,{required:!1,selectFieldOptions:r.options,value:g??void 0,onValueChange:e.setConditionValue})})]})}case"includes":case"excludes":{const p=e.modifiers.includes,g=a!==void 0&&p.isConditionValueValid(a)?a:void 0;return n.jsxs(o.Menu.Root,{children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.Button,{type:"button",children:g?`${g.length} options`:"..."})}),n.jsx(o.Menu.Content,{size:"sm",children:n.jsx(Ue,{selectFieldOptions:r.options,values:g??Le,onValuesChange:u})})]})}}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),f(),n.jsx(j,{condition:e,onClick:t})]})},pr={equals:V({modifier:ae,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),notEquals:V({modifier:le,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>!Array.isArray(i),isSerializedValueValid:i=>!Array.isArray(i)}),includes:V({modifier:wn,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)}),excludes:V({modifier:bn,isValueValid:i=>typeof i=="string",isConditionValueValid:i=>Array.isArray(i),isSerializedValueValid:i=>Array.isArray(i)})};class ei extends P{modifiers=pr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=pr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ei({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(fr,{condition:this,...e},this.id)}}const gr=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Te,{value:a??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(o.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:a||"..."})})})}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(j,{condition:e,onClick:t})]})},mr={equals:V({modifier:ae,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Oe,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:_e,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ii extends P{modifiers=mr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=mr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ii({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(gr,{condition:this,...e},this.id)}}const Cr=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Te,{value:a??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(o.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:a||"..."})})})}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(j,{condition:e,onClick:t})]})},Vr={equals:V({modifier:ae,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Oe,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:_e,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ni extends P{modifiers=Vr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=Vr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ni({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(Cr,{condition:this,...e},this.id)}}const yr=i=>{const{condition:e,onRemove:t}=i,r=e.getConditionValue(),a=e.getConditionModifier(),l=()=>{switch(a){case"equals":case"notEquals":case"before":case"after":{const s=typeof r=="string"?r:void 0;return n.jsx(wi,{value:s,onValueChange:h=>e.setConditionValue(h??void 0),size:"sm",children:n.jsx(o.Button,{type:"button",className:"truncate",children:s?mi(s):"..."})})}case"in":case"notIn":{const s=r&&typeof r=="object"?r:void 0,h=u=>{e.setConditionValue(u.from||u.to?u:void 0)};return n.jsxs(n.Fragment,{children:[n.jsx(wi,{value:s?.from,onValueChange:u=>h({from:u,to:s?.to??null}),size:"sm",children:n.jsx(o.Button,{type:"button",className:"truncate",children:s?.from?mi(s.from):"..."})}),n.jsx(wi,{value:s?.to,onValueChange:u=>h({from:s?.from??null,to:u}),size:"sm",children:n.jsx(o.Button,{type:"button",className:"truncate",children:s?.to?mi(s.to):"..."})})]})}}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[e.field.type].icon}),n.jsx("span",{className:"truncate",children:e.field.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[a].modifier.label})}),l(),n.jsx(j,{condition:e,onClick:t})]})},vr={equals:V({modifier:At,isValueValid:i=>A(i),isConditionValueValid:i=>A(i),isSerializedValueValid:i=>A(i)}),notEquals:V({modifier:Et,isValueValid:i=>A(i),isConditionValueValid:i=>A(i),isSerializedValueValid:i=>A(i)}),before:V({modifier:$t,isValueValid:i=>A(i),isConditionValueValid:i=>A(i),isSerializedValueValid:i=>A(i)}),after:V({modifier:Dt,isValueValid:i=>A(i),isConditionValueValid:i=>A(i),isSerializedValueValid:i=>A(i)}),in:V({modifier:Pt,isValueValid:i=>A(i),isConditionValueValid:i=>je(i),isSerializedValueValid:i=>je(i)}),notIn:V({modifier:jt,isValueValid:i=>A(i),isConditionValueValid:i=>je(i),isSerializedValueValid:i=>je(i)})};class ti extends P{modifiers=vr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=vr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ti({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(yr,{condition:this,...e},this.id)}}const Sr=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(a){case void 0:return"...";case!0:return"true";case!1:return"false";case null:return"empty"}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),n.jsxs(o.Menu.Root,{children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:s()})}),n.jsx(o.Menu.Content,{size:"sm",children:n.jsxs(o.Menu.SelectGroup,{required:!0,value:a,onValueChange:e.setConditionValue,children:[n.jsx(Se,{value:!0,children:"empty"}),n.jsx(Se,{value:!1,children:"not empty"})]})})]}),n.jsx(j,{condition:e,onClick:t})]})},zr={equals:V({modifier:qt,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:Ot,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ri extends P{modifiers=zr;constructor(e){super(e)}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=zr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ri({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(Sr,{condition:this,...e},this.id)}}const Fr=i=>{const{condition:e,onRemove:t}=i,r=e.field,a=e.getConditionValue(),l=e.getConditionModifier(),s=()=>{switch(l){case"equals":case"notEquals":case"includes":case"excludes":return n.jsx(Te,{value:a??"",onValueChange:e.setConditionValue,size:"sm",children:n.jsx(o.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:n.jsx("span",{className:"truncate",children:a||"..."})})})}};return n.jsxs(o.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[n.jsxs(o.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_[r.type].icon}),n.jsx("span",{className:"truncate",children:r.label||E})]}),n.jsx(U,{condition:e,children:n.jsx(o.Button,{type:"button",children:e.modifiers[l].modifier.label})}),s(),n.jsx(j,{condition:e,onClick:t})]})},wr={equals:V({modifier:ae,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:le,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),includes:V({modifier:Oe,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:_e,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class oi extends P{modifiers=wr;constructor(e){super(e)}transformValue(e){return e?.toString()??""}static deserialize(e,t){const{conditionValue:r,conditionModifier:a,...l}=e,s=wr[a],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new oi({field:t,conditionModifier:a,conditionValue:h,...l})}render(e){return n.jsx(Fr,{condition:this,...e},this.id)}}const ko={date:He,time:ti,number:Xe,boolean:Ge,select:ei,string:ii,url:oi,text:ni,upload:ri,qr:Re,"multi-string":We,"multi-select":Je,radio:Ze,"checkbox-list":ke,"pass-fail":Ye,otp:Ke,rating:Qe},br=(i,e)=>{if(i.type!==e.type)throw new Error(`field and condition type mismatch ${i.type} !== ${e.type}`);return ko[e.type].deserialize(e,i)},xn=(i,e)=>{const t=In(i,e),r={};for(const a of i)r[a.identifier]=a;return t.map(a=>br(r[a.fieldId],a))},Nr=(i,e)=>qn(i,e).map(r=>r.serialize()),In=(i,e)=>{const t=new Set(i.map(r=>r.identifier));return e.filter(r=>t.has(r.fieldId))},qn=(i,e)=>{const t=new Set(i.map(r=>r.identifier));return e.filter(r=>t.has(r.field.identifier))},Ni=i=>pn[i.type].deserialize(i);function Ho(i){return i.map(Mr)}const Mr=i=>i.type==="section"?W.deserialize(i):Ni(i);function Jo(i){return i.map(Ni)}function Wo(i){const e=[];for(const t of i)if(t instanceof W)for(const r of t.getFields())e.push(r);else e.push(t);return e}function Xo(i){const e={};for(const t of i)e[t.identifier]=t;return e}function xr(i,e,t=!0){const r=t?Mi(i,e):e,a={};for(const l of i){if(!(l.identifier in r))continue;const s=r[l.identifier];a[l.identifier]=l.serializeValue(s)}return a}function Ir(i,e,t=!0){const r=t?On(i,e):e,a={};for(const l of i){if(!(l.identifier in r))continue;const s=r[l.identifier];a[l.identifier]=l.deserializeValue(s)}return a}function Mi(i,e){const t={};for(const r of i){if(!(r.identifier in e))continue;const a=e[r.identifier];r.isValue(a)&&(t[r.identifier]=r.cleanValue(a))}return t}function On(i,e){const t={};for(const r of i){if(!(r.identifier in e))continue;const a=e[r.identifier];r.isSerializedValue(a)&&(t[r.identifier]=r.cleanSerializedValue(a))}return t}function qr(i,e){const t=Mi(i,e),r={},a={};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;a[l.identifier]=s,r[l.identifier]=[];break;case"pass-fail":if(!l.isValue(s))break;a[l.identifier]=s.files,r[l.identifier]={...s,files:[]};break;default:r[l.identifier]=e[l.identifier]}}return[r,a]}function Or(i,e,t){const r={};for(const a of i){if(!(a.identifier in e))continue;const l=e[a.identifier];switch(a.type){case"upload":if(!a.isValue(l))break;r[a.identifier]=t[a.identifier]??[];break;case"pass-fail":if(!a.isValue(l))break;r[a.identifier]={...l,files:t[a.identifier]??[]};break;default:if(!a.isValue(l))break;r[a.identifier]=l}}return r}const _r=(i,e)=>{const t={};for(const r of i){const a=e[r.identifier];t[r.identifier]=a!==void 0?a:r.blankValue()}return t},Tr=(i,e,t)=>{const r={};for(const a of i){const l=e[a.identifier],s=t[a.identifier];a.areValuesEqual(l,s)||(r[a.identifier]=s)}return r},Lr=(i,e,t)=>{const r={};for(const a of i){const l=e[a.identifier],s=t[a.identifier];a.areValuesEqual(l,s)&&(r[a.identifier]=s)}return r},_n=(i,e,t)=>i.every(r=>{const a=e[r.identifier],l=t[r.identifier];return r.areValuesEqual(a,l)}),Tn=i=>{const e={};for(const t of i)e[t.identifier]=t.blankValue();return e},Br=(i,e)=>_n(i,e,Tn(i)),Ko=Q.cva(["flex","flex-col"],{variants:{size:{xs:["gap-2"],sm:["gap-4"],md:["gap-6"],lg:["gap-8"],xl:["gap-10"]}}}),xi=Q.cva(["flex","flex-col"],{variants:{size:{xs:["gap-2"],sm:["gap-4"],md:["gap-6"],lg:["gap-8"],xl:["gap-10"]}}}),Ln=d.memo(i=>{const{fieldSection:e}=i,{label:t,description:r}=e,a=Y.useWatch(),{fieldSchema:l,size:s}=d.use(L),h=d.useMemo(()=>l.getFieldSections(),[l]),u=d.useMemo(()=>h.findIndex(({identifier:m})=>m===e.identifier),[h,e.identifier]),f=d.useMemo(()=>h.filter(m=>e.identifier in m.conditions),[h,e.identifier]),p=d.useMemo(()=>f.length===0?!0:f.some(m=>{const C=m.getConditions(e.identifier);return new bi(C).applyConditions(a)}),[f,e,a]),g=ui(e.fields);return p?n.jsxs(n.Fragment,{children:[u!==0?n.jsx(o.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(o.Heading,{size:s,children:t}),r&&n.jsx(o.Text,{accentColor:"base",size:s,children:r})]})}),n.jsx("div",{className:xi({size:s}),children:g})]})]}):null});Ln.displayName="FieldSectionLayout";class W extends Ai{type="section";label;description;conditions;fields=[];constructor(e){const{label:t=null,description:r=null,fields:a,conditions:l={},...s}=e;super(s),this.label=t,this.description=r,this.fields=this.initFields(a),this.conditions=this.initConditions(l)}serialize(){const e={};for(const[t,r]of Object.entries(this.conditions))e[t]=r.map(a=>a.serialize());return{...super.serialize(),label:this.label,description:this.description,conditions:e,fields:this.fields.map(t=>t.serialize())}}static deserialize=e=>{const t=e.fields.map(Ni),r={};for(const[a,l]of Object.entries(e.conditions))r[a]=xn(t,l);return new W({...e,fields:t,conditions:r})};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(b.v4()))})}setOptions(e){const{label:t,description:r,fields:a,conditions:l,...s}=e;this.label=t??this.label,this.description=r??this.description,this.fields=a||this.fields,this.conditions=l||this.conditions,super.setOptions(s)}getErrors(e){const t={};for(const r of this.fields){const a=r.getError(e[r.identifier]);a&&(t[r.identifier]=a)}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],[a]=r.splice(e,1);r.splice(t,0,a),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,a]of Object.entries(this.conditions))t[r]=a.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(a=>a.id));this.conditions=this.initConditions({...this.conditions,[e]:(this.conditions[e]??[]).filter(a=>!r.has(a.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(Ln,{fieldSection:this})}}const R=d.createContext({}),Ii=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:a,onSelectFieldType:l,...s}=i,h=d.useMemo(()=>{const u={[q.Assessment]:[],[q.Capture]:[],[q.Numeric]:[],[q.Selection]:[],[q.Temporal]:[],[q.Text]:[],[q.Verification]:[]};for(const f of Vt){const{group:p}=_[f];u[p].push(f)}return u},[]);return n.jsxs(o.Menu.Root,{...s,children:[n.jsx(o.Menu.ClickTrigger,{children:e}),n.jsx(o.Menu.Content,{variant:t,size:r,accentColor:a,children:n.jsx(o.Menu.Scroll,{children:Object.entries(h).map(([u,f])=>{const{name:p}=yt[u];return f.length===0?null:n.jsxs(o.Menu.Group,{children:[n.jsx(o.Menu.Label,{children:p}),f.map(g=>n.jsx(Ar,{fieldType:g,onSelectFieldType:l},g))]},u)})})})]})});Ii.displayName="CreateFieldDropdownMenu";const Ar=d.memo(i=>{const{fieldType:e,onSelectFieldType:t}=i,r=d.useCallback(()=>{t(e)},[e,t]),{icon:a,name:l}=_[e];return n.jsxs(o.Menu.Item,{onSelect:r,children:[n.jsx(o.LuIcon,{icon:a}),n.jsx(o.Text,{className:"truncate",children:l})]})});Ar.displayName="CreateFieldDropdownMenuItem";const qi=i=>{switch(i){case"text":return new ye({label:"",required:!1,identifier:b.v4()});case"boolean":return new ce({label:"",required:!1,identifier:b.v4()});case"number":return new H({label:"",required:!1,identifier:b.v4()});case"date":return new be({label:"",required:!1,identifier:b.v4()});case"time":return new xe({label:"",required:!1,identifier:b.v4()});case"string":return new Ve({label:"",required:!1,identifier:b.v4()});case"url":return new Ie({label:"",required:!1,identifier:b.v4()});case"select":return new te({label:"",options:[],required:!1,identifier:b.v4()});case"multi-string":return new de({label:"",required:!1,identifier:b.v4()});case"multi-select":return new ie({label:"",options:[],required:!1,identifier:b.v4()});case"upload":return new ve({label:"",required:!1,identifier:b.v4(),maximum_files:6,maximum_size:qe});case"qr":return new Me({label:"",required:!1,identifier:b.v4()});case"radio":return new me({label:"",options:[],required:!1,identifier:b.v4()});case"checkbox-list":return new ue({label:"",options:[],required:!1,identifier:b.v4()});case"pass-fail":return new ge({label:"",required:!1,identifier:b.v4(),showNotesAndFilesOn:["fail"]});case"otp":return new he({label:"",validationType:"none",required:!1,identifier:b.v4(),length:6});case"rating":return new Ce({label:"",required:!1,identifier:b.v4(),maxRating:5})}},Bn=i=>{switch(i.type){case"text":return new ni({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"boolean":return new Ge({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"number":return new Xe({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"date":return new He({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"time":return new ti({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"string":return new ii({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"url":return new oi({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"select":return new ei({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"multi-string":return new We({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"multi-select":return new Je({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"upload":return new ri({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"qr":return new Re({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"radio":return new Ze({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"checkbox-list":return new ke({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"pass-fail":return new Ye({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"otp":return new Ke({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i});case"rating":return new Qe({id:b.v4(),conditionValue:void 0,conditionModifier:"equals",field:i})}},Er=(i,e)=>{switch(i){case"checkbox-list":return ue.getFieldCreationSchema(e);case"multi-select":return ie.getFieldCreationSchema(e);case"number":return H.getFieldCreationSchema(e);case"radio":return me.getFieldCreationSchema(e);case"select":return te.getFieldCreationSchema(e);case"string":return Ve.getFieldCreationSchema(e);case"text":return ye.getFieldCreationSchema(e);case"upload":return ve.getFieldCreationSchema(e);case"pass-fail":return ge.getFieldCreationSchema(e);case"otp":return he.getFieldCreationSchema(e);case"rating":return Ce.getFieldCreationSchema(e);default:return}},$r=d.memo(i=>{const{popoverInputs:e,...t}=i;return n.jsxs(o.Popover.Root,{children:[n.jsx(o.Popover.Trigger,{asChild:!0,children:n.jsxs(o.Button,{variant:"soft",type:"button",size:"sm",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:_o}),"Settings"]})}),n.jsx(o.Popover.Content,{size:"sm",...t,children:n.jsx("div",{className:Q.cx("flex w-full max-w-[350px] flex-col",xi({size:"sm"})),children:e})})]})});$r.displayName="FieldSettingsPopover";const Dr=d.memo(i=>{const{parentPath:e,fieldIndex:t,field:r}=i,a=ci(),{disableRequiredFields:l}=d.use(R),[s,h]=d.useState(void 0);d.useEffect(()=>{r.image instanceof Promise?r.image.then(h).catch(console.error):h(r.image)},[r]);const u=d.useCallback(()=>{r.setOptions({image:void 0})},[r]),[f,p]=d.useMemo(()=>{const F=[],w=[],T=Er(r.type,`${e}.${t}`)??[];for(const G of T)G.showDirectly?F.push(G.field):w.push(G.field);return[F,w]},[r,e,t]),g=ui(f),m=ui(p),C=p.length>0,v=d.useCallback(()=>{s&&a(()=>({file:s}))},[a,s]),y=d.useCallback(F=>{r.setOptions({required:!!F})},[r]),S=d.useCallback(F=>{r.setOptions({label:F.target.value})},[r]),z=d.useCallback(F=>{r.setOptions({description:F.target.value})},[r]),{icon:x,name:I}=_[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(o.Badge,{accentColor:"base",variant:"soft",size:"sm",children:[n.jsx(o.LuIcon,{icon:x}),I]}),!l&&n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(o.Checkbox.Root,{checked:r.required,onCheckedChange:y,size:"sm",children:n.jsx(o.Checkbox.Indicator,{children:n.jsx(o.LuIcon,{icon:J})})}),n.jsx(o.Text,{size:"sm",accentColor:"base",children:"Required"})]})]}),C&&n.jsx($r,{popoverInputs:m,align:"end"})]}),s&&n.jsxs("div",{className:"group relative inline-block w-full min-w-[300px]",children:[n.jsx(we,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:s,onClick:v}),n.jsx(o.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(o.LuIcon,{icon:se})})]}),n.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[n.jsx(o.Input.Root,{variant:"outline",size:"md",children:n.jsx(o.Input.Field,{placeholder:"Enter your question",value:r.label??"",onChange:S,maxLength:200})}),n.jsx(o.TextArea,{className:"field-sizing-content",placeholder:"Enter a field description (optional)",value:r.description??"",onChange:z,maxLength:1e3,resize:"vertical",size:"md"})]}),f.length>0&&n.jsx("div",{className:Q.cx("w-full",xi({size:"sm"})),children:g})]})});Dr.displayName="FieldBuilder";const An=d.memo(i=>{const{field:e,fieldSection:t,fieldIndex:r,sectionIndex:a}=i,l=d.useRef(null),s=`fields.${a}.fields`,h=d.useCallback(y=>{t.addField(qi(y),r+1)},[r,t]),u=d.useCallback(()=>{t.addField(e.duplicate(b.v4()))},[e,t]),f=d.useCallback(y=>{const S=y==="up"?a-1:a+1;t.moveField(r,S)},[t,r,a]),p=d.useCallback(y=>{const{files:S}=y.target;if(!S||S.length!==1)return;const z=S.item(0);if(z){if(z.size>St){o.toast.error({title:"File upload error",description:`The file ${z.name} exceeded the maximum file size`});return}e.setOptions({image:z})}},[e]),g=d.useCallback(()=>{f("up")},[f]),m=d.useCallback(()=>{f("down")},[f]),C=d.useCallback(()=>{l.current?.click()},[]),v=d.useCallback(()=>{t.removeField(e)},[e,t]);return n.jsxs(o.Card,{className:"flex w-full items-center justify-between gap-4",size:"sm",children:[n.jsx(Dr,{fieldIndex:r,field:e,parentPath:s}),n.jsxs(o.ButtonGroup,{className:"flex flex-col gap-0.5",variant:"ghost",accentColor:"base",size:"sm",children:[n.jsx(Ii,{onSelectFieldType:h,size:"sm",children:n.jsx(o.IconButton,{type:"button",children:n.jsx(o.LuIcon,{icon:Z})})}),n.jsx(o.IconButton,{type:"button",onClick:g,children:n.jsx(o.LuIcon,{icon:Rn})}),n.jsx(o.IconButton,{type:"button",onClick:m,children:n.jsx(o.LuIcon,{icon:Qn})}),n.jsx(o.IconButton,{type:"button",onClick:u,children:n.jsx(o.LuIcon,{icon:Ti})}),n.jsx(o.IconButton,{type:"button",onClick:C,children:n.jsx(o.LuIcon,{icon:Yn})}),n.jsx(o.IconButton,{type:"button",onClick:v,children:n.jsx(o.LuIcon,{icon:se})})]}),n.jsx("input",{className:"hidden",ref:l,type:"file",accept:"image/*",onChange:p})]})});An.displayName="FieldBuilderWithActions";const En=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:a,fields:l,onSelectField:s,...h}=i;return n.jsxs(o.Menu.Root,{...h,children:[n.jsx(o.Menu.ClickTrigger,{children:e}),n.jsx(o.Menu.Content,{variant:t,size:r,accentColor:a,children:n.jsx(o.Menu.Scroll,{children:l.map(u=>n.jsx(Pr,{field:u,onSelectField:s},u.identifier))})})]})});En.displayName="FieldDropdownMenu";const Pr=d.memo(i=>{const{field:e,onSelectField:t}=i,r=d.useCallback(()=>{t(e)},[e,t]);return n.jsxs(o.Menu.Item,{onSelect:r,children:[n.jsx(o.LuIcon,{icon:_[e.type].icon}),e.label||E]})});Pr.displayName="FieldDropdownMenuItem";const jr=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:a,fieldSections:l,onSelectFieldSection:s,...h}=i;return n.jsxs(o.Menu.Root,{...h,children:[n.jsx(o.Menu.ClickTrigger,{children:e}),n.jsx(o.Menu.Content,{variant:t,size:r,accentColor:a,children:l.map(u=>n.jsx(Ur,{fieldSection:u,onSelectFieldSection:s},u.identifier))})]})});jr.displayName="FieldSectionDropdownMenu";const Ur=d.memo(i=>{const{fieldSection:e,onSelectFieldSection:t}=i,r=d.useCallback(()=>{t(e)},[e,t]);return n.jsxs(o.Menu.Item,{onSelect:r,children:[n.jsx(o.LuIcon,{icon:Zn}),e.label||gn]})});Ur.displayName="FieldSectionDropdownMenuItem";const Gr=d.memo(i=>{const{id:e,sourceX:t,sourceY:r,targetX:a,targetY:l,style:s,markerEnd:h,data:u}=i,{targetSection:f,sourceSection:p,layoutDirection:g}=u,m=d.useMemo(()=>p.getConditions(f.identifier),[p,f.identifier]),C=d.useCallback(()=>{p.removeConditional(f.identifier)},[p,f.identifier]),v=d.useCallback(I=>{p.addCondition(f.identifier,Bn(I))},[p,f.identifier]),y=d.useCallback(I=>{p.removeCondition(f.identifier,I)},[p,f.identifier]),[S,z,x]=O.getBezierPath({sourceX:t,sourceY:r,sourcePosition:g==="LR"?O.Position.Right:O.Position.Bottom,targetX:a,targetY:l,targetPosition:g==="LR"?O.Position.Left:O.Position.Top});return n.jsxs(n.Fragment,{children:[n.jsx(O.BaseEdge,{id:e,path:S,style:s,markerEnd:h,labelX:z,labelY:x}),n.jsx(O.EdgeLabelRenderer,{children:n.jsxs(o.Card,{size:"xs",variant:"surface",className:"nodrag nopan bg-(--base-2) pointer-events-auto absolute inline-flex flex-col gap-2",onMouseDown:o.stopPropagation,onClick:o.stopPropagation,"data-floating-content":"",style:{transform:`translate(-50%, -50%) translate(${z}px, ${x}px)`},children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(o.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(En,{fields:p.fields,onSelectField:v,children:n.jsx(o.IconButton,{"aria-label":"Add condition",type:"button",variant:"surface",size:"xs",accentColor:"base",children:n.jsx(o.LuIcon,{icon:Z})})}),n.jsxs(o.Tooltip.Root,{children:[n.jsx(o.Tooltip.Trigger,{asChild:!0,children:n.jsx(o.IconButton,{"aria-label":"Remove conditional logic",type:"button",variant:"surface",size:"xs",accentColor:"base",color:"danger",onClick:C,children:n.jsx(o.LuIcon,{icon:se})})}),n.jsx(o.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:y})},I.id))})]})})]})});Gr.displayName="FieldSectionConditionEdgeComponent";const kr=d.memo(i=>{const{data:e,selected:t}=i,{fieldSection:r,index:a,layoutDirection:l}=e,{fieldSchema:s}=d.use(R),h=d.useCallback(()=>{s.removeFieldSection(r)},[s,r]),u=d.useCallback(C=>{r.addField(qi(C))},[r]),f=d.useCallback(()=>{const C=new W({identifier:b.v4(),fields:[]});s.addFieldSection(C),r.addConditional(C.identifier)},[s,r]),p=d.useCallback(()=>{s.addFieldSection(r.duplicate(b.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(o.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(o.Input.Root,{variant:"outline",size:"md",accentColor:"base",children:n.jsx(o.Input.Field,{placeholder:"Enter a section label (optional)",value:r.label??"",onChange:g,maxLength:200})}),n.jsx(o.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(o.Text,{weight:"bold",children:"Fields"}),n.jsx(Ii,{onSelectFieldType:u,size:"sm",children:n.jsxs(o.Button,{type:"button",variant:"soft",size:"sm",accentColor:"base",children:[n.jsx(o.LuIcon,{icon:Z})," Add field"]})})]}),n.jsx("div",{className:"flex flex-col gap-3",children:r.fields.map((C,v)=>n.jsx(An,{field:C,fieldSection:r,fieldIndex:v,sectionIndex:a},C.identifier))})]}),n.jsx(O.NodeToolbar,{isVisible:!0,position:O.Position.Right,align:"start",offset:8,onMouseDown:o.stopPropagation,children:n.jsx(o.Card,{variant:"surface",className:"bg-(--base-2) flex flex-col items-center gap-1 p-1",size:"xs",onClick:o.stopPropagation,children:n.jsxs(o.ButtonGroup,{className:"flex flex-col gap-2",variant:"surface",size:"xs",accentColor:"base",children:[n.jsx(o.IconButton,{type:"button",onClick:f,children:n.jsx(o.LuIcon,{icon:Fo})}),n.jsx(o.IconButton,{type:"button",onClick:p,children:n.jsx(o.LuIcon,{icon:Ti})}),n.jsx(o.IconButton,{type:"button",onClick:h,children:n.jsx(o.LuIcon,{icon:se})})]})})}),n.jsx(O.Handle,{type:"target",className:"size-4! bg-(--base-3)! border-(--base-7)!",position:l==="LR"?O.Position.Left:O.Position.Top}),n.jsx(O.Handle,{type:"source",className:"size-4! bg-(--base-3)! border-(--base-7)!",position:l==="LR"?O.Position.Right:O.Position.Bottom})]})});kr.displayName="CustomNode";const Yo={fieldSection:kr},Zo={fieldSectionCondition:Gr},Qo=(i,e,t)=>{const r=new jn.graphlib.Graph().setDefaultEdgeLabel(()=>({}));return r.setGraph({rankdir:t,nodesep:200,edgesep:500,ranksep:500}),e.forEach(a=>r.setEdge(a.source,a.target,{width:500,height:200,labelpos:"c"})),i.forEach(a=>r.setNode(a.id,{...a,width:a.measured?.width??0,height:a.measured?.height??0})),jn.layout(r),[i.map(a=>{const l=r.node(a.id),s=l.x-(a.measured?.width??0)/2,h=l.y-(a.measured?.height??0)/2;return{...a,position:{x:s,y:h}}}),e]},Ro={hideAttribution:!0},Hr=d.memo(()=>{const{errors:i}=Y.useFormState(),{handleSubmit:e}=Y.useFormContext(),{onSave:t,onCancel:r}=d.use(R),{fieldSchema:a}=d.use(R),l=d.useRef(null),[s,h]=d.useState(),[u,f]=d.useState("TB");d.useLayoutEffect(()=>{l.current&&l.current.classList.remove("light")},[]);const p=d.useMemo(()=>a.fieldSections.map(($,X)=>({id:$.identifier,position:{x:0,y:0},data:{index:X,fieldSection:$,layoutDirection:u},draggable:!0,type:"fieldSection"})),[a.fieldSections,u]),g=d.useMemo(()=>{const $=[],X={};for(const K of a.fieldSections)X[K.identifier]=K;for(const K of a.fieldSections){const ai=K.conditions;for(const[li,oa]of Object.entries(ai))$.push({id:`${K.identifier}-${li}`,source:K.identifier,target:li,data:{targetSection:X[li],sourceSection:K,layoutDirection:u},animated:oa.length>0,markerEnd:O.MarkerType.Arrow,style:{strokeWidth:2,stroke:"var(--base-a8)"},type:"fieldSectionCondition"})}return $},[a.fieldSections,u]),[m,C,v]=O.useNodesState(p),[y,S,z]=O.useEdgesState(g);d.useEffect(()=>{C(p)},[p,C]),d.useEffect(()=>{S(g)},[g,S]);const[x,I]=d.useMemo(()=>Qo(m,y,u),[y,u,m]),F=d.useCallback(()=>{a.addFieldSection(new W({identifier:b.v4(),fields:[]}))},[a]),w=d.useCallback($=>{const{source:X,target:K}=$,ai=a.fieldSections.find(({identifier:li})=>li===X);ai.setOptions({conditions:{...ai.conditions,[K]:[]}})},[a.fieldSections]),T=d.useCallback($=>{const X=a.getSectionDependencyGraph();return!Dn.willCreateCycle(X,$.source,$.target)},[a]),G=d.useCallback(()=>{s?.zoomOut()},[s]),ee=d.useCallback(()=>{s?.zoomIn()},[s]),Be=d.useCallback(()=>{s?.fitView()},[s]);return n.jsxs("form",{className:"flex size-full flex-col gap-4",onSubmit:e(t),children:[n.jsxs(o.Card,{className:"relative size-full",variant:"outline",children:[n.jsx(O.ReactFlow,{ref:l,onInit:h,nodes:x,onNodesChange:v,edges:I,onEdgesChange:z,nodeTypes:Yo,edgeTypes:Zo,onConnect:w,attributionPosition:"bottom-left",fitView:!0,minZoom:0,isValidConnection:T,proOptions:Ro}),n.jsx(O.Panel,{position:"top-left",children:n.jsx(o.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:n.jsxs(o.Button,{type:"button",variant:"surface",onClick:F,children:[n.jsx(o.LuIcon,{icon:Z})," Add section"]})})}),n.jsxs(O.Panel,{position:"top-right",className:"flex flex-col items-center gap-2",children:[n.jsxs(o.ToggleGroup.Root,{className:"flex flex-col",type:"single",accentColor:"base",size:"sm",value:u,onValueChange:f,children:[n.jsx(o.ToggleGroup.IconItem,{className:"rounded-b-none",value:"LR",type:"button",children:n.jsx(o.LuIcon,{icon:fo})}),n.jsx(o.ToggleGroup.IconItem,{className:"rounded-t-none",value:"TB",type:"button",children:n.jsx(o.LuIcon,{icon:ho})})]}),n.jsx(o.Separator,{size:"sm"}),n.jsxs(o.ButtonGroup,{className:"flex flex-col",size:"sm",accentColor:"base",variant:"soft",children:[n.jsx(o.IconButton,{className:"rounded-b-none",onClick:ee,type:"button",children:n.jsx(o.LuIcon,{icon:Z})}),n.jsx(o.IconButton,{onClick:G,radius:"none",type:"button",children:n.jsx(o.LuIcon,{icon:di})}),n.jsx(o.IconButton,{className:"rounded-t-none",onClick:Be,type:"button",children:n.jsx(o.LuIcon,{icon:Lo})})]})]}),n.jsx(O.Panel,{position:"bottom-right",children:n.jsxs(o.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:[r&&n.jsx(o.Button,{type:"button",variant:"soft",accentColor:"base",onClick:r,children:"Cancel"}),n.jsx(o.Button,{type:"submit",variant:"surface",children:"Save"})]})})]}),!!i.fields?.message&&n.jsx(o.Text,{size:"xs",accentColor:"danger",children:i.fields.message})]})});Hr.displayName="FormBuilderFlowBuilder";const ea=(i,e,t={})=>{const{conditions:r=!1}=t,a=i.get(e.identifier);if(!a)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 f=b.v4(),{image:p,...g}=u;return l.set(u.identifier,f),{...g,identifier:f}}),h={};if(r)for(const[u,f]of Object.entries(e.conditions??{})){const p=i.get(u);if(!p)continue;const g=f.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}});h[p]=g}return{...e,identifier:a,conditions:h,fields:s}},ia=(i,e={})=>{const t=new Map(i.map(r=>[r.identifier,b.v4()]));return i.map(r=>ea(t,r,e))},$n=(i,e)=>{const t={},r=i.filter(a=>a instanceof W);for(const a of i)if(a instanceof W){const l=r.filter(h=>a.identifier in h.conditions);if(l.length>0&&!l.some(h=>{const u=h.getConditions(a.identifier);return new bi(u).applyConditions(e)}))continue;const s=a.getErrors(e);Object.assign(t,s)}else{if(!(a instanceof k))throw new Error("Invalid field type");const l=a.identifier,s=a.getError(Un(e,l));s&&ro(t,l,s)}return t},na=async i=>{const e={},t=[];for(const r of i){const{fields:a}=r,l=[];for(const s of a){if(s.image){if(s.image instanceof Promise)try{e[s.identifier]=await s.image}catch(h){console.error("Failed to get image from promise",h)}else e[s.identifier]=s.image;delete s.image}l.push(s)}t.push({...r,fields:l})}return{fields:t,images:e}};async function ta(i){const e={};for(const[t,r]of Object.entries(i))e[t]=await Promise.all(r);return e}class Fe extends Ee{fieldSections;constructor(e){super(),this.fieldSections=this.initFields(e)}serialize(){return this.fieldSections.map(e=>e.serialize())}static deserialize(e){return new Fe(e.map(W.deserialize))}static reseedFieldSections(e,t){return ia(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],[a]=r.splice(e,1);r.splice(t,0,a),this.fieldSections=this.initFields(r),this.notify(this)}getSectionDependencyGraph(){const e=new no.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])),a=[];return to.bfsFromNode(t,e,(l,s,h)=>{a.push(r.get(l))},{mode:"in"}),a}cleanValues(e){return Mi(this.getFields(),e)}cleanSerializedValues(e){return On(this.getFields(),e)}deserializeValues(e,t){return Ir(this.getFields(),e,t)}serializeValues(e,t){return xr(this.getFields(),e,t)}initializeValues(e){return _r(this.getFields(),e)}validateValues(e){return $n(this.getFieldSections(),e)}areValuesValid(e){return Object.keys(this.validateValues(e)).length===0}deserializeConditions(e){return xn(this.getFields(),e)}cleanConditions(e){return qn(this.getFields(),e)}serializeConditions(e){return Nr(this.getFields(),e)}cleanSerializedConditions(e){return In(this.getFields(),e)}changedFieldValues(e,t){return Tr(this.getFields(),e,t)}unchangedFieldValues(e,t){return Lr(this.getFields(),e,t)}areValuesEqual(e,t){return _n(this.getFields(),e,t)}areValuesBlank(e){return Br(this.getFields(),e)}blankValues(){return Tn(this.getFields())}extractFilesAndPromisesFromFieldValues(e){return qr(this.getFields(),e)}insertFilesAndPromisesToFieldValues(e,t){return Or(this.getFields(),e,t)}}const Jr=d.memo(i=>{const{sourceFieldSection:e,targetFieldSection:t}=i,r=d.useMemo(()=>e.getConditions(t.identifier),[e,t.identifier]),a=d.useCallback(()=>{e.removeConditional(t.identifier)},[e,t.identifier]),l=d.useCallback(h=>{e.addCondition(t.identifier,Bn(h))},[e,t.identifier]),s=d.useCallback(h=>{e.removeCondition(t.identifier,h)},[e,t.identifier]);return n.jsxs(o.Card,{className:"flex flex-col gap-2",size:"sm",children:[n.jsxs(o.ButtonGroup,{className:"flex justify-between gap-2",size:"sm",accentColor:"base",variant:"soft",children:[n.jsxs(o.Badge,{accentColor:"base",variant:"soft",size:"sm",children:[n.jsx(o.LuIcon,{icon:Zn}),e.label??gn]}),n.jsx(o.IconButton,{type:"button",onClick:a,variant:"ghost",children:n.jsx(o.LuIcon,{icon:se})})]}),n.jsxs("div",{className:"flex h-max w-full flex-wrap gap-2",children:[r.map(h=>h.render({onRemove:s})),n.jsx(En,{fields:e.fields,onSelectField:l,align:"start",children:n.jsx(o.IconButton,{type:"button",size:"sm",variant:"soft",accentColor:"base",children:n.jsx(o.LuIcon,{icon:Z})})})]})]})});Jr.displayName="FieldSectionConditionalItem";const Wr=d.memo(i=>{const{fieldSection:e}=i,{fieldSchema:t}=d.use(R),r=d.useMemo(()=>t.fieldSections.filter(u=>e.identifier in u.conditions),[t.fieldSections,e.identifier]),a=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]),h=d.useMemo(()=>{const u=t.getSectionDependencyGraph();return t.fieldSections.filter(f=>!Dn.willCreateCycle(u,f.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(o.Input.Root,{variant:"outline",size:"md",children:n.jsx(o.Input.Field,{placeholder:"Enter a section label (optional)",value:e.label??"",onChange:l,maxLength:200})}),n.jsx(o.TextArea,{className:"field-sizing-content",placeholder:"Enter a section description (optional)",value:e.description??"",onChange:s,maxLength:1e3,resize:"vertical",size:"md"})]}),n.jsx(o.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(o.Text,{accentColor:"base",children:"Conditions"}),n.jsx(jr,{fieldSections:h,onSelectFieldSection:a,children:n.jsxs(o.Button,{type:"button",variant:"soft",size:"sm",className:"w-max",children:[n.jsx(o.LuIcon,{icon:Z}),"Add condition"]})})]}),r.map(u=>n.jsx(Jr,{sourceFieldSection:u,targetFieldSection:e},u.identifier))]}),n.jsx(o.Separator,{size:"full"})]})});Wr.displayName="FieldSectionBuilder";const Xr=d.memo(i=>{const{fieldSection:e,sectionIndex:t}=i,{fieldSchema:r}=d.use(R),a=o.useAlertDialog(),l=d.useCallback(()=>{r.removeFieldSection(e)},[r,e]),s=d.useCallback(y=>{const S=y==="up"?t-1:t+1;r.moveFieldSection(t,S)},[r,t]),h=d.useCallback(()=>{r.addFieldSection(e.duplicate(b.v4()))},[r,e]),u=d.useCallback(y=>{e.addField(qi(y))},[e]),f=d.useCallback(()=>{s("up")},[s]),p=d.useCallback(()=>{s("down")},[s]),g=d.useCallback(async()=>{const y=[e.serialize()],S=Fe.reseedFieldSections(y,{conditions:!1}),z=JSON.stringify(S);await navigator.clipboard.writeText(z),o.toast.success({title:"Section copied"})},[e]),m=d.useCallback(async()=>{const S=r.getDependenciesOfSection(e.identifier).map(I=>I.serialize()),z=Fe.reseedFieldSections(S,{conditions:!0}),x=JSON.stringify(z);await navigator.clipboard.writeText(x),o.toast.success({title:"Section copied"})},[e,r]),C=d.useCallback(async()=>{const y=r.getDependenciesOfSection(e.identifier),S=y.length>1,z=y.length-1;S?a({title:"Copy section dependencies?",description:`This section has ${z} dependent section${z>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,a,m,g]),v=d.useCallback(async()=>{let y="";try{y=await navigator.clipboard.readText()}catch{o.toast.error({title:"Paste failed",description:"Unable to read clipboard contents."});return}const S=y.trim();if(!S){o.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}let z;try{z=JSON.parse(S)}catch{o.toast.error({title:"Invalid JSON",description:"Check the JSON and try again."});return}const x=Array.isArray(z)?z:[z],I=[];for(const F of x){if(!F||typeof F!="object")continue;const w=F;if(w.type!=="section"||!Array.isArray(w.fields))continue;const T={type:"section",identifier:typeof w.identifier=="string"?w.identifier:b.v4(),label:typeof w.label=="string"||w.label===null?w.label:null,description:typeof w.description=="string"||w.description===null?w.description:null,conditions:w.conditions&&typeof w.conditions=="object"?w.conditions:{},fields:w.fields};try{I.push(W.deserialize(T))}catch{}}if(I.length===0){o.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}I.forEach((F,w)=>{r.addFieldSection(F,t+1+w)}),o.toast.success({title:"Section pasted",description:"Serialized JSON imported successfully."})},[r,t]);return n.jsxs(o.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(Wr,{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(o.Text,{accentColor:"base",size:"md",children:"Fields"}),n.jsx(Ii,{onSelectFieldType:u,size:"sm",children:n.jsxs(o.Button,{type:"button",variant:"soft",size:"sm",children:[n.jsx(o.LuIcon,{icon:Z})," Add field"]})})]}),e.fields.map((y,S)=>n.jsx(An,{field:y,fieldSection:e,fieldIndex:S,sectionIndex:t},y.identifier))]})]}),n.jsxs(o.ButtonGroup,{className:"flex flex-col gap-0.5",variant:"ghost",accentColor:"base",size:"sm",children:[n.jsx(o.IconButton,{type:"button",onClick:f,children:n.jsx(o.LuIcon,{icon:Rn})}),n.jsx(o.IconButton,{type:"button",onClick:p,children:n.jsx(o.LuIcon,{icon:Qn})}),n.jsxs(o.Menu.Root,{align:"end",children:[n.jsx(o.Menu.ClickTrigger,{children:n.jsx(o.IconButton,{type:"button",children:n.jsx(o.LuIcon,{icon:Kn})})}),n.jsxs(o.Menu.Content,{size:"sm",children:[n.jsxs(o.Menu.Item,{onSelect:h,children:[n.jsx(o.LuIcon,{icon:Ti}),"Duplicate section"]}),n.jsxs(o.Menu.Item,{onSelect:C,children:[n.jsx(o.LuIcon,{icon:Jn}),"Copy JSON"]}),n.jsxs(o.Menu.Item,{onSelect:v,children:[n.jsx(o.LuIcon,{icon:Wn}),"Paste JSON"]}),n.jsxs(o.Menu.Item,{onSelect:l,children:[n.jsx(o.LuIcon,{icon:se}),"Delete section"]})]})]})]})]})});Xr.displayName="FieldSectionWithActions";const Kr=d.memo(()=>{const{handleSubmit:i}=Y.useFormContext(),{errors:e}=Y.useFormState(),{onSave:t,onCancel:r}=d.use(R),{fieldSchema:a}=d.use(R),l=d.useCallback(()=>{a.addFieldSection(new W({identifier:b.v4(),fields:[]}))},[a]),s=d.useCallback(async()=>{try{const u=a.serialize(),f=Fe.reseedFieldSections(u),p=JSON.stringify(f);await navigator.clipboard.writeText(p),o.toast.success({title:"Sections copied",description:"All sections JSON copied to clipboard."})}catch{o.toast.error({title:"Copy failed",description:"Unable to copy the sections JSON."})}},[a]),h=d.useCallback(async()=>{let u="";try{u=await navigator.clipboard.readText()}catch{o.toast.error({title:"Paste failed",description:"Unable to read clipboard contents."});return}const f=u.trim();if(!f){o.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}let p;try{p=JSON.parse(f)}catch{o.toast.error({title:"Invalid JSON",description:"Check the JSON and try again."});return}const g=Array.isArray(p)?p:[p],m=[];for(const v of g){if(!v||typeof v!="object")continue;const y=v;if(y.type!=="section"||!Array.isArray(y.fields))continue;const S={type:"section",identifier:typeof y.identifier=="string"?y.identifier:b.v4(),label:typeof y.label=="string"||y.label===null?y.label:null,description:typeof y.description=="string"||y.description===null?y.description:null,conditions:y.conditions&&typeof y.conditions=="object"?y.conditions:{},fields:y.fields};try{m.push(W.deserialize(S))}catch{}}if(m.length===0){o.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}const C=a.fieldSections.length;m.forEach((v,y)=>{a.addFieldSection(v,C+y)}),o.toast.success({title:"Sections pasted",description:"Serialized JSON imported successfully."})},[a]);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(o.Button,{type:"button",variant:"soft",size:"sm",onClick:s,children:[n.jsx(o.LuIcon,{icon:Jn})," Copy JSON"]}),n.jsxs(o.Button,{type:"button",variant:"soft",size:"sm",onClick:h,children:[n.jsx(o.LuIcon,{icon:Wn})," Paste JSON"]})]}),a.fieldSections.map((u,f)=>n.jsx(Xr,{fieldSection:u,sectionIndex:f},u.identifier)),n.jsxs(o.Button,{className:"mb-4",type:"button",variant:"soft",accentColor:"base",size:"sm",onClick:l,children:[n.jsx(o.LuIcon,{icon:Z})," Add section"]})]}),!!e.fields?.message&&n.jsx(o.Text,{size:"xs",accentColor:"danger",children:e.fields.message}),n.jsxs(o.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:[r&&n.jsx(o.Button,{type:"button",variant:"soft",accentColor:"base",onClick:r,children:"Cancel"}),n.jsx(o.Button,{type:"submit",variant:"surface",children:"Save"})]})]})});Kr.displayName="FormBuilderListBuilder";function Yr(i){const e=t=>{const r={};for(const[a,l]of Object.entries(t))typeof l=="string"?r[a]={type:"validate",message:l}:r[a]=e(l);return r};return e(i)}const Zr=d.memo(d.forwardRef((i,e)=>{const{disabled:t=!1,fieldSchema:r,values:a={},onValuesChange:l,onSubmit:s,submitText:h="Submit",hideSubmit:u=!1,cancelText:f,onCancel:p,hideCancel:g=!1,className:m,submitButtonProps:C,cancelButtonProps:v,cancelIcon:y,submitIcon:S,size:z="md"}=i,x=d.useMemo(()=>r.initializeValues(a),[r,a]),I=d.useCallback($=>{s?.($)},[s]),F=Y.useForm({values:x,mode:"onBlur",criteriaMode:"all",disabled:t,resolver:$=>{const X=r.validateValues($),K=Yr(X);return Object.keys(X).length>0?{values:{},errors:K}:{values:$,errors:{}}}}),w=d.useCallback($=>{l?.($)},[l]);d.useEffect(()=>{const{unsubscribe:$}=F.watch((X,{type:K})=>{K==="change"&&w(X)});return()=>{$()}},[F,w]);const T=tt(r.getFieldSections()),G=d.useMemo(()=>({fieldSchema:r,size:z}),[r,z]),ee=!g&&!!p,Be=!u;return n.jsx(Y.FormProvider,{...F,children:n.jsx(L,{value:G,children:n.jsxs("form",{ref:e,className:Q.cx(m,"flex flex-col gap-4"),onSubmit:F.handleSubmit(I),children:[n.jsx("div",{className:Ko({size:z}),children:T}),!t&&(ee||Be)?n.jsxs(o.ButtonGroup,{className:"flex items-center justify-end gap-2",size:z,children:[ee?n.jsxs(o.Button,{accentColor:"base",type:"button",variant:"soft",onClick:p,...v,children:[n.jsx(o.LuIcon,{icon:y??ne}),f]}):null,Be?n.jsxs(o.Button,{type:"submit",accentColor:"primary",variant:"surface",...C,children:[n.jsx(o.LuIcon,{icon:S??J}),h]}):null]}):null]})})})})),Qr=d.memo(()=>{const{fieldSchema:i}=d.use(R);return n.jsx(Zr,{fieldSchema:i,disabled:!1})});Qr.displayName="FormBuilderPreview";const Rr=d.memo(i=>{const{children:e,initialFields:t,onSave:r,onCancel:a,disableRequiredFields:l=!1}=i,s=d.useCallback(v=>{const y={};(!v.fields||v.fields.length===0)&&(y.fields="At least one field is required.");const S=[];for(const[I,F]of v.fields.entries())for(const[w,T]of F.fields.entries()){const G=Er(T.type,`fields.${I}.fields.${w}`)?.map(({field:ee})=>ee)??[];S.push(...G)}const z={};for(const I of S)z[I.identifier]=Un(v,I.identifier);const x=$n(S,z);return Object.keys(x).length>0&&(y.fields=x.fields),Object.keys(y).length>0&&o.toast.error({title:"Some form settings are invalid",description:"Please check settings highlighted in red."}),y},[]),h=d.useMemo(()=>({fields:t??[]}),[t]),u=Y.useForm({values:h,mode:"onSubmit",criteriaMode:"all",reValidateMode:"onSubmit",resolver:v=>{const y=s(v),S=Yr(y);return Object.keys(y).length>0?{values:{},errors:S}:{values:v,errors:{}}}}),f=d.useCallback(v=>{u.setValue("fields",v.serialize())},[u]),p=Y.useWatch({control:u.control,compute:v=>v.fields}),g=d.useMemo(()=>{const v=Fe.deserialize(p);return v.observe(f),v},[p,f]),m=d.useMemo(()=>({fieldSchema:g,disableRequiredFields:l,onSave:r,onCancel:a}),[l,r,a,g]),C=d.useMemo(()=>({fieldSchema:g,size:"sm"}),[g]);return n.jsx(R,{value:m,children:n.jsx(L,{value:C,children:n.jsx(Y.FormProvider,{...u,children:e})})})});Rr.displayName="FormBuilderRoot";const ra={Root:Rr,FlowBuilder:Hr,ListBuilder:Kr,Preview:Qr};c.BaseCondition=P,c.BaseField=k,c.BaseFormElement=Ai,c.BaseOptionsField=$e,c.BaseStringField=Ui,c.BooleanEqualsConditionModifier=zt,c.BooleanField=ce,c.BooleanFieldCondition=Ge,c.BooleanFieldConditionCell=Ht,c.BooleanFieldInput=Pi,c.BooleanNotEqualsConditionModifier=Ft,c.CheckboxListField=ue,c.CheckboxListFieldCondition=ke,c.CheckboxListFieldConditionCell=Wt,c.CheckboxListFieldInput=Gi,c.ConditionManager=bi,c.DateAfterConditionModifier=Mt,c.DateBeforeConditionModifier=Nt,c.DateEqualsConditionModifier=wt,c.DateField=be,c.DateFieldCondition=He,c.DateFieldConditionCell=Kt,c.DateFieldInput=ki,c.DateNotEqualsConditionModifier=bt,c.DateRangeInConditionModifier=xt,c.DateRangeNotInConditionModifier=It,c.DoesNotHaveFilesConditionModifier=Ot,c.FIELD_TYPES=Vt,c.FieldSchema=Fe,c.FieldSection=W,c.FieldSectionLayout=Ln,c.FieldTypeGroup=q,c.FieldTypeToClsMapping=pn,c.FieldsRenderer=Zr,c.FileCard=Bi,c.FormBuilder=ra,c.HasFilesConditionModifier=qt,c.ImageCard=Xi,c.ImageFile=we,c.ImageViewer=$i,c.ImageViewerProvider=nt,c.InputWithLabel=B,c.LONG_TEXT_FIELD_MAX_LENGTH=De,c.MultiSelectField=ie,c.MultiSelectFieldCondition=Je,c.MultiSelectFieldConditionCell=Zt,c.MultiSelectFieldInput=Hi,c.MultiStringField=de,c.MultiStringFieldCondition=We,c.MultiStringFieldConditionCell=Rt,c.MultiStringFieldInput=Di,c.NumberEqualsConditionModifier=mn,c.NumberField=H,c.NumberFieldCondition=Xe,c.NumberFieldConditionCell=ir,c.NumberFieldInput=ji,c.NumberGreaterThanConditionModifier=vn,c.NumberGreaterThanOrEqualsConditionModifier=Sn,c.NumberLessThanConditionModifier=Vn,c.NumberLessThanOrEqualsConditionModifier=yn,c.NumberNotEqualsConditionModifier=Cn,c.NumberRangeInConditionModifier=zn,c.NumberRangeNotInConditionModifier=Fn,c.OTPField=he,c.OTPFieldCondition=Ke,c.OTPFieldConditionCell=tr,c.OTPFieldInput=Wi,c.Observable=Ee,c.PassFailArrayExcludesConditionModifier=Bt,c.PassFailArrayIncludesConditionModifier=Lt,c.PassFailEqualsConditionModifier=_t,c.PassFailField=ge,c.PassFailFieldCondition=Ye,c.PassFailFieldConditionCell=or,c.PassFailFieldInput=Qi,c.PassFailNotEqualsConditionModifier=Tt,c.RadioField=me,c.RadioFieldCondition=Ze,c.RadioFieldConditionCell=lr,c.RadioFieldInput=en,c.RatingField=Ce,c.RatingFieldCondition=Qe,c.RatingFieldConditionCell=dr,c.RatingFieldInput=nn,c.SHORT_TEXT_FIELD_MAX_LENGTH=on,c.ScanField=Me,c.ScanFieldCondition=Re,c.ScanFieldConditionCell=ur,c.ScanFieldInput=rn,c.Scanner=fi,c.ScannerProvider=ft,c.SelectField=te,c.SelectFieldCondition=ei,c.SelectFieldConditionCell=fr,c.SelectFieldInput=Ji,c.StringArrayEqualsConditionModifier=Si,c.StringArrayEveryConditionModifier=Vi,c.StringArrayExcludesConditionModifier=bn,c.StringArrayIncludesConditionModifier=wn,c.StringArrayNoneConditionModifier=vi,c.StringArrayNotEqualsConditionModifier=zi,c.StringArraySomeConditionModifier=yi,c.StringEqualsConditionModifier=ae,c.StringExcludesConditionModifier=_e,c.StringField=Ve,c.StringFieldCondition=ii,c.StringFieldConditionCell=gr,c.StringFieldInput=an,c.StringIncludesConditionModifier=Oe,c.StringNotEqualsConditionModifier=le,c.TextField=ye,c.TextFieldCondition=ni,c.TextFieldConditionCell=Cr,c.TextFieldInput=ln,c.TimeAfterConditionModifier=Dt,c.TimeBeforeConditionModifier=$t,c.TimeEqualsConditionModifier=At,c.TimeField=xe,c.TimeFieldCondition=ti,c.TimeFieldConditionCell=yr,c.TimeFieldControl=Ci,c.TimeFieldInput=un,c.TimeNotEqualsConditionModifier=Et,c.TimeRangeInConditionModifier=Pt,c.TimeRangeNotInConditionModifier=jt,c.UNLABELLED_FIELD_LABEL=E,c.UNLABELLED_SECTION_LABEL=gn,c.URLField=Ie,c.URLFieldCondition=oi,c.URLFieldConditionCell=Fr,c.URLFieldInput=fn,c.UTC_OFFSETS=sn,c.UTC_OFFSETS_SET=pt,c.UUIDFile=re,c.UUIDPromise=pe,c.UploadField=ve,c.UploadFieldCondition=ri,c.UploadFieldConditionCell=Sr,c.UploadFieldInput=hn,c.VideoCard=Yi,c.VideoFile=Ki,c.areFieldValuesBlank=Br,c.areFieldValuesEqual=_n,c.areFileAndPromiseArraysEqual=hi,c.arePassFieldValuesEqual=dt,c.areSerializedPassFailFieldValuesEqual=ct,c.awaitFilesAndPromises=ta,c.blankFieldValues=Tn,c.changedFieldValues=Tr,c.cleanConditions=qn,c.cleanFieldValues=Mi,c.cleanSerializedConditions=In,c.cleanSerializedFieldValues=On,c.createCondition=Bn,c.createConditionModifierConfig=V,c.createField=qi,c.createTime=dn,c.deserialize=Mr,c.deserializeCondition=br,c.deserializeConditions=xn,c.deserializeField=Ni,c.deserializeFieldValues=Ir,c.deserializeFields=Ho,c.deserializeOnlyFields=Jo,c.deserializePassFailFieldValue=st,c.extractFilesAndPromisesFromFieldValues=qr,c.fieldDataMapping=_,c.fieldSpacingCva=xi,c.fieldTypeGroupDataMapping=yt,c.flattenFields=Wo,c.formatTime=mi,c.formatUTCOffset=gi,c.getCurrentUTCOffset=mt,c.getFieldsMapping=Xo,c.getUTCMinuteOfDay=oe,c.getUTCOffsetMinutes=Ct,c.initializeFieldValues=_r,c.insertFilesAndPromisesToFieldValues=Or,c.isFileAndPromiseArray=rt,c.isPassFailFieldStatus=Ri,c.isPassFailFieldValue=at,c.isSerializedPassFailFieldValue=ot,c.isStringArray=Ae,c.isTime=A,c.isTimeInRange=cn,c.isTimeRange=je,c.isUTCOffset=pi,c.maxFileSizeB=St,c.maxFileSizeKB=vt,c.maxFileSizeMB=qe,c.parseTime=Pe,c.passFailFieldStatusMapping=fe,c.passFailFieldStatuses=Ne,c.separateImagesFromFields=na,c.serializeConditions=Nr,c.serializeFieldValues=xr,c.serializePassFailFieldValue=lt,c.unchangedFieldValues=Lr,c.useConditionManager=Go,c.useFieldInput=D,c.useFieldInputs=ui,c.useFieldSectionInputs=tt,c.useImageViewer=ci,c.useObjectUrl=Ei,c.useScanner=Do,c.useScannerContext=ut,c.validateFieldValues=$n,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,ga,_,Mn,Y,F,Ai,xn,In,fo,qn,On,po,go,_n,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()),En=i=>{const e=Vo(i);return e.charAt(0).toUpperCase()+e.slice(1)},Ln=(...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,...h},u)=>d.createElement("svg",{ref:u,...vo,width:e,height:e,stroke:i,strokeWidth:r?Number(t)*24/Number(e):t,className:Ln("lucide",o),...!l&&!yo(h)&&{"aria-hidden":"true"},...h},[...s.map(([f,p])=>d.createElement(f,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:Ln(`lucide-${Co(En(i))}`,`lucide-${i}`,r),...o}));return t.displayName=En(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 ui=N("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const $i=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 Bn=N("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);const Tn=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 An=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 Di=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 $n=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 Dn=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 Eo=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 Lo=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 Bo=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 Pn=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 jn=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 To=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 hi=N("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const Un=N("move-down",[["path",{d:"M8 18L12 22L16 18",key:"cskvfv"}],["path",{d:"M12 2V22",key:"r89rzk"}]]);const kn=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 Gn=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 Pi=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 re=N("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,...h}=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:Eo,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",...h,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{id;constructor(e){const{id:t}=e;super(),this.id=t}getOptions(){return{id:this.id}}setOptions(e){"id"in e&&e.id!==void 0&&(this.id=e.id),this.notify(this)}serialize(){return{type:this.type,id:this.id}}config(){return{type:this.type,id:this.id}}static _deserializeConfig(e){const{id:t,type:r}=e;return{id:t,type:r}}static _serializeConfig(e){const{id:t,type:r}=e;return{id:t,type:r}}}class b extends ze{label;description;required;image;constructor(e){const{label:t,description:r,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??void 0,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),"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 B=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")}),fi=()=>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:re})})})]}),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(h=>{r(h(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 T=d.memo(i=>{const{label:e,error:t,description:r,required:o,children:l,inputId:s,image:h,size:u}=i,[f,p]=d.useState(void 0),g=fi();d.useEffect(()=>{h instanceof Promise?h.then(p).catch(console.error):p(h)},[h]);const m=d.useCallback(()=>{f&&g(()=>({file:f}))},[g,f]),C=o?`${e??"Unlabelled"} *`:e??"Unlabelled";return n.jsxs("div",{className:"flex flex-col gap-1",children:[f&&n.jsx(Oe,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:f,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})]})});T.displayName="InputWithLabel";const Wn=i=>i.map(e=>n.jsx(d.Fragment,{children:e.render()},e.id)),pi=i=>i.map(e=>n.jsx(d.Fragment,{children:e.render()},e.id)),P=i=>{const{field:e}=i,{field:{value:t,name:r,onChange:o,onBlur:l,disabled:s},fieldState:{isTouched:h,error:u}}=Y.useController({name:e.id});return{value:t,name:r,disabled:s,isTouched:h,error:u?.message??"",onChange:o,onBlur:l}},Kn=d.memo(i=>{const{field:e}=i,{size:t}=d.use(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),[f,p]=d.useState(""),[g,m]=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?m("All options must be unique"):y.target.value?m(""):m("Option cannot be empty"),p(y.target.value)},[p,r]),S=d.useCallback(()=>{if(g)return;if(!f.trim()){m("Option cannot be empty");return}const y=f.trim();C([...r,y]),p("")},[f,g,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,L=y.destination.index,G=Array.from(r),[te]=G.splice(I,1);G.splice(L,0,te),C(G)},[C,r]),O=d.useCallback(()=>{l()},[l]);return n.jsx(Ai.DragDropContext,{onDragEnd:x,children:n.jsxs(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:g||h,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:f,onChange:z,onKeyDown:w,id:e.id,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:!!g||u,onClick:S,children:n.jsx(a.LuIcon,{icon:Z})})]}),r.length!==0&&n.jsx(Ai.Droppable,{droppableId:`${e.id}-droppable`,children:y=>n.jsxs("div",{className:"flex flex-col gap-1",...y.droppableProps,ref:y.innerRef,children:[r.map((I,L)=>n.jsx(Ai.Draggable,{draggableId:`${I}-draggable`,index:L,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(L)},children:n.jsx(a.LuIcon,{icon:re})})]})},`${e.id}-${I}-${L}`)),y.placeholder]})})]})})});Kn.displayName="MultiStringFieldInput";class oe extends b{type="multi-string";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}render(){return n.jsx(Kn,{field:this})}serialize(){return{...super.serialize(),minLength:this.minLength,maxLength:this.maxLength,placeholder:this.placeholder}}config(){return{...super.config(),minLength:this.minLength,maxLength:this.maxLength,placeholder:this.placeholder}}getOptions(){return{...super.getOptions(),minLength:this.minLength,maxLength:this.maxLength,placeholder:this.placeholder}}duplicate(e){return new oe({...this.getOptions(),id:e})}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}getFieldValidators(){const e=super.getFieldValidators();return e.push(t=>{if(this.minLength!==void 0&&t.length<this.minLength)return`Must have at least ${this.minLength} options.`}),e.push(t=>{if(this.maxLength!==void 0&&t.length>this.maxLength)return`Must have at most ${this.maxLength} options.`}),e}static deserialize(e){return new oe(e)}static fromConfig(e){return new oe(e)}static deserializeConfig(e){const{minLength:t,maxLength:r,placeholder:o,...l}=e;return{...b._deserializeConfig(l),minLength:t,maxLength:r,placeholder:o}}static serializeConfig(e){const{minLength:t,maxLength:r,placeholder:o,...l}=e;return{...b._serializeConfig(l),minLength:t,maxLength: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 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 oe({label:"Options",description:"List possible options for the user to select from.",required:!0,id:`${t}options`,minLength:2}),showDirectly:!0}]}}const Ji=d.memo(i=>{const{field:e}=i,{size:t}=d.use(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=d.useCallback(g=>{s(!!g),l()},[l,s]),p=d.useCallback(()=>{l()},[l]);return n.jsx(T,{size:t,inputId:e.id,label:e.label,description:e.description,error:h,image:e.image,required:e.required,children:n.jsx(a.Checkbox.Root,{id:e.id,name:o,checked:r??!1,onCheckedChange:f,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 ae 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 ae({...this.getOptions(),id:e})}static deserialize(e){return new ae(e)}static fromConfig(e){return new ae(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(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(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=d.useCallback(m=>{const C=m.target.valueAsNumber,z=isNaN(C)?null:C;s(z)},[s]),p=d.useCallback(()=>{l()},[l]),g=d.useCallback(m=>{m.key==="Enter"&&m.preventDefault()},[]);return n.jsx(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsx(a.Input.Root,{accentColor:"base",variant:"surface",size:t,children:n.jsx(a.Input.Field,{id:e.id,name:o,onChange:f,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})})})});Xn.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,id:`${t}minimum`}),showDirectly:!1},{field:new J({label:"Maximum",description:"Maximum value",integers:!0,required:!1,id:`${t}maximum`}),showDirectly:!1},{field:new ae({label:"Integers",description:"Whole numbers only",required:!1,id:`${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(),id: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,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(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 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,id:`${t}minimum_length`,minimum:0,integers:!0}),showDirectly:!1},{field:new J({label:"Maximum length",description:"Maximum number of characters",required:!1,id:`${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(),minLength:this.minLength,maxLength:this.maxLength,placeholder:this.placeholder}}config(){return{...super.config(),minLength:this.minLength,maxLength:this.maxLength,placeholder:this.placeholder}}static _deserializeConfig(e){const{maxLength:t,minLength: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),minLength:t,maxLength: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(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=d.useCallback(g=>{s(g),l()},[l,s]),p=d.useCallback(()=>{l()},[l]);return n.jsx(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsx(a.CheckboxGroup.Root,{id:e.id,name:o,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:t,values:r,onValuesChange:f,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.id}-${g.value}-${m}`))})})});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(),id: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(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),[f,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(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs(a.Popover.Root,{open:f,onOpenChange:m,children:[n.jsx(a.Popover.Trigger,{asChild:!0,children:n.jsxs(a.Button,{id:e.id,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:g})})]})})});Hi.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(),id: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(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(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=d.useCallback(g=>{s(g),l()},[l,s]),p=d.useCallback(g=>{g||l()},[l]);return n.jsx(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,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.id,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:f,children:[n.jsxs(a.Menu.SelectAllItem,{children:[n.jsx(a.Menu.CheckboxItemIndicator,{children:g=>g?n.jsx(a.LuIcon,{icon:hi}):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.id}-${g.value}-${m}`))]})})})]})})});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(),id: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(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=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(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs(a.OneTimePasswordField.Root,{id:e.id,name:o,value:r,onValueChange:f,validationType:"none",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 le extends b{type="otp";length;constructor(e){const{length:t,...r}=e;super(r),this.length=t}static getFieldCreationSchema(e=""){const t=e&&`${e}.`;return[{field:new J({label:"Length",integers:!0,required:!1,minimum:1,maximum:16,id:`${t}length`}),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}}config(){return{...super.config(),length:this.length}}getOptions(){return{...super.getOptions(),length:this.length}}duplicate(e){return new le({...this.getOptions(),id:e})}setOptions(e){"length"in e&&e.length!==void 0&&(this.length=e.length),super.setOptions(e)}static deserialize(e){return new le(e)}static fromConfig(e){return new le(e)}static deserializeConfig(e){const{length:t,...r}=e;return{...b._deserializeConfig(r),length:t}}static serializeConfig(e){const{length:t,...r}=e;return{...b._serializeConfig(r),length:t}}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}},Ee=Object.keys(Fe);class se extends File{uuid;constructor(e,...t){super(...t),this.uuid=e}static from(e,t){return new se(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 se):!1}function gi(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,...h}=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",...h,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,...h}=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",...h,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 Ne?null:e),[h,u]=d.useState(null),f=fi();In.useActiveEffect(v=>{if(u(null),!(e instanceof Ne)){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]),g=d.useCallback(()=>{t(e)},[t,e]),m=d.useCallback(()=>{if(!l)return;const v=URL.createObjectURL(l);window.open(v,"_blank"),URL.revokeObjectURL(v)},[l]),C=d.useCallback(()=>{l&&f(v=>({file:l,onDelete:r?void 0:()=>{g(),v()}}))},[r,g,f,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: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(Wi,{className:"cursor-pointer",onClick:C,file:l,error:h??void 0,rightSlot:z,size:o}):w?n.jsx(Xi,{className:"cursor-pointer",onClick:C,file:l,error:h??void 0,rightSlot:z,size:o}):n.jsx(ji,{className:"cursor-pointer",file:l,error:h??void 0,onClick:m,rightSlot:z,size:o})});Yi.displayName="DisplayFile";const et=d.memo(i=>{const{field:e}=i,{size:t}=d.use(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=d.useRef(null),p=d.useCallback(y=>{const I=e.cleanValue({...r,status:y});s(I),l()},[e,l,s,r]),g=d.useCallback(y=>{const I=y.target.value,L={...r,notes:I};s(L)},[r,s]),m=d.useCallback(()=>{l()},[l]),C=d.useCallback(y=>{const I=r.files.filter(({uuid:L})=>L!==y.uuid);s({...r,files:I}),l()},[s,l,r]),z=d.useCallback(()=>{f.current?.click()},[]),S=d.useCallback(y=>{const I=Array.from(y.target.files??[]).map(G=>se.from(F.v4(),G)),L={...r,files:[...r.files,...I]};s(L),l()},[l,s,r]);d.useEffect(()=>{if(!f.current)return;const y=new AbortController;return f.current.addEventListener("cancel",()=>{l()},{signal:y.signal}),()=>{y.abort()}},[l,r]);const w=r.status&&e.showNotesAndFilesOn.includes(r.status),v=`${e.id}-status`,x=`${e.id}-notes`,O=`${e.id}-files`;return n.jsx(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,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:Ee.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:Bn,className:"fill-current"})})}),n.jsx(a.Text,{size:t,accentColor:"base",className:"truncate",children:I})]},`${e.id}-${y}`)})}),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:z,type:"button",disabled:u,children:[n.jsx(a.LuIcon,{icon:Pi}),"Select files"]}),n.jsx("input",{id:O,name:o,type:"file",ref:f,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))})]})]})]})})});et.displayName="PassFailFieldInput";const Zi=i=>typeof i=="string"&&Ee.includes(i),it=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)),nt=i=>!(i===null||typeof i!="object"||!("status"in i)||!Zi(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||!gi(i.files,e.files)),at=(i,e)=>!(i.status!==e.status||i.notes!==e.notes||i.files.length!==e.files.length);class de 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({id:`${t}showNotesAndFilesOn`,label:"Show notes and files on",description:"Show the notes and files on desired statuses.",options:Ee.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 de({...this.getOptions(),id: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))&&gi(r.files,o.files))return"Files is required."})),e}static deserialize(e){const{showNotesAndFilesOn:t,...r}=e;return new de({...r,showNotesAndFilesOn:t})}static fromConfig(e){return new de(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(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=d.useCallback(m=>{s(m),l()},[l,s]),p=d.useCallback(()=>{l()},[l]),g=d.useCallback(()=>{s(null),l()},[l,s]);return n.jsx(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs(a.RadioGroup.Root,{id:e.id,name:o,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:t,value:r??"",onValueChange:f,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:Bn,className:"fill-current"})})}),n.jsx(a.Text,{size:t,accentColor:"base",className:"truncate",children:m.label})]},`${e.id}-${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:re}),"Clear"]})]})})});lt.displayName="RadioFieldInput";class ce extends Q{type="radio";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new ce({...this.getOptions(),id:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new ce(e)}static fromConfig(e){return new ce(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(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=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(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsxs("div",{className:"flex flex-row items-center gap-1",children:[n.jsx(a.Rating.Root,{id:e.id,name:o,className:"flex items-center gap-0.5",value:r,onValueChange:f,disabled:u,children:g.map(m=>n.jsx(a.Rating.Item,{value:m,className:Xo({size:t}),children:n.jsx(a.LuIcon,{icon:Gn,className:"size-full group-data-[active=true]:fill-current"})},`${e.id}-${m}`))}),!u&&r!==null&&n.jsx(a.IconButton,{onClick:p,type:"button",variant:"ghost",accentColor:"base",size:t,children:n.jsx(a.LuIcon,{icon:re})})]})})});st.displayName="RatingFieldInput";class ue 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,id:`${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 ue({...this.getOptions(),id:e})}setOptions(e){"maxRating"in e&&e.maxRating!==void 0&&(this.maxRating=e.maxRating),super.setOptions(e)}static deserialize(e){return new ue(e)}static fromConfig(e){return new ue(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 Qi=d.createContext(null),dt=()=>{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},mi=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})]})]})});mi.displayName="Scanner";const ct=d.memo(i=>{const{paused:e,formats:t,timeBetweenDecodingAttempts:r,trySkew:o,onDecodeResult:l,onDecodeError:s,onError:h}=i,{wasmUrl:u}=dt(),{ref:f}=fo.useZxing({wasmUrl:u,paused:e,formats:t,timeBetweenDecodingAttempts:r,trySkew:o,onDecodeResult:l,onDecodeError:s,onError:h,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:re})})})}),n.jsx("div",{className:"max-h-full w-full grow overflow-hidden p-4",children:n.jsx("video",{className:"size-full",ref:f,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(f=>{o(f(l))},[l]),h=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(mi,{open:!0,onOpenChange:h,...r})]})});ut.displayName="ScannerProvider";const ht=d.memo(i=>{const{field:e}=i,{size:t}=d.use(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),[f,p]=d.useState(!1),g=d.useCallback(w=>{const v=w.target.value;s(v)},[s]),m=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(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:[n.jsx(a.TextArea,{className:"field-sizing-content w-full",accentColor:"base",variant:"surface",size:t,id:e.id,name:o,value:r??"",placeholder:"Enter a qr or barcode",onChange:g,onBlur:m,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(mi,{open:f,onDecodeResult:C,onOpenChange:S})]})});ht.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(),id: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(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 ft=d.memo(i=>{const{field:e}=i,{size:t}=d.use(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=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(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,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.id,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: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:f,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.id}-${m.value}-${C}`))})})})]})})});ft.displayName="SelectFieldInput";class he 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 he({...this.getOptions(),id:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new he(e)}static fromConfig(e){return new he(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(ft,{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 pt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=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(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsx(a.Input.Root,{accentColor:"base",variant:"surface",size:t,children:n.jsx(a.Input.Field,{id:e.id,className:"truncate",name:o,value:r??"",type:"text",placeholder:e.placeholder??"Enter a short description",onChange:f,onBlur:p,disabled:u,onKeyDown:g})})})});pt.displayName="StringFieldInput";class fe extends Se{type="string";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new fe({...this.getOptions(),id:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new fe(e)}static fromConfig(e){return new fe(e)}static deserializeConfig(e){return Se._deserializeConfig(e)}static serializeConfig(e){return Se._serializeConfig(e)}render(){return n.jsx(pt,{field:this})}}const gt=d.memo(i=>{const{field:e}=i,{size:t}=d.use(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=d.useCallback(g=>{const m=g.target.value;s(m)},[s]),p=d.useCallback(()=>{l()},[l]);return n.jsx(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsx(a.TextArea,{id:e.id,value:r??"",name:o,onChange:f,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})})});gt.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(),id:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new pe(e)}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(gt,{field:this})}}const Ri=Zo(),mt=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"&&mt.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}`,ge=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=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},vi=d.memo(i=>{const{value:e,onChange:t,onBlur:r,disabled:o,size:l="md",id:s,name:h,compact:u=!1}=i,f=e?Ue(e):null,p=f?`${f.hours.toString().padStart(2,"0")}:${f.minutes.toString().padStart(2,"0")}`:"",g=d.useCallback(z=>{const S=z.target.value;if(!S){t(null);return}const[w,v]=S.split(":").map(Number);t(en(w,v,f?.utcOffset))},[t,f?.utcOffset]),m=d.useCallback(z=>{f&&(t(en(f.hours,f.minutes,z)),r?.())},[r,t,f]),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:h,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||!f,children:[n.jsx(a.Text,{className:"truncate",highContrast:!!f,children:f?Vi(f.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:f?.utcOffset,onValueChange:m,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(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e});return n.jsx(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,image:e.image,children:n.jsx(vi,{id:e.id,name:o,size:t,value:r,onChange:s,onBlur:l,disabled:u})})});tn.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(),id: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(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=d.useRef(null),p=d.useCallback(()=>{f.current?.click()},[]),g=d.useCallback(()=>{if(!f.current)return;const v=f.current.files;if(!v){l();return}const x=Array.from(v).map(y=>se.from(F.v4(),y)),O=[...r,...x];s(O),l()},[l,s,r]),m=d.useCallback(v=>{const x=r.filter(({uuid:O})=>O!==v.uuid);s(x),l()},[r,s,l]);d.useEffect(()=>{if(!f.current)return;const v=new AbortController;return f.current.addEventListener("cancel",()=>{l()},{signal:v.signal}),()=>{v.abort()}},[l,r]);const C=e.maxFiles!==1,w=C?"Select files":"Select a file";return n.jsxs(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,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.id,name:o,type:"file",ref:f,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(v=>n.jsx(Yi,{size:t,fileOrPromise:v,onRemove:m,disabled:u},v.uuid))})]})});vt.displayName="UploadFieldInput";class me extends b{type="upload";extensions;maxSize;maxFiles;constructor(e){const{extensions:t,maxFiles:r,maxSize:o,...l}=e;super(l),this.maxSize=o,this.maxFiles=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,id:`${t}maxFiles`,integers:!0}),showDirectly:!1},{field:new J({label:"What is the maximum size of each file?",description:"Maximum file size in MB.",required:!1,id:`${t}maxSize`,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,id:`${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.maxSize,r=t&&t*1e3*1e3,o=this.maxFiles;return typeof t=="number"&&typeof r=="number"&&e.push(l=>{if(l.some(s=>s instanceof se&&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,maxSize:this.maxSize,maxFiles:this.maxFiles}}config(){return{...super.config(),extensions:this.extensions,maxSize:this.maxSize,maxFiles:this.maxFiles}}getOptions(){return{...super.getOptions(),extensions:this.extensions,maxSize:this.maxSize,maxFiles:this.maxFiles}}duplicate(e){return new me({...this.getOptions(),id:e})}setOptions(e){"maxSize"in e&&(this.maxSize=e.maxSize),"maxFiles"in e&&(this.maxFiles=e.maxFiles),"extensions"in e&&(this.extensions=e.extensions),super.setOptions(e)}static deserialize(e){return new me(e)}static fromConfig(e){return new me(e)}static deserializeConfig(e){const{extensions:t,maxSize:r,maxFiles:o,...l}=e;return{...b._deserializeConfig(l),extensions:t,maxSize:r,maxFiles:o}}static serializeConfig(e){const{extensions:t,maxSize:r,maxFiles:o,...l}=e;return{...b._serializeConfig(l),extensions:t,maxSize:r,maxFiles: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 Ne||t instanceof se):!1}areValuesEqual(e,t){return gi(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(B),{value:r,name:o,onBlur:l,onChange:s,error:h,disabled:u}=P({field:e}),f=d.useCallback(C=>{const z=C.target.value;z!==""&&!URL.canParse(z)||s(z!==""?new URL(z):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(T,{size:t,inputId:e.id,label:e.label,description:e.description,required:e.required,error:h,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.id,className:"truncate",name:o,value:r?r.toString():"",type:"url",inputMode:"url",placeholder:e.placeholder??"https://example.com",onChange:f,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})})]})})});zt.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(),id: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(zt,{field:this})}}const Le={date:we,time:Me,number:J,boolean:ae,select:he,string:fe,url:xe,text:pe,upload:me,qr:be,"multi-string":oe,"multi-select":ie,radio:ce,"checkbox-list":ee,"pass-fail":de,otp:le,rating:ue},St=Object.keys(Le),E={"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:Bo,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:To,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}),Nt=M.create({id:"nullable-boolean-not-equals",label:"is not",getApplyFn:i=>e=>e!==i,serialize:i=>i,deserialize:i=>i}),bt=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}),Et=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}),Lt=M.create({id:"pass-fail-equals",getApplyFn:i=>e=>e===i,label:"is",serialize:i=>i,deserialize:i=>i}),Bt=M.create({id:"pass-fail-not-equals",getApplyFn:i=>e=>e!==i,label:"is not",serialize:i=>i,deserialize:i=>i}),Tt=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}),Be=M.create({id:"string-includes",getApplyFn:i=>e=>e.includes(i),label:"includes",serialize:i=>i,deserialize:i=>i}),Te=M.create({id:"string-excludes",getApplyFn:i=>e=>!e.includes(i),label:"does not include",serialize:i=>i,deserialize:i=>i}),hn=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}),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}),Ni=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}),bi=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=>ge(e)<ge(i),serialize:i=>i,deserialize:i=>i}),jt=M.create({id:"time-after",label:"after",getApplyFn:i=>e=>ge(e)>ge(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,field:this.field.id,value:this.conditionValue!==void 0?this.modifiers[this.conditionModifier].modifier.serialize(this.conditionValue):void 0,modifier: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.id];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:hi}):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:hi}):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,h=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:h,children:t.getConditionModifiers().map(([u,f])=>n.jsx(Ie,{value:u,children:f.modifier.label},u))})})]})},Mi=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,align:h,accentColor:u="base",...f}=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:h,children:n.jsx(a.DayPicker,{size:s,accentColor:u,...f})})]})});Mi.displayName="DayPickerPopover";const Ht=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,accentColor:h="base",values:u,onValuesChange:f,placeholder:p="Enter text",...g}=i,[m,C]=d.useState(""),z=d.useCallback(x=>{C(x.target.value)},[]),S=d.useCallback(x=>{x.key==="Enter"&&(x.preventDefault(),x.stopPropagation(),f([...u,m]),C(""))},[m,f,u]),w=d.useCallback(()=>{f([...u,m]),C("")},[m,f,u]),v=d.useCallback(x=>{const O=[...u];O.splice(x,1),f(O)},[f,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:h,...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:z,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,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:re})})]},`${x}-${O}`))})]})})]})});Ht.displayName="NumberInputPopover";const qe=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,accentColor:h="base",value:u,onValueChange:f,placeholder:p="Enter a number",...g}=i,[m,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;f?.(isNaN(v)?null:v)},[f]);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:h,children:n.jsx(a.Input.Field,{placeholder:p,type:"number",value:m??"",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:re})})};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 gn=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))})});gn.displayName="SelectFieldOptionSelectGroup";const Ae=d.memo(i=>{const{children:e,open:t,onOpenChange:r,defaultOpen:o,modal:l,size:s,accentColor:h="base",value:u,onValueChange:f,placeholder:p="Enter text",...g}=i,[m,C]=d.useState(""),z=d.useCallback(w=>{C(w.target.value)},[]),S=d.useCallback(w=>{const v=w.target.value;f?.(v)},[f]);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:h,children:n.jsx(a.Input.Field,{placeholder:p,type:"text",value:m,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:h="base",value:u,onValueChange:f,...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:h,...p,children:n.jsx(vi,{compact:!0,size:s,value:u,onChange:f})})]})});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:E[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:Nt,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Je extends j{modifiers=Kt;constructor(e){super(e)}static deserialize(e,t){const{value:r,modifier:o,...l}=e,s=Kt[o];let h;return r!==void 0&&(h=s.modifier.deserialize(r)),new Je({conditionModifier:o,conditionValue:h,...l,field:t})}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]),h=()=>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:E[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:h()})}),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:Ni,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:bi,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{value:r,modifier:o,...l}=e,s=Yt[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new He({conditionModifier:o,conditionValue:h,...l,field:t})}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,h=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Mi,{required:!1,size:"sm",mode:"single",selected:h??void 0,onSelect:u=>e.setConditionValue(u),children:n.jsx(a.Button,{type:"button",className:"truncate",children:h!==void 0?h?.toLocaleDateString()??"empty":"..."})})}case"before":case"after":{const s=e.modifiers.after,h=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Mi,{required:!0,size:"sm",mode:"single",selected:h,onSelect:e.setConditionValue,children:n.jsx(a.Button,{type:"button",className:"truncate",children:h?h.toLocaleDateString():"..."})})}case"in":case"notIn":{const s=e.modifiers.in,h=r!==void 0&&s.isConditionValueValid(r)?r:void 0;return n.jsx(Mi,{required:!0,mode:"range",size:"sm",selected:h,onSelect:e.setConditionValue,children:n.jsx(a.Button,{className:"truncate",children:h?`${h.from?.toLocaleDateString()} - ${h.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:E[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:bt,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{value:r,modifier:o,...l}=e,s=Qt[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new We({conditionModifier:o,conditionValue:h,...l,field:t})}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]),h=()=>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:E[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:h()})}),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:Ni,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:bi,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{value:r,modifier:o,...l}=e,s=er[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ke({conditionModifier:o,conditionValue:h,...l,field:t})}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]),h=()=>{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:E[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:h()})}),n.jsx(U,{condition:e,onClick:t})]})},nr={equals:V({modifier:Ni,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),notEquals:V({modifier:bi,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{value:r,modifier:o,...l}=e,s=nr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Xe({conditionModifier:o,conditionValue:h,...l,field:t})}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]),h=()=>{switch(l){case"equals":case"greaterThanOrEquals":case"lessThanOrEquals":case"greaterThan":case"lessThan":{const u=e.modifiers.greaterThan,f=o!==void 0&&u.isConditionValueValid(o)?o:void 0;return n.jsx(qe,{value:f??null,onValueChange:s,size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:f!==void 0?f??"empty":"..."})})}case"inRange":case"notInRange":{const u=e.modifiers.inRange,f=o!==void 0&&u.isConditionValueValid(o)?o:void 0;return n.jsxs(n.Fragment,{children:[n.jsx(qe,{value:f?.from??null,onValueChange:p=>{e.setConditionValue({from:p,to:f?.to??null})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:f?.from??"..."})}),n.jsx(qe,{value:f?.to??null,onValueChange:p=>{e.setConditionValue({from:f?.from??null,to:p})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:f?.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:E[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})]})},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{value:r,modifier:o,...l}=e,s=rr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ye({conditionModifier:o,conditionValue:h,...l,field:t})}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:E[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:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Te,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class Ze extends j{modifiers=ar;constructor(e){super(e)}static deserialize(e,t){const{value:r,modifier:o,...l}=e,s=ar[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Ze({conditionModifier:o,conditionValue:h,...l,field:t})}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 h=e.modifiers.equals,u=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: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:Ee.map(f=>{const{label:p}=Fe[f];return n.jsx(Ie,{value:f,children:n.jsx("span",{className:"truncate",children:p})},f)})})})]})}case"includes":case"excludes":{const h=e.modifiers.includes,u=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: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"}),Ee.map(f=>{const{label:p,icon:g}=Fe[f];return n.jsxs(Jt,{value:f,children:[n.jsx(a.LuIcon,{icon:g}),n.jsx("span",{className:"truncate",children:p})]},f)})]})})]})}}};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:E[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:Lt,isValueValid:i=>i!==null,isConditionValueValid:i=>typeof i=="string",isSerializedValueValid:i=>typeof i=="string"}),notEquals:V({modifier:Bt,isValueValid:i=>i!==null,isConditionValueValid:i=>typeof i=="string",isSerializedValueValid:i=>typeof i=="string"}),includes:V({modifier:Tt,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{value:r,modifier:o,...l}=e,s=sr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Qe({conditionModifier:o,conditionValue:h,...l,field:t})}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(f=>typeof f=="string"?{value:f,label:f}:f),[r.options]),h=d.useMemo(()=>{const f={};for(const p of s)f[p.value]=p.label;return f},[s]),u=()=>{switch(l){case"equals":case"notEquals":{const f=e.modifiers.equals,p=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:p!==void 0?p?h[p]:"empty":"..."})})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(gn,{required:!0,selectFieldOptions:r.options,value:p??void 0,onValueChange:e.setConditionValue})})]})}case"includes":case"excludes":{const f=e.modifiers.includes,p=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: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:E[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:hn,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=cr;constructor(e){super(e)}static deserialize(e,t){const{value:r,modifier:o,...l}=e,s=cr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new Re({conditionModifier:o,conditionValue:h,...l,field:t})}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 h=e.modifiers[l],u=o!==void 0&&h.isConditionValueValid(o)?o:void 0;return n.jsx(qe,{value:u??null,onValueChange:f=>e.setConditionValue(f??void 0),size:"sm",children:n.jsx(a.Button,{type:"button",className:"truncate",children:u!==void 0?u:"..."})})}case"inRange":case"notInRange":{const h=e.modifiers.inRange,u=o!==void 0&&h.isConditionValueValid(o)?o:void 0;return n.jsxs(n.Fragment,{children:[n.jsx(qe,{value:u?.from??null,onValueChange:f=>{e.setConditionValue({from:f,to:u?.to??null})},size:"sm",children:n.jsx(a.Button,{className:"truncate",children:u?.from??"..."})}),n.jsx(qe,{value:u?.to??null,onValueChange:f=>{e.setConditionValue({from:u?.from??null,to:f})},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:E[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})]})},hr={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=hr;constructor(e){super(e)}static deserialize(e,t){const{value:r,modifier:o,...l}=e,s=hr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ei({conditionModifier:o,conditionValue:h,...l,field:t})}render(e){return n.jsx(ur,{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:E[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:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Te,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ii extends j{modifiers=pr;constructor(e){super(e)}static deserialize(e,t){const{value:r,modifier:o,...l}=e,s=pr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ii({conditionModifier:o,conditionValue:h,...l,field:t})}render(e){return n.jsx(fr,{condition:this,...e},this.id)}}const gr=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]),h=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]),f=()=>{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?h[g]:"empty":"..."})})}),n.jsx(a.Menu.Content,{size:"sm",children:n.jsx(gn,{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:E[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})]})},mr={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:hn,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=mr;constructor(e){super(e)}static deserialize(e,t){const{value:r,modifier:o,...l}=e,s=mr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ni({conditionModifier:o,conditionValue:h,...l,field:t})}render(e){return n.jsx(gr,{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:E[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:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Te,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ti extends j{modifiers=Vr;constructor(e){super(e)}static deserialize(e,t){const{value:r,modifier:o,...l}=e,s=Vr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ti({conditionModifier:o,conditionValue:h,...l,field:t})}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:E[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:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Te,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ri extends j{modifiers=vr;constructor(e){super(e)}static deserialize(e,t){const{value:r,modifier:o,...l}=e,s=vr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ri({conditionModifier:o,conditionValue:h,...l,field:t})}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:h=>e.setConditionValue(h??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,h=u=>{e.setConditionValue(u.from||u.to?u:void 0)};return n.jsxs(n.Fragment,{children:[n.jsx(xi,{value:s?.from,onValueChange:u=>h({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=>h({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:E[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{value:r,modifier:o,...l}=e,s=Sr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new oi({conditionModifier:o,conditionValue:h,...l,field:t})}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:E[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:Et,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class ai extends j{modifiers=Fr;constructor(e){super(e)}static deserialize(e,t){const{value:r,modifier:o,...l}=e,s=Fr[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new ai({conditionModifier:o,conditionValue:h,...l,field:t})}render(e){return n.jsx(wr,{condition:this,...e},this.id)}}const Nr=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:E[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})]})},br={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:Be,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0}),excludes:V({modifier:Te,isValueValid:i=>!0,isConditionValueValid:i=>!0,isSerializedValueValid:i=>!0})};class li extends j{modifiers=br;constructor(e){super(e)}transformValue(e){return e?.toString()??""}static deserialize(e,t){const{value:r,modifier:o,...l}=e,s=br[o],h=r!==void 0&&s.isSerializedValueValid(r)?s.modifier.deserialize(r):void 0;return new li({conditionModifier:o,conditionValue:h,...l,field:t})}render(e){return n.jsx(Nr,{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=mn(i,e),r={};for(const o of i)r[o.id]=o;return t.map(o=>Mr(r[o.field],o))},xr=(i,e)=>Cn(i,e).map(r=>r.serialize()),mn=(i,e)=>{const t=new Set(i.map(r=>r.id));return e.filter(r=>t.has(r.field))},Cn=(i,e)=>{const t=new Set(i.map(r=>r.id));return e.filter(r=>t.has(r.field.id))},Oi=i=>Le[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=>Le[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=>Le[i.type].deserializeConfig(i),Er=i=>i.map(yn),Lr=i=>i.type==="section"?W.deserializeConfig(i):yn(i),Br=i=>i.map(Lr),vn=i=>Le[i.type].serializeConfig(i),Tr=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.id]=t;return e}function Dr(i,e,t=!0){const r=t?Ei(i,e):e,o={};for(const l of i){if(!(l.id in r))continue;const s=r[l.id];o[l.id]=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.id in r))continue;const s=r[l.id];o[l.id]=l.deserializeValue(s)}return o}function Ei(i,e){const t={};for(const r of i){if(!(r.id in e))continue;const o=e[r.id];r.isValue(o)&&(t[r.id]=r.cleanValue(o))}return t}function zn(i,e){const t={};for(const r of i){if(!(r.id in e))continue;const o=e[r.id];r.isSerializedValue(o)&&(t[r.id]=r.cleanSerializedValue(o))}return t}function jr(i,e){const t=Ei(i,e),r={},o={};for(const l of i){if(!(l.id in t))continue;const s=t[l.id];switch(l.type){case"upload":if(!l.isValue(s))break;o[l.id]=s,r[l.id]=[];break;case"pass-fail":if(!l.isValue(s))break;o[l.id]=s.files,r[l.id]={...s,files:[]};break;default:r[l.id]=e[l.id]}}return[r,o]}function Ur(i,e,t){const r={};for(const o of i){if(!(o.id in e))continue;const l=e[o.id];switch(o.type){case"upload":if(!o.isValue(l))break;r[o.id]=t[o.id]??[];break;case"pass-fail":if(!o.isValue(l))break;r[o.id]={...l,files:t[o.id]??[]};break;default:if(!o.isValue(l))break;r[o.id]=l}}return r}const kr=(i,e)=>{const t={};for(const r of i){const o=e[r.id];t[r.id]=o!==void 0?o:r.blankValue()}return t},Gr=(i,e,t)=>{const r={};for(const o of i){const l=e[o.id],s=t[o.id];o.areValuesEqual(l,s)||(r[o.id]=s)}return r},Jr=(i,e,t)=>{const r={};for(const o of i){const l=e[o.id],s=t[o.id];o.areValuesEqual(l,s)&&(r[o.id]=s)}return r},Sn=(i,e,t)=>i.every(r=>{const o=e[r.id],l=t[r.id];return r.areValuesEqual(o,l)}),wn=i=>{const e={};for(const t of i)e[t.id]=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"]}}}),Li=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(B),h=d.useMemo(()=>l.getFieldSections(),[l]),u=d.useMemo(()=>h.findIndex(({id:m})=>m===e.id),[h,e.id]),f=d.useMemo(()=>h.filter(m=>e.id in m.conditions),[h,e.id]),p=d.useMemo(()=>f.length===0?!0:f.some(m=>{const C=m.getConditions(e.id);return new Ii(C).applyConditions(o)}),[f,e,o]),g=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:Li({size:s}),children:g})]})]}):null});Wr.displayName="FieldSectionLayout";class W extends ze{type="section";label;description;conditions;fields=[];constructor(e){const{label:t,description:r,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:Er(o),conditions:l}}static serializeConfig(e){const{label:t,description:r,fields:o,conditions:l,...s}=e;return{...ze._serializeConfig(s),label:t,description:r,fields:Tr(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(),id:e,fields:this.fields.map(t=>t.duplicate(F.v4()))})}setOptions(e){"label"in e&&(this.label=e.label),"description"in e&&(this.description=e.description),"fields"in e&&e.fields!==void 0&&(this.fields=this.initFields(e.fields)),"conditions"in e&&(this.conditions=this.initConditions(e.conditions??{})),super.setOptions(e)}getErrors(e){const t={};for(const r of this.fields){const o=r.getError(e[r.id]);o&&(t[r.id]=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(({id:r})=>r!==e.id));const t={};for(const[r,o]of Object.entries(this.conditions))t[r]=o.filter(l=>l.field.id!==e.id);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({}),Bi=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:o,onSelectFieldType:l,...s}=i,h=d.useMemo(()=>{const u={[q.Assessment]:[],[q.Capture]:[],[q.Numeric]:[],[q.Selection]:[],[q.Temporal]:[],[q.Text]:[],[q.Verification]:[]};for(const f of St){const{group:p}=E[f];u[p].push(f)}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(h).map(([u,f])=>{const{name:p}=wt[u];return f.length===0?null:n.jsxs(a.Menu.Group,{children:[n.jsx(a.Menu.Label,{children:p}),f.map(g=>n.jsx(Kr,{fieldType:g,onSelectFieldType:l},g))]},u)})})})]})});Bi.displayName="CreateFieldDropdownMenu";const Kr=d.memo(i=>{const{fieldType:e,onSelectFieldType:t}=i,r=d.useCallback(()=>{t(e)},[e,t]),{icon:o,name:l}=E[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 Ti=i=>{switch(i){case"text":return new pe({label:"",required:!1,id:F.v4()});case"boolean":return new ae({label:"",required:!1,id:F.v4()});case"number":return new J({label:"",required:!1,id:F.v4()});case"date":return new we({label:"",required:!1,id:F.v4()});case"time":return new Me({label:"",required:!1,id:F.v4()});case"string":return new fe({label:"",required:!1,id:F.v4()});case"url":return new xe({label:"",required:!1,id:F.v4()});case"select":return new he({label:"",options:[],required:!1,id:F.v4()});case"multi-string":return new oe({label:"",required:!1,id:F.v4()});case"multi-select":return new ie({label:"",options:[],required:!1,id:F.v4()});case"upload":return new me({label:"",required:!1,id:F.v4()});case"qr":return new be({label:"",required:!1,id:F.v4()});case"radio":return new ce({label:"",options:[],required:!1,id:F.v4()});case"checkbox-list":return new ee({label:"",options:[],required:!1,id:F.v4()});case"pass-fail":return new de({label:"",required:!1,id:F.v4(),showNotesAndFilesOn:["fail"]});case"otp":return new le({label:"",required:!1,id:F.v4(),length:6});case"rating":return new ue({label:"",required:!1,id: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 ce.getFieldCreationSchema(e);case"select":return he.getFieldCreationSchema(e);case"string":return fe.getFieldCreationSchema(e);case"text":return pe.getFieldCreationSchema(e);case"upload":return me.getFieldCreationSchema(e);case"pass-fail":return de.getFieldCreationSchema(e);case"otp":return le.getFieldCreationSchema(e);case"rating":return ue.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",Li({size:"sm"})),children:e})})]})});Yr.displayName="FieldSettingsPopover";const Zr=d.memo(i=>{const{parentPath:e,fieldIndex:t,field:r}=i,o=fi(),{disableRequiredFields:l}=d.use(ne),[s,h]=d.useState(void 0);In.useActiveEffect(y=>{h(void 0);const I=r.image;if(I){if(!(I instanceof Promise)){h(I);return}I.then(L=>{y()&&h(L)})}},[r.image]);const u=d.useCallback(()=>{r.setOptions({image:void 0})},[r]),[f,p]=d.useMemo(()=>{const y=[],I=[],L=Xr(r.type,`${e}.${t}`)??[];for(const G of L)G.showDirectly?y.push(G.field):I.push(G.field);return[y,I]},[r,e,t]),g=pi(f),m=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}=E[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: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: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"})]}),f.length>0&&n.jsx("div",{className:R.cx("w-full",Li({size:"sm"})),children:g})]})});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`,h=d.useCallback(S=>{t.addField(Ti(S),r+1)},[r,t]),u=d.useCallback(()=>{t.addField(e.duplicate(F.v4()))},[e,t]),f=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]),g=d.useCallback(()=>{f("up")},[f]),m=d.useCallback(()=>{f("down")},[f]),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(Bi,{onSelectFieldType:h,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:kn})}),n.jsx(a.IconButton,{type:"button",onClick:m,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 Nn=d.memo(i=>{const{children:e,variant:t,size:r,accentColor:o,fields:l,onSelectField:s,onSelectAllFields:h,...u}=i,f=d.useCallback(()=>{h?.(l)},[h,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:[h?n.jsx(a.Menu.Item,{onSelect:f,children:"Select all"}):null,l.map(p=>n.jsx(Qr,{field:p,onSelectField:s},p.id))]})})]})});Nn.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:E[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,...h}=i;return n.jsxs(a.Menu.Root,{...h,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.id))})]})});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:h,data:u}=i,{targetSection:f,sourceSection:p,layoutDirection:g}=u,m=d.useMemo(()=>p.getConditions(f.id),[p,f.id]),C=d.useCallback(()=>{p.removeConditional(f.id)},[p,f.id]),z=d.useCallback(y=>{p.addCondition(f.id,si(y))},[p,f.id]),S=d.useCallback(y=>{p.addConditions(f.id,y.map(si))},[p,f.id]),w=d.useCallback(y=>{p.removeCondition(f.id,y)},[p,f.id]),[v,x,O]=_.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:v,style:s,markerEnd:h,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(Nn,{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"})]})]})]}),m.length>0&&n.jsx("div",{className:"flex h-max w-full flex-col flex-wrap gap-1",children:m.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),h=d.useCallback(()=>{s.removeFieldSection(r)},[s,r]),u=d.useCallback(C=>{r.addField(Ti(C))},[r]),f=d.useCallback(()=>{const C=new W({id:F.v4(),fields:[]});s.addFieldSection(C),r.addConditional(C.id)},[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(Bi,{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.id))})]}),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:f,children:n.jsx(a.LuIcon,{icon:Lo})}),n.jsx(a.IconButton,{type:"button",onClick:p,children:n.jsx(a.LuIcon,{icon:Di})}),n.jsx(a.IconButton,{type:"button",onClick:h,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,h=l.y-(o.measured?.height??0)/2;return{...o,position:{x:s,y:h}}}),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,h]=d.useState(),[u,f]=d.useState("TB");d.useLayoutEffect(()=>{l.current&&l.current.classList.remove("light")},[]);const p=d.useMemo(()=>o.fieldSections.map((D,K)=>({id:D.id,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.id]=X;for(const X of o.fieldSections){const di=X.conditions;for(const[ci,pa]of Object.entries(di))D.push({id:`${X.id}-${ci}`,source:X.id,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]),[m,C,z]=_.useNodesState(p),[S,w,v]=_.useEdgesState(g);d.useEffect(()=>{C(p)},[p,C]),d.useEffect(()=>{w(g)},[g,w]);const[x,O]=d.useMemo(()=>la(m,S,u),[S,u,m]),y=d.useCallback(()=>{o.addFieldSection(new W({id:F.v4(),fields:[]}))},[o]),I=d.useCallback(D=>{const{source:K,target:X}=D,di=o.fieldSections.find(({id:ci})=>ci===K);di.setOptions({conditions:{...di.conditions,[X]:[]}})},[o.fieldSections]),L=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:h,nodes:x,onNodesChange:z,edges:O,onEdgesChange:v,nodeTypes:oa,edgeTypes:aa,onConnect:I,attributionPosition:"bottom-left",fitView:!0,minZoom:0,isValidConnection:L,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:f,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:hi})}),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.id);if(!o)throw new Error(`Attempting to reseed serialized section with id ${e.id} which is not present in the reseeded id map`);const l=new Map,s=e.fields.map(u=>{const f=F.v4();return l.set(u.id,f),{...u,id:f}}),h={};if(r)for(const[u,f]of Object.entries(e.conditions??{})){const p=i.get(u);if(!p)continue;const g=f.map(m=>{const C=l.get(m.field);if(!C)throw new Error(`Serialized condition referencing undefined field with id: ${m.field}`);return{...m,field:C}});h[p]=g}return{...e,id:o,conditions:h,fields:s}},ca=(i,e={})=>{const t=new Map(i.map(r=>[r.id,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(h=>o.id in h.conditions);if(l.length>0&&!l.some(h=>{const u=h.getConditions(o.id);return new Ii(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.id,s=o.getError(_n(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.id]=await o.image}catch(l){console.error("Failed to get image from promise",l)}else e[o.id]=o.image}return e};async function ha(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 Br(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.id!==e.id);for(const r of t)r.removeConditional(r.id);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.id,r);return e}getDependenciesOfSection(e){const t=this.getSectionDependencyGraph(),r=new Map(this.fieldSections.map(l=>[l.id,l])),o=[];return go.bfsFromNode(t,e,(l,s,h)=>{o.push(r.get(l))},{mode:"in"}),o}cleanValues(e){return Ei(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 bn(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 mn(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.id),[e,t.id]),o=d.useCallback(()=>{e.removeConditional(t.id)},[e,t.id]),l=d.useCallback(u=>{e.addCondition(t.id,si(u))},[e,t.id]),s=d.useCallback(u=>{e.addConditions(t.id,u.map(si))},[e,t.id]),h=d.useCallback(u=>{e.removeCondition(t.id,u)},[e,t.id]);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:h})),n.jsx(Nn,{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.id in u.conditions),[t.fieldSections,e.id]),o=d.useCallback(u=>{u.addConditional(e.id)},[e.id]),l=d.useCallback(u=>{e.setOptions({label:u.target.value})},[e]),s=d.useCallback(u=>{e.setOptions({description:u.target.value})},[e]),h=d.useMemo(()=>{const u=t.getSectionDependencyGraph();return t.fieldSections.filter(f=>!Mn.willCreateCycle(u,f.id,e.id))},[e.id,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:h,onSelectFieldSection:o,size:"sm",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.id))]}),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]),h=d.useCallback(()=>{r.addFieldSection(e.duplicate(F.v4()))},[r,e]),u=d.useCallback(S=>{e.addField(Ti(S))},[e]),f=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}),v=JSON.stringify(w);await navigator.clipboard.writeText(v),a.toast.success({title:"Section copied"})},[e]),m=d.useCallback(async()=>{const w=r.getDependenciesOfSection(e.id).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.id),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:m,cancel:"Dont include",onCancel:g}):g()},[e,r,o,m,g]),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(Bi,{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.id))]})]}),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:f,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:h,children:[n.jsx(a.LuIcon,{icon:Di}),"Duplicate section"]}),n.jsxs(a.Menu.Item,{onSelect:C,children:[n.jsx(a.LuIcon,{icon:Tn}),"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({id:F.v4(),fields:[]}))},[o]),s=d.useCallback(async()=>{try{const u=o.serialize(),f=ye.reseedFieldSections(u,{conditions:!0}),p=JSON.stringify(f);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]),h=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 f=u.trim();if(!f){a.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}try{const p=JSON.parse(f),g=On.JSONFieldSectionSchema.array().parse(p),m=_i(g);if(m.length===0){a.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}for(const[C,z]of m.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:Tn})," Copy JSON"]}),n.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",onClick:h,children:[n.jsx(a.LuIcon,{icon:An})," Paste JSON"]})]}),o.fieldSections.map((u,f)=>n.jsx(ao,{fieldSection:u,sectionIndex:f},u.id)),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:h="Submit",hideSubmit:u=!1,cancelText:f,onCancel:p,hideCancel:g=!1,className:m,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 L=Wn(r.getFieldSections()),G=d.useMemo(()=>({fieldSchema:r,size:v}),[r,v]),te=!g&&!!p,De=!u;return n.jsx(Y.FormProvider,{...y,children:n.jsx(B,{value:G,children:n.jsxs("form",{ref:e,className:R.cx(m,"flex flex-col gap-4"),onSubmit:y.handleSubmit(O),children:[n.jsx("div",{className:ra({size:v}),children:L}),!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??re}),f]}):null,De?n.jsxs(a.Button,{type:"submit",accentColor:"primary",variant:"surface",...C,children:[n.jsx(a.LuIcon,{icon:w??H}),h]}):null]}):null]})})})})),uo=d.memo(()=>{const{fieldSchema:i}=d.use(ne);return n.jsx(co,{fieldSchema:i,disabled:!1})});uo.displayName="FormBuilderPreview";const ho=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,L]of y.fields.entries()){const G=Xr(L.type,`fields.${O}.fields.${I}`)?.map(({field:te})=>te)??[];w.push(...G)}const v={};for(const O of w)v[O.id]=_n(z,O.id);const x=bn(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},[]),h=d.useMemo(()=>({fields:t??[]}),[t]),u=Y.useForm({values:h,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:{}}}}),f=d.useCallback(z=>{u.setValue("fields",z.config())},[u]),p=Y.useWatch({control:u.control,compute:z=>z.fields}),g=d.useMemo(()=>{const z=ye.fromConfig(p);return z.observe(f),z},[p,f]),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(B,{value:C,children:n.jsx(Y.FormProvider,{...u,children:e})})})});ho.displayName="FormBuilderRoot";const fa={Root:ho,FlowBuilder:to,ListBuilder:lo,Preview:uo};c.BaseCondition=j,c.BaseField=b,c.BaseFormElement=ze,c.BaseOptionsField=Q,c.BaseStringField=Se,c.BooleanEqualsConditionModifier=Ft,c.BooleanField=ae,c.BooleanFieldCondition=Je,c.BooleanFieldConditionCell=Wt,c.BooleanFieldInput=Ji,c.BooleanNotEqualsConditionModifier=Nt,c.CheckboxListField=ee,c.CheckboxListFieldCondition=He,c.CheckboxListFieldConditionCell=Xt,c.ConditionManager=Ii,c.DateAfterConditionModifier=It,c.DateBeforeConditionModifier=xt,c.DateEqualsConditionModifier=bt,c.DateField=we,c.DateFieldCondition=We,c.DateFieldConditionCell=Zt,c.DateFieldInput=Hi,c.DateNotEqualsConditionModifier=Mt,c.DateRangeInConditionModifier=qt,c.DateRangeNotInConditionModifier=Ot,c.DoesNotHaveFilesConditionModifier=Et,c.FIELD_TYPES=St,c.FieldSchema=ye,c.FieldSection=W,c.FieldTypeGroup=q,c.FieldTypeToClsMapping=Le,c.FieldsRenderer=co,c.FileCard=ji,c.FormBuilder=fa,c.HasFilesConditionModifier=_t,c.ImageCard=Wi,c.ImageFile=Oe,c.ImageViewer=ki,c.ImageViewerProvider=Hn,c.InputWithLabel=T,c.MultiSelectField=ie,c.MultiSelectFieldCondition=Ke,c.MultiSelectFieldConditionCell=Rt,c.MultiStringField=oe,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=le,c.OTPFieldCondition=Ze,c.OTPFieldConditionCell=or,c.Observable=je,c.PassFailArrayExcludesConditionModifier=At,c.PassFailArrayIncludesConditionModifier=Tt,c.PassFailEqualsConditionModifier=Lt,c.PassFailField=de,c.PassFailFieldCondition=Qe,c.PassFailFieldConditionCell=lr,c.PassFailNotEqualsConditionModifier=Bt,c.RadioField=ce,c.RadioFieldCondition=Re,c.RadioFieldConditionCell=dr,c.RatingField=ue,c.RatingFieldCondition=ei,c.RatingFieldConditionCell=ur,c.ScanField=be,c.ScanFieldCondition=ii,c.ScanFieldConditionCell=fr,c.Scanner=mi,c.ScannerProvider=ut,c.SelectField=he,c.SelectFieldCondition=ni,c.SelectFieldConditionCell=gr,c.StringArrayEqualsConditionModifier=Ni,c.StringArrayEveryConditionModifier=Si,c.StringArrayExcludesConditionModifier=fn,c.StringArrayIncludesConditionModifier=hn,c.StringArrayNoneConditionModifier=Fi,c.StringArrayNotEqualsConditionModifier=bi,c.StringArraySomeConditionModifier=wi,c.StringEqualsConditionModifier=Ce,c.StringExcludesConditionModifier=Te,c.StringField=fe,c.StringFieldCondition=ti,c.StringFieldConditionCell=Cr,c.StringIncludesConditionModifier=Be,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=Nr,c.UTC_OFFSETS=Ri,c.UTC_OFFSETS_SET=mt,c.UUIDFile=se,c.UUIDPromise=Ne,c.UploadField=me,c.UploadFieldCondition=ai,c.UploadFieldConditionCell=wr,c.VideoCard=Xi,c.VideoFile=Ki,c.areFieldValuesBlank=Hr,c.areFieldValuesEqual=Sn,c.areFileAndPromiseArraysEqual=gi,c.areJSONPassFailFieldValuesEqual=at,c.arePassFieldValuesEqual=ot,c.awaitFilesAndPromises=ha,c.blankFieldValues=wn,c.changedFieldValues=Gr,c.cleanConditions=Cn,c.cleanFieldValues=Ei,c.cleanSerializedConditions=mn,c.cleanSerializedFieldValues=zn,c.createCondition=si,c.createConditionModifierConfig=V,c.createField=Ti,c.createTime=en,c.deserializeCondition=Mr,c.deserializeConditions=qi,c.deserializeField=Oi,c.deserializeFieldConfig=yn,c.deserializeFieldConfigs=Er,c.deserializeFieldElement=Ir,c.deserializeFieldElementConfig=Lr,c.deserializeFieldElementConfigs=Br,c.deserializeFieldElements=_i,c.deserializeFieldValues=Pr,c.deserializeFields=na,c.deserializePassFailFieldValue=rt,c.extractFilesAndPromisesFromFieldValues=jr,c.fieldDataMapping=E,c.fieldElementFromConfig=Or,c.fieldElementsFromConfigs=_r,c.fieldFromConfig=Vn,c.fieldSpacingCva=Li,c.fieldTypeGroupDataMapping=wt,c.fieldsFromConfigs=qr,c.formatTime=yi,c.formatUTCOffset=Vi,c.getCurrentUTCOffset=Vt,c.getFieldsMapping=ta,c.getImagesFromFields=ua,c.getUTCMinuteOfDay=ge,c.getUTCOffsetMinutes=yt,c.initializeFieldValues=kr,c.insertFilesAndPromisesToFieldValues=Ur,c.isFileAndPromiseArray=Rn,c.isJSONPassFailFieldValue=it,c.isPassFailFieldStatus=Zi,c.isPassFailFieldValue=nt,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=Ee,c.serializeConditions=xr,c.serializeFieldConfig=vn,c.serializeFieldConfigs=Tr,c.serializeFieldElementConfig=Ar,c.serializeFieldElementConfigs=$r,c.serializeFieldValues=Dr,c.serializePassFailFieldValue=tt,c.unchangedFieldValues=Jr,c.useConditionManager=ea,c.useFieldInput=P,c.useFieldInputs=pi,c.useFieldSectionInputs=Wn,c.useImageViewer=fi,c.useObjectUrl=Ui,c.useScanner=Yo,c.useScannerContext=dt,c.validateFieldValues=bn,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
|