@vc-shell/framework 1.2.4-beta.8 → 2.0.0-alpha.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 (1205) hide show
  1. package/dist/assets/0d67e9e056b4c500.woff +0 -0
  2. package/dist/assets/131b34336aedaf47.woff +0 -0
  3. package/dist/assets/19bb1c668a5db39f.woff2 +0 -0
  4. package/dist/assets/2010ada3e82156ed.woff +0 -0
  5. package/dist/assets/3fc09a6113184f16.woff +0 -0
  6. package/dist/assets/477e1881a0394cc5.woff +0 -0
  7. package/dist/assets/b7ffde2383bb16ba.woff2 +0 -0
  8. package/dist/assets/c5195215cb712e9c.woff2 +0 -0
  9. package/dist/assets/c97328b91ac5cc66.woff +0 -0
  10. package/dist/assets/cdc69f8b549c866d.woff2 +0 -0
  11. package/dist/assets/d5eb20bcdcf5616a.woff2 +0 -0
  12. package/dist/assets/da4b7f5883fe7743.woff2 +0 -0
  13. package/dist/core/composables/useApiClient/index.d.ts +4 -3
  14. package/dist/core/composables/useApiClient/index.d.ts.map +1 -1
  15. package/dist/core/composables/useAppBarMobileButtons/index.d.ts +2 -1
  16. package/dist/core/composables/useAppBarMobileButtons/index.d.ts.map +1 -1
  17. package/dist/core/composables/useAppBarWidget/index.d.ts +2 -1
  18. package/dist/core/composables/useAppBarWidget/index.d.ts.map +1 -1
  19. package/dist/core/composables/useAppInsights/index.d.ts +4 -2
  20. package/dist/core/composables/useAppInsights/index.d.ts.map +1 -1
  21. package/dist/core/composables/useAssets/index.d.ts +4 -2
  22. package/dist/core/composables/useAssets/index.d.ts.map +1 -1
  23. package/dist/core/composables/useAsync/index.d.ts +4 -2
  24. package/dist/core/composables/useAsync/index.d.ts.map +1 -1
  25. package/dist/core/composables/useBeforeUnload/index.d.ts +4 -3
  26. package/dist/core/composables/useBeforeUnload/index.d.ts.map +1 -1
  27. package/dist/core/composables/useBlade/index.d.ts +23 -18
  28. package/dist/core/composables/useBlade/index.d.ts.map +1 -1
  29. package/dist/core/composables/useBladeRegistry/index.d.ts +6 -3
  30. package/dist/core/composables/useBladeRegistry/index.d.ts.map +1 -1
  31. package/dist/core/composables/useBreadcrumbs/index.d.ts +4 -2
  32. package/dist/core/composables/useBreadcrumbs/index.d.ts.map +1 -1
  33. package/dist/core/composables/useConnectionStatus/index.d.ts +4 -2
  34. package/dist/core/composables/useConnectionStatus/index.d.ts.map +1 -1
  35. package/dist/core/composables/useDashboard/index.d.ts +2 -1
  36. package/dist/core/composables/useDashboard/index.d.ts.map +1 -1
  37. package/dist/core/composables/useDynamicProperties/index.d.ts +4 -2
  38. package/dist/core/composables/useDynamicProperties/index.d.ts.map +1 -1
  39. package/dist/core/composables/useErrorHandler/index.d.ts +4 -3
  40. package/dist/core/composables/useErrorHandler/index.d.ts.map +1 -1
  41. package/dist/core/composables/useFunctions/index.d.ts +4 -3
  42. package/dist/core/composables/useFunctions/index.d.ts.map +1 -1
  43. package/dist/core/composables/useGlobalSearch/index.d.ts +2 -1
  44. package/dist/core/composables/useGlobalSearch/index.d.ts.map +1 -1
  45. package/dist/core/composables/useKeyboardNavigation/index.d.ts +9 -9
  46. package/dist/core/composables/useKeyboardNavigation/index.d.ts.map +1 -1
  47. package/dist/core/composables/useLanguages/index.d.ts +4 -2
  48. package/dist/core/composables/useLanguages/index.d.ts.map +1 -1
  49. package/dist/core/composables/useLoading/index.d.ts +2 -1
  50. package/dist/core/composables/useLoading/index.d.ts.map +1 -1
  51. package/dist/core/composables/useMenuService/index.d.ts +1 -0
  52. package/dist/core/composables/useMenuService/index.d.ts.map +1 -1
  53. package/dist/core/composables/useNotifications/index.d.ts +4 -3
  54. package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
  55. package/dist/core/composables/usePermissions/index.d.ts +4 -3
  56. package/dist/core/composables/usePermissions/index.d.ts.map +1 -1
  57. package/dist/core/composables/useSettings/index.d.ts +4 -2
  58. package/dist/core/composables/useSettings/index.d.ts.map +1 -1
  59. package/dist/core/composables/useSettingsMenu/index.d.ts +2 -1
  60. package/dist/core/composables/useSettingsMenu/index.d.ts.map +1 -1
  61. package/dist/core/composables/useSidebarState/index.d.ts +5 -3
  62. package/dist/core/composables/useSidebarState/index.d.ts.map +1 -1
  63. package/dist/core/composables/useTheme/index.d.ts +4 -2
  64. package/dist/core/composables/useTheme/index.d.ts.map +1 -1
  65. package/dist/core/composables/useToolbar/index.d.ts +10 -9
  66. package/dist/core/composables/useToolbar/index.d.ts.map +1 -1
  67. package/dist/core/composables/useUser/index.d.ts +4 -2
  68. package/dist/core/composables/useUser/index.d.ts.map +1 -1
  69. package/dist/core/composables/useUserManagement/index.d.ts +4 -2
  70. package/dist/core/composables/useUserManagement/index.d.ts.map +1 -1
  71. package/dist/core/composables/useWebVitals/index.d.ts +1 -0
  72. package/dist/core/composables/useWebVitals/index.d.ts.map +1 -1
  73. package/dist/core/composables/useWidgets/index.d.ts +2 -1
  74. package/dist/core/composables/useWidgets/index.d.ts.map +1 -1
  75. package/dist/core/plugins/ai-agent/components/VcAiAgentPanel.vue.d.ts.map +1 -1
  76. package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts +2 -2
  77. package/dist/core/plugins/ai-agent/composables/useAiAgent.d.ts +1 -0
  78. package/dist/core/plugins/ai-agent/composables/useAiAgent.d.ts.map +1 -1
  79. package/dist/core/plugins/ai-agent/constants.d.ts +16 -0
  80. package/dist/core/plugins/ai-agent/constants.d.ts.map +1 -1
  81. package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts +2 -0
  82. package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts.map +1 -1
  83. package/dist/core/plugins/ai-agent/types.d.ts +19 -0
  84. package/dist/core/plugins/ai-agent/types.d.ts.map +1 -1
  85. package/dist/core/plugins/extension-points/defineExtensionPoint.d.ts +26 -4
  86. package/dist/core/plugins/extension-points/defineExtensionPoint.d.ts.map +1 -1
  87. package/dist/core/plugins/extension-points/index.d.ts +14 -0
  88. package/dist/core/plugins/extension-points/index.d.ts.map +1 -1
  89. package/dist/core/plugins/modularity/index.d.ts +2 -6
  90. package/dist/core/plugins/modularity/index.d.ts.map +1 -1
  91. package/dist/core/plugins/modularity/loader-mf.d.ts +17 -0
  92. package/dist/core/plugins/modularity/loader-mf.d.ts.map +1 -0
  93. package/dist/framework.css +9 -0
  94. package/dist/framework.js +25999 -24595
  95. package/dist/index.d.ts +4 -0
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/injection-keys.d.ts +39 -2
  98. package/dist/injection-keys.d.ts.map +1 -1
  99. package/dist/locales/de.json +5 -1
  100. package/dist/locales/en.json +5 -1
  101. package/dist/shared/components/app-switcher/index.d.ts +3 -1
  102. package/dist/shared/components/app-switcher/index.d.ts.map +1 -1
  103. package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation-new.vue.d.ts.map +1 -1
  104. package/dist/shared/components/blade-navigation/composables/useBladeMessaging.d.ts +2 -0
  105. package/dist/shared/components/blade-navigation/composables/useBladeMessaging.d.ts.map +1 -1
  106. package/dist/shared/components/blade-navigation/composables/useBladeStack.d.ts +3 -1
  107. package/dist/shared/components/blade-navigation/composables/useBladeStack.d.ts.map +1 -1
  108. package/dist/shared/components/blade-navigation/plugin-v2.d.ts.map +1 -1
  109. package/dist/shared/components/blade-navigation/types/index.d.ts +1 -0
  110. package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
  111. package/dist/shared/components/blade-navigation/utils/navigateToMainRoute.d.ts +9 -0
  112. package/dist/shared/components/blade-navigation/utils/navigateToMainRoute.d.ts.map +1 -0
  113. package/dist/shared/components/blade-navigation/utils/restoreFromUrl.d.ts +4 -1
  114. package/dist/shared/components/blade-navigation/utils/restoreFromUrl.d.ts.map +1 -1
  115. package/dist/shared/components/multilanguage-selector/multilanguage-selector.vue.d.ts +1 -1
  116. package/dist/shared/components/notifications/components/notification-container/index.d.ts +3 -3
  117. package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +1 -1
  118. package/dist/shared/components/user-dropdown-button/_internal/user-info.vue.d.ts.map +1 -1
  119. package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
  120. package/dist/shared/composables/useExternalWidgets.d.ts +3 -2
  121. package/dist/shared/composables/useExternalWidgets.d.ts.map +1 -1
  122. package/dist/shared/composables/useMenuExpanded.d.ts +6 -4
  123. package/dist/shared/composables/useMenuExpanded.d.ts.map +1 -1
  124. package/dist/shared/modules/dynamic/components/fields/InputField.d.ts.map +1 -1
  125. package/dist/shared/modules/dynamic/index.d.ts +11 -5
  126. package/dist/shared/modules/dynamic/index.d.ts.map +1 -1
  127. package/dist/shared/pages/ChangePasswordPage/plugin.d.ts +3 -1
  128. package/dist/shared/pages/ChangePasswordPage/plugin.d.ts.map +1 -1
  129. package/dist/shared/pages/ForgotPasswordPage/plugin.d.ts +3 -1
  130. package/dist/shared/pages/ForgotPasswordPage/plugin.d.ts.map +1 -1
  131. package/dist/shared/pages/InvitePage/plugin.d.ts +3 -1
  132. package/dist/shared/pages/InvitePage/plugin.d.ts.map +1 -1
  133. package/dist/shared/pages/LoginPage/plugin.d.ts +3 -1
  134. package/dist/shared/pages/LoginPage/plugin.d.ts.map +1 -1
  135. package/dist/shared/pages/ResetPasswordPage/plugin.d.ts +3 -1
  136. package/dist/shared/pages/ResetPasswordPage/plugin.d.ts.map +1 -1
  137. package/dist/tailwind.config.d.ts.map +1 -1
  138. package/dist/test-helpers.d.ts +219 -0
  139. package/dist/test-helpers.d.ts.map +1 -0
  140. package/dist/tsconfig.tsbuildinfo +1 -1
  141. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +2 -2
  142. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
  143. package/dist/ui/components/atoms/vc-button/types.d.ts +1 -1
  144. package/dist/ui/components/atoms/vc-button/types.d.ts.map +1 -1
  145. package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts +1 -1
  146. package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts.map +1 -1
  147. package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts +1 -1
  148. package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts.map +1 -1
  149. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +1 -1
  150. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
  151. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts +2 -2
  152. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
  153. package/dist/ui/components/molecules/index.d.ts +2 -1
  154. package/dist/ui/components/molecules/index.d.ts.map +1 -1
  155. package/dist/ui/components/molecules/vc-accordion/_internal/vc-accordion-item/vc-accordion-item.vue.d.ts.map +1 -1
  156. package/dist/ui/components/molecules/vc-accordion/index.d.ts +5 -1
  157. package/dist/ui/components/molecules/vc-accordion/index.d.ts.map +1 -1
  158. package/dist/ui/components/molecules/vc-accordion/vc-accordion.vue.d.ts +9 -9
  159. package/dist/ui/components/molecules/vc-accordion/vc-accordion.vue.d.ts.map +1 -1
  160. package/dist/ui/components/molecules/vc-checkbox-group/index.d.ts +1 -1
  161. package/dist/ui/components/molecules/vc-checkbox-group/index.d.ts.map +1 -1
  162. package/dist/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.vue.d.ts +11 -17
  163. package/dist/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.vue.d.ts.map +1 -1
  164. package/dist/ui/components/molecules/vc-color-input/vc-color-input.vue.d.ts +2 -2
  165. package/dist/ui/components/molecules/vc-date-picker/vc-date-picker.vue.d.ts +3 -3
  166. package/dist/ui/components/molecules/vc-date-picker/vc-date-picker.vue.d.ts.map +1 -1
  167. package/dist/ui/components/molecules/vc-dropdown/_internal/VcDropdownItem.vue.d.ts +1 -1
  168. package/dist/ui/components/molecules/vc-dropdown/_internal/VcDropdownItem.vue.d.ts.map +1 -1
  169. package/dist/ui/components/molecules/vc-dropdown/index.d.ts +1 -0
  170. package/dist/ui/components/molecules/vc-dropdown/index.d.ts.map +1 -1
  171. package/dist/ui/components/molecules/vc-dropdown/vc-dropdown.vue.d.ts +3 -3
  172. package/dist/ui/components/molecules/vc-dropdown/vc-dropdown.vue.d.ts.map +1 -1
  173. package/dist/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.vue.d.ts +3 -3
  174. package/dist/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.vue.d.ts.map +1 -1
  175. package/dist/ui/components/molecules/vc-editor/index.d.ts +1 -0
  176. package/dist/ui/components/molecules/vc-editor/index.d.ts.map +1 -1
  177. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +7 -10
  178. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts.map +1 -1
  179. package/dist/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue.d.ts +1 -1
  180. package/dist/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue.d.ts.map +1 -1
  181. package/dist/ui/components/molecules/vc-field/index.d.ts +1 -0
  182. package/dist/ui/components/molecules/vc-field/index.d.ts.map +1 -1
  183. package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts +3 -3
  184. package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts.map +1 -1
  185. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +2 -1
  186. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
  187. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +8 -7
  188. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
  189. package/dist/ui/components/molecules/vc-input-dropdown/index.d.ts +1 -0
  190. package/dist/ui/components/molecules/vc-input-dropdown/index.d.ts.map +1 -1
  191. package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts +10 -60
  192. package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts.map +1 -1
  193. package/dist/ui/components/molecules/vc-menu/constants.d.ts +3 -0
  194. package/dist/ui/components/molecules/vc-menu/constants.d.ts.map +1 -0
  195. package/dist/ui/components/molecules/vc-menu/index.d.ts +9 -0
  196. package/dist/ui/components/molecules/vc-menu/index.d.ts.map +1 -0
  197. package/dist/ui/components/molecules/vc-menu/types.d.ts +28 -0
  198. package/dist/ui/components/molecules/vc-menu/types.d.ts.map +1 -0
  199. package/dist/ui/components/molecules/vc-menu/vc-menu-group.vue.d.ts +32 -0
  200. package/dist/ui/components/molecules/vc-menu/vc-menu-group.vue.d.ts.map +1 -0
  201. package/dist/ui/components/molecules/vc-menu/vc-menu-item.vue.d.ts +34 -0
  202. package/dist/ui/components/molecules/vc-menu/vc-menu-item.vue.d.ts.map +1 -0
  203. package/dist/ui/components/molecules/vc-menu/vc-menu.vue.d.ts +19 -0
  204. package/dist/ui/components/molecules/vc-menu/vc-menu.vue.d.ts.map +1 -0
  205. package/dist/ui/components/molecules/vc-multivalue/_internal/MultivalueTrigger.vue.d.ts +2 -2
  206. package/dist/ui/components/molecules/vc-radio-button/index.d.ts +1 -0
  207. package/dist/ui/components/molecules/vc-radio-button/index.d.ts.map +1 -1
  208. package/dist/ui/components/molecules/vc-radio-button/vc-radio-button.vue.d.ts +11 -10
  209. package/dist/ui/components/molecules/vc-radio-button/vc-radio-button.vue.d.ts.map +1 -1
  210. package/dist/ui/components/molecules/vc-radio-group/index.d.ts +1 -1
  211. package/dist/ui/components/molecules/vc-radio-group/index.d.ts.map +1 -1
  212. package/dist/ui/components/molecules/vc-radio-group/vc-radio-group.vue.d.ts +10 -16
  213. package/dist/ui/components/molecules/vc-radio-group/vc-radio-group.vue.d.ts.map +1 -1
  214. package/dist/ui/components/molecules/vc-rating/index.d.ts +1 -0
  215. package/dist/ui/components/molecules/vc-rating/index.d.ts.map +1 -1
  216. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +4 -5
  217. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
  218. package/dist/ui/components/molecules/vc-slider/index.d.ts +1 -1
  219. package/dist/ui/components/molecules/vc-slider/index.d.ts.map +1 -1
  220. package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts +3 -2
  221. package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts.map +1 -1
  222. package/dist/ui/components/molecules/vc-toast/vc-toast.vue.d.ts +5 -1
  223. package/dist/ui/components/molecules/vc-toast/vc-toast.vue.d.ts.map +1 -1
  224. package/dist/ui/components/organisms/vc-app/_internal/layouts/DesktopLayout.vue.d.ts.map +1 -1
  225. package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenu.vue.d.ts.map +1 -1
  226. package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarCollapseButton.vue.d.ts.map +1 -1
  227. package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarContent.vue.d.ts.map +1 -1
  228. package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarHeader.vue.d.ts +1 -1
  229. package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarHeader.vue.d.ts.map +1 -1
  230. package/dist/ui/components/organisms/vc-app/composables/useShellBootstrap.d.ts +2 -1
  231. package/dist/ui/components/organisms/vc-app/composables/useShellBootstrap.d.ts.map +1 -1
  232. package/dist/ui/components/organisms/vc-app/composables/useShellNavigation.d.ts.map +1 -1
  233. package/dist/ui/components/organisms/vc-app/composition/menu/index.d.ts +0 -2
  234. package/dist/ui/components/organisms/vc-app/composition/menu/index.d.ts.map +1 -1
  235. package/dist/ui/components/organisms/vc-blade/_internal/BladeHeader.vue.d.ts +4 -2
  236. package/dist/ui/components/organisms/vc-blade/_internal/BladeHeader.vue.d.ts.map +1 -1
  237. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +3 -3
  238. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
  239. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +2 -2
  240. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +2 -2
  241. package/dist/ui/components/organisms/vc-image-upload/vc-image-upload.vue.d.ts +3 -3
  242. package/dist/ui/components/organisms/vc-image-upload/vc-image-upload.vue.d.ts.map +1 -1
  243. package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +2 -2
  244. package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts.map +1 -1
  245. package/dist/ui/components/organisms/vc-sidebar/vc-sidebar.vue.d.ts +5 -5
  246. package/dist/ui/components/organisms/vc-sidebar/vc-sidebar.vue.d.ts.map +1 -1
  247. package/dist/ui/components/organisms/vc-table/VcDataTable.vue.d.ts +7 -7
  248. package/dist/ui/components/organisms/vc-table/VcDataTable.vue.d.ts.map +1 -1
  249. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +1 -1
  250. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -1
  251. package/dist/ui/components/organisms/vc-table/components/ColumnFilter.vue.d.ts +1 -1
  252. package/dist/ui/components/organisms/vc-table/components/ColumnFilter.vue.d.ts.map +1 -1
  253. package/dist/ui/components/organisms/vc-table/components/DataTableCellRenderer.vue.d.ts.map +1 -1
  254. package/dist/ui/components/organisms/vc-table/components/DataTableRow.vue.d.ts +1 -1
  255. package/dist/ui/components/organisms/vc-table/components/DataTableRow.vue.d.ts.map +1 -1
  256. package/dist/ui/components/organisms/vc-table/components/GlobalFiltersPanel.vue.d.ts +2 -2
  257. package/dist/ui/components/organisms/vc-table/components/TableAddRowButton.vue.d.ts +1 -1
  258. package/dist/ui/components/organisms/vc-table/components/TableAddRowButton.vue.d.ts.map +1 -1
  259. package/dist/ui/components/organisms/vc-table/components/TableCheckbox.vue.d.ts +2 -14
  260. package/dist/ui/components/organisms/vc-table/components/TableCheckbox.vue.d.ts.map +1 -1
  261. package/dist/ui/components/organisms/vc-table/components/TableColumnSwitcher.vue.d.ts.map +1 -1
  262. package/dist/ui/components/organisms/vc-table/components/TableGroupRow.vue.d.ts +2 -2
  263. package/dist/ui/components/organisms/vc-table/components/TableGroupRow.vue.d.ts.map +1 -1
  264. package/dist/ui/components/organisms/vc-table/components/TableRow.vue.d.ts +4 -2
  265. package/dist/ui/components/organisms/vc-table/components/TableRow.vue.d.ts.map +1 -1
  266. package/dist/ui/components/organisms/vc-table/components/TableRowActions.vue.d.ts +1 -1
  267. package/dist/ui/components/organisms/vc-table/components/TableRowActions.vue.d.ts.map +1 -1
  268. package/dist/ui/components/organisms/vc-table/components/TableSearchHeader.vue.d.ts +1 -1
  269. package/dist/ui/components/organisms/vc-table/components/TableSearchHeader.vue.d.ts.map +1 -1
  270. package/dist/ui/components/organisms/vc-table/components/VcColumn.vue.d.ts +6 -6
  271. package/dist/ui/components/organisms/vc-table/components/mobile/DataTableMobileCard.vue.d.ts +3 -3
  272. package/dist/ui/components/organisms/vc-table/components/mobile/DataTableMobileView.vue.d.ts +3 -3
  273. package/dist/ui/components/organisms/vc-table/components/mobile/MobileActionSheet.vue.d.ts +2 -2
  274. package/dist/ui/components/organisms/vc-table/components/mobile/PullToRefresh.vue.d.ts +1 -1
  275. package/dist/ui/components/organisms/vc-table/components/mobile/PullToRefresh.vue.d.ts.map +1 -1
  276. package/dist/ui/components/organisms/vc-table/composables/useDataTableOrchestrator.d.ts +276 -0
  277. package/dist/ui/components/organisms/vc-table/composables/useDataTableOrchestrator.d.ts.map +1 -0
  278. package/dist/{vendor-dompurify-BGaRrCfO.js → vendor-dompurify-M2Bspgo5.js} +115 -115
  279. package/dist/vendor-intlify-core-base-BmIo1dK4.js +1141 -0
  280. package/dist/{vendor-intlify-message-compiler-C5QaCXcF.js → vendor-intlify-message-compiler-D9VOavkL.js} +315 -307
  281. package/dist/{vendor-intlify-shared-BrKs3jCC.js → vendor-intlify-shared-SCAs3ybf.js} +2 -2
  282. package/dist/{vendor-lodash-es-B5DE282z.js → vendor-lodash-es-BtnfG6xF.js} +15 -12
  283. package/dist/{vendor-lucide-vue-next-DadL7o0S.js → vendor-lucide-vue-next-CPgeDcFj.js} +16164 -12841
  284. package/dist/vendor-module-federation-enhanced-CV1CNdJy.js +22 -0
  285. package/dist/vendor-module-federation-error-codes-DdVwX11j.js +55 -0
  286. package/dist/vendor-module-federation-runtime-CVH_lWgu.js +91 -0
  287. package/dist/vendor-module-federation-runtime-core-D5G-s9nP.js +2202 -0
  288. package/dist/vendor-module-federation-runtime-tools-CQbtw-RJ.js +18 -0
  289. package/dist/vendor-module-federation-sdk-DM4AJRa7.js +683 -0
  290. package/dist/{vendor-prosemirror-gapcursor-BAwEBHgE.js → vendor-prosemirror-gapcursor-S3ikcYX6.js} +14 -14
  291. package/dist/{vendor-tiptap-core-BfrE48R3.js → vendor-tiptap-core-CDScflP1.js} +665 -628
  292. package/dist/{vendor-tiptap-extension-blockquote-DG5eEgV_.js → vendor-tiptap-extension-blockquote-ChRAwuus.js} +1 -1
  293. package/dist/{vendor-tiptap-extension-bold-CqPrSfgB.js → vendor-tiptap-extension-bold-BwoVpOFS.js} +1 -1
  294. package/dist/{vendor-tiptap-extension-code-Dj9HfL9x.js → vendor-tiptap-extension-code-DOlgG3ih.js} +1 -1
  295. package/dist/{vendor-tiptap-extension-code-block-YnlbQcbJ.js → vendor-tiptap-extension-code-block-CMeTs87s.js} +29 -29
  296. package/dist/{vendor-tiptap-extension-document-DyG2LNKD.js → vendor-tiptap-extension-document-DO8oly70.js} +1 -1
  297. package/dist/{vendor-tiptap-extension-hard-break-mzhqFFEq.js → vendor-tiptap-extension-hard-break-BgDl2sHf.js} +1 -1
  298. package/dist/{vendor-tiptap-extension-heading-DGnriW33.js → vendor-tiptap-extension-heading-DFuYlwHi.js} +1 -1
  299. package/dist/{vendor-tiptap-extension-horizontal-rule-pR7MlJHI.js → vendor-tiptap-extension-horizontal-rule-uyfttMp9.js} +1 -1
  300. package/dist/{vendor-tiptap-extension-image-BsXHNscz.js → vendor-tiptap-extension-image-DPeBaTE3.js} +1 -1
  301. package/dist/{vendor-tiptap-extension-italic-aoCbIXRj.js → vendor-tiptap-extension-italic-C9-3jNxO.js} +1 -1
  302. package/dist/{vendor-tiptap-extension-link-DiV7DqnY.js → vendor-tiptap-extension-link-B57VzStq.js} +1 -1
  303. package/dist/{vendor-tiptap-extension-list-BGYRWOyu.js → vendor-tiptap-extension-list-spvOF7Mz.js} +1 -1
  304. package/dist/{vendor-tiptap-extension-paragraph-BEBEvW1W.js → vendor-tiptap-extension-paragraph-Cj7auQB7.js} +1 -1
  305. package/dist/vendor-tiptap-extension-placeholder-DhwvmZ6Y.js +1 -0
  306. package/dist/{vendor-tiptap-extension-strike-6vob8J1A.js → vendor-tiptap-extension-strike-yj6UvnkO.js} +1 -1
  307. package/dist/vendor-tiptap-extension-table-cell-CQpTPSvF.js +1 -0
  308. package/dist/{vendor-tiptap-extension-table-CH-0UqG-.js → vendor-tiptap-extension-table-ex1kZQ-9.js} +1 -1
  309. package/dist/vendor-tiptap-extension-table-header-CQpTPSvF.js +1 -0
  310. package/dist/vendor-tiptap-extension-table-row-CQpTPSvF.js +1 -0
  311. package/dist/{vendor-tiptap-extension-text-CnqQVbB2.js → vendor-tiptap-extension-text-C8FG4KnI.js} +1 -1
  312. package/dist/{vendor-tiptap-extension-text-style-Bj4bCZI1.js → vendor-tiptap-extension-text-style-DsQDXowp.js} +1 -1
  313. package/dist/{vendor-tiptap-extension-underline-CVBZMhrs.js → vendor-tiptap-extension-underline-HB3fg6Dc.js} +1 -1
  314. package/dist/{vendor-tiptap-extensions-2ZbpCG7T.js → vendor-tiptap-extensions-CUGwjzl5.js} +2 -2
  315. package/dist/{vendor-tiptap-markdown-B7Wvo0s5.js → vendor-tiptap-markdown-DLzeP3KU.js} +1 -1
  316. package/dist/{vendor-tiptap-starter-kit-ipneJHYV.js → vendor-tiptap-starter-kit-C42PcJ7J.js} +17 -17
  317. package/dist/{vendor-tiptap-vue-3-IfJcIOl5.js → vendor-tiptap-vue-3-BxWCzu9Z.js} +1 -1
  318. package/dist/{vendor-vue-i18n-D0F0w-9Q.js → vendor-vue-i18n-DeO9Fa9I.js} +414 -405
  319. package/dist/vendor-vue-router-R3V0tq8_.js +6 -0
  320. package/dist/{vendor-vueuse-components-jqShV_Fz.js → vendor-vueuse-components-Be490f6P.js} +30 -30
  321. package/dist/{vendor-vueuse-core-D-DKRsy5.js → vendor-vueuse-core-BW8bO6-j.js} +17 -14
  322. package/dist/{vendor-vueuse-shared-Ch7WD-uK.js → vendor-vueuse-shared-bmkWEEYZ.js} +14 -14
  323. package/package.json +28 -19
  324. package/tailwind.config.ts +1 -0
  325. package/core/README.md +0 -365
  326. package/core/api/platform.ts +0 -9883
  327. package/core/composables/index.ts +0 -29
  328. package/core/composables/useApiClient/index.ts +0 -22
  329. package/core/composables/useAppBarMobileButtons/index.ts +0 -33
  330. package/core/composables/useAppBarWidget/index.test.ts +0 -86
  331. package/core/composables/useAppBarWidget/index.ts +0 -31
  332. package/core/composables/useAppInsights/index.ts +0 -56
  333. package/core/composables/useAssets/index.ts +0 -144
  334. package/core/composables/useAsync/index.test.ts +0 -137
  335. package/core/composables/useAsync/index.ts +0 -89
  336. package/core/composables/useBeforeUnload/index.ts +0 -25
  337. package/core/composables/useBlade/index.ts +0 -149
  338. package/core/composables/useBladeRegistry/index.test.ts +0 -192
  339. package/core/composables/useBladeRegistry/index.ts +0 -231
  340. package/core/composables/useBreadcrumbs/index.test.ts +0 -139
  341. package/core/composables/useBreadcrumbs/index.ts +0 -66
  342. package/core/composables/useConnectionStatus/index.ts +0 -48
  343. package/core/composables/useDashboard/index.test.ts +0 -86
  344. package/core/composables/useDashboard/index.ts +0 -51
  345. package/core/composables/useDynamicProperties/index.ts +0 -573
  346. package/core/composables/useErrorHandler/index.ts +0 -75
  347. package/core/composables/useFunctions/debounce.ts +0 -15
  348. package/core/composables/useFunctions/delay.ts +0 -3
  349. package/core/composables/useFunctions/index.ts +0 -20
  350. package/core/composables/useFunctions/once.ts +0 -11
  351. package/core/composables/useFunctions/sleep.ts +0 -3
  352. package/core/composables/useFunctions/throttle.ts +0 -13
  353. package/core/composables/useGlobalSearch/index.ts +0 -36
  354. package/core/composables/useGlobalSearch/useGlobalSearch.md +0 -263
  355. package/core/composables/useKeyboardNavigation/index.ts +0 -246
  356. package/core/composables/useLanguages/index.ts +0 -48
  357. package/core/composables/useLoading/index.ts +0 -9
  358. package/core/composables/useMenuService/index.test.ts +0 -86
  359. package/core/composables/useMenuService/index.ts +0 -43
  360. package/core/composables/useNotifications/index.ts +0 -200
  361. package/core/composables/usePermissions/index.ts +0 -30
  362. package/core/composables/useSettings/index.ts +0 -64
  363. package/core/composables/useSettingsMenu/index.test.ts +0 -86
  364. package/core/composables/useSettingsMenu/index.ts +0 -31
  365. package/core/composables/useSidebarState/index.ts +0 -90
  366. package/core/composables/useTheme/index.ts +0 -115
  367. package/core/composables/useToolbar/index.ts +0 -117
  368. package/core/composables/useUser/index.ts +0 -406
  369. package/core/composables/useUser/useUser.test.ts +0 -155
  370. package/core/composables/useUserManagement/index.ts +0 -45
  371. package/core/composables/useWebVitals/index.ts +0 -40
  372. package/core/composables/useWidgets/index.test.ts +0 -86
  373. package/core/composables/useWidgets/index.ts +0 -39
  374. package/core/constants/defaults.ts +0 -76
  375. package/core/constants/index.ts +0 -5
  376. package/core/constants/locale.ts +0 -78
  377. package/core/constants/ui.ts +0 -68
  378. package/core/directives/autofocus/index.ts +0 -9
  379. package/core/directives/index.ts +0 -2
  380. package/core/directives/loading/index.ts +0 -42
  381. package/core/directives/loading/styles.css +0 -71
  382. package/core/interceptors/index.ts +0 -142
  383. package/core/plugins/ai-agent/README.md +0 -336
  384. package/core/plugins/ai-agent/components/VcAiAgentPanel.vue +0 -125
  385. package/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue +0 -102
  386. package/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue +0 -107
  387. package/core/plugins/ai-agent/components/_internal/VcAiAgentLoader.vue +0 -72
  388. package/core/plugins/ai-agent/components/_internal/VcVirtoOzLogo.vue +0 -136
  389. package/core/plugins/ai-agent/components/index.ts +0 -1
  390. package/core/plugins/ai-agent/composables/index.ts +0 -4
  391. package/core/plugins/ai-agent/composables/useAiAgent.ts +0 -231
  392. package/core/plugins/ai-agent/composables/useAiAgentContext.ts +0 -285
  393. package/core/plugins/ai-agent/constants.ts +0 -89
  394. package/core/plugins/ai-agent/index.ts +0 -91
  395. package/core/plugins/ai-agent/services/ai-agent-service.ts +0 -592
  396. package/core/plugins/ai-agent/types.ts +0 -303
  397. package/core/plugins/extension-points/ExtensionPoint.vue +0 -95
  398. package/core/plugins/extension-points/defineExtensionPoint.ts +0 -29
  399. package/core/plugins/extension-points/index.ts +0 -11
  400. package/core/plugins/extension-points/store.ts +0 -54
  401. package/core/plugins/extension-points/types.ts +0 -28
  402. package/core/plugins/extension-points/useExtensionPoint.ts +0 -42
  403. package/core/plugins/global-error-handler/index.ts +0 -81
  404. package/core/plugins/i18n/index.ts +0 -11
  405. package/core/plugins/index.ts +0 -6
  406. package/core/plugins/modularity/README.md +0 -482
  407. package/core/plugins/modularity/index.ts +0 -208
  408. package/core/plugins/modularity/loader.ts +0 -631
  409. package/core/plugins/permissions/index.ts +0 -10
  410. package/core/plugins/signalR/index.ts +0 -126
  411. package/core/plugins/validation/index.ts +0 -1
  412. package/core/plugins/validation/rules.ts +0 -145
  413. package/core/services/_internal/createBladeScopedRegistry.test.ts +0 -130
  414. package/core/services/_internal/createBladeScopedRegistry.ts +0 -127
  415. package/core/services/_internal/createPreregistrationBus.test.ts +0 -227
  416. package/core/services/_internal/createPreregistrationBus.ts +0 -106
  417. package/core/services/_internal/createSimpleMapRegistry.test.ts +0 -82
  418. package/core/services/_internal/createSimpleMapRegistry.ts +0 -41
  419. package/core/services/_internal/index.ts +0 -3
  420. package/core/services/app-bar-menu-service.ts +0 -71
  421. package/core/services/app-bar-mobile-buttons-service.ts +0 -62
  422. package/core/services/app-bar-settings-service.test.ts +0 -153
  423. package/core/services/dashboard-service.ts +0 -110
  424. package/core/services/global-search-service/global-search-service.md +0 -28
  425. package/core/services/global-search-service/index.ts +0 -36
  426. package/core/services/index.ts +0 -11
  427. package/core/services/language-dashboard-service.test.ts +0 -183
  428. package/core/services/language-service.ts +0 -98
  429. package/core/services/menu-service.test.ts +0 -311
  430. package/core/services/menu-service.ts +0 -259
  431. package/core/services/settings-menu-service.ts +0 -61
  432. package/core/services/toolbar-service.ts +0 -111
  433. package/core/services/toolbar-widget-service.test.ts +0 -207
  434. package/core/services/widget-service.test.ts +0 -133
  435. package/core/services/widget-service.ts +0 -262
  436. package/core/types/index.ts +0 -312
  437. package/core/types/services.ts +0 -194
  438. package/core/utilities/camelToSnake.ts +0 -7
  439. package/core/utilities/camelize.ts +0 -5
  440. package/core/utilities/date/convertMomentFormat.test.ts +0 -60
  441. package/core/utilities/date/convertMomentFormat.ts +0 -30
  442. package/core/utilities/date/formatDate.test.ts +0 -60
  443. package/core/utilities/date/formatDate.ts +0 -31
  444. package/core/utilities/date/index.ts +0 -3
  445. package/core/utilities/date/resolveLocale.test.ts +0 -44
  446. package/core/utilities/date/resolveLocale.ts +0 -41
  447. package/core/utilities/error.ts +0 -89
  448. package/core/utilities/errorTypes.ts +0 -126
  449. package/core/utilities/generateId.ts +0 -3
  450. package/core/utilities/index.ts +0 -11
  451. package/core/utilities/kebabToCamel.ts +0 -7
  452. package/core/utilities/logger.ts +0 -120
  453. package/core/utilities/pendingErrorNotifications.ts +0 -64
  454. package/dist/core/composables/useAppBarWidget/index.test.d.ts +0 -2
  455. package/dist/core/composables/useAppBarWidget/index.test.d.ts.map +0 -1
  456. package/dist/core/composables/useAsync/index.test.d.ts +0 -2
  457. package/dist/core/composables/useAsync/index.test.d.ts.map +0 -1
  458. package/dist/core/composables/useBladeRegistry/index.test.d.ts +0 -2
  459. package/dist/core/composables/useBladeRegistry/index.test.d.ts.map +0 -1
  460. package/dist/core/composables/useBreadcrumbs/index.test.d.ts +0 -2
  461. package/dist/core/composables/useBreadcrumbs/index.test.d.ts.map +0 -1
  462. package/dist/core/composables/useDashboard/index.test.d.ts +0 -2
  463. package/dist/core/composables/useDashboard/index.test.d.ts.map +0 -1
  464. package/dist/core/composables/useMenuService/index.test.d.ts +0 -2
  465. package/dist/core/composables/useMenuService/index.test.d.ts.map +0 -1
  466. package/dist/core/composables/useSettingsMenu/index.test.d.ts +0 -2
  467. package/dist/core/composables/useSettingsMenu/index.test.d.ts.map +0 -1
  468. package/dist/core/composables/useUser/useUser.test.d.ts +0 -2
  469. package/dist/core/composables/useUser/useUser.test.d.ts.map +0 -1
  470. package/dist/core/composables/useWidgets/index.test.d.ts +0 -2
  471. package/dist/core/composables/useWidgets/index.test.d.ts.map +0 -1
  472. package/dist/core/plugins/modularity/loader.d.ts +0 -19
  473. package/dist/core/plugins/modularity/loader.d.ts.map +0 -1
  474. package/dist/core/services/_internal/createBladeScopedRegistry.test.d.ts +0 -2
  475. package/dist/core/services/_internal/createBladeScopedRegistry.test.d.ts.map +0 -1
  476. package/dist/core/services/_internal/createPreregistrationBus.test.d.ts +0 -2
  477. package/dist/core/services/_internal/createPreregistrationBus.test.d.ts.map +0 -1
  478. package/dist/core/services/_internal/createSimpleMapRegistry.test.d.ts +0 -2
  479. package/dist/core/services/_internal/createSimpleMapRegistry.test.d.ts.map +0 -1
  480. package/dist/core/services/app-bar-settings-service.test.d.ts +0 -2
  481. package/dist/core/services/app-bar-settings-service.test.d.ts.map +0 -1
  482. package/dist/core/services/language-dashboard-service.test.d.ts +0 -2
  483. package/dist/core/services/language-dashboard-service.test.d.ts.map +0 -1
  484. package/dist/core/services/menu-service.test.d.ts +0 -2
  485. package/dist/core/services/menu-service.test.d.ts.map +0 -1
  486. package/dist/core/services/toolbar-widget-service.test.d.ts +0 -2
  487. package/dist/core/services/toolbar-widget-service.test.d.ts.map +0 -1
  488. package/dist/core/services/widget-service.test.d.ts +0 -2
  489. package/dist/core/services/widget-service.test.d.ts.map +0 -1
  490. package/dist/core/utilities/date/convertMomentFormat.test.d.ts +0 -2
  491. package/dist/core/utilities/date/convertMomentFormat.test.d.ts.map +0 -1
  492. package/dist/core/utilities/date/formatDate.test.d.ts +0 -2
  493. package/dist/core/utilities/date/formatDate.test.d.ts.map +0 -1
  494. package/dist/core/utilities/date/resolveLocale.test.d.ts +0 -2
  495. package/dist/core/utilities/date/resolveLocale.test.d.ts.map +0 -1
  496. package/dist/index.css +0 -9
  497. package/dist/shared/components/blade-navigation/composables/useBladeMessaging.test.d.ts +0 -2
  498. package/dist/shared/components/blade-navigation/composables/useBladeMessaging.test.d.ts.map +0 -1
  499. package/dist/shared/components/blade-navigation/composables/useBladeStack.test.d.ts +0 -2
  500. package/dist/shared/components/blade-navigation/composables/useBladeStack.test.d.ts.map +0 -1
  501. package/dist/shared/components/blade-navigation/utils/restoreFromUrl.test.d.ts +0 -2
  502. package/dist/shared/components/blade-navigation/utils/restoreFromUrl.test.d.ts.map +0 -1
  503. package/dist/shared/components/blade-navigation/utils/urlSync.test.d.ts +0 -2
  504. package/dist/shared/components/blade-navigation/utils/urlSync.test.d.ts.map +0 -1
  505. package/dist/shared/components/dashboard-widget-card/dashboard-stat-item.test.d.ts +0 -2
  506. package/dist/shared/components/dashboard-widget-card/dashboard-stat-item.test.d.ts.map +0 -1
  507. package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.test.d.ts +0 -2
  508. package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.test.d.ts.map +0 -1
  509. package/dist/shared/utilities/formatBadgeCount.test.d.ts +0 -2
  510. package/dist/shared/utilities/formatBadgeCount.test.d.ts.map +0 -1
  511. package/dist/ui/components/atoms/vc-button/vc-button.a11y.test.d.ts +0 -2
  512. package/dist/ui/components/atoms/vc-button/vc-button.a11y.test.d.ts.map +0 -1
  513. package/dist/ui/components/atoms/vc-button/vc-button.test.d.ts +0 -2
  514. package/dist/ui/components/atoms/vc-button/vc-button.test.d.ts.map +0 -1
  515. package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.a11y.test.d.ts +0 -2
  516. package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.a11y.test.d.ts.map +0 -1
  517. package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.test.d.ts +0 -2
  518. package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.test.d.ts.map +0 -1
  519. package/dist/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.test.d.ts +0 -2
  520. package/dist/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.test.d.ts.map +0 -1
  521. package/dist/ui/components/molecules/vc-dropdown/vc-dropdown-item.test.d.ts +0 -2
  522. package/dist/ui/components/molecules/vc-dropdown/vc-dropdown-item.test.d.ts.map +0 -1
  523. package/dist/ui/components/molecules/vc-dropdown/vc-dropdown.test.d.ts +0 -2
  524. package/dist/ui/components/molecules/vc-dropdown/vc-dropdown.test.d.ts.map +0 -1
  525. package/dist/ui/components/molecules/vc-input/vc-input.a11y.test.d.ts +0 -2
  526. package/dist/ui/components/molecules/vc-input/vc-input.a11y.test.d.ts.map +0 -1
  527. package/dist/ui/components/molecules/vc-input/vc-input.test.d.ts +0 -2
  528. package/dist/ui/components/molecules/vc-input/vc-input.test.d.ts.map +0 -1
  529. package/dist/ui/components/molecules/vc-input-group/vc-input-group.test.d.ts +0 -2
  530. package/dist/ui/components/molecules/vc-input-group/vc-input-group.test.d.ts.map +0 -1
  531. package/dist/ui/components/molecules/vc-radio-group/vc-radio-group.test.d.ts +0 -2
  532. package/dist/ui/components/molecules/vc-radio-group/vc-radio-group.test.d.ts.map +0 -1
  533. package/dist/ui/components/molecules/vc-select/vc-select.test.d.ts +0 -2
  534. package/dist/ui/components/molecules/vc-select/vc-select.test.d.ts.map +0 -1
  535. package/dist/ui/components/molecules/vc-textarea/vc-textarea.a11y.test.d.ts +0 -2
  536. package/dist/ui/components/molecules/vc-textarea/vc-textarea.a11y.test.d.ts.map +0 -1
  537. package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppHubContent.test.d.ts +0 -2
  538. package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppHubContent.test.d.ts.map +0 -1
  539. package/dist/ui/components/organisms/vc-app/_internal/layouts/MobileLayout.test.d.ts +0 -2
  540. package/dist/ui/components/organisms/vc-app/_internal/layouts/MobileLayout.test.d.ts.map +0 -1
  541. package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenu.test.d.ts +0 -2
  542. package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenu.test.d.ts.map +0 -1
  543. package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenuGroup.vue.d.ts +0 -21
  544. package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenuGroup.vue.d.ts.map +0 -1
  545. package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenuItem.vue.d.ts +0 -32
  546. package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenuItem.vue.d.ts.map +0 -1
  547. package/dist/ui/components/organisms/vc-app/composables/useShellBootstrap.test.d.ts +0 -2
  548. package/dist/ui/components/organisms/vc-app/composables/useShellBootstrap.test.d.ts.map +0 -1
  549. package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarBaseButton.test.d.ts +0 -2
  550. package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarBaseButton.test.d.ts.map +0 -1
  551. package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetDropdownItem.test.d.ts +0 -2
  552. package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetDropdownItem.test.d.ts.map +0 -1
  553. package/dist/ui/components/organisms/vc-blade/utils.test.d.ts +0 -2
  554. package/dist/ui/components/organisms/vc-blade/utils.test.d.ts.map +0 -1
  555. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.test.d.ts +0 -2
  556. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.test.d.ts.map +0 -1
  557. package/dist/ui/components/organisms/vc-gallery/composables/useGalleryReorder.test.d.ts +0 -2
  558. package/dist/ui/components/organisms/vc-gallery/composables/useGalleryReorder.test.d.ts.map +0 -1
  559. package/dist/ui/components/organisms/vc-gallery/composables/useGalleryUpload.test.d.ts +0 -2
  560. package/dist/ui/components/organisms/vc-gallery/composables/useGalleryUpload.test.d.ts.map +0 -1
  561. package/dist/ui/components/organisms/vc-gallery/composables/useImageLoad.test.d.ts +0 -2
  562. package/dist/ui/components/organisms/vc-gallery/composables/useImageLoad.test.d.ts.map +0 -1
  563. package/dist/ui/components/organisms/vc-gallery/vc-gallery.actions.test.d.ts +0 -2
  564. package/dist/ui/components/organisms/vc-gallery/vc-gallery.actions.test.d.ts.map +0 -1
  565. package/dist/ui/components/organisms/vc-sidebar/vc-sidebar.test.d.ts +0 -2
  566. package/dist/ui/components/organisms/vc-sidebar/vc-sidebar.test.d.ts.map +0 -1
  567. package/dist/ui/components/organisms/vc-table/composables/useDataTableState.test.d.ts +0 -2
  568. package/dist/ui/components/organisms/vc-table/composables/useDataTableState.test.d.ts.map +0 -1
  569. package/dist/ui/components/organisms/vc-table/composables/useMobileCardLayout.test.d.ts +0 -2
  570. package/dist/ui/components/organisms/vc-table/composables/useMobileCardLayout.test.d.ts.map +0 -1
  571. package/dist/ui/components/organisms/vc-table/composables/useTableFilter.test.d.ts +0 -2
  572. package/dist/ui/components/organisms/vc-table/composables/useTableFilter.test.d.ts.map +0 -1
  573. package/dist/vendor-intlify-core-base-YZqJSEvl.js +0 -1130
  574. package/dist/vendor-tiptap-extension-placeholder-ZfoeEW0T.js +0 -1
  575. package/dist/vendor-tiptap-extension-table-cell-_uzaJkJG.js +0 -1
  576. package/dist/vendor-tiptap-extension-table-header-_uzaJkJG.js +0 -1
  577. package/dist/vendor-tiptap-extension-table-row-_uzaJkJG.js +0 -1
  578. package/shared/components/app-switcher/components/index.ts +0 -1
  579. package/shared/components/app-switcher/components/vc-app-switcher/index.ts +0 -1
  580. package/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue +0 -89
  581. package/shared/components/app-switcher/composables/index.ts +0 -1
  582. package/shared/components/app-switcher/composables/useAppSwitcher/index.ts +0 -53
  583. package/shared/components/app-switcher/index.ts +0 -14
  584. package/shared/components/blade-navigation/ARCHITECTURE.md +0 -420
  585. package/shared/components/blade-navigation/MIGRATION.md +0 -224
  586. package/shared/components/blade-navigation/components/index.ts +0 -2
  587. package/shared/components/blade-navigation/components/vc-blade-navigation/_internal/vc-mobile-back-button.vue +0 -78
  588. package/shared/components/blade-navigation/components/vc-blade-navigation/index.ts +0 -2
  589. package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation-new.vue +0 -160
  590. package/shared/components/blade-navigation/components/vc-blade-slot/index.ts +0 -1
  591. package/shared/components/blade-navigation/components/vc-blade-slot/vc-blade-slot.vue +0 -143
  592. package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +0 -188
  593. package/shared/components/blade-navigation/composables/index.ts +0 -5
  594. package/shared/components/blade-navigation/composables/useBladeMessaging.test.ts +0 -189
  595. package/shared/components/blade-navigation/composables/useBladeMessaging.ts +0 -81
  596. package/shared/components/blade-navigation/composables/useBladeNavigationAdapter.ts +0 -513
  597. package/shared/components/blade-navigation/composables/useBladeStack.test.ts +0 -420
  598. package/shared/components/blade-navigation/composables/useBladeStack.ts +0 -335
  599. package/shared/components/blade-navigation/index.ts +0 -4
  600. package/shared/components/blade-navigation/plugin-v2.ts +0 -144
  601. package/shared/components/blade-navigation/types/index.ts +0 -247
  602. package/shared/components/blade-navigation/utils/restoreFromUrl.test.ts +0 -247
  603. package/shared/components/blade-navigation/utils/restoreFromUrl.ts +0 -84
  604. package/shared/components/blade-navigation/utils/urlSync.test.ts +0 -181
  605. package/shared/components/blade-navigation/utils/urlSync.ts +0 -151
  606. package/shared/components/change-password/change-password.vue +0 -231
  607. package/shared/components/change-password/index.ts +0 -10
  608. package/shared/components/change-password-button/change-password-button.stories.ts +0 -63
  609. package/shared/components/change-password-button/change-password-button.vue +0 -23
  610. package/shared/components/change-password-button/index.ts +0 -1
  611. package/shared/components/common/popup/vc-popup-base.vue +0 -133
  612. package/shared/components/common/popup/vc-popup-error.vue +0 -38
  613. package/shared/components/common/popup/vc-popup-info.vue +0 -38
  614. package/shared/components/common/popup/vc-popup-warning.vue +0 -42
  615. package/shared/components/dashboard-charts/ChartContainer.vue +0 -54
  616. package/shared/components/dashboard-charts/ChartLegend.vue +0 -40
  617. package/shared/components/dashboard-charts/ChartTooltip.vue +0 -43
  618. package/shared/components/dashboard-charts/DashboardBarChart.vue +0 -165
  619. package/shared/components/dashboard-charts/DashboardDonutChart.vue +0 -137
  620. package/shared/components/dashboard-charts/DashboardLineChart.vue +0 -170
  621. package/shared/components/dashboard-charts/chart-theme.scss +0 -19
  622. package/shared/components/dashboard-charts/chart-tooltip.scss +0 -48
  623. package/shared/components/dashboard-charts/chart-utils.ts +0 -189
  624. package/shared/components/dashboard-charts/dashboard-charts.stories.ts +0 -393
  625. package/shared/components/dashboard-charts/index.ts +0 -7
  626. package/shared/components/dashboard-charts/types.ts +0 -7
  627. package/shared/components/dashboard-widget-card/dashboard-feed-list.vue +0 -12
  628. package/shared/components/dashboard-widget-card/dashboard-feed-row.vue +0 -28
  629. package/shared/components/dashboard-widget-card/dashboard-stat-item.test.ts +0 -38
  630. package/shared/components/dashboard-widget-card/dashboard-stat-item.vue +0 -55
  631. package/shared/components/dashboard-widget-card/dashboard-widget-card.stories.ts +0 -202
  632. package/shared/components/dashboard-widget-card/dashboard-widget-card.test.ts +0 -72
  633. package/shared/components/dashboard-widget-card/dashboard-widget-card.vue +0 -163
  634. package/shared/components/dashboard-widget-card/index.ts +0 -4
  635. package/shared/components/draggable-dashboard/DraggableDashboard.vue +0 -70
  636. package/shared/components/draggable-dashboard/GridstackDashboard.vue +0 -315
  637. package/shared/components/draggable-dashboard/composables/useGridstack.ts +0 -380
  638. package/shared/components/draggable-dashboard/composables/useGridstackAdapter.ts +0 -245
  639. package/shared/components/draggable-dashboard/draggable-dashboard.stories.ts +0 -175
  640. package/shared/components/draggable-dashboard/index.ts +0 -34
  641. package/shared/components/draggable-dashboard/types.ts +0 -96
  642. package/shared/components/error-interceptor/index.ts +0 -18
  643. package/shared/components/error-interceptor/interceptor.ts +0 -66
  644. package/shared/components/generic-dropdown/generic-dropdown.vue +0 -122
  645. package/shared/components/generic-dropdown/index.ts +0 -7
  646. package/shared/components/index.ts +0 -27
  647. package/shared/components/language-selector/index.ts +0 -10
  648. package/shared/components/language-selector/language-selector.stories.ts +0 -44
  649. package/shared/components/language-selector/language-selector.vue +0 -72
  650. package/shared/components/logout-button/index.ts +0 -1
  651. package/shared/components/logout-button/logout-button.stories.ts +0 -61
  652. package/shared/components/logout-button/logout-button.vue +0 -30
  653. package/shared/components/multilanguage-selector/index.ts +0 -1
  654. package/shared/components/multilanguage-selector/multilanguage-selector.stories.ts +0 -90
  655. package/shared/components/multilanguage-selector/multilanguage-selector.vue +0 -191
  656. package/shared/components/notification-dropdown/_internal/notification/index.ts +0 -1
  657. package/shared/components/notification-dropdown/_internal/notification/notification.vue +0 -78
  658. package/shared/components/notification-dropdown/index.ts +0 -10
  659. package/shared/components/notification-dropdown/notification-dropdown.stories.ts +0 -99
  660. package/shared/components/notification-dropdown/notification-dropdown.vue +0 -40
  661. package/shared/components/notification-template/index.ts +0 -10
  662. package/shared/components/notification-template/notification-template.stories.ts +0 -95
  663. package/shared/components/notification-template/notification-template.vue +0 -131
  664. package/shared/components/notifications/components/index.ts +0 -1
  665. package/shared/components/notifications/components/notification-container/index.ts +0 -153
  666. package/shared/components/notifications/composables/index.ts +0 -2
  667. package/shared/components/notifications/composables/useContainer/index.ts +0 -292
  668. package/shared/components/notifications/composables/useInstance/index.ts +0 -79
  669. package/shared/components/notifications/core/index.ts +0 -1
  670. package/shared/components/notifications/core/notification.ts +0 -202
  671. package/shared/components/notifications/index.ts +0 -6
  672. package/shared/components/notifications/styles/index.scss +0 -133
  673. package/shared/components/notifications/types/index.ts +0 -33
  674. package/shared/components/popup-handler/components/index.ts +0 -1
  675. package/shared/components/popup-handler/components/vc-popup-container/index.ts +0 -3
  676. package/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue +0 -49
  677. package/shared/components/popup-handler/composables/index.ts +0 -1
  678. package/shared/components/popup-handler/composables/usePopup/index.ts +0 -209
  679. package/shared/components/popup-handler/index.ts +0 -19
  680. package/shared/components/popup-handler/keys.ts +0 -4
  681. package/shared/components/popup-handler/plugin.ts +0 -25
  682. package/shared/components/popup-handler/types/index.ts +0 -25
  683. package/shared/components/popup-handler/utils/index.ts +0 -9
  684. package/shared/components/settings-menu/index.ts +0 -1
  685. package/shared/components/settings-menu/settings-menu.stories.ts +0 -104
  686. package/shared/components/settings-menu/settings-menu.vue +0 -59
  687. package/shared/components/settings-menu-item/index.ts +0 -1
  688. package/shared/components/settings-menu-item/settings-menu-item.stories.ts +0 -194
  689. package/shared/components/settings-menu-item/settings-menu-item.vue +0 -168
  690. package/shared/components/sidebar/index.ts +0 -7
  691. package/shared/components/sidebar/sidebar.vue +0 -80
  692. package/shared/components/sign-in/external-provider.vue +0 -49
  693. package/shared/components/sign-in/external-providers.vue +0 -26
  694. package/shared/components/sign-in/index.ts +0 -1
  695. package/shared/components/sign-in/useExternalProvider.ts +0 -103
  696. package/shared/components/theme-selector/index.ts +0 -1
  697. package/shared/components/theme-selector/theme-selector.stories.ts +0 -56
  698. package/shared/components/theme-selector/theme-selector.vue +0 -51
  699. package/shared/components/user-dropdown-button/_internal/user-info.vue +0 -114
  700. package/shared/components/user-dropdown-button/_internal/user-sidebar.vue +0 -50
  701. package/shared/components/user-dropdown-button/index.ts +0 -10
  702. package/shared/components/user-dropdown-button/user-dropdown-button.stories.ts +0 -153
  703. package/shared/components/user-dropdown-button/user-dropdown-button.vue +0 -142
  704. package/shared/composables/index.ts +0 -5
  705. package/shared/composables/useExternalWidgets.ts +0 -107
  706. package/shared/composables/useMenuExpanded.ts +0 -64
  707. package/shared/composables/useModificationTracker/index.ts +0 -116
  708. package/shared/composables/useTableSelection.ts +0 -151
  709. package/shared/composables/useTableSort.ts +0 -107
  710. package/shared/index.ts +0 -24
  711. package/shared/modules/assets/components/assets-details/assets-details.vue +0 -238
  712. package/shared/modules/assets/components/assets-details/index.ts +0 -3
  713. package/shared/modules/assets/components/index.ts +0 -1
  714. package/shared/modules/assets/index.ts +0 -12
  715. package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +0 -442
  716. package/shared/modules/assets-manager/components/assets-manager/index.ts +0 -3
  717. package/shared/modules/assets-manager/components/index.ts +0 -1
  718. package/shared/modules/assets-manager/index.ts +0 -13
  719. package/shared/modules/dynamic/components/FIELD_MAP.ts +0 -53
  720. package/shared/modules/dynamic/components/SchemaRender.ts +0 -102
  721. package/shared/modules/dynamic/components/factories.ts +0 -242
  722. package/shared/modules/dynamic/components/fields/Button.ts +0 -44
  723. package/shared/modules/dynamic/components/fields/Card.ts +0 -119
  724. package/shared/modules/dynamic/components/fields/Checkbox.ts +0 -53
  725. package/shared/modules/dynamic/components/fields/ContentField.ts +0 -33
  726. package/shared/modules/dynamic/components/fields/CustomComponent.ts +0 -29
  727. package/shared/modules/dynamic/components/fields/DynamicProperty.ts +0 -154
  728. package/shared/modules/dynamic/components/fields/EditorField.ts +0 -46
  729. package/shared/modules/dynamic/components/fields/Fieldset.ts +0 -66
  730. package/shared/modules/dynamic/components/fields/GalleryField.ts +0 -162
  731. package/shared/modules/dynamic/components/fields/ImageField.ts +0 -35
  732. package/shared/modules/dynamic/components/fields/InputCurrency.ts +0 -79
  733. package/shared/modules/dynamic/components/fields/InputField.ts +0 -81
  734. package/shared/modules/dynamic/components/fields/MultivalueField.ts +0 -68
  735. package/shared/modules/dynamic/components/fields/RadioButtonGroup.ts +0 -83
  736. package/shared/modules/dynamic/components/fields/RatingField.ts +0 -28
  737. package/shared/modules/dynamic/components/fields/SelectField.ts +0 -72
  738. package/shared/modules/dynamic/components/fields/StatusField.ts +0 -110
  739. package/shared/modules/dynamic/components/fields/SwitchField.ts +0 -29
  740. package/shared/modules/dynamic/components/fields/Table.ts +0 -194
  741. package/shared/modules/dynamic/components/fields/TextareaField.ts +0 -46
  742. package/shared/modules/dynamic/components/fields/ValidationField.ts +0 -54
  743. package/shared/modules/dynamic/components/fields/VideoField.ts +0 -30
  744. package/shared/modules/dynamic/components/fields/props.ts +0 -39
  745. package/shared/modules/dynamic/components/index.ts +0 -4
  746. package/shared/modules/dynamic/composables/index.ts +0 -4
  747. package/shared/modules/dynamic/composables/useDynamicViewsUtils/index.ts +0 -46
  748. package/shared/modules/dynamic/composables/useFilterBuilder/index.ts +0 -441
  749. package/shared/modules/dynamic/composables/useTableTemplates/index.ts +0 -67
  750. package/shared/modules/dynamic/composables/useToolbarReducer/index.ts +0 -70
  751. package/shared/modules/dynamic/factories/base/useDetailsFactory.ts +0 -145
  752. package/shared/modules/dynamic/factories/base/useListFactory.ts +0 -69
  753. package/shared/modules/dynamic/factories/index.ts +0 -4
  754. package/shared/modules/dynamic/factories/types/index.ts +0 -220
  755. package/shared/modules/dynamic/helpers/getters.ts +0 -12
  756. package/shared/modules/dynamic/helpers/methodHandler.ts +0 -22
  757. package/shared/modules/dynamic/helpers/nodeBuilder.ts +0 -242
  758. package/shared/modules/dynamic/helpers/override.ts +0 -153
  759. package/shared/modules/dynamic/helpers/safeIn.ts +0 -6
  760. package/shared/modules/dynamic/helpers/setters.ts +0 -24
  761. package/shared/modules/dynamic/helpers/unrefNested.ts +0 -14
  762. package/shared/modules/dynamic/helpers/unwrapInterpolation.ts +0 -16
  763. package/shared/modules/dynamic/index.ts +0 -314
  764. package/shared/modules/dynamic/keys.ts +0 -3
  765. package/shared/modules/dynamic/pages/dynamic-blade-form.vue +0 -575
  766. package/shared/modules/dynamic/pages/dynamic-blade-list.vue +0 -755
  767. package/shared/modules/dynamic/pages/index.ts +0 -4
  768. package/shared/modules/dynamic/types/index.ts +0 -1220
  769. package/shared/modules/dynamic/types/models.ts +0 -186
  770. package/shared/modules/index.ts +0 -3
  771. package/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue +0 -209
  772. package/shared/pages/ChangePasswordPage/components/change-password/change-password.stories.ts +0 -44
  773. package/shared/pages/ChangePasswordPage/components/change-password/index.ts +0 -3
  774. package/shared/pages/ChangePasswordPage/components/index.ts +0 -1
  775. package/shared/pages/ChangePasswordPage/index.ts +0 -1
  776. package/shared/pages/ChangePasswordPage/plugin.ts +0 -4
  777. package/shared/pages/ForgotPasswordPage/components/forgot-password/ForgotPassword.vue +0 -155
  778. package/shared/pages/ForgotPasswordPage/components/forgot-password/forgot-password.stories.ts +0 -38
  779. package/shared/pages/ForgotPasswordPage/components/forgot-password/index.ts +0 -3
  780. package/shared/pages/ForgotPasswordPage/components/index.ts +0 -1
  781. package/shared/pages/ForgotPasswordPage/index.ts +0 -1
  782. package/shared/pages/ForgotPasswordPage/plugin.ts +0 -4
  783. package/shared/pages/InvitePage/components/index.ts +0 -1
  784. package/shared/pages/InvitePage/components/invite/Invite.vue +0 -182
  785. package/shared/pages/InvitePage/components/invite/index.ts +0 -3
  786. package/shared/pages/InvitePage/components/invite/invite.stories.ts +0 -64
  787. package/shared/pages/InvitePage/index.ts +0 -1
  788. package/shared/pages/InvitePage/plugin.ts +0 -4
  789. package/shared/pages/LoginPage/components/index.ts +0 -1
  790. package/shared/pages/LoginPage/components/login/Login.vue +0 -226
  791. package/shared/pages/LoginPage/components/login/README.md +0 -52
  792. package/shared/pages/LoginPage/components/login/index.ts +0 -3
  793. package/shared/pages/LoginPage/components/login/login.stories.ts +0 -52
  794. package/shared/pages/LoginPage/index.ts +0 -1
  795. package/shared/pages/LoginPage/plugin.ts +0 -4
  796. package/shared/pages/ResetPasswordPage/components/index.ts +0 -1
  797. package/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue +0 -176
  798. package/shared/pages/ResetPasswordPage/components/reset-password/index.ts +0 -3
  799. package/shared/pages/ResetPasswordPage/components/reset-password/reset-password.stories.ts +0 -64
  800. package/shared/pages/ResetPasswordPage/index.ts +0 -1
  801. package/shared/pages/ResetPasswordPage/plugin.ts +0 -4
  802. package/shared/pages/_storybook-helpers.ts +0 -71
  803. package/shared/pages/index.ts +0 -5
  804. package/shared/pages/plugin.ts +0 -5
  805. package/shared/utilities/assets.ts +0 -43
  806. package/shared/utilities/colorUtils.ts +0 -64
  807. package/shared/utilities/formatBadgeCount.test.ts +0 -25
  808. package/shared/utilities/formatBadgeCount.ts +0 -15
  809. package/shared/utilities/index.ts +0 -4
  810. package/shared/utilities/vueUtils.ts +0 -50
  811. package/ui/components/atoms/index.ts +0 -21
  812. package/ui/components/atoms/vc-badge/index.ts +0 -1
  813. package/ui/components/atoms/vc-badge/vc-badge.stories.ts +0 -522
  814. package/ui/components/atoms/vc-badge/vc-badge.vue +0 -353
  815. package/ui/components/atoms/vc-banner/index.ts +0 -1
  816. package/ui/components/atoms/vc-banner/vc-banner.stories.ts +0 -259
  817. package/ui/components/atoms/vc-banner/vc-banner.vue +0 -225
  818. package/ui/components/atoms/vc-button/index.ts +0 -3
  819. package/ui/components/atoms/vc-button/types.ts +0 -28
  820. package/ui/components/atoms/vc-button/vc-button-group.stories.ts +0 -172
  821. package/ui/components/atoms/vc-button/vc-button-group.vue +0 -101
  822. package/ui/components/atoms/vc-button/vc-button.a11y.test.ts +0 -46
  823. package/ui/components/atoms/vc-button/vc-button.stories.ts +0 -431
  824. package/ui/components/atoms/vc-button/vc-button.test.ts +0 -75
  825. package/ui/components/atoms/vc-button/vc-button.vue +0 -355
  826. package/ui/components/atoms/vc-card/index.ts +0 -3
  827. package/ui/components/atoms/vc-card/vc-card.stories.ts +0 -342
  828. package/ui/components/atoms/vc-card/vc-card.vue +0 -217
  829. package/ui/components/atoms/vc-col/index.ts +0 -1
  830. package/ui/components/atoms/vc-col/vc-col.stories.ts +0 -164
  831. package/ui/components/atoms/vc-col/vc-col.vue +0 -34
  832. package/ui/components/atoms/vc-container/index.ts +0 -10
  833. package/ui/components/atoms/vc-container/vc-container.stories.ts +0 -219
  834. package/ui/components/atoms/vc-container/vc-container.vue +0 -96
  835. package/ui/components/atoms/vc-hint/index.ts +0 -10
  836. package/ui/components/atoms/vc-hint/vc-hint.stories.ts +0 -144
  837. package/ui/components/atoms/vc-hint/vc-hint.vue +0 -42
  838. package/ui/components/atoms/vc-icon/README.md +0 -273
  839. package/ui/components/atoms/vc-icon/composables/index.ts +0 -2
  840. package/ui/components/atoms/vc-icon/composables/use-icon-type.ts +0 -83
  841. package/ui/components/atoms/vc-icon/composables/use-icon.ts +0 -129
  842. package/ui/components/atoms/vc-icon/icons/MenuBurgerIcon.vue +0 -24
  843. package/ui/components/atoms/vc-icon/icons/index.ts +0 -1
  844. package/ui/components/atoms/vc-icon/index.ts +0 -3
  845. package/ui/components/atoms/vc-icon/types.ts +0 -36
  846. package/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue +0 -124
  847. package/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue +0 -143
  848. package/ui/components/atoms/vc-icon/vc-icon.stories.ts +0 -818
  849. package/ui/components/atoms/vc-icon/vc-icon.vue +0 -609
  850. package/ui/components/atoms/vc-icon/vc-lucide-icon.vue +0 -199
  851. package/ui/components/atoms/vc-icon/vc-material-icon.vue +0 -128
  852. package/ui/components/atoms/vc-icon/vc-svg-icon.vue +0 -168
  853. package/ui/components/atoms/vc-image/index.ts +0 -1
  854. package/ui/components/atoms/vc-image/vc-image.stories.ts +0 -309
  855. package/ui/components/atoms/vc-image/vc-image.vue +0 -173
  856. package/ui/components/atoms/vc-label/index.ts +0 -1
  857. package/ui/components/atoms/vc-label/vc-label.stories.ts +0 -137
  858. package/ui/components/atoms/vc-label/vc-label.vue +0 -132
  859. package/ui/components/atoms/vc-link/index.ts +0 -10
  860. package/ui/components/atoms/vc-link/vc-link.stories.ts +0 -154
  861. package/ui/components/atoms/vc-link/vc-link.vue +0 -61
  862. package/ui/components/atoms/vc-loading/index.ts +0 -3
  863. package/ui/components/atoms/vc-loading/vc-loading.vue +0 -71
  864. package/ui/components/atoms/vc-progress/index.ts +0 -10
  865. package/ui/components/atoms/vc-progress/vc-progress.stories.ts +0 -182
  866. package/ui/components/atoms/vc-progress/vc-progress.vue +0 -74
  867. package/ui/components/atoms/vc-row/index.ts +0 -1
  868. package/ui/components/atoms/vc-row/vc-row.stories.ts +0 -143
  869. package/ui/components/atoms/vc-row/vc-row.vue +0 -27
  870. package/ui/components/atoms/vc-scrollable-container/index.ts +0 -1
  871. package/ui/components/atoms/vc-scrollable-container/vc-scrollable-container.vue +0 -119
  872. package/ui/components/atoms/vc-skeleton/index.ts +0 -1
  873. package/ui/components/atoms/vc-skeleton/vc-skeleton.stories.ts +0 -246
  874. package/ui/components/atoms/vc-skeleton/vc-skeleton.vue +0 -115
  875. package/ui/components/atoms/vc-status/index.ts +0 -1
  876. package/ui/components/atoms/vc-status/vc-status.stories.ts +0 -235
  877. package/ui/components/atoms/vc-status/vc-status.vue +0 -131
  878. package/ui/components/atoms/vc-status-icon/index.ts +0 -1
  879. package/ui/components/atoms/vc-status-icon/vc-status-icon.stories.ts +0 -129
  880. package/ui/components/atoms/vc-status-icon/vc-status-icon.vue +0 -48
  881. package/ui/components/atoms/vc-tooltip/index.ts +0 -1
  882. package/ui/components/atoms/vc-tooltip/vc-tooltip.stories.ts +0 -409
  883. package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +0 -301
  884. package/ui/components/atoms/vc-video/index.ts +0 -1
  885. package/ui/components/atoms/vc-video/vc-video.stories.ts +0 -150
  886. package/ui/components/atoms/vc-video/vc-video.vue +0 -88
  887. package/ui/components/atoms/vc-widget/index.ts +0 -3
  888. package/ui/components/atoms/vc-widget/vc-widget.stories.ts +0 -285
  889. package/ui/components/atoms/vc-widget/vc-widget.vue +0 -174
  890. package/ui/components/index.ts +0 -8
  891. package/ui/components/molecules/index.ts +0 -26
  892. package/ui/components/molecules/vc-accordion/_internal/vc-accordion-item/vc-accordion-item.vue +0 -216
  893. package/ui/components/molecules/vc-accordion/index.ts +0 -11
  894. package/ui/components/molecules/vc-accordion/vc-accordion.stories.ts +0 -526
  895. package/ui/components/molecules/vc-accordion/vc-accordion.vue +0 -176
  896. package/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue +0 -98
  897. package/ui/components/molecules/vc-breadcrumbs/index.ts +0 -1
  898. package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.stories.ts +0 -509
  899. package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue +0 -176
  900. package/ui/components/molecules/vc-checkbox/index.ts +0 -3
  901. package/ui/components/molecules/vc-checkbox/vc-checkbox.a11y.test.ts +0 -39
  902. package/ui/components/molecules/vc-checkbox/vc-checkbox.stories.ts +0 -356
  903. package/ui/components/molecules/vc-checkbox/vc-checkbox.test.ts +0 -75
  904. package/ui/components/molecules/vc-checkbox/vc-checkbox.vue +0 -355
  905. package/ui/components/molecules/vc-checkbox-group/index.ts +0 -2
  906. package/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.stories.ts +0 -258
  907. package/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.test.ts +0 -40
  908. package/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.vue +0 -103
  909. package/ui/components/molecules/vc-color-input/index.ts +0 -1
  910. package/ui/components/molecules/vc-color-input/vc-color-input.stories.ts +0 -152
  911. package/ui/components/molecules/vc-color-input/vc-color-input.vue +0 -398
  912. package/ui/components/molecules/vc-date-picker/index.ts +0 -1
  913. package/ui/components/molecules/vc-date-picker/vc-date-picker.stories.ts +0 -168
  914. package/ui/components/molecules/vc-date-picker/vc-date-picker.vue +0 -427
  915. package/ui/components/molecules/vc-dropdown/_internal/VcDropdownItem.vue +0 -78
  916. package/ui/components/molecules/vc-dropdown/index.ts +0 -2
  917. package/ui/components/molecules/vc-dropdown/vc-dropdown-item.test.ts +0 -59
  918. package/ui/components/molecules/vc-dropdown/vc-dropdown.stories.ts +0 -394
  919. package/ui/components/molecules/vc-dropdown/vc-dropdown.test.ts +0 -54
  920. package/ui/components/molecules/vc-dropdown/vc-dropdown.vue +0 -546
  921. package/ui/components/molecules/vc-dropdown-panel/index.ts +0 -1
  922. package/ui/components/molecules/vc-dropdown-panel/panel-anchor-registry.ts +0 -5
  923. package/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.vue +0 -326
  924. package/ui/components/molecules/vc-editor/_internal/extensions/font-size.ts +0 -59
  925. package/ui/components/molecules/vc-editor/_internal/toolbar-types.ts +0 -57
  926. package/ui/components/molecules/vc-editor/_internal/vc-editor-button.vue +0 -103
  927. package/ui/components/molecules/vc-editor/_internal/vc-editor-custom-button.vue +0 -79
  928. package/ui/components/molecules/vc-editor/_internal/vc-editor-font-selector.vue +0 -215
  929. package/ui/components/molecules/vc-editor/_internal/vc-editor-toolbar.vue +0 -316
  930. package/ui/components/molecules/vc-editor/index.ts +0 -6
  931. package/ui/components/molecules/vc-editor/vc-editor.stories.ts +0 -417
  932. package/ui/components/molecules/vc-editor/vc-editor.vue +0 -833
  933. package/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue +0 -96
  934. package/ui/components/molecules/vc-field/index.ts +0 -1
  935. package/ui/components/molecules/vc-field/vc-field.stories.ts +0 -179
  936. package/ui/components/molecules/vc-field/vc-field.vue +0 -119
  937. package/ui/components/molecules/vc-file-upload/index.ts +0 -1
  938. package/ui/components/molecules/vc-file-upload/vc-file-upload.stories.ts +0 -472
  939. package/ui/components/molecules/vc-file-upload/vc-file-upload.vue +0 -271
  940. package/ui/components/molecules/vc-form/index.ts +0 -10
  941. package/ui/components/molecules/vc-form/vc-form.stories.ts +0 -168
  942. package/ui/components/molecules/vc-form/vc-form.vue +0 -38
  943. package/ui/components/molecules/vc-input/index.ts +0 -1
  944. package/ui/components/molecules/vc-input/vc-input.a11y.test.ts +0 -57
  945. package/ui/components/molecules/vc-input/vc-input.stories.ts +0 -1004
  946. package/ui/components/molecules/vc-input/vc-input.test.ts +0 -114
  947. package/ui/components/molecules/vc-input/vc-input.vue +0 -731
  948. package/ui/components/molecules/vc-input-currency/index.ts +0 -1
  949. package/ui/components/molecules/vc-input-currency/vc-input-currency.stories.ts +0 -532
  950. package/ui/components/molecules/vc-input-currency/vc-input-currency.vue +0 -199
  951. package/ui/components/molecules/vc-input-dropdown/index.ts +0 -3
  952. package/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.stories.ts +0 -761
  953. package/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue +0 -305
  954. package/ui/components/molecules/vc-input-group/context.ts +0 -10
  955. package/ui/components/molecules/vc-input-group/index.ts +0 -2
  956. package/ui/components/molecules/vc-input-group/vc-input-group.stories.ts +0 -355
  957. package/ui/components/molecules/vc-input-group/vc-input-group.test.ts +0 -39
  958. package/ui/components/molecules/vc-input-group/vc-input-group.vue +0 -173
  959. package/ui/components/molecules/vc-multivalue/_internal/MultivalueDropdown.vue +0 -216
  960. package/ui/components/molecules/vc-multivalue/_internal/MultivalueTrigger.vue +0 -207
  961. package/ui/components/molecules/vc-multivalue/composables/index.ts +0 -6
  962. package/ui/components/molecules/vc-multivalue/composables/useMultivalueColor.ts +0 -50
  963. package/ui/components/molecules/vc-multivalue/composables/useMultivalueDropdown.ts +0 -126
  964. package/ui/components/molecules/vc-multivalue/composables/useMultivalueInput.ts +0 -64
  965. package/ui/components/molecules/vc-multivalue/composables/useMultivalueMode.ts +0 -32
  966. package/ui/components/molecules/vc-multivalue/composables/useMultivalueOptions.ts +0 -27
  967. package/ui/components/molecules/vc-multivalue/composables/useMultivalueValues.ts +0 -50
  968. package/ui/components/molecules/vc-multivalue/index.ts +0 -1
  969. package/ui/components/molecules/vc-multivalue/vc-multivalue.stories.ts +0 -561
  970. package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +0 -547
  971. package/ui/components/molecules/vc-pagination/index.ts +0 -3
  972. package/ui/components/molecules/vc-pagination/vc-pagination.stories.ts +0 -259
  973. package/ui/components/molecules/vc-pagination/vc-pagination.vue +0 -244
  974. package/ui/components/molecules/vc-radio-button/index.ts +0 -1
  975. package/ui/components/molecules/vc-radio-button/vc-radio-button.stories.ts +0 -283
  976. package/ui/components/molecules/vc-radio-button/vc-radio-button.vue +0 -195
  977. package/ui/components/molecules/vc-radio-group/index.ts +0 -2
  978. package/ui/components/molecules/vc-radio-group/vc-radio-group.stories.ts +0 -248
  979. package/ui/components/molecules/vc-radio-group/vc-radio-group.test.ts +0 -51
  980. package/ui/components/molecules/vc-radio-group/vc-radio-group.vue +0 -92
  981. package/ui/components/molecules/vc-rating/index.ts +0 -1
  982. package/ui/components/molecules/vc-rating/vc-rating.stories.ts +0 -363
  983. package/ui/components/molecules/vc-rating/vc-rating.vue +0 -128
  984. package/ui/components/molecules/vc-select/_internal/SelectDropdown.vue +0 -200
  985. package/ui/components/molecules/vc-select/_internal/SelectTrigger.vue +0 -301
  986. package/ui/components/molecules/vc-select/composables/index.ts +0 -7
  987. package/ui/components/molecules/vc-select/composables/useSelectDefaultValue.ts +0 -106
  988. package/ui/components/molecules/vc-select/composables/useSelectDropdown.ts +0 -88
  989. package/ui/components/molecules/vc-select/composables/useSelectOptions.ts +0 -125
  990. package/ui/components/molecules/vc-select/composables/useSelectSearch.ts +0 -83
  991. package/ui/components/molecules/vc-select/composables/useSelectSelection.ts +0 -170
  992. package/ui/components/molecules/vc-select/composables/useSelectValueMapping.ts +0 -57
  993. package/ui/components/molecules/vc-select/composables/useSelectVisibility.ts +0 -60
  994. package/ui/components/molecules/vc-select/index.ts +0 -2
  995. package/ui/components/molecules/vc-select/vc-select.stories.ts +0 -1730
  996. package/ui/components/molecules/vc-select/vc-select.test.ts +0 -89
  997. package/ui/components/molecules/vc-select/vc-select.vue +0 -862
  998. package/ui/components/molecules/vc-slider/index.ts +0 -13
  999. package/ui/components/molecules/vc-slider/vc-slider.stories.ts +0 -224
  1000. package/ui/components/molecules/vc-slider/vc-slider.vue +0 -148
  1001. package/ui/components/molecules/vc-switch/index.ts +0 -1
  1002. package/ui/components/molecules/vc-switch/vc-switch.stories.ts +0 -324
  1003. package/ui/components/molecules/vc-switch/vc-switch.vue +0 -237
  1004. package/ui/components/molecules/vc-textarea/index.ts +0 -1
  1005. package/ui/components/molecules/vc-textarea/vc-textarea.a11y.test.ts +0 -44
  1006. package/ui/components/molecules/vc-textarea/vc-textarea.stories.ts +0 -326
  1007. package/ui/components/molecules/vc-textarea/vc-textarea.vue +0 -229
  1008. package/ui/components/molecules/vc-toast/index.ts +0 -1
  1009. package/ui/components/molecules/vc-toast/vc-toast.stories.ts +0 -559
  1010. package/ui/components/molecules/vc-toast/vc-toast.vue +0 -649
  1011. package/ui/components/organisms/blade-navigation-v2.stories.ts +0 -611
  1012. package/ui/components/organisms/index.ts +0 -9
  1013. package/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarMobileActions.vue +0 -128
  1014. package/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarOverlay.vue +0 -91
  1015. package/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarWidgetContent.vue +0 -40
  1016. package/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarWidgetItem.vue +0 -154
  1017. package/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarWidgetsMenu.vue +0 -110
  1018. package/ui/components/organisms/vc-app/_internal/app-bar/components/AppHubContent.test.ts +0 -174
  1019. package/ui/components/organisms/vc-app/_internal/app-bar/components/AppHubContent.vue +0 -730
  1020. package/ui/components/organisms/vc-app/_internal/app-bar/components/AppHubPopover.vue +0 -79
  1021. package/ui/components/organisms/vc-app/_internal/app-bar/components/MenuSidebar.vue +0 -196
  1022. package/ui/components/organisms/vc-app/_internal/app-bar/composables/useAppBarMobileActions.ts +0 -50
  1023. package/ui/components/organisms/vc-app/_internal/app-bar/composables/useAppBarState.ts +0 -35
  1024. package/ui/components/organisms/vc-app/_internal/app-bar/composables/useAppBarWidgets.ts +0 -25
  1025. package/ui/components/organisms/vc-app/_internal/app-bar/composables/useAppHub.ts +0 -70
  1026. package/ui/components/organisms/vc-app/_internal/app-bar/composables/useToggleableContent.ts +0 -67
  1027. package/ui/components/organisms/vc-app/_internal/layouts/DesktopLayout.vue +0 -365
  1028. package/ui/components/organisms/vc-app/_internal/layouts/MobileLayout.test.ts +0 -151
  1029. package/ui/components/organisms/vc-app/_internal/layouts/MobileLayout.vue +0 -587
  1030. package/ui/components/organisms/vc-app/_internal/menu/VcAppMenu.test.ts +0 -43
  1031. package/ui/components/organisms/vc-app/_internal/menu/VcAppMenu.vue +0 -158
  1032. package/ui/components/organisms/vc-app/_internal/menu/VcAppMenuGroup.vue +0 -160
  1033. package/ui/components/organisms/vc-app/_internal/menu/VcAppMenuItem.vue +0 -216
  1034. package/ui/components/organisms/vc-app/_internal/menu/composables/useBadge.ts +0 -82
  1035. package/ui/components/organisms/vc-app/_internal/menu/composables/useMenuActiveState.ts +0 -41
  1036. package/ui/components/organisms/vc-app/_internal/sidebar/SidebarCollapseButton.vue +0 -47
  1037. package/ui/components/organisms/vc-app/_internal/sidebar/SidebarContent.vue +0 -123
  1038. package/ui/components/organisms/vc-app/_internal/sidebar/SidebarHeader.vue +0 -242
  1039. package/ui/components/organisms/vc-app/composables/useShellBootstrap.test.ts +0 -222
  1040. package/ui/components/organisms/vc-app/composables/useShellBootstrap.ts +0 -101
  1041. package/ui/components/organisms/vc-app/composables/useShellLifecycle.ts +0 -39
  1042. package/ui/components/organisms/vc-app/composables/useShellNavigation.ts +0 -57
  1043. package/ui/components/organisms/vc-app/composition/README.md +0 -78
  1044. package/ui/components/organisms/vc-app/composition/app-bar/index.ts +0 -6
  1045. package/ui/components/organisms/vc-app/composition/index.ts +0 -6
  1046. package/ui/components/organisms/vc-app/composition/layouts/index.ts +0 -2
  1047. package/ui/components/organisms/vc-app/composition/menu/index.ts +0 -6
  1048. package/ui/components/organisms/vc-app/composition/shell/index.ts +0 -3
  1049. package/ui/components/organisms/vc-app/composition/sidebar/index.ts +0 -3
  1050. package/ui/components/organisms/vc-app/composition/state/index.ts +0 -6
  1051. package/ui/components/organisms/vc-app/index.ts +0 -2
  1052. package/ui/components/organisms/vc-app/vc-app-shell.stories.ts +0 -762
  1053. package/ui/components/organisms/vc-app/vc-app.vue +0 -252
  1054. package/ui/components/organisms/vc-auth-layout/index.ts +0 -1
  1055. package/ui/components/organisms/vc-auth-layout/vc-auth-layout.vue +0 -193
  1056. package/ui/components/organisms/vc-blade/_internal/BladeContentSkeleton.vue +0 -113
  1057. package/ui/components/organisms/vc-blade/_internal/BladeHeader.vue +0 -263
  1058. package/ui/components/organisms/vc-blade/_internal/BladeHeaderSkeleton.vue +0 -52
  1059. package/ui/components/organisms/vc-blade/_internal/BladeStatusBanners.vue +0 -195
  1060. package/ui/components/organisms/vc-blade/_internal/BladeToolbar.vue +0 -73
  1061. package/ui/components/organisms/vc-blade/_internal/BladeToolbarSkeleton.vue +0 -34
  1062. package/ui/components/organisms/vc-blade/_internal/composables/useBladeError.ts +0 -44
  1063. package/ui/components/organisms/vc-blade/_internal/composables/useToolbarRegistration.ts +0 -116
  1064. package/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarBaseButton.test.ts +0 -79
  1065. package/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarBaseButton.vue +0 -135
  1066. package/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarCircleButton.vue +0 -101
  1067. package/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarDesktop.vue +0 -125
  1068. package/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarMobile.vue +0 -417
  1069. package/ui/components/organisms/vc-blade/_internal/toolbar/toolbar-button-props.ts +0 -14
  1070. package/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainer.vue +0 -38
  1071. package/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainerDesktop.vue +0 -125
  1072. package/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainerMobile.vue +0 -114
  1073. package/ui/components/organisms/vc-blade/_internal/widgets/WidgetDropdownItem.test.ts +0 -56
  1074. package/ui/components/organisms/vc-blade/_internal/widgets/WidgetDropdownItem.vue +0 -91
  1075. package/ui/components/organisms/vc-blade/constants.ts +0 -19
  1076. package/ui/components/organisms/vc-blade/index.ts +0 -1
  1077. package/ui/components/organisms/vc-blade/utils.test.ts +0 -82
  1078. package/ui/components/organisms/vc-blade/utils.ts +0 -48
  1079. package/ui/components/organisms/vc-blade/vc-blade.stories.ts +0 -502
  1080. package/ui/components/organisms/vc-blade/vc-blade.vue +0 -312
  1081. package/ui/components/organisms/vc-dynamic-property/index.ts +0 -1
  1082. package/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue +0 -618
  1083. package/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.test.ts +0 -48
  1084. package/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue +0 -244
  1085. package/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue +0 -351
  1086. package/ui/components/organisms/vc-gallery/composables/index.ts +0 -4
  1087. package/ui/components/organisms/vc-gallery/composables/useGalleryPreview.ts +0 -26
  1088. package/ui/components/organisms/vc-gallery/composables/useGalleryReorder.test.ts +0 -73
  1089. package/ui/components/organisms/vc-gallery/composables/useGalleryReorder.ts +0 -183
  1090. package/ui/components/organisms/vc-gallery/composables/useGalleryUpload.test.ts +0 -89
  1091. package/ui/components/organisms/vc-gallery/composables/useGalleryUpload.ts +0 -43
  1092. package/ui/components/organisms/vc-gallery/composables/useImageLoad.test.ts +0 -34
  1093. package/ui/components/organisms/vc-gallery/composables/useImageLoad.ts +0 -26
  1094. package/ui/components/organisms/vc-gallery/index.ts +0 -3
  1095. package/ui/components/organisms/vc-gallery/vc-gallery.actions.test.ts +0 -76
  1096. package/ui/components/organisms/vc-gallery/vc-gallery.stories.ts +0 -99
  1097. package/ui/components/organisms/vc-gallery/vc-gallery.vue +0 -424
  1098. package/ui/components/organisms/vc-image-upload/index.ts +0 -1
  1099. package/ui/components/organisms/vc-image-upload/vc-image-upload.stories.ts +0 -47
  1100. package/ui/components/organisms/vc-image-upload/vc-image-upload.vue +0 -251
  1101. package/ui/components/organisms/vc-popup/index.ts +0 -3
  1102. package/ui/components/organisms/vc-popup/vc-popup.stories.ts +0 -504
  1103. package/ui/components/organisms/vc-popup/vc-popup.vue +0 -405
  1104. package/ui/components/organisms/vc-sidebar/index.ts +0 -1
  1105. package/ui/components/organisms/vc-sidebar/vc-sidebar.stories.ts +0 -251
  1106. package/ui/components/organisms/vc-sidebar/vc-sidebar.test.ts +0 -125
  1107. package/ui/components/organisms/vc-sidebar/vc-sidebar.vue +0 -787
  1108. package/ui/components/organisms/vc-table/VcDataTable.vue +0 -1856
  1109. package/ui/components/organisms/vc-table/VcTableAdapter.vue +0 -574
  1110. package/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue +0 -134
  1111. package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +0 -451
  1112. package/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue +0 -123
  1113. package/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue +0 -38
  1114. package/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue +0 -88
  1115. package/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue +0 -238
  1116. package/ui/components/organisms/vc-table/base/BaseVcDataTable.ts +0 -541
  1117. package/ui/components/organisms/vc-table/components/ColumnFilter.vue +0 -459
  1118. package/ui/components/organisms/vc-table/components/ColumnSwitcherButton.vue +0 -43
  1119. package/ui/components/organisms/vc-table/components/DataTableBody.vue +0 -363
  1120. package/ui/components/organisms/vc-table/components/DataTableCellRenderer.vue +0 -396
  1121. package/ui/components/organisms/vc-table/components/DataTableHeader.vue +0 -373
  1122. package/ui/components/organisms/vc-table/components/DataTableRow.vue +0 -370
  1123. package/ui/components/organisms/vc-table/components/GlobalFiltersButton.vue +0 -58
  1124. package/ui/components/organisms/vc-table/components/GlobalFiltersPanel.vue +0 -440
  1125. package/ui/components/organisms/vc-table/components/Table.vue +0 -101
  1126. package/ui/components/organisms/vc-table/components/TableActions.vue +0 -125
  1127. package/ui/components/organisms/vc-table/components/TableAddRowButton.vue +0 -55
  1128. package/ui/components/organisms/vc-table/components/TableBody.vue +0 -79
  1129. package/ui/components/organisms/vc-table/components/TableCell.vue +0 -160
  1130. package/ui/components/organisms/vc-table/components/TableCheckbox.vue +0 -78
  1131. package/ui/components/organisms/vc-table/components/TableColumnSwitcher.vue +0 -150
  1132. package/ui/components/organisms/vc-table/components/TableEmpty.vue +0 -69
  1133. package/ui/components/organisms/vc-table/components/TableFooter.vue +0 -13
  1134. package/ui/components/organisms/vc-table/components/TableGroupRow.vue +0 -130
  1135. package/ui/components/organisms/vc-table/components/TableHead.vue +0 -311
  1136. package/ui/components/organisms/vc-table/components/TableHeader.vue +0 -13
  1137. package/ui/components/organisms/vc-table/components/TableResizeHandle.vue +0 -125
  1138. package/ui/components/organisms/vc-table/components/TableRow.vue +0 -283
  1139. package/ui/components/organisms/vc-table/components/TableRowActions.vue +0 -495
  1140. package/ui/components/organisms/vc-table/components/TableSearchHeader.vue +0 -233
  1141. package/ui/components/organisms/vc-table/components/TableSelectAllBar.vue +0 -135
  1142. package/ui/components/organisms/vc-table/components/VcColumn.vue +0 -255
  1143. package/ui/components/organisms/vc-table/components/_internal/SlotProxy.ts +0 -20
  1144. package/ui/components/organisms/vc-table/components/_internal/TableSkeletonRows.vue +0 -110
  1145. package/ui/components/organisms/vc-table/components/cells/CellDate.vue +0 -52
  1146. package/ui/components/organisms/vc-table/components/cells/CellDateAgo.vue +0 -48
  1147. package/ui/components/organisms/vc-table/components/cells/CellDefault.vue +0 -90
  1148. package/ui/components/organisms/vc-table/components/cells/CellEditableWrapper.vue +0 -47
  1149. package/ui/components/organisms/vc-table/components/cells/CellHtml.vue +0 -62
  1150. package/ui/components/organisms/vc-table/components/cells/CellImage.vue +0 -28
  1151. package/ui/components/organisms/vc-table/components/cells/CellLink.vue +0 -18
  1152. package/ui/components/organisms/vc-table/components/cells/CellMoney.vue +0 -120
  1153. package/ui/components/organisms/vc-table/components/cells/CellNumber.vue +0 -113
  1154. package/ui/components/organisms/vc-table/components/cells/CellStatus.vue +0 -18
  1155. package/ui/components/organisms/vc-table/components/cells/CellStatusIcon.vue +0 -20
  1156. package/ui/components/organisms/vc-table/components/cells/DynamicCellRenderer.vue +0 -164
  1157. package/ui/components/organisms/vc-table/components/cells/index.ts +0 -11
  1158. package/ui/components/organisms/vc-table/components/index.ts +0 -39
  1159. package/ui/components/organisms/vc-table/components/mobile/DataTableMobileCard.vue +0 -672
  1160. package/ui/components/organisms/vc-table/components/mobile/DataTableMobileView.vue +0 -251
  1161. package/ui/components/organisms/vc-table/components/mobile/MobileActionSheet.vue +0 -163
  1162. package/ui/components/organisms/vc-table/components/mobile/MobileCellRenderer.vue +0 -68
  1163. package/ui/components/organisms/vc-table/components/mobile/PullToRefresh.vue +0 -353
  1164. package/ui/components/organisms/vc-table/components/mobile/index.ts +0 -6
  1165. package/ui/components/organisms/vc-table/composables/index.ts +0 -49
  1166. package/ui/components/organisms/vc-table/composables/useCellBase.ts +0 -114
  1167. package/ui/components/organisms/vc-table/composables/useCellRegistry.ts +0 -130
  1168. package/ui/components/organisms/vc-table/composables/useColumnFilter.ts +0 -158
  1169. package/ui/components/organisms/vc-table/composables/useDataProcessing.ts +0 -239
  1170. package/ui/components/organisms/vc-table/composables/useDataTableState.test.ts +0 -78
  1171. package/ui/components/organisms/vc-table/composables/useDataTableState.ts +0 -343
  1172. package/ui/components/organisms/vc-table/composables/useMobileCardLayout.test.ts +0 -81
  1173. package/ui/components/organisms/vc-table/composables/useMobileCardLayout.ts +0 -345
  1174. package/ui/components/organisms/vc-table/composables/useTableColumns.ts +0 -276
  1175. package/ui/components/organisms/vc-table/composables/useTableColumnsReorder.ts +0 -175
  1176. package/ui/components/organisms/vc-table/composables/useTableColumnsResize.ts +0 -311
  1177. package/ui/components/organisms/vc-table/composables/useTableContext.ts +0 -16
  1178. package/ui/components/organisms/vc-table/composables/useTableEditing.ts +0 -385
  1179. package/ui/components/organisms/vc-table/composables/useTableExpansion.ts +0 -159
  1180. package/ui/components/organisms/vc-table/composables/useTableFilter.test.ts +0 -43
  1181. package/ui/components/organisms/vc-table/composables/useTableFilter.ts +0 -131
  1182. package/ui/components/organisms/vc-table/composables/useTableInlineEdit.ts +0 -306
  1183. package/ui/components/organisms/vc-table/composables/useTableRowGrouping.ts +0 -310
  1184. package/ui/components/organisms/vc-table/composables/useTableRowReorder.ts +0 -227
  1185. package/ui/components/organisms/vc-table/composables/useTableSelectionV2.ts +0 -388
  1186. package/ui/components/organisms/vc-table/composables/useTableSort.ts +0 -221
  1187. package/ui/components/organisms/vc-table/composables/useTableSwipe.ts +0 -32
  1188. package/ui/components/organisms/vc-table/composables/useVirtualScroll.ts +0 -286
  1189. package/ui/components/organisms/vc-table/index.ts +0 -68
  1190. package/ui/components/organisms/vc-table/keys.ts +0 -20
  1191. package/ui/components/organisms/vc-table/types.ts +0 -856
  1192. package/ui/components/organisms/vc-table/utils/ColumnCollector.ts +0 -137
  1193. package/ui/components/organisms/vc-table/utils/deepClone.ts +0 -46
  1194. package/ui/components/organisms/vc-table/utils/index.ts +0 -19
  1195. package/ui/components/organisms/vc-table/vc-data-table.stories.ts +0 -5178
  1196. package/ui/composables/README.md +0 -160
  1197. package/ui/composables/index.ts +0 -6
  1198. package/ui/composables/useAdaptiveItems.ts +0 -347
  1199. package/ui/composables/useCollapsible.ts +0 -73
  1200. package/ui/composables/useFloatingPosition.ts +0 -94
  1201. package/ui/composables/useFormField.ts +0 -57
  1202. package/ui/composables/useScrollArrows.ts +0 -64
  1203. package/ui/composables/useTeleportTarget.ts +0 -37
  1204. package/ui/types/form-field.ts +0 -44
  1205. package/ui/types/index.ts +0 -21
@@ -1,1856 +0,0 @@
1
- <template>
2
- <div
3
- ref="tableRootRef"
4
- v-loading:49="loading && !showSkeleton"
5
- class="vc-data-table"
6
- :aria-busy="loading || undefined"
7
- >
8
- <!-- Header slot -->
9
- <div
10
- v-if="$slots.header"
11
- class="vc-data-table__header"
12
- >
13
- <slot name="header" />
14
- </div>
15
-
16
- <!-- Search bar + Global Filters + Column Switcher (combined toolbar) -->
17
- <TableSearchHeader
18
- v-if="searchable || globalFilters?.length || $slots['search-header-actions']"
19
- :searchable="searchable"
20
- :model-value="internalSearchValue"
21
- :placeholder="searchPlaceholder"
22
- @update:model-value="handleSearchInput"
23
- >
24
- <template #actions>
25
- <GlobalFiltersButton
26
- v-if="globalFilters?.length"
27
- ref="globalFiltersButtonRef"
28
- :active-count="globalActiveFilterCount"
29
- @click="showGlobalFiltersPanel = !showGlobalFiltersPanel"
30
- />
31
- <!-- Custom actions from parent (e.g. adapter's filter button) -->
32
- <slot name="search-header-actions" />
33
- </template>
34
- </TableSearchHeader>
35
-
36
- <!-- Global Filters Panel (separate, teleported to body) -->
37
- <GlobalFiltersPanel
38
- v-if="globalFilters?.length"
39
- :filters="globalFilters"
40
- :model-value="globalFilterValues"
41
- :show="showGlobalFiltersPanel"
42
- :anchor-ref="globalFiltersButtonEl"
43
- @update:model-value="globalFilterValues = $event"
44
- @update:show="showGlobalFiltersPanel = $event"
45
- @apply="handleGlobalFilterApply"
46
- @clear="handleGlobalFilterClear"
47
- />
48
-
49
- <!-- Column Switcher Panel (separate, teleported to body) -->
50
- <TableColumnSwitcher
51
- v-if="columnSwitcher"
52
- :columns="switcherColumns"
53
- :visible-columns="switcherVisibleColumnIds"
54
- :show="showColumnSwitcherPanel"
55
- :anchor-ref="columnSwitcherButtonEl"
56
- @update:visible-columns="handleColumnVisibilityChange"
57
- @update:show="showColumnSwitcherPanel = $event"
58
- />
59
-
60
- <!-- Add Row Button (header position) -->
61
- <TableAddRowButton
62
- v-if="showAddRowButton && addRowPosition === 'header'"
63
- :label="addRowLabel"
64
- :icon="addRowIcon"
65
- @add="handleAddRow()"
66
- />
67
-
68
- <!-- Selection Banner -->
69
- <slot
70
- name="selection-banner"
71
- :count="selection.internalSelection.value.length"
72
- :total-count="props.totalCount"
73
- :is-select-all="selection.isSelectAllActive.value"
74
- :select-all="selection.selectAll"
75
- :clear-selection="selection.clearSelection"
76
- >
77
- <TableSelectAllBar
78
- v-if="effectiveSelectionMode === 'multiple'"
79
- :selection-count="selection.internalSelection.value.length"
80
- :total-count="props.totalCount ?? 0"
81
- :all-selected="selection.isSelectAllActive.value"
82
- :show-select-all-prompt="selection.showSelectAllChoice.value"
83
- @select-all="selection.selectAll"
84
- @cancel="selection.clearSelection"
85
- />
86
- </slot>
87
-
88
- <!-- Desktop: Main table content -->
89
- <div
90
- v-if="!isMobileView"
91
- ref="tableContainerRef"
92
- class="vc-data-table__content"
93
- :style="scrollHeight ? { height: scrollHeight } : undefined"
94
- >
95
- <Table :variant="computedVariant">
96
- <DataTableHeader
97
- ref="dataTableHeaderRef"
98
- :columns="safeColumns"
99
- :show-drag-handle="showRowDragHandle"
100
- :show-selection-cell="hasSelectionColumn && !isSelectionViaColumn"
101
- :selection-mode="effectiveSelectionMode"
102
- :all-selected="selection.allSelected.value"
103
- :some-selected="selection.someSelected.value"
104
- :get-sort-direction="sort.getSortDirection"
105
- :get-sort-index="sort.getSortIndex"
106
- :get-column-width="cols.getEffectiveColumnWidth"
107
- :get-header-align="cols.getHeaderAlign"
108
- :get-header-style="cols.getHeaderStyle"
109
- :is-column-resizable="cols.isColumnResizable"
110
- :is-column-reorderable="cols.isColumnReorderable"
111
- :is-last-resizable="cols.isLastResizableColumn"
112
- :get-sort-field="cols.getSortField"
113
- :set-header-ref="cols.setHeaderRef"
114
- :show-filter="showColumnFilter"
115
- :get-filter-type="getColumnFilterType"
116
- :get-filter-options="getColumnFilterOptions"
117
- :is-filter-multiple="isColumnFilterMultiple"
118
- :get-range-fields="getColumnRangeFields"
119
- :get-filter-value="getColumnFilterValue"
120
- :show-column-switcher="!!columnSwitcher"
121
- :column-switcher-active="showColumnSwitcherPanel"
122
- @select-all="handleSelectAllChange"
123
- @sort="handleSort"
124
- @resize-start="handleResizeStart"
125
- @reorder-start="handleColumnDragStart"
126
- @reorder-over="handleColumnDragOver"
127
- @reorder-drop="(_, event) => handleColumnDrop(event)"
128
- @filter-apply="handleColumnFilterApply"
129
- @filter-clear="handleColumnFilterClear"
130
- @column-switcher-click="showColumnSwitcherPanel = !showColumnSwitcherPanel"
131
- />
132
-
133
- <!-- Body -->
134
- <DataTableBody
135
- :items="displayItems"
136
- :loading="loading"
137
- :skeleton-rows="props.skeletonRows"
138
- :columns="safeColumns"
139
- :get-column-width="cols.getEffectiveColumnWidth"
140
- :get-cell-style="cols.getCellStyle"
141
- :show-selection-cell="hasSelectionColumn && !isSelectionViaColumn"
142
- :empty-icon="resolvedEmptyIcon"
143
- :empty-title="resolvedEmptyTitle"
144
- :empty-description="resolvedEmptyDescription"
145
- :empty-action-label="resolvedEmptyActionLabel"
146
- :empty-action-handler="resolvedEmptyActionHandler"
147
- :loading-text="loadingText"
148
- :grouping-enabled="rowGrouping.isGroupingEnabled.value"
149
- :grouped-data="rowGrouping.groupedData.value"
150
- :expandable-row-groups="expandableRowGroups"
151
- :is-group-expanded="rowGrouping.isGroupExpanded"
152
- :get-item-group-key="rowGrouping.getItemGroupKey"
153
- :get-global-index="getGlobalIndex"
154
- :get-item-key="getItemKey"
155
- :get-row-props="getRowProps as any"
156
- @scroll="handleContentScroll"
157
- @group-toggle="(key, e) => rowGrouping.toggleGroupExpansion(key, e!)"
158
- @row-click="handleRowClick"
159
- @row-mouseenter="handleRowMouseEnter"
160
- @row-mouseleave="handleRowMouseLeave"
161
- @selection-change="handleRowSelectionChange"
162
- @expand-toggle="(item, index, e) => handleExpandToggle(item, index, e!)"
163
- @row-edit="handleStartRowEdit"
164
- @row-save="handleSaveRowEdit"
165
- @row-cancel="handleCancelRowEdit"
166
- @edit-complete="handleCellEditComplete"
167
- @edit-cancel="handleCellEditCancel"
168
- @cell-value-change="handleCellValueChange"
169
- @cell-click="handleCellClick"
170
- @row-mousedown="
171
- (e) => {
172
- if (isRowReorderEnabled) onRowMouseDown(e);
173
- }
174
- "
175
- @row-dragstart="
176
- (e, item) => {
177
- if (isRowReorderEnabled) onRowDragStart(e, item);
178
- }
179
- "
180
- @row-dragover="
181
- (e, item) => {
182
- if (isRowReorderEnabled) onRowDragOver(e, item);
183
- }
184
- "
185
- @row-dragleave="
186
- (e) => {
187
- if (isRowReorderEnabled) onRowDragLeave(e);
188
- }
189
- "
190
- @row-dragend="
191
- (e) => {
192
- if (isRowReorderEnabled) onRowDragEnd(e);
193
- }
194
- "
195
- @row-drop="
196
- (e) => {
197
- if (isRowReorderEnabled) onRowDrop(e);
198
- }
199
- "
200
- >
201
- <template #row-actions="{ item, index }">
202
- <TableRowActions
203
- v-if="rowActions"
204
- :actions="rowActions(item)"
205
- :row-index="index"
206
- :mode="rowActionsMode"
207
- :max-quick-actions="maxQuickActions"
208
- @action="(action) => handleRowAction(action, item, index)"
209
- />
210
- </template>
211
- <template #expansion="{ data, index }">
212
- <slot
213
- name="expansion"
214
- :data="data"
215
- :index="index"
216
- />
217
- </template>
218
- <template
219
- v-if="$slots['not-found'] || $slots.empty"
220
- #empty
221
- >
222
- <slot
223
- v-if="isNotFoundState && $slots['not-found']"
224
- name="not-found"
225
- />
226
- <slot
227
- v-else
228
- name="empty"
229
- />
230
- </template>
231
- <template
232
- v-if="$slots.loading"
233
- #loading
234
- >
235
- <slot name="loading" />
236
- </template>
237
- <template
238
- v-if="$slots.groupheader"
239
- #groupheader="{ data, index }"
240
- >
241
- <slot
242
- name="groupheader"
243
- :data="data"
244
- :index="index"
245
- />
246
- </template>
247
- <template
248
- v-if="$slots.groupfooter"
249
- #groupfooter="{ data, index }"
250
- >
251
- <slot
252
- name="groupfooter"
253
- :data="data"
254
- :index="index"
255
- />
256
- </template>
257
- </DataTableBody>
258
-
259
- <!-- Footer -->
260
- <TableFooter v-if="$slots.footer && items && items.length">
261
- <slot name="footer" />
262
- </TableFooter>
263
-
264
- <!-- Add Row Button (footer position) -->
265
- <TableAddRowButton
266
- v-if="showAddRowButton && addRowPosition === 'footer'"
267
- :label="addRowLabel"
268
- :icon="addRowIcon"
269
- @add="handleAddRow()"
270
- />
271
- </Table>
272
- </div>
273
-
274
- <!-- Mobile: Card view with swipe actions (wrapped for scroll + pagination pinning) -->
275
- <div
276
- v-else
277
- class="vc-data-table__content"
278
- >
279
- <DataTableMobileView
280
- :items="displayItems"
281
- :columns="visibleColumns"
282
- :selection="selection.internalSelection.value"
283
- :selection-mode="effectiveSelectionMode"
284
- :is-row-selectable="props.isRowSelectable"
285
- :row-actions="rowActions"
286
- :loading="loading"
287
- :data-key="dataKey"
288
- :pull-to-refresh="pullToRefresh"
289
- :pull-to-refresh-text="pullToRefreshText"
290
- @click="handleMobileRowClick"
291
- @select="handleMobileRowSelect"
292
- @action="handleMobileRowAction"
293
- @refresh="emit('pull-refresh')"
294
- >
295
- <template #empty>
296
- <slot
297
- v-if="isNotFoundState && $slots['not-found']"
298
- name="not-found"
299
- />
300
- <slot
301
- v-else-if="$slots.empty"
302
- name="empty"
303
- />
304
- <TableEmpty
305
- v-else
306
- :icon="resolvedEmptyIcon"
307
- :title="resolvedEmptyTitle"
308
- :description="resolvedEmptyDescription"
309
- :action-label="resolvedEmptyActionLabel"
310
- :action-handler="resolvedEmptyActionHandler"
311
- />
312
- </template>
313
- </DataTableMobileView>
314
- </div>
315
-
316
- <!-- Pagination / Total counter (outside scroll area, works for both desktop and mobile) -->
317
- <div
318
- v-if="props.pagination"
319
- ref="paginationRef"
320
- class="vc-data-table__pagination"
321
- >
322
- <span class="vc-data-table__page-info">{{ paginationRangeText }}</span>
323
- <!-- Pagination controls -->
324
- <slot
325
- name="pagination"
326
- :pages="props.pagination.pages"
327
- :current-page="props.pagination.currentPage"
328
- :on-page-click="handlePaginationClick"
329
- >
330
- <VcPagination
331
- :pages="props.pagination.pages"
332
- :current-page="props.pagination.currentPage"
333
- :variant="props.pagination.variant"
334
- :max-pages="paginationMaxPages"
335
- :show-first-last="paginationShowFirstLast"
336
- @item-click="handlePaginationClick"
337
- />
338
- </slot>
339
- </div>
340
-
341
- <!-- VcColumn renderless components (they register themselves via inject) -->
342
- <slot />
343
- </div>
344
- </template>
345
-
346
- <script setup lang="ts" generic="T extends Record<string, any>">
347
- /**
348
- * VcDataTable - Declarative DataTable component with VcColumn support
349
- *
350
- * Refactored to use composables for better code organization.
351
- * Inspired by PrimeVue DataTable architecture.
352
- */
353
- import { ref, computed, provide, watch, onBeforeUnmount, toRef, useSlots, inject, type Ref, type VNode } from "vue";
354
- import { useElementSize } from "@vueuse/core";
355
- import { useI18n } from "vue-i18n";
356
- import {
357
- Table,
358
- TableFooter,
359
- TableEmpty,
360
- TableRowActions,
361
- DataTableHeader,
362
- DataTableBody,
363
- GlobalFiltersButton,
364
- GlobalFiltersPanel,
365
- TableColumnSwitcher,
366
- DataTableMobileView,
367
- TableAddRowButton,
368
- TableSearchHeader,
369
- TableSelectAllBar,
370
- } from "@ui/components/organisms/vc-table/components";
371
- import { VcPagination } from "@ui/components/molecules";
372
- import {
373
- useTableRowReorder,
374
- useTableColumnsResize,
375
- useTableColumnsReorder,
376
- useFilterState,
377
- useColumnFilter,
378
- useTableSort,
379
- useTableEditing,
380
- useTableExpansion,
381
- useTableSelectionV2,
382
- useTableColumns,
383
- useTableRowGrouping,
384
- useTableInlineEdit,
385
- useDataTableState,
386
- } from "@ui/components/organisms/vc-table/composables";
387
- import { ColumnCollector, type ColumnInstance } from "@ui/components/organisms/vc-table/utils/ColumnCollector";
388
- import {
389
- ColumnCollectorKey,
390
- FilterContextKey,
391
- HasFlexColumnsKey,
392
- IsColumnReorderingKey,
393
- } from "@ui/components/organisms/vc-table/keys";
394
- import { IsMobileKey } from "@framework/injection-keys";
395
- import type {
396
- VcColumnProps,
397
- VcDataTableExtendedProps,
398
- FilterValue,
399
- EditChange,
400
- TableAction,
401
- SortMeta,
402
- MobileSwipeAction,
403
- TableStateConfig,
404
- } from "@ui/components/organisms/vc-table/types";
405
- import type { DataTablePersistedState } from "@ui/components/organisms/vc-table/composables";
406
-
407
- const props = withDefaults(defineProps<VcDataTableExtendedProps<T>>(), {
408
- items: () => [],
409
- dataKey: "id",
410
- selectionMode: undefined,
411
- isRowSelectable: undefined,
412
- selectAll: false,
413
- editMode: undefined,
414
- sortField: undefined,
415
- sortOrder: 0,
416
- sortMode: "single",
417
- multiSortMeta: () => [],
418
- removableSort: false,
419
- striped: false,
420
- bordered: false,
421
- showGridlines: false,
422
- rowHover: true,
423
- size: "normal",
424
- variant: "default",
425
- resizableColumns: true,
426
- reorderableColumns: true,
427
- reorderableRows: false,
428
- showAllColumns: true,
429
- scrollable: false,
430
- scrollHeight: undefined,
431
- loading: false,
432
- expandedRows: () => [],
433
- expandedRowIcon: "fas fa-chevron-down",
434
- collapsedRowIcon: "fas fa-chevron-right",
435
- groupRowsBy: undefined,
436
- rowGroupMode: "subheader",
437
- expandableRowGroups: false,
438
- expandedRowGroups: undefined,
439
- rowActionsMode: "inline",
440
- maxQuickActions: 4,
441
- pullToRefresh: false,
442
- pullToRefreshText: undefined,
443
- totalCount: undefined,
444
- totalLabel: undefined,
445
- selectAllActive: false,
446
- addRow: undefined,
447
- validationRules: undefined,
448
- pagination: undefined,
449
- infiniteScroll: false,
450
- infiniteScrollDistance: 100,
451
- globalFilters: undefined,
452
- columnSwitcher: true,
453
- stateStorage: "local",
454
- searchable: false,
455
- searchValue: undefined,
456
- searchPlaceholder: "Search...",
457
- emptyState: undefined,
458
- notFoundState: undefined,
459
- searchDebounce: 300,
460
- activeItemId: undefined,
461
- });
462
-
463
- // Emits
464
- const emit = defineEmits<{
465
- // === Selection ===
466
- /** v-model update for selected item(s) */
467
- "update:selection": [value: T | T[]];
468
- /** v-model update for the "select all" checkbox state */
469
- "update:selectAll": [value: boolean];
470
- /** Emitted when a row is selected (click or checkbox) */
471
- "row-select": [event: { data: T; originalEvent: Event }];
472
- /** Emitted when a row is deselected */
473
- "row-unselect": [event: { data: T; originalEvent: Event }];
474
- /** Emitted when "select all" selects all visible rows */
475
- "row-select-all": [event: { data: T[]; originalEvent: Event }];
476
- /** Emitted when "select all" deselects all visible rows */
477
- "row-unselect-all": [event: { data: T[]; originalEvent: Event }];
478
- /** Emitted when the "select all" banner mode changes */
479
- "select-all": [event: { selected: boolean }];
480
- /** v-model update for "select all" active state (includes non-visible items) */
481
- "update:selectAllActive": [value: boolean];
482
-
483
- // === Editing ===
484
- /** v-model update for currently editing rows */
485
- "update:editingRows": [value: T[]];
486
- /** Emitted when a cell enters edit mode */
487
- "cell-edit-init": [event: { data: T; field: string; index: number }];
488
- /** Emitted when a cell edit is completed (value committed) */
489
- "cell-edit-complete": [event: { data: T; field: string; newValue: unknown; index: number }];
490
- /** Emitted when a cell edit is cancelled */
491
- "cell-edit-cancel": [event: { data: T; field: string; index: number }];
492
- /** Emitted when row edit mode is initiated */
493
- "row-edit-init": [event: { data: T; index: number }];
494
- /** Emitted when row edits are saved */
495
- "row-edit-save": [event: { data: T; newData: T; index: number }];
496
- /** Emitted when row edits are cancelled */
497
- "row-edit-cancel": [event: { data: T; index: number }];
498
-
499
- // === Inline Edit (bulk editing mode) ===
500
- /** Emitted when inline edit changes are saved */
501
- "edit-save": [event: { changes: EditChange<T>[] }];
502
- /** Emitted when inline editing is cancelled */
503
- "edit-cancel": [];
504
- /** Emitted when a new row is being added via inline edit */
505
- "row-add": [event: { defaults: Record<string, unknown>; cancel: () => void }];
506
- /** Emitted when a row is being removed via inline edit */
507
- "row-remove": [event: { data: T; index: number; cancel: () => void }];
508
-
509
- // === Sorting ===
510
- /** v-model update for the sorted field name */
511
- "update:sortField": [value: string];
512
- /** v-model update for the sort direction */
513
- "update:sortOrder": [value: number];
514
- /** v-model update for multi-sort metadata */
515
- "update:multiSortMeta": [value: SortMeta[]];
516
- /** Emitted when sort changes — use for backend sorting */
517
- sort: [event: { sortField?: string; sortOrder?: number; multiSortMeta?: SortMeta[] }];
518
-
519
- // === Filtering ===
520
- /** Emitted when filter values change — flat payload ready for backend API */
521
- filter: [event: { filters: Record<string, unknown>; filteredValue: T[] }];
522
-
523
- // === Row Interactions ===
524
- /** v-model update for active (highlighted) row ID */
525
- "update:activeItemId": [value: string | undefined];
526
- /** Emitted when a row is clicked */
527
- "row-click": [event: { data: T; index: number; originalEvent: Event }];
528
- /** Emitted when a row action button/menu item is activated */
529
- "row-action": [event: { action: TableAction | MobileSwipeAction<T>; item: T; index: number }];
530
-
531
- // === Reorder ===
532
- /** Emitted when rows are reordered via drag-and-drop */
533
- "row-reorder": [event: { dragIndex: number; dropIndex: number; value: T[] }];
534
- /** Emitted when a column resize operation ends */
535
- "column-resize-end": [event: { columns: { id: string; width: number }[] }];
536
- /** Emitted when columns are reordered via drag-and-drop */
537
- "column-reorder": [event: { columns: { id: string; [key: string]: unknown }[] }];
538
-
539
- // === State ===
540
- /** Emitted when table state is saved to storage */
541
- "state-save": [state: DataTablePersistedState];
542
- /** Emitted when table state is restored from storage */
543
- "state-restore": [state: DataTablePersistedState];
544
-
545
- // === Expandable Rows ===
546
- /** v-model update for currently expanded rows */
547
- "update:expandedRows": [value: T[]];
548
- /** Emitted when a row is expanded */
549
- "row-expand": [event: { data: T; originalEvent: Event }];
550
- /** Emitted when a row is collapsed */
551
- "row-collapse": [event: { data: T; originalEvent: Event }];
552
-
553
- // === Row Grouping ===
554
- /** v-model update for currently expanded row groups */
555
- "update:expandedRowGroups": [value: string[]];
556
- /** Emitted when a row group is expanded */
557
- "rowgroup-expand": [event: { data: string; originalEvent: Event }];
558
- /** Emitted when a row group is collapsed */
559
- "rowgroup-collapse": [event: { data: string; originalEvent: Event }];
560
-
561
- // === Pull-to-Refresh ===
562
- /** Emitted when user triggers pull-to-refresh on mobile */
563
- "pull-refresh": [];
564
-
565
- // === Infinite Scroll ===
566
- /** Emitted when user scrolls near the bottom of the table */
567
- "load-more": [];
568
-
569
- // === Pagination ===
570
- /** Emitted when a page button is clicked in the built-in pagination */
571
- "pagination-click": [page: number];
572
-
573
- // === Search ===
574
- /** v-model update for search input value */
575
- "update:searchValue": [value: string];
576
- /** Emitted (debounced) when search value changes — use for backend filtering */
577
- search: [value: string];
578
- }>();
579
-
580
- defineOptions({ inheritAttrs: false });
581
-
582
- defineSlots<{
583
- /** Default slot for VcColumn declarations */
584
- default?: () => VNode[];
585
- /** Custom header content above the table */
586
- header?: () => VNode[];
587
- /** Extra action buttons in the search header toolbar */
588
- "search-header-actions"?: () => VNode[];
589
- /** Custom selection banner replacing the default TableSelectAllBar */
590
- "selection-banner"?: (props: {
591
- count: number;
592
- totalCount: number | undefined;
593
- isSelectAll: boolean;
594
- selectAll: () => void;
595
- clearSelection: () => void;
596
- }) => VNode[];
597
- /** Custom content for expanded rows */
598
- expansion?: (props: { data: T; index: number }) => VNode[];
599
- /** Custom not-found state content (shown when search yields no results) */
600
- "not-found"?: () => VNode[];
601
- /** Custom empty state content */
602
- empty?: () => VNode[];
603
- /** Custom loading state content */
604
- loading?: () => VNode[];
605
- /** Custom row group header */
606
- groupheader?: (props: { data: T; index: number }) => VNode[];
607
- /** Custom row group footer */
608
- groupfooter?: (props: { data: T; index: number }) => VNode[];
609
- /** Custom footer content below the table body */
610
- footer?: () => VNode[];
611
- /** Custom pagination replacing the default VcPagination */
612
- pagination?: (props: { pages: number; currentPage: number; onPageClick: (page: number) => void }) => VNode[];
613
- }>();
614
-
615
- // ============================================================================
616
- // Internationalization
617
- // ============================================================================
618
-
619
- const { t } = useI18n({ useScope: "global" });
620
-
621
- const emptyTitle = computed(() => t("COMPONENTS.ORGANISMS.VC_TABLE.EMPTY_TITLE"));
622
- const emptyDescription = computed(() => t("COMPONENTS.ORGANISMS.VC_TABLE.EMPTY_DESCRIPTION"));
623
- const notFoundTitle = computed(() => t("COMPONENTS.ORGANISMS.VC_TABLE.NOT_FOUND_TITLE"));
624
- const notFoundDescription = computed(() => t("COMPONENTS.ORGANISMS.VC_TABLE.NOT_FOUND_DESCRIPTION"));
625
-
626
- /** Detect not-found state: items empty + active search or filters */
627
- const isNotFoundState = computed(
628
- () =>
629
- displayItems.value.length === 0 && !props.loading && (internalSearchValue.value !== "" || hasActiveFilters.value),
630
- );
631
-
632
- /** Resolved title/description/icon/action for the current empty-like state */
633
- const resolvedEmptyIcon = computed(() => (isNotFoundState.value ? props.notFoundState?.icon : props.emptyState?.icon));
634
- const resolvedEmptyTitle = computed(() =>
635
- isNotFoundState.value
636
- ? (props.notFoundState?.title ?? notFoundTitle.value)
637
- : (props.emptyState?.title ?? emptyTitle.value),
638
- );
639
- const resolvedEmptyDescription = computed(() =>
640
- isNotFoundState.value
641
- ? (props.notFoundState?.description ?? notFoundDescription.value)
642
- : (props.emptyState?.description ?? emptyDescription.value),
643
- );
644
- const resolvedEmptyActionLabel = computed(() =>
645
- isNotFoundState.value ? props.notFoundState?.actionLabel : props.emptyState?.actionLabel,
646
- );
647
- const resolvedEmptyActionHandler = computed(() =>
648
- isNotFoundState.value ? props.notFoundState?.actionHandler : props.emptyState?.actionHandler,
649
- );
650
- const loadingText = computed(() => t("COMPONENTS.ORGANISMS.VC_TABLE.LOADING"));
651
-
652
- /** Track whether data has ever been loaded — distinguishes initial load from refresh */
653
- const hasLoadedOnce = ref(false);
654
- watch(
655
- () => props.items,
656
- (items) => {
657
- if (items && items.length > 0) hasLoadedOnce.value = true;
658
- },
659
- { immediate: true },
660
- );
661
-
662
- /** True when skeleton should show instead of spinner overlay */
663
- const showSkeleton = computed(() => props.loading && !hasLoadedOnce.value);
664
-
665
- const paginationRangeText = computed(() => {
666
- const p = props.pagination;
667
- if (!p) return "";
668
- const total = props.totalCount;
669
- if (total != null && p.pages > 0) {
670
- const pageSize = Math.ceil(total / p.pages);
671
- const start = (p.currentPage - 1) * pageSize + 1;
672
- const end = Math.min(start + props.items.length - 1, total);
673
- return `${start}\u2013${end} ${t("COMPONENTS.ORGANISMS.VC_TABLE.OF", {}, "of")} ${total}`;
674
- }
675
- return `${t("COMPONENTS.ORGANISMS.VC_TABLE.PAGE", {}, "Page")} ${p.currentPage} ${t("COMPONENTS.ORGANISMS.VC_TABLE.OF", {}, "of")} ${p.pages}`;
676
- });
677
-
678
- // ============================================================================
679
- // Mobile Responsive Detection
680
- // ============================================================================
681
-
682
- const isMobile = inject(IsMobileKey, ref(false));
683
- const isMobileView = computed(() => isMobile.value);
684
-
685
- // ============================================================================
686
- // Column Collection (Hybrid approach: slots + inject/provide)
687
- // ============================================================================
688
-
689
- const slots = useSlots();
690
-
691
- // Extract columns from slot VNodes (PrimeVue-like approach)
692
- // Convert kebab-case to camelCase for props normalization
693
- const kebabToCamel = (str: string): string => {
694
- return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
695
- };
696
-
697
- // Boolean props that should be converted from "" to true
698
- const BOOLEAN_PROPS = new Set([
699
- "sortable",
700
- "editable",
701
- "visible",
702
- "alwaysVisible",
703
- "filter",
704
- "selectionMode",
705
- "rowEditor",
706
- "rowReorder",
707
- "expander",
708
- "mobileVisible",
709
- ]);
710
-
711
- // Normalize VNode props from kebab-case to camelCase
712
- // Also handles boolean attributes (e.g., `editable` becomes `editable: ""` in Vue, should be `true`)
713
- const normalizeProps = (props: Record<string, unknown>): VcColumnProps => {
714
- const normalized: Record<string, unknown> = {};
715
- for (const key of Object.keys(props)) {
716
- const camelKey = kebabToCamel(key);
717
- let value = props[key];
718
-
719
- // Handle boolean attributes: empty string "" means true in Vue templates
720
- if (BOOLEAN_PROPS.has(camelKey) && value === "") {
721
- value = true;
722
- }
723
-
724
- normalized[camelKey] = value;
725
- }
726
- return normalized as unknown as VcColumnProps;
727
- };
728
-
729
- const extractColumnsFromSlots = (): ColumnInstance[] => {
730
- const defaultSlot = slots.default?.();
731
- if (!defaultSlot) return [];
732
-
733
- const columns: ColumnInstance[] = [];
734
-
735
- const processVNode = (vnode: VNode) => {
736
- // Check if this is a VcColumn component
737
- const type = vnode.type as any;
738
- if (type && (type.name === "VcColumn" || type.__name === "VcColumn")) {
739
- // Normalize props from kebab-case to camelCase
740
- const rawProps = (vnode.props || {}) as Record<string, unknown>;
741
- const props = normalizeProps(rawProps);
742
- // Ensure id exists
743
- if (props.id) {
744
- columns.push({
745
- instance: null as any, // Not needed for slot-based approach
746
- props: props,
747
- slots: (vnode.children || {}) as any,
748
- });
749
- }
750
- }
751
- // Check Fragment or array children
752
- if (Array.isArray(vnode.children)) {
753
- (vnode.children as VNode[]).forEach(processVNode);
754
- }
755
- };
756
-
757
- defaultSlot.forEach(processVNode);
758
- return columns;
759
- };
760
-
761
- // Also keep inject/provide for backward compatibility
762
- const columnCollector = new ColumnCollector();
763
- provide(ColumnCollectorKey, columnCollector);
764
-
765
- const columnsVersion = ref(0);
766
- columnCollector.onUpdate(() => {
767
- columnsVersion.value++;
768
- });
769
-
770
- // All declared columns (before visibility filtering) — from slots or collector
771
- const declaredColumns = computed<ColumnInstance[]>(() => {
772
- columnsVersion.value;
773
- const slotCols = extractColumnsFromSlots();
774
- if (slotCols.length > 0) return slotCols;
775
- return columnCollector.getColumns();
776
- });
777
-
778
- // Column IDs hidden by user via TableColumnSwitcher (runtime toggle)
779
- const hiddenColumnIds = ref<Set<string>>(new Set());
780
- // Data-discovered columns explicitly shown by user.
781
- // Needed to persist "Show all" for auto columns across reloads.
782
- const shownDataDiscoveredColumnIds = ref<Set<string>>(new Set());
783
-
784
- // Auto-discovered columns from items keys (for columnSwitcher 'auto' mode)
785
- // These are keys in items[0] that don't have a matching declared VcColumn.
786
- // They start hidden and can be toggled on via the switcher.
787
- const dataDiscoveredColumns = computed<ColumnInstance[]>(() => {
788
- const mode = props.columnSwitcher;
789
- if (!mode || mode === "defined") return [];
790
-
791
- const items = props.items;
792
- if (!items || items.length === 0) return [];
793
-
794
- const declaredIds = new Set(declaredColumns.value.map((col) => col.props.id));
795
- const firstItem = items[0] as Record<string, unknown>;
796
- const itemKeys = Object.keys(firstItem);
797
-
798
- return itemKeys
799
- .filter((key) => !declaredIds.has(key))
800
- .map((key) => ({
801
- instance: null as any,
802
- props: {
803
- id: key,
804
- field: key,
805
- title: key.replace(/([A-Z])/g, " $1").replace(/^./, (s) => s.toUpperCase()),
806
- } as VcColumnProps,
807
- slots: {} as any,
808
- }));
809
- });
810
-
811
- // Use slot-based extraction as primary, fallback to inject
812
- // Reuse declaredColumns instead of re-extracting from slots to avoid creating duplicate objects
813
- const visibleColumns = computed<ColumnInstance[]>(() => {
814
- const baseCols = declaredColumns.value;
815
-
816
- const declared = baseCols.filter((col) => {
817
- if (col.props.visible === false) return false;
818
- if (hiddenColumnIds.value.size > 0 && hiddenColumnIds.value.has(col.props.id)) return false;
819
- // When showAllColumns=false, only show alwaysVisible columns (e.g. second blade opened)
820
- if (!props.showAllColumns) return !!col.props.alwaysVisible;
821
- return true;
822
- });
823
-
824
- // Data-discovered columns — only those explicitly enabled by user (not in hiddenColumnIds)
825
- const discovered = dataDiscoveredColumns.value.filter((col) => !hiddenColumnIds.value.has(col.props.id));
826
-
827
- return [...declared, ...discovered];
828
- });
829
-
830
- // ============================================================================
831
- // Helper: Get Item Key
832
- // ============================================================================
833
-
834
- const getItemKey = (item: T, index: number): string => {
835
- const key = (item as Record<string, unknown>)[props.dataKey];
836
- return key?.toString() || `row-${index}`;
837
- };
838
-
839
- // ============================================================================
840
- // Selection Composable
841
- // ============================================================================
842
-
843
- const selection = useTableSelectionV2({
844
- items: toRef(props, "items"),
845
- selection: toRef(props, "selection"),
846
- selectionMode: computed(() => effectiveSelectionMode.value),
847
- isRowSelectable: (item: T) => (props.isRowSelectable ? props.isRowSelectable(item) : true),
848
- dataKey: props.dataKey,
849
- getItemKey,
850
- totalCount: toRef(props, "totalCount") as Ref<number | undefined>,
851
- selectAllActive: toRef(props, "selectAllActive") as Ref<boolean | undefined>,
852
- onSelectAllChange: (active: boolean) => {
853
- emit("update:selectAllActive", active);
854
- emit("select-all", { selected: active });
855
- },
856
- });
857
-
858
- // Watch for selection changes and emit
859
- watch(
860
- () => selection.internalSelection.value,
861
- (newSelection) => {
862
- emit("update:selection", effectiveSelectionMode.value === "single" ? newSelection[0] : newSelection);
863
- },
864
- { deep: true },
865
- );
866
-
867
- // ============================================================================
868
- // Sort Composable
869
- // ============================================================================
870
-
871
- const sort = useTableSort({
872
- sortField: toRef(props, "sortField"),
873
- sortOrder: toRef(props, "sortOrder") as any,
874
- sortMode: toRef(props, "sortMode") as any,
875
- multiSortMeta: toRef(props, "multiSortMeta") as any,
876
- removableSort: toRef(props, "removableSort"),
877
- onSort: (event) => {
878
- if (event.sortField !== undefined) emit("update:sortField", event.sortField);
879
- if (event.sortOrder !== undefined) emit("update:sortOrder", event.sortOrder);
880
- if (event.multiSortMeta !== undefined) emit("update:multiSortMeta", event.multiSortMeta);
881
- emit("sort", event);
882
- },
883
- });
884
-
885
- // ============================================================================
886
- // Editing Composable
887
- // ============================================================================
888
-
889
- const editing = useTableEditing({
890
- editMode: toRef(props, "editMode") as any,
891
- editingRows: toRef(props, "editingRows") as any,
892
- dataKey: props.dataKey,
893
- getItemKey,
894
- });
895
-
896
- // ============================================================================
897
- // Expansion Composable
898
- // ============================================================================
899
-
900
- const expansion = useTableExpansion({
901
- expandedRows: toRef(props, "expandedRows") as any,
902
- getItemKey,
903
- });
904
-
905
- // Use a regular ref with array of keys for proper reactivity
906
- const expandedKeysArray = ref<string[]>([]);
907
-
908
- // Watch for expansion changes, update local ref and emit
909
- watch(
910
- () => expansion.internalExpandedRows.value,
911
- (newExpanded) => {
912
- // Update array of expanded keys
913
- const newKeys = newExpanded.map((item) => getItemKey(item, 0));
914
-
915
- // Only update if keys actually changed (prevent infinite loop)
916
- const currentKeys = expandedKeysArray.value.join(",");
917
- const newKeysStr = newKeys.join(",");
918
- if (currentKeys !== newKeysStr) {
919
- expandedKeysArray.value = newKeys;
920
- emit("update:expandedRows", newExpanded);
921
- }
922
- },
923
- { deep: true, immediate: true },
924
- );
925
-
926
- // Helper to check if row is expanded
927
- const isRowExpanded = (item: T): boolean => {
928
- const key = getItemKey(item, 0);
929
- return expandedKeysArray.value.includes(key);
930
- };
931
-
932
- // ============================================================================
933
- // Row Grouping Composable
934
- // ============================================================================
935
-
936
- const rowGrouping = useTableRowGrouping({
937
- items: toRef(props, "items") as any,
938
- groupRowsBy: toRef(props, "groupRowsBy") as any,
939
- rowGroupMode: toRef(props, "rowGroupMode") as any,
940
- expandableRowGroups: toRef(props, "expandableRowGroups") as any,
941
- expandedRowGroups: toRef(props, "expandedRowGroups") as any,
942
- onExpandedRowGroupsChange: (groups) => emit("update:expandedRowGroups", groups),
943
- onRowGroupExpand: (event) => emit("rowgroup-expand", event),
944
- onRowGroupCollapse: (event) => emit("rowgroup-collapse", event),
945
- });
946
-
947
- // ============================================================================
948
- // Inline Edit Composable (Row CRUD)
949
- // ============================================================================
950
-
951
- const inlineEdit = useTableInlineEdit({
952
- items: toRef(props, "items") as Ref<T[]>,
953
- rules: props.validationRules as Record<string, (value: unknown, row: T) => string | true> | undefined,
954
- onSave: (changes) => {
955
- emit("edit-save", { changes: changes as EditChange<T>[] });
956
- },
957
- onCancel: () => {
958
- emit("edit-cancel");
959
- },
960
- });
961
-
962
- // Computed for inline editing state (for use in template)
963
- // editMode="inline" makes all editable cells always active (legacy compatibility)
964
- const isInlineEditing = computed(() => inlineEdit.isEditing.value || props.editMode === "inline");
965
-
966
- // Row CRUD handlers
967
- const handleAddRow = (defaults?: Partial<T>) => {
968
- let cancelled = false;
969
- const event = {
970
- defaults: defaults ?? {},
971
- cancel: () => {
972
- cancelled = true;
973
- },
974
- };
975
- emit("row-add", event);
976
- if (!cancelled) {
977
- inlineEdit.addRow(event.defaults as Partial<T>);
978
- }
979
- };
980
-
981
- const handleRemoveRow = (rowIndex: number) => {
982
- if (rowIndex < 0 || rowIndex >= props.items.length) return;
983
- let cancelled = false;
984
- const event = {
985
- data: props.items[rowIndex],
986
- index: rowIndex,
987
- cancel: () => {
988
- cancelled = true;
989
- },
990
- };
991
- emit("row-remove", event);
992
- if (!cancelled) {
993
- inlineEdit.removeRow(rowIndex);
994
- }
995
- };
996
-
997
- // Pagination handler
998
- const handlePaginationClick = (page: number) => {
999
- emit("pagination-click", page);
1000
- };
1001
-
1002
- // ============================================================================
1003
- // Search
1004
- // ============================================================================
1005
-
1006
- const internalSearchValue = ref(props.searchValue ?? "");
1007
- let searchTimer: ReturnType<typeof setTimeout> | null = null;
1008
-
1009
- const handleSearchInput = (value: string) => {
1010
- internalSearchValue.value = value;
1011
- emit("update:searchValue", value);
1012
-
1013
- if (searchTimer) clearTimeout(searchTimer);
1014
- searchTimer = setTimeout(() => {
1015
- emit("search", value);
1016
- }, props.searchDebounce ?? 300);
1017
- };
1018
-
1019
- // Watch for external changes (controlled mode)
1020
- watch(
1021
- () => props.searchValue,
1022
- (newVal) => {
1023
- if (newVal !== undefined && newVal !== internalSearchValue.value) {
1024
- internalSearchValue.value = newVal;
1025
- }
1026
- },
1027
- );
1028
-
1029
- // Infinite scroll handler
1030
- const handleContentScroll = (e: Event) => {
1031
- if (!props.infiniteScroll || props.loading) return;
1032
- const el = e.target as HTMLElement;
1033
- const threshold = props.infiniteScrollDistance ?? 100;
1034
- if (el.scrollHeight - el.scrollTop - el.clientHeight < threshold) {
1035
- emit("load-more");
1036
- }
1037
- };
1038
-
1039
- // Dev warning: totalCount > items.length without pagination
1040
- if (import.meta.env.DEV) {
1041
- watch(
1042
- () => [props.totalCount, props.items.length, props.pagination] as const,
1043
- ([total, length, pagination]) => {
1044
- if (!pagination && total && total > length) {
1045
- console.warn(
1046
- '[VcDataTable] totalCount > items.length but no "pagination" prop provided. ' +
1047
- 'Add :pagination="{ currentPage, pages }" to enable pagination.',
1048
- );
1049
- }
1050
- },
1051
- { immediate: true },
1052
- );
1053
- }
1054
-
1055
- // Add row config
1056
- const showAddRowButton = computed(() => props.addRow?.enabled === true);
1057
- const addRowPosition = computed(() => props.addRow?.position ?? "footer");
1058
- const addRowLabel = computed(() => props.addRow?.label ?? "Add row");
1059
- const addRowIcon = computed(() => props.addRow?.icon ?? "fas fa-plus");
1060
-
1061
- // ============================================================================
1062
- // Row Hover for Actions
1063
- // ============================================================================
1064
- // Note: Row hover state for action visibility is managed by Table.vue's own
1065
- // tableContext provide (selectedRowIndex + setSelectedRowIndex). TableRow.vue
1066
- // calls setSelectedRowIndex on mouseenter/mouseleave, and TableRowActions.vue
1067
- // injects from the same context. No duplicate provide needed here.
1068
-
1069
- // Handlers kept as no-ops to satisfy template bindings from DataTableBody.
1070
- // The actual hover state flows through Table.vue → TableRow → TableRowActions.
1071
- const handleRowMouseEnter = (_index: number) => {};
1072
- const handleRowMouseLeave = () => {};
1073
-
1074
- // ============================================================================
1075
- // Selection Column Detection
1076
- // ============================================================================
1077
-
1078
- const selectionColumn = computed<ColumnInstance | null>(() => {
1079
- // Use visibleColumns which works with slot-based extraction
1080
- return visibleColumns.value.find((col) => col.props.selectionMode !== undefined) || null;
1081
- });
1082
-
1083
- const hasSelectionColumn = computed(() => props.selectionMode !== undefined || selectionColumn.value !== null);
1084
- const effectiveSelectionMode = computed<"single" | "multiple" | undefined>(() => {
1085
- if (props.selectionMode) return props.selectionMode;
1086
- return selectionColumn.value?.props.selectionMode;
1087
- });
1088
- const isSelectionViaColumn = computed(() => selectionColumn.value !== null);
1089
- const computedVariant = computed(() => {
1090
- if (props.striped) return "striped";
1091
- if (props.bordered) return "bordered";
1092
- return props.variant;
1093
- });
1094
-
1095
- // ============================================================================
1096
- // Row Reorder
1097
- // ============================================================================
1098
-
1099
- const rowReorderColumn = computed<ColumnInstance | null>(() => {
1100
- // Use visibleColumns which works with slot-based extraction
1101
- return visibleColumns.value.find((col) => col.props.rowReorder === true) || null;
1102
- });
1103
-
1104
- const isRowReorderEnabled = computed(() => props.reorderableRows || rowReorderColumn.value !== null);
1105
- const showRowDragHandle = computed(() => rowReorderColumn.value !== null);
1106
-
1107
- const itemsRef = toRef(props, "items");
1108
- const {
1109
- draggedRow,
1110
- pendingReorder,
1111
- reorderedItems,
1112
- onRowMouseDown,
1113
- onRowDragStart,
1114
- onRowDragOver,
1115
- onRowDragLeave,
1116
- onRowDragEnd,
1117
- onRowDrop,
1118
- } = useTableRowReorder(itemsRef, (event) => emit("row-reorder", event));
1119
-
1120
- // ============================================================================
1121
- // Expander Column Detection
1122
- // ============================================================================
1123
-
1124
- const expanderColumn = computed<ColumnInstance | null>(() => {
1125
- // Use visibleColumns which works with slot-based extraction
1126
- return visibleColumns.value.find((col) => col.props.expander === true) || null;
1127
- });
1128
-
1129
- const hasExpanderColumn = computed(() => expanderColumn.value !== null);
1130
-
1131
- // ============================================================================
1132
- // Filtering
1133
- // ============================================================================
1134
-
1135
- // Column filter helpers (declarative `filter` prop API)
1136
- const colFilter = useColumnFilter();
1137
-
1138
- const {
1139
- filterValues,
1140
- updateFilter,
1141
- updateRangeFilter,
1142
- clearFilter,
1143
- clearAllFilters,
1144
- buildPayload,
1145
- hasActiveFilters,
1146
- activeFilterCount,
1147
- } = useFilterState({
1148
- onFilterChange: (payload) => {
1149
- emit("filter", { filters: payload, filteredValue: props.items });
1150
- },
1151
- });
1152
-
1153
- provide(FilterContextKey, {
1154
- filterValues,
1155
- updateFilter,
1156
- clearFilter,
1157
- clearAllFilters,
1158
- hasActiveFilters,
1159
- activeFilterCount,
1160
- });
1161
-
1162
- // Template helpers that bridge VcColumn instances → ColumnFilter props
1163
- const showColumnFilter = (col: ColumnInstance): boolean => {
1164
- return colFilter.hasFilter(col.props.filter);
1165
- };
1166
-
1167
- const getColumnFilterField = (col: ColumnInstance): string => {
1168
- return col.props.filterField || colFilter.getFilterField(col.props.id, col.props.filter);
1169
- };
1170
-
1171
- const getColumnFilterType = (col: ColumnInstance) => {
1172
- return colFilter.getFilterType(col.props.filter);
1173
- };
1174
-
1175
- const getColumnFilterOptions = (col: ColumnInstance) => {
1176
- return colFilter.getFilterOptions(col.props.filter);
1177
- };
1178
-
1179
- const isColumnFilterMultiple = (col: ColumnInstance): boolean => {
1180
- return colFilter.isMultipleSelect(col.props.filter);
1181
- };
1182
-
1183
- const getColumnRangeFields = (col: ColumnInstance) => {
1184
- return colFilter.getRangeFields(col.props.filter);
1185
- };
1186
-
1187
- const getColumnFilterValue = (col: ColumnInstance): FilterValue => {
1188
- const field = getColumnFilterField(col);
1189
- // For dateRange, reconstruct { start, end } from range key
1190
- if (getColumnFilterType(col) === "dateRange") {
1191
- const rangeFields = getColumnRangeFields(col);
1192
- if (rangeFields) {
1193
- const key = `__range__${rangeFields[0]}__${rangeFields[1]}`;
1194
- return filterValues.value[key] ?? null;
1195
- }
1196
- }
1197
- return filterValues.value[field] ?? null;
1198
- };
1199
-
1200
- const handleColumnFilterApply = (col: ColumnInstance, payload: Record<string, unknown>) => {
1201
- const filterType = getColumnFilterType(col);
1202
- const field = getColumnFilterField(col);
1203
-
1204
- if (filterType === "dateRange") {
1205
- const rangeFields = getColumnRangeFields(col);
1206
- if (rangeFields) {
1207
- const start = payload[rangeFields[0]] as string | undefined;
1208
- const end = payload[rangeFields[1]] as string | undefined;
1209
- updateRangeFilter(rangeFields, { start, end });
1210
- }
1211
- } else {
1212
- const value = payload[field];
1213
- updateFilter(field, value as FilterValue);
1214
- }
1215
-
1216
- // Emit combined payload
1217
- emitFilterPayload();
1218
- };
1219
-
1220
- const handleColumnFilterClear = (col: ColumnInstance) => {
1221
- const field = getColumnFilterField(col);
1222
- const filterType = getColumnFilterType(col);
1223
-
1224
- if (filterType === "dateRange") {
1225
- const rangeFields = getColumnRangeFields(col);
1226
- if (rangeFields) {
1227
- const key = `__range__${rangeFields[0]}__${rangeFields[1]}`;
1228
- clearFilter(key);
1229
- }
1230
- } else {
1231
- clearFilter(field);
1232
- }
1233
-
1234
- // Emit combined payload
1235
- emitFilterPayload();
1236
- };
1237
-
1238
- /** Emit the combined column + global filter payload */
1239
- const emitFilterPayload = () => {
1240
- const payload = buildPayload();
1241
- // Merge global filter payload (if any)
1242
- if (globalFilterPayload.value) {
1243
- Object.assign(payload, globalFilterPayload.value);
1244
- }
1245
- emit("filter", { filters: payload, filteredValue: props.items });
1246
- };
1247
-
1248
- // Global filter state
1249
- const globalFilterPayload = ref<Record<string, unknown> | null>(null);
1250
- const showGlobalFiltersPanel = ref(false);
1251
- const globalFilterValues = ref<Record<string, unknown>>({});
1252
- const globalFiltersButtonRef = ref<InstanceType<typeof GlobalFiltersButton> | null>(null);
1253
-
1254
- // Computed: get the raw element from the component ref for anchor positioning
1255
- const globalFiltersButtonEl = computed<HTMLElement | null>(() => {
1256
- return (globalFiltersButtonRef.value as unknown as { $el?: HTMLElement })?.$el ?? null;
1257
- });
1258
-
1259
- // Column switcher state
1260
- const showColumnSwitcherPanel = ref(false);
1261
- const dataTableHeaderRef = ref<InstanceType<typeof DataTableHeader> | null>(null);
1262
-
1263
- const columnSwitcherButtonEl = computed<HTMLElement | null>(() => {
1264
- return dataTableHeaderRef.value?.columnSwitcherEl ?? null;
1265
- });
1266
-
1267
- // Computed: count of active global filters
1268
- const globalActiveFilterCount = computed(() => {
1269
- let count = 0;
1270
- for (const val of Object.values(globalFilterValues.value)) {
1271
- if (val === null || val === undefined || val === "") continue;
1272
- if (Array.isArray(val) && val.length === 0) continue;
1273
- if (typeof val === "object" && !Array.isArray(val)) {
1274
- const range = val as { start?: string; end?: string };
1275
- if (range.start || range.end) count++;
1276
- continue;
1277
- }
1278
- count++;
1279
- }
1280
- return count;
1281
- });
1282
-
1283
- const handleGlobalFilterApply = (payload: Record<string, unknown>) => {
1284
- globalFilterPayload.value = payload;
1285
- emitFilterPayload();
1286
- };
1287
-
1288
- const handleGlobalFilterClear = () => {
1289
- globalFilterPayload.value = null;
1290
- globalFilterValues.value = {};
1291
- emitFilterPayload();
1292
- };
1293
-
1294
- // ============================================================================
1295
- // Display Items
1296
- // ============================================================================
1297
-
1298
- // Display items: items come pre-filtered from the backend
1299
- // Only row-reorder dragging changes display order locally
1300
- const displayItems = computed<T[]>(() => {
1301
- // During drag or waiting for parent to update items after drop
1302
- if ((draggedRow.value !== undefined || pendingReorder.value) && isRowReorderEnabled.value) {
1303
- return [...(reorderedItems.value as T[])];
1304
- }
1305
-
1306
- return props.items ?? [];
1307
- });
1308
-
1309
- // Helper to get global index of an item (for grouped mode)
1310
- const getGlobalIndex = (item: T): number => {
1311
- return displayItems.value.indexOf(item);
1312
- };
1313
-
1314
- // ============================================================================
1315
- // Column Helpers (via composable)
1316
- // ============================================================================
1317
-
1318
- const cols = useTableColumns({
1319
- visibleColumns,
1320
- resizableColumns: props.resizableColumns,
1321
- reorderableColumns: props.reorderableColumns,
1322
- hasSelectionColumn,
1323
- isSelectionViaColumn,
1324
- });
1325
-
1326
- // Provide hasFlexColumns for TableRow filler control
1327
- provide(HasFlexColumnsKey, cols.hasFlexColumns);
1328
-
1329
- // ============================================================================
1330
- // Column Switcher
1331
- // ============================================================================
1332
-
1333
- // Stable set of data-discovered column IDs.
1334
- // Uses a string key watcher so the Set is only re-created when actual IDs change
1335
- // (avoids false triggers from new array references in the computed source).
1336
- const dataDiscoveredIds = ref<Set<string>>(new Set());
1337
- watch(
1338
- () => dataDiscoveredColumns.value.map((c) => c.props.id).join(","),
1339
- () => {
1340
- dataDiscoveredIds.value = new Set(dataDiscoveredColumns.value.map((c) => c.props.id));
1341
- },
1342
- { immediate: true },
1343
- );
1344
-
1345
- const switcherColumns = computed(() => {
1346
- // Declared columns (excluding statically hidden and special columns)
1347
- const declared = declaredColumns.value
1348
- .filter((col) => col.props.visible !== false)
1349
- .filter((col) => !cols.isSpecialColumn(col.props))
1350
- .map((col) => ({
1351
- id: col.props.id,
1352
- label: col.props.title || col.props.field || col.props.id,
1353
- visible: !hiddenColumnIds.value.has(col.props.id),
1354
- defaultVisible: true,
1355
- }));
1356
-
1357
- // Data-discovered columns (from items keys, default hidden)
1358
- const discovered = dataDiscoveredColumns.value.map((col) => ({
1359
- id: col.props.id,
1360
- label: col.props.title || col.props.id,
1361
- visible: !hiddenColumnIds.value.has(col.props.id),
1362
- defaultVisible: false,
1363
- }));
1364
-
1365
- return [...declared, ...discovered];
1366
- });
1367
-
1368
- const switcherVisibleColumnIds = computed(() => {
1369
- return switcherColumns.value.filter((c) => c.visible).map((c) => c.id);
1370
- });
1371
-
1372
- // ============================================================================
1373
- // State Persistence
1374
- // ============================================================================
1375
-
1376
- const statePersistence = useDataTableState({
1377
- stateKey: toRef(props, "stateKey"),
1378
- stateStorage: computed(() => props.stateStorage ?? "local"),
1379
- columnWidths: cols.columnWidths,
1380
- hiddenColumnIds,
1381
- shownColumnIds: shownDataDiscoveredColumnIds,
1382
- onStateSave: (state) => emit("state-save", state),
1383
- onStateRestore: (state) => emit("state-restore", state),
1384
- });
1385
-
1386
- // Initialize hiddenColumnIds with data-discovered columns (they start hidden).
1387
- // Keep hidden IDs for columns that temporarily disappear between different
1388
- // datasets/views (e.g. products vs catalog). This preserves per-view visibility.
1389
- watch(
1390
- dataDiscoveredIds,
1391
- (newIds, oldIds) => {
1392
- const updatedHidden = new Set(hiddenColumnIds.value);
1393
- const updatedShown = new Set(shownDataDiscoveredColumnIds.value);
1394
- let hiddenChanged = false;
1395
- let shownChanged = false;
1396
-
1397
- // Newly discovered auto columns are hidden by default, unless user
1398
- // explicitly enabled them earlier (persisted in shownDataDiscoveredColumnIds).
1399
- for (const id of newIds) {
1400
- if ((!oldIds || !oldIds.has(id)) && !updatedHidden.has(id) && !updatedShown.has(id)) {
1401
- updatedHidden.add(id);
1402
- hiddenChanged = true;
1403
- }
1404
- }
1405
-
1406
- // If a key becomes a declared column (no longer auto-discovered), drop it
1407
- // from auto-column state sets. Do not remove IDs that simply disappeared
1408
- // due to switching datasets/views.
1409
- if (oldIds) {
1410
- const declaredIds = new Set(declaredColumns.value.map((col) => col.props.id));
1411
- for (const id of oldIds) {
1412
- if (!newIds.has(id) && declaredIds.has(id)) {
1413
- if (updatedHidden.delete(id)) {
1414
- hiddenChanged = true;
1415
- }
1416
- if (updatedShown.delete(id)) {
1417
- shownChanged = true;
1418
- }
1419
- }
1420
- }
1421
- }
1422
-
1423
- if (hiddenChanged) {
1424
- hiddenColumnIds.value = updatedHidden;
1425
- }
1426
- if (shownChanged) {
1427
- shownDataDiscoveredColumnIds.value = updatedShown;
1428
- }
1429
- },
1430
- { immediate: true },
1431
- );
1432
-
1433
- const handleColumnVisibilityChange = (visibleIds: string[]) => {
1434
- const visibleSet = new Set(visibleIds);
1435
- const allToggleableIds = switcherColumns.value.map((c) => c.id);
1436
- const discoveredToggleableIds = switcherColumns.value.filter((c) => c.defaultVisible === false).map((c) => c.id);
1437
-
1438
- // Preserve hidden IDs that are not part of the current switcher view.
1439
- // This prevents losing hidden preferences when switching datasets/views.
1440
- const toggleableSet = new Set(allToggleableIds);
1441
- const discoveredSet = new Set(discoveredToggleableIds);
1442
- const newHidden = new Set<string>([...hiddenColumnIds.value].filter((id) => !toggleableSet.has(id)));
1443
- const newShown = new Set<string>([...shownDataDiscoveredColumnIds.value].filter((id) => !discoveredSet.has(id)));
1444
-
1445
- for (const id of allToggleableIds) {
1446
- if (!visibleSet.has(id)) {
1447
- newHidden.add(id);
1448
- }
1449
- }
1450
-
1451
- for (const id of discoveredToggleableIds) {
1452
- if (visibleSet.has(id)) {
1453
- newShown.add(id);
1454
- }
1455
- }
1456
-
1457
- hiddenColumnIds.value = newHidden;
1458
- shownDataDiscoveredColumnIds.value = newShown;
1459
- };
1460
-
1461
- // Safe columns getter with null-check protection for template iteration
1462
- const safeColumns = computed(() => {
1463
- return cols.orderedVisibleColumns.value.filter(
1464
- (col): col is ColumnInstance => col != null && col.props != null && col.props.id != null,
1465
- );
1466
- });
1467
-
1468
- // ============================================================================
1469
- // Row Props Builder (for DataTableRow component)
1470
- // ============================================================================
1471
-
1472
- /**
1473
- * Builds the props object for DataTableRow component.
1474
- * This centralizes all row-related prop computation in one place.
1475
- */
1476
- const getRowProps = (item: T, index: number) => ({
1477
- item,
1478
- index,
1479
- columns: safeColumns.value,
1480
-
1481
- // Selection
1482
- isSelected: selection.isSelected(item),
1483
- isActive: props.activeItemId != null && getItemKey(item, index) === String(props.activeItemId),
1484
- isSelectable: selection.canSelect(item),
1485
- selectionMode: effectiveSelectionMode.value,
1486
- showSelectionCell: hasSelectionColumn.value && !isSelectionViaColumn.value,
1487
-
1488
- // Reorder
1489
- reorderable: isRowReorderEnabled.value,
1490
- showDragHandle: showRowDragHandle.value,
1491
- isDragging: draggedRow.value === index,
1492
-
1493
- // Expansion
1494
- expandable: hasExpanderColumn.value,
1495
- isExpanded: isRowExpanded(item),
1496
- expandedIcon: props.expandedRowIcon,
1497
- collapsedIcon: props.collapsedRowIcon,
1498
-
1499
- // Editing
1500
- editingRowData: editing.getEditingRowData(item, index),
1501
- isRowEditing: editing.isRowEditing(item),
1502
- isInlineEditing: isInlineEditing.value,
1503
- isCellEditing: editing.isCellEditing,
1504
-
1505
- // Actions
1506
- hasActions: !!props.rowActions,
1507
-
1508
- // Column helpers
1509
- getColumnWidth: cols.getEffectiveColumnWidth,
1510
- getCellAlign: cols.getCellAlign,
1511
- getCellStyle: cols.getCellStyle,
1512
-
1513
- // Custom class
1514
- rowClass: [{ "vc-data-table__row--dragging": draggedRow.value === index }, props.rowClass?.(item)],
1515
- });
1516
-
1517
- const { handleResizeStart } = useTableColumnsResize({
1518
- columns: cols.columnWidths,
1519
- minColumnWidth: 60,
1520
- getColumnElement: (id) => cols.headerRefs.get(id) ?? null,
1521
- getAllColumnElements: (id) => {
1522
- if (!tableContainerRef.value) return null;
1523
- return tableContainerRef.value.querySelectorAll(`[data-column-id="${id}"]`);
1524
- },
1525
- onResizeEnd: (colsData) => emit("column-resize-end", { columns: colsData }),
1526
- });
1527
-
1528
- const {
1529
- isDragging: isColumnReordering,
1530
- handleDragStart: handleColumnDragStart,
1531
- handleDragOver: handleColumnDragOver,
1532
- handleDrop: handleColumnDrop,
1533
- } = useTableColumnsReorder({
1534
- columns: cols.columnWidths,
1535
- onReorderEnd: (colsData) => emit("column-reorder", { columns: colsData }),
1536
- });
1537
-
1538
- // Provide column reordering state so TableRow enables FLIP animation only during drag
1539
- provide(IsColumnReorderingKey, isColumnReordering);
1540
-
1541
- // ============================================================================
1542
- // Event Handlers
1543
- // ============================================================================
1544
-
1545
- const handleSort = (col: VcColumnProps, event?: MouseEvent) => {
1546
- sort.handleSort(cols.getSortField(col), event);
1547
- };
1548
-
1549
- const handleSelectAllChange = (value: boolean) => {
1550
- const result = selection.handleSelectAllChange(value);
1551
- if (value) emit("row-select-all", result);
1552
- else emit("row-unselect-all", result);
1553
- emit("update:selectAll", value);
1554
- };
1555
-
1556
- const handleRowSelectionChange = (item: T, eventOrValue?: Event | boolean) => {
1557
- const wasSelected = selection.isSelected(item);
1558
- const result = selection.handleRowSelectionChange(item, eventOrValue);
1559
- if (result) {
1560
- if (wasSelected) emit("row-unselect", result);
1561
- else emit("row-select", result);
1562
- }
1563
- };
1564
-
1565
- const handleRowClick = (item: T, index: number, event: Event) => {
1566
- const itemKey = getItemKey(item, index);
1567
- const isSameItem = props.activeItemId != null && itemKey === String(props.activeItemId);
1568
- emit("update:activeItemId", isSameItem ? undefined : itemKey);
1569
- emit("row-click", { data: item, index, originalEvent: event });
1570
- const target = event.target as HTMLElement;
1571
- const isCheckboxClick = target.tagName === "INPUT" && target.getAttribute("type") === "checkbox";
1572
- if (effectiveSelectionMode.value === "single" && !isCheckboxClick) {
1573
- handleRowSelectionChange(item, event);
1574
- }
1575
- };
1576
-
1577
- const handleCellClick = (item: T, field: string, rowIndex: number, col: ColumnInstance) => {
1578
- if (
1579
- props.editMode === "cell" &&
1580
- (col.slots.editor || col.props.editable) &&
1581
- !editing.isCellEditing(rowIndex, field)
1582
- ) {
1583
- const event = editing.startCellEdit(item, field, rowIndex);
1584
- emit("cell-edit-init", event);
1585
- }
1586
- };
1587
-
1588
- const handleCellEditComplete = (item: T, field: string, rowIndex: number, newValue: unknown) => {
1589
- // Close the editor and emit the event
1590
- // This is called from focusout on the editor wrapper or Enter key
1591
- const event = editing.completeCellEdit(item, field, rowIndex, newValue);
1592
- emit("cell-edit-complete", { data: item, field, newValue: event.newValue, index: rowIndex });
1593
-
1594
- // If inline editing is active, also update the inlineEdit composable
1595
- if (inlineEdit.isEditing.value) {
1596
- inlineEdit.updateCell(rowIndex, field, newValue);
1597
- }
1598
- };
1599
-
1600
- const handleCellEditCancel = (item: T, field: string, rowIndex: number) => {
1601
- // Cancel editing - discard changes
1602
- editing.cancelCellEdit(item, field, rowIndex);
1603
- emit("cell-edit-cancel", { data: item, field, index: rowIndex });
1604
- };
1605
-
1606
- /**
1607
- * Handle cell value change during editing (for inline edit dirty tracking).
1608
- * Called on every keystroke/input change, not just on blur.
1609
- */
1610
- const handleCellValueChange = (field: string, rowIndex: number, newValue: unknown) => {
1611
- // If inline editing is active, update the inlineEdit composable immediately
1612
- if (inlineEdit.isEditing.value) {
1613
- inlineEdit.updateCell(rowIndex, field, newValue);
1614
- }
1615
- };
1616
-
1617
- const handleExpandToggle = (item: T, index: number, event: Event) => {
1618
- const wasExpanded = expansion.isRowExpanded(item, index);
1619
- const result = expansion.toggleRowExpansion(item, index, event);
1620
- if (wasExpanded) emit("row-collapse", result);
1621
- else emit("row-expand", result);
1622
- };
1623
-
1624
- const handleStartRowEdit = (item: T, index: number) => {
1625
- const event = editing.startRowEdit(item, index);
1626
- emit("update:editingRows", editing.internalEditingRows.value);
1627
- emit("row-edit-init", event);
1628
- };
1629
-
1630
- const handleSaveRowEdit = (item: T, index: number) => {
1631
- const event = editing.saveRowEdit(item, index);
1632
- emit("update:editingRows", editing.internalEditingRows.value);
1633
- emit("row-edit-save", event);
1634
- };
1635
-
1636
- const handleCancelRowEdit = (item: T, index: number) => {
1637
- const event = editing.cancelRowEdit(item, index);
1638
- emit("update:editingRows", editing.internalEditingRows.value);
1639
- emit("row-edit-cancel", event);
1640
- };
1641
-
1642
- const handleRowAction = (action: TableAction, item: T, index: number) => {
1643
- // Call the action's click handler with item and index (matching legacy vc-table behavior)
1644
- action.clickHandler?.(item, index);
1645
- emit("row-action", { action, item, index });
1646
- };
1647
-
1648
- // ============================================================================
1649
- // Mobile View Event Handlers
1650
- // ============================================================================
1651
-
1652
- const handleMobileRowClick = (item: T, index: number) => {
1653
- emit("row-click", { data: item, index, originalEvent: new Event("click") });
1654
- };
1655
-
1656
- const handleMobileRowSelect = (item: T, index: number) => {
1657
- handleRowSelectionChange(item);
1658
- };
1659
-
1660
- const handleMobileRowAction = (action: MobileSwipeAction<T>, item: T, index: number) => {
1661
- // Execute the action's click handler if provided
1662
- if (action.clickHandler) {
1663
- action.clickHandler(item, index);
1664
- }
1665
- // Also emit the row-action event for parent components
1666
- emit("row-action", { action, item, index });
1667
- };
1668
-
1669
- // ============================================================================
1670
- // Refs & Lifecycle
1671
- // ============================================================================
1672
-
1673
- const tableRootRef = ref<HTMLElement | null>(null);
1674
- const tableContainerRef = ref<HTMLElement | null>(null);
1675
- const paginationRef = ref<HTMLElement | null>(null);
1676
-
1677
- // ============================================================================
1678
- // Adaptive Pagination
1679
- // ============================================================================
1680
-
1681
- const { width: paginationWidth } = useElementSize(paginationRef);
1682
-
1683
- /** Pagination item width (29px) + gap (8px) = 37px per button */
1684
- const PAGINATION_ITEM_SLOT = 37;
1685
- /** Approximate width of the page-info text + padding */
1686
- const PAGINATION_BASE_WIDTH = 140;
1687
-
1688
- const paginationMaxPages = computed(() => {
1689
- if (!props.pagination || paginationWidth.value === 0) return 5;
1690
- const available = paginationWidth.value - PAGINATION_BASE_WIDTH;
1691
- // prev + next buttons always shown = 2 slots
1692
- const slotsForPages = Math.floor((available - 2 * PAGINATION_ITEM_SLOT) / PAGINATION_ITEM_SLOT);
1693
- if (slotsForPages >= 7) return 5; // enough room for 5 pages + first/last
1694
- if (slotsForPages >= 3) return slotsForPages;
1695
- return 0;
1696
- });
1697
-
1698
- const paginationShowFirstLast = computed(() => {
1699
- if (!props.pagination || paginationWidth.value === 0) return true;
1700
- const available = paginationWidth.value - PAGINATION_BASE_WIDTH;
1701
- // Need room for: first + prev + at least 1 page + next + last = 5 slots minimum
1702
- return available >= 5 * PAGINATION_ITEM_SLOT;
1703
- });
1704
-
1705
- // Note: Click-outside handling is done via focusout on the editor wrapper in DataTableCellRenderer.
1706
- // No need for a separate mousedown listener - focusout covers all cases.
1707
-
1708
- // ============================================================================
1709
- // Expose API
1710
- // ============================================================================
1711
-
1712
- defineExpose({
1713
- // Selection API
1714
- selectAll: selection.selectAll,
1715
- clearSelection: selection.clearSelection,
1716
- getSelectionState: selection.getSelectionState,
1717
- isSelectAllActive: selection.isSelectAllActive,
1718
- showSelectAllChoice: selection.showSelectAllChoice,
1719
- selectionInfo: selection.selectionInfo,
1720
-
1721
- // Row CRUD API
1722
- addRow: handleAddRow,
1723
- removeRow: handleRemoveRow,
1724
-
1725
- // Inline editing API
1726
- startEditing: inlineEdit.startEditing,
1727
- cancelEditing: inlineEdit.cancelEditing,
1728
- saveChanges: inlineEdit.saveChanges,
1729
- isEditing: inlineEdit.isEditing,
1730
- isValid: inlineEdit.isValid,
1731
- isDirty: inlineEdit.isDirty,
1732
- getCellError: inlineEdit.getCellError,
1733
- pendingChanges: inlineEdit.pendingChanges,
1734
-
1735
- // State persistence API
1736
- clearState: statePersistence.clearState,
1737
- saveState: statePersistence.saveState,
1738
- });
1739
-
1740
- onBeforeUnmount(() => {
1741
- columnCollector.clear();
1742
- if (searchTimer) clearTimeout(searchTimer);
1743
- });
1744
- </script>
1745
-
1746
- <style lang="scss">
1747
- // Table CSS variables are defined in Table.vue on .vc-table-composition.
1748
- // No :root fallback needed — all sub-components render inside <Table>.
1749
- .vc-data-table {
1750
- // Note: overflow-visible allows absolutely positioned elements like row actions
1751
- // to escape the container bounds. The inner __content element handles scrolling.
1752
- @apply tw-relative tw-flex tw-flex-col tw-grow tw-basis-0 tw-flex-auto tw-h-full tw-overflow-visible;
1753
-
1754
- &__header {
1755
- @apply tw-flex-shrink-0 tw-px-4 tw-py-2;
1756
- }
1757
-
1758
- &__content {
1759
- // flex-basis: 0 (tw-basis-0) is critical: with `auto` basis the element sizes to content
1760
- // first, so overflow-y never activates on mobile touch devices.
1761
- // basis-0 forces height from flex allocation → content overflows → scroll works.
1762
- @apply tw-relative tw-box-border tw-w-full tw-flex tw-flex-col tw-grow tw-shrink tw-min-h-0;
1763
- // Vertical scroll only — horizontal overflow is hidden to prevent scrollbar flash
1764
- // during animated container resize (blade expand/collapse).
1765
- // Columns use flex-shrink to fit within available width.
1766
- overflow-x: hidden;
1767
- overflow-y: auto;
1768
- // Enable momentum scrolling on iOS
1769
- -webkit-overflow-scrolling: touch;
1770
- }
1771
-
1772
- &__loading {
1773
- @apply tw-flex tw-items-center tw-justify-center tw-p-8 tw-text-neutrals-500;
1774
- }
1775
-
1776
- // Hide spinner overlay when skeleton is showing (initial load)
1777
- &--skeleton-active .vc-loading-overlay {
1778
- display: none !important;
1779
- }
1780
-
1781
- &__row--dragging {
1782
- @apply tw-opacity-50;
1783
- }
1784
-
1785
- &__expansion-row {
1786
- @apply tw-bg-neutrals-50 tw-w-full tw-border-b tw-border-[color:var(--table-border-color)];
1787
- }
1788
-
1789
- &__expansion-content {
1790
- @apply tw-p-4;
1791
- }
1792
-
1793
- &__global-filters {
1794
- @apply tw-flex tw-items-center tw-px-3 tw-py-2;
1795
- border-bottom: 1px solid var(--table-border-color, #e5e7eb);
1796
- }
1797
-
1798
- &__header-content {
1799
- @apply tw-flex tw-items-center tw-justify-between tw-gap-2 tw-w-full;
1800
- }
1801
-
1802
- &__header-title {
1803
- @apply tw-flex-1 tw-truncate;
1804
- }
1805
-
1806
- &__group-label {
1807
- @apply tw-font-semibold tw-text-sm;
1808
- color: var(--neutrals-900);
1809
- }
1810
-
1811
- &__group-count {
1812
- @apply tw-text-sm tw-ml-2;
1813
- color: var(--neutrals-500);
1814
- }
1815
-
1816
- &__group-footer {
1817
- @apply tw-bg-neutrals-50 tw-px-4 tw-py-2 tw-border-b;
1818
- border-color: var(--table-border-color);
1819
- font-size: 0.875rem;
1820
- color: var(--neutrals-600);
1821
- }
1822
-
1823
- &__rows-container {
1824
- @apply tw-flex tw-flex-col;
1825
- }
1826
-
1827
- &__selection-cell {
1828
- text-align: center;
1829
- justify-content: center;
1830
- min-width: 40px;
1831
- max-width: 40px;
1832
- width: 40px;
1833
- }
1834
-
1835
- &__pagination {
1836
- @apply tw-flex-shrink-0 tw-flex tw-justify-between tw-items-center tw-px-4 tw-py-[11px] tw-border-t;
1837
- border-color: var(--table-border-color, var(--neutrals-200));
1838
- }
1839
-
1840
- &__page-info {
1841
- @apply tw-text-sm;
1842
- color: var(--neutrals-600);
1843
- }
1844
- }
1845
-
1846
- /* FLIP move animation for row reorder */
1847
- .vc-table-row-swap-move {
1848
- transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;
1849
- }
1850
-
1851
- /* Disable transitions on enter/leave so only moves animate */
1852
- .vc-table-row-swap-enter-active,
1853
- .vc-table-row-swap-leave-active {
1854
- transition: none !important;
1855
- }
1856
- </style>