@vc-shell/framework 1.1.99-alpha.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/core/api/platform.ts +9883 -9883
  2. package/core/composables/useDynamicProperties/index.ts +16 -10
  3. package/core/composables/useNotifications/index.ts +1 -32
  4. package/core/composables/useSettings/index.ts +3 -8
  5. package/core/composables/useUser/index.ts +171 -74
  6. package/core/composables/useUserManagement/index.ts +25 -67
  7. package/core/interceptors/index.ts +56 -19
  8. package/core/plugins/signalR/index.ts +1 -27
  9. package/core/types/index.ts +0 -2
  10. package/dist/core/api/platform.d.ts +1 -1
  11. package/dist/core/api/platform.d.ts.map +1 -1
  12. package/dist/core/composables/useDynamicProperties/index.d.ts.map +1 -1
  13. package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
  14. package/dist/core/composables/useSettings/index.d.ts.map +1 -1
  15. package/dist/core/composables/useUser/index.d.ts +9 -18
  16. package/dist/core/composables/useUser/index.d.ts.map +1 -1
  17. package/dist/core/composables/useUserManagement/index.d.ts +7 -7
  18. package/dist/core/composables/useUserManagement/index.d.ts.map +1 -1
  19. package/dist/core/interceptors/index.d.ts +1 -2
  20. package/dist/core/interceptors/index.d.ts.map +1 -1
  21. package/dist/core/plugins/signalR/index.d.ts +0 -2
  22. package/dist/core/plugins/signalR/index.d.ts.map +1 -1
  23. package/dist/core/types/index.d.ts +1 -1
  24. package/dist/core/types/index.d.ts.map +1 -1
  25. package/dist/index.d.ts +0 -8
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/injection-keys.d.ts +1 -2
  28. package/dist/injection-keys.d.ts.map +1 -1
  29. package/dist/shared/components/app-switcher/composables/useAppSwitcher/index.d.ts.map +1 -1
  30. package/dist/shared/components/multilanguage-selector/multilanguage-selector.vue.d.ts +1 -1
  31. package/dist/shared/components/notifications/components/notification-container/index.d.ts +10 -10
  32. package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +1 -1
  33. package/dist/shared/components/sign-in/useExternalProvider.d.ts +1 -1
  34. package/dist/shared/components/sign-in/useExternalProvider.d.ts.map +1 -1
  35. package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +2 -2
  36. package/dist/shared/modules/dynamic/helpers/nodeBuilder.d.ts.map +1 -1
  37. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +2 -2
  38. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +2 -2
  39. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +1 -1
  40. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
  41. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +1 -1
  42. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +1 -1
  45. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
  46. package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts +2 -2
  47. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +1 -1
  48. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
  49. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +1 -1
  50. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
  51. package/dist/ui/components/molecules/index.d.ts +1 -0
  52. package/dist/ui/components/molecules/index.d.ts.map +1 -1
  53. package/dist/ui/components/molecules/vc-accordion/_internal/vc-accordion-item/vc-accordion-item.vue.d.ts +34 -0
  54. package/dist/ui/components/molecules/vc-accordion/_internal/vc-accordion-item/vc-accordion-item.vue.d.ts.map +1 -0
  55. package/dist/ui/components/molecules/vc-accordion/index.d.ts +7 -0
  56. package/dist/ui/components/molecules/vc-accordion/index.d.ts.map +1 -0
  57. package/dist/ui/components/molecules/vc-accordion/vc-accordion.vue.d.ts +42 -0
  58. package/dist/ui/components/molecules/vc-accordion/vc-accordion.vue.d.ts.map +1 -0
  59. package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-button.vue.d.ts +1 -1
  60. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +2 -2
  61. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
  62. package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts +1 -1
  63. package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
  64. package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts +1 -1
  65. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +1 -1
  66. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
  67. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts +1 -1
  68. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts.map +1 -1
  69. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
  70. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-base-button.vue.d.ts +1 -1
  71. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts +1 -1
  72. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts.map +1 -1
  73. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-circle-button.vue.d.ts +1 -1
  74. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-circle-button.vue.d.ts.map +1 -1
  75. package/dist/ui/components/organisms/vc-blade/vc-blade.backupsb.d.ts +3 -3
  76. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +1 -1
  77. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
  78. package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts.map +1 -1
  79. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +2 -2
  80. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +1 -1
  81. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
  82. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +5 -5
  83. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
  84. package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +1 -1
  85. package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts.map +1 -1
  86. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +1 -1
  87. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -1
  88. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-body/vc-table-body.vue.d.ts +2 -2
  89. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-row/vc-table-row.vue.d.ts +2 -2
  90. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue.d.ts +3 -3
  91. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +1 -1
  92. package/package.json +5 -7
  93. package/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue +2 -2
  94. package/shared/components/app-switcher/composables/useAppSwitcher/index.ts +1 -15
  95. package/shared/components/sign-in/useExternalProvider.ts +1 -11
  96. package/shared/modules/dynamic/helpers/nodeBuilder.ts +3 -11
  97. package/ui/components/atoms/vc-badge/vc-badge.stories.ts +1 -1
  98. package/ui/components/atoms/vc-button/vc-button.stories.ts +1 -1
  99. package/ui/components/atoms/vc-card/vc-card.stories.ts +1 -1
  100. package/ui/components/atoms/vc-col/vc-col.stories.ts +1 -1
  101. package/ui/components/atoms/vc-container/vc-container.stories.ts +1 -1
  102. package/ui/components/atoms/vc-hint/vc-hint.stories.ts +1 -1
  103. package/ui/components/atoms/vc-icon/vc-icon.stories.ts +1 -1
  104. package/ui/components/atoms/vc-image/vc-image.stories.ts +1 -1
  105. package/ui/components/atoms/vc-label/vc-label.stories.ts +1 -1
  106. package/ui/components/atoms/vc-link/vc-link.stories.ts +1 -1
  107. package/ui/components/atoms/vc-progress/vc-progress.stories.ts +1 -1
  108. package/ui/components/atoms/vc-row/vc-row.stories.ts +1 -1
  109. package/ui/components/atoms/vc-skeleton/vc-skeleton.stories.ts +1 -1
  110. package/ui/components/atoms/vc-status/vc-status.stories.ts +1 -1
  111. package/ui/components/atoms/vc-status-icon/vc-status-icon.stories.ts +1 -1
  112. package/ui/components/atoms/vc-tooltip/vc-tooltip.stories.ts +1 -1
  113. package/ui/components/atoms/vc-video/vc-video.stories.ts +1 -1
  114. package/ui/components/atoms/vc-widget/vc-widget.stories.ts +1 -1
  115. package/ui/components/molecules/index.ts +1 -0
  116. package/ui/components/molecules/vc-accordion/_internal/vc-accordion-item/vc-accordion-item.vue +251 -0
  117. package/ui/components/molecules/vc-accordion/index.ts +11 -0
  118. package/ui/components/molecules/vc-accordion/vc-accordion.stories.ts +526 -0
  119. package/ui/components/molecules/vc-accordion/vc-accordion.vue +176 -0
  120. package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.stories.ts +1 -1
  121. package/ui/components/molecules/vc-checkbox/vc-checkbox.stories.ts +1 -1
  122. package/ui/components/molecules/vc-editor/vc-editor.stories.ts +1 -1
  123. package/ui/components/molecules/vc-field/vc-field.stories.ts +1 -1
  124. package/ui/components/molecules/vc-file-upload/vc-file-upload.stories.ts +1 -1
  125. package/ui/components/molecules/vc-form/vc-form.stories.ts +1 -1
  126. package/ui/components/molecules/vc-input/vc-input.stories.ts +1 -1
  127. package/ui/components/molecules/vc-input-currency/vc-input-currency.stories.ts +1 -1
  128. package/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.stories.ts +1 -1
  129. package/ui/components/molecules/vc-multivalue/vc-multivalue.stories.ts +1 -1
  130. package/ui/components/molecules/vc-pagination/vc-pagination.stories.ts +1 -1
  131. package/ui/components/molecules/vc-radio-button/vc-radio-button.stories.ts +1 -1
  132. package/ui/components/molecules/vc-rating/vc-rating.stories.ts +1 -1
  133. package/ui/components/molecules/vc-select/vc-select.stories.ts +1 -1
  134. package/ui/components/molecules/vc-slider/vc-slider.stories.ts +1 -1
  135. package/ui/components/molecules/vc-switch/vc-switch.stories.ts +1 -1
  136. package/ui/components/molecules/vc-textarea/vc-textarea.stories.ts +1 -1
  137. package/ui/components/molecules/vc-toast/vc-toast.stories.ts +1 -1
  138. package/ui/components/organisms/vc-app/vc-app.vue +2 -20
  139. package/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue +4 -0
  140. package/ui/components/organisms/vc-gallery/vc-gallery.stories.ts +1 -1
  141. package/ui/components/organisms/vc-popup/vc-popup.stories.ts +1 -1
  142. package/core/providers/README.md +0 -176
  143. package/core/providers/auth-provider-manager.ts +0 -74
  144. package/core/providers/auth-provider-utils.ts +0 -26
  145. package/core/providers/example-custom-auth-provider.ts +0 -162
  146. package/core/providers/index.ts +0 -3
  147. package/core/providers/platform-auth-provider.ts +0 -207
  148. package/core/types/auth-provider.ts +0 -40
  149. package/dist/assets/042c75b764bc78a7.svg +0 -1
  150. package/dist/assets/0ba156439a339f2a.svg +0 -1
  151. package/dist/assets/0be560bfb22d0e72.woff2 +0 -0
  152. package/dist/assets/0f590f8a94577092.svg +0 -1
  153. package/dist/assets/0fc5820f8be53a1b.svg +0 -1
  154. package/dist/assets/105efd028edc1dfe.woff +0 -0
  155. package/dist/assets/10768e2cc79fc60b.svg +0 -1
  156. package/dist/assets/11b3d25a56fd9a21.woff2 +0 -0
  157. package/dist/assets/154365acf3010d96.woff2 +0 -0
  158. package/dist/assets/157b8721e0600ea8.svg +0 -1
  159. package/dist/assets/15e91cdd649cde9a.svg +0 -1
  160. package/dist/assets/19275e398ae57130.woff2 +0 -0
  161. package/dist/assets/1a3e84b2457f709a.woff +0 -0
  162. package/dist/assets/1de63eb118636cce.svg +0 -1
  163. package/dist/assets/1ea01de36eb5491b.svg +0 -1
  164. package/dist/assets/204eaf512fde2023.svg +0 -1
  165. package/dist/assets/2088983edf42e153.svg +0 -1
  166. package/dist/assets/208f810a9321a327.svg +0 -1
  167. package/dist/assets/21220a9d10e6c558.svg +0 -1
  168. package/dist/assets/220db345a102045d.woff2 +0 -0
  169. package/dist/assets/225da11d23968333.svg +0 -1
  170. package/dist/assets/226f862dd81bdc13.woff2 +0 -0
  171. package/dist/assets/23a2d53395ddb14f.woff +0 -0
  172. package/dist/assets/259e6ad461a52ad7.svg +0 -1
  173. package/dist/assets/261e6dec4d53b9ac.woff +0 -0
  174. package/dist/assets/262f46a0b6d94bb6.svg +0 -1
  175. package/dist/assets/2857c513073467da.svg +0 -1
  176. package/dist/assets/2b3be7889467d98f.woff +0 -0
  177. package/dist/assets/2d4e6190eec72737.svg +0 -1
  178. package/dist/assets/2eba973185078bc8.woff +0 -0
  179. package/dist/assets/334d3f6bc766c516.woff +0 -0
  180. package/dist/assets/34ff7dd0c2285956.svg +0 -1
  181. package/dist/assets/3d26b7c1ab78bbe2.woff +0 -0
  182. package/dist/assets/3d892965ab4f1cbb.woff2 +0 -0
  183. package/dist/assets/3f8c4cc8099e34b6.woff2 +0 -0
  184. package/dist/assets/40a0e53b79ce63c6.woff2 +0 -0
  185. package/dist/assets/41275bcb979cb650.svg +0 -1
  186. package/dist/assets/434f7982590e462f.woff +0 -0
  187. package/dist/assets/475937116ee3314a.woff2 +0 -0
  188. package/dist/assets/489710fb710e73f0.woff +0 -0
  189. package/dist/assets/49791943b3872376.woff2 +0 -0
  190. package/dist/assets/4ae5f23e0ca888e7.woff2 +0 -0
  191. package/dist/assets/4d7a77b0e5373992.svg +0 -1
  192. package/dist/assets/4e43c74354534fb3.svg +0 -1
  193. package/dist/assets/4fe75f5117100705.svg +0 -1
  194. package/dist/assets/52e261a005074e1b.woff +0 -0
  195. package/dist/assets/5304c3d05a5f9789.woff2 +0 -0
  196. package/dist/assets/54cda5482c6c9218.woff +0 -0
  197. package/dist/assets/550f52072e8ccafe.woff2 +0 -0
  198. package/dist/assets/572bb1bb4156a9c1.svg +0 -1
  199. package/dist/assets/6075995d7e74da46.woff2 +0 -0
  200. package/dist/assets/617c4736236e199e.woff +0 -0
  201. package/dist/assets/67230f05dc94a265.svg +0 -1
  202. package/dist/assets/6798e4dd4add9b48.svg +0 -1
  203. package/dist/assets/686d4077c1e26876.woff2 +0 -0
  204. package/dist/assets/698ec6c722d4cb05.woff2 +0 -0
  205. package/dist/assets/6a3e73faf406cf33.svg +0 -1
  206. package/dist/assets/72de3a63bc0b70dd.svg +0 -1
  207. package/dist/assets/74c6a6ab81bb6340.woff2 +0 -0
  208. package/dist/assets/74ed5f8a78e71106.svg +0 -1
  209. package/dist/assets/7a5aa5abd625137f.ttf +0 -0
  210. package/dist/assets/7ce0c166fd6a1204.woff +0 -0
  211. package/dist/assets/7d55399c2a7bc985.svg +0 -1
  212. package/dist/assets/7d970675c69fca1d.woff +0 -0
  213. package/dist/assets/7eda727273fd98d3.svg +0 -1
  214. package/dist/assets/7f6ebfd707b76ca2.woff +0 -0
  215. package/dist/assets/7fa898d213fcc7bc.woff2 +0 -0
  216. package/dist/assets/861e6b7192b3b6c7.woff +0 -0
  217. package/dist/assets/8bbcde81ba21ecb2.woff2 +0 -0
  218. package/dist/assets/8f6657e5e0b8d3e4.woff +0 -0
  219. package/dist/assets/910b0d99b9e26568.svg +0 -1
  220. package/dist/assets/91fe94e424323d61.woff +0 -0
  221. package/dist/assets/92508f8707159b51.svg +0 -1
  222. package/dist/assets/9392bf1d591e1abb.svg +0 -1
  223. package/dist/assets/97e8d4984ba0713a.woff2 +0 -0
  224. package/dist/assets/9cb83236f6bb7ab1.svg +0 -1
  225. package/dist/assets/9d37314695c0b68d.woff +0 -0
  226. package/dist/assets/a03cdcd8da5bb987.woff +0 -0
  227. package/dist/assets/a18404194e3f9047.svg +0 -1
  228. package/dist/assets/a2017fe7f0a26510.svg +0 -1
  229. package/dist/assets/ab6e7190bb1492d5.woff2 +0 -0
  230. package/dist/assets/abf88f301a0730f4.svg +0 -1
  231. package/dist/assets/ac1a99b3d05d8232.woff +0 -0
  232. package/dist/assets/aed17cb6fdad2ada.woff2 +0 -0
  233. package/dist/assets/b1a596e31ad1185a.svg +0 -1
  234. package/dist/assets/b27767411c8427be.woff +0 -0
  235. package/dist/assets/b325adcae33bbe7a.svg +0 -1
  236. package/dist/assets/b372390551ca2fa1.svg +0 -1
  237. package/dist/assets/b5bb1e8fc975decd.svg +0 -1
  238. package/dist/assets/b645a4a2181b9dc1.svg +0 -1
  239. package/dist/assets/b6499ddce0a4ef7d.svg +0 -1
  240. package/dist/assets/b94421fadd23b0f2.svg +0 -1
  241. package/dist/assets/bb28fb0f27f1c11b.svg +0 -1
  242. package/dist/assets/c9191b638a10f67b.woff2 +0 -0
  243. package/dist/assets/ca791c5ca5848a03.svg +0 -1
  244. package/dist/assets/cb32840ce330103f.woff +0 -0
  245. package/dist/assets/ccc878931d74181b.woff2 +0 -0
  246. package/dist/assets/d084bda16abe8a56.svg +0 -1
  247. package/dist/assets/d32b129cae2fffd6.svg +0 -1
  248. package/dist/assets/d35a4c7113315758.woff2 +0 -0
  249. package/dist/assets/d3f792f54ae4c307.svg +0 -1
  250. package/dist/assets/d5a5b8630120073d.svg +0 -1
  251. package/dist/assets/d5f9664ebbfb104b.svg +0 -1
  252. package/dist/assets/d84247b59449dd88.woff2 +0 -0
  253. package/dist/assets/dceaf3b39091e6a4.woff +0 -0
  254. package/dist/assets/dd05d43ff0df2fc7.svg +0 -1
  255. package/dist/assets/e2ad5b3428289141.woff +0 -0
  256. package/dist/assets/e38acaa1757232e0.svg +0 -1
  257. package/dist/assets/e4a8550f1c7ffe36.svg +0 -1
  258. package/dist/assets/e5adb5ae3a3698f6.svg +0 -1
  259. package/dist/assets/e61a1889bac955f4.woff2 +0 -0
  260. package/dist/assets/e72bb11356af94c7.svg +0 -1
  261. package/dist/assets/e98196a9f8dcb2f0.svg +0 -1
  262. package/dist/assets/ebec912a42ad49ff.woff +0 -0
  263. package/dist/assets/ee6983981ffcbb41.woff2 +0 -0
  264. package/dist/assets/f09d89268e4c0317.svg +0 -1
  265. package/dist/assets/f239394367fcf005.woff2 +0 -0
  266. package/dist/assets/f5722262b6e7214e.woff2 +0 -0
  267. package/dist/assets/f7fc8bf46089d8b2.svg +0 -1
  268. package/dist/assets/fc829e3f399b70e0.woff2 +0 -0
  269. package/dist/assets/fe141d99763f5d2b.woff +0 -0
  270. package/dist/assets/fed13b0d59903483.svg +0 -1
  271. package/dist/assets/fed757d2c2344ead.woff2 +0 -0
  272. package/dist/assets/ffc438f20e79ce73.woff +0 -0
  273. package/dist/core/providers/auth-provider-manager.d.ts +0 -34
  274. package/dist/core/providers/auth-provider-manager.d.ts.map +0 -1
  275. package/dist/core/providers/auth-provider-utils.d.ts +0 -17
  276. package/dist/core/providers/auth-provider-utils.d.ts.map +0 -1
  277. package/dist/core/providers/example-custom-auth-provider.d.ts +0 -45
  278. package/dist/core/providers/example-custom-auth-provider.d.ts.map +0 -1
  279. package/dist/core/providers/index.d.ts +0 -3
  280. package/dist/core/providers/index.d.ts.map +0 -1
  281. package/dist/core/providers/platform-auth-provider.d.ts +0 -34
  282. package/dist/core/providers/platform-auth-provider.d.ts.map +0 -1
  283. package/dist/core/types/auth-provider.d.ts +0 -27
  284. package/dist/core/types/auth-provider.d.ts.map +0 -1
  285. package/dist/framework.js +0 -25048
  286. package/dist/index.css +0 -9
  287. package/dist/vendor-boolbase-A_-Pp38P.js +0 -23
  288. package/dist/vendor-cheerio-C46iBpCu.js +0 -1053
  289. package/dist/vendor-cheerio-select-C8emRZsx.js +0 -191
  290. package/dist/vendor-core-js-DDuR6YMQ.js +0 -1206
  291. package/dist/vendor-css-select-DR9bp36p.js +0 -622
  292. package/dist/vendor-css-what-CZZaquJM.js +0 -267
  293. package/dist/vendor-cypress-signalr-mock-DjBxJHA6.js +0 -769
  294. package/dist/vendor-date-fns-sZ1zMzTH.js +0 -3008
  295. package/dist/vendor-dom-serializer-Sk3xHhQk.js +0 -213
  296. package/dist/vendor-domelementtype-B3sFIGaC.js +0 -21
  297. package/dist/vendor-domhandler-CL40eeX9.js +0 -311
  298. package/dist/vendor-dompurify-BuxjWxA2.js +0 -553
  299. package/dist/vendor-domutils-BiVCXO8c.js +0 -386
  300. package/dist/vendor-entities-CCReaWqU.js +0 -364
  301. package/dist/vendor-floating-ui-core-Cl9nBI4j.js +0 -349
  302. package/dist/vendor-floating-ui-dom-3z44E4mf.js +0 -395
  303. package/dist/vendor-floating-ui-utils-D2sT7feD.js +0 -259
  304. package/dist/vendor-floating-ui-vue-ClrgkeO5.js +0 -107
  305. package/dist/vendor-headlessui-vue-D7tzx4PC.js +0 -961
  306. package/dist/vendor-htmlparser2-CpQu33io.js +0 -735
  307. package/dist/vendor-intlify-core-base-Da62SG4M.js +0 -1130
  308. package/dist/vendor-intlify-message-compiler-CHvGSH2u.js +0 -952
  309. package/dist/vendor-intlify-shared-jWBPd9WB.js +0 -144
  310. package/dist/vendor-iso-639-1-BJO6WZAt.js +0 -781
  311. package/dist/vendor-linkify-it-LzoUhj6C.js +0 -199
  312. package/dist/vendor-linkifyjs-dCH9UYes.js +0 -701
  313. package/dist/vendor-lodash-es-BqkGj3Jl.js +0 -4816
  314. package/dist/vendor-lucide-vue-next-m0L4DzUL.js +0 -29780
  315. package/dist/vendor-markdown-it-Czg9qJTh.js +0 -2263
  316. package/dist/vendor-markdown-it-task-lists-BxLwscWK.js +0 -69
  317. package/dist/vendor-mdurl-DZFDNdqC.js +0 -192
  318. package/dist/vendor-microsoft-applicationinsights-analytics-js-C1Yxuzwg.js +0 -1207
  319. package/dist/vendor-microsoft-applicationinsights-cfgsync-js-DArHD4Dn.js +0 -261
  320. package/dist/vendor-microsoft-applicationinsights-channel-js-Dbs0XRes.js +0 -1822
  321. package/dist/vendor-microsoft-applicationinsights-common-OjU3Zs6r.js +0 -1921
  322. package/dist/vendor-microsoft-applicationinsights-core-js-DWRvqBek.js +0 -4276
  323. package/dist/vendor-microsoft-applicationinsights-dependencies-js-BxTNw-Sk.js +0 -1407
  324. package/dist/vendor-microsoft-applicationinsights-properties-js-Gfhpu-At.js +0 -572
  325. package/dist/vendor-microsoft-applicationinsights-shims-CxtPYiwp.js +0 -43
  326. package/dist/vendor-microsoft-applicationinsights-web-9yeJ0EZv.js +0 -487
  327. package/dist/vendor-microsoft-dynamicproto-js-DSkQkH3T.js +0 -147
  328. package/dist/vendor-microsoft-signalr-Bgpbb4fW.js +0 -1761
  329. package/dist/vendor-moment-DMLRxgRE.js +0 -2589
  330. package/dist/vendor-nevware21-ts-async-CdMc_sGt.js +0 -261
  331. package/dist/vendor-nevware21-ts-utils-Dy41wRhA.js +0 -853
  332. package/dist/vendor-nth-check-CS1D-zr5.js +0 -45
  333. package/dist/vendor-orderedmap-B3SOk52B.js +0 -103
  334. package/dist/vendor-parse5-htmlparser2-tree-adapter-BWywtwol.js +0 -143
  335. package/dist/vendor-parse5-zq5Hn0y9.js +0 -5749
  336. package/dist/vendor-prettier-cZc5sCiS.js +0 -4875
  337. package/dist/vendor-prosemirror-commands-Cu1q5ZDk.js +0 -385
  338. package/dist/vendor-prosemirror-dropcursor-BuGmFgFS.js +0 -86
  339. package/dist/vendor-prosemirror-gapcursor-CyYcCWVK.js +0 -203
  340. package/dist/vendor-prosemirror-history-DzRcbrCw.js +0 -248
  341. package/dist/vendor-prosemirror-keymap-KfbdOEJw.js +0 -62
  342. package/dist/vendor-prosemirror-markdown-OyxRuawK.js +0 -650
  343. package/dist/vendor-prosemirror-model-DFp4ML7B.js +0 -2730
  344. package/dist/vendor-prosemirror-schema-list-CwCUArvx.js +0 -87
  345. package/dist/vendor-prosemirror-state-DHaVEu5h.js +0 -821
  346. package/dist/vendor-prosemirror-tables-mYok4vGT.js +0 -1711
  347. package/dist/vendor-prosemirror-transform-CAHmg-qG.js +0 -1508
  348. package/dist/vendor-prosemirror-view-CspJa44O.js +0 -3751
  349. package/dist/vendor-punycode-js-CgGegfA_.js +0 -133
  350. package/dist/vendor-rope-sequence-BWC2FSrq.js +0 -100
  351. package/dist/vendor-semver-Dar8oU3V.js +0 -1023
  352. package/dist/vendor-swiper-1bp0oJwt.js +0 -3387
  353. package/dist/vendor-tanstack-virtual-core-l0sNRNKZ.js +0 -1
  354. package/dist/vendor-tanstack-vue-virtual-CD9yLWd7.js +0 -1
  355. package/dist/vendor-tiptap-core-ClsTgaMv.js +0 -3699
  356. package/dist/vendor-tiptap-extension-blockquote-r1MBx4hD.js +0 -54
  357. package/dist/vendor-tiptap-extension-bold-BjLI4i8b.js +0 -74
  358. package/dist/vendor-tiptap-extension-code-D5-kDnMW.js +0 -52
  359. package/dist/vendor-tiptap-extension-code-block-RjEb0zPA.js +0 -215
  360. package/dist/vendor-tiptap-extension-document--PLOxIdq.js +0 -12
  361. package/dist/vendor-tiptap-extension-hard-break-9cxC2YOS.js +0 -59
  362. package/dist/vendor-tiptap-extension-heading-2w0TutHn.js +0 -63
  363. package/dist/vendor-tiptap-extension-horizontal-rule-CFowa_lc.js +0 -56
  364. package/dist/vendor-tiptap-extension-image-aWn-na6j.js +0 -127
  365. package/dist/vendor-tiptap-extension-italic-Bn-6saY0.js +0 -73
  366. package/dist/vendor-tiptap-extension-link-BmcG1_k-.js +0 -298
  367. package/dist/vendor-tiptap-extension-list-BrNBJ45n.js +0 -707
  368. package/dist/vendor-tiptap-extension-paragraph-DAiYhwUB.js +0 -41
  369. package/dist/vendor-tiptap-extension-placeholder-9tURDKy-.js +0 -1
  370. package/dist/vendor-tiptap-extension-strike-DqbXPfos.js +0 -64
  371. package/dist/vendor-tiptap-extension-table-DQwPaR7v.js +0 -374
  372. package/dist/vendor-tiptap-extension-table-cell-C0tEP_0i.js +0 -1
  373. package/dist/vendor-tiptap-extension-table-header-C0tEP_0i.js +0 -1
  374. package/dist/vendor-tiptap-extension-table-row-C0tEP_0i.js +0 -1
  375. package/dist/vendor-tiptap-extension-text-BFnfj70b.js +0 -13
  376. package/dist/vendor-tiptap-extension-text-style-Darua3qr.js +0 -235
  377. package/dist/vendor-tiptap-extension-underline-QyVnBqQZ.js +0 -65
  378. package/dist/vendor-tiptap-extensions-CU-D7bfm.js +0 -290
  379. package/dist/vendor-tiptap-markdown-BwATYN5A.js +0 -826
  380. package/dist/vendor-tiptap-pm-d91nGny8.js +0 -1
  381. package/dist/vendor-tiptap-starter-kit-5luf7zzS.js +0 -28
  382. package/dist/vendor-tiptap-vue-3-CFBErZGb.js +0 -157
  383. package/dist/vendor-truncate-html-DYC0Lj9o.js +0 -145
  384. package/dist/vendor-uc-micro-4lbSaZOs.js +0 -17
  385. package/dist/vendor-vee-validate-i18n-zT8NxX3R.js +0 -93
  386. package/dist/vendor-vee-validate-rules-4oWUZPpG.js +0 -316
  387. package/dist/vendor-vue-currency-input-BqaYAdhD.js +0 -317
  388. package/dist/vendor-vue-demi-CD9yLWd7.js +0 -1
  389. package/dist/vendor-vue-devtools-api-aVYGocXp.js +0 -93
  390. package/dist/vendor-vue-i18n-CO5LWKE0.js +0 -1370
  391. package/dist/vendor-vue3-application-insights-BKiiWnf2.js +0 -69
  392. package/dist/vendor-vue3-touch-events-DqysuuWh.js +0 -169
  393. package/dist/vendor-vuepic-vue-datepicker-CaY_xSnG.js +0 -4998
  394. package/dist/vendor-vueuse-components-sgKpNzof.js +0 -542
  395. package/dist/vendor-vueuse-core-D0cN7FqY.js +0 -5130
  396. package/dist/vendor-vueuse-shared-Pt0UEStA.js +0 -1169
  397. package/dist/vendor-w3c-keyname-CLxH8j-f.js +0 -92
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vc-shell/framework",
3
- "version": "1.1.99-alpha.1",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "main": "./dist/framework.js",
6
6
  "types": "./dist/index.d.ts",
@@ -90,9 +90,9 @@
90
90
  "@fullhuman/postcss-purgecss": "^7.0.2",
91
91
  "@laynezh/vite-plugin-lib-assets": "v1.1.0",
92
92
  "@types/dompurify": "^3.0.5",
93
- "@vc-shell/api-client-generator": "1.1.99-alpha.1",
94
- "@vc-shell/config-generator": "1.1.99-alpha.1",
95
- "@vc-shell/ts-config": "1.1.99-alpha.1",
93
+ "@vc-shell/api-client-generator": "1.2.0",
94
+ "@vc-shell/config-generator": "1.2.0",
95
+ "@vc-shell/ts-config": "1.2.0",
96
96
  "@vitejs/plugin-vue": "^5.2.3",
97
97
  "@vue/test-utils": "^2.4.5",
98
98
  "cypress-signalr-mock": "^1.5.0",
@@ -112,7 +112,5 @@
112
112
  "access": "public",
113
113
  "registry": "https://registry.npmjs.org/"
114
114
  },
115
- "stableVersion": "1.1.90",
116
- "npmTag": "alpha",
117
- "gitHead": "104a5b740c2b93da7702cd073a2d39d17977c83e"
115
+ "gitHead": "b2d01aef92535f1a9b6af0d621a43f920d541ba8"
118
116
  }
@@ -6,7 +6,7 @@
6
6
  @contextmenu.prevent
7
7
  >
8
8
  <GenericDropdown
9
- opened
9
+ :opened="true"
10
10
  :items="appsList"
11
11
  :is-item-active="(item) => locationHandler(item.relativeUrl ?? '')"
12
12
  max-height="auto"
@@ -72,7 +72,7 @@ const switchApp = (app: AppDescriptor) => {
72
72
  @apply tw-relative tw-flex tw-shrink-0 tw-h-full;
73
73
 
74
74
  &__item {
75
- @apply tw-flex tw-items-center tw-w-full tw-p-3;
75
+ @apply tw-flex tw-items-center tw-w-full tw-p-3 tw-w-full;
76
76
  }
77
77
 
78
78
  &__item-icon {
@@ -1,11 +1,8 @@
1
- import { computed, Ref, ref, inject } from "vue";
1
+ import { computed, Ref, ref } from "vue";
2
2
  import { AppDescriptor, AppsClient } from "../../../../../core/api/platform";
3
3
  import { usePermissions } from "../../../../../core/composables";
4
4
  import { notification } from "./../../../notifications";
5
5
  import { i18n } from "../../../../../core/plugins";
6
- import { AuthProviderKey } from "../../../../../injection-keys";
7
- import { IAuthProvider } from "../../../../../core/types/auth-provider";
8
- import { shouldEnablePlatformFeatures } from "../../../../../core/providers/auth-provider-utils";
9
6
 
10
7
  interface IUseAppSwitcher {
11
8
  readonly appsList: Ref<AppDescriptor[]>;
@@ -17,23 +14,12 @@ export function useAppSwitcher(): IUseAppSwitcher {
17
14
  const { hasAccess } = usePermissions();
18
15
  const appsList = ref<AppDescriptor[]>([]);
19
16
 
20
- // Inject auth provider to check if platform features should be enabled
21
- const authProvider = inject(AuthProviderKey);
22
-
23
17
  async function getApiClient(): Promise<AppsClient> {
24
18
  const client = new AppsClient();
25
19
  return client;
26
20
  }
27
21
 
28
22
  async function getApps() {
29
- // Skip loading apps for custom authentication providers
30
- if (!shouldEnablePlatformFeatures(authProvider)) {
31
- console.log("[useAppSwitcher] Skipping getApps - custom authentication provider detected");
32
- appsList.value = []; // Ensure empty list for custom providers
33
- return;
34
- }
35
-
36
- console.log("[useAppSwitcher] Loading apps from platform");
37
23
  const client = await getApiClient();
38
24
 
39
25
  try {
@@ -1,8 +1,6 @@
1
1
  import { useLocalStorage } from "@vueuse/core";
2
- import { inject, type Ref } from "vue";
2
+ import type { Ref } from "vue";
3
3
  import { ExternalSignInClient, ExternalSignInProviderInfo } from "../../../core/api/platform";
4
- import { shouldEnablePlatformFeatures } from "../../../core/providers/auth-provider-utils";
5
- import { AuthProviderKey } from "../../../injection-keys";
6
4
 
7
5
  export interface IUseExternalProvider {
8
6
  storage: Ref<{ providerType?: string | undefined }>;
@@ -14,9 +12,6 @@ export interface IUseExternalProvider {
14
12
  const VC_EXTERNAL_AUTH_DATA_KEY = "externalSignIn";
15
13
 
16
14
  export const useExternalProvider = (): IUseExternalProvider => {
17
- // Check if we're using a custom auth provider
18
- const authProvider = inject(AuthProviderKey);
19
- const isPlatformProvider = shouldEnablePlatformFeatures(authProvider);
20
15
  const externalSecurityClient = new ExternalSignInClient();
21
16
  const externalSignInStorage = useLocalStorage<{ providerType?: string | undefined }>(
22
17
  VC_EXTERNAL_AUTH_DATA_KEY,
@@ -86,11 +81,6 @@ export const useExternalProvider = (): IUseExternalProvider => {
86
81
  }
87
82
 
88
83
  async function getExternalLoginProviders() {
89
- if (!isPlatformProvider) {
90
- console.log("[useExternalProvider] Skipping getExternalLoginProviders - custom authentication provider detected");
91
- return undefined;
92
- }
93
-
94
84
  let result: ExternalSignInProviderInfo[] | undefined = undefined;
95
85
  try {
96
86
  result = await externalSecurityClient.getExternalLoginProviders();
@@ -14,15 +14,7 @@ import { toRefs } from "@vueuse/core";
14
14
  import { unrefNested } from "./unrefNested";
15
15
  import { usePermissions } from "../../../../core/composables";
16
16
 
17
- // Lazy initialization to avoid calling composables at module level
18
- let hasAccess: ReturnType<typeof usePermissions>["hasAccess"] | null = null;
19
- function getHasAccess() {
20
- if (!hasAccess) {
21
- const permissions = usePermissions();
22
- hasAccess = permissions.hasAccess;
23
- }
24
- return hasAccess;
25
- }
17
+ const { hasAccess } = usePermissions();
26
18
 
27
19
  function disabledHandler(
28
20
  disabled: { method?: string } | boolean,
@@ -177,7 +169,7 @@ function nodeBuilder<
177
169
  if (toValue(model) && Array.isArray(toValue(model))) {
178
170
  return toValue(model).map((modelItem: ToRefs<{ [x: string]: unknown; id: string }>) => {
179
171
  return controlSchema.fields.reduce((arr, fieldItem) => {
180
- if (safeIn("permissions", fieldItem) && !getHasAccess()(fieldItem.permissions)) {
172
+ if (safeIn("permissions", fieldItem) && !hasAccess(fieldItem.permissions)) {
181
173
  return arr;
182
174
  }
183
175
 
@@ -206,7 +198,7 @@ function nodeBuilder<
206
198
 
207
199
  return [
208
200
  controlSchema.fields.reduce((arr, field) => {
209
- if (safeIn("permissions", field) && !getHasAccess()(field.permissions)) {
201
+ if (safeIn("permissions", field) && !hasAccess(field.permissions)) {
210
202
  return arr;
211
203
  }
212
204
 
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import VcBadge from "./vc-badge.vue";
3
3
  import { ref } from "vue";
4
4
 
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcButton } from "./";
3
3
  import { VcIcon } from "../vc-icon";
4
4
 
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcCard } from ".";
3
3
  import { VcInput, VcCol, VcButton } from "./../../";
4
4
 
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcCol } from "./";
3
3
  import { VcRow } from "./../vc-row";
4
4
  import { VcImage } from "./../../";
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcContainer } from "./";
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcHint } from "./";
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcIcon } from "./index";
3
3
  import VcIconTest from "./vc-icon-test.vue";
4
4
  import VcIconExamples from "./vc-icon-examples.vue";
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcImage } from "./";
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcLabel } from "./";
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcLink } from "./";
3
3
 
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import { ref } from "vue";
2
- import type { Meta, StoryObj } from "@storybook/vue3";
2
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
3
3
  import { VcProgress } from "./";
4
4
 
5
5
  /**
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcRow } from "./";
3
3
  import { VcImage } from "./../../";
4
4
 
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import VcSkeleton from "./vc-skeleton.vue";
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcStatus } from "./";
3
3
  import { VcIcon } from "../vc-icon";
4
4
 
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcStatusIcon } from "./";
3
3
 
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import { ref } from "vue";
2
- import type { Meta, StoryObj } from "@storybook/vue3";
2
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
3
3
  import { VcTooltip } from "./";
4
4
 
5
5
  /**
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
2
  import { VcVideo } from "./";
3
3
 
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import { ref } from "vue";
2
- import type { Meta, StoryObj } from "@storybook/vue3";
2
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
3
3
  import { VcWidget } from "./";
4
4
  import { provideWidgetService } from "../../../../core/composables";
5
5
 
@@ -1,3 +1,4 @@
1
+ export * from "./vc-accordion";
1
2
  export * from "./vc-breadcrumbs";
2
3
  export * from "./vc-editor";
3
4
  export * from "./vc-form";
@@ -0,0 +1,251 @@
1
+ <template>
2
+ <div
3
+ class="vc-accordion-item"
4
+ :class="{
5
+ 'vc-accordion-item--expanded': isExpandedInternal,
6
+ 'vc-accordion-item--disabled': disabled,
7
+ 'vc-accordion-item--has-overflow': hasOverflow,
8
+ }"
9
+ >
10
+ <div
11
+ class="vc-accordion-item__header"
12
+ @click="toggle"
13
+ >
14
+ <div class="vc-accordion-item__title">
15
+ <slot name="title">
16
+ {{ title }}
17
+ </slot>
18
+ </div>
19
+ <VcIcon
20
+ v-if="hasOverflow"
21
+ class="vc-accordion-item__icon"
22
+ :class="{ 'vc-accordion-item__icon--rotated': isExpandedInternal }"
23
+ icon="lucide-chevron-down"
24
+ />
25
+ </div>
26
+
27
+ <div
28
+ ref="contentWrapperRef"
29
+ class="vc-accordion-item__content-wrapper"
30
+ :class="{
31
+ 'vc-accordion-item__content-wrapper--faded': hasOverflow && !isExpandedInternal,
32
+ 'vc-accordion-item__content-wrapper--scrollable': isExpandedInternal && hasScrollInExpandedState,
33
+ }"
34
+ :style="contentWrapperStyle"
35
+ >
36
+ <div
37
+ ref="contentRef"
38
+ class="vc-accordion-item__content"
39
+ >
40
+ <slot></slot>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </template>
45
+
46
+ <script lang="ts" setup>
47
+ import { ref, computed, watch, onMounted, onBeforeUnmount } from "vue";
48
+ import { VcIcon } from "../../../../atoms/vc-icon";
49
+
50
+ export interface Props {
51
+ title?: string;
52
+ collapsedHeight?: number;
53
+ maxExpandedHeight?: number;
54
+ isExpanded?: boolean;
55
+ disabled?: boolean;
56
+ }
57
+
58
+ export interface Emits {
59
+ (event: "toggle", value: boolean): void;
60
+ (event: "update:isExpanded", value: boolean): void;
61
+ }
62
+
63
+ const props = withDefaults(defineProps<Props>(), {
64
+ collapsedHeight: 0,
65
+ isExpanded: false,
66
+ disabled: false,
67
+ });
68
+
69
+ const emit = defineEmits<Emits>();
70
+
71
+ defineOptions({
72
+ name: "VcAccordionItem",
73
+ });
74
+
75
+ defineSlots<{
76
+ default: (props?: any) => any;
77
+ title: (props?: any) => any;
78
+ }>();
79
+
80
+ const contentRef = ref<HTMLElement>();
81
+ const contentWrapperRef = ref<HTMLElement>();
82
+ const contentHeight = ref(0);
83
+ const isExpandedInternal = ref(props.isExpanded);
84
+ const resizeObserver = ref<ResizeObserver>();
85
+
86
+ const hasOverflow = computed(() => {
87
+ return contentHeight.value > props.collapsedHeight;
88
+ });
89
+
90
+ const hasScrollInExpandedState = computed(() => {
91
+ return props.maxExpandedHeight !== undefined && contentHeight.value > props.maxExpandedHeight;
92
+ });
93
+
94
+ const contentWrapperStyle = computed(() => {
95
+ if (isExpandedInternal.value) {
96
+ // If maxExpandedHeight is set and content exceeds it, limit to maxExpandedHeight
97
+ if (props.maxExpandedHeight !== undefined && contentHeight.value > props.maxExpandedHeight) {
98
+ return {
99
+ maxHeight: `${props.maxExpandedHeight}px`,
100
+ };
101
+ }
102
+ // Otherwise use full content height
103
+ return {
104
+ maxHeight: `${contentHeight.value}px`,
105
+ };
106
+ } else {
107
+ return {
108
+ maxHeight: props.collapsedHeight > 0 ? `${props.collapsedHeight}px` : "0px",
109
+ };
110
+ }
111
+ });
112
+
113
+ function toggle() {
114
+ if (props.disabled || !hasOverflow.value) return;
115
+
116
+ isExpandedInternal.value = !isExpandedInternal.value;
117
+ emit("toggle", isExpandedInternal.value);
118
+ emit("update:isExpanded", isExpandedInternal.value);
119
+ }
120
+
121
+ function updateContentHeight() {
122
+ if (contentRef.value) {
123
+ contentHeight.value = contentRef.value.scrollHeight;
124
+ }
125
+ }
126
+
127
+ watch(
128
+ () => props.isExpanded,
129
+ (newValue) => {
130
+ isExpandedInternal.value = newValue;
131
+ },
132
+ );
133
+
134
+ onMounted(() => {
135
+ updateContentHeight();
136
+
137
+ // Setup ResizeObserver to track content height changes
138
+ if (contentRef.value) {
139
+ resizeObserver.value = new ResizeObserver(() => {
140
+ updateContentHeight();
141
+ });
142
+ resizeObserver.value.observe(contentRef.value);
143
+ }
144
+ });
145
+
146
+ onBeforeUnmount(() => {
147
+ if (resizeObserver.value) {
148
+ resizeObserver.value.disconnect();
149
+ }
150
+ });
151
+ </script>
152
+
153
+ <style lang="scss">
154
+ :root {
155
+ --accordion-item-border-color: var(--neutrals-200);
156
+ --accordion-item-header-background: var(--additional-50);
157
+ --accordion-item-header-background-hover: var(--primary-50);
158
+ --accordion-item-header-color: var(--secondary-950);
159
+ --accordion-item-content-background: var(--additional-50);
160
+ --accordion-item-content-color: var(--secondary-950);
161
+ --accordion-item-transition-duration: 300ms;
162
+ --accordion-item-border-radius: 6px;
163
+ --accordion-item-fade-height: 60px;
164
+ }
165
+
166
+ .vc-accordion-item {
167
+ position: relative;
168
+ background: var(--accordion-item-header-background);
169
+ border-radius: var(--accordion-item-border-radius);
170
+ overflow: hidden;
171
+
172
+ &__header {
173
+ display: flex;
174
+ align-items: center;
175
+ justify-content: space-between;
176
+ padding: 12px 16px;
177
+ background: var(--accordion-item-header-background);
178
+ color: var(--accordion-item-header-color);
179
+ transition: background-color var(--accordion-item-transition-duration) ease;
180
+ user-select: none;
181
+
182
+ .vc-accordion-item--has-overflow & {
183
+ cursor: pointer;
184
+
185
+ &:hover {
186
+ background: var(--accordion-item-header-background-hover);
187
+ }
188
+ }
189
+ }
190
+
191
+ &__title {
192
+ flex: 1;
193
+ font-weight: 500;
194
+ font-size: 14px;
195
+ line-height: 20px;
196
+ }
197
+
198
+ &__icon {
199
+ margin-left: 12px;
200
+ transition: transform var(--accordion-item-transition-duration) ease;
201
+ flex-shrink: 0;
202
+
203
+ &--rotated {
204
+ transform: rotate(180deg);
205
+ }
206
+ }
207
+
208
+ &__content-wrapper {
209
+ position: relative;
210
+ overflow: hidden;
211
+ transition: max-height var(--accordion-item-transition-duration) ease;
212
+
213
+ &--faded::after {
214
+ content: "";
215
+ position: absolute;
216
+ bottom: 0;
217
+ left: 0;
218
+ right: 0;
219
+ height: var(--accordion-item-fade-height);
220
+ background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, var(--accordion-item-content-background) 100%);
221
+ pointer-events: none;
222
+ }
223
+
224
+ &--scrollable {
225
+ overflow-y: auto;
226
+ overflow-x: hidden;
227
+ }
228
+ }
229
+
230
+ &__content {
231
+ background: var(--accordion-item-content-background);
232
+ color: var(--accordion-item-content-color);
233
+ padding: 16px;
234
+ font-size: 14px;
235
+ line-height: 20px;
236
+ }
237
+
238
+ &--disabled {
239
+ opacity: 0.5;
240
+ cursor: not-allowed;
241
+
242
+ .vc-accordion-item__header {
243
+ cursor: not-allowed;
244
+
245
+ &:hover {
246
+ background: var(--accordion-item-header-background);
247
+ }
248
+ }
249
+ }
250
+ }
251
+ </style>
@@ -0,0 +1,11 @@
1
+ import _Accordion from "./vc-accordion.vue";
2
+ import _AccordionItem from "./_internal/vc-accordion-item/vc-accordion-item.vue";
3
+
4
+ export const VcAccordion = _Accordion as typeof _Accordion;
5
+ export const VcAccordionItem = _AccordionItem as typeof _AccordionItem;
6
+
7
+ export type { AccordionItem, Props as AccordionProps, Emits as AccordionEmits } from "./vc-accordion.vue";
8
+ export type {
9
+ Props as AccordionItemProps,
10
+ Emits as AccordionItemEmits,
11
+ } from "./_internal/vc-accordion-item/vc-accordion-item.vue";