@pixpilot/formily-shadcn 1.14.2 → 1.15.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/dist/components/array-base/mcp.js +53 -0
- package/dist/components/array-cards/Item.cjs +2 -3
- package/dist/components/array-cards/Item.js +2 -3
- package/dist/components/array-cards/mcp.js +54 -0
- package/dist/components/array-collapse/Item.cjs +2 -3
- package/dist/components/array-collapse/Item.js +2 -3
- package/dist/components/array-collapse/mcp.js +55 -0
- package/dist/components/array-common/ArrayItemDraftFields.cjs +1 -15
- package/dist/components/array-common/ArrayItemDraftFields.js +1 -15
- package/dist/components/array-common/ListItem.cjs +20 -30
- package/dist/components/array-common/ListItem.js +20 -30
- package/dist/components/array-common/array-mcp-props.js +26 -0
- package/dist/components/array-common/index.cjs +1 -0
- package/dist/components/array-common/index.js +1 -0
- package/dist/components/array-common/use-array-item-wrapper-props.cjs +35 -0
- package/dist/components/array-common/use-array-item-wrapper-props.js +32 -0
- package/dist/components/array-dialog/mcp.js +58 -0
- package/dist/components/array-inline/Item.cjs +2 -3
- package/dist/components/array-inline/Item.js +2 -3
- package/dist/components/array-inline/mcp.js +46 -0
- package/dist/components/array-popover/mcp.js +52 -0
- package/dist/components/array-sortable/mcp.js +44 -0
- package/dist/components/array-tags/mcp.js +70 -0
- package/dist/components/array-toggle-group/mcp.js +53 -0
- package/dist/components/{Checkbox.cjs → checkbox/Checkbox.cjs} +3 -3
- package/dist/components/checkbox/Checkbox.d.cts +12 -0
- package/dist/components/checkbox/Checkbox.d.ts +12 -0
- package/dist/components/{Checkbox.js → checkbox/Checkbox.js} +2 -2
- package/dist/components/checkbox/index.cjs +1 -0
- package/dist/components/checkbox/index.d.cts +1 -0
- package/dist/components/checkbox/index.d.ts +1 -0
- package/dist/components/checkbox/index.js +1 -0
- package/dist/components/checkbox/mcp.js +41 -0
- package/dist/components/color-picker/mcp.js +59 -0
- package/dist/components/{ColorSelect.cjs → color-select/ColorSelect.cjs} +2 -2
- package/dist/components/color-select/ColorSelect.d.cts +7 -0
- package/dist/components/color-select/ColorSelect.d.ts +7 -0
- package/dist/components/{ColorSelect.js → color-select/ColorSelect.js} +1 -1
- package/dist/components/color-select/index.cjs +1 -0
- package/dist/components/color-select/index.d.cts +1 -0
- package/dist/components/color-select/index.d.ts +1 -0
- package/dist/components/color-select/index.js +1 -0
- package/dist/components/color-select/mcp.js +46 -0
- package/dist/components/{Column.cjs → column/Column.cjs} +2 -2
- package/dist/components/{Column.d.cts → column/Column.d.cts} +2 -2
- package/dist/components/{Column.d.ts → column/Column.d.ts} +2 -2
- package/dist/components/{Column.js → column/Column.js} +1 -1
- package/dist/components/column/index.cjs +1 -0
- package/dist/components/column/index.d.cts +1 -0
- package/dist/components/column/index.d.ts +1 -0
- package/dist/components/column/index.js +1 -0
- package/dist/components/column/mcp.js +36 -0
- package/dist/components/{Combobox.cjs → combobox/Combobox.cjs} +2 -2
- package/dist/components/combobox/Combobox.d.cts +7 -0
- package/dist/components/combobox/Combobox.d.ts +7 -0
- package/dist/components/{Combobox.js → combobox/Combobox.js} +1 -1
- package/dist/components/combobox/index.cjs +1 -0
- package/dist/components/combobox/index.d.cts +1 -0
- package/dist/components/combobox/index.d.ts +1 -0
- package/dist/components/combobox/index.js +1 -0
- package/dist/components/combobox/mcp.js +48 -0
- package/dist/components/{DatePicker.cjs → date-picker/DatePicker.cjs} +2 -2
- package/dist/components/{DatePicker.d.cts → date-picker/DatePicker.d.cts} +5 -4
- package/dist/components/{DatePicker.d.ts → date-picker/DatePicker.d.ts} +5 -4
- package/dist/components/{DatePicker.js → date-picker/DatePicker.js} +1 -1
- package/dist/components/date-picker/index.cjs +1 -0
- package/dist/components/date-picker/index.d.cts +1 -0
- package/dist/components/date-picker/index.d.ts +1 -0
- package/dist/components/date-picker/index.js +1 -0
- package/dist/components/date-picker/mcp.js +104 -0
- package/dist/components/file-upload/mcp.js +62 -0
- package/dist/components/{Form.cjs → form/Form.cjs} +6 -5
- package/dist/components/{Form.d.cts → form/Form.d.cts} +4 -4
- package/dist/components/{Form.d.ts → form/Form.d.ts} +4 -4
- package/dist/components/{Form.js → form/Form.js} +5 -4
- package/dist/components/form/index.cjs +1 -0
- package/dist/components/form/index.d.cts +1 -0
- package/dist/components/form/index.d.ts +1 -0
- package/dist/components/form/index.js +1 -0
- package/dist/components/form/mcp.js +31 -0
- package/dist/components/{FormGrid.cjs → form-grid/FormGrid.cjs} +2 -2
- package/dist/components/{FormGrid.d.cts → form-grid/FormGrid.d.cts} +2 -2
- package/dist/components/{FormGrid.d.ts → form-grid/FormGrid.d.ts} +2 -2
- package/dist/components/{FormGrid.js → form-grid/FormGrid.js} +1 -1
- package/dist/components/form-grid/index.cjs +1 -0
- package/dist/components/form-grid/index.d.cts +1 -0
- package/dist/components/form-grid/index.d.ts +1 -0
- package/dist/components/form-grid/index.js +1 -0
- package/dist/components/form-grid/mcp.js +35 -0
- package/dist/components/form-item/ConnectedFormItem.d.cts +4 -4
- package/dist/components/form-item/ConnectedFormItem.d.ts +4 -4
- package/dist/components/form-item/mcp.js +46 -0
- package/dist/components/{FormItemContainer.cjs → form-item-container/FormItemContainer.cjs} +5 -5
- package/dist/components/{FormItemContainer.js → form-item-container/FormItemContainer.js} +4 -4
- package/dist/components/form-item-container/index.cjs +1 -0
- package/dist/components/form-item-container/index.js +1 -0
- package/dist/components/form-item-container/mcp.js +36 -0
- package/dist/components/{Hidden.cjs → hidden/Hidden.cjs} +2 -2
- package/dist/components/hidden/Hidden.d.cts +9 -0
- package/dist/components/hidden/Hidden.d.ts +9 -0
- package/dist/components/{Hidden.js → hidden/Hidden.js} +1 -1
- package/dist/components/hidden/index.cjs +1 -0
- package/dist/components/hidden/index.d.cts +1 -0
- package/dist/components/hidden/index.d.ts +1 -0
- package/dist/components/hidden/index.js +1 -0
- package/dist/components/hidden/mcp.js +36 -0
- package/dist/components/{IconPicker.cjs → icon-picker/IconPicker.cjs} +4 -4
- package/dist/components/{IconPicker.d.cts → icon-picker/IconPicker.d.cts} +7 -7
- package/dist/components/icon-picker/IconPicker.d.ts +15 -0
- package/dist/components/{IconPicker.js → icon-picker/IconPicker.js} +3 -3
- package/dist/components/icon-picker/index.cjs +1 -0
- package/dist/components/icon-picker/index.d.cts +1 -0
- package/dist/components/icon-picker/index.d.ts +1 -0
- package/dist/components/icon-picker/index.js +1 -0
- package/dist/components/icon-picker/mcp.js +48 -0
- package/dist/components/{IconToggle.cjs → icon-toggle/IconToggle.cjs} +3 -3
- package/dist/components/icon-toggle/IconToggle.d.cts +12 -0
- package/dist/components/icon-toggle/IconToggle.d.ts +12 -0
- package/dist/components/{IconToggle.js → icon-toggle/IconToggle.js} +2 -2
- package/dist/components/icon-toggle/index.cjs +1 -0
- package/dist/components/icon-toggle/index.d.cts +1 -0
- package/dist/components/icon-toggle/index.d.ts +1 -0
- package/dist/components/icon-toggle/index.js +1 -0
- package/dist/components/icon-toggle/mcp.js +45 -0
- package/dist/components/{Input.cjs → input/Input.cjs} +2 -2
- package/dist/components/input/Input.d.cts +12 -0
- package/dist/components/input/Input.d.ts +12 -0
- package/dist/components/{Input.js → input/Input.js} +1 -1
- package/dist/components/input/index.cjs +1 -0
- package/dist/components/input/index.d.cts +1 -0
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/input/index.js +1 -0
- package/dist/components/input/mcp.js +41 -0
- package/dist/components/json-schema-form-renderer/JsonSchemaFormRenderer.cjs +2 -1
- package/dist/components/json-schema-form-renderer/JsonSchemaFormRenderer.js +2 -1
- package/dist/components/json-schema-form-renderer/mcp.js +43 -0
- package/dist/components/json-schema-form-renderer/types.d.cts +2 -1
- package/dist/components/json-schema-form-renderer/types.d.ts +2 -1
- package/dist/components/number/NumberInput.d.cts +5 -9
- package/dist/components/number/NumberInput.d.ts +5 -9
- package/dist/components/number/index.d.cts +1 -1
- package/dist/components/number/index.d.ts +1 -1
- package/dist/components/number/mcp.js +40 -0
- package/dist/components/{ObjectContainer.cjs → object-container/ObjectContainer.cjs} +9 -8
- package/dist/components/{ObjectContainer.d.cts → object-container/ObjectContainer.d.cts} +2 -2
- package/dist/components/{ObjectContainer.d.ts → object-container/ObjectContainer.d.ts} +2 -2
- package/dist/components/{ObjectContainer.js → object-container/ObjectContainer.js} +8 -7
- package/dist/components/object-container/index.cjs +1 -0
- package/dist/components/object-container/index.js +1 -0
- package/dist/components/object-container/mcp.js +41 -0
- package/dist/components/{Radio.cjs → radio/Radio.cjs} +2 -2
- package/dist/components/{Radio.d.cts → radio/Radio.d.cts} +5 -5
- package/dist/components/{Radio.d.ts → radio/Radio.d.ts} +5 -5
- package/dist/components/{Radio.js → radio/Radio.js} +1 -1
- package/dist/components/radio/index.cjs +1 -0
- package/dist/components/radio/index.d.cts +1 -0
- package/dist/components/radio/index.d.ts +1 -0
- package/dist/components/radio/index.js +1 -0
- package/dist/components/radio/mcp.js +45 -0
- package/dist/components/{Rating.cjs → rating/Rating.cjs} +2 -2
- package/dist/components/rating/Rating.d.cts +12 -0
- package/dist/components/rating/Rating.d.ts +12 -0
- package/dist/components/{Rating.js → rating/Rating.js} +1 -1
- package/dist/components/rating/index.cjs +1 -0
- package/dist/components/rating/index.d.cts +1 -0
- package/dist/components/rating/index.d.ts +1 -0
- package/dist/components/rating/index.js +1 -0
- package/dist/components/rating/mcp.js +47 -0
- package/dist/components/{RichTextEditor.cjs → rich-text-editor/RichTextEditor.cjs} +4 -4
- package/dist/components/rich-text-editor/RichTextEditor.d.cts +7 -0
- package/dist/components/rich-text-editor/RichTextEditor.d.ts +7 -0
- package/dist/components/{RichTextEditor.js → rich-text-editor/RichTextEditor.js} +3 -3
- package/dist/components/rich-text-editor/index.cjs +1 -0
- package/dist/components/rich-text-editor/index.d.cts +1 -0
- package/dist/components/rich-text-editor/index.d.ts +1 -0
- package/dist/components/rich-text-editor/index.js +1 -0
- package/dist/components/rich-text-editor/mcp.js +49 -0
- package/dist/components/{Row.cjs → row/Row.cjs} +2 -2
- package/dist/components/{Row.d.cts → row/Row.d.cts} +2 -2
- package/dist/components/{Row.d.ts → row/Row.d.ts} +2 -2
- package/dist/components/{Row.js → row/Row.js} +1 -1
- package/dist/components/row/index.cjs +1 -0
- package/dist/components/row/index.d.cts +1 -0
- package/dist/components/row/index.d.ts +1 -0
- package/dist/components/row/index.js +1 -0
- package/dist/components/row/mcp.js +36 -0
- package/dist/components/schema-field/index.d.cts +1 -1
- package/dist/components/schema-field/index.d.ts +1 -1
- package/dist/components/schema-field/mcp.js +61 -0
- package/dist/components/schema-field/schema-field-basics.cjs +32 -16
- package/dist/components/schema-field/schema-field-basics.d.cts +282 -437
- package/dist/components/schema-field/schema-field-basics.d.ts +285 -440
- package/dist/components/schema-field/schema-field-basics.js +32 -16
- package/dist/components/schema-field/schema-field-extended.cjs +4 -2
- package/dist/components/schema-field/schema-field-extended.d.cts +435 -632
- package/dist/components/schema-field/schema-field-extended.d.ts +435 -632
- package/dist/components/schema-field/schema-field-extended.js +4 -2
- package/dist/components/schema-field/schema-field.cjs +8 -4
- package/dist/components/schema-field/schema-field.d.cts +371 -548
- package/dist/components/schema-field/schema-field.d.ts +374 -551
- package/dist/components/schema-field/schema-field.js +8 -4
- package/dist/components/{Select.cjs → select/Select.cjs} +3 -3
- package/dist/components/select/Select.d.cts +20 -0
- package/dist/components/select/Select.d.ts +20 -0
- package/dist/components/{Select.js → select/Select.js} +2 -2
- package/dist/components/select/index.cjs +1 -0
- package/dist/components/select/index.d.cts +1 -0
- package/dist/components/select/index.d.ts +1 -0
- package/dist/components/select/index.js +1 -0
- package/dist/components/select/mcp.js +49 -0
- package/dist/components/{Separator.cjs → separator/Separator.cjs} +2 -2
- package/dist/components/separator/Separator.d.cts +12 -0
- package/dist/components/separator/Separator.d.ts +12 -0
- package/dist/components/{Separator.js → separator/Separator.js} +1 -1
- package/dist/components/separator/index.cjs +1 -0
- package/dist/components/separator/index.d.cts +1 -0
- package/dist/components/separator/index.d.ts +1 -0
- package/dist/components/separator/index.js +1 -0
- package/dist/components/separator/mcp.js +40 -0
- package/dist/components/slider/Slider.d.cts +5 -4
- package/dist/components/slider/Slider.d.ts +5 -4
- package/dist/components/slider/SliderInput.d.cts +3 -3
- package/dist/components/slider/SliderInput.d.ts +3 -3
- package/dist/components/slider/SliderSelect.d.cts +4 -3
- package/dist/components/slider/SliderSelect.d.ts +4 -3
- package/dist/components/slider/index.d.cts +1 -1
- package/dist/components/slider/index.d.ts +1 -1
- package/dist/components/slider/mcp.js +50 -0
- package/dist/components/{Switch.cjs → switch/Switch.cjs} +3 -3
- package/dist/components/switch/Switch.d.cts +12 -0
- package/dist/components/switch/Switch.d.ts +12 -0
- package/dist/components/{Switch.js → switch/Switch.js} +2 -2
- package/dist/components/switch/index.cjs +1 -0
- package/dist/components/switch/index.d.cts +1 -0
- package/dist/components/switch/index.d.ts +1 -0
- package/dist/components/switch/index.js +1 -0
- package/dist/components/switch/mcp.js +41 -0
- package/dist/components/{TagsInputInline.cjs → tags-input-inline/TagsInputInline.cjs} +2 -2
- package/dist/components/tags-input-inline/TagsInputInline.d.cts +15 -0
- package/dist/components/tags-input-inline/TagsInputInline.d.ts +15 -0
- package/dist/components/{TagsInputInline.js → tags-input-inline/TagsInputInline.js} +1 -1
- package/dist/components/tags-input-inline/index.cjs +1 -0
- package/dist/components/tags-input-inline/index.d.cts +1 -0
- package/dist/components/tags-input-inline/index.d.ts +1 -0
- package/dist/components/tags-input-inline/index.js +1 -0
- package/dist/components/tags-input-inline/mcp.js +54 -0
- package/dist/components/{Textarea.cjs → textarea/Textarea.cjs} +2 -2
- package/dist/components/textarea/Textarea.d.cts +11 -0
- package/dist/components/textarea/Textarea.d.ts +11 -0
- package/dist/components/{Textarea.js → textarea/Textarea.js} +1 -1
- package/dist/components/textarea/index.cjs +1 -0
- package/dist/components/textarea/index.d.cts +1 -0
- package/dist/components/textarea/index.d.ts +1 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/textarea/mcp.js +36 -0
- package/dist/components/{ToggleButton.cjs → toggle-button/ToggleButton.cjs} +3 -3
- package/dist/components/toggle-button/ToggleButton.d.cts +12 -0
- package/dist/components/toggle-button/ToggleButton.d.ts +12 -0
- package/dist/components/{ToggleButton.js → toggle-button/ToggleButton.js} +2 -2
- package/dist/components/toggle-button/index.cjs +1 -0
- package/dist/components/toggle-button/index.d.cts +1 -0
- package/dist/components/toggle-button/index.d.ts +1 -0
- package/dist/components/toggle-button/index.js +1 -0
- package/dist/components/toggle-button/mcp.js +45 -0
- package/dist/components/{ToggleGroup.cjs → toggle-group/ToggleGroup.cjs} +5 -4
- package/dist/components/{ToggleGroup.d.cts → toggle-group/ToggleGroup.d.cts} +2 -2
- package/dist/components/{ToggleGroup.d.ts → toggle-group/ToggleGroup.d.ts} +2 -2
- package/dist/components/{ToggleGroup.js → toggle-group/ToggleGroup.js} +3 -3
- package/dist/components/toggle-group/index.cjs +1 -0
- package/dist/components/toggle-group/index.d.cts +1 -0
- package/dist/components/toggle-group/index.d.ts +1 -0
- package/dist/components/toggle-group/index.js +1 -0
- package/dist/components/toggle-group/mcp.js +52 -0
- package/dist/generated/mcp-registry.js +95 -0
- package/dist/index.cjs +44 -22
- package/dist/index.d.cts +46 -25
- package/dist/index.d.ts +46 -25
- package/dist/index.js +44 -22
- package/dist/mcp/src/search.js +81 -0
- package/dist/mcp/src/server.js +72 -0
- package/dist/mcp/src/utils.js +8 -0
- package/dist/mcp-server.js +18 -0
- package/package.json +11 -3
- package/dist/components/Checkbox.d.cts +0 -11
- package/dist/components/Checkbox.d.ts +0 -11
- package/dist/components/ColorSelect.d.cts +0 -6
- package/dist/components/ColorSelect.d.ts +0 -6
- package/dist/components/Combobox.d.cts +0 -6
- package/dist/components/Combobox.d.ts +0 -6
- package/dist/components/IconPicker.d.ts +0 -15
- package/dist/components/IconToggle.d.cts +0 -11
- package/dist/components/IconToggle.d.ts +0 -11
- package/dist/components/Input.d.cts +0 -17
- package/dist/components/Input.d.ts +0 -17
- package/dist/components/Rating.d.cts +0 -13
- package/dist/components/Rating.d.ts +0 -13
- package/dist/components/RichTextEditor.d.cts +0 -6
- package/dist/components/RichTextEditor.d.ts +0 -6
- package/dist/components/Select.d.cts +0 -6
- package/dist/components/Select.d.ts +0 -6
- package/dist/components/Separator.d.cts +0 -11
- package/dist/components/Separator.d.ts +0 -11
- package/dist/components/Switch.d.cts +0 -11
- package/dist/components/Switch.d.ts +0 -11
- package/dist/components/TagsInputInline.d.cts +0 -15
- package/dist/components/TagsInputInline.d.ts +0 -15
- package/dist/components/Textarea.d.cts +0 -9
- package/dist/components/Textarea.d.ts +0 -9
- package/dist/components/ToggleButton.d.cts +0 -11
- package/dist/components/ToggleButton.d.ts +0 -11
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { defineProps } from "../../mcp/src/utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/components/array-base/mcp.ts
|
|
4
|
+
const meta = {
|
|
5
|
+
name: "ArrayBase",
|
|
6
|
+
category: "Formily Arrays",
|
|
7
|
+
description: "Low-level Formily array context provider and mixin base used by the higher-level array components.",
|
|
8
|
+
htmlElement: "div",
|
|
9
|
+
props: defineProps({
|
|
10
|
+
disabled: "Disables array operations for children using the array context.",
|
|
11
|
+
sortable: "Enables sortable behavior for array components that use ArrayBase context.",
|
|
12
|
+
onAdd: "Called when an array item is added.",
|
|
13
|
+
onRemove: "Called when an array item is removed.",
|
|
14
|
+
onMoveUp: "Called when an array item is moved up.",
|
|
15
|
+
onMoveDown: "Called when an array item is moved down.",
|
|
16
|
+
onEdit: "Called when an array item edit action is triggered.",
|
|
17
|
+
actions: "Item operation actions available to child array renderers.",
|
|
18
|
+
transformActions: "Callback that transforms the resolved action list before rendering.",
|
|
19
|
+
description: "Description content made available to array renderers."
|
|
20
|
+
}),
|
|
21
|
+
examples: [{
|
|
22
|
+
title: "Prefer high-level array components",
|
|
23
|
+
code: `<SchemaField.Array name="items" x-component="ArrayCards" />`
|
|
24
|
+
}, {
|
|
25
|
+
title: "JSON schema for form renderer",
|
|
26
|
+
code: `{
|
|
27
|
+
type: 'object',
|
|
28
|
+
properties: {
|
|
29
|
+
items: {
|
|
30
|
+
type: 'array',
|
|
31
|
+
'x-component': 'ArrayCards',
|
|
32
|
+
items: { type: 'object', properties: {} },
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
}`
|
|
36
|
+
}],
|
|
37
|
+
keywords: [
|
|
38
|
+
"formily",
|
|
39
|
+
"array",
|
|
40
|
+
"base",
|
|
41
|
+
"context"
|
|
42
|
+
],
|
|
43
|
+
related: [
|
|
44
|
+
"ArrayCards",
|
|
45
|
+
"ArrayCollapse",
|
|
46
|
+
"ArrayDialog",
|
|
47
|
+
"ArrayInline",
|
|
48
|
+
"ArrayPopover"
|
|
49
|
+
]
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
//#endregion
|
|
53
|
+
export { meta };
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_get_x_component_props = require('../../utils/get-x-component-props.cjs');
|
|
3
|
-
require('../../utils/index.cjs');
|
|
4
2
|
const require_array_base = require('../array-base/array-base.cjs');
|
|
5
3
|
const require_is_array_component = require('../array-base/utils/is-array-component.cjs');
|
|
6
4
|
require('../array-base/index.cjs');
|
|
7
5
|
const require_SortableItem = require('../array-sortable/SortableItem.cjs');
|
|
8
6
|
require('../array-sortable/index.cjs');
|
|
9
7
|
const require_ArrayItemHeaderRow = require('../array-common/ArrayItemHeaderRow.cjs');
|
|
8
|
+
const require_use_array_item_wrapper_props = require('../array-common/use-array-item-wrapper-props.cjs');
|
|
10
9
|
require('../array-common/index.cjs');
|
|
11
10
|
let __formily_react = require("@formily/react");
|
|
12
11
|
__formily_react = require_rolldown_runtime.__toESM(__formily_react);
|
|
@@ -21,7 +20,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
|
21
20
|
const ArrayItem = react.default.memo(({ index, record, itemKey, cardProps }) => {
|
|
22
21
|
const schema = (0, __formily_react.useFieldSchema)();
|
|
23
22
|
const items = schema?.items;
|
|
24
|
-
const { className: itemWrapperClassName,...itemWrapperRestProps } =
|
|
23
|
+
const { className: itemWrapperClassName,...itemWrapperRestProps } = require_use_array_item_wrapper_props.useArrayItemWrapperProps();
|
|
25
24
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_array_base.ArrayBase.Item, {
|
|
26
25
|
index,
|
|
27
26
|
record: record ?? {},
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { getXComponentProps } from "../../utils/get-x-component-props.js";
|
|
2
|
-
import "../../utils/index.js";
|
|
3
1
|
import { ArrayBase } from "../array-base/array-base.js";
|
|
4
2
|
import { isOperationComponent } from "../array-base/utils/is-array-component.js";
|
|
5
3
|
import "../array-base/index.js";
|
|
6
4
|
import { SortableItem } from "../array-sortable/SortableItem.js";
|
|
7
5
|
import "../array-sortable/index.js";
|
|
8
6
|
import { ArrayItemHeaderRow } from "../array-common/ArrayItemHeaderRow.js";
|
|
7
|
+
import { useArrayItemWrapperProps } from "../array-common/use-array-item-wrapper-props.js";
|
|
9
8
|
import "../array-common/index.js";
|
|
10
9
|
import { RecursionField, useFieldSchema } from "@formily/react";
|
|
11
10
|
import React from "react";
|
|
@@ -16,7 +15,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
16
15
|
const ArrayItem = React.memo(({ index, record, itemKey, cardProps }) => {
|
|
17
16
|
const schema = useFieldSchema();
|
|
18
17
|
const items = schema?.items;
|
|
19
|
-
const { className: itemWrapperClassName,...itemWrapperRestProps } =
|
|
18
|
+
const { className: itemWrapperClassName,...itemWrapperRestProps } = useArrayItemWrapperProps();
|
|
20
19
|
return /* @__PURE__ */ jsx(ArrayBase.Item, {
|
|
21
20
|
index,
|
|
22
21
|
record: record ?? {},
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { defineProps } from "../../mcp/src/utils.js";
|
|
2
|
+
import { commonArrayPropDocs, perItemStylingNote } from "../array-common/array-mcp-props.js";
|
|
3
|
+
|
|
4
|
+
//#region src/components/array-cards/mcp.ts
|
|
5
|
+
const meta = {
|
|
6
|
+
name: "ArrayCards",
|
|
7
|
+
category: "Formily Arrays",
|
|
8
|
+
description: "A Formily array field that renders each item as a card with an editable form inside, plus per-item operations (move, copy, remove).",
|
|
9
|
+
htmlElement: "div",
|
|
10
|
+
props: defineProps({
|
|
11
|
+
...commonArrayPropDocs,
|
|
12
|
+
cardProps: "HTML attributes applied to every item card wrapper (className, style, etc.)."
|
|
13
|
+
}),
|
|
14
|
+
examples: [{
|
|
15
|
+
title: "Array of cards",
|
|
16
|
+
code: `{
|
|
17
|
+
type: 'array',
|
|
18
|
+
'x-component': 'ArrayCards',
|
|
19
|
+
items: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
name: { type: 'string', 'x-decorator': 'FormItem', 'x-component': 'Input' },
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
properties: {
|
|
26
|
+
addition: { type: 'void', title: 'Add', 'x-component': 'ArrayCards.Addition' },
|
|
27
|
+
},
|
|
28
|
+
}`
|
|
29
|
+
}, {
|
|
30
|
+
title: "Style each item",
|
|
31
|
+
code: `items: {
|
|
32
|
+
type: 'object',
|
|
33
|
+
'x-component-props': { className: 'border-primary' },
|
|
34
|
+
properties: { /* ... */ },
|
|
35
|
+
}`
|
|
36
|
+
}],
|
|
37
|
+
notes: [perItemStylingNote],
|
|
38
|
+
keywords: [
|
|
39
|
+
"formily",
|
|
40
|
+
"array",
|
|
41
|
+
"cards",
|
|
42
|
+
"list",
|
|
43
|
+
"repeater"
|
|
44
|
+
],
|
|
45
|
+
related: [
|
|
46
|
+
"ArrayCollapse",
|
|
47
|
+
"ArrayInline",
|
|
48
|
+
"ArrayDialog",
|
|
49
|
+
"ArrayPopover"
|
|
50
|
+
]
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
export { meta };
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_validate_array_item_fields = require('../../utils/validate-array-item-fields.cjs');
|
|
3
|
-
const require_get_x_component_props = require('../../utils/get-x-component-props.cjs');
|
|
4
|
-
require('../../utils/index.cjs');
|
|
5
3
|
const require_array_base = require('../array-base/array-base.cjs');
|
|
6
4
|
require('../array-base/index.cjs');
|
|
7
5
|
const require_SortableItem = require('../array-sortable/SortableItem.cjs');
|
|
@@ -9,6 +7,7 @@ require('../array-sortable/index.cjs');
|
|
|
9
7
|
const require_ArrayItemHeaderRow = require('../array-common/ArrayItemHeaderRow.cjs');
|
|
10
8
|
const require_get_hidden_item_schema = require('../array-common/get-hidden-item-schema.cjs');
|
|
11
9
|
const require_ItemWrapper = require('../array-common/ItemWrapper.cjs');
|
|
10
|
+
const require_use_array_item_wrapper_props = require('../array-common/use-array-item-wrapper-props.cjs');
|
|
12
11
|
const require_use_array_item_schema = require('../array-common/use-array-item-schema.cjs');
|
|
13
12
|
require('../array-common/index.cjs');
|
|
14
13
|
let __formily_react = require("@formily/react");
|
|
@@ -31,7 +30,7 @@ const ArrayCollapseItem = react.default.memo((props) => {
|
|
|
31
30
|
const hiddenItemSchema = react.default.useMemo(() => {
|
|
32
31
|
return require_get_hidden_item_schema.getHiddenItemSchema(items);
|
|
33
32
|
}, [items]);
|
|
34
|
-
const itemWrapperProps =
|
|
33
|
+
const itemWrapperProps = require_use_array_item_wrapper_props.useArrayItemWrapperProps();
|
|
35
34
|
react.default.useEffect(() => {
|
|
36
35
|
if (isNewItem(index)) formCollapse.addActiveKey(itemId);
|
|
37
36
|
}, [
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { validateArrayItemFields } from "../../utils/validate-array-item-fields.js";
|
|
2
|
-
import { getXComponentProps } from "../../utils/get-x-component-props.js";
|
|
3
|
-
import "../../utils/index.js";
|
|
4
2
|
import { ArrayBase } from "../array-base/array-base.js";
|
|
5
3
|
import "../array-base/index.js";
|
|
6
4
|
import { SortableItem } from "../array-sortable/SortableItem.js";
|
|
@@ -8,6 +6,7 @@ import "../array-sortable/index.js";
|
|
|
8
6
|
import { ArrayItemHeaderRow } from "../array-common/ArrayItemHeaderRow.js";
|
|
9
7
|
import { getHiddenItemSchema } from "../array-common/get-hidden-item-schema.js";
|
|
10
8
|
import { ItemWrapper } from "../array-common/ItemWrapper.js";
|
|
9
|
+
import { useArrayItemWrapperProps } from "../array-common/use-array-item-wrapper-props.js";
|
|
11
10
|
import { useArrayItemSchema } from "../array-common/use-array-item-schema.js";
|
|
12
11
|
import "../array-common/index.js";
|
|
13
12
|
import { RecursionField, useField, useFieldSchema } from "@formily/react";
|
|
@@ -25,7 +24,7 @@ const ArrayCollapseItem = React.memo((props) => {
|
|
|
25
24
|
const hiddenItemSchema = React.useMemo(() => {
|
|
26
25
|
return getHiddenItemSchema(items);
|
|
27
26
|
}, [items]);
|
|
28
|
-
const itemWrapperProps =
|
|
27
|
+
const itemWrapperProps = useArrayItemWrapperProps();
|
|
29
28
|
React.useEffect(() => {
|
|
30
29
|
if (isNewItem(index)) formCollapse.addActiveKey(itemId);
|
|
31
30
|
}, [
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { defineProps } from "../../mcp/src/utils.js";
|
|
2
|
+
import { commonArrayPropDocs, perItemStylingNote } from "../array-common/array-mcp-props.js";
|
|
3
|
+
|
|
4
|
+
//#region src/components/array-collapse/mcp.ts
|
|
5
|
+
const meta = {
|
|
6
|
+
name: "ArrayCollapse",
|
|
7
|
+
category: "Formily Arrays",
|
|
8
|
+
description: "A Formily array field that renders each item as a collapsible panel with an editable form inside, plus per-item operations.",
|
|
9
|
+
htmlElement: "div",
|
|
10
|
+
props: defineProps({
|
|
11
|
+
...commonArrayPropDocs,
|
|
12
|
+
mode: {
|
|
13
|
+
description: "Panel behavior: \"multiple\" allows several open panels, \"accordion\" keeps only one open at a time.",
|
|
14
|
+
type: `'accordion' | 'multiple'`,
|
|
15
|
+
defaultValue: `'multiple'`
|
|
16
|
+
},
|
|
17
|
+
defaultActiveKey: "Indices of the panels that are expanded by default.",
|
|
18
|
+
collapseProps: "HTML attributes applied to every item panel wrapper (className, style, etc.)."
|
|
19
|
+
}),
|
|
20
|
+
examples: [{
|
|
21
|
+
title: "Accordion of items",
|
|
22
|
+
code: `{
|
|
23
|
+
type: 'array',
|
|
24
|
+
'x-component': 'ArrayCollapse',
|
|
25
|
+
'x-component-props': { mode: 'accordion' },
|
|
26
|
+
items: {
|
|
27
|
+
type: 'object',
|
|
28
|
+
properties: {
|
|
29
|
+
name: { type: 'string', 'x-decorator': 'FormItem', 'x-component': 'Input' },
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
properties: {
|
|
33
|
+
addition: { type: 'void', title: 'Add', 'x-component': 'ArrayCollapse.Addition' },
|
|
34
|
+
},
|
|
35
|
+
}`
|
|
36
|
+
}],
|
|
37
|
+
notes: [perItemStylingNote],
|
|
38
|
+
keywords: [
|
|
39
|
+
"formily",
|
|
40
|
+
"array",
|
|
41
|
+
"collapse",
|
|
42
|
+
"accordion",
|
|
43
|
+
"list",
|
|
44
|
+
"repeater"
|
|
45
|
+
],
|
|
46
|
+
related: [
|
|
47
|
+
"ArrayCards",
|
|
48
|
+
"ArrayInline",
|
|
49
|
+
"ArrayDialog",
|
|
50
|
+
"ArrayPopover"
|
|
51
|
+
]
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
export { meta };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_get_x_component_props = require('../../utils/get-x-component-props.cjs');
|
|
3
|
-
require('../../utils/index.cjs');
|
|
4
2
|
let __formily_react = require("@formily/react");
|
|
5
3
|
__formily_react = require_rolldown_runtime.__toESM(__formily_react);
|
|
6
4
|
let react = require("react");
|
|
@@ -9,16 +7,6 @@ let react_jsx_runtime = require("react/jsx-runtime");
|
|
|
9
7
|
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
10
8
|
|
|
11
9
|
//#region src/components/array-common/ArrayItemDraftFields.tsx
|
|
12
|
-
function mergeClassName(a, b) {
|
|
13
|
-
const aa = a?.trim();
|
|
14
|
-
const bb = b?.trim();
|
|
15
|
-
const hasA = aa != null && aa.length > 0;
|
|
16
|
-
const hasB = bb != null && bb.length > 0;
|
|
17
|
-
if (!hasA && !hasB) return void 0;
|
|
18
|
-
if (hasA && !hasB) return aa;
|
|
19
|
-
if (!hasA && hasB) return bb;
|
|
20
|
-
return `${aa} ${bb}`;
|
|
21
|
-
}
|
|
22
10
|
/**
|
|
23
11
|
* Renders item fields inside their own FormProvider.
|
|
24
12
|
* SchemaField contexts (component registry, options, …) are captured from
|
|
@@ -51,10 +39,8 @@ function IsolatedDraftFields({ schema, form, basePath }) {
|
|
|
51
39
|
});
|
|
52
40
|
}
|
|
53
41
|
function ArrayItemDraftFields({ schema, form, basePath = "draft", as: Component = "div", className, isolated = true }) {
|
|
54
|
-
const { className: itemWrapperClassName,...itemWrapperRestProps } = require_get_x_component_props.getXComponentProps(schema);
|
|
55
42
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
|
|
56
|
-
|
|
57
|
-
className: mergeClassName(className, itemWrapperClassName),
|
|
43
|
+
className,
|
|
58
44
|
children: isolated ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IsolatedDraftFields, {
|
|
59
45
|
schema,
|
|
60
46
|
form,
|
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
import { getXComponentProps } from "../../utils/get-x-component-props.js";
|
|
2
|
-
import "../../utils/index.js";
|
|
3
1
|
import { FormProvider, RecursionField, SchemaComponentsContext, SchemaContext, SchemaExpressionScopeContext, SchemaMarkupContext, SchemaOptionsContext } from "@formily/react";
|
|
4
2
|
import React from "react";
|
|
5
3
|
import { jsx } from "react/jsx-runtime";
|
|
6
4
|
|
|
7
5
|
//#region src/components/array-common/ArrayItemDraftFields.tsx
|
|
8
|
-
function mergeClassName(a, b) {
|
|
9
|
-
const aa = a?.trim();
|
|
10
|
-
const bb = b?.trim();
|
|
11
|
-
const hasA = aa != null && aa.length > 0;
|
|
12
|
-
const hasB = bb != null && bb.length > 0;
|
|
13
|
-
if (!hasA && !hasB) return void 0;
|
|
14
|
-
if (hasA && !hasB) return aa;
|
|
15
|
-
if (!hasA && hasB) return bb;
|
|
16
|
-
return `${aa} ${bb}`;
|
|
17
|
-
}
|
|
18
6
|
/**
|
|
19
7
|
* Renders item fields inside their own FormProvider.
|
|
20
8
|
* SchemaField contexts (component registry, options, …) are captured from
|
|
@@ -47,10 +35,8 @@ function IsolatedDraftFields({ schema, form, basePath }) {
|
|
|
47
35
|
});
|
|
48
36
|
}
|
|
49
37
|
function ArrayItemDraftFields({ schema, form, basePath = "draft", as: Component = "div", className, isolated = true }) {
|
|
50
|
-
const { className: itemWrapperClassName,...itemWrapperRestProps } = getXComponentProps(schema);
|
|
51
38
|
return /* @__PURE__ */ jsx(Component, {
|
|
52
|
-
|
|
53
|
-
className: mergeClassName(className, itemWrapperClassName),
|
|
39
|
+
className,
|
|
54
40
|
children: isolated ? /* @__PURE__ */ jsx(IsolatedDraftFields, {
|
|
55
41
|
schema,
|
|
56
42
|
form,
|
|
@@ -6,6 +6,7 @@ require('../array-sortable/index.cjs');
|
|
|
6
6
|
const require_ArrayItemHeaderRow = require('./ArrayItemHeaderRow.cjs');
|
|
7
7
|
const require_get_hidden_item_schema = require('./get-hidden-item-schema.cjs');
|
|
8
8
|
const require_ItemWrapper = require('./ItemWrapper.cjs');
|
|
9
|
+
const require_use_array_item_wrapper_props = require('./use-array-item-wrapper-props.cjs');
|
|
9
10
|
let __formily_react = require("@formily/react");
|
|
10
11
|
__formily_react = require_rolldown_runtime.__toESM(__formily_react);
|
|
11
12
|
let react = require("react");
|
|
@@ -25,7 +26,24 @@ const ListItem = react.default.memo(({ itemKey, index, record, isNew, isAnchor }
|
|
|
25
26
|
const hiddenItemSchema = react.default.useMemo(() => {
|
|
26
27
|
return require_get_hidden_item_schema.getHiddenItemSchema(schema.items);
|
|
27
28
|
}, [schema.items]);
|
|
29
|
+
const { className: itemWrapperClassName,...itemWrapperRest } = require_use_array_item_wrapper_props.useArrayItemWrapperProps();
|
|
28
30
|
const isNewItem = isNew;
|
|
31
|
+
const itemContent = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [hiddenItemSchema ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
32
|
+
style: { display: "none" },
|
|
33
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__formily_react.RecursionField, {
|
|
34
|
+
schema: hiddenItemSchema,
|
|
35
|
+
name: index
|
|
36
|
+
})
|
|
37
|
+
}) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ItemWrapper.ItemWrapper, {
|
|
38
|
+
...itemWrapperRest,
|
|
39
|
+
className: (0, __pixpilot_shadcn.cn)("px-3 pl-4 py-2", itemWrapperClassName, isNewItem && "hidden"),
|
|
40
|
+
index,
|
|
41
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ArrayItemHeaderRow.ArrayItemHeaderRow, {
|
|
42
|
+
schema,
|
|
43
|
+
index,
|
|
44
|
+
slots: { content: { content: "text-foreground font-medium" } }
|
|
45
|
+
})
|
|
46
|
+
})] });
|
|
29
47
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_array_base.ArrayBase.Item, {
|
|
30
48
|
index,
|
|
31
49
|
record,
|
|
@@ -33,36 +51,8 @@ const ListItem = react.default.memo(({ itemKey, index, record, isNew, isAnchor }
|
|
|
33
51
|
id: itemKey,
|
|
34
52
|
children: isAnchor ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.PopoverAnchor, {
|
|
35
53
|
asChild: true,
|
|
36
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.
|
|
37
|
-
|
|
38
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__formily_react.RecursionField, {
|
|
39
|
-
schema: hiddenItemSchema,
|
|
40
|
-
name: index
|
|
41
|
-
})
|
|
42
|
-
}) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ItemWrapper.ItemWrapper, {
|
|
43
|
-
className: (0, __pixpilot_shadcn.cn)("px-3 pl-4 py-2", isNewItem && "hidden"),
|
|
44
|
-
index,
|
|
45
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ArrayItemHeaderRow.ArrayItemHeaderRow, {
|
|
46
|
-
schema,
|
|
47
|
-
index,
|
|
48
|
-
slots: { content: { content: "text-foreground font-medium" } }
|
|
49
|
-
})
|
|
50
|
-
})] })
|
|
51
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [hiddenItemSchema ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
52
|
-
style: { display: "none" },
|
|
53
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__formily_react.RecursionField, {
|
|
54
|
-
schema: hiddenItemSchema,
|
|
55
|
-
name: index
|
|
56
|
-
})
|
|
57
|
-
}) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ItemWrapper.ItemWrapper, {
|
|
58
|
-
className: (0, __pixpilot_shadcn.cn)("px-3 pl-4 py-2", isNewItem && "hidden"),
|
|
59
|
-
index,
|
|
60
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ArrayItemHeaderRow.ArrayItemHeaderRow, {
|
|
61
|
-
schema,
|
|
62
|
-
index,
|
|
63
|
-
slots: { content: { content: "text-foreground font-medium" } }
|
|
64
|
-
})
|
|
65
|
-
})] })
|
|
54
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: itemContent })
|
|
55
|
+
}) : itemContent
|
|
66
56
|
})
|
|
67
57
|
}, itemKey);
|
|
68
58
|
});
|
|
@@ -5,6 +5,7 @@ import "../array-sortable/index.js";
|
|
|
5
5
|
import { ArrayItemHeaderRow } from "./ArrayItemHeaderRow.js";
|
|
6
6
|
import { getHiddenItemSchema } from "./get-hidden-item-schema.js";
|
|
7
7
|
import { ItemWrapper } from "./ItemWrapper.js";
|
|
8
|
+
import { useArrayItemWrapperProps } from "./use-array-item-wrapper-props.js";
|
|
8
9
|
import { RecursionField, useFieldSchema } from "@formily/react";
|
|
9
10
|
import React from "react";
|
|
10
11
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -20,7 +21,24 @@ const ListItem = React.memo(({ itemKey, index, record, isNew, isAnchor }) => {
|
|
|
20
21
|
const hiddenItemSchema = React.useMemo(() => {
|
|
21
22
|
return getHiddenItemSchema(schema.items);
|
|
22
23
|
}, [schema.items]);
|
|
24
|
+
const { className: itemWrapperClassName,...itemWrapperRest } = useArrayItemWrapperProps();
|
|
23
25
|
const isNewItem = isNew;
|
|
26
|
+
const itemContent = /* @__PURE__ */ jsxs(Fragment, { children: [hiddenItemSchema ? /* @__PURE__ */ jsx("div", {
|
|
27
|
+
style: { display: "none" },
|
|
28
|
+
children: /* @__PURE__ */ jsx(RecursionField, {
|
|
29
|
+
schema: hiddenItemSchema,
|
|
30
|
+
name: index
|
|
31
|
+
})
|
|
32
|
+
}) : null, /* @__PURE__ */ jsx(ItemWrapper, {
|
|
33
|
+
...itemWrapperRest,
|
|
34
|
+
className: cn("px-3 pl-4 py-2", itemWrapperClassName, isNewItem && "hidden"),
|
|
35
|
+
index,
|
|
36
|
+
children: /* @__PURE__ */ jsx(ArrayItemHeaderRow, {
|
|
37
|
+
schema,
|
|
38
|
+
index,
|
|
39
|
+
slots: { content: { content: "text-foreground font-medium" } }
|
|
40
|
+
})
|
|
41
|
+
})] });
|
|
24
42
|
return /* @__PURE__ */ jsx(ArrayBase.Item, {
|
|
25
43
|
index,
|
|
26
44
|
record,
|
|
@@ -28,36 +46,8 @@ const ListItem = React.memo(({ itemKey, index, record, isNew, isAnchor }) => {
|
|
|
28
46
|
id: itemKey,
|
|
29
47
|
children: isAnchor ? /* @__PURE__ */ jsx(PopoverAnchor, {
|
|
30
48
|
asChild: true,
|
|
31
|
-
children: /* @__PURE__ */
|
|
32
|
-
|
|
33
|
-
children: /* @__PURE__ */ jsx(RecursionField, {
|
|
34
|
-
schema: hiddenItemSchema,
|
|
35
|
-
name: index
|
|
36
|
-
})
|
|
37
|
-
}) : null, /* @__PURE__ */ jsx(ItemWrapper, {
|
|
38
|
-
className: cn("px-3 pl-4 py-2", isNewItem && "hidden"),
|
|
39
|
-
index,
|
|
40
|
-
children: /* @__PURE__ */ jsx(ArrayItemHeaderRow, {
|
|
41
|
-
schema,
|
|
42
|
-
index,
|
|
43
|
-
slots: { content: { content: "text-foreground font-medium" } }
|
|
44
|
-
})
|
|
45
|
-
})] })
|
|
46
|
-
}) : /* @__PURE__ */ jsxs(Fragment, { children: [hiddenItemSchema ? /* @__PURE__ */ jsx("div", {
|
|
47
|
-
style: { display: "none" },
|
|
48
|
-
children: /* @__PURE__ */ jsx(RecursionField, {
|
|
49
|
-
schema: hiddenItemSchema,
|
|
50
|
-
name: index
|
|
51
|
-
})
|
|
52
|
-
}) : null, /* @__PURE__ */ jsx(ItemWrapper, {
|
|
53
|
-
className: cn("px-3 pl-4 py-2", isNewItem && "hidden"),
|
|
54
|
-
index,
|
|
55
|
-
children: /* @__PURE__ */ jsx(ArrayItemHeaderRow, {
|
|
56
|
-
schema,
|
|
57
|
-
index,
|
|
58
|
-
slots: { content: { content: "text-foreground font-medium" } }
|
|
59
|
-
})
|
|
60
|
-
})] })
|
|
49
|
+
children: /* @__PURE__ */ jsx("div", { children: itemContent })
|
|
50
|
+
}) : itemContent
|
|
61
51
|
})
|
|
62
52
|
}, itemKey);
|
|
63
53
|
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region src/components/array-common/array-mcp-props.ts
|
|
2
|
+
/** Shared documentation for the common array-field props. */
|
|
3
|
+
const commonArrayPropDocs = {
|
|
4
|
+
sortable: "Enables drag-and-drop reordering of items via a drag handle.",
|
|
5
|
+
disabled: "Disables the array field and all of its item operations.",
|
|
6
|
+
actions: {
|
|
7
|
+
description: "Item action buttons. Accepts built-in operation strings and/or custom/toggle action objects. Set to false to disable all actions, including global defaults.",
|
|
8
|
+
type: `('up' | 'down' | 'copy' | 'edit' | 'remove' | CustomAction | ToggleAction | OperationOverride)[] | false`
|
|
9
|
+
},
|
|
10
|
+
transformActions: "Callback to transform the merged (global + local) action list per item render; receives the current actions and item context (index, record, array).",
|
|
11
|
+
description: "Description content rendered for the array field.",
|
|
12
|
+
onAdd: "Called with the new item index when an item is added.",
|
|
13
|
+
onRemove: "Called with the item index when an item is removed.",
|
|
14
|
+
onMoveUp: "Called with the item index when an item is moved up.",
|
|
15
|
+
onMoveDown: "Called with the item index when an item is moved down.",
|
|
16
|
+
onEdit: "Called with the item index when an item edit is triggered.",
|
|
17
|
+
onCopy: "Called with the item index when an item is copied."
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Shared note describing per-item styling. Every object-array component renders one
|
|
21
|
+
* wrapper element per item and forwards that item's `x-component-props` onto it.
|
|
22
|
+
*/
|
|
23
|
+
const perItemStylingNote = "Per-item styling: set `items['x-component-props']` (e.g. `className`) to style/attribute each rendered item. The array node's own `x-component-props` targets the array component itself (list container / dialog / popover), not the individual items.";
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { commonArrayPropDocs, perItemStylingNote };
|
|
@@ -5,6 +5,7 @@ const require_use_array_item_actions = require('./use-array-item-actions.cjs');
|
|
|
5
5
|
const require_ArrayItemHeaderRow = require('./ArrayItemHeaderRow.cjs');
|
|
6
6
|
const require_get_hidden_item_schema = require('./get-hidden-item-schema.cjs');
|
|
7
7
|
const require_ItemWrapper = require('./ItemWrapper.cjs');
|
|
8
|
+
const require_use_array_item_wrapper_props = require('./use-array-item-wrapper-props.cjs');
|
|
8
9
|
const require_ListItem = require('./ListItem.cjs');
|
|
9
10
|
const require_use_array_data_source = require('./use-array-data-source.cjs');
|
|
10
11
|
const require_ArrayItemsList = require('./ArrayItemsList.cjs');
|
|
@@ -5,6 +5,7 @@ import { useArrayItemActions } from "./use-array-item-actions.js";
|
|
|
5
5
|
import { ArrayItemHeaderRow } from "./ArrayItemHeaderRow.js";
|
|
6
6
|
import { getHiddenItemSchema } from "./get-hidden-item-schema.js";
|
|
7
7
|
import { ItemWrapper } from "./ItemWrapper.js";
|
|
8
|
+
import { useArrayItemWrapperProps } from "./use-array-item-wrapper-props.js";
|
|
8
9
|
import { ListItem } from "./ListItem.js";
|
|
9
10
|
import { useArrayDataSource } from "./use-array-data-source.js";
|
|
10
11
|
import { ArrayItemsList } from "./ArrayItemsList.js";
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_get_x_component_props = require('../../utils/get-x-component-props.cjs');
|
|
3
|
+
require('../../utils/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
|
+
|
|
9
|
+
//#region src/components/array-common/use-array-item-wrapper-props.ts
|
|
10
|
+
/**
|
|
11
|
+
* Reads the array field's `items['x-component-props']` and returns them as HTML
|
|
12
|
+
* attributes to spread onto every rendered item's wrapper element.
|
|
13
|
+
*
|
|
14
|
+
* This is the single source of truth for per-item styling/attributes across all
|
|
15
|
+
* array components. It lets consumers style each array item from the item schema:
|
|
16
|
+
*
|
|
17
|
+
* ```ts
|
|
18
|
+
* items: {
|
|
19
|
+
* type: 'object',
|
|
20
|
+
* 'x-component-props': { className: 'border-primary' },
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* Note: the array node's own `x-component-props` still targets the array component
|
|
25
|
+
* itself (list container / dialog / popover). Per-item props live on `items`.
|
|
26
|
+
*/
|
|
27
|
+
function useArrayItemWrapperProps() {
|
|
28
|
+
const schema = (0, __formily_react.useFieldSchema)();
|
|
29
|
+
return (0, react.useMemo)(() => {
|
|
30
|
+
return require_get_x_component_props.getXComponentProps(Array.isArray(schema?.items) ? schema?.items[0] ?? schema?.items : schema?.items);
|
|
31
|
+
}, [schema]);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
exports.useArrayItemWrapperProps = useArrayItemWrapperProps;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { getXComponentProps } from "../../utils/get-x-component-props.js";
|
|
2
|
+
import "../../utils/index.js";
|
|
3
|
+
import { useFieldSchema } from "@formily/react";
|
|
4
|
+
import { useMemo } from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/array-common/use-array-item-wrapper-props.ts
|
|
7
|
+
/**
|
|
8
|
+
* Reads the array field's `items['x-component-props']` and returns them as HTML
|
|
9
|
+
* attributes to spread onto every rendered item's wrapper element.
|
|
10
|
+
*
|
|
11
|
+
* This is the single source of truth for per-item styling/attributes across all
|
|
12
|
+
* array components. It lets consumers style each array item from the item schema:
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* items: {
|
|
16
|
+
* type: 'object',
|
|
17
|
+
* 'x-component-props': { className: 'border-primary' },
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* Note: the array node's own `x-component-props` still targets the array component
|
|
22
|
+
* itself (list container / dialog / popover). Per-item props live on `items`.
|
|
23
|
+
*/
|
|
24
|
+
function useArrayItemWrapperProps() {
|
|
25
|
+
const schema = useFieldSchema();
|
|
26
|
+
return useMemo(() => {
|
|
27
|
+
return getXComponentProps(Array.isArray(schema?.items) ? schema?.items[0] ?? schema?.items : schema?.items);
|
|
28
|
+
}, [schema]);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
export { useArrayItemWrapperProps };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { defineProps } from "../../mcp/src/utils.js";
|
|
2
|
+
import { commonArrayPropDocs, perItemStylingNote } from "../array-common/array-mcp-props.js";
|
|
3
|
+
|
|
4
|
+
//#region src/components/array-dialog/mcp.ts
|
|
5
|
+
const meta = {
|
|
6
|
+
name: "ArrayDialog",
|
|
7
|
+
category: "Formily Arrays",
|
|
8
|
+
description: "A Formily array field that renders items as a compact list; each item is edited inside a modal dialog opened from its row.",
|
|
9
|
+
htmlElement: "div",
|
|
10
|
+
props: defineProps({
|
|
11
|
+
...commonArrayPropDocs,
|
|
12
|
+
autoSave: {
|
|
13
|
+
description: "When true, edits commit to the array live and the Save/Cancel buttons are hidden. When false (default), edits only commit on Save. Falls back to the form-level `settings.dialog.autoSave`.",
|
|
14
|
+
type: "boolean",
|
|
15
|
+
defaultValue: "false"
|
|
16
|
+
},
|
|
17
|
+
dialogProps: "HTML attributes forwarded to the edit dialog content (Radix DialogContent) — e.g. `className` to size/scroll the dialog, `onInteractOutside`, `onEscapeKeyDown`."
|
|
18
|
+
}),
|
|
19
|
+
examples: [{
|
|
20
|
+
title: "Edit items in a dialog",
|
|
21
|
+
code: `{
|
|
22
|
+
type: 'array',
|
|
23
|
+
'x-component': 'ArrayDialog',
|
|
24
|
+
items: {
|
|
25
|
+
type: 'object',
|
|
26
|
+
properties: {
|
|
27
|
+
name: { type: 'string', 'x-decorator': 'FormItem', 'x-component': 'Input' },
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
properties: {
|
|
31
|
+
addition: { type: 'void', title: 'Add', 'x-component': 'ArrayDialog.Addition' },
|
|
32
|
+
},
|
|
33
|
+
}`
|
|
34
|
+
}, {
|
|
35
|
+
title: "Scrollable dialog",
|
|
36
|
+
code: `'x-component-props': {
|
|
37
|
+
dialogProps: { className: 'max-h-[80vh] overflow-y-auto' },
|
|
38
|
+
}`
|
|
39
|
+
}],
|
|
40
|
+
notes: [perItemStylingNote, "The list container is styled via the array node `x-component-props.className`; the dialog is styled via `x-component-props.dialogProps.className`."],
|
|
41
|
+
keywords: [
|
|
42
|
+
"formily",
|
|
43
|
+
"array",
|
|
44
|
+
"dialog",
|
|
45
|
+
"modal",
|
|
46
|
+
"list",
|
|
47
|
+
"repeater"
|
|
48
|
+
],
|
|
49
|
+
related: [
|
|
50
|
+
"ArrayPopover",
|
|
51
|
+
"ArrayCards",
|
|
52
|
+
"ArrayCollapse",
|
|
53
|
+
"ArrayInline"
|
|
54
|
+
]
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
//#endregion
|
|
58
|
+
export { meta };
|