nuxt-ui-tools 0.1.3 → 1.0.1

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