@datum-cloud/datum-ui 0.6.0-alpha.b817c77 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/autocomplete/index.mjs +1 -1
- package/dist/{autocomplete-V5-qslzS.mjs → autocomplete-CkYJueBL.mjs} +2 -2
- package/dist/autosearch/index.mjs +199 -0
- package/dist/{calendar-date-picker-DWK94_DC.mjs → calendar-date-picker-CDT-8Ha8.mjs} +2 -1
- package/dist/combobox/index.mjs +2 -0
- package/dist/combobox-B-C9lJeD.mjs +97 -0
- package/dist/components/features/autocomplete/autocomplete.d.ts +1 -1
- package/dist/components/features/autocomplete/autocomplete.d.ts.map +1 -1
- package/dist/components/features/autocomplete/autocomplete.types.d.ts +2 -0
- package/dist/components/features/autocomplete/autocomplete.types.d.ts.map +1 -1
- package/dist/components/features/autosearch/autosearch.d.ts +35 -0
- package/dist/components/features/autosearch/autosearch.d.ts.map +1 -0
- package/dist/components/features/autosearch/autosearch.types.d.ts +51 -0
- package/dist/components/features/autosearch/autosearch.types.d.ts.map +1 -0
- package/dist/components/features/autosearch/index.d.ts +3 -0
- package/dist/components/features/autosearch/index.d.ts.map +1 -0
- package/dist/components/features/calendar-date-picker/calendar-date-picker.d.ts +2 -1
- package/dist/components/features/calendar-date-picker/calendar-date-picker.d.ts.map +1 -1
- package/dist/components/features/combobox/combobox.d.ts +27 -0
- package/dist/components/features/combobox/combobox.d.ts.map +1 -0
- package/dist/components/features/combobox/index.d.ts +3 -0
- package/dist/components/features/combobox/index.d.ts.map +1 -0
- package/dist/components/features/combobox/types.d.ts +84 -0
- package/dist/components/features/combobox/types.d.ts.map +1 -0
- package/dist/components/features/date-time-picker/date-time-picker.d.ts +9 -0
- package/dist/components/features/date-time-picker/date-time-picker.d.ts.map +1 -0
- package/dist/components/features/date-time-picker/index.d.ts +3 -0
- package/dist/components/features/date-time-picker/index.d.ts.map +1 -0
- package/dist/components/features/date-time-picker/types.d.ts +59 -0
- package/dist/components/features/date-time-picker/types.d.ts.map +1 -0
- package/dist/components/features/date-time-picker/utils/format.d.ts +13 -0
- package/dist/components/features/date-time-picker/utils/format.d.ts.map +1 -0
- package/dist/components/features/date-time-picker/utils/index.d.ts +3 -0
- package/dist/components/features/date-time-picker/utils/index.d.ts.map +1 -0
- package/dist/components/features/date-time-picker/utils/timezone.d.ts +23 -0
- package/dist/components/features/date-time-picker/utils/timezone.d.ts.map +1 -0
- package/dist/components/features/form/adapter-types.d.ts +26 -0
- package/dist/components/features/form/adapter-types.d.ts.map +1 -1
- 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-autocomplete.d.ts.map +1 -1
- package/dist/components/features/form/components/form-autosearch.d.ts +37 -0
- package/dist/components/features/form/components/form-autosearch.d.ts.map +1 -0
- package/dist/components/features/form/components/form-checkbox.d.ts.map +1 -1
- package/dist/components/features/form/components/form-combobox.d.ts +80 -0
- package/dist/components/features/form/components/form-combobox.d.ts.map +1 -0
- 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-custom.d.ts.map +1 -1
- package/dist/components/features/form/components/form-date-picker.d.ts +40 -0
- package/dist/components/features/form/components/form-date-picker.d.ts.map +1 -0
- package/dist/components/features/form/components/form-date-time-picker.d.ts +39 -0
- package/dist/components/features/form/components/form-date-time-picker.d.ts.map +1 -0
- package/dist/components/features/form/components/form-dialog.d.ts.map +1 -1
- package/dist/components/features/form/components/form-field.d.ts.map +1 -1
- package/dist/components/features/form/components/form-radio-group.d.ts.map +1 -1
- package/dist/components/features/form/components/form-root.d.ts.map +1 -1
- package/dist/components/features/form/components/form-switch.d.ts.map +1 -1
- package/dist/components/features/form/components/form-time-picker.d.ts +21 -0
- package/dist/components/features/form/components/form-time-picker.d.ts.map +1 -0
- package/dist/components/features/form/components/form-transfer.d.ts +37 -0
- package/dist/components/features/form/components/form-transfer.d.ts.map +1 -0
- package/dist/components/features/form/components/index.d.ts +7 -1
- package/dist/components/features/form/components/index.d.ts.map +1 -1
- package/dist/components/features/form/components/stepper/form-stepper.d.ts +3 -1
- package/dist/components/features/form/components/stepper/form-stepper.d.ts.map +1 -1
- package/dist/components/features/form/hooks/index.d.ts +1 -1
- package/dist/components/features/form/hooks/index.d.ts.map +1 -1
- package/dist/components/features/form/hooks/use-display-touched.d.ts +20 -0
- package/dist/components/features/form/hooks/use-display-touched.d.ts.map +1 -0
- package/dist/components/features/form/hooks/use-field.d.ts +4 -0
- package/dist/components/features/form/hooks/use-field.d.ts.map +1 -1
- package/dist/components/features/form/hooks/use-form-state.d.ts +36 -0
- package/dist/components/features/form/hooks/use-form-state.d.ts.map +1 -0
- package/dist/components/features/form/index.d.ts +39 -21
- package/dist/components/features/form/index.d.ts.map +1 -1
- package/dist/components/features/form/stepper/index.d.ts +17 -0
- package/dist/components/features/form/stepper/index.d.ts.map +1 -0
- package/dist/components/features/form/types/index.d.ts +46 -0
- package/dist/components/features/form/types/index.d.ts.map +1 -1
- package/dist/components/features/form/utils/get-field-constraints.d.ts +23 -1
- 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 +24 -0
- package/dist/components/features/form/utils/get-schema-defaults.d.ts.map +1 -0
- 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/time-picker/index.d.ts +3 -0
- package/dist/components/features/time-picker/index.d.ts.map +1 -0
- package/dist/components/features/time-picker/time-picker.d.ts +22 -0
- package/dist/components/features/time-picker/time-picker.d.ts.map +1 -0
- package/dist/components/features/time-picker/types.d.ts +31 -0
- package/dist/components/features/time-picker/types.d.ts.map +1 -0
- package/dist/components/features/transfer/components/index.d.ts +9 -0
- package/dist/components/features/transfer/components/index.d.ts.map +1 -0
- package/dist/components/features/transfer/components/transfer-group.d.ts +7 -0
- package/dist/components/features/transfer/components/transfer-group.d.ts.map +1 -0
- package/dist/components/features/transfer/components/transfer-item.d.ts +10 -0
- package/dist/components/features/transfer/components/transfer-item.d.ts.map +1 -0
- package/dist/components/features/transfer/components/transfer-panel.d.ts +18 -0
- package/dist/components/features/transfer/components/transfer-panel.d.ts.map +1 -0
- package/dist/components/features/transfer/components/transfer-search.d.ts +9 -0
- package/dist/components/features/transfer/components/transfer-search.d.ts.map +1 -0
- package/dist/components/features/transfer/hooks/use-transfer-dnd.d.ts +26 -0
- package/dist/components/features/transfer/hooks/use-transfer-dnd.d.ts.map +1 -0
- package/dist/components/features/transfer/hooks/use-transfer-state.d.ts +20 -0
- package/dist/components/features/transfer/hooks/use-transfer-state.d.ts.map +1 -0
- package/dist/components/features/transfer/index.d.ts +3 -0
- package/dist/components/features/transfer/index.d.ts.map +1 -0
- package/dist/components/features/transfer/transfer.d.ts +6 -0
- package/dist/components/features/transfer/transfer.d.ts.map +1 -0
- package/dist/components/features/transfer/types.d.ts +69 -0
- package/dist/components/features/transfer/types.d.ts.map +1 -0
- package/dist/data-table/index.mjs +1 -1
- package/dist/date-picker/index.mjs +2 -2
- package/dist/date-time-picker/index.mjs +2 -0
- package/dist/date-time-picker-BomrW07W.mjs +178 -0
- package/dist/form/adapters/conform/index.mjs +110 -13
- package/dist/form/adapters/rhf/index.mjs +116 -27
- package/dist/form/index.mjs +3 -3
- package/dist/form/stepper/index.mjs +519 -0
- package/dist/{form-BE1xBne4.mjs → form-B3rQ4CH9.mjs} +447 -605
- package/dist/form-context-Ccxm-wqL.mjs +17 -0
- package/dist/grid/index.mjs +1 -1
- package/dist/hooks/index.mjs +2 -2
- package/dist/index.mjs +16 -16
- package/dist/input-number/index.mjs +1 -1
- package/dist/map/index.mjs +1 -1
- package/dist/{map-Cw7u8r6E.mjs → map-CWIQ-eql.mjs} +1 -1
- package/dist/more-actions/index.mjs +1 -1
- package/dist/page-title/index.mjs +1 -1
- package/dist/stepper/index.mjs +1 -320
- package/dist/stepper-DvIOp0hh.mjs +321 -0
- package/dist/tag-input/index.mjs +1 -1
- package/dist/task-queue/index.mjs +1 -1
- package/dist/time-picker/index.mjs +2 -0
- package/dist/time-picker-BoF7pZZ2.mjs +43 -0
- package/dist/transfer/index.mjs +2 -0
- package/dist/transfer-46C-rFFW.mjs +264 -0
- package/dist/{get-field-constraints-BPMW8VvY.mjs → use-display-touched-I39aXEBD.mjs} +51 -16
- package/package.json +42 -1
- /package/dist/{adapter-context-B7L2ucTr.mjs → adapter-context-rWveHhDd.mjs} +0 -0
- /package/dist/{col-YBbQ5wlb.mjs → col-1T0Q3SlH.mjs} +0 -0
- /package/dist/{hooks-DYjN7lvC.mjs → hooks-D8r2M2U6.mjs} +0 -0
- /package/dist/{input-number-DEjXG2I6.mjs → input-number-a7uydAsw.mjs} +0 -0
- /package/dist/{map-leaflet-imports-D6nTEOIh.mjs → map-leaflet-imports-CRSKA79m.mjs} +0 -0
- /package/dist/{more-actions-BNQ2yfWZ.mjs → more-actions-ILnEZq_E.mjs} +0 -0
- /package/dist/{page-title-CNiRNZ7p.mjs → page-title-ChsnpBiH.mjs} +0 -0
- /package/dist/{tag-input-BKed-cul.mjs → tag-input-T9cUX9-G.mjs} +0 -0
- /package/dist/{task-queue-dropdown-Di_Wjspz.mjs → task-queue-dropdown-Wcbj-f0V.mjs} +0 -0
- /package/dist/{to-api-format-Cq4prffn.mjs → to-api-format-Bh3c01gr.mjs} +0 -0
- /package/dist/{use-copy-to-clipboard-BGdTmkFV.mjs → use-copy-to-clipboard-uNeeVHC4.mjs} +0 -0
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Works with ZodObject, ZodIntersection (from .and()), and ZodPipe (from .transform()).
|
|
5
|
-
* Used by both Conform and RHF adapters to determine required fields.
|
|
6
|
-
*/
|
|
7
|
-
function getFieldConstraints(schema) {
|
|
8
|
-
const shape = getObjectShape(schema);
|
|
9
|
-
if (!shape) return {};
|
|
10
|
-
const constraints = {};
|
|
11
|
-
for (const [key, fieldSchema] of Object.entries(shape)) constraints[key] = { required: isRequired(fieldSchema) };
|
|
12
|
-
return constraints;
|
|
13
|
-
}
|
|
1
|
+
import * as React$1 from "react";
|
|
2
|
+
import "zod";
|
|
3
|
+
//#region src/components/features/form/utils/zod-helpers.ts
|
|
14
4
|
/**
|
|
15
5
|
* Extract the shape from a ZodObject, ZodIntersection, or ZodPipe.
|
|
16
6
|
* Uses Zod v4's `def.type` discriminant.
|
|
@@ -28,13 +18,27 @@ function getObjectShape(schema) {
|
|
|
28
18
|
const leftShape = getObjectShape(intersectionDef.left);
|
|
29
19
|
const rightShape = getObjectShape(intersectionDef.right);
|
|
30
20
|
return {
|
|
31
|
-
...leftShape,
|
|
32
|
-
...rightShape
|
|
21
|
+
...leftShape ?? {},
|
|
22
|
+
...rightShape ?? {}
|
|
33
23
|
};
|
|
34
24
|
}
|
|
35
25
|
if (def.type === "pipe") return getObjectShape(def.in);
|
|
36
26
|
return null;
|
|
37
27
|
}
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/components/features/form/utils/get-field-constraints.ts
|
|
30
|
+
/**
|
|
31
|
+
* Extract field-level constraints from a Zod schema.
|
|
32
|
+
* Works with ZodObject, ZodIntersection (from .and()), and ZodPipe (from .transform()).
|
|
33
|
+
* Used by both Conform and RHF adapters to determine required fields.
|
|
34
|
+
*/
|
|
35
|
+
function getFieldConstraints(schema) {
|
|
36
|
+
const shape = getObjectShape(schema);
|
|
37
|
+
if (!shape) return {};
|
|
38
|
+
const constraints = {};
|
|
39
|
+
for (const [key, fieldSchema] of Object.entries(shape)) constraints[key] = { required: isRequired(fieldSchema) };
|
|
40
|
+
return constraints;
|
|
41
|
+
}
|
|
38
42
|
/**
|
|
39
43
|
* Determine if a Zod field type is required.
|
|
40
44
|
* Optional, nullable, and default-wrapped types are not required.
|
|
@@ -45,4 +49,35 @@ function isRequired(schema) {
|
|
|
45
49
|
return true;
|
|
46
50
|
}
|
|
47
51
|
//#endregion
|
|
48
|
-
|
|
52
|
+
//#region src/components/features/form/hooks/use-display-touched.ts
|
|
53
|
+
/**
|
|
54
|
+
* Shared display-level touched tracking, independent of adapter-specific blur tracking.
|
|
55
|
+
*
|
|
56
|
+
* "Display-touched" controls whether a field's errors are shown in the UI.
|
|
57
|
+
* This is separate from the adapter's `isTouched` (which tracks focusout events).
|
|
58
|
+
*
|
|
59
|
+
* Used by both RHF and Conform adapters to provide consistent error display
|
|
60
|
+
* behaviour across validation modes (onChange, onBlur, onSubmit).
|
|
61
|
+
*/
|
|
62
|
+
function useDisplayTouched(schema) {
|
|
63
|
+
const [touchedSet, setTouchedSet] = React$1.useState(/* @__PURE__ */ new Set());
|
|
64
|
+
const markFieldTouched = React$1.useCallback((fieldName) => {
|
|
65
|
+
setTouchedSet((prev) => {
|
|
66
|
+
if (prev.has(fieldName)) return prev;
|
|
67
|
+
const next = new Set(prev);
|
|
68
|
+
next.add(fieldName);
|
|
69
|
+
return next;
|
|
70
|
+
});
|
|
71
|
+
}, []);
|
|
72
|
+
const markAllFieldsTouched = React$1.useCallback(() => {
|
|
73
|
+
const allFieldNames = Object.keys(getFieldConstraints(schema));
|
|
74
|
+
setTouchedSet(new Set(allFieldNames));
|
|
75
|
+
}, [schema]);
|
|
76
|
+
return {
|
|
77
|
+
displayTouchedFields: React$1.useMemo(() => Array.from(touchedSet), [touchedSet]),
|
|
78
|
+
markFieldTouched,
|
|
79
|
+
markAllFieldsTouched
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
export { getFieldConstraints as n, getObjectShape as r, useDisplayTouched as t };
|
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
|
|
4
|
+
"version": "0.6.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"url": "https://github.com/datum-cloud/datum-ui"
|
|
@@ -204,6 +204,16 @@
|
|
|
204
204
|
"types": "./dist/components/features/autocomplete/index.d.ts",
|
|
205
205
|
"default": "./dist/autocomplete/index.mjs"
|
|
206
206
|
},
|
|
207
|
+
"./autosearch": {
|
|
208
|
+
"source": "./src/components/features/autosearch/index.ts",
|
|
209
|
+
"types": "./dist/components/features/autosearch/index.d.ts",
|
|
210
|
+
"default": "./dist/autosearch/index.mjs"
|
|
211
|
+
},
|
|
212
|
+
"./combobox": {
|
|
213
|
+
"source": "./src/components/features/combobox/index.ts",
|
|
214
|
+
"types": "./dist/components/features/combobox/index.d.ts",
|
|
215
|
+
"default": "./dist/combobox/index.mjs"
|
|
216
|
+
},
|
|
207
217
|
"./avatar-stack": {
|
|
208
218
|
"source": "./src/components/features/avatar-stack/index.ts",
|
|
209
219
|
"types": "./dist/components/features/avatar-stack/index.d.ts",
|
|
@@ -244,6 +254,11 @@
|
|
|
244
254
|
"types": "./dist/components/features/form/adapters/rhf/index.d.ts",
|
|
245
255
|
"default": "./dist/form/adapters/rhf/index.mjs"
|
|
246
256
|
},
|
|
257
|
+
"./form/stepper": {
|
|
258
|
+
"source": "./src/components/features/form/stepper/index.ts",
|
|
259
|
+
"types": "./dist/components/features/form/stepper/index.d.ts",
|
|
260
|
+
"default": "./dist/form/stepper/index.mjs"
|
|
261
|
+
},
|
|
247
262
|
"./grid": {
|
|
248
263
|
"types": "./dist/components/features/grid/index.d.ts",
|
|
249
264
|
"style": "./dist/grid/style.css",
|
|
@@ -318,6 +333,21 @@
|
|
|
318
333
|
"source": "./src/components/features/data-table/index.ts",
|
|
319
334
|
"types": "./dist/components/features/data-table/index.d.ts",
|
|
320
335
|
"default": "./dist/data-table/index.mjs"
|
|
336
|
+
},
|
|
337
|
+
"./date-time-picker": {
|
|
338
|
+
"source": "./src/components/features/date-time-picker/index.ts",
|
|
339
|
+
"types": "./dist/components/features/date-time-picker/index.d.ts",
|
|
340
|
+
"default": "./dist/date-time-picker/index.mjs"
|
|
341
|
+
},
|
|
342
|
+
"./time-picker": {
|
|
343
|
+
"source": "./src/components/features/time-picker/index.ts",
|
|
344
|
+
"types": "./dist/components/features/time-picker/index.d.ts",
|
|
345
|
+
"default": "./dist/time-picker/index.mjs"
|
|
346
|
+
},
|
|
347
|
+
"./transfer": {
|
|
348
|
+
"source": "./src/components/features/transfer/index.ts",
|
|
349
|
+
"types": "./dist/components/features/transfer/index.d.ts",
|
|
350
|
+
"default": "./dist/transfer/index.mjs"
|
|
321
351
|
}
|
|
322
352
|
},
|
|
323
353
|
"main": "./dist/index.mjs",
|
|
@@ -331,6 +361,8 @@
|
|
|
331
361
|
"peerDependencies": {
|
|
332
362
|
"@conform-to/react": ">=1",
|
|
333
363
|
"@conform-to/zod": ">=1",
|
|
364
|
+
"@dnd-kit/core": ">=6",
|
|
365
|
+
"@dnd-kit/sortable": ">=8",
|
|
334
366
|
"@hookform/resolvers": ">=5",
|
|
335
367
|
"@monaco-editor/react": "^4.7.0",
|
|
336
368
|
"@stepperize/react": ">=4",
|
|
@@ -367,6 +399,12 @@
|
|
|
367
399
|
"@conform-to/zod": {
|
|
368
400
|
"optional": true
|
|
369
401
|
},
|
|
402
|
+
"@dnd-kit/core": {
|
|
403
|
+
"optional": true
|
|
404
|
+
},
|
|
405
|
+
"@dnd-kit/sortable": {
|
|
406
|
+
"optional": true
|
|
407
|
+
},
|
|
370
408
|
"@hookform/resolvers": {
|
|
371
409
|
"optional": true
|
|
372
410
|
},
|
|
@@ -445,6 +483,7 @@
|
|
|
445
483
|
}
|
|
446
484
|
},
|
|
447
485
|
"dependencies": {
|
|
486
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
448
487
|
"@radix-ui/react-avatar": "^1",
|
|
449
488
|
"@radix-ui/react-checkbox": "^1",
|
|
450
489
|
"@radix-ui/react-collapsible": "^1",
|
|
@@ -470,6 +509,8 @@
|
|
|
470
509
|
"devDependencies": {
|
|
471
510
|
"@conform-to/react": "^1.17.1",
|
|
472
511
|
"@conform-to/zod": "^1.17.1",
|
|
512
|
+
"@dnd-kit/core": "^6.3.1",
|
|
513
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
473
514
|
"@hookform/resolvers": "^5.2.2",
|
|
474
515
|
"@monaco-editor/react": "^4.7.0",
|
|
475
516
|
"@stepperize/react": "^6.1.0",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|