@vc-shell/framework 1.0.326 → 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 +8 -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
@@ -21,7 +21,7 @@
21
21
  <VcIcon
22
22
  class="vc-app-menu-link__icon-content"
23
23
  :icon="icon"
24
- size="m"
24
+ size="s"
25
25
  />
26
26
  </div>
27
27
  <div
@@ -31,12 +31,12 @@
31
31
  <div class="vc-app-menu-link__title-truncate">
32
32
  {{ title }}
33
33
  </div>
34
- <VcIcon
34
+ <div
35
35
  v-if="!!children?.length || false"
36
36
  class="vc-app-menu-link__title-icon"
37
- :icon="`fas fa-chevron-${isOpened ? 'up' : 'down'}`"
38
- size="xs"
39
- />
37
+ >
38
+ {{ isOpened ? "-" : "+" }}
39
+ </div>
40
40
  </div>
41
41
  </div>
42
42
  </div>
@@ -73,7 +73,7 @@
73
73
  'vc-app-menu-link__child-item',
74
74
  ]"
75
75
  >
76
- <div
76
+ <!-- <div
77
77
  v-if="nested.icon"
78
78
  class="vc-app-menu-link__icon"
79
79
  :class="{
@@ -85,12 +85,12 @@
85
85
  :icon="nested.icon"
86
86
  size="m"
87
87
  />
88
- </div>
88
+ </div> -->
89
89
  <p
90
90
  v-if="expand"
91
91
  class="vc-app-menu-link__child-item-title"
92
92
  >
93
- {{ nested.title }}
93
+ {{ nested.title }}
94
94
  </p>
95
95
  </div>
96
96
  </div>
@@ -182,26 +182,25 @@ watch(isOpened, (newValue) => {
182
182
 
183
183
  <style lang="scss">
184
184
  :root {
185
- --app-menu-item-height: 36px;
186
- --app-menu-item-icon-width: 22px;
187
- --app-menu-item-icon-color: var(--secondary-600);
188
- --app-menu-item-icon-color-active: var(--additional-50);
189
- --app-menu-item-background-color-hover: var(--secondary-500);
190
- --app-menu-item-background-color-active: var(--secondary-600);
191
- --app-menu-item-hover-radius: 4px;
192
- --app-menu-item-title-color: var(--base-text-color, var(--neutrals-950));
193
- --app-menu-item-title-color-active: var(--additional-50);
185
+ --app-menu-item-height: 38px;
186
+ --app-menu-item-icon-width: 16px;
187
+ --app-menu-item-icon-color: var(--neutrals-600);
188
+ --app-menu-item-icon-color-active: var(--primary-700);
189
+ --app-menu-item-background-color-hover: var(--neutrals-100);
190
+ --app-menu-item-background-color-active: var(--primary-100);
191
+ --app-menu-item-hover-radius: 6px;
192
+ --app-menu-item-title-color: var(--neutrals-600);
193
+ --app-menu-item-title-color-active: var(--primary-700);
194
194
 
195
195
  --app-menu-item-active-text: var(--base-text-color, var(--neutrals-950));
196
196
  --app-menu-item-active-icon: var(--base-text-color, var(--neutrals-950));
197
197
  }
198
198
 
199
199
  .vc-app-menu-link {
200
- @apply tw-cursor-pointer tw-px-5;
200
+ @apply tw-cursor-pointer tw-w-full;
201
201
 
202
202
  &:hover .vc-app-menu-link__item:not(.vc-app-menu-link__item_active) {
203
- @apply tw-bg-[var(--app-menu-item-background-color-hover)] tw-bg-opacity-50
204
- tw-rounded-[var(--app-menu-item-hover-radius)];
203
+ @apply tw-bg-[var(--app-menu-item-background-color-hover)] tw-bg-opacity-50 tw-rounded;
205
204
 
206
205
  .vc-app-menu-link__title {
207
206
  @apply tw-text-[color:var(--app-menu-item-title-color-active)];
@@ -219,23 +218,21 @@ watch(isOpened, (newValue) => {
219
218
  &__item {
220
219
  @apply tw-flex tw-items-center tw-w-full tw-h-[var(--app-menu-item-height)]
221
220
  tw-border-none tw-flex-nowrap tw-box-border tw-cursor-pointer tw-relative
222
- tw-uppercase tw-select-none tw-py-1 tw-px-2;
221
+ tw-uppercase tw-select-none tw-px-2;
223
222
 
224
223
  &_collapsed {
225
224
  @apply tw-w-10;
226
225
  }
227
226
 
228
227
  &_active {
229
- @apply tw-bg-[color:var(--app-menu-item-background-color-active)]
230
- tw-rounded-[var(--app-menu-item-hover-radius)]
231
- before:tw-opacity-100;
228
+ @apply tw-bg-[color:var(--app-menu-item-background-color-active)] tw-rounded;
232
229
 
233
230
  .vc-app-menu-link__icon {
234
231
  @apply tw-text-[color:var(--app-menu-item-icon-color-active)];
235
232
  }
236
233
 
237
234
  .vc-app-menu-link__title {
238
- @apply tw-font-bold tw-text-[color:var(--app-menu-item-title-color-active)] #{!important};
235
+ @apply tw-text-[color:var(--app-menu-item-title-color-active)] #{!important};
239
236
  }
240
237
 
241
238
  .vc-app-menu-link__title-icon {
@@ -243,15 +240,15 @@ watch(isOpened, (newValue) => {
243
240
  }
244
241
  }
245
242
 
246
- &_child-opened {
247
- .vc-app-menu-link__title {
248
- @apply tw-font-bold tw-text-[color:var(--app-menu-item-active-text)] #{!important};
249
- }
243
+ // &_child-opened {
244
+ // .vc-app-menu-link__title {
245
+ // @apply tw-text-[color:var(--app-menu-item-active-text)] #{!important};
246
+ // }
250
247
 
251
- .vc-app-menu-link__icon {
252
- @apply tw-text-[color:var(--app-menu-item-active-icon)] #{!important};
253
- }
254
- }
248
+ // .vc-app-menu-link__icon {
249
+ // @apply tw-text-[color:var(--app-menu-item-active-icon)] #{!important};
250
+ // }
251
+ // }
255
252
  }
256
253
 
257
254
  &__icon {
@@ -261,14 +258,20 @@ watch(isOpened, (newValue) => {
261
258
  }
262
259
 
263
260
  &__title {
264
- @apply tw-capitalize tw-text-[color:var(--app-menu-item-title-color)] tw-truncate
261
+ @apply tw-text-[color:var(--app-menu-item-title-color)] tw-truncate
265
262
  tw-text-sm
266
- tw-font-medium
267
- tw-pl-2
263
+ tw-font-normal
264
+ tw-leading-normal
265
+ tw-normal-case
266
+ tw-pl-4
268
267
  [transition:color_0.2s_ease]
269
268
  tw-opacity-100 tw-w-full tw-flex tw-justify-between tw-items-center;
270
269
  }
271
270
 
271
+ &__title-icon {
272
+ @apply tw-ml-3 tw-text-lg;
273
+ }
274
+
272
275
  &__title-truncate {
273
276
  @apply tw-truncate;
274
277
  }
@@ -287,8 +290,8 @@ watch(isOpened, (newValue) => {
287
290
 
288
291
  &__child-item {
289
292
  @apply tw-cursor-pointer tw-min-w-0 tw-flex tw-h-[var(--app-menu-item-height)]
290
- tw-items-center tw-transition-[padding] tw-duration-150 tw-w-fit tw-py-1 tw-px-2 tw-rounded-[4px]
291
- tw-text-[color:var(--app-menu-item-title-color)] tw-text-xs
293
+ tw-items-center tw-transition-[padding] tw-duration-150 tw-w-fit tw-py-2 tw-px-3
294
+ tw-text-[color:var(--app-menu-item-title-color)] tw-text-sm
292
295
  hover:tw-bg-[var(--app-menu-item-background-color-hover)]
293
296
  hover:tw-text-[color:var(--app-menu-item-title-color-active)];
294
297
 
@@ -301,11 +304,9 @@ watch(isOpened, (newValue) => {
301
304
  }
302
305
 
303
306
  &_active {
304
- @apply tw-rounded-[var(--app-menu-item-hover-radius)]
305
- tw-bg-[color:var(--app-menu-item-background-color-active)]
306
- tw-text-[color:var(--app-menu-item-title-color-active)] tw-font-bold
307
- hover:tw-bg-[color:var(--app-menu-item-background-color-active)]
308
- hover:tw-text-[color:var(--app-menu-item-title-color-active)];
307
+ @apply tw-bg-[color:var(--app-menu-item-background-color-active)] tw-rounded #{!important};
308
+ @apply tw-font-medium;
309
+ @apply tw-text-[color:var(--app-menu-item-title-color-active)] #{!important};
309
310
 
310
311
  .vc-app-menu-link__icon {
311
312
  @apply tw-text-[color:var(--app-menu-item-icon-color-active)];
@@ -314,16 +315,15 @@ watch(isOpened, (newValue) => {
314
315
  }
315
316
 
316
317
  &__child-item-title {
317
- @apply tw-truncate tw-pl-2;
318
+ @apply tw-truncate tw-pl-5;
318
319
  }
319
320
 
320
321
  &__child-item-link {
321
- @apply tw-cursor-pointer tw-z-[2] tw-px-5;
322
+ @apply tw-cursor-pointer tw-z-[2];
322
323
  }
323
324
 
324
325
  &__child-item-link:hover .vc-app-menu-link__child-item:not(.vc-app-menu-link__child-item_active) {
325
- @apply tw-bg-[var(--app-menu-item-background-color-hover)] tw-bg-opacity-50
326
- tw-rounded-[var(--app-menu-item-hover-radius)];
326
+ @apply tw-bg-[var(--app-menu-item-background-color-hover)] tw-bg-opacity-50 tw-rounded;
327
327
 
328
328
  .vc-app-menu-link__icon {
329
329
  @apply tw-text-[color:var(--app-menu-item-icon-color-active)];
@@ -11,35 +11,14 @@
11
11
  :class="{
12
12
  'vc-app-menu--mobile': $isMobile.value,
13
13
  'vc-app-menu--block': isMobileVisible,
14
- 'vc-app-menu--collapsed': $isDesktop.value && !isExpanded,
15
14
  }"
16
- @mouseenter="!isExpanded && expandOverHandler(true)"
17
- @mouseover="!isExpanded && expandOverHandler(true)"
18
- @mouseleave="expandOverHandler(false)"
19
15
  >
20
16
  <div
21
17
  class="vc-app-menu__inner"
22
18
  :class="{
23
19
  'vc-app-menu__inner--desktop': $isDesktop.value,
24
- 'vc-app-menu__inner--collapsed': $isDesktop.value && !isExpanded && !isExpandedOver,
25
- 'vc-app-menu__inner--expanded': $isDesktop.value && (isExpanded || isExpandedOver),
26
20
  }"
27
21
  >
28
- <div
29
- v-if="$isDesktop.value"
30
- class="vc-app-menu__burger-container"
31
- >
32
- <button
33
- class="vc-app-menu__burger-button"
34
- @click="toggleMenu"
35
- >
36
- <VcIcon
37
- :icon="isExpanded ? 'fas fa-angle-double-left' : 'fas fa-angle-double-right'"
38
- size="xl"
39
- ></VcIcon>
40
- </button>
41
- </div>
42
-
43
22
  <!-- Show scrollable area with menu items -->
44
23
  <VcContainer
45
24
  :no-padding="true"
@@ -80,13 +59,13 @@
80
59
  </div>
81
60
  </VcContainer>
82
61
 
83
- <div
62
+ <!-- <div
84
63
  v-if="version"
85
64
  class="vc-app-menu__version"
86
65
  @click="$emit('version:click')"
87
66
  >
88
67
  {{ version }}
89
- </div>
68
+ </div> -->
90
69
  </div>
91
70
  </div>
92
71
  </template>
@@ -157,8 +136,6 @@ defineExpose({
157
136
 
158
137
  <style lang="scss">
159
138
  :root {
160
- --app-menu-width: 230px;
161
- --app-menu-width-collapse: 70px;
162
139
  --app-menu-background: var(--app-background, var(--primary-50));
163
140
  --app-menu-background-color: var(--additional-50);
164
141
  --app-menu-version-color: var(--neutrals-400);
@@ -175,7 +152,7 @@ defineExpose({
175
152
  }
176
153
 
177
154
  .vc-app-menu {
178
- @apply tw-relative tw-w-[var(--app-menu-width)] tw-pt-6 -tw-mr-2 [transition:width_300ms_cubic-bezier(0.2,0,0,1)_0s] tw-z-[1001];
155
+ @apply tw-h-full;
179
156
 
180
157
  &.vc-app-menu--mobile {
181
158
  @apply tw-hidden tw-h-full tw-w-full #{!important};
@@ -198,11 +175,10 @@ defineExpose({
198
175
  }
199
176
 
200
177
  &__inner {
201
- @apply tw-flex tw-flex-col tw-h-full tw-z-[1001] tw-top-0 tw-bottom-0 tw-bg-[color:var(--app-menu-background)] [transition:width_150ms_cubic-bezier(0.2,0,0,1)_0s];
202
- @apply tw-absolute #{!important};
178
+ @apply tw-flex tw-flex-col tw-h-full;
203
179
 
204
180
  &--desktop {
205
- @apply tw-left-0 tw-pt-6;
181
+ @apply tw-left-0 tw-pt-2;
206
182
  }
207
183
 
208
184
  &--collapsed {
@@ -0,0 +1,37 @@
1
+ import { useSlots, type Slot, h } from "vue";
2
+ import type { IMenuItem } from "../../../../../core/types";
3
+ import { ThemeSelector, LanguageSelector } from "../../../../../shared/components";
4
+
5
+ export function useToolbarSlots() {
6
+ const slots = useSlots();
7
+
8
+ const getToolbarMenuItems = (): IMenuItem[] => {
9
+ const menuItems: IMenuItem[] = [];
10
+
11
+ const slotConfig = {
12
+ "toolbar:theme-selector": ThemeSelector,
13
+ "toolbar:language-selector": LanguageSelector,
14
+ };
15
+
16
+ // Check each slot
17
+ Object.entries(slotConfig).forEach(([slotName, defaultComponent]) => {
18
+ const slot = slots[slotName];
19
+ if (slot) {
20
+ // If the slot exists, use its contents
21
+ menuItems.push({
22
+ component: slot,
23
+ });
24
+ } else {
25
+ menuItems.push({
26
+ component: () => h(defaultComponent),
27
+ });
28
+ }
29
+ });
30
+
31
+ return menuItems;
32
+ };
33
+
34
+ return {
35
+ getToolbarMenuItems,
36
+ };
37
+ }
@@ -12,74 +12,81 @@
12
12
  }"
13
13
  >
14
14
  <!-- Init application top bar -->
15
- <VcAppBar
16
- class="vc-app__app-bar"
17
- :logo="logo"
18
- :title="title"
19
- :disable-menu="disableMenu"
20
- @menubutton:click="($refs.menu as Record<'isMobileVisible', boolean>).isMobileVisible = true"
21
- @backlink:click="closeBlade(blades.length - 1)"
22
- @logo:click="openRoot"
23
- >
24
- <template #app-switcher>
25
- <slot name="app-switcher">
26
- <VcAppSwitcher
27
- :apps-list="appsList"
28
- @on-click="switchApp($event)"
29
- />
30
- </slot>
31
- </template>
32
-
33
- <!-- Toolbar slot -->
34
- <template #toolbar>
35
- <slot
36
- name="toolbar"
37
- v-bind="{
38
- LanguageSelector,
39
- UserDropdownButton,
40
- NotificationDropdown,
41
- ThemeSelector,
42
- }"
43
- >
44
- <slot
45
- v-if="$slots['toolbar:prepend']"
46
- name="toolbar:prepend"
47
- ></slot>
48
- <slot name="toolbar:theme-selector">
49
- <ThemeSelector />
50
- </slot>
51
- <slot name="toolbar:language-selector">
52
- <LanguageSelector
53
- v-if="$isDesktop.value ? $isDesktop.value : $isMobile.value ? route.path === '/' : false"
15
+
16
+ <div class="vc-app__main-content">
17
+ <!-- Init main menu -->
18
+ <VcAppBar
19
+ class="vc-app__app-bar"
20
+ :logo="logo"
21
+ :title="title"
22
+ :disable-menu="disableMenu"
23
+ @menubutton:click="($refs.menu as Record<'isMobileVisible', boolean>).isMobileVisible = true"
24
+ @backlink:click="closeBlade(blades.length - 1)"
25
+ @logo:click="openRoot"
26
+ >
27
+ <template #app-switcher>
28
+ <slot name="app-switcher">
29
+ <VcAppSwitcher
30
+ :apps-list="appsList"
31
+ @on-click="switchApp($event)"
54
32
  />
55
33
  </slot>
56
- <slot name="toolbar:notifications-dropdown">
34
+ </template>
35
+
36
+ <!-- Toolbar slot -->
37
+ <template #toolbar>
38
+ <!-- <slot
39
+ name="toolbar"
40
+ v-bind="{
41
+ LanguageSelector,
42
+ UserDropdownButton,
43
+ NotificationDropdown,
44
+ ThemeSelector,
45
+ }"
46
+ >
47
+ <slot
48
+ v-if="$slots['toolbar:prepend']"
49
+ name="toolbar:prepend"
50
+ ></slot>
51
+ <slot name="toolbar:theme-selector">
52
+ <ThemeSelector />
53
+ </slot>
54
+ <slot name="toolbar:language-selector">
55
+ <LanguageSelector />
56
+ </slot>
57
+ <slot name="toolbar:notifications-dropdown">
58
+ <NotificationDropdown />
59
+ </slot>
60
+ </slot> -->
61
+
62
+ <slot
63
+ name="toolbar:notifications-dropdown"
64
+ :notifications-dropdown="NotificationDropdown"
65
+ >
57
66
  <NotificationDropdown />
58
67
  </slot>
68
+ </template>
69
+
70
+ <template #navmenu>
71
+ <VcAppMenu
72
+ v-if="!disableMenu"
73
+ ref="menu"
74
+ class="vc-app__app-menu"
75
+ :version="version"
76
+ @item:click="onMenuItemClick"
77
+ >
78
+ </VcAppMenu>
79
+ </template>
80
+
81
+ <template #user-dropdown>
59
82
  <slot
60
83
  name="toolbar:user-dropdown"
61
- :user-dropdown="UserDropdownButton"
84
+ :user-dropdown="UserDropdownComponent as unknown as typeof UserDropdownButton"
62
85
  >
63
- <UserDropdownButton
64
- :avatar-url="avatar"
65
- :role="role"
66
- :name="name"
67
- />
86
+ <UserDropdownComponent />
68
87
  </slot>
69
- </slot>
70
- </template>
71
- </VcAppBar>
72
-
73
- <div class="vc-app__main-content">
74
- <!-- Init main menu -->
75
- <VcAppMenu
76
- v-if="!disableMenu"
77
- ref="menu"
78
- class="vc-app__app-menu"
79
- :version="version"
80
- @item:click="onMenuItemClick"
81
- >
82
- </VcAppMenu>
88
+ </template>
89
+ </VcAppBar>
83
90
 
84
91
  <!-- Blade navigation -->
85
92
  <div
@@ -98,23 +105,22 @@
98
105
  </template>
99
106
 
100
107
  <script lang="ts" setup>
101
- import { inject, provide } from "vue";
108
+ import { h, inject, provide } from "vue";
102
109
  import VcAppBar from "./_internal/vc-app-bar/vc-app-bar.vue";
103
110
  import VcAppMenu from "./_internal/vc-app-menu/vc-app-menu.vue";
104
111
  import {
105
112
  VcPopupContainer,
106
- LanguageSelector,
107
113
  UserDropdownButton,
108
114
  useAppSwitcher,
109
115
  useBladeNavigation,
110
116
  NotificationDropdown,
111
117
  BladeRoutesRecord,
112
- ThemeSelector,
113
118
  } from "./../../../../shared/components";
114
119
  import { useNotifications, useUser } from "../../../../core/composables";
115
120
  import { useRoute, useRouter } from "vue-router";
116
121
  import { watchOnce } from "@vueuse/core";
117
122
  import { MenuItem } from "../../../../core/types";
123
+ import { useToolbarSlots } from "./composables/useToolbarSlots";
118
124
 
119
125
  export interface Props {
120
126
  isReady: boolean;
@@ -133,14 +139,14 @@ defineOptions({
133
139
 
134
140
  defineSlots<{
135
141
  "app-switcher": void;
136
- toolbar: (props: {
137
- UserDropdownButton: typeof UserDropdownButton;
138
- LanguageSelector: typeof LanguageSelector;
139
- NotificationDropdown: typeof NotificationDropdown;
140
- }) => void;
142
+ // toolbar: (props: {
143
+ // UserDropdownButton: typeof UserDropdownButton;
144
+ // LanguageSelector: typeof LanguageSelector;
145
+ // NotificationDropdown: typeof NotificationDropdown;
146
+ // }) => void;
141
147
  "toolbar:prepend": void;
142
148
  "toolbar:language-selector": void;
143
- "toolbar:notifications-dropdown": void;
149
+ "toolbar:notifications-dropdown": (props: { notificationsDropdown: typeof NotificationDropdown }) => void;
144
150
  "toolbar:user-dropdown": (props: { userDropdown: typeof UserDropdownButton }) => void;
145
151
  "blade-navigation": void;
146
152
  "toolbar:theme-selector": void;
@@ -162,6 +168,17 @@ const route = useRoute();
162
168
  const { isAuthenticated } = useUser();
163
169
  const routes = router.getRoutes();
164
170
 
171
+ const { getToolbarMenuItems } = useToolbarSlots();
172
+
173
+ const UserDropdownComponent = () => {
174
+ return h(UserDropdownButton, {
175
+ avatar: props.avatar,
176
+ role: props.role,
177
+ name: props.name,
178
+ menuItems: getToolbarMenuItems(),
179
+ });
180
+ };
181
+
165
182
  const onMenuItemClick = function (item: MenuItem) {
166
183
  console.debug(`vc-app#onMenuItemClick() called.`);
167
184
  if (item.routeId) {
@@ -234,7 +251,7 @@ provide("$dynamicModules", dynamicModules);
234
251
  }
235
252
 
236
253
  &__workspace {
237
- @apply tw-px-2 tw-w-full tw-overflow-hidden tw-flex tw-grow tw-basis-0 tw-relative;
254
+ @apply tw-w-full tw-overflow-hidden tw-flex tw-grow tw-basis-0 tw-relative;
238
255
 
239
256
  .vc-app_mobile & {
240
257
  @apply tw-p-0;
@@ -63,9 +63,9 @@
63
63
  v-if="!$isMobile.value"
64
64
  class="vc-blade-header__controls"
65
65
  >
66
- <template v-if="expandable">
66
+ <template v-if="blade.expandable">
67
67
  <div
68
- v-if="maximized"
68
+ v-if="blade.maximized"
69
69
  class="vc-blade-header__button"
70
70
  @click="onCollapse"
71
71
  >
@@ -79,10 +79,7 @@
79
79
  class="vc-blade-header__button"
80
80
  @click="onExpand"
81
81
  >
82
- <VcIcon
83
- icon="fas fa-window-maximize"
84
- size="s"
85
- />
82
+ <VcIcon :icon="AppWindowIcon" />
86
83
  </div>
87
84
  </template>
88
85
  <div
@@ -90,7 +87,10 @@
90
87
  class="vc-blade-header__button"
91
88
  @click="onClose"
92
89
  >
93
- <VcIcon icon="fas fa-times" />
90
+ <VcIcon
91
+ :icon="CrossSignIcon"
92
+ size="xs"
93
+ />
94
94
  </div>
95
95
  </div>
96
96
  </div>
@@ -98,12 +98,11 @@
98
98
 
99
99
  <script lang="ts" setup>
100
100
  import { VcIcon } from "./../../../../";
101
- import { ref } from "vue";
101
+ import { ComputedRef, inject, ref } from "vue";
102
102
  import { useFloating, shift } from "@floating-ui/vue";
103
+ import { CrossSignIcon, AppWindowIcon } from "../../../../atoms/vc-icon/icons";
103
104
 
104
105
  export interface Props {
105
- expandable?: boolean;
106
- maximized?: boolean;
107
106
  closable?: boolean;
108
107
  title?: string;
109
108
  subtitle?: string;
@@ -114,6 +113,7 @@ const props = defineProps<Props>();
114
113
 
115
114
  const emit = defineEmits(["close", "expand", "collapse"]);
116
115
 
116
+ const blade = inject("$blade") as ComputedRef<{ expandable: boolean; maximized: boolean }>;
117
117
  const tooltipVisible = ref(false);
118
118
  const tooltipIconRef = ref<HTMLElement | null>(null);
119
119
  const tooltipRef = ref<HTMLElement | null>(null);
@@ -123,13 +123,13 @@ const { floatingStyles } = useFloating(tooltipIconRef, tooltipRef, {
123
123
  });
124
124
 
125
125
  function onExpand(): void {
126
- if (props.expandable) {
126
+ if (blade.value.expandable) {
127
127
  emit("expand");
128
128
  }
129
129
  }
130
130
 
131
131
  function onCollapse(): void {
132
- if (props.expandable) {
132
+ if (blade.value.expandable) {
133
133
  emit("collapse");
134
134
  }
135
135
  }
@@ -143,7 +143,7 @@ function onClose(): void {
143
143
 
144
144
  <style lang="scss">
145
145
  :root {
146
- --blade-header-height: 50px;
146
+ --blade-header-height: 82px;
147
147
  --blade-header-background-color: var(--additional-50);
148
148
 
149
149
  --blade-header-button-color: var(--secondary-500);
@@ -166,7 +166,7 @@ function onClose(): void {
166
166
  }
167
167
 
168
168
  .vc-blade-header {
169
- @apply tw-shrink-0 tw-h-[var(--blade-header-height)] tw-bg-[color:var(--blade-header-background-color)] tw-flex tw-items-center tw-py-0 tw-px-4 tw-border-solid tw-border-b tw-border-b-[color:var(--blade-header-border-color)];
169
+ @apply tw-shrink-0 tw-h-[var(--blade-header-height)] tw-bg-[color:var(--blade-header-background-color)] tw-flex tw-items-center tw-py-0 tw-px-5 tw-border-solid tw-border-b tw-border-b-[color:var(--blade-header-border-color)];
170
170
 
171
171
  &__actions {
172
172
  @apply tw-grow tw-basis-0 tw-overflow-hidden tw-flex tw-justify-end;
@@ -197,11 +197,11 @@ function onClose(): void {
197
197
  }
198
198
 
199
199
  &__title {
200
- @apply tw-text-[color:var(--blade-header-title-color)] tw-text-lg/[23px] tw-truncate;
200
+ @apply tw-text-[color:var(--blade-header-title-color)] tw-text-xl/[23px] tw-truncate;
201
201
  }
202
202
 
203
203
  &__title-no-subtitle {
204
- @apply tw-text-[length:var(--blade-header-title-font-size)] tw-font-medium #{!important};
204
+ @apply tw-text-[length:var(--blade-header-title-font-size)] tw-font-semibold #{!important};
205
205
  }
206
206
 
207
207
  &__subtitle {
@@ -213,7 +213,7 @@ function onClose(): void {
213
213
  }
214
214
 
215
215
  &__button {
216
- @apply tw-text-[color:var(--blade-header-button-color)] tw-ml-4 tw-cursor-pointer hover:tw-text-[color:var(--blade-header-button-color-hover)];
216
+ @apply tw-text-[color:var(--blade-header-button-color)] tw-ml-2.5 tw-cursor-pointer hover:tw-text-[color:var(--blade-header-button-color-hover)];
217
217
  }
218
218
  }
219
219
  </style>