@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.
- package/CHANGELOG.md +20 -0
- package/core/directives/loading/styles.css +1 -1
- package/core/plugins/modularity/README.md +347 -17
- package/core/plugins/modularity/loader.ts +248 -3
- package/dist/core/plugins/modularity/loader.d.ts +4 -0
- package/dist/core/plugins/modularity/loader.d.ts.map +1 -1
- package/dist/shared/components/common/popup/vc-popup-error.vue.d.ts +2 -2
- package/dist/shared/components/common/popup/vc-popup-error.vue.d.ts.map +1 -1
- package/dist/shared/components/common/popup/vc-popup-info.vue.d.ts +2 -2
- package/dist/shared/components/common/popup/vc-popup-info.vue.d.ts.map +1 -1
- package/dist/shared/components/common/popup/vc-popup-warning.vue.d.ts +2 -2
- package/dist/shared/components/common/popup/vc-popup-warning.vue.d.ts.map +1 -1
- package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.vue.d.ts +3 -3
- package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.vue.d.ts.map +1 -1
- package/dist/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.d.ts +4 -4
- package/dist/shared/components/generic-dropdown/generic-dropdown.vue.d.ts.map +1 -1
- package/dist/shared/components/notifications/components/notification-container/index.d.ts +6 -6
- package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +1 -1
- package/dist/shared/components/settings-menu-item/settings-menu-item.vue.d.ts.map +1 -1
- package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +2 -2
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +2 -2
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +2 -2
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +1 -1
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +1 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-icon/composables/index.d.ts +3 -0
- package/dist/ui/components/atoms/vc-icon/composables/index.d.ts.map +1 -0
- package/dist/ui/components/atoms/vc-icon/composables/use-icon-type.d.ts +22 -0
- package/dist/ui/components/atoms/vc-icon/composables/use-icon-type.d.ts.map +1 -0
- package/dist/ui/components/atoms/vc-icon/composables/use-icon.d.ts +30 -0
- package/dist/ui/components/atoms/vc-icon/composables/use-icon.d.ts.map +1 -0
- package/dist/ui/components/atoms/vc-icon/index.d.ts +1 -0
- package/dist/ui/components/atoms/vc-icon/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/types.d.ts +31 -0
- package/dist/ui/components/atoms/vc-icon/types.d.ts.map +1 -0
- package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts +18 -4
- package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts +15 -2
- package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-icon-examples.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-icon-test.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +11 -6
- package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts +21 -4
- package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts +31 -5
- package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-svg-icon.vue.d.ts +33 -0
- package/dist/ui/components/atoms/vc-icon/vc-svg-icon.vue.d.ts.map +1 -0
- package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts +3 -3
- package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +2 -2
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +3 -3
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +4 -4
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts +6 -34
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-dropdown/index.d.ts +4 -0
- package/dist/ui/components/molecules/vc-input-dropdown/index.d.ts.map +1 -0
- package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts +171 -0
- package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts.map +1 -0
- package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts +2 -2
- package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +2 -2
- package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +3 -3
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarWidgetItem.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarWidgetItem.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/MenuSidebar.vue.d.ts +5 -5
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/MenuSidebar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts +3 -3
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
- 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
- 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
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +5 -5
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +3 -3
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-login-form/vc-login-form.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-login-form/vc-login-form.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +4 -4
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-body/vc-table-body.vue.d.ts +1 -1
- 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
- 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
- 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
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-row/vc-table-row.vue.d.ts +1 -1
- 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
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableActions.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableActions.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnReorder.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnReorder.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnResize.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnResize.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableSelection.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableSelection.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableState.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableState.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/types.d.ts +36 -0
- package/dist/ui/components/organisms/vc-table/types.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +2 -34
- package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
- package/package.json +4 -4
- package/shared/components/common/popup/vc-popup-error.vue +3 -3
- package/shared/components/common/popup/vc-popup-info.vue +3 -3
- package/shared/components/common/popup/vc-popup-warning.vue +3 -3
- package/shared/components/dashboard-widget-card/dashboard-widget-card.vue +4 -4
- package/shared/components/generic-dropdown/generic-dropdown.vue +1 -1
- package/shared/components/settings-menu-item/settings-menu-item.vue +1 -6
- package/shared/components/user-dropdown-button/_internal/user-info.vue +3 -3
- package/ui/components/atoms/vc-badge/vc-badge.vue +2 -2
- package/ui/components/atoms/vc-icon/README.md +198 -220
- package/ui/components/atoms/vc-icon/composables/index.ts +2 -0
- package/ui/components/atoms/vc-icon/composables/use-icon-type.ts +83 -0
- package/ui/components/atoms/vc-icon/composables/use-icon.ts +129 -0
- package/ui/components/atoms/vc-icon/index.ts +1 -0
- package/ui/components/atoms/vc-icon/types.ts +36 -0
- package/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue +111 -10
- package/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue +119 -17
- package/ui/components/atoms/vc-icon/vc-icon-examples.vue +485 -124
- package/ui/components/atoms/vc-icon/vc-icon-test.vue +399 -209
- package/ui/components/atoms/vc-icon/vc-icon.stories.ts +501 -55
- package/ui/components/atoms/vc-icon/vc-icon.vue +240 -155
- package/ui/components/atoms/vc-icon/vc-lucide-icon.vue +163 -33
- package/ui/components/atoms/vc-icon/vc-material-icon.vue +136 -30
- package/ui/components/atoms/vc-icon/vc-svg-icon.vue +168 -0
- package/ui/components/atoms/vc-label/vc-label.vue +3 -3
- package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +3 -3
- package/ui/components/atoms/vc-widget/vc-widget.stories.ts +13 -0
- package/ui/components/molecules/vc-checkbox/vc-checkbox.vue +4 -4
- package/ui/components/molecules/vc-file-upload/vc-file-upload.vue +2 -2
- package/ui/components/molecules/vc-input-currency/vc-input-currency.stories.ts +1 -1
- package/ui/components/molecules/vc-input-currency/vc-input-currency.vue +36 -115
- package/ui/components/molecules/vc-input-dropdown/index.ts +4 -0
- package/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.stories.ts +763 -0
- package/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue +268 -0
- package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +3 -3
- package/ui/components/molecules/vc-pagination/vc-pagination.vue +23 -14
- package/ui/components/molecules/vc-rating/vc-rating.vue +2 -2
- package/ui/components/molecules/vc-textarea/vc-textarea.vue +2 -2
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarHeader.vue +2 -2
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarWidgetItem.vue +3 -3
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/MenuSidebar.vue +6 -6
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +6 -7
- package/ui/components/organisms/vc-app/vc-app.vue +2 -3
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/props.ts +14 -0
- 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
- 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
- package/ui/components/organisms/vc-blade/vc-blade.vue +5 -5
- package/ui/components/organisms/vc-login-form/vc-login-form.vue +2 -2
- package/ui/components/organisms/vc-popup/vc-popup.vue +4 -4
- package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +1 -1
- package/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue +1 -1
- package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-body/vc-table-body.vue +1 -1
- package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-columns-header/vc-table-columns-header.vue +1 -1
- package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-row/vc-table-row.vue +1 -1
- package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue +1 -1
- package/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue +1 -1
- package/ui/components/organisms/vc-table/composables/useTableActions.ts +1 -1
- package/ui/components/organisms/vc-table/composables/useTableColumnReorder.ts +1 -1
- package/ui/components/organisms/vc-table/composables/useTableColumnResize.ts +1 -1
- package/ui/components/organisms/vc-table/composables/useTableRowReorder.ts +1 -1
- package/ui/components/organisms/vc-table/composables/useTableSelection.ts +1 -1
- package/ui/components/organisms/vc-table/composables/useTableState.ts +1 -1
- package/ui/components/organisms/vc-table/types.ts +32 -0
- package/ui/components/organisms/vc-table/vc-table.vue +2 -30
- package/dist/apl-B2DGVGxc.js +0 -76
- package/dist/asciiarmor-2LVJmxlE.js +0 -34
- package/dist/asn1-jKiBa2Ya.js +0 -95
- package/dist/asterisk-DS281yxp.js +0 -271
- package/dist/brainfuck-C_p9pTT8.js +0 -34
- package/dist/clike-BUuHEmgZ.js +0 -620
- package/dist/clojure-CCKyeQKf.js +0 -800
- package/dist/cmake-CuaCgAKt.js +0 -28
- package/dist/cobol-BlTKFDRj.js +0 -72
- package/dist/coffeescript-BVCvwO8I.js +0 -179
- package/dist/commonlisp-D_kxz07b.js +0 -75
- package/dist/crystal-D309uH6_.js +0 -217
- package/dist/css-bIlmDBTK.js +0 -1560
- package/dist/cypher-BMq4Fwjl.js +0 -68
- package/dist/d-BZcgY6La.js +0 -127
- package/dist/diff-Cg9d_RX2.js +0 -18
- package/dist/dockerfile-DIy8NleC.js +0 -194
- package/dist/dtd-CtLokQ-U.js +0 -84
- package/dist/dylan-QYeExnWK.js +0 -234
- package/dist/ebnf-DUPDuY4r.js +0 -78
- package/dist/ecl-CiXN-g_D.js +0 -121
- package/dist/eiffel-yQhjl4T1.js +0 -110
- package/dist/elm-CNT9vbN0.js +0 -108
- package/dist/erlang-CFOYdy9e.js +0 -487
- package/dist/factor-DDOC7X6P.js +0 -65
- package/dist/fcl-CPC2WYrI.js +0 -103
- package/dist/forth-BmxRyE9S.js +0 -60
- package/dist/fortran-9bvPyrOW.js +0 -442
- package/dist/framework.js +0 -288
- package/dist/gas-BdfkXJT_.js +0 -183
- package/dist/gherkin-CJuwpceU.js +0 -34
- package/dist/groovy-DZeT_VM-.js +0 -146
- package/dist/haskell-Bvt3Qq1t.js +0 -375
- package/dist/haxe-70NVW1pR.js +0 -359
- package/dist/http-D9LttvKF.js +0 -44
- package/dist/idl-B6TRFYjl.js +0 -947
- package/dist/index-BBYKbiRX.js +0 -93
- package/dist/index-BDm0tcWn.js +0 -145680
- package/dist/index-BDqUaIyQ.js +0 -156
- package/dist/index-BdflTsg6.js +0 -308
- package/dist/index-BpBTtmQ6.js +0 -288
- package/dist/index-Br0y2YMn.js +0 -58
- package/dist/index-CIcET-ZI.js +0 -71
- package/dist/index-CYAMpxnu.js +0 -341
- package/dist/index-Cf2H7YZ1.js +0 -98
- package/dist/index-Ck055pN8.js +0 -134
- package/dist/index-D-fPN3yf.js +0 -75
- package/dist/index-DJOis7Nc.js +0 -299
- package/dist/index-DKtQMsy4.js +0 -538
- package/dist/index-DWTsz5bC.js +0 -611
- package/dist/index-DuY7BIGm.js +0 -265
- package/dist/index-o6aSdNED.js +0 -137
- package/dist/index-wfv8ehcx.js +0 -249
- package/dist/index.css +0 -9
- package/dist/javascript-WMWNx-Vj.js +0 -690
- package/dist/jinja2-DnB6dQmV.js +0 -154
- package/dist/julia-DpvXAuO6.js +0 -241
- package/dist/livescript-CanGTf8u.js +0 -272
- package/dist/lua-XplVlWi_.js +0 -217
- package/dist/mathematica-jaRHnSxC.js +0 -35
- package/dist/mbox-BctzC1hL.js +0 -76
- package/dist/mirc-CFBPAOaF.js +0 -72
- package/dist/mllike-BSnXJBGA.js +0 -272
- package/dist/modelica-vUgVs--1.js +0 -93
- package/dist/mscgen-Cpl0NYLN.js +0 -104
- package/dist/mumps-CQoS1kWX.js +0 -25
- package/dist/nginx-zDPm3Z74.js +0 -89
- package/dist/nsis-fePjrhq7.js +0 -62
- package/dist/ntriples-CsNjv2QF.js +0 -79
- package/dist/octave-C8PmmSRH.js +0 -143
- package/dist/oz-Ce8aN8oE.js +0 -151
- package/dist/pascal-De0D6mP7.js +0 -77
- package/dist/perl-B4bSCe1C.js +0 -915
- package/dist/pig-D24Z8EXi.js +0 -54
- package/dist/powershell-DkYVfTzP.js +0 -249
- package/dist/properties-Dn9wna3M.js +0 -26
- package/dist/protobuf-BPIjwpzm.js +0 -49
- package/dist/pug-BqUR2bBq.js +0 -248
- package/dist/puppet-nyd4dhjf.js +0 -45
- package/dist/python-B5QdSKoL.js +0 -313
- package/dist/q-DXjKs-tC.js +0 -83
- package/dist/r-LKEuhEGI.js +0 -104
- package/dist/rpm-IznJm2Xc.js +0 -57
- package/dist/ruby-CcYfvIk6.js +0 -228
- package/dist/sas-7E8yHoCW.js +0 -105
- package/dist/scheme-DjibxsNh.js +0 -124
- package/dist/shell-C0C2sNA_.js +0 -182
- package/dist/sieve-Bwz7vjP5.js +0 -72
- package/dist/simple-mode-B0dvCdAA.js +0 -89
- package/dist/smalltalk-Bhddl2pB.js +0 -48
- package/dist/solr-BNlsLglM.js +0 -41
- package/dist/sparql-FarWu_Gb.js +0 -197
- package/dist/spreadsheet-C-cy4P5N.js +0 -49
- package/dist/sql-mMre1Bo3.js +0 -282
- package/dist/stex-92raWT1r.js +0 -129
- package/dist/stylus-CAdqWld3.js +0 -250
- package/dist/swift-DSxqR9R6.js +0 -230
- package/dist/tcl-xfoLljhY.js +0 -81
- package/dist/textile-D1AWE-pc.js +0 -295
- package/dist/tiddlywiki-5wqsXtSk.js +0 -155
- package/dist/tiki-__Kn3CeS.js +0 -181
- package/dist/toml-BHiuTcfn.js +0 -49
- package/dist/troff-D2UO-fKf.js +0 -35
- package/dist/ttcn-Bsa4sfRm.js +0 -123
- package/dist/ttcn-cfg-Bac_acMi.js +0 -88
- package/dist/turtle-xwJUxoPV.js +0 -80
- package/dist/vb-c2kQGd6-.js +0 -74
- package/dist/vbscript-Dz1TtKsy.js +0 -324
- package/dist/velocity-DJd0pTTC.js +0 -96
- package/dist/verilog-C4VGD9n1.js +0 -263
- package/dist/vhdl-T9HkrbI2.js +0 -106
- package/dist/webidl-CjfDENEo.js +0 -155
- package/dist/xquery-BUQdORAS.js +0 -422
- package/dist/yacas-C0absKBh.js +0 -73
- 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:
|
|
51
|
-
actions:
|
|
52
|
-
content:
|
|
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:
|
|
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
|
|
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
|
-
-
|
|
8
|
+
- Font Awesome (legacy support)
|
|
9
|
+
- Custom SVG Icons
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Features
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
<!--
|
|
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
|
|
28
|
+
<!-- Bootstrap Icon -->
|
|
85
29
|
<VcIcon icon="bi-house" />
|
|
86
30
|
|
|
87
|
-
<!-- Lucide Icon
|
|
31
|
+
<!-- Lucide Icon -->
|
|
88
32
|
<VcIcon icon="lucide-home" />
|
|
89
33
|
|
|
90
|
-
<!--
|
|
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 '
|
|
46
|
+
import { VcIcon } from '@framework/ui/components/atoms/vc-icon';
|
|
97
47
|
</script>
|
|
98
48
|
```
|
|
99
49
|
|
|
100
|
-
|
|
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
|
-
|
|
105
|
-
<VcIcon icon="
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
<VcIcon icon="home" />
|
|
109
|
-
|
|
110
|
-
<!--
|
|
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
|
-
<!--
|
|
114
|
-
<VcIcon icon="
|
|
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"` |
|
|
124
|
-
| `variant` | `"warning" \| "danger" \| "success"` | `undefined` | Color variant |
|
|
125
|
-
| `
|
|
126
|
-
| `
|
|
127
|
-
| `
|
|
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
|
-
##
|
|
92
|
+
## Size Normalization
|
|
133
93
|
|
|
134
|
-
The component automatically
|
|
94
|
+
The component automatically normalizes icon sizes across different libraries, ensuring they appear visually consistent when using the same size prop.
|
|
135
95
|
|
|
136
|
-
|
|
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
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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
|
-
|
|
103
|
+
These scaling factors provide a consistent experience regardless of the icon library used.
|
|
183
104
|
|
|
184
|
-
|
|
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
|
-
|
|
107
|
+
The component automatically detects the icon type based on the icon name:
|
|
196
108
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
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
|
-
###
|
|
120
|
+
### Examples of CSS Styling
|
|
205
121
|
|
|
206
122
|
```vue
|
|
207
123
|
<template>
|
|
208
|
-
<!--
|
|
209
|
-
<
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
<
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
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
|
-
<
|
|
221
|
-
|
|
222
|
-
|
|
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
|
-
|
|
169
|
+
### Size Priority
|
|
226
170
|
|
|
227
|
-
|
|
171
|
+
The icon size is determined in the following order of priority:
|
|
228
172
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
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
|
-
|
|
235
|
-
<VcIcon icon="search" />
|
|
236
|
-
<VcIcon icon="home" />
|
|
177
|
+
This allows flexible configuration of icon sizes in various usage contexts.
|
|
237
178
|
|
|
238
|
-
|
|
239
|
-
<VcIcon icon="material-search" />
|
|
240
|
-
<VcIcon icon="material-home" />
|
|
241
|
-
```
|
|
179
|
+
## Library-Specific Features
|
|
242
180
|
|
|
243
|
-
###
|
|
181
|
+
### Material Symbols
|
|
182
|
+
|
|
183
|
+
Material Symbols support additional customization properties:
|
|
244
184
|
|
|
245
185
|
```vue
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
<VcIcon
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
<VcIcon
|
|
253
|
-
|
|
254
|
-
|
|
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
|
-
###
|
|
231
|
+
### Using SVG Icons
|
|
232
|
+
|
|
233
|
+
You can use SVG icons with the `svg:` prefix:
|
|
258
234
|
|
|
259
235
|
```vue
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
<VcIcon icon="
|
|
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
|
-
|
|
265
|
-
<VcIcon icon="HomeIcon" type="lucide" />
|
|
266
|
-
<VcIcon icon="SettingsIcon" type="lucide" />
|
|
253
|
+
## Container Support
|
|
267
254
|
|
|
268
|
-
|
|
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
|
-
|
|
257
|
+
```vue
|
|
273
258
|
<template>
|
|
274
|
-
|
|
275
|
-
<VcIcon
|
|
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
|
-
|
|
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
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
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
|