nuxt-ui-tools 0.1.2 → 1.0.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 (899) hide show
  1. package/dist/module.d.mts +2 -0
  2. package/dist/module.json +5 -5
  3. package/dist/module.mjs +239 -67
  4. package/dist/runtime/form/components/actions/{FormActions.vue → form-actions.vue} +45 -22
  5. package/dist/runtime/form/components/layout/{DrawerLayout.vue → drawer-layout.vue} +13 -10
  6. package/dist/runtime/form/components/layout/{FullscreenLayout.vue → fullscreen-layout.vue} +1 -1
  7. package/dist/runtime/form/components/layout/{ModalLayout.vue → modal-layout.vue} +7 -5
  8. package/dist/runtime/form/components/provider/{FormOverlayHost.vue → form-overlay-host.vue} +7 -5
  9. package/dist/runtime/form/components/provider/{FormProvider.vue → form-provider.vue} +2 -2
  10. package/dist/runtime/form/components/renderer/{FormCompositeControl.vue → form-composite-control.vue} +1 -1
  11. package/dist/runtime/{spreadsheet/components/shared/SpreadsheetObjectPreviewTable.d.vue.ts → form/components/renderer/form-field-error.d.vue.ts} +2 -1
  12. package/dist/runtime/form/components/renderer/form-field-error.vue +16 -0
  13. package/dist/runtime/{spreadsheet/components/shared/SpreadsheetObjectPreviewTable.vue.d.ts → form/components/renderer/form-field-error.vue.d.ts} +2 -1
  14. package/dist/runtime/form/components/renderer/{FormFieldRenderer.d.vue.ts → form-field-renderer.d.vue.ts} +2 -1
  15. package/dist/runtime/form/components/renderer/{FormFieldRenderer.vue → form-field-renderer.vue} +64 -15
  16. package/dist/runtime/form/components/renderer/{FormFieldRenderer.vue.d.ts → form-field-renderer.vue.d.ts} +2 -1
  17. package/dist/runtime/form/components/renderer/{FormFieldShell.d.vue.ts → form-field-shell.d.vue.ts} +7 -7
  18. package/dist/runtime/form/components/renderer/{FormFieldShell.vue → form-field-shell.vue} +120 -18
  19. package/dist/runtime/form/components/renderer/{FormFieldShell.vue.d.ts → form-field-shell.vue.d.ts} +7 -7
  20. package/dist/runtime/form/components/renderer/form-field-status.d.vue.ts +22 -0
  21. package/dist/runtime/form/components/renderer/form-field-status.vue +24 -0
  22. package/dist/runtime/form/components/renderer/form-field-status.vue.d.ts +22 -0
  23. package/dist/runtime/form/components/root/{Form.d.vue.ts → form.d.vue.ts} +12 -13
  24. package/dist/runtime/form/components/root/form.vue +510 -0
  25. package/dist/runtime/form/components/root/{Form.vue.d.ts → form.vue.d.ts} +12 -13
  26. package/dist/runtime/form/components/utils/form-directional-transition.d.vue.ts +22 -0
  27. package/dist/runtime/form/components/utils/form-directional-transition.vue +26 -0
  28. package/dist/runtime/form/components/utils/form-directional-transition.vue.d.ts +22 -0
  29. package/dist/runtime/form/components/utils/form-file-preview.d.vue.ts +10 -0
  30. package/dist/runtime/form/components/utils/form-file-preview.vue +127 -0
  31. package/dist/runtime/form/components/utils/form-file-preview.vue.d.ts +10 -0
  32. package/dist/runtime/form/components/utils/form-option-item-label.d.vue.ts +7 -0
  33. package/dist/runtime/form/components/utils/form-option-item-label.vue +30 -0
  34. package/dist/runtime/form/components/utils/form-option-item-label.vue.d.ts +7 -0
  35. package/dist/runtime/form/components/utils/form-option-menu-footer.d.vue.ts +14 -0
  36. package/dist/runtime/form/components/utils/form-option-menu-footer.vue +120 -0
  37. package/dist/runtime/form/components/utils/form-option-menu-footer.vue.d.ts +14 -0
  38. package/dist/runtime/form/composables/use-field-control.d.ts +48 -18
  39. package/dist/runtime/form/composables/use-field-control.js +193 -86
  40. package/dist/runtime/form/composables/use-field-effects.d.ts +2 -0
  41. package/dist/runtime/form/composables/use-field-effects.js +74 -0
  42. package/dist/runtime/form/composables/use-field-options.d.ts +23 -11
  43. package/dist/runtime/form/composables/use-field-options.js +199 -67
  44. package/dist/runtime/form/composables/use-form-actions.js +51 -26
  45. package/dist/runtime/form/composables/use-form-api.js +45 -28
  46. package/dist/runtime/form/composables/use-form-context-resources.d.ts +2 -2
  47. package/dist/runtime/form/composables/use-form-context-resources.js +37 -27
  48. package/dist/runtime/form/composables/use-form-focus.d.ts +3 -3
  49. package/dist/runtime/form/composables/use-form-focus.js +22 -11
  50. package/dist/runtime/form/composables/use-form-layout.d.ts +1 -1
  51. package/dist/runtime/form/composables/use-form-option-registry.d.ts +1 -1
  52. package/dist/runtime/form/composables/use-form-option-registry.js +35 -17
  53. package/dist/runtime/form/composables/use-form-overlay-controller.d.ts +6 -6
  54. package/dist/runtime/form/composables/use-form-overlay-controller.js +18 -12
  55. package/dist/runtime/form/composables/use-form-runtime.d.ts +1 -2
  56. package/dist/runtime/form/composables/use-form-runtime.js +388 -188
  57. package/dist/runtime/form/composables/use-form-state.d.ts +14 -10
  58. package/dist/runtime/form/composables/use-form-state.js +47 -14
  59. package/dist/runtime/form/composables/use-form-submission.d.ts +13 -0
  60. package/dist/runtime/form/composables/use-form-submission.js +74 -0
  61. package/dist/runtime/form/composables/use-form-ui.d.ts +5 -5
  62. package/dist/runtime/form/composables/use-form-ui.js +6 -4
  63. package/dist/runtime/form/composables/use-form-upload-registry.d.ts +1 -1
  64. package/dist/runtime/form/composables/use-form-upload-registry.js +4 -2
  65. package/dist/runtime/form/composables/use-form-validation.d.ts +22 -12
  66. package/dist/runtime/form/composables/use-form-validation.js +1012 -55
  67. package/dist/runtime/form/composables/use-form.d.ts +2 -2
  68. package/dist/runtime/form/composables/use-form.js +53 -44
  69. package/dist/runtime/form/composables/use-remote-field-options.d.ts +29 -0
  70. package/dist/runtime/form/composables/use-remote-field-options.js +468 -0
  71. package/dist/runtime/form/fields/array-collapse/component.d.vue.ts +8 -0
  72. package/dist/runtime/form/fields/array-collapse/component.vue +295 -0
  73. package/dist/runtime/form/fields/array-collapse/component.vue.d.ts +8 -0
  74. package/dist/runtime/form/fields/array-collapse/config.d.ts +12 -0
  75. package/dist/runtime/form/fields/array-collapse/config.js +7 -0
  76. package/dist/runtime/form/fields/array-collapse/index.d.ts +2 -0
  77. package/dist/runtime/form/fields/array-collapse/index.js +1 -0
  78. package/dist/runtime/form/fields/array-collapse/types.d.ts +13 -0
  79. package/dist/runtime/form/fields/array-collapse/types.js +0 -0
  80. package/dist/runtime/form/fields/array-list/component.vue +223 -330
  81. package/dist/runtime/form/fields/array-list/config.d.ts +6 -6
  82. package/dist/runtime/form/fields/array-list/config.js +3 -3
  83. package/dist/runtime/form/fields/array-list/types.d.ts +23 -15
  84. package/dist/runtime/form/fields/array-list/use-array-items.d.ts +56 -0
  85. package/dist/runtime/form/fields/array-list/use-array-items.js +263 -0
  86. package/dist/runtime/form/fields/array-primitive/component.d.vue.ts +8 -0
  87. package/dist/runtime/form/fields/array-primitive/component.vue +274 -0
  88. package/dist/runtime/form/fields/array-primitive/component.vue.d.ts +8 -0
  89. package/dist/runtime/form/fields/array-primitive/config.d.ts +14 -0
  90. package/dist/runtime/form/fields/array-primitive/config.js +9 -0
  91. package/dist/runtime/form/fields/array-primitive/index.d.ts +2 -0
  92. package/dist/runtime/form/fields/array-primitive/index.js +1 -0
  93. package/dist/runtime/form/fields/array-primitive/types.d.ts +52 -0
  94. package/dist/runtime/form/fields/array-primitive/types.js +0 -0
  95. package/dist/runtime/form/fields/array-table/component.vue +192 -271
  96. package/dist/runtime/form/fields/array-table/config.d.ts +6 -6
  97. package/dist/runtime/form/fields/array-table/config.js +3 -3
  98. package/dist/runtime/form/fields/array-table/types.d.ts +5 -3
  99. package/dist/runtime/form/fields/array-tabs/config.d.ts +6 -6
  100. package/dist/runtime/form/fields/array-tabs/config.js +3 -3
  101. package/dist/runtime/form/fields/array-tabs/types.d.ts +7 -5
  102. package/dist/runtime/form/fields/array-variant/config.d.ts +6 -6
  103. package/dist/runtime/form/fields/array-variant/config.js +3 -3
  104. package/dist/runtime/form/fields/array-variant/types.d.ts +9 -11
  105. package/dist/runtime/form/fields/auto-complete/component.vue +72 -50
  106. package/dist/runtime/form/fields/auto-complete/config.d.ts +8 -8
  107. package/dist/runtime/form/fields/auto-complete/config.js +5 -5
  108. package/dist/runtime/form/fields/auto-complete/types.d.ts +8 -6
  109. package/dist/runtime/form/fields/button/component.vue +4 -4
  110. package/dist/runtime/form/fields/button/config.d.ts +2 -2
  111. package/dist/runtime/form/fields/button/config.js +2 -2
  112. package/dist/runtime/form/fields/button/types.d.ts +4 -2
  113. package/dist/runtime/form/fields/card/component.vue +6 -5
  114. package/dist/runtime/form/fields/card/config.d.ts +6 -6
  115. package/dist/runtime/form/fields/card/config.js +3 -3
  116. package/dist/runtime/form/fields/card/types.d.ts +1 -1
  117. package/dist/runtime/form/fields/cascader/config.d.ts +8 -8
  118. package/dist/runtime/form/fields/cascader/config.js +5 -5
  119. package/dist/runtime/form/fields/checkbox/component.vue +1 -1
  120. package/dist/runtime/form/fields/checkbox/config.d.ts +6 -6
  121. package/dist/runtime/form/fields/checkbox/config.js +5 -5
  122. package/dist/runtime/form/fields/checkbox/types.d.ts +1 -1
  123. package/dist/runtime/form/fields/checkbox-card/component.vue +16 -6
  124. package/dist/runtime/form/fields/checkbox-card/config.d.ts +8 -8
  125. package/dist/runtime/form/fields/checkbox-card/config.js +5 -5
  126. package/dist/runtime/form/fields/checkbox-card/types.d.ts +9 -4
  127. package/dist/runtime/form/fields/checkbox-group/component.vue +17 -7
  128. package/dist/runtime/form/fields/checkbox-group/config.d.ts +8 -8
  129. package/dist/runtime/form/fields/checkbox-group/config.js +5 -5
  130. package/dist/runtime/form/fields/checkbox-group/types.d.ts +4 -2
  131. package/dist/runtime/form/fields/color-picker/component.vue +41 -16
  132. package/dist/runtime/form/fields/color-picker/config.d.ts +6 -6
  133. package/dist/runtime/form/fields/color-picker/config.js +5 -5
  134. package/dist/runtime/form/fields/color-picker/types.d.ts +2 -1
  135. package/dist/runtime/form/fields/column/component.vue +1 -1
  136. package/dist/runtime/form/fields/column/config.d.ts +3 -3
  137. package/dist/runtime/form/fields/column/config.js +2 -2
  138. package/dist/runtime/form/fields/column/types.d.ts +1 -1
  139. package/dist/runtime/form/fields/custom-component/component.vue +1 -1
  140. package/dist/runtime/form/fields/custom-component/config.d.ts +6 -6
  141. package/dist/runtime/form/fields/custom-component/config.js +5 -5
  142. package/dist/runtime/form/fields/custom-component/types.d.ts +3 -2
  143. package/dist/runtime/form/fields/date/component.d.vue.ts +1 -1
  144. package/dist/runtime/form/fields/date/component.vue +3 -323
  145. package/dist/runtime/form/fields/date/component.vue.d.ts +1 -1
  146. package/dist/runtime/form/fields/date/config.d.ts +6 -6
  147. package/dist/runtime/form/fields/date/config.js +5 -5
  148. package/dist/runtime/form/fields/date/types.d.ts +7 -13
  149. package/dist/runtime/form/fields/date-family/component.d.vue.ts +2 -1
  150. package/dist/runtime/form/fields/date-family/component.vue +500 -95
  151. package/dist/runtime/form/fields/date-family/component.vue.d.ts +2 -1
  152. package/dist/runtime/form/fields/date-family/types.d.ts +28 -12
  153. package/dist/runtime/form/fields/date-family/utils.d.ts +33 -0
  154. package/dist/runtime/form/fields/date-family/utils.js +370 -0
  155. package/dist/runtime/form/fields/date-range/config.d.ts +6 -6
  156. package/dist/runtime/form/fields/date-range/config.js +5 -5
  157. package/dist/runtime/form/fields/date-time/config.d.ts +6 -6
  158. package/dist/runtime/form/fields/date-time/config.js +5 -5
  159. package/dist/runtime/form/fields/date-time-range/config.d.ts +6 -6
  160. package/dist/runtime/form/fields/date-time-range/config.js +5 -5
  161. package/dist/runtime/form/fields/divider/config.d.ts +2 -2
  162. package/dist/runtime/form/fields/divider/config.js +2 -2
  163. package/dist/runtime/form/fields/divider/types.d.ts +1 -1
  164. package/dist/runtime/form/fields/file/component.vue +63 -12
  165. package/dist/runtime/form/fields/file/config.d.ts +6 -6
  166. package/dist/runtime/form/fields/file/config.js +5 -5
  167. package/dist/runtime/form/fields/file/types.d.ts +13 -3
  168. package/dist/runtime/form/fields/group/component.vue +7 -3
  169. package/dist/runtime/form/fields/group/config.d.ts +6 -6
  170. package/dist/runtime/form/fields/group/config.js +3 -3
  171. package/dist/runtime/form/fields/group/types.d.ts +1 -1
  172. package/dist/runtime/form/fields/hidden/component.vue +7 -2
  173. package/dist/runtime/form/fields/hidden/config.d.ts +2 -2
  174. package/dist/runtime/form/fields/hidden/config.js +3 -3
  175. package/dist/runtime/form/fields/hidden/types.d.ts +3 -3
  176. package/dist/runtime/form/fields/hierarchy/component.vue +230 -80
  177. package/dist/runtime/form/fields/hierarchy/{SelectionRadio.vue → selection-radio.vue} +1 -1
  178. package/dist/runtime/form/fields/hierarchy/types.d.ts +21 -11
  179. package/dist/runtime/form/fields/hierarchy/utils.d.ts +1 -1
  180. package/dist/runtime/form/fields/hierarchy/utils.js +18 -7
  181. package/dist/runtime/form/fields/index.d.ts +236 -246
  182. package/dist/runtime/form/fields/index.js +9 -49
  183. package/dist/runtime/form/fields/info/component.vue +12 -10
  184. package/dist/runtime/form/fields/info/config.d.ts +2 -2
  185. package/dist/runtime/form/fields/info/config.js +2 -2
  186. package/dist/runtime/form/fields/info/types.d.ts +8 -2
  187. package/dist/runtime/form/fields/input-group/component.vue +50 -4
  188. package/dist/runtime/form/fields/input-group/config.d.ts +6 -6
  189. package/dist/runtime/form/fields/input-group/config.js +3 -3
  190. package/dist/runtime/form/fields/input-group/types.d.ts +3 -1
  191. package/dist/runtime/form/fields/matrix/component.vue +44 -9
  192. package/dist/runtime/form/fields/matrix/config.d.ts +7 -7
  193. package/dist/runtime/form/fields/matrix/config.js +5 -5
  194. package/dist/runtime/form/fields/matrix/types.d.ts +9 -2
  195. package/dist/runtime/form/fields/month/config.d.ts +6 -6
  196. package/dist/runtime/form/fields/month/config.js +5 -5
  197. package/dist/runtime/form/fields/month-range/config.d.ts +6 -6
  198. package/dist/runtime/form/fields/month-range/config.js +5 -5
  199. package/dist/runtime/form/fields/number/component.vue +115 -21
  200. package/dist/runtime/form/fields/number/config.d.ts +6 -6
  201. package/dist/runtime/form/fields/number/config.js +5 -5
  202. package/dist/runtime/form/fields/number/types.d.ts +8 -1
  203. package/dist/runtime/form/fields/object/component.vue +3 -3
  204. package/dist/runtime/form/fields/object/config.d.ts +7 -7
  205. package/dist/runtime/form/fields/object/config.js +4 -4
  206. package/dist/runtime/form/fields/object/types.d.ts +3 -2
  207. package/dist/runtime/form/fields/one-time-code/component.vue +21 -9
  208. package/dist/runtime/form/fields/one-time-code/config.d.ts +6 -6
  209. package/dist/runtime/form/fields/one-time-code/config.js +5 -5
  210. package/dist/runtime/form/fields/one-time-code/types.d.ts +2 -1
  211. package/dist/runtime/form/fields/password/component.vue +66 -10
  212. package/dist/runtime/form/fields/password/config.d.ts +6 -6
  213. package/dist/runtime/form/fields/password/config.js +5 -5
  214. package/dist/runtime/form/fields/password/types.d.ts +10 -1
  215. package/dist/runtime/form/fields/phone-number/component.vue +95 -34
  216. package/dist/runtime/form/fields/phone-number/config.d.ts +6 -6
  217. package/dist/runtime/form/fields/phone-number/config.js +5 -5
  218. package/dist/runtime/form/fields/phone-number/types.d.ts +4 -1
  219. package/dist/runtime/form/fields/radio/component.vue +9 -3
  220. package/dist/runtime/form/fields/radio/config.d.ts +8 -8
  221. package/dist/runtime/form/fields/radio/config.js +5 -5
  222. package/dist/runtime/form/fields/radio/types.d.ts +6 -1
  223. package/dist/runtime/form/fields/radio-card/component.vue +24 -5
  224. package/dist/runtime/form/fields/radio-card/config.d.ts +8 -8
  225. package/dist/runtime/form/fields/radio-card/config.js +5 -5
  226. package/dist/runtime/form/fields/radio-card/types.d.ts +4 -2
  227. package/dist/runtime/form/fields/rating/component.vue +25 -15
  228. package/dist/runtime/form/fields/rating/config.d.ts +6 -6
  229. package/dist/runtime/form/fields/rating/config.js +5 -5
  230. package/dist/runtime/form/fields/rating/types.d.ts +2 -1
  231. package/dist/runtime/form/fields/section/component.d.vue.ts +8 -0
  232. package/dist/runtime/form/fields/section/component.vue +46 -0
  233. package/dist/runtime/form/fields/section/component.vue.d.ts +8 -0
  234. package/dist/runtime/form/fields/section/config.d.ts +7 -0
  235. package/dist/runtime/form/fields/section/config.js +6 -0
  236. package/dist/runtime/form/fields/section/index.d.ts +2 -0
  237. package/dist/runtime/form/fields/section/index.js +1 -0
  238. package/dist/runtime/form/fields/section/types.d.ts +10 -0
  239. package/dist/runtime/form/fields/section/types.js +0 -0
  240. package/dist/runtime/form/fields/select/component.vue +103 -87
  241. package/dist/runtime/form/fields/select/config.d.ts +8 -8
  242. package/dist/runtime/form/fields/select/config.js +5 -5
  243. package/dist/runtime/form/fields/select/types.d.ts +9 -6
  244. package/dist/runtime/form/fields/slider/component.vue +16 -11
  245. package/dist/runtime/form/fields/slider/config.d.ts +6 -6
  246. package/dist/runtime/form/fields/slider/config.js +5 -5
  247. package/dist/runtime/form/fields/slider/types.d.ts +4 -2
  248. package/dist/runtime/form/fields/switch/component.vue +10 -9
  249. package/dist/runtime/form/fields/switch/config.d.ts +6 -6
  250. package/dist/runtime/form/fields/switch/config.js +5 -5
  251. package/dist/runtime/form/fields/switch/types.d.ts +6 -9
  252. package/dist/runtime/form/fields/switch-group/component.vue +7 -6
  253. package/dist/runtime/form/fields/switch-group/config.d.ts +8 -8
  254. package/dist/runtime/form/fields/switch-group/config.js +5 -5
  255. package/dist/runtime/form/fields/switch-group/types.d.ts +4 -2
  256. package/dist/runtime/form/fields/tabs/component.d.vue.ts +9 -0
  257. package/dist/runtime/form/fields/tabs/component.vue +116 -0
  258. package/dist/runtime/form/fields/tabs/component.vue.d.ts +9 -0
  259. package/dist/runtime/form/fields/tabs/config.d.ts +8 -0
  260. package/dist/runtime/form/fields/tabs/config.js +6 -0
  261. package/dist/runtime/form/fields/tabs/index.d.ts +2 -0
  262. package/dist/runtime/form/fields/tabs/index.js +1 -0
  263. package/dist/runtime/form/fields/tabs/types.d.ts +21 -0
  264. package/dist/runtime/form/fields/tabs/types.js +0 -0
  265. package/dist/runtime/form/fields/tag/component.vue +3 -2
  266. package/dist/runtime/form/fields/tag/config.d.ts +6 -6
  267. package/dist/runtime/form/fields/tag/config.js +5 -5
  268. package/dist/runtime/form/fields/tag/types.d.ts +1 -1
  269. package/dist/runtime/form/fields/text/component.vue +104 -15
  270. package/dist/runtime/form/fields/text/config.d.ts +6 -6
  271. package/dist/runtime/form/fields/text/config.js +5 -5
  272. package/dist/runtime/form/fields/text/types.d.ts +13 -1
  273. package/dist/runtime/form/fields/textarea/component.vue +9 -4
  274. package/dist/runtime/form/fields/textarea/config.d.ts +6 -6
  275. package/dist/runtime/form/fields/textarea/config.js +5 -5
  276. package/dist/runtime/form/fields/textarea/types.d.ts +6 -1
  277. package/dist/runtime/form/fields/time/component.vue +73 -182
  278. package/dist/runtime/form/fields/time/config.d.ts +6 -6
  279. package/dist/runtime/form/fields/time/config.js +5 -5
  280. package/dist/runtime/form/fields/time/types.d.ts +2 -1
  281. package/dist/runtime/form/fields/tree/config.d.ts +8 -8
  282. package/dist/runtime/form/fields/tree/config.js +5 -5
  283. package/dist/runtime/form/fields/tree-select/config.d.ts +8 -8
  284. package/dist/runtime/form/fields/tree-select/config.js +5 -5
  285. package/dist/runtime/form/fields/upload/component.vue +96 -20
  286. package/dist/runtime/form/fields/upload/config.d.ts +6 -6
  287. package/dist/runtime/form/fields/upload/config.js +5 -5
  288. package/dist/runtime/form/fields/upload/types.d.ts +20 -10
  289. package/dist/runtime/form/fields/year/config.d.ts +6 -6
  290. package/dist/runtime/form/fields/year/config.js +5 -5
  291. package/dist/runtime/form/index.d.ts +0 -1
  292. package/dist/runtime/form/index.js +0 -1
  293. package/dist/runtime/form/schema/index.d.ts +14 -14
  294. package/dist/runtime/form/types/actions.d.ts +3 -3
  295. package/dist/runtime/form/types/api.d.ts +80 -24
  296. package/dist/runtime/form/types/callbacks.d.ts +3 -2
  297. package/dist/runtime/form/types/context.d.ts +12 -9
  298. package/dist/runtime/form/types/controller.d.ts +13 -12
  299. package/dist/runtime/form/types/dependencies.d.ts +5 -4
  300. package/dist/runtime/form/types/field-base.d.ts +59 -26
  301. package/dist/runtime/form/types/field-output-utils.d.ts +3 -0
  302. package/dist/runtime/form/types/field-output.d.ts +8 -2
  303. package/dist/runtime/form/types/field.d.ts +9 -1
  304. package/dist/runtime/form/types/form-api.d.ts +14 -7
  305. package/dist/runtime/form/types/layout.d.ts +11 -0
  306. package/dist/runtime/form/types/options-runtime.d.ts +30 -23
  307. package/dist/runtime/form/types/options.d.ts +76 -5
  308. package/dist/runtime/form/types/output.d.ts +29 -16
  309. package/dist/runtime/form/types/overlay.d.ts +3 -2
  310. package/dist/runtime/form/types/runtime.d.ts +11 -8
  311. package/dist/runtime/form/types/schema.d.ts +31 -13
  312. package/dist/runtime/form/types/transform.d.ts +2 -1
  313. package/dist/runtime/form/types/ui.d.ts +54 -0
  314. package/dist/runtime/form/types/upload-runtime.d.ts +2 -1
  315. package/dist/runtime/form/types/utils.d.ts +2 -0
  316. package/dist/runtime/form/types/validation.d.ts +11 -3
  317. package/dist/runtime/form/utils/api.js +6 -5
  318. package/dist/runtime/form/utils/array.d.ts +2 -2
  319. package/dist/runtime/form/utils/array.js +11 -3
  320. package/dist/runtime/form/utils/compare.d.ts +2 -0
  321. package/dist/runtime/form/utils/compare.js +27 -0
  322. package/dist/runtime/form/utils/dependencies.js +16 -5
  323. package/dist/runtime/form/utils/field-instance.d.ts +1 -1
  324. package/dist/runtime/form/utils/field-instance.js +55 -29
  325. package/dist/runtime/form/utils/focus.js +22 -9
  326. package/dist/runtime/form/utils/layout.js +10 -3
  327. package/dist/runtime/form/utils/mask.d.ts +7 -0
  328. package/dist/runtime/form/utils/mask.js +44 -0
  329. package/dist/runtime/form/utils/options.d.ts +11 -5
  330. package/dist/runtime/form/utils/options.js +57 -19
  331. package/dist/runtime/form/utils/overlay.d.ts +8 -8
  332. package/dist/runtime/form/utils/overlay.js +22 -7
  333. package/dist/runtime/form/utils/predicate.d.ts +9 -0
  334. package/dist/runtime/form/utils/predicate.js +35 -0
  335. package/dist/runtime/form/utils/state.d.ts +21 -9
  336. package/dist/runtime/form/utils/state.js +504 -134
  337. package/dist/runtime/form/utils/text.d.ts +8 -1
  338. package/dist/runtime/form/utils/text.js +37 -2
  339. package/dist/runtime/form/utils/ui.d.ts +2 -2
  340. package/dist/runtime/form/utils/ui.js +30 -17
  341. package/dist/runtime/i18n/define-locale.js +14 -9
  342. package/dist/runtime/i18n/locales/en.js +291 -208
  343. package/dist/runtime/i18n/locales/fr.js +291 -208
  344. package/dist/runtime/i18n/types.d.ts +83 -0
  345. package/dist/runtime/i18n/use-locale.d.ts +1 -1
  346. package/dist/runtime/i18n/use-locale.js +9 -6
  347. package/dist/runtime/i18n/utils.d.ts +1 -1
  348. package/dist/runtime/i18n/utils.js +8 -5
  349. package/dist/runtime/query-prefetch/index.d.ts +2 -0
  350. package/dist/runtime/query-prefetch/index.js +2 -0
  351. package/dist/runtime/query-prefetch/plugins/link-prefetch.client.d.ts +2 -0
  352. package/dist/runtime/query-prefetch/plugins/link-prefetch.client.js +8 -0
  353. package/dist/runtime/query-prefetch/types/index.d.ts +2 -0
  354. package/dist/runtime/query-prefetch/types/index.js +2 -0
  355. package/dist/runtime/query-prefetch/types/page.d.ts +55 -0
  356. package/dist/runtime/query-prefetch/types/page.js +0 -0
  357. package/dist/runtime/query-prefetch/types/plan.d.ts +55 -0
  358. package/dist/runtime/query-prefetch/types/plan.js +0 -0
  359. package/dist/runtime/query-prefetch/utils/index.d.ts +3 -0
  360. package/dist/runtime/query-prefetch/utils/index.js +3 -0
  361. package/dist/runtime/query-prefetch/utils/page.d.ts +24 -0
  362. package/dist/runtime/query-prefetch/utils/page.js +63 -0
  363. package/dist/runtime/query-prefetch/utils/plan.d.ts +29 -0
  364. package/dist/runtime/query-prefetch/utils/plan.js +67 -0
  365. package/dist/runtime/query-prefetch/utils/prefetch-page.d.ts +17 -0
  366. package/dist/runtime/query-prefetch/utils/prefetch-page.js +57 -0
  367. package/dist/runtime/query-state/client.d.ts +6 -6
  368. package/dist/runtime/query-state/client.js +39 -20
  369. package/dist/runtime/query-state/codecs.js +13 -5
  370. package/dist/runtime/query-state/composables.d.ts +10 -8
  371. package/dist/runtime/query-state/composables.js +46 -25
  372. package/dist/runtime/shared/composables/use-range-select.d.ts +1 -1
  373. package/dist/runtime/shared/composables/use-range-select.js +4 -2
  374. package/dist/runtime/shared/composables/use-responsive-value.d.ts +4 -3
  375. package/dist/runtime/shared/composables/use-responsive-value.js +20 -11
  376. package/dist/runtime/shared/styles/scrollbars.css +1 -0
  377. package/dist/runtime/shared/styles/tokens.css +1 -0
  378. package/dist/runtime/shared/types/utils.d.ts +15 -12
  379. package/dist/runtime/shared/utils/object.d.ts +6 -4
  380. package/dist/runtime/shared/utils/object.js +53 -33
  381. package/dist/runtime/shared/utils/path.d.ts +6 -4
  382. package/dist/runtime/shared/utils/path.js +31 -13
  383. package/dist/runtime/shared/utils/predicate.d.ts +102 -209
  384. package/dist/runtime/shared/utils/predicate.js +50 -28
  385. package/dist/runtime/shared/utils/registry.js +1 -0
  386. package/dist/runtime/shared/utils/render.d.ts +1 -1
  387. package/dist/runtime/shared/utils/render.js +12 -4
  388. package/dist/runtime/shared/utils/responsive.d.ts +4 -3
  389. package/dist/runtime/shared/utils/responsive.js +45 -15
  390. package/dist/runtime/spreadsheet/components/shared/spreadsheet-object-preview-table.d.vue.ts +7 -0
  391. package/dist/runtime/spreadsheet/components/shared/{SpreadsheetObjectPreviewTable.vue → spreadsheet-object-preview-table.vue} +11 -8
  392. package/dist/runtime/spreadsheet/components/shared/spreadsheet-object-preview-table.vue.d.ts +7 -0
  393. package/dist/runtime/spreadsheet/components/shared/{SpreadsheetRawPreviewTable.vue → spreadsheet-raw-preview-table.vue} +2 -2
  394. package/dist/runtime/spreadsheet/components/shared/{SpreadsheetSummaryStats.d.vue.ts → spreadsheet-summary-stats.d.vue.ts} +2 -2
  395. package/dist/runtime/spreadsheet/components/shared/{SpreadsheetSummaryStats.vue.d.ts → spreadsheet-summary-stats.vue.d.ts} +2 -2
  396. package/dist/runtime/spreadsheet/components/shared/spreadsheet-value-preview.d.vue.ts +10 -0
  397. package/dist/runtime/spreadsheet/components/shared/{SpreadsheetValuePreview.vue → spreadsheet-value-preview.vue} +10 -3
  398. package/dist/runtime/spreadsheet/components/shared/spreadsheet-value-preview.vue.d.ts +10 -0
  399. package/dist/runtime/spreadsheet/components/{SpreadsheetImport.vue → spreadsheet-import.vue} +50 -26
  400. package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingSummary.d.vue.ts → spreadsheet-matching-summary.d.vue.ts} +2 -2
  401. package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingSummary.vue → spreadsheet-matching-summary.vue} +9 -3
  402. package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingSummary.vue.d.ts → spreadsheet-matching-summary.vue.d.ts} +2 -2
  403. package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingTable.d.vue.ts → spreadsheet-matching-table.d.vue.ts} +6 -6
  404. package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingTable.vue → spreadsheet-matching-table.vue} +18 -12
  405. package/dist/runtime/spreadsheet/components/steps/matching/{SpreadsheetMatchingTable.vue.d.ts → spreadsheet-matching-table.vue.d.ts} +6 -6
  406. package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesAccordion.d.vue.ts → spreadsheet-references-accordion.d.vue.ts} +4 -4
  407. package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesAccordion.vue.d.ts → spreadsheet-references-accordion.vue.d.ts} +4 -4
  408. package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesSummary.d.vue.ts → spreadsheet-references-summary.d.vue.ts} +2 -2
  409. package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesSummary.vue.d.ts → spreadsheet-references-summary.vue.d.ts} +2 -2
  410. package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewInspection.d.vue.ts → spreadsheet-review-inspection.d.vue.ts} +6 -6
  411. package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewInspection.vue → spreadsheet-review-inspection.vue} +13 -9
  412. package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewInspection.vue.d.ts → spreadsheet-review-inspection.vue.d.ts} +6 -6
  413. package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewStats.d.vue.ts → spreadsheet-review-stats.d.vue.ts} +2 -2
  414. package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewStats.vue.d.ts → spreadsheet-review-stats.vue.d.ts} +2 -2
  415. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportMatchingStep.vue → spreadsheet-import-matching-step.vue} +30 -25
  416. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReferencesStep.vue → spreadsheet-import-references-step.vue} +63 -41
  417. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReviewStep.vue → spreadsheet-import-review-step.vue} +14 -9
  418. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportStructureStep.vue → spreadsheet-import-structure-step.vue} +4 -4
  419. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportUploadStep.vue → spreadsheet-import-upload-step.vue} +10 -5
  420. package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructurePreviewTable.d.vue.ts → spreadsheet-structure-preview-table.d.vue.ts} +2 -2
  421. package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructurePreviewTable.vue → spreadsheet-structure-preview-table.vue} +3 -3
  422. package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructurePreviewTable.vue.d.ts → spreadsheet-structure-preview-table.vue.d.ts} +2 -2
  423. package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructureSheetList.d.vue.ts → spreadsheet-structure-sheet-list.d.vue.ts} +2 -2
  424. package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructureSheetList.vue.d.ts → spreadsheet-structure-sheet-list.vue.d.ts} +2 -2
  425. package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.d.ts +9 -9
  426. package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.js +7 -7
  427. package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.d.ts +10 -10
  428. package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.js +5 -5
  429. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.d.ts +2 -2
  430. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.js +32 -30
  431. package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.d.ts +336 -336
  432. package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.js +13 -17
  433. package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.d.ts +21 -21
  434. package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.js +23 -21
  435. package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.d.ts +83 -83
  436. package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.js +129 -100
  437. package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.d.ts +7 -7
  438. package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.js +15 -11
  439. package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.d.ts +12 -12
  440. package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.js +5 -5
  441. package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.d.ts +8 -8
  442. package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.js +17 -13
  443. package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.d.ts +2 -2
  444. package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.js +42 -36
  445. package/dist/runtime/spreadsheet/schema/index.d.ts +2 -2
  446. package/dist/runtime/spreadsheet/schema/index.js +3 -1
  447. package/dist/runtime/spreadsheet/schema/normalize.d.ts +26 -26
  448. package/dist/runtime/spreadsheet/schema/normalize.js +48 -39
  449. package/dist/runtime/spreadsheet/types/columns.d.ts +18 -24
  450. package/dist/runtime/spreadsheet/types/inference.d.ts +5 -5
  451. package/dist/runtime/spreadsheet/types/reference-session.d.ts +2 -1
  452. package/dist/runtime/spreadsheet/types/references.d.ts +8 -7
  453. package/dist/runtime/spreadsheet/types/resolution.d.ts +4 -4
  454. package/dist/runtime/spreadsheet/types/rows.d.ts +2 -2
  455. package/dist/runtime/spreadsheet/types/schema.d.ts +2 -1
  456. package/dist/runtime/spreadsheet/types/shared.d.ts +7 -0
  457. package/dist/runtime/spreadsheet/types/validation.d.ts +12 -12
  458. package/dist/runtime/spreadsheet/utils/builders/core.js +86 -74
  459. package/dist/runtime/spreadsheet/utils/context.d.ts +3 -3
  460. package/dist/runtime/spreadsheet/utils/context.js +1 -1
  461. package/dist/runtime/spreadsheet/utils/display.d.ts +2 -1
  462. package/dist/runtime/spreadsheet/utils/display.js +17 -7
  463. package/dist/runtime/spreadsheet/utils/object.d.ts +9 -8
  464. package/dist/runtime/spreadsheet/utils/object.js +23 -8
  465. package/dist/runtime/spreadsheet/utils/options.d.ts +9 -7
  466. package/dist/runtime/spreadsheet/utils/options.js +24 -8
  467. package/dist/runtime/spreadsheet/utils/references/candidates.js +11 -5
  468. package/dist/runtime/spreadsheet/utils/references/guards.d.ts +3 -3
  469. package/dist/runtime/spreadsheet/utils/references/guards.js +10 -6
  470. package/dist/runtime/spreadsheet/utils/references/resolutions.d.ts +7 -7
  471. package/dist/runtime/spreadsheet/utils/references/resolutions.js +60 -41
  472. package/dist/runtime/spreadsheet/utils/references/shared.d.ts +2 -1
  473. package/dist/runtime/spreadsheet/utils/references/shared.js +16 -6
  474. package/dist/runtime/spreadsheet/utils/references/sources.d.ts +5 -5
  475. package/dist/runtime/spreadsheet/utils/references/sources.js +11 -7
  476. package/dist/runtime/spreadsheet/utils/rows/headers.js +2 -2
  477. package/dist/runtime/spreadsheet/utils/rows/matching.d.ts +1 -2
  478. package/dist/runtime/spreadsheet/utils/rows/matching.js +79 -39
  479. package/dist/runtime/spreadsheet/utils/rows/parsing.d.ts +2 -3
  480. package/dist/runtime/spreadsheet/utils/rows/parsing.js +72 -42
  481. package/dist/runtime/spreadsheet/utils/rows/shared.d.ts +11 -12
  482. package/dist/runtime/spreadsheet/utils/rows/shared.js +133 -83
  483. package/dist/runtime/spreadsheet/utils/rows/summary.js +3 -3
  484. package/dist/runtime/spreadsheet/utils/source/core.js +22 -11
  485. package/dist/runtime/spreadsheet/utils/validation/core.d.ts +2 -2
  486. package/dist/runtime/spreadsheet/utils/validation/core.js +107 -88
  487. package/dist/runtime/table/builders/index.d.ts +1 -1
  488. package/dist/runtime/table/builders/index.js +24 -20
  489. package/dist/runtime/table/components/actions/{RowActions.d.vue.ts → row-actions.d.vue.ts} +7 -2
  490. package/dist/runtime/table/components/actions/row-actions.vue +111 -0
  491. package/dist/runtime/table/components/actions/{RowActions.vue.d.ts → row-actions.vue.d.ts} +7 -2
  492. package/dist/runtime/table/components/actions/{TableRowScopeProvider.d.vue.ts → table-row-scope-provider.d.vue.ts} +1 -1
  493. package/dist/runtime/table/components/actions/{TableRowScopeProvider.vue → table-row-scope-provider.vue} +1 -3
  494. package/dist/runtime/table/components/actions/{TableRowScopeProvider.vue.d.ts → table-row-scope-provider.vue.d.ts} +1 -1
  495. package/dist/runtime/table/components/{filters/panel/FilterPanel.d.vue.ts → data-list/data-list-actions-dropdown.d.vue.ts} +9 -8
  496. package/dist/runtime/table/components/data-list/data-list-actions-dropdown.vue +57 -0
  497. package/dist/runtime/table/components/{filters/panel/FilterPanel.vue.d.ts → data-list/data-list-actions-dropdown.vue.d.ts} +9 -8
  498. package/dist/runtime/table/components/data-list/data-list-actions-toolbar.d.vue.ts +15 -0
  499. package/dist/runtime/table/components/data-list/data-list-actions-toolbar.vue +23 -0
  500. package/dist/runtime/table/components/data-list/data-list-actions-toolbar.vue.d.ts +15 -0
  501. package/dist/runtime/table/components/data-list/{DataListAddFilter.vue → data-list-add-filter.vue} +1 -1
  502. package/dist/runtime/table/components/data-list/{DataListColumnPanel.d.vue.ts → data-list-column-panel.d.vue.ts} +6 -2
  503. package/dist/runtime/table/components/data-list/data-list-column-panel.vue +26 -0
  504. package/dist/runtime/table/components/data-list/{DataListColumnPanel.vue.d.ts → data-list-column-panel.vue.d.ts} +6 -2
  505. package/dist/runtime/table/components/data-list/{DataListContent.d.vue.ts → data-list-content.d.vue.ts} +7 -4
  506. package/dist/runtime/table/components/data-list/{DataListContent.vue → data-list-content.vue} +45 -17
  507. package/dist/runtime/table/components/data-list/{DataListContent.vue.d.ts → data-list-content.vue.d.ts} +7 -4
  508. package/dist/runtime/table/components/data-list/{DataListDefault.d.vue.ts → data-list-default.d.vue.ts} +20 -20
  509. package/dist/runtime/table/components/data-list/{DataListDefault.vue → data-list-default.vue} +32 -23
  510. package/dist/runtime/table/components/data-list/{DataListDefault.vue.d.ts → data-list-default.vue.d.ts} +20 -20
  511. package/dist/runtime/table/components/data-list/{DataListFilterPanel.d.vue.ts → data-list-filter-panel.d.vue.ts} +6 -1
  512. package/dist/runtime/table/components/data-list/data-list-filter-panel.vue +37 -0
  513. package/dist/runtime/table/components/data-list/{DataListFilterPanel.vue.d.ts → data-list-filter-panel.vue.d.ts} +6 -1
  514. package/dist/runtime/table/components/data-list/{DataListFilterTags.d.vue.ts → data-list-filter-tags.d.vue.ts} +9 -6
  515. package/dist/runtime/table/components/data-list/{DataListFilterTags.vue → data-list-filter-tags.vue} +7 -2
  516. package/dist/runtime/table/components/data-list/{DataListFilterTags.vue.d.ts → data-list-filter-tags.vue.d.ts} +9 -6
  517. package/dist/runtime/table/components/data-list/{DataListGrid.d.vue.ts → data-list-grid.d.vue.ts} +3 -1
  518. package/dist/runtime/table/components/data-list/{DataListGrid.vue → data-list-grid.vue} +7 -2
  519. package/dist/runtime/table/components/data-list/{DataListGrid.vue.d.ts → data-list-grid.vue.d.ts} +3 -1
  520. package/dist/runtime/table/components/data-list/{DataListInfiniteLoader.d.vue.ts → data-list-infinite-loader.d.vue.ts} +12 -12
  521. package/dist/runtime/table/components/data-list/{DataListInfiniteLoader.vue → data-list-infinite-loader.vue} +15 -3
  522. package/dist/runtime/table/components/data-list/{DataListInfiniteLoader.vue.d.ts → data-list-infinite-loader.vue.d.ts} +12 -12
  523. package/dist/runtime/table/components/data-list/{DataListLayoutSwitch.d.vue.ts → data-list-layout-switch.d.vue.ts} +5 -2
  524. package/dist/runtime/table/components/data-list/{DataListLayoutSwitch.vue → data-list-layout-switch.vue} +31 -9
  525. package/dist/runtime/table/components/data-list/{DataListLayoutSwitch.vue.d.ts → data-list-layout-switch.vue.d.ts} +5 -2
  526. package/dist/runtime/table/components/data-list/{DataListPagination.d.vue.ts → data-list-pagination.d.vue.ts} +8 -7
  527. package/dist/runtime/table/components/data-list/{DataListPagination.vue → data-list-pagination.vue} +4 -3
  528. package/dist/runtime/table/components/data-list/{DataListPagination.vue.d.ts → data-list-pagination.vue.d.ts} +8 -7
  529. package/dist/runtime/table/components/data-list/{DataListRefresh.d.vue.ts → data-list-refresh.d.vue.ts} +2 -1
  530. package/dist/runtime/table/components/data-list/{DataListRefresh.vue → data-list-refresh.vue} +26 -7
  531. package/dist/runtime/table/components/data-list/{DataListRefresh.vue.d.ts → data-list-refresh.vue.d.ts} +2 -1
  532. package/dist/runtime/table/components/data-list/{DataListResultCount.d.vue.ts → data-list-result-count.d.vue.ts} +2 -1
  533. package/dist/runtime/table/components/data-list/{DataListResultCount.vue → data-list-result-count.vue} +9 -2
  534. package/dist/runtime/table/components/data-list/{DataListResultCount.vue.d.ts → data-list-result-count.vue.d.ts} +2 -1
  535. package/dist/runtime/table/components/data-list/{DataListRoot.d.vue.ts → data-list-root.d.vue.ts} +5 -4
  536. package/dist/runtime/table/components/data-list/{DataListRoot.vue → data-list-root.vue} +30 -9
  537. package/dist/runtime/table/components/data-list/{DataListRoot.vue.d.ts → data-list-root.vue.d.ts} +5 -4
  538. package/dist/runtime/table/components/data-list/{DataListSearch.d.vue.ts → data-list-search.d.vue.ts} +2 -1
  539. package/dist/runtime/table/components/data-list/{DataListSearch.vue → data-list-search.vue} +8 -2
  540. package/dist/runtime/table/components/data-list/{DataListSearch.vue.d.ts → data-list-search.vue.d.ts} +2 -1
  541. package/dist/runtime/table/components/data-list/data-list-selection-actions.d.vue.ts +36 -0
  542. package/dist/runtime/table/components/data-list/data-list-selection-actions.vue +242 -0
  543. package/dist/runtime/table/components/data-list/data-list-selection-actions.vue.d.ts +36 -0
  544. package/dist/runtime/table/components/data-list/{DataListSortMenu.d.vue.ts → data-list-sort-menu.d.vue.ts} +11 -7
  545. package/dist/runtime/table/components/data-list/data-list-sort-menu.vue +187 -0
  546. package/dist/runtime/table/components/data-list/{DataListSortMenu.vue.d.ts → data-list-sort-menu.vue.d.ts} +11 -7
  547. package/dist/runtime/table/components/data-list/{DataListTable.d.vue.ts → data-list-table.d.vue.ts} +3 -1
  548. package/dist/runtime/table/components/data-list/{DataListTable.vue → data-list-table.vue} +7 -2
  549. package/dist/runtime/table/components/data-list/{DataListTable.vue.d.ts → data-list-table.vue.d.ts} +3 -1
  550. package/dist/runtime/table/components/data-list/sort-menu-panel.d.vue.ts +18 -0
  551. package/dist/runtime/table/components/data-list/sort-menu-panel.vue +86 -0
  552. package/dist/runtime/table/components/data-list/sort-menu-panel.vue.d.ts +18 -0
  553. package/dist/runtime/table/components/{DataList.d.vue.ts → data-list.d.vue.ts} +6 -5
  554. package/dist/runtime/table/components/{DataList.vue → data-list.vue} +4 -3
  555. package/dist/runtime/table/components/{DataList.vue.d.ts → data-list.vue.d.ts} +6 -5
  556. package/dist/runtime/table/components/drawers/{ColumnPanel.d.vue.ts → column-panel.d.vue.ts} +4 -2
  557. package/dist/runtime/table/components/drawers/column-panel.vue +431 -0
  558. package/dist/runtime/table/components/drawers/{ColumnPanel.vue.d.ts → column-panel.vue.d.ts} +4 -2
  559. package/dist/runtime/table/components/filters/panel/{BooleanFilterPanelField.d.vue.ts → boolean-filter-panel-field.d.vue.ts} +3 -1
  560. package/dist/runtime/table/components/filters/panel/boolean-filter-panel-field.vue +69 -0
  561. package/dist/runtime/table/components/filters/panel/{BooleanFilterPanelField.vue.d.ts → boolean-filter-panel-field.vue.d.ts} +3 -1
  562. package/dist/runtime/table/components/filters/panel/{DateFilterPanelField.d.vue.ts → date-filter-panel-field.d.vue.ts} +3 -1
  563. package/dist/runtime/table/components/filters/panel/{DateFilterPanelField.vue → date-filter-panel-field.vue} +44 -19
  564. package/dist/runtime/table/components/filters/panel/{DateFilterPanelField.vue.d.ts → date-filter-panel-field.vue.d.ts} +3 -1
  565. package/dist/runtime/table/components/filters/panel/filter-panel-chips.d.vue.ts +23 -0
  566. package/dist/runtime/table/components/filters/panel/filter-panel-chips.vue +74 -0
  567. package/dist/runtime/table/components/filters/panel/filter-panel-chips.vue.d.ts +23 -0
  568. package/dist/runtime/table/components/filters/panel/{FilterPanelFieldShell.d.vue.ts → filter-panel-field-shell.d.vue.ts} +4 -0
  569. package/dist/runtime/table/components/filters/panel/filter-panel-field-shell.vue +56 -0
  570. package/dist/runtime/table/components/filters/panel/{FilterPanelFieldShell.vue.d.ts → filter-panel-field-shell.vue.d.ts} +4 -0
  571. package/dist/runtime/table/components/filters/panel/filter-panel-fields.d.vue.ts +8 -0
  572. package/dist/runtime/table/components/filters/panel/filter-panel-fields.vue +46 -0
  573. package/dist/runtime/table/components/filters/panel/filter-panel-fields.vue.d.ts +8 -0
  574. package/dist/runtime/table/components/filters/panel/{FilterPanelInputTrigger.d.vue.ts → filter-panel-input-trigger.d.vue.ts} +2 -0
  575. package/dist/runtime/table/components/filters/panel/filter-panel-input-trigger.vue +26 -0
  576. package/dist/runtime/table/components/filters/panel/{FilterPanelInputTrigger.vue.d.ts → filter-panel-input-trigger.vue.d.ts} +2 -0
  577. package/dist/runtime/table/components/filters/panel/filter-panel.d.vue.ts +35 -0
  578. package/dist/runtime/table/components/filters/panel/filter-panel.vue +330 -0
  579. package/dist/runtime/table/components/filters/panel/filter-panel.vue.d.ts +35 -0
  580. package/dist/runtime/table/components/filters/panel/{NumberFilterPanelField.d.vue.ts → number-filter-panel-field.d.vue.ts} +3 -1
  581. package/dist/runtime/table/components/filters/panel/{NumberFilterPanelField.vue → number-filter-panel-field.vue} +37 -20
  582. package/dist/runtime/table/components/filters/panel/{NumberFilterPanelField.vue.d.ts → number-filter-panel-field.vue.d.ts} +3 -1
  583. package/dist/runtime/table/components/filters/panel/{OptionFilterPanelField.d.vue.ts → option-filter-panel-field.d.vue.ts} +3 -1
  584. package/dist/runtime/table/components/filters/panel/{OptionFilterPanelField.vue → option-filter-panel-field.vue} +75 -20
  585. package/dist/runtime/table/components/filters/panel/{OptionFilterPanelField.vue.d.ts → option-filter-panel-field.vue.d.ts} +3 -1
  586. package/dist/runtime/table/components/filters/panel/registry.js +6 -6
  587. package/dist/runtime/table/components/filters/panel/{TextFilterPanelField.d.vue.ts → text-filter-panel-field.d.vue.ts} +3 -1
  588. package/dist/runtime/table/components/filters/panel/{TextFilterPanelField.vue → text-filter-panel-field.vue} +23 -11
  589. package/dist/runtime/table/components/filters/panel/{TextFilterPanelField.vue.d.ts → text-filter-panel-field.vue.d.ts} +3 -1
  590. package/dist/runtime/table/components/filters/shared/{DynamicFilterPicker.vue → dynamic-filter-picker.vue} +100 -31
  591. package/dist/runtime/table/components/filters/shared/{FilterMatchModeButton.d.vue.ts → filter-match-mode-button.d.vue.ts} +5 -4
  592. package/dist/runtime/table/components/filters/shared/filter-match-mode-button.vue +120 -0
  593. package/dist/runtime/table/components/filters/shared/{FilterMatchModeButton.vue.d.ts → filter-match-mode-button.vue.d.ts} +5 -4
  594. package/dist/runtime/table/components/filters/shared/{FilterMatchModePanel.d.vue.ts → filter-match-mode-panel.d.vue.ts} +3 -2
  595. package/dist/runtime/table/components/filters/shared/filter-match-mode-panel.vue +81 -0
  596. package/dist/runtime/table/components/filters/shared/{FilterMatchModePanel.vue.d.ts → filter-match-mode-panel.vue.d.ts} +3 -2
  597. package/dist/runtime/table/components/filters/shared/{FilterOptionRow.d.vue.ts → filter-option-loading-list.d.vue.ts} +4 -8
  598. package/dist/runtime/table/components/filters/shared/filter-option-loading-list.vue +42 -0
  599. package/dist/runtime/table/components/filters/shared/{FilterOptionRow.vue.d.ts → filter-option-loading-list.vue.d.ts} +4 -8
  600. package/dist/runtime/table/components/filters/shared/{FilterOptionMultipleList.d.vue.ts → filter-option-multiple-list.d.vue.ts} +2 -2
  601. package/dist/runtime/table/components/filters/shared/filter-option-multiple-list.vue +115 -0
  602. package/dist/runtime/table/components/filters/shared/{FilterOptionMultipleList.vue.d.ts → filter-option-multiple-list.vue.d.ts} +2 -2
  603. package/dist/runtime/table/components/filters/shared/{FilterOptionPickerContent.d.vue.ts → filter-option-picker-content.d.vue.ts} +1 -1
  604. package/dist/runtime/table/components/filters/shared/{FilterOptionPickerContent.vue → filter-option-picker-content.vue} +32 -47
  605. package/dist/runtime/table/components/filters/shared/{FilterOptionPickerContent.vue.d.ts → filter-option-picker-content.vue.d.ts} +1 -1
  606. package/dist/runtime/table/components/filters/shared/{FilterOptionSingleList.d.vue.ts → filter-option-single-list.d.vue.ts} +2 -2
  607. package/dist/runtime/table/components/filters/shared/{FilterOptionSingleList.vue → filter-option-single-list.vue} +12 -4
  608. package/dist/runtime/table/components/filters/shared/{FilterOptionSingleList.vue.d.ts → filter-option-single-list.vue.d.ts} +2 -2
  609. package/dist/runtime/table/components/filters/shared/{FilterOptionTreeContent.d.vue.ts → filter-option-tree-content.d.vue.ts} +4 -4
  610. package/dist/runtime/table/components/filters/shared/filter-option-tree-content.vue +222 -0
  611. package/dist/runtime/table/components/filters/shared/{FilterOptionTreeContent.vue.d.ts → filter-option-tree-content.vue.d.ts} +4 -4
  612. package/dist/runtime/table/components/filters/shared/{FilterPopoverShell.vue → filter-popover-shell.vue} +9 -2
  613. package/dist/runtime/table/components/filters/shared/{FilterSearchablePanel.vue → filter-searchable-panel.vue} +1 -1
  614. package/dist/runtime/table/components/filters/shared/{FilterStageTransition.vue → filter-stage-transition.vue} +6 -2
  615. package/dist/runtime/table/components/filters/shared/{FilterTriggerTag.d.vue.ts → filter-trigger-tag.d.vue.ts} +8 -2
  616. package/dist/runtime/table/components/filters/shared/filter-trigger-tag.vue +227 -0
  617. package/dist/runtime/table/components/filters/shared/{FilterTriggerTag.vue.d.ts → filter-trigger-tag.vue.d.ts} +8 -2
  618. package/dist/runtime/{spreadsheet/components/shared/SpreadsheetValuePreview.d.vue.ts → table/components/filters/sheet/filter-sheet.d.vue.ts} +2 -3
  619. package/dist/runtime/table/components/filters/sheet/filter-sheet.vue +239 -0
  620. package/dist/runtime/{spreadsheet/components/shared/SpreadsheetValuePreview.vue.d.ts → table/components/filters/sheet/filter-sheet.vue.d.ts} +2 -3
  621. package/dist/runtime/table/components/filters/tags/{BooleanFilterTag.d.vue.ts → boolean-filter-tag.d.vue.ts} +8 -1
  622. package/dist/runtime/table/components/filters/tags/{BooleanFilterTag.vue → boolean-filter-tag.vue} +56 -39
  623. package/dist/runtime/table/components/filters/tags/{BooleanFilterTag.vue.d.ts → boolean-filter-tag.vue.d.ts} +8 -1
  624. package/dist/runtime/table/components/filters/tags/{DateFilterTag.d.vue.ts → date-filter-tag.d.vue.ts} +8 -1
  625. package/dist/runtime/table/components/filters/tags/{DateFilterTag.vue → date-filter-tag.vue} +138 -67
  626. package/dist/runtime/table/components/filters/tags/{DateFilterTag.vue.d.ts → date-filter-tag.vue.d.ts} +8 -1
  627. package/dist/runtime/table/components/filters/tags/{FilterTagsBar.d.vue.ts → filter-tags-bar.d.vue.ts} +6 -6
  628. package/dist/runtime/table/components/filters/tags/{FilterTagsBar.vue → filter-tags-bar.vue} +47 -14
  629. package/dist/runtime/table/components/filters/tags/{FilterTagsBar.vue.d.ts → filter-tags-bar.vue.d.ts} +6 -6
  630. package/dist/runtime/table/components/filters/tags/{NumberFilterTag.d.vue.ts → number-filter-tag.d.vue.ts} +8 -1
  631. package/dist/runtime/table/components/filters/tags/{NumberFilterTag.vue → number-filter-tag.vue} +57 -50
  632. package/dist/runtime/table/components/filters/tags/{NumberFilterTag.vue.d.ts → number-filter-tag.vue.d.ts} +8 -1
  633. package/dist/runtime/table/components/filters/tags/{OptionFilterTag.d.vue.ts → option-filter-tag.d.vue.ts} +14 -2
  634. package/dist/runtime/table/components/filters/tags/{OptionFilterTag.vue → option-filter-tag.vue} +93 -40
  635. package/dist/runtime/table/components/filters/tags/{OptionFilterTag.vue.d.ts → option-filter-tag.vue.d.ts} +14 -2
  636. package/dist/runtime/table/components/filters/tags/registry.js +6 -6
  637. package/dist/runtime/table/components/filters/tags/{TextFilterTag.d.vue.ts → text-filter-tag.d.vue.ts} +8 -1
  638. package/dist/runtime/table/components/filters/tags/{TextFilterTag.vue → text-filter-tag.vue} +32 -20
  639. package/dist/runtime/table/components/filters/tags/{TextFilterTag.vue.d.ts → text-filter-tag.vue.d.ts} +8 -1
  640. package/dist/runtime/table/components/grid/{GridCard.vue → grid-card.vue} +5 -5
  641. package/dist/runtime/table/components/grid/{GridRenderer.d.vue.ts → grid-renderer.d.vue.ts} +5 -5
  642. package/dist/runtime/table/components/grid/grid-renderer.vue +386 -0
  643. package/dist/runtime/table/components/grid/{GridRenderer.vue.d.ts → grid-renderer.vue.d.ts} +5 -5
  644. package/dist/runtime/table/components/grid/grid-skeleton.vue +40 -0
  645. package/dist/runtime/table/components/layout/{TableFooter.d.vue.ts → table-footer.d.vue.ts} +18 -12
  646. package/dist/runtime/table/components/layout/table-footer.vue +280 -0
  647. package/dist/runtime/table/components/layout/{TableFooter.vue.d.ts → table-footer.vue.d.ts} +18 -12
  648. package/dist/runtime/table/components/layout/{TableHeader.vue → table-header.vue} +11 -8
  649. package/dist/runtime/table/components/table/{TableCellEllipsis.js → table-cell-ellipsis.js} +11 -11
  650. package/dist/runtime/table/components/table/table-cell.d.ts +12 -0
  651. package/dist/runtime/table/components/table/table-cell.js +4 -0
  652. package/dist/runtime/table/components/table/table-column-header.d.vue.ts +25 -0
  653. package/dist/runtime/table/components/table/table-column-header.vue +80 -0
  654. package/dist/runtime/table/components/table/table-column-header.vue.d.ts +25 -0
  655. package/dist/runtime/table/components/table/{TableRenderer.d.vue.ts → table-empty-state.d.vue.ts} +5 -5
  656. package/dist/runtime/table/components/table/table-empty-state.vue +87 -0
  657. package/dist/runtime/table/components/table/{TableRenderer.vue.d.ts → table-empty-state.vue.d.ts} +5 -5
  658. package/dist/runtime/table/components/table/{TableEmptyState.d.vue.ts → table-loading-state.d.vue.ts} +2 -0
  659. package/dist/runtime/table/components/table/table-loading-state.vue +111 -0
  660. package/dist/runtime/table/components/table/{TableEmptyState.vue.d.ts → table-loading-state.vue.d.ts} +2 -0
  661. package/dist/runtime/table/components/table/table-overlay-scrollbars.d.vue.ts +9 -0
  662. package/dist/runtime/table/components/table/table-overlay-scrollbars.vue +180 -0
  663. package/dist/runtime/table/components/table/table-overlay-scrollbars.vue.d.ts +9 -0
  664. package/dist/runtime/table/components/table/table-renderer.d.vue.ts +44 -0
  665. package/dist/runtime/table/components/table/table-renderer.vue +844 -0
  666. package/dist/runtime/table/components/table/table-renderer.vue.d.ts +44 -0
  667. package/dist/runtime/table/components/table/table-row-actions-control.d.vue.ts +3 -0
  668. package/dist/runtime/table/components/table/table-row-actions-control.vue +42 -0
  669. package/dist/runtime/table/components/table/table-row-actions-control.vue.d.ts +3 -0
  670. package/dist/runtime/table/components/table/table-selection-control.d.vue.ts +11 -0
  671. package/dist/runtime/table/components/table/table-selection-control.vue +34 -0
  672. package/dist/runtime/table/components/table/table-selection-control.vue.d.ts +11 -0
  673. package/dist/runtime/table/components/utils/{SearchQueryInput.d.vue.ts → search-query-input.d.vue.ts} +3 -2
  674. package/dist/runtime/table/components/utils/{SearchQueryInput.vue → search-query-input.vue} +23 -10
  675. package/dist/runtime/table/components/utils/{SearchQueryInput.vue.d.ts → search-query-input.vue.d.ts} +3 -2
  676. package/dist/runtime/table/composables/use-data-list-breakpoint.d.ts +19 -0
  677. package/dist/runtime/table/composables/use-data-list-breakpoint.js +32 -0
  678. package/dist/runtime/table/composables/use-data-list-ui.d.ts +5 -5
  679. package/dist/runtime/table/composables/use-data-list-ui.js +17 -6
  680. package/dist/runtime/table/composables/use-data-list-viewport.js +3 -1
  681. package/dist/runtime/table/composables/use-filter-tag-session.d.ts +3 -3
  682. package/dist/runtime/table/composables/use-filter-tag-session.js +21 -9
  683. package/dist/runtime/table/composables/use-option-filter-editor-state.d.ts +55 -51
  684. package/dist/runtime/table/composables/use-option-filter-editor-state.js +139 -68
  685. package/dist/runtime/table/composables/use-query-state.d.ts +14 -14
  686. package/dist/runtime/table/composables/use-query-state.js +48 -38
  687. package/dist/runtime/table/composables/use-table-actions.d.ts +28 -0
  688. package/dist/runtime/table/composables/use-table-actions.js +111 -0
  689. package/dist/runtime/table/composables/use-table-api.d.ts +4 -3
  690. package/dist/runtime/table/composables/use-table-api.js +54 -48
  691. package/dist/runtime/table/composables/use-table-columns.d.ts +120 -119
  692. package/dist/runtime/table/composables/use-table-columns.js +125 -60
  693. package/dist/runtime/table/composables/use-table-controls.d.ts +33 -5
  694. package/dist/runtime/table/composables/use-table-controls.js +51 -9
  695. package/dist/runtime/table/composables/use-table-data.d.ts +8 -8
  696. package/dist/runtime/table/composables/use-table-data.js +230 -168
  697. package/dist/runtime/table/composables/use-table-filter-options.d.ts +10 -10
  698. package/dist/runtime/table/composables/use-table-filter-options.js +106 -82
  699. package/dist/runtime/table/composables/use-table-filter-presentation.d.ts +32 -26
  700. package/dist/runtime/table/composables/use-table-filter-presentation.js +92 -51
  701. package/dist/runtime/table/composables/use-table-filters.d.ts +49 -37
  702. package/dist/runtime/table/composables/use-table-filters.js +80 -51
  703. package/dist/runtime/table/composables/use-table-grid.d.ts +5 -5
  704. package/dist/runtime/table/composables/use-table-grid.js +17 -11
  705. package/dist/runtime/table/composables/use-table-internals.d.ts +1343 -1019
  706. package/dist/runtime/table/composables/use-table-internals.js +58 -37
  707. package/dist/runtime/table/composables/use-table-layout.d.ts +5 -5
  708. package/dist/runtime/table/composables/use-table-layout.js +34 -15
  709. package/dist/runtime/table/composables/use-table-pagination.d.ts +42 -19
  710. package/dist/runtime/table/composables/use-table-pagination.js +79 -31
  711. package/dist/runtime/table/composables/use-table-row-actions.d.ts +3 -3
  712. package/dist/runtime/table/composables/use-table-search.d.ts +3 -3
  713. package/dist/runtime/table/composables/use-table-search.js +4 -4
  714. package/dist/runtime/table/composables/use-table-selection.d.ts +19 -17
  715. package/dist/runtime/table/composables/use-table-selection.js +40 -22
  716. package/dist/runtime/table/composables/use-table-startup.d.ts +4 -4
  717. package/dist/runtime/table/composables/use-table-startup.js +18 -13
  718. package/dist/runtime/table/composables/use-table-state.d.ts +14 -14
  719. package/dist/runtime/table/composables/use-table-state.js +2 -2
  720. package/dist/runtime/table/composables/use-table-summaries.d.ts +30 -0
  721. package/dist/runtime/table/composables/use-table-summaries.js +223 -0
  722. package/dist/runtime/table/composables/use-table.d.ts +1 -1
  723. package/dist/runtime/table/composables/use-table.js +2 -2
  724. package/dist/runtime/table/composables/use-tanstack-table.d.ts +50 -0
  725. package/dist/runtime/table/composables/use-tanstack-table.js +64 -0
  726. package/dist/runtime/table/constants/grid.d.ts +3 -3
  727. package/dist/runtime/table/constants/grid.js +4 -4
  728. package/dist/runtime/table/constants/query-state.d.ts +10 -5
  729. package/dist/runtime/table/constants/query-state.js +7 -7
  730. package/dist/runtime/table/schema/index.js +5 -4
  731. package/dist/runtime/table/types/actions.d.ts +25 -0
  732. package/dist/runtime/table/types/columns.d.ts +37 -5
  733. package/dist/runtime/table/types/context.d.ts +1 -1
  734. package/dist/runtime/table/types/data-list.d.ts +199 -25
  735. package/dist/runtime/table/types/filters.d.ts +14 -8
  736. package/dist/runtime/table/types/layout.d.ts +24 -9
  737. package/dist/runtime/table/types/query-state.d.ts +4 -5
  738. package/dist/runtime/table/types/source.d.ts +15 -3
  739. package/dist/runtime/table/types/table-api.d.ts +15 -4
  740. package/dist/runtime/table/types/utils.d.ts +12 -9
  741. package/dist/runtime/table/utils/actions.d.ts +17 -3
  742. package/dist/runtime/table/utils/actions.js +69 -24
  743. package/dist/runtime/table/utils/builders/table-source.d.ts +60 -0
  744. package/dist/runtime/table/utils/builders/table-source.js +3 -0
  745. package/dist/runtime/table/utils/client-query.js +161 -103
  746. package/dist/runtime/table/utils/columns/defs.d.ts +6 -0
  747. package/dist/runtime/table/utils/columns/defs.js +94 -0
  748. package/dist/runtime/table/utils/columns/menu.d.ts +3 -2
  749. package/dist/runtime/table/utils/columns/menu.js +51 -59
  750. package/dist/runtime/table/utils/columns/render.d.ts +78 -43
  751. package/dist/runtime/table/utils/columns/render.js +141 -230
  752. package/dist/runtime/table/utils/columns/schema.d.ts +3 -3
  753. package/dist/runtime/table/utils/columns/schema.js +30 -21
  754. package/dist/runtime/table/utils/columns/state.d.ts +38 -38
  755. package/dist/runtime/table/utils/columns/state.js +33 -35
  756. package/dist/runtime/table/utils/columns/types.d.ts +49 -8
  757. package/dist/runtime/table/utils/columns/types.js +5 -2
  758. package/dist/runtime/table/utils/cursor-query.d.ts +2 -0
  759. package/dist/runtime/table/utils/cursor-query.js +3 -0
  760. package/dist/runtime/table/utils/data-list-ui.d.ts +124 -2
  761. package/dist/runtime/table/utils/data-list-ui.js +198 -23
  762. package/dist/runtime/table/utils/facets.d.ts +4 -0
  763. package/dist/runtime/table/utils/facets.js +34 -0
  764. package/dist/runtime/table/utils/filter-presentation.d.ts +16 -0
  765. package/dist/runtime/table/utils/filter-presentation.js +11 -0
  766. package/dist/runtime/table/utils/filters/common.d.ts +18 -18
  767. package/dist/runtime/table/utils/filters/common.js +26 -26
  768. package/dist/runtime/table/utils/filters/date.js +92 -65
  769. package/dist/runtime/table/utils/filters/editor-size.d.ts +51 -0
  770. package/dist/runtime/table/utils/filters/editor-size.js +57 -32
  771. package/dist/runtime/table/utils/filters/options.d.ts +6 -6
  772. package/dist/runtime/table/utils/filters/options.js +59 -41
  773. package/dist/runtime/table/utils/filters/presentation.d.ts +1 -1
  774. package/dist/runtime/table/utils/filters/presentation.js +8 -3
  775. package/dist/runtime/table/utils/filters/preview/date-preview.js +6 -4
  776. package/dist/runtime/table/utils/filters/preview/index.d.ts +1 -1
  777. package/dist/runtime/table/utils/filters/preview/index.js +5 -4
  778. package/dist/runtime/table/utils/filters/preview/number-preview.js +13 -9
  779. package/dist/runtime/table/utils/filters/preview/option-preview.js +27 -11
  780. package/dist/runtime/table/utils/filters/preview/text-preview.js +4 -3
  781. package/dist/runtime/table/utils/filters/preview/types.d.ts +8 -0
  782. package/dist/runtime/table/utils/filters/registry.js +12 -6
  783. package/dist/runtime/table/utils/filters/tree.d.ts +1 -1
  784. package/dist/runtime/table/utils/filters/tree.js +35 -24
  785. package/dist/runtime/table/utils/filters/ui.js +196 -191
  786. package/dist/runtime/table/utils/index.d.ts +4 -0
  787. package/dist/runtime/table/utils/index.js +4 -0
  788. package/dist/runtime/table/utils/pagination.d.ts +1 -1
  789. package/dist/runtime/table/utils/pagination.js +19 -8
  790. package/dist/runtime/table/utils/prefetch.d.ts +25 -0
  791. package/dist/runtime/table/utils/prefetch.js +272 -0
  792. package/dist/runtime/table/utils/query-state.d.ts +13 -1
  793. package/dist/runtime/table/utils/query-state.js +125 -61
  794. package/dist/runtime/table/utils/resolved-filters.d.ts +5 -5
  795. package/dist/runtime/table/utils/resolved-filters.js +10 -9
  796. package/dist/runtime/table/utils/rows.d.ts +2 -2
  797. package/dist/runtime/table/utils/rows.js +5 -4
  798. package/dist/runtime/table/utils/schema.d.ts +1 -1
  799. package/dist/runtime/table/utils/schema.js +8 -14
  800. package/package.json +65 -31
  801. package/dist/runtime/form/components/root/Form.vue +0 -312
  802. package/dist/runtime/form/composables/use-form-submit.d.ts +0 -23
  803. package/dist/runtime/form/composables/use-form-submit.js +0 -71
  804. package/dist/runtime/table/components/actions/RowActions.vue +0 -56
  805. package/dist/runtime/table/components/data-list/DataListColumnPanel.vue +0 -17
  806. package/dist/runtime/table/components/data-list/DataListFilterPanel.vue +0 -17
  807. package/dist/runtime/table/components/data-list/DataListSortMenu.vue +0 -110
  808. package/dist/runtime/table/components/drawers/ColumnPanel.vue +0 -379
  809. package/dist/runtime/table/components/filters/panel/BooleanFilterPanelField.vue +0 -108
  810. package/dist/runtime/table/components/filters/panel/FilterPanel.vue +0 -132
  811. package/dist/runtime/table/components/filters/panel/FilterPanelFieldShell.vue +0 -25
  812. package/dist/runtime/table/components/filters/panel/FilterPanelInputTrigger.vue +0 -22
  813. package/dist/runtime/table/components/filters/shared/FilterMatchModeButton.vue +0 -58
  814. package/dist/runtime/table/components/filters/shared/FilterMatchModePanel.vue +0 -47
  815. package/dist/runtime/table/components/filters/shared/FilterOptionMultipleList.vue +0 -49
  816. package/dist/runtime/table/components/filters/shared/FilterOptionRow.vue +0 -75
  817. package/dist/runtime/table/components/filters/shared/FilterOptionTreeContent.vue +0 -180
  818. package/dist/runtime/table/components/filters/shared/FilterTriggerTag.vue +0 -139
  819. package/dist/runtime/table/components/grid/GridRenderer.vue +0 -526
  820. package/dist/runtime/table/components/grid/GridSkeleton.vue +0 -46
  821. package/dist/runtime/table/components/layout/TableFooter.vue +0 -172
  822. package/dist/runtime/table/components/table/TableEmptyState.vue +0 -21
  823. package/dist/runtime/table/components/table/TableLoadingState.d.vue.ts +0 -6
  824. package/dist/runtime/table/components/table/TableLoadingState.vue +0 -68
  825. package/dist/runtime/table/components/table/TableLoadingState.vue.d.ts +0 -6
  826. package/dist/runtime/table/components/table/TableRenderer.vue +0 -160
  827. package/dist/runtime/form/components/actions/{FormActions.d.vue.ts → form-actions.d.vue.ts} +0 -0
  828. package/dist/runtime/form/components/actions/{FormActions.vue.d.ts → form-actions.vue.d.ts} +0 -0
  829. package/dist/runtime/form/components/layout/{DrawerLayout.d.vue.ts → drawer-layout.d.vue.ts} +0 -0
  830. package/dist/runtime/form/components/layout/{DrawerLayout.vue.d.ts → drawer-layout.vue.d.ts} +0 -0
  831. package/dist/runtime/form/components/layout/{FullscreenLayout.d.vue.ts → fullscreen-layout.d.vue.ts} +0 -0
  832. package/dist/runtime/form/components/layout/{FullscreenLayout.vue.d.ts → fullscreen-layout.vue.d.ts} +0 -0
  833. package/dist/runtime/form/components/layout/{ModalLayout.d.vue.ts → modal-layout.d.vue.ts} +0 -0
  834. package/dist/runtime/form/components/layout/{ModalLayout.vue.d.ts → modal-layout.vue.d.ts} +0 -0
  835. package/dist/runtime/form/components/provider/{FormOverlayHost.d.vue.ts → form-overlay-host.d.vue.ts} +0 -0
  836. package/dist/runtime/form/components/provider/{FormOverlayHost.vue.d.ts → form-overlay-host.vue.d.ts} +0 -0
  837. package/dist/runtime/form/components/provider/{FormProvider.d.vue.ts → form-provider.d.vue.ts} +0 -0
  838. package/dist/runtime/form/components/provider/{FormProvider.vue.d.ts → form-provider.vue.d.ts} +0 -0
  839. package/dist/runtime/form/components/renderer/{FormCompositeControl.d.vue.ts → form-composite-control.d.vue.ts} +0 -0
  840. package/dist/runtime/form/components/renderer/{FormCompositeControl.vue.d.ts → form-composite-control.vue.d.ts} +0 -0
  841. package/dist/runtime/form/fields/hierarchy/{SelectionCheckbox.d.vue.ts → selection-checkbox.d.vue.ts} +0 -0
  842. package/dist/runtime/form/fields/hierarchy/{SelectionCheckbox.vue → selection-checkbox.vue} +0 -0
  843. package/dist/runtime/form/fields/hierarchy/{SelectionCheckbox.vue.d.ts → selection-checkbox.vue.d.ts} +0 -0
  844. package/dist/runtime/form/fields/hierarchy/{SelectionRadio.d.vue.ts → selection-radio.d.vue.ts} +0 -0
  845. package/dist/runtime/form/fields/hierarchy/{SelectionRadio.vue.d.ts → selection-radio.vue.d.ts} +0 -0
  846. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFileBar.d.vue.ts → spreadsheet-import-file-bar.d.vue.ts} +0 -0
  847. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFileBar.vue → spreadsheet-import-file-bar.vue} +0 -0
  848. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFileBar.vue.d.ts → spreadsheet-import-file-bar.vue.d.ts} +0 -0
  849. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFooter.d.vue.ts → spreadsheet-import-footer.d.vue.ts} +2 -2
  850. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFooter.vue → spreadsheet-import-footer.vue} +0 -0
  851. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportFooter.vue.d.ts → spreadsheet-import-footer.vue.d.ts} +2 -2
  852. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportHeader.d.vue.ts → spreadsheet-import-header.d.vue.ts} +0 -0
  853. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportHeader.vue → spreadsheet-import-header.vue} +0 -0
  854. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportHeader.vue.d.ts → spreadsheet-import-header.vue.d.ts} +0 -0
  855. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportSidebar.d.vue.ts → spreadsheet-import-sidebar.d.vue.ts} +0 -0
  856. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportSidebar.vue → spreadsheet-import-sidebar.vue} +0 -0
  857. package/dist/runtime/spreadsheet/components/layout/{SpreadsheetImportSidebar.vue.d.ts → spreadsheet-import-sidebar.vue.d.ts} +0 -0
  858. package/dist/runtime/spreadsheet/components/shared/{SpreadsheetRawPreviewTable.d.vue.ts → spreadsheet-raw-preview-table.d.vue.ts} +0 -0
  859. package/dist/runtime/spreadsheet/components/shared/{SpreadsheetRawPreviewTable.vue.d.ts → spreadsheet-raw-preview-table.vue.d.ts} +0 -0
  860. package/dist/runtime/spreadsheet/components/shared/{SpreadsheetSummaryStats.vue → spreadsheet-summary-stats.vue} +0 -0
  861. package/dist/runtime/spreadsheet/components/{SpreadsheetImport.d.vue.ts → spreadsheet-import.d.vue.ts} +0 -0
  862. package/dist/runtime/spreadsheet/components/{SpreadsheetImport.vue.d.ts → spreadsheet-import.vue.d.ts} +0 -0
  863. package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesAccordion.vue → spreadsheet-references-accordion.vue} +0 -0
  864. package/dist/runtime/spreadsheet/components/steps/references/{SpreadsheetReferencesSummary.vue → spreadsheet-references-summary.vue} +0 -0
  865. package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewOverflowAlert.d.vue.ts → spreadsheet-review-overflow-alert.d.vue.ts} +0 -0
  866. package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewOverflowAlert.vue → spreadsheet-review-overflow-alert.vue} +0 -0
  867. package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewOverflowAlert.vue.d.ts → spreadsheet-review-overflow-alert.vue.d.ts} +0 -0
  868. package/dist/runtime/spreadsheet/components/steps/review/{SpreadsheetReviewStats.vue → spreadsheet-review-stats.vue} +0 -0
  869. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportMatchingStep.d.vue.ts → spreadsheet-import-matching-step.d.vue.ts} +0 -0
  870. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportMatchingStep.vue.d.ts → spreadsheet-import-matching-step.vue.d.ts} +0 -0
  871. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReferencesStep.d.vue.ts → spreadsheet-import-references-step.d.vue.ts} +0 -0
  872. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReferencesStep.vue.d.ts → spreadsheet-import-references-step.vue.d.ts} +0 -0
  873. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReviewStep.d.vue.ts → spreadsheet-import-review-step.d.vue.ts} +0 -0
  874. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportReviewStep.vue.d.ts → spreadsheet-import-review-step.vue.d.ts} +0 -0
  875. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportStructureStep.d.vue.ts → spreadsheet-import-structure-step.d.vue.ts} +0 -0
  876. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportStructureStep.vue.d.ts → spreadsheet-import-structure-step.vue.d.ts} +0 -0
  877. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportUploadStep.d.vue.ts → spreadsheet-import-upload-step.d.vue.ts} +0 -0
  878. package/dist/runtime/spreadsheet/components/steps/{SpreadsheetImportUploadStep.vue.d.ts → spreadsheet-import-upload-step.vue.d.ts} +0 -0
  879. package/dist/runtime/spreadsheet/components/steps/structure/{SpreadsheetStructureSheetList.vue → spreadsheet-structure-sheet-list.vue} +0 -0
  880. package/dist/runtime/table/components/data-list/{DataListAddFilter.d.vue.ts → data-list-add-filter.d.vue.ts} +0 -0
  881. package/dist/runtime/table/components/data-list/{DataListAddFilter.vue.d.ts → data-list-add-filter.vue.d.ts} +0 -0
  882. package/dist/runtime/table/components/data-list/{DataListClearFilters.d.vue.ts → data-list-clear-filters.d.vue.ts} +0 -0
  883. package/dist/runtime/table/components/data-list/{DataListClearFilters.vue → data-list-clear-filters.vue} +0 -0
  884. package/dist/runtime/table/components/data-list/{DataListClearFilters.vue.d.ts → data-list-clear-filters.vue.d.ts} +0 -0
  885. package/dist/runtime/table/components/filters/shared/{DynamicFilterPicker.d.vue.ts → dynamic-filter-picker.d.vue.ts} +0 -0
  886. package/dist/runtime/table/components/filters/shared/{DynamicFilterPicker.vue.d.ts → dynamic-filter-picker.vue.d.ts} +0 -0
  887. package/dist/runtime/table/components/filters/shared/{FilterPopoverShell.d.vue.ts → filter-popover-shell.d.vue.ts} +0 -0
  888. package/dist/runtime/table/components/filters/shared/{FilterPopoverShell.vue.d.ts → filter-popover-shell.vue.d.ts} +0 -0
  889. package/dist/runtime/table/components/filters/shared/{FilterSearchablePanel.d.vue.ts → filter-searchable-panel.d.vue.ts} +0 -0
  890. package/dist/runtime/table/components/filters/shared/{FilterSearchablePanel.vue.d.ts → filter-searchable-panel.vue.d.ts} +0 -0
  891. package/dist/runtime/table/components/filters/shared/{FilterStageTransition.d.vue.ts → filter-stage-transition.d.vue.ts} +0 -0
  892. package/dist/runtime/table/components/filters/shared/{FilterStageTransition.vue.d.ts → filter-stage-transition.vue.d.ts} +0 -0
  893. package/dist/runtime/table/components/grid/{GridCard.d.vue.ts → grid-card.d.vue.ts} +0 -0
  894. package/dist/runtime/table/components/grid/{GridCard.vue.d.ts → grid-card.vue.d.ts} +0 -0
  895. package/dist/runtime/table/components/grid/{GridSkeleton.d.vue.ts → grid-skeleton.d.vue.ts} +0 -0
  896. package/dist/runtime/table/components/grid/{GridSkeleton.vue.d.ts → grid-skeleton.vue.d.ts} +0 -0
  897. package/dist/runtime/table/components/layout/{TableHeader.d.vue.ts → table-header.d.vue.ts} +0 -0
  898. package/dist/runtime/table/components/layout/{TableHeader.vue.d.ts → table-header.vue.d.ts} +0 -0
  899. package/dist/runtime/table/components/table/{TableCellEllipsis.d.ts → table-cell-ellipsis.d.ts} +13 -13
@@ -1,106 +1,1063 @@
1
- import { computed, ref } from "vue";
1
+ import { useRegle } from "@regle/core";
2
+ import { withAsync, withMessage } from "@regle/rules";
3
+ import { computed, nextTick, reactive, ref, unref, watch } from "vue";
4
+ import { calendarSeedFromValue, isDateFamilyRange } from "../fields/date-family/utils.js";
5
+ import { resolveFieldDependencies } from "../utils/dependencies.js";
6
+ import { createFormFieldInstance } from "../utils/field-instance.js";
7
+ import { getPathValue, isRecord, pathSegments } from "../utils/path.js";
8
+ import {
9
+ isBoolean,
10
+ isFunction,
11
+ isNumber,
12
+ isObject,
13
+ isString,
14
+ isUndefined
15
+ } from "../utils/predicate.js";
2
16
  import {
3
- collectFormFieldsPaths,
4
17
  fieldPath,
5
- validateFormFields,
6
- validateFormState
18
+ getArrayItemFields,
19
+ getMatrixRows,
20
+ getPrimitiveArrayItemField,
21
+ isArrayField,
22
+ isEmptyValue,
23
+ isFlatPassthroughField,
24
+ isObjectContainerField,
25
+ isPrimitiveArrayField,
26
+ resolveRequired,
27
+ resolveRequiredMessage,
28
+ shouldRenderField
7
29
  } from "../utils/state.js";
30
+ import { resolveFormBoundaryText } from "../utils/text.js";
8
31
  export function useFormValidation(params) {
9
- const validationErrors = ref([]);
10
32
  const customErrors = ref([]);
11
33
  const touchedPaths = ref([]);
34
+ const pendingPaths = ref(/* @__PURE__ */ new Map());
35
+ const dynamicMessages = ref(/* @__PURE__ */ new Map());
36
+ const validatedMessages = ref(/* @__PURE__ */ new Map());
12
37
  const validationRuns = /* @__PURE__ */ new Map();
38
+ const regle = useRegle(
39
+ params.state,
40
+ () => buildRegleRules({
41
+ apiFactory: params.apiFactory,
42
+ context: params.context,
43
+ dynamicMessages,
44
+ getDateMaxMessage: params.getDateMaxMessage,
45
+ getDateMinMessage: params.getDateMinMessage,
46
+ getRequiredMessage: params.getRequiredMessage,
47
+ getUniqueMessage: params.getUniqueMessage,
48
+ includeAsync: true,
49
+ mode: params.getValidationMode(),
50
+ schema: params.schema(),
51
+ state: params.state
52
+ }),
53
+ { autoDirty: false, debounce: 0, lazy: true }
54
+ );
55
+ const syncRegle = useRegle(
56
+ params.state,
57
+ () => buildRegleRules({
58
+ apiFactory: params.apiFactory,
59
+ context: params.context,
60
+ dynamicMessages,
61
+ getDateMaxMessage: params.getDateMaxMessage,
62
+ getDateMinMessage: params.getDateMinMessage,
63
+ getRequiredMessage: params.getRequiredMessage,
64
+ getUniqueMessage: params.getUniqueMessage,
65
+ includeAsync: false,
66
+ mode: params.getValidationMode(),
67
+ schema: params.schema(),
68
+ state: params.state
69
+ }),
70
+ { autoDirty: false, debounce: 0, lazy: true }
71
+ );
72
+ const itemsMirror = reactive({});
73
+ const itemsRegle = useRegle(
74
+ itemsMirror,
75
+ () => buildPrimitiveItemRules({
76
+ apiFactory: params.apiFactory,
77
+ context: params.context,
78
+ dynamicMessages,
79
+ getDateMaxMessage: params.getDateMaxMessage,
80
+ getDateMinMessage: params.getDateMinMessage,
81
+ getRequiredMessage: params.getRequiredMessage,
82
+ getUniqueMessage: params.getUniqueMessage,
83
+ includeAsync: true,
84
+ mode: params.getValidationMode(),
85
+ schema: params.schema(),
86
+ state: params.state
87
+ }),
88
+ { autoDirty: false, debounce: 0, lazy: true }
89
+ );
90
+ const itemsSyncRegle = useRegle(
91
+ itemsMirror,
92
+ () => buildPrimitiveItemRules({
93
+ apiFactory: params.apiFactory,
94
+ context: params.context,
95
+ dynamicMessages,
96
+ getDateMaxMessage: params.getDateMaxMessage,
97
+ getDateMinMessage: params.getDateMinMessage,
98
+ getRequiredMessage: params.getRequiredMessage,
99
+ getUniqueMessage: params.getUniqueMessage,
100
+ includeAsync: false,
101
+ mode: params.getValidationMode(),
102
+ schema: params.schema(),
103
+ state: params.state
104
+ }),
105
+ { autoDirty: false, debounce: 0, lazy: true }
106
+ );
107
+ watch(
108
+ () => collectPrimitiveArraysForSchema(params.schema(), params.state).map((target) => ({
109
+ items: getPathValue(params.state, target.path),
110
+ key: target.key
111
+ })),
112
+ syncItemsMirror,
113
+ { deep: true, flush: "sync", immediate: true }
114
+ );
115
+ function syncItemsMirror(targets) {
116
+ const keys = new Set(targets.map((target) => target.key));
117
+ for (const key of Object.keys(itemsMirror)) {
118
+ if (!keys.has(key)) {
119
+ Reflect.deleteProperty(itemsMirror, key);
120
+ }
121
+ }
122
+ for (const target of targets) {
123
+ const items = Array.isArray(target.items) ? target.items : [];
124
+ if (!Array.isArray(itemsMirror[target.key])) {
125
+ itemsMirror[target.key] = [];
126
+ }
127
+ const holders = itemsMirror[target.key];
128
+ if (!Array.isArray(holders)) {
129
+ continue;
130
+ }
131
+ for (const [index, item] of items.entries()) {
132
+ const holder = holders[index];
133
+ if (isRecord(holder)) {
134
+ holder.value = item;
135
+ } else {
136
+ holders[index] = { value: item };
137
+ }
138
+ }
139
+ if (holders.length > items.length) {
140
+ holders.splice(items.length);
141
+ }
142
+ }
143
+ }
144
+ function resetRegleRoots() {
145
+ regle.r$.$reset();
146
+ syncRegle.r$.$reset();
147
+ itemsRegle.r$.$reset();
148
+ itemsSyncRegle.r$.$reset();
149
+ }
150
+ const validationErrors = computed(
151
+ () => collectFormFieldsPathsForSchema(params.schema(), params.state).flatMap((path) => {
152
+ if (!touchedPaths.value.includes(path)) {
153
+ return [];
154
+ }
155
+ return resolveFieldErrors(path).map((message) => ({ message, path }));
156
+ })
157
+ );
13
158
  const errors = computed(() => [...validationErrors.value, ...customErrors.value]);
14
159
  async function validate() {
15
- validationErrors.value = await validateFormState(
16
- params.schema(),
17
- params.state,
18
- params.context,
19
- params.apiFactory,
20
- params.getValidationMode()
160
+ const run = nextValidationRun(validationRuns, "$form");
161
+ if (params.getValidationMode() === false) {
162
+ resetRegleRoots();
163
+ return true;
164
+ }
165
+ resetRegleRoots();
166
+ const paths = collectFormFieldsPathsForSchema(params.schema(), params.state);
167
+ clearDynamicMessages(paths);
168
+ clearValidatedMessages(paths);
169
+ const prepared = prepareReglePaths(
170
+ { items: itemsRegle.r$, main: regle.r$ },
171
+ { items: itemsSyncRegle.r$, main: syncRegle.r$ },
172
+ paths,
173
+ params.state
21
174
  );
22
- touchErrorPaths(validationErrors.value);
23
- return errors.value.length === 0;
175
+ const potentialAsyncPaths = prepared.regleStatuses.filter(({ status }) => hasAsyncRegleRule(status)).map(({ fieldPath: currentPath }) => currentPath);
176
+ const pendingToken = `form:${run}`;
177
+ addPendingPaths(pendingPaths, potentialAsyncPaths, pendingToken);
178
+ let asyncPaths = [];
179
+ let asyncValid = true;
180
+ try {
181
+ const syncResult = await validateSyncRegleStatuses(prepared.syncStatuses);
182
+ prepared.syncResults = syncResult.results;
183
+ storeValidatedMessages(prepared.syncStatuses);
184
+ touchPaths(paths);
185
+ asyncPaths = prepared.regleStatuses.filter(
186
+ ({ path, status }) => prepared.syncResults.get(path) !== false && hasAsyncRegleRule(status)
187
+ ).map(({ fieldPath: currentPath }) => currentPath);
188
+ removePendingPaths(
189
+ pendingPaths,
190
+ potentialAsyncPaths.filter((path) => !asyncPaths.includes(path)),
191
+ pendingToken
192
+ );
193
+ const nextAsyncStatuses = prepared.regleStatuses.filter(
194
+ ({ path }) => prepared.syncResults.get(path) !== false
195
+ );
196
+ asyncValid = await validateRegleStatuses(nextAsyncStatuses.map(({ status }) => status));
197
+ storeValidatedMessages(nextAsyncStatuses);
198
+ if (validationRuns.get("$form") !== run) {
199
+ return asyncValid;
200
+ }
201
+ return syncResult.valid && asyncValid && !hasBlockingErrors(paths);
202
+ } finally {
203
+ removePendingPaths(pendingPaths, potentialAsyncPaths, pendingToken);
204
+ }
24
205
  }
25
206
  async function validateFields(fields, parentPath) {
26
- const key = scopeKey(fields, parentPath);
27
- const run = (validationRuns.get(key) ?? 0) + 1;
28
- validationRuns.set(key, run);
29
- const nextErrors = await validateFormFields({
207
+ const paths = collectFormFieldsPathsForFields(
30
208
  fields,
31
- state: params.state,
32
- ctx: params.context,
33
- apiFactory: params.apiFactory,
34
- parentPath,
35
- mode: params.getValidationMode()
36
- });
37
- if (validationRuns.get(key) !== run) return nextErrors.length === 0;
38
- const fieldKeys = collectFormFieldsPaths(fields, parentPath);
39
- touchPaths(fieldKeys);
40
- const retained = validationErrors.value.filter(
41
- (error) => !fieldKeys.some(
42
- (fieldKey) => error.path === fieldKey || error.path.startsWith(`${fieldKey}.`)
43
- )
209
+ params.state,
210
+ parentPath
44
211
  );
45
- validationErrors.value = [...retained, ...nextErrors];
46
- return nextErrors.length === 0;
212
+ const scope = paths.join("|") || parentPath.join(".") || "$fields";
213
+ const run = nextValidationRun(validationRuns, scope);
214
+ if (params.getValidationMode() === false) {
215
+ return true;
216
+ }
217
+ clearDynamicMessages(paths);
218
+ clearValidatedMessages(paths);
219
+ const prepared = prepareReglePaths(
220
+ { items: itemsRegle.r$, main: regle.r$ },
221
+ { items: itemsSyncRegle.r$, main: syncRegle.r$ },
222
+ paths,
223
+ params.state
224
+ );
225
+ const potentialAsyncPaths = prepared.regleStatuses.filter(({ status }) => hasAsyncRegleRule(status)).map(({ fieldPath: currentPath }) => currentPath);
226
+ const pendingToken = `scope:${scope}:${run}`;
227
+ addPendingPaths(pendingPaths, potentialAsyncPaths, pendingToken);
228
+ let asyncPaths = [];
229
+ let asyncValid = true;
230
+ try {
231
+ const syncResult = await validateSyncRegleStatuses(prepared.syncStatuses);
232
+ prepared.syncResults = syncResult.results;
233
+ storeValidatedMessages(prepared.syncStatuses);
234
+ touchPaths(paths);
235
+ asyncPaths = prepared.regleStatuses.filter(
236
+ ({ path, status }) => prepared.syncResults.get(path) !== false && hasAsyncRegleRule(status)
237
+ ).map(({ fieldPath: currentPath }) => currentPath);
238
+ removePendingPaths(
239
+ pendingPaths,
240
+ potentialAsyncPaths.filter((path) => !asyncPaths.includes(path)),
241
+ pendingToken
242
+ );
243
+ const nextAsyncStatuses = prepared.regleStatuses.filter(
244
+ ({ path }) => prepared.syncResults.get(path) !== false
245
+ );
246
+ asyncValid = await validateRegleStatuses(nextAsyncStatuses.map(({ status }) => status));
247
+ storeValidatedMessages(nextAsyncStatuses);
248
+ if (validationRuns.get(scope) !== run) {
249
+ return !validationErrors.value.some(
250
+ (error) => paths.some((path) => isScopedPath(error.path, path))
251
+ );
252
+ }
253
+ return syncResult.valid && asyncValid && !hasBlockingErrors(paths);
254
+ } finally {
255
+ removePendingPaths(pendingPaths, potentialAsyncPaths, pendingToken);
256
+ }
47
257
  }
48
258
  function getFieldError(path) {
49
259
  const key = path.join(".");
50
260
  const customError = customErrors.value.find((error) => error.path === key);
51
- if (customError) return customError.message;
52
- if (!touchedPaths.value.includes(key)) return void 0;
53
- return validationErrors.value.find((error) => error.path === key)?.message;
261
+ if (customError) {
262
+ return customError.message;
263
+ }
264
+ if (!touchedPaths.value.includes(key)) {
265
+ return;
266
+ }
267
+ return resolveFieldErrors(key)[0];
54
268
  }
55
- function setError(path, message) {
269
+ function setError(path, message, options) {
56
270
  const key = path.join(".");
57
271
  customErrors.value = [
58
272
  ...customErrors.value.filter((error) => error.path !== key),
59
- { path: key, message }
273
+ { blocking: options?.blocking === true, message, path: key }
60
274
  ];
61
275
  }
276
+ function hasBlockingErrors(paths) {
277
+ return customErrors.value.some(
278
+ (error) => error.blocking === true && paths.some((path) => isScopedPath(error.path, path))
279
+ );
280
+ }
62
281
  function clearError(path) {
63
282
  if (!path) {
64
- validationErrors.value = [];
65
283
  customErrors.value = [];
66
284
  touchedPaths.value = [];
285
+ dynamicMessages.value = /* @__PURE__ */ new Map();
286
+ validatedMessages.value = /* @__PURE__ */ new Map();
287
+ resetRegleRoots();
67
288
  return;
68
289
  }
69
290
  const key = path.join(".");
70
- validationErrors.value = validationErrors.value.filter((error) => error.path !== key);
71
- customErrors.value = customErrors.value.filter((error) => error.path !== key);
291
+ customErrors.value = customErrors.value.filter(
292
+ (error) => error.path !== key && !error.path.startsWith(`${key}.`)
293
+ );
294
+ touchedPaths.value = touchedPaths.value.filter(
295
+ (touchedPath) => touchedPath !== key && !touchedPath.startsWith(`${key}.`)
296
+ );
297
+ dynamicMessages.value = new Map(
298
+ [...dynamicMessages.value.entries()].filter(
299
+ ([messageKey]) => !messageKey.startsWith(`${key}:`)
300
+ )
301
+ );
302
+ validatedMessages.value = new Map(
303
+ [...validatedMessages.value.entries()].filter(
304
+ ([messagePath]) => messagePath !== key && !messagePath.startsWith(`${key}.`)
305
+ )
306
+ );
307
+ }
308
+ function clearValidationState() {
309
+ customErrors.value = [];
310
+ touchedPaths.value = [];
311
+ dynamicMessages.value = /* @__PURE__ */ new Map();
312
+ validatedMessages.value = /* @__PURE__ */ new Map();
313
+ resetRegleRoots();
314
+ }
315
+ function clearDynamicMessages(paths) {
316
+ dynamicMessages.value = new Map(
317
+ [...dynamicMessages.value.entries()].filter(
318
+ ([messageKey]) => !paths.some((path) => messageKey.startsWith(`${path}:`))
319
+ )
320
+ );
321
+ }
322
+ function clearValidatedMessages(paths) {
323
+ if (!paths.length) {
324
+ return;
325
+ }
326
+ validatedMessages.value = new Map(
327
+ [...validatedMessages.value.entries()].filter(([path]) => !paths.includes(path))
328
+ );
329
+ }
330
+ function storeValidatedMessages(statuses) {
331
+ const next = new Map(validatedMessages.value);
332
+ for (const { fieldPath: path, status } of statuses) {
333
+ next.set(path, resolveRegleStatusErrors(status));
334
+ }
335
+ validatedMessages.value = next;
336
+ }
337
+ function resolveFieldErrors(path) {
338
+ return validatedMessages.value.get(path) ?? [];
72
339
  }
73
340
  function markTouched(path) {
74
341
  touchPaths([path.join(".")]);
75
342
  }
76
- function markAllTouched(paths) {
77
- touchPaths(paths);
78
- }
79
343
  function isTouched(path) {
344
+ return touchedPaths.value.includes(path.join("."));
345
+ }
346
+ function isPending(path) {
80
347
  const key = path.join(".");
81
- return touchedPaths.value.includes(key);
348
+ if (pendingPaths.value.get(key)?.size) {
349
+ return true;
350
+ }
351
+ const status = resolveRegleStatus(regle.r$, toReglePath(path.join("."), params.state)) ?? resolvePrimitiveItemStatus(itemsRegle.r$, path.join("."));
352
+ if (!isPendingRegleStatus(status)) {
353
+ return false;
354
+ }
355
+ return readBooleanProperty(status, "$pending") || hasPendingRegleRule(readReactiveProperty(status, "$rules"));
82
356
  }
83
357
  function touchPaths(paths) {
84
358
  touchedPaths.value = unique([...touchedPaths.value, ...paths.filter(Boolean)]);
85
359
  }
86
- function touchErrorPaths(nextErrors) {
87
- touchPaths(nextErrors.map((error) => error.path));
88
- }
89
360
  return {
361
+ clearError,
362
+ clearValidationState,
90
363
  errors,
91
- validate,
92
- validateFields,
93
364
  getFieldError,
94
- setError,
95
- clearError,
365
+ isPending,
366
+ isTouched,
96
367
  markTouched,
97
- markAllTouched,
98
- isTouched
368
+ setError,
369
+ validate,
370
+ validateFields,
371
+ validationErrors
99
372
  };
100
373
  }
101
- function scopeKey(fields, parentPath) {
102
- return fields.map((field) => fieldPath(parentPath, field).join(".")).join("|") || parentPath.join(".") || "$form";
374
+ function buildRegleRules(params) {
375
+ const rules = {};
376
+ if (isSteppedSchemaForRules(params.schema)) {
377
+ for (const step of getSchemaStepsForRules(params.schema)) {
378
+ const stepRules = buildFieldRules({
379
+ ...params,
380
+ fields: step.fields,
381
+ parentPath: step.root ? [step.root] : []
382
+ });
383
+ for (const [key, value] of Object.entries(stepRules)) {
384
+ if (value === void 0) {
385
+ continue;
386
+ }
387
+ setRegleRuleNode(rules, step.root ? `${step.root}.${key}` : key, value);
388
+ }
389
+ }
390
+ return rules;
391
+ }
392
+ return buildFieldRules({
393
+ ...params,
394
+ fields: getSchemaFieldsForRules(params.schema),
395
+ parentPath: []
396
+ });
397
+ }
398
+ function buildFieldRules(params) {
399
+ const rules = {};
400
+ for (const field of params.fields) {
401
+ if (field.ignore === true) {
402
+ continue;
403
+ }
404
+ const fieldInstance = createFormFieldInstance(field);
405
+ if (fieldInstance.state.is("stateless")) {
406
+ continue;
407
+ }
408
+ if (isFlatPassthroughField(field)) {
409
+ const childRules = buildFieldRules({ ...params, fields: getChildFieldsForRules(field) });
410
+ for (const [key, value] of Object.entries(childRules)) {
411
+ if (value !== void 0) {
412
+ setRegleRuleNode(rules, key, value);
413
+ }
414
+ }
415
+ continue;
416
+ }
417
+ const path = fieldPath(params.parentPath, field);
418
+ const api = params.apiFactory(path, field);
419
+ const callbackParams = {
420
+ api,
421
+ ctx: params.context,
422
+ deps: resolveFieldDependencies({
423
+ field,
424
+ parentPath: params.parentPath,
425
+ state: params.state
426
+ })
427
+ };
428
+ if (!shouldRenderField(field, callbackParams)) {
429
+ continue;
430
+ }
431
+ if (isObjectContainerField(field)) {
432
+ setRegleRuleNode(
433
+ rules,
434
+ field.key,
435
+ buildFieldRules({
436
+ ...params,
437
+ fields: getChildFieldsForRules(field),
438
+ parentPath: path
439
+ })
440
+ );
441
+ continue;
442
+ }
443
+ if (fieldInstance.type.is("matrix")) {
444
+ const matrixRules = {};
445
+ for (const row of getMatrixRows(field)) {
446
+ matrixRules[row] = buildFieldRules({
447
+ ...params,
448
+ fields: getChildFieldsForRules(field),
449
+ parentPath: [...path, row]
450
+ });
451
+ }
452
+ setRegleRuleNode(rules, field.key, matrixRules);
453
+ continue;
454
+ }
455
+ if (isPrimitiveArrayField(field)) {
456
+ setRegleRuleNode(rules, field.key, buildLeafRules({ ...params, callbackParams, field, path }));
457
+ continue;
458
+ }
459
+ if (isArrayField(field)) {
460
+ setRegleRuleNode(rules, field.key, {
461
+ $each: (item, index) => {
462
+ const itemValue = isRecord(item.value) ? item.value : {};
463
+ return buildFieldRules({
464
+ ...params,
465
+ fields: getArrayItemFields(field, itemValue),
466
+ parentPath: [...path, String(index)]
467
+ });
468
+ }
469
+ });
470
+ continue;
471
+ }
472
+ const fieldRules = buildLeafRules({ ...params, callbackParams, field, path });
473
+ if (Object.keys(fieldRules).length) {
474
+ setRegleRuleNode(rules, field.key, fieldRules);
475
+ }
476
+ }
477
+ return rules;
478
+ }
479
+ function setRegleRuleNode(target, key, value) {
480
+ const segments = pathSegments(key);
481
+ const leaf = segments.pop();
482
+ if (!leaf) {
483
+ return;
484
+ }
485
+ let current = target;
486
+ for (const segment of segments) {
487
+ const existing = current[segment];
488
+ if (isRegleRuleTreeNode(existing)) {
489
+ current = existing;
490
+ continue;
491
+ }
492
+ const branch = {};
493
+ current[segment] = branch;
494
+ current = branch;
495
+ }
496
+ current[leaf] = value;
497
+ }
498
+ function isRegleRuleTreeNode(value) {
499
+ return isRecord(value) && !("$each" in value);
500
+ }
501
+ function buildLeafRules(params) {
502
+ const output = {};
503
+ const validation = Object.getOwnPropertyDescriptor(params.field, "validation")?.value;
504
+ const key = params.path.join(".");
505
+ if (params.mode !== "rules" && resolveRequired(params.field, params.callbackParams)) {
506
+ output.required = withMessage(
507
+ (value) => !isEmptyValue(value),
508
+ resolveRequiredMessage(params.field, params.getRequiredMessage?.())
509
+ );
510
+ }
511
+ if (params.mode === "required") {
512
+ return output;
513
+ }
514
+ applyDateBoundsRules(output, params);
515
+ const authoredValidators = "validators" in params.field ? params.field.validators : void 0;
516
+ let validators;
517
+ if (isValidatorMap(authoredValidators)) {
518
+ validators = authoredValidators;
519
+ } else if (isFunction(authoredValidators)) {
520
+ validators = authoredValidators(params.callbackParams);
521
+ }
522
+ if (validators) {
523
+ for (const name in validators) {
524
+ const rule = validators[name];
525
+ if (rule) {
526
+ output[name] = rule;
527
+ }
528
+ }
529
+ }
530
+ const authoredRules = isRecord(validation) ? Object.getOwnPropertyDescriptor(validation, "rules")?.value : void 0;
531
+ if (!Array.isArray(authoredRules)) {
532
+ return output;
533
+ }
534
+ authoredRules.forEach((rule, index) => {
535
+ if (!isRecord(rule)) {
536
+ return;
537
+ }
538
+ const validate = Object.getOwnPropertyDescriptor(rule, "validate")?.value;
539
+ if (!isFunction(validate)) {
540
+ return;
541
+ }
542
+ if (!params.includeAsync && isAsyncFunction(validate)) {
543
+ return;
544
+ }
545
+ const ruleName = resolveRuleName(rule, index);
546
+ const messageKey = `${key}:${ruleName}`;
547
+ function message() {
548
+ return params.dynamicMessages.value.get(messageKey) ?? resolveRuleMessage(rule, params.field);
549
+ }
550
+ if (isAsyncFunction(validate)) {
551
+ output[ruleName] = withMessage(
552
+ withAsync(
553
+ async () => resolveRuleResult(
554
+ await validate({ ...params.callbackParams, api: params.callbackParams.api }),
555
+ messageKey,
556
+ params.dynamicMessages
557
+ )
558
+ ),
559
+ message
560
+ );
561
+ } else {
562
+ output[ruleName] = withMessage(
563
+ () => resolveRuleResult(
564
+ validate({ ...params.callbackParams, api: params.callbackParams.api }),
565
+ messageKey,
566
+ params.dynamicMessages
567
+ ),
568
+ message
569
+ );
570
+ }
571
+ });
572
+ return output;
573
+ }
574
+ function isValidatorMap(value) {
575
+ return isObject(value);
576
+ }
577
+ function resolveRuleResult(result, messageKey, dynamicMessages) {
578
+ if (isString(result)) {
579
+ setDynamicMessage(dynamicMessages, messageKey, result);
580
+ return false;
581
+ }
582
+ clearDynamicMessage(dynamicMessages, messageKey);
583
+ return result === true || result === null || isUndefined(result);
584
+ }
585
+ function isAsyncFunction(value) {
586
+ return Object.getPrototypeOf(value)?.constructor?.name === "AsyncFunction";
587
+ }
588
+ function setDynamicMessage(messages, key, value) {
589
+ const next = new Map(messages.value);
590
+ next.set(key, value);
591
+ messages.value = next;
592
+ }
593
+ function clearDynamicMessage(messages, key) {
594
+ if (!messages.value.has(key)) {
595
+ return;
596
+ }
597
+ const next = new Map(messages.value);
598
+ next.delete(key);
599
+ messages.value = next;
600
+ }
601
+ function resolveRuleName(rule, index) {
602
+ const name = Object.getOwnPropertyDescriptor(rule, "name")?.value;
603
+ return isString(name) && name.length ? name : `rule-${index + 1}`;
604
+ }
605
+ function resolveRuleMessage(rule, field) {
606
+ const message = Object.getOwnPropertyDescriptor(rule, "message")?.value;
607
+ if (isFunction(message)) {
608
+ return String(message());
609
+ }
610
+ if (isString(message) || isNumber(message)) {
611
+ return String(message);
612
+ }
613
+ const name = Object.getOwnPropertyDescriptor(rule, "name")?.value;
614
+ return isString(name) ? `Invalid value for ${name}.` : `Invalid value for ${field.key}.`;
615
+ }
616
+ function resolveRegleStatusErrors(status) {
617
+ const errors = readReactiveProperty(status, "$errors");
618
+ return Array.isArray(errors) ? errors.map(String) : [];
619
+ }
620
+ function toReglePath(path, state) {
621
+ const reglePath = [];
622
+ let current = state;
623
+ for (const segment of pathSegments(path)) {
624
+ if (Array.isArray(current) && /^\d+$/u.test(segment)) {
625
+ reglePath.push("$each");
626
+ }
627
+ reglePath.push(segment);
628
+ current = Array.isArray(current) ? current[Number(segment)] : isRecord(current) ? current[segment] : void 0;
629
+ }
630
+ return reglePath.join(".");
631
+ }
632
+ function collectFormFieldsPathsForSchema(schema, state) {
633
+ if (isSteppedSchemaForRules(schema)) {
634
+ return getSchemaStepsForRules(schema).flatMap(
635
+ (step) => collectFormFieldsPathsForFields(step.fields, state, step.root ? [step.root] : [])
636
+ );
637
+ }
638
+ return collectFormFieldsPathsForFields(getSchemaFieldsForRules(schema), state, []);
639
+ }
640
+ function collectFormFieldsPathsForFields(fields, state, parentPath) {
641
+ return fields.flatMap((field) => {
642
+ if (field.ignore === true) {
643
+ return [];
644
+ }
645
+ const fieldInstance = createFormFieldInstance(field);
646
+ if (fieldInstance.state.is("stateless")) {
647
+ return [];
648
+ }
649
+ if (isFlatPassthroughField(field)) {
650
+ return collectFormFieldsPathsForFields(getChildFieldsForRules(field), state, parentPath);
651
+ }
652
+ const path = fieldPath(parentPath, field);
653
+ if (isObjectContainerField(field)) {
654
+ return collectFormFieldsPathsForFields(getChildFieldsForRules(field), state, path);
655
+ }
656
+ if (fieldInstance.type.is("matrix")) {
657
+ return getMatrixRows(field).flatMap(
658
+ (row) => collectFormFieldsPathsForFields(getChildFieldsForRules(field), state, [...path, row])
659
+ );
660
+ }
661
+ if (isPrimitiveArrayField(field)) {
662
+ const value = getPathValue(state, path);
663
+ const itemPaths = Array.isArray(value) ? value.map((_item, index) => [...path, String(index)].join(".")) : [];
664
+ return [path.join("."), ...itemPaths];
665
+ }
666
+ if (isArrayField(field)) {
667
+ const value = getPathValue(state, path);
668
+ if (!Array.isArray(value)) {
669
+ return [];
670
+ }
671
+ return value.flatMap(
672
+ (item, index) => collectFormFieldsPathsForFields(
673
+ getArrayItemFields(field, isRecord(item) ? item : {}),
674
+ state,
675
+ [...path, String(index)]
676
+ )
677
+ );
678
+ }
679
+ return [path.join(".")];
680
+ });
681
+ }
682
+ function isScopedPath(path, scope) {
683
+ return path === scope || path.startsWith(`${scope}.`);
684
+ }
685
+ function getSchemaFieldsForRules(schema) {
686
+ if (!isRecord(schema)) {
687
+ return [];
688
+ }
689
+ const fields = Object.getOwnPropertyDescriptor(schema, "fields")?.value;
690
+ return Array.isArray(fields) ? fields.filter(isFormFieldForRules) : [];
691
+ }
692
+ function getSchemaStepsForRules(schema) {
693
+ if (!isRecord(schema)) {
694
+ return [];
695
+ }
696
+ const steps = Object.getOwnPropertyDescriptor(schema, "steps")?.value;
697
+ if (!Array.isArray(steps)) {
698
+ return [];
699
+ }
700
+ return steps.flatMap((step) => {
701
+ if (!isRecord(step)) {
702
+ return [];
703
+ }
704
+ const fields = Object.getOwnPropertyDescriptor(step, "fields")?.value;
705
+ if (!Array.isArray(fields)) {
706
+ return [];
707
+ }
708
+ const root = Object.getOwnPropertyDescriptor(step, "root")?.value;
709
+ return [
710
+ {
711
+ fields: fields.filter(isFormFieldForRules),
712
+ root: isString(root) ? root : void 0
713
+ }
714
+ ];
715
+ });
716
+ }
717
+ function isSteppedSchemaForRules(schema) {
718
+ return getSchemaStepsForRules(schema).length > 0;
719
+ }
720
+ function getChildFieldsForRules(field) {
721
+ const tabs = Object.getOwnPropertyDescriptor(field, "tabs")?.value;
722
+ if (Array.isArray(tabs)) {
723
+ return tabs.flatMap((tab) => {
724
+ const fields2 = isRecord(tab) ? tab.fields : void 0;
725
+ return Array.isArray(fields2) ? fields2.filter(isFormFieldForRules) : [];
726
+ });
727
+ }
728
+ const fields = Object.getOwnPropertyDescriptor(field, "fields")?.value;
729
+ return Array.isArray(fields) ? fields.filter(isFormFieldForRules) : [];
730
+ }
731
+ function isFormFieldForRules(value) {
732
+ if (!isRecord(value)) {
733
+ return false;
734
+ }
735
+ return isString(value.key) && isString(value.type);
736
+ }
737
+ function mirrorKey(path) {
738
+ return path.join("/");
739
+ }
740
+ function resolvePrimitiveItemStatus(root, path) {
741
+ const segments = pathSegments(path);
742
+ const index = segments.at(-1);
743
+ if (index === void 0 || !/^\d+$/u.test(index)) {
744
+ return void 0;
745
+ }
746
+ const key = mirrorKey(segments.slice(0, -1));
747
+ if (resolveRegleStatus(root, key) === void 0) {
748
+ return void 0;
749
+ }
750
+ return resolveRegleStatus(root, `${key}.$each.${index}.value`);
751
+ }
752
+ function collectPrimitiveArraysForSchema(schema, state) {
753
+ if (isSteppedSchemaForRules(schema)) {
754
+ return getSchemaStepsForRules(schema).flatMap(
755
+ (step) => collectPrimitiveArraysForFields(step.fields, state, step.root ? [step.root] : [])
756
+ );
757
+ }
758
+ return collectPrimitiveArraysForFields(getSchemaFieldsForRules(schema), state, []);
759
+ }
760
+ function collectPrimitiveArraysForFields(fields, state, parentPath) {
761
+ return fields.flatMap((field) => {
762
+ if (field.ignore === true) {
763
+ return [];
764
+ }
765
+ const fieldInstance = createFormFieldInstance(field);
766
+ if (fieldInstance.state.is("stateless")) {
767
+ return [];
768
+ }
769
+ if (isFlatPassthroughField(field)) {
770
+ return collectPrimitiveArraysForFields(getChildFieldsForRules(field), state, parentPath);
771
+ }
772
+ const path = fieldPath(parentPath, field);
773
+ if (isObjectContainerField(field)) {
774
+ return collectPrimitiveArraysForFields(getChildFieldsForRules(field), state, path);
775
+ }
776
+ if (fieldInstance.type.is("matrix")) {
777
+ return getMatrixRows(field).flatMap(
778
+ (row) => collectPrimitiveArraysForFields(getChildFieldsForRules(field), state, [...path, row])
779
+ );
780
+ }
781
+ if (isPrimitiveArrayField(field)) {
782
+ return [{ field, key: mirrorKey(path), path }];
783
+ }
784
+ if (isArrayField(field)) {
785
+ const value = getPathValue(state, path);
786
+ if (!Array.isArray(value)) {
787
+ return [];
788
+ }
789
+ return value.flatMap(
790
+ (item, index) => collectPrimitiveArraysForFields(
791
+ getArrayItemFields(field, isRecord(item) ? item : {}),
792
+ state,
793
+ [...path, String(index)]
794
+ )
795
+ );
796
+ }
797
+ return [];
798
+ });
799
+ }
800
+ function buildPrimitiveItemRules(params) {
801
+ const rules = {};
802
+ for (const target of collectPrimitiveArraysForSchema(params.schema, params.state)) {
803
+ const deps = resolveFieldDependencies({
804
+ field: target.field,
805
+ parentPath: target.path.slice(0, -1),
806
+ state: params.state
807
+ });
808
+ const collection = {
809
+ $each: (_item, index) => {
810
+ const itemField = getPrimitiveArrayItemField(target.field, index);
811
+ if (!itemField) {
812
+ return {};
813
+ }
814
+ const itemPath = [...target.path, String(index)];
815
+ const itemRules = buildLeafRules({
816
+ ...params,
817
+ callbackParams: {
818
+ api: params.apiFactory(itemPath, itemField),
819
+ ctx: params.context,
820
+ deps
821
+ },
822
+ field: itemField,
823
+ path: itemPath
824
+ });
825
+ if (params.mode !== "required" && isUniqueArrayField(target.field)) {
826
+ itemRules.unique = withMessage(
827
+ (value) => countArrayValue(getPathValue(params.state, target.path), value) <= 1,
828
+ resolveUniqueMessage(target.field, params.getUniqueMessage?.())
829
+ );
830
+ }
831
+ return { value: itemRules };
832
+ }
833
+ };
834
+ rules[target.key] = collection;
835
+ }
836
+ return rules;
837
+ }
838
+ const DATE_VALIDATION_TYPES = /* @__PURE__ */ new Set([
839
+ "date",
840
+ "datetime",
841
+ "daterange",
842
+ "monthrange",
843
+ "datetimerange",
844
+ "month",
845
+ "year"
846
+ ]);
847
+ function isDateFamilyField(field) {
848
+ const type = Object.getOwnPropertyDescriptor(field, "type")?.value;
849
+ return isString(type) && DATE_VALIDATION_TYPES.has(type);
850
+ }
851
+ function applyDateBoundsRules(output, params) {
852
+ if (!isDateFamilyField(params.field)) {
853
+ return;
854
+ }
855
+ const dateField = params.field;
856
+ const bounds = resolveDateFieldBounds(dateField, params.callbackParams);
857
+ if (bounds.min !== void 0) {
858
+ output.dateMin = withMessage(
859
+ (value) => isWithinDateMin(value, bounds.min, dateField.type),
860
+ params.getDateMinMessage?.(bounds.minLabel ?? "") ?? `Must be on or after ${bounds.minLabel}`
861
+ );
862
+ }
863
+ if (bounds.max !== void 0) {
864
+ output.dateMax = withMessage(
865
+ (value) => isWithinDateMax(value, bounds.max, dateField.type),
866
+ params.getDateMaxMessage?.(bounds.maxLabel ?? "") ?? `Must be on or before ${bounds.maxLabel}`
867
+ );
868
+ }
869
+ }
870
+ function resolveDateFieldBounds(field, callbackParams) {
871
+ const rawProps = Object.getOwnPropertyDescriptor(field, "props")?.value;
872
+ const resolved = isFunction(rawProps) ? rawProps(callbackParams) : rawProps;
873
+ const propsRecord = isRecord(resolved) ? resolved : {};
874
+ if (field.type === "year") {
875
+ const min2 = isNumber(propsRecord.min) ? propsRecord.min : void 0;
876
+ const max2 = isNumber(propsRecord.max) ? propsRecord.max : void 0;
877
+ return {
878
+ max: max2,
879
+ maxLabel: max2 === void 0 ? void 0 : String(max2),
880
+ min: min2,
881
+ minLabel: min2 === void 0 ? void 0 : String(min2)
882
+ };
883
+ }
884
+ const minSeed = isDateSeedValue(propsRecord.min) ? propsRecord.min : null;
885
+ const maxSeed = isDateSeedValue(propsRecord.max) ? propsRecord.max : null;
886
+ const min = calendarSeedFromValue(minSeed, field.type) || void 0;
887
+ const max = calendarSeedFromValue(maxSeed, field.type) || void 0;
888
+ return { max, maxLabel: max, min, minLabel: min };
889
+ }
890
+ function isDateSeedValue(value) {
891
+ return value instanceof Date || isString(value) || isNumber(value) || value === null || value === void 0;
892
+ }
893
+ function dateFieldBoundValue(value, type, edge) {
894
+ if (!isDateFamilyRange(type)) {
895
+ return value;
896
+ }
897
+ return Array.isArray(value) ? value[edge === "start" ? 0 : 1] : void 0;
898
+ }
899
+ function isWithinDateMin(value, min, type) {
900
+ if (min === void 0) {
901
+ return true;
902
+ }
903
+ const bound = dateFieldBoundValue(value, type, "start");
904
+ if (isEmptyValue(bound)) {
905
+ return true;
906
+ }
907
+ if (isNumber(min)) {
908
+ const numeric = isString(bound) ? Number(bound) : Number.NaN;
909
+ return Number.isNaN(numeric) || numeric >= min;
910
+ }
911
+ const canonical = calendarSeedFromValue(isDateSeedValue(bound) ? bound : null, type);
912
+ return !canonical || canonical >= min;
913
+ }
914
+ function isWithinDateMax(value, max, type) {
915
+ if (max === void 0) {
916
+ return true;
917
+ }
918
+ const bound = dateFieldBoundValue(value, type, "end");
919
+ if (isEmptyValue(bound)) {
920
+ return true;
921
+ }
922
+ if (isNumber(max)) {
923
+ const numeric = isString(bound) ? Number(bound) : Number.NaN;
924
+ return Number.isNaN(numeric) || numeric <= max;
925
+ }
926
+ const canonical = calendarSeedFromValue(isDateSeedValue(bound) ? bound : null, type);
927
+ return !canonical || canonical <= max;
928
+ }
929
+ function isUniqueArrayField(field) {
930
+ return Object.getOwnPropertyDescriptor(field, "unique")?.value === true;
931
+ }
932
+ function resolveUniqueMessage(field, fallback) {
933
+ const message = Object.getOwnPropertyDescriptor(field, "uniqueMessage")?.value;
934
+ return resolveFormBoundaryText(message) ?? fallback ?? "This value is already in the list";
935
+ }
936
+ function sameArrayValue(left, right) {
937
+ if (left === right) {
938
+ return true;
939
+ }
940
+ if (!isRecord(left) && !Array.isArray(left)) {
941
+ return false;
942
+ }
943
+ return JSON.stringify(left) === JSON.stringify(right);
944
+ }
945
+ function countArrayValue(values, value) {
946
+ if (!Array.isArray(values) || isEmptyValue(value)) {
947
+ return 0;
948
+ }
949
+ return values.filter((candidate) => sameArrayValue(candidate, value)).length;
103
950
  }
104
951
  function unique(values) {
105
952
  return [...new Set(values)];
106
953
  }
954
+ function nextValidationRun(runs, key) {
955
+ const run = (runs.get(key) ?? 0) + 1;
956
+ runs.set(key, run);
957
+ return run;
958
+ }
959
+ function addPendingPaths(pendingPaths, paths, token) {
960
+ if (!paths.length) {
961
+ return;
962
+ }
963
+ const next = new Map(pendingPaths.value);
964
+ for (const path of paths) {
965
+ const tokens = new Set(next.get(path) ?? []);
966
+ tokens.add(token);
967
+ next.set(path, tokens);
968
+ }
969
+ pendingPaths.value = next;
970
+ }
971
+ function removePendingPaths(pendingPaths, paths, token) {
972
+ if (!paths.length) {
973
+ return;
974
+ }
975
+ const next = new Map(pendingPaths.value);
976
+ for (const path of paths) {
977
+ const tokens = new Set(next.get(path) ?? []);
978
+ tokens.delete(token);
979
+ if (tokens.size) {
980
+ next.set(path, tokens);
981
+ } else {
982
+ next.delete(path);
983
+ }
984
+ }
985
+ pendingPaths.value = next;
986
+ }
987
+ function hasAsyncRegleRule(status) {
988
+ const rules = readReactiveProperty(status, "$rules");
989
+ if (!isRecord(rules)) {
990
+ return false;
991
+ }
992
+ return Object.values(rules).some((rule) => readBooleanProperty(rule, "$haveAsync"));
993
+ }
994
+ function prepareReglePaths(regle, syncRegle, paths, state) {
995
+ const regleStatuses = collectRegleStatuses(regle, paths, state);
996
+ const syncStatuses = collectRegleStatuses(syncRegle, paths, state);
997
+ regleStatuses.forEach(({ status }) => status.$reset());
998
+ syncStatuses.forEach(({ status }) => status.$reset());
999
+ return {
1000
+ regleStatuses,
1001
+ syncResults: /* @__PURE__ */ new Map(),
1002
+ syncStatuses
1003
+ };
1004
+ }
1005
+ async function validateSyncRegleStatuses(statuses) {
1006
+ const validations = statuses.map(({ status }) => status.$validateWithoutRaceconditions());
1007
+ await Promise.all(validations);
1008
+ const results = statuses.map(
1009
+ ({ path, status }) => [path, !readBooleanProperty(status, "$invalid")]
1010
+ );
1011
+ return { results: new Map(results), valid: results.every(([, valid]) => valid) };
1012
+ }
1013
+ function collectRegleStatuses(regle, paths, state) {
1014
+ return unique(paths).flatMap((candidatePath) => {
1015
+ const path = toReglePath(candidatePath, state);
1016
+ const status = resolveRegleStatus(regle.main, path) ?? resolvePrimitiveItemStatus(regle.items, candidatePath);
1017
+ return isValidatableRegleStatus(status) ? [{ fieldPath: candidatePath, path, status }] : [];
1018
+ });
1019
+ }
1020
+ async function validateRegleStatuses(statuses) {
1021
+ if (!statuses.length) {
1022
+ return true;
1023
+ }
1024
+ statuses.forEach((status) => status.$touch(false));
1025
+ await nextTick();
1026
+ const validations = statuses.map((status) => status.$validateWithoutRaceconditions());
1027
+ await Promise.all(validations);
1028
+ return statuses.every((status) => !readBooleanProperty(status, "$invalid"));
1029
+ }
1030
+ function resolveRegleStatus(regle, path) {
1031
+ return pathSegments(path).reduce((current, segment) => {
1032
+ if (Array.isArray(current)) {
1033
+ return current[Number(segment)];
1034
+ }
1035
+ if (!isObject(current)) {
1036
+ return;
1037
+ }
1038
+ return current[segment];
1039
+ }, regle);
1040
+ }
1041
+ function isValidatableRegleStatus(value) {
1042
+ return isObject(value) && value !== null && isBoolean(readReactiveProperty(value, "$invalid")) && isFunction(readReactiveProperty(value, "$reset")) && isFunction(readReactiveProperty(value, "$validate")) && isFunction(readReactiveProperty(value, "$validateWithoutRaceconditions"));
1043
+ }
1044
+ function isPendingRegleStatus(value) {
1045
+ return isObject(value) && value !== null && isBoolean(readReactiveProperty(value, "$pending")) && isObject(readReactiveProperty(value, "$rules"));
1046
+ }
1047
+ function hasPendingRegleRule(value) {
1048
+ if (!isObject(value) || value === null) {
1049
+ return false;
1050
+ }
1051
+ return Object.values(value).some(
1052
+ (rule) => readBooleanProperty(rule, "$pending") || readBooleanProperty(rule, "$validating") || readBooleanProperty(rule, "$maybePending")
1053
+ );
1054
+ }
1055
+ function readBooleanProperty(value, key) {
1056
+ return readReactiveProperty(value, key) === true;
1057
+ }
1058
+ function readReactiveProperty(value, key) {
1059
+ if (!isRecord(value)) {
1060
+ return;
1061
+ }
1062
+ return unref(Object.getOwnPropertyDescriptor(value, key)?.value);
1063
+ }