@vc-shell/framework 1.0.327 → 1.1.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 (272) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/core/types/index.ts +4 -8
  3. package/dist/core/types/index.d.ts +5 -8
  4. package/dist/core/types/index.d.ts.map +1 -1
  5. package/dist/framework.js +231 -218
  6. package/dist/{index-YPa3sZmi.js → index-6afjoxl_.js} +1 -1
  7. package/dist/{index-B0gk_mcS.js → index-BbQdOYmi.js} +1 -1
  8. package/dist/{index-CJmhp9vS.js → index-BrkL9UJR.js} +1 -1
  9. package/dist/{index-CgCz4CyH.js → index-BrmiwSoL.js} +1 -1
  10. package/dist/{index-D2jOZZjY.js → index-C2fcXLd3.js} +1 -1
  11. package/dist/{index-F3Hq-uIf.js → index-CUGEM4hi.js} +1 -1
  12. package/dist/{index-DAPeO06N.js → index-D0rhsYYW.js} +1 -1
  13. package/dist/{index-cnzEckQv.js → index-D8jMD-EZ.js} +1 -1
  14. package/dist/{index-iKZHcZzW.js → index-DQP89JB7.js} +1 -1
  15. package/dist/{index-BzXuUqVu.js → index-DaD28rcu.js} +1 -1
  16. package/dist/{index-uJMg_eoD.js → index-Df8tA8qI.js} +1 -1
  17. package/dist/{index-sB8jPoQD.js → index-Dg25Tarq.js} +1 -1
  18. package/dist/{index-KsWKxMp0.js → index-DrL4GDih.js} +1 -1
  19. package/dist/{index-CimbhNJz.js → index-DrxadmGH.js} +1 -1
  20. package/dist/{index-52C01JSh.js → index-DulPT6l3.js} +1 -1
  21. package/dist/{index-C8ZFV-LP.js → index-Y1Vd-H3g.js} +34754 -34242
  22. package/dist/{index-Dr0Jm59E.js → index-lQO4lsVu.js} +1 -1
  23. package/dist/index.css +1 -1
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/locales/en.json +1 -0
  27. package/dist/shared/components/app-bar-button/app-bar-button.vue.d.ts.map +1 -1
  28. package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +1 -1
  29. package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +1 -1
  30. package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts +15 -1
  31. package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +1 -1
  32. package/dist/shared/components/generic-dropdown/generic-dropdown.vue.d.ts +110 -0
  33. package/dist/shared/components/generic-dropdown/generic-dropdown.vue.d.ts.map +1 -0
  34. package/dist/shared/components/generic-dropdown/index.d.ts +2 -0
  35. package/dist/shared/components/generic-dropdown/index.d.ts.map +1 -0
  36. package/dist/shared/components/index.d.ts +2 -0
  37. package/dist/shared/components/index.d.ts.map +1 -1
  38. package/dist/shared/components/language-selector/language-selector.vue.d.ts.map +1 -1
  39. package/dist/shared/components/menu-item/index.d.ts +2 -0
  40. package/dist/shared/components/menu-item/index.d.ts.map +1 -0
  41. package/dist/shared/components/menu-item/menu-item.vue.d.ts +57 -0
  42. package/dist/shared/components/menu-item/menu-item.vue.d.ts.map +1 -0
  43. package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts.map +1 -1
  44. package/dist/shared/components/notification-template/index.d.ts +0 -6
  45. package/dist/shared/components/notification-template/index.d.ts.map +1 -1
  46. package/dist/shared/components/notification-template/notification-template.vue.d.ts +2 -2
  47. package/dist/shared/components/notification-template/notification-template.vue.d.ts.map +1 -1
  48. package/dist/shared/components/sidebar/sidebar.vue.d.ts +1 -0
  49. package/dist/shared/components/sidebar/sidebar.vue.d.ts.map +1 -1
  50. package/dist/shared/components/theme-selector/theme-selector.vue.d.ts.map +1 -1
  51. package/dist/shared/components/user-dropdown-button/_internal/user-actions.vue.d.ts +21 -0
  52. package/dist/shared/components/user-dropdown-button/_internal/user-actions.vue.d.ts.map +1 -0
  53. package/dist/shared/components/user-dropdown-button/_internal/user-info.vue.d.ts +17 -0
  54. package/dist/shared/components/user-dropdown-button/_internal/user-info.vue.d.ts.map +1 -0
  55. package/dist/shared/components/user-dropdown-button/_internal/user-sidebar.vue.d.ts +25 -0
  56. package/dist/shared/components/user-dropdown-button/_internal/user-sidebar.vue.d.ts.map +1 -0
  57. package/dist/shared/components/user-dropdown-button/composables/useUserActions.d.ts +3921 -0
  58. package/dist/shared/components/user-dropdown-button/composables/useUserActions.d.ts.map +1 -0
  59. package/dist/shared/components/user-dropdown-button/index.d.ts +5 -5
  60. package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts +4 -4
  61. package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
  62. package/dist/shared/modules/dynamic/components/fields/Button.d.ts +0 -6
  63. package/dist/shared/modules/dynamic/components/fields/Button.d.ts.map +1 -1
  64. package/dist/shared/modules/dynamic/components/fields/Card.d.ts +0 -6
  65. package/dist/shared/modules/dynamic/components/fields/Card.d.ts.map +1 -1
  66. package/dist/shared/modules/dynamic/components/fields/Checkbox.d.ts +0 -6
  67. package/dist/shared/modules/dynamic/components/fields/Checkbox.d.ts.map +1 -1
  68. package/dist/shared/modules/dynamic/components/fields/ContentField.d.ts +0 -6
  69. package/dist/shared/modules/dynamic/components/fields/ContentField.d.ts.map +1 -1
  70. package/dist/shared/modules/dynamic/components/fields/CustomComponent.d.ts +0 -6
  71. package/dist/shared/modules/dynamic/components/fields/CustomComponent.d.ts.map +1 -1
  72. package/dist/shared/modules/dynamic/components/fields/DynamicProperty.d.ts +0 -6
  73. package/dist/shared/modules/dynamic/components/fields/DynamicProperty.d.ts.map +1 -1
  74. package/dist/shared/modules/dynamic/components/fields/EditorField.d.ts +0 -6
  75. package/dist/shared/modules/dynamic/components/fields/EditorField.d.ts.map +1 -1
  76. package/dist/shared/modules/dynamic/components/fields/Fieldset.d.ts +0 -6
  77. package/dist/shared/modules/dynamic/components/fields/Fieldset.d.ts.map +1 -1
  78. package/dist/shared/modules/dynamic/components/fields/GalleryField.d.ts +0 -6
  79. package/dist/shared/modules/dynamic/components/fields/GalleryField.d.ts.map +1 -1
  80. package/dist/shared/modules/dynamic/components/fields/ImageField.d.ts +0 -6
  81. package/dist/shared/modules/dynamic/components/fields/ImageField.d.ts.map +1 -1
  82. package/dist/shared/modules/dynamic/components/fields/InputCurrency.d.ts +0 -6
  83. package/dist/shared/modules/dynamic/components/fields/InputCurrency.d.ts.map +1 -1
  84. package/dist/shared/modules/dynamic/components/fields/InputField.d.ts +0 -6
  85. package/dist/shared/modules/dynamic/components/fields/InputField.d.ts.map +1 -1
  86. package/dist/shared/modules/dynamic/components/fields/MultivalueField.d.ts +0 -6
  87. package/dist/shared/modules/dynamic/components/fields/MultivalueField.d.ts.map +1 -1
  88. package/dist/shared/modules/dynamic/components/fields/RadioButtonGroup.d.ts +0 -6
  89. package/dist/shared/modules/dynamic/components/fields/RadioButtonGroup.d.ts.map +1 -1
  90. package/dist/shared/modules/dynamic/components/fields/RatingField.d.ts +0 -6
  91. package/dist/shared/modules/dynamic/components/fields/RatingField.d.ts.map +1 -1
  92. package/dist/shared/modules/dynamic/components/fields/SelectField.d.ts +0 -6
  93. package/dist/shared/modules/dynamic/components/fields/SelectField.d.ts.map +1 -1
  94. package/dist/shared/modules/dynamic/components/fields/StatusField.d.ts +0 -6
  95. package/dist/shared/modules/dynamic/components/fields/StatusField.d.ts.map +1 -1
  96. package/dist/shared/modules/dynamic/components/fields/SwitchField.d.ts +0 -6
  97. package/dist/shared/modules/dynamic/components/fields/SwitchField.d.ts.map +1 -1
  98. package/dist/shared/modules/dynamic/components/fields/Table.d.ts +0 -6
  99. package/dist/shared/modules/dynamic/components/fields/Table.d.ts.map +1 -1
  100. package/dist/shared/modules/dynamic/components/fields/TextareaField.d.ts +0 -6
  101. package/dist/shared/modules/dynamic/components/fields/TextareaField.d.ts.map +1 -1
  102. package/dist/shared/modules/dynamic/components/fields/VideoField.d.ts +0 -6
  103. package/dist/shared/modules/dynamic/components/fields/VideoField.d.ts.map +1 -1
  104. package/dist/shared/modules/dynamic/components/fields/props.d.ts +0 -6
  105. package/dist/shared/modules/dynamic/components/fields/props.d.ts.map +1 -1
  106. package/dist/shared/modules/dynamic/components/fields/storybook/Button.stories.d.ts +0 -18
  107. package/dist/shared/modules/dynamic/components/fields/storybook/Button.stories.d.ts.map +1 -1
  108. package/dist/shared/modules/dynamic/components/fields/storybook/Card.stories.d.ts +0 -18
  109. package/dist/shared/modules/dynamic/components/fields/storybook/Card.stories.d.ts.map +1 -1
  110. package/dist/shared/modules/dynamic/components/fields/storybook/Checkbox.stories.d.ts +0 -18
  111. package/dist/shared/modules/dynamic/components/fields/storybook/Checkbox.stories.d.ts.map +1 -1
  112. package/dist/shared/modules/dynamic/components/fields/storybook/ContentField.stories.d.ts +0 -18
  113. package/dist/shared/modules/dynamic/components/fields/storybook/ContentField.stories.d.ts.map +1 -1
  114. package/dist/shared/modules/dynamic/components/fields/storybook/EditorField.stories.d.ts +0 -18
  115. package/dist/shared/modules/dynamic/components/fields/storybook/EditorField.stories.d.ts.map +1 -1
  116. package/dist/shared/modules/dynamic/components/fields/storybook/Fieldset.stories.d.ts +0 -18
  117. package/dist/shared/modules/dynamic/components/fields/storybook/Fieldset.stories.d.ts.map +1 -1
  118. package/dist/shared/modules/dynamic/components/fields/storybook/GalleryField.stories.d.ts +0 -18
  119. package/dist/shared/modules/dynamic/components/fields/storybook/GalleryField.stories.d.ts.map +1 -1
  120. package/dist/shared/modules/dynamic/components/fields/storybook/ImageField.stories.d.ts +0 -18
  121. package/dist/shared/modules/dynamic/components/fields/storybook/ImageField.stories.d.ts.map +1 -1
  122. package/dist/shared/modules/dynamic/components/fields/storybook/InputCurrency.stories.d.ts +0 -18
  123. package/dist/shared/modules/dynamic/components/fields/storybook/InputCurrency.stories.d.ts.map +1 -1
  124. package/dist/shared/modules/dynamic/components/fields/storybook/InputField.stories.d.ts +0 -18
  125. package/dist/shared/modules/dynamic/components/fields/storybook/InputField.stories.d.ts.map +1 -1
  126. package/dist/shared/modules/dynamic/components/fields/storybook/MultivalueField.stories.d.ts +0 -18
  127. package/dist/shared/modules/dynamic/components/fields/storybook/MultivalueField.stories.d.ts.map +1 -1
  128. package/dist/shared/modules/dynamic/components/fields/storybook/RadioButtonGroup.stories.d.ts +0 -18
  129. package/dist/shared/modules/dynamic/components/fields/storybook/RadioButtonGroup.stories.d.ts.map +1 -1
  130. package/dist/shared/modules/dynamic/components/fields/storybook/RatingField.stories.d.ts +0 -18
  131. package/dist/shared/modules/dynamic/components/fields/storybook/RatingField.stories.d.ts.map +1 -1
  132. package/dist/shared/modules/dynamic/components/fields/storybook/SelectField.stories.d.ts +0 -18
  133. package/dist/shared/modules/dynamic/components/fields/storybook/SelectField.stories.d.ts.map +1 -1
  134. package/dist/shared/modules/dynamic/components/fields/storybook/StatusField.stories.d.ts +0 -18
  135. package/dist/shared/modules/dynamic/components/fields/storybook/StatusField.stories.d.ts.map +1 -1
  136. package/dist/shared/modules/dynamic/components/fields/storybook/TextareaField.stories.d.ts +0 -18
  137. package/dist/shared/modules/dynamic/components/fields/storybook/TextareaField.stories.d.ts.map +1 -1
  138. package/dist/shared/modules/dynamic/components/fields/storybook/VideoField.stories.d.ts +0 -18
  139. package/dist/shared/modules/dynamic/components/fields/storybook/VideoField.stories.d.ts.map +1 -1
  140. package/dist/shared/modules/dynamic/components/fields/storybook/pages/DynamicRender.d.ts +0 -18
  141. package/dist/shared/modules/dynamic/components/fields/storybook/pages/DynamicRender.d.ts.map +1 -1
  142. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +0 -12
  143. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts.map +1 -1
  144. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +0 -12
  145. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
  146. package/dist/shared/pages/InvitePage/components/invite/index.d.ts +8 -8
  147. package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts +8 -8
  148. package/dist/tailwind.config.d.ts +1 -1
  149. package/dist/tsconfig.tsbuildinfo +1 -1
  150. package/dist/ui/components/atoms/vc-button/vc-button.stories.d.ts +156 -156
  151. package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts +2 -1
  152. package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts.map +1 -1
  153. package/dist/ui/components/atoms/vc-icon/icons/AppWindowIcon.vue.d.ts +18 -0
  154. package/dist/ui/components/atoms/vc-icon/icons/AppWindowIcon.vue.d.ts.map +1 -0
  155. package/dist/ui/components/atoms/vc-icon/icons/ArrowLeftIcon.vue.d.ts +18 -0
  156. package/dist/ui/components/atoms/vc-icon/icons/ArrowLeftIcon.vue.d.ts.map +1 -0
  157. package/dist/ui/components/atoms/vc-icon/icons/ArrowRightIcon.vue.d.ts +18 -0
  158. package/dist/ui/components/atoms/vc-icon/icons/ArrowRightIcon.vue.d.ts.map +1 -0
  159. package/dist/ui/components/atoms/vc-icon/icons/BellIcon.vue.d.ts +18 -0
  160. package/dist/ui/components/atoms/vc-icon/icons/BellIcon.vue.d.ts.map +1 -0
  161. package/dist/ui/components/atoms/vc-icon/icons/CircleDotsIcon.vue.d.ts +18 -0
  162. package/dist/ui/components/atoms/vc-icon/icons/CircleDotsIcon.vue.d.ts.map +1 -0
  163. package/dist/ui/components/atoms/vc-icon/icons/CrossSignIcon.vue.d.ts +18 -0
  164. package/dist/ui/components/atoms/vc-icon/icons/CrossSignIcon.vue.d.ts.map +1 -0
  165. package/dist/ui/components/atoms/vc-icon/icons/LogoutIcon.vue.d.ts +18 -0
  166. package/dist/ui/components/atoms/vc-icon/icons/LogoutIcon.vue.d.ts.map +1 -0
  167. package/dist/ui/components/atoms/vc-icon/icons/MenuBurgerIcon.vue.d.ts +18 -0
  168. package/dist/ui/components/atoms/vc-icon/icons/MenuBurgerIcon.vue.d.ts.map +1 -0
  169. package/dist/ui/components/atoms/vc-icon/icons/MinusSignIcon.vue.d.ts +18 -0
  170. package/dist/ui/components/atoms/vc-icon/icons/MinusSignIcon.vue.d.ts.map +1 -0
  171. package/dist/ui/components/atoms/vc-icon/icons/PlusSignIcon.vue.d.ts +18 -0
  172. package/dist/ui/components/atoms/vc-icon/icons/PlusSignIcon.vue.d.ts.map +1 -0
  173. package/dist/ui/components/atoms/vc-icon/icons/SettingsBoltIcon.vue.d.ts +18 -0
  174. package/dist/ui/components/atoms/vc-icon/icons/SettingsBoltIcon.vue.d.ts.map +1 -0
  175. package/dist/ui/components/atoms/vc-icon/icons/index.d.ts +12 -0
  176. package/dist/ui/components/atoms/vc-icon/icons/index.d.ts.map +1 -0
  177. package/dist/ui/components/atoms/vc-icon/index.d.ts +1 -0
  178. package/dist/ui/components/atoms/vc-icon/index.d.ts.map +1 -1
  179. package/dist/ui/components/atoms/vc-icon/vc-icon.stories.d.ts +3 -3
  180. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +3 -2
  181. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
  182. package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts.map +1 -1
  183. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts +4 -0
  184. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
  185. package/dist/ui/components/molecules/vc-editor/vc-editor.stories.d.ts +996 -0
  186. package/dist/ui/components/molecules/vc-editor/vc-editor.stories.d.ts.map +1 -1
  187. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +332 -0
  188. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts.map +1 -1
  189. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
  190. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts +3 -1
  191. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
  192. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts.map +1 -1
  193. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts.map +1 -1
  194. package/dist/ui/components/organisms/vc-app/composables/useToolbarSlots.d.ts +5 -0
  195. package/dist/ui/components/organisms/vc-app/composables/useToolbarSlots.d.ts.map +1 -0
  196. package/dist/ui/components/organisms/vc-app/vc-app.stories.d.ts +16 -106
  197. package/dist/ui/components/organisms/vc-app/vc-app.stories.d.ts.map +1 -1
  198. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +16 -106
  199. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
  200. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts +0 -2
  201. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts.map +1 -1
  202. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts +0 -3
  203. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts.map +1 -1
  204. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts +13 -2
  205. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts.map +1 -1
  206. package/dist/ui/components/organisms/vc-blade/vc-blade.stories.d.ts +0 -16
  207. package/dist/ui/components/organisms/vc-blade/vc-blade.stories.d.ts.map +1 -1
  208. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +0 -2
  209. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
  210. package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +1 -1
  211. package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.d.ts +3 -3
  212. package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.d.ts.map +1 -1
  213. package/dist/ui/components/organisms/vc-table/vc-table.stories.d.ts +30 -30
  214. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +6 -6
  215. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
  216. package/package.json +9 -6
  217. package/shared/components/app-bar-button/app-bar-button.vue +62 -45
  218. package/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue +31 -134
  219. package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +8 -7
  220. package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +16 -4
  221. package/shared/components/change-password/change-password.vue +2 -1
  222. package/shared/components/generic-dropdown/generic-dropdown.vue +171 -0
  223. package/shared/components/generic-dropdown/index.ts +1 -0
  224. package/shared/components/index.ts +2 -0
  225. package/shared/components/language-selector/language-selector.vue +29 -64
  226. package/shared/components/menu-item/index.ts +1 -0
  227. package/shared/components/menu-item/menu-item.vue +111 -0
  228. package/shared/components/notification-dropdown/notification-dropdown.vue +21 -72
  229. package/shared/components/notification-template/notification-template.vue +23 -34
  230. package/shared/components/sidebar/sidebar.vue +16 -1
  231. package/shared/components/theme-selector/theme-selector.vue +34 -76
  232. package/shared/components/user-dropdown-button/_internal/user-actions.vue +68 -0
  233. package/shared/components/user-dropdown-button/_internal/user-info.vue +74 -0
  234. package/shared/components/user-dropdown-button/_internal/user-sidebar.vue +73 -0
  235. package/shared/components/user-dropdown-button/composables/useUserActions.ts +56 -0
  236. package/shared/components/user-dropdown-button/user-dropdown-button.vue +69 -271
  237. package/tailwind.config.ts +1 -1
  238. package/ui/components/atoms/vc-badge/vc-badge.vue +10 -9
  239. package/ui/components/atoms/vc-button/vc-button.vue +2 -2
  240. package/ui/components/atoms/vc-card/vc-card.vue +4 -7
  241. package/ui/components/atoms/vc-icon/icons/AppWindowIcon.vue +32 -0
  242. package/ui/components/atoms/vc-icon/icons/ArrowLeftIcon.vue +24 -0
  243. package/ui/components/atoms/vc-icon/icons/ArrowRightIcon.vue +24 -0
  244. package/ui/components/atoms/vc-icon/icons/BellIcon.vue +29 -0
  245. package/ui/components/atoms/vc-icon/icons/CircleDotsIcon.vue +41 -0
  246. package/ui/components/atoms/vc-icon/icons/CrossSignIcon.vue +24 -0
  247. package/ui/components/atoms/vc-icon/icons/LogoutIcon.vue +24 -0
  248. package/ui/components/atoms/vc-icon/icons/MenuBurgerIcon.vue +24 -0
  249. package/ui/components/atoms/vc-icon/icons/MinusSignIcon.vue +24 -0
  250. package/ui/components/atoms/vc-icon/icons/PlusSignIcon.vue +24 -0
  251. package/ui/components/atoms/vc-icon/icons/SettingsBoltIcon.vue +31 -0
  252. package/ui/components/atoms/vc-icon/icons/index.ts +11 -0
  253. package/ui/components/atoms/vc-icon/index.ts +1 -0
  254. package/ui/components/atoms/vc-icon/vc-icon.vue +33 -3
  255. package/ui/components/atoms/vc-status/vc-status.vue +17 -4
  256. package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +22 -7
  257. package/ui/components/atoms/vc-widget/vc-widget.vue +31 -22
  258. package/ui/components/molecules/vc-pagination/vc-pagination.vue +9 -17
  259. package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +196 -33
  260. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +47 -47
  261. package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +5 -29
  262. package/ui/components/organisms/vc-app/composables/useToolbarSlots.ts +37 -0
  263. package/ui/components/organisms/vc-app/vc-app.vue +87 -70
  264. package/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue +17 -17
  265. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue +9 -69
  266. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +199 -31
  267. package/ui/components/organisms/vc-blade/vc-blade.stories.ts +1 -1
  268. package/ui/components/organisms/vc-blade/vc-blade.vue +129 -38
  269. package/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue +2 -2
  270. package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +1 -1
  271. package/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue +34 -23
  272. package/ui/components/organisms/vc-table/vc-table.vue +44 -29
@@ -5,6 +5,7 @@
5
5
  crossAxis: 0,
6
6
  mainAxis: 0,
7
7
  }"
8
+ :delay="1000"
8
9
  >
9
10
  <template #tooltip>{{ title }}</template>
10
11
  <div
@@ -16,9 +17,8 @@
16
17
  :data-test-id="id ?? 'vc-blade-toolbar-button'"
17
18
  @click="onClick"
18
19
  >
19
- <div ref="dropButtonRef">
20
+ <div>
20
21
  <div
21
- ref="bladeDropToggle"
22
22
  type="button"
23
23
  class="vc-blade-toolbar-button__wrap"
24
24
  >
@@ -34,44 +34,20 @@
34
34
  {{ title }}
35
35
  </div>
36
36
  </div>
37
- <teleport to="body">
38
- <div
39
- v-if="isDropActive"
40
- ref="bladeDropRef"
41
- class="vc-blade-toolbar-button__dropdown"
42
- :style="dropStyle"
43
- >
44
- <div
45
- v-for="(item, i) in dropdownItems"
46
- :key="i"
47
- class="vc-blade-toolbar-button__dropdown-item"
48
- @click="handleDropItemClick(item)"
49
- >
50
- <VcIcon
51
- :icon="item.icon"
52
- class="vc-blade-toolbar-button__dropdown-item-icon"
53
- />
54
- {{ item.title }}
55
- </div>
56
- </div>
57
- </teleport>
58
37
  </div>
59
38
  </div>
60
39
  </VcTooltip>
61
40
  </template>
62
41
 
63
42
  <script lang="ts" setup>
64
- import { ref, computed, nextTick } from "vue";
43
+ import { ref } from "vue";
65
44
  import { VcIcon, VcTooltip } from "./../../../../../../";
66
- import { offset, computePosition, ComputePositionReturn } from "@floating-ui/vue";
67
- import { IBladeDropdownItem } from "./../../../../../../../../core/types";
68
45
 
69
46
  export interface Props {
70
47
  isExpanded: boolean;
71
48
  icon?: string | (() => string);
72
49
  title?: string;
73
50
  disabled?: boolean;
74
- dropdownItems?: IBladeDropdownItem[];
75
51
  clickHandler?(): void;
76
52
  separator?: "left" | "right" | "both";
77
53
  id?: string;
@@ -96,17 +72,7 @@ const props = withDefaults(defineProps<Props>(), {
96
72
 
97
73
  const emit = defineEmits<Emits>();
98
74
 
99
- const popper = ref<ComputePositionReturn>();
100
75
  const isWaiting = ref(false);
101
- const isDropActive = ref(false);
102
- const bladeDropToggle = ref();
103
- const dropButtonRef = ref();
104
- const bladeDropRef = ref();
105
-
106
- const dropStyle = computed(() => ({
107
- top: `${popper.value?.y ?? 0}px`,
108
- left: `${popper.value?.x ?? 0}px`,
109
- }));
110
76
 
111
77
  async function onClick(): Promise<void> {
112
78
  console.debug("vc-blade-toolbar-item#onClick()");
@@ -119,52 +85,26 @@ async function onClick(): Promise<void> {
119
85
  } finally {
120
86
  isWaiting.value = false;
121
87
  }
122
- } else if (props.dropdownItems?.length) {
123
- toggleDropdown();
124
88
  } else {
125
89
  emit("click");
126
90
  }
127
91
  }
128
92
  }
129
-
130
- function toggleDropdown() {
131
- if (props.dropdownItems?.length) {
132
- if (isDropActive.value) {
133
- isDropActive.value = false;
134
- } else {
135
- isDropActive.value = true;
136
-
137
- nextTick(() => {
138
- computePosition(bladeDropToggle.value, bladeDropRef.value, {
139
- placement: "bottom",
140
- middleware: [offset(10)],
141
- }).then((item) => (popper.value = item));
142
- });
143
- }
144
- }
145
- }
146
-
147
- function handleDropItemClick(item: IBladeDropdownItem) {
148
- if (item.clickHandler && typeof item.clickHandler === "function") {
149
- item.clickHandler();
150
- toggleDropdown();
151
- }
152
- }
153
93
  </script>
154
94
 
155
95
  <style lang="scss">
156
96
  :root {
157
- --blade-toolbar-button-title-color: var(--base-text-color, var(--neutrals-950));
158
- --blade-toolbar-button-title-color-hover: var(--base-text-color, var(--neutrals-950));
97
+ --blade-toolbar-button-title-color: var(--neutrals-600);
98
+ --blade-toolbar-button-title-color-hover: var(--primary-600);
159
99
  --blade-toolbar-button-title-color-disabled: var(--neutrals-400);
160
100
 
161
- --blade-toolbar-button-icon-color: var(--primary-500);
101
+ --blade-toolbar-button-icon-color: var(--neutrals-700);
162
102
  --blade-toolbar-button-icon-color-hover: var(--primary-600);
163
103
  --blade-toolbar-button-icon-color-disabled: var(--neutrals-400);
164
104
 
165
- --blade-toolbar-button-background-color: var(--additional-50);
166
- --blade-toolbar-button-background-color-hover: var(--additional-50);
167
- --blade-toolbar-button-background-color-disabled: var(--additional-50);
105
+ --blade-toolbar-button-background-color: trans;
106
+ --blade-toolbar-button-background-color-hover: transparent;
107
+ --blade-toolbar-button-background-color-disabled: transparent;
168
108
 
169
109
  --blade-toolbar-button-border-color: var(--base-border-color, var(--neutrals-200));
170
110
 
@@ -4,38 +4,100 @@
4
4
  class="vc-blade-toolbar"
5
5
  :class="{ 'vc-blade-toolbar--expanded': isExpanded }"
6
6
  >
7
- <div class="vc-blade-toolbar__content">
8
- <template
9
- v-for="item in items"
10
- :key="item.id"
11
- >
12
- <VcBladeToolbarButton
13
- v-if="$hasAccess(item.permissions) && (item.isVisible === undefined || item.isVisible)"
14
- :id="item.id"
15
- :is-expanded="isExpanded"
16
- :icon="item.icon"
17
- :title="unref(item.title)"
18
- :disabled="item.disabled as boolean"
19
- :separator="item.separator"
20
- :dropdown-items="item.dropdownItems"
21
- :click-handler="item.clickHandler"
22
- />
7
+ <div
8
+ ref="toolbarContentRef"
9
+ class="vc-blade-toolbar__content"
10
+ >
11
+ <template v-if="slots['widgets-container']">
12
+ <template
13
+ v-for="item in displayedItems"
14
+ :key="item.id"
15
+ >
16
+ <VcBladeToolbarButton
17
+ :id="item.id"
18
+ :is-expanded="isExpanded"
19
+ :icon="item.icon"
20
+ :title="unref(item.title)"
21
+ :disabled="item.disabled as boolean"
22
+ :separator="item.separator"
23
+ :click-handler="item.clickHandler"
24
+ />
25
+ </template>
26
+
27
+ <GenericDropdown
28
+ :opened="showToolbar"
29
+ :items="overflowItems"
30
+ floating
31
+ placement="bottom-end"
32
+ :on-item-click="onItemClick"
33
+ @update:opened="showToolbar = $event"
34
+ >
35
+ <template #trigger>
36
+ <div
37
+ v-if="showMoreButton"
38
+ class="vc-blade-toolbar__more"
39
+ @click="toggleToolbar"
40
+ >
41
+ <VcIcon :icon="CircleDotsIcon" />
42
+ <span class="vc-blade-toolbar__more-text">More</span>
43
+ </div>
44
+ </template>
45
+
46
+ <template #item="{ item }">
47
+ <div class="vc-blade-toolbar__more-item">
48
+ <VcIcon
49
+ class="vc-blade-toolbar-button__icon"
50
+ :icon="typeof item.icon === 'function' ? item.icon() : item.icon"
51
+ size="m"
52
+ />
53
+ <div class="vc-blade-toolbar-button__title">{{ item.title }}</div>
54
+ </div>
55
+ </template>
56
+ </GenericDropdown>
57
+ </template>
58
+ <template v-else>
59
+ <template
60
+ v-for="item in visibleItems"
61
+ :key="item.id"
62
+ >
63
+ <VcBladeToolbarButton
64
+ :id="item.id"
65
+ :is-expanded="isExpanded"
66
+ :icon="item.icon"
67
+ :title="unref(item.title)"
68
+ :disabled="item.disabled as boolean"
69
+ :separator="item.separator"
70
+ :click-handler="item.clickHandler"
71
+ />
72
+ </template>
23
73
  </template>
24
74
  </div>
25
- <VcIcon
26
- class="vc-blade-toolbar__icon"
27
- :icon="`fas fa-chevron-${isExpanded ? 'up' : 'down'}`"
28
- @click="toggleToolbar"
29
- ></VcIcon>
75
+
76
+ <div class="vc-blade-toolbar__toolbar-container">
77
+ <div
78
+ v-if="!slots['widgets-container']"
79
+ id="vc-blade-toolbar-container"
80
+ class="tw-w-full tw-max-w-[500px]"
81
+ ></div>
82
+ <div
83
+ v-if="slots['widgets-container']"
84
+ class="vc-blade-toolbar__toolbar-container-inner"
85
+ >
86
+ <slot name="widgets-container"></slot>
87
+ </div>
88
+ </div>
30
89
  </div>
31
90
  </template>
32
91
 
33
92
  <script lang="ts" setup>
34
93
  import { IBladeToolbar } from "./../../../../../../core/types";
35
- import { unref } from "vue";
94
+ import { unref, ref, computed, useSlots, onMounted, onBeforeUnmount, inject, ComputedRef, provide } from "vue";
36
95
  import VcBladeToolbarButton from "./_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue";
37
96
  import { VcIcon } from "./../../../../";
38
97
  import { useLocalStorage } from "@vueuse/core";
98
+ import { GenericDropdown } from "../../../../../../shared/components/generic-dropdown";
99
+ import { usePermissions } from "../../../../../../core/composables";
100
+ import { CircleDotsIcon } from "../../../../atoms/vc-icon/icons";
39
101
 
40
102
  export interface Props {
41
103
  items: IBladeToolbar[];
@@ -45,43 +107,149 @@ const props = withDefaults(defineProps<Props>(), {
45
107
  items: () => [],
46
108
  });
47
109
 
110
+ defineSlots<{
111
+ "widgets-container": void;
112
+ "custom-container": void;
113
+ }>();
114
+
48
115
  const isExpanded = useLocalStorage("VC_BLADE_TOOLBAR_IS_EXPANDED", true);
116
+ const { hasAccess } = usePermissions();
117
+ const bladeExpanded = inject("$bladeExpanded") as ComputedRef<boolean>;
118
+ const toolbarContainerId = "vc-blade-toolbar-container";
119
+
120
+ const showToolbar = ref(false);
121
+
122
+ const toggleToolbar = () => {
123
+ showToolbar.value = !showToolbar.value;
124
+ };
125
+
126
+ const slots = useSlots();
49
127
 
50
- function toggleToolbar() {
51
- isExpanded.value = !isExpanded.value;
128
+ function onItemClick(item: IBladeToolbar) {
129
+ item.clickHandler?.();
52
130
  }
53
131
 
132
+ const toolbarContentRef = ref<HTMLElement | null>(null);
133
+ const isOverflowing = ref(false);
134
+
135
+ const toolbarSpace = ref(0);
136
+
137
+ const checkOverflow = () => {
138
+ if (toolbarContentRef.value) {
139
+ const element = toolbarContentRef.value;
140
+ isOverflowing.value = element.scrollWidth > element.clientWidth;
141
+ }
142
+ };
143
+
144
+ // Setup resize observer
145
+ onMounted(() => {
146
+ const resizeObserver = new ResizeObserver(checkOverflow);
147
+ if (toolbarContentRef.value) {
148
+ resizeObserver.observe(toolbarContentRef.value);
149
+ }
150
+
151
+ // Cleanup
152
+ onBeforeUnmount(() => {
153
+ resizeObserver.disconnect();
154
+ });
155
+
156
+ const container = document.getElementById(toolbarContainerId);
157
+ if (container) {
158
+ const observer = new ResizeObserver((entries) => {
159
+ toolbarSpace.value = entries[0].contentRect.width;
160
+ });
161
+ observer.observe(container);
162
+ }
163
+ });
164
+
165
+ const visibleItems = computed(() => {
166
+ return props.items.filter(
167
+ (item) => hasAccess(item.permissions) && (item.isVisible === undefined || item.isVisible) && !item.disabled,
168
+ );
169
+ });
170
+
171
+ const displayedItems = computed(() => {
172
+ console.log("displayedItems", slots);
173
+ if (!slots["widgets-container"] || visibleItems.value.length <= 2) {
174
+ // If not overflowing and 2 or fewer items, show all
175
+ if (!isOverflowing.value) {
176
+ return visibleItems.value;
177
+ }
178
+ }
179
+ // If overflowing or 3+ items, show only first item
180
+ return visibleItems.value.slice(0, 1);
181
+ });
182
+
183
+ const overflowItems = computed(() => {
184
+ if (!slots["widgets-container"] && !isOverflowing.value) {
185
+ return [];
186
+ }
187
+ // If overflowing or has 3+ items, include remaining items
188
+ return visibleItems.value.length >= 3 || isOverflowing.value
189
+ ? visibleItems.value.slice(1)
190
+ : visibleItems.value.slice(2);
191
+ });
192
+
193
+ const showMoreButton = computed(() => {
194
+ return (slots["widgets-container"] && visibleItems.value.length >= 3) || isOverflowing.value;
195
+ });
196
+
54
197
  function isToolbarVisible() {
55
198
  const visibleItems = (props.items as { isVisible: boolean }[]).filter(
56
199
  (item) => item.isVisible === undefined || item.isVisible,
57
200
  );
58
201
  return !!visibleItems.length;
59
202
  }
203
+
204
+ provide("toolbarContainerId", "vc-blade-toolbar-container");
60
205
  </script>
61
206
 
62
207
  <style lang="scss">
63
208
  :root {
64
- --blade-toolbar-height: 36px;
65
- --blade-toolbar-height-expanded: 50px;
209
+ --blade-toolbar-height: 54px;
210
+ --blade-toolbar-height-expanded: 54px;
66
211
  --blade-toolbar-background-color: var(--additional-50);
67
212
  --blade-toolbar-border-color: var(--base-border-color, var(--neutrals-200));
68
- --blade-toolbar-icon-color: var(--primary-500);
213
+ --blade-toolbar-icon-color: var(--neutrals-700);
69
214
  --blade-toolbar-icon-hover-color: var(--primary-600);
70
215
  }
71
216
 
72
217
  .vc-blade-toolbar {
73
- @apply tw-h-[var(--blade-toolbar-height)] tw-bg-[color:var(--blade-toolbar-background-color)] tw-border-b-[color:var(--blade-toolbar-border-color)] tw-border-solid tw-border-b tw-flex tw-box-border tw-w-full tw-content-center tw-items-stretch tw-shrink-0;
218
+ @apply tw-min-h-[var(--blade-toolbar-height)] tw-bg-[color:var(--blade-toolbar-background-color)] tw-border-b-[color:var(--blade-toolbar-border-color)] tw-border-solid tw-border-b tw-flex tw-box-border tw-w-full tw-content-center tw-items-stretch tw-shrink-0;
74
219
 
75
- &--expanded {
220
+ /* &--expanded {
76
221
  @apply tw-h-[var(--blade-toolbar-height-expanded)] #{!important};
77
- }
222
+ } */
78
223
 
79
224
  &__content {
80
- @apply tw-grow tw-basis-0 tw-flex tw-content-start tw-items-center tw-overflow-x-auto tw-px-2;
225
+ @apply tw-flex tw-content-start tw-items-center tw-px-2;
226
+ flex-grow: 1;
227
+ overflow: hidden;
228
+ width: auto;
229
+ }
230
+
231
+ &__toolbar-container {
232
+ @apply tw-grow-[2] tw-basis-0 tw-flex tw-justify-end tw-shrink-0 tw-items-center;
81
233
  }
82
234
 
83
235
  &__icon {
84
236
  @apply tw-self-center tw-justify-self-center tw-text-[color:var(--blade-toolbar-icon-color)] tw-cursor-pointer tw-mr-4 hover:tw-text-[color:var(--blade-toolbar-icon-hover-color)];
85
237
  }
238
+
239
+ &__more {
240
+ @apply tw-flex tw-flex-col tw-items-center tw-px-2 tw-cursor-pointer tw-text-[color:var(--blade-toolbar-icon-color)] hover:tw-text-[color:var(--blade-toolbar-icon-hover-color)];
241
+ }
242
+
243
+ &__more-text {
244
+ @apply tw-text-xs tw-mt-1 tw-font-normal;
245
+ }
246
+
247
+ &__more-item {
248
+ @apply tw-flex tw-items-center tw-gap-2 tw-px-2 tw-py-1 tw-cursor-pointer tw-text-[color:var(--blade-toolbar-icon-color)] hover:tw-text-[color:var(--blade-toolbar-icon-hover-color)];
249
+ }
250
+
251
+ &__toolbar-container-inner {
252
+ @apply tw-flex tw-flex-row tw-items-center tw-overflow-visible tw-w-full;
253
+ }
86
254
  }
87
255
  </style>
@@ -11,7 +11,7 @@ export default {
11
11
  subtitle: "Optional Subtitle",
12
12
  width: 700,
13
13
  closable: false,
14
- expandable: false,
14
+ // expandable: false,
15
15
 
16
16
  toolbarItems: [
17
17
  { id: "1", icon: "fas fa-sync-alt", title: "Refresh" },