@overmap-ai/forms 2.0.1-camera.0 → 2.0.1-compound-conditions.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.
Files changed (166) hide show
  1. package/dist/form/builder/index.d.ts +1 -1
  2. package/dist/form/builder/utils.d.ts +1 -1
  3. package/dist/form/condition-builder/FieldConditionBuilder/FieldConditionBuilder.d.ts +9 -0
  4. package/dist/form/condition-builder/FieldConditionBuilder/context.d.ts +6 -0
  5. package/dist/form/condition-builder/FieldConditionBuilder/index.d.ts +2 -0
  6. package/dist/form/{conditions/BooleanFieldCondition → condition-builder/cells}/BooleanFieldConditionCell.d.ts +2 -2
  7. package/dist/form/{conditions/CheckboxListFieldCondition → condition-builder/cells}/CheckboxListFieldConditionCell.d.ts +2 -2
  8. package/dist/form/condition-builder/cells/CompoundFieldConditionCell.d.ts +6 -0
  9. package/dist/form/{conditions/DateFieldCondition → condition-builder/cells}/DateFieldConditionCell.d.ts +2 -2
  10. package/dist/form/{conditions → condition-builder/cells}/FieldConditionCell.d.ts +3 -3
  11. package/dist/form/{conditions/MultiSelectFieldCondition → condition-builder/cells}/MultiSelectFieldConditionCell.d.ts +2 -2
  12. package/dist/form/{conditions/MultiStringFieldCondition → condition-builder/cells}/MultiStringFieldConditionCell.d.ts +2 -2
  13. package/dist/form/{conditions/NumberFieldCondition → condition-builder/cells}/NumberFieldConditionCell.d.ts +2 -2
  14. package/dist/form/{conditions/OTPFieldCondition → condition-builder/cells}/OTPFieldConditionCell.d.ts +2 -2
  15. package/dist/form/{conditions/PassFailFieldCondition → condition-builder/cells}/PassFailFieldConditionCell.d.ts +2 -2
  16. package/dist/form/{conditions/RadioFieldCondition → condition-builder/cells}/RadioFieldConditionCell.d.ts +2 -2
  17. package/dist/form/{conditions/RatingFieldCondition → condition-builder/cells}/RatingFieldConditionCell.d.ts +2 -2
  18. package/dist/form/{conditions/ScanFieldCondition → condition-builder/cells}/ScanFieldConditionCell.d.ts +2 -2
  19. package/dist/form/{conditions/SelectFieldCondition → condition-builder/cells}/SelectFieldConditionCell.d.ts +2 -2
  20. package/dist/form/{conditions/StringFieldCondition → condition-builder/cells}/StringFieldConditionCell.d.ts +2 -2
  21. package/dist/form/{conditions/TextFieldCondition → condition-builder/cells}/TextFieldConditionCell.d.ts +2 -2
  22. package/dist/form/{conditions/TimeFieldCondition → condition-builder/cells}/TimeFieldConditionCell.d.ts +2 -2
  23. package/dist/form/{conditions/URLFieldCondition → condition-builder/cells}/URLFieldConditionCell.d.ts +2 -2
  24. package/dist/form/{conditions/UploadFieldCondition → condition-builder/cells}/UploadFieldConditionCell.d.ts +2 -2
  25. package/dist/form/condition-builder/cells/index.d.ts +19 -0
  26. package/dist/form/condition-builder/components/ConditionModifierDropdown.d.ts +9 -0
  27. package/dist/form/condition-builder/index.d.ts +3 -0
  28. package/dist/form/condition-builder/typings.d.ts +6 -0
  29. package/dist/form/conditions/BaseAtomicFieldCondition/BaseAtomicFieldCondition.d.ts +19 -0
  30. package/dist/form/conditions/BaseAtomicFieldCondition/index.d.ts +2 -0
  31. package/dist/form/conditions/BaseAtomicFieldCondition/typings.d.ts +26 -0
  32. package/dist/form/conditions/BaseFieldCondition/BaseFieldCondition.d.ts +8 -9
  33. package/dist/form/conditions/BaseFieldCondition/typings.d.ts +3 -22
  34. package/dist/form/conditions/BooleanFieldCondition/BooleanFieldEqualsCondition.d.ts +3 -5
  35. package/dist/form/conditions/BooleanFieldCondition/BooleanFieldNotEqualsCondition.d.ts +3 -5
  36. package/dist/form/conditions/BooleanFieldCondition/index.d.ts +0 -1
  37. package/dist/form/conditions/CheckboxListFieldCondition/CheckboxListFieldEqualsCondition.d.ts +3 -5
  38. package/dist/form/conditions/CheckboxListFieldCondition/CheckboxListFieldEveryCondition.d.ts +3 -5
  39. package/dist/form/conditions/CheckboxListFieldCondition/CheckboxListFieldNoneCondition.d.ts +3 -5
  40. package/dist/form/conditions/CheckboxListFieldCondition/CheckboxListFieldNotEqualsCondition.d.ts +3 -5
  41. package/dist/form/conditions/CheckboxListFieldCondition/CheckboxListFieldSomeCondition.d.ts +3 -5
  42. package/dist/form/conditions/CheckboxListFieldCondition/index.d.ts +0 -1
  43. package/dist/form/conditions/CompoundFieldCondition/AndFieldCondition.d.ts +6 -0
  44. package/dist/form/conditions/CompoundFieldCondition/BaseCompoundFieldCondition.d.ts +21 -0
  45. package/dist/form/conditions/CompoundFieldCondition/NandFieldCondition.d.ts +6 -0
  46. package/dist/form/conditions/CompoundFieldCondition/NorFieldCondition.d.ts +6 -0
  47. package/dist/form/conditions/CompoundFieldCondition/OrFieldCondition.d.ts +6 -0
  48. package/dist/form/conditions/CompoundFieldCondition/index.d.ts +7 -0
  49. package/dist/form/conditions/CompoundFieldCondition/mappings.d.ts +26 -0
  50. package/dist/form/conditions/CompoundFieldCondition/typings.d.ts +23 -0
  51. package/dist/form/conditions/ConditionManager/ConditionManager.d.ts +7 -11
  52. package/dist/form/conditions/ConditionManager/hooks.d.ts +3 -3
  53. package/dist/form/conditions/ConditionManager/typings.d.ts +2 -2
  54. package/dist/form/conditions/DateFieldCondition/DateFieldAfterCondition.d.ts +3 -5
  55. package/dist/form/conditions/DateFieldCondition/DateFieldBeforeCondition.d.ts +3 -5
  56. package/dist/form/conditions/DateFieldCondition/DateFieldEqualsCondition.d.ts +3 -5
  57. package/dist/form/conditions/DateFieldCondition/DateFieldInCondition.d.ts +4 -5
  58. package/dist/form/conditions/DateFieldCondition/DateFieldNotEqualsCondition.d.ts +3 -5
  59. package/dist/form/conditions/DateFieldCondition/DateFieldNotInCondition.d.ts +4 -5
  60. package/dist/form/conditions/DateFieldCondition/index.d.ts +0 -1
  61. package/dist/form/conditions/MultiSelectFieldCondition/MultiSelectFieldEqualsCondition.d.ts +3 -5
  62. package/dist/form/conditions/MultiSelectFieldCondition/MultiSelectFieldEveryCondition.d.ts +3 -5
  63. package/dist/form/conditions/MultiSelectFieldCondition/MultiSelectFieldNoneCondition.d.ts +3 -5
  64. package/dist/form/conditions/MultiSelectFieldCondition/MultiSelectFieldNotEqualsCondition.d.ts +3 -5
  65. package/dist/form/conditions/MultiSelectFieldCondition/MultiSelectFieldSomeCondition.d.ts +3 -5
  66. package/dist/form/conditions/MultiSelectFieldCondition/index.d.ts +0 -1
  67. package/dist/form/conditions/MultiStringFieldCondition/MultiStringFieldEqualsCondition.d.ts +3 -5
  68. package/dist/form/conditions/MultiStringFieldCondition/MultiStringFieldEveryCondition.d.ts +3 -5
  69. package/dist/form/conditions/MultiStringFieldCondition/MultiStringFieldNoneCondition.d.ts +3 -5
  70. package/dist/form/conditions/MultiStringFieldCondition/MultiStringFieldNotEqualsCondition.d.ts +3 -5
  71. package/dist/form/conditions/MultiStringFieldCondition/MultiStringFieldSomeCondition.d.ts +3 -5
  72. package/dist/form/conditions/MultiStringFieldCondition/index.d.ts +0 -1
  73. package/dist/form/conditions/NumberFieldCondition/NumberFieldEqualsCondition.d.ts +3 -5
  74. package/dist/form/conditions/NumberFieldCondition/NumberFieldGreaterThanCondition.d.ts +3 -5
  75. package/dist/form/conditions/NumberFieldCondition/NumberFieldGreaterThanOrEqualsCondition.d.ts +3 -5
  76. package/dist/form/conditions/NumberFieldCondition/NumberFieldInRangeCondition.d.ts +4 -5
  77. package/dist/form/conditions/NumberFieldCondition/NumberFieldLessThanCondition.d.ts +3 -5
  78. package/dist/form/conditions/NumberFieldCondition/NumberFieldLessThanOrEqualsCondition.d.ts +3 -5
  79. package/dist/form/conditions/NumberFieldCondition/NumberFieldNotEqualsCondition.d.ts +3 -5
  80. package/dist/form/conditions/NumberFieldCondition/NumberFieldNotInRangeCondition.d.ts +4 -5
  81. package/dist/form/conditions/NumberFieldCondition/index.d.ts +0 -1
  82. package/dist/form/conditions/OTPFieldCondition/OTPFieldEqualsCondition.d.ts +3 -5
  83. package/dist/form/conditions/OTPFieldCondition/OTPFieldExcludesCondition.d.ts +3 -5
  84. package/dist/form/conditions/OTPFieldCondition/OTPFieldIncludesCondition.d.ts +3 -5
  85. package/dist/form/conditions/OTPFieldCondition/OTPFieldNotEqualsCondition.d.ts +3 -5
  86. package/dist/form/conditions/OTPFieldCondition/index.d.ts +0 -1
  87. package/dist/form/conditions/PassFailFieldCondition/PassFailFieldEqualsCondition.d.ts +4 -5
  88. package/dist/form/conditions/PassFailFieldCondition/PassFailFieldExcludesCondition.d.ts +4 -5
  89. package/dist/form/conditions/PassFailFieldCondition/PassFailFieldIncludesCondition.d.ts +4 -5
  90. package/dist/form/conditions/PassFailFieldCondition/PassFailFieldNotEqualsCondition.d.ts +4 -5
  91. package/dist/form/conditions/PassFailFieldCondition/index.d.ts +0 -1
  92. package/dist/form/conditions/RadioFieldCondition/RadioFieldEqualsCondition.d.ts +3 -5
  93. package/dist/form/conditions/RadioFieldCondition/RadioFieldExcludesCondition.d.ts +3 -5
  94. package/dist/form/conditions/RadioFieldCondition/RadioFieldIncludesCondition.d.ts +3 -5
  95. package/dist/form/conditions/RadioFieldCondition/RadioFieldNotEqualsCondition.d.ts +3 -5
  96. package/dist/form/conditions/RadioFieldCondition/index.d.ts +0 -1
  97. package/dist/form/conditions/RatingFieldCondition/RatingFieldEqualsCondition.d.ts +3 -5
  98. package/dist/form/conditions/RatingFieldCondition/RatingFieldGreaterThanCondition.d.ts +3 -5
  99. package/dist/form/conditions/RatingFieldCondition/RatingFieldGreaterThanOrEqualsCondition.d.ts +3 -5
  100. package/dist/form/conditions/RatingFieldCondition/RatingFieldInRangeCondition.d.ts +4 -5
  101. package/dist/form/conditions/RatingFieldCondition/RatingFieldLessThanCondition.d.ts +3 -5
  102. package/dist/form/conditions/RatingFieldCondition/RatingFieldLessThanOrEqualsCondition.d.ts +3 -5
  103. package/dist/form/conditions/RatingFieldCondition/RatingFieldNotEqualsCondition.d.ts +3 -5
  104. package/dist/form/conditions/RatingFieldCondition/RatingFieldNotInRangeCondition.d.ts +4 -5
  105. package/dist/form/conditions/RatingFieldCondition/index.d.ts +0 -1
  106. package/dist/form/conditions/ScanFieldCondition/ScanFieldEqualsCondition.d.ts +3 -5
  107. package/dist/form/conditions/ScanFieldCondition/ScanFieldExcludesCondition.d.ts +3 -5
  108. package/dist/form/conditions/ScanFieldCondition/ScanFieldIncludesCondition.d.ts +3 -5
  109. package/dist/form/conditions/ScanFieldCondition/ScanFieldNotEqualsCondition.d.ts +3 -5
  110. package/dist/form/conditions/ScanFieldCondition/index.d.ts +0 -1
  111. package/dist/form/conditions/SelectFieldCondition/SelectFieldEqualsCondition.d.ts +3 -5
  112. package/dist/form/conditions/SelectFieldCondition/SelectFieldExcludesCondition.d.ts +3 -5
  113. package/dist/form/conditions/SelectFieldCondition/SelectFieldIncludesCondition.d.ts +3 -5
  114. package/dist/form/conditions/SelectFieldCondition/SelectFieldNotEqualsCondition.d.ts +3 -5
  115. package/dist/form/conditions/SelectFieldCondition/index.d.ts +0 -1
  116. package/dist/form/conditions/StringFieldCondition/StringFieldEqualsCondition.d.ts +3 -5
  117. package/dist/form/conditions/StringFieldCondition/StringFieldExcludesCondition.d.ts +3 -5
  118. package/dist/form/conditions/StringFieldCondition/StringFieldIncludesCondition.d.ts +3 -5
  119. package/dist/form/conditions/StringFieldCondition/StringFieldNotEqualsCondition.d.ts +3 -5
  120. package/dist/form/conditions/StringFieldCondition/index.d.ts +0 -1
  121. package/dist/form/conditions/TextFieldCondition/TextFieldEqualsCondition.d.ts +3 -5
  122. package/dist/form/conditions/TextFieldCondition/TextFieldExcludesCondition.d.ts +3 -5
  123. package/dist/form/conditions/TextFieldCondition/TextFieldIncludesCondition.d.ts +3 -5
  124. package/dist/form/conditions/TextFieldCondition/TextFieldNotEqualsCondition.d.ts +3 -5
  125. package/dist/form/conditions/TextFieldCondition/index.d.ts +0 -1
  126. package/dist/form/conditions/TimeFieldCondition/TimeFieldAfterCondition.d.ts +4 -5
  127. package/dist/form/conditions/TimeFieldCondition/TimeFieldBeforeCondition.d.ts +4 -5
  128. package/dist/form/conditions/TimeFieldCondition/TimeFieldEqualsCondition.d.ts +4 -5
  129. package/dist/form/conditions/TimeFieldCondition/TimeFieldInCondition.d.ts +4 -5
  130. package/dist/form/conditions/TimeFieldCondition/TimeFieldNotEqualsCondition.d.ts +4 -5
  131. package/dist/form/conditions/TimeFieldCondition/TimeFieldNotInCondition.d.ts +4 -5
  132. package/dist/form/conditions/TimeFieldCondition/index.d.ts +0 -1
  133. package/dist/form/conditions/URLFieldCondition/URLFieldEqualsCondition.d.ts +3 -5
  134. package/dist/form/conditions/URLFieldCondition/URLFieldExcludesCondition.d.ts +3 -5
  135. package/dist/form/conditions/URLFieldCondition/URLFieldIncludesCondition.d.ts +3 -5
  136. package/dist/form/conditions/URLFieldCondition/URLFieldNotEqualsCondition.d.ts +3 -5
  137. package/dist/form/conditions/URLFieldCondition/index.d.ts +0 -1
  138. package/dist/form/conditions/UploadFieldCondition/UploadFieldEqualsCondition.d.ts +3 -5
  139. package/dist/form/conditions/UploadFieldCondition/UploadFieldNotEqualsCondition.d.ts +3 -5
  140. package/dist/form/conditions/UploadFieldCondition/index.d.ts +0 -1
  141. package/dist/form/conditions/hooks.d.ts +2 -3
  142. package/dist/form/conditions/index.d.ts +2 -2
  143. package/dist/form/conditions/mappings.d.ts +26 -130
  144. package/dist/form/conditions/typings.d.ts +22 -31
  145. package/dist/form/conditions/utils.d.ts +9 -6
  146. package/dist/form/fields/FieldSection/FieldSection.d.ts +7 -11
  147. package/dist/form/fields/FieldSection/typings.d.ts +2 -2
  148. package/dist/form/index.d.ts +1 -0
  149. package/dist/form/schema/FieldSchema.d.ts +5 -5
  150. package/dist/forms.js +4316 -4674
  151. package/dist/forms.umd.cjs +1 -1
  152. package/package.json +3 -3
  153. package/dist/form/conditions/BaseCondition/BaseCondition.d.ts +0 -16
  154. package/dist/form/conditions/BaseCondition/index.d.ts +0 -2
  155. package/dist/form/conditions/BaseCondition/typings.d.ts +0 -14
  156. package/dist/form/conditions/components/ConditionModifierDropdown.d.ts +0 -10
  157. /package/dist/form/{conditions → condition-builder}/components/DayPickerPopover.d.ts +0 -0
  158. /package/dist/form/{conditions → condition-builder}/components/MultiStringPopover.d.ts +0 -0
  159. /package/dist/form/{conditions → condition-builder}/components/NumberInputPopover.d.ts +0 -0
  160. /package/dist/form/{conditions → condition-builder}/components/RemoveConditionButton.d.ts +0 -0
  161. /package/dist/form/{conditions → condition-builder}/components/SelectFieldOptionMultiSelectGroup.d.ts +0 -0
  162. /package/dist/form/{conditions → condition-builder}/components/SelectFieldOptionSelectGroup.d.ts +0 -0
  163. /package/dist/form/{conditions → condition-builder}/components/TextInputPopover.d.ts +0 -0
  164. /package/dist/form/{conditions → condition-builder}/components/TimeInputPopover.d.ts +0 -0
  165. /package/dist/form/{conditions → condition-builder}/components/constants.d.ts +0 -0
  166. /package/dist/form/{conditions → condition-builder}/components/index.d.ts +0 -0
@@ -1 +1 @@
1
- (function(c,i){typeof exports=="object"&&typeof module<"u"?i(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"],i):(c=typeof globalThis<"u"?globalThis:c||self,i(c.forms={},c.jsxRuntime,c.blocks,c.classVarianceAuthority,c.react,null,c.react$1,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,i,a,X,o,Js,E,Dt,Y,S,et,nt,pi,ja,_t,$t,Ua,Ga,Pt,Ja){"use strict";const Ha=l=>l.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Wa=l=>l.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,n,t)=>t?t.toUpperCase():n.toLowerCase()),kt=l=>{const e=Wa(l);return e.charAt(0).toUpperCase()+e.slice(1)},jt=(...l)=>l.filter((e,n,t)=>!!e&&e.trim()!==""&&t.indexOf(e)===n).join(" ").trim(),Ka=l=>{for(const e in l)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var Za={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 Xa=o.forwardRef(({color:l="currentColor",size:e=24,strokeWidth:n=2,absoluteStrokeWidth:t,className:s="",children:r,iconNode:d,...f},h)=>o.createElement("svg",{ref:h,...Za,width:e,height:e,stroke:l,strokeWidth:t?Number(n)*24/Number(e):n,className:jt("lucide",s),...!r&&!Ka(f)&&{"aria-hidden":"true"},...f},[...d.map(([u,p])=>o.createElement(u,p)),...Array.isArray(r)?r:[r]]));const b=(l,e)=>{const n=o.forwardRef(({className:t,...s},r)=>o.createElement(Xa,{ref:r,iconNode:e,className:jt(`lucide-${Ha(kt(l))}`,`lucide-${l}`,t),...s}));return n.displayName=kt(l),n};const Ya=b("align-justify",[["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 18h18",key:"1h113x"}],["path",{d:"M3 6h18",key:"d0wm0j"}]]);const Qa=b("arrow-down-up",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"m21 8-4-4-4 4",key:"1c9v7m"}],["path",{d:"M17 4v16",key:"7dpous"}]]);const Ra=b("arrow-left-right",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]);const Ut=b("camera",[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]);const es=b("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);const J=b("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const gi=b("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const mi=b("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);const ns=b("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const is=b("circle-dot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);const ts=b("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const ls=b("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);const Gt=b("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);const Jt=b("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]);const as=b("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);const Ht=b("clipboard-paste",[["path",{d:"M11 14h10",key:"1w8e9d"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v1.344",key:"1e62lh"}],["path",{d:"m17 18 4-4-4-4",key:"z2g111"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113",key:"bjbb7m"}],["rect",{x:"8",y:"2",width:"8",height:"4",rx:"1",key:"ublpy"}]]);const ss=b("copy-check",[["path",{d:"m12 15 2 2 4-4",key:"2c609p"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);const it=b("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);const tt=b("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);const Wt=b("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);const rs=b("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);const os=b("file",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);const ds=b("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);const cs=b("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);const Kt=b("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);const Zt=b("layout-panel-top",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}]]);const us=b("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);const hs=b("list-checks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);const fs=b("list-todo",[["rect",{x:"3",y:"5",width:"6",height:"6",rx:"1",key:"1defrl"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);const ps=b("list",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);const gs=b("maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]]);const Ci=b("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const Xt=b("move-down",[["path",{d:"M8 18L12 22L16 18",key:"cskvfv"}],["path",{d:"M12 2V22",key:"r89rzk"}]]);const yi=b("move-up",[["path",{d:"M8 6L12 2L16 6",key:"1yvkyx"}],["path",{d:"M12 2V22",key:"r89rzk"}]]);const Yt=b("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);const Q=b("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const ms=b("rectangle-ellipsis",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M7 12h.01",key:"eqddd0"}]]);const Cs=b("scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]);const ys=b("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const vs=b("square-check",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const ws=b("square-dashed",[["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M21 14v1",key:"169vum"}]]);const Qt=b("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);const Fs=b("text-cursor-input",[["path",{d:"M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6",key:"1528k5"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1",key:"1mj8rg"}],["path",{d:"M9 6v12",key:"velyjx"}]]);const zs=b("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);const se=b("trash",[["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);const lt=b("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);const Vs=b("video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]);const ne=b("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),at=o.memo(l=>{const{ref:e,file:n,className:t,error:s,rightSlot:r,size:d,...f}=l,h=()=>s?i.jsxs(i.Fragment,{children:[i.jsx(a.LuIcon,{icon:mi,color:"var(--base-a11)"}),i.jsx(a.Text,{accentColor:"base",className:"truncate",size:d,children:s})]}):n?i.jsxs(i.Fragment,{children:[i.jsx(a.LuIcon,{icon:os,color:"var(--base-a11)"}),i.jsx(a.Text,{className:"truncate",size:d,children:n.name})]}):i.jsx(i.Fragment,{children:i.jsx("div",{className:"flex w-full justify-center",children:i.jsx(a.Spinner,{size:d})})});return i.jsxs(a.Card,{className:X.cx(t,"flex w-full items-center gap-2"),ref:e,size:"xs",...f,children:[h(),r]})});at.displayName="FileCard";function Qe(l){return Array.isArray(l)?l.every(e=>typeof e=="string"):!1}class Re{observers=new Set;notify(e){for(const n of this.observers)n(e)}observe(e){return this.observers.add(e),()=>{this.observers.delete(e)}}}class ze extends Re{id;constructor(e){const{id:n}=e;super(),this.id=n}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:n,type:t}=e;return{id:n,type:t}}static _serializeConfig(e){const{id:n,type:t}=e;return{id:n,type:t}}}class M extends ze{label;description;required;image;constructor(e){const{label:n,description:t,required:s,image:r,...d}=e;super(d),this.label=n,this.description=t,this.required=s,this.image=r}getError(e){if(!(!this.required&&this.isValueBlank(e))){if(this.required&&this.isValueBlank(e))return"This field is required.";for(const n of this.getFieldValidators()){const t=n(e);if(t)return t}}}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:n,description:t,required:s,...r}=e;return{...ze._deserializeConfig(r),label:n,description:t??void 0,required:s}}static _serializeConfig(e){const{label:n,description:t,required:s,...r}=e;return{...ze._serializeConfig(r),label:n,description:t,required:s}}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=o.createContext({}),st=l=>{const[e,n]=o.useState(null);return o.useLayoutEffect(()=>{const t=URL.createObjectURL(l);return n(t),()=>{URL.revokeObjectURL(t)}},[l]),e},Ve=o.memo(l=>{const{file:e,...n}=l,t=st(e);return i.jsx("img",{src:t??void 0,alt:e.name,...n})});Ve.displayName="ImageFile";const Rt=o.createContext(()=>{throw new Error("No ImageViewerProvider found")}),vi=()=>o.useContext(Rt),rt=o.memo(l=>{const{file:e,onClose:n}=l,t=o.useCallback(()=>{nt.saveAs(e,e.name)},[e]);return i.jsx(a.Overlay.Root,{open:!0,onOpenChange:n,children:i.jsxs(a.Overlay.Content,{onOpenAutoFocus:a.preventDefault,children:[i.jsxs(a.ButtonGroup,{className:"absolute right-0 top-0 flex items-center gap-2 p-2",accentColor:"base",variant:"soft",children:[i.jsx(a.IconButton,{onClick:t,"aria-label":"download",children:i.jsx(a.LuIcon,{icon:tt})}),i.jsx(a.Separator,{orientation:"vertical",size:"sm"}),i.jsx(a.Overlay.Close,{asChild:!0,children:i.jsx(a.IconButton,{onClick:n,"aria-label":"close",children:i.jsx(a.LuIcon,{icon:ne})})})]}),i.jsx("div",{className:"flex size-full items-center justify-center overflow-hidden p-4",children:i.jsx(Ve,{className:"max-h-full max-w-full",file:e})})]})})});rt.displayName="ImageViewer";const el=o.memo(l=>{const{children:e}=l,[n,t]=o.useState(null),s=o.useCallback(()=>{t(null)},[]),r=o.useCallback(f=>{t(f(s))},[s]),d=o.useCallback(()=>{n&&(n.onClose&&n.onClose(),s())},[s,n]);return i.jsxs(Rt.Provider,{value:r,children:[e,n&&i.jsx(rt,{file:n.file,onClose:d})]})});el.displayName="FileViewerProvider";const D=o.memo(l=>{const{label:e,error:n,description:t,required:s,children:r,inputId:d,image:f,size:h}=l,[u,p]=o.useState(void 0),m=vi();o.useEffect(()=>{f instanceof Promise?f.then(p).catch(console.error):p(f)},[f]);const g=o.useCallback(()=>{u&&m(()=>({file:u}))},[m,u]),C=s?`${e??"Unlabelled"} *`:e??"Unlabelled";return i.jsxs("div",{className:"flex flex-col gap-1",children:[u&&i.jsx(Ve,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:u,onClick:g}),(!!e||!!t)&&i.jsxs("div",{className:"flex flex-col",children:[i.jsx("label",{className:"w-max max-w-full",htmlFor:d,children:i.jsx(a.Text,{size:h,className:"text-wrap",children:C})}),!!t&&i.jsx(a.Text,{accentColor:"base",size:h,children:t})]}),r,!!n&&i.jsx(a.Text,{accentColor:"danger",size:h,children:n})]})});D.displayName="InputWithLabel";const nl=l=>l.map(e=>i.jsx(o.Fragment,{children:e.render()},e.id)),wi=l=>l.map(e=>i.jsx(o.Fragment,{children:e.render()},e.id)),P=l=>{const{field:e}=l,{field:{value:n,name:t,onChange:s,onBlur:r,disabled:d},fieldState:{isTouched:f,error:h}}=Y.useController({name:e.id});return{value:n,name:t,disabled:d,isTouched:f,error:h?.message??"",onChange:s,onBlur:r}},il=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),[u,p]=o.useState(""),[m,g]=o.useState(""),C=o.useCallback(V=>{d(V),r()},[d,r]),v=o.useCallback(V=>{t&&t.findIndex(N=>N===V.target.value.trim())>=0?g("All options must be unique"):V.target.value?g(""):g("Option cannot be empty"),p(V.target.value)},[p,t]),w=o.useCallback(()=>{if(m)return;if(!u.trim()){g("Option cannot be empty");return}const V=u.trim();C([...t,V]),p("")},[u,m,C,t]),z=o.useCallback(V=>{V.key==="Enter"&&(V.preventDefault(),w())},[w]),F=o.useCallback(V=>{const N=Array.from(t);N.splice(V,1),C(N)},[t,C]),q=o.useCallback(V=>{if(!V.destination)return;const N=V.source.index,I=V.destination.index,T=Array.from(t),[A]=T.splice(N,1);T.splice(I,0,A),C(T)},[C,t]),x=o.useCallback(()=>{r()},[r]);return i.jsx(et.DragDropContext,{onDragEnd:q,children:i.jsxs(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:m||f,image:e.image,children:[(!h||t.length===0)&&i.jsxs("div",{className:"flex gap-2",children:[i.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"surface",size:n,children:i.jsx(a.Input.Field,{value:u,onChange:v,onKeyDown:z,id:e.id,placeholder:e.placeholder??"Press enter to add a new option",onBlur:x,name:s,disabled:h})}),i.jsx(a.IconButton,{size:n,accentColor:"base",variant:"soft",type:"button","aria-label":"Add option",disabled:!!m||h,onClick:w,children:i.jsx(a.LuIcon,{icon:Q})})]}),t.length!==0&&i.jsx(et.Droppable,{droppableId:`${e.id}-droppable`,children:V=>i.jsxs("div",{className:"flex flex-col gap-1",...V.droppableProps,ref:V.innerRef,children:[t.map((N,I)=>i.jsx(et.Draggable,{draggableId:`${N}-draggable`,index:I,isDragDisabled:h,children:({draggableProps:T,dragHandleProps:A,innerRef:W})=>i.jsxs(a.Badge,{...A,...T,ref:W,className:"flex items-center justify-between gap-2",accentColor:"base",size:n,variant:"soft",children:[i.jsx(a.Text,{className:"truncate",highContrast:!0,children:ot(N).label}),i.jsx(a.IconButton,{className:"bg-transparent!",size:n,variant:"ghost",type:"button","aria-label":"Delete option",accentColor:"base",disabled:h,onClick:()=>{F(I)},children:i.jsx(a.LuIcon,{icon:ne})})]})},`${e.id}-${N}-${I}`)),V.placeholder]})})]})})});il.displayName="MultiStringFieldInput";class re extends M{type="multi-string";minLength;maxLength;placeholder;constructor(e){const{minLength:n,maxLength:t,placeholder:s,...r}=e;super(r),this.minLength=n,this.maxLength=t,this.placeholder=s}render(){return i.jsx(il,{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 re({...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(n=>{if(this.minLength!==void 0&&n.length<this.minLength)return`Must have at least ${this.minLength} options.`}),e.push(n=>{if(this.maxLength!==void 0&&n.length>this.maxLength)return`Must have at most ${this.maxLength} options.`}),e}static deserialize(e){return new re(e)}static fromConfig(e){return new re(e)}static deserializeConfig(e){const{minLength:n,maxLength:t,placeholder:s,...r}=e;return{...M._deserializeConfig(r),minLength:n,maxLength:t,placeholder:s}}static serializeConfig(e){const{minLength:n,maxLength:t,placeholder:s,...r}=e;return{...M._serializeConfig(r),minLength:n,maxLength:t,placeholder:s}}isSerializedValue(e){return Qe(e)}isValue(e){return Qe(e)}blankValue(){return[]}areValuesEqual(e,n){const t=new Set(e),s=new Set(n);return t.size===s.size&&t.isSubsetOf(s)}blankSerializedValue(){return[]}areSerializedValuesEqual(e,n){const t=new Set(e),s=new Set(n);return t.size===s.size&&t.isSubsetOf(s)}}function ot(l){return typeof l=="string"&&(l={label:l,value:l}),l}function oe(l){return l.map(ot)}class R extends M{options;constructor(e){const{options:n,...t}=e;super(t),this.options=oe(n)}serialize(){return{...super.serialize(),options:this.options}}config(){return{...super.config(),options:this.options}}static _deserializeConfig(e){const{options:n,...t}=e;return{...M._deserializeConfig(t),options:n}}static _serializeConfig(e){const{options:n,...t}=e;return{...M._serializeConfig(t),options:oe(n)}}getOptions(){return{...super.getOptions(),options:this.options}}setOptions(e){"options"in e&&e.options!==void 0&&(this.options=oe(e.options)),super.setOptions(e)}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new re({label:"Options",description:"List possible options for the user to select from.",required:!0,id:`${n}options`,minLength:2}),showDirectly:!0}]}}const dt=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(m=>{d(!!m),r()},[r,d]),p=o.useCallback(()=>{r()},[r]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,error:f,image:e.image,required:e.required,children:i.jsx(a.Checkbox.Root,{id:e.id,name:s,checked:t??!1,onCheckedChange:u,onBlur:p,size:n,accentColor:"base",variant:"surface",disabled:h,children:i.jsx(a.Checkbox.Indicator,{children:i.jsx(a.LuIcon,{icon:J})})})})});dt.displayName="BooleanFieldInput";class de extends M{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 de({...this.getOptions(),id:e})}static deserialize(e){return new de(e)}static fromConfig(e){return new de(e)}static deserializeConfig(e){return M._deserializeConfig(e)}static serializeConfig(e){return M._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(dt,{field:this})}isSerializedValue(e){return typeof e=="boolean"}isValue(e){return typeof e=="boolean"}blankValue(){return!1}blankSerializedValue(){return!1}areSerializedValuesEqual(e,n){return e===n}areValuesEqual(e,n){return e===n}}const tl=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(g=>{const C=g.target.valueAsNumber,v=isNaN(C)?null:C;d(v)},[d]),p=o.useCallback(()=>{r()},[r]),m=o.useCallback(g=>{g.key==="Enter"&&g.preventDefault()},[]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsx(a.Input.Root,{accentColor:"base",variant:"surface",size:n,children:i.jsx(a.Input.Field,{id:e.id,name:s,onChange:u,onBlur:p,value:t??"",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:h,onKeyDown:m})})})});tl.displayName="NumberFieldInput";class G extends M{type="number";minimum;maximum;integers;placeholder;constructor(e){const{minimum:n,maximum:t,integers:s,placeholder:r,...d}=e;super(d),this.minimum=n,this.maximum=t,this.integers=s,this.placeholder=r}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new G({label:"Minimum",description:"Minimum value",integers:!0,required:!1,id:`${n}minimum`}),showDirectly:!1},{field:new G({label:"Maximum",description:"Maximum value",integers:!0,required:!1,id:`${n}maximum`}),showDirectly:!1},{field:new de({label:"Integers",description:"Whole numbers only",required:!1,id:`${n}integers`}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),n=this.minimum,t=this.maximum;return typeof n=="number"&&e.push(s=>{if(typeof s=="number"&&s<n)return`Must be at least ${this.minimum}.`}),e.push(s=>{if(typeof s=="number"&&s<Number.MIN_SAFE_INTEGER)return"Cant be less than MIN_SAFE_INTEGER."}),typeof t=="number"&&e.push(s=>{if(typeof s=="number"&&s>t)return`Must be at most ${t}.`}),e.push(s=>{if(typeof s=="number"&&s>Number.MAX_SAFE_INTEGER)return"Cant be greater than MAX_SAFE_INTEGER."}),this.integers&&e.push(s=>{if(typeof s=="number"&&!Number.isInteger(s))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 G({...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 G(e)}static fromConfig(e){return new G(e)}static deserializeConfig(e){const{minimum:n,maximum:t,integers:s,placeholder:r,...d}=e;return{...M._deserializeConfig(d),minimum:n,maximum:t,integers:s,placeholder:r}}static serializeConfig(e){const{minimum:n,maximum:t,integers:s,placeholder:r,...d}=e;return{...M._serializeConfig(d),minimum:n,maximum:t,integers:s,placeholder:r}}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(tl,{field:this})}isSerializedValue(e){return this.isValue(e)}isValue(e){return typeof e=="number"&&!isNaN(e)||e===null}areValuesEqual(e,n){return e===n}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,n){return e===n}}class Se extends M{minLength;maxLength;placeholder;constructor(e){const{minLength:n,maxLength:t,placeholder:s,...r}=e;super(r),this.minLength=n,this.maxLength=t,this.placeholder=s}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new G({label:"Minimum length",description:"Minimum number of characters",required:!1,id:`${n}minLength`,minimum:0,integers:!0}),showDirectly:!1},{field:new G({label:"Maximum length",description:"Maximum number of characters",required:!1,id:`${n}maxLength`,minimum:1,integers:!0}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),n=this.minLength,t=this.maxLength;return typeof n=="number"&&e.push(s=>{if(s.length<n)return`Minimum ${n} character(s).`}),typeof t=="number"&&e.push(s=>{if(s.length>t)return`Maximum ${t} 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:n,minLength:t,placeholder:s,...r}=e;return{...M._deserializeConfig(r),minLength:t,maxLength:n,placeholder:s}}static _serializeConfig(e){const{minLength:n,maxLength:t,placeholder:s,...r}=e;return{...M._serializeConfig(r),minLength:n,maxLength:t,placeholder:s}}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,n){return e===n}areValuesEqual(e,n){return e===n}}const ll=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(m=>{d(m),r()},[r,d]),p=o.useCallback(()=>{r()},[r]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsx(a.CheckboxGroup.Root,{id:e.id,name:s,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:n,values:t,onValuesChange:u,disabled:h,children:e.options.map((m,g)=>i.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(a.CheckboxGroup.Item,{value:m.value,onBlur:p,children:i.jsx(a.CheckboxGroup.ItemIndicator,{children:i.jsx(a.LuIcon,{icon:J})})}),i.jsx(a.Text,{size:n,accentColor:"base",className:"truncate",children:m.label})]},`${e.id}-${m.value}-${g}`))})})});ll.displayName="CheckboxListFieldInput";class ie extends R{type="checkbox-list";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new ie({...this.getOptions(),id:e})}static deserialize(e){return new ie(e)}static fromConfig(e){return new ie(e)}static deserializeConfig(e){return ie._deserializeConfig(e)}static serializeConfig(e){return ie._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(ll,{field:this})}isSerializedValue(e){if(!Qe(e))return!1;const n=new Set(this.options.map(({value:t})=>t));return e.every(t=>n.has(t))}isValue(e){return this.isSerializedValue(e)}blankValue(){return[]}blankSerializedValue(){return[]}areSerializedValuesEqual(e,n){const t=new Set(e),s=new Set(n);return t.size===s.size&&t.isSubsetOf(s)}areValuesEqual(e,n){const t=new Set(e),s=new Set(n);return t.size===s.size&&t.isSubsetOf(s)}}const ct=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),[u,p]=o.useState(!1),m=o.useCallback(C=>{d(C??null),r(),p(!1)},[d,r]),g=o.useCallback(C=>{p(C),C||r()},[r]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs(a.Popover.Root,{open:u,onOpenChange:g,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:i.jsxs(a.Button,{id:e.id,name:s,type:"button",className:"!justify-between",accentColor:"base",variant:"surface",size:n,disabled:h,children:[i.jsx(a.Text,{className:"truncate",highContrast:!!t,children:t?t.toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit"}):"yyyy-mm-dd"}),i.jsx(a.LuIcon,{icon:gi})]})}),i.jsx(a.Popover.Content,{align:"start",size:n,children:i.jsx(a.DayPicker,{size:n,required:!1,mode:"single",variant:"solid",selected:t??void 0,onSelect:m})})]})})});ct.displayName="DateFieldInput";class be extends M{type="date";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})}static deserialize(e){return new be(e)}static fromConfig(e){return new be(e)}static deserializeConfig(e){return M._deserializeConfig(e)}static serializeConfig(e){return M._serializeConfig(e)}setOptions(e){super.setOptions(e)}serializeValue(e){return e?e.toISOString():null}deserializeValue(e){return e?new Date(e):null}render(){return i.jsx(ct,{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,n){return e===n}areValuesEqual(e,n){return!e&&!n?!0:!e||!n?!1:e.getTime()===n.getTime()}}var O=(l=>(l.Text="text",l.Selection="selection",l.Numeric="numeric",l.Temporal="temporal",l.Capture="capture",l.Assessment="assessment",l.Verification="verification",l))(O||{});const al=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(m=>{d(m),r()},[r,d]),p=o.useCallback(m=>{m||r()},[r]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs(a.Menu.Root,{onOpenChange:p,align:"start",children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{id:e.id,name:s,className:"!justify-between",variant:"surface",type:"button",size:n,accentColor:"base",disabled:h,children:[i.jsx(a.Text,{className:"truncate",highContrast:t&&t.length>0,children:t&&t.length>0?t.join(", "):e.placeholder??"Select one or more..."}),i.jsx(a.LuIcon,{icon:gi})]})}),i.jsx(a.Menu.Content,{size:n,children:i.jsx(a.Menu.Scroll,{children:i.jsxs(a.Menu.MultiSelectGroup,{values:t,onValuesChange:u,children:[i.jsxs(a.Menu.SelectAllItem,{children:[i.jsx(a.Menu.CheckboxItemIndicator,{children:m=>m?i.jsx(a.LuIcon,{icon:Ci}):i.jsx(a.LuIcon,{icon:J})}),"Select all"]}),e.options.map((m,g)=>i.jsxs(a.Menu.MultiSelectItem,{value:m.value,children:[i.jsx(a.Menu.SelectedIndicator,{children:i.jsx(a.LuIcon,{icon:J})}),m.label]},`${e.id}-${m.value}-${g}`))]})})})]})})});al.displayName="MultiSelectFieldInput";class te extends R{type="multi-select";placeholder;constructor(e){const{placeholder:n,...t}=e;super(t),this.placeholder=n}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 te({...this.getOptions(),id:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new te(e)}static fromConfig(e){return new te(e)}static deserializeConfig(e){const{placeholder:n,...t}=e;return{...R._deserializeConfig(t),placeholder:n}}static serializeConfig(e){const{placeholder:n,...t}=e;return{...R._serializeConfig(t),placeholder:n}}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(al,{field:this})}isSerializedValue(e){if(!Qe(e))return!1;const n=new Set(this.options.map(({value:t})=>t));return e.every(t=>n.has(t))}isValue(e){return this.isSerializedValue(e)}blankValue(){return[]}areValuesEqual(e,n){const t=new Set(e),s=new Set(n);return t.size===s.size&&t.isSubsetOf(s)}blankSerializedValue(){return[]}areSerializedValuesEqual(e,n){const t=new Set(e),s=new Set(n);return t.size===s.size&&t.isSubsetOf(s)}}const sl=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(g=>{d(g)},[d]),p=o.useCallback(()=>{r()},[r]),m=o.useMemo(()=>Array.from({length:e.length},()=>S.v4()),[e.length]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs(a.OneTimePasswordField.Root,{id:e.id,name:s,value:t,onValueChange:u,validationType:"none",disabled:h,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:n,onBlur:p,children:[m.map(g=>i.jsx(a.OneTimePasswordField.Input,{id:g},g)),i.jsx(a.OneTimePasswordField.HiddenInput,{})]})})});sl.displayName="OTPFieldInput";class ce extends M{type="otp";length;constructor(e){const{length:n,...t}=e;super(t),this.length=n}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new G({label:"Length",integers:!0,required:!1,minimum:1,maximum:16,id:`${n}length`}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),n=this.length;return e.push(t=>{if(t.length!=n)return`Must be ${n} 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 ce({...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 ce(e)}static fromConfig(e){return new ce(e)}static deserializeConfig(e){const{length:n,...t}=e;return{...M._deserializeConfig(t),length:n}}static serializeConfig(e){const{length:n,...t}=e;return{...M._serializeConfig(t),length:n}}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(sl,{field:this})}isSerializedValue(e){return typeof e=="string"}isValue(e){return typeof e=="string"}blankValue(){return""}areValuesEqual(e,n){return e===n}blankSerializedValue(){return""}areSerializedValuesEqual(e,n){return e===n}}const ue={pass:{label:"Pass",icon:ns},fail:{label:"Fail",icon:ls},na:{label:"N/A",icon:ts}},Te=Object.keys(ue);class le extends File{uuid;constructor(e,...n){super(...n),this.uuid=e}static from(e,n){return new le(e,[n],n.name,{lastModified:n.lastModified,type:n.type})}}class Ne extends Promise{_uuid;constructor(e,n){super(e),this._uuid=n}get uuid(){return this._uuid}set uuid(e){this._uuid=e}static from(e,n){return new Ne((t,s)=>{Promise.resolve(e).then(t).catch(s)},n)}then(e,n){const t=super.then(e,n);return t.uuid=this.uuid,t}catch(e){const n=super.catch(e);return n.uuid=this.uuid,n}finally(e){const n=super.finally(e);return n.uuid=this.uuid,n}}function rl(l){return Array.isArray(l)?l.every(e=>e instanceof Ne||e instanceof le):!1}function Fi(l,e){const n=new Set(l.map(({uuid:s})=>s)),t=new Set(e.map(({uuid:s})=>s));return n.size===t.size&&n.isSubsetOf(t)}const ol=o.createContext(()=>{throw new Error("No ImageCapturerProvider found")}),ut=()=>o.useContext(ol),dl=o.memo(l=>{const{onCapture:e}=l,[n,t]=o.useState("idle"),[s,r]=o.useState(!1),d=o.useRef(null),f=o.useRef(null),h=o.useCallback(()=>{f.current&&(f.current.getTracks().forEach(m=>m.stop()),f.current=null),d.current&&(d.current.srcObject=null),t("idle")},[]),u=pi.useActiveCallback(async m=>{if(d.current){h(),t("loading");try{const g=await navigator.mediaDevices.getUserMedia({audio:!1,video:{facingMode:{ideal:"environment"},width:{ideal:1920},height:{ideal:1080}}});if(!m()){h();return}f.current=g,d.current.srcObject=g,await d.current.play(),t("ready")}catch{t("errored")}}},[h]),p=pi.useActiveCallback(async m=>{if(d.current)try{r(!0);const g=d.current,C=g.videoHeight,v=g.videoWidth,w=Math.max(v,C),z=Math.min(1,1920/w),F=document.createElement("canvas");F.width=Math.round(v*z),F.height=Math.round(C*z);const q=F.getContext("2d");if(!q)throw new Error("Could not setup canvas context.");q.drawImage(g,0,0,F.width,F.height);const x=await new Promise((T,A)=>{F.toBlob(W=>W?T(W):A(new Error("Could not convert canvas to blob.")),"image/jpeg",.92)});if(!m())return;const V=new Date,N=`${V.toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).replaceAll(":","-").replaceAll("/","-").replaceAll(",","")}.jpg`,I=new File([x],N,{type:x.type,lastModified:V.getTime()});e?.(I)}catch(g){a.toast.error({title:"Photo not captured",description:g instanceof Error?g.message:"The photo could not be captured."})}finally{r(!1)}},[e],{deactivateOnCall:!1});return o.useEffect(()=>(u(),()=>{h()}),[u,h]),i.jsxs("div",{className:"flex max-h-full max-w-full shrink grow flex-col gap-4 overflow-hidden",children:[i.jsxs("div",{className:X.cx("flex shrink grow flex-col items-center justify-center overflow-hidden",{"bg-black":!n}),children:[i.jsx("video",{ref:d,className:"max-h-full max-w-full object-contain",muted:!0,playsInline:!0}),n==="loading"?i.jsx(a.Spinner,{size:"xl",className:"-translate-1/2 absolute left-1/2 top-1/2"}):null,n==="errored"?i.jsx(a.LuIcon,{icon:mi,size:24,className:"-translate-1/2 absolute left-1/2 top-1/2"}):null]}),i.jsx("div",{className:"flex h-max shrink-0 justify-center",children:i.jsx("button",{className:"bg-(--base-1) border-(--base-12) size-16 rounded-full border-[5px] outline-offset-4 transition-transform active:scale-95 active:brightness-110",type:"button",onClick:p,disabled:s})})]})});dl.displayName="Camera";const cl=o.memo(l=>{const{files:e,onDelete:n,children:t,open:s,onOpenChange:r,defaultOpen:d,modal:f}=l,[h,u]=o.useState(null);o.useEffect(()=>{u(e.length>0?e[0]:null)},[e]);const p=o.useCallback(()=>{h&&nt.saveAs(h,h.name)},[h]),m=o.useCallback(()=>{if(!h)return;const v=e.indexOf(h);u(v!==0?e[v-1]:e[e.length-1])},[h,e]),g=o.useCallback(()=>{if(!h)return;const v=e.indexOf(h);u(v!==e.length-1?e[v+1]:e[0])},[h,e]),C=o.useCallback(()=>{h&&n?.(h)},[h,n]);return i.jsxs(a.Overlay.Root,{open:s,onOpenChange:r,defaultOpen:d,modal:f,children:[!!t&&i.jsx(a.Overlay.Trigger,{asChild:!0,children:t}),i.jsxs(a.Overlay.Content,{onOpenAutoFocus:a.preventDefault,children:[i.jsx(a.ButtonGroup,{className:"absolute right-0 top-0 flex items-center gap-2 p-2",accentColor:"base",variant:"soft",children:i.jsx(a.Overlay.Close,{asChild:!0,children:i.jsx(a.IconButton,{"aria-label":"close",type:"button",children:i.jsx(a.LuIcon,{icon:ne})})})}),i.jsx("div",{className:"flex size-full items-center justify-center overflow-hidden p-4",children:h?i.jsx(Ve,{className:"max-h-full max-w-full",file:h}):null}),i.jsxs(a.ButtonGroup,{className:"absolute bottom-0 left-0 right-0 flex h-max items-center justify-between gap-2 p-2",accentColor:"base",variant:"soft",children:[i.jsx(a.IconButton,{onClick:p,"aria-label":"download",type:"button",children:i.jsx(a.LuIcon,{icon:tt})}),i.jsxs("div",{className:"flex grow items-center justify-center gap-2 overflow-hidden",children:[i.jsx(a.IconButton,{"aria-label":"previous",onClick:m,type:"button",children:i.jsx(a.LuIcon,{icon:yi,className:"-rotate-90 rounded-r-none"})}),i.jsx(a.IconButton,{"aria-label":"next",onClick:g,type:"button",children:i.jsx(a.LuIcon,{icon:yi,className:"rotate-90 rounded-l-none"})})]}),i.jsx(a.IconButton,{"aria-label":"delete",onClick:C,type:"button",children:i.jsx(a.LuIcon,{icon:se})})]})]})]})});cl.displayName="ImagesViewer";const ht=o.memo(l=>{const{children:e,open:n,onOpenChange:t,defaultOpen:s,modal:r,onConfirm:d}=l,[f,h]=o.useState([]),u=o.useCallback(C=>{C||h([]),t?.(C)},[t]),p=o.useCallback(C=>{h(v=>[...v,C])},[]),m=o.useCallback(C=>{h(v=>v.filter(w=>w!==C))},[]),g=o.useCallback(()=>{d?.(f)},[f,d]);return i.jsxs(a.Overlay.Root,{open:n,onOpenChange:u,defaultOpen:s,modal:r,children:[!!e&&i.jsx(a.Overlay.Trigger,{asChild:!0,children:e}),i.jsxs(a.Overlay.Content,{onOpenAutoFocus:a.preventDefault,children:[i.jsx(a.Overlay.Title,{className:"sr-only",children:"Image capturer"}),i.jsx(a.Overlay.Description,{className:"sr-only",children:"Capture one or more images."}),i.jsxs("div",{className:"bg-(--color-background) flex size-full flex-col gap-4 overflow-hidden py-4",children:[i.jsxs("div",{className:"flex h-max items-center justify-between gap-4 px-4",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(a.Overlay.Close,{asChild:!0,children:i.jsx(a.IconButton,{size:"md",variant:"surface",onClick:g,children:i.jsx(a.LuIcon,{icon:J})})}),f.length>0?i.jsx(cl,{files:f,onDelete:m,children:i.jsxs(a.Button,{variant:"soft",accentColor:"base",children:[f.length," ",f.length>1?"images":"image"]})}):null]}),i.jsx(a.Overlay.Close,{asChild:!0,children:i.jsx(a.IconButton,{size:"md",variant:"soft",accentColor:"base",children:i.jsx(a.LuIcon,{icon:ne})})})]}),i.jsx(dl,{onCapture:p})]})]})]})});ht.displayName="ImageCapturer";const ul=o.memo(l=>{const{children:e}=l,[n,t]=o.useState(null),s=o.useCallback(()=>{t(null)},[]),r=o.useCallback(f=>{t(f(s))},[s]),d=o.useCallback(()=>{n&&(n.onClose&&n.onClose(),s())},[s,n]);return i.jsxs(ol.Provider,{value:r,children:[e,n&&i.jsx(ht,{open:!0,onOpenChange:d,onConfirm:n.onConfirm,modal:n.modal})]})});ul.displayName="ImageCapturerProvider";const ft=o.memo(l=>{const{ref:e,file:n,error:t,rightSlot:s,className:r,size:d,...f}=l;return i.jsxs(a.Card,{className:X.cx(r,"p-0! relative flex h-48 w-full flex-col overflow-hidden"),ref:e,size:"xs",...f,children:[!n&&!t&&i.jsx("div",{className:"absolute inset-0 flex grow items-center justify-center",children:i.jsx(a.Spinner,{size:d})}),!!n&&!t&&i.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-hidden p-3",children:i.jsx(Ve,{className:"block size-full max-w-full object-cover",file:n})}),!!t&&i.jsx("div",{className:"grow"}),(!!n||!!t)&&i.jsxs(i.Fragment,{children:[i.jsx(a.Separator,{size:"full"}),i.jsxs("div",{className:"flex w-full shrink-0 items-center gap-2 self-end p-3",children:[t?i.jsx(a.LuIcon,{color:"var(--base-11)",icon:mi}):n&&i.jsx(a.LuIcon,{color:"var(--base-11)",icon:Kt}),i.jsx(a.Text,{className:"truncate",size:d,children:t??n?.name}),s]})]})]})});ft.displayName="ImageCard";const pt=o.memo(l=>{const{file:e,...n}=l,t=st(e);return i.jsx("video",{src:t??void 0,...n})});pt.displayName="VideoFile";const gt=o.memo(l=>{const{ref:e,file:n,className:t,error:s,rightSlot:r,size:d,...f}=l;return i.jsxs(a.Card,{className:X.cx(t,"p-0! relative flex h-48 w-full flex-col overflow-hidden"),ref:e,size:"xs",...f,children:[!n&&!s&&i.jsx("div",{className:"absolute inset-0 flex grow items-center justify-center",children:i.jsx(a.Spinner,{size:d})}),!!n&&!s&&i.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-hidden p-3",children:i.jsx(pt,{className:"block size-full max-w-full object-cover",file:n,controls:!0})}),!!s&&i.jsx("div",{className:"grow"}),(!!n||!!s)&&i.jsxs(i.Fragment,{children:[i.jsx(a.Separator,{size:"full"}),i.jsxs("div",{className:"flex w-full shrink-0 items-center gap-2 self-end p-3",children:[s?i.jsx(a.LuIcon,{color:"var(--danger-11)",icon:mi}):n&&i.jsx(a.LuIcon,{color:"var(--base-11)",icon:Vs}),i.jsx(a.Text,{className:"truncate",size:d,children:s??n?.name}),r]})]})]})});gt.displayName="VideoCard";const mt=o.memo(l=>{const{fileOrPromise:e,onRemove:n,disabled:t,size:s}=l,[r,d]=o.useState(e instanceof Ne?null:e),[f,h]=o.useState(null),u=vi();pi.useActiveEffect(F=>{if(h(null),!(e instanceof Ne)){d(e);return}d(null),e.then(q=>{F()&&d(q)}).catch(q=>{F()&&h(q instanceof Error?q.message:"Unknown error")})},[e]);const p=o.useCallback(()=>{if(!r)return;const F=new Blob([r]);nt.saveAs(F,r.name)},[r]),m=o.useCallback(()=>{n(e)},[n,e]),g=o.useCallback(()=>{if(!r)return;const F=URL.createObjectURL(r);window.open(F,"_blank"),URL.revokeObjectURL(F)},[r]),C=o.useCallback(()=>{r&&u(F=>({file:r,onDelete:t?void 0:()=>{m(),F()}}))},[t,m,u,r]),v=o.useMemo(()=>i.jsx("div",{className:"flex grow justify-end",children:i.jsxs(a.Menu.Root,{modal:!0,children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.IconButton,{onClick:a.stopPropagation,type:"button",variant:"ghost",accentColor:"base",size:s,children:i.jsx(a.LuIcon,{icon:Wt})})}),i.jsxs(a.Menu.Content,{size:s,children:[i.jsxs(a.Menu.Item,{onSelect:p,disabled:!r,children:[i.jsx(a.LuIcon,{icon:tt})," Download"]}),t?null:i.jsxs(i.Fragment,{children:[i.jsx(a.Menu.Separator,{}),i.jsxs(a.Menu.Item,{onSelect:m,children:[i.jsx(a.LuIcon,{icon:se})," Delete"]})]})]})]})}),[t,m,p,r,s]),w=!!r?.type.startsWith("image/"),z=!!r?.type.startsWith("video/");return w?i.jsx(ft,{className:"cursor-pointer",onClick:C,file:r,error:f??void 0,rightSlot:v,size:s}):z?i.jsx(gt,{className:"cursor-pointer",onClick:C,file:r,error:f??void 0,rightSlot:v,size:s}):i.jsx(at,{className:"cursor-pointer",file:r,error:f??void 0,onClick:g,rightSlot:v,size:s})});mt.displayName="DisplayFile";const hl=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=ut(),p=o.useRef(null),m=o.useCallback(I=>{const T=e.cleanValue({...t,status:I});d(T),r()},[e,r,d,t]),g=o.useCallback(I=>{const T=I.target.value,A={...t,notes:T};d(A)},[t,d]),C=o.useCallback(()=>{r()},[r]),v=o.useCallback(I=>{const T=t.files.filter(({uuid:A})=>A!==I.uuid);d({...t,files:T}),r()},[d,r,t]),w=o.useCallback(()=>{u(I=>({onConfirm:T=>{const A=T.map(W=>le.from(S.v4(),W));d({...t,files:[...t.files,...A]}),r()},onClose:()=>{r(),I()}}))},[r,d,t,u]),z=o.useCallback(()=>{p.current?.click()},[]),F=o.useCallback(I=>{const T=Array.from(I.target.files??[]).map(W=>le.from(S.v4(),W)),A={...t,files:[...t.files,...T]};d(A),r()},[r,d,t]);o.useEffect(()=>{if(!p.current)return;const I=new AbortController;return p.current.addEventListener("cancel",()=>{r()},{signal:I.signal}),()=>{I.abort()}},[r,t]);const q=t.status&&e.showNotesAndFilesOn.includes(t.status),x=`${e.id}-status`,V=`${e.id}-notes`,N=`${e.id}-files`;return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx(a.RadioGroup.Root,{id:x,className:"flex gap-2",name:s,value:t.status,disabled:h,accentColor:"base",variant:"surface",size:n,onValueChange:m,children:Te.map(I=>{const{label:T}=ue[I];return i.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(a.RadioGroup.Item,{value:I,children:i.jsx(a.RadioGroup.Indicator,{children:i.jsx(a.LuIcon,{icon:Gt,className:"fill-current"})})}),i.jsx(a.Text,{size:n,accentColor:"base",className:"truncate",children:T})]},`${e.id}-${I}`)})}),q&&i.jsxs(i.Fragment,{children:[i.jsx("div",{children:i.jsx(a.TextArea,{id:V,value:t.notes??"",name:s,onChange:g,onBlur:C,className:"field-sizing-content min-h-12 w-full",placeholder:"Notes",resize:"vertical",accentColor:"base",variant:"surface",size:n,disabled:h})}),i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{className:"w-max",size:n,variant:"surface",accentColor:"base",type:"button",disabled:h,children:[i.jsx(a.LuIcon,{icon:lt}),"Select files"]})}),i.jsxs(a.Menu.Content,{size:n,children:[i.jsxs(a.Menu.Item,{onSelect:w,children:[i.jsx(a.LuIcon,{icon:Ut}),"Take photos"]}),i.jsxs(a.Menu.Item,{onSelect:z,children:[i.jsx(a.LuIcon,{icon:Yt}),"Attach files"]})]})]}),i.jsx("input",{id:N,name:s,type:"file",ref:p,multiple:!0,className:"hidden",onChange:F,value:""}),t.files.length>0&&i.jsx("div",{className:"flex h-max flex-wrap gap-2",children:t.files.map(I=>i.jsx(mt,{size:n,fileOrPromise:I,onRemove:v,disabled:h},I.uuid))})]})]})]})})});hl.displayName="PassFailFieldInput";const Ct=l=>typeof l=="string"&&Te.includes(l),fl=l=>!(l===null||typeof l!="object"||!("status"in l)||!Ct(l.status)||!("notes"in l)||typeof l.notes!="string"||!("files"in l)||!(Array.isArray(l.files)&&l.files.length===0)),pl=l=>!(l===null||typeof l!="object"||!("status"in l)||!Ct(l.status)||!("notes"in l)||typeof l.notes!="string"||!("files"in l)||!rl(l.files)),gl=l=>({status:l.status,notes:l.notes,files:[]}),ml=l=>({status:l.status,notes:l.notes,files:[]}),Cl=(l,e)=>!(l.status!==e.status||l.notes!==e.notes||!Fi(l.files,e.files)),yl=(l,e)=>!(l.status!==e.status||l.notes!==e.notes||l.files.length!==e.files.length);class he extends M{type="pass-fail";showNotesAndFilesOn;constructor(e){const{showNotesAndFilesOn:n,...t}=e;super(t),this.showNotesAndFilesOn=n}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new te({id:`${n}showNotesAndFilesOn`,label:"Show notes and files on",description:"Show the notes and files on desired statuses.",options:Te.map(t=>{const{label:s}=ue[t];return{value:t,label:s}}),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 he({...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(),n=this.showNotesAndFilesOn,t=this.blankValue();return n.length>0&&(e.push(s=>{if(!(!s.status||!n.includes(s.status))&&t.notes===s.notes)return"Notes is required."}),e.push(s=>{if(!(!s.status||!n.includes(s.status))&&Fi(t.files,s.files))return"Files is required."})),e}static deserialize(e){const{showNotesAndFilesOn:n,...t}=e;return new he({...t,showNotesAndFilesOn:n})}static fromConfig(e){return new he(e)}static deserializeConfig(e){const{showNotesAndFilesOn:n,...t}=e;return{...M._deserializeConfig(t),showNotesAndFilesOn:n}}static serializeConfig(e){const{showNotesAndFilesOn:n,...t}=e;return{...M._serializeConfig(t),showNotesAndFilesOn:n}}serializeValue(e){return gl(e)}deserializeValue(e){return ml(e)}render(){return i.jsx(hl,{field:this})}isSerializedValue(e){return fl(e)}isValue(e){return pl(e)}areValuesEqual(e,n){return Cl(e,n)}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,n){return yl(e,n)}}const vl=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(g=>{d(g),r()},[r,d]),p=o.useCallback(()=>{r()},[r]),m=o.useCallback(()=>{d(null),r()},[r,d]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs(a.RadioGroup.Root,{id:e.id,name:s,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:n,value:t??"",onValueChange:u,disabled:h,children:[e.options.map((g,C)=>i.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(a.RadioGroup.Item,{value:g.value,onBlur:p,children:i.jsx(a.RadioGroup.Indicator,{children:i.jsx(a.LuIcon,{icon:Gt,className:"fill-current"})})}),i.jsx(a.Text,{size:n,accentColor:"base",className:"truncate",children:g.label})]},`${e.id}-${g.value}-${C}`)),!!t&&i.jsxs(a.Button,{onClick:m,className:"-mx-2 w-max",type:"button",variant:"ghost",accentColor:"base",size:n,children:[i.jsx(a.LuIcon,{icon:ne}),"Clear"]})]})})});vl.displayName="RadioFieldInput";class fe extends R{type="radio";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 R._deserializeConfig(e)}static serializeConfig(e){return R._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(vl,{field:this})}isSerializedValue(e){return typeof e!="string"&&e!==null?!1:new Set([null,...this.options.map(({value:t})=>t)]).has(e)}isValue(e){return this.isSerializedValue(e)}blankValue(){return null}areValuesEqual(e,n){return e===n}blankSerializedValue(){return null}areSerializedValuesEqual(e,n){return e===n}}const Ss=X.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"]}}}),wl=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(g=>{d(g),r()},[r,d]),p=o.useCallback(()=>{d(null),r()},[r,d]),m=Array.from({length:e.maxRating},(g,C)=>C+1);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs("div",{className:"flex flex-row items-center gap-1",children:[i.jsx(a.Rating.Root,{id:e.id,name:s,className:"flex items-center gap-0.5",value:t,onValueChange:u,disabled:h,children:m.map(g=>i.jsx(a.Rating.Item,{value:g,className:Ss({size:n}),children:i.jsx(a.LuIcon,{icon:Qt,className:"size-full group-data-[active=true]:fill-current"})},`${e.id}-${g}`))}),!h&&t!==null&&i.jsx(a.IconButton,{onClick:p,type:"button",variant:"ghost",accentColor:"base",size:n,children:i.jsx(a.LuIcon,{icon:ne})})]})})});wl.displayName="RatingFieldInput";class pe extends M{type="rating";maxRating;constructor(e){const{maxRating:n,...t}=e;super(t),this.maxRating=n}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new G({label:"Max Rating",description:"Maximum rating value",integers:!0,required:!1,minimum:1,maximum:10,id:`${n}maxRating`}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),n=this.maxRating;return e.push(t=>{if(typeof t=="number"&&(t<1||t>n))return`Rating must be between 1 and ${n}.`}),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 pe({...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 pe(e)}static fromConfig(e){return new pe(e)}static deserializeConfig(e){const{maxRating:n,...t}=e;return{...M._deserializeConfig(t),maxRating:n}}static serializeConfig(e){const{maxRating:n,...t}=e;return{...M._serializeConfig(t),maxRating:n}}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(wl,{field:this})}isSerializedValue(e){return this.isValue(e)}isValue(e){return typeof e=="number"&&!isNaN(e)||e===null}areValuesEqual(e,n){return e===n}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,n){return e===n}}const yt=o.createContext(null),Fl=()=>{const l=o.use(yt);if(!l)throw new Error("useScannerContext must be used within a component tree wrapped by ScannerProvider.");return l},bs=()=>{const l=o.use(yt);if(!l)throw new Error("useScanner must be used within a component tree wrapped by ScannerProvider.");return l.openScanner},zi=o.memo(l=>{const{children:e,open:n,onOpenChange:t,defaultOpen:s,modal:r,...d}=l;return i.jsxs(a.Overlay.Root,{open:n,onOpenChange:t,defaultOpen:s,modal:r,children:[!!e&&i.jsx(a.Overlay.Trigger,{asChild:!0,children:e}),i.jsxs(a.Overlay.Content,{children:[i.jsx(a.Overlay.Title,{className:"sr-only",children:"Scanner"}),i.jsx(a.Overlay.Description,{className:"sr-only",children:"Scan a barcode or a qr code."}),i.jsx(zl,{...d})]})]})});zi.displayName="Scanner";const zl=o.memo(l=>{const{paused:e,formats:n,timeBetweenDecodingAttempts:t,trySkew:s,onDecodeResult:r,onDecodeError:d,onError:f}=l,{wasmUrl:h}=Fl(),{ref:u}=ja.useZxing({wasmUrl:h,paused:e,formats:n,timeBetweenDecodingAttempts:t,trySkew:s,onDecodeResult:r,onDecodeError:d,onError:f,constraints:{video:{width:{ideal:1920,min:1280},height:{ideal:1080,min:720},aspectRatio:{ideal:16/9},facingMode:"environment"}}});return i.jsxs("div",{className:"bg-(--color-background) flex size-full flex-col justify-center overflow-hidden",children:[i.jsx("div",{className:"flex w-full justify-end p-4",children:i.jsx(a.Overlay.Close,{asChild:!0,children:i.jsx(a.IconButton,{"aria-label":"close",variant:"soft",accentColor:"base",children:i.jsx(a.LuIcon,{icon:ne})})})}),i.jsx("div",{className:"max-h-full w-full grow overflow-hidden p-4",children:i.jsx("video",{className:"size-full",ref:u,muted:!0,playsInline:!0})})]})});zl.displayName="ScannerInternal";const Vl=o.memo(l=>{const{children:e,wasmUrl:n}=l,[t,s]=o.useState(null),r=o.useCallback(()=>{s(null)},[]),d=o.useCallback(u=>{s(u(r))},[r]),f=o.useCallback(()=>{t&&(t.onClose&&t.onClose(),r())},[r,t]),h=o.useMemo(()=>({wasmUrl:n,openScanner:d}),[n,d]);return i.jsxs(yt,{value:h,children:[e,t&&i.jsx(zi,{open:!0,onOpenChange:f,...t})]})});Vl.displayName="ScannerProvider";const Sl=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),[u,p]=o.useState(!1),m=o.useCallback(z=>{const F=z.target.value;d(F)},[d]),g=o.useCallback(()=>{r()},[r]),C=o.useCallback(z=>{d(z.rawValue.trim()),r(),p(!1)},[d,r]),v=o.useCallback(()=>{p(!0)},[]),w=o.useCallback(()=>{p(!1),r()},[r]);return i.jsxs(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:[i.jsx(a.TextArea,{className:"field-sizing-content w-full",accentColor:"base",variant:"surface",size:n,id:e.id,name:s,value:t??"",placeholder:"Enter a qr or barcode",onChange:m,onBlur:g,disabled:h}),i.jsxs(a.Button,{onClick:v,className:"w-max",type:"button",variant:"soft",size:n,accentColor:"base",disabled:h,children:[i.jsx(a.LuIcon,{icon:gs}),"Scan"]}),i.jsx(zi,{open:u,onDecodeResult:C,onOpenChange:w})]})});Sl.displayName="ScanFieldInput";class xe extends M{type="qr";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new xe({...this.getOptions(),id:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new xe(e)}static fromConfig(e){return new xe(e)}static deserializeConfig(e){return M._deserializeConfig(e)}static serializeConfig(e){return M._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(Sl,{field:this})}isSerializedValue(e){return typeof e=="string"}isValue(e){return typeof e=="string"}blankValue(){return""}areValuesEqual(e,n){return e===n}blankSerializedValue(){return""}areSerializedValuesEqual(e,n){return e===n}}const bl=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(g=>{d(g??null),r()},[r,d]),p=o.useCallback(g=>{g||r()},[r]),m=o.useMemo(()=>e.options.find(g=>g.value===t),[e.options,t]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs(a.Menu.Root,{onOpenChange:p,align:"start",children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{id:e.id,name:s,className:"!justify-between",accentColor:"base",variant:"surface",type:"button",size:n,disabled:h,children:[i.jsx(a.Text,{className:"truncate",highContrast:!!m,children:m?m.label:e.placeholder??"Select one..."}),i.jsx(a.LuIcon,{icon:gi})]})}),i.jsx(a.Menu.Content,{size:n,children:i.jsx(a.Menu.Scroll,{children:i.jsx(a.Menu.SelectGroup,{required:!1,value:t??void 0,onValueChange:u,children:e.options.map((g,C)=>i.jsxs(a.Menu.SelectItem,{value:g.value,children:[i.jsx(a.Menu.SelectedIndicator,{children:i.jsx(a.LuIcon,{icon:J})}),g.label]},`${e.id}-${g.value}-${C}`))})})})]})})});bl.displayName="SelectFieldInput";class ge extends R{type="select";placeholder;constructor(e){const{placeholder:n,...t}=e;super(t),this.placeholder=n}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 ge({...this.getOptions(),id:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new ge(e)}static fromConfig(e){return new ge(e)}static deserializeConfig(e){const{placeholder:n,...t}=e;return{...R._deserializeConfig(t),placeholder:n}}static serializeConfig(e){const{placeholder:n,...t}=e;return{...R._serializeConfig(t),placeholder:n}}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(bl,{field:this})}isSerializedValue(e){return typeof e!="string"&&e!==null?!1:new Set([null,...this.options.map(({value:t})=>t)]).has(e)}isValue(e){return this.isSerializedValue(e)}blankValue(){return null}areValuesEqual(e,n){return e===n}blankSerializedValue(){return null}areSerializedValuesEqual(e,n){return e===n}}const Nl=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(g=>{const C=g.target.value;d(C)},[d]),p=o.useCallback(()=>{r()},[r]),m=o.useCallback(g=>{g.key==="Enter"&&g.preventDefault()},[]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsx(a.Input.Root,{accentColor:"base",variant:"surface",size:n,children:i.jsx(a.Input.Field,{id:e.id,className:"truncate",name:s,value:t??"",type:"text",placeholder:e.placeholder??"Enter a short description",onChange:u,onBlur:p,disabled:h,onKeyDown:m})})})});Nl.displayName="StringFieldInput";class me extends Se{type="string";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new me({...this.getOptions(),id:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new me(e)}static fromConfig(e){return new me(e)}static deserializeConfig(e){return Se._deserializeConfig(e)}static serializeConfig(e){return Se._serializeConfig(e)}render(){return i.jsx(Nl,{field:this})}}const xl=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(m=>{const g=m.target.value;d(g)},[d]),p=o.useCallback(()=>{r()},[r]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsx(a.TextArea,{id:e.id,value:t??"",name:s,onChange:u,onBlur:p,className:"field-sizing-content min-h-12",placeholder:e.placeholder??"Enter a description",resize:"vertical",accentColor:"base",variant:"surface",size:n,disabled:h})})});xl.displayName="TextFieldInput";class Ce extends Se{type="text";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 Se._deserializeConfig(e)}static serializeConfig(e){return Se._serializeConfig(e)}render(){return i.jsx(xl,{field:this})}}const vt=Ns(),Il=new Set(vt);function Ns(l=!0){const e=new Set;for(let n=-12;n<=14;n++){const t=n>=0?"+":"-",s=Math.abs(n).toString().padStart(2,"0");e.add(`${t}${s}:00`)}if(l){const n=[-12.5,-9.5,-3.5,3.5,4.5,5.5,6.5,9.5,10.5,12.5];for(const t of n){const s=t>=0?"+":"-",r=Math.floor(Math.abs(t)).toString().padStart(2,"0");e.add(`${s}${r}:30`)}}return Array.from(e).sort((n,t)=>Ml(n)-Ml(t))}function Ml(l){const e=l[0]==="+"?1:-1,n=Number(l.slice(1,3)),t=Number(l.slice(4,6));return e*(n*60+t)}const xs="+00:00",Is=/^T([01]\d|2[0-3]):([0-5]\d):00([+-]\d{2}:\d{2})$/,Vi=l=>typeof l=="string"&&Il.has(l),ql=()=>{const l=-new Date().getTimezoneOffset(),e=l>=0?"+":"-",n=Math.abs(l),t=Math.floor(n/60),s=n%60,r=`${e}${t.toString().padStart(2,"0")}:${s.toString().padStart(2,"0")}`;return Vi(r)?r:xs};function Ol(l){const e=/^([+-])(\d{2}):(\d{2})$/.exec(l);if(!e)throw new Error(`Invalid UTC offset: ${l}`);return(e[1]==="+"?1:-1)*(Number(e[2])*60+Number(e[3]))}const en=l=>{const e=Is.exec(l);if(!e)return null;const n=e[3];return Vi(n)?{hours:Number(e[1]),minutes:Number(e[2]),utcOffset:n}:null},ee=l=>typeof l=="string"&&en(l)!==null,ye=(l,e,n=ql())=>{if(!Number.isInteger(l)||l<0||l>23)throw new Error(`Invalid hour: ${l}`);if(!Number.isInteger(e)||e<0||e>59)throw new Error(`Invalid minute: ${e}`);if(!Vi(n))throw new Error("Unsupported UTC offset");const t=l.toString().padStart(2,"0"),s=e.toString().padStart(2,"0");return`T${t}:${s}:00${n}`},Si=l=>`UTC${l}`,ve=l=>{const e=en(l);if(!e)throw new Error(`Invalid time value: ${l}`);return(e.hours*60+e.minutes-Ol(e.utcOffset)+1440)%1440},bi=(l,e=!0)=>{const n=en(l);if(!n)throw new Error(`Invalid time value: ${l}`);const t=(n.hours%12||12).toString().padStart(2,"0"),s=n.minutes.toString().padStart(2,"0"),r=n.hours>=12?"PM":"AM",d=`${t}:${s} ${r}`;return e?`${d} ${Si(n.utcOffset)}`:d},Ms=l=>typeof l=="object"&&(ee(l.from)||ee(l.to)),wt=(l,e)=>{const n=ve(l),t=e.from?ve(e.from):null,s=e.to?ve(e.to):null;return t===null&&s===null?!0:t===null?n<=s:s===null?n>=t:t<=s?n>=t&&n<=s:n>=t||n<=s},Ni=o.memo(l=>{const{value:e,onChange:n,onBlur:t,disabled:s,size:r="md",id:d,name:f,compact:h=!1}=l,u=e?en(e):null,p=u?`${u.hours.toString().padStart(2,"0")}:${u.minutes.toString().padStart(2,"0")}`:"",m=o.useCallback(v=>{const w=v.target.value;if(!w){n(null);return}const[z,F]=w.split(":").map(Number);n(ye(z,F,u?.utcOffset))},[n,u?.utcOffset]),g=o.useCallback(v=>{u&&(n(ye(u.hours,u.minutes,v)),t?.())},[t,n,u]),C=o.useCallback(v=>{v||t?.()},[t]);return i.jsxs("div",{className:"flex min-w-0 gap-2",children:[i.jsx(a.Input.Root,{className:"min-w-0 grow",accentColor:"base",variant:"surface",size:r,children:i.jsx(a.Input.Field,{id:d,name:f,className:X.cx("[&::-webkit-calendar-picker-indicator]:invert-40 dark:[&::-webkit-calendar-picker-indicator]:invert-60",{"[&::-webkit-datetime-edit]:opacity-60":!e}),type:"time",step:60,value:p,onChange:m,onBlur:t,disabled:s})}),i.jsxs(a.Menu.Root,{align:"end",onOpenChange:C,children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",className:h?"!justify-between":"min-w-32 !justify-between",accentColor:"base",variant:"surface",size:r,disabled:s||!u,children:[i.jsx(a.Text,{className:"truncate",highContrast:!!u,children:u?Si(u.utcOffset):"UTC offset"}),i.jsx(a.LuIcon,{icon:gi})]})}),i.jsx(a.Menu.Content,{size:r,children:i.jsx(a.Menu.Scroll,{children:i.jsx(a.Menu.SelectGroup,{required:!0,value:u?.utcOffset,onValueChange:g,children:vt.map(v=>i.jsxs(a.Menu.SelectItem,{value:v,children:[i.jsx(a.Menu.SelectedIndicator,{children:i.jsx(a.LuIcon,{icon:J})}),Si(v)]},v))})})})]})]})});Ni.displayName="TimeFieldControl";const Ft=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e});return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsx(Ni,{id:e.id,name:s,size:n,value:t,onChange:d,onBlur:r,disabled:h})})});Ft.displayName="TimeFieldInput";class Ie extends M{type="time";constructor(e){super(e)}static deserialize(e){return new Ie(e)}static fromConfig(e){return new Ie(e)}static deserializeConfig(e){return M._deserializeConfig(e)}static serializeConfig(e){return M._serializeConfig(e)}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new Ie({...this.getOptions(),id:e})}setOptions(e){super.setOptions(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(Ft,{field:this})}isSerializedValue(e){return e===null||ee(e)}isValue(e){return e===null||ee(e)}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,n){return e===n}areValuesEqual(e,n){return e===n}}const Tl=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=ut(),p=o.useRef(null),m=o.useCallback(()=>{u(x=>({onConfirm:V=>{const N=Array.from(V).map(T=>le.from(S.v4(),T)),I=[...t,...N];d(I),r()},onClose:()=>{r(),x()}}))},[r,d,t,u]),g=o.useCallback(()=>{p.current?.click()},[]),C=o.useCallback(()=>{if(!p.current)return;const x=p.current.files;if(!x){r();return}const V=Array.from(x).map(I=>le.from(S.v4(),I)),N=[...t,...V];d(N),r()},[r,d,t]),v=o.useCallback(x=>{const V=t.filter(({uuid:N})=>N!==x.uuid);d(V),r()},[t,d,r]);o.useEffect(()=>{if(!p.current)return;const x=new AbortController;return p.current.addEventListener("cancel",()=>{r()},{signal:x.signal}),()=>{x.abort()}},[r,t]);const w=e.maxFiles!==1,q=w?"Select files":"Select a file";return i.jsxs(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:[i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{className:"w-max",size:n,variant:"surface",accentColor:"base",type:"button",disabled:h,children:[i.jsx(a.LuIcon,{icon:lt}),q]})}),i.jsxs(a.Menu.Content,{size:n,children:[i.jsxs(a.Menu.Item,{onSelect:m,children:[i.jsx(a.LuIcon,{icon:Ut}),"Take photos"]}),i.jsxs(a.Menu.Item,{onSelect:g,children:[i.jsx(a.LuIcon,{icon:Yt}),"Attach files"]})]})]}),i.jsx("input",{id:e.id,name:s,type:"file",ref:p,accept:e.extensions?.join(","),multiple:w,className:"hidden",onChange:C,value:""}),t.length>0&&i.jsx("div",{className:"mt-1 flex h-max flex-col gap-2",children:t.map(x=>i.jsx(mt,{size:n,fileOrPromise:x,onRemove:v,disabled:h},x.uuid))})]})});Tl.displayName="UploadFieldInput";class we extends M{type="upload";extensions;maxSize;maxFiles;constructor(e){const{extensions:n,maxFiles:t,maxSize:s,...r}=e;super(r),this.maxSize=s,this.maxFiles=t,this.extensions=n}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new G({label:"How many files can be uploaded?",description:"By default, only one file can be uploaded.",required:!1,minimum:0,id:`${n}maxFiles`,integers:!0}),showDirectly:!1},{field:new G({label:"What is the maximum size of each file?",description:"Maximum file size in MB.",required:!1,id:`${n}maxSize`,minimum:0,integers:!0}),showDirectly:!1},{field:new te({label:"Accepted file types",description:"Types of allowed files to upload. If left blank, all files will be accepted.",required:!1,id:`${n}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(),n=this.maxSize,t=n&&n*1e3*1e3,s=this.maxFiles;return typeof n=="number"&&typeof t=="number"&&e.push(r=>{if(r.some(d=>d instanceof le&&d.size>t))return`Files must be at most ${n}MB.`}),typeof s=="number"&&e.push(r=>{if(r.length>s)return`You can only upload ${s} 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 we({...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 we(e)}static fromConfig(e){return new we(e)}static deserializeConfig(e){const{extensions:n,maxSize:t,maxFiles:s,...r}=e;return{...M._deserializeConfig(r),extensions:n,maxSize:t,maxFiles:s}}static serializeConfig(e){const{extensions:n,maxSize:t,maxFiles:s,...r}=e;return{...M._serializeConfig(r),extensions:n,maxSize:t,maxFiles:s}}serializeValue(e){return[]}deserializeValue(e){return[]}render(){return i.jsx(Tl,{field:this})}isSerializedValue(e){return Array.isArray(e)&&e.length===0}isValue(e){return Array.isArray(e)?e.every(n=>n instanceof Ne||n instanceof le):!1}areValuesEqual(e,n){return Fi(e,n)}blankValue(){return[]}blankSerializedValue(){return[]}areSerializedValuesEqual(e,n){return e.length===n.length}}const El=o.memo(l=>{const{field:e}=l,{size:n}=o.use(B),{value:t,name:s,onBlur:r,onChange:d,error:f,disabled:h}=P({field:e}),u=o.useCallback(C=>{const v=C.target.value;v!==""&&!URL.canParse(v)||d(v!==""?new URL(v):null)},[d]),p=o.useCallback(()=>{r()},[r]),m=o.useCallback(C=>{C.key==="Enter"&&C.preventDefault()},[]),g=o.useCallback(()=>{t!==null&&window.open(t,"_blank","noopener,noreferrer")},[t]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs("div",{className:"flex w-full gap-2",children:[i.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"surface",size:n,children:i.jsx(a.Input.Field,{id:e.id,className:"truncate",name:s,value:t?t.toString():"",type:"url",inputMode:"url",placeholder:e.placeholder??"https://example.com",onChange:u,onBlur:p,disabled:h,onKeyDown:m})}),i.jsx(a.IconButton,{size:n,variant:"soft",accentColor:"base",type:"button",disabled:t===null,onClick:g,children:i.jsx(a.LuIcon,{icon:rs})})]})})});El.displayName="URLFieldInput";class Me extends M{type="url";placeholder;constructor(e){const{placeholder:n,...t}=e;super(t),this.placeholder=n}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 Me({...this.getOptions(),id:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new Me(e)}static fromConfig(e){return new Me(e)}static deserializeConfig(e){const{placeholder:n,...t}=e;return{...M._deserializeConfig(t),placeholder:n}}static serializeConfig(e){const{placeholder:n,...t}=e;return{...M._serializeConfig(t),placeholder:n}}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,n){return e===n}areValuesEqual(e,n){return e?.toString()===n?.toString()}render(){return i.jsx(El,{field:this})}}const Ee={date:be,time:Ie,number:G,boolean:de,select:ge,string:me,url:Me,text:Ce,upload:we,qr:xe,"multi-string":re,"multi-select":te,radio:fe,"checkbox-list":ie,"pass-fail":he,otp:ce,rating:pe},Ll=Object.keys(Ee),L={"checkbox-list":{description:"Allows the user to select a multiple options from a list.",group:O.Selection,icon:ss,name:"Checkbox list"},"multi-select":{description:"Allows the user to select a multiple options from a list of options.",group:O.Selection,icon:hs,name:"Multi-select"},"multi-string":{description:"Allows the user to provide multiple unique strings.",group:O.Text,icon:ps,name:"Multi-string"},"pass-fail":{description:"Track pass, fail, or N/A outcome.",group:O.Assessment,icon:as,name:"Pass - Fail"},boolean:{description:"Perfect for both optional and required yes/no questions.",group:O.Selection,icon:vs,name:"Checkbox"},date:{description:"Allows specifying a date.",group:O.Temporal,icon:es,name:"Date"},time:{description:"Allows specifying a time and UTC offset.",group:O.Temporal,icon:zs,name:"Time"},number:{description:"Allows specifying a number within a given range.",group:O.Numeric,icon:cs,name:"Number"},otp:{description:"Allows specifying a number within a given range.",group:O.Verification,icon:ms,name:"OTP"},qr:{description:"Used for scanning/reading QR and barcodes.",group:O.Capture,icon:Cs,name:"Scan"},radio:{description:"Allows the user to select a single option from a list of options.",group:O.Selection,icon:is,name:"Option list"},rating:{description:"Allows users to select a rating value.",group:O.Assessment,icon:Qt,name:"Rating"},select:{description:"Allows the user to select a single option from a list of options.",group:O.Selection,icon:fs,name:"Dropdown"},string:{description:"Short text fields can hold up to 500 characters on a single line.",group:O.Text,icon:Fs,name:"Short Text"},text:{description:"Paragraph fields can hold up to 10000 characters and can have multiple lines.",group:O.Text,icon:Ya,name:"Paragraph"},upload:{description:"Allows a file to be uploaded.",group:O.Capture,icon:lt,name:"Upload"},url:{description:"Allows users to enter a URL.",group:O.Text,icon:us,name:"URL"}},Bl={[O.Assessment]:{name:"Assessment"},[O.Capture]:{name:"Capture"},[O.Numeric]:{name:"Numeric"},[O.Selection]:{name:"Selection"},[O.Temporal]:{name:"Temporal"},[O.Text]:{name:"Text"},[O.Verification]:{name:"Verification"}},_="Unlabelled",xi="Unlabelled";class Al extends Re{id;value;constructor(e){const{id:n,value:t}=e;super(),this.id=n,this.value=t}serialize(){return{id:this.id,type:this.type,value:this.serializeValue(),modifier:this.modifier}}getValue=()=>this.value;setValue=e=>{this.value=e,this.notify(this)}}class y extends Al{field;constructor(e){const{field:n,...t}=e;super(t),this.field=n}serialize(){return{...super.serialize(),field:this.field.id}}isApplicable=e=>this.field.isValue(e);accessorFn=e=>e[this.field.id]}const Dl=o.memo,qe=Dl(function(l){const{ref:e,children:n,...t}=l,s=o.useCallback(r=>typeof n=="function"?i.jsxs(i.Fragment,{children:[n(r),i.jsx(a.Menu.SelectedIndicator,{className:"ml-[auto]",children:i.jsx(a.LuIcon,{icon:J})})]}):i.jsxs(i.Fragment,{children:[n,i.jsx(a.Menu.SelectedIndicator,{className:"ml-[auto]",children:i.jsx(a.LuIcon,{icon:J})})]}),[n]);return i.jsx(a.Menu.SelectItem,{ref:e,...t,children:s})}),_l=Dl(function(l){const{ref:e,children:n,...t}=l,s=o.useCallback(r=>typeof n=="function"?i.jsxs(i.Fragment,{children:[n(r),i.jsx(a.Menu.SelectedIndicator,{className:"ml-auto",children:i.jsx(a.LuIcon,{icon:J})})]}):i.jsxs(i.Fragment,{children:[n,i.jsx(a.Menu.SelectedIndicator,{className:"ml-auto",children:i.jsx(a.LuIcon,{icon:J})})]}),[n]);return i.jsx(a.Menu.MultiSelectItem,{ref:e,...t,children:s})}),zt=o.memo(l=>{const{ref:e,children:n,...t}=l,s=o.useCallback(r=>typeof n=="function"?i.jsxs(i.Fragment,{children:[n(r),i.jsx(a.Menu.CheckboxItemIndicator,{className:"ml-[auto]",children:d=>d==="indeterminate"?i.jsx(a.LuIcon,{icon:Ci}):i.jsx(a.LuIcon,{icon:J})})]}):i.jsxs(i.Fragment,{children:[n,i.jsx(a.Menu.CheckboxItemIndicator,{className:"ml-[auto]",children:d=>d==="indeterminate"?i.jsx(a.LuIcon,{icon:Ci}):i.jsx(a.LuIcon,{icon:J})})]}),[n]);return i.jsx(a.Menu.SelectAllItem,{ref:e,...t,children:s})});zt.displayName="SelectAllItemTemplate";const Vt=o.memo(l=>{const{children:e,open:n,onOpenChange:t,defaultOpen:s,modal:r,size:d,align:f,accentColor:h="base",...u}=l;return i.jsxs(a.Popover.Root,{open:n,onOpenChange:t,defaultOpen:s,modal:r,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:e}),i.jsx(a.Popover.Content,{size:d,align:f,children:i.jsx(a.DayPicker,{size:d,accentColor:h,...u})})]})});Vt.displayName="DayPickerPopover";const $l=o.memo(l=>{const{children:e,open:n,onOpenChange:t,defaultOpen:s,modal:r,size:d,accentColor:f="base",values:h,onValuesChange:u,placeholder:p="Enter text",...m}=l,[g,C]=o.useState(""),v=o.useCallback(q=>{C(q.target.value)},[]),w=o.useCallback(q=>{q.key==="Enter"&&(q.preventDefault(),q.stopPropagation(),u([...h,g]),C(""))},[g,u,h]),z=o.useCallback(()=>{u([...h,g]),C("")},[g,u,h]),F=o.useCallback(q=>{const x=[...h];x.splice(q,1),u(x)},[u,h]);return i.jsxs(a.Popover.Root,{open:n,onOpenChange:t,defaultOpen:s,modal:r,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:e}),i.jsx(a.Popover.Content,{size:d,onClick:a.stopPropagation,accentColor:f,...m,children:i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsxs("div",{className:"flex gap-2",children:[i.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"outline",size:"sm",children:i.jsx(a.Input.Field,{value:g,onChange:v,onKeyDown:w,placeholder:p,...m})}),i.jsx(a.IconButton,{size:"sm",accentColor:"base",variant:"soft",type:"button",onClick:z,children:i.jsx(a.LuIcon,{icon:Q})})]}),h.length>0&&i.jsx("div",{className:"flex flex-col gap-1",children:h.map((q,x)=>i.jsxs(a.Badge,{className:"flex items-center justify-between gap-2",accentColor:"base",size:"sm",variant:"soft",children:[i.jsx("span",{className:"truncate",children:q}),i.jsx(a.IconButton,{size:"xs",variant:"ghost",type:"button",accentColor:"base",onClick:()=>{F(x)},children:i.jsx(a.LuIcon,{icon:ne})})]},`${q}-${x}`))})]})})]})});$l.displayName="NumberInputPopover";const Oe=o.memo(l=>{const{children:e,open:n,onOpenChange:t,defaultOpen:s,modal:r,size:d,accentColor:f="base",value:h,onValueChange:u,placeholder:p="Enter a number",...m}=l,[g,C]=o.useState(null);o.useEffect(()=>{h!==void 0&&C(h)},[h]);const v=o.useCallback(z=>{const F=z.target.valueAsNumber;C(isNaN(F)?null:F)},[]),w=o.useCallback(z=>{const F=z.target.valueAsNumber;u?.(isNaN(F)?null:F)},[u]);return i.jsxs(a.Popover.Root,{open:n,onOpenChange:t,defaultOpen:s,modal:r,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:e}),i.jsx(a.Popover.Content,{size:d,onClick:a.stopPropagation,...m,children:i.jsx(a.Input.Root,{size:d,accentColor:f,children:i.jsx(a.Input.Field,{placeholder:p,type:"number",value:g??"",onChange:v,onBlur:w})})})]})});Oe.displayName="NumberInputPopover";const k=l=>{const{condition:e,onClick:n,...t}=l,s=o.useCallback(()=>{n(e)},[e,n]);return i.jsx(a.IconButton,{onClick:s,...t,children:i.jsx(a.LuIcon,{icon:ne})})};k.displayName="RemoveConditionButton";const nn=o.memo(l=>{const{ref:e,selectFieldOptions:n,...t}=l,s=o.useMemo(()=>oe(n),[n]);return i.jsxs(a.Menu.MultiSelectGroup,{ref:e,...t,children:[i.jsx(zt,{children:"Select all"}),s.map(r=>i.jsx(_l,{value:r.value,children:i.jsx("span",{className:"truncate",children:r.label})},r.value))]})});nn.displayName="SelectFieldOptionMultiSelectGroup";const St=o.memo(l=>{const{ref:e,selectFieldOptions:n,...t}=l,s=o.useMemo(()=>oe(n),[n]);return i.jsx(a.Menu.SelectGroup,{ref:e,...t,children:s.map(r=>i.jsx(qe,{value:r.value,children:i.jsx("span",{className:"truncate",children:r.label})},r.value))})});St.displayName="SelectFieldOptionSelectGroup";const Le=o.memo(l=>{const{children:e,open:n,onOpenChange:t,defaultOpen:s,modal:r,size:d,accentColor:f="base",value:h,onValueChange:u,placeholder:p="Enter text",...m}=l,[g,C]=o.useState(""),v=o.useCallback(z=>{C(z.target.value)},[]),w=o.useCallback(z=>{const F=z.target.value;u?.(F)},[u]);return o.useEffect(()=>{h&&C(h)},[h]),i.jsxs(a.Popover.Root,{open:n,onOpenChange:t,defaultOpen:s,modal:r,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:e}),i.jsx(a.Popover.Content,{size:d,onClick:a.stopPropagation,...m,children:i.jsx(a.Input.Root,{size:d,accentColor:f,children:i.jsx(a.Input.Field,{placeholder:p,type:"text",value:g,onChange:v,onBlur:w})})})]})});Le.displayName="TextInputPopover";const Ii=o.memo(l=>{const{children:e,open:n,onOpenChange:t,defaultOpen:s,modal:r,size:d="sm",accentColor:f="base",value:h,onValueChange:u,...p}=l;return i.jsxs(a.Popover.Root,{open:n,onOpenChange:t,defaultOpen:s,modal:r,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:e}),i.jsx(a.Popover.Content,{size:d,onClick:a.stopPropagation,accentColor:f,...p,children:i.jsx(Ni,{compact:!0,size:d,value:h,onChange:u})})]})});Ii.displayName="TimeInputPopover";const j=l=>{const{children:e,required:n,value:t,defaultValue:s,onValueChange:r,modifierConfig:d,size:f="sm",variant:h,accentColor:u,radius:p}=l;return i.jsxs(a.Menu.Root,{align:"start",children:[i.jsx(a.Menu.ClickTrigger,{children:e}),i.jsx(a.Menu.Content,{size:f,variant:h,radius:p,accentColor:u,children:i.jsx(a.Menu.SelectGroup,{required:n,defaultValue:s,value:t,onValueChange:r,children:Object.keys(d).map(m=>{const{label:g}=d[m];return i.jsx(qe,{value:m,children:g},m)})})})]})},U=(l,e,n)=>o.useCallback(t=>{const{klass:s,isTransferable:r,defaultValue:d}=e[t],f=l.getValue(),h=new s({id:l.id,value:r(f)?f:d(),field:l.field});n(l,h)},[l,e,n]);class Be extends y{type="boolean";modifier="equals";static deserialize(e,n){return new Be({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===e}}class tn extends y{type="boolean";modifier="notEquals";static deserialize(e,n){return new tn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n!==e}}const Mi={equals:{klass:Be,label:"is",isTransferable:l=>!0,defaultValue:()=>!0},notEquals:{klass:tn,label:"is not",isTransferable:l=>!0,defaultValue:()=>!0}},Pl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=e.getValue(),r=e.modifier,d=()=>{switch(s){case!0:return"true";case!1:return"false"}},f=U(e,Mi,n);return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:r,onValueChange:f,modifierConfig:Mi,children:i.jsx(a.Button,{type:"button",children:Mi[r].label})}),i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:d()})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsxs(a.Menu.SelectGroup,{required:!0,value:s,onValueChange:e.setValue,children:[i.jsx(qe,{value:!0,children:"true"}),i.jsx(qe,{value:!1,children:"false"})]})})]}),i.jsx(k,{condition:e,onClick:t})]})};class Ae extends y{type="checkbox-list";modifier="equals";static deserialize(e,n){return new Ae({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.size===s.size&&s.isSubsetOf(t)}}}class ln extends y{type="checkbox-list";modifier="notEquals";static deserialize(e,n){return new ln({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.size!==s.size||!s.isSubsetOf(t)}}}class an extends y{type="checkbox-list";modifier="every";static deserialize(e,n){return new an({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.isSubsetOf(s)}}}class sn extends y{type="checkbox-list";modifier="some";static deserialize(e,n){return new sn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return!t.isDisjointFrom(s)}}}class rn extends y{type="checkbox-list";modifier="none";static deserialize(e,n){return new rn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.isDisjointFrom(s)}}}const qi={equals:{klass:Ae,label:"is",isTransferable:l=>!0,defaultValue:()=>[]},notEquals:{klass:ln,label:"is not",isTransferable:l=>!0,defaultValue:()=>[]},every:{klass:an,label:"has all of",isTransferable:l=>!0,defaultValue:()=>[]},some:{klass:sn,label:"has any of",isTransferable:l=>!0,defaultValue:()=>[]},none:{klass:rn,label:"has none of",isTransferable:l=>!0,defaultValue:()=>[]}},kl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,qi,n),r=()=>i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",children:[e.getValue().length," options"]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(nn,{selectFieldOptions:e.field.options,values:e.getValue(),onValuesChange:e.setValue})})]});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:qi,children:i.jsx(a.Button,{type:"button",children:qi[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class Oi extends Re{conditions;constructor(e){super(),this.conditions=this.initConditions(e)}conditionObserver=()=>{this.conditions=[...this.conditions],this.notify(this)};initConditions=e=>{for(const n of e)n.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)}replaceCondition(e,n){this.conditions=this.initConditions(this.conditions.map(t=>t.id===e.id?n:t)),this.notify(this)}removeCondition(e){this.conditions=this.initConditions(this.conditions.filter(n=>n.id!==e.id)),this.notify(this)}removeConditions(e){const n=new Set(e.map(t=>t.id));this.conditions=this.initConditions(this.conditions.filter(t=>!n.has(t.id))),this.notify(this)}applyConditions(e){return this.conditions.length===0?!0:this.conditions.map(t=>[t.getApplyFn(),t.isApplicable,t.accessorFn]).every(([t,s,r])=>{const d=r(e);return s(d)?t(d):!1})}}const qs=(l,e)=>o.useMemo(()=>{const n=new Oi(l);return n.observe(t=>e(t.getConditions())),n},[l,e]);class De extends y{type="date";modifier="equals";static deserialize(e,n){return new De({...e,value:new Date(e.value),field:n})}serializeValue(){return this.value.toISOString()}getApplyFn(){const e=this.value;return n=>n===null?!1:n.getTime()===e.getTime()}}class on extends y{type="date";modifier="notEquals";static deserialize(e,n){return new on({...e,value:new Date(e.value),field:n})}serializeValue(){return this.value.toISOString()}getApplyFn(){const e=this.value;return n=>n===null?!1:n.getTime()!==e.getTime()}}class dn extends y{type="date";modifier="before";static deserialize(e,n){return new dn({...e,value:new Date(e.value),field:n})}serializeValue(){return this.value.toISOString()}getApplyFn(){const e=this.value;return n=>n===null?!1:n.getTime()<e.getTime()}}class cn extends y{type="date";modifier="after";static deserialize(e,n){return new cn({...e,value:new Date(e.value),field:n})}serializeValue(){return this.value.toISOString()}getApplyFn(){const e=this.value;return n=>n===null?!1:n.getTime()>e.getTime()}}class un extends y{type="date";modifier="in";static deserialize(e,n){return new un({...e,value:{from:e.value.from?new Date(e.value.from):void 0,to:e.value.to?new Date(e.value.to):void 0},field:n})}serializeValue(){return{from:this.value.from?.toISOString()??null,to:this.value.to?.toISOString()??null}}getApplyFn(){const e=this.value;return n=>!(n===null||e.from&&e.from.getTime()>n.getTime()||e.to&&e.to.getTime()<n.getTime())}}class hn extends y{type="date";modifier="notIn";static deserialize(e,n){return new hn({...e,value:{from:e.value.from?new Date(e.value.from):void 0,to:e.value.to?new Date(e.value.to):void 0},field:n})}serializeValue(){return{from:this.value.from?.toISOString()??null,to:this.value.to?.toISOString()??null}}getApplyFn(){const e=this.value;return n=>n===null?!1:!!(e.from&&e.from.getTime()>n.getTime()||e.to&&e.to.getTime()<n.getTime())}}const Ti={equals:{klass:De,label:"is",isTransferable:l=>l instanceof Date,defaultValue:()=>new Date(new Date().setHours(0,0,0,0))},notEquals:{klass:on,label:"is not",isTransferable:l=>l instanceof Date,defaultValue:()=>new Date(new Date().setHours(0,0,0,0))},before:{klass:dn,label:"before",isTransferable:l=>l instanceof Date,defaultValue:()=>new Date(new Date().setHours(0,0,0,0))},after:{klass:cn,label:"after",isTransferable:l=>l instanceof Date,defaultValue:()=>new Date(new Date().setHours(0,0,0,0))},in:{klass:un,label:"in between",isTransferable:l=>!(l instanceof Date),defaultValue:()=>({from:void 0,to:void 0})},notIn:{klass:hn,label:"not in between",isTransferable:l=>!(l instanceof Date),defaultValue:()=>({from:void 0,to:void 0})}},jl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Ti,n),r=()=>{switch(e.modifier){case"in":case"notIn":{const d=e.getValue();return i.jsx(Vt,{required:!0,mode:"range",size:"sm",selected:d,onSelect:e.setValue,children:i.jsxs(a.Button,{type:"button",className:"truncate",children:[d.from?.toLocaleDateString()??"..."," - ",d.to?.toLocaleDateString()??"..."]})})}default:return i.jsx(Vt,{required:!0,mode:"single",size:"sm",selected:e.getValue(),onSelect:e.setValue,children:i.jsx(a.Button,{type:"button",className:"truncate",children:e.getValue().toLocaleDateString()})})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Ti,children:i.jsx(a.Button,{type:"button",children:Ti[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class _e extends y{type="multi-select";modifier="equals";static deserialize(e,n){return new _e({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.size===s.size&&s.isSubsetOf(t)}}}class fn extends y{type="multi-select";modifier="notEquals";static deserialize(e,n){return new fn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.size!==s.size||!s.isSubsetOf(t)}}}class pn extends y{type="multi-select";modifier="every";static deserialize(e,n){return new pn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.isSubsetOf(s)}}}class gn extends y{type="multi-select";modifier="some";static deserialize(e,n){return new gn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return!t.isDisjointFrom(s)}}}class mn extends y{type="multi-select";modifier="none";static deserialize(e,n){return new mn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.isDisjointFrom(s)}}}const Ei={equals:{klass:_e,label:"is",isTransferable:l=>!0,defaultValue:()=>[]},notEquals:{klass:fn,label:"is not",isTransferable:l=>!0,defaultValue:()=>[]},every:{klass:pn,label:"has all of",isTransferable:l=>!0,defaultValue:()=>[]},some:{klass:gn,label:"has any of",isTransferable:l=>!0,defaultValue:()=>[]},none:{klass:mn,label:"has none of",isTransferable:l=>!0,defaultValue:()=>[]}},Ul=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Ei,n),r=()=>i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",children:[e.getValue().length," options"]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(nn,{selectFieldOptions:e.field.options,values:e.getValue(),onValuesChange:e.setValue})})]});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Ei,children:i.jsx(a.Button,{type:"button",children:Ei[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class $e extends y{type="multi-string";modifier="equals";static deserialize(e,n){return new $e({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.size===s.size&&s.isSubsetOf(t)}}}class Cn extends y{type="multi-string";modifier="notEquals";static deserialize(e,n){return new Cn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.size!==s.size||!s.isSubsetOf(t)}}}class yn extends y{type="multi-string";modifier="every";static deserialize(e,n){return new yn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.isSubsetOf(s)}}}class vn extends y{type="multi-string";modifier="some";static deserialize(e,n){return new vn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return!t.isDisjointFrom(s)}}}class wn extends y{type="multi-string";modifier="none";static deserialize(e,n){return new wn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>{const t=new Set(e),s=new Set(n);return t.isDisjointFrom(s)}}}const Li={equals:{klass:$e,label:"is",isTransferable:l=>!0,defaultValue:()=>[]},notEquals:{klass:Cn,label:"is not",isTransferable:l=>!0,defaultValue:()=>[]},every:{klass:yn,label:"has all of",isTransferable:l=>!0,defaultValue:()=>[]},some:{klass:vn,label:"has any of",isTransferable:l=>!0,defaultValue:()=>[]},none:{klass:wn,label:"has none of",isTransferable:l=>!0,defaultValue:()=>[]}},Gl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Li,n),r=()=>{const d=e.getValue();return i.jsx($l,{values:d,onValuesChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:d.length===1?d[0]:`${d.length} values`})})};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Li,children:i.jsx(a.Button,{type:"button",children:Li[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class Pe extends y{type="number";modifier="equals";static deserialize(e,n){return new Pe({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n===e}}class Fn extends y{type="number";modifier="notEquals";static deserialize(e,n){return new Fn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n!==e}}class zn extends y{type="number";modifier="lessThan";static deserialize(e,n){return new zn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n<e}}class Vn extends y{type="number";modifier="lessThanOrEquals";static deserialize(e,n){return new Vn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n<=e}}class Sn extends y{type="number";modifier="greaterThan";static deserialize(e,n){return new Sn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n>e}}class bn extends y{type="number";modifier="greaterThanOrEquals";static deserialize(e,n){return new bn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n>=e}}class Nn extends y{type="number";modifier="inRange";static deserialize(e,n){return new Nn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>!(n===null||e.to!==null&&n>e.to||e.from!==null&&n<e.from)}}class xn extends y{type="number";modifier="notInRange";static deserialize(e,n){return new xn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:e.to!==null&&n>e.to||e.from!==null&&n<e.from}}const Bi={equals:{klass:Pe,label:"is",isTransferable:l=>typeof l=="number",defaultValue:()=>0},notEquals:{klass:Fn,label:"is not",isTransferable:l=>typeof l=="number",defaultValue:()=>0},lessThan:{klass:zn,label:"is less than",isTransferable:l=>typeof l=="number",defaultValue:()=>0},lessThanOrEquals:{klass:Vn,label:"is less than or equal to",isTransferable:l=>typeof l=="number",defaultValue:()=>0},greaterThan:{klass:Sn,label:"is greater than",isTransferable:l=>typeof l=="number",defaultValue:()=>0},greaterThanOrEquals:{klass:bn,label:"is greater than or equal to",isTransferable:l=>typeof l=="number",defaultValue:()=>0},inRange:{klass:Nn,label:"is between",isTransferable:l=>typeof l=="object",defaultValue:()=>({from:null,to:null})},notInRange:{klass:xn,label:"is not between",isTransferable:l=>typeof l=="object",defaultValue:()=>({from:null,to:null})}},Jl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Bi,n),r=o.useCallback(u=>{u===null||e.modifier==="inRange"||e.modifier==="notInRange"||e.setValue(u)},[e]),d=o.useCallback(u=>{e.modifier!=="inRange"&&e.modifier!=="notInRange"||e.setValue({...e.getValue(),from:u})},[e]),f=o.useCallback(u=>{e.modifier!=="inRange"&&e.modifier!=="notInRange"||e.setValue({...e.getValue(),to:u})},[e]),h=()=>{switch(e.modifier){case"inRange":case"notInRange":{const u=e.getValue();return i.jsxs(i.Fragment,{children:[i.jsx(Oe,{value:u.from,onValueChange:d,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.from??"..."})}),i.jsx(Oe,{value:u.to,onValueChange:f,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.to??"..."})})]})}default:return i.jsx(Oe,{value:e.getValue(),onValueChange:r,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:e.getValue()})})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Bi,children:i.jsx(a.Button,{type:"button",children:Bi[e.modifier].label})}),h(),i.jsx(k,{condition:e,onClick:t})]})};class ke extends y{type="otp";modifier="equals";static deserialize(e,n){return new ke({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===e}}class In extends y{type="otp";modifier="notEquals";static deserialize(e,n){return new In({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n!==e}}class Mn extends y{type="otp";modifier="includes";static deserialize(e,n){return new Mn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n.includes(e)}}class qn extends y{type="otp";modifier="excludes";static deserialize(e,n){return new qn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>!n.includes(e)}}const Ai={equals:{klass:ke,label:"is",isTransferable:l=>!0,defaultValue:()=>""},notEquals:{klass:In,label:"is not",isTransferable:l=>!0,defaultValue:()=>""},includes:{klass:Mn,label:"includes",isTransferable:l=>!0,defaultValue:()=>""},excludes:{klass:qn,label:"does not include",isTransferable:l=>!0,defaultValue:()=>""}},Hl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Ai,n),r=()=>i.jsx(Le,{value:e.getValue(),onValueChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:i.jsx("span",{className:"truncate",children:e.getValue()||"..."})})});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Ai,children:i.jsx(a.Button,{type:"button",children:Ai[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class je extends y{type="pass-fail";modifier="equals";static deserialize(e,n){return new je({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n.status===null?!1:n.status===e}}class On extends y{type="pass-fail";modifier="notEquals";static deserialize(e,n){return new On({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n.status===null?!1:n.status!==e}}class Tn extends y{type="pass-fail";modifier="includes";static deserialize(e,n){return new Tn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n.status===null?!1:e.includes(n.status)}}class En extends y{type="pass-fail";modifier="excludes";static deserialize(e,n){return new En({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n.status===null?!1:!e.includes(n.status)}}const Di={equals:{klass:je,label:"is",isTransferable:l=>typeof l=="string",defaultValue:()=>"pass"},notEquals:{klass:On,label:"is not",isTransferable:l=>typeof l=="string",defaultValue:()=>"pass"},includes:{klass:Tn,label:"is any of",isTransferable:l=>Array.isArray(l),defaultValue:()=>[]},excludes:{klass:En,label:"is none of",isTransferable:l=>Array.isArray(l),defaultValue:()=>[]}},Wl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Di,n),r=()=>{switch(e.modifier){case"equals":case"notEquals":return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.Button,{type:"button",children:ue[e.getValue()].label})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(a.Menu.SelectGroup,{required:!0,value:e.getValue(),onValueChange:e.setValue,children:Te.map(d=>i.jsx(qe,{value:d,children:ue[d].label},d))})})]});case"includes":case"excludes":return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",children:[e.getValue().length," statuses"]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsxs(a.Menu.MultiSelectGroup,{values:e.getValue(),onValuesChange:e.setValue,children:[i.jsx(zt,{children:"Select all"}),Te.map(d=>i.jsxs(_l,{value:d,children:[i.jsx(a.LuIcon,{icon:ue[d].icon}),ue[d].label]},d))]})})]})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Di,children:i.jsx(a.Button,{type:"button",children:Di[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class Ue extends y{type="radio";modifier="equals";static deserialize(e,n){return new Ue({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n===e}}class Ln extends y{type="radio";modifier="notEquals";static deserialize(e,n){return new Ln({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n!==e}}class Bn extends y{type="radio";modifier="includes";static deserialize(e,n){return new Bn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:e.includes(n)}}class An extends y{type="radio";modifier="excludes";static deserialize(e,n){return new An({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:!e.includes(n)}}const _i={equals:{klass:Ue,label:"is",isTransferable:l=>typeof l=="string",defaultValue:()=>""},notEquals:{klass:Ln,label:"is not",isTransferable:l=>typeof l=="string",defaultValue:()=>""},includes:{klass:Bn,label:"is any of",isTransferable:l=>Array.isArray(l),defaultValue:()=>[]},excludes:{klass:An,label:"is none of",isTransferable:l=>Array.isArray(l),defaultValue:()=>[]}},Kl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,_i,n),r=()=>{switch(e.modifier){case"equals":case"notEquals":{const d=e.getValue(),f=oe(e.field.options).find(h=>h.value===d)?.label;return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.Button,{type:"button",className:"truncate",children:f??(d||"...")})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(St,{required:!0,selectFieldOptions:e.field.options,value:d,onValueChange:e.setValue})})]})}case"includes":case"excludes":return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",children:[e.getValue().length," options"]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(nn,{selectFieldOptions:e.field.options,values:e.getValue(),onValuesChange:e.setValue})})]})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:_i,children:i.jsx(a.Button,{type:"button",children:_i[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class Ge extends y{type="rating";modifier="equals";static deserialize(e,n){return new Ge({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n===e}}class Dn extends y{type="rating";modifier="notEquals";static deserialize(e,n){return new Dn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n!==e}}class _n extends y{type="rating";modifier="lessThan";static deserialize(e,n){return new _n({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n<e}}class $n extends y{type="rating";modifier="lessThanOrEquals";static deserialize(e,n){return new $n({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n<=e}}class Pn extends y{type="rating";modifier="greaterThan";static deserialize(e,n){return new Pn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n>e}}class kn extends y{type="rating";modifier="greaterThanOrEquals";static deserialize(e,n){return new kn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n>=e}}class jn extends y{type="rating";modifier="inRange";static deserialize(e,n){return new jn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>!(n===null||e.to!==null&&n>e.to||e.from!==null&&n<e.from)}}class Un extends y{type="rating";modifier="notInRange";static deserialize(e,n){return new Un({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:e.to!==null&&n>e.to||e.from!==null&&n<e.from}}const $i={equals:{klass:Ge,label:"is",isTransferable:l=>typeof l=="number",defaultValue:()=>0},notEquals:{klass:Dn,label:"is not",isTransferable:l=>typeof l=="number",defaultValue:()=>0},lessThan:{klass:_n,label:"is less than",isTransferable:l=>typeof l=="number",defaultValue:()=>0},lessThanOrEquals:{klass:$n,label:"is less than or equal to",isTransferable:l=>typeof l=="number",defaultValue:()=>0},greaterThan:{klass:Pn,label:"is greater than",isTransferable:l=>typeof l=="number",defaultValue:()=>0},greaterThanOrEquals:{klass:kn,label:"is greater than or equal to",isTransferable:l=>typeof l=="number",defaultValue:()=>0},inRange:{klass:jn,label:"is between",isTransferable:l=>typeof l=="object",defaultValue:()=>({from:null,to:null})},notInRange:{klass:Un,label:"is not between",isTransferable:l=>typeof l=="object",defaultValue:()=>({from:null,to:null})}},Zl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,$i,n),r=o.useCallback(u=>{u===null||e.modifier==="inRange"||e.modifier==="notInRange"||e.setValue(u)},[e]),d=o.useCallback(u=>{e.modifier!=="inRange"&&e.modifier!=="notInRange"||e.setValue({...e.getValue(),from:u})},[e]),f=o.useCallback(u=>{e.modifier!=="inRange"&&e.modifier!=="notInRange"||e.setValue({...e.getValue(),to:u})},[e]),h=()=>{switch(e.modifier){case"inRange":case"notInRange":{const u=e.getValue();return i.jsxs(i.Fragment,{children:[i.jsx(Oe,{value:u.from,onValueChange:d,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.from??"..."})}),i.jsx(Oe,{value:u.to,onValueChange:f,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.to??"..."})})]})}default:return i.jsx(Oe,{value:e.getValue(),onValueChange:r,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:e.getValue()})})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:$i,children:i.jsx(a.Button,{type:"button",children:$i[e.modifier].label})}),h(),i.jsx(k,{condition:e,onClick:t})]})};class Je extends y{type="qr";modifier="equals";static deserialize(e,n){return new Je({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===e}}class Gn extends y{type="qr";modifier="notEquals";static deserialize(e,n){return new Gn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n!==e}}class Jn extends y{type="qr";modifier="includes";static deserialize(e,n){return new Jn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n.includes(e)}}class Hn extends y{type="qr";modifier="excludes";static deserialize(e,n){return new Hn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>!n.includes(e)}}const Pi={equals:{klass:Je,label:"is",isTransferable:l=>!0,defaultValue:()=>""},notEquals:{klass:Gn,label:"is not",isTransferable:l=>!0,defaultValue:()=>""},includes:{klass:Jn,label:"includes",isTransferable:l=>!0,defaultValue:()=>""},excludes:{klass:Hn,label:"does not include",isTransferable:l=>!0,defaultValue:()=>""}},Xl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Pi,n),r=()=>i.jsx(Le,{value:e.getValue(),onValueChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:i.jsx("span",{className:"truncate",children:e.getValue()||"..."})})});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Pi,children:i.jsx(a.Button,{type:"button",children:Pi[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class He extends y{type="select";modifier="equals";static deserialize(e,n){return new He({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n===e}}class Wn extends y{type="select";modifier="notEquals";static deserialize(e,n){return new Wn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:n!==e}}class Kn extends y{type="select";modifier="includes";static deserialize(e,n){return new Kn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:e.includes(n)}}class Zn extends y{type="select";modifier="excludes";static deserialize(e,n){return new Zn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===null?!1:!e.includes(n)}}const ki={equals:{klass:He,label:"is",isTransferable:l=>typeof l=="string",defaultValue:()=>""},notEquals:{klass:Wn,label:"is not",isTransferable:l=>typeof l=="string",defaultValue:()=>""},includes:{klass:Kn,label:"is any of",isTransferable:l=>Array.isArray(l),defaultValue:()=>[]},excludes:{klass:Zn,label:"is none of",isTransferable:l=>Array.isArray(l),defaultValue:()=>[]}},Yl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,ki,n),r=()=>{switch(e.modifier){case"equals":case"notEquals":{const d=e.getValue(),f=oe(e.field.options).find(h=>h.value===d)?.label;return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.Button,{type:"button",className:"truncate",children:f??(d||"...")})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(St,{required:!0,selectFieldOptions:e.field.options,value:d,onValueChange:e.setValue})})]})}case"includes":case"excludes":return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",children:[e.getValue().length," options"]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(nn,{selectFieldOptions:e.field.options,values:e.getValue(),onValuesChange:e.setValue})})]})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:ki,children:i.jsx(a.Button,{type:"button",children:ki[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class We extends y{type="string";modifier="equals";static deserialize(e,n){return new We({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===e}}class Xn extends y{type="string";modifier="notEquals";static deserialize(e,n){return new Xn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n!==e}}class Yn extends y{type="string";modifier="includes";static deserialize(e,n){return new Yn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n.includes(e)}}class Qn extends y{type="string";modifier="excludes";static deserialize(e,n){return new Qn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>!n.includes(e)}}const ji={equals:{klass:We,label:"is",isTransferable:l=>!0,defaultValue:()=>""},notEquals:{klass:Xn,label:"is not",isTransferable:l=>!0,defaultValue:()=>""},includes:{klass:Yn,label:"includes",isTransferable:l=>!0,defaultValue:()=>""},excludes:{klass:Qn,label:"does not include",isTransferable:l=>!0,defaultValue:()=>""}},Ql=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,ji,n),r=()=>i.jsx(Le,{value:e.getValue(),onValueChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:i.jsx("span",{className:"truncate",children:e.getValue()||"..."})})});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:ji,children:i.jsx(a.Button,{type:"button",children:ji[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class Ke extends y{type="text";modifier="equals";static deserialize(e,n){return new Ke({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n===e}}class Rn extends y{type="text";modifier="notEquals";static deserialize(e,n){return new Rn({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n!==e}}class ei extends y{type="text";modifier="includes";static deserialize(e,n){return new ei({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>n.includes(e)}}class ni extends y{type="text";modifier="excludes";static deserialize(e,n){return new ni({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>!n.includes(e)}}const Ui={equals:{klass:Ke,label:"is",isTransferable:l=>!0,defaultValue:()=>""},notEquals:{klass:Rn,label:"is not",isTransferable:l=>!0,defaultValue:()=>""},includes:{klass:ei,label:"includes",isTransferable:l=>!0,defaultValue:()=>""},excludes:{klass:ni,label:"does not include",isTransferable:l=>!0,defaultValue:()=>""}},Rl=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Ui,n),r=()=>i.jsx(Le,{value:e.getValue(),onValueChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:i.jsx("span",{className:"truncate",children:e.getValue()||"..."})})});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Ui,children:i.jsx(a.Button,{type:"button",children:Ui[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class Ze extends y{type="time";modifier="equals";static deserialize(e,n){return new Ze({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>ee(n)?n===e:!1}}class ii extends y{type="time";modifier="notEquals";static deserialize(e,n){return new ii({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>ee(n)?n!==e:!1}}class ti extends y{type="time";modifier="before";static deserialize(e,n){return new ti({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>ee(n)?ve(n)<ve(e):!1}}class li extends y{type="time";modifier="after";static deserialize(e,n){return new li({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>ee(n)?ve(n)>ve(e):!1}}class ai extends y{type="time";modifier="in";static deserialize(e,n){return new ai({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>ee(n)?wt(n,e):!1}}class si extends y{type="time";modifier="notIn";static deserialize(e,n){return new si({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>ee(n)?!wt(n,e):!1}}const Gi={equals:{klass:Ze,label:"is",isTransferable:l=>typeof l=="string",defaultValue:()=>ye(0,0)},notEquals:{klass:ii,label:"is not",isTransferable:l=>typeof l=="string",defaultValue:()=>ye(0,0)},before:{klass:ti,label:"before",isTransferable:l=>typeof l=="string",defaultValue:()=>ye(0,0)},after:{klass:li,label:"after",isTransferable:l=>typeof l=="string",defaultValue:()=>ye(0,0)},in:{klass:ai,label:"in between",isTransferable:l=>typeof l=="object",defaultValue:()=>({from:null,to:null})},notIn:{klass:si,label:"not in between",isTransferable:l=>typeof l=="object",defaultValue:()=>({from:null,to:null})}},ea=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Gi,n),r=o.useCallback(u=>{u===null||e.modifier==="in"||e.modifier==="notIn"||e.setValue(u)},[e]),d=o.useCallback(u=>{e.modifier!=="in"&&e.modifier!=="notIn"||e.setValue({...e.getValue(),from:u})},[e]),f=o.useCallback(u=>{e.modifier!=="in"&&e.modifier!=="notIn"||e.setValue({...e.getValue(),to:u})},[e]),h=()=>{switch(e.modifier){case"in":case"notIn":{const u=e.getValue();return i.jsxs(i.Fragment,{children:[i.jsx(Ii,{value:u.from,onValueChange:d,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.from?bi(u.from):"..."})}),i.jsx(Ii,{value:u.to,onValueChange:f,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.to?bi(u.to):"..."})})]})}default:return i.jsx(Ii,{value:e.getValue(),onValueChange:r,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:bi(e.getValue())})})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Gi,children:i.jsx(a.Button,{type:"button",children:Gi[e.modifier].label})}),h(),i.jsx(k,{condition:e,onClick:t})]})};class Xe extends y{type="upload";modifier="equals";static deserialize(e,n){return new Xe({...e,field:n})}serializeValue(){return this.value}getApplyFn(){return e=>e.length>0}}class ri extends y{type="upload";modifier="notEquals";static deserialize(e,n){return new ri({...e,field:n})}serializeValue(){return this.value}getApplyFn(){return e=>e.length===0}}const Ji={equals:{klass:Xe,label:"is",isTransferable:l=>!0,defaultValue:()=>!0},notEquals:{klass:ri,label:"is not",isTransferable:l=>!0,defaultValue:()=>!0}},na=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Ji,n),r=()=>i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.Button,{type:"button",children:e.getValue()?"empty":"not empty"})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsxs(a.Menu.SelectGroup,{required:!0,value:e.getValue(),onValueChange:e.setValue,children:[i.jsx(qe,{value:!0,children:"empty"}),i.jsx(qe,{value:!1,children:"not empty"})]})})]});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Ji,children:i.jsx(a.Button,{type:"button",children:Ji[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})};class Ye extends y{type="url";modifier="equals";static deserialize(e,n){return new Ye({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>(n?.toString()??"")===e}}class oi extends y{type="url";modifier="notEquals";static deserialize(e,n){return new oi({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>(n?.toString()??"")!==e}}class di extends y{type="url";modifier="includes";static deserialize(e,n){return new di({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>(n?.toString()??"").includes(e)}}class ci extends y{type="url";modifier="excludes";static deserialize(e,n){return new ci({...e,field:n})}serializeValue(){return this.value}getApplyFn(){const e=this.value;return n=>!(n?.toString()??"").includes(e)}}const Hi={equals:{klass:Ye,label:"is",isTransferable:l=>!0,defaultValue:()=>""},notEquals:{klass:oi,label:"is not",isTransferable:l=>!0,defaultValue:()=>""},includes:{klass:di,label:"includes",isTransferable:l=>!0,defaultValue:()=>""},excludes:{klass:ci,label:"does not include",isTransferable:l=>!0,defaultValue:()=>""}},ia=l=>{const{condition:e,onReplace:n,onRemove:t}=l,s=U(e,Hi,n),r=()=>i.jsx(Le,{value:e.getValue(),onValueChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:i.jsx("span",{className:"truncate",children:e.getValue()||"..."})})});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||_})]}),i.jsx(j,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Hi,children:i.jsx(a.Button,{type:"button",children:Hi[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:t})]})},Os={date:{equals:De,notEquals:on,before:dn,after:cn,in:un,notIn:hn},boolean:{equals:Be,notEquals:tn},"checkbox-list":{equals:Ae,notEquals:ln,every:an,none:rn,some:sn},"multi-select":{equals:_e,notEquals:fn,every:pn,none:mn,some:gn},"multi-string":{equals:$e,notEquals:Cn,every:yn,none:wn,some:vn},number:{equals:Pe,notEquals:Fn,greaterThan:Sn,greaterThanOrEquals:bn,inRange:Nn,lessThan:zn,lessThanOrEquals:Vn,notInRange:xn},otp:{equals:ke,notEquals:In,excludes:qn,includes:Mn},"pass-fail":{equals:je,notEquals:On,excludes:En,includes:Tn},radio:{equals:Ue,notEquals:Ln,excludes:An,includes:Bn},rating:{equals:Ge,notEquals:Dn,greaterThan:Pn,greaterThanOrEquals:kn,inRange:jn,lessThan:_n,lessThanOrEquals:$n,notInRange:Un},qr:{equals:Je,notEquals:Gn,excludes:Hn,includes:Jn},select:{equals:He,notEquals:Wn,excludes:Zn,includes:Kn},string:{equals:We,notEquals:Xn,excludes:Qn,includes:Yn},text:{equals:Ke,notEquals:Rn,excludes:ni,includes:ei},time:{equals:Ze,notEquals:ii,after:li,before:ti,in:ai,notIn:si},url:{equals:Ye,notEquals:oi,excludes:ci,includes:di},upload:{equals:Xe,notEquals:ri}},ta=(l,e)=>{if(l.type!==e.type)throw new Error(`field and condition type mismatch ${l.type} !== ${e.type}`);return Os[e.type][e.modifier].deserialize(e,l)},Wi=(l,e)=>{const n=bt(l,e),t={};for(const s of l)t[s.id]=s;return n.map(s=>ta(t[s.field],s))},la=(l,e)=>Nt(l,e).map(t=>t.serialize()),bt=(l,e)=>{const n=new Set(l.map(t=>t.id));return e.filter(t=>n.has(t.field))},Nt=(l,e)=>{const n=new Set(l.map(t=>t.id));return e.filter(t=>n.has(t.field.id))},xt=l=>{const{condition:e,...n}=l;switch(e.type){case"string":return i.jsx(Ql,{condition:e,...n});case"text":return i.jsx(Rl,{condition:e,...n});case"otp":return i.jsx(Hl,{condition:e,...n});case"qr":return i.jsx(Xl,{condition:e,...n});case"url":return i.jsx(ia,{condition:e,...n});case"select":return i.jsx(Yl,{condition:e,...n});case"radio":return i.jsx(Kl,{condition:e,...n});case"checkbox-list":return i.jsx(kl,{condition:e,...n});case"multi-select":return i.jsx(Ul,{condition:e,...n});case"multi-string":return i.jsx(Gl,{condition:e,...n});case"number":return i.jsx(Jl,{condition:e,...n});case"rating":return i.jsx(Zl,{condition:e,...n});case"date":return i.jsx(jl,{condition:e,...n});case"time":return i.jsx(ea,{condition:e,...n});case"pass-fail":return i.jsx(Wl,{condition:e,...n});case"upload":return i.jsx(na,{condition:e,...n});case"boolean":return i.jsx(Pl,{condition:e,...n})}},Ki=l=>Ee[l.type].deserialize(l);function Ts(l){return l.map(Ki)}function aa(l){return l.type==="section"?H.deserialize(l):Ki(l)}const Zi=l=>l.map(aa),It=l=>Ee[l.type].fromConfig(l),sa=l=>l.map(e=>It(e)),ra=l=>l.type==="section"?H.fromConfig(l):It(l),oa=l=>l.map(ra),Mt=l=>Ee[l.type].deserializeConfig(l),da=l=>l.map(Mt),ca=l=>l.type==="section"?H.deserializeConfig(l):Mt(l),ua=l=>l.map(ca),qt=l=>Ee[l.type].serializeConfig(l),ha=l=>l.map(qt),fa=l=>l.type==="section"?H.serializeConfig(l):qt(l),pa=l=>l.map(fa);function Es(l){const e={};for(const n of l)e[n.id]=n;return e}function ga(l,e,n=!0){const t=n?Xi(l,e):e,s={};for(const r of l){if(!(r.id in t))continue;const d=t[r.id];s[r.id]=r.serializeValue(d)}return s}function ma(l,e,n=!0){const t=n?Ot(l,e):e,s={};for(const r of l){if(!(r.id in t))continue;const d=t[r.id];s[r.id]=r.deserializeValue(d)}return s}function Xi(l,e){const n={};for(const t of l){if(!(t.id in e))continue;const s=e[t.id];t.isValue(s)&&(n[t.id]=t.cleanValue(s))}return n}function Ot(l,e){const n={};for(const t of l){if(!(t.id in e))continue;const s=e[t.id];t.isSerializedValue(s)&&(n[t.id]=t.cleanSerializedValue(s))}return n}function Ca(l,e){const n=Xi(l,e),t={},s={};for(const r of l){if(!(r.id in n))continue;const d=n[r.id];switch(r.type){case"upload":if(!r.isValue(d))break;s[r.id]=d,t[r.id]=[];break;case"pass-fail":if(!r.isValue(d))break;s[r.id]=d.files,t[r.id]={...d,files:[]};break;default:t[r.id]=e[r.id]}}return[t,s]}function ya(l,e,n){const t={};for(const s of l){if(!(s.id in e))continue;const r=e[s.id];switch(s.type){case"upload":if(!s.isValue(r))break;t[s.id]=n[s.id]??[];break;case"pass-fail":if(!s.isValue(r))break;t[s.id]={...r,files:n[s.id]??[]};break;default:if(!s.isValue(r))break;t[s.id]=r}}return t}const va=(l,e)=>{const n={};for(const t of l){const s=e[t.id];n[t.id]=s!==void 0?s:t.blankValue()}return n},wa=(l,e,n)=>{const t={};for(const s of l){const r=e[s.id],d=n[s.id];s.areValuesEqual(r,d)||(t[s.id]=d)}return t},Fa=(l,e,n)=>{const t={};for(const s of l){const r=e[s.id],d=n[s.id];s.areValuesEqual(r,d)&&(t[s.id]=d)}return t},Tt=(l,e,n)=>l.every(t=>{const s=e[t.id],r=n[t.id];return t.areValuesEqual(s,r)}),Et=l=>{const e={};for(const n of l)e[n.id]=n.blankValue();return e},za=(l,e)=>Tt(l,e,Et(l)),Ls=X.cva(["flex","flex-col"],{variants:{size:{xs:["gap-2"],sm:["gap-4"],md:["gap-6"],lg:["gap-8"],xl:["gap-10"]}}}),Yi=X.cva(["flex","flex-col"],{variants:{size:{xs:["gap-2"],sm:["gap-4"],md:["gap-6"],lg:["gap-8"],xl:["gap-10"]}}}),Va=o.memo(l=>{const{fieldSection:e}=l,{label:n,description:t}=e,s=Y.useWatch(),{fieldSchema:r,size:d}=o.use(B),f=o.useMemo(()=>r.getFieldSections(),[r]),h=o.useMemo(()=>f.findIndex(({id:g})=>g===e.id),[f,e.id]),u=o.useMemo(()=>f.filter(g=>e.id in g.conditions),[f,e.id]),p=o.useMemo(()=>u.length===0?!0:u.some(g=>{const C=g.getConditions(e.id);return new Oi(C).applyConditions(s)}),[u,e,s]),m=wi(e.fields);return p?i.jsxs(i.Fragment,{children:[h!==0?i.jsx(a.Separator,{size:"full"}):null,i.jsxs("div",{className:"flex flex-col gap-4",children:[(n||t)&&i.jsx(i.Fragment,{children:i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(a.Heading,{size:d,children:n}),t&&i.jsx(a.Text,{accentColor:"base",size:d,children:t})]})}),i.jsx("div",{className:Yi({size:d}),children:m})]})]}):null});Va.displayName="FieldSectionLayout";class H extends ze{type="section";label;description;conditions;fields=[];constructor(e){const{label:n,description:t,fields:s,conditions:r={},...d}=e;super(d),this.label=n,this.description=t,this.fields=this.initFields(s),this.conditions=this.initConditions(r)}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,n])=>[e,n.map(t=>t.serialize())]))}}static deserialize=e=>{const n=e.fields.map(Ki),t={};for(const[s,r]of Object.entries(e.conditions??{}))t[s]=Wi(n,r);return new H({...e,fields:n,conditions:t})};static fromConfig=e=>{const n=sa(e.fields),t={};for(const[s,r]of Object.entries(e.conditions??{}))t[s]=Wi(n,r);return new H({...e,fields:n,conditions:t})};static deserializeConfig(e){const{label:n,description:t,fields:s,conditions:r,...d}=e;return{...ze._deserializeConfig(d),label:n,description:t,fields:da(s),conditions:r}}static serializeConfig(e){const{label:n,description:t,fields:s,conditions:r,...d}=e;return{...ze._serializeConfig(d),label:n,description:t,fields:ha(s),conditions:r}}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,n])=>[e,n.map(t=>t.serialize())]))}}getOptions(){return{...super.getOptions(),label:this.label,description:this.description,fields:this.fields,conditions:this.conditions}}duplicate(e){return new H({...this.getOptions(),id:e,fields:this.fields.map(n=>n.duplicate(S.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 n={};for(const t of this.fields){const s=t.getError(e[t.id]);s&&(n[t.id]=s)}return n}fieldObserver=()=>{this.notify(this)};initFields=e=>{for(const n of e)n.observe(this.fieldObserver);return e};getFields(){return this.fields}addField(e,n){const t=[...this.fields];t.splice(n??this.fields.length,0,e),this.fields=this.initFields(t),this.notify(this)}moveField(e,n){const t=[...this.fields],[s]=t.splice(e,1);t.splice(n,0,s),this.fields=t,this.notify(this)}removeField(e){this.fields=this.initFields(this.fields.filter(({id:t})=>t!==e.id));const n={};for(const[t,s]of Object.entries(this.conditions))n[t]=s.filter(r=>r.field.id!==e.id);this.conditions=n,this.notify(this)}conditionObserver=()=>{this.notify(this)};initConditions=e=>{for(const n of Object.values(e).flat())n.observe(this.conditionObserver);return e};getConditions(e){return this.conditions[e]}addCondition(e,n){this.conditions=this.initConditions({...this.conditions,[e]:[...this.conditions[e]??[],n]}),this.notify(this)}addConditions(e,n){this.conditions=this.initConditions({...this.conditions,[e]:[...this.conditions[e]??[],...n]}),this.notify(this)}replaceCondition(e,n,t){this.conditions=this.initConditions({...this.conditions,[e]:(this.conditions[e]??[]).map(s=>s.id===n.id?t:s)}),this.notify(this)}removeCondition(e,n){this.conditions=this.initConditions({...this.conditions,[e]:(this.conditions[e]??[]).filter(t=>t.id!==n.id)}),this.notify(this)}removeConditions(e,n){const t=new Set(n.map(s=>s.id));this.conditions=this.initConditions({...this.conditions,[e]:(this.conditions[e]??[]).filter(s=>!t.has(s.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 n={...this.conditions};delete n[e],this.conditions=this.initConditions(n),this.notify(this)}render(){return i.jsx(Va,{fieldSection:this})}}const ae=o.createContext({}),Qi=o.memo(l=>{const{children:e,variant:n,size:t,accentColor:s,onSelectFieldType:r,...d}=l,f=o.useMemo(()=>{const h={[O.Assessment]:[],[O.Capture]:[],[O.Numeric]:[],[O.Selection]:[],[O.Temporal]:[],[O.Text]:[],[O.Verification]:[]};for(const u of Ll){const{group:p}=L[u];h[p].push(u)}return h},[]);return i.jsxs(a.Menu.Root,{...d,children:[i.jsx(a.Menu.ClickTrigger,{children:e}),i.jsx(a.Menu.Content,{variant:n,size:t,accentColor:s,children:i.jsx(a.Menu.Scroll,{children:Object.entries(f).map(([h,u])=>{const{name:p}=Bl[h];return u.length===0?null:i.jsxs(a.Menu.Group,{children:[i.jsx(a.Menu.Label,{children:p}),u.map(m=>i.jsx(Sa,{fieldType:m,onSelectFieldType:r},m))]},h)})})})]})});Qi.displayName="CreateFieldDropdownMenu";const Sa=o.memo(l=>{const{fieldType:e,onSelectFieldType:n}=l,t=o.useCallback(()=>{n(e)},[e,n]),{icon:s,name:r}=L[e];return i.jsxs(a.Menu.Item,{onSelect:t,children:[i.jsx(a.LuIcon,{icon:s}),i.jsx(a.Text,{className:"truncate",children:r})]})});Sa.displayName="CreateFieldDropdownMenuItem";const Ri=l=>{switch(l){case"text":return new Ce({label:"",required:!1,id:S.v4()});case"boolean":return new de({label:"",required:!1,id:S.v4()});case"number":return new G({label:"",required:!1,id:S.v4()});case"date":return new be({label:"",required:!1,id:S.v4()});case"time":return new Ie({label:"",required:!1,id:S.v4()});case"string":return new me({label:"",required:!1,id:S.v4()});case"url":return new Me({label:"",required:!1,id:S.v4()});case"select":return new ge({label:"",options:[],required:!1,id:S.v4()});case"multi-string":return new re({label:"",required:!1,id:S.v4()});case"multi-select":return new te({label:"",options:[],required:!1,id:S.v4()});case"upload":return new we({label:"",required:!1,id:S.v4()});case"qr":return new xe({label:"",required:!1,id:S.v4()});case"radio":return new fe({label:"",options:[],required:!1,id:S.v4()});case"checkbox-list":return new ie({label:"",options:[],required:!1,id:S.v4()});case"pass-fail":return new he({label:"",required:!1,id:S.v4(),showNotesAndFilesOn:["fail"]});case"otp":return new ce({label:"",required:!1,id:S.v4(),length:6});case"rating":return new pe({label:"",required:!1,id:S.v4(),maxRating:5})}},ui=l=>{switch(l.type){case"text":return new Ke({id:S.v4(),value:"",field:l});case"boolean":return new Be({id:S.v4(),value:!0,field:l});case"number":return new Pe({id:S.v4(),value:0,field:l});case"date":return new De({id:S.v4(),value:new Date,field:l});case"time":return new Ze({id:S.v4(),value:ye(0,0),field:l});case"string":return new We({id:S.v4(),value:"",field:l});case"url":return new Ye({id:S.v4(),value:"",field:l});case"select":return new He({id:S.v4(),value:"",field:l});case"multi-string":return new $e({id:S.v4(),value:[],field:l});case"multi-select":return new _e({id:S.v4(),value:[],field:l});case"upload":return new Xe({id:S.v4(),value:!0,field:l});case"qr":return new Je({id:S.v4(),value:"",field:l});case"radio":return new Ue({id:S.v4(),value:"",field:l});case"checkbox-list":return new Ae({id:S.v4(),value:[],field:l});case"pass-fail":return new je({id:S.v4(),value:"pass",field:l});case"otp":return new ke({id:S.v4(),value:"",field:l});case"rating":return new Ge({id:S.v4(),value:0,field:l})}},ba=(l,e)=>{switch(l){case"checkbox-list":return ie.getFieldCreationSchema(e);case"multi-select":return te.getFieldCreationSchema(e);case"number":return G.getFieldCreationSchema(e);case"radio":return fe.getFieldCreationSchema(e);case"select":return ge.getFieldCreationSchema(e);case"string":return me.getFieldCreationSchema(e);case"text":return Ce.getFieldCreationSchema(e);case"upload":return we.getFieldCreationSchema(e);case"pass-fail":return he.getFieldCreationSchema(e);case"otp":return ce.getFieldCreationSchema(e);case"rating":return pe.getFieldCreationSchema(e);default:return}},Na=o.memo(l=>{const{popoverInputs:e,...n}=l;return i.jsxs(a.Popover.Root,{children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:i.jsxs(a.Button,{variant:"soft",type:"button",size:"sm",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:ys}),"Settings"]})}),i.jsx(a.Popover.Content,{size:"sm",...n,children:i.jsx("div",{className:X.cx("flex w-full max-w-[350px] flex-col",Yi({size:"sm"})),children:e})})]})});Na.displayName="FieldSettingsPopover";const xa=o.memo(l=>{const{parentPath:e,fieldIndex:n,field:t}=l,s=vi(),{disableRequiredFields:r}=o.use(ae),[d,f]=o.useState(void 0);pi.useActiveEffect(V=>{f(void 0);const N=t.image;if(N){if(!(N instanceof Promise)){f(N);return}N.then(I=>{V()&&f(I)})}},[t.image]);const h=o.useCallback(()=>{t.setOptions({image:void 0})},[t]),[u,p]=o.useMemo(()=>{const V=[],N=[],I=ba(t.type,`${e}.${n}`)??[];for(const T of I)T.showDirectly?V.push(T.field):N.push(T.field);return[V,N]},[t,e,n]),m=wi(u),g=wi(p),C=p.length>0,v=o.useCallback(()=>{d&&s(()=>({file:d}))},[s,d]),w=o.useCallback(V=>{t.setOptions({required:!!V})},[t]),z=o.useCallback(V=>{t.setOptions({label:V.target.value})},[t]),F=o.useCallback(V=>{t.setOptions({description:V.target.value})},[t]),{icon:q,name:x}=L[t.type];return i.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[i.jsxs("div",{className:"flex w-full justify-between gap-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs(a.Badge,{accentColor:"base",variant:"soft",size:"sm",children:[i.jsx(a.LuIcon,{icon:q}),x]}),!r&&i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(a.Checkbox.Root,{checked:t.required,onCheckedChange:w,size:"sm",children:i.jsx(a.Checkbox.Indicator,{children:i.jsx(a.LuIcon,{icon:J})})}),i.jsx(a.Text,{size:"sm",accentColor:"base",children:"Required"})]})]}),C&&i.jsx(Na,{popoverInputs:g,align:"end"})]}),d&&i.jsxs("div",{className:"group relative inline-block w-full min-w-[300px]",children:[i.jsx(Ve,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:d,onClick:v}),i.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:h,size:"sm",children:i.jsx(a.LuIcon,{icon:se})})]}),i.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[i.jsx(a.Input.Root,{variant:"outline",size:"md",children:i.jsx(a.Input.Field,{placeholder:"Enter your question",value:t.label??"",onChange:z,maxLength:200})}),i.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a field description (optional)",value:t.description??"",onChange:F,maxLength:1e3,resize:"vertical",size:"md"})]}),u.length>0&&i.jsx("div",{className:X.cx("w-full",Yi({size:"sm"})),children:m})]})});xa.displayName="FieldBuilder";const Lt=o.memo(l=>{const{field:e,fieldSection:n,fieldIndex:t,sectionIndex:s}=l,r=o.useRef(null),d=`fields.${s}.fields`,f=o.useCallback(w=>{n.addField(Ri(w),t+1)},[t,n]),h=o.useCallback(()=>{n.addField(e.duplicate(S.v4()))},[e,n]),u=o.useCallback(w=>{const z=w==="up"?s-1:s+1;n.moveField(t,z)},[n,t,s]),p=o.useCallback(w=>{const{files:z}=w.target;if(!z||z.length!==1)return;const F=z.item(0);F&&e.setOptions({image:F})},[e]),m=o.useCallback(()=>{u("up")},[u]),g=o.useCallback(()=>{u("down")},[u]),C=o.useCallback(()=>{r.current?.click()},[]),v=o.useCallback(()=>{n.removeField(e)},[e,n]);return i.jsxs(a.Card,{className:"flex w-full items-center justify-between gap-4",size:"sm",children:[i.jsx(xa,{fieldIndex:t,field:e,parentPath:d}),i.jsxs(a.ButtonGroup,{className:"flex flex-col gap-0.5",variant:"ghost",accentColor:"base",size:"sm",children:[i.jsx(Qi,{onSelectFieldType:f,size:"sm",children:i.jsx(a.IconButton,{type:"button",children:i.jsx(a.LuIcon,{icon:Q})})}),i.jsx(a.IconButton,{type:"button",onClick:m,children:i.jsx(a.LuIcon,{icon:yi})}),i.jsx(a.IconButton,{type:"button",onClick:g,children:i.jsx(a.LuIcon,{icon:Xt})}),i.jsx(a.IconButton,{type:"button",onClick:h,children:i.jsx(a.LuIcon,{icon:it})}),i.jsx(a.IconButton,{type:"button",onClick:C,children:i.jsx(a.LuIcon,{icon:Kt})}),i.jsx(a.IconButton,{type:"button",onClick:v,children:i.jsx(a.LuIcon,{icon:se})})]}),i.jsx("input",{className:"hidden",ref:r,type:"file",accept:"image/*",onChange:p})]})});Lt.displayName="FieldBuilderWithActions";const Bt=o.memo(l=>{const{children:e,variant:n,size:t,accentColor:s,fields:r,onSelectField:d,onSelectAllFields:f,...h}=l,u=o.useCallback(()=>{f?.(r)},[f,r]);return i.jsxs(a.Menu.Root,{...h,children:[i.jsx(a.Menu.ClickTrigger,{children:e}),i.jsx(a.Menu.Content,{variant:n,size:t,accentColor:s,children:i.jsxs(a.Menu.Scroll,{children:[f?i.jsx(a.Menu.Item,{onSelect:u,children:"Select all"}):null,r.map(p=>i.jsx(Ia,{field:p,onSelectField:d},p.id))]})})]})});Bt.displayName="FieldDropdownMenu";const Ia=o.memo(l=>{const{field:e,onSelectField:n}=l,t=o.useCallback(()=>{n(e)},[e,n]);return i.jsxs(a.Menu.Item,{onSelect:t,children:[i.jsx(a.LuIcon,{icon:L[e.type].icon}),e.label||_]})});Ia.displayName="FieldDropdownMenuItem";const Ma=o.memo(l=>{const{children:e,variant:n,size:t,accentColor:s,fieldSections:r,onSelectFieldSection:d,...f}=l;return i.jsxs(a.Menu.Root,{...f,children:[i.jsx(a.Menu.ClickTrigger,{children:e}),i.jsx(a.Menu.Content,{variant:n,size:t,accentColor:s,children:r.map(h=>i.jsx(qa,{fieldSection:h,onSelectFieldSection:d},h.id))})]})});Ma.displayName="FieldSectionDropdownMenu";const qa=o.memo(l=>{const{fieldSection:e,onSelectFieldSection:n}=l,t=o.useCallback(()=>{n(e)},[e,n]);return i.jsxs(a.Menu.Item,{onSelect:t,children:[i.jsx(a.LuIcon,{icon:Zt}),e.label||xi]})});qa.displayName="FieldSectionDropdownMenuItem";const Oa=o.memo(l=>{const{id:e,sourceX:n,sourceY:t,targetX:s,targetY:r,style:d,markerEnd:f,data:h}=l,{targetSection:u,sourceSection:p,layoutDirection:m}=h,g=o.useMemo(()=>p.getConditions(u.id),[p,u.id]),C=o.useCallback(()=>{p.removeConditional(u.id)},[p,u.id]),v=o.useCallback(N=>{p.addCondition(u.id,ui(N))},[p,u.id]),w=o.useCallback(N=>{p.addConditions(u.id,N.map(ui))},[p,u.id]),z=o.useCallback((N,I)=>{p.replaceCondition(u.id,N,I)},[p,u.id]),F=o.useCallback(N=>{p.removeCondition(u.id,N)},[p,u.id]),[q,x,V]=E.getBezierPath({sourceX:n,sourceY:t,sourcePosition:m==="LR"?E.Position.Right:E.Position.Bottom,targetX:s,targetY:r,targetPosition:m==="LR"?E.Position.Left:E.Position.Top});return i.jsxs(i.Fragment,{children:[i.jsx(E.BaseEdge,{id:e,path:q,style:d,markerEnd:f,labelX:x,labelY:V}),i.jsx(E.EdgeLabelRenderer,{children:i.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, ${V}px)`},children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(a.Text,{size:"xs",className:"max-w-[280px] truncate",children:p.label||xi}),i.jsxs("div",{className:"ml-auto flex items-center gap-1",children:[i.jsx(Bt,{size:"sm",fields:p.fields,onSelectField:v,onSelectAllFields:w,children:i.jsx(a.IconButton,{"aria-label":"Add condition",type:"button",variant:"surface",size:"xs",accentColor:"base",children:i.jsx(a.LuIcon,{icon:Q})})}),i.jsxs(a.Tooltip.Root,{children:[i.jsx(a.Tooltip.Trigger,{asChild:!0,children:i.jsx(a.IconButton,{"aria-label":"Remove conditional logic",type:"button",variant:"surface",size:"xs",accentColor:"base",color:"danger",onClick:C,children:i.jsx(a.LuIcon,{icon:se})})}),i.jsx(a.Tooltip.Content,{size:"sm",children:"Remove conditional logic"})]})]})]}),g.length>0&&i.jsx("div",{className:"flex h-max w-full flex-col flex-wrap gap-1",children:g.map(N=>i.jsx(xt,{condition:N,onRemove:F,onReplace:z},N.id))})]})})]})});Oa.displayName="FieldSectionConditionEdgeComponent";const Ta=o.memo(l=>{const{data:e,selected:n}=l,{fieldSection:t,index:s,layoutDirection:r}=e,{fieldSchema:d}=o.use(ae),f=o.useCallback(()=>{d.removeFieldSection(t)},[d,t]),h=o.useCallback(C=>{t.addField(Ri(C))},[t]),u=o.useCallback(()=>{const C=new H({id:S.v4(),fields:[]});d.addFieldSection(C),t.addConditional(C.id)},[d,t]),p=o.useCallback(()=>{d.addFieldSection(t.duplicate(S.v4()))},[d,t]),m=o.useCallback(C=>{t.setOptions({label:C.target.value})},[t]),g=o.useCallback(C=>{t.setOptions({description:C.target.value})},[t]);return i.jsxs(a.Card,{variant:"surface",className:"bg-(--base-2) relative cursor-pointer",size:"sm","data-selected":n?"true":void 0,children:[i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[i.jsx(a.Input.Root,{variant:"outline",size:"md",accentColor:"base",children:i.jsx(a.Input.Field,{placeholder:"Enter a section label (optional)",value:t.label??"",onChange:m,maxLength:200})}),i.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a section description (optional)",value:t.description??"",onChange:g,maxLength:1e3,resize:"vertical",size:"md"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(a.Text,{weight:"bold",children:"Fields"}),i.jsx(Qi,{onSelectFieldType:h,size:"sm",children:i.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:Q})," Add field"]})})]}),i.jsx("div",{className:"flex flex-col gap-3",children:t.fields.map((C,v)=>i.jsx(Lt,{field:C,fieldSection:t,fieldIndex:v,sectionIndex:s},C.id))})]}),i.jsx(E.NodeToolbar,{isVisible:!0,position:E.Position.Right,align:"start",offset:8,onMouseDown:a.stopPropagation,children:i.jsx(a.Card,{variant:"surface",className:"bg-(--base-2) flex flex-col items-center gap-1 p-1",size:"xs",onClick:a.stopPropagation,children:i.jsxs(a.ButtonGroup,{className:"flex flex-col gap-2",variant:"surface",size:"xs",accentColor:"base",children:[i.jsx(a.IconButton,{type:"button",onClick:u,children:i.jsx(a.LuIcon,{icon:ds})}),i.jsx(a.IconButton,{type:"button",onClick:p,children:i.jsx(a.LuIcon,{icon:it})}),i.jsx(a.IconButton,{type:"button",onClick:f,children:i.jsx(a.LuIcon,{icon:se})})]})})}),i.jsx(E.Handle,{type:"target",className:"size-4! bg-(--base-3)! border-(--base-7)!",position:r==="LR"?E.Position.Left:E.Position.Top}),i.jsx(E.Handle,{type:"source",className:"size-4! bg-(--base-3)! border-(--base-7)!",position:r==="LR"?E.Position.Right:E.Position.Bottom})]})});Ta.displayName="CustomNode";const Bs={fieldSection:Ta},As={fieldSectionCondition:Oa},Ds=(l,e,n)=>{const t=new _t.graphlib.Graph().setDefaultEdgeLabel(()=>({}));return t.setGraph({rankdir:n,nodesep:200,edgesep:500,ranksep:500}),e.forEach(s=>t.setEdge(s.source,s.target,{width:500,height:200,labelpos:"c"})),l.forEach(s=>t.setNode(s.id,{...s,width:s.measured?.width??0,height:s.measured?.height??0})),_t.layout(t),[l.map(s=>{const r=t.node(s.id),d=r.x-(s.measured?.width??0)/2,f=r.y-(s.measured?.height??0)/2;return{...s,position:{x:d,y:f}}}),e]},_s={hideAttribution:!0},Ea=o.memo(()=>{const{errors:l}=Y.useFormState(),{handleSubmit:e}=Y.useFormContext(),{onSave:n,onCancel:t}=o.use(ae),{fieldSchema:s}=o.use(ae),r=o.useRef(null),[d,f]=o.useState(),[h,u]=o.useState("TB");o.useLayoutEffect(()=>{r.current&&r.current.classList.remove("light")},[]);const p=o.useMemo(()=>s.fieldSections.map(($,K)=>({id:$.id,position:{x:0,y:0},data:{index:K,fieldSection:$,layoutDirection:h},draggable:!0,type:"fieldSection"})),[s.fieldSections,h]),m=o.useMemo(()=>{const $=[],K={};for(const Z of s.fieldSections)K[Z.id]=Z;for(const Z of s.fieldSections){const hi=Z.conditions;for(const[fi,Gs]of Object.entries(hi))$.push({id:`${Z.id}-${fi}`,source:Z.id,target:fi,data:{targetSection:K[fi],sourceSection:Z,layoutDirection:h},animated:Gs.length>0,markerEnd:E.MarkerType.Arrow,style:{strokeWidth:2,stroke:"var(--base-a8)"},type:"fieldSectionCondition"})}return $},[s.fieldSections,h]),[g,C,v]=E.useNodesState(p),[w,z,F]=E.useEdgesState(m);o.useEffect(()=>{C(p)},[p,C]),o.useEffect(()=>{z(m)},[m,z]);const[q,x]=o.useMemo(()=>Ds(g,w,h),[w,h,g]),V=o.useCallback(()=>{s.addFieldSection(new H({id:S.v4(),fields:[]}))},[s]),N=o.useCallback($=>{const{source:K,target:Z}=$,hi=s.fieldSections.find(({id:fi})=>fi===K);hi.setOptions({conditions:{...hi.conditions,[Z]:[]}})},[s.fieldSections]),I=o.useCallback($=>{const K=s.getSectionDependencyGraph();return!Dt.willCreateCycle(K,$.source,$.target)},[s]),T=o.useCallback(()=>{d?.zoomOut()},[d]),A=o.useCallback(()=>{d?.zoomIn()},[d]),W=o.useCallback(()=>{d?.fitView()},[d]);return i.jsxs("form",{className:"flex size-full flex-col gap-4",onSubmit:e(n),children:[i.jsxs(a.Card,{className:"relative size-full",variant:"outline",children:[i.jsx(E.ReactFlow,{ref:r,onInit:f,nodes:q,onNodesChange:v,edges:x,onEdgesChange:F,nodeTypes:Bs,edgeTypes:As,onConnect:N,attributionPosition:"bottom-left",fitView:!0,minZoom:0,isValidConnection:I,proOptions:_s}),i.jsx(E.Panel,{position:"top-left",children:i.jsx(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:i.jsxs(a.Button,{type:"button",variant:"surface",onClick:V,children:[i.jsx(a.LuIcon,{icon:Q})," Add section"]})})}),i.jsxs(E.Panel,{position:"top-right",className:"flex flex-col items-center gap-2",children:[i.jsxs(a.ToggleGroup.Root,{className:"flex flex-col",type:"single",accentColor:"base",size:"sm",value:h,onValueChange:u,children:[i.jsx(a.ToggleGroup.IconItem,{className:"rounded-b-none",value:"LR",type:"button",children:i.jsx(a.LuIcon,{icon:Ra})}),i.jsx(a.ToggleGroup.IconItem,{className:"rounded-t-none",value:"TB",type:"button",children:i.jsx(a.LuIcon,{icon:Qa})})]}),i.jsx(a.Separator,{size:"sm"}),i.jsxs(a.ButtonGroup,{className:"flex flex-col",size:"sm",accentColor:"base",variant:"soft",children:[i.jsx(a.IconButton,{className:"rounded-b-none",onClick:A,type:"button",children:i.jsx(a.LuIcon,{icon:Q})}),i.jsx(a.IconButton,{onClick:T,radius:"none",type:"button",children:i.jsx(a.LuIcon,{icon:Ci})}),i.jsx(a.IconButton,{className:"rounded-t-none",onClick:W,type:"button",children:i.jsx(a.LuIcon,{icon:ws})})]})]}),i.jsx(E.Panel,{position:"bottom-right",children:i.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:[t&&i.jsx(a.Button,{type:"button",variant:"soft",accentColor:"base",onClick:t,children:"Cancel"}),i.jsx(a.Button,{type:"submit",variant:"surface",children:"Save"})]})})]}),!!l.fields?.message&&i.jsx(a.Text,{size:"xs",accentColor:"danger",children:l.fields.message})]})});Ea.displayName="FormBuilderFlowBuilder";const $s=(l,e,n={})=>{const{conditions:t=!1}=n,s=l.get(e.id);if(!s)throw new Error(`Attempting to reseed serialized section with id ${e.id} which is not present in the reseeded id map`);const r=new Map,d=e.fields.map(h=>{const u=S.v4();return r.set(h.id,u),{...h,id:u}}),f={};if(t)for(const[h,u]of Object.entries(e.conditions??{})){const p=l.get(h);if(!p)continue;const m=u.map(g=>{const C=r.get(g.field);if(!C)throw new Error(`Serialized condition referencing undefined field with id: ${g.field}`);return{...g,field:C}});f[p]=m}return{...e,id:s,conditions:f,fields:d}},Ps=(l,e={})=>{const n=new Map(l.map(t=>[t.id,S.v4()]));return l.map(t=>$s(n,t,e))},At=(l,e)=>{const n={},t=l.filter(s=>s instanceof H);for(const s of l)if(s instanceof H){const r=t.filter(f=>s.id in f.conditions);if(r.length>0&&!r.some(f=>{const h=f.getConditions(s.id);return new Oi(h).applyConditions(e)}))continue;const d=s.getErrors(e);Object.assign(n,d)}else{if(!(s instanceof M))throw new Error("Invalid field type");const r=s.id,d=s.getError(Pt(e,r));d&&Ja(n,r,d)}return n},ks=async l=>{const e={};for(const n of l){const{fields:t}=n;for(const s of t)if(s.image)if(s.image instanceof Promise)try{e[s.id]=await s.image}catch(r){console.error("Failed to get image from promise",r)}else e[s.id]=s.image}return e};async function js(l){const e={};for(const[n,t]of Object.entries(l))e[n]=await Promise.all(t);return e}class Fe extends Re{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 Fe(Zi(e))}static fromConfig(e){return new Fe(oa(e))}static serializeConfig(e){return pa(e)}static deserializeConfig(e){return ua(e)}static reseedFieldSections(e,n){return Ps(e,n)}fieldObserver=()=>{this.notify(this)};initFields=e=>{for(const n of e)n.observe(this.fieldObserver);return e};getFields(){return this.fieldSections.flatMap(e=>e.getFields())}getFieldSections(){return this.fieldSections}addFieldSection(e,n){const t=[...this.fieldSections];t.splice(n??this.fieldSections.length,0,e),this.fieldSections=this.initFields(t),this.notify(this)}removeFieldSection(e){const n=this.fieldSections.filter(t=>t.id!==e.id);for(const t of n)t.removeConditional(e.id);this.fieldSections=this.initFields(n),this.notify(this)}moveFieldSection(e,n){const t=[...this.fieldSections],[s]=t.splice(e,1);t.splice(n,0,s),this.fieldSections=this.initFields(t),this.notify(this)}getSectionDependencyGraph(){const e=new Ua.DirectedGraph({type:"directed"});for(const n of this.fieldSections)for(const t of Object.keys(n.conditions))e.mergeEdge(n.id,t);return e}getDependenciesOfSection(e){const n=this.getSectionDependencyGraph(),t=new Map(this.fieldSections.map(r=>[r.id,r])),s=[];return Ga.bfsFromNode(n,e,(r,d,f)=>{s.push(t.get(r))},{mode:"in"}),s}cleanValues(e){return Xi(this.getFields(),e)}cleanSerializedValues(e){return Ot(this.getFields(),e)}deserializeValues(e,n){return ma(this.getFields(),e,n)}serializeValues(e,n){return ga(this.getFields(),e,n)}initializeValues(e){return va(this.getFields(),e)}validateValues(e){return At(this.getFieldSections(),e)}areValuesValid(e){return Object.keys(this.validateValues(e)).length===0}deserializeConditions(e){return Wi(this.getFields(),e)}cleanConditions(e){return Nt(this.getFields(),e)}serializeConditions(e){return la(this.getFields(),e)}cleanSerializedConditions(e){return bt(this.getFields(),e)}changedFieldValues(e,n){return wa(this.getFields(),e,n)}unchangedFieldValues(e,n){return Fa(this.getFields(),e,n)}areValuesEqual(e,n){return Tt(this.getFields(),e,n)}areValuesBlank(e){return za(this.getFields(),e)}blankValues(){return Et(this.getFields())}extractFilesAndPromisesFromFieldValues(e){return Ca(this.getFields(),e)}insertFilesAndPromisesToFieldValues(e,n){return ya(this.getFields(),e,n)}}const La=o.memo(l=>{const{sourceFieldSection:e,targetFieldSection:n}=l,t=o.useMemo(()=>e.getConditions(n.id),[e,n.id]),s=o.useCallback(()=>{e.removeConditional(n.id)},[e,n.id]),r=o.useCallback(u=>{e.addCondition(n.id,ui(u))},[e,n.id]),d=o.useCallback(u=>{e.addConditions(n.id,u.map(ui))},[e,n.id]),f=o.useCallback((u,p)=>{e.replaceCondition(n.id,u,p)},[e,n.id]),h=o.useCallback(u=>{e.removeCondition(n.id,u)},[e,n.id]);return i.jsxs(a.Card,{className:"flex flex-col gap-2",size:"sm",children:[i.jsxs(a.ButtonGroup,{className:"flex justify-between gap-2",size:"sm",accentColor:"base",variant:"soft",children:[i.jsxs(a.Badge,{accentColor:"base",variant:"soft",size:"sm",children:[i.jsx(a.LuIcon,{icon:Zt}),e.label??xi]}),i.jsx(a.IconButton,{type:"button",onClick:s,variant:"ghost",children:i.jsx(a.LuIcon,{icon:se})})]}),i.jsxs("div",{className:"flex h-max w-full flex-wrap gap-2",children:[t.map(u=>i.jsx(xt,{condition:u,onRemove:h,onReplace:f},u.id)),i.jsx(Bt,{fields:e.fields,onSelectField:r,onSelectAllFields:d,align:"start",size:"sm",children:i.jsx(a.IconButton,{type:"button",size:"sm",variant:"soft",accentColor:"base",children:i.jsx(a.LuIcon,{icon:Q})})})]})]})});La.displayName="FieldSectionConditionalItem";const Ba=o.memo(l=>{const{fieldSection:e}=l,{fieldSchema:n}=o.use(ae),t=o.useMemo(()=>n.fieldSections.filter(h=>e.id in h.conditions),[n.fieldSections,e.id]),s=o.useCallback(h=>{h.addConditional(e.id)},[e.id]),r=o.useCallback(h=>{e.setOptions({label:h.target.value})},[e]),d=o.useCallback(h=>{e.setOptions({description:h.target.value})},[e]),f=o.useMemo(()=>{const h=n.getSectionDependencyGraph();return n.fieldSections.filter(u=>!Dt.willCreateCycle(h,u.id,e.id))},[e.id,n]);return i.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[i.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[i.jsx(a.Input.Root,{variant:"outline",size:"md",children:i.jsx(a.Input.Field,{placeholder:"Enter a section label (optional)",value:e.label??"",onChange:r,maxLength:200})}),i.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a section description (optional)",value:e.description??"",onChange:d,maxLength:1e3,resize:"vertical",size:"md"})]}),i.jsx(a.Separator,{size:"full"}),i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsxs("div",{className:"flex justify-between gap-2",children:[i.jsx(a.Text,{accentColor:"base",children:"Conditions"}),i.jsx(Ma,{fieldSections:f,onSelectFieldSection:s,size:"sm",children:i.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",className:"w-max",children:[i.jsx(a.LuIcon,{icon:Q}),"Add condition"]})})]}),t.map(h=>i.jsx(La,{sourceFieldSection:h,targetFieldSection:e},h.id))]}),i.jsx(a.Separator,{size:"full"})]})});Ba.displayName="FieldSectionBuilder";const Aa=o.memo(l=>{const{fieldSection:e,sectionIndex:n}=l,{fieldSchema:t}=o.use(ae),s=a.useAlertDialog(),r=o.useCallback(()=>{t.removeFieldSection(e)},[t,e]),d=o.useCallback(w=>{const z=w==="up"?n-1:n+1;t.moveFieldSection(n,z)},[t,n]),f=o.useCallback(()=>{t.addFieldSection(e.duplicate(S.v4()))},[t,e]),h=o.useCallback(w=>{e.addField(Ri(w))},[e]),u=o.useCallback(()=>{d("up")},[d]),p=o.useCallback(()=>{d("down")},[d]),m=o.useCallback(async()=>{const w=[e.serialize()],z=Fe.reseedFieldSections(w,{conditions:!1}),F=JSON.stringify(z);await navigator.clipboard.writeText(F),a.toast.success({title:"Section copied"})},[e]),g=o.useCallback(async()=>{const z=t.getDependenciesOfSection(e.id).map(x=>x.serialize()),F=Fe.reseedFieldSections(z,{conditions:!0}),q=JSON.stringify(F);await navigator.clipboard.writeText(q),a.toast.success({title:"Section copied"})},[e,t]),C=o.useCallback(async()=>{const w=t.getDependenciesOfSection(e.id),z=w.length>1,F=w.length-1;z?s({title:"Copy section dependencies?",description:`This section has ${F} dependent section${F>1?"s":""} that will also be copied to maintain the conditions. Do you want to include these dependencies?`,action:"Include",onAction:g,cancel:"Dont include",onCancel:m}):m()},[e,t,s,g,m]),v=o.useCallback(async()=>{let w="";try{w=await navigator.clipboard.readText()}catch{a.toast.error({title:"Paste failed",description:"Unable to read clipboard contents."});return}const z=w.trim();if(!z){a.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}try{const F=JSON.parse(z),q=$t.JSONFieldSectionSchema.array().parse(F),x=Zi(q);if(x.length===0){a.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}for(const[V,N]of x.entries())t.addFieldSection(N,n+1+V);a.toast.success({title:"Sections pasted",description:"Serialized JSON imported successfully."})}catch(F){console.error(F),a.toast.error({title:"Invalid JSON",description:"Check the JSON and try again."})}},[t,n]);return i.jsxs(a.Card,{variant:"outline",className:"flex w-full items-center justify-between gap-4",size:"sm",children:[i.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[i.jsx(Ba,{fieldSection:e}),i.jsxs("div",{className:"flex w-full flex-col gap-2",children:[i.jsxs("div",{className:"flex justify-between gap-2",children:[i.jsx(a.Text,{accentColor:"base",size:"md",children:"Fields"}),i.jsx(Qi,{onSelectFieldType:h,size:"sm",children:i.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",children:[i.jsx(a.LuIcon,{icon:Q})," Add field"]})})]}),e.fields.map((w,z)=>i.jsx(Lt,{field:w,fieldSection:e,fieldIndex:z,sectionIndex:n},w.id))]})]}),i.jsxs(a.ButtonGroup,{className:"flex flex-col gap-0.5",variant:"ghost",accentColor:"base",size:"sm",children:[i.jsx(a.IconButton,{type:"button",onClick:u,children:i.jsx(a.LuIcon,{icon:yi})}),i.jsx(a.IconButton,{type:"button",onClick:p,children:i.jsx(a.LuIcon,{icon:Xt})}),i.jsxs(a.Menu.Root,{align:"end",children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.IconButton,{type:"button",children:i.jsx(a.LuIcon,{icon:Wt})})}),i.jsxs(a.Menu.Content,{size:"sm",children:[i.jsxs(a.Menu.Item,{onSelect:f,children:[i.jsx(a.LuIcon,{icon:it}),"Duplicate section"]}),i.jsxs(a.Menu.Item,{onSelect:C,children:[i.jsx(a.LuIcon,{icon:Jt}),"Copy JSON"]}),i.jsxs(a.Menu.Item,{onSelect:v,children:[i.jsx(a.LuIcon,{icon:Ht}),"Paste JSON"]}),i.jsxs(a.Menu.Item,{onSelect:r,children:[i.jsx(a.LuIcon,{icon:se}),"Delete section"]})]})]})]})]})});Aa.displayName="FieldSectionWithActions";const Da=o.memo(()=>{const{handleSubmit:l}=Y.useFormContext(),{errors:e}=Y.useFormState(),{onSave:n,onCancel:t}=o.use(ae),{fieldSchema:s}=o.use(ae),r=o.useCallback(()=>{s.addFieldSection(new H({id:S.v4(),fields:[]}))},[s]),d=o.useCallback(async()=>{try{const h=s.serialize(),u=Fe.reseedFieldSections(h,{conditions:!0}),p=JSON.stringify(u);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."})}},[s]),f=o.useCallback(async()=>{let h="";try{h=await navigator.clipboard.readText()}catch{a.toast.error({title:"Paste failed",description:"Unable to read clipboard contents."});return}const u=h.trim();if(!u){a.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}try{const p=JSON.parse(u),m=$t.JSONFieldSectionSchema.array().parse(p),g=Zi(m);if(g.length===0){a.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}for(const[C,v]of g.entries())s.addFieldSection(v,s.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."})}},[s]);return i.jsxs("form",{className:"flex flex-col gap-4",onSubmit:l(n),children:[i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",onClick:d,children:[i.jsx(a.LuIcon,{icon:Jt})," Copy JSON"]}),i.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",onClick:f,children:[i.jsx(a.LuIcon,{icon:Ht})," Paste JSON"]})]}),s.fieldSections.map((h,u)=>i.jsx(Aa,{fieldSection:h,sectionIndex:u},h.id)),i.jsxs(a.Button,{className:"mb-4",type:"button",variant:"soft",accentColor:"base",size:"sm",onClick:r,children:[i.jsx(a.LuIcon,{icon:Q})," Add section"]})]}),!!e.fields?.message&&i.jsx(a.Text,{size:"xs",accentColor:"danger",children:e.fields.message}),i.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:[t&&i.jsx(a.Button,{type:"button",variant:"soft",accentColor:"base",onClick:t,children:"Cancel"}),i.jsx(a.Button,{type:"submit",variant:"surface",children:"Save"})]})]})});Da.displayName="FormBuilderListBuilder";function _a(l){const e=n=>{const t={};for(const[s,r]of Object.entries(n))typeof r=="string"?t[s]={type:"validate",message:r}:t[s]=e(r);return t};return e(l)}const $a=o.memo(o.forwardRef((l,e)=>{const{disabled:n=!1,fieldSchema:t,values:s={},onValuesChange:r,onSubmit:d,submitText:f="Submit",hideSubmit:h=!1,cancelText:u,onCancel:p,hideCancel:m=!1,className:g,submitButtonProps:C,cancelButtonProps:v,cancelIcon:w,submitIcon:z,size:F="md"}=l,q=o.useMemo(()=>t.initializeValues(s),[t,s]),x=o.useCallback($=>{d?.($)},[d]),V=Y.useForm({values:q,mode:"onBlur",criteriaMode:"all",disabled:n,resolver:$=>{const K=t.validateValues($),Z=_a(K);return Object.keys(K).length>0?{values:{},errors:Z}:{values:$,errors:{}}}}),N=o.useCallback($=>{r?.($)},[r]);o.useEffect(()=>{const{unsubscribe:$}=V.watch((K,{type:Z})=>{Z==="change"&&N(K)});return()=>{$()}},[V,N]);const I=nl(t.getFieldSections()),T=o.useMemo(()=>({fieldSchema:t,size:F}),[t,F]),A=!m&&!!p,W=!h;return i.jsx(Y.FormProvider,{...V,children:i.jsx(B,{value:T,children:i.jsxs("form",{ref:e,className:X.cx(g,"flex flex-col gap-4"),onSubmit:V.handleSubmit(x),children:[i.jsx("div",{className:Ls({size:F}),children:I}),!n&&(A||W)?i.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:F,children:[A?i.jsxs(a.Button,{accentColor:"base",type:"button",variant:"soft",onClick:p,...v,children:[i.jsx(a.LuIcon,{icon:w??ne}),u]}):null,W?i.jsxs(a.Button,{type:"submit",accentColor:"primary",variant:"surface",...C,children:[i.jsx(a.LuIcon,{icon:z??J}),f]}):null]}):null]})})})})),Pa=o.memo(()=>{const{fieldSchema:l}=o.use(ae);return i.jsx($a,{fieldSchema:l,disabled:!1})});Pa.displayName="FormBuilderPreview";const ka=o.memo(l=>{const{children:e,initialFields:n,onSave:t,onCancel:s,disableRequiredFields:r=!1}=l,d=o.useCallback(v=>{const w={};(!v.fields||v.fields.length===0)&&(w.fields="At least one field is required.");const z=[];for(const[x,V]of v.fields.entries())for(const[N,I]of V.fields.entries()){const T=ba(I.type,`fields.${x}.fields.${N}`)?.map(({field:A})=>A)??[];z.push(...T)}const F={};for(const x of z)F[x.id]=Pt(v,x.id);const q=At(z,F);return Object.keys(q).length>0&&(w.fields=q.fields),Object.keys(w).length>0&&a.toast.error({title:"Some form settings are invalid",description:"Please check settings highlighted in red."}),w},[]),f=o.useMemo(()=>({fields:n??[]}),[n]),h=Y.useForm({values:f,mode:"onSubmit",criteriaMode:"all",reValidateMode:"onSubmit",resolver:v=>{const w=d(v),z=_a(w);return Object.keys(w).length>0?{values:{},errors:z}:{values:v,errors:{}}}}),u=o.useCallback(v=>{h.setValue("fields",v.config())},[h]),p=Y.useWatch({control:h.control,compute:v=>v.fields}),m=o.useMemo(()=>{const v=Fe.fromConfig(p);return v.observe(u),v},[p,u]),g=o.useMemo(()=>({fieldSchema:m,disableRequiredFields:r,onSave:t,onCancel:s}),[r,t,s,m]),C=o.useMemo(()=>({fieldSchema:m,size:"sm"}),[m]);return i.jsx(ae,{value:g,children:i.jsx(B,{value:C,children:i.jsx(Y.FormProvider,{...h,children:e})})})});ka.displayName="FormBuilderRoot";const Us={Root:ka,FlowBuilder:Ea,ListBuilder:Da,Preview:Pa};c.BaseCondition=Al,c.BaseField=M,c.BaseFieldCondition=y,c.BaseFormElement=ze,c.BaseOptionsField=R,c.BaseStringField=Se,c.BooleanField=de,c.BooleanFieldConditionCell=Pl,c.BooleanFieldEqualsCondition=Be,c.BooleanFieldInput=dt,c.BooleanFieldNotEqualsCondition=tn,c.CheckboxListField=ie,c.CheckboxListFieldConditionCell=kl,c.CheckboxListFieldEqualsCondition=Ae,c.CheckboxListFieldEveryCondition=an,c.CheckboxListFieldNoneCondition=rn,c.CheckboxListFieldNotEqualsCondition=ln,c.CheckboxListFieldSomeCondition=sn,c.ConditionManager=Oi,c.DateField=be,c.DateFieldAfterCondition=cn,c.DateFieldBeforeCondition=dn,c.DateFieldConditionCell=jl,c.DateFieldEqualsCondition=De,c.DateFieldInCondition=un,c.DateFieldInput=ct,c.DateFieldNotEqualsCondition=on,c.DateFieldNotInCondition=hn,c.FIELD_TYPES=Ll,c.FieldConditionCell=xt,c.FieldSchema=Fe,c.FieldSection=H,c.FieldTypeGroup=O,c.FieldTypeToClsMapping=Ee,c.FieldsRenderer=$a,c.FileCard=at,c.FormBuilder=Us,c.ImageCapturer=ht,c.ImageCapturerProvider=ul,c.ImageCard=ft,c.ImageFile=Ve,c.ImageViewer=rt,c.ImageViewerProvider=el,c.InputWithLabel=D,c.MultiSelectField=te,c.MultiSelectFieldConditionCell=Ul,c.MultiSelectFieldEqualsCondition=_e,c.MultiSelectFieldEveryCondition=pn,c.MultiSelectFieldNoneCondition=mn,c.MultiSelectFieldNotEqualsCondition=fn,c.MultiSelectFieldSomeCondition=gn,c.MultiStringField=re,c.MultiStringFieldConditionCell=Gl,c.MultiStringFieldEqualsCondition=$e,c.MultiStringFieldEveryCondition=yn,c.MultiStringFieldNoneCondition=wn,c.MultiStringFieldNotEqualsCondition=Cn,c.MultiStringFieldSomeCondition=vn,c.NumberField=G,c.NumberFieldConditionCell=Jl,c.NumberFieldEqualsCondition=Pe,c.NumberFieldGreaterThanCondition=Sn,c.NumberFieldGreaterThanOrEqualsCondition=bn,c.NumberFieldInRangeCondition=Nn,c.NumberFieldLessThanCondition=zn,c.NumberFieldLessThanOrEqualsCondition=Vn,c.NumberFieldNotEqualsCondition=Fn,c.NumberFieldNotInRangeCondition=xn,c.OTPField=ce,c.OTPFieldConditionCell=Hl,c.OTPFieldEqualsCondition=ke,c.OTPFieldExcludesCondition=qn,c.OTPFieldIncludesCondition=Mn,c.OTPFieldNotEqualsCondition=In,c.Observable=Re,c.PassFailField=he,c.PassFailFieldConditionCell=Wl,c.PassFailFieldEqualsCondition=je,c.PassFailFieldExcludesCondition=En,c.PassFailFieldIncludesCondition=Tn,c.PassFailFieldNotEqualsCondition=On,c.RadioField=fe,c.RadioFieldConditionCell=Kl,c.RadioFieldEqualsCondition=Ue,c.RadioFieldExcludesCondition=An,c.RadioFieldIncludesCondition=Bn,c.RadioFieldNotEqualsCondition=Ln,c.RatingField=pe,c.RatingFieldConditionCell=Zl,c.RatingFieldEqualsCondition=Ge,c.RatingFieldGreaterThanCondition=Pn,c.RatingFieldGreaterThanOrEqualsCondition=kn,c.RatingFieldInRangeCondition=jn,c.RatingFieldLessThanCondition=_n,c.RatingFieldLessThanOrEqualsCondition=$n,c.RatingFieldNotEqualsCondition=Dn,c.RatingFieldNotInRangeCondition=Un,c.ScanField=xe,c.ScanFieldConditionCell=Xl,c.ScanFieldEqualsCondition=Je,c.ScanFieldExcludesCondition=Hn,c.ScanFieldIncludesCondition=Jn,c.ScanFieldNotEqualsCondition=Gn,c.Scanner=zi,c.ScannerProvider=Vl,c.SelectField=ge,c.SelectFieldConditionCell=Yl,c.SelectFieldEqualsCondition=He,c.SelectFieldExcludesCondition=Zn,c.SelectFieldIncludesCondition=Kn,c.SelectFieldNotEqualsCondition=Wn,c.StringField=me,c.StringFieldConditionCell=Ql,c.StringFieldEqualsCondition=We,c.StringFieldExcludesCondition=Qn,c.StringFieldIncludesCondition=Yn,c.StringFieldNotEqualsCondition=Xn,c.TextField=Ce,c.TextFieldConditionCell=Rl,c.TextFieldEqualsCondition=Ke,c.TextFieldExcludesCondition=ni,c.TextFieldIncludesCondition=ei,c.TextFieldNotEqualsCondition=Rn,c.TimeField=Ie,c.TimeFieldAfterCondition=li,c.TimeFieldBeforeCondition=ti,c.TimeFieldConditionCell=ea,c.TimeFieldControl=Ni,c.TimeFieldEqualsCondition=Ze,c.TimeFieldInCondition=ai,c.TimeFieldInput=Ft,c.TimeFieldNotEqualsCondition=ii,c.TimeFieldNotInCondition=si,c.UNLABELLED_FIELD_LABEL=_,c.UNLABELLED_SECTION_LABEL=xi,c.URLField=Me,c.URLFieldConditionCell=ia,c.URLFieldEqualsCondition=Ye,c.URLFieldExcludesCondition=ci,c.URLFieldIncludesCondition=di,c.URLFieldNotEqualsCondition=oi,c.UTC_OFFSETS=vt,c.UTC_OFFSETS_SET=Il,c.UUIDFile=le,c.UUIDPromise=Ne,c.UploadField=we,c.UploadFieldConditionCell=na,c.UploadFieldEqualsCondition=Xe,c.UploadFieldNotEqualsCondition=ri,c.VideoCard=gt,c.VideoFile=pt,c.areFieldValuesBlank=za,c.areFieldValuesEqual=Tt,c.areFileAndPromiseArraysEqual=Fi,c.areJSONPassFailFieldValuesEqual=yl,c.arePassFieldValuesEqual=Cl,c.awaitFilesAndPromises=js,c.blankFieldValues=Et,c.booleanFieldConditionModifierConfig=Mi,c.changedFieldValues=wa,c.checkboxListFieldConditionModifierConfig=qi,c.cleanConditions=Nt,c.cleanFieldValues=Xi,c.cleanSerializedConditions=bt,c.cleanSerializedFieldValues=Ot,c.createCondition=ui,c.createField=Ri,c.createTime=ye,c.dateFieldConditionModifierConfig=Ti,c.deserializeCondition=ta,c.deserializeConditions=Wi,c.deserializeField=Ki,c.deserializeFieldConfig=Mt,c.deserializeFieldConfigs=da,c.deserializeFieldElement=aa,c.deserializeFieldElementConfig=ca,c.deserializeFieldElementConfigs=ua,c.deserializeFieldElements=Zi,c.deserializeFieldValues=ma,c.deserializeFields=Ts,c.deserializePassFailFieldValue=ml,c.extractFilesAndPromisesFromFieldValues=Ca,c.fieldDataMapping=L,c.fieldElementFromConfig=ra,c.fieldElementsFromConfigs=oa,c.fieldFromConfig=It,c.fieldSpacingCva=Yi,c.fieldTypeGroupDataMapping=Bl,c.fieldsFromConfigs=sa,c.formatTime=bi,c.formatUTCOffset=Si,c.getCurrentUTCOffset=ql,c.getFieldsMapping=Es,c.getImagesFromFields=ks,c.getUTCMinuteOfDay=ve,c.getUTCOffsetMinutes=Ol,c.initializeFieldValues=va,c.insertFilesAndPromisesToFieldValues=ya,c.isFileAndPromiseArray=rl,c.isJSONPassFailFieldValue=fl,c.isPassFailFieldStatus=Ct,c.isPassFailFieldValue=pl,c.isStringArray=Qe,c.isTime=ee,c.isTimeInRange=wt,c.isTimeRange=Ms,c.isUTCOffset=Vi,c.multiSelectFieldConditionModifierConfig=Ei,c.multiStringFieldConditionModifierConfig=Li,c.normalizeFieldOption=ot,c.normalizeFieldOptions=oe,c.numberFieldConditionModifierConfig=Bi,c.otpFieldConditionModifierConfig=Ai,c.parseTime=en,c.passFailFieldConditionModifierConfig=Di,c.passFailFieldStatusMapping=ue,c.passFailFieldStatuses=Te,c.radioFieldConditionModifierConfig=_i,c.ratingFieldConditionModifierConfig=$i,c.scanFieldConditionModifierConfig=Pi,c.selectFieldConditionModifierConfig=ki,c.serializeConditions=la,c.serializeFieldConfig=qt,c.serializeFieldConfigs=ha,c.serializeFieldElementConfig=fa,c.serializeFieldElementConfigs=pa,c.serializeFieldValues=ga,c.serializePassFailFieldValue=gl,c.stringFieldConditionModifierConfig=ji,c.textFieldConditionModifierConfig=Ui,c.timeFieldConditionModifierConfig=Gi,c.unchangedFieldValues=Fa,c.uploadFieldConditionModifierConfig=Ji,c.urlFieldConditionModifierConfig=Hi,c.useConditionManager=qs,c.useFieldInput=P,c.useFieldInputs=wi,c.useFieldSectionInputs=nl,c.useImageCapturer=ut,c.useImageViewer=vi,c.useObjectUrl=st,c.useScanner=bs,c.useScannerContext=Fl,c.validateFieldValues=At,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(d,i){typeof exports=="object"&&typeof module<"u"?i(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"],i):(d=typeof globalThis<"u"?globalThis:d||self,i(d.forms={},d.jsxRuntime,d.blocks,d.classVarianceAuthority,d.react,null,d.react$1,d.graphologyDag,d.reactHookForm,d.uuid,d.dnd,d.fileSaver,d.hooks,d.reactZxing,d.Dagre,d.zodFieldsjson,d.graphology,d.graphologyTraversal,d.get,d.set))})(this,(function(d,i,a,X,o,lr,E,Zt,Y,b,Kn,Zn,Je,ns,Xt,Yt,is,ts,Qt,ls){"use strict";const as=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ss=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,n,l)=>l?l.toUpperCase():n.toLowerCase()),Rt=t=>{const e=ss(t);return e.charAt(0).toUpperCase()+e.slice(1)},el=(...t)=>t.filter((e,n,l)=>!!e&&e.trim()!==""&&l.indexOf(e)===n).join(" ").trim(),rs=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var os={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 ds=o.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:n=2,absoluteStrokeWidth:l,className:s="",children:r,iconNode:c,...f},h)=>o.createElement("svg",{ref:h,...os,width:e,height:e,stroke:t,strokeWidth:l?Number(n)*24/Number(e):n,className:el("lucide",s),...!r&&!rs(f)&&{"aria-hidden":"true"},...f},[...c.map(([u,g])=>o.createElement(u,g)),...Array.isArray(r)?r:[r]]));const z=(t,e)=>{const n=o.forwardRef(({className:l,...s},r)=>o.createElement(ds,{ref:r,iconNode:e,className:el(`lucide-${as(Rt(t))}`,`lucide-${t}`,l),...s}));return n.displayName=Rt(t),n};const cs=z("align-justify",[["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 18h18",key:"1h113x"}],["path",{d:"M3 6h18",key:"d0wm0j"}]]);const us=z("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 hs=z("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 nl=z("camera",[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]);const fs=z("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=z("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const Be=z("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const He=z("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 ps=z("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const gs=z("circle-dot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);const ms=z("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 Cs=z("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 il=z("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);const tl=z("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 ys=z("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 ll=z("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 vs=z("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 Xn=z("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 Yn=z("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 Qn=z("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 Fs=z("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 Vs=z("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 ws=z("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 Ss=z("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 al=z("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 sl=z("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 bs=z("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 zs=z("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 Ns=z("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 xs=z("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 Is=z("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 We=z("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const rl=z("move-down",[["path",{d:"M8 18L12 22L16 18",key:"cskvfv"}],["path",{d:"M12 2V22",key:"r89rzk"}]]);const Ke=z("move-up",[["path",{d:"M8 6L12 2L16 6",key:"1yvkyx"}],["path",{d:"M12 2V22",key:"r89rzk"}]]);const ol=z("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);const Q=z("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const Ms=z("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 qs=z("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 Os=z("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 Ts=z("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 Es=z("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 dl=z("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 Ls=z("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 As=z("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 we=z("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 Rn=z("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 Bs=z("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=z("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),ei=o.memo(t=>{const{ref:e,file:n,className:l,error:s,rightSlot:r,size:c,...f}=t,h=()=>s?i.jsxs(i.Fragment,{children:[i.jsx(a.LuIcon,{icon:He,color:"var(--base-a11)"}),i.jsx(a.Text,{accentColor:"base",className:"truncate",size:c,children:s})]}):n?i.jsxs(i.Fragment,{children:[i.jsx(a.LuIcon,{icon:Vs,color:"var(--base-a11)"}),i.jsx(a.Text,{className:"truncate",size:c,children:n.name})]}):i.jsx(i.Fragment,{children:i.jsx("div",{className:"flex w-full justify-center",children:i.jsx(a.Spinner,{size:c})})});return i.jsxs(a.Card,{className:X.cx(l,"flex w-full items-center gap-2"),ref:e,size:"xs",...f,children:[h(),r]})});ei.displayName="FileCard";class _e{observers=new Set;notify(e){for(const n of this.observers)n(e)}observe(e){return this.observers.add(e),()=>{this.observers.delete(e)}}}class ni extends _e{id;constructor(e){const{id:n}=e;super(),this.id=n}serialize(){return{id:this.id,type:this.type}}}class v extends ni{value;field;constructor(e){const{field:n,value:l,...s}=e;super(s),this.value=l,this.field=n}serialize(){return{...super.serialize(),value:this.serializeValue(),modifier:this.modifier,field:this.field.id}}getValue=()=>this.value;setValue=e=>{this.value=e,this.notify(this)};getApplyFn(){const e=this.getValueApplyFn();return n=>{const l=this.accessorFn(n);return this.isApplicable(l)?e(l):!1}}isApplicable=e=>this.field.isValue(e);accessorFn=e=>e[this.field.id]}function De(t){return Array.isArray(t)?t.every(e=>typeof e=="string"):!1}class Se extends _e{id;constructor(e){const{id:n}=e;super(),this.id=n}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:n,type:l}=e;return{id:n,type:l}}static _serializeConfig(e){const{id:n,type:l}=e;return{id:n,type:l}}}class I extends Se{label;description;required;image;constructor(e){const{label:n,description:l,required:s,image:r,...c}=e;super(c),this.label=n,this.description=l,this.required=s,this.image=r}getError(e){if(!(!this.required&&this.isValueBlank(e))){if(this.required&&this.isValueBlank(e))return"This field is required.";for(const n of this.getFieldValidators()){const l=n(e);if(l)return l}}}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:n,description:l,required:s,...r}=e;return{...Se._deserializeConfig(r),label:n,description:l??void 0,required:s}}static _serializeConfig(e){const{label:n,description:l,required:s,...r}=e;return{...Se._serializeConfig(r),label:n,description:l,required:s}}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=o.createContext({}),ii=t=>{const[e,n]=o.useState(null);return o.useLayoutEffect(()=>{const l=URL.createObjectURL(t);return n(l),()=>{URL.revokeObjectURL(l)}},[t]),e},be=o.memo(t=>{const{file:e,...n}=t,l=ii(e);return i.jsx("img",{src:l??void 0,alt:e.name,...n})});be.displayName="ImageFile";const cl=o.createContext(()=>{throw new Error("No ImageViewerProvider found")}),Ze=()=>o.useContext(cl),ti=o.memo(t=>{const{file:e,onClose:n}=t,l=o.useCallback(()=>{Zn.saveAs(e,e.name)},[e]);return i.jsx(a.Overlay.Root,{open:!0,onOpenChange:n,children:i.jsxs(a.Overlay.Content,{onOpenAutoFocus:a.preventDefault,children:[i.jsxs(a.ButtonGroup,{className:"absolute right-0 top-0 flex items-center gap-2 p-2",accentColor:"base",variant:"soft",children:[i.jsx(a.IconButton,{onClick:l,"aria-label":"download",children:i.jsx(a.LuIcon,{icon:Yn})}),i.jsx(a.Separator,{orientation:"vertical",size:"sm"}),i.jsx(a.Overlay.Close,{asChild:!0,children:i.jsx(a.IconButton,{onClick:n,"aria-label":"close",children:i.jsx(a.LuIcon,{icon:ne})})})]}),i.jsx("div",{className:"flex size-full items-center justify-center overflow-hidden p-4",children:i.jsx(be,{className:"max-h-full max-w-full",file:e})})]})})});ti.displayName="ImageViewer";const ul=o.memo(t=>{const{children:e}=t,[n,l]=o.useState(null),s=o.useCallback(()=>{l(null)},[]),r=o.useCallback(f=>{l(f(s))},[s]),c=o.useCallback(()=>{n&&(n.onClose&&n.onClose(),s())},[s,n]);return i.jsxs(cl.Provider,{value:r,children:[e,n&&i.jsx(ti,{file:n.file,onClose:c})]})});ul.displayName="FileViewerProvider";const D=o.memo(t=>{const{label:e,error:n,description:l,required:s,children:r,inputId:c,image:f,size:h}=t,[u,g]=o.useState(void 0),m=Ze();o.useEffect(()=>{f instanceof Promise?f.then(g).catch(console.error):g(f)},[f]);const C=o.useCallback(()=>{u&&m(()=>({file:u}))},[m,u]),p=s?`${e??"Unlabelled"} *`:e??"Unlabelled";return i.jsxs("div",{className:"flex flex-col gap-1",children:[u&&i.jsx(be,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:u,onClick:C}),(!!e||!!l)&&i.jsxs("div",{className:"flex flex-col",children:[i.jsx("label",{className:"w-max max-w-full",htmlFor:c,children:i.jsx(a.Text,{size:h,className:"text-wrap",children:p})}),!!l&&i.jsx(a.Text,{accentColor:"base",size:h,children:l})]}),r,!!n&&i.jsx(a.Text,{accentColor:"danger",size:h,children:n})]})});D.displayName="InputWithLabel";const hl=t=>t.map(e=>i.jsx(o.Fragment,{children:e.render()},e.id)),Xe=t=>t.map(e=>i.jsx(o.Fragment,{children:e.render()},e.id)),$=t=>{const{field:e}=t,{field:{value:n,name:l,onChange:s,onBlur:r,disabled:c},fieldState:{isTouched:f,error:h}}=Y.useController({name:e.id});return{value:n,name:l,disabled:c,isTouched:f,error:h?.message??"",onChange:s,onBlur:r}},fl=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),[u,g]=o.useState(""),[m,C]=o.useState(""),p=o.useCallback(S=>{c(S),r()},[c,r]),y=o.useCallback(S=>{l&&l.findIndex(q=>q===S.target.value.trim())>=0?C("All options must be unique"):S.target.value?C(""):C("Option cannot be empty"),g(S.target.value)},[g,l]),F=o.useCallback(()=>{if(m)return;if(!u.trim()){C("Option cannot be empty");return}const S=u.trim();p([...l,S]),g("")},[u,m,p,l]),V=o.useCallback(S=>{S.key==="Enter"&&(S.preventDefault(),F())},[F]),w=o.useCallback(S=>{const q=Array.from(l);q.splice(S,1),p(q)},[l,p]),M=o.useCallback(S=>{if(!S.destination)return;const q=S.source.index,x=S.destination.index,T=Array.from(l),[_]=T.splice(q,1);T.splice(x,0,_),p(T)},[p,l]),N=o.useCallback(()=>{r()},[r]);return i.jsx(Kn.DragDropContext,{onDragEnd:M,children:i.jsxs(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:m||f,image:e.image,children:[(!h||l.length===0)&&i.jsxs("div",{className:"flex gap-2",children:[i.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"surface",size:n,children:i.jsx(a.Input.Field,{value:u,onChange:y,onKeyDown:V,id:e.id,placeholder:e.placeholder??"Press enter to add a new option",onBlur:N,name:s,disabled:h})}),i.jsx(a.IconButton,{size:n,accentColor:"base",variant:"soft",type:"button","aria-label":"Add option",disabled:!!m||h,onClick:F,children:i.jsx(a.LuIcon,{icon:Q})})]}),l.length!==0&&i.jsx(Kn.Droppable,{droppableId:`${e.id}-droppable`,children:S=>i.jsxs("div",{className:"flex flex-col gap-1",...S.droppableProps,ref:S.innerRef,children:[l.map((q,x)=>i.jsx(Kn.Draggable,{draggableId:`${q}-draggable`,index:x,isDragDisabled:h,children:({draggableProps:T,dragHandleProps:_,innerRef:Z})=>i.jsxs(a.Badge,{..._,...T,ref:Z,className:"flex items-center justify-between gap-2",accentColor:"base",size:n,variant:"soft",children:[i.jsx(a.Text,{className:"truncate",highContrast:!0,children:li(q).label}),i.jsx(a.IconButton,{className:"bg-transparent!",size:n,variant:"ghost",type:"button","aria-label":"Delete option",accentColor:"base",disabled:h,onClick:()=>{w(x)},children:i.jsx(a.LuIcon,{icon:ne})})]})},`${e.id}-${q}-${x}`)),S.placeholder]})})]})})});fl.displayName="MultiStringFieldInput";class se extends I{type="multi-string";minLength;maxLength;placeholder;constructor(e){const{minLength:n,maxLength:l,placeholder:s,...r}=e;super(r),this.minLength=n,this.maxLength=l,this.placeholder=s}render(){return i.jsx(fl,{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 se({...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(n=>{if(this.minLength!==void 0&&n.length<this.minLength)return`Must have at least ${this.minLength} options.`}),e.push(n=>{if(this.maxLength!==void 0&&n.length>this.maxLength)return`Must have at most ${this.maxLength} options.`}),e}static deserialize(e){return new se(e)}static fromConfig(e){return new se(e)}static deserializeConfig(e){const{minLength:n,maxLength:l,placeholder:s,...r}=e;return{...I._deserializeConfig(r),minLength:n,maxLength:l,placeholder:s}}static serializeConfig(e){const{minLength:n,maxLength:l,placeholder:s,...r}=e;return{...I._serializeConfig(r),minLength:n,maxLength:l,placeholder:s}}isSerializedValue(e){return De(e)}isValue(e){return De(e)}blankValue(){return[]}areValuesEqual(e,n){const l=new Set(e),s=new Set(n);return l.size===s.size&&l.isSubsetOf(s)}blankSerializedValue(){return[]}areSerializedValuesEqual(e,n){const l=new Set(e),s=new Set(n);return l.size===s.size&&l.isSubsetOf(s)}}function li(t){return typeof t=="string"&&(t={label:t,value:t}),t}function re(t){return t.map(li)}class R extends I{options;constructor(e){const{options:n,...l}=e;super(l),this.options=re(n)}serialize(){return{...super.serialize(),options:this.options}}config(){return{...super.config(),options:this.options}}static _deserializeConfig(e){const{options:n,...l}=e;return{...I._deserializeConfig(l),options:n}}static _serializeConfig(e){const{options:n,...l}=e;return{...I._serializeConfig(l),options:re(n)}}getOptions(){return{...super.getOptions(),options:this.options}}setOptions(e){"options"in e&&e.options!==void 0&&(this.options=re(e.options)),super.setOptions(e)}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new se({label:"Options",description:"List possible options for the user to select from.",required:!0,id:`${n}options`,minLength:2}),showDirectly:!0}]}}const ai=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(m=>{c(!!m),r()},[r,c]),g=o.useCallback(()=>{r()},[r]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,error:f,image:e.image,required:e.required,children:i.jsx(a.Checkbox.Root,{id:e.id,name:s,checked:l??!1,onCheckedChange:u,onBlur:g,size:n,accentColor:"base",variant:"surface",disabled:h,children:i.jsx(a.Checkbox.Indicator,{children:i.jsx(a.LuIcon,{icon:H})})})})});ai.displayName="BooleanFieldInput";class oe extends I{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 oe({...this.getOptions(),id:e})}static deserialize(e){return new oe(e)}static fromConfig(e){return new oe(e)}static deserializeConfig(e){return I._deserializeConfig(e)}static serializeConfig(e){return I._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(ai,{field:this})}isSerializedValue(e){return typeof e=="boolean"}isValue(e){return typeof e=="boolean"}blankValue(){return!1}blankSerializedValue(){return!1}areSerializedValuesEqual(e,n){return e===n}areValuesEqual(e,n){return e===n}}const pl=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(C=>{const p=C.target.valueAsNumber,y=isNaN(p)?null:p;c(y)},[c]),g=o.useCallback(()=>{r()},[r]),m=o.useCallback(C=>{C.key==="Enter"&&C.preventDefault()},[]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsx(a.Input.Root,{accentColor:"base",variant:"surface",size:n,children:i.jsx(a.Input.Field,{id:e.id,name:s,onChange:u,onBlur:g,value:l??"",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:h,onKeyDown:m})})})});pl.displayName="NumberFieldInput";class G extends I{type="number";minimum;maximum;integers;placeholder;constructor(e){const{minimum:n,maximum:l,integers:s,placeholder:r,...c}=e;super(c),this.minimum=n,this.maximum=l,this.integers=s,this.placeholder=r}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new G({label:"Minimum",description:"Minimum value",integers:!0,required:!1,id:`${n}minimum`}),showDirectly:!1},{field:new G({label:"Maximum",description:"Maximum value",integers:!0,required:!1,id:`${n}maximum`}),showDirectly:!1},{field:new oe({label:"Integers",description:"Whole numbers only",required:!1,id:`${n}integers`}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),n=this.minimum,l=this.maximum;return typeof n=="number"&&e.push(s=>{if(typeof s=="number"&&s<n)return`Must be at least ${this.minimum}.`}),e.push(s=>{if(typeof s=="number"&&s<Number.MIN_SAFE_INTEGER)return"Cant be less than MIN_SAFE_INTEGER."}),typeof l=="number"&&e.push(s=>{if(typeof s=="number"&&s>l)return`Must be at most ${l}.`}),e.push(s=>{if(typeof s=="number"&&s>Number.MAX_SAFE_INTEGER)return"Cant be greater than MAX_SAFE_INTEGER."}),this.integers&&e.push(s=>{if(typeof s=="number"&&!Number.isInteger(s))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 G({...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 G(e)}static fromConfig(e){return new G(e)}static deserializeConfig(e){const{minimum:n,maximum:l,integers:s,placeholder:r,...c}=e;return{...I._deserializeConfig(c),minimum:n,maximum:l,integers:s,placeholder:r}}static serializeConfig(e){const{minimum:n,maximum:l,integers:s,placeholder:r,...c}=e;return{...I._serializeConfig(c),minimum:n,maximum:l,integers:s,placeholder:r}}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(pl,{field:this})}isSerializedValue(e){return this.isValue(e)}isValue(e){return typeof e=="number"&&!isNaN(e)||e===null}areValuesEqual(e,n){return e===n}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,n){return e===n}}class ze extends I{minLength;maxLength;placeholder;constructor(e){const{minLength:n,maxLength:l,placeholder:s,...r}=e;super(r),this.minLength=n,this.maxLength=l,this.placeholder=s}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new G({label:"Minimum length",description:"Minimum number of characters",required:!1,id:`${n}minLength`,minimum:0,integers:!0}),showDirectly:!1},{field:new G({label:"Maximum length",description:"Maximum number of characters",required:!1,id:`${n}maxLength`,minimum:1,integers:!0}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),n=this.minLength,l=this.maxLength;return typeof n=="number"&&e.push(s=>{if(s.length<n)return`Minimum ${n} character(s).`}),typeof l=="number"&&e.push(s=>{if(s.length>l)return`Maximum ${l} 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:n,minLength:l,placeholder:s,...r}=e;return{...I._deserializeConfig(r),minLength:l,maxLength:n,placeholder:s}}static _serializeConfig(e){const{minLength:n,maxLength:l,placeholder:s,...r}=e;return{...I._serializeConfig(r),minLength:n,maxLength:l,placeholder:s}}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,n){return e===n}areValuesEqual(e,n){return e===n}}const gl=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(m=>{c(m),r()},[r,c]),g=o.useCallback(()=>{r()},[r]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsx(a.CheckboxGroup.Root,{id:e.id,name:s,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:n,values:l,onValuesChange:u,disabled:h,children:e.options.map((m,C)=>i.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(a.CheckboxGroup.Item,{value:m.value,onBlur:g,children:i.jsx(a.CheckboxGroup.ItemIndicator,{children:i.jsx(a.LuIcon,{icon:H})})}),i.jsx(a.Text,{size:n,accentColor:"base",className:"truncate",children:m.label})]},`${e.id}-${m.value}-${C}`))})})});gl.displayName="CheckboxListFieldInput";class ie extends R{type="checkbox-list";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new ie({...this.getOptions(),id:e})}static deserialize(e){return new ie(e)}static fromConfig(e){return new ie(e)}static deserializeConfig(e){return ie._deserializeConfig(e)}static serializeConfig(e){return ie._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(gl,{field:this})}isSerializedValue(e){if(!De(e))return!1;const n=new Set(this.options.map(({value:l})=>l));return e.every(l=>n.has(l))}isValue(e){return this.isSerializedValue(e)}blankValue(){return[]}blankSerializedValue(){return[]}areSerializedValuesEqual(e,n){const l=new Set(e),s=new Set(n);return l.size===s.size&&l.isSubsetOf(s)}areValuesEqual(e,n){const l=new Set(e),s=new Set(n);return l.size===s.size&&l.isSubsetOf(s)}}const si=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),[u,g]=o.useState(!1),m=o.useCallback(p=>{c(p??null),r(),g(!1)},[c,r]),C=o.useCallback(p=>{g(p),p||r()},[r]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs(a.Popover.Root,{open:u,onOpenChange:C,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:i.jsxs(a.Button,{id:e.id,name:s,type:"button",className:"!justify-between",accentColor:"base",variant:"surface",size:n,disabled:h,children:[i.jsx(a.Text,{className:"truncate",highContrast:!!l,children:l?l.toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit"}):"yyyy-mm-dd"}),i.jsx(a.LuIcon,{icon:Be})]})}),i.jsx(a.Popover.Content,{align:"start",size:n,children:i.jsx(a.DayPicker,{size:n,required:!1,mode:"single",variant:"solid",selected:l??void 0,onSelect:m})})]})})});si.displayName="DateFieldInput";class Ne extends I{type="date";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new Ne({...this.getOptions(),id:e})}static deserialize(e){return new Ne(e)}static fromConfig(e){return new Ne(e)}static deserializeConfig(e){return I._deserializeConfig(e)}static serializeConfig(e){return I._serializeConfig(e)}setOptions(e){super.setOptions(e)}serializeValue(e){return e?e.toISOString():null}deserializeValue(e){return e?new Date(e):null}render(){return i.jsx(si,{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,n){return e===n}areValuesEqual(e,n){return!e&&!n?!0:!e||!n?!1:e.getTime()===n.getTime()}}var O=(t=>(t.Text="text",t.Selection="selection",t.Numeric="numeric",t.Temporal="temporal",t.Capture="capture",t.Assessment="assessment",t.Verification="verification",t))(O||{});const ml=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(m=>{c(m),r()},[r,c]),g=o.useCallback(m=>{m||r()},[r]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs(a.Menu.Root,{onOpenChange:g,align:"start",children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{id:e.id,name:s,className:"!justify-between",variant:"surface",type:"button",size:n,accentColor:"base",disabled:h,children:[i.jsx(a.Text,{className:"truncate",highContrast:l&&l.length>0,children:l&&l.length>0?l.join(", "):e.placeholder??"Select one or more..."}),i.jsx(a.LuIcon,{icon:Be})]})}),i.jsx(a.Menu.Content,{size:n,children:i.jsx(a.Menu.Scroll,{children:i.jsxs(a.Menu.MultiSelectGroup,{values:l,onValuesChange:u,children:[i.jsxs(a.Menu.SelectAllItem,{children:[i.jsx(a.Menu.CheckboxItemIndicator,{children:m=>m?i.jsx(a.LuIcon,{icon:We}):i.jsx(a.LuIcon,{icon:H})}),"Select all"]}),e.options.map((m,C)=>i.jsxs(a.Menu.MultiSelectItem,{value:m.value,children:[i.jsx(a.Menu.SelectedIndicator,{children:i.jsx(a.LuIcon,{icon:H})}),m.label]},`${e.id}-${m.value}-${C}`))]})})})]})})});ml.displayName="MultiSelectFieldInput";class te extends R{type="multi-select";placeholder;constructor(e){const{placeholder:n,...l}=e;super(l),this.placeholder=n}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 te({...this.getOptions(),id:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new te(e)}static fromConfig(e){return new te(e)}static deserializeConfig(e){const{placeholder:n,...l}=e;return{...R._deserializeConfig(l),placeholder:n}}static serializeConfig(e){const{placeholder:n,...l}=e;return{...R._serializeConfig(l),placeholder:n}}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(ml,{field:this})}isSerializedValue(e){if(!De(e))return!1;const n=new Set(this.options.map(({value:l})=>l));return e.every(l=>n.has(l))}isValue(e){return this.isSerializedValue(e)}blankValue(){return[]}areValuesEqual(e,n){const l=new Set(e),s=new Set(n);return l.size===s.size&&l.isSubsetOf(s)}blankSerializedValue(){return[]}areSerializedValuesEqual(e,n){const l=new Set(e),s=new Set(n);return l.size===s.size&&l.isSubsetOf(s)}}const Cl=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(C=>{c(C)},[c]),g=o.useCallback(()=>{r()},[r]),m=o.useMemo(()=>Array.from({length:e.length},()=>b.v4()),[e.length]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs(a.OneTimePasswordField.Root,{id:e.id,name:s,value:l,onValueChange:u,validationType:"none",disabled:h,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:n,onBlur:g,children:[m.map(C=>i.jsx(a.OneTimePasswordField.Input,{id:C},C)),i.jsx(a.OneTimePasswordField.HiddenInput,{})]})})});Cl.displayName="OTPFieldInput";class de extends I{type="otp";length;constructor(e){const{length:n,...l}=e;super(l),this.length=n}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new G({label:"Length",integers:!0,required:!1,minimum:1,maximum:16,id:`${n}length`}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),n=this.length;return e.push(l=>{if(l.length!=n)return`Must be ${n} 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 de({...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 de(e)}static fromConfig(e){return new de(e)}static deserializeConfig(e){const{length:n,...l}=e;return{...I._deserializeConfig(l),length:n}}static serializeConfig(e){const{length:n,...l}=e;return{...I._serializeConfig(l),length:n}}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(Cl,{field:this})}isSerializedValue(e){return typeof e=="string"}isValue(e){return typeof e=="string"}blankValue(){return""}areValuesEqual(e,n){return e===n}blankSerializedValue(){return""}areSerializedValuesEqual(e,n){return e===n}}const ce={pass:{label:"Pass",icon:ps},fail:{label:"Fail",icon:Cs},na:{label:"N/A",icon:ms}},Ee=Object.keys(ce);class le extends File{uuid;constructor(e,...n){super(...n),this.uuid=e}static from(e,n){return new le(e,[n],n.name,{lastModified:n.lastModified,type:n.type})}}class xe extends Promise{_uuid;constructor(e,n){super(e),this._uuid=n}get uuid(){return this._uuid}set uuid(e){this._uuid=e}static from(e,n){return new xe((l,s)=>{Promise.resolve(e).then(l).catch(s)},n)}then(e,n){const l=super.then(e,n);return l.uuid=this.uuid,l}catch(e){const n=super.catch(e);return n.uuid=this.uuid,n}finally(e){const n=super.finally(e);return n.uuid=this.uuid,n}}function yl(t){return Array.isArray(t)?t.every(e=>e instanceof xe||e instanceof le):!1}function Ye(t,e){const n=new Set(t.map(({uuid:s})=>s)),l=new Set(e.map(({uuid:s})=>s));return n.size===l.size&&n.isSubsetOf(l)}const vl=o.createContext(()=>{throw new Error("No ImageCapturerProvider found")}),ri=()=>o.useContext(vl),Fl=o.memo(t=>{const{onCapture:e}=t,[n,l]=o.useState("idle"),[s,r]=o.useState(!1),c=o.useRef(null),f=o.useRef(null),h=o.useRef(null),u=o.useCallback(()=>{h.current&&(h.current.getTracks().forEach(p=>p.stop()),h.current=null),c.current&&(c.current.srcObject=null),l("idle")},[]),g=Je.useActiveCallback(async p=>{if(c.current){u(),l("loading");try{const y=await navigator.mediaDevices.getUserMedia({audio:!1,video:{facingMode:{ideal:"environment"},width:{ideal:1920},height:{ideal:1080}}});if(!p()){u();return}h.current=y,c.current.srcObject=y,await c.current.play(),l("ready")}catch{l("errored")}}},[u]),m=o.useCallback(()=>{const p=c.current,y=f.current;if(!p||!y||p.videoWidth<=0||p.videoHeight<=0)return;const F=Math.min(p.clientWidth/p.videoWidth,p.clientHeight/p.videoHeight);y.style.width=`${p.videoWidth*F}px`,y.style.height=`${p.videoHeight*F}px`,y.getAnimations().forEach(V=>V.cancel()),y.animate([{opacity:.8},{opacity:0}],{duration:250,easing:"ease-out"})},[]),C=Je.useActiveCallback(async p=>{if(c.current)try{r(!0);const y=c.current,F=y.videoHeight,V=y.videoWidth,w=Math.max(V,F),M=Math.min(1,1920/w),N=document.createElement("canvas");N.width=Math.round(V*M),N.height=Math.round(F*M);const S=N.getContext("2d");if(!S)throw new Error("Could not setup canvas context.");S.drawImage(y,0,0,N.width,N.height),m();const q=await new Promise((Z,A)=>{N.toBlob(J=>J?Z(J):A(new Error("Could not convert canvas to blob.")),"image/jpeg",.92)});if(!p())return;const x=new Date,T=`${x.toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).replaceAll(":","-").replaceAll("/","-").replaceAll(",","")}.jpg`,_=new File([q],T,{type:q.type,lastModified:x.getTime()});e?.(_)}catch(y){a.toast.error({title:"Photo not captured",description:y instanceof Error?y.message:"The photo could not be captured."})}finally{r(!1)}},[e,m],{deactivateOnCall:!1});return o.useEffect(()=>(g(),()=>{u()}),[g,u]),i.jsxs("div",{className:"flex max-h-full max-w-full shrink grow flex-col gap-4 overflow-hidden",children:[i.jsxs("div",{className:X.cx("relative flex shrink grow flex-col items-center justify-center overflow-hidden",{"bg-black":!n}),children:[i.jsx("video",{ref:c,className:"max-h-full max-w-full object-contain",muted:!0,playsInline:!0}),i.jsx("div",{ref:f,"aria-hidden":"true",className:"-translate-1/2 pointer-events-none absolute left-1/2 top-1/2 bg-white opacity-0"}),n==="loading"?i.jsx(a.Spinner,{size:"xl",className:"-translate-1/2 absolute left-1/2 top-1/2"}):null,n==="errored"?i.jsx(a.LuIcon,{icon:He,size:24,className:"-translate-1/2 absolute left-1/2 top-1/2"}):null]}),i.jsx("div",{className:"flex h-max shrink-0 justify-center",children:i.jsx("button",{className:"bg-(--base-1) border-(--base-12) size-16 rounded-full border-[5px] outline-offset-4 transition-transform active:scale-95 active:brightness-110",type:"button",onClick:C,disabled:s})})]})});Fl.displayName="Camera";const Vl=o.memo(t=>{const{files:e,onDelete:n,children:l,open:s,onOpenChange:r,defaultOpen:c,modal:f}=t,[h,u]=o.useState(null);o.useEffect(()=>{u(e.length>0?e[0]:null)},[e]);const g=o.useCallback(()=>{h&&Zn.saveAs(h,h.name)},[h]),m=o.useCallback(()=>{if(!h)return;const y=e.indexOf(h);u(y!==0?e[y-1]:e[e.length-1])},[h,e]),C=o.useCallback(()=>{if(!h)return;const y=e.indexOf(h);u(y!==e.length-1?e[y+1]:e[0])},[h,e]),p=o.useCallback(()=>{h&&n?.(h)},[h,n]);return i.jsxs(a.Overlay.Root,{open:s,onOpenChange:r,defaultOpen:c,modal:f,children:[!!l&&i.jsx(a.Overlay.Trigger,{asChild:!0,children:l}),i.jsx(a.Overlay.Content,{onOpenAutoFocus:a.preventDefault,children:i.jsxs("div",{className:"flex size-full flex-col gap-4 p-4",children:[i.jsx(a.ButtonGroup,{className:"flex w-full shrink-0 items-center justify-end gap-2",accentColor:"base",variant:"soft",children:i.jsx(a.Overlay.Close,{asChild:!0,children:i.jsx(a.IconButton,{"aria-label":"close",type:"button",children:i.jsx(a.LuIcon,{icon:ne})})})}),i.jsx("div",{className:"flex grow items-center justify-center overflow-hidden",children:h?i.jsx(be,{className:"max-h-full max-w-full",file:h}):null}),i.jsxs(a.ButtonGroup,{className:"flex w-full shrink-0 items-center gap-2",accentColor:"base",variant:"soft",children:[i.jsx(a.IconButton,{onClick:g,"aria-label":"download",type:"button",children:i.jsx(a.LuIcon,{icon:Yn})}),i.jsxs("div",{className:"flex grow items-center justify-center gap-2 overflow-hidden",children:[i.jsx(a.IconButton,{"aria-label":"previous",onClick:m,type:"button",children:i.jsx(a.LuIcon,{icon:Ke,className:"-rotate-90 rounded-r-none"})}),i.jsx(a.IconButton,{"aria-label":"next",onClick:C,type:"button",children:i.jsx(a.LuIcon,{icon:Ke,className:"rotate-90 rounded-l-none"})})]}),i.jsx(a.IconButton,{"aria-label":"delete",onClick:p,type:"button",children:i.jsx(a.LuIcon,{icon:we})})]})]})})]})});Vl.displayName="ImagesViewer";const oi=o.memo(t=>{const{children:e,open:n,onOpenChange:l,defaultOpen:s,modal:r,onConfirm:c}=t,[f,h]=o.useState([]),u=o.useCallback(p=>{p||h([]),l?.(p)},[l]),g=o.useCallback(p=>{h(y=>[...y,p])},[]),m=o.useCallback(p=>{h(y=>y.filter(F=>F!==p))},[]),C=o.useCallback(()=>{c?.(f)},[f,c]);return i.jsxs(a.Overlay.Root,{open:n,onOpenChange:u,defaultOpen:s,modal:r,children:[!!e&&i.jsx(a.Overlay.Trigger,{asChild:!0,children:e}),i.jsxs(a.Overlay.Content,{onOpenAutoFocus:a.preventDefault,children:[i.jsx(a.Overlay.Title,{className:"sr-only",children:"Image capturer"}),i.jsx(a.Overlay.Description,{className:"sr-only",children:"Capture one or more images."}),i.jsxs("div",{className:"bg-(--color-background) flex size-full flex-col gap-4 overflow-hidden py-4",children:[i.jsxs("div",{className:"flex h-max items-center justify-between gap-4 px-4",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(a.Overlay.Close,{asChild:!0,children:i.jsx(a.IconButton,{size:"md",variant:"surface",onClick:C,children:i.jsx(a.LuIcon,{icon:H})})}),f.length>0?i.jsx(Vl,{files:f,onDelete:m,children:i.jsxs(a.Button,{variant:"soft",accentColor:"base",children:[f.length," ",f.length>1?"images":"image"]})}):null]}),i.jsx(a.Overlay.Close,{asChild:!0,children:i.jsx(a.IconButton,{size:"md",variant:"soft",accentColor:"base",children:i.jsx(a.LuIcon,{icon:ne})})})]}),i.jsx(Fl,{onCapture:g})]})]})]})});oi.displayName="ImageCapturer";const wl=o.memo(t=>{const{children:e}=t,[n,l]=o.useState(null),s=o.useCallback(()=>{l(null)},[]),r=o.useCallback(f=>{l(f(s))},[s]),c=o.useCallback(()=>{n&&(n.onClose&&n.onClose(),s())},[s,n]);return i.jsxs(vl.Provider,{value:r,children:[e,n&&i.jsx(oi,{open:!0,onOpenChange:c,onConfirm:n.onConfirm,modal:n.modal})]})});wl.displayName="ImageCapturerProvider";const di=o.memo(t=>{const{ref:e,file:n,error:l,rightSlot:s,className:r,size:c,...f}=t;return i.jsxs(a.Card,{className:X.cx(r,"p-0! relative flex h-48 w-full flex-col overflow-hidden"),ref:e,size:"xs",...f,children:[!n&&!l&&i.jsx("div",{className:"absolute inset-0 flex grow items-center justify-center",children:i.jsx(a.Spinner,{size:c})}),!!n&&!l&&i.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-hidden p-3",children:i.jsx(be,{className:"block size-full max-w-full object-cover",file:n})}),!!l&&i.jsx("div",{className:"grow"}),(!!n||!!l)&&i.jsxs(i.Fragment,{children:[i.jsx(a.Separator,{size:"full"}),i.jsxs("div",{className:"flex w-full shrink-0 items-center gap-2 self-end p-3",children:[l?i.jsx(a.LuIcon,{color:"var(--base-11)",icon:He}):n&&i.jsx(a.LuIcon,{color:"var(--base-11)",icon:al}),i.jsx(a.Text,{className:"truncate",size:c,children:l??n?.name}),s]})]})]})});di.displayName="ImageCard";const ci=o.memo(t=>{const{file:e,...n}=t,l=ii(e);return i.jsx("video",{src:l??void 0,...n})});ci.displayName="VideoFile";const ui=o.memo(t=>{const{ref:e,file:n,className:l,error:s,rightSlot:r,size:c,...f}=t;return i.jsxs(a.Card,{className:X.cx(l,"p-0! relative flex h-48 w-full flex-col overflow-hidden"),ref:e,size:"xs",...f,children:[!n&&!s&&i.jsx("div",{className:"absolute inset-0 flex grow items-center justify-center",children:i.jsx(a.Spinner,{size:c})}),!!n&&!s&&i.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-hidden p-3",children:i.jsx(ci,{className:"block size-full max-w-full object-cover",file:n,controls:!0})}),!!s&&i.jsx("div",{className:"grow"}),(!!n||!!s)&&i.jsxs(i.Fragment,{children:[i.jsx(a.Separator,{size:"full"}),i.jsxs("div",{className:"flex w-full shrink-0 items-center gap-2 self-end p-3",children:[s?i.jsx(a.LuIcon,{color:"var(--danger-11)",icon:He}):n&&i.jsx(a.LuIcon,{color:"var(--base-11)",icon:Bs}),i.jsx(a.Text,{className:"truncate",size:c,children:s??n?.name}),r]})]})]})});ui.displayName="VideoCard";const hi=o.memo(t=>{const{fileOrPromise:e,onRemove:n,disabled:l,size:s}=t,[r,c]=o.useState(e instanceof xe?null:e),[f,h]=o.useState(null),u=Ze();Je.useActiveEffect(w=>{if(h(null),!(e instanceof xe)){c(e);return}c(null),e.then(M=>{w()&&c(M)}).catch(M=>{w()&&h(M instanceof Error?M.message:"Unknown error")})},[e]);const g=o.useCallback(()=>{if(!r)return;const w=new Blob([r]);Zn.saveAs(w,r.name)},[r]),m=o.useCallback(()=>{n(e)},[n,e]),C=o.useCallback(()=>{if(!r)return;const w=URL.createObjectURL(r);window.open(w,"_blank"),URL.revokeObjectURL(w)},[r]),p=o.useCallback(()=>{r&&u(w=>({file:r,onDelete:l?void 0:()=>{m(),w()}}))},[l,m,u,r]),y=o.useMemo(()=>i.jsx("div",{className:"flex grow justify-end",children:i.jsxs(a.Menu.Root,{modal:!0,children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.IconButton,{onClick:a.stopPropagation,type:"button",variant:"ghost",accentColor:"base",size:s,children:i.jsx(a.LuIcon,{icon:Qn})})}),i.jsxs(a.Menu.Content,{size:s,children:[i.jsxs(a.Menu.Item,{onSelect:g,disabled:!r,children:[i.jsx(a.LuIcon,{icon:Yn})," Download"]}),l?null:i.jsxs(i.Fragment,{children:[i.jsx(a.Menu.Separator,{}),i.jsxs(a.Menu.Item,{onSelect:m,children:[i.jsx(a.LuIcon,{icon:we})," Delete"]})]})]})]})}),[l,m,g,r,s]),F=!!r?.type.startsWith("image/"),V=!!r?.type.startsWith("video/");return F?i.jsx(di,{className:"cursor-pointer",onClick:p,file:r,error:f??void 0,rightSlot:y,size:s}):V?i.jsx(ui,{className:"cursor-pointer",onClick:p,file:r,error:f??void 0,rightSlot:y,size:s}):i.jsx(ei,{className:"cursor-pointer",file:r,error:f??void 0,onClick:C,rightSlot:y,size:s})});hi.displayName="DisplayFile";const Sl=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=ri(),g=o.useRef(null),m=o.useCallback(x=>{const T=e.cleanValue({...l,status:x});c(T),r()},[e,r,c,l]),C=o.useCallback(x=>{const T=x.target.value,_={...l,notes:T};c(_)},[l,c]),p=o.useCallback(()=>{r()},[r]),y=o.useCallback(x=>{const T=l.files.filter(({uuid:_})=>_!==x.uuid);c({...l,files:T}),r()},[c,r,l]),F=o.useCallback(()=>{u(x=>({onConfirm:T=>{const _=T.map(Z=>le.from(b.v4(),Z));c({...l,files:[...l.files,..._]}),r()},onClose:()=>{r(),x()}}))},[r,c,l,u]),V=o.useCallback(()=>{g.current?.click()},[]),w=o.useCallback(x=>{const T=Array.from(x.target.files??[]).map(Z=>le.from(b.v4(),Z)),_={...l,files:[...l.files,...T]};c(_),r()},[r,c,l]);o.useEffect(()=>{if(!g.current)return;const x=new AbortController;return g.current.addEventListener("cancel",()=>{r()},{signal:x.signal}),()=>{x.abort()}},[r,l]);const M=l.status&&e.showNotesAndFilesOn.includes(l.status),N=`${e.id}-status`,S=`${e.id}-notes`,q=`${e.id}-files`;return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx(a.RadioGroup.Root,{id:N,className:"flex gap-2",name:s,value:l.status,disabled:h,accentColor:"base",variant:"surface",size:n,onValueChange:m,children:Ee.map(x=>{const{label:T}=ce[x];return i.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(a.RadioGroup.Item,{value:x,children:i.jsx(a.RadioGroup.Indicator,{children:i.jsx(a.LuIcon,{icon:il,className:"fill-current"})})}),i.jsx(a.Text,{size:n,accentColor:"base",className:"truncate",children:T})]},`${e.id}-${x}`)})}),M&&i.jsxs(i.Fragment,{children:[i.jsx("div",{children:i.jsx(a.TextArea,{id:S,value:l.notes??"",name:s,onChange:C,onBlur:p,className:"field-sizing-content min-h-12 w-full",placeholder:"Notes",resize:"vertical",accentColor:"base",variant:"surface",size:n,disabled:h})}),i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{className:"w-max",size:n,variant:"surface",accentColor:"base",type:"button",disabled:h,children:[i.jsx(a.LuIcon,{icon:Rn}),"Select files"]})}),i.jsxs(a.Menu.Content,{size:n,children:[i.jsxs(a.Menu.Item,{onSelect:F,children:[i.jsx(a.LuIcon,{icon:nl}),"Take photos"]}),i.jsxs(a.Menu.Item,{onSelect:V,children:[i.jsx(a.LuIcon,{icon:ol}),"Attach files"]})]})]}),i.jsx("input",{id:q,name:s,type:"file",ref:g,multiple:!0,className:"hidden",onChange:w,value:""}),l.files.length>0&&i.jsx("div",{className:"flex h-max flex-wrap gap-2",children:l.files.map(x=>i.jsx(hi,{size:n,fileOrPromise:x,onRemove:y,disabled:h},x.uuid))})]})]})]})})});Sl.displayName="PassFailFieldInput";const fi=t=>typeof t=="string"&&Ee.includes(t),bl=t=>!(t===null||typeof t!="object"||!("status"in t)||!fi(t.status)||!("notes"in t)||typeof t.notes!="string"||!("files"in t)||!(Array.isArray(t.files)&&t.files.length===0)),zl=t=>!(t===null||typeof t!="object"||!("status"in t)||!fi(t.status)||!("notes"in t)||typeof t.notes!="string"||!("files"in t)||!yl(t.files)),Nl=t=>({status:t.status,notes:t.notes,files:[]}),xl=t=>({status:t.status,notes:t.notes,files:[]}),Il=(t,e)=>!(t.status!==e.status||t.notes!==e.notes||!Ye(t.files,e.files)),Ml=(t,e)=>!(t.status!==e.status||t.notes!==e.notes||t.files.length!==e.files.length);class ue extends I{type="pass-fail";showNotesAndFilesOn;constructor(e){const{showNotesAndFilesOn:n,...l}=e;super(l),this.showNotesAndFilesOn=n}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new te({id:`${n}showNotesAndFilesOn`,label:"Show notes and files on",description:"Show the notes and files on desired statuses.",options:Ee.map(l=>{const{label:s}=ce[l];return{value:l,label:s}}),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 ue({...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(),n=this.showNotesAndFilesOn,l=this.blankValue();return n.length>0&&(e.push(s=>{if(!(!s.status||!n.includes(s.status))&&l.notes===s.notes)return"Notes is required."}),e.push(s=>{if(!(!s.status||!n.includes(s.status))&&Ye(l.files,s.files))return"Files is required."})),e}static deserialize(e){const{showNotesAndFilesOn:n,...l}=e;return new ue({...l,showNotesAndFilesOn:n})}static fromConfig(e){return new ue(e)}static deserializeConfig(e){const{showNotesAndFilesOn:n,...l}=e;return{...I._deserializeConfig(l),showNotesAndFilesOn:n}}static serializeConfig(e){const{showNotesAndFilesOn:n,...l}=e;return{...I._serializeConfig(l),showNotesAndFilesOn:n}}serializeValue(e){return Nl(e)}deserializeValue(e){return xl(e)}render(){return i.jsx(Sl,{field:this})}isSerializedValue(e){return bl(e)}isValue(e){return zl(e)}areValuesEqual(e,n){return Il(e,n)}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,n){return Ml(e,n)}}const ql=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(C=>{c(C),r()},[r,c]),g=o.useCallback(()=>{r()},[r]),m=o.useCallback(()=>{c(null),r()},[r,c]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs(a.RadioGroup.Root,{id:e.id,name:s,className:"flex flex-col gap-1",accentColor:"base",variant:"surface",size:n,value:l??"",onValueChange:u,disabled:h,children:[e.options.map((C,p)=>i.jsxs("label",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(a.RadioGroup.Item,{value:C.value,onBlur:g,children:i.jsx(a.RadioGroup.Indicator,{children:i.jsx(a.LuIcon,{icon:il,className:"fill-current"})})}),i.jsx(a.Text,{size:n,accentColor:"base",className:"truncate",children:C.label})]},`${e.id}-${C.value}-${p}`)),!!l&&i.jsxs(a.Button,{onClick:m,className:"-mx-2 w-max",type:"button",variant:"ghost",accentColor:"base",size:n,children:[i.jsx(a.LuIcon,{icon:ne}),"Clear"]})]})})});ql.displayName="RadioFieldInput";class he extends R{type="radio";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new he({...this.getOptions(),id:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new he(e)}static fromConfig(e){return new he(e)}static deserializeConfig(e){return R._deserializeConfig(e)}static serializeConfig(e){return R._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(ql,{field:this})}isSerializedValue(e){return typeof e!="string"&&e!==null?!1:new Set([null,...this.options.map(({value:l})=>l)]).has(e)}isValue(e){return this.isSerializedValue(e)}blankValue(){return null}areValuesEqual(e,n){return e===n}blankSerializedValue(){return null}areSerializedValuesEqual(e,n){return e===n}}const _s=X.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"]}}}),Ol=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(C=>{c(C),r()},[r,c]),g=o.useCallback(()=>{c(null),r()},[r,c]),m=Array.from({length:e.maxRating},(C,p)=>p+1);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs("div",{className:"flex flex-row items-center gap-1",children:[i.jsx(a.Rating.Root,{id:e.id,name:s,className:"flex items-center gap-0.5",value:l,onValueChange:u,disabled:h,children:m.map(C=>i.jsx(a.Rating.Item,{value:C,className:_s({size:n}),children:i.jsx(a.LuIcon,{icon:dl,className:"size-full group-data-[active=true]:fill-current"})},`${e.id}-${C}`))}),!h&&l!==null&&i.jsx(a.IconButton,{onClick:g,type:"button",variant:"ghost",accentColor:"base",size:n,children:i.jsx(a.LuIcon,{icon:ne})})]})})});Ol.displayName="RatingFieldInput";class fe extends I{type="rating";maxRating;constructor(e){const{maxRating:n,...l}=e;super(l),this.maxRating=n}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new G({label:"Max Rating",description:"Maximum rating value",integers:!0,required:!1,minimum:1,maximum:10,id:`${n}maxRating`}),showDirectly:!1}]}getFieldValidators(){const e=super.getFieldValidators(),n=this.maxRating;return e.push(l=>{if(typeof l=="number"&&(l<1||l>n))return`Rating must be between 1 and ${n}.`}),e}serialize(){return{...super.serialize(),maxRating:this.maxRating}}config(){return{...super.config(),maxRating:this.maxRating}}getOptions(){return{...super.getOptions(),maxRating:this.maxRating}}duplicate(e){return new fe({...this.getOptions(),id:e})}setOptions(e){"maxRating"in e&&e.maxRating!==void 0&&(this.maxRating=e.maxRating),super.setOptions(e)}static deserialize(e){return new fe(e)}static fromConfig(e){return new fe(e)}static deserializeConfig(e){const{maxRating:n,...l}=e;return{...I._deserializeConfig(l),maxRating:n}}static serializeConfig(e){const{maxRating:n,...l}=e;return{...I._serializeConfig(l),maxRating:n}}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(Ol,{field:this})}isSerializedValue(e){return this.isValue(e)}isValue(e){return typeof e=="number"&&!isNaN(e)||e===null}areValuesEqual(e,n){return e===n}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,n){return e===n}}const pi=o.createContext(null),Tl=()=>{const t=o.use(pi);if(!t)throw new Error("useScannerContext must be used within a component tree wrapped by ScannerProvider.");return t},Ds=()=>{const t=o.use(pi);if(!t)throw new Error("useScanner must be used within a component tree wrapped by ScannerProvider.");return t.openScanner},Qe=o.memo(t=>{const{children:e,open:n,onOpenChange:l,defaultOpen:s,modal:r,...c}=t;return i.jsxs(a.Overlay.Root,{open:n,onOpenChange:l,defaultOpen:s,modal:r,children:[!!e&&i.jsx(a.Overlay.Trigger,{asChild:!0,children:e}),i.jsxs(a.Overlay.Content,{children:[i.jsx(a.Overlay.Title,{className:"sr-only",children:"Scanner"}),i.jsx(a.Overlay.Description,{className:"sr-only",children:"Scan a barcode or a qr code."}),i.jsx(El,{...c})]})]})});Qe.displayName="Scanner";const El=o.memo(t=>{const{paused:e,formats:n,timeBetweenDecodingAttempts:l,trySkew:s,onDecodeResult:r,onDecodeError:c,onError:f}=t,{wasmUrl:h}=Tl(),{ref:u}=ns.useZxing({wasmUrl:h,paused:e,formats:n,timeBetweenDecodingAttempts:l,trySkew:s,onDecodeResult:r,onDecodeError:c,onError:f,constraints:{video:{width:{ideal:1920,min:1280},height:{ideal:1080,min:720},aspectRatio:{ideal:16/9},facingMode:"environment"}}});return i.jsxs("div",{className:"bg-(--color-background) flex size-full flex-col justify-center overflow-hidden",children:[i.jsx("div",{className:"flex w-full justify-end p-4",children:i.jsx(a.Overlay.Close,{asChild:!0,children:i.jsx(a.IconButton,{"aria-label":"close",variant:"soft",accentColor:"base",children:i.jsx(a.LuIcon,{icon:ne})})})}),i.jsx("div",{className:"max-h-full w-full grow overflow-hidden p-4",children:i.jsx("video",{className:"size-full",ref:u,muted:!0,playsInline:!0})})]})});El.displayName="ScannerInternal";const Ll=o.memo(t=>{const{children:e,wasmUrl:n}=t,[l,s]=o.useState(null),r=o.useCallback(()=>{s(null)},[]),c=o.useCallback(u=>{s(u(r))},[r]),f=o.useCallback(()=>{l&&(l.onClose&&l.onClose(),r())},[r,l]),h=o.useMemo(()=>({wasmUrl:n,openScanner:c}),[n,c]);return i.jsxs(pi,{value:h,children:[e,l&&i.jsx(Qe,{open:!0,onOpenChange:f,...l})]})});Ll.displayName="ScannerProvider";const Al=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),[u,g]=o.useState(!1),m=o.useCallback(V=>{const w=V.target.value;c(w)},[c]),C=o.useCallback(()=>{r()},[r]),p=o.useCallback(V=>{c(V.rawValue.trim()),r(),g(!1)},[c,r]),y=o.useCallback(()=>{g(!0)},[]),F=o.useCallback(()=>{g(!1),r()},[r]);return i.jsxs(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:[i.jsx(a.TextArea,{className:"field-sizing-content w-full",accentColor:"base",variant:"surface",size:n,id:e.id,name:s,value:l??"",placeholder:"Enter a qr or barcode",onChange:m,onBlur:C,disabled:h}),i.jsxs(a.Button,{onClick:y,className:"w-max",type:"button",variant:"soft",size:n,accentColor:"base",disabled:h,children:[i.jsx(a.LuIcon,{icon:Is}),"Scan"]}),i.jsx(Qe,{open:u,onDecodeResult:p,onOpenChange:F})]})});Al.displayName="ScanFieldInput";class Ie extends I{type="qr";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new Ie({...this.getOptions(),id:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new Ie(e)}static fromConfig(e){return new Ie(e)}static deserializeConfig(e){return I._deserializeConfig(e)}static serializeConfig(e){return I._serializeConfig(e)}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(Al,{field:this})}isSerializedValue(e){return typeof e=="string"}isValue(e){return typeof e=="string"}blankValue(){return""}areValuesEqual(e,n){return e===n}blankSerializedValue(){return""}areSerializedValuesEqual(e,n){return e===n}}const Bl=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(C=>{c(C??null),r()},[r,c]),g=o.useCallback(C=>{C||r()},[r]),m=o.useMemo(()=>e.options.find(C=>C.value===l),[e.options,l]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs(a.Menu.Root,{onOpenChange:g,align:"start",children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{id:e.id,name:s,className:"!justify-between",accentColor:"base",variant:"surface",type:"button",size:n,disabled:h,children:[i.jsx(a.Text,{className:"truncate",highContrast:!!m,children:m?m.label:e.placeholder??"Select one..."}),i.jsx(a.LuIcon,{icon:Be})]})}),i.jsx(a.Menu.Content,{size:n,children:i.jsx(a.Menu.Scroll,{children:i.jsx(a.Menu.SelectGroup,{required:!1,value:l??void 0,onValueChange:u,children:e.options.map((C,p)=>i.jsxs(a.Menu.SelectItem,{value:C.value,children:[i.jsx(a.Menu.SelectedIndicator,{children:i.jsx(a.LuIcon,{icon:H})}),C.label]},`${e.id}-${C.value}-${p}`))})})})]})})});Bl.displayName="SelectFieldInput";class pe extends R{type="select";placeholder;constructor(e){const{placeholder:n,...l}=e;super(l),this.placeholder=n}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 pe({...this.getOptions(),id:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new pe(e)}static fromConfig(e){return new pe(e)}static deserializeConfig(e){const{placeholder:n,...l}=e;return{...R._deserializeConfig(l),placeholder:n}}static serializeConfig(e){const{placeholder:n,...l}=e;return{...R._serializeConfig(l),placeholder:n}}serializeValue(e){return e}deserializeValue(e){return e}render(){return i.jsx(Bl,{field:this})}isSerializedValue(e){return typeof e!="string"&&e!==null?!1:new Set([null,...this.options.map(({value:l})=>l)]).has(e)}isValue(e){return this.isSerializedValue(e)}blankValue(){return null}areValuesEqual(e,n){return e===n}blankSerializedValue(){return null}areSerializedValuesEqual(e,n){return e===n}}const _l=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(C=>{const p=C.target.value;c(p)},[c]),g=o.useCallback(()=>{r()},[r]),m=o.useCallback(C=>{C.key==="Enter"&&C.preventDefault()},[]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsx(a.Input.Root,{accentColor:"base",variant:"surface",size:n,children:i.jsx(a.Input.Field,{id:e.id,className:"truncate",name:s,value:l??"",type:"text",placeholder:e.placeholder??"Enter a short description",onChange:u,onBlur:g,disabled:h,onKeyDown:m})})})});_l.displayName="StringFieldInput";class ge extends ze{type="string";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new ge({...this.getOptions(),id:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new ge(e)}static fromConfig(e){return new ge(e)}static deserializeConfig(e){return ze._deserializeConfig(e)}static serializeConfig(e){return ze._serializeConfig(e)}render(){return i.jsx(_l,{field:this})}}const Dl=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(m=>{const C=m.target.value;c(C)},[c]),g=o.useCallback(()=>{r()},[r]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsx(a.TextArea,{id:e.id,value:l??"",name:s,onChange:u,onBlur:g,className:"field-sizing-content min-h-12",placeholder:e.placeholder??"Enter a description",resize:"vertical",accentColor:"base",variant:"surface",size:n,disabled:h})})});Dl.displayName="TextFieldInput";class me extends ze{type="text";constructor(e){super(e)}serialize(){return super.serialize()}config(){return super.config()}getOptions(){return super.getOptions()}duplicate(e){return new me({...this.getOptions(),id:e})}setOptions(e){super.setOptions(e)}static deserialize(e){return new me(e)}static fromConfig(e){return new me(e)}static deserializeConfig(e){return ze._deserializeConfig(e)}static serializeConfig(e){return ze._serializeConfig(e)}render(){return i.jsx(Dl,{field:this})}}const gi=Ps(),Pl=new Set(gi);function Ps(t=!0){const e=new Set;for(let n=-12;n<=14;n++){const l=n>=0?"+":"-",s=Math.abs(n).toString().padStart(2,"0");e.add(`${l}${s}:00`)}if(t){const n=[-12.5,-9.5,-3.5,3.5,4.5,5.5,6.5,9.5,10.5,12.5];for(const l of n){const s=l>=0?"+":"-",r=Math.floor(Math.abs(l)).toString().padStart(2,"0");e.add(`${s}${r}:30`)}}return Array.from(e).sort((n,l)=>$l(n)-$l(l))}function $l(t){const e=t[0]==="+"?1:-1,n=Number(t.slice(1,3)),l=Number(t.slice(4,6));return e*(n*60+l)}const $s="+00:00",ks=/^T([01]\d|2[0-3]):([0-5]\d):00([+-]\d{2}:\d{2})$/,Re=t=>typeof t=="string"&&Pl.has(t),kl=()=>{const t=-new Date().getTimezoneOffset(),e=t>=0?"+":"-",n=Math.abs(t),l=Math.floor(n/60),s=n%60,r=`${e}${l.toString().padStart(2,"0")}:${s.toString().padStart(2,"0")}`;return Re(r)?r:$s};function jl(t){const e=/^([+-])(\d{2}):(\d{2})$/.exec(t);if(!e)throw new Error(`Invalid UTC offset: ${t}`);return(e[1]==="+"?1:-1)*(Number(e[2])*60+Number(e[3]))}const Pe=t=>{const e=ks.exec(t);if(!e)return null;const n=e[3];return Re(n)?{hours:Number(e[1]),minutes:Number(e[2]),utcOffset:n}:null},ee=t=>typeof t=="string"&&Pe(t)!==null,Ce=(t,e,n=kl())=>{if(!Number.isInteger(t)||t<0||t>23)throw new Error(`Invalid hour: ${t}`);if(!Number.isInteger(e)||e<0||e>59)throw new Error(`Invalid minute: ${e}`);if(!Re(n))throw new Error("Unsupported UTC offset");const l=t.toString().padStart(2,"0"),s=e.toString().padStart(2,"0");return`T${l}:${s}:00${n}`},en=t=>`UTC${t}`,ye=t=>{const e=Pe(t);if(!e)throw new Error(`Invalid time value: ${t}`);return(e.hours*60+e.minutes-jl(e.utcOffset)+1440)%1440},nn=(t,e=!0)=>{const n=Pe(t);if(!n)throw new Error(`Invalid time value: ${t}`);const l=(n.hours%12||12).toString().padStart(2,"0"),s=n.minutes.toString().padStart(2,"0"),r=n.hours>=12?"PM":"AM",c=`${l}:${s} ${r}`;return e?`${c} ${en(n.utcOffset)}`:c},js=t=>typeof t=="object"&&(ee(t.from)||ee(t.to)),mi=(t,e)=>{const n=ye(t),l=e.from?ye(e.from):null,s=e.to?ye(e.to):null;return l===null&&s===null?!0:l===null?n<=s:s===null?n>=l:l<=s?n>=l&&n<=s:n>=l||n<=s},tn=o.memo(t=>{const{value:e,onChange:n,onBlur:l,disabled:s,size:r="md",id:c,name:f,compact:h=!1}=t,u=e?Pe(e):null,g=u?`${u.hours.toString().padStart(2,"0")}:${u.minutes.toString().padStart(2,"0")}`:"",m=o.useCallback(y=>{const F=y.target.value;if(!F){n(null);return}const[V,w]=F.split(":").map(Number);n(Ce(V,w,u?.utcOffset))},[n,u?.utcOffset]),C=o.useCallback(y=>{u&&(n(Ce(u.hours,u.minutes,y)),l?.())},[l,n,u]),p=o.useCallback(y=>{y||l?.()},[l]);return i.jsxs("div",{className:"flex min-w-0 gap-2",children:[i.jsx(a.Input.Root,{className:"min-w-0 grow",accentColor:"base",variant:"surface",size:r,children:i.jsx(a.Input.Field,{id:c,name:f,className:X.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:g,onChange:m,onBlur:l,disabled:s})}),i.jsxs(a.Menu.Root,{align:"end",onOpenChange:p,children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",className:h?"!justify-between":"min-w-32 !justify-between",accentColor:"base",variant:"surface",size:r,disabled:s||!u,children:[i.jsx(a.Text,{className:"truncate",highContrast:!!u,children:u?en(u.utcOffset):"UTC offset"}),i.jsx(a.LuIcon,{icon:Be})]})}),i.jsx(a.Menu.Content,{size:r,children:i.jsx(a.Menu.Scroll,{children:i.jsx(a.Menu.SelectGroup,{required:!0,value:u?.utcOffset,onValueChange:C,children:gi.map(y=>i.jsxs(a.Menu.SelectItem,{value:y,children:[i.jsx(a.Menu.SelectedIndicator,{children:i.jsx(a.LuIcon,{icon:H})}),en(y)]},y))})})})]})]})});tn.displayName="TimeFieldControl";const Ci=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e});return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsx(tn,{id:e.id,name:s,size:n,value:l,onChange:c,onBlur:r,disabled:h})})});Ci.displayName="TimeFieldInput";class Me extends I{type="time";constructor(e){super(e)}static deserialize(e){return new Me(e)}static fromConfig(e){return new Me(e)}static deserializeConfig(e){return I._deserializeConfig(e)}static serializeConfig(e){return I._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 i.jsx(Ci,{field:this})}isSerializedValue(e){return e===null||ee(e)}isValue(e){return e===null||ee(e)}blankValue(){return null}blankSerializedValue(){return null}areSerializedValuesEqual(e,n){return e===n}areValuesEqual(e,n){return e===n}}const Ul=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=ri(),g=o.useRef(null),m=o.useCallback(()=>{u(N=>({onConfirm:S=>{const q=Array.from(S).map(T=>le.from(b.v4(),T)),x=[...l,...q];c(x),r()},onClose:()=>{r(),N()}}))},[r,c,l,u]),C=o.useCallback(()=>{g.current?.click()},[]),p=o.useCallback(()=>{if(!g.current)return;const N=g.current.files;if(!N){r();return}const S=Array.from(N).map(x=>le.from(b.v4(),x)),q=[...l,...S];c(q),r()},[r,c,l]),y=o.useCallback(N=>{const S=l.filter(({uuid:q})=>q!==N.uuid);c(S),r()},[l,c,r]);o.useEffect(()=>{if(!g.current)return;const N=new AbortController;return g.current.addEventListener("cancel",()=>{r()},{signal:N.signal}),()=>{N.abort()}},[r,l]);const F=e.maxFiles!==1,M=F?"Select files":"Select a file";return i.jsxs(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:[i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{className:"w-max",size:n,variant:"surface",accentColor:"base",type:"button",disabled:h,children:[i.jsx(a.LuIcon,{icon:Rn}),M]})}),i.jsxs(a.Menu.Content,{size:n,children:[i.jsxs(a.Menu.Item,{onSelect:m,children:[i.jsx(a.LuIcon,{icon:nl}),"Take photos"]}),i.jsxs(a.Menu.Item,{onSelect:C,children:[i.jsx(a.LuIcon,{icon:ol}),"Attach files"]})]})]}),i.jsx("input",{id:e.id,name:s,type:"file",ref:g,accept:e.extensions?.join(","),multiple:F,className:"hidden",onChange:p,value:""}),l.length>0&&i.jsx("div",{className:"mt-1 flex h-max flex-col gap-2",children:l.map(N=>i.jsx(hi,{size:n,fileOrPromise:N,onRemove:y,disabled:h},N.uuid))})]})});Ul.displayName="UploadFieldInput";class ve extends I{type="upload";extensions;maxSize;maxFiles;constructor(e){const{extensions:n,maxFiles:l,maxSize:s,...r}=e;super(r),this.maxSize=s,this.maxFiles=l,this.extensions=n}static getFieldCreationSchema(e=""){const n=e&&`${e}.`;return[{field:new G({label:"How many files can be uploaded?",description:"By default, only one file can be uploaded.",required:!1,minimum:0,id:`${n}maxFiles`,integers:!0}),showDirectly:!1},{field:new G({label:"What is the maximum size of each file?",description:"Maximum file size in MB.",required:!1,id:`${n}maxSize`,minimum:0,integers:!0}),showDirectly:!1},{field:new te({label:"Accepted file types",description:"Types of allowed files to upload. If left blank, all files will be accepted.",required:!1,id:`${n}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(),n=this.maxSize,l=n&&n*1e3*1e3,s=this.maxFiles;return typeof n=="number"&&typeof l=="number"&&e.push(r=>{if(r.some(c=>c instanceof le&&c.size>l))return`Files must be at most ${n}MB.`}),typeof s=="number"&&e.push(r=>{if(r.length>s)return`You can only upload ${s} 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 ve({...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 ve(e)}static fromConfig(e){return new ve(e)}static deserializeConfig(e){const{extensions:n,maxSize:l,maxFiles:s,...r}=e;return{...I._deserializeConfig(r),extensions:n,maxSize:l,maxFiles:s}}static serializeConfig(e){const{extensions:n,maxSize:l,maxFiles:s,...r}=e;return{...I._serializeConfig(r),extensions:n,maxSize:l,maxFiles:s}}serializeValue(e){return[]}deserializeValue(e){return[]}render(){return i.jsx(Ul,{field:this})}isSerializedValue(e){return Array.isArray(e)&&e.length===0}isValue(e){return Array.isArray(e)?e.every(n=>n instanceof xe||n instanceof le):!1}areValuesEqual(e,n){return Ye(e,n)}blankValue(){return[]}blankSerializedValue(){return[]}areSerializedValuesEqual(e,n){return e.length===n.length}}const Gl=o.memo(t=>{const{field:e}=t,{size:n}=o.use(B),{value:l,name:s,onBlur:r,onChange:c,error:f,disabled:h}=$({field:e}),u=o.useCallback(p=>{const y=p.target.value;y!==""&&!URL.canParse(y)||c(y!==""?new URL(y):null)},[c]),g=o.useCallback(()=>{r()},[r]),m=o.useCallback(p=>{p.key==="Enter"&&p.preventDefault()},[]),C=o.useCallback(()=>{l!==null&&window.open(l,"_blank","noopener,noreferrer")},[l]);return i.jsx(D,{size:n,inputId:e.id,label:e.label,description:e.description,required:e.required,error:f,image:e.image,children:i.jsxs("div",{className:"flex w-full gap-2",children:[i.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"surface",size:n,children:i.jsx(a.Input.Field,{id:e.id,className:"truncate",name:s,value:l?l.toString():"",type:"url",inputMode:"url",placeholder:e.placeholder??"https://example.com",onChange:u,onBlur:g,disabled:h,onKeyDown:m})}),i.jsx(a.IconButton,{size:n,variant:"soft",accentColor:"base",type:"button",disabled:l===null,onClick:C,children:i.jsx(a.LuIcon,{icon:Fs})})]})})});Gl.displayName="URLFieldInput";class qe extends I{type="url";placeholder;constructor(e){const{placeholder:n,...l}=e;super(l),this.placeholder=n}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 qe({...this.getOptions(),id:e})}setOptions(e){"placeholder"in e&&(this.placeholder=e.placeholder),super.setOptions(e)}static deserialize(e){return new qe(e)}static fromConfig(e){return new qe(e)}static deserializeConfig(e){const{placeholder:n,...l}=e;return{...I._deserializeConfig(l),placeholder:n}}static serializeConfig(e){const{placeholder:n,...l}=e;return{...I._serializeConfig(l),placeholder:n}}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,n){return e===n}areValuesEqual(e,n){return e?.toString()===n?.toString()}render(){return i.jsx(Gl,{field:this})}}const Le={date:Ne,time:Me,number:G,boolean:oe,select:pe,string:ge,url:qe,text:me,upload:ve,qr:Ie,"multi-string":se,"multi-select":te,radio:he,"checkbox-list":ie,"pass-fail":ue,otp:de,rating:fe},Jl=Object.keys(Le),L={"checkbox-list":{description:"Allows the user to select a multiple options from a list.",group:O.Selection,icon:vs,name:"Checkbox list"},"multi-select":{description:"Allows the user to select a multiple options from a list of options.",group:O.Selection,icon:zs,name:"Multi-select"},"multi-string":{description:"Allows the user to provide multiple unique strings.",group:O.Text,icon:xs,name:"Multi-string"},"pass-fail":{description:"Track pass, fail, or N/A outcome.",group:O.Assessment,icon:ys,name:"Pass - Fail"},boolean:{description:"Perfect for both optional and required yes/no questions.",group:O.Selection,icon:Ts,name:"Checkbox"},date:{description:"Allows specifying a date.",group:O.Temporal,icon:fs,name:"Date"},time:{description:"Allows specifying a time and UTC offset.",group:O.Temporal,icon:As,name:"Time"},number:{description:"Allows specifying a number within a given range.",group:O.Numeric,icon:Ss,name:"Number"},otp:{description:"Allows specifying a number within a given range.",group:O.Verification,icon:Ms,name:"OTP"},qr:{description:"Used for scanning/reading QR and barcodes.",group:O.Capture,icon:qs,name:"Scan"},radio:{description:"Allows the user to select a single option from a list of options.",group:O.Selection,icon:gs,name:"Option list"},rating:{description:"Allows users to select a rating value.",group:O.Assessment,icon:dl,name:"Rating"},select:{description:"Allows the user to select a single option from a list of options.",group:O.Selection,icon:Ns,name:"Dropdown"},string:{description:"Short text fields can hold up to 500 characters on a single line.",group:O.Text,icon:Ls,name:"Short Text"},text:{description:"Paragraph fields can hold up to 10000 characters and can have multiple lines.",group:O.Text,icon:cs,name:"Paragraph"},upload:{description:"Allows a file to be uploaded.",group:O.Capture,icon:Rn,name:"Upload"},url:{description:"Allows users to enter a URL.",group:O.Text,icon:bs,name:"URL"}},Hl={[O.Assessment]:{name:"Assessment"},[O.Capture]:{name:"Capture"},[O.Numeric]:{name:"Numeric"},[O.Selection]:{name:"Selection"},[O.Temporal]:{name:"Temporal"},[O.Text]:{name:"Text"},[O.Verification]:{name:"Verification"}},P="Unlabelled",ln="Unlabelled",an=t=>Le[t.type].deserialize(t);function Us(t){return t.map(an)}function Wl(t){return t.type==="section"?W.deserialize(t):an(t)}const sn=t=>t.map(Wl),yi=t=>Le[t.type].fromConfig(t),Kl=t=>t.map(e=>yi(e)),Zl=t=>t.type==="section"?W.fromConfig(t):yi(t),Xl=t=>t.map(Zl),vi=t=>Le[t.type].deserializeConfig(t),Yl=t=>t.map(vi),Ql=t=>t.type==="section"?W.deserializeConfig(t):vi(t),Rl=t=>t.map(Ql),Fi=t=>Le[t.type].serializeConfig(t),ea=t=>t.map(Fi),na=t=>t.type==="section"?W.serializeConfig(t):Fi(t),ia=t=>t.map(na);function Gs(t){const e={};for(const n of t)e[n.id]=n;return e}function ta(t,e,n=!0){const l=n?rn(t,e):e,s={};for(const r of t){if(!(r.id in l))continue;const c=l[r.id];s[r.id]=r.serializeValue(c)}return s}function la(t,e,n=!0){const l=n?Vi(t,e):e,s={};for(const r of t){if(!(r.id in l))continue;const c=l[r.id];s[r.id]=r.deserializeValue(c)}return s}function rn(t,e){const n={};for(const l of t){if(!(l.id in e))continue;const s=e[l.id];l.isValue(s)&&(n[l.id]=l.cleanValue(s))}return n}function Vi(t,e){const n={};for(const l of t){if(!(l.id in e))continue;const s=e[l.id];l.isSerializedValue(s)&&(n[l.id]=l.cleanSerializedValue(s))}return n}function aa(t,e){const n=rn(t,e),l={},s={};for(const r of t){if(!(r.id in n))continue;const c=n[r.id];switch(r.type){case"upload":if(!r.isValue(c))break;s[r.id]=c,l[r.id]=[];break;case"pass-fail":if(!r.isValue(c))break;s[r.id]=c.files,l[r.id]={...c,files:[]};break;default:l[r.id]=e[r.id]}}return[l,s]}function sa(t,e,n){const l={};for(const s of t){if(!(s.id in e))continue;const r=e[s.id];switch(s.type){case"upload":if(!s.isValue(r))break;l[s.id]=n[s.id]??[];break;case"pass-fail":if(!s.isValue(r))break;l[s.id]={...r,files:n[s.id]??[]};break;default:if(!s.isValue(r))break;l[s.id]=r}}return l}const ra=(t,e)=>{const n={};for(const l of t){const s=e[l.id];n[l.id]=s!==void 0?s:l.blankValue()}return n},oa=(t,e,n)=>{const l={};for(const s of t){const r=e[s.id],c=n[s.id];s.areValuesEqual(r,c)||(l[s.id]=c)}return l},da=(t,e,n)=>{const l={};for(const s of t){const r=e[s.id],c=n[s.id];s.areValuesEqual(r,c)&&(l[s.id]=c)}return l},wi=(t,e,n)=>t.every(l=>{const s=e[l.id],r=n[l.id];return l.areValuesEqual(s,r)}),Si=t=>{const e={};for(const n of t)e[n.id]=n.blankValue();return e},ca=(t,e)=>wi(t,e,Si(t)),Js=X.cva(["flex","flex-col"],{variants:{size:{xs:["gap-2"],sm:["gap-4"],md:["gap-6"],lg:["gap-8"],xl:["gap-10"]}}}),on=X.cva(["flex","flex-col"],{variants:{size:{xs:["gap-2"],sm:["gap-4"],md:["gap-6"],lg:["gap-8"],xl:["gap-10"]}}}),ua=o.memo(t=>{const{fieldSection:e}=t,{label:n,description:l}=e,s=Y.useWatch(),{fieldSchema:r,size:c}=o.use(B),f=o.useMemo(()=>r.getFieldSections(),[r]),h=o.useMemo(()=>f.findIndex(({id:C})=>C===e.id),[f,e.id]),u=o.useMemo(()=>f.filter(C=>e.id in C.conditions),[f,e.id]),g=o.useMemo(()=>u.length===0?!0:u.some(C=>C.getCondition(e.id).getApplyFn()(s)),[u,e,s]),m=Xe(e.fields);return g?i.jsxs(i.Fragment,{children:[h!==0?i.jsx(a.Separator,{size:"full"}):null,i.jsxs("div",{className:"flex flex-col gap-4",children:[(n||l)&&i.jsx(i.Fragment,{children:i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(a.Heading,{size:c,children:n}),l&&i.jsx(a.Text,{accentColor:"base",size:c,children:l})]})}),i.jsx("div",{className:on({size:c}),children:m})]})]}):null});ua.displayName="FieldSectionLayout";class W extends Se{type="section";label;description;conditions;fields=[];constructor(e){const{label:n,description:l,fields:s,conditions:r={},...c}=e;super(c),this.label=n,this.description=l,this.fields=this.initFields(s),this.conditions=this.initConditions(r)}serialize(){return{...super.serialize(),label:this.label,description:this.description,fields:this.fields.map(e=>e.serialize()),conditions:this.serializeConditions()}}static deserialize=e=>{const n=e.fields.map(an),l={};for(const[s,r]of Object.entries(e.conditions??{})){const c=Un(n,r);c&&(l[s]=c)}return new W({...e,fields:n,conditions:l})};static fromConfig=e=>{const n=Kl(e.fields),l={};for(const[s,r]of Object.entries(e.conditions??{})){const c=Un(n,r);c&&(l[s]=c)}return new W({...e,fields:n,conditions:l})};static deserializeConfig(e){const{label:n,description:l,fields:s,conditions:r,...c}=e;return{...Se._deserializeConfig(c),label:n,description:l,fields:Yl(s),conditions:r}}static serializeConfig(e){const{label:n,description:l,fields:s,conditions:r,...c}=e;return{...Se._serializeConfig(c),label:n,description:l,fields:ea(s),conditions:r}}serializeConditions(){const e={};for(const[n,l]of Object.entries(this.conditions??{})){const s=Bt(this.fields,l);s&&(e[n]=s)}return e}config(){return{...super.config(),label:this.label,description:this.description,fields:this.fields.map(e=>e.config()),conditions:this.serializeConditions()}}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(n=>n.duplicate(b.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 n={};for(const l of this.fields){const s=l.getError(e[l.id]);s&&(n[l.id]=s)}return n}fieldObserver=()=>{this.notify(this)};initFields=e=>{for(const n of e)n.observe(this.fieldObserver);return e};getFields(){return this.fields}addField(e,n){const l=[...this.fields];l.splice(n??this.fields.length,0,e),this.fields=this.initFields(l),this.notify(this)}moveField(e,n){if(!Number.isInteger(e)||!Number.isInteger(n)||e<0||e>=this.fields.length||n<0||n>=this.fields.length||e===n)return;const l=[...this.fields],[s]=l.splice(e,1);l.splice(n,0,s),this.fields=l,this.notify(this)}removeField(e){this.fields=this.initFields(this.fields.filter(({id:l})=>l!==e.id));const n={};for(const[l,s]of Object.entries(this.conditions)){const r=Gn(this.fields,s);r&&(n[l]=r)}this.conditions=n,this.notify(this)}conditionObserver=()=>{this.notify(this)};initConditions=e=>{for(const n of Object.values(e).flat())n.observe(this.conditionObserver);return e};getCondition(e){return this.conditions[e]}addCondition(e,n){this.conditions=this.initConditions({...this.conditions,[e]:n}),this.notify(this)}replaceCondition(e,n){this.conditions=this.initConditions({...this.conditions,[e]:n}),this.notify(this)}removeCondition(e){const n={...this.conditions};delete n[e],this.conditions=this.initConditions(n),this.notify(this)}render(){return i.jsx(ua,{fieldSection:this})}}class dn extends v{type="boolean";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===e}}class bi extends v{type="boolean";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n!==e}}const cn={equals:{klass:dn,label:"is",isTransferable:t=>!0,defaultValue:()=>!0},notEquals:{klass:bi,label:"is not",isTransferable:t=>!0,defaultValue:()=>!0}};class un extends v{type="checkbox-list";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.size===s.size&&s.isSubsetOf(l)}}}class zi extends v{type="checkbox-list";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.size!==s.size||!s.isSubsetOf(l)}}}class Ni extends v{type="checkbox-list";modifier="every";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.isSubsetOf(s)}}}class xi extends v{type="checkbox-list";modifier="some";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return!l.isDisjointFrom(s)}}}class Ii extends v{type="checkbox-list";modifier="none";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.isDisjointFrom(s)}}}const hn={equals:{klass:un,label:"is",isTransferable:t=>!0,defaultValue:()=>[]},notEquals:{klass:zi,label:"is not",isTransferable:t=>!0,defaultValue:()=>[]},every:{klass:Ni,label:"has all of",isTransferable:t=>!0,defaultValue:()=>[]},some:{klass:xi,label:"has any of",isTransferable:t=>!0,defaultValue:()=>[]},none:{klass:Ii,label:"has none of",isTransferable:t=>!0,defaultValue:()=>[]}};class $e extends ni{type="compound";conditions;constructor(e){const{conditions:n,...l}=e;super(l),this.conditions=this.initConditions(n)}conditionObserver=()=>{this.conditions=[...this.conditions],this.notify(this)};initConditions=e=>{for(const n of e)n.observe(this.conditionObserver);return e};serialize(){return{...super.serialize(),operator:this.operator,conditions:this.conditions.map(e=>e.serialize())}}isEmpty(){return this.conditions.length===0?!0:this.conditions.every(e=>e.type==="compound"&&e.isEmpty())}addCondition(e){this.conditions=this.initConditions([...this.conditions,e]),this.notify(this)}addConditions(e){this.conditions=this.initConditions([...this.conditions,...e]),this.notify(this)}replaceCondition(e,n){this.conditions=this.initConditions(this.conditions.map(l=>l.id===e.id?n:l)),this.notify(this)}removeCondition(e){this.conditions=this.initConditions(this.conditions.filter(n=>n.id!==e.id)),this.notify(this)}}class Oe extends $e{operator="and";getApplyFn(){const e=this.conditions.map(l=>l.getApplyFn()),n=this.isEmpty();return l=>n?!0:e.every(s=>s(l))}}class Mi extends $e{operator="or";getApplyFn(){const e=this.conditions.map(l=>l.getApplyFn()),n=this.isEmpty();return l=>n?!0:e.some(s=>s(l))}}class qi extends $e{operator="nand";getApplyFn(){const e=this.conditions.map(l=>l.getApplyFn()),n=this.isEmpty();return l=>n?!0:!e.every(s=>s(l))}}class Oi extends $e{operator="nor";getApplyFn(){const e=this.conditions.map(l=>l.getApplyFn()),n=this.isEmpty();return l=>n?!0:!e.some(s=>s(l))}}const ke={and:{label:"AND",blurb:"All conditions match",klass:Oe},or:{label:"OR",blurb:"At least one condition matches",klass:Mi},nand:{label:"NAND",blurb:"At least one condition does not match",klass:qi},nor:{label:"NOR",blurb:"No conditions match",klass:Oi}};class ha extends _e{condition;constructor(e){super(),this.condition=this.initCondition(e)}conditionObserver=()=>{this.condition=this.condition,this.notify(this)};initCondition=e=>(e.observe(this.conditionObserver),e);getCondition(){return this.condition}setCondition(e){this.condition=this.initCondition(e),this.notify(this)}applyCondition(e){return this.condition.getApplyFn()(e)}}const Hs=(t,e)=>o.useMemo(()=>{const n=new ha(t);return n.observe(l=>e(l.getCondition())),n},[t,e]);class fn extends v{type="date";modifier="equals";serializeValue(){return this.value.toISOString()}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n.getTime()===e.getTime()}}class Ti extends v{type="date";modifier="notEquals";serializeValue(){return this.value.toISOString()}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n.getTime()!==e.getTime()}}class Ei extends v{type="date";modifier="before";serializeValue(){return this.value.toISOString()}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n.getTime()<e.getTime()}}class Li extends v{type="date";modifier="after";serializeValue(){return this.value.toISOString()}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n.getTime()>e.getTime()}}class Ai extends v{type="date";modifier="in";serializeValue(){return{from:this.value.from?.toISOString()??null,to:this.value.to?.toISOString()??null}}getValueApplyFn(){const e=this.value;return n=>!(n===null||e.from&&e.from.getTime()>n.getTime()||e.to&&e.to.getTime()<n.getTime())}}class Bi extends v{type="date";modifier="notIn";serializeValue(){return{from:this.value.from?.toISOString()??null,to:this.value.to?.toISOString()??null}}getValueApplyFn(){const e=this.value;return n=>n===null?!1:!!(e.from&&e.from.getTime()>n.getTime()||e.to&&e.to.getTime()<n.getTime())}}const pn={equals:{klass:fn,label:"is",isTransferable:t=>t instanceof Date,defaultValue:()=>new Date(new Date().setHours(0,0,0,0))},notEquals:{klass:Ti,label:"is not",isTransferable:t=>t instanceof Date,defaultValue:()=>new Date(new Date().setHours(0,0,0,0))},before:{klass:Ei,label:"before",isTransferable:t=>t instanceof Date,defaultValue:()=>new Date(new Date().setHours(0,0,0,0))},after:{klass:Li,label:"after",isTransferable:t=>t instanceof Date,defaultValue:()=>new Date(new Date().setHours(0,0,0,0))},in:{klass:Ai,label:"in between",isTransferable:t=>!(t instanceof Date),defaultValue:()=>({from:void 0,to:void 0})},notIn:{klass:Bi,label:"not in between",isTransferable:t=>!(t instanceof Date),defaultValue:()=>({from:void 0,to:void 0})}};class gn extends v{type="multi-select";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.size===s.size&&s.isSubsetOf(l)}}}class _i extends v{type="multi-select";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.size!==s.size||!s.isSubsetOf(l)}}}class Di extends v{type="multi-select";modifier="every";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.isSubsetOf(s)}}}class Pi extends v{type="multi-select";modifier="some";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return!l.isDisjointFrom(s)}}}class $i extends v{type="multi-select";modifier="none";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.isDisjointFrom(s)}}}const mn={equals:{klass:gn,label:"is",isTransferable:t=>!0,defaultValue:()=>[]},notEquals:{klass:_i,label:"is not",isTransferable:t=>!0,defaultValue:()=>[]},every:{klass:Di,label:"has all of",isTransferable:t=>!0,defaultValue:()=>[]},some:{klass:Pi,label:"has any of",isTransferable:t=>!0,defaultValue:()=>[]},none:{klass:$i,label:"has none of",isTransferable:t=>!0,defaultValue:()=>[]}};class Cn extends v{type="multi-string";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.size===s.size&&s.isSubsetOf(l)}}}class ki extends v{type="multi-string";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.size!==s.size||!s.isSubsetOf(l)}}}class ji extends v{type="multi-string";modifier="every";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.isSubsetOf(s)}}}class Ui extends v{type="multi-string";modifier="some";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return!l.isDisjointFrom(s)}}}class Gi extends v{type="multi-string";modifier="none";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>{const l=new Set(e),s=new Set(n);return l.isDisjointFrom(s)}}}const yn={equals:{klass:Cn,label:"is",isTransferable:t=>!0,defaultValue:()=>[]},notEquals:{klass:ki,label:"is not",isTransferable:t=>!0,defaultValue:()=>[]},every:{klass:ji,label:"has all of",isTransferable:t=>!0,defaultValue:()=>[]},some:{klass:Ui,label:"has any of",isTransferable:t=>!0,defaultValue:()=>[]},none:{klass:Gi,label:"has none of",isTransferable:t=>!0,defaultValue:()=>[]}};class vn extends v{type="number";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n===e}}class Ji extends v{type="number";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n!==e}}class Hi extends v{type="number";modifier="lessThan";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n<e}}class Wi extends v{type="number";modifier="lessThanOrEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n<=e}}class Ki extends v{type="number";modifier="greaterThan";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n>e}}class Zi extends v{type="number";modifier="greaterThanOrEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n>=e}}class Xi extends v{type="number";modifier="inRange";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>!(n===null||e.to!==null&&n>e.to||e.from!==null&&n<e.from)}}class Yi extends v{type="number";modifier="notInRange";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:e.to!==null&&n>e.to||e.from!==null&&n<e.from}}const Fn={equals:{klass:vn,label:"is",isTransferable:t=>typeof t=="number",defaultValue:()=>0},notEquals:{klass:Ji,label:"is not",isTransferable:t=>typeof t=="number",defaultValue:()=>0},lessThan:{klass:Hi,label:"is less than",isTransferable:t=>typeof t=="number",defaultValue:()=>0},lessThanOrEquals:{klass:Wi,label:"is less than or equal to",isTransferable:t=>typeof t=="number",defaultValue:()=>0},greaterThan:{klass:Ki,label:"is greater than",isTransferable:t=>typeof t=="number",defaultValue:()=>0},greaterThanOrEquals:{klass:Zi,label:"is greater than or equal to",isTransferable:t=>typeof t=="number",defaultValue:()=>0},inRange:{klass:Xi,label:"is between",isTransferable:t=>typeof t=="object",defaultValue:()=>({from:null,to:null})},notInRange:{klass:Yi,label:"is not between",isTransferable:t=>typeof t=="object",defaultValue:()=>({from:null,to:null})}};class Vn extends v{type="otp";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===e}}class Qi extends v{type="otp";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n!==e}}class Ri extends v{type="otp";modifier="includes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n.includes(e)}}class et extends v{type="otp";modifier="excludes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>!n.includes(e)}}const wn={equals:{klass:Vn,label:"is",isTransferable:t=>!0,defaultValue:()=>""},notEquals:{klass:Qi,label:"is not",isTransferable:t=>!0,defaultValue:()=>""},includes:{klass:Ri,label:"includes",isTransferable:t=>!0,defaultValue:()=>""},excludes:{klass:et,label:"does not include",isTransferable:t=>!0,defaultValue:()=>""}};class Sn extends v{type="pass-fail";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n.status===null?!1:n.status===e}}class nt extends v{type="pass-fail";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n.status===null?!1:n.status!==e}}class it extends v{type="pass-fail";modifier="includes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n.status===null?!1:e.includes(n.status)}}class tt extends v{type="pass-fail";modifier="excludes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n.status===null?!1:!e.includes(n.status)}}const bn={equals:{klass:Sn,label:"is",isTransferable:t=>typeof t=="string",defaultValue:()=>"pass"},notEquals:{klass:nt,label:"is not",isTransferable:t=>typeof t=="string",defaultValue:()=>"pass"},includes:{klass:it,label:"is any of",isTransferable:t=>Array.isArray(t),defaultValue:()=>[]},excludes:{klass:tt,label:"is none of",isTransferable:t=>Array.isArray(t),defaultValue:()=>[]}};class zn extends v{type="radio";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n===e}}class lt extends v{type="radio";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n!==e}}class at extends v{type="radio";modifier="includes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:e.includes(n)}}class st extends v{type="radio";modifier="excludes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:!e.includes(n)}}const Nn={equals:{klass:zn,label:"is",isTransferable:t=>typeof t=="string",defaultValue:()=>""},notEquals:{klass:lt,label:"is not",isTransferable:t=>typeof t=="string",defaultValue:()=>""},includes:{klass:at,label:"is any of",isTransferable:t=>Array.isArray(t),defaultValue:()=>[]},excludes:{klass:st,label:"is none of",isTransferable:t=>Array.isArray(t),defaultValue:()=>[]}};class xn extends v{type="rating";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n===e}}class rt extends v{type="rating";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n!==e}}class ot extends v{type="rating";modifier="lessThan";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n<e}}class dt extends v{type="rating";modifier="lessThanOrEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n<=e}}class ct extends v{type="rating";modifier="greaterThan";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n>e}}class ut extends v{type="rating";modifier="greaterThanOrEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n>=e}}class ht extends v{type="rating";modifier="inRange";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>!(n===null||e.to!==null&&n>e.to||e.from!==null&&n<e.from)}}class ft extends v{type="rating";modifier="notInRange";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:e.to!==null&&n>e.to||e.from!==null&&n<e.from}}const In={equals:{klass:xn,label:"is",isTransferable:t=>typeof t=="number",defaultValue:()=>0},notEquals:{klass:rt,label:"is not",isTransferable:t=>typeof t=="number",defaultValue:()=>0},lessThan:{klass:ot,label:"is less than",isTransferable:t=>typeof t=="number",defaultValue:()=>0},lessThanOrEquals:{klass:dt,label:"is less than or equal to",isTransferable:t=>typeof t=="number",defaultValue:()=>0},greaterThan:{klass:ct,label:"is greater than",isTransferable:t=>typeof t=="number",defaultValue:()=>0},greaterThanOrEquals:{klass:ut,label:"is greater than or equal to",isTransferable:t=>typeof t=="number",defaultValue:()=>0},inRange:{klass:ht,label:"is between",isTransferable:t=>typeof t=="object",defaultValue:()=>({from:null,to:null})},notInRange:{klass:ft,label:"is not between",isTransferable:t=>typeof t=="object",defaultValue:()=>({from:null,to:null})}};class Mn extends v{type="qr";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===e}}class pt extends v{type="qr";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n!==e}}class gt extends v{type="qr";modifier="includes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n.includes(e)}}class mt extends v{type="qr";modifier="excludes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>!n.includes(e)}}const qn={equals:{klass:Mn,label:"is",isTransferable:t=>!0,defaultValue:()=>""},notEquals:{klass:pt,label:"is not",isTransferable:t=>!0,defaultValue:()=>""},includes:{klass:gt,label:"includes",isTransferable:t=>!0,defaultValue:()=>""},excludes:{klass:mt,label:"does not include",isTransferable:t=>!0,defaultValue:()=>""}};class On extends v{type="select";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n===e}}class Ct extends v{type="select";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:n!==e}}class yt extends v{type="select";modifier="includes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:e.includes(n)}}class vt extends v{type="select";modifier="excludes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===null?!1:!e.includes(n)}}const Tn={equals:{klass:On,label:"is",isTransferable:t=>typeof t=="string",defaultValue:()=>""},notEquals:{klass:Ct,label:"is not",isTransferable:t=>typeof t=="string",defaultValue:()=>""},includes:{klass:yt,label:"is any of",isTransferable:t=>Array.isArray(t),defaultValue:()=>[]},excludes:{klass:vt,label:"is none of",isTransferable:t=>Array.isArray(t),defaultValue:()=>[]}};class En extends v{type="string";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===e}}class Ft extends v{type="string";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n!==e}}class Vt extends v{type="string";modifier="includes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n.includes(e)}}class wt extends v{type="string";modifier="excludes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>!n.includes(e)}}const Ln={equals:{klass:En,label:"is",isTransferable:t=>!0,defaultValue:()=>""},notEquals:{klass:Ft,label:"is not",isTransferable:t=>!0,defaultValue:()=>""},includes:{klass:Vt,label:"includes",isTransferable:t=>!0,defaultValue:()=>""},excludes:{klass:wt,label:"does not include",isTransferable:t=>!0,defaultValue:()=>""}};class An extends v{type="text";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n===e}}class St extends v{type="text";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n!==e}}class bt extends v{type="text";modifier="includes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>n.includes(e)}}class zt extends v{type="text";modifier="excludes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>!n.includes(e)}}const Bn={equals:{klass:An,label:"is",isTransferable:t=>!0,defaultValue:()=>""},notEquals:{klass:St,label:"is not",isTransferable:t=>!0,defaultValue:()=>""},includes:{klass:bt,label:"includes",isTransferable:t=>!0,defaultValue:()=>""},excludes:{klass:zt,label:"does not include",isTransferable:t=>!0,defaultValue:()=>""}};class _n extends v{type="time";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>ee(n)?n===e:!1}}class Nt extends v{type="time";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>ee(n)?n!==e:!1}}class xt extends v{type="time";modifier="before";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>ee(n)?ye(n)<ye(e):!1}}class It extends v{type="time";modifier="after";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>ee(n)?ye(n)>ye(e):!1}}class Mt extends v{type="time";modifier="in";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>ee(n)?mi(n,e):!1}}class qt extends v{type="time";modifier="notIn";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>ee(n)?!mi(n,e):!1}}const Dn={equals:{klass:_n,label:"is",isTransferable:t=>typeof t=="string",defaultValue:()=>Ce(0,0)},notEquals:{klass:Nt,label:"is not",isTransferable:t=>typeof t=="string",defaultValue:()=>Ce(0,0)},before:{klass:xt,label:"before",isTransferable:t=>typeof t=="string",defaultValue:()=>Ce(0,0)},after:{klass:It,label:"after",isTransferable:t=>typeof t=="string",defaultValue:()=>Ce(0,0)},in:{klass:Mt,label:"in between",isTransferable:t=>typeof t=="object",defaultValue:()=>({from:null,to:null})},notIn:{klass:qt,label:"not in between",isTransferable:t=>typeof t=="object",defaultValue:()=>({from:null,to:null})}};class Pn extends v{type="upload";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){return e=>e.length>0}}class Ot extends v{type="upload";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){return e=>e.length===0}}const $n={equals:{klass:Pn,label:"is",isTransferable:t=>!0,defaultValue:()=>!0},notEquals:{klass:Ot,label:"is not",isTransferable:t=>!0,defaultValue:()=>!0}};class kn extends v{type="url";modifier="equals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>(n?.toString()??"")===e}}class Tt extends v{type="url";modifier="notEquals";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>(n?.toString()??"")!==e}}class Et extends v{type="url";modifier="includes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>(n?.toString()??"").includes(e)}}class Lt extends v{type="url";modifier="excludes";serializeValue(){return this.value}getValueApplyFn(){const e=this.value;return n=>!(n?.toString()??"").includes(e)}}const jn={equals:{klass:kn,label:"is",isTransferable:t=>!0,defaultValue:()=>""},notEquals:{klass:Tt,label:"is not",isTransferable:t=>!0,defaultValue:()=>""},includes:{klass:Et,label:"includes",isTransferable:t=>!0,defaultValue:()=>""},excludes:{klass:Lt,label:"does not include",isTransferable:t=>!0,defaultValue:()=>""}},Ws={date:{equals:(t,e)=>new fn({...t,field:e,value:new Date(t.value)}),notEquals:(t,e)=>new Ti({...t,field:e,value:new Date(t.value)}),before:(t,e)=>new Ei({...t,field:e,value:new Date(t.value)}),after:(t,e)=>new Li({...t,field:e,value:new Date(t.value)}),in:(t,e)=>new Ai({...t,field:e,value:{from:t.value.from?new Date(t.value.from):void 0,to:t.value.to?new Date(t.value.to):void 0}}),notIn:(t,e)=>new Bi({...t,field:e,value:{from:t.value.from?new Date(t.value.from):void 0,to:t.value.to?new Date(t.value.to):void 0}})},boolean:{equals:(t,e)=>new dn({...t,field:e}),notEquals:(t,e)=>new bi({...t,field:e})},"checkbox-list":{equals:(t,e)=>new un({...t,field:e}),notEquals:(t,e)=>new zi({...t,field:e}),every:(t,e)=>new Ni({...t,field:e}),none:(t,e)=>new Ii({...t,field:e}),some:(t,e)=>new xi({...t,field:e})},"multi-select":{equals:(t,e)=>new gn({...t,field:e}),notEquals:(t,e)=>new _i({...t,field:e}),every:(t,e)=>new Di({...t,field:e}),none:(t,e)=>new $i({...t,field:e}),some:(t,e)=>new Pi({...t,field:e})},"multi-string":{equals:(t,e)=>new Cn({...t,field:e}),notEquals:(t,e)=>new ki({...t,field:e}),every:(t,e)=>new ji({...t,field:e}),none:(t,e)=>new Gi({...t,field:e}),some:(t,e)=>new Ui({...t,field:e})},number:{equals:(t,e)=>new vn({...t,field:e}),notEquals:(t,e)=>new Ji({...t,field:e}),greaterThan:(t,e)=>new Ki({...t,field:e}),greaterThanOrEquals:(t,e)=>new Zi({...t,field:e}),inRange:(t,e)=>new Xi({...t,field:e}),lessThan:(t,e)=>new Hi({...t,field:e}),lessThanOrEquals:(t,e)=>new Wi({...t,field:e}),notInRange:(t,e)=>new Yi({...t,field:e})},otp:{equals:(t,e)=>new Vn({...t,field:e}),notEquals:(t,e)=>new Qi({...t,field:e}),excludes:(t,e)=>new et({...t,field:e}),includes:(t,e)=>new Ri({...t,field:e})},"pass-fail":{equals:(t,e)=>new Sn({...t,field:e}),notEquals:(t,e)=>new nt({...t,field:e}),excludes:(t,e)=>new tt({...t,field:e}),includes:(t,e)=>new it({...t,field:e})},radio:{equals:(t,e)=>new zn({...t,field:e}),notEquals:(t,e)=>new lt({...t,field:e}),excludes:(t,e)=>new st({...t,field:e}),includes:(t,e)=>new at({...t,field:e})},rating:{equals:(t,e)=>new xn({...t,field:e}),notEquals:(t,e)=>new rt({...t,field:e}),greaterThan:(t,e)=>new ct({...t,field:e}),greaterThanOrEquals:(t,e)=>new ut({...t,field:e}),inRange:(t,e)=>new ht({...t,field:e}),lessThan:(t,e)=>new ot({...t,field:e}),lessThanOrEquals:(t,e)=>new dt({...t,field:e}),notInRange:(t,e)=>new ft({...t,field:e})},qr:{equals:(t,e)=>new Mn({...t,field:e}),notEquals:(t,e)=>new pt({...t,field:e}),excludes:(t,e)=>new mt({...t,field:e}),includes:(t,e)=>new gt({...t,field:e})},select:{equals:(t,e)=>new On({...t,field:e}),notEquals:(t,e)=>new Ct({...t,field:e}),excludes:(t,e)=>new vt({...t,field:e}),includes:(t,e)=>new yt({...t,field:e})},string:{equals:(t,e)=>new En({...t,field:e}),notEquals:(t,e)=>new Ft({...t,field:e}),excludes:(t,e)=>new wt({...t,field:e}),includes:(t,e)=>new Vt({...t,field:e})},text:{equals:(t,e)=>new An({...t,field:e}),notEquals:(t,e)=>new St({...t,field:e}),excludes:(t,e)=>new zt({...t,field:e}),includes:(t,e)=>new bt({...t,field:e})},time:{equals:(t,e)=>new _n({...t,field:e}),notEquals:(t,e)=>new Nt({...t,field:e}),after:(t,e)=>new It({...t,field:e}),before:(t,e)=>new xt({...t,field:e}),in:(t,e)=>new Mt({...t,field:e}),notIn:(t,e)=>new qt({...t,field:e})},url:{equals:(t,e)=>new kn({...t,field:e}),notEquals:(t,e)=>new Tt({...t,field:e}),excludes:(t,e)=>new Lt({...t,field:e}),includes:(t,e)=>new Et({...t,field:e})},upload:{equals:(t,e)=>new Pn({...t,field:e}),notEquals:(t,e)=>new Ot({...t,field:e})}},Ks={and:(t,e)=>new Oe({...t,conditions:e}),nand:(t,e)=>new qi({...t,conditions:e}),nor:(t,e)=>new Oi({...t,conditions:e}),or:(t,e)=>new Mi({...t,conditions:e})},Un=(t,e)=>{if(!Dt(t,e))return null;if(e.type==="compound"){const n=At(t,e.conditions);return Ks[e.operator](e,n)}else{const n=t.find(l=>l.id===e.field);return Ws[e.type][e.modifier](e,n)}},At=(t,e)=>e.map(n=>Un(t,n)).filter(n=>!!n),Bt=(t,e)=>Gn(t,e)?e.serialize():null,fa=(t,e)=>e.map(n=>Bt(t,n)).filter(n=>!!n),Gn=(t,e)=>e.type==="compound"?(e.conditions=_t(t,e.conditions),e):new Set(t.map(l=>l.id)).has(e.field.id)?e:null,_t=(t,e)=>e.map(n=>Gn(t,n)).filter(n=>!!n),Dt=(t,e)=>e.type==="compound"?{...e,conditions:Pt(t,e.conditions)}:new Set(t.map(l=>l.id)).has(e.field)?e:null,Pt=(t,e)=>e.map(n=>Dt(t,n)).filter(n=>!!n),ae=o.createContext({}),j=(t,e,n)=>o.useCallback(l=>{const{klass:s,isTransferable:r,defaultValue:c}=e[l],f=t.getValue(),h=new s({id:t.id,value:r(f)?f:c(),field:t.field});n(t,h)},[t,e,n]),pa=o.memo,Fe=pa(function(t){const{ref:e,children:n,...l}=t,s=o.useCallback(r=>typeof n=="function"?i.jsxs(i.Fragment,{children:[n(r),i.jsx(a.Menu.SelectedIndicator,{className:"ml-[auto]",children:i.jsx(a.LuIcon,{icon:H})})]}):i.jsxs(i.Fragment,{children:[n,i.jsx(a.Menu.SelectedIndicator,{className:"ml-[auto]",children:i.jsx(a.LuIcon,{icon:H})})]}),[n]);return i.jsx(a.Menu.SelectItem,{ref:e,...l,children:s})}),ga=pa(function(t){const{ref:e,children:n,...l}=t,s=o.useCallback(r=>typeof n=="function"?i.jsxs(i.Fragment,{children:[n(r),i.jsx(a.Menu.SelectedIndicator,{className:"ml-auto",children:i.jsx(a.LuIcon,{icon:H})})]}):i.jsxs(i.Fragment,{children:[n,i.jsx(a.Menu.SelectedIndicator,{className:"ml-auto",children:i.jsx(a.LuIcon,{icon:H})})]}),[n]);return i.jsx(a.Menu.MultiSelectItem,{ref:e,...l,children:s})}),$t=o.memo(t=>{const{ref:e,children:n,...l}=t,s=o.useCallback(r=>typeof n=="function"?i.jsxs(i.Fragment,{children:[n(r),i.jsx(a.Menu.CheckboxItemIndicator,{className:"ml-[auto]",children:c=>c==="indeterminate"?i.jsx(a.LuIcon,{icon:We}):i.jsx(a.LuIcon,{icon:H})})]}):i.jsxs(i.Fragment,{children:[n,i.jsx(a.Menu.CheckboxItemIndicator,{className:"ml-[auto]",children:c=>c==="indeterminate"?i.jsx(a.LuIcon,{icon:We}):i.jsx(a.LuIcon,{icon:H})})]}),[n]);return i.jsx(a.Menu.SelectAllItem,{ref:e,...l,children:s})});$t.displayName="SelectAllItemTemplate";const kt=o.memo(t=>{const{children:e,open:n,onOpenChange:l,defaultOpen:s,modal:r,size:c,align:f,accentColor:h="base",...u}=t;return i.jsxs(a.Popover.Root,{open:n,onOpenChange:l,defaultOpen:s,modal:r,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:e}),i.jsx(a.Popover.Content,{size:c,align:f,children:i.jsx(a.DayPicker,{size:c,accentColor:h,...u})})]})});kt.displayName="DayPickerPopover";const ma=o.memo(t=>{const{children:e,open:n,onOpenChange:l,defaultOpen:s,modal:r,size:c,accentColor:f="base",values:h,onValuesChange:u,placeholder:g="Enter text",...m}=t,[C,p]=o.useState(""),y=o.useCallback(M=>{p(M.target.value)},[]),F=o.useCallback(M=>{M.key==="Enter"&&(M.preventDefault(),M.stopPropagation(),u([...h,C]),p(""))},[C,u,h]),V=o.useCallback(()=>{u([...h,C]),p("")},[C,u,h]),w=o.useCallback(M=>{const N=[...h];N.splice(M,1),u(N)},[u,h]);return i.jsxs(a.Popover.Root,{open:n,onOpenChange:l,defaultOpen:s,modal:r,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:e}),i.jsx(a.Popover.Content,{size:c,onClick:a.stopPropagation,accentColor:f,...m,children:i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsxs("div",{className:"flex gap-2",children:[i.jsx(a.Input.Root,{className:"grow",accentColor:"base",variant:"outline",size:"sm",children:i.jsx(a.Input.Field,{value:C,onChange:y,onKeyDown:F,placeholder:g,...m})}),i.jsx(a.IconButton,{size:"sm",accentColor:"base",variant:"soft",type:"button",onClick:V,children:i.jsx(a.LuIcon,{icon:Q})})]}),h.length>0&&i.jsx("div",{className:"flex flex-col gap-1",children:h.map((M,N)=>i.jsxs(a.Badge,{className:"flex items-center justify-between gap-2",accentColor:"base",size:"sm",variant:"soft",children:[i.jsx("span",{className:"truncate",children:M}),i.jsx(a.IconButton,{size:"xs",variant:"ghost",type:"button",accentColor:"base",onClick:()=>{w(N)},children:i.jsx(a.LuIcon,{icon:ne})})]},`${M}-${N}`))})]})})]})});ma.displayName="NumberInputPopover";const Te=o.memo(t=>{const{children:e,open:n,onOpenChange:l,defaultOpen:s,modal:r,size:c,accentColor:f="base",value:h,onValueChange:u,placeholder:g="Enter a number",...m}=t,[C,p]=o.useState(null);o.useEffect(()=>{h!==void 0&&p(h)},[h]);const y=o.useCallback(V=>{const w=V.target.valueAsNumber;p(isNaN(w)?null:w)},[]),F=o.useCallback(V=>{const w=V.target.valueAsNumber;u?.(isNaN(w)?null:w)},[u]);return i.jsxs(a.Popover.Root,{open:n,onOpenChange:l,defaultOpen:s,modal:r,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:e}),i.jsx(a.Popover.Content,{size:c,onClick:a.stopPropagation,...m,children:i.jsx(a.Input.Root,{size:c,accentColor:f,children:i.jsx(a.Input.Field,{placeholder:g,type:"number",value:C??"",onChange:y,onBlur:F})})})]})});Te.displayName="NumberInputPopover";const k=t=>{const{condition:e,onClick:n,...l}=t,s=o.useCallback(()=>{n(e)},[e,n]);return i.jsx(a.IconButton,{onClick:s,...l,children:i.jsx(a.LuIcon,{icon:ne})})};k.displayName="RemoveConditionButton";const je=o.memo(t=>{const{ref:e,selectFieldOptions:n,...l}=t,s=o.useMemo(()=>re(n),[n]);return i.jsxs(a.Menu.MultiSelectGroup,{ref:e,...l,children:[i.jsx($t,{children:"Select all"}),s.map(r=>i.jsx(ga,{value:r.value,children:i.jsx("span",{className:"truncate",children:r.label})},r.value))]})});je.displayName="SelectFieldOptionMultiSelectGroup";const jt=o.memo(t=>{const{ref:e,selectFieldOptions:n,...l}=t,s=o.useMemo(()=>re(n),[n]);return i.jsx(a.Menu.SelectGroup,{ref:e,...l,children:s.map(r=>i.jsx(Fe,{value:r.value,children:i.jsx("span",{className:"truncate",children:r.label})},r.value))})});jt.displayName="SelectFieldOptionSelectGroup";const Ae=o.memo(t=>{const{children:e,open:n,onOpenChange:l,defaultOpen:s,modal:r,size:c,accentColor:f="base",value:h,onValueChange:u,placeholder:g="Enter text",...m}=t,[C,p]=o.useState(""),y=o.useCallback(V=>{p(V.target.value)},[]),F=o.useCallback(V=>{const w=V.target.value;u?.(w)},[u]);return o.useEffect(()=>{h&&p(h)},[h]),i.jsxs(a.Popover.Root,{open:n,onOpenChange:l,defaultOpen:s,modal:r,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:e}),i.jsx(a.Popover.Content,{size:c,onClick:a.stopPropagation,...m,children:i.jsx(a.Input.Root,{size:c,accentColor:f,children:i.jsx(a.Input.Field,{placeholder:g,type:"text",value:C,onChange:y,onBlur:F})})})]})});Ae.displayName="TextInputPopover";const Jn=o.memo(t=>{const{children:e,open:n,onOpenChange:l,defaultOpen:s,modal:r,size:c="sm",accentColor:f="base",value:h,onValueChange:u,...g}=t;return i.jsxs(a.Popover.Root,{open:n,onOpenChange:l,defaultOpen:s,modal:r,children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:e}),i.jsx(a.Popover.Content,{size:c,onClick:a.stopPropagation,accentColor:f,...g,children:i.jsx(tn,{compact:!0,size:c,value:h,onChange:u})})]})});Jn.displayName="TimeInputPopover";const U=t=>{const{children:e,required:n,value:l,defaultValue:s,onValueChange:r,modifierConfig:c,size:f="sm",variant:h,accentColor:u,radius:g}=t;return i.jsxs(a.Menu.Root,{align:"start",children:[i.jsx(a.Menu.ClickTrigger,{children:e}),i.jsx(a.Menu.Content,{size:f,variant:h,radius:g,accentColor:u,children:i.jsx(a.Menu.SelectGroup,{required:n,defaultValue:s,value:l,onValueChange:r,children:Object.keys(c).map(m=>{const{label:C}=c[m];return i.jsx(Fe,{value:m,children:C},m)})})})]})},Ca=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=e.getValue(),r=e.modifier,c=()=>{switch(s){case!0:return"true";case!1:return"false"}},f=j(e,cn,n);return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:r,onValueChange:f,modifierConfig:cn,children:i.jsx(a.Button,{type:"button",children:cn[r].label})}),i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:c()})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsxs(a.Menu.SelectGroup,{required:!0,value:s,onValueChange:e.setValue,children:[i.jsx(Fe,{value:!0,children:"true"}),i.jsx(Fe,{value:!1,children:"false"})]})})]}),i.jsx(k,{condition:e,onClick:l})]})},ya=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,hn,n),r=()=>i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",children:[e.getValue().length," options"]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(je,{selectFieldOptions:e.field.options,values:e.getValue(),onValuesChange:e.setValue})})]});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:hn,children:i.jsx(a.Button,{type:"button",children:hn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},Hn=o.memo(t=>{const{children:e,variant:n,size:l,accentColor:s,onSelectFieldType:r,...c}=t,f=o.useMemo(()=>{const h={[O.Assessment]:[],[O.Capture]:[],[O.Numeric]:[],[O.Selection]:[],[O.Temporal]:[],[O.Text]:[],[O.Verification]:[]};for(const u of Jl){const{group:g}=L[u];h[g].push(u)}return h},[]);return i.jsxs(a.Menu.Root,{...c,children:[i.jsx(a.Menu.ClickTrigger,{children:e}),i.jsx(a.Menu.Content,{variant:n,size:l,accentColor:s,children:i.jsx(a.Menu.Scroll,{children:Object.entries(f).map(([h,u])=>{const{name:g}=Hl[h];return u.length===0?null:i.jsxs(a.Menu.Group,{children:[i.jsx(a.Menu.Label,{children:g}),u.map(m=>i.jsx(va,{fieldType:m,onSelectFieldType:r},m))]},h)})})})]})});Hn.displayName="CreateFieldDropdownMenu";const va=o.memo(t=>{const{fieldType:e,onSelectFieldType:n}=t,l=o.useCallback(()=>{n(e)},[e,n]),{icon:s,name:r}=L[e];return i.jsxs(a.Menu.Item,{onSelect:l,children:[i.jsx(a.LuIcon,{icon:s}),i.jsx(a.Text,{className:"truncate",children:r})]})});va.displayName="CreateFieldDropdownMenuItem";const Wn=t=>{switch(t){case"text":return new me({label:"",required:!1,id:b.v4()});case"boolean":return new oe({label:"",required:!1,id:b.v4()});case"number":return new G({label:"",required:!1,id:b.v4()});case"date":return new Ne({label:"",required:!1,id:b.v4()});case"time":return new Me({label:"",required:!1,id:b.v4()});case"string":return new ge({label:"",required:!1,id:b.v4()});case"url":return new qe({label:"",required:!1,id:b.v4()});case"select":return new pe({label:"",options:[],required:!1,id:b.v4()});case"multi-string":return new se({label:"",required:!1,id:b.v4()});case"multi-select":return new te({label:"",options:[],required:!1,id:b.v4()});case"upload":return new ve({label:"",required:!1,id:b.v4()});case"qr":return new Ie({label:"",required:!1,id:b.v4()});case"radio":return new he({label:"",options:[],required:!1,id:b.v4()});case"checkbox-list":return new ie({label:"",options:[],required:!1,id:b.v4()});case"pass-fail":return new ue({label:"",required:!1,id:b.v4(),showNotesAndFilesOn:["fail"]});case"otp":return new de({label:"",required:!1,id:b.v4(),length:6});case"rating":return new fe({label:"",required:!1,id:b.v4(),maxRating:5})}},Ut=t=>{switch(t.type){case"text":return new An({id:b.v4(),value:"",field:t});case"boolean":return new dn({id:b.v4(),value:!0,field:t});case"number":return new vn({id:b.v4(),value:0,field:t});case"date":return new fn({id:b.v4(),value:new Date,field:t});case"time":return new _n({id:b.v4(),value:Ce(0,0),field:t});case"string":return new En({id:b.v4(),value:"",field:t});case"url":return new kn({id:b.v4(),value:"",field:t});case"select":return new On({id:b.v4(),value:"",field:t});case"multi-string":return new Cn({id:b.v4(),value:[],field:t});case"multi-select":return new gn({id:b.v4(),value:[],field:t});case"upload":return new Pn({id:b.v4(),value:!0,field:t});case"qr":return new Mn({id:b.v4(),value:"",field:t});case"radio":return new zn({id:b.v4(),value:"",field:t});case"checkbox-list":return new un({id:b.v4(),value:[],field:t});case"pass-fail":return new Sn({id:b.v4(),value:"pass",field:t});case"otp":return new Vn({id:b.v4(),value:"",field:t});case"rating":return new xn({id:b.v4(),value:0,field:t})}},Fa=(t,e)=>{switch(t){case"checkbox-list":return ie.getFieldCreationSchema(e);case"multi-select":return te.getFieldCreationSchema(e);case"number":return G.getFieldCreationSchema(e);case"radio":return he.getFieldCreationSchema(e);case"select":return pe.getFieldCreationSchema(e);case"string":return ge.getFieldCreationSchema(e);case"text":return me.getFieldCreationSchema(e);case"upload":return ve.getFieldCreationSchema(e);case"pass-fail":return ue.getFieldCreationSchema(e);case"otp":return de.getFieldCreationSchema(e);case"rating":return fe.getFieldCreationSchema(e);default:return}},Va=o.memo(t=>{const{popoverInputs:e,...n}=t;return i.jsxs(a.Popover.Root,{children:[i.jsx(a.Popover.Trigger,{asChild:!0,children:i.jsxs(a.Button,{variant:"soft",type:"button",size:"sm",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:Os}),"Settings"]})}),i.jsx(a.Popover.Content,{size:"sm",...n,children:i.jsx("div",{className:X.cx("flex w-full max-w-[350px] flex-col",on({size:"sm"})),children:e})})]})});Va.displayName="FieldSettingsPopover";const wa=o.memo(t=>{const{parentPath:e,fieldIndex:n,field:l}=t,s=Ze(),{disableRequiredFields:r}=o.use(ae),[c,f]=o.useState(void 0);Je.useActiveEffect(S=>{f(void 0);const q=l.image;if(q){if(!(q instanceof Promise)){f(q);return}q.then(x=>{S()&&f(x)})}},[l.image]);const h=o.useCallback(()=>{l.setOptions({image:void 0})},[l]),[u,g]=o.useMemo(()=>{const S=[],q=[],x=Fa(l.type,`${e}.${n}`)??[];for(const T of x)T.showDirectly?S.push(T.field):q.push(T.field);return[S,q]},[l,e,n]),m=Xe(u),C=Xe(g),p=g.length>0,y=o.useCallback(()=>{c&&s(()=>({file:c}))},[s,c]),F=o.useCallback(S=>{l.setOptions({required:!!S})},[l]),V=o.useCallback(S=>{l.setOptions({label:S.target.value})},[l]),w=o.useCallback(S=>{l.setOptions({description:S.target.value})},[l]),{icon:M,name:N}=L[l.type];return i.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[i.jsxs("div",{className:"flex w-full justify-between gap-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs(a.Badge,{accentColor:"base",variant:"soft",size:"sm",children:[i.jsx(a.LuIcon,{icon:M}),N]}),!r&&i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(a.Checkbox.Root,{checked:l.required,onCheckedChange:F,size:"sm",children:i.jsx(a.Checkbox.Indicator,{children:i.jsx(a.LuIcon,{icon:H})})}),i.jsx(a.Text,{size:"sm",accentColor:"base",children:"Required"})]})]}),p&&i.jsx(Va,{popoverInputs:C,align:"end"})]}),c&&i.jsxs("div",{className:"group relative inline-block w-full min-w-[300px]",children:[i.jsx(be,{className:"h-[100px] w-full min-w-[300px] cursor-pointer rounded-md object-cover",file:c,onClick:y}),i.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:h,size:"sm",children:i.jsx(a.LuIcon,{icon:we})})]}),i.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[i.jsx(a.Input.Root,{variant:"outline",size:"md",children:i.jsx(a.Input.Field,{placeholder:"Enter your question",value:l.label??"",onChange:V,maxLength:200})}),i.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a field description (optional)",value:l.description??"",onChange:w,maxLength:1e3,resize:"vertical",size:"md"})]}),u.length>0&&i.jsx("div",{className:X.cx("w-full",on({size:"sm"})),children:m})]})});wa.displayName="FieldBuilder";const Gt=o.memo(t=>{const{field:e,fieldSection:n,fieldIndex:l,sectionIndex:s}=t,r=o.useRef(null),c=`fields.${s}.fields`,f=o.useCallback(F=>{n.addField(Wn(F),l+1)},[l,n]),h=o.useCallback(()=>{n.addField(e.duplicate(b.v4()))},[e,n]),u=o.useCallback(F=>{const V=F==="up"?l-1:l+1;n.moveField(l,V)},[n,l]),g=o.useCallback(F=>{const{files:V}=F.target;if(!V||V.length!==1)return;const w=V.item(0);w&&e.setOptions({image:w})},[e]),m=o.useCallback(()=>{u("up")},[u]),C=o.useCallback(()=>{u("down")},[u]),p=o.useCallback(()=>{r.current?.click()},[]),y=o.useCallback(()=>{n.removeField(e)},[e,n]);return i.jsxs(a.Card,{className:"flex w-full items-center justify-between gap-4",size:"sm",children:[i.jsx(wa,{fieldIndex:l,field:e,parentPath:c}),i.jsxs(a.ButtonGroup,{className:"flex flex-col gap-0.5",variant:"ghost",accentColor:"base",size:"sm",children:[i.jsx(Hn,{onSelectFieldType:f,size:"sm",children:i.jsx(a.IconButton,{type:"button",children:i.jsx(a.LuIcon,{icon:Q})})}),i.jsx(a.IconButton,{type:"button",onClick:m,disabled:l===0,"aria-label":"Move field up",children:i.jsx(a.LuIcon,{icon:Ke})}),i.jsx(a.IconButton,{type:"button",onClick:C,disabled:l===n.fields.length-1,"aria-label":"Move field down",children:i.jsx(a.LuIcon,{icon:rl})}),i.jsx(a.IconButton,{type:"button",onClick:h,children:i.jsx(a.LuIcon,{icon:Xn})}),i.jsx(a.IconButton,{type:"button",onClick:p,children:i.jsx(a.LuIcon,{icon:al})}),i.jsx(a.IconButton,{type:"button",onClick:y,children:i.jsx(a.LuIcon,{icon:we})})]}),i.jsx("input",{className:"hidden",ref:r,type:"file",accept:"image/*",onChange:g})]})});Gt.displayName="FieldBuilderWithActions";const Sa=o.memo(t=>{const{children:e,variant:n,size:l,accentColor:s,fields:r,onSelectField:c,onSelectAllFields:f,...h}=t,u=o.useCallback(()=>{f?.(r)},[f,r]);return i.jsxs(a.Menu.Root,{...h,children:[i.jsx(a.Menu.ClickTrigger,{children:e}),i.jsx(a.Menu.Content,{variant:n,size:l,accentColor:s,children:i.jsxs(a.Menu.Scroll,{children:[f?i.jsx(a.Menu.Item,{onSelect:u,children:"Select all"}):null,r.map(g=>i.jsx(ba,{field:g,onSelectField:c},g.id))]})})]})});Sa.displayName="FieldDropdownMenu";const ba=o.memo(t=>{const{field:e,onSelectField:n}=t,l=o.useCallback(()=>{n(e)},[e,n]);return i.jsxs(a.Menu.Item,{onSelect:l,children:[i.jsx(a.LuIcon,{icon:L[e.type].icon}),e.label||P]})});ba.displayName="FieldDropdownMenuItem";const za=o.memo(t=>{const{children:e,variant:n,size:l,accentColor:s,fieldSections:r,onSelectFieldSection:c,...f}=t;return i.jsxs(a.Menu.Root,{...f,children:[i.jsx(a.Menu.ClickTrigger,{children:e}),i.jsx(a.Menu.Content,{variant:n,size:l,accentColor:s,children:r.map(h=>i.jsx(Na,{fieldSection:h,onSelectFieldSection:c},h.id))})]})});za.displayName="FieldSectionDropdownMenu";const Na=o.memo(t=>{const{fieldSection:e,onSelectFieldSection:n}=t,l=o.useCallback(()=>{n(e)},[e,n]);return i.jsxs(a.Menu.Item,{onSelect:l,children:[i.jsx(a.LuIcon,{icon:sl}),e.label||ln]})});Na.displayName="FieldSectionDropdownMenuItem";const xa=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,pn,n),r=()=>{switch(e.modifier){case"in":case"notIn":{const c=e.getValue();return i.jsx(kt,{required:!0,mode:"range",size:"sm",selected:c,onSelect:e.setValue,children:i.jsxs(a.Button,{type:"button",className:"truncate",children:[c.from?.toLocaleDateString()??"..."," - ",c.to?.toLocaleDateString()??"..."]})})}default:return i.jsx(kt,{required:!0,mode:"single",size:"sm",selected:e.getValue(),onSelect:e.setValue,children:i.jsx(a.Button,{type:"button",className:"truncate",children:e.getValue().toLocaleDateString()})})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:pn,children:i.jsx(a.Button,{type:"button",children:pn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},Ia=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,mn,n),r=()=>i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",children:[e.getValue().length," options"]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(je,{selectFieldOptions:e.field.options,values:e.getValue(),onValuesChange:e.setValue})})]});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:mn,children:i.jsx(a.Button,{type:"button",children:mn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},Ma=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,yn,n),r=()=>{const c=e.getValue();return i.jsx(ma,{values:c,onValuesChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:c.length===1?c[0]:`${c.length} values`})})};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:yn,children:i.jsx(a.Button,{type:"button",children:yn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},qa=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,Fn,n),r=o.useCallback(u=>{u===null||e.modifier==="inRange"||e.modifier==="notInRange"||e.setValue(u)},[e]),c=o.useCallback(u=>{e.modifier!=="inRange"&&e.modifier!=="notInRange"||e.setValue({...e.getValue(),from:u})},[e]),f=o.useCallback(u=>{e.modifier!=="inRange"&&e.modifier!=="notInRange"||e.setValue({...e.getValue(),to:u})},[e]),h=()=>{switch(e.modifier){case"inRange":case"notInRange":{const u=e.getValue();return i.jsxs(i.Fragment,{children:[i.jsx(Te,{value:u.from,onValueChange:c,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.from??"..."})}),i.jsx(Te,{value:u.to,onValueChange:f,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.to??"..."})})]})}default:return i.jsx(Te,{value:e.getValue(),onValueChange:r,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:e.getValue()})})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Fn,children:i.jsx(a.Button,{type:"button",children:Fn[e.modifier].label})}),h(),i.jsx(k,{condition:e,onClick:l})]})},Oa=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,wn,n),r=()=>i.jsx(Ae,{value:e.getValue(),onValueChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:i.jsx("span",{className:"truncate",children:e.getValue()||"..."})})});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:wn,children:i.jsx(a.Button,{type:"button",children:wn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},Ta=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,bn,n),r=()=>{switch(e.modifier){case"equals":case"notEquals":return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.Button,{type:"button",children:ce[e.getValue()].label})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(a.Menu.SelectGroup,{required:!0,value:e.getValue(),onValueChange:e.setValue,children:Ee.map(c=>i.jsx(Fe,{value:c,children:ce[c].label},c))})})]});case"includes":case"excludes":return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",children:[e.getValue().length," statuses"]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsxs(a.Menu.MultiSelectGroup,{values:e.getValue(),onValuesChange:e.setValue,children:[i.jsx($t,{children:"Select all"}),Ee.map(c=>i.jsxs(ga,{value:c,children:[i.jsx(a.LuIcon,{icon:ce[c].icon}),ce[c].label]},c))]})})]})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:bn,children:i.jsx(a.Button,{type:"button",children:bn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},Ea=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,Nn,n),r=()=>{switch(e.modifier){case"equals":case"notEquals":{const c=e.getValue(),f=re(e.field.options).find(h=>h.value===c)?.label;return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.Button,{type:"button",className:"truncate",children:f??(c||"...")})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(jt,{required:!0,selectFieldOptions:e.field.options,value:c,onValueChange:e.setValue})})]})}case"includes":case"excludes":return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",children:[e.getValue().length," options"]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(je,{selectFieldOptions:e.field.options,values:e.getValue(),onValuesChange:e.setValue})})]})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Nn,children:i.jsx(a.Button,{type:"button",children:Nn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},La=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,In,n),r=o.useCallback(u=>{u===null||e.modifier==="inRange"||e.modifier==="notInRange"||e.setValue(u)},[e]),c=o.useCallback(u=>{e.modifier!=="inRange"&&e.modifier!=="notInRange"||e.setValue({...e.getValue(),from:u})},[e]),f=o.useCallback(u=>{e.modifier!=="inRange"&&e.modifier!=="notInRange"||e.setValue({...e.getValue(),to:u})},[e]),h=()=>{switch(e.modifier){case"inRange":case"notInRange":{const u=e.getValue();return i.jsxs(i.Fragment,{children:[i.jsx(Te,{value:u.from,onValueChange:c,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.from??"..."})}),i.jsx(Te,{value:u.to,onValueChange:f,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.to??"..."})})]})}default:return i.jsx(Te,{value:e.getValue(),onValueChange:r,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:e.getValue()})})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:In,children:i.jsx(a.Button,{type:"button",children:In[e.modifier].label})}),h(),i.jsx(k,{condition:e,onClick:l})]})},Aa=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,qn,n),r=()=>i.jsx(Ae,{value:e.getValue(),onValueChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:i.jsx("span",{className:"truncate",children:e.getValue()||"..."})})});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:qn,children:i.jsx(a.Button,{type:"button",children:qn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},Ba=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,Tn,n),r=()=>{switch(e.modifier){case"equals":case"notEquals":{const c=e.getValue(),f=re(e.field.options).find(h=>h.value===c)?.label;return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.Button,{type:"button",className:"truncate",children:f??(c||"...")})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(jt,{required:!0,selectFieldOptions:e.field.options,value:c,onValueChange:e.setValue})})]})}case"includes":case"excludes":return i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{type:"button",children:[e.getValue().length," options"]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(je,{selectFieldOptions:e.field.options,values:e.getValue(),onValuesChange:e.setValue})})]})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Tn,children:i.jsx(a.Button,{type:"button",children:Tn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},_a=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,Ln,n),r=()=>i.jsx(Ae,{value:e.getValue(),onValueChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:i.jsx("span",{className:"truncate",children:e.getValue()||"..."})})});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Ln,children:i.jsx(a.Button,{type:"button",children:Ln[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},Da=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,Bn,n),r=()=>i.jsx(Ae,{value:e.getValue(),onValueChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:i.jsx("span",{className:"truncate",children:e.getValue()||"..."})})});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Bn,children:i.jsx(a.Button,{type:"button",children:Bn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},Pa=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,Dn,n),r=o.useCallback(u=>{u===null||e.modifier==="in"||e.modifier==="notIn"||e.setValue(u)},[e]),c=o.useCallback(u=>{e.modifier!=="in"&&e.modifier!=="notIn"||e.setValue({...e.getValue(),from:u})},[e]),f=o.useCallback(u=>{e.modifier!=="in"&&e.modifier!=="notIn"||e.setValue({...e.getValue(),to:u})},[e]),h=()=>{switch(e.modifier){case"in":case"notIn":{const u=e.getValue();return i.jsxs(i.Fragment,{children:[i.jsx(Jn,{value:u.from,onValueChange:c,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.from?nn(u.from):"..."})}),i.jsx(Jn,{value:u.to,onValueChange:f,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:u.to?nn(u.to):"..."})})]})}default:return i.jsx(Jn,{value:e.getValue(),onValueChange:r,size:"sm",children:i.jsx(a.Button,{type:"button",className:"truncate",children:nn(e.getValue())})})}};return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:Dn,children:i.jsx(a.Button,{type:"button",children:Dn[e.modifier].label})}),h(),i.jsx(k,{condition:e,onClick:l})]})},$a=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,$n,n),r=()=>i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.Button,{type:"button",children:e.getValue()?"empty":"not empty"})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsxs(a.Menu.SelectGroup,{required:!0,value:e.getValue(),onValueChange:e.setValue,children:[i.jsx(Fe,{value:!0,children:"empty"}),i.jsx(Fe,{value:!1,children:"not empty"})]})})]});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:$n,children:i.jsx(a.Button,{type:"button",children:$n[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},ka=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=j(e,jn,n),r=()=>i.jsx(Ae,{value:e.getValue(),onValueChange:e.setValue,size:"sm",children:i.jsx(a.Button,{type:"button",className:"shrink-1 min-w-0 grow",children:i.jsx("span",{className:"truncate",children:e.getValue()||"..."})})});return i.jsxs(a.ButtonGroup,{className:"flex w-max min-w-0 max-w-full gap-0.5",size:"sm",variant:"fill",accentColor:"base",children:[i.jsxs(a.Badge,{className:"shrink-1 min-w-0",size:"sm",variant:"fill",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:L[e.field.type].icon}),i.jsx("span",{className:"truncate",children:e.field.label||P})]}),i.jsx(U,{required:!0,value:e.modifier,onValueChange:s,modifierConfig:jn,children:i.jsx(a.Button,{type:"button",children:jn[e.modifier].label})}),r(),i.jsx(k,{condition:e,onClick:l})]})},Jt=t=>{const{condition:e,...n}=t;switch(e.type){case"string":return i.jsx(_a,{condition:e,...n});case"text":return i.jsx(Da,{condition:e,...n});case"otp":return i.jsx(Oa,{condition:e,...n});case"qr":return i.jsx(Aa,{condition:e,...n});case"url":return i.jsx(ka,{condition:e,...n});case"select":return i.jsx(Ba,{condition:e,...n});case"radio":return i.jsx(Ea,{condition:e,...n});case"checkbox-list":return i.jsx(ya,{condition:e,...n});case"multi-select":return i.jsx(Ia,{condition:e,...n});case"multi-string":return i.jsx(Ma,{condition:e,...n});case"number":return i.jsx(qa,{condition:e,...n});case"rating":return i.jsx(La,{condition:e,...n});case"date":return i.jsx(xa,{condition:e,...n});case"time":return i.jsx(Pa,{condition:e,...n});case"pass-fail":return i.jsx(Ta,{condition:e,...n});case"upload":return i.jsx($a,{condition:e,...n});case"boolean":return i.jsx(Ca,{condition:e,...n});case"compound":return i.jsx(Ua,{condition:e,...n})}},Ht=o.createContext(null),ja=()=>{const t=o.useContext(Ht);if(!t)throw new Error("useFieldConditionBuilderContext requires a FieldConditionBuilder");return t},Wt=t=>{const{fields:e,condition:n,onReplace:l,onRemove:s}=t,r=o.useCallback((f,h)=>l(h),[l]),c=o.useMemo(()=>({fields:e}),[e]);return i.jsx(Ht.Provider,{value:c,children:i.jsx(Jt,{condition:n,onReplace:r,onRemove:s})})},Ua=t=>{const{condition:e,onReplace:n,onRemove:l}=t,s=e.conditions,{fields:r}=ja(),c=o.useCallback(p=>{const{klass:y}=ke[p],F=new y({id:e.id,conditions:e.conditions});n(e,F)},[e,n]),f=o.useCallback(()=>{l(e)},[e,l]),h=o.useCallback(()=>{e.addCondition(new Oe({id:b.v4(),conditions:[]}))},[e]),u=o.useCallback(p=>{e.addCondition(Ut(p))},[e]),g=o.useCallback(p=>{e.addConditions(p.map(y=>Ut(y)))},[e]),m=o.useCallback((p,y)=>{e.replaceCondition(p,y)},[e]),C=o.useCallback(p=>{e.removeCondition(p)},[e]);return i.jsxs(a.Card,{className:"p-0! flex grow flex-col",variant:"outline",size:"sm",children:[i.jsxs("div",{className:"bg-(--base-a2) flex h-max shrink-0 grow-0 items-center gap-3 rounded-t-[inherit] px-4 py-2",children:[i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsxs(a.Button,{size:"sm",variant:"surface",accentColor:"base",children:[ke[e.operator].label,i.jsx(a.LuIcon,{icon:Be})]})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsx(a.Menu.Scroll,{children:i.jsx(a.Menu.SelectGroup,{required:!0,value:e.operator,onValueChange:c,children:Object.entries(ke).map(([p,{label:y,blurb:F}])=>i.jsx(Fe,{value:p,children:i.jsxs("div",{className:"flex flex-col",children:[y,i.jsx(a.Text,{size:"xs",accentColor:"base",children:F})]})},p))})})})]}),i.jsx(a.Text,{size:"sm",accentColor:"base",className:"min-w-0 grow",children:ke[e.operator].blurb}),i.jsxs(a.Menu.Root,{children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.IconButton,{accentColor:"base",size:"sm",variant:"ghost",type:"button",children:i.jsx(a.LuIcon,{icon:Qn})})}),i.jsx(a.Menu.Content,{size:"sm",children:i.jsxs(a.Menu.Item,{onSelect:f,children:[i.jsx(a.LuIcon,{icon:we}),"Delete"]})})]})]}),i.jsx(a.Separator,{size:"full"}),s.length>0?i.jsx("div",{className:"flex shrink grow flex-col gap-4 p-4",children:s.map(p=>i.jsx(Jt,{condition:p,onRemove:C,onReplace:m},p.id))}):null,i.jsxs("div",{className:"h-max shrink-0 grow-0 rounded-b-[inherit] px-4 py-2",children:[i.jsx(Sa,{fields:r,onSelectField:u,onSelectAllFields:g,align:"start",size:"sm",children:i.jsxs(a.Button,{variant:"ghost",size:"sm",accentColor:"base",type:"button",children:[i.jsx(a.LuIcon,{icon:Q}),"Condition"]})}),i.jsxs(a.Button,{variant:"ghost",size:"sm",accentColor:"base",type:"button",onClick:h,children:[i.jsx(a.LuIcon,{icon:Q}),"Group"]})]})]})},Ga=o.memo(t=>{const{id:e,sourceX:n,sourceY:l,targetX:s,targetY:r,style:c,markerEnd:f,data:h}=t,{targetSection:u,sourceSection:g,layoutDirection:m}=h,C=g.getCondition(u.id),p=o.useCallback(M=>{g.replaceCondition(u.id,M)},[g,u.id]),y=o.useCallback(()=>{g.removeCondition(u.id)},[g,u.id]),[F,V,w]=E.getBezierPath({sourceX:n,sourceY:l,sourcePosition:m==="LR"?E.Position.Right:E.Position.Bottom,targetX:s,targetY:r,targetPosition:m==="LR"?E.Position.Left:E.Position.Top});return i.jsxs(i.Fragment,{children:[i.jsx(E.BaseEdge,{id:e,path:F,style:c,markerEnd:f,labelX:V,labelY:w}),i.jsx(E.EdgeLabelRenderer,{children:i.jsxs(a.Card,{size:"xs",variant:"surface",className:"nodrag dark:bg-(--base-2)! nopan 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(${V}px, ${w}px)`},children:[i.jsx("div",{className:"flex items-center gap-2",children:i.jsx(a.Text,{size:"xs",className:"max-w-[280px] truncate",children:g.label||ln})}),i.jsx(Wt,{fields:g.fields,condition:C,onRemove:y,onReplace:p})]})})]})});Ga.displayName="FieldSectionConditionEdgeComponent";const Ja=o.memo(t=>{const{data:e,selected:n}=t,{fieldSection:l,index:s,layoutDirection:r}=e,{fieldSchema:c}=o.use(ae),f=o.useCallback(()=>{c.removeFieldSection(l)},[c,l]),h=o.useCallback(p=>{l.addField(Wn(p))},[l]),u=o.useCallback(()=>{const p=new W({id:b.v4(),fields:[]});c.addFieldSection(p),l.addCondition(p.id,new Oe({id:b.v4(),conditions:[]}))},[c,l]),g=o.useCallback(()=>{c.addFieldSection(l.duplicate(b.v4()))},[c,l]),m=o.useCallback(p=>{l.setOptions({label:p.target.value})},[l]),C=o.useCallback(p=>{l.setOptions({description:p.target.value})},[l]);return i.jsxs(a.Card,{variant:"surface",className:"dark:bg-(--base-2)! relative cursor-pointer",size:"sm","data-selected":n?"true":void 0,children:[i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[i.jsx(a.Input.Root,{variant:"outline",size:"md",accentColor:"base",children:i.jsx(a.Input.Field,{placeholder:"Enter a section label (optional)",value:l.label??"",onChange:m,maxLength:200})}),i.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a section description (optional)",value:l.description??"",onChange:C,maxLength:1e3,resize:"vertical",size:"md"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(a.Text,{weight:"bold",children:"Fields"}),i.jsx(Hn,{onSelectFieldType:h,size:"sm",children:i.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",accentColor:"base",children:[i.jsx(a.LuIcon,{icon:Q})," Add field"]})})]}),i.jsx("div",{className:"flex flex-col gap-3",children:l.fields.map((p,y)=>i.jsx(Gt,{field:p,fieldSection:l,fieldIndex:y,sectionIndex:s},p.id))})]}),i.jsx(E.NodeToolbar,{isVisible:!0,position:E.Position.Right,align:"start",offset:8,onMouseDown:a.stopPropagation,children:i.jsx(a.Card,{variant:"surface",className:"dark:bg-(--color-background)! p-0! flex flex-col items-center gap-0",size:"sm",onClick:a.stopPropagation,children:i.jsxs(a.ButtonGroup,{className:"flex flex-col gap-0",variant:"soft",size:"xs",accentColor:"base",children:[i.jsx(a.IconButton,{className:"rounded-b-none",type:"button",onClick:u,children:i.jsx(a.LuIcon,{icon:ws})}),i.jsx(a.IconButton,{className:"rounded-none",type:"button",onClick:g,children:i.jsx(a.LuIcon,{icon:Xn})}),i.jsx(a.IconButton,{className:"rounded-t-none",type:"button",onClick:f,children:i.jsx(a.LuIcon,{icon:we})})]})})}),i.jsx(E.Handle,{type:"target",className:"size-4! bg-(--base-3)! border-(--base-7)!",position:r==="LR"?E.Position.Left:E.Position.Top}),i.jsx(E.Handle,{type:"source",className:"size-4! bg-(--base-3)! border-(--base-7)!",position:r==="LR"?E.Position.Right:E.Position.Bottom})]})});Ja.displayName="CustomNode";const Zs={fieldSection:Ja},Xs={fieldSectionCondition:Ga},Ys=(t,e,n)=>{const l=new Xt.graphlib.Graph().setDefaultEdgeLabel(()=>({}));return l.setGraph({rankdir:n,nodesep:200,edgesep:500,ranksep:500}),e.forEach(s=>l.setEdge(s.source,s.target,{width:500,height:200,labelpos:"c"})),t.forEach(s=>l.setNode(s.id,{...s,width:s.measured?.width??0,height:s.measured?.height??0})),Xt.layout(l),[t.map(s=>{const r=l.node(s.id),c=r.x-(s.measured?.width??0)/2,f=r.y-(s.measured?.height??0)/2;return{...s,position:{x:c,y:f}}}),e]},Qs={hideAttribution:!0},Ha=o.memo(()=>{const{errors:t}=Y.useFormState(),{handleSubmit:e}=Y.useFormContext(),{onSave:n,onCancel:l}=o.use(ae),{fieldSchema:s}=o.use(ae),r=o.useRef(null),[c,f]=o.useState(),[h,u]=o.useState("TB");o.useLayoutEffect(()=>{r.current&&r.current.classList.remove("light")},[]);const g=o.useMemo(()=>s.fieldSections.map((A,J)=>({id:A.id,position:{x:0,y:0},data:{index:J,fieldSection:A,layoutDirection:h},draggable:!0,type:"fieldSection"})),[s.fieldSections,h]),m=o.useMemo(()=>{const A=[],J={};for(const K of s.fieldSections)J[K.id]=K;for(const K of s.fieldSections){const Ue=K.conditions;for(const[Ge,Rr]of Object.entries(Ue))A.push({id:`${K.id}-${Ge}`,source:K.id,target:Ge,data:{targetSection:J[Ge],sourceSection:K,layoutDirection:h},animated:!0,markerEnd:E.MarkerType.Arrow,style:{strokeWidth:2,stroke:"var(--base-a8)"},type:"fieldSectionCondition"})}return A},[s.fieldSections,h]),[C,p,y]=E.useNodesState(g),[F,V,w]=E.useEdgesState(m);o.useEffect(()=>{p(g)},[g,p]),o.useEffect(()=>{V(m)},[m,V]);const[M,N]=o.useMemo(()=>Ys(C,F,h),[F,h,C]),S=o.useCallback(()=>{s.addFieldSection(new W({id:b.v4(),fields:[]}))},[s]),q=o.useCallback(A=>{const{source:J,target:K}=A,Ue=s.fieldSections.find(({id:Ge})=>Ge===J);Ue.setOptions({conditions:{...Ue.conditions,[K]:new Oe({id:b.v4(),conditions:[]})}})},[s.fieldSections]),x=o.useCallback(A=>{const J=s.getSectionDependencyGraph();return!Zt.willCreateCycle(J,A.source,A.target)},[s]),T=o.useCallback(()=>{c?.zoomOut()},[c]),_=o.useCallback(()=>{c?.zoomIn()},[c]),Z=o.useCallback(()=>{c?.fitView()},[c]);return i.jsxs("form",{className:"flex size-full flex-col gap-4",onSubmit:e(n),children:[i.jsxs(a.Card,{className:"relative size-full",variant:"outline",children:[i.jsx(E.ReactFlow,{ref:r,onInit:f,nodes:M,onNodesChange:y,edges:N,onEdgesChange:w,nodeTypes:Zs,edgeTypes:Xs,onConnect:q,attributionPosition:"bottom-left",fitView:!0,minZoom:0,isValidConnection:x,proOptions:Qs}),i.jsx(E.Panel,{position:"top-left",children:i.jsx(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:i.jsxs(a.Button,{type:"button",variant:"surface",onClick:S,children:[i.jsx(a.LuIcon,{icon:Q})," Add section"]})})}),i.jsxs(E.Panel,{position:"top-right",className:"flex flex-col items-center gap-2",children:[i.jsxs(a.ToggleGroup.Root,{className:"flex flex-col",type:"single",accentColor:"base",size:"sm",value:h,onValueChange:u,children:[i.jsx(a.ToggleGroup.IconItem,{className:"rounded-b-none",value:"LR",type:"button",children:i.jsx(a.LuIcon,{icon:hs})}),i.jsx(a.ToggleGroup.IconItem,{className:"rounded-t-none",value:"TB",type:"button",children:i.jsx(a.LuIcon,{icon:us})})]}),i.jsx(a.Separator,{size:"sm"}),i.jsxs(a.ButtonGroup,{className:"flex flex-col",size:"sm",accentColor:"base",variant:"soft",children:[i.jsx(a.IconButton,{className:"rounded-b-none",onClick:_,type:"button",children:i.jsx(a.LuIcon,{icon:Q})}),i.jsx(a.IconButton,{onClick:T,radius:"none",type:"button",children:i.jsx(a.LuIcon,{icon:We})}),i.jsx(a.IconButton,{className:"rounded-t-none",onClick:Z,type:"button",children:i.jsx(a.LuIcon,{icon:Es})})]})]}),i.jsx(E.Panel,{position:"bottom-right",children:i.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:[l&&i.jsx(a.Button,{type:"button",variant:"soft",accentColor:"base",onClick:l,children:"Cancel"}),i.jsx(a.Button,{type:"submit",variant:"surface",children:"Save"})]})})]}),!!t.fields?.message&&i.jsx(a.Text,{size:"xs",accentColor:"danger",children:t.fields.message})]})});Ha.displayName="FormBuilderFlowBuilder";const Rs=(t,e,n={})=>{const{conditions:l=!1}=n,s=t.get(e.id);if(!s)throw new Error(`Attempting to reseed serialized section with id ${e.id} which is not present in the reseeded id map`);const r=new Map,c=e.fields.map(h=>{const u=b.v4();return r.set(h.id,u),{...h,id:u}}),f={};if(l){const h=u=>{switch(u.type){case"compound":return{...u,conditions:u.conditions.map(h)};default:{const g=r.get(u.field);if(!g)throw new Error(`Serialized condition referencing undefined field with id: ${u.field}`);return{...u,field:g}}}};for(const[u,g]of Object.entries(e.conditions??{})){const m=t.get(u);m&&(f[m]=h(g))}}return{...e,id:s,conditions:f,fields:c}},er=(t,e={})=>{const n=new Map(t.map(l=>[l.id,b.v4()]));return t.map(l=>Rs(n,l,e))},Kt=(t,e)=>{const n={},l=t.filter(s=>s instanceof W);for(const s of t)if(s instanceof W){const r=l.filter(f=>s.id in f.conditions);if(r.length>0&&!r.some(f=>f.getCondition(s.id).getApplyFn()(e)))continue;const c=s.getErrors(e);Object.assign(n,c)}else{if(!(s instanceof I))throw new Error("Invalid field type");const r=s.id,c=s.getError(Qt(e,r));c&&ls(n,r,c)}return n},nr=async t=>{const e={};for(const n of t){const{fields:l}=n;for(const s of l)if(s.image)if(s.image instanceof Promise)try{e[s.id]=await s.image}catch(r){console.error("Failed to get image from promise",r)}else e[s.id]=s.image}return e};async function ir(t){const e={};for(const[n,l]of Object.entries(t))e[n]=await Promise.all(l);return e}class Ve extends _e{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 Ve(sn(e))}static fromConfig(e){return new Ve(Xl(e))}static serializeConfig(e){return ia(e)}static deserializeConfig(e){return Rl(e)}static reseedFieldSections(e,n){return er(e,n)}fieldObserver=()=>{this.notify(this)};initFields=e=>{for(const n of e)n.observe(this.fieldObserver);return e};getFields(){return this.fieldSections.flatMap(e=>e.getFields())}getFieldSections(){return this.fieldSections}addFieldSection(e,n){const l=[...this.fieldSections];l.splice(n??this.fieldSections.length,0,e),this.fieldSections=this.initFields(l),this.notify(this)}removeFieldSection(e){const n=this.fieldSections.filter(l=>l.id!==e.id);for(const l of n)l.removeCondition(e.id);this.fieldSections=this.initFields(n),this.notify(this)}moveFieldSection(e,n){if(!Number.isInteger(e)||!Number.isInteger(n)||e<0||e>=this.fieldSections.length||n<0||n>=this.fieldSections.length||e===n)return;const l=[...this.fieldSections],[s]=l.splice(e,1);l.splice(n,0,s),this.fieldSections=this.initFields(l),this.notify(this)}getSectionDependencyGraph(){const e=new is.DirectedGraph({type:"directed"});for(const n of this.fieldSections)for(const l of Object.keys(n.conditions))e.mergeEdge(n.id,l);return e}getDependenciesOfSection(e){const n=this.getSectionDependencyGraph(),l=new Map(this.fieldSections.map(r=>[r.id,r])),s=[];return ts.bfsFromNode(n,e,(r,c,f)=>{s.push(l.get(r))},{mode:"in"}),s}cleanValues(e){return rn(this.getFields(),e)}cleanSerializedValues(e){return Vi(this.getFields(),e)}deserializeValues(e,n){return la(this.getFields(),e,n)}serializeValues(e,n){return ta(this.getFields(),e,n)}initializeValues(e){return ra(this.getFields(),e)}validateValues(e){return Kt(this.getFieldSections(),e)}areValuesValid(e){return Object.keys(this.validateValues(e)).length===0}deserializeConditions(e){return At(this.getFields(),e)}cleanConditions(e){return _t(this.getFields(),e)}serializeConditions(e){return fa(this.getFields(),e)}cleanSerializedConditions(e){return Pt(this.getFields(),e)}changedFieldValues(e,n){return oa(this.getFields(),e,n)}unchangedFieldValues(e,n){return da(this.getFields(),e,n)}areValuesEqual(e,n){return wi(this.getFields(),e,n)}areValuesBlank(e){return ca(this.getFields(),e)}blankValues(){return Si(this.getFields())}extractFilesAndPromisesFromFieldValues(e){return aa(this.getFields(),e)}insertFilesAndPromisesToFieldValues(e,n){return sa(this.getFields(),e,n)}}const Wa=o.memo(t=>{const{sourceFieldSection:e,targetFieldSection:n}=t,l=e.getCondition(n.id),s=o.useCallback(c=>{e.replaceCondition(n.id,c)},[e,n.id]),r=o.useCallback(c=>{e.removeCondition(n.id)},[e,n.id]);return i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx(a.ButtonGroup,{className:"flex justify-between gap-2",size:"sm",accentColor:"base",variant:"soft",children:i.jsxs(a.Badge,{accentColor:"base",variant:"soft",size:"sm",children:[i.jsx(a.LuIcon,{icon:sl}),e.label??ln]})}),i.jsx(Wt,{fields:e.fields,condition:l,onRemove:r,onReplace:s})]})});Wa.displayName="FieldSectionConditionalItem";const Ka=o.memo(t=>{const{fieldSection:e}=t,{fieldSchema:n}=o.use(ae),l=o.useMemo(()=>n.fieldSections.filter(h=>e.id in h.conditions),[n.fieldSections,e.id]),s=o.useCallback(h=>{h.addCondition(e.id,new Oe({id:b.v4(),conditions:[]}))},[e.id]),r=o.useCallback(h=>{e.setOptions({label:h.target.value})},[e]),c=o.useCallback(h=>{e.setOptions({description:h.target.value})},[e]),f=o.useMemo(()=>{const h=n.getSectionDependencyGraph();return n.fieldSections.filter(u=>!Zt.willCreateCycle(h,u.id,e.id))},[e.id,n]);return i.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[i.jsxs("div",{className:"flex w-full flex-col gap-2 overflow-hidden",children:[i.jsx(a.Input.Root,{variant:"outline",size:"md",children:i.jsx(a.Input.Field,{placeholder:"Enter a section label (optional)",value:e.label??"",onChange:r,maxLength:200})}),i.jsx(a.TextArea,{className:"field-sizing-content",placeholder:"Enter a section description (optional)",value:e.description??"",onChange:c,maxLength:1e3,resize:"vertical",size:"md"})]}),i.jsx(a.Separator,{size:"full"}),i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsxs("div",{className:"flex justify-between gap-2",children:[i.jsx(a.Text,{accentColor:"base",children:"Conditions"}),i.jsx(za,{fieldSections:f,onSelectFieldSection:s,size:"sm",children:i.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",className:"w-max",children:[i.jsx(a.LuIcon,{icon:Q}),"Add condition"]})})]}),i.jsx("div",{className:"flex flex-col gap-4",children:l.map((h,u)=>i.jsxs(o.Fragment,{children:[i.jsx(Wa,{sourceFieldSection:h,targetFieldSection:e}),u!==l.length-1?i.jsx(a.Separator,{size:"full"}):null]},h.id))})]}),i.jsx(a.Separator,{size:"full"})]})});Ka.displayName="FieldSectionBuilder";const Za=o.memo(t=>{const{fieldSection:e,sectionIndex:n}=t,{fieldSchema:l}=o.use(ae),s=a.useAlertDialog(),r=o.useCallback(()=>{l.removeFieldSection(e)},[l,e]),c=o.useCallback(F=>{const V=F==="up"?n-1:n+1;l.moveFieldSection(n,V)},[l,n]),f=o.useCallback(()=>{l.addFieldSection(e.duplicate(b.v4()))},[l,e]),h=o.useCallback(F=>{e.addField(Wn(F))},[e]),u=o.useCallback(()=>{c("up")},[c]),g=o.useCallback(()=>{c("down")},[c]),m=o.useCallback(async()=>{const F=[e.serialize()],V=Ve.reseedFieldSections(F,{conditions:!1}),w=JSON.stringify(V);await navigator.clipboard.writeText(w),a.toast.success({title:"Section copied"})},[e]),C=o.useCallback(async()=>{const V=l.getDependenciesOfSection(e.id).map(N=>N.serialize()),w=Ve.reseedFieldSections(V,{conditions:!0}),M=JSON.stringify(w);await navigator.clipboard.writeText(M),a.toast.success({title:"Section copied"})},[e,l]),p=o.useCallback(async()=>{const F=l.getDependenciesOfSection(e.id),V=F.length>1,w=F.length-1;V?s({title:"Copy section dependencies?",description:`This section has ${w} dependent section${w>1?"s":""} that will also be copied to maintain the conditions. Do you want to include these dependencies?`,action:"Include",onAction:C,cancel:"Dont include",onCancel:m}):m()},[e,l,s,C,m]),y=o.useCallback(async()=>{let F="";try{F=await navigator.clipboard.readText()}catch{a.toast.error({title:"Paste failed",description:"Unable to read clipboard contents."});return}const V=F.trim();if(!V){a.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}try{const w=JSON.parse(V),M=Yt.JSONFieldSectionSchema.array().parse(w),N=sn(M);if(N.length===0){a.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}for(const[S,q]of N.entries())l.addFieldSection(q,n+1+S);a.toast.success({title:"Sections pasted",description:"Serialized JSON imported successfully."})}catch(w){console.error(w),a.toast.error({title:"Invalid JSON",description:"Check the JSON and try again."})}},[l,n]);return i.jsxs(a.Card,{variant:"outline",className:"flex w-full items-center justify-between gap-4",size:"sm",children:[i.jsxs("div",{className:"flex w-full grow flex-col gap-4",children:[i.jsx(Ka,{fieldSection:e}),i.jsxs("div",{className:"flex w-full flex-col gap-2",children:[i.jsxs("div",{className:"flex justify-between gap-2",children:[i.jsx(a.Text,{accentColor:"base",size:"md",children:"Fields"}),i.jsx(Hn,{onSelectFieldType:h,size:"sm",children:i.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",children:[i.jsx(a.LuIcon,{icon:Q})," Add field"]})})]}),e.fields.map((F,V)=>i.jsx(Gt,{field:F,fieldSection:e,fieldIndex:V,sectionIndex:n},F.id))]})]}),i.jsxs(a.ButtonGroup,{className:"flex flex-col gap-0.5",variant:"ghost",accentColor:"base",size:"sm",children:[i.jsx(a.IconButton,{type:"button",onClick:u,disabled:n===0,"aria-label":"Move section up",children:i.jsx(a.LuIcon,{icon:Ke})}),i.jsx(a.IconButton,{type:"button",onClick:g,disabled:n===l.fieldSections.length-1,"aria-label":"Move section down",children:i.jsx(a.LuIcon,{icon:rl})}),i.jsxs(a.Menu.Root,{align:"end",children:[i.jsx(a.Menu.ClickTrigger,{children:i.jsx(a.IconButton,{type:"button",children:i.jsx(a.LuIcon,{icon:Qn})})}),i.jsxs(a.Menu.Content,{size:"sm",children:[i.jsxs(a.Menu.Item,{onSelect:f,children:[i.jsx(a.LuIcon,{icon:Xn}),"Duplicate section"]}),i.jsxs(a.Menu.Item,{onSelect:p,children:[i.jsx(a.LuIcon,{icon:tl}),"Copy JSON"]}),i.jsxs(a.Menu.Item,{onSelect:y,children:[i.jsx(a.LuIcon,{icon:ll}),"Paste JSON"]}),i.jsxs(a.Menu.Item,{onSelect:r,children:[i.jsx(a.LuIcon,{icon:we}),"Delete section"]})]})]})]})]})});Za.displayName="FieldSectionWithActions";const Xa=o.memo(()=>{const{handleSubmit:t}=Y.useFormContext(),{errors:e}=Y.useFormState(),{onSave:n,onCancel:l}=o.use(ae),{fieldSchema:s}=o.use(ae),r=o.useCallback(()=>{s.addFieldSection(new W({id:b.v4(),fields:[]}))},[s]),c=o.useCallback(async()=>{try{const h=s.serialize(),u=Ve.reseedFieldSections(h,{conditions:!0}),g=JSON.stringify(u);await navigator.clipboard.writeText(g),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."})}},[s]),f=o.useCallback(async()=>{let h="";try{h=await navigator.clipboard.readText()}catch{a.toast.error({title:"Paste failed",description:"Unable to read clipboard contents."});return}const u=h.trim();if(!u){a.toast.error({title:"Paste failed",description:"Clipboard is empty."});return}try{const g=JSON.parse(u),m=Yt.JSONFieldSectionSchema.array().parse(g),C=sn(m);if(C.length===0){a.toast.error({title:"Paste failed",description:"No valid sections found in the JSON."});return}for(const[p,y]of C.entries())s.addFieldSection(y,s.fieldSections.length+p);a.toast.success({title:"Sections pasted",description:"Serialized JSON imported successfully."})}catch(g){console.error(g),a.toast.error({title:"Invalid JSON",description:"Check the JSON and try again."})}},[s]);return i.jsxs("form",{className:"flex flex-col gap-4",onSubmit:t(n),children:[i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",onClick:c,children:[i.jsx(a.LuIcon,{icon:tl})," Copy JSON"]}),i.jsxs(a.Button,{type:"button",variant:"soft",size:"sm",onClick:f,children:[i.jsx(a.LuIcon,{icon:ll})," Paste JSON"]})]}),s.fieldSections.map((h,u)=>i.jsx(Za,{fieldSection:h,sectionIndex:u},h.id)),i.jsxs(a.Button,{className:"mb-4",type:"button",variant:"soft",accentColor:"base",size:"sm",onClick:r,children:[i.jsx(a.LuIcon,{icon:Q})," Add section"]})]}),!!e.fields?.message&&i.jsx(a.Text,{size:"xs",accentColor:"danger",children:e.fields.message}),i.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:"sm",children:[l&&i.jsx(a.Button,{type:"button",variant:"soft",accentColor:"base",onClick:l,children:"Cancel"}),i.jsx(a.Button,{type:"submit",variant:"surface",children:"Save"})]})]})});Xa.displayName="FormBuilderListBuilder";function Ya(t){const e=n=>{const l={};for(const[s,r]of Object.entries(n))typeof r=="string"?l[s]={type:"validate",message:r}:l[s]=e(r);return l};return e(t)}const Qa=o.memo(o.forwardRef((t,e)=>{const{disabled:n=!1,fieldSchema:l,values:s={},onValuesChange:r,onSubmit:c,submitText:f="Submit",hideSubmit:h=!1,cancelText:u,onCancel:g,hideCancel:m=!1,className:C,submitButtonProps:p,cancelButtonProps:y,cancelIcon:F,submitIcon:V,size:w="md"}=t,M=o.useMemo(()=>l.initializeValues(s),[l,s]),N=o.useCallback(A=>{c?.(A)},[c]),S=Y.useForm({values:M,mode:"onBlur",criteriaMode:"all",disabled:n,resolver:A=>{const J=l.validateValues(A),K=Ya(J);return Object.keys(J).length>0?{values:{},errors:K}:{values:A,errors:{}}}}),q=o.useCallback(A=>{r?.(A)},[r]);o.useEffect(()=>{const{unsubscribe:A}=S.watch((J,{type:K})=>{K==="change"&&q(J)});return()=>{A()}},[S,q]);const x=hl(l.getFieldSections()),T=o.useMemo(()=>({fieldSchema:l,size:w}),[l,w]),_=!m&&!!g,Z=!h;return i.jsx(Y.FormProvider,{...S,children:i.jsx(B,{value:T,children:i.jsxs("form",{ref:e,className:X.cx(C,"flex flex-col gap-4"),onSubmit:S.handleSubmit(N),children:[i.jsx("div",{className:Js({size:w}),children:x}),!n&&(_||Z)?i.jsxs(a.ButtonGroup,{className:"flex items-center justify-end gap-2",size:w,children:[_?i.jsxs(a.Button,{accentColor:"base",type:"button",variant:"soft",onClick:g,...y,children:[i.jsx(a.LuIcon,{icon:F??ne}),u]}):null,Z?i.jsxs(a.Button,{type:"submit",accentColor:"primary",variant:"surface",...p,children:[i.jsx(a.LuIcon,{icon:V??H}),f]}):null]}):null]})})})})),Ra=o.memo(()=>{const{fieldSchema:t}=o.use(ae);return i.jsx(Qa,{fieldSchema:t,disabled:!1})});Ra.displayName="FormBuilderPreview";const es=o.memo(t=>{const{children:e,initialFields:n,onSave:l,onCancel:s,disableRequiredFields:r=!1}=t,c=o.useCallback(y=>{const F={};(!y.fields||y.fields.length===0)&&(F.fields="At least one field is required.");const V=[];for(const[N,S]of y.fields.entries())for(const[q,x]of S.fields.entries()){const T=Fa(x.type,`fields.${N}.fields.${q}`)?.map(({field:_})=>_)??[];V.push(...T)}const w={};for(const N of V)w[N.id]=Qt(y,N.id);const M=Kt(V,w);return Object.keys(M).length>0&&(F.fields=M.fields),Object.keys(F).length>0&&a.toast.error({title:"Some form settings are invalid",description:"Please check settings highlighted in red."}),F},[]),f=o.useMemo(()=>({fields:n??[]}),[n]),h=Y.useForm({values:f,mode:"onSubmit",criteriaMode:"all",reValidateMode:"onSubmit",resolver:y=>{const F=c(y),V=Ya(F);return Object.keys(F).length>0?{values:{},errors:V}:{values:y,errors:{}}}}),u=o.useCallback(y=>{h.setValue("fields",y.config())},[h]),g=Y.useWatch({control:h.control,compute:y=>y.fields}),m=o.useMemo(()=>{const y=Ve.fromConfig(g);return y.observe(u),y},[g,u]),C=o.useMemo(()=>({fieldSchema:m,disableRequiredFields:r,onSave:l,onCancel:s}),[r,l,s,m]),p=o.useMemo(()=>({fieldSchema:m,size:"sm"}),[m]);return i.jsx(ae,{value:C,children:i.jsx(B,{value:p,children:i.jsx(Y.FormProvider,{...h,children:e})})})});es.displayName="FormBuilderRoot";const tr={Root:es,FlowBuilder:Ha,ListBuilder:Xa,Preview:Ra};d.AndFieldCondition=Oe,d.BaseAtomicFieldCondition=v,d.BaseCompoundFieldCondition=$e,d.BaseField=I,d.BaseFieldCondition=ni,d.BaseFormElement=Se,d.BaseOptionsField=R,d.BaseStringField=ze,d.BooleanField=oe,d.BooleanFieldConditionCell=Ca,d.BooleanFieldEqualsCondition=dn,d.BooleanFieldInput=ai,d.BooleanFieldNotEqualsCondition=bi,d.CheckboxListField=ie,d.CheckboxListFieldConditionCell=ya,d.CheckboxListFieldEqualsCondition=un,d.CheckboxListFieldEveryCondition=Ni,d.CheckboxListFieldNoneCondition=Ii,d.CheckboxListFieldNotEqualsCondition=zi,d.CheckboxListFieldSomeCondition=xi,d.CompoundFieldConditionCell=Ua,d.ConditionManager=ha,d.DateField=Ne,d.DateFieldAfterCondition=Li,d.DateFieldBeforeCondition=Ei,d.DateFieldConditionCell=xa,d.DateFieldEqualsCondition=fn,d.DateFieldInCondition=Ai,d.DateFieldInput=si,d.DateFieldNotEqualsCondition=Ti,d.DateFieldNotInCondition=Bi,d.FIELD_TYPES=Jl,d.FieldConditionBuilder=Wt,d.FieldConditionBuilderContext=Ht,d.FieldConditionCell=Jt,d.FieldSchema=Ve,d.FieldSection=W,d.FieldTypeGroup=O,d.FieldTypeToClsMapping=Le,d.FieldsRenderer=Qa,d.FileCard=ei,d.FormBuilder=tr,d.ImageCapturer=oi,d.ImageCapturerProvider=wl,d.ImageCard=di,d.ImageFile=be,d.ImageViewer=ti,d.ImageViewerProvider=ul,d.InputWithLabel=D,d.MultiSelectField=te,d.MultiSelectFieldConditionCell=Ia,d.MultiSelectFieldEqualsCondition=gn,d.MultiSelectFieldEveryCondition=Di,d.MultiSelectFieldNoneCondition=$i,d.MultiSelectFieldNotEqualsCondition=_i,d.MultiSelectFieldSomeCondition=Pi,d.MultiStringField=se,d.MultiStringFieldConditionCell=Ma,d.MultiStringFieldEqualsCondition=Cn,d.MultiStringFieldEveryCondition=ji,d.MultiStringFieldNoneCondition=Gi,d.MultiStringFieldNotEqualsCondition=ki,d.MultiStringFieldSomeCondition=Ui,d.NandFieldCondition=qi,d.NorFieldCondition=Oi,d.NumberField=G,d.NumberFieldConditionCell=qa,d.NumberFieldEqualsCondition=vn,d.NumberFieldGreaterThanCondition=Ki,d.NumberFieldGreaterThanOrEqualsCondition=Zi,d.NumberFieldInRangeCondition=Xi,d.NumberFieldLessThanCondition=Hi,d.NumberFieldLessThanOrEqualsCondition=Wi,d.NumberFieldNotEqualsCondition=Ji,d.NumberFieldNotInRangeCondition=Yi,d.OTPField=de,d.OTPFieldConditionCell=Oa,d.OTPFieldEqualsCondition=Vn,d.OTPFieldExcludesCondition=et,d.OTPFieldIncludesCondition=Ri,d.OTPFieldNotEqualsCondition=Qi,d.Observable=_e,d.OrFieldCondition=Mi,d.PassFailField=ue,d.PassFailFieldConditionCell=Ta,d.PassFailFieldEqualsCondition=Sn,d.PassFailFieldExcludesCondition=tt,d.PassFailFieldIncludesCondition=it,d.PassFailFieldNotEqualsCondition=nt,d.RadioField=he,d.RadioFieldConditionCell=Ea,d.RadioFieldEqualsCondition=zn,d.RadioFieldExcludesCondition=st,d.RadioFieldIncludesCondition=at,d.RadioFieldNotEqualsCondition=lt,d.RatingField=fe,d.RatingFieldConditionCell=La,d.RatingFieldEqualsCondition=xn,d.RatingFieldGreaterThanCondition=ct,d.RatingFieldGreaterThanOrEqualsCondition=ut,d.RatingFieldInRangeCondition=ht,d.RatingFieldLessThanCondition=ot,d.RatingFieldLessThanOrEqualsCondition=dt,d.RatingFieldNotEqualsCondition=rt,d.RatingFieldNotInRangeCondition=ft,d.ScanField=Ie,d.ScanFieldConditionCell=Aa,d.ScanFieldEqualsCondition=Mn,d.ScanFieldExcludesCondition=mt,d.ScanFieldIncludesCondition=gt,d.ScanFieldNotEqualsCondition=pt,d.Scanner=Qe,d.ScannerProvider=Ll,d.SelectField=pe,d.SelectFieldConditionCell=Ba,d.SelectFieldEqualsCondition=On,d.SelectFieldExcludesCondition=vt,d.SelectFieldIncludesCondition=yt,d.SelectFieldNotEqualsCondition=Ct,d.StringField=ge,d.StringFieldConditionCell=_a,d.StringFieldEqualsCondition=En,d.StringFieldExcludesCondition=wt,d.StringFieldIncludesCondition=Vt,d.StringFieldNotEqualsCondition=Ft,d.TextField=me,d.TextFieldConditionCell=Da,d.TextFieldEqualsCondition=An,d.TextFieldExcludesCondition=zt,d.TextFieldIncludesCondition=bt,d.TextFieldNotEqualsCondition=St,d.TimeField=Me,d.TimeFieldAfterCondition=It,d.TimeFieldBeforeCondition=xt,d.TimeFieldConditionCell=Pa,d.TimeFieldControl=tn,d.TimeFieldEqualsCondition=_n,d.TimeFieldInCondition=Mt,d.TimeFieldInput=Ci,d.TimeFieldNotEqualsCondition=Nt,d.TimeFieldNotInCondition=qt,d.UNLABELLED_FIELD_LABEL=P,d.UNLABELLED_SECTION_LABEL=ln,d.URLField=qe,d.URLFieldConditionCell=ka,d.URLFieldEqualsCondition=kn,d.URLFieldExcludesCondition=Lt,d.URLFieldIncludesCondition=Et,d.URLFieldNotEqualsCondition=Tt,d.UTC_OFFSETS=gi,d.UTC_OFFSETS_SET=Pl,d.UUIDFile=le,d.UUIDPromise=xe,d.UploadField=ve,d.UploadFieldConditionCell=$a,d.UploadFieldEqualsCondition=Pn,d.UploadFieldNotEqualsCondition=Ot,d.VideoCard=ui,d.VideoFile=ci,d.areFieldValuesBlank=ca,d.areFieldValuesEqual=wi,d.areFileAndPromiseArraysEqual=Ye,d.areJSONPassFailFieldValuesEqual=Ml,d.arePassFieldValuesEqual=Il,d.awaitFilesAndPromises=ir,d.blankFieldValues=Si,d.booleanFieldConditionModifierConfig=cn,d.changedFieldValues=oa,d.checkboxListFieldConditionModifierConfig=hn,d.cleanCondition=Gn,d.cleanConditions=_t,d.cleanFieldValues=rn,d.cleanSerializedCondition=Dt,d.cleanSerializedConditions=Pt,d.cleanSerializedFieldValues=Vi,d.compoundFieldConditionOperatorConfig=ke,d.createAtomicCondition=Ut,d.createField=Wn,d.createTime=Ce,d.dateFieldConditionModifierConfig=pn,d.deserializeCondition=Un,d.deserializeConditions=At,d.deserializeField=an,d.deserializeFieldConfig=vi,d.deserializeFieldConfigs=Yl,d.deserializeFieldElement=Wl,d.deserializeFieldElementConfig=Ql,d.deserializeFieldElementConfigs=Rl,d.deserializeFieldElements=sn,d.deserializeFieldValues=la,d.deserializeFields=Us,d.deserializePassFailFieldValue=xl,d.extractFilesAndPromisesFromFieldValues=aa,d.fieldDataMapping=L,d.fieldElementFromConfig=Zl,d.fieldElementsFromConfigs=Xl,d.fieldFromConfig=yi,d.fieldSpacingCva=on,d.fieldTypeGroupDataMapping=Hl,d.fieldsFromConfigs=Kl,d.formatTime=nn,d.formatUTCOffset=en,d.getCurrentUTCOffset=kl,d.getFieldsMapping=Gs,d.getImagesFromFields=nr,d.getUTCMinuteOfDay=ye,d.getUTCOffsetMinutes=jl,d.initializeFieldValues=ra,d.insertFilesAndPromisesToFieldValues=sa,d.isFileAndPromiseArray=yl,d.isJSONPassFailFieldValue=bl,d.isPassFailFieldStatus=fi,d.isPassFailFieldValue=zl,d.isStringArray=De,d.isTime=ee,d.isTimeInRange=mi,d.isTimeRange=js,d.isUTCOffset=Re,d.multiSelectFieldConditionModifierConfig=mn,d.multiStringFieldConditionModifierConfig=yn,d.normalizeFieldOption=li,d.normalizeFieldOptions=re,d.numberFieldConditionModifierConfig=Fn,d.otpFieldConditionModifierConfig=wn,d.parseTime=Pe,d.passFailFieldConditionModifierConfig=bn,d.passFailFieldStatusMapping=ce,d.passFailFieldStatuses=Ee,d.radioFieldConditionModifierConfig=Nn,d.ratingFieldConditionModifierConfig=In,d.scanFieldConditionModifierConfig=qn,d.selectFieldConditionModifierConfig=Tn,d.serializeCondition=Bt,d.serializeConditions=fa,d.serializeFieldConfig=Fi,d.serializeFieldConfigs=ea,d.serializeFieldElementConfig=na,d.serializeFieldElementConfigs=ia,d.serializeFieldValues=ta,d.serializePassFailFieldValue=Nl,d.stringFieldConditionModifierConfig=Ln,d.textFieldConditionModifierConfig=Bn,d.timeFieldConditionModifierConfig=Dn,d.unchangedFieldValues=da,d.uploadFieldConditionModifierConfig=$n,d.urlFieldConditionModifierConfig=jn,d.useConditionManager=Hs,d.useFieldConditionBuilderContext=ja,d.useFieldInput=$,d.useFieldInputs=Xe,d.useFieldSectionInputs=hl,d.useImageCapturer=ri,d.useImageViewer=Ze,d.useObjectUrl=ii,d.useScanner=Ds,d.useScannerContext=Tl,d.validateFieldValues=Kt,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));