@vc-shell/framework 1.1.4 → 1.1.5

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 (132) hide show
  1. package/CHANGELOG.md +10 -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 +217 -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/framework.js +1 -1
  8. package/dist/{index-BdflTsg6.js → index-BBHl6nap.js} +1 -1
  9. package/dist/{index-DJOis7Nc.js → index-BG6N4UCY.js} +1 -1
  10. package/dist/{index-CIcET-ZI.js → index-Bv5as3SI.js} +1 -1
  11. package/dist/{index-wfv8ehcx.js → index-C4VyqVxv.js} +1 -1
  12. package/dist/{index-Cf2H7YZ1.js → index-CKLiFGZ-.js} +1 -1
  13. package/dist/{index-DuY7BIGm.js → index-CTmAMa_1.js} +1 -1
  14. package/dist/{index-D-fPN3yf.js → index-CtGZgIiV.js} +1 -1
  15. package/dist/{index-BpBTtmQ6.js → index-D13Jcezf.js} +1 -1
  16. package/dist/{index-DWTsz5bC.js → index-DbpKygJh.js} +1 -1
  17. package/dist/{index-Br0y2YMn.js → index-DgCtSr4P.js} +1 -1
  18. package/dist/{index-Ck055pN8.js → index-Dh1XjfgY.js} +1 -1
  19. package/dist/{index-CYAMpxnu.js → index-DpDbQQg6.js} +1 -1
  20. package/dist/{index-BDqUaIyQ.js → index-DwuQbDJG.js} +1 -1
  21. package/dist/{index-BBYKbiRX.js → index-Fhuqbkq2.js} +1 -1
  22. package/dist/{index-o6aSdNED.js → index-JTAZpxKF.js} +1 -1
  23. package/dist/{index-BDm0tcWn.js → index-MKD2CP5c.js} +49888 -48568
  24. package/dist/{index-DKtQMsy4.js → index-Q3k1PYzc.js} +1 -1
  25. package/dist/index.css +3 -3
  26. package/dist/shared/components/generic-dropdown/generic-dropdown.vue.d.ts.map +1 -1
  27. package/dist/shared/components/settings-menu-item/settings-menu-item.vue.d.ts.map +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/dist/ui/components/atoms/vc-icon/composables/index.d.ts +3 -0
  30. package/dist/ui/components/atoms/vc-icon/composables/index.d.ts.map +1 -0
  31. package/dist/ui/components/atoms/vc-icon/composables/use-icon-type.d.ts +22 -0
  32. package/dist/ui/components/atoms/vc-icon/composables/use-icon-type.d.ts.map +1 -0
  33. package/dist/ui/components/atoms/vc-icon/composables/use-icon.d.ts +30 -0
  34. package/dist/ui/components/atoms/vc-icon/composables/use-icon.d.ts.map +1 -0
  35. package/dist/ui/components/atoms/vc-icon/index.d.ts +1 -0
  36. package/dist/ui/components/atoms/vc-icon/index.d.ts.map +1 -1
  37. package/dist/ui/components/atoms/vc-icon/types.d.ts +31 -0
  38. package/dist/ui/components/atoms/vc-icon/types.d.ts.map +1 -0
  39. package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts +18 -4
  40. package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts.map +1 -1
  41. package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts +15 -2
  42. package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts.map +1 -1
  43. package/dist/ui/components/atoms/vc-icon/vc-icon-examples.vue.d.ts.map +1 -1
  44. package/dist/ui/components/atoms/vc-icon/vc-icon-test.vue.d.ts.map +1 -1
  45. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +11 -6
  46. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
  47. package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts +21 -4
  48. package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts.map +1 -1
  49. package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts +30 -4
  50. package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts.map +1 -1
  51. package/dist/ui/components/atoms/vc-icon/vc-svg-icon.vue.d.ts +33 -0
  52. package/dist/ui/components/atoms/vc-icon/vc-svg-icon.vue.d.ts.map +1 -0
  53. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
  54. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
  55. 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
  56. 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
  57. 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 +2 -13
  58. 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
  59. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-circle-button.vue.d.ts +1 -1
  60. 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
  61. package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts +1 -1
  62. package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -1
  63. package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts +1 -1
  64. package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts.map +1 -1
  65. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-body/vc-table-body.vue.d.ts +1 -1
  66. 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
  67. 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
  68. 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
  69. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-row/vc-table-row.vue.d.ts +1 -1
  70. 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
  71. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue.d.ts +1 -1
  72. package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue.d.ts.map +1 -1
  73. package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue.d.ts +1 -1
  74. package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue.d.ts.map +1 -1
  75. package/dist/ui/components/organisms/vc-table/composables/useTableActions.d.ts +1 -1
  76. package/dist/ui/components/organisms/vc-table/composables/useTableActions.d.ts.map +1 -1
  77. package/dist/ui/components/organisms/vc-table/composables/useTableColumnReorder.d.ts +1 -1
  78. package/dist/ui/components/organisms/vc-table/composables/useTableColumnReorder.d.ts.map +1 -1
  79. package/dist/ui/components/organisms/vc-table/composables/useTableColumnResize.d.ts +1 -1
  80. package/dist/ui/components/organisms/vc-table/composables/useTableColumnResize.d.ts.map +1 -1
  81. package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts +1 -1
  82. package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts.map +1 -1
  83. package/dist/ui/components/organisms/vc-table/composables/useTableSelection.d.ts +1 -1
  84. package/dist/ui/components/organisms/vc-table/composables/useTableSelection.d.ts.map +1 -1
  85. package/dist/ui/components/organisms/vc-table/composables/useTableState.d.ts +1 -1
  86. package/dist/ui/components/organisms/vc-table/composables/useTableState.d.ts.map +1 -1
  87. package/dist/ui/components/organisms/vc-table/types.d.ts +36 -0
  88. package/dist/ui/components/organisms/vc-table/types.d.ts.map +1 -0
  89. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +2 -34
  90. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
  91. package/package.json +4 -4
  92. package/shared/components/generic-dropdown/generic-dropdown.vue +1 -1
  93. package/shared/components/settings-menu-item/settings-menu-item.vue +1 -6
  94. package/shared/components/user-dropdown-button/_internal/user-info.vue +3 -3
  95. package/ui/components/atoms/vc-icon/README.md +198 -220
  96. package/ui/components/atoms/vc-icon/composables/index.ts +2 -0
  97. package/ui/components/atoms/vc-icon/composables/use-icon-type.ts +83 -0
  98. package/ui/components/atoms/vc-icon/composables/use-icon.ts +129 -0
  99. package/ui/components/atoms/vc-icon/index.ts +1 -0
  100. package/ui/components/atoms/vc-icon/types.ts +36 -0
  101. package/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue +111 -10
  102. package/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue +119 -17
  103. package/ui/components/atoms/vc-icon/vc-icon-examples.vue +485 -124
  104. package/ui/components/atoms/vc-icon/vc-icon-test.vue +399 -209
  105. package/ui/components/atoms/vc-icon/vc-icon.stories.ts +502 -56
  106. package/ui/components/atoms/vc-icon/vc-icon.vue +240 -155
  107. package/ui/components/atoms/vc-icon/vc-lucide-icon.vue +163 -33
  108. package/ui/components/atoms/vc-icon/vc-material-icon.vue +136 -30
  109. package/ui/components/atoms/vc-icon/vc-svg-icon.vue +168 -0
  110. package/ui/components/atoms/vc-widget/vc-widget.stories.ts +13 -0
  111. package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +1 -1
  112. package/ui/components/molecules/vc-pagination/vc-pagination.vue +23 -14
  113. package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarHeader.vue +2 -2
  114. package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +2 -3
  115. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/props.ts +14 -0
  116. 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
  117. 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
  118. package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +1 -1
  119. package/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue +1 -1
  120. package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-body/vc-table-body.vue +1 -1
  121. package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-columns-header/vc-table-columns-header.vue +1 -1
  122. package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-row/vc-table-row.vue +1 -1
  123. package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue +1 -1
  124. package/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue +1 -1
  125. package/ui/components/organisms/vc-table/composables/useTableActions.ts +1 -1
  126. package/ui/components/organisms/vc-table/composables/useTableColumnReorder.ts +1 -1
  127. package/ui/components/organisms/vc-table/composables/useTableColumnResize.ts +1 -1
  128. package/ui/components/organisms/vc-table/composables/useTableRowReorder.ts +1 -1
  129. package/ui/components/organisms/vc-table/composables/useTableSelection.ts +1 -1
  130. package/ui/components/organisms/vc-table/composables/useTableState.ts +1 -1
  131. package/ui/components/organisms/vc-table/types.ts +32 -0
  132. package/ui/components/organisms/vc-table/vc-table.vue +2 -30
@@ -1,183 +1,544 @@
1
1
  <template>
2
- <div class="icon-examples">
3
- <h2>Examples of Using Different Icon Libraries</h2>
2
+ <div class="tw-p-6 tw-max-w-5xl tw-mx-auto">
3
+ <h1 class="tw-text-2xl tw-font-bold tw-mb-6">VcIcon Examples</h1>
4
4
 
5
- <div class="icon-section">
6
- <h3>Font Awesome Icons</h3>
7
- <div class="icon-grid">
8
- <div class="icon-item">
9
- <VcIcon icon="fas fa-home" />
10
- <span>fas fa-home</span>
11
- </div>
12
- <div class="icon-item">
13
- <VcIcon icon="far fa-user" />
14
- <span>far fa-user</span>
5
+ <!-- Material Icons Section -->
6
+ <section class="tw-mb-12 tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
7
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Material Icons</h2>
8
+
9
+ <!-- Size Variations -->
10
+ <div class="tw-mb-8">
11
+ <h3 class="tw-text-lg tw-font-semibold tw-mb-3">Size Variations</h3>
12
+ <div class="tw-flex tw-flex-wrap tw-gap-8 tw-items-end">
13
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
14
+ <VcIcon
15
+ icon="material-home"
16
+ size="xs"
17
+ />
18
+ <span class="tw-text-xs">xs</span>
19
+ </div>
20
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
21
+ <VcIcon
22
+ icon="material-home"
23
+ size="s"
24
+ />
25
+ <span class="tw-text-xs">s</span>
26
+ </div>
27
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
28
+ <VcIcon
29
+ icon="material-home"
30
+ size="m"
31
+ />
32
+ <span class="tw-text-xs">m (default)</span>
33
+ </div>
34
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
35
+ <VcIcon
36
+ icon="material-home"
37
+ size="l"
38
+ />
39
+ <span class="tw-text-xs">l</span>
40
+ </div>
41
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
42
+ <VcIcon
43
+ icon="material-home"
44
+ size="xl"
45
+ />
46
+ <span class="tw-text-xs">xl</span>
47
+ </div>
48
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
49
+ <VcIcon
50
+ icon="material-home"
51
+ size="xxl"
52
+ />
53
+ <span class="tw-text-xs">xxl</span>
54
+ </div>
55
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
56
+ <VcIcon
57
+ icon="material-home"
58
+ size="xxxl"
59
+ />
60
+ <span class="tw-text-xs">xxxl</span>
61
+ </div>
15
62
  </div>
16
- <div class="icon-item">
63
+ </div>
64
+ </section>
65
+
66
+ <!-- Bootstrap Icons Section -->
67
+ <section class="tw-mb-12 tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
68
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Bootstrap Icons</h2>
69
+ <div class="tw-flex tw-flex-wrap tw-gap-8 tw-items-end">
70
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
17
71
  <VcIcon
18
- icon="fas fa-cog"
19
- size="xl"
72
+ icon="bi-house"
73
+ size="xs"
20
74
  />
21
- <span>fas fa-cog (xl)</span>
75
+ <span class="tw-text-xs">xs</span>
22
76
  </div>
23
- <div class="icon-item">
77
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
24
78
  <VcIcon
25
- icon="fas fa-exclamation-triangle"
26
- variant="warning"
79
+ icon="bi-house"
80
+ size="s"
27
81
  />
28
- <span>fas fa-exclamation-triangle (warning)</span>
82
+ <span class="tw-text-xs">s</span>
29
83
  </div>
30
- </div>
31
- </div>
32
-
33
- <div class="icon-section">
34
- <h3>Material Icons</h3>
35
- <div class="icon-grid">
36
- <div class="icon-item">
37
- <VcIcon icon="material-home" />
38
- <span>material-home</span>
84
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
85
+ <VcIcon
86
+ icon="bi-house"
87
+ size="m"
88
+ />
89
+ <span class="tw-text-xs">m (default)</span>
39
90
  </div>
40
- <div class="icon-item">
41
- <VcIcon icon="material-person" />
42
- <span>material-person</span>
91
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
92
+ <VcIcon
93
+ icon="bi-house"
94
+ size="l"
95
+ />
96
+ <span class="tw-text-xs">l</span>
43
97
  </div>
44
- <div class="icon-item">
98
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
45
99
  <VcIcon
46
- icon="material-settings"
100
+ icon="bi-house"
47
101
  size="xl"
48
102
  />
49
- <span>material-settings (xl)</span>
103
+ <span class="tw-text-xs">xl</span>
50
104
  </div>
51
- <div class="icon-item">
105
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
52
106
  <VcIcon
53
- icon="material-warning"
54
- variant="warning"
107
+ icon="bi-house"
108
+ size="xxl"
109
+ />
110
+ <span class="tw-text-xs">xxl</span>
111
+ </div>
112
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
113
+ <VcIcon
114
+ icon="bi-house"
115
+ size="xxxl"
55
116
  />
56
- <span>material-warning (warning)</span>
117
+ <span class="tw-text-xs">xxxl</span>
57
118
  </div>
58
119
  </div>
59
- </div>
120
+ </section>
60
121
 
61
- <div class="icon-section">
62
- <h3>Bootstrap Icons</h3>
63
- <div class="icon-grid">
64
- <div class="icon-item">
65
- <VcIcon icon="bi-house" />
66
- <span>bi-house</span>
122
+ <!-- Font Awesome Icons Section -->
123
+ <section class="tw-mb-12 tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
124
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Font Awesome Icons</h2>
125
+
126
+ <!-- Size Variations -->
127
+ <div class="tw-mb-8">
128
+ <div class="tw-flex tw-flex-wrap tw-gap-8 tw-items-end">
129
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
130
+ <VcIcon
131
+ icon="fas fa-home"
132
+ size="xs"
133
+ />
134
+ <span class="tw-text-xs">xs</span>
135
+ </div>
136
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
137
+ <VcIcon
138
+ icon="fas fa-home"
139
+ size="s"
140
+ />
141
+ <span class="tw-text-xs">s</span>
142
+ </div>
143
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
144
+ <VcIcon
145
+ icon="fas fa-home"
146
+ size="m"
147
+ />
148
+ <span class="tw-text-xs">m (default)</span>
149
+ </div>
150
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
151
+ <VcIcon
152
+ icon="fas fa-home"
153
+ size="l"
154
+ />
155
+ <span class="tw-text-xs">l</span>
156
+ </div>
157
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
158
+ <VcIcon
159
+ icon="fas fa-home"
160
+ size="xl"
161
+ />
162
+ <span class="tw-text-xs">xl</span>
163
+ </div>
164
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
165
+ <VcIcon
166
+ icon="fas fa-home"
167
+ size="xxl"
168
+ />
169
+ <span class="tw-text-xs">xxl</span>
170
+ </div>
171
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
172
+ <VcIcon
173
+ icon="fas fa-home"
174
+ size="xxxl"
175
+ />
176
+ <span class="tw-text-xs">xxxl</span>
177
+ </div>
178
+ </div>
179
+ </div>
180
+ </section>
181
+
182
+ <!-- Lucide Icons Section -->
183
+ <section class="tw-mb-12 tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
184
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Lucide Icons</h2>
185
+
186
+ <!-- Size Variations -->
187
+ <div class="tw-mb-8">
188
+ <h3 class="tw-text-lg tw-font-semibold tw-mb-3">Size Variations</h3>
189
+ <div class="tw-flex tw-flex-wrap tw-gap-8 tw-items-end">
190
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
191
+ <VcIcon
192
+ icon="lucide-home"
193
+ size="xs"
194
+ />
195
+ <span class="tw-text-xs">xs</span>
196
+ </div>
197
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
198
+ <VcIcon
199
+ icon="lucide-home"
200
+ size="s"
201
+ />
202
+ <span class="tw-text-xs">s</span>
203
+ </div>
204
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
205
+ <VcIcon
206
+ icon="lucide-home"
207
+ size="m"
208
+ />
209
+ <span class="tw-text-xs">m (default)</span>
210
+ </div>
211
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
212
+ <VcIcon
213
+ icon="lucide-home"
214
+ size="l"
215
+ />
216
+ <span class="tw-text-xs">l</span>
217
+ </div>
218
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
219
+ <VcIcon
220
+ icon="lucide-home"
221
+ size="xl"
222
+ />
223
+ <span class="tw-text-xs">xl</span>
224
+ </div>
225
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
226
+ <VcIcon
227
+ icon="lucide-home"
228
+ size="xxl"
229
+ />
230
+ <span class="tw-text-xs">xxl</span>
231
+ </div>
232
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
233
+ <VcIcon
234
+ icon="lucide-home"
235
+ size="xxxl"
236
+ />
237
+ <span class="tw-text-xs">xxxl</span>
238
+ </div>
239
+ </div>
240
+ </div>
241
+ </section>
242
+
243
+ <!-- Comparison Section -->
244
+ <section class="tw-mb-12 tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
245
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Library Comparison</h2>
246
+
247
+ <!-- Size M Comparison -->
248
+ <div class="tw-mb-8">
249
+ <h3 class="tw-text-lg tw-font-semibold tw-mb-3">Default Size (M) Comparison</h3>
250
+ <div class="tw-bg-gray-50 tw-p-5 tw-rounded-lg">
251
+ <div class="tw-grid tw-grid-cols-2 md:tw-grid-cols-4 tw-gap-8 tw-place-items-center">
252
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
253
+ <VcIcon
254
+ icon="material-home"
255
+ size="m"
256
+ />
257
+ <span class="tw-text-sm tw-font-medium">Material</span>
258
+ </div>
259
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
260
+ <VcIcon
261
+ icon="bi-house"
262
+ size="m"
263
+ />
264
+ <span class="tw-text-sm tw-font-medium">Bootstrap</span>
265
+ </div>
266
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
267
+ <VcIcon
268
+ icon="fas fa-home"
269
+ size="m"
270
+ />
271
+ <span class="tw-text-sm tw-font-medium">FontAwesome</span>
272
+ </div>
273
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-2">
274
+ <VcIcon
275
+ icon="lucide-home"
276
+ size="m"
277
+ />
278
+ <span class="tw-text-sm tw-font-medium">Lucide</span>
279
+ </div>
280
+ </div>
281
+ </div>
282
+ </div>
283
+
284
+ <!-- Color Variants -->
285
+ <div>
286
+ <h3 class="tw-text-lg tw-font-semibold tw-mb-3">Color Variants</h3>
287
+ <div class="tw-grid tw-grid-cols-1 md:tw-grid-cols-3 tw-gap-4">
288
+ <div class="tw-bg-gray-50 tw-p-4 tw-rounded-lg">
289
+ <h4 class="tw-font-medium tw-mb-2 tw-text-center">Warning</h4>
290
+ <div class="tw-flex tw-justify-center tw-gap-6">
291
+ <VcIcon
292
+ icon="material-warning"
293
+ variant="warning"
294
+ size="xl"
295
+ />
296
+ <VcIcon
297
+ icon="bi-exclamation-triangle"
298
+ variant="warning"
299
+ size="xl"
300
+ />
301
+ <VcIcon
302
+ icon="fas fa-exclamation-triangle"
303
+ variant="warning"
304
+ size="xl"
305
+ />
306
+ </div>
307
+ </div>
308
+ <div class="tw-bg-gray-50 tw-p-4 tw-rounded-lg">
309
+ <h4 class="tw-font-medium tw-mb-2 tw-text-center">Danger</h4>
310
+ <div class="tw-flex tw-justify-center tw-gap-6">
311
+ <VcIcon
312
+ icon="material-error"
313
+ variant="danger"
314
+ size="xl"
315
+ />
316
+ <VcIcon
317
+ icon="bi-exclamation-circle"
318
+ variant="danger"
319
+ size="xl"
320
+ />
321
+ <VcIcon
322
+ icon="fas fa-times-circle"
323
+ variant="danger"
324
+ size="xl"
325
+ />
326
+ </div>
327
+ </div>
328
+ <div class="tw-bg-gray-50 tw-p-4 tw-rounded-lg">
329
+ <h4 class="tw-font-medium tw-mb-2 tw-text-center">Success</h4>
330
+ <div class="tw-flex tw-justify-center tw-gap-6">
331
+ <VcIcon
332
+ icon="material-check_circle"
333
+ variant="success"
334
+ size="xl"
335
+ />
336
+ <VcIcon
337
+ icon="bi-check-circle"
338
+ variant="success"
339
+ size="xl"
340
+ />
341
+ <VcIcon
342
+ icon="fas fa-check-circle"
343
+ variant="success"
344
+ size="xl"
345
+ />
346
+ </div>
347
+ </div>
67
348
  </div>
68
- <div class="icon-item">
69
- <VcIcon icon="bi-person" />
70
- <span>bi-person</span>
349
+ </div>
350
+ </section>
351
+
352
+ <!-- CSS Styling Examples -->
353
+ <section class="tw-mb-12 tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
354
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">CSS Styling Examples</h2>
355
+
356
+ <div class="tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-8">
357
+ <!-- Base Font Size Example -->
358
+ <div class="tw-bg-gray-50 tw-p-4 tw-rounded-lg">
359
+ <h3 class="tw-font-semibold tw-mb-3">Inheriting Font Size</h3>
360
+ <div
361
+ style="font-size: 32px"
362
+ class="tw-flex tw-gap-6 tw-justify-center"
363
+ >
364
+ <VcIcon icon="fas fa-star" />
365
+ <VcIcon icon="material-home" />
366
+ <VcIcon icon="bi-heart" />
367
+ <VcIcon icon="lucide-settings" />
368
+ </div>
369
+ <p class="tw-text-sm tw-text-gray-600 tw-mt-2 tw-text-center">font-size: 32px</p>
71
370
  </div>
72
- <div class="icon-item">
371
+
372
+ <!-- Size Classes Example -->
373
+ <div class="tw-bg-gray-50 tw-p-4 tw-rounded-lg">
374
+ <h3 class="tw-font-semibold tw-mb-3">CSS Size Classes</h3>
375
+ <div class="tw-flex tw-flex-wrap tw-gap-8 tw-justify-center">
376
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-1">
377
+ <VcIcon
378
+ icon="fas fa-user"
379
+ class="icon-size-small"
380
+ />
381
+ <span class="tw-text-xs">16px</span>
382
+ </div>
383
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-1">
384
+ <VcIcon
385
+ icon="fas fa-user"
386
+ class="icon-size-medium"
387
+ />
388
+ <span class="tw-text-xs">24px</span>
389
+ </div>
390
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-1">
391
+ <VcIcon
392
+ icon="fas fa-user"
393
+ class="icon-size-large"
394
+ />
395
+ <span class="tw-text-xs">36px</span>
396
+ </div>
397
+ </div>
398
+ </div>
399
+ </div>
400
+
401
+ <div class="tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-8 tw-mt-6">
402
+ <!-- Hover Effect -->
403
+ <div class="tw-bg-gray-50 tw-p-4 tw-rounded-lg">
404
+ <h3 class="tw-font-semibold tw-mb-3">Hover Effects (try hovering)</h3>
405
+ <div class="tw-flex tw-justify-center tw-gap-8">
406
+ <VcIcon
407
+ icon="fas fa-heart"
408
+ class="hover-icon"
409
+ />
410
+ <VcIcon
411
+ icon="material-favorite"
412
+ class="hover-icon"
413
+ />
414
+ <VcIcon
415
+ icon="bi-star"
416
+ class="hover-icon"
417
+ />
418
+ <VcIcon
419
+ icon="lucide-thumbs-up"
420
+ class="hover-icon"
421
+ />
422
+ </div>
423
+ </div>
424
+
425
+ <!-- Custom Size vs Preset Size -->
426
+ <div class="tw-bg-gray-50 tw-p-4 tw-rounded-lg">
427
+ <h3 class="tw-font-semibold tw-mb-3">Custom Size vs Preset Size</h3>
428
+ <div class="tw-flex tw-flex-wrap tw-justify-center tw-gap-8 tw-items-end">
429
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-1">
430
+ <VcIcon
431
+ icon="material-star"
432
+ :custom-size="40"
433
+ />
434
+ <span class="tw-text-xs">customSize="40"</span>
435
+ </div>
436
+ <div class="tw-flex tw-flex-col tw-items-center tw-gap-1">
437
+ <VcIcon
438
+ icon="material-star"
439
+ size="xl"
440
+ />
441
+ <span class="tw-text-xs">size="xl"</span>
442
+ </div>
443
+ </div>
444
+ </div>
445
+ </div>
446
+ </section>
447
+
448
+ <!-- Common Icon Use Cases -->
449
+ <section class="tw-border tw-border-gray-200 tw-rounded-lg tw-p-5 tw-shadow-sm">
450
+ <h2 class="tw-text-xl tw-font-bold tw-mb-4 tw-border-b tw-pb-2">Common Icon Use Cases</h2>
451
+
452
+ <div class="tw-grid tw-grid-cols-2 md:tw-grid-cols-4 tw-gap-4">
453
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-border tw-border-gray-200 tw-rounded-lg tw-shadow-sm">
73
454
  <VcIcon
74
- icon="bi-gear"
455
+ icon="material-shopping_cart"
75
456
  size="xl"
76
457
  />
77
- <span>bi-gear (xl)</span>
458
+ <span class="tw-text-sm tw-mt-2">Cart</span>
78
459
  </div>
79
- <div class="icon-item">
460
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-border tw-border-gray-200 tw-rounded-lg tw-shadow-sm">
80
461
  <VcIcon
81
- icon="bi-exclamation-triangle"
82
- variant="warning"
462
+ icon="material-account_circle"
463
+ size="xl"
83
464
  />
84
- <span>bi-exclamation-triangle (warning)</span>
465
+ <span class="tw-text-sm tw-mt-2">Account</span>
85
466
  </div>
86
- </div>
87
- </div>
88
-
89
- <div class="icon-section">
90
- <h3>Lucide Icons</h3>
91
- <div class="icon-grid">
92
- <div class="icon-item">
467
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-border tw-border-gray-200 tw-rounded-lg tw-shadow-sm">
93
468
  <VcIcon
94
- icon="HomeIcon"
95
- type="lucide"
469
+ icon="material-favorite"
470
+ size="xl"
96
471
  />
97
- <span>HomeIcon (legacy format)</span>
472
+ <span class="tw-text-sm tw-mt-2">Wishlist</span>
98
473
  </div>
99
- <div class="icon-item">
100
- <VcIcon icon="lucide-home" />
101
- <span>lucide-home</span>
474
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-border tw-border-gray-200 tw-rounded-lg tw-shadow-sm">
475
+ <VcIcon
476
+ icon="material-search"
477
+ size="xl"
478
+ />
479
+ <span class="tw-text-sm tw-mt-2">Search</span>
102
480
  </div>
103
- <div class="icon-item">
481
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-border tw-border-gray-200 tw-rounded-lg tw-shadow-sm">
104
482
  <VcIcon
105
- icon="lucide-settings"
483
+ icon="material-check_circle"
484
+ variant="success"
106
485
  size="xl"
107
486
  />
108
- <span>lucide-settings (xl)</span>
487
+ <span class="tw-text-sm tw-mt-2">In Stock</span>
109
488
  </div>
110
- <div class="icon-item">
489
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-border tw-border-gray-200 tw-rounded-lg tw-shadow-sm">
111
490
  <VcIcon
112
- icon="lucide-alert-triangle"
491
+ icon="material-error_outline"
113
492
  variant="warning"
493
+ size="xl"
114
494
  />
115
- <span>lucide-alert-triangle (warning)</span>
116
- </div>
117
- </div>
118
- </div>
119
-
120
- <div class="icon-section">
121
- <h3>Mixed Usage</h3>
122
- <div class="icon-grid">
123
- <div class="icon-item">
124
- <VcIcon icon="fas fa-home" />
125
- <span>Font Awesome</span>
126
- </div>
127
- <div class="icon-item">
128
- <VcIcon icon="material-settings" />
129
- <span>Material</span>
495
+ <span class="tw-text-sm tw-mt-2">Low Stock</span>
130
496
  </div>
131
- <div class="icon-item">
132
- <VcIcon icon="bi-gear" />
133
- <span>Bootstrap</span>
497
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-border tw-border-gray-200 tw-rounded-lg tw-shadow-sm">
498
+ <VcIcon
499
+ icon="material-highlight_off"
500
+ variant="danger"
501
+ size="xl"
502
+ />
503
+ <span class="tw-text-sm tw-mt-2">Out of Stock</span>
134
504
  </div>
135
- <div class="icon-item">
136
- <VcIcon icon="lucide-home" />
137
- <span>Lucide</span>
505
+ <div class="tw-flex tw-flex-col tw-items-center tw-p-4 tw-border tw-border-gray-200 tw-rounded-lg tw-shadow-sm">
506
+ <VcIcon
507
+ icon="material-local_shipping"
508
+ size="xl"
509
+ />
510
+ <span class="tw-text-sm tw-mt-2">Shipping</span>
138
511
  </div>
139
512
  </div>
140
- </div>
513
+ </section>
141
514
  </div>
142
515
  </template>
143
516
 
144
- <script lang="ts" setup>
145
- import VcIcon from "./vc-icon.vue";
517
+ <script setup lang="ts">
518
+ import { VcIcon } from "./index";
146
519
  </script>
147
520
 
148
521
  <style lang="scss" scoped>
149
- .icon-examples {
150
- padding: 20px;
151
- font-family: sans-serif;
522
+ .icon-size-small {
523
+ font-size: 16px;
152
524
  }
153
525
 
154
- .icon-section {
155
- margin-bottom: 30px;
156
-
157
- h3 {
158
- margin-bottom: 15px;
159
- color: #444;
160
- }
526
+ .icon-size-medium {
527
+ font-size: 24px;
161
528
  }
162
529
 
163
- .icon-grid {
164
- display: grid;
165
- grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
166
- gap: 20px;
530
+ .icon-size-large {
531
+ font-size: 36px;
167
532
  }
168
533
 
169
- .icon-item {
170
- display: flex;
171
- flex-direction: column;
172
- align-items: center;
173
- padding: 15px;
174
- border: 1px solid #eee;
175
- border-radius: 6px;
176
-
177
- span {
178
- margin-top: 10px;
179
- font-size: 14px;
180
- color: #666;
534
+ .hover-icon {
535
+ font-size: 24px;
536
+ transition: all 0.3s ease;
537
+ cursor: pointer;
538
+
539
+ &:hover {
540
+ font-size: 36px;
541
+ color: #0ea5e9;
181
542
  }
182
543
  }
183
544
  </style>