@vef-framework-react/components 2.1.5 → 2.1.7

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 (359) hide show
  1. package/dist/cjs/charts/helpers/group.cjs +1 -1
  2. package/dist/cjs/charts/hooks/use-chart.cjs +1 -1
  3. package/dist/cjs/config-provider/global-style.cjs +1 -1
  4. package/dist/cjs/config-provider/index.cjs +1 -1
  5. package/dist/cjs/crud/components/main.cjs +1 -1
  6. package/dist/cjs/crud/components/mutation-holder.cjs +1 -1
  7. package/dist/cjs/crud/components/scene-form.cjs +1 -1
  8. package/dist/cjs/crud/components/selection-indicator.cjs +1 -1
  9. package/dist/cjs/crud/index.cjs +1 -1
  10. package/dist/cjs/crud/store.cjs +1 -1
  11. package/dist/cjs/crud/styles.cjs +1 -1
  12. package/dist/cjs/flex-card/styles.cjs +1 -1
  13. package/dist/cjs/form/components/form.cjs +1 -1
  14. package/dist/cjs/form/fields/date-picker/index.cjs +1 -1
  15. package/dist/cjs/form/fields/date-range-picker/index.cjs +1 -1
  16. package/dist/cjs/form/fields/time-picker/index.cjs +1 -1
  17. package/dist/cjs/form/fields/time-range-picker/index.cjs +1 -1
  18. package/dist/cjs/form/form-actions.cjs +1 -0
  19. package/dist/cjs/form/form.cjs +1 -1
  20. package/dist/cjs/form/helpers/create-field.cjs +1 -0
  21. package/dist/cjs/form/helpers/index.cjs +1 -1
  22. package/dist/cjs/form/index.cjs +1 -1
  23. package/dist/cjs/form/use-form.cjs +1 -1
  24. package/dist/cjs/form-drawer/index.cjs +1 -1
  25. package/dist/cjs/form-modal/index.cjs +1 -1
  26. package/dist/cjs/index.cjs +1 -1
  27. package/dist/cjs/modal/index.cjs +1 -1
  28. package/dist/cjs/modal/modal.cjs +1 -0
  29. package/dist/cjs/page/components/resize-handle.cjs +1 -1
  30. package/dist/cjs/page/components/scroll-content.cjs +1 -1
  31. package/dist/cjs/page/styles.cjs +1 -1
  32. package/dist/cjs/pro-search/components/search-actions.cjs +1 -1
  33. package/dist/cjs/pro-search/index.cjs +1 -1
  34. package/dist/cjs/pro-search/styles.cjs +1 -1
  35. package/dist/cjs/pro-table/components/column-setting-item.cjs +1 -1
  36. package/dist/cjs/pro-table/components/column-settings-panel.cjs +1 -1
  37. package/dist/cjs/pro-table/components/table.cjs +1 -1
  38. package/dist/cjs/pro-table/components/width-popover.cjs +1 -1
  39. package/dist/cjs/pro-table/hooks/use-table-columns.cjs +1 -1
  40. package/dist/cjs/pro-table/index.cjs +1 -1
  41. package/dist/cjs/select/hooks/index.cjs +1 -1
  42. package/dist/cjs/select/hooks/use-dictionary-options-select.cjs +1 -0
  43. package/dist/cjs/select/index.cjs +1 -1
  44. package/dist/cjs/upload/index.cjs +1 -1
  45. package/dist/es/_base/constants/breakpoints.js +1 -1
  46. package/dist/es/_base/constants/common.js +1 -1
  47. package/dist/es/_base/constants/css-vars.js +1 -1
  48. package/dist/es/_base/constants/event.js +1 -1
  49. package/dist/es/_base/constants/index.js +1 -1
  50. package/dist/es/_base/constants/symbols.js +1 -1
  51. package/dist/es/_base/helpers/breakpoints.js +1 -1
  52. package/dist/es/_base/helpers/color.js +1 -1
  53. package/dist/es/_base/helpers/common.js +1 -1
  54. package/dist/es/_base/helpers/event.js +1 -1
  55. package/dist/es/_base/helpers/index.js +1 -1
  56. package/dist/es/_base/helpers/message.js +1 -1
  57. package/dist/es/_base/helpers/modal.js +1 -1
  58. package/dist/es/_base/helpers/notification.js +1 -1
  59. package/dist/es/_base/helpers/props.js +1 -1
  60. package/dist/es/_base/helpers/react.js +1 -1
  61. package/dist/es/_base/hooks/index.js +1 -1
  62. package/dist/es/_base/hooks/use-theme-tokens.js +1 -1
  63. package/dist/es/_base/index.js +1 -1
  64. package/dist/es/_base/styles/common.js +1 -1
  65. package/dist/es/_base/styles/index.js +1 -1
  66. package/dist/es/_base/types/breakpoints.js +1 -1
  67. package/dist/es/_base/types/common.js +1 -1
  68. package/dist/es/_base/types/index.js +1 -1
  69. package/dist/es/action-button/index.js +1 -1
  70. package/dist/es/action-button/use-action-button.js +1 -1
  71. package/dist/es/action-group/index.js +1 -1
  72. package/dist/es/action-group/use-action-group.js +1 -1
  73. package/dist/es/action-group/use-computed-action-buttons.js +1 -1
  74. package/dist/es/affix/index.js +1 -1
  75. package/dist/es/alert/index.js +1 -1
  76. package/dist/es/anchor/index.js +1 -1
  77. package/dist/es/auto-complete/index.js +1 -1
  78. package/dist/es/avatar/index.js +1 -1
  79. package/dist/es/badge/index.js +1 -1
  80. package/dist/es/bool/index.js +1 -1
  81. package/dist/es/breadcrumb/index.js +1 -1
  82. package/dist/es/button/index.js +1 -1
  83. package/dist/es/calendar/index.js +1 -1
  84. package/dist/es/card/index.js +1 -1
  85. package/dist/es/carousel/index.js +1 -1
  86. package/dist/es/cascader/index.js +1 -1
  87. package/dist/es/center/index.js +1 -1
  88. package/dist/es/charts/chart.js +1 -1
  89. package/dist/es/charts/helpers/group.js +1 -1
  90. package/dist/es/charts/helpers/index.js +1 -1
  91. package/dist/es/charts/hooks/index.js +1 -1
  92. package/dist/es/charts/hooks/use-chart.js +1 -1
  93. package/dist/es/charts/index.js +1 -1
  94. package/dist/es/charts/themes/index.js +1 -1
  95. package/dist/es/charts/themes/walden-dark.js +1 -1
  96. package/dist/es/charts/themes/walden.js +1 -1
  97. package/dist/es/charts/themes/wonderland-dark.js +1 -1
  98. package/dist/es/charts/themes/wonderland.js +1 -1
  99. package/dist/es/checkbox/index.js +1 -1
  100. package/dist/es/code-highlighter/index.js +1 -1
  101. package/dist/es/col/index.js +1 -1
  102. package/dist/es/collapse/index.js +1 -1
  103. package/dist/es/color-picker/index.js +1 -1
  104. package/dist/es/compact/index.js +1 -1
  105. package/dist/es/config-provider/app.js +1 -1
  106. package/dist/es/config-provider/constants.js +1 -1
  107. package/dist/es/config-provider/context-holder.js +1 -1
  108. package/dist/es/config-provider/css-vars.js +1 -1
  109. package/dist/es/config-provider/dark-mode-context.js +1 -1
  110. package/dist/es/config-provider/error-fallback.js +1 -1
  111. package/dist/es/config-provider/global-style.js +1 -1
  112. package/dist/es/config-provider/index.js +1 -1
  113. package/dist/es/config-provider/theme-config.js +1 -1
  114. package/dist/es/config-provider/use-config-provider.js +5 -8
  115. package/dist/es/crud/components/action-button-group.js +1 -1
  116. package/dist/es/crud/components/index.js +1 -1
  117. package/dist/es/crud/components/main.js +3 -3
  118. package/dist/es/crud/components/mutation-holder.js +33 -23
  119. package/dist/es/crud/components/operation-button-group.js +1 -1
  120. package/dist/es/crud/components/scene-form.js +3 -1
  121. package/dist/es/crud/components/selection-indicator.js +3 -3
  122. package/dist/es/crud/components/toolbar-actions.js +1 -1
  123. package/dist/es/crud/components/toolbar.js +1 -1
  124. package/dist/es/crud/event.js +1 -1
  125. package/dist/es/crud/helpers.js +1 -1
  126. package/dist/es/crud/hooks/index.js +1 -1
  127. package/dist/es/crud/hooks/use-query-observer.js +1 -1
  128. package/dist/es/crud/hooks/use-search-values.js +1 -1
  129. package/dist/es/crud/hooks/use-selected-rows.js +1 -1
  130. package/dist/es/crud/index.js +23 -20
  131. package/dist/es/crud/store.js +10 -2
  132. package/dist/es/crud/styles.js +3 -3
  133. package/dist/es/crud-page/index.js +1 -1
  134. package/dist/es/date-picker/index.js +1 -1
  135. package/dist/es/descriptions/index.js +1 -1
  136. package/dist/es/divider/index.js +1 -1
  137. package/dist/es/drawer/index.js +1 -1
  138. package/dist/es/dropdown/index.js +1 -1
  139. package/dist/es/dynamic-icon/index.js +1 -1
  140. package/dist/es/dynamic-icon/placeholder-icon.js +1 -1
  141. package/dist/es/dynamic-icon/unknown-icon.js +1 -1
  142. package/dist/es/empty/empty.js +1 -1
  143. package/dist/es/empty/index.js +1 -1
  144. package/dist/es/flex/index.js +1 -1
  145. package/dist/es/flex-card/index.js +1 -1
  146. package/dist/es/flex-card/styles.js +2 -2
  147. package/dist/es/flip-text/index.js +1 -1
  148. package/dist/es/float-button/index.js +1 -1
  149. package/dist/es/form/components/form.js +16 -16
  150. package/dist/es/form/components/index.js +1 -1
  151. package/dist/es/form/components/reset-button.js +1 -1
  152. package/dist/es/form/components/submit-button.js +1 -1
  153. package/dist/es/form/contexts/form-context.js +1 -1
  154. package/dist/es/form/contexts/form-layout.js +1 -1
  155. package/dist/es/form/contexts/index.js +1 -1
  156. package/dist/es/form/fields/auto-complete/index.js +1 -1
  157. package/dist/es/form/fields/bool/index.js +1 -1
  158. package/dist/es/form/fields/cascader/index.js +1 -1
  159. package/dist/es/form/fields/checkbox/index.js +1 -1
  160. package/dist/es/form/fields/color-picker/index.js +1 -1
  161. package/dist/es/form/fields/date-picker/index.js +11 -10
  162. package/dist/es/form/fields/date-range-picker/index.js +23 -10
  163. package/dist/es/form/fields/index.js +1 -1
  164. package/dist/es/form/fields/input/index.js +1 -1
  165. package/dist/es/form/fields/input-number/index.js +1 -1
  166. package/dist/es/form/fields/mentions/index.js +1 -1
  167. package/dist/es/form/fields/password/index.js +1 -1
  168. package/dist/es/form/fields/radio/index.js +1 -1
  169. package/dist/es/form/fields/rate/index.js +1 -1
  170. package/dist/es/form/fields/select/index.js +1 -1
  171. package/dist/es/form/fields/slider/index.js +1 -1
  172. package/dist/es/form/fields/textarea/index.js +1 -1
  173. package/dist/es/form/fields/time-picker/index.js +11 -10
  174. package/dist/es/form/fields/time-range-picker/index.js +23 -10
  175. package/dist/es/form/fields/transfer/index.js +1 -1
  176. package/dist/es/form/fields/tree-select/index.js +1 -1
  177. package/dist/es/form/fields/upload/index.js +1 -1
  178. package/dist/es/form/form-actions.js +40 -0
  179. package/dist/es/form/form.js +5 -2
  180. package/dist/es/form/helpers/create-field.js +15 -0
  181. package/dist/es/form/helpers/index.js +2 -1
  182. package/dist/es/form/helpers/with-form-item.js +1 -1
  183. package/dist/es/form/hooks/use-form-item-props.js +1 -1
  184. package/dist/es/form/hooks/use-label-width.js +1 -1
  185. package/dist/es/form/index.js +2 -1
  186. package/dist/es/form/use-form.js +5 -10
  187. package/dist/es/form-drawer/index.js +61 -54
  188. package/dist/es/form-modal/index.js +55 -51
  189. package/dist/es/grid/context.js +1 -1
  190. package/dist/es/grid/grid-item.js +1 -1
  191. package/dist/es/grid/hooks/index.js +1 -1
  192. package/dist/es/grid/hooks/use-container-breakpoints.js +1 -1
  193. package/dist/es/grid/hooks/use-container-width.js +1 -1
  194. package/dist/es/grid/hooks/use-grid-collapsed.js +1 -1
  195. package/dist/es/grid/hooks/use-normalized-gap.js +1 -1
  196. package/dist/es/grid/hooks/use-responsive-breakpoint.js +1 -1
  197. package/dist/es/grid/hooks/use-responsive-value.js +1 -1
  198. package/dist/es/grid/index.js +1 -1
  199. package/dist/es/grid/styles.js +1 -1
  200. package/dist/es/group/index.js +1 -1
  201. package/dist/es/icon/index.js +1 -1
  202. package/dist/es/icon-button/index.js +1 -1
  203. package/dist/es/image/index.js +1 -1
  204. package/dist/es/index.js +59 -58
  205. package/dist/es/input/index.js +1 -1
  206. package/dist/es/input-number/index.js +1 -1
  207. package/dist/es/keyboard/index.js +1 -1
  208. package/dist/es/list/index.js +1 -1
  209. package/dist/es/loader/index.js +1 -1
  210. package/dist/es/logo-icon/index.js +1 -1
  211. package/dist/es/mentions/index.js +1 -1
  212. package/dist/es/menu/index.js +1 -1
  213. package/dist/es/modal/index.js +2 -3
  214. package/dist/es/modal/modal.js +60 -0
  215. package/dist/es/operation-button/index.js +1 -1
  216. package/dist/es/page/components/aside-panel.js +1 -1
  217. package/dist/es/page/components/index.js +1 -1
  218. package/dist/es/page/components/resize-handle.js +1 -1
  219. package/dist/es/page/components/scroll-content.js +2 -2
  220. package/dist/es/page/hooks/index.js +1 -1
  221. package/dist/es/page/hooks/use-page-key.js +1 -1
  222. package/dist/es/page/hooks/use-resize.js +1 -1
  223. package/dist/es/page/index.js +1 -1
  224. package/dist/es/page/styles.js +15 -15
  225. package/dist/es/page/viewport-context.js +1 -1
  226. package/dist/es/pagination/index.js +1 -1
  227. package/dist/es/permission-gate/index.js +1 -1
  228. package/dist/es/popconfirm/index.js +1 -1
  229. package/dist/es/popover/index.js +1 -1
  230. package/dist/es/pro-search/components/advanced-search-toggler.js +1 -1
  231. package/dist/es/pro-search/components/advanced-search.js +1 -1
  232. package/dist/es/pro-search/components/index.js +1 -1
  233. package/dist/es/pro-search/components/search-actions.js +5 -5
  234. package/dist/es/pro-search/index.js +4 -4
  235. package/dist/es/pro-search/styles.js +6 -6
  236. package/dist/es/pro-table/components/column-setting-item.js +13 -13
  237. package/dist/es/pro-table/components/column-settings-panel.js +6 -6
  238. package/dist/es/pro-table/components/column-settings.js +1 -1
  239. package/dist/es/pro-table/components/index.js +1 -1
  240. package/dist/es/pro-table/components/operation-button-group.js +1 -1
  241. package/dist/es/pro-table/components/ref.js +1 -1
  242. package/dist/es/pro-table/components/table-subscriber.js +1 -1
  243. package/dist/es/pro-table/components/table-summary.js +1 -1
  244. package/dist/es/pro-table/components/table-title.js +1 -1
  245. package/dist/es/pro-table/components/table.js +2 -2
  246. package/dist/es/pro-table/components/width-popover.js +5 -5
  247. package/dist/es/pro-table/context.js +1 -1
  248. package/dist/es/pro-table/event.js +1 -1
  249. package/dist/es/pro-table/hooks/index.js +1 -1
  250. package/dist/es/pro-table/hooks/use-column-settings-persistence.js +1 -1
  251. package/dist/es/pro-table/hooks/use-row-selection.js +1 -1
  252. package/dist/es/pro-table/hooks/use-table-columns.js +4 -4
  253. package/dist/es/pro-table/index.js +2 -2
  254. package/dist/es/pro-table/store.js +1 -1
  255. package/dist/es/progress/index.js +1 -1
  256. package/dist/es/qrcode/index.js +1 -1
  257. package/dist/es/radio/index.js +1 -1
  258. package/dist/es/rate/index.js +1 -1
  259. package/dist/es/result/index.js +1 -1
  260. package/dist/es/row/index.js +1 -1
  261. package/dist/es/scroll-area/index.js +1 -1
  262. package/dist/es/scroll-area/styles.js +1 -1
  263. package/dist/es/segmented/index.js +1 -1
  264. package/dist/es/select/hooks/index.js +2 -1
  265. package/dist/es/select/hooks/use-data-options-select.js +1 -1
  266. package/dist/es/select/hooks/use-dictionary-options-select.js +55 -0
  267. package/dist/es/select/index.js +2 -1
  268. package/dist/es/skeleton/index.js +1 -1
  269. package/dist/es/slider/index.js +1 -1
  270. package/dist/es/space/index.js +1 -1
  271. package/dist/es/space/space.js +1 -1
  272. package/dist/es/sparkles-text/index.js +1 -1
  273. package/dist/es/sparkles-text/sparkle.js +1 -1
  274. package/dist/es/spin/index.js +1 -1
  275. package/dist/es/split-text/index.js +1 -1
  276. package/dist/es/splitter/index.js +1 -1
  277. package/dist/es/stack/index.js +1 -1
  278. package/dist/es/statistic/index.js +1 -1
  279. package/dist/es/steps/index.js +1 -1
  280. package/dist/es/switch/index.js +1 -1
  281. package/dist/es/table/index.js +1 -1
  282. package/dist/es/table/use-pagination-props.js +1 -1
  283. package/dist/es/tabs/index.js +1 -1
  284. package/dist/es/tag/index.js +1 -1
  285. package/dist/es/time-picker/index.js +1 -1
  286. package/dist/es/timeline/index.js +1 -1
  287. package/dist/es/tooltip/index.js +1 -1
  288. package/dist/es/tour/index.js +1 -1
  289. package/dist/es/transfer/index.js +1 -1
  290. package/dist/es/tree/hooks/index.js +1 -1
  291. package/dist/es/tree/hooks/use-data-options-tree.js +1 -1
  292. package/dist/es/tree/index.js +1 -1
  293. package/dist/es/tree-select/hooks/index.js +1 -1
  294. package/dist/es/tree-select/hooks/use-data-options-tree-select.js +1 -1
  295. package/dist/es/tree-select/index.js +1 -1
  296. package/dist/es/typing-animation/index.js +1 -1
  297. package/dist/es/typography/index.js +1 -1
  298. package/dist/es/upload/index.js +1 -1
  299. package/dist/es/watermark/index.js +1 -1
  300. package/dist/types/_base/types/common.d.ts +4 -0
  301. package/dist/types/crud/components/mutation-holder.d.ts +2 -1
  302. package/dist/types/crud/index.d.ts +1 -1
  303. package/dist/types/crud/props.d.ts +7 -1
  304. package/dist/types/crud/store.d.ts +5 -1
  305. package/dist/types/crud/types.d.ts +2 -2
  306. package/dist/types/date-picker/index.d.ts +1 -1
  307. package/dist/types/dynamic-icon/index.d.ts +1 -1
  308. package/dist/types/form/components/form.d.ts +13 -4
  309. package/dist/types/form/fields/date-picker/index.d.ts +3 -3
  310. package/dist/types/form/fields/date-picker/props.d.ts +6 -1
  311. package/dist/types/form/fields/date-range-picker/index.d.ts +3 -3
  312. package/dist/types/form/fields/date-range-picker/props.d.ts +6 -1
  313. package/dist/types/form/fields/index.d.ts +4 -4
  314. package/dist/types/form/fields/time-picker/index.d.ts +3 -3
  315. package/dist/types/form/fields/time-picker/props.d.ts +6 -1
  316. package/dist/types/form/fields/time-range-picker/index.d.ts +3 -3
  317. package/dist/types/form/fields/time-range-picker/props.d.ts +6 -1
  318. package/dist/types/form/form-actions.d.ts +33 -0
  319. package/dist/types/form/form.d.ts +25 -25
  320. package/dist/types/form/helpers/create-field.d.ts +91 -0
  321. package/dist/types/form/helpers/index.d.ts +2 -0
  322. package/dist/types/form/index.d.ts +3 -0
  323. package/dist/types/form/types.d.ts +4 -1
  324. package/dist/types/form/use-form.d.ts +3 -37
  325. package/dist/types/form-drawer/props.d.ts +30 -10
  326. package/dist/types/form-modal/props.d.ts +30 -10
  327. package/dist/types/grid/index.d.ts +1 -1
  328. package/dist/types/index.d.ts +1 -1
  329. package/dist/types/modal/index.d.ts +2 -2
  330. package/dist/types/modal/modal.d.ts +11 -0
  331. package/dist/types/page/props.d.ts +1 -1
  332. package/dist/types/pro-search/props.d.ts +1 -1
  333. package/dist/types/pro-table/components/index.d.ts +1 -1
  334. package/dist/types/pro-table/components/table.d.ts +2 -1
  335. package/dist/types/pro-table/hooks/use-row-selection.d.ts +1 -1
  336. package/dist/types/pro-table/hooks/use-table-columns.d.ts +1 -1
  337. package/dist/types/pro-table/index.d.ts +1 -1
  338. package/dist/types/pro-table/props.d.ts +1 -1
  339. package/dist/types/pro-table/store.d.ts +3 -3
  340. package/dist/types/pro-table/types.d.ts +1 -1
  341. package/dist/types/select/hooks/index.d.ts +1 -0
  342. package/dist/types/select/hooks/use-dictionary-options-select.d.ts +18 -0
  343. package/dist/types/select/index.d.ts +1 -1
  344. package/package.json +10 -10
  345. package/dist/cjs/form-drawer/components/form-actions.cjs +0 -1
  346. package/dist/cjs/form-drawer/components/index.cjs +0 -1
  347. package/dist/cjs/form-modal/components/draggable-wrapper.cjs +0 -1
  348. package/dist/cjs/form-modal/components/form-actions.cjs +0 -1
  349. package/dist/cjs/form-modal/components/index.cjs +0 -1
  350. package/dist/es/form-drawer/components/form-actions.js +0 -26
  351. package/dist/es/form-drawer/components/index.js +0 -2
  352. package/dist/es/form-modal/components/draggable-wrapper.js +0 -52
  353. package/dist/es/form-modal/components/form-actions.js +0 -26
  354. package/dist/es/form-modal/components/index.js +0 -3
  355. package/dist/types/form-drawer/components/form-actions.d.ts +0 -19
  356. package/dist/types/form-drawer/components/index.d.ts +0 -1
  357. package/dist/types/form-modal/components/draggable-wrapper.d.ts +0 -9
  358. package/dist/types/form-modal/components/form-actions.d.ts +0 -19
  359. package/dist/types/form-modal/components/index.d.ts +0 -2
@@ -0,0 +1,91 @@
1
+ import { DeepKeys, DeepValue, FieldAsyncValidateOrFn, FieldValidateOrFn, FieldValidators } from '@tanstack/react-form';
2
+ import { AnyObject, MaybeUndefined } from '@vef-framework-react/shared';
3
+ import { ReactNode } from 'react';
4
+ import { fieldComponents } from '../fields';
5
+ type MaybeFieldSync<T, N extends DeepKeys<T>> = MaybeUndefined<FieldValidateOrFn<T, N, DeepValue<T, N>>>;
6
+ type MaybeFieldAsync<T, N extends DeepKeys<T>> = MaybeUndefined<FieldAsyncValidateOrFn<T, N, DeepValue<T, N>>>;
7
+ /**
8
+ * Simplified `FieldValidators` with all `TOn*` slots widened to their upper bounds.
9
+ * Accepts zod schemas, validator functions, or `undefined` for each lifecycle event.
10
+ */
11
+ type FieldValidatorsFor<T, N extends DeepKeys<T>> = FieldValidators<T, N, DeepValue<T, N>, MaybeFieldSync<T, N>, MaybeFieldSync<T, N>, MaybeFieldAsync<T, N>, MaybeFieldSync<T, N>, MaybeFieldAsync<T, N>, MaybeFieldSync<T, N>, MaybeFieldAsync<T, N>, MaybeFieldSync<T, N>, MaybeFieldAsync<T, N>>;
12
+ declare const ErasedValidatorBrand: unique symbol;
13
+ /**
14
+ * Opaque wrapper for type-erased field validators. Retains `TFormData`
15
+ * association but hides the specific field name. Cannot be constructed
16
+ * directly — use `createField` to produce values of this type.
17
+ */
18
+ export interface ErasedValidators<TFormData> {
19
+ readonly [ErasedValidatorBrand]: TFormData;
20
+ }
21
+ /**
22
+ * Restore erased validators to their specific field type at the render site.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * items.map(item => (
27
+ * <form.AppField
28
+ * name={item.name}
29
+ * validators={restoreValidators(item.validators)}
30
+ * >
31
+ * {item.render}
32
+ * </form.AppField>
33
+ * ));
34
+ * ```
35
+ */
36
+ export declare function restoreValidators<T, N extends DeepKeys<T>>(validators: MaybeUndefined<ErasedValidators<T>>): MaybeUndefined<FieldValidatorsFor<T, N>>;
37
+ interface FormFieldOptions<T, N extends DeepKeys<T>, TMeta extends AnyObject = AnyObject> {
38
+ validators?: FieldValidatorsFor<T, N>;
39
+ render: (field: typeof fieldComponents) => ReactNode;
40
+ meta?: TMeta;
41
+ }
42
+ /**
43
+ * Type-erased form field item for homogeneous array storage.
44
+ * Type checking is performed at the `createField` call site; the erased
45
+ * representation is safe to iterate, filter, and reorder without losing safety.
46
+ *
47
+ * Validators use an opaque branded type (`ErasedValidators`) instead of `any`.
48
+ * Use `restoreValidators(item.validators)` at the render site to pass them
49
+ * to `<AppField>`.
50
+ *
51
+ * `TMeta` allows attaching arbitrary typed metadata (e.g. layout, visibility)
52
+ * to each field item. Defaults to `AnyObject` for zero-overhead when unused.
53
+ */
54
+ export interface FormFieldItem<TFormData, TMeta extends AnyObject = AnyObject> {
55
+ name: DeepKeys<TFormData>;
56
+ validators?: ErasedValidators<TFormData>;
57
+ render: (field: typeof fieldComponents) => ReactNode;
58
+ meta?: TMeta;
59
+ }
60
+ /**
61
+ * Type-safe field definition factory scoped to a specific form data type.
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * const { createField, AppField } = useFormContext<StaffParams>();
66
+ *
67
+ * interface FieldMeta { span?: number; hidden?: boolean; }
68
+ *
69
+ * const items: FormFieldItem<StaffParams, FieldMeta>[] = [
70
+ * createField("name", {
71
+ * meta: { span: 12 },
72
+ * validators: { onBlur: z.string("required").max(32) },
73
+ * render: field => <field.Input required label="Name" />,
74
+ * }),
75
+ * ];
76
+ *
77
+ * // Render:
78
+ * items.map(item => (
79
+ * <AppField name={item.name} validators={restoreValidators(item.validators)}>
80
+ * {item.render}
81
+ * </AppField>
82
+ * ));
83
+ * ```
84
+ */
85
+ export type CreateFieldFn<TFormData> = <const TName extends DeepKeys<TFormData>, TMeta extends AnyObject = AnyObject>(name: TName, options: FormFieldOptions<TFormData, TName, TMeta>) => FormFieldItem<TFormData, TMeta>;
86
+ /**
87
+ * Type-safe field definition factory. `TFormData` is inferred from the
88
+ * `FormApi` boundary when accessed via `form.createField(...)`.
89
+ */
90
+ export declare function createField<TFormData, const TName extends DeepKeys<TFormData>, TMeta extends AnyObject = AnyObject>(name: TName, options: FormFieldOptions<TFormData, TName, TMeta>): FormFieldItem<TFormData, TMeta>;
91
+ export {};
@@ -1 +1,3 @@
1
+ export { createField, restoreValidators } from './create-field';
2
+ export type { CreateFieldFn, ErasedValidators, FormFieldItem } from './create-field';
1
3
  export { withFormItem } from './with-form-item';
@@ -1,5 +1,8 @@
1
1
  export type * from './components';
2
2
  export type * from './fields';
3
3
  export { createFormOptions, useFormContext, useFormStore, withFieldGroup, withForm } from './form';
4
+ export { DefaultResetButton, DefaultSubmitButton, FormActions, type FormActionsProps } from './form-actions';
5
+ export { restoreValidators } from './helpers';
6
+ export type { FormFieldItem } from './helpers';
4
7
  export type * from './types';
5
8
  export { useForm } from './use-form';
@@ -3,6 +3,7 @@ import { MaybeUndefined } from '@vef-framework-react/shared';
3
3
  import { FormItemProps as AntdFormItemProps } from 'antd';
4
4
  import { formComponents } from './components';
5
5
  import { fieldComponents } from './fields';
6
+ import { CreateFieldFn } from './helpers';
6
7
  export type FieldComponentProps<TFieldProps> = TFieldProps & FormItemProps;
7
8
  export interface FormItemProps extends Pick<AntdFormItemProps, "layout" | "label" | "labelAlign" | "extra" | "required"> {
8
9
  /**
@@ -14,4 +15,6 @@ export interface FormItemProps extends Pick<AntdFormItemProps, "layout" | "label
14
15
  */
15
16
  noWrapper?: boolean;
16
17
  }
17
- export type FormApi<TFormData, TOnMount extends MaybeUndefined<FormValidateOrFn<TFormData>> = MaybeUndefined<FormValidateOrFn<TFormData>>, TOnChange extends MaybeUndefined<FormValidateOrFn<TFormData>> = MaybeUndefined<FormValidateOrFn<TFormData>>, TOnChangeAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>> = MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnBlur extends MaybeUndefined<FormValidateOrFn<TFormData>> = MaybeUndefined<FormValidateOrFn<TFormData>>, TOnBlurAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>> = MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnSubmit extends MaybeUndefined<FormValidateOrFn<TFormData>> = MaybeUndefined<FormValidateOrFn<TFormData>>, TOnSubmitAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>> = MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnDynamic extends MaybeUndefined<FormValidateOrFn<TFormData>> = MaybeUndefined<FormValidateOrFn<TFormData>>, TOnDynamicAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>> = MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnServer extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>> = MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TSubmitMeta = unknown> = AppFieldExtendedReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, typeof fieldComponents, typeof formComponents>;
18
+ export type FormApi<TFormData, TOnMount extends MaybeUndefined<FormValidateOrFn<TFormData>> = MaybeUndefined<FormValidateOrFn<TFormData>>, TOnChange extends MaybeUndefined<FormValidateOrFn<TFormData>> = MaybeUndefined<FormValidateOrFn<TFormData>>, TOnChangeAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>> = MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnBlur extends MaybeUndefined<FormValidateOrFn<TFormData>> = MaybeUndefined<FormValidateOrFn<TFormData>>, TOnBlurAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>> = MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnSubmit extends MaybeUndefined<FormValidateOrFn<TFormData>> = MaybeUndefined<FormValidateOrFn<TFormData>>, TOnSubmitAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>> = MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnDynamic extends MaybeUndefined<FormValidateOrFn<TFormData>> = MaybeUndefined<FormValidateOrFn<TFormData>>, TOnDynamicAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>> = MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnServer extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>> = MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TSubmitMeta = unknown> = AppFieldExtendedReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, typeof fieldComponents, typeof formComponents> & {
19
+ createField: CreateFieldFn<TFormData>;
20
+ };
@@ -1,38 +1,4 @@
1
- import { FormAsyncValidateOrFn, FormOptions, FormValidateOrFn, AppFieldExtendedReactFormApi } from '@tanstack/react-form';
1
+ import { FormAsyncValidateOrFn, FormOptions, FormValidateOrFn } from '@tanstack/react-form';
2
2
  import { MaybeUndefined } from '@vef-framework-react/shared';
3
- import { FC, ReactNode } from 'react';
4
- import { FieldComponentProps } from './types';
5
- import { AutoCompleteFieldProps, BoolFieldProps, CascaderFieldProps, CheckboxFieldProps, CheckboxGroupFieldProps, ColorPickerFieldProps, DatePickerFieldProps, DateRangePickerFieldProps, InputFieldProps, InputNumberFieldProps, MentionsFieldProps, RadioFieldProps, RateFieldProps, SelectFieldProps, SliderFieldProps, TextAreaFieldProps, TimePickerFieldProps, TimeRangePickerFieldProps, TransferFieldProps, TreeSelectFieldProps, UploadFieldProps } from './fields';
6
- import { PasswordFieldProps } from './fields/password';
7
- import { DataOption } from '@vef-framework-react/core';
8
- import { Form } from './components/form';
9
- import { SubmitButton } from './components/submit-button';
10
- import { ResetButton } from './components/reset-button';
11
- export declare function useForm<TFormData, TOnMount extends MaybeUndefined<FormValidateOrFn<TFormData>>, TOnChange extends MaybeUndefined<FormValidateOrFn<TFormData>>, TOnChangeAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnBlur extends MaybeUndefined<FormValidateOrFn<TFormData>>, TOnBlurAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnSubmit extends MaybeUndefined<FormValidateOrFn<TFormData>>, TOnSubmitAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnDynamic extends MaybeUndefined<FormValidateOrFn<TFormData>>, TOnDynamicAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnServer extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TSubmitMeta>(options: FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>): AppFieldExtendedReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, {
12
- readonly AutoComplete: FC< FieldComponentProps<AutoCompleteFieldProps>>;
13
- readonly Bool: FC< FieldComponentProps<BoolFieldProps>>;
14
- readonly Cascader: FC< FieldComponentProps<CascaderFieldProps>>;
15
- readonly Checkbox: FC< FieldComponentProps<CheckboxFieldProps>>;
16
- readonly CheckboxGroup: FC< FieldComponentProps<CheckboxGroupFieldProps>>;
17
- readonly ColorPicker: FC< FieldComponentProps<ColorPickerFieldProps>>;
18
- readonly DatePicker: FC< FieldComponentProps<DatePickerFieldProps>>;
19
- readonly DateRangePicker: FC< FieldComponentProps<DateRangePickerFieldProps>>;
20
- readonly Input: FC< FieldComponentProps<InputFieldProps>>;
21
- readonly InputNumber: FC< FieldComponentProps<InputNumberFieldProps>>;
22
- readonly Mentions: FC< FieldComponentProps<MentionsFieldProps>>;
23
- readonly Password: FC< FieldComponentProps<PasswordFieldProps>>;
24
- readonly Radio: FC< FieldComponentProps<RadioFieldProps>>;
25
- readonly Rate: FC< FieldComponentProps<RateFieldProps>>;
26
- readonly Select: <TValue, TOption extends DataOption>(props: FieldComponentProps<SelectFieldProps<TValue, TOption>>) => ReactNode;
27
- readonly Slider: FC< FieldComponentProps<SliderFieldProps>>;
28
- readonly TextArea: FC< FieldComponentProps<TextAreaFieldProps>>;
29
- readonly TimePicker: FC< FieldComponentProps<TimePickerFieldProps>>;
30
- readonly TimeRangePicker: FC< FieldComponentProps<TimeRangePickerFieldProps>>;
31
- readonly Transfer: FC< FieldComponentProps<TransferFieldProps>>;
32
- readonly TreeSelect: <TValue, TOption extends DataOption>(props: FieldComponentProps<TreeSelectFieldProps<TValue, TOption>>) => ReactNode;
33
- readonly Upload: FC< FieldComponentProps<UploadFieldProps>>;
34
- }, {
35
- readonly Form: Form;
36
- readonly SubmitButton: SubmitButton;
37
- readonly ResetButton: ResetButton;
38
- }>;
3
+ import { FormApi } from './types';
4
+ export declare function useForm<TFormData, TOnMount extends MaybeUndefined<FormValidateOrFn<TFormData>>, TOnChange extends MaybeUndefined<FormValidateOrFn<TFormData>>, TOnChangeAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnBlur extends MaybeUndefined<FormValidateOrFn<TFormData>>, TOnBlurAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnSubmit extends MaybeUndefined<FormValidateOrFn<TFormData>>, TOnSubmitAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnDynamic extends MaybeUndefined<FormValidateOrFn<TFormData>>, TOnDynamicAsync extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TOnServer extends MaybeUndefined<FormAsyncValidateOrFn<TFormData>>, TSubmitMeta>(options: FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>): FormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>;
@@ -1,9 +1,9 @@
1
+ import { ApiResult, MutationFunction, MutationMeta } from '@vef-framework-react/core';
2
+ import { Awaitable } from '@vef-framework-react/shared';
3
+ import { ElementType, ReactNode } from 'react';
1
4
  import { Length } from '../_base';
2
5
  import { DrawerProps } from '../drawer';
3
- import { FormApi, ResetButtonProps, SubmitButtonProps } from '../form';
4
- import { ApiResult, MutationFunction, MutationMeta } from '@vef-framework-react/core';
5
- import { Awaitable, Except } from '@vef-framework-react/shared';
6
- import { ReactNode } from 'react';
6
+ import { FormActionsProps, FormApi } from '../form';
7
7
  /**
8
8
  * Props for the FormDrawer component
9
9
  *
@@ -32,19 +32,39 @@ export interface FormDrawerProps<TValues extends object, TData = unknown> extend
32
32
  */
33
33
  disabled?: boolean;
34
34
  /**
35
- * Custom render function for footer actions
36
- * Return null to hide the footer entirely
37
- * If not provided, will render default submit and reset buttons
35
+ * The element type for the inner form wrapper.
36
+ *
37
+ * @default "form"
38
+ */
39
+ formComponent?: ElementType;
40
+ /**
41
+ * Custom render function for footer actions.
42
+ * Receives the form API and default action buttons (submit and reset) as arguments.
43
+ * Return null to hide the footer entirely.
44
+ * If not provided, will render default submit and reset buttons.
45
+ *
46
+ * @example
47
+ * // Add a custom button alongside defaults
48
+ * renderActions={(formApi, { submitButton, resetButton }) => (
49
+ * <>
50
+ * <Button onClick={handleDraft}>Save Draft</Button>
51
+ * {resetButton}
52
+ * {submitButton}
53
+ * </>
54
+ * )}
38
55
  */
39
- renderActions?: (formApi: FormApi<TValues>) => ReactNode;
56
+ renderActions?: (formApi: FormApi<TValues>, defaults: {
57
+ submitButton: ReactNode;
58
+ resetButton: ReactNode;
59
+ }) => ReactNode;
40
60
  /**
41
61
  * Submit button props (only used when renderActions is not provided)
42
62
  */
43
- submitButtonProps?: Except<SubmitButtonProps, "onSubmit" | "disabled" | "loading">;
63
+ submitButtonProps?: FormActionsProps["submitButtonProps"];
44
64
  /**
45
65
  * Reset button props, or false to hide the reset button (only used when renderActions is not provided)
46
66
  */
47
- resetButtonProps?: Except<ResetButtonProps, "onReset" | "disabled" | "loading"> | false;
67
+ resetButtonProps?: FormActionsProps["resetButtonProps"];
48
68
  /**
49
69
  * Mutation function to execute on submit
50
70
  */
@@ -1,8 +1,8 @@
1
- import { FormApi, ResetButtonProps, SubmitButtonProps } from '../form';
2
- import { ModalProps } from '../modal';
3
1
  import { ApiResult, MutationFunction, MutationMeta } from '@vef-framework-react/core';
4
- import { Awaitable, Except } from '@vef-framework-react/shared';
5
- import { ReactNode } from 'react';
2
+ import { Awaitable } from '@vef-framework-react/shared';
3
+ import { ElementType, ReactNode } from 'react';
4
+ import { FormActionsProps, FormApi } from '../form';
5
+ import { ModalProps } from '../modal';
6
6
  /**
7
7
  * Props for the FormModal component
8
8
  *
@@ -33,19 +33,39 @@ export interface FormModalProps<TValues extends object, TData = unknown> extends
33
33
  */
34
34
  disabled?: boolean;
35
35
  /**
36
- * Custom render function for footer actions
37
- * Return null to hide the footer entirely
38
- * If not provided, will render default submit and reset buttons
36
+ * The element type for the inner form wrapper.
37
+ *
38
+ * @default "form"
39
+ */
40
+ formComponent?: ElementType;
41
+ /**
42
+ * Custom render function for footer actions.
43
+ * Receives the form API and default action buttons (submit and reset) as arguments.
44
+ * Return null to hide the footer entirely.
45
+ * If not provided, will render default submit and reset buttons.
46
+ *
47
+ * @example
48
+ * // Add a custom button alongside defaults
49
+ * renderActions={(formApi, { submitButton, resetButton }) => (
50
+ * <>
51
+ * <Button onClick={handleDraft}>Save Draft</Button>
52
+ * {resetButton}
53
+ * {submitButton}
54
+ * </>
55
+ * )}
39
56
  */
40
- renderActions?: (formApi: FormApi<TValues>) => ReactNode;
57
+ renderActions?: (formApi: FormApi<TValues>, defaults: {
58
+ submitButton: ReactNode;
59
+ resetButton: ReactNode;
60
+ }) => ReactNode;
41
61
  /**
42
62
  * Submit button props (only used when renderActions is not provided)
43
63
  */
44
- submitButtonProps?: Except<SubmitButtonProps, "onSubmit" | "disabled" | "loading">;
64
+ submitButtonProps?: FormActionsProps["submitButtonProps"];
45
65
  /**
46
66
  * Reset button props, or false to hide the reset button (only used when renderActions is not provided)
47
67
  */
48
- resetButtonProps?: Except<ResetButtonProps, "onReset" | "disabled" | "loading"> | false;
68
+ resetButtonProps?: FormActionsProps["resetButtonProps"];
49
69
  /**
50
70
  * Mutation function to execute on submit
51
71
  */
@@ -5,4 +5,4 @@ export declare namespace Grid {
5
5
  var Item: typeof GridItem;
6
6
  }
7
7
  export { useGridCollapsed } from './hooks';
8
- export { type GridItemProps, type GridProps } from './props';
8
+ export { type GridItemProps, type GridProps, type ResponsiveValue } from './props';
@@ -71,7 +71,7 @@ export { Result, type ResultProps } from './result';
71
71
  export { Row, type RowProps } from './row';
72
72
  export { ScrollArea, type ScrollAreaProps } from './scroll-area';
73
73
  export { Segmented, type SegmentedOption, type SegmentedProps } from './segmented';
74
- export { Select, useDataOptionsSelect, type SelectOption, type SelectProps, type UseDataOptionsSelectOptions } from './select';
74
+ export { Select, useDataOptionsSelect, useDictionaryOptionsSelect, type SelectOption, type SelectProps, type UseDataOptionsSelectOptions, type UseDictionaryOptionsSelectOptions, type UseDictionaryOptionsSelectResult } from './select';
75
75
  export { Skeleton, type SkeletonButtonProps, type SkeletonImageProps, type SkeletonInputProps, type SkeletonNodeProps, type SkeletonParagraphProps, type SkeletonProps, type SkeletonTitleProps } from './skeleton';
76
76
  export { Slider, type SliderProps, type SliderRangeProps, type SliderSingleProps } from './slider';
77
77
  export { Space, type SpaceProps } from './space';
@@ -1,2 +1,2 @@
1
- export { Modal } from 'antd';
2
- export type { ModalProps } from 'antd';
1
+ export { Modal } from './modal';
2
+ export type { ModalProps } from './modal';
@@ -0,0 +1,11 @@
1
+ import { ModalProps as ModalPropsInternal } from 'antd';
2
+ import { NamedExoticComponent } from 'react';
3
+ export interface ModalProps extends ModalPropsInternal {
4
+ /**
5
+ * Whether the modal can be dragged by its header.
6
+ *
7
+ * @default false
8
+ */
9
+ draggable?: boolean;
10
+ }
11
+ export declare const Modal: NamedExoticComponent<ModalProps>;
@@ -1,5 +1,5 @@
1
- import { Length } from '../_base';
2
1
  import { PropsWithChildren, ReactNode } from 'react';
2
+ import { Length } from '../_base';
3
3
  /**
4
4
  * Position type for header and footer.
5
5
  * - `"inside"`: Inside the main content area
@@ -1,6 +1,6 @@
1
- import { ResetButtonProps, SubmitButtonProps } from '../form';
2
1
  import { Except } from '@vef-framework-react/shared';
3
2
  import { ReactNode } from 'react';
3
+ import { ResetButtonProps, SubmitButtonProps } from '../form';
4
4
  /**
5
5
  * Props for the ProSearch component
6
6
  *
@@ -3,6 +3,6 @@ export { ColumnSettings } from './column-settings';
3
3
  export { ColumnSettingsPanel } from './column-settings-panel';
4
4
  export { OperationButtonGroup, type OperationButtonGroupProps } from './operation-button-group';
5
5
  export { ProTableRefHolder } from './ref';
6
- export { NonPaginatedTable, PaginatedTable } from './table';
6
+ export { getRowKeyFn, NonPaginatedTable, PaginatedTable } from './table';
7
7
  export { TableSubscriber, type TableSubscriberProps } from './table-subscriber';
8
8
  export { WidthPopover } from './width-popover';
@@ -1,4 +1,4 @@
1
- import { AnyObject } from '@vef-framework-react/shared';
1
+ import { AnyObject, Key } from '@vef-framework-react/shared';
2
2
  import { NonPaginatedProTableProps, PaginatedProTableProps } from '../props';
3
3
  import { ColumnSettingsProp } from '../types';
4
4
  type PaginatedTableProps<TRow extends AnyObject, TParams extends AnyObject> = Pick<PaginatedProTableProps<TRow, TParams>, "className" | "style" | "size" | "queryFn" | "queryEnabled" | "queryParams" | "columns" | "rowKey" | "rowSelection" | "showSequenceColumn" | "operationColumn" | "selectedRowKeys" | "virtual" | "title" | "summary" | "onSelectedRowKeysChange"> & {
@@ -7,6 +7,7 @@ type PaginatedTableProps<TRow extends AnyObject, TParams extends AnyObject> = Pi
7
7
  type NonPaginatedTableProps<TRow extends AnyObject, TParams extends AnyObject> = Pick<NonPaginatedProTableProps<TRow, TParams>, "className" | "style" | "size" | "queryFn" | "queryEnabled" | "queryParams" | "columns" | "rowKey" | "rowSelection" | "showSequenceColumn" | "operationColumn" | "selectedRowKeys" | "virtual" | "title" | "summary" | "onSelectedRowKeysChange"> & {
8
8
  columnSettings: ColumnSettingsProp;
9
9
  };
10
+ export declare function getRowKeyFn(rowKey?: string | ((row: AnyObject) => Key)): ((row: AnyObject) => string) | undefined;
10
11
  export declare function PaginatedTable<TRow extends AnyObject, TParams extends AnyObject>({ className, style, size, queryFn, columns, columnSettings, rowKey, rowSelection, queryEnabled, queryParams, showSequenceColumn, operationColumn, selectedRowKeys, virtual, title, summary, onSelectedRowKeysChange }: PaginatedTableProps<TRow, TParams>): import("@emotion/react/jsx-runtime").JSX.Element;
11
12
  export declare function NonPaginatedTable<TRow extends AnyObject, TParams extends AnyObject>({ className, style, size, queryFn, columns, columnSettings, rowKey, rowSelection, queryEnabled, queryParams, showSequenceColumn, operationColumn, selectedRowKeys, virtual, title, summary, onSelectedRowKeysChange }: NonPaginatedTableProps<TRow, TParams>): import("@emotion/react/jsx-runtime").JSX.Element;
12
13
  export {};
@@ -1,5 +1,5 @@
1
- import { TableRowSelection } from '../../table';
2
1
  import { Key } from '@vef-framework-react/shared';
2
+ import { TableRowSelection } from '../../table';
3
3
  import { RowSelectionConfig } from '../types';
4
4
  /**
5
5
  * Hook to create row selection configuration for ProTable.
@@ -1,5 +1,5 @@
1
- import { TableColumn } from '../../table';
2
1
  import { AnyObject } from '@vef-framework-react/shared';
2
+ import { TableColumn } from '../../table';
3
3
  import { ColumnSettingsProp, OperationColumnConfig } from '../types';
4
4
  /**
5
5
  * The hook to use the table columns.
@@ -5,7 +5,7 @@ import { ProTableRef } from './types';
5
5
  export declare const ProTable: (<TRow extends AnyObject, TParams extends AnyObject>(props: ProTableProps<TRow, TParams> & {
6
6
  ref?: React.Ref<ProTableRef>;
7
7
  }) => Awaitable<ReactNode>) & Pick<FC, "displayName">;
8
- export { OperationButtonGroup, TableSubscriber as ProTableSubscriber, type OperationButtonGroupProps, type TableSubscriberProps as ProTableSubscriberProps } from './components';
8
+ export { getRowKeyFn, OperationButtonGroup, TableSubscriber as ProTableSubscriber, type OperationButtonGroupProps, type TableSubscriberProps as ProTableSubscriberProps } from './components';
9
9
  export type { ProTableProps } from './props';
10
10
  export type { ProTableState } from './store';
11
11
  export type { ColumnSettingsConfig, ColumnSettingsProp, OperationColumnConfig, ParamsWithPagination, ParamsWithSort, ProTableRef, RowSelectionConfig } from './types';
@@ -1,7 +1,7 @@
1
- import { TableColumn, TableProps } from '../table';
2
1
  import { PaginationResult, QueryFunction } from '@vef-framework-react/core';
3
2
  import { AnyObject, DeepKeys, Key } from '@vef-framework-react/shared';
4
3
  import { CSSProperties, ReactNode } from 'react';
4
+ import { TableColumn, TableProps } from '../table';
5
5
  import { ColumnSettingsProp, OperationColumnConfig, ParamsWithPagination, ParamsWithSort, RowSelectionConfig } from './types';
6
6
  /**
7
7
  * Base props for ProTable component
@@ -1,8 +1,8 @@
1
- import { TableColumn } from '../table';
2
- import { DragDropEvents, PaginationParams, StoreProviderProps, UseStore, UnboundStore } from '@vef-framework-react/core';
1
+ import { DragEndEvent, PaginationParams, StoreProviderProps, UseStore, UnboundStore } from '@vef-framework-react/core';
3
2
  import { EventEmitter, Key } from '@vef-framework-react/shared';
4
3
  import { ReactNode, ComponentType } from 'react';
5
4
  import { OrderSpec } from '../_base/types';
5
+ import { TableColumn } from '../table';
6
6
  import { ProTableEvents } from './event';
7
7
  /**
8
8
  * Column setting configuration
@@ -80,7 +80,7 @@ export interface ProTableState {
80
80
  /**
81
81
  * Reorder columns by drag event
82
82
  */
83
- reorderColumns: (event: Parameters<DragDropEvents["dragend"]>[0]) => void;
83
+ reorderColumns: (event: DragEndEvent) => void;
84
84
  /**
85
85
  * Toggle column fixed state
86
86
  */
@@ -1,7 +1,7 @@
1
- import { Length } from '../_base';
2
1
  import { PaginationParams } from '@vef-framework-react/core';
3
2
  import { Key } from '@vef-framework-react/shared';
4
3
  import { ReactNode } from 'react';
4
+ import { Length } from '../_base';
5
5
  import { SYMBOL_PAGINATION, SYMBOL_SORT } from '../_base/constants';
6
6
  import { OrderSpec } from '../_base/types';
7
7
  /**
@@ -1 +1,2 @@
1
1
  export { useDataOptionsSelect, type UseDataOptionsSelectOptions } from './use-data-options-select';
2
+ export { useDictionaryOptionsSelect, type UseDictionaryOptionsSelectOptions, type UseDictionaryOptionsSelectResult } from './use-dictionary-options-select';
@@ -0,0 +1,18 @@
1
+ import { DataOption, DataOptionWithPinyin } from '@vef-framework-react/core';
2
+ import { DictionaryAliasMap } from '@vef-framework-react/hooks';
3
+ import { Key } from '@vef-framework-react/shared';
4
+ import { SelectProps } from '..';
5
+ export interface UseDictionaryOptionsSelectOptions<T extends DictionaryAliasMap> {
6
+ /**
7
+ * Alias-to-dictionary-key mapping for the batch query.
8
+ */
9
+ dictionaryKeys: T;
10
+ /**
11
+ * Whether each select should enable search.
12
+ *
13
+ * @default false
14
+ */
15
+ filterable?: boolean;
16
+ }
17
+ export type UseDictionaryOptionsSelectResult<T extends DictionaryAliasMap> = Record<Extract<keyof T, string>, SelectProps<Key, DataOptionWithPinyin<DataOption>>>;
18
+ export declare function useDictionaryOptionsSelect<const T extends DictionaryAliasMap>({ dictionaryKeys, filterable }: UseDictionaryOptionsSelectOptions<T>): UseDictionaryOptionsSelectResult<T>;
@@ -1,5 +1,5 @@
1
1
  import { DefaultOptionType } from 'antd/es/select';
2
- export { useDataOptionsSelect, type UseDataOptionsSelectOptions } from './hooks';
2
+ export { useDataOptionsSelect, useDictionaryOptionsSelect, type UseDataOptionsSelectOptions, type UseDictionaryOptionsSelectOptions, type UseDictionaryOptionsSelectResult } from './hooks';
3
3
  export { Select } from 'antd';
4
4
  export type SelectOption = DefaultOptionType;
5
5
  export type { SelectProps } from 'antd';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vef-framework-react/components",
3
3
  "type": "module",
4
- "version": "2.1.5",
4
+ "version": "2.1.7",
5
5
  "private": false,
6
6
  "description": "Components for VEF Framework",
7
7
  "author": {
@@ -55,26 +55,26 @@
55
55
  "@emotion/react": "^11.14.0",
56
56
  "@emotion/serialize": "^1.3.3",
57
57
  "@gsap/react": "^2.1.2",
58
- "@lucide/icons": "^1.7.0",
58
+ "@lucide/icons": "^1.9.0",
59
59
  "@radix-ui/react-scroll-area": "^1.2.10",
60
- "@tanstack/react-form": "^1.28.6",
61
- "antd": "^6.3.5",
60
+ "@tanstack/react-form": "^1.29.1",
61
+ "antd": "^6.3.6",
62
62
  "antd-img-crop": "^4.30.0",
63
63
  "echarts": "^6.0.0",
64
64
  "echarts-for-react": "^3.0.6",
65
- "gsap": "^3.14.1",
66
- "lucide-react": "^1.7.0",
65
+ "gsap": "^3.15.0",
66
+ "lucide-react": "^1.9.0",
67
67
  "modern-normalize": "^3.0.1",
68
68
  "react-error-boundary": "^6.1.1",
69
69
  "react-syntax-highlighter": "^16.1.1",
70
70
  "tslib": "^2.8.1",
71
- "@vef-framework-react/core": "2.1.5",
72
- "@vef-framework-react/shared": "2.1.5",
73
- "@vef-framework-react/hooks": "2.1.5"
71
+ "@vef-framework-react/core": "2.1.7",
72
+ "@vef-framework-react/hooks": "2.1.7",
73
+ "@vef-framework-react/shared": "2.1.7"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@types/react-syntax-highlighter": "^15.5.13",
77
- "react": "^19.2.4"
77
+ "react": "^19.2.5"
78
78
  },
79
79
  "scripts": {
80
80
  "clean": "rimraf dist",
@@ -1 +0,0 @@
1
- require(`../../_internal/_rolldown/runtime.cjs`);const e=require(`../../icon/index.cjs`),t=require(`../../form/form.cjs`);let n=require(`@emotion/react/jsx-runtime`),r=require(`react`),i=require(`lucide-react`);var a={children:`提交`,icon:(0,n.jsx)(e.Icon,{component:i.CheckIcon})},o={children:`重置`};function s({submitButtonProps:e=a,resetButtonProps:i=o,onReset:s}){let{ResetButton:c,SubmitButton:l,handleSubmit:u,reset:d}=t.useFormContext(),f=(0,r.useCallback)(()=>{d(),s?.()},[d,s]);return(0,n.jsxs)(n.Fragment,{children:[i&&(0,n.jsx)(c,{...i,onReset:f}),(0,n.jsx)(l,{...e,onSubmit:u})]})}var c=(0,r.memo)(s);c.displayName=`FormActions`,exports.FormActions=c;
@@ -1 +0,0 @@
1
- require(`./form-actions.cjs`);
@@ -1 +0,0 @@
1
- require(`../../_internal/_rolldown/runtime.cjs`);let e=require(`@emotion/react/jsx-runtime`),t=require(`react`);require(`@emotion/react`);let n=require(`@vef-framework-react/core`);function r(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}var i=process.env.NODE_ENV===`production`?{name:`18m26ff`,styles:`cursor:move;user-select:none`}:{name:`18m26ff`,styles:`cursor:move;user-select:none/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRyYWdnYWJsZS13cmFwcGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhbUIiLCJmaWxlIjoiZHJhZ2dhYmxlLXdyYXBwZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHZXRQcm9wIH0gZnJvbSBcIi4uLy4uL19iYXNlXCI7XG5pbXBvcnQgdHlwZSB7IE1vZGFsUHJvcHMgfSBmcm9tIFwiLi4vLi4vbW9kYWxcIjtcbmltcG9ydCB0eXBlIHsgUG9pbnRlckV2ZW50SGFuZGxlciwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgeyBtb3Rpb24sIHVzZURyYWdDb250cm9scyB9IGZyb20gXCJAdmVmLWZyYW1ld29yay1yZWFjdC9jb3JlXCI7XG5pbXBvcnQgeyBjbG9uZUVsZW1lbnQsIG1lbW8sIHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuaW50ZXJmYWNlIERyYWdnYWJsZVdyYXBwZXJQcm9wcyB7XG4gIHRpdGxlOiBSZWFjdE5vZGU7XG4gIGNoaWxkcmVuOiBSZWFjdEVsZW1lbnQ8TW9kYWxQcm9wcz47XG59XG5cbmNvbnN0IHRpdGxlU3R5bGUgPSBjc3Moe1xuICBjdXJzb3I6IFwibW92ZVwiLFxuICB1c2VyU2VsZWN0OiBcIm5vbmVcIlxufSk7XG5cbmNvbnN0IGNvbnN0cmFpbnRzU3R5bGUgPSBjc3Moe1xuICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICBpbnNldDogMCxcbiAgcG9pbnRlckV2ZW50czogXCJub25lXCJcbn0pO1xuXG5mdW5jdGlvbiBEcmFnZ2FibGVXcmFwcGVyQmFzZSh7IHRpdGxlLCBjaGlsZHJlbiB9OiBEcmFnZ2FibGVXcmFwcGVyUHJvcHMpOiBSZWFjdEVsZW1lbnQge1xuICBjb25zdCBkcmFnQ29udHJvbHMgPSB1c2VEcmFnQ29udHJvbHMoKTtcbiAgY29uc3QgY29uc3RyYWludHNSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IGhhbmRsZURyYWcgPSB1c2VDYWxsYmFjazxQb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50Pj4oZXZlbnQgPT4ge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRyYWdDb250cm9scy5zdGFydChldmVudCk7XG4gIH0sIFtkcmFnQ29udHJvbHNdKTtcblxuICBjb25zdCBtb2RhbFJlbmRlciA9IHVzZUNhbGxiYWNrPEdldFByb3A8TW9kYWxQcm9wcywgXCJtb2RhbFJlbmRlclwiPj4obm9kZSA9PiAoXG4gICAgPD5cbiAgICAgIDxkaXYgcmVmPXtjb25zdHJhaW50c1JlZn0gY3NzPXtjb25zdHJhaW50c1N0eWxlfSAvPlxuXG4gICAgICA8bW90aW9uLmRpdlxuICAgICAgICBkcmFnXG4gICAgICAgIGRyYWdDb25zdHJhaW50cz17Y29uc3RyYWludHNSZWZ9XG4gICAgICAgIGRyYWdDb250cm9scz17ZHJhZ0NvbnRyb2xzfVxuICAgICAgICBkcmFnRWxhc3RpYz17MC4zfVxuICAgICAgICBkcmFnTGlzdGVuZXI9e2ZhbHNlfVxuICAgICAgICBkcmFnTW9tZW50dW09e2ZhbHNlfVxuICAgICAgPlxuICAgICAgICB7bm9kZX1cbiAgICAgIDwvbW90aW9uLmRpdj5cbiAgICA8Lz5cbiAgKSwgW2RyYWdDb250cm9sc10pO1xuXG4gIGNvbnN0IHRpdGxlQ29udGVudCA9IHVzZU1lbW8oKCkgPT4gKFxuICAgIDxkaXYgY3NzPXt0aXRsZVN0eWxlfSBvblBvaW50ZXJEb3duPXtoYW5kbGVEcmFnfT5cbiAgICAgIHt0aXRsZX1cbiAgICA8L2Rpdj5cbiAgKSwgW3RpdGxlLCBoYW5kbGVEcmFnXSk7XG5cbiAgcmV0dXJuIGNsb25lRWxlbWVudChjaGlsZHJlbiwge1xuICAgIG1vZGFsUmVuZGVyLFxuICAgIHRpdGxlOiB0aXRsZUNvbnRlbnRcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBEcmFnZ2FibGVXcmFwcGVyID0gbWVtbyhEcmFnZ2FibGVXcmFwcGVyQmFzZSk7XG5EcmFnZ2FibGVXcmFwcGVyLmRpc3BsYXlOYW1lID0gXCJEcmFnZ2FibGVXcmFwcGVyXCI7XG4iXX0= */`,toString:r},a=process.env.NODE_ENV===`production`?{name:`t9e9jk`,styles:`position:fixed;inset:0;pointer-events:none`}:{name:`t9e9jk`,styles:`position:fixed;inset:0;pointer-events:none/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRyYWdnYWJsZS13cmFwcGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQnlCIiwiZmlsZSI6ImRyYWdnYWJsZS13cmFwcGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgR2V0UHJvcCB9IGZyb20gXCIuLi8uLi9fYmFzZVwiO1xuaW1wb3J0IHR5cGUgeyBNb2RhbFByb3BzIH0gZnJvbSBcIi4uLy4uL21vZGFsXCI7XG5pbXBvcnQgdHlwZSB7IFBvaW50ZXJFdmVudEhhbmRsZXIsIFJlYWN0RWxlbWVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgbW90aW9uLCB1c2VEcmFnQ29udHJvbHMgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmstcmVhY3QvY29yZVwiO1xuaW1wb3J0IHsgY2xvbmVFbGVtZW50LCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbmludGVyZmFjZSBEcmFnZ2FibGVXcmFwcGVyUHJvcHMge1xuICB0aXRsZTogUmVhY3ROb2RlO1xuICBjaGlsZHJlbjogUmVhY3RFbGVtZW50PE1vZGFsUHJvcHM+O1xufVxuXG5jb25zdCB0aXRsZVN0eWxlID0gY3NzKHtcbiAgY3Vyc29yOiBcIm1vdmVcIixcbiAgdXNlclNlbGVjdDogXCJub25lXCJcbn0pO1xuXG5jb25zdCBjb25zdHJhaW50c1N0eWxlID0gY3NzKHtcbiAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgaW5zZXQ6IDAsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiXG59KTtcblxuZnVuY3Rpb24gRHJhZ2dhYmxlV3JhcHBlckJhc2UoeyB0aXRsZSwgY2hpbGRyZW4gfTogRHJhZ2dhYmxlV3JhcHBlclByb3BzKTogUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgZHJhZ0NvbnRyb2xzID0gdXNlRHJhZ0NvbnRyb2xzKCk7XG4gIGNvbnN0IGNvbnN0cmFpbnRzUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICBjb25zdCBoYW5kbGVEcmFnID0gdXNlQ2FsbGJhY2s8UG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD4+KGV2ZW50ID0+IHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBkcmFnQ29udHJvbHMuc3RhcnQoZXZlbnQpO1xuICB9LCBbZHJhZ0NvbnRyb2xzXSk7XG5cbiAgY29uc3QgbW9kYWxSZW5kZXIgPSB1c2VDYWxsYmFjazxHZXRQcm9wPE1vZGFsUHJvcHMsIFwibW9kYWxSZW5kZXJcIj4+KG5vZGUgPT4gKFxuICAgIDw+XG4gICAgICA8ZGl2IHJlZj17Y29uc3RyYWludHNSZWZ9IGNzcz17Y29uc3RyYWludHNTdHlsZX0gLz5cblxuICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgZHJhZ1xuICAgICAgICBkcmFnQ29uc3RyYWludHM9e2NvbnN0cmFpbnRzUmVmfVxuICAgICAgICBkcmFnQ29udHJvbHM9e2RyYWdDb250cm9sc31cbiAgICAgICAgZHJhZ0VsYXN0aWM9ezAuM31cbiAgICAgICAgZHJhZ0xpc3RlbmVyPXtmYWxzZX1cbiAgICAgICAgZHJhZ01vbWVudHVtPXtmYWxzZX1cbiAgICAgID5cbiAgICAgICAge25vZGV9XG4gICAgICA8L21vdGlvbi5kaXY+XG4gICAgPC8+XG4gICksIFtkcmFnQ29udHJvbHNdKTtcblxuICBjb25zdCB0aXRsZUNvbnRlbnQgPSB1c2VNZW1vKCgpID0+IChcbiAgICA8ZGl2IGNzcz17dGl0bGVTdHlsZX0gb25Qb2ludGVyRG93bj17aGFuZGxlRHJhZ30+XG4gICAgICB7dGl0bGV9XG4gICAgPC9kaXY+XG4gICksIFt0aXRsZSwgaGFuZGxlRHJhZ10pO1xuXG4gIHJldHVybiBjbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICBtb2RhbFJlbmRlcixcbiAgICB0aXRsZTogdGl0bGVDb250ZW50XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgRHJhZ2dhYmxlV3JhcHBlciA9IG1lbW8oRHJhZ2dhYmxlV3JhcHBlckJhc2UpO1xuRHJhZ2dhYmxlV3JhcHBlci5kaXNwbGF5TmFtZSA9IFwiRHJhZ2dhYmxlV3JhcHBlclwiO1xuIl19 */`,toString:r};function o({title:r,children:o}){let s=(0,n.useDragControls)(),c=(0,t.useRef)(null),l=(0,t.useCallback)(e=>{e.stopPropagation(),s.start(e)},[s]),u=(0,t.useCallback)(t=>(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(`div`,{ref:c,css:a}),(0,e.jsx)(n.motion.div,{drag:!0,dragConstraints:c,dragControls:s,dragElastic:.3,dragListener:!1,dragMomentum:!1,children:t})]}),[s]),d=(0,t.useMemo)(()=>(0,e.jsx)(`div`,{css:i,onPointerDown:l,children:r}),[r,l]);return(0,t.cloneElement)(o,{modalRender:u,title:d})}var s=(0,t.memo)(o);s.displayName=`DraggableWrapper`,exports.DraggableWrapper=s;
@@ -1 +0,0 @@
1
- require(`../../_internal/_rolldown/runtime.cjs`);const e=require(`../../icon/index.cjs`),t=require(`../../form/form.cjs`);let n=require(`@emotion/react/jsx-runtime`),r=require(`react`),i=require(`lucide-react`);var a={children:`提交`,icon:(0,n.jsx)(e.Icon,{component:i.CheckIcon})},o={children:`重置`};function s({submitButtonProps:e=a,resetButtonProps:i=o,onReset:s}){let{ResetButton:c,SubmitButton:l,handleSubmit:u,reset:d}=t.useFormContext(),f=(0,r.useCallback)(()=>{d(),s?.()},[d,s]);return(0,n.jsxs)(n.Fragment,{children:[i&&(0,n.jsx)(c,{...i,onReset:f}),(0,n.jsx)(l,{...e,onSubmit:u})]})}var c=(0,r.memo)(s);c.displayName=`FormActions`,exports.FormActions=c;
@@ -1 +0,0 @@
1
- require(`./draggable-wrapper.cjs`),require(`./form-actions.cjs`);
@@ -1,26 +0,0 @@
1
- /*! @vef-framework-react/components v2.1.5 made by Venus | 2026-03-31T12:34:37.574Z */
2
- import { Icon as e } from "../../icon/index.js";
3
- import { useFormContext as t } from "../../form/form.js";
4
- import { Fragment as n, jsx as r, jsxs as i } from "@emotion/react/jsx-runtime";
5
- import { memo as a, useCallback as o } from "react";
6
- import { CheckIcon as s } from "lucide-react";
7
- var c = {
8
- children: "提交",
9
- icon: /* @__PURE__ */ r(e, { component: s })
10
- }, l = { children: "重置" };
11
- function u({ submitButtonProps: e = c, resetButtonProps: a = l, onReset: s }) {
12
- let { ResetButton: u, SubmitButton: d, handleSubmit: f, reset: p } = t(), m = o(() => {
13
- p(), s?.();
14
- }, [p, s]);
15
- return /* @__PURE__ */ i(n, { children: [a && /* @__PURE__ */ r(u, {
16
- ...a,
17
- onReset: m
18
- }), /* @__PURE__ */ r(d, {
19
- ...e,
20
- onSubmit: f
21
- })] });
22
- }
23
- var d = a(u);
24
- d.displayName = "FormActions";
25
- //#endregion
26
- export { d as FormActions };
@@ -1,2 +0,0 @@
1
- /*! @vef-framework-react/components v2.1.5 made by Venus | 2026-03-31T12:34:37.574Z */
2
- import "./form-actions.js";