@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.
- package/dist/components/features/form/adapters/conform/conform-adapter.d.ts.map +1 -1
- package/dist/components/features/form/adapters/rhf/rhf-adapter.d.ts.map +1 -1
- package/dist/components/features/form/components/form-copy-box.d.ts +3 -0
- package/dist/components/features/form/components/form-copy-box.d.ts.map +1 -1
- package/dist/components/features/form/components/form-dialog.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-transfer.d.ts.map +1 -1
- package/dist/components/features/form/components/index.d.ts +1 -0
- package/dist/components/features/form/components/index.d.ts.map +1 -1
- package/dist/components/features/form/components/stepper/form-stepper.d.ts.map +1 -1
- package/dist/components/features/form/index.d.ts +1 -2
- package/dist/components/features/form/index.d.ts.map +1 -1
- package/dist/components/features/form/utils/get-field-constraints.d.ts +0 -10
- package/dist/components/features/form/utils/get-field-constraints.d.ts.map +1 -1
- package/dist/components/features/form/utils/get-schema-defaults.d.ts.map +1 -1
- package/dist/components/features/form/utils/zod-helpers.d.ts +12 -0
- package/dist/components/features/form/utils/zod-helpers.d.ts.map +1 -0
- package/dist/components/features/transfer/components/transfer-item.d.ts.map +1 -1
- package/dist/components/features/transfer/components/transfer-panel.d.ts.map +1 -1
- package/dist/components/features/transfer/transfer.d.ts.map +1 -1
- package/dist/date-time-picker/index.mjs +1 -1
- package/dist/{date-time-picker-Bx_n4nEJ.mjs → date-time-picker-Dy2jrJoN.mjs} +0 -2
- package/dist/form/adapters/conform/index.mjs +3 -2
- package/dist/form/adapters/rhf/index.mjs +25 -33
- package/dist/form/index.mjs +1 -1
- package/dist/form/stepper/index.mjs +7 -8
- package/dist/{form-zf5QOnAk.mjs → form-mlNLKaB5.mjs} +63 -53
- package/dist/{get-field-constraints-CxfZ753o.mjs → get-field-constraints-BicgDkfH.mjs} +18 -16
- package/dist/index.mjs +1 -1
- package/dist/transfer/index.mjs +1 -1
- package/dist/{transfer-C55XfEXy.mjs → transfer-B2n8pgEQ.mjs} +21 -4
- 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;
|
|
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;
|
|
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,
|
|
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,
|
|
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,
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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,
|
|
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,
|
|
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,
|
|
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-
|
|
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-
|
|
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,
|
|
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-
|
|
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:
|
|
108
|
-
isTouched:
|
|
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:
|
|
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
|
-
}, [
|
|
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
|
|
216
|
-
|
|
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(
|
|
230
|
-
|
|
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
|
/**
|
package/dist/form/index.mjs
CHANGED
|
@@ -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-
|
|
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
|
|
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
|
-
}), [
|
|
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-
|
|
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 = "
|
|
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
|
|
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
|
|
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(
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
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
|
|
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/
|
|
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-
|
|
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";
|
package/dist/transfer/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Transfer } from "../transfer-
|
|
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__ */
|
|
89
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
81
90
|
className: "text-sm font-medium",
|
|
82
|
-
children:
|
|
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
|
-
|
|
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([]);
|