banhaten 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +361 -0
  3. package/banhaten.config.example.json +13 -0
  4. package/package.json +59 -0
  5. package/registry/assets/activity-feed-avatar.png +0 -0
  6. package/registry/assets/avatars/avatar-01.jpg +0 -0
  7. package/registry/assets/avatars/avatar-02.jpg +0 -0
  8. package/registry/assets/avatars/avatar-03.jpg +0 -0
  9. package/registry/assets/avatars/avatar-04.jpg +0 -0
  10. package/registry/assets/avatars/avatar-05.jpg +0 -0
  11. package/registry/assets/avatars/avatar-06.jpg +0 -0
  12. package/registry/assets/avatars/avatar-07.jpg +0 -0
  13. package/registry/assets/avatars/avatar-08.jpg +0 -0
  14. package/registry/assets/avatars/avatar-09.jpg +0 -0
  15. package/registry/assets/avatars/avatar-10.jpg +0 -0
  16. package/registry/assets/avatars/avatar-11.jpg +0 -0
  17. package/registry/assets/avatars/avatar-12.jpg +0 -0
  18. package/registry/assets/avatars/avatar-13.jpg +0 -0
  19. package/registry/assets/avatars/avatar-14.jpg +0 -0
  20. package/registry/assets/avatars/avatar-15.jpg +0 -0
  21. package/registry/assets/avatars/avatar-16.jpg +0 -0
  22. package/registry/assets/avatars/avatar-17.jpg +0 -0
  23. package/registry/assets/avatars/avatar-18.jpg +0 -0
  24. package/registry/assets/avatars/avatar-19.jpg +0 -0
  25. package/registry/assets/avatars/avatar-20.jpg +0 -0
  26. package/registry/assets/avatars/avatar-21.jpg +0 -0
  27. package/registry/assets/avatars/avatar-22.jpg +0 -0
  28. package/registry/assets/avatars/avatar-23.jpg +0 -0
  29. package/registry/assets/avatars/avatar-24.jpg +0 -0
  30. package/registry/assets/avatars/avatar-25.jpg +0 -0
  31. package/registry/assets/avatars/avatar-26.jpg +0 -0
  32. package/registry/assets/avatars/avatar-27.jpg +0 -0
  33. package/registry/assets/avatars/avatar-28.jpg +0 -0
  34. package/registry/assets/avatars/avatar-29.jpg +0 -0
  35. package/registry/assets/avatars/avatar-30.jpg +0 -0
  36. package/registry/assets/avatars/avatar-31.jpg +0 -0
  37. package/registry/assets/avatars/avatar-32.jpg +0 -0
  38. package/registry/assets/avatars/avatar-33.jpg +0 -0
  39. package/registry/assets/avatars/avatar-34.jpg +0 -0
  40. package/registry/assets/avatars/avatar-35.jpg +0 -0
  41. package/registry/assets/image-assets.json +744 -0
  42. package/registry/assets/images/art-01.jpg +0 -0
  43. package/registry/assets/images/art-02.jpg +0 -0
  44. package/registry/assets/images/art-03.jpg +0 -0
  45. package/registry/assets/images/art-04.jpg +0 -0
  46. package/registry/assets/images/art-05.jpg +0 -0
  47. package/registry/assets/images/art-06.jpg +0 -0
  48. package/registry/assets/images/art-07.jpg +0 -0
  49. package/registry/assets/images/art-08.jpg +0 -0
  50. package/registry/assets/images/art-09.jpg +0 -0
  51. package/registry/assets/images/art-10.jpg +0 -0
  52. package/registry/assets/images/art-11.jpg +0 -0
  53. package/registry/assets/images/art-12.jpg +0 -0
  54. package/registry/assets/images/art-13.jpg +0 -0
  55. package/registry/assets/images/art-14.jpg +0 -0
  56. package/registry/assets/images/art-15.jpg +0 -0
  57. package/registry/assets/images/art-16.jpg +0 -0
  58. package/registry/assets/images/art-17.jpg +0 -0
  59. package/registry/assets/images/art-18.jpg +0 -0
  60. package/registry/assets/images/art-19.jpg +0 -0
  61. package/registry/assets/images/art-20.jpg +0 -0
  62. package/registry/assets/images/art-21.jpg +0 -0
  63. package/registry/assets/images/art-22.jpg +0 -0
  64. package/registry/assets/images/art-23.jpg +0 -0
  65. package/registry/assets/images/art-24.jpg +0 -0
  66. package/registry/assets/images/art-25.jpg +0 -0
  67. package/registry/assets/images/art-26.jpg +0 -0
  68. package/registry/assets/images/art-27.jpg +0 -0
  69. package/registry/assets/images/nature-01.jpg +0 -0
  70. package/registry/assets/images/nature-02.jpg +0 -0
  71. package/registry/assets/images/nature-03.jpg +0 -0
  72. package/registry/assets/images/nature-04.jpg +0 -0
  73. package/registry/assets/images/nature-05.jpg +0 -0
  74. package/registry/assets/images/nature-06.jpg +0 -0
  75. package/registry/assets/images/nature-07.jpg +0 -0
  76. package/registry/assets/images/nature-08.jpg +0 -0
  77. package/registry/assets/images/nature-09.jpg +0 -0
  78. package/registry/assets/images/nature-10.jpg +0 -0
  79. package/registry/assets/images/nature-11.jpg +0 -0
  80. package/registry/assets/images/nature-12.jpg +0 -0
  81. package/registry/assets/images/nature-13.jpg +0 -0
  82. package/registry/assets/images/nature-14.jpg +0 -0
  83. package/registry/assets/images/nature-15.jpg +0 -0
  84. package/registry/assets/images/nature-16.jpg +0 -0
  85. package/registry/assets/images/nature-17.jpg +0 -0
  86. package/registry/assets/images/nature-18.jpg +0 -0
  87. package/registry/assets/images/nature-19.jpg +0 -0
  88. package/registry/assets/images/nature-20.jpg +0 -0
  89. package/registry/components/accordion.tsx +119 -0
  90. package/registry/components/alert.tsx +282 -0
  91. package/registry/components/attribute.tsx +452 -0
  92. package/registry/components/avatar.tsx +142 -0
  93. package/registry/components/badge.tsx +567 -0
  94. package/registry/components/button-group.tsx +246 -0
  95. package/registry/components/button.tsx +102 -0
  96. package/registry/components/card.tsx +613 -0
  97. package/registry/components/checkbox.tsx +244 -0
  98. package/registry/components/date-picker.tsx +1143 -0
  99. package/registry/components/divider.tsx +82 -0
  100. package/registry/components/expanded/ActivityFeed.tsx +226 -0
  101. package/registry/components/expanded/Banner.tsx +145 -0
  102. package/registry/components/expanded/BannerBoard.tsx +225 -0
  103. package/registry/components/expanded/Breadcrumbs.tsx +156 -0
  104. package/registry/components/expanded/CatalogComponentsShowcase.tsx +211 -0
  105. package/registry/components/expanded/CatalogDivider.tsx +48 -0
  106. package/registry/components/expanded/CatalogTag.tsx +92 -0
  107. package/registry/components/expanded/CommandBar.tsx +406 -0
  108. package/registry/components/expanded/FileUpload.tsx +231 -0
  109. package/registry/components/expanded/IconExplorer.tsx +612 -0
  110. package/registry/components/expanded/OnboardingStepListItem.tsx +67 -0
  111. package/registry/components/expanded/PageHeader.tsx +184 -0
  112. package/registry/components/expanded/Slideout.tsx +514 -0
  113. package/registry/components/expanded/Steps.tsx +266 -0
  114. package/registry/components/expanded/Table.tsx +1014 -0
  115. package/registry/components/expanded/Tabs.tsx +86 -0
  116. package/registry/components/expanded/Timeline.tsx +235 -0
  117. package/registry/components/expanded/TimelineShowcase.tsx +158 -0
  118. package/registry/components/expanded/activityFeed.css +292 -0
  119. package/registry/components/expanded/banner.css +312 -0
  120. package/registry/components/expanded/breadcrumbs.css +140 -0
  121. package/registry/components/expanded/catalogComponentsShowcase.css +87 -0
  122. package/registry/components/expanded/commandBar.css +473 -0
  123. package/registry/components/expanded/divider.css +75 -0
  124. package/registry/components/expanded/fileUpload.css +228 -0
  125. package/registry/components/expanded/iconExplorer.css +764 -0
  126. package/registry/components/expanded/iconPacks.ts +866 -0
  127. package/registry/components/expanded/onboardingStepListItem.css +126 -0
  128. package/registry/components/expanded/pageHeader.css +287 -0
  129. package/registry/components/expanded/slideout.css +955 -0
  130. package/registry/components/expanded/steps.css +329 -0
  131. package/registry/components/expanded/table.css +607 -0
  132. package/registry/components/expanded/tabs.css +197 -0
  133. package/registry/components/expanded/tag.css +148 -0
  134. package/registry/components/expanded/timeline.css +282 -0
  135. package/registry/components/input-content.ts +106 -0
  136. package/registry/components/input.tsx +866 -0
  137. package/registry/components/menu.tsx +758 -0
  138. package/registry/components/modal.tsx +799 -0
  139. package/registry/components/pagination.tsx +543 -0
  140. package/registry/components/progress-slider.tsx +216 -0
  141. package/registry/components/progress.tsx +367 -0
  142. package/registry/components/radio-card.tsx +654 -0
  143. package/registry/components/radio-group.tsx +570 -0
  144. package/registry/components/select-content.tsx +313 -0
  145. package/registry/components/select.tsx +871 -0
  146. package/registry/components/slider.tsx +380 -0
  147. package/registry/components/social-button.tsx +360 -0
  148. package/registry/components/spinner.tsx +31 -0
  149. package/registry/components/tag.tsx +423 -0
  150. package/registry/components/textarea.tsx +625 -0
  151. package/registry/components/toggle.tsx +272 -0
  152. package/registry/components/toolbar.tsx +467 -0
  153. package/registry/components/tooltip.tsx +427 -0
  154. package/registry/examples/accordion-demo.tsx +34 -0
  155. package/registry/examples/alert-demo.tsx +14 -0
  156. package/registry/examples/attribute-demo.tsx +65 -0
  157. package/registry/examples/avatar-demo.tsx +74 -0
  158. package/registry/examples/badge-demo.tsx +53 -0
  159. package/registry/examples/button-demo.tsx +83 -0
  160. package/registry/examples/button-group-demo.tsx +42 -0
  161. package/registry/examples/card-demo.tsx +48 -0
  162. package/registry/examples/checkbox-demo.tsx +67 -0
  163. package/registry/examples/date-picker-demo.tsx +74 -0
  164. package/registry/examples/divider-demo.tsx +17 -0
  165. package/registry/examples/expanded/activity-feed-demo.tsx +22 -0
  166. package/registry/examples/expanded/banner-demo.tsx +23 -0
  167. package/registry/examples/expanded/catalog-components-demo.tsx +5 -0
  168. package/registry/examples/expanded/command-bar-demo.tsx +10 -0
  169. package/registry/examples/expanded/icons-demo.tsx +5 -0
  170. package/registry/examples/expanded/onboarding-step-demo.tsx +11 -0
  171. package/registry/examples/expanded/page-header-demo.tsx +19 -0
  172. package/registry/examples/expanded/slideout-demo.tsx +15 -0
  173. package/registry/examples/expanded/steps-demo.tsx +18 -0
  174. package/registry/examples/expanded/tabs-demo.tsx +13 -0
  175. package/registry/examples/expanded/timeline-demo.tsx +18 -0
  176. package/registry/examples/input-demo.tsx +87 -0
  177. package/registry/examples/menu-demo.tsx +109 -0
  178. package/registry/examples/modal-demo.tsx +16 -0
  179. package/registry/examples/pagination-demo.tsx +17 -0
  180. package/registry/examples/progress-demo.tsx +37 -0
  181. package/registry/examples/progress-slider-demo.tsx +29 -0
  182. package/registry/examples/radio-card-demo.tsx +51 -0
  183. package/registry/examples/radio-group-demo.tsx +62 -0
  184. package/registry/examples/select-demo.tsx +73 -0
  185. package/registry/examples/slider-demo.tsx +31 -0
  186. package/registry/examples/social-button-demo.tsx +51 -0
  187. package/registry/examples/tag-demo.tsx +29 -0
  188. package/registry/examples/textarea-demo.tsx +79 -0
  189. package/registry/examples/toggle-demo.tsx +59 -0
  190. package/registry/examples/toolbar-demo.tsx +80 -0
  191. package/registry/examples/tooltip-demo.tsx +115 -0
  192. package/registry/hooks/use-direction.ts +27 -0
  193. package/registry/index.json +1213 -0
  194. package/registry/styles/globals.css +4600 -0
  195. package/registry/utils/cn.ts +6 -0
  196. package/src/cli/index.js +826 -0
  197. package/tokens/Color mode.zip +0 -0
  198. package/tokens/Numbers.zip +0 -0
  199. package/tokens/Radius.zip +0 -0
  200. package/tokens/Theme.zip +0 -0
  201. package/tokens/banhaten.tokens.json +5525 -0
@@ -0,0 +1,866 @@
1
+ export type IconPosture = "shortlist" | "broad" | "specialized" | "brand";
2
+ export type IconVariantMode = "prefix" | "suffix";
3
+
4
+ export type IconSemantic =
5
+ | "home"
6
+ | "search"
7
+ | "settings"
8
+ | "bell"
9
+ | "users"
10
+ | "chevron"
11
+ | "check"
12
+ | "close"
13
+ | "add"
14
+ | "download"
15
+ | "trash"
16
+ | "calendar"
17
+ | "filter"
18
+ | "chart"
19
+ | "warning"
20
+ | "menu"
21
+ | "more"
22
+ | "edit";
23
+
24
+ export type IconVariant = {
25
+ id: string;
26
+ label: string;
27
+ prefix?: string;
28
+ suffix?: string;
29
+ overrides?: Partial<Record<IconSemantic, string>>;
30
+ };
31
+
32
+ export type IconPack = {
33
+ id: string;
34
+ prefix: string;
35
+ name: string;
36
+ posture: IconPosture;
37
+ total: number;
38
+ license: string;
39
+ licenseUrl: string;
40
+ officialUrl: string;
41
+ summary: string;
42
+ tags: string[];
43
+ scores: {
44
+ fit: number;
45
+ coverage: number;
46
+ variants: number;
47
+ density: number;
48
+ };
49
+ variantMode?: IconVariantMode;
50
+ variants: IconVariant[];
51
+ icons: Record<IconSemantic, string>;
52
+ };
53
+
54
+ export const iconSemantics: Array<[IconSemantic, string]> = [
55
+ ["home", "Home"],
56
+ ["search", "Search"],
57
+ ["settings", "Settings"],
58
+ ["bell", "Bell"],
59
+ ["users", "Users"],
60
+ ["chevron", "Chevron"],
61
+ ["check", "Check"],
62
+ ["close", "Close"],
63
+ ["add", "Add"],
64
+ ["download", "Download"],
65
+ ["trash", "Trash"],
66
+ ["calendar", "Calendar"],
67
+ ["filter", "Filter"],
68
+ ["chart", "Chart"],
69
+ ["warning", "Warning"],
70
+ ["menu", "Menu"],
71
+ ["more", "More"],
72
+ ["edit", "Edit"],
73
+ ];
74
+
75
+ export const iconPacks: IconPack[] = [
76
+ {
77
+ id: "material-symbols",
78
+ prefix: "material-symbols",
79
+ name: "Google Material Symbols",
80
+ posture: "shortlist",
81
+ total: 15450,
82
+ license: "Apache-2.0",
83
+ licenseUrl: "https://github.com/google/material-design-icons/blob/master/LICENSE",
84
+ officialUrl: "https://fonts.google.com/icons",
85
+ summary: "The newer Google icon family with the strongest built-in shape variants and broad recognizability.",
86
+ tags: ["Google", "variable family", "large catalog"],
87
+ scores: { fit: 84, coverage: 94, variants: 96, density: 78 },
88
+ variantMode: "suffix",
89
+ variants: [
90
+ { id: "regular", label: "Regular", suffix: "" },
91
+ { id: "rounded", label: "Rounded", suffix: "-rounded", overrides: { more: "more-vert" } },
92
+ { id: "sharp", label: "Sharp", suffix: "-sharp" },
93
+ {
94
+ id: "outline",
95
+ label: "Outline",
96
+ suffix: "-outline",
97
+ overrides: {
98
+ search: "search",
99
+ chevron: "expand-more",
100
+ close: "close",
101
+ add: "add",
102
+ download: "download",
103
+ filter: "filter-list",
104
+ chart: "bar-chart",
105
+ menu: "menu",
106
+ more: "more-vert",
107
+ },
108
+ },
109
+ {
110
+ id: "outline-rounded",
111
+ label: "Outline Rounded",
112
+ suffix: "-outline-rounded",
113
+ overrides: {
114
+ search: "search-rounded",
115
+ chevron: "expand-more-rounded",
116
+ close: "close-rounded",
117
+ add: "add-rounded",
118
+ download: "download-rounded",
119
+ filter: "filter-list-rounded",
120
+ chart: "bar-chart-rounded",
121
+ menu: "menu-rounded",
122
+ more: "more-vert",
123
+ },
124
+ },
125
+ {
126
+ id: "outline-sharp",
127
+ label: "Outline Sharp",
128
+ suffix: "-outline-sharp",
129
+ overrides: {
130
+ search: "search-sharp",
131
+ chevron: "expand-more-sharp",
132
+ add: "add-sharp",
133
+ download: "download-sharp",
134
+ filter: "filter-list-sharp",
135
+ chart: "bar-chart-sharp",
136
+ menu: "menu-sharp",
137
+ more: "more-vert-sharp",
138
+ },
139
+ },
140
+ ],
141
+ icons: {
142
+ home: "home",
143
+ search: "search",
144
+ settings: "settings",
145
+ bell: "notifications",
146
+ users: "group",
147
+ chevron: "expand-more",
148
+ check: "check-circle",
149
+ close: "close",
150
+ add: "add",
151
+ download: "download",
152
+ trash: "delete",
153
+ calendar: "calendar-month",
154
+ filter: "filter-list",
155
+ chart: "bar-chart",
156
+ warning: "warning",
157
+ menu: "menu",
158
+ more: "more-vert",
159
+ edit: "edit",
160
+ },
161
+ },
162
+ {
163
+ id: "ic",
164
+ prefix: "ic",
165
+ name: "Google Material Icons Classic",
166
+ posture: "broad",
167
+ total: 10955,
168
+ license: "Apache-2.0",
169
+ licenseUrl: "https://github.com/google/material-design-icons/blob/master/LICENSE",
170
+ officialUrl: "https://fonts.google.com/icons?icon.set=Material+Icons",
171
+ summary: "The classic Material Icons set with the older two-tone style and familiar Material metaphors.",
172
+ tags: ["Google", "classic", "two-tone"],
173
+ scores: { fit: 78, coverage: 90, variants: 88, density: 76 },
174
+ variantMode: "prefix",
175
+ variants: [
176
+ { id: "baseline", label: "Filled", prefix: "baseline-" },
177
+ { id: "outline", label: "Outlined", prefix: "outline-" },
178
+ { id: "round", label: "Rounded", prefix: "round-" },
179
+ { id: "sharp", label: "Sharp", prefix: "sharp-" },
180
+ { id: "twotone", label: "Two tone", prefix: "twotone-" },
181
+ ],
182
+ icons: {
183
+ home: "home",
184
+ search: "search",
185
+ settings: "settings",
186
+ bell: "notifications",
187
+ users: "group",
188
+ chevron: "expand-more",
189
+ check: "check-circle",
190
+ close: "close",
191
+ add: "add",
192
+ download: "file-download",
193
+ trash: "delete",
194
+ calendar: "date-range",
195
+ filter: "filter-list",
196
+ chart: "bar-chart",
197
+ warning: "warning",
198
+ menu: "menu",
199
+ more: "more-vert",
200
+ edit: "edit",
201
+ },
202
+ },
203
+ {
204
+ id: "mdi",
205
+ prefix: "mdi",
206
+ name: "Material Design Icons by Pictogrammers",
207
+ posture: "broad",
208
+ total: 7447,
209
+ license: "Apache-2.0",
210
+ licenseUrl: "https://pictogrammers.com/docs/general/license/",
211
+ officialUrl: "https://pictogrammers.com/library/mdi/",
212
+ summary: "A very large community Material-style set for cases Google Material does not cover.",
213
+ tags: ["community", "utility coverage", "Material-like"],
214
+ scores: { fit: 74, coverage: 96, variants: 50, density: 72 },
215
+ variants: [{ id: "regular", label: "Regular" }],
216
+ icons: {
217
+ home: "home",
218
+ search: "magnify",
219
+ settings: "cog",
220
+ bell: "bell",
221
+ users: "account-group",
222
+ chevron: "chevron-down",
223
+ check: "check-circle",
224
+ close: "close",
225
+ add: "plus",
226
+ download: "download",
227
+ trash: "trash-can",
228
+ calendar: "calendar-month",
229
+ filter: "filter-variant",
230
+ chart: "chart-bar",
231
+ warning: "alert-circle-outline",
232
+ menu: "menu",
233
+ more: "dots-vertical",
234
+ edit: "pencil",
235
+ },
236
+ },
237
+ {
238
+ id: "radix-icons",
239
+ prefix: "radix-icons",
240
+ name: "Radix Icons",
241
+ posture: "shortlist",
242
+ total: 332,
243
+ license: "MIT",
244
+ licenseUrl: "https://github.com/radix-ui/icons/blob/master/LICENSE",
245
+ officialUrl: "https://www.radix-ui.com/icons",
246
+ summary: "Crisp 15px icons from the Radix ecosystem, excellent for compact controls and primitives.",
247
+ tags: ["15px grid", "compact UI", "primitives"],
248
+ scores: { fit: 86, coverage: 54, variants: 42, density: 96 },
249
+ variants: [{ id: "regular", label: "Regular" }],
250
+ icons: {
251
+ home: "home",
252
+ search: "magnifying-glass",
253
+ settings: "gear",
254
+ bell: "bell",
255
+ users: "people",
256
+ chevron: "chevron-down",
257
+ check: "check-circled",
258
+ close: "cross-1",
259
+ add: "plus",
260
+ download: "download",
261
+ trash: "trash",
262
+ calendar: "calendar",
263
+ filter: "mixer-horizontal",
264
+ chart: "bar-chart",
265
+ warning: "exclamation-triangle",
266
+ menu: "hamburger-menu",
267
+ more: "dots-vertical",
268
+ edit: "pencil-2",
269
+ },
270
+ },
271
+ {
272
+ id: "lucide",
273
+ prefix: "lucide",
274
+ name: "Lucide",
275
+ posture: "shortlist",
276
+ total: 1714,
277
+ license: "ISC",
278
+ licenseUrl: "https://github.com/lucide-icons/lucide/blob/main/LICENSE",
279
+ officialUrl: "https://lucide.dev",
280
+ summary: "A broad, consistent Feather fork and often the safest modern default for product UI.",
281
+ tags: ["outline", "modern default", "React-friendly"],
282
+ scores: { fit: 92, coverage: 82, variants: 45, density: 84 },
283
+ variants: [{ id: "regular", label: "Regular" }],
284
+ icons: {
285
+ home: "home",
286
+ search: "search",
287
+ settings: "settings",
288
+ bell: "bell",
289
+ users: "users",
290
+ chevron: "chevron-down",
291
+ check: "circle-check",
292
+ close: "x",
293
+ add: "plus",
294
+ download: "download",
295
+ trash: "trash-2",
296
+ calendar: "calendar",
297
+ filter: "funnel",
298
+ chart: "chart-bar",
299
+ warning: "triangle-alert",
300
+ menu: "menu",
301
+ more: "ellipsis-vertical",
302
+ edit: "pencil",
303
+ },
304
+ },
305
+ {
306
+ id: "heroicons",
307
+ prefix: "heroicons",
308
+ name: "Heroicons",
309
+ posture: "specialized",
310
+ total: 1288,
311
+ license: "MIT",
312
+ licenseUrl: "https://github.com/tailwindlabs/heroicons/blob/master/LICENSE",
313
+ officialUrl: "https://heroicons.com",
314
+ summary: "Hand-crafted icons from the Tailwind CSS team. Strong if the product leans Tailwind-first.",
315
+ tags: ["Tailwind", "outline/solid", "hand-crafted"],
316
+ scores: { fit: 82, coverage: 68, variants: 78, density: 78 },
317
+ variantMode: "suffix",
318
+ variants: [
319
+ { id: "outline", label: "Outline 24", suffix: "" },
320
+ { id: "solid", label: "Solid 24", suffix: "-solid" },
321
+ { id: "solid-20", label: "Solid 20", suffix: "-20-solid" },
322
+ { id: "solid-16", label: "Solid 16", suffix: "-16-solid" },
323
+ ],
324
+ icons: {
325
+ home: "home",
326
+ search: "magnifying-glass",
327
+ settings: "cog-6-tooth",
328
+ bell: "bell",
329
+ users: "user-group",
330
+ chevron: "chevron-down",
331
+ check: "check-circle",
332
+ close: "x-mark",
333
+ add: "plus",
334
+ download: "arrow-down-tray",
335
+ trash: "trash",
336
+ calendar: "calendar",
337
+ filter: "funnel",
338
+ chart: "chart-bar",
339
+ warning: "exclamation-triangle",
340
+ menu: "bars-3",
341
+ more: "ellipsis-vertical",
342
+ edit: "pencil-square",
343
+ },
344
+ },
345
+ {
346
+ id: "tabler",
347
+ prefix: "tabler",
348
+ name: "Tabler Icons",
349
+ posture: "shortlist",
350
+ total: 6146,
351
+ license: "MIT",
352
+ licenseUrl: "https://github.com/tabler/tabler-icons/blob/master/LICENSE",
353
+ officialUrl: "https://tabler.io/icons",
354
+ summary: "A strong coverage-first choice with a consistent 24px outline style and filled variants.",
355
+ tags: ["huge set", "24px grid", "outline/fill"],
356
+ scores: { fit: 88, coverage: 96, variants: 72, density: 82 },
357
+ variantMode: "suffix",
358
+ variants: [
359
+ { id: "outline", label: "Outline", suffix: "" },
360
+ {
361
+ id: "filled",
362
+ label: "Filled",
363
+ suffix: "-filled",
364
+ overrides: {
365
+ users: "users-group",
366
+ chevron: "chevron-down",
367
+ close: "x",
368
+ add: "plus",
369
+ download: "download",
370
+ chart: "chart-bar",
371
+ menu: "menu-2",
372
+ more: "dots-vertical",
373
+ edit: "pencil",
374
+ },
375
+ },
376
+ ],
377
+ icons: {
378
+ home: "home",
379
+ search: "search",
380
+ settings: "settings",
381
+ bell: "bell",
382
+ users: "users-group",
383
+ chevron: "chevron-down",
384
+ check: "circle-check",
385
+ close: "x",
386
+ add: "plus",
387
+ download: "download",
388
+ trash: "trash",
389
+ calendar: "calendar",
390
+ filter: "filter",
391
+ chart: "chart-bar",
392
+ warning: "alert-triangle",
393
+ menu: "menu-2",
394
+ more: "dots-vertical",
395
+ edit: "pencil",
396
+ },
397
+ },
398
+ {
399
+ id: "ph",
400
+ prefix: "ph",
401
+ name: "Phosphor",
402
+ posture: "shortlist",
403
+ total: 9072,
404
+ license: "MIT",
405
+ licenseUrl: "https://github.com/phosphor-icons/core/blob/main/LICENSE",
406
+ officialUrl: "https://phosphoricons.com",
407
+ summary: "A flexible family with unusually useful weight variants, including fill and duotone.",
408
+ tags: ["six weights", "duotone", "expressive"],
409
+ scores: { fit: 88, coverage: 88, variants: 98, density: 80 },
410
+ variantMode: "suffix",
411
+ variants: [
412
+ { id: "thin", label: "Thin", suffix: "-thin" },
413
+ { id: "light", label: "Light", suffix: "-light" },
414
+ { id: "regular", label: "Regular", suffix: "" },
415
+ { id: "bold", label: "Bold", suffix: "-bold" },
416
+ { id: "fill", label: "Fill", suffix: "-fill" },
417
+ { id: "duotone", label: "Duotone", suffix: "-duotone" },
418
+ ],
419
+ icons: {
420
+ home: "house",
421
+ search: "magnifying-glass",
422
+ settings: "gear-six",
423
+ bell: "bell",
424
+ users: "users",
425
+ chevron: "caret-down",
426
+ check: "check-circle",
427
+ close: "x",
428
+ add: "plus",
429
+ download: "download-simple",
430
+ trash: "trash",
431
+ calendar: "calendar",
432
+ filter: "funnel",
433
+ chart: "chart-bar",
434
+ warning: "warning-circle",
435
+ menu: "list",
436
+ more: "dots-three-vertical",
437
+ edit: "pencil-simple",
438
+ },
439
+ },
440
+ {
441
+ id: "ri",
442
+ prefix: "ri",
443
+ name: "Remix Icon",
444
+ posture: "broad",
445
+ total: 3188,
446
+ license: "Apache-2.0",
447
+ licenseUrl: "https://github.com/Remix-Design/RemixIcon/blob/master/License",
448
+ officialUrl: "https://www.remixicon.com",
449
+ summary: "Neutral line/fill symbols with a practical catalog for product and marketing surfaces.",
450
+ tags: ["line/fill", "neutral", "web/app"],
451
+ scores: { fit: 82, coverage: 86, variants: 78, density: 78 },
452
+ variantMode: "suffix",
453
+ variants: [
454
+ { id: "line", label: "Line", suffix: "-line" },
455
+ { id: "fill", label: "Fill", suffix: "-fill" },
456
+ ],
457
+ icons: {
458
+ home: "home",
459
+ search: "search",
460
+ settings: "settings-3",
461
+ bell: "notification-3",
462
+ users: "group",
463
+ chevron: "arrow-down-s",
464
+ check: "checkbox-circle",
465
+ close: "close",
466
+ add: "add",
467
+ download: "download",
468
+ trash: "delete-bin",
469
+ calendar: "calendar",
470
+ filter: "filter-3",
471
+ chart: "bar-chart",
472
+ warning: "error-warning",
473
+ menu: "menu",
474
+ more: "more-2",
475
+ edit: "edit",
476
+ },
477
+ },
478
+ {
479
+ id: "bi",
480
+ prefix: "bi",
481
+ name: "Bootstrap Icons",
482
+ posture: "broad",
483
+ total: 2078,
484
+ license: "MIT",
485
+ licenseUrl: "https://github.com/twbs/icons/blob/main/LICENSE.md",
486
+ officialUrl: "https://icons.getbootstrap.com",
487
+ summary: "Bootstrap's official SVG library. Broad, practical, and usable outside Bootstrap.",
488
+ tags: ["Bootstrap", "SVG/font", "practical"],
489
+ scores: { fit: 76, coverage: 82, variants: 62, density: 74 },
490
+ variants: [{ id: "regular", label: "Regular" }],
491
+ icons: {
492
+ home: "house",
493
+ search: "search",
494
+ settings: "gear",
495
+ bell: "bell",
496
+ users: "people",
497
+ chevron: "chevron-down",
498
+ check: "check-circle",
499
+ close: "x",
500
+ add: "plus",
501
+ download: "download",
502
+ trash: "trash",
503
+ calendar: "calendar",
504
+ filter: "funnel",
505
+ chart: "bar-chart",
506
+ warning: "exclamation-triangle",
507
+ menu: "list",
508
+ more: "three-dots-vertical",
509
+ edit: "pencil",
510
+ },
511
+ },
512
+ {
513
+ id: "fluent",
514
+ prefix: "fluent",
515
+ name: "Fluent UI System Icons",
516
+ posture: "broad",
517
+ total: 19448,
518
+ license: "MIT",
519
+ licenseUrl: "https://github.com/microsoft/fluentui-system-icons/blob/main/LICENSE",
520
+ officialUrl: "https://github.com/microsoft/fluentui-system-icons",
521
+ summary: "Microsoft's massive system icon family, polished for enterprise and productivity UI.",
522
+ tags: ["Microsoft", "regular/fill", "very large"],
523
+ scores: { fit: 82, coverage: 96, variants: 82, density: 82 },
524
+ variantMode: "suffix",
525
+ variants: [
526
+ { id: "regular", label: "Regular", suffix: "-regular" },
527
+ { id: "filled", label: "Filled", suffix: "-filled" },
528
+ ],
529
+ icons: {
530
+ home: "home-24",
531
+ search: "search-24",
532
+ settings: "settings-24",
533
+ bell: "alert-24",
534
+ users: "people-24",
535
+ chevron: "chevron-down-24",
536
+ check: "checkmark-circle-24",
537
+ close: "dismiss-24",
538
+ add: "add-24",
539
+ download: "arrow-download-24",
540
+ trash: "delete-24",
541
+ calendar: "calendar-24",
542
+ filter: "filter-24",
543
+ chart: "chart-multiple-24",
544
+ warning: "warning-24",
545
+ menu: "navigation-24",
546
+ more: "more-vertical-24",
547
+ edit: "edit-24",
548
+ },
549
+ },
550
+ {
551
+ id: "carbon",
552
+ prefix: "carbon",
553
+ name: "Carbon Icons",
554
+ posture: "specialized",
555
+ total: 2529,
556
+ license: "Apache-2.0",
557
+ licenseUrl: "https://github.com/carbon-design-system/carbon/blob/main/LICENSE",
558
+ officialUrl: "https://carbondesignsystem.com/elements/icons/code",
559
+ summary: "IBM Carbon's icon set, strong for data-heavy enterprise tools and technical workflows.",
560
+ tags: ["IBM", "enterprise", "data tools"],
561
+ scores: { fit: 80, coverage: 84, variants: 60, density: 86 },
562
+ variants: [{ id: "regular", label: "Regular" }],
563
+ icons: {
564
+ home: "home",
565
+ search: "search",
566
+ settings: "settings",
567
+ bell: "notification",
568
+ users: "group",
569
+ chevron: "chevron-down",
570
+ check: "checkmark-filled",
571
+ close: "close",
572
+ add: "add",
573
+ download: "download",
574
+ trash: "trash-can",
575
+ calendar: "calendar",
576
+ filter: "filter",
577
+ chart: "chart-bar",
578
+ warning: "warning",
579
+ menu: "menu",
580
+ more: "overflow-menu-vertical",
581
+ edit: "edit",
582
+ },
583
+ },
584
+ {
585
+ id: "ant-design",
586
+ prefix: "ant-design",
587
+ name: "Ant Design Icons",
588
+ posture: "specialized",
589
+ total: 830,
590
+ license: "MIT",
591
+ licenseUrl: "https://github.com/ant-design/ant-design-icons/blob/master/LICENSE",
592
+ officialUrl: "https://ant.design/components/icon",
593
+ summary: "Enterprise-oriented SVG icons from Ant Design, with Outlined, Filled, and TwoTone families.",
594
+ tags: ["enterprise", "React", "twotone"],
595
+ scores: { fit: 76, coverage: 68, variants: 76, density: 78 },
596
+ variantMode: "suffix",
597
+ variants: [
598
+ { id: "outlined", label: "Outlined", suffix: "-outlined" },
599
+ {
600
+ id: "filled",
601
+ label: "Filled",
602
+ suffix: "-filled",
603
+ overrides: {
604
+ search: "search-outlined",
605
+ users: "team-outlined",
606
+ chevron: "down-outlined",
607
+ close: "close-outlined",
608
+ add: "plus-outlined",
609
+ download: "download-outlined",
610
+ chart: "bar-chart-outlined",
611
+ menu: "menu-outlined",
612
+ more: "more-outlined",
613
+ },
614
+ },
615
+ {
616
+ id: "twotone",
617
+ label: "TwoTone",
618
+ suffix: "-twotone",
619
+ overrides: {
620
+ search: "search-outlined",
621
+ users: "team-outlined",
622
+ chevron: "down-outlined",
623
+ close: "close-outlined",
624
+ add: "plus-outlined",
625
+ download: "download-outlined",
626
+ chart: "bar-chart-outlined",
627
+ menu: "menu-outlined",
628
+ more: "more-outlined",
629
+ },
630
+ },
631
+ ],
632
+ icons: {
633
+ home: "home",
634
+ search: "search",
635
+ settings: "setting",
636
+ bell: "bell",
637
+ users: "team",
638
+ chevron: "down",
639
+ check: "check-circle",
640
+ close: "close",
641
+ add: "plus",
642
+ download: "download",
643
+ trash: "delete",
644
+ calendar: "calendar",
645
+ filter: "filter",
646
+ chart: "bar-chart",
647
+ warning: "warning",
648
+ menu: "menu",
649
+ more: "more",
650
+ edit: "edit",
651
+ },
652
+ },
653
+ {
654
+ id: "octicon",
655
+ prefix: "octicon",
656
+ name: "Octicons",
657
+ posture: "specialized",
658
+ total: 732,
659
+ license: "MIT",
660
+ licenseUrl: "https://github.com/primer/octicons/blob/main/LICENSE",
661
+ officialUrl: "https://primer.style/octicons",
662
+ summary: "GitHub's icon family, strong for developer products, repositories, files, and technical UI.",
663
+ tags: ["GitHub", "developer tools", "Primer"],
664
+ scores: { fit: 78, coverage: 64, variants: 58, density: 86 },
665
+ variants: [{ id: "regular", label: "24px" }],
666
+ icons: {
667
+ home: "home-24",
668
+ search: "search-24",
669
+ settings: "gear-24",
670
+ bell: "bell-24",
671
+ users: "people-24",
672
+ chevron: "chevron-down-24",
673
+ check: "check-circle-24",
674
+ close: "x-24",
675
+ add: "plus-24",
676
+ download: "download-24",
677
+ trash: "trash-24",
678
+ calendar: "calendar-24",
679
+ filter: "filter-24",
680
+ chart: "graph-24",
681
+ warning: "alert-24",
682
+ menu: "three-bars-24",
683
+ more: "kebab-horizontal-24",
684
+ edit: "pencil-24",
685
+ },
686
+ },
687
+ {
688
+ id: "feather",
689
+ prefix: "feather",
690
+ name: "Feather Icons",
691
+ posture: "specialized",
692
+ total: 286,
693
+ license: "MIT",
694
+ licenseUrl: "https://github.com/feathericons/feather/blob/master/LICENSE",
695
+ officialUrl: "https://feathericons.com",
696
+ summary: "The original minimal outline set. Beautiful, but small compared with Lucide and Tabler.",
697
+ tags: ["minimal", "outline", "small set"],
698
+ scores: { fit: 80, coverage: 44, variants: 34, density: 80 },
699
+ variants: [{ id: "regular", label: "Regular" }],
700
+ icons: {
701
+ home: "home",
702
+ search: "search",
703
+ settings: "settings",
704
+ bell: "bell",
705
+ users: "users",
706
+ chevron: "chevron-down",
707
+ check: "check-circle",
708
+ close: "x",
709
+ add: "plus",
710
+ download: "download",
711
+ trash: "trash-2",
712
+ calendar: "calendar",
713
+ filter: "filter",
714
+ chart: "bar-chart-2",
715
+ warning: "alert-triangle",
716
+ menu: "menu",
717
+ more: "more-vertical",
718
+ edit: "edit-2",
719
+ },
720
+ },
721
+ {
722
+ id: "iconoir",
723
+ prefix: "iconoir",
724
+ name: "Iconoir",
725
+ posture: "broad",
726
+ total: 1671,
727
+ license: "MIT",
728
+ licenseUrl: "https://github.com/iconoir-icons/iconoir/blob/main/LICENSE",
729
+ officialUrl: "https://iconoir.com",
730
+ summary: "A modern open-source outline library with broad coverage and a distinct visual personality.",
731
+ tags: ["outline", "modern", "multi-platform"],
732
+ scores: { fit: 82, coverage: 78, variants: 44, density: 80 },
733
+ variants: [{ id: "regular", label: "Regular" }],
734
+ icons: {
735
+ home: "home",
736
+ search: "search",
737
+ settings: "settings",
738
+ bell: "bell",
739
+ users: "group",
740
+ chevron: "nav-arrow-down",
741
+ check: "check-circle",
742
+ close: "xmark",
743
+ add: "plus",
744
+ download: "download",
745
+ trash: "trash",
746
+ calendar: "calendar",
747
+ filter: "filter",
748
+ chart: "graph-up",
749
+ warning: "warning-triangle",
750
+ menu: "menu",
751
+ more: "more-vert",
752
+ edit: "edit-pencil",
753
+ },
754
+ },
755
+ {
756
+ id: "flowbite",
757
+ prefix: "flowbite",
758
+ name: "Flowbite Icons",
759
+ posture: "specialized",
760
+ total: 751,
761
+ license: "MIT",
762
+ licenseUrl: "https://github.com/themesberg/flowbite-icons/blob/main/LICENSE",
763
+ officialUrl: "https://flowbite.com/icons",
764
+ summary: "Tailwind/Flowbite-aligned icons with solid and outline styles.",
765
+ tags: ["Tailwind", "outline/solid", "Figma"],
766
+ scores: { fit: 76, coverage: 62, variants: 72, density: 74 },
767
+ variantMode: "suffix",
768
+ variants: [
769
+ { id: "outline", label: "Outline", suffix: "-outline" },
770
+ { id: "solid", label: "Solid", suffix: "-solid" },
771
+ ],
772
+ icons: {
773
+ home: "home",
774
+ search: "search",
775
+ settings: "cog",
776
+ bell: "bell",
777
+ users: "users-group",
778
+ chevron: "chevron-down",
779
+ check: "check-circle",
780
+ close: "x",
781
+ add: "plus",
782
+ download: "download",
783
+ trash: "trash-bin",
784
+ calendar: "calendar-month",
785
+ filter: "filter",
786
+ chart: "chart-pie",
787
+ warning: "exclamation-circle",
788
+ menu: "bars",
789
+ more: "dots-vertical",
790
+ edit: "pen",
791
+ },
792
+ },
793
+ {
794
+ id: "ion",
795
+ prefix: "ion",
796
+ name: "Ionicons",
797
+ posture: "specialized",
798
+ total: 1357,
799
+ license: "MIT",
800
+ licenseUrl: "https://github.com/ionic-team/ionicons/blob/main/LICENSE",
801
+ officialUrl: "https://ionic.io/ionicons",
802
+ summary: "Ionic's app icon set. Good for mobile-facing products with outline, filled, and sharp needs.",
803
+ tags: ["mobile", "outline/fill/sharp", "Ionic"],
804
+ scores: { fit: 76, coverage: 70, variants: 82, density: 74 },
805
+ variantMode: "suffix",
806
+ variants: [
807
+ { id: "outline", label: "Outline", suffix: "-outline" },
808
+ { id: "filled", label: "Filled", suffix: "" },
809
+ { id: "sharp", label: "Sharp", suffix: "-sharp" },
810
+ ],
811
+ icons: {
812
+ home: "home",
813
+ search: "search",
814
+ settings: "settings",
815
+ bell: "notifications",
816
+ users: "people",
817
+ chevron: "chevron-down",
818
+ check: "checkmark-circle",
819
+ close: "close",
820
+ add: "add",
821
+ download: "download",
822
+ trash: "trash",
823
+ calendar: "calendar",
824
+ filter: "filter",
825
+ chart: "bar-chart",
826
+ warning: "warning",
827
+ menu: "menu",
828
+ more: "ellipsis-vertical",
829
+ edit: "create",
830
+ },
831
+ },
832
+ {
833
+ id: "simple-icons",
834
+ prefix: "simple-icons",
835
+ name: "Simple Icons",
836
+ posture: "brand",
837
+ total: 3438,
838
+ license: "CC0-1.0",
839
+ licenseUrl: "https://github.com/simple-icons/simple-icons/blob/develop/LICENSE.md",
840
+ officialUrl: "https://simpleicons.org",
841
+ summary: "A brand-logo library, not a system UI icon set. Keep it separate for integrations and company marks.",
842
+ tags: ["brand logos", "CC0", "trademark caveat"],
843
+ scores: { fit: 34, coverage: 70, variants: 30, density: 50 },
844
+ variants: [{ id: "brands", label: "Brands" }],
845
+ icons: {
846
+ home: "github",
847
+ search: "google",
848
+ settings: "figma",
849
+ bell: "slack",
850
+ users: "discord",
851
+ chevron: "vercel",
852
+ check: "stripe",
853
+ close: "x",
854
+ add: "openai",
855
+ download: "apple",
856
+ trash: "notion",
857
+ calendar: "linear",
858
+ filter: "tailwindcss",
859
+ chart: "react",
860
+ warning: "typescript",
861
+ menu: "vite",
862
+ more: "npm",
863
+ edit: "githubactions",
864
+ },
865
+ },
866
+ ];