@datum-cloud/datum-ui 0.6.0-alpha.a9a8815 → 0.6.0-alpha.b8a44ac

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 (32) hide show
  1. package/dist/components/features/form/adapters/conform/conform-adapter.d.ts.map +1 -1
  2. package/dist/components/features/form/adapters/rhf/rhf-adapter.d.ts.map +1 -1
  3. package/dist/components/features/form/components/form-copy-box.d.ts +3 -0
  4. package/dist/components/features/form/components/form-copy-box.d.ts.map +1 -1
  5. package/dist/components/features/form/components/form-dialog.d.ts.map +1 -1
  6. package/dist/components/features/form/components/form-radio-group.d.ts.map +1 -1
  7. package/dist/components/features/form/components/form-transfer.d.ts.map +1 -1
  8. package/dist/components/features/form/components/index.d.ts +1 -0
  9. package/dist/components/features/form/components/index.d.ts.map +1 -1
  10. package/dist/components/features/form/components/stepper/form-stepper.d.ts.map +1 -1
  11. package/dist/components/features/form/index.d.ts +1 -2
  12. package/dist/components/features/form/index.d.ts.map +1 -1
  13. package/dist/components/features/form/utils/get-field-constraints.d.ts +0 -10
  14. package/dist/components/features/form/utils/get-field-constraints.d.ts.map +1 -1
  15. package/dist/components/features/form/utils/get-schema-defaults.d.ts.map +1 -1
  16. package/dist/components/features/form/utils/zod-helpers.d.ts +12 -0
  17. package/dist/components/features/form/utils/zod-helpers.d.ts.map +1 -0
  18. package/dist/components/features/transfer/components/transfer-item.d.ts.map +1 -1
  19. package/dist/components/features/transfer/components/transfer-panel.d.ts.map +1 -1
  20. package/dist/components/features/transfer/transfer.d.ts.map +1 -1
  21. package/dist/date-time-picker/index.mjs +1 -1
  22. package/dist/{date-time-picker-Bx_n4nEJ.mjs → date-time-picker-Dy2jrJoN.mjs} +0 -2
  23. package/dist/form/adapters/conform/index.mjs +3 -2
  24. package/dist/form/adapters/rhf/index.mjs +25 -33
  25. package/dist/form/index.mjs +1 -1
  26. package/dist/form/stepper/index.mjs +7 -8
  27. package/dist/{form-zf5QOnAk.mjs → form-mlNLKaB5.mjs} +63 -53
  28. package/dist/{get-field-constraints-CxfZ753o.mjs → get-field-constraints-BicgDkfH.mjs} +18 -16
  29. package/dist/index.mjs +1 -1
  30. package/dist/transfer/index.mjs +1 -1
  31. package/dist/{transfer-C55XfEXy.mjs → transfer-B2n8pgEQ.mjs} +21 -4
  32. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"conform-adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/components/features/form/adapters/conform/conform-adapter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EAMZ,MAAM,qBAAqB,CAAA;AA0c5B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,WAQ5B,CAAA"}
1
+ {"version":3,"file":"conform-adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/components/features/form/adapters/conform/conform-adapter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EAMZ,MAAM,qBAAqB,CAAA;AA4c5B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,WAQ5B,CAAA"}
@@ -1 +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,EAMZ,MAAM,qBAAqB,CAAA;AAoO5B;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,WAQxB,CAAA"}
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,EAMZ,MAAM,qBAAqB,CAAA;AA2N5B;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,WAQxB,CAAA"}
@@ -38,4 +38,7 @@ export interface FormCopyBoxProps {
38
38
  * ```
39
39
  */
40
40
  export declare function FormCopyBox({ variant, className, contentClassName, buttonClassName, placeholder, }: FormCopyBoxProps): import("react/jsx-runtime").JSX.Element;
41
+ export declare namespace FormCopyBox {
42
+ var displayName: string;
43
+ }
41
44
  //# sourceMappingURL=form-copy-box.d.ts.map
@@ -1 +1 @@
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
+ {"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;yBAnEe,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,UAAU,CAAA;AAMpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAE9C,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,KAAK,EACL,WAAW,EACX,OAAO,EAGP,MAAM,EACN,aAAa,EACb,QAAQ,EACR,SAAS,EACT,OAAO,EAGP,UAAqB,EACrB,iBAAmC,EACnC,UAAqB,EACrB,UAAiB,EACjB,UAAsB,EAGtB,OAAO,EAGP,aAAa,EACb,SAAS,EAGT,SAAS,EACT,aAAa,EAGb,QAAQ,GACT,EAAE,eAAe,CAAC,CAAC,CAAC,2CAwGpB;yBA5Ie,UAAU"}
1
+ {"version":3,"file":"form-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,UAAU,CAAA;AAMpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAE9C,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,KAAK,EACL,WAAW,EACX,OAAO,EAGP,MAAM,EACN,aAAa,EACb,QAAQ,EACR,SAAS,EACT,OAAO,EAGP,UAAqB,EACrB,iBAAmC,EACnC,UAAqB,EACrB,UAAiB,EACjB,UAAsB,EAGtB,OAAO,EAGP,aAAa,EACb,SAAS,EAGT,SAAS,EACT,aAAa,EAGb,QAAQ,GACT,EAAE,eAAe,CAAC,CAAC,CAAC,2CAoGpB;yBAxIe,UAAU"}
@@ -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;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
+ {"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,2CAqBxF;yBArBe,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-transfer.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-transfer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKzD,MAAM,WAAW,iBAAiB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACxF;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,2CA6B/F;yBA7Be,YAAY"}
1
+ {"version":3,"file":"form-transfer.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/form-transfer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKzD,MAAM,WAAW,iBAAiB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACxF;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,2CAmC/F;yBAnCe,YAAY"}
@@ -13,6 +13,7 @@ export { FormError } from './form-error';
13
13
  export { FormField } from './form-field';
14
14
  export { FormFieldArray } from './form-field-array';
15
15
  export { FormInput } from './form-input';
16
+ export { FormInputGroup } from './form-input-group';
16
17
  export { FormRadioGroup, FormRadioItem } from './form-radio-group';
17
18
  export { FormRoot } from './form-root';
18
19
  export { FormSelect, FormSelectItem } from './form-select';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
@@ -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;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
+ {"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;AAoED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -88,8 +88,7 @@
88
88
  * </Form.When>
89
89
  * ```
90
90
  */
91
- import { FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen } from './components';
92
- import { FormInputGroup } from './components/form-input-group';
91
+ import { FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormInputGroup, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen } from './components';
93
92
  import { useField, useFieldContext, useFormContext, useFormState, useWatch, useWatchAll } from './hooks';
94
93
  /**
95
94
  * Form compound component
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/features/form/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;AAEH,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,QAAQ,EACR,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACT,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CP,CAAA;AAGV,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EAGf,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EAEd,SAAS,EACT,cAAc,EACd,aAAa,EAEb,QAAQ,EACR,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EAEZ,QAAQ,EAER,QAAQ,EACR,eAAe,EAEf,cAAc,EACd,YAAY,EACZ,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,EACtB,mBAAmB,GACpB,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,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;AAEH,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,EACd,aAAa,EACb,QAAQ,EACR,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACT,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CP,CAAA;AAGV,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EAGf,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EAEd,SAAS,EACT,cAAc,EACd,aAAa,EAEb,QAAQ,EACR,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EAEZ,QAAQ,EAER,QAAQ,EACR,eAAe,EAEf,cAAc,EACd,YAAY,EACZ,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,EACtB,mBAAmB,GACpB,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,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,SAAS,CAAA"}
@@ -21,16 +21,6 @@ export interface FieldConstraints {
21
21
  * Used by both Conform and RHF adapters to determine required fields.
22
22
  */
23
23
  export declare function getFieldConstraints(schema: z.ZodType): Record<string, FieldConstraint>;
24
- /**
25
- * Extract the shape from a ZodObject, ZodIntersection, or ZodPipe.
26
- * Uses Zod v4's `def.type` discriminant.
27
- *
28
- * In Zod v4:
29
- * - `.refine()` / `.superRefine()` on ZodObject return the same ZodObject (def.type = 'object')
30
- * - `.transform()` wraps in ZodPipe (def.type = 'pipe', with def.in / def.out)
31
- * - `.and()` creates ZodIntersection (def.type = 'intersection', with def.left / def.right)
32
- */
33
- export declare function getObjectShape(schema: z.ZodType): Record<string, z.ZodType> | null;
34
24
  /**
35
25
  * Extract field-level constraints from a single Zod field schema.
36
26
  * Used to extract constraints like min/max dates, array lengths, string patterns, etc.
@@ -1 +1 @@
1
- {"version":3,"file":"get-field-constraints.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/utils/get-field-constraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAE/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAGlB,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,OAAO,CAAC,EAAE,IAAI,CAAA;IAGd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,CAAC,CAAC,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAcjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,CAAC,CAAC,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAqBlC;AAgBD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAkDhF"}
1
+ {"version":3,"file":"get-field-constraints.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/utils/get-field-constraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAE/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAGlB,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,OAAO,CAAC,EAAE,IAAI,CAAA;IAGd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,CAAC,CAAC,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAcjC;AAgBD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAkDhF"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-schema-defaults.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/utils/get-schema-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB"}
1
+ {"version":3,"file":"get-schema-defaults.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/utils/get-schema-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAG5B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB"}
@@ -0,0 +1,12 @@
1
+ import type { z } from 'zod';
2
+ /**
3
+ * Extract the shape from a ZodObject, ZodIntersection, or ZodPipe.
4
+ * Uses Zod v4's `def.type` discriminant.
5
+ *
6
+ * In Zod v4:
7
+ * - `.refine()` / `.superRefine()` on ZodObject return the same ZodObject (def.type = 'object')
8
+ * - `.transform()` wraps in ZodPipe (def.type = 'pipe', with def.in / def.out)
9
+ * - `.and()` creates ZodIntersection (def.type = 'intersection', with def.left / def.right)
10
+ */
11
+ export declare function getObjectShape(schema: z.ZodType): Record<string, z.ZodType> | null;
12
+ //# sourceMappingURL=zod-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/form/utils/zod-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,CAAC,CAAC,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAqBlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/transfer/components/transfer-item.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC/B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgCpD,CAAA"}
1
+ {"version":3,"file":"transfer-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/transfer/components/transfer-item.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC/B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyCpD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-panel.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/transfer/components/transfer-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,eAAe,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC/B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAmGtD,CAAA"}
1
+ {"version":3,"file":"transfer-panel.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/transfer/components/transfer-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,eAAe,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC/B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwGtD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../../src/components/features/transfer/transfer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAM5C,wBAAgB,QAAQ,CAAC,CAAC,EAAG,EAC3B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAiB,EACjB,iBAA+B,EAC/B,WAAyB,EACzB,WAAwB,EACxB,eAAsB,EACtB,QAAgB,EAChB,SAAS,GACV,EAAE,aAAa,CAAC,CAAC,CAAC,2CAuElB;yBArFe,QAAQ"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../../src/components/features/transfer/transfer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAM5C,wBAAgB,QAAQ,CAAC,CAAC,EAAG,EAC3B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAiB,EACjB,iBAA+B,EAC/B,WAAyB,EACzB,WAAwB,EACxB,eAAsB,EACtB,QAAgB,EAChB,SAAS,GACV,EAAE,aAAa,CAAC,CAAC,CAAC,2CAyElB;yBAvFe,QAAQ"}
@@ -1,2 +1,2 @@
1
- import { t as DateTimePicker } from "../date-time-picker-Bx_n4nEJ.mjs";
1
+ import { t as DateTimePicker } from "../date-time-picker-Dy2jrJoN.mjs";
2
2
  export { DateTimePicker };
@@ -35,7 +35,6 @@ function localDateTimeToUtc(date, time, timezone) {
35
35
  const [hours, minutes] = time.split(":").map(Number);
36
36
  return fromZonedTime(`${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")} ${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}`, timezone).toISOString();
37
37
  } catch {
38
- console.warn(`Invalid timezone "${timezone}", falling back to UTC`);
39
38
  const [hours = 0, minutes = 0] = time.split(":").map(Number);
40
39
  const combined = new Date(date);
41
40
  combined.setUTCHours(hours, minutes, 0, 0);
@@ -57,7 +56,6 @@ function utcToLocalDateTime(utcString, timezone) {
57
56
  time
58
57
  };
59
58
  } catch {
60
- console.warn(`Invalid timezone "${timezone}", falling back to UTC`);
61
59
  const utcDate = new Date(utcString);
62
60
  const hours = utcDate.getUTCHours();
63
61
  const minutes = utcDate.getUTCMinutes();
@@ -1,5 +1,5 @@
1
1
  import { t as FormAdapterProvider } from "../../../adapter-context-rWveHhDd.mjs";
2
- import { t as getFieldConstraints } from "../../../get-field-constraints-CxfZ753o.mjs";
2
+ import { t as getFieldConstraints } from "../../../get-field-constraints-BicgDkfH.mjs";
3
3
  import * as React$1 from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { FormProvider, getFormProps, getInputProps, useForm, useFormMetadata, useInputControl } from "@conform-to/react";
@@ -220,6 +220,7 @@ function useConformWatch(name) {
220
220
  /** Watch multiple fields' values reactively. */
221
221
  function useConformWatchAll(names) {
222
222
  const allFields = useFormMetadata().getFieldset();
223
+ const namesKey = names.join(",");
223
224
  return React$1.useMemo(() => {
224
225
  const result = {};
225
226
  for (const name of names) {
@@ -227,7 +228,7 @@ function useConformWatchAll(names) {
227
228
  if (fieldMeta) result[name] = convertFromString(fieldMeta.value);
228
229
  }
229
230
  return result;
230
- }, [allFields, names]);
231
+ }, [allFields, namesKey]);
231
232
  }
232
233
  /** Get field array helpers for a given array field name. */
233
234
  function useConformFieldArray(name) {
@@ -1,5 +1,5 @@
1
1
  import { t as FormAdapterProvider } from "../../../adapter-context-rWveHhDd.mjs";
2
- import { t as getFieldConstraints } from "../../../get-field-constraints-CxfZ753o.mjs";
2
+ import { n as getObjectShape, t as getFieldConstraints } from "../../../get-field-constraints-BicgDkfH.mjs";
3
3
  import * as React$1 from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { zodResolver } from "@hookform/resolvers/zod";
@@ -33,21 +33,6 @@ function getSchemaDefaults(schema) {
33
33
  for (const [key, fieldSchema] of Object.entries(shape)) defaults[key] = getFieldDefault(fieldSchema);
34
34
  return defaults;
35
35
  }
36
- function getObjectShape(schema) {
37
- const { def } = schema;
38
- if (def.type === "object") return schema.shape;
39
- if (def.type === "intersection") {
40
- const intersectionDef = def;
41
- const leftShape = getObjectShape(intersectionDef.left);
42
- const rightShape = getObjectShape(intersectionDef.right);
43
- return {
44
- ...leftShape,
45
- ...rightShape
46
- };
47
- }
48
- if (def.type === "pipe") return getObjectShape(def.in);
49
- return null;
50
- }
51
36
  /**
52
37
  * Get the default value for a Zod field type that matches what RHF's
53
38
  * `useController` will produce when registering the field.
@@ -74,6 +59,7 @@ function getFieldDefault(schema) {
74
59
  }
75
60
  //#endregion
76
61
  //#region src/components/features/form/adapters/rhf/rhf-adapter.tsx
62
+ const RHFFormIdContext = React$1.createContext("form");
77
63
  /** Create a React Hook Form instance and normalize it to the adapter interface. */
78
64
  function useRHFCreateForm(props) {
79
65
  const { schema, defaultValues, mode, id, onSubmit, formRef } = props;
@@ -104,15 +90,17 @@ function useRHFCreateForm(props) {
104
90
  id: `${id ?? "form"}-${key}`,
105
91
  errors: fieldError?.message ? [String(fieldError.message)] : [],
106
92
  required: constraint.required,
107
- isDirty: false,
108
- isTouched: false
93
+ isDirty: Boolean(dirtyFields[key]),
94
+ isTouched: Boolean(touchedFields[key])
109
95
  };
110
96
  }
111
97
  return result;
112
98
  }, [
113
99
  constraints,
114
100
  errors,
115
- id
101
+ id,
102
+ dirtyFields,
103
+ touchedFields
116
104
  ]);
117
105
  const formState = React$1.useMemo(() => ({
118
106
  isDirty,
@@ -155,13 +143,15 @@ function useRHFCreateForm(props) {
155
143
  }
156
144
  /** Resolve a field by name and return its normalized state. */
157
145
  function useRHFField(name) {
146
+ const form = useFormContext();
147
+ const formId = React$1.use(RHFFormIdContext);
158
148
  const { field, fieldState } = useController({
159
149
  name,
160
- control: useFormContext().control
150
+ control: form.control
161
151
  });
162
152
  return React$1.useMemo(() => ({
163
153
  name: field.name,
164
- id: name,
154
+ id: `${formId}-${name}`,
165
155
  errors: fieldState.error?.message ? [String(fieldState.error.message)] : [],
166
156
  required: false,
167
157
  isDirty: fieldState.isDirty,
@@ -169,11 +159,13 @@ function useRHFField(name) {
169
159
  value: field.value,
170
160
  change: (value) => field.onChange(value),
171
161
  blur: () => field.onBlur(),
172
- focus: () => {}
162
+ focus: () => form.setFocus(name)
173
163
  }), [
174
164
  field,
175
165
  fieldState,
176
- name
166
+ name,
167
+ formId,
168
+ form
177
169
  ]);
178
170
  }
179
171
  /** Watch a single field's value reactively. */
@@ -189,13 +181,14 @@ function useRHFWatchAllHook(names) {
189
181
  name: names,
190
182
  control: useFormContext().control
191
183
  });
184
+ const namesKey = names.join(",");
192
185
  return React$1.useMemo(() => {
193
186
  const result = {};
194
187
  names.forEach((n, index) => {
195
188
  result[n] = values[index];
196
189
  });
197
190
  return result;
198
- }, [names, values]);
191
+ }, [namesKey, values]);
199
192
  }
200
193
  /** Get field array helpers for a given array field name. */
201
194
  function useRHFFieldArrayHook(name) {
@@ -212,12 +205,8 @@ function useRHFFieldArrayHook(name) {
212
205
  append: React$1.useCallback((defaultValue) => {
213
206
  append(defaultValue ?? {});
214
207
  }, [append]),
215
- remove: React$1.useCallback((index) => {
216
- remove(index);
217
- }, [remove]),
218
- move: React$1.useCallback((from, to) => {
219
- move(from, to);
220
- }, [move])
208
+ remove,
209
+ move
221
210
  };
222
211
  }
223
212
  /**
@@ -226,9 +215,12 @@ function useRHFFieldArrayHook(name) {
226
215
  */
227
216
  function RHFFormProviderWrapper({ instance, children }) {
228
217
  const form = instance.raw;
229
- return /* @__PURE__ */ jsx(FormProvider, {
230
- ...form,
231
- children
218
+ return /* @__PURE__ */ jsx(RHFFormIdContext, {
219
+ value: instance.id,
220
+ children: /* @__PURE__ */ jsx(FormProvider, {
221
+ ...form,
222
+ children
223
+ })
232
224
  });
233
225
  }
234
226
  /**
@@ -1,3 +1,3 @@
1
- import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "../form-zf5QOnAk.mjs";
1
+ import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "../form-mlNLKaB5.mjs";
2
2
  import { n as useAdapter, t as FormAdapterProvider } from "../adapter-context-rWveHhDd.mjs";
3
3
  export { Form, FormAdapterProvider, FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen, useAdapter, useField, useFieldContext, useFormContext, useFormState, useWatch, useWatchAll };
@@ -31,10 +31,7 @@ function getBaseObject(schema) {
31
31
  const right = getBaseObject(intersectionDef.right);
32
32
  return left.merge(right);
33
33
  }
34
- if (schema.def.type !== "object") {
35
- console.warn(`mergeSchemas: expected ZodObject or ZodIntersection but got "${schema.def.type}". Falling back to empty object.`);
36
- return z.object({});
37
- }
34
+ if (schema.def.type !== "object") return z.object({});
38
35
  return schema;
39
36
  }
40
37
  /**
@@ -167,9 +164,7 @@ function StepForm({ steps, stepper, currentStepConfig, combinedSchema: _combined
167
164
  }), {}),
168
165
  ...data
169
166
  });
170
- } catch (error) {
171
- console.error("Stepper form completion error:", error);
172
- } finally {
167
+ } catch {} finally {
173
168
  setIsSubmitting(false);
174
169
  }
175
170
  } else {
@@ -265,7 +260,11 @@ function StepForm({ steps, stepper, currentStepConfig, combinedSchema: _combined
265
260
  submit: () => formRef.current?.requestSubmit(),
266
261
  reset: () => instance.reset(),
267
262
  formId: instance.id
268
- }), [instance, isSubmitting]);
263
+ }), [
264
+ instance,
265
+ isSubmitting,
266
+ instance.formState
267
+ ]);
269
268
  const renderProps = {
270
269
  steps,
271
270
  current: currentStepConfig,
@@ -16,11 +16,11 @@ import { t as toast } from "./toast-BWnN5fax.mjs";
16
16
  import { n as useFormContext$1, t as FormProvider } from "./form-context-Ccxm-wqL.mjs";
17
17
  import { t as Combobox } from "./combobox-cKTFK4uN.mjs";
18
18
  import { t as useCopyToClipboard } from "./use-copy-to-clipboard-uNeeVHC4.mjs";
19
- import { t as DateTimePicker } from "./date-time-picker-Bx_n4nEJ.mjs";
19
+ import { t as DateTimePicker } from "./date-time-picker-Dy2jrJoN.mjs";
20
20
  import { n as useAdapter } from "./adapter-context-rWveHhDd.mjs";
21
- import { t as TimePicker } from "./time-picker-BoF7pZZ2.mjs";
22
- import { t as Transfer } from "./transfer-C55XfEXy.mjs";
23
21
  import { InputWithAddons } from "./input-with-addons/index.mjs";
22
+ import { t as TimePicker } from "./time-picker-BoF7pZZ2.mjs";
23
+ import { t as Transfer } from "./transfer-B2n8pgEQ.mjs";
24
24
  import { CheckIcon, CircleHelp, CopyIcon } from "lucide-react";
25
25
  import * as React$1 from "react";
26
26
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -219,7 +219,7 @@ function FormCombobox({ options, placeholder, searchPlaceholder, emptyMessage, d
219
219
  "data-testid": testId
220
220
  });
221
221
  }
222
- FormCombobox.displayName = "FormCombobox";
222
+ FormCombobox.displayName = "Form.Combobox";
223
223
  //#endregion
224
224
  //#region src/components/features/form/components/form-copy-box.tsx
225
225
  /**
@@ -286,6 +286,7 @@ function FormCopyBox({ variant = "default", className, contentClassName, buttonC
286
286
  })]
287
287
  });
288
288
  }
289
+ FormCopyBox.displayName = "Form.CopyBox";
289
290
  //#endregion
290
291
  //#region src/components/features/form/components/form-custom.tsx
291
292
  /**
@@ -368,7 +369,7 @@ function FormDatePicker({ placeholder, disabled, className, triggerClassName, nu
368
369
  if (numberOfMonths === 1) fieldState?.change(range.from.toISOString());
369
370
  else fieldState?.change({
370
371
  from: range.from.toISOString(),
371
- to: range.to.toISOString()
372
+ to: range.to?.toISOString()
372
373
  });
373
374
  }, [fieldState, numberOfMonths]),
374
375
  numberOfMonths,
@@ -514,9 +515,6 @@ function FormDialog({ open, onOpenChange, defaultOpen, title, description, trigg
514
515
  try {
515
516
  await onSubmit?.(data);
516
517
  onSuccess?.(data);
517
- } catch (error) {
518
- console.error("Form submission error:", error);
519
- throw error;
520
518
  } finally {
521
519
  if (loading === void 0) setInternalIsSubmitting(false);
522
520
  }
@@ -812,6 +810,39 @@ function FormInput({ ref, type = "text", className, disabled, ...props }) {
812
810
  }
813
811
  FormInput.displayName = "Form.Input";
814
812
  //#endregion
813
+ //#region src/components/features/form/components/form-input-group.tsx
814
+ /**
815
+ * Form.InputGroup - Input with leading/trailing addons
816
+ *
817
+ * Automatically wired to the parent Form.Field context.
818
+ *
819
+ * @example
820
+ * ```tsx
821
+ * <Form.Field name="website" label="Website" required>
822
+ * <Form.InputGroup leading="https://" placeholder="example.com" />
823
+ * </Form.Field>
824
+ * ```
825
+ */
826
+ function FormInputGroup({ ref, className, disabled, ...props }) {
827
+ const { id, errors, disabled: fieldDisabled, fieldState } = useFieldContext$1();
828
+ const isDisabled = disabled ?? fieldDisabled;
829
+ const hasErrors = errors && errors.length > 0;
830
+ return /* @__PURE__ */ jsx(InputWithAddons, {
831
+ ...props,
832
+ ref,
833
+ id,
834
+ name: fieldState?.name,
835
+ value: fieldState?.value ?? "",
836
+ onChange: (e) => fieldState?.change(e.target.value),
837
+ onBlur: () => fieldState?.blur(),
838
+ className: cn("text-xs!", className),
839
+ disabled: isDisabled,
840
+ "aria-invalid": hasErrors || void 0,
841
+ "aria-describedby": hasErrors ? `${id}-error` : void 0
842
+ });
843
+ }
844
+ FormInputGroup.displayName = "Form.InputGroup";
845
+ //#endregion
815
846
  //#region src/components/features/form/components/form-radio-group.tsx
816
847
  /**
817
848
  * Form.RadioGroup - Radio button group component
@@ -853,7 +884,8 @@ FormRadioGroup.displayName = "Form.RadioGroup";
853
884
  * ```
854
885
  */
855
886
  function FormRadioItem({ value, label, description, disabled }) {
856
- const radioId = `radio-${value}`;
887
+ const { id: fieldId } = useFieldContext$1();
888
+ const radioId = `${fieldId}-radio-${value}`;
857
889
  return /* @__PURE__ */ jsxs("div", {
858
890
  className: "flex items-start space-x-2",
859
891
  children: [/* @__PURE__ */ jsx(RadioGroupItem, {
@@ -970,7 +1002,7 @@ function FormRoot({ schema, children, onSubmit, action, method = "POST", formCom
970
1002
  submitCount
971
1003
  ]);
972
1004
  const isRenderFunction = typeof children === "function";
973
- const renderProps = {
1005
+ const renderProps = React$1.useMemo(() => ({
974
1006
  form: instance,
975
1007
  fields: instance.fields,
976
1008
  isSubmitting,
@@ -982,7 +1014,13 @@ function FormRoot({ schema, children, onSubmit, action, method = "POST", formCom
982
1014
  touchedFields: formState.touchedFields,
983
1015
  submit: () => formRef.current?.requestSubmit(),
984
1016
  reset: () => instance.reset()
985
- };
1017
+ }), [
1018
+ instance,
1019
+ isSubmitting,
1020
+ formState,
1021
+ isSubmitted,
1022
+ submitCount
1023
+ ]);
986
1024
  const renderChildren = () => {
987
1025
  if (isRenderFunction) return children(renderProps);
988
1026
  return children;
@@ -1206,20 +1244,25 @@ FormTimePicker.displayName = "Form.TimePicker";
1206
1244
  * ```
1207
1245
  */
1208
1246
  function FormTransfer({ disabled, minItems, maxItems, ...props }) {
1209
- const { disabled: fieldDisabled, fieldState } = useFieldContext$1();
1247
+ const { id, errors, disabled: fieldDisabled, fieldState } = useFieldContext$1();
1210
1248
  const isDisabled = disabled ?? fieldDisabled;
1249
+ const hasErrors = errors && errors.length > 0;
1211
1250
  const value = Array.isArray(fieldState?.value) ? fieldState.value : [];
1212
- const handleChange = (newValue) => {
1251
+ const handleChange = React$1.useCallback((newValue) => {
1213
1252
  fieldState?.change(newValue);
1214
- };
1215
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Transfer, {
1216
- ...props,
1217
- value,
1218
- onChange: handleChange,
1219
- disabled: isDisabled
1253
+ }, [fieldState]);
1254
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
1255
+ "aria-invalid": hasErrors || void 0,
1256
+ "aria-describedby": hasErrors ? `${id}-error` : void 0,
1257
+ children: /* @__PURE__ */ jsx(Transfer, {
1258
+ ...props,
1259
+ value,
1260
+ onChange: handleChange,
1261
+ disabled: isDisabled
1262
+ })
1220
1263
  }), (minItems != null || maxItems != null) && /* @__PURE__ */ jsx("p", {
1221
1264
  className: "text-sm text-muted-foreground mt-2",
1222
- children: minItems != null && maxItems != null ? `Select between ${minItems} and ${maxItems} items (minimum: ${minItems}, maximum: ${maxItems})` : minItems != null ? `Select at least ${minItems} items (minimum: ${minItems})` : `Select up to ${maxItems} items (maximum: ${maxItems})`
1265
+ children: minItems != null && maxItems != null ? `Select between ${minItems} and ${maxItems} items` : minItems != null ? `Select at least ${minItems} items` : `Select up to ${maxItems} items`
1223
1266
  })] });
1224
1267
  }
1225
1268
  FormTransfer.displayName = "Form.Transfer";
@@ -1300,39 +1343,6 @@ function FormWhen({ field, is, isNot, in: inArray, notIn, children }) {
1300
1343
  }
1301
1344
  FormWhen.displayName = "Form.When";
1302
1345
  //#endregion
1303
- //#region src/components/features/form/components/form-input-group.tsx
1304
- /**
1305
- * Form.InputGroup - Input with leading/trailing addons
1306
- *
1307
- * Automatically wired to the parent Form.Field context.
1308
- *
1309
- * @example
1310
- * ```tsx
1311
- * <Form.Field name="website" label="Website" required>
1312
- * <Form.InputGroup leading="https://" placeholder="example.com" />
1313
- * </Form.Field>
1314
- * ```
1315
- */
1316
- function FormInputGroup({ ref, className, disabled, ...props }) {
1317
- const { id, errors, disabled: fieldDisabled, fieldState } = useFieldContext$1();
1318
- const isDisabled = disabled ?? fieldDisabled;
1319
- const hasErrors = errors && errors.length > 0;
1320
- return /* @__PURE__ */ jsx(InputWithAddons, {
1321
- ...props,
1322
- ref,
1323
- id,
1324
- name: fieldState?.name,
1325
- value: fieldState?.value ?? "",
1326
- onChange: (e) => fieldState?.change(e.target.value),
1327
- onBlur: () => fieldState?.blur(),
1328
- className: cn("text-xs!", className),
1329
- disabled: isDisabled,
1330
- "aria-invalid": hasErrors || void 0,
1331
- "aria-describedby": hasErrors ? `${id}-error` : void 0
1332
- });
1333
- }
1334
- FormInputGroup.displayName = "Form.InputGroup";
1335
- //#endregion
1336
1346
  //#region src/components/features/form/hooks/use-field.ts
1337
1347
  /**
1338
1348
  * Hook to access and control a specific field.
@@ -1,17 +1,5 @@
1
1
  import "zod";
2
- //#region src/components/features/form/utils/get-field-constraints.ts
3
- /**
4
- * Extract field-level constraints from a Zod schema.
5
- * Works with ZodObject, ZodIntersection (from .and()), and ZodPipe (from .transform()).
6
- * Used by both Conform and RHF adapters to determine required fields.
7
- */
8
- function getFieldConstraints(schema) {
9
- const shape = getObjectShape(schema);
10
- if (!shape) return {};
11
- const constraints = {};
12
- for (const [key, fieldSchema] of Object.entries(shape)) constraints[key] = { required: isRequired(fieldSchema) };
13
- return constraints;
14
- }
2
+ //#region src/components/features/form/utils/zod-helpers.ts
15
3
  /**
16
4
  * Extract the shape from a ZodObject, ZodIntersection, or ZodPipe.
17
5
  * Uses Zod v4's `def.type` discriminant.
@@ -29,13 +17,27 @@ function getObjectShape(schema) {
29
17
  const leftShape = getObjectShape(intersectionDef.left);
30
18
  const rightShape = getObjectShape(intersectionDef.right);
31
19
  return {
32
- ...leftShape,
33
- ...rightShape
20
+ ...leftShape ?? {},
21
+ ...rightShape ?? {}
34
22
  };
35
23
  }
36
24
  if (def.type === "pipe") return getObjectShape(def.in);
37
25
  return null;
38
26
  }
27
+ //#endregion
28
+ //#region src/components/features/form/utils/get-field-constraints.ts
29
+ /**
30
+ * Extract field-level constraints from a Zod schema.
31
+ * Works with ZodObject, ZodIntersection (from .and()), and ZodPipe (from .transform()).
32
+ * Used by both Conform and RHF adapters to determine required fields.
33
+ */
34
+ function getFieldConstraints(schema) {
35
+ const shape = getObjectShape(schema);
36
+ if (!shape) return {};
37
+ const constraints = {};
38
+ for (const [key, fieldSchema] of Object.entries(shape)) constraints[key] = { required: isRequired(fieldSchema) };
39
+ return constraints;
40
+ }
39
41
  /**
40
42
  * Determine if a Zod field type is required.
41
43
  * Optional, nullable, and default-wrapped types are not required.
@@ -46,4 +48,4 @@ function isRequired(schema) {
46
48
  return true;
47
49
  }
48
50
  //#endregion
49
- export { getFieldConstraints as t };
51
+ export { getObjectShape as n, getFieldConstraints as t };
package/dist/index.mjs CHANGED
@@ -49,7 +49,7 @@ import { n as Toaster, t as useToast } from "./toast-DpxlFNNx.mjs";
49
49
  import { a as DropdownMenuItem, c as DropdownMenuRadioGroup, d as DropdownMenuShortcut, f as DropdownMenuSub, h as DropdownMenuTrigger, i as DropdownMenuGroup, l as DropdownMenuRadioItem, m as DropdownMenuSubTrigger, n as DropdownMenuCheckboxItem, o as DropdownMenuLabel, p as DropdownMenuSubContent, r as DropdownMenuContent, s as DropdownMenuPortal, t as DropdownMenu, u as DropdownMenuSeparator } from "./dropdown-DZiAt-jS.mjs";
50
50
  import { i as FileInputButton, n as DropzoneContent, r as DropzoneEmptyState, t as Dropzone } from "./dropzone-ogtpQ4fy.mjs";
51
51
  import { t as EmptyContent } from "./empty-content-C63GPJ5d.mjs";
52
- import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "./form-zf5QOnAk.mjs";
52
+ import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "./form-mlNLKaB5.mjs";
53
53
  import { t as useCopyToClipboard } from "./use-copy-to-clipboard-uNeeVHC4.mjs";
54
54
  import { n as useAdapter, t as FormAdapterProvider } from "./adapter-context-rWveHhDd.mjs";
55
55
  import { InputWithAddons } from "./input-with-addons/index.mjs";
@@ -1,2 +1,2 @@
1
- import { t as Transfer } from "../transfer-C55XfEXy.mjs";
1
+ import { t as Transfer } from "../transfer-B2n8pgEQ.mjs";
2
2
  export { Transfer };
@@ -19,7 +19,15 @@ const TransferGroup = ({ title, children }) => {
19
19
  const TransferItem = ({ label, onClick, disabled = false, panelType }) => {
20
20
  return /* @__PURE__ */ jsxs("div", {
21
21
  className: cn("group flex items-center gap-2 rounded p-2", "hover:bg-accent transition-colors", panelType === "source" && "cursor-pointer", disabled && "opacity-50 cursor-not-allowed"),
22
+ role: panelType === "source" && !disabled ? "button" : void 0,
23
+ tabIndex: panelType === "source" && !disabled ? 0 : void 0,
22
24
  onClick: panelType === "source" && !disabled ? onClick : void 0,
25
+ onKeyDown: (e) => {
26
+ if (!disabled && panelType === "source" && (e.key === "Enter" || e.key === " ")) {
27
+ e.preventDefault();
28
+ onClick();
29
+ }
30
+ },
23
31
  children: [/* @__PURE__ */ jsx("div", {
24
32
  className: "min-w-0 flex-1",
25
33
  children: /* @__PURE__ */ jsx("div", {
@@ -28,6 +36,7 @@ const TransferItem = ({ label, onClick, disabled = false, panelType }) => {
28
36
  })
29
37
  }), panelType === "target" && /* @__PURE__ */ jsx("button", {
30
38
  type: "button",
39
+ "aria-label": `Remove ${label}`,
31
40
  className: "h-6 w-6 p-0 rounded opacity-0 group-hover:opacity-100 hover:bg-muted transition-opacity inline-flex items-center justify-center",
32
41
  onClick,
33
42
  disabled,
@@ -53,7 +62,7 @@ const TransferSearch = ({ value, onChange, placeholder = "Search...", disabled =
53
62
  };
54
63
  //#endregion
55
64
  //#region src/components/features/transfer/components/transfer-panel.tsx
56
- const TransferPanel = ({ items, groups, searchable, searchValue, onSearchChange, searchPlaceholder, onItemClick, onSelectAll, enableSelectAll, disabled = false, panelType }) => {
65
+ const TransferPanel = ({ title, items, groups, searchable, searchValue, onSearchChange, searchPlaceholder, onItemClick, onSelectAll, enableSelectAll, disabled = false, panelType }) => {
57
66
  const groupedItems = React$1.useMemo(() => {
58
67
  if (groups.length === 0) return { "": items };
59
68
  const grouped = {};
@@ -77,9 +86,15 @@ const TransferPanel = ({ items, groups, searchable, searchValue, onSearchChange,
77
86
  className: "border-b p-3",
78
87
  children: [/* @__PURE__ */ jsxs("div", {
79
88
  className: "flex min-h-[2.25rem] items-center justify-between mb-2",
80
- children: [/* @__PURE__ */ jsx("span", {
89
+ children: [/* @__PURE__ */ jsxs("span", {
81
90
  className: "text-sm font-medium",
82
- children: panelType === "source" ? `${items.length} items` : `${items.length} selected`
91
+ children: [
92
+ title,
93
+ " ",
94
+ "(",
95
+ items.length,
96
+ ")"
97
+ ]
83
98
  }), enableSelectAll && items.length > 0 && /* @__PURE__ */ jsx(Button, {
84
99
  htmlType: "button",
85
100
  type: "quaternary",
@@ -197,7 +212,9 @@ function Transfer({ items, value, onChange, itemKey, itemLabel, itemGroup, searc
197
212
  };
198
213
  const handleSelectAll = () => {
199
214
  const sourceKeys = state.filteredSourceItems.map((item) => item.key);
200
- onChange([...value, ...sourceKeys]);
215
+ const existing = new Set(value);
216
+ const newKeys = sourceKeys.filter((k) => !existing.has(k));
217
+ onChange([...value, ...newKeys]);
201
218
  };
202
219
  const handleClearAll = () => {
203
220
  onChange([]);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@datum-cloud/datum-ui",
3
3
  "type": "module",
4
- "version": "0.6.0-alpha.a9a8815",
4
+ "version": "0.6.0-alpha.b8a44ac",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "url": "https://github.com/datum-cloud/datum-ui"