@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
@@ -1,99 +1,408 @@
1
1
  import type { Meta, StoryObj } from "@storybook/vue3";
2
- import { VcIcon } from ".";
2
+ import { VcIcon } from "./index";
3
3
  import { SearchIcon, ChevronRightIcon, PlusSignIcon } from "./icons";
4
4
  import VcIconTest from "./vc-icon-test.vue";
5
5
  import VcIconExamples from "./vc-icon-examples.vue";
6
6
 
7
7
  /**
8
- * `VcIcon` is a versatile icon component that supports multiple icon types:
9
- * - Font Awesome icons
10
- * - Custom SVG components
11
- * - Material Design icons
12
- * - Bootstrap icons
13
- * - Lucide icons
8
+ * # VcIcon Component
14
9
  *
15
- * It handles different sizing, color variants, and customization options for each icon library.
10
+ * The VcIcon component is a versatile icon component supporting multiple icon libraries:
11
+ * - Material Symbols
12
+ * - Bootstrap Icons
13
+ * - Lucide Icons
14
+ * - Font Awesome
15
+ * - Custom SVG Icons
16
+ * - Custom Vue Components
16
17
  */
17
18
  const meta = {
18
19
  title: "Atoms/VcIcon",
19
20
  component: VcIcon,
20
- tags: ["autodocs"],
21
+ parameters: {
22
+ docs: {
23
+ description: {
24
+ component:
25
+ "The VcIcon component provides unified access to multiple icon libraries including Material Symbols, Bootstrap Icons, Lucide Icons, Font Awesome, custom SVG icons, and Vue component icons.",
26
+ },
27
+ },
28
+ },
21
29
  argTypes: {
22
30
  icon: {
23
31
  control: "text",
24
- description:
25
- "Icon to display. Can be a Font Awesome icon (e.g., 'fas fa-home'), Bootstrap icon (e.g., 'bi-house'), Material icon (e.g., 'material-home'), Lucide icon (e.g., 'lucide-home') or custom component",
26
- table: {
27
- type: { summary: "string | Component" },
28
- defaultValue: { summary: "'fas fa-square-full'" },
29
- },
32
+ description: "The icon to display. Can be a string identifier or a component instance",
30
33
  },
31
34
  size: {
32
- control: { type: "select" },
35
+ control: "select",
33
36
  options: ["xs", "s", "m", "l", "xl", "xxl", "xxxl"],
34
- description: "Size of the icon",
35
- table: {
36
- type: { summary: "'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl' | 'xxxl'" },
37
- defaultValue: { summary: "'m'" },
38
- category: "Appearance",
39
- },
37
+ description: "Predefined size of the icon",
40
38
  },
41
39
  variant: {
42
- control: { type: "select" },
43
- options: [undefined, "warning", "danger", "success"],
44
- description: "Color variant of the icon",
45
- table: {
46
- type: { summary: "'warning' | 'danger' | 'success'" },
47
- defaultValue: { summary: "undefined" },
48
- category: "Appearance",
49
- },
40
+ control: "select",
41
+ options: ["warning", "danger", "success"],
42
+ description: "Color variant for status indication",
50
43
  },
51
44
  useContainer: {
52
- control: { type: "boolean" },
45
+ control: "boolean",
53
46
  description: "Whether to wrap the icon in a container for consistent spacing",
54
- table: {
55
- type: { summary: "boolean" },
56
- defaultValue: { summary: "true" },
57
- category: "Layout",
47
+ },
48
+ customSize: {
49
+ control: "number",
50
+ description: "Custom size in pixels (overrides size prop)",
51
+ },
52
+ basePath: {
53
+ control: "text",
54
+ description: "Base path for SVG icons (only for SVG icons)",
55
+ },
56
+ },
57
+ args: {
58
+ icon: "material-home",
59
+ size: "m",
60
+ useContainer: true,
61
+ },
62
+ } satisfies Meta<typeof VcIcon>;
63
+
64
+ export default meta;
65
+ type Story = StoryObj<typeof VcIcon>;
66
+
67
+ /**
68
+ * Default usage of the VcIcon component with different icon libraries
69
+ */
70
+ export const Basic: Story = {
71
+ render: (args) => ({
72
+ components: { VcIcon },
73
+ setup() {
74
+ return { args };
75
+ },
76
+ template: `
77
+ <div class="tw-p-6 tw-max-w-4xl tw-mx-auto">
78
+ <h1 class="tw-text-2xl tw-font-bold tw-mb-6">Basic Icon Usage</h1>
79
+
80
+ <section class="tw-mb-8 tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
81
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Icon Libraries</h2>
82
+ <div class="tw-grid tw-grid-cols-2 md:tw-grid-cols-4 tw-gap-6">
83
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
84
+ <VcIcon icon="material-home" size="xl" />
85
+ <span class="tw-text-sm tw-mt-2">Material Icons</span>
86
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">material-home</code>
87
+ </div>
88
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
89
+ <VcIcon icon="bi-house" size="xl" />
90
+ <span class="tw-text-sm tw-mt-2">Bootstrap Icons</span>
91
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">bi-house</code>
92
+ </div>
93
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
94
+ <VcIcon icon="lucide-home" size="xl" />
95
+ <span class="tw-text-sm tw-mt-2">Lucide Icons</span>
96
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">lucide-home</code>
97
+ </div>
98
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
99
+ <VcIcon icon="fas fa-home" size="xl" />
100
+ <span class="tw-text-sm tw-mt-2">Font Awesome</span>
101
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">fas fa-home</code>
102
+ </div>
103
+ </div>
104
+ </section>
105
+
106
+ <section class="tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
107
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Status Variants</h2>
108
+ <div class="tw-grid tw-grid-cols-2 md:tw-grid-cols-4 tw-gap-6">
109
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
110
+ <VcIcon icon="material-star" size="xl" />
111
+ <span class="tw-text-sm tw-mt-2">Default</span>
112
+ </div>
113
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
114
+ <VcIcon icon="material-check_circle" variant="success" size="xl" />
115
+ <span class="tw-text-sm tw-mt-2">Success</span>
116
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">variant="success"</code>
117
+ </div>
118
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
119
+ <VcIcon icon="material-warning" variant="warning" size="xl" />
120
+ <span class="tw-text-sm tw-mt-2">Warning</span>
121
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">variant="warning"</code>
122
+ </div>
123
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
124
+ <VcIcon icon="material-error" variant="danger" size="xl" />
125
+ <span class="tw-text-sm tw-mt-2">Danger</span>
126
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">variant="danger"</code>
127
+ </div>
128
+ </div>
129
+ </section>
130
+ </div>
131
+ `,
132
+ }),
133
+ parameters: {
134
+ docs: {
135
+ description: {
136
+ story: "Basic usage of the VcIcon component with different icon libraries and status variants.",
58
137
  },
59
138
  },
60
139
  },
140
+ };
141
+
142
+ /**
143
+ * Different icon sizes
144
+ */
145
+ export const Sizes: Story = {
146
+ render: () => ({
147
+ components: { VcIcon },
148
+ template: `
149
+ <div class="tw-p-6 tw-max-w-4xl tw-mx-auto">
150
+ <h1 class="tw-text-2xl tw-font-bold tw-mb-6">Icon Size Options</h1>
151
+
152
+ <section class="tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
153
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Predefined Sizes</h2>
154
+ <div class="tw-flex tw-flex-wrap tw-items-end tw-justify-center tw-gap-8">
155
+ <div class="tw-flex tw-flex-col tw-items-center">
156
+ <VcIcon icon="material-star" size="xs" />
157
+ <div class="tw-mt-2 tw-text-center">
158
+ <span class="tw-text-sm tw-block">xs</span>
159
+ <span class="tw-text-xs tw-text-gray-500 tw-block">12px</span>
160
+ </div>
161
+ </div>
162
+ <div class="tw-flex tw-flex-col tw-items-center">
163
+ <VcIcon icon="material-star" size="s" />
164
+ <div class="tw-mt-2 tw-text-center">
165
+ <span class="tw-text-sm tw-block">s</span>
166
+ <span class="tw-text-xs tw-text-gray-500 tw-block">14px</span>
167
+ </div>
168
+ </div>
169
+ <div class="tw-flex tw-flex-col tw-items-center">
170
+ <VcIcon icon="material-star" size="m" />
171
+ <div class="tw-mt-2 tw-text-center">
172
+ <span class="tw-text-sm tw-block">m (default)</span>
173
+ <span class="tw-text-xs tw-text-gray-500 tw-block">18px</span>
174
+ </div>
175
+ </div>
176
+ <div class="tw-flex tw-flex-col tw-items-center">
177
+ <VcIcon icon="material-star" size="l" />
178
+ <div class="tw-mt-2 tw-text-center">
179
+ <span class="tw-text-sm tw-block">l</span>
180
+ <span class="tw-text-xs tw-text-gray-500 tw-block">20px</span>
181
+ </div>
182
+ </div>
183
+ <div class="tw-flex tw-flex-col tw-items-center">
184
+ <VcIcon icon="material-star" size="xl" />
185
+ <div class="tw-mt-2 tw-text-center">
186
+ <span class="tw-text-sm tw-block">xl</span>
187
+ <span class="tw-text-xs tw-text-gray-500 tw-block">22px</span>
188
+ </div>
189
+ </div>
190
+ <div class="tw-flex tw-flex-col tw-items-center">
191
+ <VcIcon icon="material-star" size="xxl" />
192
+ <div class="tw-mt-2 tw-text-center">
193
+ <span class="tw-text-sm tw-block">xxl</span>
194
+ <span class="tw-text-xs tw-text-gray-500 tw-block">30px</span>
195
+ </div>
196
+ </div>
197
+ <div class="tw-flex tw-flex-col tw-items-center">
198
+ <VcIcon icon="material-star" size="xxxl" />
199
+ <div class="tw-mt-2 tw-text-center">
200
+ <span class="tw-text-sm tw-block">xxxl</span>
201
+ <span class="tw-text-xs tw-text-gray-500 tw-block">64px</span>
202
+ </div>
203
+ </div>
204
+ </div>
205
+ </section>
206
+
207
+ <section class="tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm tw-mt-8">
208
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Custom Size</h2>
209
+ <div class="tw-flex tw-flex-col tw-items-center">
210
+ <VcIcon icon="material-star" :custom-size="48" />
211
+ <div class="tw-mt-3 tw-text-center">
212
+ <span class="tw-text-sm tw-block">Custom Size (48px)</span>
213
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">:custom-size="48"</code>
214
+ </div>
215
+ </div>
216
+ <p class="tw-text-sm tw-text-gray-600 tw-text-center tw-mt-4">
217
+ The custom-size prop allows you to specify any size in pixels
218
+ </p>
219
+ </section>
220
+ </div>
221
+ `,
222
+ }),
61
223
  parameters: {
62
224
  docs: {
63
225
  description: {
64
- component: `
65
- The VcIcon component is designed to handle various icon types with a unified interface:
226
+ story:
227
+ "VcIcon comes with seven predefined sizes: xs, s, m, l, xl, xxl, and xxxl. You can also specify a custom size in pixels.",
228
+ },
229
+ },
230
+ },
231
+ };
66
232
 
67
- - **Font Awesome icons**: Use class names like "fas fa-home"
68
- - **Bootstrap icons**: Use class names like "bi-house"
69
- - **Material Design icons**: Use prefixed names like "material-home"
70
- - **Lucide icons**: Use prefixed names like "lucide-home" or direct component imports
71
- - **Custom SVG components**: Pass components directly or reference by name
233
+ /**
234
+ * Material Icons example with detailed options
235
+ */
236
+ export const MaterialIcons: Story = {
237
+ render: () => ({
238
+ components: { VcIcon },
239
+ template: `
240
+ <div class="tw-p-6 tw-max-w-4xl tw-mx-auto">
241
+ <h1 class="tw-text-2xl tw-font-bold tw-mb-6">Material Icons</h1>
242
+ <p class="tw-mb-4 tw-text-gray-600">
243
+ Material Icons are Google's official icon set following the Material Design guidelines.
244
+ Use the prefix "material-" followed by the icon name.
245
+ </p>
72
246
 
73
- The component automatically detects the icon type and renders it accordingly.
74
- `,
247
+ <div class="tw-grid tw-grid-cols-2 sm:tw-grid-cols-4 tw-gap-4">
248
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
249
+ <VcIcon icon="material-home" size="xl" />
250
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">material-home</code>
251
+ </div>
252
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
253
+ <VcIcon icon="material-settings" size="xl" />
254
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">material-settings</code>
255
+ </div>
256
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
257
+ <VcIcon icon="material-person" size="xl" />
258
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">material-person</code>
259
+ </div>
260
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
261
+ <VcIcon icon="material-shopping_cart" size="xl" />
262
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">material-shopping_cart</code>
263
+ </div>
264
+ </div>
265
+ </div>
266
+ `,
267
+ }),
268
+ parameters: {
269
+ docs: {
270
+ description: {
271
+ story: "Material Icons are Google's official icon set. Use the prefix 'material-' followed by the icon name.",
75
272
  },
76
273
  },
77
274
  },
78
- } satisfies Meta<typeof VcIcon>;
275
+ };
79
276
 
80
- export default meta;
81
- type Story = StoryObj<typeof meta>;
277
+ /**
278
+ * Bootstrap Icons example
279
+ */
280
+ export const BootstrapIcons: Story = {
281
+ render: () => ({
282
+ components: { VcIcon },
283
+ template: `
284
+ <div class="tw-p-6 tw-max-w-4xl tw-mx-auto">
285
+ <h1 class="tw-text-2xl tw-font-bold tw-mb-6">Bootstrap Icons</h1>
286
+ <p class="tw-mb-4 tw-text-gray-600">
287
+ Bootstrap Icons are free, high-quality, open source icons.
288
+ Use the prefix "bi-" followed by the icon name.
289
+ </p>
290
+
291
+ <div class="tw-grid tw-grid-cols-2 sm:tw-grid-cols-4 tw-gap-4">
292
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
293
+ <VcIcon icon="bi-house" size="xl" />
294
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">bi-house</code>
295
+ </div>
296
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
297
+ <VcIcon icon="bi-gear" size="xl" />
298
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">bi-gear</code>
299
+ </div>
300
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
301
+ <VcIcon icon="bi-person" size="xl" />
302
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">bi-person</code>
303
+ </div>
304
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
305
+ <VcIcon icon="bi-cart" size="xl" />
306
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">bi-cart</code>
307
+ </div>
308
+ </div>
309
+ </div>
310
+ `,
311
+ }),
312
+ parameters: {
313
+ docs: {
314
+ description: {
315
+ story: "Bootstrap Icons are free, high-quality icons. Use the prefix 'bi-' followed by the icon name.",
316
+ },
317
+ },
318
+ },
319
+ };
82
320
 
83
321
  /**
84
- * Basic example of using Font Awesome icons.
85
- * These icons require the Font Awesome library to be loaded in your project.
322
+ * Lucide Icons example
86
323
  */
87
- export const FontAwesome: Story = {
88
- args: {
89
- icon: "fas fa-shopping-cart",
90
- size: "l",
324
+ export const LucideIcons: Story = {
325
+ render: () => ({
326
+ components: { VcIcon },
327
+ template: `
328
+ <div class="tw-p-6 tw-max-w-4xl tw-mx-auto">
329
+ <h1 class="tw-text-2xl tw-font-bold tw-mb-6">Lucide Icons</h1>
330
+ <p class="tw-mb-4 tw-text-gray-600">
331
+ Lucide is a community-developed icon library with clean, consistent design.
332
+ Use the prefix "lucide-" followed by the icon name.
333
+ </p>
334
+
335
+ <div class="tw-grid tw-grid-cols-2 sm:tw-grid-cols-4 tw-gap-4">
336
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
337
+ <VcIcon icon="lucide-home" size="xl" />
338
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">lucide-home</code>
339
+ </div>
340
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
341
+ <VcIcon icon="lucide-settings" size="xl" />
342
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">lucide-settings</code>
343
+ </div>
344
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
345
+ <VcIcon icon="lucide-user" size="xl" />
346
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">lucide-user</code>
347
+ </div>
348
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
349
+ <VcIcon icon="lucide-shopping-cart" size="xl" />
350
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">lucide-shopping-cart</code>
351
+ </div>
352
+ </div>
353
+ </div>
354
+ `,
355
+ }),
356
+ parameters: {
357
+ docs: {
358
+ description: {
359
+ story:
360
+ "Lucide is a community-developed icon library with clean, consistent design. Use the prefix 'lucide-' followed by the icon name.",
361
+ },
362
+ },
91
363
  },
364
+ };
365
+
366
+ /**
367
+ * Font Awesome Icons example
368
+ */
369
+ export const FontAwesomeIcons: Story = {
370
+ render: () => ({
371
+ components: { VcIcon },
372
+ template: `
373
+ <div class="tw-p-6 tw-max-w-4xl tw-mx-auto">
374
+ <h1 class="tw-text-2xl tw-font-bold tw-mb-6">Font Awesome Icons</h1>
375
+ <p class="tw-mb-4 tw-text-gray-600">
376
+ Font Awesome is a popular icon set with thousands of icons.
377
+ Use the prefix "fas fa-" for solid icons, "far fa-" for regular icons, etc.
378
+ </p>
379
+
380
+ <div class="tw-grid tw-grid-cols-2 sm:tw-grid-cols-4 tw-gap-4">
381
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
382
+ <VcIcon icon="fas fa-home" size="xl" />
383
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">fas fa-home</code>
384
+ </div>
385
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
386
+ <VcIcon icon="fas fa-cog" size="xl" />
387
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">fas fa-cog</code>
388
+ </div>
389
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
390
+ <VcIcon icon="fas fa-user" size="xl" />
391
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">fas fa-user</code>
392
+ </div>
393
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
394
+ <VcIcon icon="fas fa-shopping-cart" size="xl" />
395
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">fas fa-shopping-cart</code>
396
+ </div>
397
+ </div>
398
+ </div>
399
+ `,
400
+ }),
92
401
  parameters: {
93
402
  docs: {
94
403
  description: {
95
404
  story:
96
- "Font Awesome icons are rendered as `<i>` elements with the provided class names. This shopping cart icon is commonly used in e-commerce applications.",
405
+ "Font Awesome is a popular icon set. Use the prefix 'fas fa-' for solid icons, 'far fa-' for regular icons, etc.",
97
406
  },
98
407
  },
99
408
  },
@@ -356,7 +665,7 @@ export const StatusIcons: Story = {
356
665
  <div class="tw-flex tw-flex-col tw-gap-4">
357
666
  <h3 class="tw-text-lg tw-font-medium">Product & Order Status Icons</h3>
358
667
  <div class="tw-grid tw-grid-cols-4 tw-gap-4">
359
- <div v-for="item in icons" :key="item.icon" class="tw-flex tw-items-center tw-gap-2 tw-p-4 tw-border tw-border-gray-200 tw-rounded">
668
+ <div v-for="item in icons" :key="item.icon" class="tw-flex tw-items-center tw-gap-2 tw-p-4 tw-border tw-border-gray-200 tw-rounded-lg tw-shadow-sm">
360
669
  <VcIcon :icon="item.icon" :variant="item.variant" size="l" />
361
670
  <span class="tw-text-sm">{{item.label}}</span>
362
671
  </div>
@@ -391,3 +700,140 @@ export const IconExamples: Story = {
391
700
  `,
392
701
  }),
393
702
  };
703
+
704
+ // Add a new story for CSS styling demonstration
705
+ export const WithCssStyled: Story = {
706
+ name: "With External CSS Styles",
707
+ render: () => ({
708
+ components: { VcIcon },
709
+ template: `
710
+ <div class="tw-p-6 tw-max-w-4xl tw-mx-auto tw-space-y-8">
711
+ <section class="tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
712
+ <h3 class="tw-text-lg tw-font-semibold tw-mb-4 tw-border-b tw-pb-2">CSS vs. Preset Sizes</h3>
713
+ <div class="tw-flex tw-justify-center tw-gap-8">
714
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
715
+ <VcIcon icon="fas fa-star" size="xs" style="font-size: 30px;"/>
716
+ <span class="tw-text-sm">size="xs" + container (30px)</span>
717
+ </div>
718
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
719
+ <VcIcon icon="fas fa-star" size="m" style="font-size: 30px;"/>
720
+ <span class="tw-text-sm">size="m" + container (30px)</span>
721
+ </div>
722
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
723
+ <VcIcon icon="fas fa-star" size="xl" style="font-size: 30px;"/>
724
+ <span class="tw-text-sm">size="xl" + container (30px)</span>
725
+ </div>
726
+ </div>
727
+ <p class="tw-text-sm tw-text-gray-600 tw-text-center tw-mt-4">
728
+ When both preset size and CSS font-size are used, CSS size takes precedence
729
+ </p>
730
+ </section>
731
+ </div>
732
+ `,
733
+ data() {
734
+ return {
735
+ isHovered: false,
736
+ };
737
+ },
738
+ }),
739
+ parameters: {
740
+ docs: {
741
+ description: {
742
+ story:
743
+ "Examples of styling icons with CSS. This demonstrates how icons can inherit font size from parent elements, have direct styling applied, and even dynamic styling with hover effects.",
744
+ },
745
+ },
746
+ },
747
+ };
748
+
749
+ /**
750
+ * Color variants for status indication
751
+ */
752
+ export const ColorVariants: Story = {
753
+ render: () => ({
754
+ components: { VcIcon },
755
+ template: `
756
+ <div class="tw-p-6 tw-max-w-4xl tw-mx-auto">
757
+ <div class="tw-grid tw-grid-cols-2 sm:tw-grid-cols-4 tw-gap-4">
758
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
759
+ <VcIcon icon="material-check_circle" size="xl" />
760
+ <span class="tw-text-sm tw-mt-2">Default</span>
761
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">No variant</code>
762
+ </div>
763
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
764
+ <VcIcon icon="material-check_circle" variant="success" size="xl" />
765
+ <span class="tw-text-sm tw-mt-2">Success</span>
766
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">variant="success"</code>
767
+ </div>
768
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
769
+ <VcIcon icon="material-warning" variant="warning" size="xl" />
770
+ <span class="tw-text-sm tw-mt-2">Warning</span>
771
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">variant="warning"</code>
772
+ </div>
773
+ <div class="tw-flex tw-flex-col tw-items-center tw-bg-gray-50 tw-p-4 tw-rounded-lg">
774
+ <VcIcon icon="material-error" variant="danger" size="xl" />
775
+ <span class="tw-text-sm tw-mt-2">Danger</span>
776
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-1">variant="danger"</code>
777
+ </div>
778
+ </div>
779
+
780
+ <div class="tw-mt-6 tw-bg-blue-50 tw-p-4 tw-rounded-lg">
781
+ <p class="tw-text-blue-800">
782
+ <strong>Note:</strong> Color variants use CSS variables for theming. The values are defined in the root styles:
783
+ <br />
784
+ <code>--icon-color-success: var(--success-500)</code>
785
+ <br />
786
+ <code>--icon-color-danger: var(--danger-500)</code>
787
+ <br />
788
+ <code>--icon-color-warning: var(--warning-500)</code>
789
+ </p>
790
+ </div>
791
+ </div>
792
+ `,
793
+ }),
794
+ parameters: {
795
+ docs: {
796
+ description: {
797
+ story:
798
+ "The VcIcon component supports three color variants for status indication: success (green), warning (yellow), and danger (red).",
799
+ },
800
+ },
801
+ },
802
+ };
803
+
804
+ /**
805
+ * CSS styling example
806
+ */
807
+ export const CssStyling: Story = {
808
+ render: () => ({
809
+ components: { VcIcon },
810
+ template: `
811
+ <div class="tw-p-6 tw-max-w-4xl tw-mx-auto">
812
+ <section class="tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
813
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Direct Styling</h2>
814
+ <div class="tw-grid tw-grid-cols-3 tw-gap-4">
815
+ <div class="tw-flex tw-flex-col tw-items-center">
816
+ <VcIcon icon="material-star" style="color: #3498db;" />
817
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">color: #3498db</code>
818
+ </div>
819
+ <div class="tw-flex tw-flex-col tw-items-center">
820
+ <VcIcon icon="material-star" style="color: #e74c3c;" />
821
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">color: #e74c3c</code>
822
+ </div>
823
+ <div class="tw-flex tw-flex-col tw-items-center">
824
+ <VcIcon icon="material-star" style="color: #2ecc71;" />
825
+ <code class="tw-text-xs tw-bg-gray-100 tw-p-1 tw-rounded tw-mt-2">color: #2ecc71</code>
826
+ </div>
827
+ </div>
828
+ </section>
829
+ </div>
830
+ `,
831
+ }),
832
+ parameters: {
833
+ docs: {
834
+ description: {
835
+ story: " Icons can be styled with CSS.",
836
+ },
837
+ },
838
+ },
839
+ };