@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.
- package/README.md +78 -39
- package/dist/adapter-context-B7L2ucTr.mjs +25 -0
- package/dist/alert/index.mjs +2 -3
- package/dist/{alert-BC2Mccfo.mjs → alert-BDj6od5I.mjs} +2 -4
- package/dist/app-navigation/index.mjs +4 -12
- package/dist/{app-navigation-DsCKgfPe.mjs → app-navigation-84ro28PU.mjs} +5 -8
- package/dist/autocomplete/index.mjs +2 -7
- package/dist/{autocomplete-DRB_kSVx.mjs → autocomplete-V5-qslzS.mjs} +5 -7
- package/dist/avatar/index.mjs +2 -4
- package/dist/{avatar-DyLq0xkt.mjs → avatar-BtKVcvO4.mjs} +2 -4
- package/dist/avatar-stack/index.mjs +2 -6
- package/dist/{avatar-stack-BT0dBswq.mjs → avatar-stack-oVr8tsU7.mjs} +4 -6
- package/dist/badge/index.mjs +2 -3
- package/dist/{badge-BgFj4Nsc.mjs → badge-DJR33ftJ.mjs} +2 -4
- package/dist/breadcrumb/index.mjs +2 -4
- package/dist/{breadcrumb-CJNaYyk1.mjs → breadcrumb-B-9G347O.mjs} +2 -4
- package/dist/button/index.mjs +3 -4
- package/dist/{button-0N61fmAR.mjs → button-BllvE9Lm.mjs} +3 -5
- package/dist/{button-D6AORsOz.mjs → button-D3RrsMfQ.mjs} +2 -4
- package/dist/{link-button-Cby0p4LW.mjs → button-fO8nazJE.mjs} +3 -5
- package/dist/button-group/index.mjs +2 -5
- package/dist/{button-group-BDk8btAy.mjs → button-group-CYPka2zz.mjs} +3 -5
- package/dist/calendar/index.mjs +2 -5
- package/dist/{calendar-BtfraIvX.mjs → calendar-DEkCw7I1.mjs} +4 -6
- package/dist/{calendar-date-picker-B9mxJM7f.mjs → calendar-date-picker-DWK94_DC.mjs} +6 -8
- package/dist/card/index.mjs +2 -4
- package/dist/{card-BiHXFt4s.mjs → card-DKG1Cwlj.mjs} +3 -6
- package/dist/chart/index.mjs +2 -4
- package/dist/{chart-CL0i-xIt.mjs → chart-CUa21ynK.mjs} +2 -4
- package/dist/checkbox/index.mjs +2 -4
- package/dist/{checkbox-CQrjygFt.mjs → checkbox-I5BvrMPe.mjs} +3 -6
- package/dist/{close.icon-D2r5q3bj.mjs → close.icon-HCfS4Y-N.mjs} +2 -4
- package/dist/{cn-DWCc1QRE.mjs → cn-D2KYQ917.mjs} +1 -3
- package/dist/code-editor/index.mjs +2 -0
- package/dist/{col-C9PDhvm5.mjs → col-YBbQ5wlb.mjs} +2 -7
- package/dist/collapsible/index.mjs +2 -3
- package/dist/{collapsible-Dw71o2um.mjs → collapsible-CUphkSBt.mjs} +1 -3
- package/dist/command/index.mjs +2 -5
- package/dist/{command-DVroicgn.mjs → command-DqHWukGK.mjs} +3 -5
- package/dist/components/features/code-editor/code-editor-tabs.d.ts +63 -0
- package/dist/components/features/code-editor/code-editor-tabs.d.ts.map +1 -0
- package/dist/components/features/code-editor/code-editor.d.ts +58 -0
- package/dist/components/features/code-editor/code-editor.d.ts.map +1 -0
- package/dist/components/features/code-editor/index.d.ts +6 -0
- package/dist/components/features/code-editor/index.d.ts.map +1 -0
- package/dist/components/features/code-editor/lib/editor.d.ts +7 -0
- package/dist/components/features/code-editor/lib/editor.d.ts.map +1 -0
- package/dist/components/features/code-editor/types.d.ts +98 -0
- package/dist/components/features/code-editor/types.d.ts.map +1 -0
- package/dist/components/features/form/adapter-context.d.ts +17 -0
- package/dist/components/features/form/adapter-context.d.ts.map +1 -0
- package/dist/components/features/form/adapter-types.d.ts +100 -0
- package/dist/components/features/form/adapter-types.d.ts.map +1 -0
- package/dist/components/features/form/adapters/conform/conform-adapter.d.ts +9 -0
- package/dist/components/features/form/adapters/conform/conform-adapter.d.ts.map +1 -0
- package/dist/components/features/form/adapters/conform/conform-provider.d.ts +22 -0
- package/dist/components/features/form/adapters/conform/conform-provider.d.ts.map +1 -0
- package/dist/components/features/form/adapters/conform/index.d.ts +3 -0
- package/dist/components/features/form/adapters/conform/index.d.ts.map +1 -0
- package/dist/components/features/form/adapters/rhf/index.d.ts +3 -0
- package/dist/components/features/form/adapters/rhf/index.d.ts.map +1 -0
- package/dist/components/features/form/adapters/rhf/rhf-adapter.d.ts +10 -0
- package/dist/components/features/form/adapters/rhf/rhf-adapter.d.ts.map +1 -0
- package/dist/components/features/form/adapters/rhf/rhf-provider.d.ts +22 -0
- package/dist/components/features/form/adapters/rhf/rhf-provider.d.ts.map +1 -0
- package/dist/components/features/form/components/form-autocomplete.d.ts.map +1 -1
- package/dist/components/features/form/components/form-checkbox.d.ts.map +1 -1
- package/dist/components/features/form/components/form-copy-box.d.ts.map +1 -1
- package/dist/components/features/form/components/form-field-array.d.ts +5 -17
- package/dist/components/features/form/components/form-field-array.d.ts.map +1 -1
- package/dist/components/features/form/components/form-field.d.ts +7 -21
- package/dist/components/features/form/components/form-field.d.ts.map +1 -1
- package/dist/components/features/form/components/form-input-group.d.ts +4 -4
- package/dist/components/features/form/components/form-input-group.d.ts.map +1 -1
- package/dist/components/features/form/components/form-input.d.ts.map +1 -1
- package/dist/components/features/form/components/form-radio-group.d.ts.map +1 -1
- package/dist/components/features/form/components/form-root.d.ts +5 -25
- package/dist/components/features/form/components/form-root.d.ts.map +1 -1
- package/dist/components/features/form/components/form-select.d.ts.map +1 -1
- package/dist/components/features/form/components/form-switch.d.ts.map +1 -1
- package/dist/components/features/form/components/form-textarea.d.ts.map +1 -1
- package/dist/components/features/form/components/stepper/form-stepper.d.ts.map +1 -1
- package/dist/components/features/form/context/form-context.d.ts +2 -2
- package/dist/components/features/form/context/form-context.d.ts.map +1 -1
- package/dist/components/features/form/hooks/use-field.d.ts +12 -18
- package/dist/components/features/form/hooks/use-field.d.ts.map +1 -1
- package/dist/components/features/form/hooks/use-watch.d.ts +9 -20
- package/dist/components/features/form/hooks/use-watch.d.ts.map +1 -1
- package/dist/components/features/form/index.d.ts +33 -27
- package/dist/components/features/form/index.d.ts.map +1 -1
- package/dist/components/features/form/types/index.d.ts +32 -32
- package/dist/components/features/form/types/index.d.ts.map +1 -1
- package/dist/components/features/form/utils/get-field-constraints.d.ts +11 -0
- package/dist/components/features/form/utils/get-field-constraints.d.ts.map +1 -0
- package/dist/components/features/index.d.ts +1 -0
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/toast.d.ts +2 -0
- package/dist/components/toast.d.ts.map +1 -0
- package/dist/data-table/index.mjs +21 -51
- package/dist/date-picker/index.mjs +3 -10
- package/dist/dialog/index.mjs +2 -5
- package/dist/{dialog-B0B3Kbfk.mjs → dialog-Bm2H9lrx.mjs} +4 -6
- package/dist/{dialog-DdrHeboM.mjs → dialog-DASRaFxD.mjs} +2 -4
- package/dist/dropdown/index.mjs +2 -3
- package/dist/{dropdown-Cdx7rOKv.mjs → dropdown-DZiAt-jS.mjs} +3 -5
- package/dist/{dropdown-menu-CdShrDz_.mjs → dropdown-menu-lALvDnab.mjs} +5 -7
- package/dist/dropzone/index.mjs +2 -5
- package/dist/{dropzone-B6kSN3DY.mjs → dropzone-ogtpQ4fy.mjs} +5 -8
- package/dist/empty-content/index.mjs +2 -3
- package/dist/{empty-content-B1lwLr40.mjs → empty-content-C63GPJ5d.mjs} +3 -9
- package/dist/form/adapters/conform/index.mjs +237 -0
- package/dist/form/adapters/rhf/index.mjs +181 -0
- package/dist/form/index.mjs +3 -146
- package/dist/{use-stepper-DigoyHhX.mjs → form-BE1xBne4.mjs} +447 -601
- package/dist/get-field-constraints-BPMW8VvY.mjs +48 -0
- package/dist/grid/index.mjs +2 -3
- package/dist/hooks/index.mjs +3 -4
- package/dist/{use-debounce-MnfjH51L.mjs → hooks-DYjN7lvC.mjs} +1 -3
- package/dist/hover-card/index.mjs +2 -4
- package/dist/{hover-card-CEIauuie.mjs → hover-card-DDWWD5Hx.mjs} +2 -4
- package/dist/{icon-wrapper-BBK4z4tj.mjs → icon-wrapper-DuLp3RM1.mjs} +1 -3
- package/dist/icons/index.mjs +4 -5
- package/dist/index.mjs +66 -71
- package/dist/input/index.mjs +2 -5
- package/dist/{input-DEMoi_8F.mjs → input-DOmNpcQJ.mjs} +2 -4
- package/dist/{input-CYFN0Ap2.mjs → input-FKGqZypx.mjs} +3 -5
- package/dist/input-group/index.mjs +2 -7
- package/dist/{input-group-DJgYpOlq.mjs → input-group-DDtz-RT7.mjs} +5 -7
- package/dist/input-number/index.mjs +2 -6
- package/dist/{input-number-Cuy9CCg_.mjs → input-number-DEjXG2I6.mjs} +4 -6
- package/dist/input-with-addons/index.mjs +28 -3
- package/dist/label/index.mjs +2 -4
- package/dist/{label-mOg07fuQ.mjs → label-cnAhY-ej.mjs} +3 -6
- package/dist/loader-overlay/index.mjs +2 -3
- package/dist/{loader-overlay-8IWX_1Ga.mjs → loader-overlay-BTFdkp7W.mjs} +3 -5
- package/dist/map/index.mjs +2 -14
- package/dist/{map-CaI1EshG.mjs → map-Cw7u8r6E.mjs} +10 -14
- package/dist/{map-leaflet-imports-J7w1V7mh.mjs → map-leaflet-imports-D6nTEOIh.mjs} +1 -2
- package/dist/more-actions/index.mjs +2 -5
- package/dist/{more-actions-BO5ikUxY.mjs → more-actions-BNQ2yfWZ.mjs} +5 -7
- package/dist/nprogress/index.mjs +1 -3
- package/dist/page-title/index.mjs +2 -3
- package/dist/{page-title-DWteBy1E.mjs → page-title-CNiRNZ7p.mjs} +2 -4
- package/dist/popover/index.mjs +2 -4
- package/dist/{popover-ugw5MpuT.mjs → popover-FJAcbYoH.mjs} +2 -4
- package/dist/radio-group/index.mjs +2 -4
- package/dist/{radio-group-_gMymwnb.mjs → radio-group-CiITR0LO.mjs} +3 -6
- package/dist/select/index.mjs +2 -4
- package/dist/{select-BZOKWjlH.mjs → select-CiLR_DiQ.mjs} +3 -6
- package/dist/separator/index.mjs +2 -4
- package/dist/{separator-BzyALya2.mjs → separator-DXVTncCK.mjs} +2 -4
- package/dist/sheet/index.mjs +3 -5
- package/dist/{sheet-BX6lae56.mjs → sheet-BzXksqYY.mjs} +4 -6
- package/dist/{sheet-DAcFjaGw.mjs → sheet-Di3b-oPu.mjs} +2 -4
- package/dist/sidebar/index.mjs +2 -10
- package/dist/{sidebar-B3EV33mG.mjs → sidebar-BnhnjvfO.mjs} +10 -14
- package/dist/skeleton/index.mjs +2 -5
- package/dist/{skeleton-2vQ0vFQk.mjs → skeleton-BKl4mfJt.mjs} +2 -4
- package/dist/{skeleton-BgOwIgE0.mjs → skeleton-D1MUhAVo.mjs} +3 -5
- package/dist/spinner/index.mjs +2 -4
- package/dist/{spinner-osyXAlhr.mjs → spinner-OyOf9-Yu.mjs} +2 -4
- package/dist/{spinner.icon-C0MbtgqX.mjs → spinner.icon-C-vjSM6o.mjs} +2 -4
- package/dist/stepper/index.mjs +321 -5
- package/dist/switch/index.mjs +2 -4
- package/dist/{switch-C60FpEal.mjs → switch-DQJQhPIQ.mjs} +3 -6
- package/dist/table/index.mjs +2 -4
- package/dist/{table-Cl3UzIhI.mjs → table-Cdsh-39-.mjs} +2 -4
- package/dist/tabs/index.mjs +50 -3
- package/dist/tag-input/index.mjs +2 -5
- package/dist/{tag-input-DR2gukhL.mjs → tag-input-BKed-cul.mjs} +5 -7
- package/dist/task-queue/index.mjs +2 -7
- package/dist/{task-queue-dropdown-C9KHKbGh.mjs → task-queue-dropdown-Di_Wjspz.mjs} +10 -30
- package/dist/textarea/index.mjs +2 -5
- package/dist/{textarea-CVo38n3S.mjs → textarea-94vq_G_S.mjs} +2 -4
- package/dist/{textarea-CZF5n57i.mjs → textarea-BwD-MmTV.mjs} +3 -5
- package/dist/theme/index.mjs +2 -3
- package/dist/{theme.provider-TUHlMsjM.mjs → themes-DG1md8FI.mjs} +1 -6
- package/dist/{to-api-format-naIpF-NI.mjs → to-api-format-Cq4prffn.mjs} +9 -18
- package/dist/toast/index.mjs +3 -3
- package/dist/{use-toast-By9HuFwP.mjs → toast-BWnN5fax.mjs} +5 -42
- package/dist/toast-DpxlFNNx.mjs +37 -0
- package/dist/tooltip/index.mjs +2 -4
- package/dist/{tooltip-CuX2jQA9.mjs → tooltip-Cruvl5F6.mjs} +3 -6
- package/dist/types-BZNk3q65.mjs +357 -0
- package/dist/typography/index.mjs +2 -3
- package/dist/{typography-Iap9fU5P.mjs → typography-ClB8k55E.mjs} +2 -4
- package/dist/{use-copy-to-clipboard-n29wJwvW.mjs → use-copy-to-clipboard-BGdTmkFV.mjs} +2 -4
- package/dist/utils/index.mjs +2 -3
- package/dist/{utils-DJboNGQM.mjs → utils-C8KwMfT_.mjs} +1 -3
- package/dist/visually-hidden/index.mjs +2 -3
- package/dist/{visuallyhidden-BJsQCmg-.mjs → visuallyhidden-BLUsJpYH.mjs} +1 -3
- package/package.json +44 -3
- package/dist/input-with-addons-B8rzNhpq.mjs +0 -30
- package/dist/stepper-BMsn7I78.mjs +0 -323
- package/dist/tabs-DJU7JA3h.mjs +0 -52
|
@@ -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 @@
|
|
|
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;
|
|
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;
|
|
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":"
|
|
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}
|
|
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
|
-
* <
|
|
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
|
|
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
|
|
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;
|
|
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
|
|
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
|
|
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"
|
|
26
|
-
* {({ control, meta
|
|
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
|
|
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;
|
|
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.
|
|
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="
|
|
11
|
-
* <Form.
|
|
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,
|
|
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;
|
|
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;
|
|
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;
|
|
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 -
|
|
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={
|
|
18
|
-
* <Form.Field name="email" label="Email"
|
|
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={
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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 {
|
|
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):
|
|
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,
|
|
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
|
-
*
|
|
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
|
-
* <
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
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;
|
|
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
|
-
*
|
|
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":"
|
|
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
|
|
5
|
-
*
|
|
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
|
-
*
|
|
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
|
|
71
|
-
* - Form.
|
|
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
|
|
86
|
-
* - Form.
|
|
87
|
-
* - Form.
|
|
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
|
|
91
|
-
* - Form.useFormContext
|
|
92
|
-
* - Form.
|
|
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
|
|
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"}
|