@vc-shell/framework 1.1.4 → 1.1.6

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 (323) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/core/directives/loading/styles.css +1 -1
  3. package/core/plugins/modularity/README.md +347 -17
  4. package/core/plugins/modularity/loader.ts +248 -3
  5. package/dist/core/plugins/modularity/loader.d.ts +4 -0
  6. package/dist/core/plugins/modularity/loader.d.ts.map +1 -1
  7. package/dist/shared/components/common/popup/vc-popup-error.vue.d.ts +2 -2
  8. package/dist/shared/components/common/popup/vc-popup-error.vue.d.ts.map +1 -1
  9. package/dist/shared/components/common/popup/vc-popup-info.vue.d.ts +2 -2
  10. package/dist/shared/components/common/popup/vc-popup-info.vue.d.ts.map +1 -1
  11. package/dist/shared/components/common/popup/vc-popup-warning.vue.d.ts +2 -2
  12. package/dist/shared/components/common/popup/vc-popup-warning.vue.d.ts.map +1 -1
  13. package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.vue.d.ts +3 -3
  14. package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.vue.d.ts.map +1 -1
  15. package/dist/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.d.ts +4 -4
  16. package/dist/shared/components/generic-dropdown/generic-dropdown.vue.d.ts.map +1 -1
  17. package/dist/shared/components/notifications/components/notification-container/index.d.ts +6 -6
  18. package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +1 -1
  19. package/dist/shared/components/settings-menu-item/settings-menu-item.vue.d.ts.map +1 -1
  20. package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +2 -2
  21. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +2 -2
  22. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +2 -2
  23. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +1 -1
  24. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
  25. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +1 -1
  26. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
  27. package/dist/tsconfig.tsbuildinfo +1 -1
  28. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +2 -2
  29. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
  30. package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts +2 -2
  31. package/dist/ui/components/atoms/vc-icon/composables/index.d.ts +3 -0
  32. package/dist/ui/components/atoms/vc-icon/composables/index.d.ts.map +1 -0
  33. package/dist/ui/components/atoms/vc-icon/composables/use-icon-type.d.ts +22 -0
  34. package/dist/ui/components/atoms/vc-icon/composables/use-icon-type.d.ts.map +1 -0
  35. package/dist/ui/components/atoms/vc-icon/composables/use-icon.d.ts +30 -0
  36. package/dist/ui/components/atoms/vc-icon/composables/use-icon.d.ts.map +1 -0
  37. package/dist/ui/components/atoms/vc-icon/index.d.ts +1 -0
  38. package/dist/ui/components/atoms/vc-icon/index.d.ts.map +1 -1
  39. package/dist/ui/components/atoms/vc-icon/types.d.ts +31 -0
  40. package/dist/ui/components/atoms/vc-icon/types.d.ts.map +1 -0
  41. package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts +18 -4
  42. package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts.map +1 -1
  43. package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts +15 -2
  44. package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts.map +1 -1
  45. package/dist/ui/components/atoms/vc-icon/vc-icon-examples.vue.d.ts.map +1 -1
  46. package/dist/ui/components/atoms/vc-icon/vc-icon-test.vue.d.ts.map +1 -1
  47. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +11 -6
  48. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
  49. package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts +21 -4
  50. package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts.map +1 -1
  51. package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts +31 -5
  52. package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts.map +1 -1
  53. package/dist/ui/components/atoms/vc-icon/vc-svg-icon.vue.d.ts +33 -0
  54. package/dist/ui/components/atoms/vc-icon/vc-svg-icon.vue.d.ts.map +1 -0
  55. package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts +2 -2
  56. package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts.map +1 -1
  57. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +1 -1
  58. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
  59. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts +2 -2
  60. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
  61. package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts +3 -3
  62. package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
  63. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +2 -2
  64. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +3 -3
  65. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
  66. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +4 -4
  67. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
  68. package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts +6 -34
  69. package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
  70. package/dist/ui/components/molecules/vc-input-dropdown/index.d.ts +4 -0
  71. package/dist/ui/components/molecules/vc-input-dropdown/index.d.ts.map +1 -0
  72. package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts +171 -0
  73. package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts.map +1 -0
  74. package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts +2 -2
  75. package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts.map +1 -1
  76. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts +1 -1
  77. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
  78. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +2 -2
  79. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
  80. package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +3 -3
  81. package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
  82. package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts +1 -1
  83. package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts.map +1 -1
  84. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarWidgetItem.vue.d.ts +2 -2
  85. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarWidgetItem.vue.d.ts.map +1 -1
  86. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/MenuSidebar.vue.d.ts +5 -5
  87. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/MenuSidebar.vue.d.ts.map +1 -1
  88. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts +3 -3
  89. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
  90. 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
  91. 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
  92. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +1 -1
  93. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
  94. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/props.d.ts +14 -0
  95. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/props.d.ts.map +1 -0
  96. 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 +3 -14
  97. 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.map +1 -1
  98. 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
  99. 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
  100. 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 +2 -2
  101. 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
  102. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +5 -5
  103. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
  104. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +2 -2
  105. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +1 -1
  106. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
  107. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +3 -3
  108. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
  109. package/dist/ui/components/organisms/vc-login-form/vc-login-form.vue.d.ts +1 -1
  110. package/dist/ui/components/organisms/vc-login-form/vc-login-form.vue.d.ts.map +1 -1
  111. package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +4 -4
  112. package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts.map +1 -1
  113. package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts +1 -1
  114. package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -1
  115. package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts +1 -1
  116. package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts.map +1 -1
  117. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +1 -1
  118. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -1
  119. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-body/vc-table-body.vue.d.ts +1 -1
  120. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-body/vc-table-body.vue.d.ts.map +1 -1
  121. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-columns-header/vc-table-columns-header.vue.d.ts +1 -1
  122. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-columns-header/vc-table-columns-header.vue.d.ts.map +1 -1
  123. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-row/vc-table-row.vue.d.ts +1 -1
  124. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-row/vc-table-row.vue.d.ts.map +1 -1
  125. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue.d.ts +1 -1
  126. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue.d.ts.map +1 -1
  127. package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue.d.ts +1 -1
  128. package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue.d.ts.map +1 -1
  129. package/dist/ui/components/organisms/vc-table/composables/useTableActions.d.ts +1 -1
  130. package/dist/ui/components/organisms/vc-table/composables/useTableActions.d.ts.map +1 -1
  131. package/dist/ui/components/organisms/vc-table/composables/useTableColumnReorder.d.ts +1 -1
  132. package/dist/ui/components/organisms/vc-table/composables/useTableColumnReorder.d.ts.map +1 -1
  133. package/dist/ui/components/organisms/vc-table/composables/useTableColumnResize.d.ts +1 -1
  134. package/dist/ui/components/organisms/vc-table/composables/useTableColumnResize.d.ts.map +1 -1
  135. package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts +1 -1
  136. package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts.map +1 -1
  137. package/dist/ui/components/organisms/vc-table/composables/useTableSelection.d.ts +1 -1
  138. package/dist/ui/components/organisms/vc-table/composables/useTableSelection.d.ts.map +1 -1
  139. package/dist/ui/components/organisms/vc-table/composables/useTableState.d.ts +1 -1
  140. package/dist/ui/components/organisms/vc-table/composables/useTableState.d.ts.map +1 -1
  141. package/dist/ui/components/organisms/vc-table/types.d.ts +36 -0
  142. package/dist/ui/components/organisms/vc-table/types.d.ts.map +1 -0
  143. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +2 -34
  144. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
  145. package/package.json +4 -4
  146. package/shared/components/common/popup/vc-popup-error.vue +3 -3
  147. package/shared/components/common/popup/vc-popup-info.vue +3 -3
  148. package/shared/components/common/popup/vc-popup-warning.vue +3 -3
  149. package/shared/components/dashboard-widget-card/dashboard-widget-card.vue +4 -4
  150. package/shared/components/generic-dropdown/generic-dropdown.vue +1 -1
  151. package/shared/components/settings-menu-item/settings-menu-item.vue +1 -6
  152. package/shared/components/user-dropdown-button/_internal/user-info.vue +3 -3
  153. package/ui/components/atoms/vc-badge/vc-badge.vue +2 -2
  154. package/ui/components/atoms/vc-icon/README.md +198 -220
  155. package/ui/components/atoms/vc-icon/composables/index.ts +2 -0
  156. package/ui/components/atoms/vc-icon/composables/use-icon-type.ts +83 -0
  157. package/ui/components/atoms/vc-icon/composables/use-icon.ts +129 -0
  158. package/ui/components/atoms/vc-icon/index.ts +1 -0
  159. package/ui/components/atoms/vc-icon/types.ts +36 -0
  160. package/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue +111 -10
  161. package/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue +119 -17
  162. package/ui/components/atoms/vc-icon/vc-icon-examples.vue +485 -124
  163. package/ui/components/atoms/vc-icon/vc-icon-test.vue +399 -209
  164. package/ui/components/atoms/vc-icon/vc-icon.stories.ts +501 -55
  165. package/ui/components/atoms/vc-icon/vc-icon.vue +240 -155
  166. package/ui/components/atoms/vc-icon/vc-lucide-icon.vue +163 -33
  167. package/ui/components/atoms/vc-icon/vc-material-icon.vue +136 -30
  168. package/ui/components/atoms/vc-icon/vc-svg-icon.vue +168 -0
  169. package/ui/components/atoms/vc-label/vc-label.vue +3 -3
  170. package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +3 -3
  171. package/ui/components/atoms/vc-widget/vc-widget.stories.ts +13 -0
  172. package/ui/components/molecules/vc-checkbox/vc-checkbox.vue +4 -4
  173. package/ui/components/molecules/vc-file-upload/vc-file-upload.vue +2 -2
  174. package/ui/components/molecules/vc-input-currency/vc-input-currency.stories.ts +1 -1
  175. package/ui/components/molecules/vc-input-currency/vc-input-currency.vue +36 -115
  176. package/ui/components/molecules/vc-input-dropdown/index.ts +4 -0
  177. package/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.stories.ts +763 -0
  178. package/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue +268 -0
  179. package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +3 -3
  180. package/ui/components/molecules/vc-pagination/vc-pagination.vue +23 -14
  181. package/ui/components/molecules/vc-rating/vc-rating.vue +2 -2
  182. package/ui/components/molecules/vc-textarea/vc-textarea.vue +2 -2
  183. package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarHeader.vue +2 -2
  184. package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarWidgetItem.vue +3 -3
  185. package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/MenuSidebar.vue +6 -6
  186. package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +6 -7
  187. package/ui/components/organisms/vc-app/vc-app.vue +2 -3
  188. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/props.ts +14 -0
  189. package/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 +1 -12
  190. package/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 +1 -1
  191. package/ui/components/organisms/vc-blade/vc-blade.vue +5 -5
  192. package/ui/components/organisms/vc-login-form/vc-login-form.vue +2 -2
  193. package/ui/components/organisms/vc-popup/vc-popup.vue +4 -4
  194. package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +1 -1
  195. package/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue +1 -1
  196. package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-body/vc-table-body.vue +1 -1
  197. package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-columns-header/vc-table-columns-header.vue +1 -1
  198. package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-row/vc-table-row.vue +1 -1
  199. package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue +1 -1
  200. package/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue +1 -1
  201. package/ui/components/organisms/vc-table/composables/useTableActions.ts +1 -1
  202. package/ui/components/organisms/vc-table/composables/useTableColumnReorder.ts +1 -1
  203. package/ui/components/organisms/vc-table/composables/useTableColumnResize.ts +1 -1
  204. package/ui/components/organisms/vc-table/composables/useTableRowReorder.ts +1 -1
  205. package/ui/components/organisms/vc-table/composables/useTableSelection.ts +1 -1
  206. package/ui/components/organisms/vc-table/composables/useTableState.ts +1 -1
  207. package/ui/components/organisms/vc-table/types.ts +32 -0
  208. package/ui/components/organisms/vc-table/vc-table.vue +2 -30
  209. package/dist/apl-B2DGVGxc.js +0 -76
  210. package/dist/asciiarmor-2LVJmxlE.js +0 -34
  211. package/dist/asn1-jKiBa2Ya.js +0 -95
  212. package/dist/asterisk-DS281yxp.js +0 -271
  213. package/dist/brainfuck-C_p9pTT8.js +0 -34
  214. package/dist/clike-BUuHEmgZ.js +0 -620
  215. package/dist/clojure-CCKyeQKf.js +0 -800
  216. package/dist/cmake-CuaCgAKt.js +0 -28
  217. package/dist/cobol-BlTKFDRj.js +0 -72
  218. package/dist/coffeescript-BVCvwO8I.js +0 -179
  219. package/dist/commonlisp-D_kxz07b.js +0 -75
  220. package/dist/crystal-D309uH6_.js +0 -217
  221. package/dist/css-bIlmDBTK.js +0 -1560
  222. package/dist/cypher-BMq4Fwjl.js +0 -68
  223. package/dist/d-BZcgY6La.js +0 -127
  224. package/dist/diff-Cg9d_RX2.js +0 -18
  225. package/dist/dockerfile-DIy8NleC.js +0 -194
  226. package/dist/dtd-CtLokQ-U.js +0 -84
  227. package/dist/dylan-QYeExnWK.js +0 -234
  228. package/dist/ebnf-DUPDuY4r.js +0 -78
  229. package/dist/ecl-CiXN-g_D.js +0 -121
  230. package/dist/eiffel-yQhjl4T1.js +0 -110
  231. package/dist/elm-CNT9vbN0.js +0 -108
  232. package/dist/erlang-CFOYdy9e.js +0 -487
  233. package/dist/factor-DDOC7X6P.js +0 -65
  234. package/dist/fcl-CPC2WYrI.js +0 -103
  235. package/dist/forth-BmxRyE9S.js +0 -60
  236. package/dist/fortran-9bvPyrOW.js +0 -442
  237. package/dist/framework.js +0 -288
  238. package/dist/gas-BdfkXJT_.js +0 -183
  239. package/dist/gherkin-CJuwpceU.js +0 -34
  240. package/dist/groovy-DZeT_VM-.js +0 -146
  241. package/dist/haskell-Bvt3Qq1t.js +0 -375
  242. package/dist/haxe-70NVW1pR.js +0 -359
  243. package/dist/http-D9LttvKF.js +0 -44
  244. package/dist/idl-B6TRFYjl.js +0 -947
  245. package/dist/index-BBYKbiRX.js +0 -93
  246. package/dist/index-BDm0tcWn.js +0 -145680
  247. package/dist/index-BDqUaIyQ.js +0 -156
  248. package/dist/index-BdflTsg6.js +0 -308
  249. package/dist/index-BpBTtmQ6.js +0 -288
  250. package/dist/index-Br0y2YMn.js +0 -58
  251. package/dist/index-CIcET-ZI.js +0 -71
  252. package/dist/index-CYAMpxnu.js +0 -341
  253. package/dist/index-Cf2H7YZ1.js +0 -98
  254. package/dist/index-Ck055pN8.js +0 -134
  255. package/dist/index-D-fPN3yf.js +0 -75
  256. package/dist/index-DJOis7Nc.js +0 -299
  257. package/dist/index-DKtQMsy4.js +0 -538
  258. package/dist/index-DWTsz5bC.js +0 -611
  259. package/dist/index-DuY7BIGm.js +0 -265
  260. package/dist/index-o6aSdNED.js +0 -137
  261. package/dist/index-wfv8ehcx.js +0 -249
  262. package/dist/index.css +0 -9
  263. package/dist/javascript-WMWNx-Vj.js +0 -690
  264. package/dist/jinja2-DnB6dQmV.js +0 -154
  265. package/dist/julia-DpvXAuO6.js +0 -241
  266. package/dist/livescript-CanGTf8u.js +0 -272
  267. package/dist/lua-XplVlWi_.js +0 -217
  268. package/dist/mathematica-jaRHnSxC.js +0 -35
  269. package/dist/mbox-BctzC1hL.js +0 -76
  270. package/dist/mirc-CFBPAOaF.js +0 -72
  271. package/dist/mllike-BSnXJBGA.js +0 -272
  272. package/dist/modelica-vUgVs--1.js +0 -93
  273. package/dist/mscgen-Cpl0NYLN.js +0 -104
  274. package/dist/mumps-CQoS1kWX.js +0 -25
  275. package/dist/nginx-zDPm3Z74.js +0 -89
  276. package/dist/nsis-fePjrhq7.js +0 -62
  277. package/dist/ntriples-CsNjv2QF.js +0 -79
  278. package/dist/octave-C8PmmSRH.js +0 -143
  279. package/dist/oz-Ce8aN8oE.js +0 -151
  280. package/dist/pascal-De0D6mP7.js +0 -77
  281. package/dist/perl-B4bSCe1C.js +0 -915
  282. package/dist/pig-D24Z8EXi.js +0 -54
  283. package/dist/powershell-DkYVfTzP.js +0 -249
  284. package/dist/properties-Dn9wna3M.js +0 -26
  285. package/dist/protobuf-BPIjwpzm.js +0 -49
  286. package/dist/pug-BqUR2bBq.js +0 -248
  287. package/dist/puppet-nyd4dhjf.js +0 -45
  288. package/dist/python-B5QdSKoL.js +0 -313
  289. package/dist/q-DXjKs-tC.js +0 -83
  290. package/dist/r-LKEuhEGI.js +0 -104
  291. package/dist/rpm-IznJm2Xc.js +0 -57
  292. package/dist/ruby-CcYfvIk6.js +0 -228
  293. package/dist/sas-7E8yHoCW.js +0 -105
  294. package/dist/scheme-DjibxsNh.js +0 -124
  295. package/dist/shell-C0C2sNA_.js +0 -182
  296. package/dist/sieve-Bwz7vjP5.js +0 -72
  297. package/dist/simple-mode-B0dvCdAA.js +0 -89
  298. package/dist/smalltalk-Bhddl2pB.js +0 -48
  299. package/dist/solr-BNlsLglM.js +0 -41
  300. package/dist/sparql-FarWu_Gb.js +0 -197
  301. package/dist/spreadsheet-C-cy4P5N.js +0 -49
  302. package/dist/sql-mMre1Bo3.js +0 -282
  303. package/dist/stex-92raWT1r.js +0 -129
  304. package/dist/stylus-CAdqWld3.js +0 -250
  305. package/dist/swift-DSxqR9R6.js +0 -230
  306. package/dist/tcl-xfoLljhY.js +0 -81
  307. package/dist/textile-D1AWE-pc.js +0 -295
  308. package/dist/tiddlywiki-5wqsXtSk.js +0 -155
  309. package/dist/tiki-__Kn3CeS.js +0 -181
  310. package/dist/toml-BHiuTcfn.js +0 -49
  311. package/dist/troff-D2UO-fKf.js +0 -35
  312. package/dist/ttcn-Bsa4sfRm.js +0 -123
  313. package/dist/ttcn-cfg-Bac_acMi.js +0 -88
  314. package/dist/turtle-xwJUxoPV.js +0 -80
  315. package/dist/vb-c2kQGd6-.js +0 -74
  316. package/dist/vbscript-Dz1TtKsy.js +0 -324
  317. package/dist/velocity-DJd0pTTC.js +0 -96
  318. package/dist/verilog-C4VGD9n1.js +0 -263
  319. package/dist/vhdl-T9HkrbI2.js +0 -106
  320. package/dist/webidl-CjfDENEo.js +0 -155
  321. package/dist/xquery-BUQdORAS.js +0 -422
  322. package/dist/yacas-C0absKBh.js +0 -73
  323. package/dist/z80-C8rPtw-0.js +0 -61
@@ -36,7 +36,7 @@
36
36
  </div>
37
37
  </div>
38
38
  </template>
39
-
39
+ <!-- eslint-disable @typescript-eslint/no-explicit-any -->
40
40
  <script setup lang="ts">
41
41
  export interface Props {
42
42
  header?: string;
@@ -47,9 +47,9 @@ export interface Props {
47
47
  const props = defineProps<Props>();
48
48
 
49
49
  defineSlots<{
50
- header: void;
51
- actions: void;
52
- content: void;
50
+ header: (props: any) => any;
51
+ actions: (props: any) => any;
52
+ content: (props: any) => any;
53
53
  // TODO: implement
54
54
  // "mobile-content": void;
55
55
  }>();
@@ -208,7 +208,7 @@ const floatingStyle = computed(() => {
208
208
 
209
209
  &__items-container {
210
210
  @apply tw-overflow-y-auto;
211
- max-height: v-bind('typeof props.maxHeight === "number" ? `${props.maxHeight}px` : props.maxHeight');
211
+ // max-height: v-bind('typeof props.maxHeight === "number" ? `${props.maxHeight}px` : props.maxHeight');
212
212
  }
213
213
 
214
214
  &__item {
@@ -18,7 +18,6 @@
18
18
  <VcIcon
19
19
  v-if="icon"
20
20
  :icon="icon"
21
- size="l"
22
21
  class="vc-menu-item__icon"
23
22
  />
24
23
  <VcImage
@@ -98,10 +97,6 @@ const handleTriggerClick = () => {
98
97
 
99
98
  &:hover {
100
99
  @apply tw-bg-[color:var(--menu-item-bg-hover)];
101
-
102
- .vc-menu-item__icon {
103
- @apply tw-text-[color:var(--menu-item-icon-color-hover)];
104
- }
105
100
  }
106
101
  }
107
102
 
@@ -122,7 +117,7 @@ const handleTriggerClick = () => {
122
117
  }
123
118
 
124
119
  &__icon {
125
- @apply tw-w-6 tw-mr-3 tw-text-[color:var(--menu-item-icon-color)];
120
+ @apply tw-w-6 tw-mr-3 tw-text-[color:var(--menu-item-icon-color)] tw-text-[16px];
126
121
  }
127
122
 
128
123
  &__image {
@@ -67,7 +67,7 @@ const imageHandler = computed(() => {
67
67
  }
68
68
 
69
69
  &__icon {
70
- @apply tw-text-[color:var(--user-dropdown-button-color)] tw-text-[length:var(--user-info-avatar-height)] #{!important};
70
+ @apply tw-text-[color:var(--user-dropdown-button-color)] tw-text-[length:var(--user-info-avatar-height)] tw-shrink-0 tw-w-[var(--user-info-avatar-width)] tw-h-[var(--user-info-avatar-height)] #{!important};
71
71
  }
72
72
 
73
73
  &__info {
@@ -75,11 +75,11 @@ const imageHandler = computed(() => {
75
75
  }
76
76
 
77
77
  &__name {
78
- @apply tw-text-sm tw-text-[color:var(--user-dropdown-account-info-name-color)] tw-max-w-[250px] tw-truncate tw-w-full;
78
+ @apply tw-text-sm tw-text-[color:var(--user-dropdown-account-info-name-color)] tw-max-w-[250px] tw-truncate tw-w-full tw-text-left;
79
79
  }
80
80
 
81
81
  &__role {
82
- @apply tw-text-sm tw-text-[color:var(--user-dropdown-account-info-role-color)];
82
+ @apply tw-text-sm tw-text-[color:var(--user-dropdown-account-info-role-color)] tw-truncate tw-text-left;
83
83
  }
84
84
  }
85
85
 
@@ -38,7 +38,7 @@
38
38
  </div>
39
39
  </div>
40
40
  </template>
41
-
41
+ <!-- eslint-disable @typescript-eslint/no-explicit-any -->
42
42
  <script lang="ts" setup>
43
43
  import { computed } from "vue";
44
44
 
@@ -74,7 +74,7 @@ defineSlots<{
74
74
  /**
75
75
  * Slot for component content
76
76
  * */
77
- default: void;
77
+ default: (props: any) => any;
78
78
  }>();
79
79
 
80
80
  function onClick(): void {
@@ -1,117 +1,80 @@
1
1
  # VcIcon Component
2
2
 
3
- The `VcIcon` component is a versatile icon component that supports multiple icon libraries:
3
+ The `VcIcon` component is a versatile and flexible icon component that provides unified access to multiple icon libraries:
4
4
 
5
- - Font Awesome
6
5
  - Material Symbols
7
6
  - Bootstrap Icons
8
7
  - Lucide Icons
9
- - Custom SVG Components
8
+ - Font Awesome (legacy support)
9
+ - Custom SVG Icons
10
10
 
11
- ## Installation
11
+ ## Features
12
12
 
13
- Before using specific icon types, make sure to install the corresponding libraries:
14
-
15
- ### Font Awesome
16
-
17
- ```bash
18
- npm install @fortawesome/fontawesome-free
19
- ```
20
-
21
- Add to your main.js/ts:
22
- ```js
23
- import '@fortawesome/fontawesome-free/css/all.css';
24
- ```
25
-
26
- ### Material Icons
27
-
28
- ```bash
29
- npm install material-symbols
30
- ```
31
-
32
- Add to your main.js/ts:
33
- ```js
34
- import 'material-symbols';
35
- ```
36
-
37
- ### Bootstrap Icons
38
-
39
- ```bash
40
- npm install bootstrap-icons
41
- ```
42
-
43
- Add to your main.js/ts:
44
- ```js
45
- import 'bootstrap-icons/font/bootstrap-icons.css';
46
- ```
47
-
48
- ### Lucide Icons
49
-
50
- ```bash
51
- npm install lucide-vue-next
52
- ```
53
-
54
- Register the icons you need:
55
- ```js
56
- // For local component usage
57
- import { HomeIcon, UserIcon } from 'lucide-vue-next';
58
-
59
- // For global registration
60
- import { createApp } from 'vue';
61
- import { LucideVue } from 'lucide-vue-next';
62
- import App from './App.vue';
63
-
64
- const app = createApp(App);
65
- app.use(LucideVue, {
66
- componentPrefix: '' // optional - default is 'Lucide'
67
- });
68
- ```
13
+ - **Unified API** for all icon types
14
+ - **Consistent sizing** across different icon libraries
15
+ - **Automatic icon detection** based on prefix
16
+ - **Color variants** for status indicators
17
+ - **Customizable sizing** via props or CSS
18
+ - **Container support** for consistent spacing
19
+ - **SVG icon support** with customizable parameters
69
20
 
70
21
  ## Basic Usage
71
22
 
72
- ### New Unified Syntax (Recommended)
73
-
74
- Use a consistent naming approach with library prefix for all icon types:
75
-
76
23
  ```vue
77
24
  <template>
78
- <!-- Font Awesome Icon (unchanged, already has prefix) -->
79
- <VcIcon icon="fas fa-home" />
80
-
81
- <!-- Material Icon with prefix -->
25
+ <!-- Material Icon -->
82
26
  <VcIcon icon="material-home" />
83
27
 
84
- <!-- Bootstrap Icon (unchanged, already has prefix) -->
28
+ <!-- Bootstrap Icon -->
85
29
  <VcIcon icon="bi-house" />
86
30
 
87
- <!-- Lucide Icon with prefix -->
31
+ <!-- Lucide Icon -->
88
32
  <VcIcon icon="lucide-home" />
89
33
 
90
- <!-- Direct component usage (for tree-shaking) -->
34
+ <!-- Font Awesome Icon -->
35
+ <VcIcon icon="fas fa-home" />
36
+
37
+ <!-- Custom SVG Component -->
91
38
  <VcIcon :icon="HomeIcon" />
39
+
40
+ <!-- External SVG Icon -->
41
+ <VcIcon icon="svg:/assets/icons/home.svg" />
92
42
  </template>
93
43
 
94
44
  <script setup lang="ts">
95
45
  import { HomeIcon } from 'lucide-vue-next';
96
- import VcIcon from 'path/to/vc-icon.vue';
46
+ import { VcIcon } from '@framework/ui/components/atoms/vc-icon';
97
47
  </script>
98
48
  ```
99
49
 
100
- ### Legacy Syntax (Still Supported)
50
+ ## Icon Sizing
51
+
52
+ The component provides predefined sizes that are consistent across all icon types:
101
53
 
102
54
  ```vue
103
55
  <template>
104
- <!-- Font Awesome Icon -->
105
- <VcIcon icon="fas fa-home" />
106
-
107
- <!-- Material Icon (no prefix needed) -->
108
- <VcIcon icon="home" />
109
-
110
- <!-- Bootstrap Icon -->
111
- <VcIcon icon="bi-house" />
56
+ <VcIcon icon="material-home" size="xs" /> <!-- 12px -->
57
+ <VcIcon icon="material-home" size="s" /> <!-- 14px -->
58
+ <VcIcon icon="material-home" size="m" /> <!-- 18px (default) -->
59
+ <VcIcon icon="material-home" size="l" /> <!-- 20px -->
60
+ <VcIcon icon="material-home" size="xl" /> <!-- 22px -->
61
+ <VcIcon icon="material-home" size="xxl" /> <!-- 30px -->
62
+ <VcIcon icon="material-home" size="xxxl" /> <!-- 64px -->
112
63
 
113
- <!-- Lucide Icon with explicit type parameter -->
114
- <VcIcon icon="HomeIcon" type="lucide" />
64
+ <!-- Custom size (in pixels) -->
65
+ <VcIcon icon="material-home" :customSize="42" />
66
+ </template>
67
+ ```
68
+
69
+ ## Color Variants
70
+
71
+ Use the `variant` prop to apply predefined colors for status indicators:
72
+
73
+ ```vue
74
+ <template>
75
+ <VcIcon icon="material-check_circle" variant="success" /> <!-- Success (green) -->
76
+ <VcIcon icon="material-warning" variant="warning" /> <!-- Warning (yellow) -->
77
+ <VcIcon icon="material-error" variant="danger" /> <!-- Danger (red) -->
115
78
  </template>
116
79
  ```
117
80
 
@@ -120,176 +83,191 @@ import VcIcon from 'path/to/vc-icon.vue';
120
83
  | Prop | Type | Default | Description |
121
84
  |------|------|---------|-------------|
122
85
  | `icon` | `string \| Component` | `"fas fa-square-full"` | The icon to display. Can be a string identifier or a component instance |
123
- | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl" \| "xxl" \| "xxxl"` | `"m"` | Size of the icon |
124
- | `variant` | `"warning" \| "danger" \| "success"` | `undefined` | Color variant |
125
- | `type` | `"fontawesome" \| "material" \| "bootstrap" \| "lucide" \| "custom" \| "auto"` | `"auto"` | Icon library type. Use `auto` for automatic detection (legacy) |
126
- | `materialIconType` | `"outlined" \| "rounded" \| "sharp"` | `"outlined"` | Type of Material icon |
127
- | `materialIconFill` | `number` | `0` | Fill property for Material icons |
128
- | `materialIconWeight` | `number` | `400` | Weight property for Material icons |
129
- | `materialIconGrade` | `number` | `0` | Grade property for Material icons |
130
- | `strokeWidth` | `number` | `2` | Stroke width for Lucide icons |
86
+ | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl" \| "xxl" \| "xxxl"` | `"m"` | Predefined size of the icon |
87
+ | `variant` | `"warning" \| "danger" \| "success"` | `undefined` | Color variant for status indication |
88
+ | `useContainer` | `boolean` | `true` | Whether to wrap the icon in a container for consistent spacing |
89
+ | `customSize` | `number` | `undefined` | Custom size in pixels (overrides `size` prop) |
90
+ | `basePath` | `string` | `"/assets/icons"` | Base path for SVG icons (only for SVG icons) |
131
91
 
132
- ## Auto Detection
92
+ ## Size Normalization
133
93
 
134
- The component automatically detects the icon type based on the icon name:
94
+ The component automatically normalizes icon sizes across different libraries, ensuring they appear visually consistent when using the same size prop.
135
95
 
136
- - **Prefixed approach (recommended):**
137
- - `material-name` → Material icon
138
- - `lucide-name` → Lucide icon
139
- - `bi-name` → Bootstrap icon
140
- - `fa-name` or `fas fa-name` → Font Awesome icon
141
-
142
- - **Legacy approach (still supported):**
143
- - Strings containing `fa-` are treated as Font Awesome icons
144
- - Strings starting with `bi-` are treated as Bootstrap icons
145
- - Strings ending with `Icon` are treated as Lucide icons
146
- - Other strings without these patterns are treated as Material icons
147
- - Component instances are treated as custom SVG components
148
-
149
- ## Size Mapping
150
-
151
- The component maps the size prop to pixel values:
152
-
153
- - `xs`: 12px
154
- - `s`: 14px
155
- - `m`: 18px
156
- - `l`: 20px
157
- - `xl`: 22px
158
- - `xxl`: 30px
159
- - `xxxl`: 64px
160
-
161
- > **Note about icon sizing:**
162
- >
163
- > Different icon libraries have naturally different sizing characteristics:
164
- > - **Font Awesome** icons are used as the base sizes (reference standard)
165
- > - **Bootstrap Icons** require a slight reduction (factor 0.95)
166
- > - **Material Icons** require a slight increase (factor 1.1)
167
- > - **Lucide Icons** (SVG) require a significant increase (factor 1.2)
168
- >
169
- > The `VcIcon` component automatically applies the necessary adjustments for visual consistency across all icon types. Thanks to this, developers can specify the same size (`size="m"`) for all icons and achieve a visually consistent result.
170
-
171
- ## Examples
172
-
173
- ### Font Awesome
96
+ This normalization is achieved through scaling factors for each icon library:
174
97
 
175
- ```vue
176
- <VcIcon icon="fas fa-home" />
177
- <VcIcon icon="far fa-user" />
178
- <VcIcon icon="fas fa-cog" size="xl" />
179
- <VcIcon icon="fas fa-exclamation-triangle" variant="warning" />
180
- ```
98
+ - **Font Awesome** (base reference): 1.0
99
+ - **Material Icons**: 1.3
100
+ - **Bootstrap Icons**: 0.95
101
+ - **Lucide Icons**: 1
181
102
 
182
- ### Material Icons
103
+ These scaling factors provide a consistent experience regardless of the icon library used.
183
104
 
184
- ```vue
185
- <!-- Legacy syntax -->
186
- <VcIcon icon="home" />
187
- <VcIcon icon="settings" materialIconType="rounded" />
188
-
189
- <!-- New syntax with prefix -->
190
- <VcIcon icon="material-home" />
191
- <VcIcon icon="material-settings" materialIconType="rounded" />
192
- <VcIcon icon="material-warning" variant="warning" size="xl" />
193
- ```
105
+ ## Icon Detection
194
106
 
195
- ### Bootstrap Icons
107
+ The component automatically detects the icon type based on the icon name:
196
108
 
197
- ```vue
198
- <VcIcon icon="bi-house" />
199
- <VcIcon icon="bi-person" />
200
- <VcIcon icon="bi-gear" size="xl" />
201
- <VcIcon icon="bi-exclamation-triangle" variant="warning" />
202
- ```
109
+ - Strings starting with `material-` → Material Symbols
110
+ - Strings starting with `bi-` → Bootstrap Icons
111
+ - Strings starting with `lucide-` → Lucide Icons
112
+ - Strings starting with `fa-` or containing `fa-` → Font Awesome
113
+ - Strings starting with `svg:` → SVG files
114
+ - Component instances → Custom components
115
+
116
+ ## Styling Icons with CSS
117
+
118
+ The `VcIcon` component supports inheriting size from CSS styles. This allows you to control the icon size through CSS styles applied to the parent element or directly to the icon component.
203
119
 
204
- ### Lucide Icons
120
+ ### Examples of CSS Styling
205
121
 
206
122
  ```vue
207
123
  <template>
208
- <!-- Legacy syntax with type parameter -->
209
- <VcIcon icon="HomeIcon" type="lucide" />
210
-
211
- <!-- New syntax with prefix -->
212
- <VcIcon icon="lucide-home" />
213
- <VcIcon icon="lucide-settings" size="xl" />
214
- <VcIcon icon="lucide-alert-triangle" variant="warning" />
215
-
216
- <!-- Direct component usage (preferred for tree-shaking) -->
217
- <VcIcon :icon="HomeIcon" />
124
+ <!-- Setting size through parent element -->
125
+ <div class="custom-icon-parent">
126
+ <VcIcon icon="fas fa-star" />
127
+ </div>
128
+
129
+ <!-- Inline styles -->
130
+ <div style="font-size: 32px;">
131
+ <VcIcon icon="material-home" />
132
+ </div>
133
+
134
+ <!-- Direct styling -->
135
+ <VcIcon
136
+ icon="bi-heart"
137
+ class="custom-icon"
138
+ />
139
+
140
+ <!-- Styling with hover effects -->
141
+ <VcIcon
142
+ icon="lucide-settings"
143
+ class="hover-icon"
144
+ />
218
145
  </template>
219
146
 
220
- <script setup>
221
- import { HomeIcon, SettingsIcon, AlertTriangle } from 'lucide-vue-next';
222
- </script>
147
+ <style>
148
+ .custom-icon-parent {
149
+ font-size: 24px; /* Icon will inherit this size */
150
+ }
151
+
152
+ .custom-icon {
153
+ font-size: 40px;
154
+ color: #f03e3e;
155
+ }
156
+
157
+ .hover-icon {
158
+ font-size: 24px;
159
+ transition: all 0.3s ease;
160
+ }
161
+
162
+ .hover-icon:hover {
163
+ font-size: 32px;
164
+ color: #4dabf7;
165
+ }
166
+ </style>
223
167
  ```
224
168
 
225
- ## Migration Guide
169
+ ### Size Priority
226
170
 
227
- ### From Custom SVG Components to Material Icons
171
+ The icon size is determined in the following order of priority:
228
172
 
229
- ```vue
230
- <!-- Before -->
231
- <VcIcon icon="SearchIcon" />
232
- <VcIcon icon="HomeIcon" />
173
+ 1. `customSize` prop (highest priority)
174
+ 2. External CSS styles (font-size applied to the icon)
175
+ 3. Preset size via the `size` prop (lowest priority)
233
176
 
234
- <!-- After (legacy) -->
235
- <VcIcon icon="search" />
236
- <VcIcon icon="home" />
177
+ This allows flexible configuration of icon sizes in various usage contexts.
237
178
 
238
- <!-- After (new syntax) -->
239
- <VcIcon icon="material-search" />
240
- <VcIcon icon="material-home" />
241
- ```
179
+ ## Library-Specific Features
242
180
 
243
- ### From Font Awesome to Bootstrap Icons
181
+ ### Material Symbols
182
+
183
+ Material Symbols support additional customization properties:
244
184
 
245
185
  ```vue
246
- <!-- Before -->
247
- <VcIcon icon="fas fa-home" />
248
- <VcIcon icon="fas fa-user" />
249
- <VcIcon icon="fas fa-cog" />
250
-
251
- <!-- After -->
252
- <VcIcon icon="bi-house" />
253
- <VcIcon icon="bi-person" />
254
- <VcIcon icon="bi-gear" />
186
+ <template>
187
+ <!-- Different icon types -->
188
+ <VcIcon
189
+ icon="material-settings"
190
+ material-icon-type="outlined"
191
+ />
192
+ <VcIcon
193
+ icon="material-settings"
194
+ material-icon-type="rounded"
195
+ />
196
+ <VcIcon
197
+ icon="material-settings"
198
+ material-icon-type="sharp"
199
+ />
200
+
201
+ <!-- Fill variations -->
202
+ <VcIcon
203
+ icon="material-favorite"
204
+ :material-icon-fill="0"
205
+ />
206
+ <VcIcon
207
+ icon="material-favorite"
208
+ :material-icon-fill="0.5"
209
+ />
210
+ <VcIcon
211
+ icon="material-favorite"
212
+ :material-icon-fill="1"
213
+ />
214
+
215
+ <!-- Weight variations -->
216
+ <VcIcon
217
+ icon="material-favorite"
218
+ :material-icon-weight="100"
219
+ />
220
+ <VcIcon
221
+ icon="material-favorite"
222
+ :material-icon-weight="400"
223
+ />
224
+ <VcIcon
225
+ icon="material-favorite"
226
+ :material-icon-weight="700"
227
+ />
228
+ </template>
255
229
  ```
256
230
 
257
- ### From Material Icons to Lucide Icons
231
+ ### Using SVG Icons
232
+
233
+ You can use SVG icons with the `svg:` prefix:
258
234
 
259
235
  ```vue
260
- <!-- Before -->
261
- <VcIcon icon="home" />
262
- <VcIcon icon="settings" />
236
+ <template>
237
+ <!-- Using path relative to basePath -->
238
+ <VcIcon icon="svg:menu.svg" />
239
+
240
+ <!-- Using absolute path -->
241
+ <VcIcon icon="svg:/assets/icons/cart.svg" />
242
+
243
+ <!-- With custom base path -->
244
+ <VcIcon icon="svg:star.svg" basePath="/custom/icons/path" />
245
+
246
+ <!-- With stroke width -->
247
+ <VcIcon icon="svg:circle.svg" :stroke-width="1.5" />
248
+ </template>
249
+ ```
250
+
251
+ By default, SVG icons are looked up in `/assets/icons`, but this path can be changed using the `basePath` parameter.
263
252
 
264
- <!-- After (legacy) -->
265
- <VcIcon icon="HomeIcon" type="lucide" />
266
- <VcIcon icon="SettingsIcon" type="lucide" />
253
+ ## Container Support
267
254
 
268
- <!-- After (new syntax) -->
269
- <VcIcon icon="lucide-home" />
270
- <VcIcon icon="lucide-settings" />
255
+ The component can wrap icons in a container for consistent spacing:
271
256
 
272
- <!-- Or with direct components (preferred for tree-shaking) -->
257
+ ```vue
273
258
  <template>
274
- <VcIcon :icon="HomeIcon" />
275
- <VcIcon :icon="SettingsIcon" />
259
+ <!-- With container (default) -->
260
+ <VcIcon icon="material-home" />
261
+
262
+ <!-- Without container -->
263
+ <VcIcon icon="material-home" :use-container="false" />
276
264
  </template>
277
-
278
- <script setup>
279
- import { HomeIcon, SettingsIcon } from 'lucide-vue-next';
280
- </script>
281
265
  ```
282
266
 
283
- ## Icon Picker Tool
284
-
285
- To help developers choose the right icon name from each library, we recommend using these resources:
286
267
 
287
- - **Font Awesome**: [https://fontawesome.com/icons](https://fontawesome.com/icons)
288
- - **Material Symbols**: [https://fonts.google.com/icons](https://fonts.google.com/icons)
289
- - **Bootstrap Icons**: [https://icons.getbootstrap.com/](https://icons.getbootstrap.com/)
290
- - **Lucide Icons**: [https://lucide.dev/icons/](https://lucide.dev/icons/)
268
+ ## Best Practices
291
269
 
292
- ## Material Icon Documentation
293
- For a complete list of available Material icons, visit:
294
- - [Material Symbols Documentation](https://fonts.google.com/icons)
295
- - [Material Symbols Demo](https://marella.github.io/material-symbols/demo/)
270
+ 1. Use the prefixed syntax (`material-`, `bi-`, `lucide-`, etc.) for all icons
271
+ 2. Use the same `size` prop across different icon types for visual consistency
272
+ 3. Use the container feature for consistent spacing in complex layouts
273
+ 4. Leverage CSS styling for dynamic effects like hover states
@@ -0,0 +1,2 @@
1
+ export * from "./use-icon";
2
+ export * from "./use-icon-type";