@pixpilot/formily-shadcn 0.6.0 → 0.8.1
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/_virtual/rolldown_runtime.cjs +25 -1
- package/dist/_virtual/rolldown_runtime.js +24 -1
- package/dist/components/array-base/array-base.cjs +59 -1
- package/dist/components/array-base/array-base.js +55 -1
- package/dist/components/array-base/array-context.cjs +28 -1
- package/dist/components/array-base/array-context.js +22 -1
- package/dist/components/array-base/component-context.cjs +28 -1
- package/dist/components/array-base/component-context.js +22 -1
- package/dist/components/array-base/components/addition.cjs +51 -1
- package/dist/components/array-base/components/addition.d.cts +1 -1
- package/dist/components/array-base/components/addition.d.ts +1 -1
- package/dist/components/array-base/components/addition.js +45 -1
- package/dist/components/array-base/components/array-copy.cjs +49 -1
- package/dist/components/array-base/components/array-copy.js +42 -1
- package/dist/components/array-base/components/array-index.cjs +15 -1
- package/dist/components/array-base/components/array-index.js +13 -1
- package/dist/components/array-base/components/array-item-label.cjs +22 -1
- package/dist/components/array-base/components/array-item-label.js +19 -1
- package/dist/components/array-base/components/components.cjs +30 -1
- package/dist/components/array-base/components/components.js +29 -1
- package/dist/components/array-base/components/edit.cjs +42 -1
- package/dist/components/array-base/components/edit.js +36 -1
- package/dist/components/array-base/components/empty.cjs +19 -1
- package/dist/components/array-base/components/empty.js +16 -1
- package/dist/components/array-base/components/get-array-components.cjs +88 -1
- package/dist/components/array-base/components/get-array-components.js +84 -1
- package/dist/components/array-base/components/move-down.cjs +47 -1
- package/dist/components/array-base/components/move-down.js +41 -1
- package/dist/components/array-base/components/move-up.cjs +47 -1
- package/dist/components/array-base/components/move-up.js +41 -1
- package/dist/components/array-base/components/remove.cjs +46 -1
- package/dist/components/array-base/components/remove.js +40 -1
- package/dist/components/array-base/components/title.cjs +17 -1
- package/dist/components/array-base/components/title.js +14 -1
- package/dist/components/array-base/components/use-array-components-registry.cjs +56 -1
- package/dist/components/array-base/components/use-array-components-registry.js +52 -1
- package/dist/components/array-base/constants/index.cjs +17 -1
- package/dist/components/array-base/constants/index.js +15 -1
- package/dist/components/array-base/index.cjs +2 -1
- package/dist/components/array-base/index.js +2 -1
- package/dist/components/array-base/utils/filter-and-sort-components.cjs +34 -1
- package/dist/components/array-base/utils/filter-and-sort-components.js +34 -1
- package/dist/components/array-base/utils/is-array-component.cjs +65 -1
- package/dist/components/array-base/utils/is-array-component.js +56 -1
- package/dist/components/array-cards/array-cards.cjs +64 -1
- package/dist/components/array-cards/array-cards.js +60 -1
- package/dist/components/array-cards/index.cjs +1 -1
- package/dist/components/array-cards/index.js +1 -1
- package/dist/components/array-cards/item.cjs +64 -1
- package/dist/components/array-cards/item.js +60 -1
- package/dist/components/array-collapse/array-collapse.cjs +96 -1
- package/dist/components/array-collapse/array-collapse.js +92 -1
- package/dist/components/array-collapse/index.cjs +1 -1
- package/dist/components/array-collapse/index.js +1 -1
- package/dist/components/array-collapse/item.cjs +84 -1
- package/dist/components/array-collapse/item.js +78 -1
- package/dist/components/array-common/array-items-list.cjs +43 -1
- package/dist/components/array-common/array-items-list.js +39 -1
- package/dist/components/array-common/create-active-item-manager.cjs +29 -1
- package/dist/components/array-common/create-active-item-manager.js +27 -1
- package/dist/components/array-common/index.cjs +5 -1
- package/dist/components/array-common/index.js +5 -1
- package/dist/components/array-common/item-wrapper.cjs +26 -1
- package/dist/components/array-common/item-wrapper.js +21 -1
- package/dist/components/array-common/list-item.cjs +53 -1
- package/dist/components/array-common/list-item.js +48 -1
- package/dist/components/array-common/use-array-editor.cjs +47 -1
- package/dist/components/array-common/use-array-editor.js +44 -1
- package/dist/components/array-dialog/array-dialog.cjs +66 -1
- package/dist/components/array-dialog/array-dialog.js +62 -1
- package/dist/components/array-dialog/edit-dialog.cjs +61 -1
- package/dist/components/array-dialog/edit-dialog.js +57 -1
- package/dist/components/array-dialog/index.cjs +1 -1
- package/dist/components/array-dialog/index.js +1 -1
- package/dist/components/array-popover/array-popover.cjs +58 -1
- package/dist/components/array-popover/array-popover.js +53 -1
- package/dist/components/array-popover/index.cjs +1 -1
- package/dist/components/array-popover/index.js +1 -1
- package/dist/components/array-popover/popover.cjs +75 -1
- package/dist/components/array-popover/popover.js +71 -1
- package/dist/components/checkbox.cjs +26 -1
- package/dist/components/checkbox.js +23 -1
- package/dist/components/column.cjs +39 -1
- package/dist/components/column.js +35 -1
- package/dist/components/combobox.cjs +14 -1
- package/dist/components/combobox.js +11 -1
- package/dist/components/context/context.cjs +7 -1
- package/dist/components/context/context.js +7 -1
- package/dist/components/context/form-context.cjs +9 -1
- package/dist/components/context/form-context.d.cts +12 -6
- package/dist/components/context/form-context.d.ts +12 -6
- package/dist/components/context/form-context.js +7 -1
- package/dist/components/context/index.cjs +2 -1
- package/dist/components/context/index.d.cts +1 -1
- package/dist/components/context/index.d.ts +1 -1
- package/dist/components/context/index.js +2 -1
- package/dist/components/date-picker.cjs +23 -1
- package/dist/components/date-picker.js +19 -1
- package/dist/components/file-upload/file-upload-inline.cjs +35 -0
- package/dist/components/file-upload/file-upload-inline.d.cts +20 -0
- package/dist/components/file-upload/file-upload-inline.d.ts +20 -0
- package/dist/components/file-upload/file-upload-inline.js +30 -0
- package/dist/components/file-upload/file-upload.cjs +35 -0
- package/dist/components/file-upload/file-upload.d.cts +20 -0
- package/dist/components/file-upload/file-upload.d.ts +20 -0
- package/dist/components/file-upload/file-upload.js +30 -0
- package/dist/components/file-upload/index.cjs +2 -0
- package/dist/components/file-upload/index.d.cts +2 -0
- package/dist/components/file-upload/index.d.ts +2 -0
- package/dist/components/file-upload/index.js +2 -0
- package/dist/components/file-upload/use-file-upload-feedback.cjs +59 -0
- package/dist/components/file-upload/use-file-upload-feedback.js +53 -0
- package/dist/components/form-grid.cjs +19 -1
- package/dist/components/form-grid.js +15 -1
- package/dist/components/form-item.cjs +118 -3
- package/dist/components/form-item.js +112 -3
- package/dist/components/form-items-container.cjs +28 -1
- package/dist/components/form-items-container.js +24 -1
- package/dist/components/form.cjs +56 -1
- package/dist/components/form.d.cts +1 -1
- package/dist/components/form.d.ts +1 -1
- package/dist/components/form.js +51 -1
- package/dist/components/hidden.cjs +26 -1
- package/dist/components/hidden.js +23 -1
- package/dist/components/icon-picker.cjs +37 -1
- package/dist/components/icon-picker.d.cts +2 -2
- package/dist/components/icon-picker.d.ts +2 -2
- package/dist/components/icon-picker.js +33 -1
- package/dist/components/input.cjs +20 -1
- package/dist/components/input.js +17 -1
- package/dist/components/json-schema-form-renderer.cjs +30 -1
- package/dist/components/json-schema-form-renderer.d.cts +3 -0
- package/dist/components/json-schema-form-renderer.d.ts +3 -0
- package/dist/components/json-schema-form-renderer.js +26 -1
- package/dist/components/number-input.cjs +19 -1
- package/dist/components/number-input.d.cts +2 -2
- package/dist/components/number-input.js +16 -1
- package/dist/components/object-container.cjs +35 -1
- package/dist/components/object-container.js +32 -1
- package/dist/components/radio.cjs +40 -1
- package/dist/components/radio.js +35 -1
- package/dist/components/rich-text-editor.cjs +27 -0
- package/dist/components/rich-text-editor.d.cts +6 -0
- package/dist/components/rich-text-editor.d.ts +6 -0
- package/dist/components/rich-text-editor.js +23 -0
- package/dist/components/row.cjs +39 -1
- package/dist/components/row.js +35 -1
- package/dist/components/schema-field-extended.cjs +25 -0
- package/dist/components/schema-field-extended.d.cts +630 -0
- package/dist/components/schema-field-extended.d.ts +630 -0
- package/dist/components/schema-field-extended.js +23 -0
- package/dist/components/schema-field.cjs +61 -1
- package/dist/components/schema-field.d.cts +290 -288
- package/dist/components/schema-field.d.ts +136 -134
- package/dist/components/schema-field.js +57 -1
- package/dist/components/select.cjs +11 -1
- package/dist/components/select.js +8 -1
- package/dist/components/separator.cjs +15 -1
- package/dist/components/separator.d.cts +3 -3
- package/dist/components/separator.d.ts +3 -3
- package/dist/components/separator.js +12 -1
- package/dist/components/slider.cjs +33 -1
- package/dist/components/slider.d.cts +2 -2
- package/dist/components/slider.d.ts +2 -2
- package/dist/components/slider.js +29 -1
- package/dist/components/switch.cjs +21 -1
- package/dist/components/switch.d.cts +3 -3
- package/dist/components/switch.d.ts +3 -3
- package/dist/components/switch.js +18 -1
- package/dist/components/tags-input-inline.cjs +26 -1
- package/dist/components/tags-input-inline.d.cts +3 -3
- package/dist/components/tags-input-inline.d.ts +3 -3
- package/dist/components/tags-input-inline.js +23 -1
- package/dist/components/textarea.cjs +19 -1
- package/dist/components/textarea.d.cts +2 -2
- package/dist/components/textarea.js +16 -1
- package/dist/hooks/index.cjs +3 -1
- package/dist/hooks/index.js +3 -1
- package/dist/hooks/use-description.cjs +14 -1
- package/dist/hooks/use-description.js +12 -1
- package/dist/hooks/use-form-context.cjs +13 -1
- package/dist/hooks/use-form-context.js +11 -1
- package/dist/hooks/use-label.cjs +19 -1
- package/dist/hooks/use-label.js +16 -1
- package/dist/index.cjs +102 -1
- package/dist/index.d.cts +7 -4
- package/dist/index.d.ts +7 -4
- package/dist/index.js +35 -1
- package/dist/types/form.d.cts +1 -9
- package/dist/types/form.d.ts +1 -9
- package/dist/utils/create-panel-state-manager.cjs +40 -1
- package/dist/utils/create-panel-state-manager.js +38 -1
- package/dist/utils/for-each-schema.cjs +27 -1
- package/dist/utils/for-each-schema.js +26 -1
- package/dist/utils/get-array-item-info.cjs +20 -1
- package/dist/utils/get-array-item-info.js +19 -1
- package/dist/utils/get-default-value.cjs +22 -1
- package/dist/utils/get-default-value.js +20 -1
- package/dist/utils/has-array-item-errors.cjs +15 -1
- package/dist/utils/has-array-item-errors.js +14 -1
- package/dist/utils/has-error.cjs +12 -1
- package/dist/utils/has-error.js +10 -1
- package/dist/utils/index.cjs +10 -1
- package/dist/utils/index.js +10 -1
- package/dist/utils/resolve-responsive-space.cjs +131 -1
- package/dist/utils/resolve-responsive-space.js +123 -1
- package/dist/utils/transform-schema.cjs +45 -1
- package/dist/utils/transform-schema.js +43 -1
- package/dist/utils/use-array-item-editor.cjs +3 -1
- package/dist/utils/use-array-item-editor.js +1 -1
- package/dist/utils/validate-array-item-fields.cjs +22 -1
- package/dist/utils/validate-array-item-fields.js +22 -1
- package/package.json +5 -5
- package/dist/components/file-upload-inline.cjs +0 -3
- package/dist/components/file-upload-inline.d.cts +0 -12
- package/dist/components/file-upload-inline.d.ts +0 -12
- package/dist/components/file-upload-inline.js +0 -3
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_use_form_context = require('../../hooks/use-form-context.cjs');
|
|
3
|
+
require('../../hooks/index.cjs');
|
|
4
|
+
let __formily_react = require("@formily/react");
|
|
5
|
+
__formily_react = require_rolldown_runtime.__toESM(__formily_react);
|
|
6
|
+
let react = require("react");
|
|
7
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
8
|
+
let pretty_bytes = require("pretty-bytes");
|
|
9
|
+
pretty_bytes = require_rolldown_runtime.__toESM(pretty_bytes);
|
|
10
|
+
|
|
11
|
+
//#region src/components/file-upload/use-file-upload-feedback.ts
|
|
12
|
+
function useFileUploadFeedback(props) {
|
|
13
|
+
const { onUpload: onUploadProp, maxSize: maxSizeProp, onFilesReject, onFileValidate } = props;
|
|
14
|
+
const { config } = require_use_form_context.useFormContext();
|
|
15
|
+
const field = (0, __formily_react.useField)();
|
|
16
|
+
const { fileUpload } = config || {};
|
|
17
|
+
const onUpload = onUploadProp ?? fileUpload?.onUpload;
|
|
18
|
+
const maxSize = maxSizeProp ?? fileUpload?.maxSize;
|
|
19
|
+
if (onUpload == null) {
|
|
20
|
+
if (process.env.NODE_ENV !== "production") throw new Error("onUpload prop required for FileUploadInline. Provide handler on form or field props.");
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
onUpload,
|
|
24
|
+
maxSize,
|
|
25
|
+
handleFilesRejection: react.default.useCallback((files) => {
|
|
26
|
+
onFilesReject?.(files);
|
|
27
|
+
const maximumError = files.filter((f) => f.message.startsWith("Maximum"));
|
|
28
|
+
const withFileSizeError = files.filter((f) => f.message.startsWith("File too large"));
|
|
29
|
+
const otherErrors = files.filter((f) => !withFileSizeError.includes(f) && !maximumError.includes(f));
|
|
30
|
+
const messages = [];
|
|
31
|
+
if (maximumError.length > 0) messages.push(maximumError[0].message);
|
|
32
|
+
if (maxSize != null && withFileSizeError.length > 0) {
|
|
33
|
+
const fileList = withFileSizeError.map((f) => `${f.file.name} (${(0, pretty_bytes.default)(f.file.size)})`).join("\n");
|
|
34
|
+
messages.push(`Files exceed ${(0, pretty_bytes.default)(maxSize)} limit:\n${fileList}`);
|
|
35
|
+
}
|
|
36
|
+
if (otherErrors.length > 0) otherErrors.forEach((f) => {
|
|
37
|
+
messages.push(`${f.message}: ${f.file.name}`);
|
|
38
|
+
});
|
|
39
|
+
field.setFeedback({
|
|
40
|
+
type: "warning",
|
|
41
|
+
messages: [messages.join("\n")]
|
|
42
|
+
});
|
|
43
|
+
}, [
|
|
44
|
+
field,
|
|
45
|
+
maxSize,
|
|
46
|
+
onFilesReject
|
|
47
|
+
]),
|
|
48
|
+
handleFileValidate: react.default.useCallback((file) => {
|
|
49
|
+
field.setFeedback({
|
|
50
|
+
type: "warning",
|
|
51
|
+
messages: []
|
|
52
|
+
});
|
|
53
|
+
return onFileValidate?.(file);
|
|
54
|
+
}, [field, onFileValidate])
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
//#endregion
|
|
59
|
+
exports.useFileUploadFeedback = useFileUploadFeedback;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { useFormContext } from "../../hooks/use-form-context.js";
|
|
2
|
+
import "../../hooks/index.js";
|
|
3
|
+
import { useField } from "@formily/react";
|
|
4
|
+
import React from "react";
|
|
5
|
+
import prettyBytes from "pretty-bytes";
|
|
6
|
+
|
|
7
|
+
//#region src/components/file-upload/use-file-upload-feedback.ts
|
|
8
|
+
function useFileUploadFeedback(props) {
|
|
9
|
+
const { onUpload: onUploadProp, maxSize: maxSizeProp, onFilesReject, onFileValidate } = props;
|
|
10
|
+
const { config } = useFormContext();
|
|
11
|
+
const field = useField();
|
|
12
|
+
const { fileUpload } = config || {};
|
|
13
|
+
const onUpload = onUploadProp ?? fileUpload?.onUpload;
|
|
14
|
+
const maxSize = maxSizeProp ?? fileUpload?.maxSize;
|
|
15
|
+
if (onUpload == null) throw new Error("onUpload prop required for FileUploadInline. Provide handler on form or field props.");
|
|
16
|
+
return {
|
|
17
|
+
onUpload,
|
|
18
|
+
maxSize,
|
|
19
|
+
handleFilesRejection: React.useCallback((files) => {
|
|
20
|
+
onFilesReject?.(files);
|
|
21
|
+
const maximumError = files.filter((f) => f.message.startsWith("Maximum"));
|
|
22
|
+
const withFileSizeError = files.filter((f) => f.message.startsWith("File too large"));
|
|
23
|
+
const otherErrors = files.filter((f) => !withFileSizeError.includes(f) && !maximumError.includes(f));
|
|
24
|
+
const messages = [];
|
|
25
|
+
if (maximumError.length > 0) messages.push(maximumError[0].message);
|
|
26
|
+
if (maxSize != null && withFileSizeError.length > 0) {
|
|
27
|
+
const fileList = withFileSizeError.map((f) => `${f.file.name} (${prettyBytes(f.file.size)})`).join("\n");
|
|
28
|
+
messages.push(`Files exceed ${prettyBytes(maxSize)} limit:\n${fileList}`);
|
|
29
|
+
}
|
|
30
|
+
if (otherErrors.length > 0) otherErrors.forEach((f) => {
|
|
31
|
+
messages.push(`${f.message}: ${f.file.name}`);
|
|
32
|
+
});
|
|
33
|
+
field.setFeedback({
|
|
34
|
+
type: "warning",
|
|
35
|
+
messages: [messages.join("\n")]
|
|
36
|
+
});
|
|
37
|
+
}, [
|
|
38
|
+
field,
|
|
39
|
+
maxSize,
|
|
40
|
+
onFilesReject
|
|
41
|
+
]),
|
|
42
|
+
handleFileValidate: React.useCallback((file) => {
|
|
43
|
+
field.setFeedback({
|
|
44
|
+
type: "warning",
|
|
45
|
+
messages: []
|
|
46
|
+
});
|
|
47
|
+
return onFileValidate?.(file);
|
|
48
|
+
}, [field, onFileValidate])
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
//#endregion
|
|
53
|
+
export { useFileUploadFeedback };
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let react = require("react");
|
|
3
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
6
|
+
let __pixpilot_shadcn = require("@pixpilot/shadcn");
|
|
7
|
+
__pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
|
|
8
|
+
|
|
9
|
+
//#region src/components/form-grid.tsx
|
|
10
|
+
function FormGrid({ className, children,...rest }) {
|
|
11
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
12
|
+
...rest,
|
|
13
|
+
className: (0, __pixpilot_shadcn.cn)("grid gap-4 grid-cols-3", className),
|
|
14
|
+
children
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
exports.FormGrid = FormGrid;
|
|
@@ -1 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "@pixpilot/shadcn";
|
|
4
|
+
|
|
5
|
+
//#region src/components/form-grid.tsx
|
|
6
|
+
function FormGrid({ className, children,...rest }) {
|
|
7
|
+
return /* @__PURE__ */ jsx("div", {
|
|
8
|
+
...rest,
|
|
9
|
+
className: cn("grid gap-4 grid-cols-3", className),
|
|
10
|
+
children
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { FormGrid };
|
|
@@ -1,3 +1,118 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_use_form_context = require('../hooks/use-form-context.cjs');
|
|
3
|
+
const require_use_label = require('../hooks/use-label.cjs');
|
|
4
|
+
require('../hooks/index.cjs');
|
|
5
|
+
let __formily_react = require("@formily/react");
|
|
6
|
+
__formily_react = require_rolldown_runtime.__toESM(__formily_react);
|
|
7
|
+
let react = require("react");
|
|
8
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
9
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
|
+
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
11
|
+
let __pixpilot_shadcn = require("@pixpilot/shadcn");
|
|
12
|
+
__pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
|
|
13
|
+
let __formily_core = require("@formily/core");
|
|
14
|
+
__formily_core = require_rolldown_runtime.__toESM(__formily_core);
|
|
15
|
+
|
|
16
|
+
//#region src/components/form-item.tsx
|
|
17
|
+
const BaseFormItem = ({ className, children, label, description, asterisk, feedbackStatus, feedbackText, labelPlacement = "top",...props }) => {
|
|
18
|
+
const field = (0, __formily_react.useField)();
|
|
19
|
+
const fieldProps = field?.componentProps ?? {};
|
|
20
|
+
const effectiveLabel = require_use_label.useLabel(label);
|
|
21
|
+
const { itemProps } = require_use_form_context.useFormContext();
|
|
22
|
+
const { className: itemPropsClassName } = itemProps || {};
|
|
23
|
+
const effectiveLabelPlacement = fieldProps.labelPlacement ?? labelPlacement;
|
|
24
|
+
const id = field?.componentProps?.id ?? `form-${field?.address?.toString()?.replace(/\./gu, "-")}`;
|
|
25
|
+
const descriptionId = react.default.useId();
|
|
26
|
+
const feedbackId = react.default.useId();
|
|
27
|
+
const ariaDescribedBy = [description != null ? descriptionId : void 0, feedbackText != null ? feedbackId : void 0].filter(Boolean).join(" ");
|
|
28
|
+
const labelElement = effectiveLabel != null && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
29
|
+
htmlFor: id,
|
|
30
|
+
"data-slot": "form-label",
|
|
31
|
+
"data-error": Boolean(feedbackStatus === "error"),
|
|
32
|
+
className: (0, __pixpilot_shadcn.cn)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", feedbackStatus === "error" && "text-destructive", (effectiveLabelPlacement === "end" || effectiveLabelPlacement === "start") && "shrink-0"),
|
|
33
|
+
children: [effectiveLabel, asterisk && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
34
|
+
className: "text-destructive ml-1",
|
|
35
|
+
"aria-label": "required",
|
|
36
|
+
children: "*"
|
|
37
|
+
})]
|
|
38
|
+
});
|
|
39
|
+
const inputElement = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
40
|
+
className: "relative",
|
|
41
|
+
children: react.default.isValidElement(children) ? react.default.cloneElement(children, {
|
|
42
|
+
id,
|
|
43
|
+
"aria-describedby": ariaDescribedBy || void 0,
|
|
44
|
+
"aria-invalid": feedbackStatus === "error" ? "true" : void 0
|
|
45
|
+
}) : children
|
|
46
|
+
});
|
|
47
|
+
const contentElement = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
48
|
+
effectiveLabelPlacement === "top" && labelElement,
|
|
49
|
+
description != null && effectiveLabelPlacement === "top" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
50
|
+
id: descriptionId,
|
|
51
|
+
className: "text-muted-foreground text-[0.8rem]",
|
|
52
|
+
children: description
|
|
53
|
+
}),
|
|
54
|
+
(effectiveLabelPlacement === "start" || effectiveLabelPlacement === "end") && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
55
|
+
className: (0, __pixpilot_shadcn.cn)("flex items-center gap-2", effectiveLabelPlacement === "start" && "flex-row"),
|
|
56
|
+
children: [
|
|
57
|
+
effectiveLabelPlacement === "start" && labelElement,
|
|
58
|
+
inputElement,
|
|
59
|
+
effectiveLabelPlacement === "end" && labelElement
|
|
60
|
+
]
|
|
61
|
+
}),
|
|
62
|
+
effectiveLabelPlacement === "top" && inputElement,
|
|
63
|
+
description != null && (effectiveLabelPlacement === "start" || effectiveLabelPlacement === "end") && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
64
|
+
id: descriptionId,
|
|
65
|
+
className: "text-muted-foreground text-[0.8rem]",
|
|
66
|
+
children: description
|
|
67
|
+
})
|
|
68
|
+
] });
|
|
69
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
70
|
+
"data-slot": "form-item",
|
|
71
|
+
className: (0, __pixpilot_shadcn.cn)("flex flex-col gap-2", itemPropsClassName, className),
|
|
72
|
+
...props,
|
|
73
|
+
children: [contentElement, Boolean(feedbackText) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
74
|
+
id: feedbackId,
|
|
75
|
+
className: (0, __pixpilot_shadcn.cn)("text-[0.8rem]", feedbackStatus === "error" && "text-destructive font-medium", feedbackStatus === "warning" && "text-amber-600", feedbackStatus === "success" && "text-green-600"),
|
|
76
|
+
children: typeof feedbackText === "string" ? feedbackText.split("\n").map((line, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.default.Fragment, { children: [line, index < feedbackText.split("\n").length - 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("br", {})] }, index)) : feedbackText
|
|
77
|
+
})]
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* FormItem component connected to Formily field state
|
|
82
|
+
* Automatically maps field validation state to component props
|
|
83
|
+
*/
|
|
84
|
+
const FormItem = (0, __formily_react.connect)(BaseFormItem, (0, __formily_react.mapProps)((props, field) => {
|
|
85
|
+
if ((0, __formily_core.isVoidField)(field)) return {
|
|
86
|
+
label: field.title ?? props.label,
|
|
87
|
+
description: props.description ?? field.description,
|
|
88
|
+
asterisk: props.asterisk
|
|
89
|
+
};
|
|
90
|
+
const takeFeedbackStatus = () => {
|
|
91
|
+
if (field.validating) return void 0;
|
|
92
|
+
if (field.selfErrors?.length) return "error";
|
|
93
|
+
if (field.selfWarnings?.length) return "warning";
|
|
94
|
+
if (field.selfSuccesses?.length) return "success";
|
|
95
|
+
};
|
|
96
|
+
const takeFeedbackText = () => {
|
|
97
|
+
if (field.validating) return void 0;
|
|
98
|
+
if (props.feedbackText != null) return props.feedbackText;
|
|
99
|
+
if (field.selfErrors?.length) return field.selfErrors.join(", ");
|
|
100
|
+
if (field.selfWarnings?.length) return field.selfWarnings.join(", ");
|
|
101
|
+
if (field.selfSuccesses?.length) return field.selfSuccesses.join(", ");
|
|
102
|
+
};
|
|
103
|
+
const takeAsterisk = () => {
|
|
104
|
+
if (field.required && field.pattern !== "readPretty") return true;
|
|
105
|
+
if ("asterisk" in props) return Boolean(props.asterisk);
|
|
106
|
+
return false;
|
|
107
|
+
};
|
|
108
|
+
return {
|
|
109
|
+
label: props.label ?? field.title,
|
|
110
|
+
description: props.description ?? field.description,
|
|
111
|
+
feedbackStatus: takeFeedbackStatus(),
|
|
112
|
+
feedbackText: takeFeedbackText(),
|
|
113
|
+
asterisk: takeAsterisk()
|
|
114
|
+
};
|
|
115
|
+
}));
|
|
116
|
+
|
|
117
|
+
//#endregion
|
|
118
|
+
exports.FormItem = FormItem;
|
|
@@ -1,3 +1,112 @@
|
|
|
1
|
-
import{useFormContext
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { useFormContext } from "../hooks/use-form-context.js";
|
|
2
|
+
import { useLabel } from "../hooks/use-label.js";
|
|
3
|
+
import "../hooks/index.js";
|
|
4
|
+
import { connect, mapProps, useField } from "@formily/react";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { cn } from "@pixpilot/shadcn";
|
|
8
|
+
import { isVoidField } from "@formily/core";
|
|
9
|
+
|
|
10
|
+
//#region src/components/form-item.tsx
|
|
11
|
+
const BaseFormItem = ({ className, children, label, description, asterisk, feedbackStatus, feedbackText, labelPlacement = "top",...props }) => {
|
|
12
|
+
const field = useField();
|
|
13
|
+
const fieldProps = field?.componentProps ?? {};
|
|
14
|
+
const effectiveLabel = useLabel(label);
|
|
15
|
+
const { itemProps } = useFormContext();
|
|
16
|
+
const { className: itemPropsClassName } = itemProps || {};
|
|
17
|
+
const effectiveLabelPlacement = fieldProps.labelPlacement ?? labelPlacement;
|
|
18
|
+
const id = field?.componentProps?.id ?? `form-${field?.address?.toString()?.replace(/\./gu, "-")}`;
|
|
19
|
+
const descriptionId = React.useId();
|
|
20
|
+
const feedbackId = React.useId();
|
|
21
|
+
const ariaDescribedBy = [description != null ? descriptionId : void 0, feedbackText != null ? feedbackId : void 0].filter(Boolean).join(" ");
|
|
22
|
+
const labelElement = effectiveLabel != null && /* @__PURE__ */ jsxs("label", {
|
|
23
|
+
htmlFor: id,
|
|
24
|
+
"data-slot": "form-label",
|
|
25
|
+
"data-error": Boolean(feedbackStatus === "error"),
|
|
26
|
+
className: cn("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", feedbackStatus === "error" && "text-destructive", (effectiveLabelPlacement === "end" || effectiveLabelPlacement === "start") && "shrink-0"),
|
|
27
|
+
children: [effectiveLabel, asterisk && /* @__PURE__ */ jsx("span", {
|
|
28
|
+
className: "text-destructive ml-1",
|
|
29
|
+
"aria-label": "required",
|
|
30
|
+
children: "*"
|
|
31
|
+
})]
|
|
32
|
+
});
|
|
33
|
+
const inputElement = /* @__PURE__ */ jsx("div", {
|
|
34
|
+
className: "relative",
|
|
35
|
+
children: React.isValidElement(children) ? React.cloneElement(children, {
|
|
36
|
+
id,
|
|
37
|
+
"aria-describedby": ariaDescribedBy || void 0,
|
|
38
|
+
"aria-invalid": feedbackStatus === "error" ? "true" : void 0
|
|
39
|
+
}) : children
|
|
40
|
+
});
|
|
41
|
+
const contentElement = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42
|
+
effectiveLabelPlacement === "top" && labelElement,
|
|
43
|
+
description != null && effectiveLabelPlacement === "top" && /* @__PURE__ */ jsx("p", {
|
|
44
|
+
id: descriptionId,
|
|
45
|
+
className: "text-muted-foreground text-[0.8rem]",
|
|
46
|
+
children: description
|
|
47
|
+
}),
|
|
48
|
+
(effectiveLabelPlacement === "start" || effectiveLabelPlacement === "end") && /* @__PURE__ */ jsxs("div", {
|
|
49
|
+
className: cn("flex items-center gap-2", effectiveLabelPlacement === "start" && "flex-row"),
|
|
50
|
+
children: [
|
|
51
|
+
effectiveLabelPlacement === "start" && labelElement,
|
|
52
|
+
inputElement,
|
|
53
|
+
effectiveLabelPlacement === "end" && labelElement
|
|
54
|
+
]
|
|
55
|
+
}),
|
|
56
|
+
effectiveLabelPlacement === "top" && inputElement,
|
|
57
|
+
description != null && (effectiveLabelPlacement === "start" || effectiveLabelPlacement === "end") && /* @__PURE__ */ jsx("p", {
|
|
58
|
+
id: descriptionId,
|
|
59
|
+
className: "text-muted-foreground text-[0.8rem]",
|
|
60
|
+
children: description
|
|
61
|
+
})
|
|
62
|
+
] });
|
|
63
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
64
|
+
"data-slot": "form-item",
|
|
65
|
+
className: cn("flex flex-col gap-2", itemPropsClassName, className),
|
|
66
|
+
...props,
|
|
67
|
+
children: [contentElement, Boolean(feedbackText) && /* @__PURE__ */ jsx("p", {
|
|
68
|
+
id: feedbackId,
|
|
69
|
+
className: cn("text-[0.8rem]", feedbackStatus === "error" && "text-destructive font-medium", feedbackStatus === "warning" && "text-amber-600", feedbackStatus === "success" && "text-green-600"),
|
|
70
|
+
children: typeof feedbackText === "string" ? feedbackText.split("\n").map((line, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [line, index < feedbackText.split("\n").length - 1 && /* @__PURE__ */ jsx("br", {})] }, index)) : feedbackText
|
|
71
|
+
})]
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* FormItem component connected to Formily field state
|
|
76
|
+
* Automatically maps field validation state to component props
|
|
77
|
+
*/
|
|
78
|
+
const FormItem = connect(BaseFormItem, mapProps((props, field) => {
|
|
79
|
+
if (isVoidField(field)) return {
|
|
80
|
+
label: field.title ?? props.label,
|
|
81
|
+
description: props.description ?? field.description,
|
|
82
|
+
asterisk: props.asterisk
|
|
83
|
+
};
|
|
84
|
+
const takeFeedbackStatus = () => {
|
|
85
|
+
if (field.validating) return void 0;
|
|
86
|
+
if (field.selfErrors?.length) return "error";
|
|
87
|
+
if (field.selfWarnings?.length) return "warning";
|
|
88
|
+
if (field.selfSuccesses?.length) return "success";
|
|
89
|
+
};
|
|
90
|
+
const takeFeedbackText = () => {
|
|
91
|
+
if (field.validating) return void 0;
|
|
92
|
+
if (props.feedbackText != null) return props.feedbackText;
|
|
93
|
+
if (field.selfErrors?.length) return field.selfErrors.join(", ");
|
|
94
|
+
if (field.selfWarnings?.length) return field.selfWarnings.join(", ");
|
|
95
|
+
if (field.selfSuccesses?.length) return field.selfSuccesses.join(", ");
|
|
96
|
+
};
|
|
97
|
+
const takeAsterisk = () => {
|
|
98
|
+
if (field.required && field.pattern !== "readPretty") return true;
|
|
99
|
+
if ("asterisk" in props) return Boolean(props.asterisk);
|
|
100
|
+
return false;
|
|
101
|
+
};
|
|
102
|
+
return {
|
|
103
|
+
label: props.label ?? field.title,
|
|
104
|
+
description: props.description ?? field.description,
|
|
105
|
+
feedbackStatus: takeFeedbackStatus(),
|
|
106
|
+
feedbackText: takeFeedbackText(),
|
|
107
|
+
asterisk: takeAsterisk()
|
|
108
|
+
};
|
|
109
|
+
}));
|
|
110
|
+
|
|
111
|
+
//#endregion
|
|
112
|
+
export { FormItem };
|
|
@@ -1 +1,28 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_resolve_responsive_space = require('../utils/resolve-responsive-space.cjs');
|
|
3
|
+
const require_use_form_context = require('../hooks/use-form-context.cjs');
|
|
4
|
+
require('../hooks/index.cjs');
|
|
5
|
+
let react = require("react");
|
|
6
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
9
|
+
let __pixpilot_shadcn = require("@pixpilot/shadcn");
|
|
10
|
+
__pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
|
|
11
|
+
|
|
12
|
+
//#region src/components/form-items-container.tsx
|
|
13
|
+
const FormItemContainer = (props) => {
|
|
14
|
+
const { as: Component = "div", className,...rest } = props;
|
|
15
|
+
const { density, responsive } = require_use_form_context.useFormContext();
|
|
16
|
+
const spaceClass = require_resolve_responsive_space.resolveResponsiveSpaceClass({
|
|
17
|
+
density,
|
|
18
|
+
responsive
|
|
19
|
+
});
|
|
20
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
|
|
21
|
+
...rest,
|
|
22
|
+
className: (0, __pixpilot_shadcn.cn)(spaceClass, className)
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
FormItemContainer.displayName = "FormItemContainer";
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
exports.FormItemContainer = FormItemContainer;
|
|
@@ -1 +1,24 @@
|
|
|
1
|
-
import{resolveResponsiveSpaceClass
|
|
1
|
+
import { resolveResponsiveSpaceClass } from "../utils/resolve-responsive-space.js";
|
|
2
|
+
import { useFormContext } from "../hooks/use-form-context.js";
|
|
3
|
+
import "../hooks/index.js";
|
|
4
|
+
import React from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { cn } from "@pixpilot/shadcn";
|
|
7
|
+
|
|
8
|
+
//#region src/components/form-items-container.tsx
|
|
9
|
+
const FormItemContainer = (props) => {
|
|
10
|
+
const { as: Component = "div", className,...rest } = props;
|
|
11
|
+
const { density, responsive } = useFormContext();
|
|
12
|
+
const spaceClass = resolveResponsiveSpaceClass({
|
|
13
|
+
density,
|
|
14
|
+
responsive
|
|
15
|
+
});
|
|
16
|
+
return /* @__PURE__ */ jsx(Component, {
|
|
17
|
+
...rest,
|
|
18
|
+
className: cn(spaceClass, className)
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
FormItemContainer.displayName = "FormItemContainer";
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { FormItemContainer };
|
package/dist/components/form.cjs
CHANGED
|
@@ -1 +1,56 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_context = require('./context/context.cjs');
|
|
3
|
+
require('./context/index.cjs');
|
|
4
|
+
const require_form_items_container = require('./form-items-container.cjs');
|
|
5
|
+
let __formily_react = require("@formily/react");
|
|
6
|
+
__formily_react = require_rolldown_runtime.__toESM(__formily_react);
|
|
7
|
+
let react = require("react");
|
|
8
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
9
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
|
+
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
11
|
+
let __pixpilot_shadcn = require("@pixpilot/shadcn");
|
|
12
|
+
__pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
|
|
13
|
+
|
|
14
|
+
//#region src/components/form.tsx
|
|
15
|
+
/**
|
|
16
|
+
* Form component - wraps FormProvider and provides form context
|
|
17
|
+
*/
|
|
18
|
+
function Form({ form, className, style, children, onSubmit, onAutoSubmit, itemProps, objectContainerProps, density, responsive, config }) {
|
|
19
|
+
const handleSubmit = (e) => {
|
|
20
|
+
e.preventDefault();
|
|
21
|
+
form.submit((values) => {
|
|
22
|
+
onSubmit?.(values);
|
|
23
|
+
onAutoSubmit?.(values);
|
|
24
|
+
}).catch(() => {});
|
|
25
|
+
};
|
|
26
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_context.Provider, {
|
|
27
|
+
value: react.default.useMemo(() => {
|
|
28
|
+
return {
|
|
29
|
+
itemProps,
|
|
30
|
+
objectContainerProps,
|
|
31
|
+
density,
|
|
32
|
+
responsive,
|
|
33
|
+
config
|
|
34
|
+
};
|
|
35
|
+
}, [
|
|
36
|
+
itemProps,
|
|
37
|
+
objectContainerProps,
|
|
38
|
+
density,
|
|
39
|
+
responsive,
|
|
40
|
+
config
|
|
41
|
+
]),
|
|
42
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__formily_react.FormProvider, {
|
|
43
|
+
form,
|
|
44
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_form_items_container.FormItemContainer, {
|
|
45
|
+
as: "form",
|
|
46
|
+
className: (0, __pixpilot_shadcn.cn)("space-y-6", className),
|
|
47
|
+
style,
|
|
48
|
+
onSubmit: handleSubmit,
|
|
49
|
+
children
|
|
50
|
+
})
|
|
51
|
+
})
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
exports.Form = Form;
|
package/dist/components/form.js
CHANGED
|
@@ -1 +1,51 @@
|
|
|
1
|
-
import{Provider
|
|
1
|
+
import { Provider } from "./context/context.js";
|
|
2
|
+
import "./context/index.js";
|
|
3
|
+
import { FormItemContainer } from "./form-items-container.js";
|
|
4
|
+
import { FormProvider } from "@formily/react";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { cn } from "@pixpilot/shadcn";
|
|
8
|
+
|
|
9
|
+
//#region src/components/form.tsx
|
|
10
|
+
/**
|
|
11
|
+
* Form component - wraps FormProvider and provides form context
|
|
12
|
+
*/
|
|
13
|
+
function Form({ form, className, style, children, onSubmit, onAutoSubmit, itemProps, objectContainerProps, density, responsive, config }) {
|
|
14
|
+
const handleSubmit = (e) => {
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
form.submit((values) => {
|
|
17
|
+
onSubmit?.(values);
|
|
18
|
+
onAutoSubmit?.(values);
|
|
19
|
+
}).catch(() => {});
|
|
20
|
+
};
|
|
21
|
+
return /* @__PURE__ */ jsx(Provider, {
|
|
22
|
+
value: React.useMemo(() => {
|
|
23
|
+
return {
|
|
24
|
+
itemProps,
|
|
25
|
+
objectContainerProps,
|
|
26
|
+
density,
|
|
27
|
+
responsive,
|
|
28
|
+
config
|
|
29
|
+
};
|
|
30
|
+
}, [
|
|
31
|
+
itemProps,
|
|
32
|
+
objectContainerProps,
|
|
33
|
+
density,
|
|
34
|
+
responsive,
|
|
35
|
+
config
|
|
36
|
+
]),
|
|
37
|
+
children: /* @__PURE__ */ jsx(FormProvider, {
|
|
38
|
+
form,
|
|
39
|
+
children: /* @__PURE__ */ jsx(FormItemContainer, {
|
|
40
|
+
as: "form",
|
|
41
|
+
className: cn("space-y-6", className),
|
|
42
|
+
style,
|
|
43
|
+
onSubmit: handleSubmit,
|
|
44
|
+
children
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//#endregion
|
|
51
|
+
export { Form };
|
|
@@ -1 +1,26 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let __formily_react = require("@formily/react");
|
|
3
|
+
__formily_react = require_rolldown_runtime.__toESM(__formily_react);
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
6
|
+
|
|
7
|
+
//#region src/components/hidden.tsx
|
|
8
|
+
const HiddenInput = (props) => {
|
|
9
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
10
|
+
type: "hidden",
|
|
11
|
+
value: props.value
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Formily-connected Input component
|
|
16
|
+
* Automatically connects shadcn Input to Formily field state
|
|
17
|
+
*/
|
|
18
|
+
const Hidden = (0, __formily_react.connect)(HiddenInput, (0, __formily_react.mapProps)((props, field) => {
|
|
19
|
+
return {
|
|
20
|
+
...props,
|
|
21
|
+
value: field.value ?? ""
|
|
22
|
+
};
|
|
23
|
+
}));
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.Hidden = Hidden;
|