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
@@ -0,0 +1,844 @@
1
+ <script setup>
2
+ import { useVirtualizer } from "@tanstack/vue-virtual";
3
+ import {
4
+ computed,
5
+ h,
6
+ nextTick,
7
+ onBeforeUnmount,
8
+ onMounted,
9
+ ref,
10
+ shallowRef,
11
+ TransitionGroup,
12
+ useTemplateRef,
13
+ watch
14
+ } from "vue";
15
+ import { useUiToolsLocale } from "#ui-tools/i18n";
16
+ import { isDefined, isFunction, isNumber, isObject } from "../../../shared/utils/predicate";
17
+ import { useDataListUi } from "../../composables/use-data-list-ui";
18
+ import { useTableInternals } from "../../composables/use-table-internals";
19
+ import { useTanstackTable } from "../../composables/use-tanstack-table";
20
+ import { mergeDataListUiClass } from "../../utils";
21
+ import {
22
+ ROW_ACTIONS_COLUMN_ID,
23
+ SELECT_COLUMN_ID,
24
+ SELECT_COLUMN_WIDTH
25
+ } from "../../utils/columns/types";
26
+ import TableCell from "./table-cell";
27
+ import TableColumnHeader from "./table-column-header.vue";
28
+ import TableEmptyState from "./table-empty-state.vue";
29
+ import TableOverlayScrollbars from "./table-overlay-scrollbars.vue";
30
+ const LOAD_MORE_THRESHOLD = 6;
31
+ const PREFETCH_VIEWPORTS = 3;
32
+ const VIRTUALIZE_ROW_THRESHOLD = 40;
33
+ const VIRTUALIZE_CELL_THRESHOLD = 240;
34
+ const VIRTUALIZE_COLUMN_THRESHOLD = 32;
35
+ const ANIMATION_WINDOW = 600;
36
+ const SKELETON_MIN_ROWS = 6;
37
+ const SIZE_TOKENS = {
38
+ lg: { font: 13.5, head: 46, row: 52, x: 16 },
39
+ md: { font: 13, head: 42, row: 44, x: 14 },
40
+ sm: { font: 12.5, head: 38, row: 36, x: 10 },
41
+ xl: { font: 14, head: 48, row: 60, x: 16 },
42
+ xs: { font: 12, head: 34, row: 32, x: 8 }
43
+ };
44
+ const props = defineProps({
45
+ gutter: { type: Number, required: false },
46
+ height: { type: String, required: false },
47
+ size: { type: String, required: false },
48
+ fill: { type: Boolean, required: false },
49
+ ui: { type: Object, required: false }
50
+ });
51
+ const internals = useTableInternals();
52
+ const dataListUi = useDataListUi();
53
+ const { locale, t } = useUiToolsLocale();
54
+ const rows = computed(
55
+ () => internals.queryContent.error.value ? [] : internals.queryContent.data.value.rows
56
+ );
57
+ const { status } = internals.queryContent;
58
+ const rowsMounted = ref(false);
59
+ let rowMountFrame = 0;
60
+ const isFirstLoad = computed(
61
+ () => status.value.isBooting || status.value.isPending && rows.value.length === 0 || !rowsMounted.value && rows.value.length > 0
62
+ );
63
+ const refreshing = computed(
64
+ () => rows.value.length > 0 && (status.value.isFetching || status.value.isRefreshing)
65
+ );
66
+ const empty = computed(() => !isFirstLoad.value && rows.value.length === 0);
67
+ const resolvedSize = computed(
68
+ () => props.size ?? dataListUi.ui.value.table?.size ?? dataListUi.controlSize.value
69
+ );
70
+ const tokens = computed(() => SIZE_TOKENS[resolvedSize.value]);
71
+ const rowHeight = computed(() => tokens.value.row);
72
+ const gutter = computed(() => props.gutter ?? dataListUi.ui.value.table?.gutter ?? tokens.value.x);
73
+ const gutterExtra = computed(() => Math.max(0, gutter.value - tokens.value.x));
74
+ const tokenStyle = computed(() => ({
75
+ "--nut-dl-cell-x": `${tokens.value.x}px`,
76
+ "--nut-dl-font": `${tokens.value.font}px`,
77
+ "--nut-dl-foot-h": `${tokens.value.head - 2}px`,
78
+ "--nut-dl-gutter": `${gutter.value}px`,
79
+ "--nut-dl-head-h": `${tokens.value.head}px`,
80
+ "--nut-dl-row-h": `${tokens.value.row}px`
81
+ }));
82
+ const { columnDefs } = internals.tableColumns;
83
+ const columnState = internals.tableColumns.tableState;
84
+ const columnSizing = computed({
85
+ get: () => {
86
+ const sizing = columnState.value.columnSizing ?? {};
87
+ if (!gutterExtra.value) {
88
+ return sizing;
89
+ }
90
+ const ids = new Set(columnDefs.value.map((def) => def.id));
91
+ const next = { ...sizing };
92
+ if (ids.has(SELECT_COLUMN_ID) && !(SELECT_COLUMN_ID in sizing)) {
93
+ next[SELECT_COLUMN_ID] = SELECT_COLUMN_WIDTH + gutterExtra.value;
94
+ }
95
+ return next;
96
+ },
97
+ set: (columnSizing2) => {
98
+ columnState.value = { ...columnState.value, columnSizing: columnSizing2 };
99
+ }
100
+ });
101
+ const pinned = computed(() => {
102
+ const ids = new Set(columnDefs.value.map((def) => def.id));
103
+ const left = (columnState.value.columnPinning?.left ?? []).filter(
104
+ (id) => ids.has(id) && id !== SELECT_COLUMN_ID
105
+ );
106
+ const right = (columnState.value.columnPinning?.right ?? []).filter(
107
+ (id) => ids.has(id) && id !== ROW_ACTIONS_COLUMN_ID
108
+ );
109
+ return {
110
+ end: ids.has(ROW_ACTIONS_COLUMN_ID) ? [...right, ROW_ACTIONS_COLUMN_ID] : right,
111
+ start: ids.has(SELECT_COLUMN_ID) ? [SELECT_COLUMN_ID, ...left] : left
112
+ };
113
+ });
114
+ function getRowId(row, index) {
115
+ return internals.selection.getRowId({ index, row });
116
+ }
117
+ const renderRows = computed(() => rowsMounted.value ? rows.value : []);
118
+ const virtualized = computed(
119
+ () => renderRows.value.length >= VIRTUALIZE_ROW_THRESHOLD || renderRows.value.length * columnDefs.value.length >= VIRTUALIZE_CELL_THRESHOLD
120
+ );
121
+ const scrollRef = useTemplateRef("scrollRef");
122
+ const rowHeights = /* @__PURE__ */ new Map();
123
+ function measureRowHeight(element) {
124
+ const key = element instanceof HTMLElement ? element.dataset.rowId : void 0;
125
+ const { height } = element.getBoundingClientRect();
126
+ if (key === void 0) {
127
+ return height;
128
+ }
129
+ const next = Math.max(rowHeights.get(key) ?? 0, height);
130
+ rowHeights.set(key, next);
131
+ return next;
132
+ }
133
+ const rowVirtualizer = useVirtualizer(
134
+ computed(() => ({
135
+ count: virtualized.value ? renderRows.value.length : 0,
136
+ estimateSize: () => rowHeight.value,
137
+ getItemKey: (index) => renderRows.value[index] ? getRowId(renderRows.value[index], index) : index,
138
+ getScrollElement: () => scrollRef.value ?? null,
139
+ measureElement: (element) => measureRowHeight(element),
140
+ overscan: 8
141
+ }))
142
+ );
143
+ const virtualRows = computed(
144
+ () => virtualized.value ? rowVirtualizer.value.getVirtualItems() : []
145
+ );
146
+ const materializedRows = computed(
147
+ () => virtualized.value ? virtualRows.value.map((item) => renderRows.value[item.index]).filter(isDefined) : renderRows.value
148
+ );
149
+ const { table, resetColumnSizing } = useTanstackTable({
150
+ columnSizing,
151
+ columns: columnDefs,
152
+ data: materializedRows,
153
+ getRowId,
154
+ pinned
155
+ });
156
+ const tableRows = computed(() => table.getRowModel().rows);
157
+ const leafColumns = computed(() => table.getVisibleLeafColumns());
158
+ const centerColumns = computed(() => table.getCenterVisibleLeafColumns());
159
+ const bodyWidth = ref(0);
160
+ const bodyHeight = ref(0);
161
+ const columnsOverflow = computed(
162
+ () => bodyWidth.value > 0 && table.getTotalSize() > bodyWidth.value && centerColumns.value.length > VIRTUALIZE_COLUMN_THRESHOLD
163
+ );
164
+ const columnVirtualizer = useVirtualizer(
165
+ computed(() => ({
166
+ count: columnsOverflow.value ? centerColumns.value.length : 0,
167
+ estimateSize: (index) => centerColumns.value[index]?.getSize() ?? 0,
168
+ getItemKey: (index) => centerColumns.value[index]?.id ?? index,
169
+ getScrollElement: () => scrollRef.value ?? null,
170
+ horizontal: true,
171
+ initialRect: { height: 0, width: bodyWidth.value },
172
+ onChange: (instance) => {
173
+ const width = instance.scrollRect?.width;
174
+ if (width && width !== bodyWidth.value) {
175
+ bodyWidth.value = width;
176
+ }
177
+ },
178
+ overscan: 2,
179
+ paddingEnd: table.getEndTotalSize(),
180
+ paddingStart: table.getStartTotalSize()
181
+ }))
182
+ );
183
+ const virtualColumns = computed(() => columnVirtualizer.value.getVirtualItems());
184
+ const columnSlots = computed(() => {
185
+ function asSlot(column) {
186
+ return {
187
+ columnId: column.id,
188
+ key: column.id,
189
+ kind: "column"
190
+ };
191
+ }
192
+ const slots = table.getStartVisibleLeafColumns().map(asSlot);
193
+ if (!columnsOverflow.value) {
194
+ slots.push(...centerColumns.value.map(asSlot), ...table.getEndVisibleLeafColumns().map(asSlot));
195
+ return slots;
196
+ }
197
+ const first = virtualColumns.value[0];
198
+ const last = virtualColumns.value.at(-1);
199
+ if (first?.index) {
200
+ slots.push({ colSpan: first.index, key: "pad-start", kind: "spacer" });
201
+ }
202
+ slots.push(
203
+ ...virtualColumns.value.flatMap((item) => {
204
+ const column = centerColumns.value[item.index];
205
+ return column ? [asSlot(column)] : [];
206
+ })
207
+ );
208
+ const trailing = last ? centerColumns.value.length - last.index - 1 : centerColumns.value.length;
209
+ if (trailing) {
210
+ slots.push({ colSpan: trailing, key: "pad-end", kind: "spacer" });
211
+ }
212
+ slots.push(...table.getEndVisibleLeafColumns().map(asSlot));
213
+ return slots;
214
+ });
215
+ function rowColumnSlots(row) {
216
+ const cells = new Map(row.getVisibleCells().map((cell) => [cell.column.id, cell]));
217
+ const slots = [];
218
+ for (const slot of columnSlots.value) {
219
+ if (slot.kind === "spacer") {
220
+ slots.push(slot);
221
+ continue;
222
+ }
223
+ const cell = cells.get(slot.columnId);
224
+ if (cell) {
225
+ slots.push({ cell, key: cell.id, kind: "cell" });
226
+ }
227
+ }
228
+ return slots;
229
+ }
230
+ const headers = computed(() => table.getHeaderGroups()[0]?.headers ?? []);
231
+ const headerByColumnId = computed(() => new Map(headers.value.map((h2) => [h2.column.id, h2])));
232
+ const virtualPaddingTop = computed(() => virtualRows.value[0]?.start ?? 0);
233
+ const virtualPaddingBottom = computed(() => {
234
+ if (!virtualized.value || !virtualRows.value.length) {
235
+ return 0;
236
+ }
237
+ return rowVirtualizer.value.getTotalSize() - (virtualRows.value.at(-1)?.end ?? 0);
238
+ });
239
+ const virtualRowByKey = computed(() => {
240
+ const byKey = /* @__PURE__ */ new Map();
241
+ for (const item of virtualRows.value) {
242
+ const row = renderRows.value[item.index];
243
+ if (row) {
244
+ byKey.set(getRowId(row, item.index), { index: item.index, key: String(item.key) });
245
+ }
246
+ }
247
+ return byKey;
248
+ });
249
+ const renderedRows = computed(() => {
250
+ if (!virtualized.value) {
251
+ return tableRows.value.map((row, index) => ({ row, virtual: { index, key: String(row.id) } }));
252
+ }
253
+ return tableRows.value.map((row) => {
254
+ const virtual = virtualRowByKey.value.get(String(row.id));
255
+ return virtual ? { row, virtual } : void 0;
256
+ }).filter(isDefined);
257
+ });
258
+ function measureRow(element) {
259
+ if (!(element instanceof HTMLElement)) {
260
+ return;
261
+ }
262
+ if (element.isConnected) {
263
+ rowVirtualizer.value.measureElement(element);
264
+ } else {
265
+ nextTick().then(() => element.isConnected && rowVirtualizer.value.measureElement(element));
266
+ }
267
+ }
268
+ const scrollbarsRef = useTemplateRef("scrollbarsRef");
269
+ const totalWidth = computed(() => table.getTotalSize());
270
+ const skeletonRows = computed(() => {
271
+ const usable = bodyHeight.value - tokens.value.head;
272
+ if (usable <= 0) {
273
+ return SKELETON_MIN_ROWS;
274
+ }
275
+ return Math.max(SKELETON_MIN_ROWS, Math.ceil(usable / rowHeight.value));
276
+ });
277
+ function measureBody() {
278
+ bodyHeight.value = scrollRef.value?.clientHeight ?? 0;
279
+ bodyWidth.value = scrollRef.value?.clientWidth ?? 0;
280
+ }
281
+ let resizeObserver;
282
+ onMounted(() => {
283
+ measureBody();
284
+ if (scrollRef.value) {
285
+ resizeObserver = new ResizeObserver(measureBody);
286
+ resizeObserver.observe(scrollRef.value);
287
+ }
288
+ rowMountFrame = requestAnimationFrame(() => rowsMounted.value = true);
289
+ });
290
+ onBeforeUnmount(() => {
291
+ cancelAnimationFrame(rowMountFrame);
292
+ resizeObserver?.disconnect();
293
+ });
294
+ watch(
295
+ [totalWidth, () => rows.value.length],
296
+ () => nextTick().then(() => {
297
+ columnVirtualizer.value.measure();
298
+ scrollbarsRef.value?.measure();
299
+ })
300
+ );
301
+ watch(
302
+ () => internals.pagination.currentPage.value,
303
+ () => scrollRef.value?.scrollTo({ top: 0 })
304
+ );
305
+ const openMenuId = ref(null);
306
+ function pinnedOffset(column) {
307
+ const side = column.getIsPinned();
308
+ if (side === "start") {
309
+ return { left: `${column.getStart("start")}px` };
310
+ }
311
+ if (side === "end") {
312
+ return { right: `${column.getAfter("end")}px` };
313
+ }
314
+ }
315
+ function isLastStart(column) {
316
+ return table.getStartVisibleLeafColumns().at(-1)?.id === column.id;
317
+ }
318
+ function isFirstEnd(column) {
319
+ return table.getEndVisibleLeafColumns()[0]?.id === column.id;
320
+ }
321
+ const { summaries } = internals;
322
+ const summaryColumnIds = computed(() => new Set(summaries.columns.value.map((column) => column.id)));
323
+ const summaryLabelColumnId = computed(
324
+ () => leafColumns.value.find(
325
+ (column) => !column.columnDef.meta?.internal && !summaryColumnIds.value.has(column.id)
326
+ )?.id
327
+ );
328
+ const summaryLabel = computed(() => {
329
+ const label = summaries.label.value;
330
+ if (label) {
331
+ return isFunction(label) ? String(label()) : String(label);
332
+ }
333
+ return t("table.summaries.total");
334
+ });
335
+ function formatNumber(value) {
336
+ return isNumber(value) ? new Intl.NumberFormat(locale.value.code).format(value).replaceAll("\u202F", "\xA0") : String(value ?? "");
337
+ }
338
+ function isSummaryConfig(summary) {
339
+ return isObject(summary);
340
+ }
341
+ function renderSummary(columnId) {
342
+ const column = summaries.columns.value.find((entry) => entry.id === columnId);
343
+ const cell = summaries.cell(columnId);
344
+ const summary = column?.summary;
345
+ const render = isSummaryConfig(summary) ? summary.render : void 0;
346
+ if (render) {
347
+ return () => render({ loading: cell.loading, scope: summaries.scope.value, value: cell.value });
348
+ }
349
+ const value = summaries.format(columnId);
350
+ return () => h("span", formatNumber(value));
351
+ }
352
+ const animateEpoch = ref(false);
353
+ const enterFrom = ref(Number.POSITIVE_INFINITY);
354
+ const previousIds = shallowRef(/* @__PURE__ */ new Set());
355
+ const flipPositions = /* @__PURE__ */ new Map();
356
+ watch(
357
+ rows,
358
+ () => {
359
+ previousIds.value = new Set(rows.value.map((row, index) => getRowId(row, index)));
360
+ flipPositions.clear();
361
+ const elements = scrollRef.value?.querySelectorAll("tr.nut-dl-row[data-row-id]") ?? [];
362
+ for (const element of elements) {
363
+ flipPositions.set(element.dataset.rowId ?? "", element.getBoundingClientRect().top);
364
+ }
365
+ },
366
+ { flush: "pre" }
367
+ );
368
+ watch(rows, () => nextTick().then(flipRows), { flush: "post" });
369
+ function flipRows() {
370
+ if (!flipPositions.size) {
371
+ return;
372
+ }
373
+ const elements = scrollRef.value?.querySelectorAll("tr.nut-dl-row[data-row-id]") ?? [];
374
+ for (const element of elements) {
375
+ const previous = flipPositions.get(element.dataset.rowId ?? "");
376
+ if (previous === void 0) {
377
+ continue;
378
+ }
379
+ const delta = previous - element.getBoundingClientRect().top;
380
+ if (Math.abs(delta) > 1) {
381
+ element.animate([{ transform: `translateY(${delta}px)` }, { transform: "none" }], {
382
+ duration: 240,
383
+ easing: "cubic-bezier(0.2, 0.9, 0.3, 1)"
384
+ });
385
+ }
386
+ }
387
+ flipPositions.clear();
388
+ }
389
+ let animateTimer = 0;
390
+ function armAnimation(from = Number.POSITIVE_INFINITY) {
391
+ enterFrom.value = from;
392
+ animateEpoch.value = true;
393
+ window.clearTimeout(animateTimer);
394
+ animateTimer = window.setTimeout(() => {
395
+ animateEpoch.value = false;
396
+ }, ANIMATION_WINDOW);
397
+ }
398
+ watch(
399
+ () => [
400
+ internals.pagination.currentPage.value,
401
+ internals.pagination.pageSize.value,
402
+ JSON.stringify(internals.tableColumns.sortingState.value),
403
+ JSON.stringify(internals.queryState.filters.value),
404
+ internals.filters.searchQuery.value
405
+ ],
406
+ () => {
407
+ if (!rowsMounted.value || cursorMode.value) {
408
+ return;
409
+ }
410
+ rowHeights.clear();
411
+ armAnimation();
412
+ scrollRef.value?.scrollTo({ top: 0 });
413
+ }
414
+ );
415
+ const SKELETON_WIDTHS = [62, 44, 78, 54, 70, 38, 66, 48];
416
+ function skeletonWidth(seed) {
417
+ return SKELETON_WIDTHS[seed % SKELETON_WIDTHS.length];
418
+ }
419
+ function renderSkeletonCell(columnId, rowIndex) {
420
+ const meta = headerByColumnId.value.get(columnId)?.column.columnDef.meta;
421
+ const kind = meta?.internal === "selection" ? "check" : meta?.internal ? "none" : meta?.skeleton ?? "text";
422
+ const seed = rowIndex * 7 + columnId.length;
423
+ function line(width, extra = "") {
424
+ return h("span", {
425
+ class: `nut-dl-skeleton block h-3 rounded ${extra}`,
426
+ style: { width: `${width}%` }
427
+ });
428
+ }
429
+ return () => {
430
+ if (kind === "none") {
431
+ return null;
432
+ }
433
+ if (kind === "check") {
434
+ return h("span", { class: "nut-dl-skeleton block size-4 rounded-[4px]" });
435
+ }
436
+ if (kind === "dot") {
437
+ return h("span", { class: "flex items-center gap-2" }, [
438
+ h("span", { class: "nut-dl-skeleton size-[7px] rounded-full" }),
439
+ line(skeletonWidth(seed) - 10)
440
+ ]);
441
+ }
442
+ if (kind === "avatar") {
443
+ return h("span", { class: "flex items-center gap-2.5" }, [
444
+ h("span", { class: "nut-dl-skeleton size-7 shrink-0 rounded-md" }),
445
+ h("span", { class: "grid flex-1 gap-1.5" }, [
446
+ line(skeletonWidth(seed)),
447
+ line(skeletonWidth(seed + 3) - 20, "h-2.5")
448
+ ])
449
+ ]);
450
+ }
451
+ if (kind === "badge") {
452
+ return h("span", { class: "nut-dl-skeleton inline-block h-5 w-16 rounded-full" });
453
+ }
454
+ if (kind === "number") {
455
+ return h("span", {
456
+ class: "nut-dl-skeleton ml-auto block h-3 rounded",
457
+ style: { width: "36%" }
458
+ });
459
+ }
460
+ return line(skeletonWidth(seed));
461
+ };
462
+ }
463
+ watch(isFirstLoad, (loading, was) => {
464
+ if (was && !loading) {
465
+ armAnimation();
466
+ }
467
+ });
468
+ watch(
469
+ () => rows.value.length,
470
+ (next, previous) => {
471
+ if (cursorMode.value && previous > 0 && next > previous) {
472
+ armAnimation(previous);
473
+ }
474
+ }
475
+ );
476
+ const cursorMode = computed(() => internals.pagination.mode.value === "cursor");
477
+ const loadingMore = computed(
478
+ () => cursorMode.value && internals.pagination.state.value.isLoadingMore
479
+ );
480
+ const hasNextPage = computed(() => cursorMode.value && internals.pagination.state.value.hasNextPage);
481
+ watch(
482
+ () => [
483
+ virtualRows.value.at(-1)?.index ?? renderRows.value.length - 1,
484
+ renderRows.value.length,
485
+ hasNextPage.value,
486
+ loadingMore.value
487
+ ],
488
+ ([lastIndex, count, more, loading]) => {
489
+ if (!more || loading || !count) {
490
+ return;
491
+ }
492
+ const threshold = Math.max(LOAD_MORE_THRESHOLD, virtualRows.value.length * PREFETCH_VIEWPORTS);
493
+ if (lastIndex >= count - 1 - threshold) {
494
+ void internals.pagination.loadMore();
495
+ }
496
+ }
497
+ );
498
+ function onScrollLoadMore() {
499
+ if (!hasNextPage.value || loadingMore.value || virtualized.value) {
500
+ return;
501
+ }
502
+ const element = scrollRef.value;
503
+ if (!element) {
504
+ return;
505
+ }
506
+ const threshold = Math.max(320, element.clientHeight * PREFETCH_VIEWPORTS);
507
+ if (element.scrollHeight - element.scrollTop - element.clientHeight < threshold) {
508
+ void internals.pagination.loadMore();
509
+ }
510
+ }
511
+ watch(
512
+ () => [renderRows.value.length, loadingMore.value],
513
+ async () => {
514
+ await nextTick();
515
+ onScrollLoadMore();
516
+ }
517
+ );
518
+ defineExpose({ resetColumnSizing });
519
+ </script>
520
+
521
+ <template>
522
+ <div
523
+ class="nut-dl-table relative min-h-0"
524
+ :class="[
525
+ fill ? 'flex h-full flex-col' : '',
526
+ mergeDataListUiClass(void 0, void 0, ui?.wrapper)
527
+ ]"
528
+ :style="{ ...tokenStyle, height: !fill && height ? height : void 0 }"
529
+ :data-size="resolvedSize"
530
+ :data-virtualized="virtualized"
531
+ :data-loading="isFirstLoad"
532
+ >
533
+ <div
534
+ ref="scrollRef"
535
+ class="nut-dl-table__scroll relative min-h-0 overflow-auto overscroll-x-contain bg-[var(--nut-dl-surface)]"
536
+ :class="[
537
+ fill || height ? 'flex-1' : '',
538
+ mergeDataListUiClass(void 0, void 0, ui?.root)
539
+ ]"
540
+ @scroll.passive="onScrollLoadMore"
541
+ >
542
+ <table
543
+ class="nut-dl-table__table w-full table-fixed border-separate border-spacing-0 text-[length:var(--nut-dl-font)]"
544
+ :class="mergeDataListUiClass(void 0, void 0, ui?.base)"
545
+ :style="{ minWidth: `${totalWidth}px` }"
546
+ >
547
+ <colgroup>
548
+ <col
549
+ v-for="leaf in leafColumns"
550
+ :key="leaf.id"
551
+ :style="{ width: `${leaf.getSize()}px` }"
552
+ />
553
+ </colgroup>
554
+ <thead :class="mergeDataListUiClass('nut-dl-table__head', void 0, ui?.thead)">
555
+ <tr class="nut-dl-table__head-row">
556
+ <template v-for="slot in columnSlots" :key="slot.key">
557
+ <th
558
+ v-if="slot.kind === 'spacer'"
559
+ :colspan="slot.colSpan"
560
+ class="nut-dl-table__spacer sticky top-0 z-[3] p-0"
561
+ aria-hidden="true"
562
+ />
563
+ <th
564
+ v-else-if="headerByColumnId.get(slot.columnId)"
565
+ class="nut-dl-th sticky top-0 z-[3] h-[var(--nut-dl-head-h)] p-0 text-left align-middle"
566
+ :class="[
567
+ headerByColumnId.get(slot.columnId).column.getIsPinned() === 'start' ? 'nut-dl-pin nut-dl-pin--start z-[4]' : '',
568
+ headerByColumnId.get(slot.columnId).column.getIsPinned() === 'end' ? 'nut-dl-pin nut-dl-pin--end z-[4]' : '',
569
+ isLastStart(headerByColumnId.get(slot.columnId).column) ? 'nut-dl-pin--last-start' : '',
570
+ isFirstEnd(headerByColumnId.get(slot.columnId).column) ? 'nut-dl-pin--first-end' : '',
571
+ headerByColumnId.get(slot.columnId).column.columnDef.meta?.internal ? `nut-dl-th--internal nut-dl-th--${headerByColumnId.get(slot.columnId).column.columnDef.meta?.internal}` : '',
572
+ mergeDataListUiClass(void 0, void 0, ui?.th)
573
+ ]"
574
+ :data-col="slot.columnId"
575
+ :style="pinnedOffset(headerByColumnId.get(slot.columnId).column)"
576
+ >
577
+ <template
578
+ v-if="headerByColumnId.get(slot.columnId).column.columnDef.meta?.internal"
579
+ >
580
+ <div
581
+ class="nut-dl-th__static flex h-full items-center"
582
+ :class="
583
+ headerByColumnId.get(slot.columnId).column.columnDef.meta?.align === 'right' ? 'justify-end' : ''
584
+ "
585
+ >
586
+ <TableCell
587
+ v-if="
588
+ headerByColumnId.get(slot.columnId).column.columnDef.meta?.renderHeader
589
+ "
590
+ :render="
591
+ () => headerByColumnId.get(slot.columnId).column.columnDef.meta.renderHeader()
592
+ "
593
+ :row="{}"
594
+ :index="-1"
595
+ />
596
+ </div>
597
+ </template>
598
+ <TableColumnHeader
599
+ v-else
600
+ :open="openMenuId === slot.columnId"
601
+ :label="headerByColumnId.get(slot.columnId).column.columnDef.meta.label"
602
+ :icon="headerByColumnId.get(slot.columnId).column.columnDef.meta.icon"
603
+ :align="headerByColumnId.get(slot.columnId).column.columnDef.meta.align"
604
+ :sortable="headerByColumnId.get(slot.columnId).column.columnDef.meta.sortable"
605
+ :sort-state="internals.tableColumns.getSortState({ columnId: slot.columnId })"
606
+ :pinned="
607
+ Boolean(internals.tableColumns.getPinnedState({ columnId: slot.columnId }))
608
+ "
609
+ :items="internals.tableColumns.getMenuItems({ columnId: slot.columnId })"
610
+ :resizable="headerByColumnId.get(slot.columnId).column.getCanResize()"
611
+ :resizing="headerByColumnId.get(slot.columnId).column.getIsResizing()"
612
+ :reset-size="() => headerByColumnId.get(slot.columnId).column.resetSize()"
613
+ :resize="headerByColumnId.get(slot.columnId).getResizeHandler()"
614
+ @update:open="openMenuId = $event ? slot.columnId : null"
615
+ />
616
+ </th>
617
+ </template>
618
+ </tr>
619
+ <tr v-if="refreshing" class="nut-dl-progress" aria-hidden="true">
620
+ <th
621
+ :colspan="leafColumns.length"
622
+ class="sticky top-[var(--nut-dl-head-h)] z-[3] h-0 p-0"
623
+ >
624
+ <span />
625
+ </th>
626
+ </tr>
627
+ </thead>
628
+
629
+ <component
630
+ :is="virtualized ? 'tbody' : TransitionGroup"
631
+ :key="virtualized ? 'virtual' : 'rows'"
632
+ :tag="virtualized ? void 0 : 'tbody'"
633
+ :class="mergeDataListUiClass('nut-dl-table__body', void 0, ui?.tbody)"
634
+ :move-class="virtualized ? void 0 : 'nut-dl-row--moving'"
635
+ :enter-active-class="virtualized ? void 0 : 'nut-dl-row--settling'"
636
+ :enter-from-class="virtualized ? void 0 : 'nut-dl-row--from'"
637
+ :leave-active-class="virtualized ? void 0 : 'hidden'"
638
+ >
639
+ <tr
640
+ v-if="virtualPaddingTop"
641
+ key="pad-top"
642
+ :style="{ height: `${virtualPaddingTop}px` }"
643
+ aria-hidden="true"
644
+ >
645
+ <td :colspan="leafColumns.length" class="p-0" />
646
+ </tr>
647
+
648
+ <tr
649
+ v-for="{ row, virtual } in renderedRows"
650
+ :key="virtual.key"
651
+ :ref="measureRow"
652
+ class="nut-dl-row group/row"
653
+ :class="[
654
+ internals.selection.isRowSelected({ rowId: String(row.id) }) ? 'nut-dl-row--selected' : '',
655
+ mergeDataListUiClass(void 0, void 0, ui?.tr)
656
+ ]"
657
+ :data-index="virtual.index"
658
+ :data-row-id="row.id"
659
+ :style="
660
+ virtualized && animateEpoch && (virtual.index >= enterFrom || !previousIds.has(String(row.id))) ? {
661
+ '--nut-dl-i': Math.min(
662
+ virtual.index - Math.max(enterFrom, virtualRows[0]?.index ?? 0),
663
+ 24
664
+ )
665
+ } : void 0
666
+ "
667
+ >
668
+ <template v-for="slot in rowColumnSlots(row)" :key="slot.key">
669
+ <td
670
+ v-if="slot.kind === 'spacer'"
671
+ :colspan="slot.colSpan"
672
+ class="nut-dl-table__spacer p-0"
673
+ aria-hidden="true"
674
+ />
675
+ <td
676
+ v-else
677
+ class="nut-dl-td h-[var(--nut-dl-row-h)] py-0 align-middle"
678
+ :class="[
679
+ slot.cell.column.getIsPinned() === 'start' ? 'nut-dl-pin nut-dl-pin--start z-[2]' : '',
680
+ slot.cell.column.getIsPinned() === 'end' ? 'nut-dl-pin nut-dl-pin--end z-[2]' : '',
681
+ isLastStart(slot.cell.column) ? 'nut-dl-pin--last-start' : '',
682
+ isFirstEnd(slot.cell.column) ? 'nut-dl-pin--first-end' : '',
683
+ slot.cell.column.columnDef.meta?.align === 'right' ? 'text-right' : slot.cell.column.columnDef.meta?.align === 'center' ? 'text-center' : '',
684
+ slot.cell.column.columnDef.meta?.internal ? `nut-dl-td--${slot.cell.column.columnDef.meta.internal}` : '',
685
+ slot.cell.column.columnDef.meta?.ellipsis ? 'nut-dl-td--ellipsis' : '',
686
+ mergeDataListUiClass(void 0, void 0, ui?.td)
687
+ ]"
688
+ :data-col="slot.cell.column.id"
689
+ :style="[
690
+ pinnedOffset(slot.cell.column),
691
+ slot.cell.column.columnDef.meta?.lines ? { '--nut-dl-lines': slot.cell.column.columnDef.meta.lines } : void 0
692
+ ]"
693
+ >
694
+ <div
695
+ class="nut-dl-td__inner min-w-0"
696
+ :class="
697
+ slot.cell.column.columnDef.meta?.align === 'right' ? 'justify-end' : slot.cell.column.columnDef.meta?.align === 'center' ? 'justify-center' : ''
698
+ "
699
+ >
700
+ <TableCell
701
+ :index="virtual.index"
702
+ :render="slot.cell.column.columnDef.meta.render"
703
+ :row="row.original"
704
+ />
705
+ </div>
706
+ </td>
707
+ </template>
708
+ </tr>
709
+
710
+ <tr
711
+ v-if="virtualPaddingBottom"
712
+ key="pad-bottom"
713
+ :style="{ height: `${virtualPaddingBottom}px` }"
714
+ aria-hidden="true"
715
+ >
716
+ <td :colspan="leafColumns.length" class="p-0" />
717
+ </tr>
718
+ <tr
719
+ v-if="loadingMore"
720
+ key="loading-more"
721
+ class="nut-dl-row nut-dl-row--loading-more"
722
+ aria-hidden="true"
723
+ >
724
+ <td
725
+ :colspan="leafColumns.length"
726
+ class="nut-dl-td h-[var(--nut-dl-row-h)] py-0 align-middle"
727
+ >
728
+ <div
729
+ class="nut-dl-loading-more flex items-center gap-2.5 px-[var(--nut-dl-gutter)] text-[12.5px] text-muted"
730
+ >
731
+ <span
732
+ class="nut-dl-spinner size-3.5 rounded-full border-2 border-accented border-t-primary"
733
+ />
734
+ <span>{{ t("table.controls.loadingMore") }}</span>
735
+ </div>
736
+ </td>
737
+ </tr>
738
+
739
+ <tr
740
+ v-for="placeholder in isFirstLoad ? skeletonRows : 0"
741
+ :key="`skeleton-${placeholder}`"
742
+ class="nut-dl-row nut-dl-row--skeleton"
743
+ :style="{ '--nut-dl-i': placeholder }"
744
+ aria-hidden="true"
745
+ >
746
+ <template v-for="slot in columnSlots" :key="slot.key">
747
+ <td v-if="slot.kind === 'spacer'" :colspan="slot.colSpan" class="p-0" />
748
+ <td
749
+ v-else
750
+ class="nut-dl-td h-[var(--nut-dl-row-h)] py-0 align-middle"
751
+ :class="[
752
+ headerByColumnId.get(slot.columnId)?.column.getIsPinned() === 'start' ? 'nut-dl-pin nut-dl-pin--start z-[2]' : '',
753
+ headerByColumnId.get(slot.columnId)?.column.getIsPinned() === 'end' ? 'nut-dl-pin nut-dl-pin--end z-[2]' : '',
754
+ headerByColumnId.get(slot.columnId)?.column.columnDef.meta?.align === 'right' ? 'text-right' : ''
755
+ ]"
756
+ :style="
757
+ headerByColumnId.get(slot.columnId) ? pinnedOffset(headerByColumnId.get(slot.columnId).column) : void 0
758
+ "
759
+ >
760
+ <component :is="renderSkeletonCell(slot.columnId, placeholder)" />
761
+ </td>
762
+ </template>
763
+ </tr>
764
+ </component>
765
+
766
+ <tfoot
767
+ v-if="summaries.enabled.value && !isFirstLoad && !empty"
768
+ :class="mergeDataListUiClass('nut-dl-table__foot', void 0, ui?.tfoot)"
769
+ >
770
+ <tr class="nut-dl-table__foot-row">
771
+ <template v-for="slot in columnSlots" :key="`foot-${slot.key}`">
772
+ <td
773
+ v-if="slot.kind === 'spacer'"
774
+ :colspan="slot.colSpan"
775
+ class="nut-dl-table__spacer nut-dl-tf sticky bottom-0 z-[3] p-0"
776
+ aria-hidden="true"
777
+ />
778
+ <td
779
+ v-else-if="headerByColumnId.get(slot.columnId)"
780
+ class="nut-dl-tf sticky bottom-0 z-[3] h-[var(--nut-dl-foot-h)] py-0 align-middle"
781
+ :class="[
782
+ headerByColumnId.get(slot.columnId).column.getIsPinned() === 'start' ? 'nut-dl-pin nut-dl-pin--start z-[4]' : '',
783
+ headerByColumnId.get(slot.columnId).column.getIsPinned() === 'end' ? 'nut-dl-pin nut-dl-pin--end z-[4]' : '',
784
+ isLastStart(headerByColumnId.get(slot.columnId).column) ? 'nut-dl-pin--last-start' : '',
785
+ isFirstEnd(headerByColumnId.get(slot.columnId).column) ? 'nut-dl-pin--first-end' : '',
786
+ headerByColumnId.get(slot.columnId).column.columnDef.meta?.align === 'right' ? 'text-right' : headerByColumnId.get(slot.columnId).column.columnDef.meta?.align === 'center' ? 'text-center' : '',
787
+ headerByColumnId.get(slot.columnId).column.columnDef.meta?.internal ? `nut-dl-tf--${headerByColumnId.get(slot.columnId).column.columnDef.meta?.internal}` : ''
788
+ ]"
789
+ :data-col="slot.columnId"
790
+ :style="pinnedOffset(headerByColumnId.get(slot.columnId).column)"
791
+ >
792
+ <div
793
+ v-if="slot.columnId === summaryLabelColumnId"
794
+ class="nut-dl-tf__label flex items-center gap-2 whitespace-nowrap"
795
+ >
796
+ <span
797
+ class="nut-dl-tf__caption text-[10.5px] tracking-[0.08em] text-muted uppercase"
798
+ >
799
+ {{ summaryLabel }}
800
+ </span>
801
+ <span class="nut-dl-tf__count tabular-nums">{{
802
+ formatNumber(summaries.count.value)
803
+ }}</span>
804
+ </div>
805
+ <template v-else-if="summaryColumnIds.has(slot.columnId)">
806
+ <span
807
+ v-if="summaries.cell(slot.columnId).loading"
808
+ class="nut-dl-skeleton nut-dl-tf__skeleton inline-block h-3 w-12 rounded-full align-middle"
809
+ aria-hidden="true"
810
+ />
811
+ <span v-else class="nut-dl-tf__value tabular-nums">
812
+ <component :is="renderSummary(slot.columnId)" />
813
+ </span>
814
+ </template>
815
+ </td>
816
+ </template>
817
+ </tr>
818
+ </tfoot>
819
+ <tfoot
820
+ v-else-if="$slots.footer"
821
+ :class="mergeDataListUiClass('nut-dl-table__foot', void 0, ui?.tfoot)"
822
+ >
823
+ <slot name="footer" :column-slots="columnSlots" :leaf-columns="leafColumns" />
824
+ </tfoot>
825
+ </table>
826
+
827
+ <div v-if="empty" class="nut-dl-table__empty sticky left-0 w-full">
828
+ <slot name="empty">
829
+ <TableEmptyState
830
+ :min-height="fill ? 'calc(100% - var(--nut-dl-head-h))' : '16rem'"
831
+ :size="resolvedSize"
832
+ />
833
+ </slot>
834
+ </div>
835
+ </div>
836
+ <TableOverlayScrollbars ref="scrollbarsRef" :target="scrollRef" />
837
+ </div>
838
+ </template>
839
+
840
+ <style>
841
+ .nut-dl-table{--nut-dl-surface:var(--nut-dl-table-surface,var(--ui-bg-elevated));--nut-dl-line:var(--nut-dl-table-line,var(--ui-border));--nut-dl-line-soft:var(--nut-dl-table-line-soft,var(--ui-border-muted));--nut-dl-head-bg:var(--nut-dl-table-head-bg,var(--ui-bg-muted));--nut-dl-head-fg:var(--nut-dl-table-head-fg,var(--ui-text-muted));--nut-dl-head-font:var(--nut-dl-table-head-font,11px);--nut-dl-head-weight:var(--nut-dl-table-head-weight,600);--nut-dl-head-tracking:var(--nut-dl-table-head-tracking,0.04em);--nut-dl-head-transform:var(--nut-dl-table-head-transform,none);--nut-dl-row-hover:var(--nut-dl-table-row-hover,var(--ui-bg-muted));--nut-dl-row-selected:var(
842
+ --nut-dl-table-row-selected,color-mix(in srgb,var(--ui-primary) 10%,var(--nut-dl-surface))
843
+ );--nut-dl-accent:var(--ui-primary);--nut-dl-cell-fg:var(--nut-dl-table-cell-fg,var(--ui-text-toned));--nut-dl-pin-line:var(--nut-dl-table-pin-line,var(--nut-dl-line))}.nut-dl-table__scroll{overflow-anchor:none;scrollbar-width:none}.nut-dl-table__scroll::-webkit-scrollbar{display:none}.nut-dl-th{color:var(--nut-dl-head-fg);font-size:var(--nut-dl-head-font);font-weight:var(--nut-dl-head-weight);letter-spacing:var(--nut-dl-head-tracking);text-transform:var(--nut-dl-head-transform);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.nut-dl-table__spacer,.nut-dl-th{border-bottom:1px solid var(--nut-dl-line)}.nut-dl-table__spacer,.nut-dl-tf,.nut-dl-th{background:var(--nut-dl-head-bg);border-top:1px solid var(--nut-dl-line)}.nut-dl-tf{color:var(--ui-text-highlighted);font-weight:var(--nut-dl-table-foot-weight,500);white-space:nowrap}tfoot .nut-dl-table__spacer{border-bottom:0;border-top:1px solid var(--nut-dl-line)}.nut-dl-spinner{animation:nut-dl-spin .8s linear infinite}@keyframes nut-dl-spin{to{transform:rotate(1turn)}}tbody .nut-dl-table__spacer{background:var(--nut-dl-surface);border-bottom:1px solid var(--nut-dl-line-soft)}.nut-dl-th__btn--open{background:color-mix(in srgb,var(--nut-dl-head-fg) 8%,transparent)}.nut-dl-rz:after{background:var(--ui-border-accented);bottom:10px;content:"";opacity:0;position:absolute;right:0;top:10px;transition:opacity .12s;width:1px}.nut-dl-rz:hover:after,.nut-dl-th:hover .nut-dl-rz:after{opacity:1}.nut-dl-rz--active:after,.nut-dl-rz:hover:after{background:var(--nut-dl-accent);bottom:6px;left:2.5px;opacity:1;top:6px;width:2px}.nut-dl-row{background:var(--nut-dl-surface);transition:background-color .1s}.nut-dl-row:hover{background:var(--nut-dl-row-hover)}.nut-dl-row--selected,.nut-dl-row--selected:hover{background:var(--nut-dl-row-selected)}.nut-dl-td,.nut-dl-th__btn,.nut-dl-th__static{padding-left:var(--nut-dl-cell-l,var(--nut-dl-cell-x));padding-right:var(--nut-dl-cell-r,var(--nut-dl-cell-x))}.nut-dl-row>.nut-dl-td:first-child,.nut-dl-table__head-row>.nut-dl-th:first-child{--nut-dl-cell-l:var(--nut-dl-gutter)}.nut-dl-row>.nut-dl-td:last-child,.nut-dl-table__head-row>.nut-dl-th:last-child{--nut-dl-cell-r:var(--nut-dl-gutter)}.nut-dl-row>.nut-dl-td--actions:last-child,.nut-dl-table__head-row>.nut-dl-th--actions:last-child,.nut-dl-td--actions{--nut-dl-cell-l:var(--nut-dl-cell-x);--nut-dl-cell-r:var(--nut-dl-cell-x)}.nut-dl-td--actions .nut-dl-td__inner{justify-content:flex-end}.nut-dl-td{background:inherit;border-bottom:1px solid var(--nut-dl-line-soft);box-sizing:border-box;color:var(--nut-dl-cell-fg);overflow:hidden;overflow-wrap:anywhere;padding-block:var(--nut-dl-cell-y,6px);white-space:normal}.nut-dl-td__inner{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--nut-dl-lines,3);line-clamp:var(--nut-dl-lines,3);max-height:calc(var(--nut-dl-lines, 3)*1.5em);overflow:hidden}.nut-dl-td--ellipsis{--nut-dl-lines:1;white-space:nowrap}.nut-dl-td--ellipsis .nut-dl-td__inner{display:block;text-overflow:ellipsis}.nut-dl-td--actions .nut-dl-td__inner,.nut-dl-td--selection .nut-dl-td__inner{align-items:center;display:flex}.nut-dl-td--actions,.nut-dl-td--selection{white-space:nowrap}.nut-dl-td--actions .nut-dl-td__inner>*{opacity:.55;transition:opacity .12s}.nut-dl-row:hover .nut-dl-td--actions .nut-dl-td__inner>*{opacity:1}.nut-dl-pin{position:sticky}.nut-dl-pin--first-end:before,.nut-dl-pin--last-start:after{background:var(--nut-dl-line);bottom:0;content:"";pointer-events:none;position:absolute;top:0;width:1px}.nut-dl-pin--last-start:after{right:0}.nut-dl-pin--first-end:before{left:0}.nut-dl-pin--first-end:before,.nut-dl-pin--last-start:after{background:var(--nut-dl-pin-line)}.nut-dl-td--actions.nut-dl-pin--first-end:before,.nut-dl-th--actions.nut-dl-pin--first-end:before{display:none}.nut-dl-progress th{overflow:hidden}.nut-dl-progress th span{animation:nut-dl-progress 1s ease-in-out infinite;background:linear-gradient(90deg,transparent,var(--nut-dl-accent),transparent);background-size:40% 100%;height:2px;left:0;position:absolute;right:0}@keyframes nut-dl-progress{0%{background-position:-40% 0}to{background-position:140% 0}}.nut-dl-skeleton{animation:nut-dl-shimmer 1.6s ease-in-out infinite;animation-delay:calc(var(--nut-dl-i, 0)*-90ms);background:linear-gradient(90deg,var(--ui-bg-accented) 0,var(--ui-bg-muted) 45%,var(--ui-bg-accented) 100%);background-size:200% 100%}.nut-dl-row--skeleton{animation:nut-dl-fade-in .2s ease both;animation-delay:calc(var(--nut-dl-i, 0)*18ms)}@keyframes nut-dl-fade-in{0%{opacity:0}to{opacity:1}}@keyframes nut-dl-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.nut-dl-table[data-virtualized=true] .nut-dl-row[style*="--nut-dl-i"]{animation:nut-dl-row-in .22s cubic-bezier(.2,.9,.3,1) both;animation-delay:calc(var(--nut-dl-i)*10ms)}@keyframes nut-dl-row-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.nut-dl-row--moving{transition:transform .24s cubic-bezier(.2,.9,.3,1)}.nut-dl-row--settling{transition:opacity .18s ease,transform .24s cubic-bezier(.2,.9,.3,1)}.nut-dl-row--from{opacity:0;transform:translateY(4px)}@media (prefers-reduced-motion:reduce){.nut-dl-row,.nut-dl-row--moving,.nut-dl-row--settling{transition:none}.nut-dl-progress th span,.nut-dl-skeleton,.nut-dl-table[data-virtualized=true] .nut-dl-row[style*="--nut-dl-i"]{animation:none}}
844
+ </style>