@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.
Files changed (310) hide show
  1. package/dist/components/array-base/mcp.js +53 -0
  2. package/dist/components/array-cards/Item.cjs +2 -3
  3. package/dist/components/array-cards/Item.js +2 -3
  4. package/dist/components/array-cards/mcp.js +54 -0
  5. package/dist/components/array-collapse/Item.cjs +2 -3
  6. package/dist/components/array-collapse/Item.js +2 -3
  7. package/dist/components/array-collapse/mcp.js +55 -0
  8. package/dist/components/array-common/ArrayItemDraftFields.cjs +1 -15
  9. package/dist/components/array-common/ArrayItemDraftFields.js +1 -15
  10. package/dist/components/array-common/ListItem.cjs +20 -30
  11. package/dist/components/array-common/ListItem.js +20 -30
  12. package/dist/components/array-common/array-mcp-props.js +26 -0
  13. package/dist/components/array-common/index.cjs +1 -0
  14. package/dist/components/array-common/index.js +1 -0
  15. package/dist/components/array-common/use-array-item-wrapper-props.cjs +35 -0
  16. package/dist/components/array-common/use-array-item-wrapper-props.js +32 -0
  17. package/dist/components/array-dialog/mcp.js +58 -0
  18. package/dist/components/array-inline/Item.cjs +2 -3
  19. package/dist/components/array-inline/Item.js +2 -3
  20. package/dist/components/array-inline/mcp.js +46 -0
  21. package/dist/components/array-popover/mcp.js +52 -0
  22. package/dist/components/array-sortable/mcp.js +44 -0
  23. package/dist/components/array-tags/mcp.js +70 -0
  24. package/dist/components/array-toggle-group/mcp.js +53 -0
  25. package/dist/components/{Checkbox.cjs → checkbox/Checkbox.cjs} +3 -3
  26. package/dist/components/checkbox/Checkbox.d.cts +12 -0
  27. package/dist/components/checkbox/Checkbox.d.ts +12 -0
  28. package/dist/components/{Checkbox.js → checkbox/Checkbox.js} +2 -2
  29. package/dist/components/checkbox/index.cjs +1 -0
  30. package/dist/components/checkbox/index.d.cts +1 -0
  31. package/dist/components/checkbox/index.d.ts +1 -0
  32. package/dist/components/checkbox/index.js +1 -0
  33. package/dist/components/checkbox/mcp.js +41 -0
  34. package/dist/components/color-picker/mcp.js +59 -0
  35. package/dist/components/{ColorSelect.cjs → color-select/ColorSelect.cjs} +2 -2
  36. package/dist/components/color-select/ColorSelect.d.cts +7 -0
  37. package/dist/components/color-select/ColorSelect.d.ts +7 -0
  38. package/dist/components/{ColorSelect.js → color-select/ColorSelect.js} +1 -1
  39. package/dist/components/color-select/index.cjs +1 -0
  40. package/dist/components/color-select/index.d.cts +1 -0
  41. package/dist/components/color-select/index.d.ts +1 -0
  42. package/dist/components/color-select/index.js +1 -0
  43. package/dist/components/color-select/mcp.js +46 -0
  44. package/dist/components/{Column.cjs → column/Column.cjs} +2 -2
  45. package/dist/components/{Column.d.cts → column/Column.d.cts} +2 -2
  46. package/dist/components/{Column.d.ts → column/Column.d.ts} +2 -2
  47. package/dist/components/{Column.js → column/Column.js} +1 -1
  48. package/dist/components/column/index.cjs +1 -0
  49. package/dist/components/column/index.d.cts +1 -0
  50. package/dist/components/column/index.d.ts +1 -0
  51. package/dist/components/column/index.js +1 -0
  52. package/dist/components/column/mcp.js +36 -0
  53. package/dist/components/{Combobox.cjs → combobox/Combobox.cjs} +2 -2
  54. package/dist/components/combobox/Combobox.d.cts +7 -0
  55. package/dist/components/combobox/Combobox.d.ts +7 -0
  56. package/dist/components/{Combobox.js → combobox/Combobox.js} +1 -1
  57. package/dist/components/combobox/index.cjs +1 -0
  58. package/dist/components/combobox/index.d.cts +1 -0
  59. package/dist/components/combobox/index.d.ts +1 -0
  60. package/dist/components/combobox/index.js +1 -0
  61. package/dist/components/combobox/mcp.js +48 -0
  62. package/dist/components/{DatePicker.cjs → date-picker/DatePicker.cjs} +2 -2
  63. package/dist/components/{DatePicker.d.cts → date-picker/DatePicker.d.cts} +5 -4
  64. package/dist/components/{DatePicker.d.ts → date-picker/DatePicker.d.ts} +5 -4
  65. package/dist/components/{DatePicker.js → date-picker/DatePicker.js} +1 -1
  66. package/dist/components/date-picker/index.cjs +1 -0
  67. package/dist/components/date-picker/index.d.cts +1 -0
  68. package/dist/components/date-picker/index.d.ts +1 -0
  69. package/dist/components/date-picker/index.js +1 -0
  70. package/dist/components/date-picker/mcp.js +104 -0
  71. package/dist/components/file-upload/mcp.js +62 -0
  72. package/dist/components/{Form.cjs → form/Form.cjs} +6 -5
  73. package/dist/components/{Form.d.cts → form/Form.d.cts} +4 -4
  74. package/dist/components/{Form.d.ts → form/Form.d.ts} +4 -4
  75. package/dist/components/{Form.js → form/Form.js} +5 -4
  76. package/dist/components/form/index.cjs +1 -0
  77. package/dist/components/form/index.d.cts +1 -0
  78. package/dist/components/form/index.d.ts +1 -0
  79. package/dist/components/form/index.js +1 -0
  80. package/dist/components/form/mcp.js +31 -0
  81. package/dist/components/{FormGrid.cjs → form-grid/FormGrid.cjs} +2 -2
  82. package/dist/components/{FormGrid.d.cts → form-grid/FormGrid.d.cts} +2 -2
  83. package/dist/components/{FormGrid.d.ts → form-grid/FormGrid.d.ts} +2 -2
  84. package/dist/components/{FormGrid.js → form-grid/FormGrid.js} +1 -1
  85. package/dist/components/form-grid/index.cjs +1 -0
  86. package/dist/components/form-grid/index.d.cts +1 -0
  87. package/dist/components/form-grid/index.d.ts +1 -0
  88. package/dist/components/form-grid/index.js +1 -0
  89. package/dist/components/form-grid/mcp.js +35 -0
  90. package/dist/components/form-item/ConnectedFormItem.d.cts +4 -4
  91. package/dist/components/form-item/ConnectedFormItem.d.ts +4 -4
  92. package/dist/components/form-item/mcp.js +46 -0
  93. package/dist/components/{FormItemContainer.cjs → form-item-container/FormItemContainer.cjs} +5 -5
  94. package/dist/components/{FormItemContainer.js → form-item-container/FormItemContainer.js} +4 -4
  95. package/dist/components/form-item-container/index.cjs +1 -0
  96. package/dist/components/form-item-container/index.js +1 -0
  97. package/dist/components/form-item-container/mcp.js +36 -0
  98. package/dist/components/{Hidden.cjs → hidden/Hidden.cjs} +2 -2
  99. package/dist/components/hidden/Hidden.d.cts +9 -0
  100. package/dist/components/hidden/Hidden.d.ts +9 -0
  101. package/dist/components/{Hidden.js → hidden/Hidden.js} +1 -1
  102. package/dist/components/hidden/index.cjs +1 -0
  103. package/dist/components/hidden/index.d.cts +1 -0
  104. package/dist/components/hidden/index.d.ts +1 -0
  105. package/dist/components/hidden/index.js +1 -0
  106. package/dist/components/hidden/mcp.js +36 -0
  107. package/dist/components/{IconPicker.cjs → icon-picker/IconPicker.cjs} +4 -4
  108. package/dist/components/{IconPicker.d.cts → icon-picker/IconPicker.d.cts} +7 -7
  109. package/dist/components/icon-picker/IconPicker.d.ts +15 -0
  110. package/dist/components/{IconPicker.js → icon-picker/IconPicker.js} +3 -3
  111. package/dist/components/icon-picker/index.cjs +1 -0
  112. package/dist/components/icon-picker/index.d.cts +1 -0
  113. package/dist/components/icon-picker/index.d.ts +1 -0
  114. package/dist/components/icon-picker/index.js +1 -0
  115. package/dist/components/icon-picker/mcp.js +48 -0
  116. package/dist/components/{IconToggle.cjs → icon-toggle/IconToggle.cjs} +3 -3
  117. package/dist/components/icon-toggle/IconToggle.d.cts +12 -0
  118. package/dist/components/icon-toggle/IconToggle.d.ts +12 -0
  119. package/dist/components/{IconToggle.js → icon-toggle/IconToggle.js} +2 -2
  120. package/dist/components/icon-toggle/index.cjs +1 -0
  121. package/dist/components/icon-toggle/index.d.cts +1 -0
  122. package/dist/components/icon-toggle/index.d.ts +1 -0
  123. package/dist/components/icon-toggle/index.js +1 -0
  124. package/dist/components/icon-toggle/mcp.js +45 -0
  125. package/dist/components/{Input.cjs → input/Input.cjs} +2 -2
  126. package/dist/components/input/Input.d.cts +12 -0
  127. package/dist/components/input/Input.d.ts +12 -0
  128. package/dist/components/{Input.js → input/Input.js} +1 -1
  129. package/dist/components/input/index.cjs +1 -0
  130. package/dist/components/input/index.d.cts +1 -0
  131. package/dist/components/input/index.d.ts +1 -0
  132. package/dist/components/input/index.js +1 -0
  133. package/dist/components/input/mcp.js +41 -0
  134. package/dist/components/json-schema-form-renderer/JsonSchemaFormRenderer.cjs +2 -1
  135. package/dist/components/json-schema-form-renderer/JsonSchemaFormRenderer.js +2 -1
  136. package/dist/components/json-schema-form-renderer/mcp.js +43 -0
  137. package/dist/components/json-schema-form-renderer/types.d.cts +2 -1
  138. package/dist/components/json-schema-form-renderer/types.d.ts +2 -1
  139. package/dist/components/number/NumberInput.d.cts +5 -9
  140. package/dist/components/number/NumberInput.d.ts +5 -9
  141. package/dist/components/number/index.d.cts +1 -1
  142. package/dist/components/number/index.d.ts +1 -1
  143. package/dist/components/number/mcp.js +40 -0
  144. package/dist/components/{ObjectContainer.cjs → object-container/ObjectContainer.cjs} +9 -8
  145. package/dist/components/{ObjectContainer.d.cts → object-container/ObjectContainer.d.cts} +2 -2
  146. package/dist/components/{ObjectContainer.d.ts → object-container/ObjectContainer.d.ts} +2 -2
  147. package/dist/components/{ObjectContainer.js → object-container/ObjectContainer.js} +8 -7
  148. package/dist/components/object-container/index.cjs +1 -0
  149. package/dist/components/object-container/index.js +1 -0
  150. package/dist/components/object-container/mcp.js +41 -0
  151. package/dist/components/{Radio.cjs → radio/Radio.cjs} +2 -2
  152. package/dist/components/{Radio.d.cts → radio/Radio.d.cts} +5 -5
  153. package/dist/components/{Radio.d.ts → radio/Radio.d.ts} +5 -5
  154. package/dist/components/{Radio.js → radio/Radio.js} +1 -1
  155. package/dist/components/radio/index.cjs +1 -0
  156. package/dist/components/radio/index.d.cts +1 -0
  157. package/dist/components/radio/index.d.ts +1 -0
  158. package/dist/components/radio/index.js +1 -0
  159. package/dist/components/radio/mcp.js +45 -0
  160. package/dist/components/{Rating.cjs → rating/Rating.cjs} +2 -2
  161. package/dist/components/rating/Rating.d.cts +12 -0
  162. package/dist/components/rating/Rating.d.ts +12 -0
  163. package/dist/components/{Rating.js → rating/Rating.js} +1 -1
  164. package/dist/components/rating/index.cjs +1 -0
  165. package/dist/components/rating/index.d.cts +1 -0
  166. package/dist/components/rating/index.d.ts +1 -0
  167. package/dist/components/rating/index.js +1 -0
  168. package/dist/components/rating/mcp.js +47 -0
  169. package/dist/components/{RichTextEditor.cjs → rich-text-editor/RichTextEditor.cjs} +4 -4
  170. package/dist/components/rich-text-editor/RichTextEditor.d.cts +7 -0
  171. package/dist/components/rich-text-editor/RichTextEditor.d.ts +7 -0
  172. package/dist/components/{RichTextEditor.js → rich-text-editor/RichTextEditor.js} +3 -3
  173. package/dist/components/rich-text-editor/index.cjs +1 -0
  174. package/dist/components/rich-text-editor/index.d.cts +1 -0
  175. package/dist/components/rich-text-editor/index.d.ts +1 -0
  176. package/dist/components/rich-text-editor/index.js +1 -0
  177. package/dist/components/rich-text-editor/mcp.js +49 -0
  178. package/dist/components/{Row.cjs → row/Row.cjs} +2 -2
  179. package/dist/components/{Row.d.cts → row/Row.d.cts} +2 -2
  180. package/dist/components/{Row.d.ts → row/Row.d.ts} +2 -2
  181. package/dist/components/{Row.js → row/Row.js} +1 -1
  182. package/dist/components/row/index.cjs +1 -0
  183. package/dist/components/row/index.d.cts +1 -0
  184. package/dist/components/row/index.d.ts +1 -0
  185. package/dist/components/row/index.js +1 -0
  186. package/dist/components/row/mcp.js +36 -0
  187. package/dist/components/schema-field/index.d.cts +1 -1
  188. package/dist/components/schema-field/index.d.ts +1 -1
  189. package/dist/components/schema-field/mcp.js +61 -0
  190. package/dist/components/schema-field/schema-field-basics.cjs +32 -16
  191. package/dist/components/schema-field/schema-field-basics.d.cts +282 -437
  192. package/dist/components/schema-field/schema-field-basics.d.ts +285 -440
  193. package/dist/components/schema-field/schema-field-basics.js +32 -16
  194. package/dist/components/schema-field/schema-field-extended.cjs +4 -2
  195. package/dist/components/schema-field/schema-field-extended.d.cts +435 -632
  196. package/dist/components/schema-field/schema-field-extended.d.ts +435 -632
  197. package/dist/components/schema-field/schema-field-extended.js +4 -2
  198. package/dist/components/schema-field/schema-field.cjs +8 -4
  199. package/dist/components/schema-field/schema-field.d.cts +371 -548
  200. package/dist/components/schema-field/schema-field.d.ts +374 -551
  201. package/dist/components/schema-field/schema-field.js +8 -4
  202. package/dist/components/{Select.cjs → select/Select.cjs} +3 -3
  203. package/dist/components/select/Select.d.cts +20 -0
  204. package/dist/components/select/Select.d.ts +20 -0
  205. package/dist/components/{Select.js → select/Select.js} +2 -2
  206. package/dist/components/select/index.cjs +1 -0
  207. package/dist/components/select/index.d.cts +1 -0
  208. package/dist/components/select/index.d.ts +1 -0
  209. package/dist/components/select/index.js +1 -0
  210. package/dist/components/select/mcp.js +49 -0
  211. package/dist/components/{Separator.cjs → separator/Separator.cjs} +2 -2
  212. package/dist/components/separator/Separator.d.cts +12 -0
  213. package/dist/components/separator/Separator.d.ts +12 -0
  214. package/dist/components/{Separator.js → separator/Separator.js} +1 -1
  215. package/dist/components/separator/index.cjs +1 -0
  216. package/dist/components/separator/index.d.cts +1 -0
  217. package/dist/components/separator/index.d.ts +1 -0
  218. package/dist/components/separator/index.js +1 -0
  219. package/dist/components/separator/mcp.js +40 -0
  220. package/dist/components/slider/Slider.d.cts +5 -4
  221. package/dist/components/slider/Slider.d.ts +5 -4
  222. package/dist/components/slider/SliderInput.d.cts +3 -3
  223. package/dist/components/slider/SliderInput.d.ts +3 -3
  224. package/dist/components/slider/SliderSelect.d.cts +4 -3
  225. package/dist/components/slider/SliderSelect.d.ts +4 -3
  226. package/dist/components/slider/index.d.cts +1 -1
  227. package/dist/components/slider/index.d.ts +1 -1
  228. package/dist/components/slider/mcp.js +50 -0
  229. package/dist/components/{Switch.cjs → switch/Switch.cjs} +3 -3
  230. package/dist/components/switch/Switch.d.cts +12 -0
  231. package/dist/components/switch/Switch.d.ts +12 -0
  232. package/dist/components/{Switch.js → switch/Switch.js} +2 -2
  233. package/dist/components/switch/index.cjs +1 -0
  234. package/dist/components/switch/index.d.cts +1 -0
  235. package/dist/components/switch/index.d.ts +1 -0
  236. package/dist/components/switch/index.js +1 -0
  237. package/dist/components/switch/mcp.js +41 -0
  238. package/dist/components/{TagsInputInline.cjs → tags-input-inline/TagsInputInline.cjs} +2 -2
  239. package/dist/components/tags-input-inline/TagsInputInline.d.cts +15 -0
  240. package/dist/components/tags-input-inline/TagsInputInline.d.ts +15 -0
  241. package/dist/components/{TagsInputInline.js → tags-input-inline/TagsInputInline.js} +1 -1
  242. package/dist/components/tags-input-inline/index.cjs +1 -0
  243. package/dist/components/tags-input-inline/index.d.cts +1 -0
  244. package/dist/components/tags-input-inline/index.d.ts +1 -0
  245. package/dist/components/tags-input-inline/index.js +1 -0
  246. package/dist/components/tags-input-inline/mcp.js +54 -0
  247. package/dist/components/{Textarea.cjs → textarea/Textarea.cjs} +2 -2
  248. package/dist/components/textarea/Textarea.d.cts +11 -0
  249. package/dist/components/textarea/Textarea.d.ts +11 -0
  250. package/dist/components/{Textarea.js → textarea/Textarea.js} +1 -1
  251. package/dist/components/textarea/index.cjs +1 -0
  252. package/dist/components/textarea/index.d.cts +1 -0
  253. package/dist/components/textarea/index.d.ts +1 -0
  254. package/dist/components/textarea/index.js +1 -0
  255. package/dist/components/textarea/mcp.js +36 -0
  256. package/dist/components/{ToggleButton.cjs → toggle-button/ToggleButton.cjs} +3 -3
  257. package/dist/components/toggle-button/ToggleButton.d.cts +12 -0
  258. package/dist/components/toggle-button/ToggleButton.d.ts +12 -0
  259. package/dist/components/{ToggleButton.js → toggle-button/ToggleButton.js} +2 -2
  260. package/dist/components/toggle-button/index.cjs +1 -0
  261. package/dist/components/toggle-button/index.d.cts +1 -0
  262. package/dist/components/toggle-button/index.d.ts +1 -0
  263. package/dist/components/toggle-button/index.js +1 -0
  264. package/dist/components/toggle-button/mcp.js +45 -0
  265. package/dist/components/{ToggleGroup.cjs → toggle-group/ToggleGroup.cjs} +5 -4
  266. package/dist/components/{ToggleGroup.d.cts → toggle-group/ToggleGroup.d.cts} +2 -2
  267. package/dist/components/{ToggleGroup.d.ts → toggle-group/ToggleGroup.d.ts} +2 -2
  268. package/dist/components/{ToggleGroup.js → toggle-group/ToggleGroup.js} +3 -3
  269. package/dist/components/toggle-group/index.cjs +1 -0
  270. package/dist/components/toggle-group/index.d.cts +1 -0
  271. package/dist/components/toggle-group/index.d.ts +1 -0
  272. package/dist/components/toggle-group/index.js +1 -0
  273. package/dist/components/toggle-group/mcp.js +52 -0
  274. package/dist/generated/mcp-registry.js +95 -0
  275. package/dist/index.cjs +44 -22
  276. package/dist/index.d.cts +46 -25
  277. package/dist/index.d.ts +46 -25
  278. package/dist/index.js +44 -22
  279. package/dist/mcp/src/search.js +81 -0
  280. package/dist/mcp/src/server.js +72 -0
  281. package/dist/mcp/src/utils.js +8 -0
  282. package/dist/mcp-server.js +18 -0
  283. package/package.json +11 -3
  284. package/dist/components/Checkbox.d.cts +0 -11
  285. package/dist/components/Checkbox.d.ts +0 -11
  286. package/dist/components/ColorSelect.d.cts +0 -6
  287. package/dist/components/ColorSelect.d.ts +0 -6
  288. package/dist/components/Combobox.d.cts +0 -6
  289. package/dist/components/Combobox.d.ts +0 -6
  290. package/dist/components/IconPicker.d.ts +0 -15
  291. package/dist/components/IconToggle.d.cts +0 -11
  292. package/dist/components/IconToggle.d.ts +0 -11
  293. package/dist/components/Input.d.cts +0 -17
  294. package/dist/components/Input.d.ts +0 -17
  295. package/dist/components/Rating.d.cts +0 -13
  296. package/dist/components/Rating.d.ts +0 -13
  297. package/dist/components/RichTextEditor.d.cts +0 -6
  298. package/dist/components/RichTextEditor.d.ts +0 -6
  299. package/dist/components/Select.d.cts +0 -6
  300. package/dist/components/Select.d.ts +0 -6
  301. package/dist/components/Separator.d.cts +0 -11
  302. package/dist/components/Separator.d.ts +0 -11
  303. package/dist/components/Switch.d.cts +0 -11
  304. package/dist/components/Switch.d.ts +0 -11
  305. package/dist/components/TagsInputInline.d.cts +0 -15
  306. package/dist/components/TagsInputInline.d.ts +0 -15
  307. package/dist/components/Textarea.d.cts +0 -9
  308. package/dist/components/Textarea.d.ts +0 -9
  309. package/dist/components/ToggleButton.d.cts +0 -11
  310. 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 } = require_get_x_component_props.getXComponentProps(items);
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 } = getXComponentProps(items);
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 = require_get_x_component_props.getXComponentProps(items);
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 = getXComponentProps(items);
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
- ...itemWrapperRestProps,
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
- ...itemWrapperRestProps,
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.jsxs)("div", { children: [hiddenItemSchema ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
37
- style: { display: "none" },
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__ */ jsxs("div", { children: [hiddenItemSchema ? /* @__PURE__ */ jsx("div", {
32
- style: { display: "none" },
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 };