@datum-cloud/datum-ui 0.4.0 → 0.6.0-alpha.b817c77

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 (195) hide show
  1. package/README.md +78 -39
  2. package/dist/adapter-context-B7L2ucTr.mjs +25 -0
  3. package/dist/alert/index.mjs +2 -3
  4. package/dist/{alert-BC2Mccfo.mjs → alert-BDj6od5I.mjs} +2 -4
  5. package/dist/app-navigation/index.mjs +4 -12
  6. package/dist/{app-navigation-DsCKgfPe.mjs → app-navigation-84ro28PU.mjs} +5 -8
  7. package/dist/autocomplete/index.mjs +2 -7
  8. package/dist/{autocomplete-DRB_kSVx.mjs → autocomplete-V5-qslzS.mjs} +5 -7
  9. package/dist/avatar/index.mjs +2 -4
  10. package/dist/{avatar-DyLq0xkt.mjs → avatar-BtKVcvO4.mjs} +2 -4
  11. package/dist/avatar-stack/index.mjs +2 -6
  12. package/dist/{avatar-stack-BT0dBswq.mjs → avatar-stack-oVr8tsU7.mjs} +4 -6
  13. package/dist/badge/index.mjs +2 -3
  14. package/dist/{badge-BgFj4Nsc.mjs → badge-DJR33ftJ.mjs} +2 -4
  15. package/dist/breadcrumb/index.mjs +2 -4
  16. package/dist/{breadcrumb-CJNaYyk1.mjs → breadcrumb-B-9G347O.mjs} +2 -4
  17. package/dist/button/index.mjs +3 -4
  18. package/dist/{button-0N61fmAR.mjs → button-BllvE9Lm.mjs} +3 -5
  19. package/dist/{button-D6AORsOz.mjs → button-D3RrsMfQ.mjs} +2 -4
  20. package/dist/{link-button-Cby0p4LW.mjs → button-fO8nazJE.mjs} +3 -5
  21. package/dist/button-group/index.mjs +2 -5
  22. package/dist/{button-group-BDk8btAy.mjs → button-group-CYPka2zz.mjs} +3 -5
  23. package/dist/calendar/index.mjs +2 -5
  24. package/dist/{calendar-BtfraIvX.mjs → calendar-DEkCw7I1.mjs} +4 -6
  25. package/dist/{calendar-date-picker-B9mxJM7f.mjs → calendar-date-picker-DWK94_DC.mjs} +6 -8
  26. package/dist/card/index.mjs +2 -4
  27. package/dist/{card-BiHXFt4s.mjs → card-DKG1Cwlj.mjs} +3 -6
  28. package/dist/chart/index.mjs +2 -4
  29. package/dist/{chart-CL0i-xIt.mjs → chart-CUa21ynK.mjs} +2 -4
  30. package/dist/checkbox/index.mjs +2 -4
  31. package/dist/{checkbox-CQrjygFt.mjs → checkbox-I5BvrMPe.mjs} +3 -6
  32. package/dist/{close.icon-D2r5q3bj.mjs → close.icon-HCfS4Y-N.mjs} +2 -4
  33. package/dist/{cn-DWCc1QRE.mjs → cn-D2KYQ917.mjs} +1 -3
  34. package/dist/code-editor/index.mjs +2 -0
  35. package/dist/{col-C9PDhvm5.mjs → col-YBbQ5wlb.mjs} +2 -7
  36. package/dist/collapsible/index.mjs +2 -3
  37. package/dist/{collapsible-Dw71o2um.mjs → collapsible-CUphkSBt.mjs} +1 -3
  38. package/dist/command/index.mjs +2 -5
  39. package/dist/{command-DVroicgn.mjs → command-DqHWukGK.mjs} +3 -5
  40. package/dist/components/features/code-editor/code-editor-tabs.d.ts +63 -0
  41. package/dist/components/features/code-editor/code-editor-tabs.d.ts.map +1 -0
  42. package/dist/components/features/code-editor/code-editor.d.ts +58 -0
  43. package/dist/components/features/code-editor/code-editor.d.ts.map +1 -0
  44. package/dist/components/features/code-editor/index.d.ts +6 -0
  45. package/dist/components/features/code-editor/index.d.ts.map +1 -0
  46. package/dist/components/features/code-editor/lib/editor.d.ts +7 -0
  47. package/dist/components/features/code-editor/lib/editor.d.ts.map +1 -0
  48. package/dist/components/features/code-editor/types.d.ts +98 -0
  49. package/dist/components/features/code-editor/types.d.ts.map +1 -0
  50. package/dist/components/features/form/adapter-context.d.ts +17 -0
  51. package/dist/components/features/form/adapter-context.d.ts.map +1 -0
  52. package/dist/components/features/form/adapter-types.d.ts +100 -0
  53. package/dist/components/features/form/adapter-types.d.ts.map +1 -0
  54. package/dist/components/features/form/adapters/conform/conform-adapter.d.ts +9 -0
  55. package/dist/components/features/form/adapters/conform/conform-adapter.d.ts.map +1 -0
  56. package/dist/components/features/form/adapters/conform/conform-provider.d.ts +22 -0
  57. package/dist/components/features/form/adapters/conform/conform-provider.d.ts.map +1 -0
  58. package/dist/components/features/form/adapters/conform/index.d.ts +3 -0
  59. package/dist/components/features/form/adapters/conform/index.d.ts.map +1 -0
  60. package/dist/components/features/form/adapters/rhf/index.d.ts +3 -0
  61. package/dist/components/features/form/adapters/rhf/index.d.ts.map +1 -0
  62. package/dist/components/features/form/adapters/rhf/rhf-adapter.d.ts +10 -0
  63. package/dist/components/features/form/adapters/rhf/rhf-adapter.d.ts.map +1 -0
  64. package/dist/components/features/form/adapters/rhf/rhf-provider.d.ts +22 -0
  65. package/dist/components/features/form/adapters/rhf/rhf-provider.d.ts.map +1 -0
  66. package/dist/components/features/form/components/form-autocomplete.d.ts.map +1 -1
  67. package/dist/components/features/form/components/form-checkbox.d.ts.map +1 -1
  68. package/dist/components/features/form/components/form-copy-box.d.ts.map +1 -1
  69. package/dist/components/features/form/components/form-field-array.d.ts +5 -17
  70. package/dist/components/features/form/components/form-field-array.d.ts.map +1 -1
  71. package/dist/components/features/form/components/form-field.d.ts +7 -21
  72. package/dist/components/features/form/components/form-field.d.ts.map +1 -1
  73. package/dist/components/features/form/components/form-input-group.d.ts +4 -4
  74. package/dist/components/features/form/components/form-input-group.d.ts.map +1 -1
  75. package/dist/components/features/form/components/form-input.d.ts.map +1 -1
  76. package/dist/components/features/form/components/form-radio-group.d.ts.map +1 -1
  77. package/dist/components/features/form/components/form-root.d.ts +5 -25
  78. package/dist/components/features/form/components/form-root.d.ts.map +1 -1
  79. package/dist/components/features/form/components/form-select.d.ts.map +1 -1
  80. package/dist/components/features/form/components/form-switch.d.ts.map +1 -1
  81. package/dist/components/features/form/components/form-textarea.d.ts.map +1 -1
  82. package/dist/components/features/form/components/stepper/form-stepper.d.ts.map +1 -1
  83. package/dist/components/features/form/context/form-context.d.ts +2 -2
  84. package/dist/components/features/form/context/form-context.d.ts.map +1 -1
  85. package/dist/components/features/form/hooks/use-field.d.ts +12 -18
  86. package/dist/components/features/form/hooks/use-field.d.ts.map +1 -1
  87. package/dist/components/features/form/hooks/use-watch.d.ts +9 -20
  88. package/dist/components/features/form/hooks/use-watch.d.ts.map +1 -1
  89. package/dist/components/features/form/index.d.ts +33 -27
  90. package/dist/components/features/form/index.d.ts.map +1 -1
  91. package/dist/components/features/form/types/index.d.ts +32 -32
  92. package/dist/components/features/form/types/index.d.ts.map +1 -1
  93. package/dist/components/features/form/utils/get-field-constraints.d.ts +11 -0
  94. package/dist/components/features/form/utils/get-field-constraints.d.ts.map +1 -0
  95. package/dist/components/features/index.d.ts +1 -0
  96. package/dist/components/features/index.d.ts.map +1 -1
  97. package/dist/components/toast.d.ts +2 -0
  98. package/dist/components/toast.d.ts.map +1 -0
  99. package/dist/data-table/index.mjs +21 -51
  100. package/dist/date-picker/index.mjs +3 -10
  101. package/dist/dialog/index.mjs +2 -5
  102. package/dist/{dialog-B0B3Kbfk.mjs → dialog-Bm2H9lrx.mjs} +4 -6
  103. package/dist/{dialog-DdrHeboM.mjs → dialog-DASRaFxD.mjs} +2 -4
  104. package/dist/dropdown/index.mjs +2 -3
  105. package/dist/{dropdown-Cdx7rOKv.mjs → dropdown-DZiAt-jS.mjs} +3 -5
  106. package/dist/{dropdown-menu-CdShrDz_.mjs → dropdown-menu-lALvDnab.mjs} +5 -7
  107. package/dist/dropzone/index.mjs +2 -5
  108. package/dist/{dropzone-B6kSN3DY.mjs → dropzone-ogtpQ4fy.mjs} +5 -8
  109. package/dist/empty-content/index.mjs +2 -3
  110. package/dist/{empty-content-B1lwLr40.mjs → empty-content-C63GPJ5d.mjs} +3 -9
  111. package/dist/form/adapters/conform/index.mjs +237 -0
  112. package/dist/form/adapters/rhf/index.mjs +181 -0
  113. package/dist/form/index.mjs +3 -146
  114. package/dist/{use-stepper-DigoyHhX.mjs → form-BE1xBne4.mjs} +447 -601
  115. package/dist/get-field-constraints-BPMW8VvY.mjs +48 -0
  116. package/dist/grid/index.mjs +2 -3
  117. package/dist/hooks/index.mjs +3 -4
  118. package/dist/{use-debounce-MnfjH51L.mjs → hooks-DYjN7lvC.mjs} +1 -3
  119. package/dist/hover-card/index.mjs +2 -4
  120. package/dist/{hover-card-CEIauuie.mjs → hover-card-DDWWD5Hx.mjs} +2 -4
  121. package/dist/{icon-wrapper-BBK4z4tj.mjs → icon-wrapper-DuLp3RM1.mjs} +1 -3
  122. package/dist/icons/index.mjs +4 -5
  123. package/dist/index.mjs +66 -71
  124. package/dist/input/index.mjs +2 -5
  125. package/dist/{input-DEMoi_8F.mjs → input-DOmNpcQJ.mjs} +2 -4
  126. package/dist/{input-CYFN0Ap2.mjs → input-FKGqZypx.mjs} +3 -5
  127. package/dist/input-group/index.mjs +2 -7
  128. package/dist/{input-group-DJgYpOlq.mjs → input-group-DDtz-RT7.mjs} +5 -7
  129. package/dist/input-number/index.mjs +2 -6
  130. package/dist/{input-number-Cuy9CCg_.mjs → input-number-DEjXG2I6.mjs} +4 -6
  131. package/dist/input-with-addons/index.mjs +28 -3
  132. package/dist/label/index.mjs +2 -4
  133. package/dist/{label-mOg07fuQ.mjs → label-cnAhY-ej.mjs} +3 -6
  134. package/dist/loader-overlay/index.mjs +2 -3
  135. package/dist/{loader-overlay-8IWX_1Ga.mjs → loader-overlay-BTFdkp7W.mjs} +3 -5
  136. package/dist/map/index.mjs +2 -14
  137. package/dist/{map-CaI1EshG.mjs → map-Cw7u8r6E.mjs} +10 -14
  138. package/dist/{map-leaflet-imports-J7w1V7mh.mjs → map-leaflet-imports-D6nTEOIh.mjs} +1 -2
  139. package/dist/more-actions/index.mjs +2 -5
  140. package/dist/{more-actions-BO5ikUxY.mjs → more-actions-BNQ2yfWZ.mjs} +5 -7
  141. package/dist/nprogress/index.mjs +1 -3
  142. package/dist/page-title/index.mjs +2 -3
  143. package/dist/{page-title-DWteBy1E.mjs → page-title-CNiRNZ7p.mjs} +2 -4
  144. package/dist/popover/index.mjs +2 -4
  145. package/dist/{popover-ugw5MpuT.mjs → popover-FJAcbYoH.mjs} +2 -4
  146. package/dist/radio-group/index.mjs +2 -4
  147. package/dist/{radio-group-_gMymwnb.mjs → radio-group-CiITR0LO.mjs} +3 -6
  148. package/dist/select/index.mjs +2 -4
  149. package/dist/{select-BZOKWjlH.mjs → select-CiLR_DiQ.mjs} +3 -6
  150. package/dist/separator/index.mjs +2 -4
  151. package/dist/{separator-BzyALya2.mjs → separator-DXVTncCK.mjs} +2 -4
  152. package/dist/sheet/index.mjs +3 -5
  153. package/dist/{sheet-BX6lae56.mjs → sheet-BzXksqYY.mjs} +4 -6
  154. package/dist/{sheet-DAcFjaGw.mjs → sheet-Di3b-oPu.mjs} +2 -4
  155. package/dist/sidebar/index.mjs +2 -10
  156. package/dist/{sidebar-B3EV33mG.mjs → sidebar-BnhnjvfO.mjs} +10 -14
  157. package/dist/skeleton/index.mjs +2 -5
  158. package/dist/{skeleton-2vQ0vFQk.mjs → skeleton-BKl4mfJt.mjs} +2 -4
  159. package/dist/{skeleton-BgOwIgE0.mjs → skeleton-D1MUhAVo.mjs} +3 -5
  160. package/dist/spinner/index.mjs +2 -4
  161. package/dist/{spinner-osyXAlhr.mjs → spinner-OyOf9-Yu.mjs} +2 -4
  162. package/dist/{spinner.icon-C0MbtgqX.mjs → spinner.icon-C-vjSM6o.mjs} +2 -4
  163. package/dist/stepper/index.mjs +321 -5
  164. package/dist/switch/index.mjs +2 -4
  165. package/dist/{switch-C60FpEal.mjs → switch-DQJQhPIQ.mjs} +3 -6
  166. package/dist/table/index.mjs +2 -4
  167. package/dist/{table-Cl3UzIhI.mjs → table-Cdsh-39-.mjs} +2 -4
  168. package/dist/tabs/index.mjs +50 -3
  169. package/dist/tag-input/index.mjs +2 -5
  170. package/dist/{tag-input-DR2gukhL.mjs → tag-input-BKed-cul.mjs} +5 -7
  171. package/dist/task-queue/index.mjs +2 -7
  172. package/dist/{task-queue-dropdown-C9KHKbGh.mjs → task-queue-dropdown-Di_Wjspz.mjs} +10 -30
  173. package/dist/textarea/index.mjs +2 -5
  174. package/dist/{textarea-CVo38n3S.mjs → textarea-94vq_G_S.mjs} +2 -4
  175. package/dist/{textarea-CZF5n57i.mjs → textarea-BwD-MmTV.mjs} +3 -5
  176. package/dist/theme/index.mjs +2 -3
  177. package/dist/{theme.provider-TUHlMsjM.mjs → themes-DG1md8FI.mjs} +1 -6
  178. package/dist/{to-api-format-naIpF-NI.mjs → to-api-format-Cq4prffn.mjs} +9 -18
  179. package/dist/toast/index.mjs +3 -3
  180. package/dist/{use-toast-By9HuFwP.mjs → toast-BWnN5fax.mjs} +5 -42
  181. package/dist/toast-DpxlFNNx.mjs +37 -0
  182. package/dist/tooltip/index.mjs +2 -4
  183. package/dist/{tooltip-CuX2jQA9.mjs → tooltip-Cruvl5F6.mjs} +3 -6
  184. package/dist/types-BZNk3q65.mjs +357 -0
  185. package/dist/typography/index.mjs +2 -3
  186. package/dist/{typography-Iap9fU5P.mjs → typography-ClB8k55E.mjs} +2 -4
  187. package/dist/{use-copy-to-clipboard-n29wJwvW.mjs → use-copy-to-clipboard-BGdTmkFV.mjs} +2 -4
  188. package/dist/utils/index.mjs +2 -3
  189. package/dist/{utils-DJboNGQM.mjs → utils-C8KwMfT_.mjs} +1 -3
  190. package/dist/visually-hidden/index.mjs +2 -3
  191. package/dist/{visuallyhidden-BJsQCmg-.mjs → visuallyhidden-BLUsJpYH.mjs} +1 -3
  192. package/package.json +44 -3
  193. package/dist/input-with-addons-B8rzNhpq.mjs +0 -30
  194. package/dist/stepper-BMsn7I78.mjs +0 -323
  195. package/dist/tabs-DJU7JA3h.mjs +0 -52
@@ -0,0 +1,3 @@
1
+ export { conformAdapter } from './conform-adapter';
2
+ export { ConformAdapter } from './conform-provider';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/features/form/adapters/conform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { rhfAdapter } from './rhf-adapter';
2
+ export { RHFAdapter } from './rhf-provider';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/features/form/adapters/rhf/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { FormAdapter } from '../../adapter-types';
2
+ /**
3
+ * React Hook Form adapter implementing the `FormAdapter` interface.
4
+ *
5
+ * Maps react-hook-form's `useForm` / `useController` / `useWatch` APIs
6
+ * to the normalized form adapter contract. Uses `@hookform/resolvers/zod`
7
+ * for Zod schema validation.
8
+ */
9
+ export declare const rhfAdapter: FormAdapter;
10
+ //# sourceMappingURL=rhf-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rhf-adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/components/features/form/adapters/rhf/rhf-adapter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EAKZ,MAAM,qBAAqB,CAAA;AA8L5B;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,WAQxB,CAAA"}
@@ -0,0 +1,22 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface RHFAdapterProps {
3
+ children: ReactNode;
4
+ }
5
+ /**
6
+ * Wrap your application with this provider to use React Hook Form as the form backend.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { RHFAdapter } from '@datum-cloud/datum-ui/form/adapters/rhf'
11
+ *
12
+ * function App() {
13
+ * return (
14
+ * <RHFAdapter>
15
+ * <MyApp />
16
+ * </RHFAdapter>
17
+ * )
18
+ * }
19
+ * ```
20
+ */
21
+ export declare function RHFAdapter({ children }: RHFAdapterProps): import("react/jsx-runtime").JSX.Element;
22
+ //# sourceMappingURL=rhf-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rhf-provider.d.ts","sourceRoot":"","sources":["../../../../../../src/components/features/form/adapters/rhf/rhf-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAMvD"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAMtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,EAAE,EAClF,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,CAAC,CAAC,CAAC,2CAsB1B;yBA1Be,gBAAgB"}
1
+ {"version":3,"file":"form-autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAKtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,EAAE,EAClF,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,CAAC,CAAC,CAAC,2CAmB1B;yBAvBe,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAQjD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,2CAwC7E;yBAxCe,YAAY"}
1
+ {"version":3,"file":"form-checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAOjD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,2CA+B7E;yBA/Be,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-copy-box.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-copy-box.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IACjC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,WAAgB,GACjB,EAAE,gBAAgB,2CAqElB"}
1
+ {"version":3,"file":"form-copy-box.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-copy-box.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IACjC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,WAAgB,GACjB,EAAE,gBAAgB,2CA6DlB"}
@@ -1,8 +1,6 @@
1
1
  import type { FormFieldArrayProps } from '../types';
2
2
  /**
3
- * Form.FieldArray - Dynamic array of fields
4
- *
5
- * Provides helpers for managing arrays of form fields.
3
+ * Form.FieldArray - Dynamic array of fields with append/remove/move helpers.
6
4
  *
7
5
  * @example
8
6
  * ```tsx
@@ -10,30 +8,20 @@ import type { FormFieldArrayProps } from '../types';
10
8
  * {({ fields, append, remove }) => (
11
9
  * <>
12
10
  * {fields.map((field, index) => (
13
- * <div key={field.key} className="flex gap-2">
11
+ * <div key={field.key}>
14
12
  * <Form.Field name={`members.${index}.email`} label="Email">
15
13
  * <Form.Input type="email" />
16
14
  * </Form.Field>
17
- * <Form.Field name={`members.${index}.role`} label="Role">
18
- * <Form.Select>
19
- * <Form.SelectItem value="admin">Admin</Form.SelectItem>
20
- * <Form.SelectItem value="user">User</Form.SelectItem>
21
- * </Form.Select>
22
- * </Form.Field>
23
- * <button type="button" onClick={() => remove(index)}>
24
- * Remove
25
- * </button>
15
+ * <button onClick={() => remove(index)}>Remove</button>
26
16
  * </div>
27
17
  * ))}
28
- * <button type="button" onClick={() => append({ email: '', role: 'user' })}>
29
- * Add Member
30
- * </button>
18
+ * <button onClick={() => append({})}>Add Member</button>
31
19
  * </>
32
20
  * )}
33
21
  * </Form.FieldArray>
34
22
  * ```
35
23
  */
36
- export declare function FormFieldArray({ name, children }: FormFieldArrayProps): import("react/jsx-runtime").JSX.Element | null;
24
+ export declare function FormFieldArray({ name, children }: FormFieldArrayProps): import("react/jsx-runtime").JSX.Element;
37
25
  export declare namespace FormFieldArray {
38
26
  var displayName: string;
39
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"form-field-array.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-field-array.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA6B,MAAM,UAAU,CAAA;AAK9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,mBAAmB,kDA6FrE;yBA7Fe,cAAc"}
1
+ {"version":3,"file":"form-field-array.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-field-array.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA6B,MAAM,UAAU,CAAA;AAI9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CAYrE;yBAZe,cAAc"}
@@ -1,39 +1,25 @@
1
1
  import type { FormFieldProps } from '../types';
2
2
  /**
3
- * Form.Field - Field wrapper component
4
- *
5
- * Provides field context to children with:
6
- * - Automatic label rendering
7
- * - Error display
8
- * - Description text
9
- * - Required indicator
10
- * - Accessibility attributes
11
- *
12
- * Supports two patterns:
13
- * 1. ReactNode children - for standard Form inputs
14
- * 2. Render function - for custom components needing field access
3
+ * Form.Field - Field wrapper that provides label, errors, and description.
4
+ * Uses the active adapter to resolve field state by name.
15
5
  *
16
6
  * @example Standard usage
17
7
  * ```tsx
18
- * <Form.Field name="email" label="Email Address" required>
8
+ * <Form.Field name="email" label="Email" required>
19
9
  * <Form.Input type="email" />
20
10
  * </Form.Field>
21
11
  * ```
22
12
  *
23
13
  * @example Render function for custom components
24
14
  * ```tsx
25
- * <Form.Field name="role" label="Role" required>
26
- * {({ control, meta, fields }) => (
27
- * <CustomSelect
28
- * name={meta.name}
29
- * value={control.value}
30
- * onChange={control.change}
31
- * />
15
+ * <Form.Field name="role" label="Role">
16
+ * {({ control, meta }) => (
17
+ * <CustomSelect value={control.value} onChange={control.change} />
32
18
  * )}
33
19
  * </Form.Field>
34
20
  * ```
35
21
  */
36
- export declare function FormField({ name, children, label, description, tooltip, required, disabled, className, labelClassName, }: FormFieldProps): import("react/jsx-runtime").JSX.Element | null;
22
+ export declare function FormField({ name, children, label, description, tooltip, required, disabled, className, labelClassName, }: FormFieldProps): import("react/jsx-runtime").JSX.Element;
37
23
  export declare namespace FormField {
38
24
  var displayName: string;
39
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,cAAc,EAAwB,MAAM,UAAU,CAAA;AAoE3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,WAAW,EACX,OAAO,EACP,QAAgB,EAChB,QAAgB,EAChB,SAAS,EACT,cAAc,GACf,EAAE,cAAc,kDAgJhB;yBA1Je,SAAS"}
1
+ {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,cAAc,EAAwB,MAAM,UAAU,CAAA;AAyE3F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,WAAW,EACX,OAAO,EACP,QAAgB,EAChB,QAAgB,EAChB,SAAS,EACT,cAAc,GACf,EAAE,cAAc,2CAyGhB;yBAnHe,SAAS"}
@@ -1,18 +1,18 @@
1
1
  import type { InputWithAddonsProps } from '../../input-with-addons';
2
2
  import * as React from 'react';
3
3
  /**
4
- * Form.Input - Text input component
4
+ * Form.InputGroup - Input with leading/trailing addons
5
5
  *
6
6
  * Automatically wired to the parent Form.Field context.
7
7
  *
8
8
  * @example
9
9
  * ```tsx
10
- * <Form.Field name="email" label="Email" required>
11
- * <Form.Input type="email" placeholder="john@example.com" />
10
+ * <Form.Field name="website" label="Website" required>
11
+ * <Form.InputGroup leading="https://" placeholder="example.com" />
12
12
  * </Form.Field>
13
13
  * ```
14
14
  */
15
- export declare function FormInputGroup({ ref, type, className, disabled, ...props }: InputWithAddonsProps & {
15
+ export declare function FormInputGroup({ ref, className, disabled, ...props }: Omit<InputWithAddonsProps, 'name'> & {
16
16
  ref?: React.RefObject<HTMLInputElement | null>;
17
17
  }): import("react/jsx-runtime").JSX.Element;
18
18
  export declare namespace FormInputGroup {
@@ -1 +1 @@
1
- {"version":3,"file":"form-input-group.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-input-group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAEnE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,IAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;CAAE,2CAiC9J;yBAjCe,cAAc"}
1
+ {"version":3,"file":"form-input-group.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-input-group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;CAAE,2CAoB7J;yBApBe,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-input.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,EAAE,GAAG,EAAE,IAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;CAAE,2CAmBnJ;yBAnBe,SAAS"}
1
+ {"version":3,"file":"form-input.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,EAAE,GAAG,EAAE,IAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;CAAE,2CAqBnJ;yBArBe,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-radio-group.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-radio-group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAQvE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,EAC7B,WAAwB,EACxB,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,EAAE,mBAAmB,2CA0BrB;yBA/Be,cAAc;;;AAmC9B;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAoBxF;yBApBe,aAAa"}
1
+ {"version":3,"file":"form-radio-group.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-radio-group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAOvE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,EAC7B,WAAwB,EACxB,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,EAAE,mBAAmB,2CAsBrB;yBA3Be,cAAc;;;AA+B9B;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAoBxF;yBApBe,aAAa"}
@@ -1,21 +1,12 @@
1
1
  import type { z } from 'zod';
2
2
  import type { FormRootProps } from '../types';
3
3
  /**
4
- * Form.Root - The root form component
5
- *
6
- * Provides form context to all children with built-in:
7
- * - Zod schema validation
8
- * - Conform integration
9
- * - Optional telemetry callbacks
10
- *
11
- * Supports two patterns:
12
- * 1. ReactNode children - for standard forms
13
- * 2. Render function - for forms needing access to form state
4
+ * Form.Root - Root form container that integrates with the active adapter.
14
5
  *
15
6
  * @example Standard usage
16
7
  * ```tsx
17
- * <Form.Root schema={userSchema} onSubmit={handleSubmit}>
18
- * <Form.Field name="email" label="Email" required>
8
+ * <Form.Root schema={schema} onSubmit={handleSubmit}>
9
+ * <Form.Field name="email" label="Email">
19
10
  * <Form.Input type="email" />
20
11
  * </Form.Field>
21
12
  * <Form.Submit>Save</Form.Submit>
@@ -24,20 +15,9 @@ import type { FormRootProps } from '../types';
24
15
  *
25
16
  * @example Render function for form state access
26
17
  * ```tsx
27
- * <Form.Root schema={userSchema} onSubmit={handleSubmit}>
18
+ * <Form.Root schema={schema}>
28
19
  * {({ form, fields, isSubmitting }) => (
29
- * <>
30
- * <Form.Field name="email" label="Email" required>
31
- * <Form.Input type="email" />
32
- * </Form.Field>
33
- * <Button
34
- * disabled={isSubmitting}
35
- * onClick={() => form.update({ value: { email: '' } })}
36
- * >
37
- * Cancel
38
- * </Button>
39
- * <Form.Submit>Save</Form.Submit>
40
- * </>
20
+ * <Form.Field name="email"><Form.Input /></Form.Field>
41
21
  * )}
42
22
  * </Form.Root>
43
23
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"form-root.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,UAAU,CAAA;AAOlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAC5C,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAe,EACf,aAAa,EAAE,QAAiB,EAChC,EAAE,EACF,IAAI,EACJ,aAAa,EACb,IAAe,EACf,YAAY,EAAE,oBAAoB,EAClC,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GACV,EAAE,aAAa,CAAC,CAAC,CAAC,2CAqJlB;yBArKe,QAAQ"}
1
+ {"version":3,"file":"form-root.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,UAAU,CAAA;AAMlE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAC5C,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAe,EACf,aAAa,EAAE,QAAiB,EAChC,EAAE,EACF,IAAI,EACJ,aAAa,EACb,IAAe,EACf,YAAY,EAAE,oBAAoB,EAClC,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GACV,EAAE,aAAa,CAAC,CAAC,CAAC,2CA+FlB;yBA/Ge,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-select.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAapE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,2CA4BzF;yBA5Be,UAAU;;;AAgC1B;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CAMhF;yBANe,cAAc"}
1
+ {"version":3,"file":"form-select.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAYpE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,2CA2BzF;yBA3Be,UAAU;;;AA+B1B;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CAMhF;yBANe,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-switch.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAQ/C;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,2CAwCzE;yBAxCe,UAAU"}
1
+ {"version":3,"file":"form-switch.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAO/C;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,2CA+BzE;yBA/Be,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-textarea.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;CAAE,2CAmBvJ;yBAnBe,YAAY"}
1
+ {"version":3,"file":"form-textarea.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;CAAE,2CAqBvJ;yBArBe,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-stepper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/features/form/components/stepper/form-stepper.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAA0B,UAAU,EAAE,MAAM,aAAa,CAAA;AAGvF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAU9B,UAAU,uBAAuB;IAC/B,8BAA8B;IAC9B,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,0BAA0B;IAC1B,OAAO,EAAE,UAAU,CAAA;IACnB,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,sBAAsB;IACtB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,gCAAgC;IAChC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAA;IACf,uCAAuC;IACvC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACpE,sCAAsC;IACtC,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7C,uBAAuB;IACvB,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAA;KACjC,CAAA;CACF;AAQD,wBAAgB,qBAAqB,IAAI,uBAAuB,CAM/D;AAwED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,EAAE,EACF,aAAa,GACd,EAAE,gBAAgB,GAAG;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;CAClC,2CAqCA;yBAnDe,WAAW"}
1
+ {"version":3,"file":"form-stepper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/features/form/components/stepper/form-stepper.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAA0B,UAAU,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,UAAU,uBAAuB;IAC/B,8BAA8B;IAC9B,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,0BAA0B;IAC1B,OAAO,EAAE,UAAU,CAAA;IACnB,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,sBAAsB;IACtB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,gCAAgC;IAChC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAA;IACf,uCAAuC;IACvC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACpE,sCAAsC;IACtC,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7C,uBAAuB;IACvB,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAA;KACjC,CAAA;CACF;AAQD,wBAAgB,qBAAqB,IAAI,uBAAuB,CAM/D;AAwED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,EAAE,EACF,aAAa,GACd,EAAE,gBAAgB,GAAG;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;CAClC,2CAqCA;yBAnDe,WAAW"}
@@ -1,4 +1,4 @@
1
- import type { FieldMetadata } from '@conform-to/react';
1
+ import type { NormalizedFieldMeta } from '../adapter-types';
2
2
  import type { FormContextValue } from '../types';
3
3
  import * as React from 'react';
4
4
  declare const FormContext: React.Context<FormContextValue<Record<string, unknown>> | null>;
@@ -11,7 +11,7 @@ export declare function useFormContext<T extends Record<string, unknown> = Recor
11
11
  /**
12
12
  * Get a specific field from the form context
13
13
  */
14
- export declare function useFormField(name: string): FieldMetadata<unknown> | undefined;
14
+ export declare function useFormField(name: string): NormalizedFieldMeta | undefined;
15
15
  /**
16
16
  * Check if the form is currently submitting
17
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"form-context.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/context/form-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,QAAA,MAAM,WAAW,iEAAqD,CAAA;AAEtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,EAAE,gBAAgB,CAAA;CACxB;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,iBAAiB,2CAElE;AAED,wBAAgB,cAAc,CAC5B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACxD,gBAAgB,CAAC,CAAC,CAAC,CAQvB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,SAAS,CAG7E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"form-context.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/context/form-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,QAAA,MAAM,WAAW,iEAAqD,CAAA;AAEtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,EAAE,gBAAgB,CAAA;CACxB;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,iBAAiB,2CAElE;AAED,wBAAgB,cAAc,CAC5B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACxD,gBAAgB,CAAC,CAAC,CAAC,CAQvB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAG1E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -1,28 +1,22 @@
1
1
  import type { UseFieldReturn } from '../types';
2
2
  /**
3
- * Hook to access and control a specific field
4
- * Provides field metadata, control methods, and errors
3
+ * Hook to access and control a specific field.
4
+ * Delegates to the active adapter's useField implementation.
5
5
  *
6
6
  * @example
7
7
  * ```tsx
8
8
  * function MyCustomInput({ name }: { name: string }) {
9
- * const { field, control, meta, errors } = useField(name);
10
- *
9
+ * const { field, control, meta, errors } = useField(name)
11
10
  * return (
12
- * <div>
13
- * <input
14
- * name={meta.name}
15
- * id={meta.id}
16
- * value={control.value ?? ''}
17
- * onChange={(e) => control.change(e.target.value)}
18
- * onBlur={control.blur}
19
- * aria-invalid={!!errors?.length}
20
- * />
21
- * {errors?.map((error) => (
22
- * <span key={error} className="text-red-500">{error}</span>
23
- * ))}
24
- * </div>
25
- * );
11
+ * <input
12
+ * name={meta.name}
13
+ * id={meta.id}
14
+ * value={control.value ?? ''}
15
+ * onChange={(e) => control.change(e.target.value)}
16
+ * onBlur={control.blur}
17
+ * aria-invalid={!!errors?.length}
18
+ * />
19
+ * )
26
20
  * }
27
21
  * ```
28
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"use-field.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/hooks/use-field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAK9C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAiFrD"}
1
+ {"version":3,"file":"use-field.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/hooks/use-field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG9C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAqBrD"}
@@ -1,39 +1,28 @@
1
1
  /**
2
- * Hook to watch a field's value
3
- * Triggers re-render when the watched field value changes
2
+ * Hook to watch a field's value reactively.
3
+ * Delegates to the active adapter's useWatch implementation.
4
4
  *
5
5
  * @example
6
6
  * ```tsx
7
7
  * function ConditionalField() {
8
- * const contactMethod = useWatch('contactMethod');
9
- *
8
+ * const contactMethod = useWatch('contactMethod')
10
9
  * if (contactMethod === 'email') {
11
- * return <Form.Field name="email"><Form.Input type="email" /></Form.Field>;
12
- * }
13
- *
14
- * if (contactMethod === 'phone') {
15
- * return <Form.Field name="phone"><Form.Input type="tel" /></Form.Field>;
10
+ * return <Form.Field name="email"><Form.Input type="email" /></Form.Field>
16
11
  * }
17
- *
18
- * return null;
12
+ * return null
19
13
  * }
20
14
  * ```
21
15
  */
22
16
  export declare function useWatch<T = unknown>(name: string): T | undefined;
23
17
  /**
24
- * Hook to watch multiple fields at once
18
+ * Hook to watch multiple fields at once.
19
+ * Delegates to the active adapter's useWatchAll implementation.
25
20
  *
26
21
  * @example
27
22
  * ```tsx
28
23
  * function Summary() {
29
- * const values = useWatchAll(['firstName', 'lastName', 'email']);
30
- *
31
- * return (
32
- * <div>
33
- * Name: {values.firstName} {values.lastName}
34
- * Email: {values.email}
35
- * </div>
36
- * );
24
+ * const values = useWatchAll(['firstName', 'lastName', 'email'])
25
+ * return <div>Name: {values.firstName} {values.lastName}</div>
37
26
  * }
38
27
  * ```
39
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"use-watch.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/hooks/use-watch.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAyCjE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAyC1F"}
1
+ {"version":3,"file":"use-watch.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/hooks/use-watch.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAGjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAG1F"}
@@ -1,12 +1,27 @@
1
1
  /**
2
2
  * Datum Form Library
3
3
  *
4
- * A compound component pattern form library built on top of Conform.js and Zod
5
- * for easy form creation with built-in validation, error handling, and accessibility features.
4
+ * A compound component pattern form library with pluggable adapter support.
5
+ * Choose between Conform.js or React Hook Form as your form backend,
6
+ * with Zod for schema validation.
7
+ *
8
+ * ## Adapter Setup
9
+ *
10
+ * Wrap your app with an adapter provider:
11
+ *
12
+ * ```tsx
13
+ * // Conform adapter
14
+ * import { ConformAdapter } from '@datum-cloud/datum-ui/form/adapters/conform'
15
+ * <ConformAdapter><App /></ConformAdapter>
16
+ *
17
+ * // React Hook Form adapter
18
+ * import { RHFAdapter } from '@datum-cloud/datum-ui/form/adapters/rhf'
19
+ * <RHFAdapter><App /></RHFAdapter>
20
+ * ```
6
21
  *
7
22
  * @example Basic Usage
8
23
  * ```tsx
9
- * import { Form } from './';
24
+ * import { Form } from '@datum-cloud/datum-ui/form';
10
25
  * import { z } from 'zod';
11
26
  *
12
27
  * const userSchema = z.object({
@@ -64,36 +79,25 @@ import { useField, useFieldContext, useFormContext, useStepper, useWatch, useWat
64
79
  /**
65
80
  * Form compound component
66
81
  *
67
- * Contains all form-related components as properties:
82
+ * Requires an adapter provider at the application root:
83
+ * - `<ConformAdapter>` from `@datum-cloud/datum-ui/form/adapters/conform`
84
+ * - `<RHFAdapter>` from `@datum-cloud/datum-ui/form/adapters/rhf`
85
+ *
86
+ * Components:
68
87
  * - Form.Root - Main form container
69
88
  * - Form.Field - Field wrapper with label and error handling
70
- * - Form.Input - Text input
71
- * - Form.Textarea - Multi-line text input
72
- * - Form.Select - Dropdown select
73
- * - Form.SelectItem - Select option
74
- * - Form.Checkbox - Checkbox input
75
- * - Form.Switch - Toggle switch
76
- * - Form.RadioGroup - Radio button group
77
- * - Form.RadioItem - Radio button option
78
- * - Form.Submit - Submit button with loading state
79
- * - Form.Error - Error display
80
- * - Form.Description - Helper text
81
- * - Form.Autocomplete - Searchable select with virtualization
89
+ * - Form.Input, Form.Textarea, Form.Select, Form.Checkbox, Form.Switch, Form.RadioGroup
90
+ * - Form.Autocomplete, Form.CopyBox, Form.InputGroup
82
91
  * - Form.When - Conditional rendering
83
92
  * - Form.FieldArray - Dynamic array of fields
84
93
  * - Form.Custom - Escape hatch for custom implementations
85
- * - Form.Stepper - Multi-step form container
86
- * - Form.Step - Individual step content
87
- * - Form.StepperNavigation - Step progress indicators
88
- * - Form.StepperControls - Previous/Next/Submit buttons
94
+ * - Form.Stepper, Form.Step, Form.StepperNavigation, Form.StepperControls
95
+ * - Form.Dialog - Form rendered inside a Dialog
96
+ * - Form.Submit, Form.Button, Form.Error, Form.Description
89
97
  *
90
- * Hooks available:
91
- * - Form.useFormContext - Access form context
92
- * - Form.useFieldContext - Access field context
93
- * - Form.useField - Access and control a specific field
94
- * - Form.useWatch - Watch a field's value
95
- * - Form.useWatchAll - Watch multiple fields
96
- * - Form.useStepper - Access stepper context
98
+ * Hooks:
99
+ * - Form.useFormContext, Form.useFieldContext, Form.useField
100
+ * - Form.useWatch, Form.useWatchAll, Form.useStepper
97
101
  */
98
102
  export declare const Form: {
99
103
  readonly Root: typeof FormRoot;
@@ -129,5 +133,7 @@ export declare const Form: {
129
133
  readonly useStepper: typeof useStepper;
130
134
  };
131
135
  export { FormAutocomplete, FormButton, FormCheckbox, FormCopyBox, FormCustom, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormStep, FormStepper, FormSubmit, FormSwitch, FormTextarea, FormWhen, StepperControls, StepperNavigation, useField, useFieldContext, useFormContext, useStepper, useWatch, useWatchAll, };
136
+ export { FormAdapterProvider, useAdapter } from './adapter-context';
137
+ export type { CreateFormProps, FormAdapter, NormalizedFieldArray, NormalizedFieldMeta, NormalizedFieldState, NormalizedFormInstance, } from './adapter-types';
132
138
  export type { AutocompleteGroup, AutocompleteOption, AutocompleteProps, FormAutocompleteProps, FormButtonProps, FormCheckboxProps, FormContextValue, FormCopyBoxProps, FormCustomProps, FormCustomRenderProps, FormDescriptionProps, FormDialogProps, FormErrorProps, FormFieldArrayProps, FormFieldArrayRenderProps, FormFieldContextValue, FormFieldProps, FormFieldRenderProps, FormInputProps, FormRadioGroupProps, FormRadioItemProps, FormRootProps, FormRootRenderProps, FormSelectItemProps, FormSelectProps, FormStepperProps, FormStepProps, FormSubmitProps, FormSwitchProps, FormTelemetry, FormTextareaProps, FormWhenProps, StepConfig, StepperContextValue, StepperControlsProps, StepperNavigationProps, UseFieldReturn, UseWatchReturn, } from './types';
133
139
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/features/form/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAEH,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,QAAQ,EACR,UAAU,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,iBAAiB,EAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CP,CAAA;AAGV,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,eAAe,EAGf,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EAEd,SAAS,EACT,cAAc,EACd,aAAa,EAEb,QAAQ,EACR,UAAU,EACV,cAAc,EAEd,QAAQ,EAER,WAAW,EACX,UAAU,EAEV,UAAU,EACV,YAAY,EAEZ,QAAQ,EACR,eAAe,EAEf,iBAAiB,EAEjB,QAAQ,EACR,eAAe,EAEf,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,GACZ,CAAA;AAGD,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,cAAc,GACf,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/features/form/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AAEH,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,QAAQ,EACR,UAAU,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,iBAAiB,EAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CP,CAAA;AAGV,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,eAAe,EAGf,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EAEd,SAAS,EACT,cAAc,EACd,aAAa,EAEb,QAAQ,EACR,UAAU,EACV,cAAc,EAEd,QAAQ,EAER,WAAW,EACX,UAAU,EAEV,UAAU,EACV,YAAY,EAEZ,QAAQ,EACR,eAAe,EAEf,iBAAiB,EAEjB,QAAQ,EACR,eAAe,EAEf,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,GACZ,CAAA;AAGD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnE,YAAY,EACV,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AAGxB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,cAAc,GACf,MAAM,SAAS,CAAA"}