@gv-tech/design-system 0.9.0 → 1.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 (425) hide show
  1. package/.github/workflows/ci.yml +3 -12
  2. package/.github/workflows/release-please.yml +2 -2
  3. package/.vscode/mcp.json +8 -0
  4. package/CHANGELOG.md +32 -0
  5. package/components.json +20 -0
  6. package/dist/App.d.ts +3 -0
  7. package/dist/App.d.ts.map +1 -0
  8. package/dist/components/docs/CodeBlock.d.ts +8 -0
  9. package/dist/components/docs/CodeBlock.d.ts.map +1 -0
  10. package/dist/components/docs/ComponentShowcase.d.ts +17 -0
  11. package/dist/components/docs/ComponentShowcase.d.ts.map +1 -0
  12. package/dist/components/docs/Footer.d.ts +2 -0
  13. package/dist/components/docs/Footer.d.ts.map +1 -0
  14. package/dist/components/docs/Sidebar.d.ts +14 -0
  15. package/dist/components/docs/Sidebar.d.ts.map +1 -0
  16. package/dist/components/docs/ThemeToggle.d.ts +2 -0
  17. package/dist/components/docs/ThemeToggle.d.ts.map +1 -0
  18. package/dist/components/docs/index.d.ts +6 -0
  19. package/dist/components/docs/index.d.ts.map +1 -0
  20. package/dist/components/ui/accordion.d.ts +8 -0
  21. package/dist/components/ui/accordion.d.ts.map +1 -0
  22. package/dist/components/ui/alert-dialog.d.ts +21 -0
  23. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  24. package/dist/components/ui/alert.d.ts +9 -0
  25. package/dist/components/ui/alert.d.ts.map +1 -0
  26. package/dist/components/ui/aspect-ratio.d.ts +4 -0
  27. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  28. package/dist/components/ui/avatar.d.ts +7 -0
  29. package/dist/components/ui/avatar.d.ts.map +1 -0
  30. package/dist/components/ui/badge.d.ts +10 -0
  31. package/dist/components/ui/badge.d.ts.map +1 -0
  32. package/dist/components/ui/breadcrumb.d.ts +20 -0
  33. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  34. package/dist/components/ui/button.d.ts +12 -0
  35. package/dist/components/ui/button.d.ts.map +1 -0
  36. package/dist/components/ui/calendar.d.ts +9 -0
  37. package/dist/components/ui/calendar.d.ts.map +1 -0
  38. package/dist/components/ui/card.d.ts +9 -0
  39. package/dist/components/ui/card.d.ts.map +1 -0
  40. package/dist/components/ui/carousel.d.ts +19 -0
  41. package/dist/components/ui/carousel.d.ts.map +1 -0
  42. package/dist/components/ui/chart.d.ts +63 -0
  43. package/dist/components/ui/chart.d.ts.map +1 -0
  44. package/dist/components/ui/checkbox.d.ts +5 -0
  45. package/dist/components/ui/checkbox.d.ts.map +1 -0
  46. package/dist/components/ui/collapsible.d.ts +6 -0
  47. package/dist/components/ui/collapsible.d.ts.map +1 -0
  48. package/dist/components/ui/command.d.ts +81 -0
  49. package/dist/components/ui/command.d.ts.map +1 -0
  50. package/dist/components/ui/context-menu.d.ts +28 -0
  51. package/dist/components/ui/context-menu.d.ts.map +1 -0
  52. package/dist/components/ui/dialog.d.ts +20 -0
  53. package/dist/components/ui/dialog.d.ts.map +1 -0
  54. package/dist/components/ui/drawer.d.ts +23 -0
  55. package/dist/components/ui/drawer.d.ts.map +1 -0
  56. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  57. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  58. package/dist/components/ui/form.d.ts +24 -0
  59. package/dist/components/ui/form.d.ts.map +1 -0
  60. package/dist/components/ui/hover-card.d.ts +7 -0
  61. package/dist/components/ui/hover-card.d.ts.map +1 -0
  62. package/dist/components/ui/input.d.ts +4 -0
  63. package/dist/components/ui/input.d.ts.map +1 -0
  64. package/dist/components/ui/label.d.ts +6 -0
  65. package/dist/components/ui/label.d.ts.map +1 -0
  66. package/dist/components/ui/menubar.d.ts +29 -0
  67. package/dist/components/ui/menubar.d.ts.map +1 -0
  68. package/dist/components/ui/navigation-menu.d.ts +13 -0
  69. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  70. package/dist/components/ui/pagination.d.ts +29 -0
  71. package/dist/components/ui/pagination.d.ts.map +1 -0
  72. package/dist/components/ui/popover.d.ts +8 -0
  73. package/dist/components/ui/popover.d.ts.map +1 -0
  74. package/dist/components/ui/progress.d.ts +5 -0
  75. package/dist/components/ui/progress.d.ts.map +1 -0
  76. package/dist/components/ui/radio-group.d.ts +6 -0
  77. package/dist/components/ui/radio-group.d.ts.map +1 -0
  78. package/dist/components/ui/resizable.d.ts +11 -0
  79. package/dist/components/ui/resizable.d.ts.map +1 -0
  80. package/dist/components/ui/scroll-area.d.ts +6 -0
  81. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  82. package/dist/components/ui/select.d.ts +14 -0
  83. package/dist/components/ui/select.d.ts.map +1 -0
  84. package/dist/components/ui/separator.d.ts +5 -0
  85. package/dist/components/ui/separator.d.ts.map +1 -0
  86. package/dist/components/ui/sheet.d.ts +26 -0
  87. package/dist/components/ui/sheet.d.ts.map +1 -0
  88. package/dist/components/ui/skeleton.d.ts +4 -0
  89. package/dist/components/ui/skeleton.d.ts.map +1 -0
  90. package/dist/components/ui/slider.d.ts +5 -0
  91. package/dist/components/ui/slider.d.ts.map +1 -0
  92. package/dist/components/ui/sonner.d.ts +6 -0
  93. package/dist/components/ui/sonner.d.ts.map +1 -0
  94. package/dist/components/ui/switch.d.ts +5 -0
  95. package/dist/components/ui/switch.d.ts.map +1 -0
  96. package/dist/components/ui/table.d.ts +11 -0
  97. package/dist/components/ui/table.d.ts.map +1 -0
  98. package/dist/components/ui/tabs.d.ts +8 -0
  99. package/dist/components/ui/tabs.d.ts.map +1 -0
  100. package/dist/components/ui/textarea.d.ts +4 -0
  101. package/dist/components/ui/textarea.d.ts.map +1 -0
  102. package/dist/components/ui/toast.d.ts +16 -0
  103. package/dist/components/ui/toast.d.ts.map +1 -0
  104. package/dist/components/ui/toaster.d.ts +2 -0
  105. package/dist/components/ui/toaster.d.ts.map +1 -0
  106. package/dist/components/ui/toggle-group.d.ts +13 -0
  107. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  108. package/dist/components/ui/toggle.d.ts +13 -0
  109. package/dist/components/ui/toggle.d.ts.map +1 -0
  110. package/dist/components/ui/tooltip.d.ts +8 -0
  111. package/dist/components/ui/tooltip.d.ts.map +1 -0
  112. package/dist/hooks/use-toast.d.ts +45 -0
  113. package/dist/hooks/use-toast.d.ts.map +1 -0
  114. package/dist/index.cjs.js +8 -0
  115. package/dist/index.cjs.js.map +1 -0
  116. package/dist/index.d.ts +49 -0
  117. package/dist/index.d.ts.map +1 -0
  118. package/dist/index.es.js +2275 -0
  119. package/dist/index.es.js.map +1 -0
  120. package/dist/lib/utils.d.ts +3 -0
  121. package/dist/lib/utils.d.ts.map +1 -0
  122. package/dist/main.d.ts +2 -0
  123. package/dist/main.d.ts.map +1 -0
  124. package/dist/pages/GettingStarted.d.ts +3 -0
  125. package/dist/pages/GettingStarted.d.ts.map +1 -0
  126. package/dist/pages/components/AccordionDocs.d.ts +2 -0
  127. package/dist/pages/components/AccordionDocs.d.ts.map +1 -0
  128. package/dist/pages/components/AlertDialogDocs.d.ts +2 -0
  129. package/dist/pages/components/AlertDialogDocs.d.ts.map +1 -0
  130. package/dist/pages/components/AlertDocs.d.ts +2 -0
  131. package/dist/pages/components/AlertDocs.d.ts.map +1 -0
  132. package/dist/pages/components/AspectRatioDocs.d.ts +2 -0
  133. package/dist/pages/components/AspectRatioDocs.d.ts.map +1 -0
  134. package/dist/pages/components/AvatarDocs.d.ts +2 -0
  135. package/dist/pages/components/AvatarDocs.d.ts.map +1 -0
  136. package/dist/pages/components/BadgeDocs.d.ts +2 -0
  137. package/dist/pages/components/BadgeDocs.d.ts.map +1 -0
  138. package/dist/pages/components/BreadcrumbDocs.d.ts +2 -0
  139. package/dist/pages/components/BreadcrumbDocs.d.ts.map +1 -0
  140. package/dist/pages/components/ButtonDocs.d.ts +2 -0
  141. package/dist/pages/components/ButtonDocs.d.ts.map +1 -0
  142. package/dist/pages/components/CalendarDocs.d.ts +2 -0
  143. package/dist/pages/components/CalendarDocs.d.ts.map +1 -0
  144. package/dist/pages/components/CardDocs.d.ts +2 -0
  145. package/dist/pages/components/CardDocs.d.ts.map +1 -0
  146. package/dist/pages/components/CarouselDocs.d.ts +2 -0
  147. package/dist/pages/components/CarouselDocs.d.ts.map +1 -0
  148. package/dist/pages/components/ChartDocs.d.ts +2 -0
  149. package/dist/pages/components/ChartDocs.d.ts.map +1 -0
  150. package/dist/pages/components/CheckboxDocs.d.ts +2 -0
  151. package/dist/pages/components/CheckboxDocs.d.ts.map +1 -0
  152. package/dist/pages/components/CollapsibleDocs.d.ts +2 -0
  153. package/dist/pages/components/CollapsibleDocs.d.ts.map +1 -0
  154. package/dist/pages/components/CommandDocs.d.ts +2 -0
  155. package/dist/pages/components/CommandDocs.d.ts.map +1 -0
  156. package/dist/pages/components/ContextMenuDocs.d.ts +2 -0
  157. package/dist/pages/components/ContextMenuDocs.d.ts.map +1 -0
  158. package/dist/pages/components/DialogDocs.d.ts +2 -0
  159. package/dist/pages/components/DialogDocs.d.ts.map +1 -0
  160. package/dist/pages/components/DrawerDocs.d.ts +2 -0
  161. package/dist/pages/components/DrawerDocs.d.ts.map +1 -0
  162. package/dist/pages/components/DropdownMenuDocs.d.ts +2 -0
  163. package/dist/pages/components/DropdownMenuDocs.d.ts.map +1 -0
  164. package/dist/pages/components/FormDocs.d.ts +2 -0
  165. package/dist/pages/components/FormDocs.d.ts.map +1 -0
  166. package/dist/pages/components/HoverCardDocs.d.ts +2 -0
  167. package/dist/pages/components/HoverCardDocs.d.ts.map +1 -0
  168. package/dist/pages/components/InputDocs.d.ts +2 -0
  169. package/dist/pages/components/InputDocs.d.ts.map +1 -0
  170. package/dist/pages/components/LabelDocs.d.ts +2 -0
  171. package/dist/pages/components/LabelDocs.d.ts.map +1 -0
  172. package/dist/pages/components/MenubarDocs.d.ts +2 -0
  173. package/dist/pages/components/MenubarDocs.d.ts.map +1 -0
  174. package/dist/pages/components/NavigationMenuDocs.d.ts +2 -0
  175. package/dist/pages/components/NavigationMenuDocs.d.ts.map +1 -0
  176. package/dist/pages/components/PaginationDocs.d.ts +2 -0
  177. package/dist/pages/components/PaginationDocs.d.ts.map +1 -0
  178. package/dist/pages/components/PopoverDocs.d.ts +2 -0
  179. package/dist/pages/components/PopoverDocs.d.ts.map +1 -0
  180. package/dist/pages/components/ProgressDocs.d.ts +2 -0
  181. package/dist/pages/components/ProgressDocs.d.ts.map +1 -0
  182. package/dist/pages/components/RadioGroupDocs.d.ts +2 -0
  183. package/dist/pages/components/RadioGroupDocs.d.ts.map +1 -0
  184. package/dist/pages/components/ResizableDocs.d.ts +2 -0
  185. package/dist/pages/components/ResizableDocs.d.ts.map +1 -0
  186. package/dist/pages/components/ScrollAreaDocs.d.ts +2 -0
  187. package/dist/pages/components/ScrollAreaDocs.d.ts.map +1 -0
  188. package/dist/pages/components/SelectDocs.d.ts +2 -0
  189. package/dist/pages/components/SelectDocs.d.ts.map +1 -0
  190. package/dist/pages/components/SeparatorDocs.d.ts +2 -0
  191. package/dist/pages/components/SeparatorDocs.d.ts.map +1 -0
  192. package/dist/pages/components/SheetDocs.d.ts +2 -0
  193. package/dist/pages/components/SheetDocs.d.ts.map +1 -0
  194. package/dist/pages/components/SkeletonDocs.d.ts +2 -0
  195. package/dist/pages/components/SkeletonDocs.d.ts.map +1 -0
  196. package/dist/pages/components/SliderDocs.d.ts +2 -0
  197. package/dist/pages/components/SliderDocs.d.ts.map +1 -0
  198. package/dist/pages/components/SonnerDocs.d.ts +2 -0
  199. package/dist/pages/components/SonnerDocs.d.ts.map +1 -0
  200. package/dist/pages/components/SwitchDocs.d.ts +2 -0
  201. package/dist/pages/components/SwitchDocs.d.ts.map +1 -0
  202. package/dist/pages/components/TableDocs.d.ts +2 -0
  203. package/dist/pages/components/TableDocs.d.ts.map +1 -0
  204. package/dist/pages/components/TabsDocs.d.ts +2 -0
  205. package/dist/pages/components/TabsDocs.d.ts.map +1 -0
  206. package/dist/pages/components/TextareaDocs.d.ts +2 -0
  207. package/dist/pages/components/TextareaDocs.d.ts.map +1 -0
  208. package/dist/pages/components/ToastDocs.d.ts +2 -0
  209. package/dist/pages/components/ToastDocs.d.ts.map +1 -0
  210. package/dist/pages/components/ToggleDocs.d.ts +2 -0
  211. package/dist/pages/components/ToggleDocs.d.ts.map +1 -0
  212. package/dist/pages/components/ToggleGroupDocs.d.ts +2 -0
  213. package/dist/pages/components/ToggleGroupDocs.d.ts.map +1 -0
  214. package/dist/pages/components/TooltipDocs.d.ts +2 -0
  215. package/dist/pages/components/TooltipDocs.d.ts.map +1 -0
  216. package/dist/pages/index.d.ts +47 -0
  217. package/dist/pages/index.d.ts.map +1 -0
  218. package/dist/registry/accordion.json +13 -0
  219. package/dist/registry/alert-dialog.json +13 -0
  220. package/dist/registry/alert.json +13 -0
  221. package/dist/registry/aspect-ratio.json +13 -0
  222. package/dist/registry/avatar.json +13 -0
  223. package/dist/registry/badge.json +13 -0
  224. package/dist/registry/breadcrumb.json +13 -0
  225. package/dist/registry/button.json +13 -0
  226. package/dist/registry/calendar.json +13 -0
  227. package/dist/registry/card.json +13 -0
  228. package/dist/registry/carousel.json +13 -0
  229. package/dist/registry/chart.json +13 -0
  230. package/dist/registry/checkbox.json +13 -0
  231. package/dist/registry/collapsible.json +13 -0
  232. package/dist/registry/command.json +13 -0
  233. package/dist/registry/context-menu.json +13 -0
  234. package/dist/registry/dialog.json +13 -0
  235. package/dist/registry/drawer.json +13 -0
  236. package/dist/registry/dropdown-menu.json +13 -0
  237. package/dist/registry/form.json +13 -0
  238. package/dist/registry/hover-card.json +13 -0
  239. package/dist/registry/index.json +324 -0
  240. package/dist/registry/input.json +13 -0
  241. package/dist/registry/label.json +13 -0
  242. package/dist/registry/menubar.json +13 -0
  243. package/dist/registry/navigation-menu.json +13 -0
  244. package/dist/registry/pagination.json +13 -0
  245. package/dist/registry/popover.json +13 -0
  246. package/dist/registry/progress.json +13 -0
  247. package/dist/registry/radio-group.json +13 -0
  248. package/dist/registry/resizable.json +13 -0
  249. package/dist/registry/scroll-area.json +13 -0
  250. package/dist/registry/select.json +13 -0
  251. package/dist/registry/separator.json +13 -0
  252. package/dist/registry/sheet.json +13 -0
  253. package/dist/registry/skeleton.json +13 -0
  254. package/dist/registry/slider.json +13 -0
  255. package/dist/registry/sonner.json +13 -0
  256. package/dist/registry/switch.json +13 -0
  257. package/dist/registry/table.json +13 -0
  258. package/dist/registry/tabs.json +13 -0
  259. package/dist/registry/textarea.json +13 -0
  260. package/dist/registry/toast.json +13 -0
  261. package/dist/registry/toaster.json +13 -0
  262. package/dist/registry/toggle-group.json +13 -0
  263. package/dist/registry/toggle.json +13 -0
  264. package/dist/registry/tooltip.json +13 -0
  265. package/dist/vendor-CMSUBoIg.js +73 -0
  266. package/dist/vendor-CMSUBoIg.js.map +1 -0
  267. package/dist/vendor-ZhQmrf1h.mjs +25737 -0
  268. package/dist/vendor-ZhQmrf1h.mjs.map +1 -0
  269. package/eslint.config.mjs +34 -43
  270. package/index.html +13 -0
  271. package/package.json +75 -52
  272. package/postcss.config.mjs +5 -0
  273. package/scripts/build-registry.ts +47 -0
  274. package/scripts/import-all-shadcn.ts +68 -0
  275. package/scripts/validate.js +0 -2
  276. package/src/App.tsx +211 -0
  277. package/src/components/docs/CodeBlock.tsx +34 -0
  278. package/src/components/docs/ComponentShowcase.tsx +68 -0
  279. package/src/components/docs/Footer.tsx +117 -0
  280. package/src/components/docs/Sidebar.tsx +189 -0
  281. package/src/components/docs/ThemeToggle.tsx +19 -0
  282. package/src/components/docs/index.ts +5 -0
  283. package/src/components/ui/accordion.tsx +51 -0
  284. package/src/components/ui/alert-dialog.tsx +104 -0
  285. package/src/components/ui/alert.tsx +43 -0
  286. package/src/components/ui/aspect-ratio.tsx +5 -0
  287. package/src/components/ui/avatar.tsx +38 -0
  288. package/src/components/ui/badge.tsx +29 -0
  289. package/src/components/ui/breadcrumb.tsx +90 -0
  290. package/src/components/ui/button.tsx +46 -0
  291. package/src/components/ui/calendar.tsx +156 -0
  292. package/src/components/ui/card.tsx +43 -0
  293. package/src/components/ui/carousel.tsx +224 -0
  294. package/src/components/ui/chart.tsx +307 -0
  295. package/src/components/ui/checkbox.tsx +26 -0
  296. package/src/components/ui/collapsible.tsx +9 -0
  297. package/src/components/ui/command.tsx +132 -0
  298. package/src/components/ui/context-menu.tsx +178 -0
  299. package/src/components/ui/dialog.tsx +95 -0
  300. package/src/components/ui/drawer.tsx +87 -0
  301. package/src/components/ui/dropdown-menu.tsx +180 -0
  302. package/src/components/ui/form.tsx +149 -0
  303. package/src/components/ui/hover-card.tsx +27 -0
  304. package/src/components/ui/input.tsx +22 -0
  305. package/src/components/ui/label.tsx +17 -0
  306. package/src/components/ui/menubar.tsx +217 -0
  307. package/src/components/ui/navigation-menu.tsx +120 -0
  308. package/src/components/ui/pagination.tsx +81 -0
  309. package/src/components/ui/popover.tsx +31 -0
  310. package/src/components/ui/progress.tsx +23 -0
  311. package/src/components/ui/radio-group.tsx +36 -0
  312. package/src/components/ui/resizable.tsx +45 -0
  313. package/src/components/ui/scroll-area.tsx +38 -0
  314. package/src/components/ui/select.tsx +142 -0
  315. package/src/components/ui/separator.tsx +20 -0
  316. package/src/components/ui/sheet.tsx +106 -0
  317. package/src/components/ui/skeleton.tsx +8 -0
  318. package/src/components/ui/slider.tsx +23 -0
  319. package/src/components/ui/sonner.tsx +28 -0
  320. package/src/components/ui/switch.tsx +27 -0
  321. package/src/components/ui/table.tsx +76 -0
  322. package/src/components/ui/tabs.tsx +53 -0
  323. package/src/components/ui/textarea.tsx +21 -0
  324. package/src/components/ui/toast.tsx +111 -0
  325. package/src/components/ui/toaster.tsx +24 -0
  326. package/src/components/ui/toggle-group.tsx +51 -0
  327. package/src/components/ui/toggle.tsx +37 -0
  328. package/src/components/ui/tooltip.tsx +30 -0
  329. package/src/globals.css +118 -0
  330. package/src/hooks/use-toast.ts +189 -0
  331. package/src/index.ts +50 -11
  332. package/src/lib/utils.ts +6 -0
  333. package/src/main.tsx +10 -0
  334. package/src/pages/GettingStarted.tsx +251 -0
  335. package/src/pages/components/AccordionDocs.tsx +55 -0
  336. package/src/pages/components/AlertDialogDocs.tsx +63 -0
  337. package/src/pages/components/AlertDocs.tsx +45 -0
  338. package/src/pages/components/AspectRatioDocs.tsx +64 -0
  339. package/src/pages/components/AvatarDocs.tsx +34 -0
  340. package/src/pages/components/BadgeDocs.tsx +36 -0
  341. package/src/pages/components/BreadcrumbDocs.tsx +54 -0
  342. package/src/pages/components/ButtonDocs.tsx +77 -0
  343. package/src/pages/components/CalendarDocs.tsx +29 -0
  344. package/src/pages/components/CardDocs.tsx +81 -0
  345. package/src/pages/components/CarouselDocs.tsx +132 -0
  346. package/src/pages/components/ChartDocs.tsx +115 -0
  347. package/src/pages/components/CheckboxDocs.tsx +49 -0
  348. package/src/pages/components/CollapsibleDocs.tsx +52 -0
  349. package/src/pages/components/CommandDocs.tsx +100 -0
  350. package/src/pages/components/ContextMenuDocs.tsx +93 -0
  351. package/src/pages/components/DialogDocs.tsx +80 -0
  352. package/src/pages/components/DrawerDocs.tsx +79 -0
  353. package/src/pages/components/DropdownMenuDocs.tsx +51 -0
  354. package/src/pages/components/FormDocs.tsx +84 -0
  355. package/src/pages/components/HoverCardDocs.tsx +59 -0
  356. package/src/pages/components/InputDocs.tsx +68 -0
  357. package/src/pages/components/LabelDocs.tsx +23 -0
  358. package/src/pages/components/MenubarDocs.tsx +117 -0
  359. package/src/pages/components/NavigationMenuDocs.tsx +156 -0
  360. package/src/pages/components/PaginationDocs.tsx +68 -0
  361. package/src/pages/components/PopoverDocs.tsx +61 -0
  362. package/src/pages/components/ProgressDocs.tsx +34 -0
  363. package/src/pages/components/RadioGroupDocs.tsx +38 -0
  364. package/src/pages/components/ResizableDocs.tsx +110 -0
  365. package/src/pages/components/ScrollAreaDocs.tsx +89 -0
  366. package/src/pages/components/SelectDocs.tsx +87 -0
  367. package/src/pages/components/SeparatorDocs.tsx +44 -0
  368. package/src/pages/components/SheetDocs.tsx +104 -0
  369. package/src/pages/components/SkeletonDocs.tsx +48 -0
  370. package/src/pages/components/SliderDocs.tsx +24 -0
  371. package/src/pages/components/SonnerDocs.tsx +89 -0
  372. package/src/pages/components/SwitchDocs.tsx +31 -0
  373. package/src/pages/components/TableDocs.tsx +64 -0
  374. package/src/pages/components/TabsDocs.tsx +111 -0
  375. package/src/pages/components/TextareaDocs.tsx +54 -0
  376. package/src/pages/components/ToastDocs.tsx +102 -0
  377. package/src/pages/components/ToggleDocs.tsx +59 -0
  378. package/src/pages/components/ToggleGroupDocs.tsx +93 -0
  379. package/src/pages/components/TooltipDocs.tsx +38 -0
  380. package/src/pages/index.ts +49 -0
  381. package/tsconfig.json +8 -4
  382. package/tsconfig.node.json +2 -1
  383. package/vite.config.ts +30 -16
  384. package/wrangler.toml +22 -0
  385. package/.storybook/.preview-head.html +0 -1
  386. package/.storybook/main.ts +0 -38
  387. package/.storybook/preview.tsx +0 -30
  388. package/dist/index.js +0 -647
  389. package/dist/index.js.map +0 -1
  390. package/dist/index.mjs +0 -1053
  391. package/dist/index.mjs.map +0 -1
  392. package/dist/vendor-DXgJBoQh.mjs +0 -265
  393. package/dist/vendor-DXgJBoQh.mjs.map +0 -1
  394. package/dist/vendor-nZSsnGb7.js +0 -7
  395. package/dist/vendor-nZSsnGb7.js.map +0 -1
  396. package/src/Avatar.stories.tsx +0 -67
  397. package/src/Avatar.tsx +0 -174
  398. package/src/Badge.stories.tsx +0 -87
  399. package/src/Badge.tsx +0 -76
  400. package/src/Button.stories.tsx +0 -244
  401. package/src/Button.tsx +0 -384
  402. package/src/Icon.stories.tsx +0 -101
  403. package/src/Icon.tsx +0 -64
  404. package/src/Intro.stories.tsx +0 -20
  405. package/src/Link.stories.tsx +0 -69
  406. package/src/Link.tsx +0 -252
  407. package/src/StoryLinkWrapper.d.ts +0 -1
  408. package/src/StoryLinkWrapper.tsx +0 -33
  409. package/src/__tests__/Avatar.test.tsx +0 -28
  410. package/src/__tests__/Badge.test.tsx +0 -25
  411. package/src/__tests__/Button.test.tsx +0 -38
  412. package/src/__tests__/Icon.test.tsx +0 -26
  413. package/src/__tests__/Link.test.tsx +0 -31
  414. package/src/mdx.d.ts +0 -5
  415. package/src/setupTests.ts +0 -1
  416. package/src/shared/animation.d.ts +0 -18
  417. package/src/shared/animation.js +0 -60
  418. package/src/shared/global.d.ts +0 -12
  419. package/src/shared/global.js +0 -120
  420. package/src/shared/icons.d.ts +0 -34
  421. package/src/shared/icons.js +0 -282
  422. package/src/shared/styles.d.ts +0 -86
  423. package/src/shared/styles.js +0 -98
  424. package/src/test-utils/axe.ts +0 -25
  425. package/src/types.ts +0 -316
package/src/Link.tsx DELETED
@@ -1,252 +0,0 @@
1
- import type { ComponentType, ReactNode } from 'react';
2
- import { Fragment } from 'react';
3
- import styled, { css } from 'styled-components';
4
- import { darken } from 'polished';
5
-
6
- import { Icon } from './Icon';
7
- import { color } from './shared/styles';
8
- import { LinkProps } from './types';
9
-
10
- /**
11
- * Props for styled link components
12
- */
13
- interface StyledLinkProps {
14
- secondary?: boolean;
15
- tertiary?: boolean;
16
- nochrome?: boolean;
17
- inverse?: boolean;
18
- isButton?: boolean;
19
- containsIcon?: boolean;
20
- withArrow?: boolean;
21
- }
22
-
23
- /**
24
- * Props for LinkInner component
25
- */
26
- interface LinkInnerProps {
27
- withArrow?: boolean;
28
- }
29
-
30
- const linkStyles = css<StyledLinkProps>`
31
- display: inline-block;
32
- transition:
33
- transform 150ms ease-out,
34
- color 150ms ease-out;
35
- text-decoration: none;
36
-
37
- color: ${color.secondary};
38
-
39
- &:hover,
40
- &:focus {
41
- cursor: pointer;
42
- transform: translateY(-1px);
43
- color: ${darken(0.07, color.secondary)};
44
- }
45
- &:active {
46
- transform: translateY(0);
47
- color: ${darken(0.1, color.secondary)};
48
- }
49
-
50
- svg {
51
- display: inline-block;
52
- height: 1em;
53
- width: 1em;
54
- vertical-align: text-top;
55
- position: relative;
56
- bottom: -0.125em;
57
- margin-right: 0.4em;
58
- }
59
-
60
- ${(props) =>
61
- props.containsIcon &&
62
- css`
63
- svg {
64
- height: 1em;
65
- width: 1em;
66
- vertical-align: middle;
67
- position: relative;
68
- bottom: 0;
69
- margin-right: 0;
70
- }
71
- `};
72
-
73
- ${(props) =>
74
- props.secondary &&
75
- css`
76
- color: ${color.mediumdark};
77
-
78
- &:hover {
79
- color: ${color.dark};
80
- }
81
-
82
- &:active {
83
- color: ${color.darker};
84
- }
85
- `};
86
-
87
- ${(props) =>
88
- props.tertiary &&
89
- css`
90
- color: ${color.dark};
91
-
92
- &:hover {
93
- color: ${color.darkest};
94
- }
95
-
96
- &:active {
97
- color: ${color.mediumdark};
98
- }
99
- `};
100
-
101
- ${(props) =>
102
- props.nochrome &&
103
- css`
104
- color: inherit;
105
-
106
- &:hover,
107
- &:active {
108
- color: inherit;
109
- text-decoration: underline;
110
- }
111
- `};
112
-
113
- ${(props) =>
114
- props.inverse &&
115
- css`
116
- color: ${color.lightest};
117
-
118
- &:hover {
119
- color: ${color.lighter};
120
- }
121
-
122
- &:active {
123
- color: ${color.light};
124
- }
125
- `};
126
-
127
- ${(props) =>
128
- props.isButton &&
129
- css`
130
- border: 0;
131
- border-radius: 0;
132
- background: none;
133
- padding: 0;
134
- font-size: inherit;
135
- `};
136
- `;
137
-
138
- const LinkInner = styled.span<LinkInnerProps>`
139
- ${(props) =>
140
- props.withArrow &&
141
- css`
142
- > svg:last-of-type {
143
- height: 0.7em;
144
- width: 0.7em;
145
- margin-right: 0;
146
- margin-left: 0.25em;
147
- bottom: auto;
148
- vertical-align: inherit;
149
- }
150
- `};
151
- `;
152
-
153
- const LinkA = styled.a<StyledLinkProps>`
154
- ${linkStyles};
155
- `;
156
-
157
- const LinkButton = styled.button<StyledLinkProps>`
158
- /* reset button styles */
159
- background: none;
160
- color: inherit;
161
- border: none;
162
- padding: 0;
163
- font: inherit;
164
- cursor: pointer;
165
- outline: inherit;
166
-
167
- ${linkStyles};
168
- `;
169
-
170
- const applyStyle = (LinkWrapper?: LinkProps['LinkWrapper']) => {
171
- return (
172
- LinkWrapper &&
173
- styled(
174
- ({
175
- containsIcon: _containsIcon,
176
- inverse: _inverse,
177
- nochrome: _nochrome,
178
- secondary: _secondary,
179
- tertiary: _tertiary,
180
- children: _children,
181
- ...linkWrapperRest
182
- }: Record<string, unknown>) => (
183
- <LinkWrapper {...(linkWrapperRest as Record<string, unknown>)}>{_children as ReactNode}</LinkWrapper>
184
- ),
185
- )`
186
- ${linkStyles};
187
- `
188
- );
189
- };
190
-
191
- /**
192
- * Links can contains text and/or icons. Be careful using only icons, you must provide a text alternative via aria-label for accessibility.
193
- *
194
- * @example
195
- * ```tsx
196
- * <Link href="/home">Home</Link>
197
- * <Link secondary href="/about">About</Link>
198
- * <Link withArrow>Learn more</Link>
199
- * ```
200
- */
201
- export const Link = ({
202
- isButton = false,
203
- withArrow = false,
204
- secondary = false,
205
- tertiary = false,
206
- nochrome = false,
207
- inverse = false,
208
- containsIcon = false,
209
- LinkWrapper,
210
- children,
211
- ...props
212
- }: LinkProps) => {
213
- // Dev-time accessibility check for icon-only links
214
- if (process.env.NODE_ENV !== 'production') {
215
- const hasAriaLabel = Object.prototype.hasOwnProperty.call(props, 'aria-label');
216
- const noVisibleChildren = !children || (typeof children === 'string' && children.trim() === '');
217
- if (containsIcon && noVisibleChildren && !hasAriaLabel) {
218
- console.warn('Link: icon-only links should include an `aria-label` or visible text for accessibility.');
219
- }
220
- }
221
- const content = (
222
- <Fragment>
223
- <LinkInner withArrow={withArrow}>
224
- {children}
225
- {withArrow && <Icon icon="arrowright" />}
226
- </LinkInner>
227
- </Fragment>
228
- );
229
-
230
- const StyledLinkWrapper = applyStyle(LinkWrapper);
231
-
232
- let SelectedLink: ComponentType<Record<string, unknown>> = LinkA;
233
- if (LinkWrapper) {
234
- SelectedLink = StyledLinkWrapper as ComponentType<Record<string, unknown>>;
235
- } else if (isButton) {
236
- SelectedLink = LinkButton as ComponentType<Record<string, unknown>>;
237
- }
238
-
239
- return (
240
- <SelectedLink
241
- secondary={secondary}
242
- tertiary={tertiary}
243
- nochrome={nochrome}
244
- inverse={inverse}
245
- isButton={isButton}
246
- containsIcon={containsIcon}
247
- {...props}
248
- >
249
- {content}
250
- </SelectedLink>
251
- );
252
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,33 +0,0 @@
1
- import React from 'react';
2
- import { action } from 'storybook/actions';
3
-
4
- const fireClickAction = action('onLinkClick');
5
-
6
- interface Props {
7
- children: React.ReactNode;
8
- className?: string;
9
- href?: string | null;
10
- onClick?: () => void;
11
- to?: string | null;
12
- }
13
-
14
- export const StoryLinkWrapper: React.FC<Props> = ({
15
- children,
16
- className = '',
17
- href = null,
18
- onClick = () => {},
19
- to = null,
20
- ...rest
21
- }) => {
22
- const modifiedOnClick = (event: React.MouseEvent) => {
23
- event.preventDefault();
24
- onClick?.();
25
- fireClickAction(href || to);
26
- };
27
-
28
- return (
29
- <a className={className} href={(href || to) ?? undefined} onClick={modifiedOnClick} {...rest}>
30
- {children}
31
- </a>
32
- );
33
- };
@@ -1,28 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { render, screen } from '@testing-library/react';
3
- import { Avatar } from '../Avatar';
4
- import '@testing-library/jest-dom';
5
-
6
- describe('Avatar', () => {
7
- it('renders initials when no image is provided', () => {
8
- render(<Avatar username="John Doe" />);
9
- expect(screen.getByText('J')).toBeInTheDocument();
10
- });
11
-
12
- it('renders an image when src is provided', () => {
13
- render(<Avatar src="https://example.com/avatar.jpg" username="Jane Doe" />);
14
- const img = screen.getByAltText('Jane Doe');
15
- expect(img).toBeInTheDocument();
16
- expect(img).toHaveAttribute('src', 'https://example.com/avatar.jpg');
17
- });
18
-
19
- it('shows loading state accurately', () => {
20
- render(<Avatar loading username="Loading..." />);
21
- expect(screen.getByLabelText('Loading avatar ...')).toBeInTheDocument();
22
- });
23
-
24
- it('renders correct initial based on username', () => {
25
- render(<Avatar username="Eric Garcia" />);
26
- expect(screen.getByText('E')).toBeInTheDocument();
27
- });
28
- });
@@ -1,25 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { render, screen } from '@testing-library/react';
3
- import { Badge } from '../Badge';
4
- import '@testing-library/jest-dom';
5
-
6
- describe('Badge', () => {
7
- it('renders with children text', () => {
8
- render(<Badge>New</Badge>);
9
- expect(screen.getByText('New')).toBeInTheDocument();
10
- });
11
-
12
- it('renders with different statuses', () => {
13
- const { rerender } = render(<Badge status="positive">Positive</Badge>);
14
- expect(screen.getByText('Positive')).toBeInTheDocument();
15
-
16
- rerender(<Badge status="negative">Negative</Badge>);
17
- expect(screen.getByText('Negative')).toBeInTheDocument();
18
-
19
- rerender(<Badge status="warning">Warning</Badge>);
20
- expect(screen.getByText('Warning')).toBeInTheDocument();
21
-
22
- rerender(<Badge status="error">Error</Badge>);
23
- expect(screen.getByText('Error')).toBeInTheDocument();
24
- });
25
- });
@@ -1,38 +0,0 @@
1
- import { render, screen } from '@testing-library/react';
2
- import { describe, it, expect } from 'vitest';
3
-
4
- import { Button } from '../Button';
5
- import assertNoA11yViolations from '../test-utils/axe';
6
-
7
- describe('Button', () => {
8
- it('renders children text', async () => {
9
- const { container } = render(<Button>Click me</Button>);
10
- expect(screen.getByText('Click me')).toBeTruthy();
11
- await assertNoA11yViolations(container);
12
- });
13
-
14
- it('applies disabled when isDisabled prop is true', async () => {
15
- const { container } = render(<Button isDisabled>Disabled</Button>);
16
- const btn = screen.getByText('Disabled').closest('button');
17
- expect(btn).toHaveAttribute('disabled');
18
- await assertNoA11yViolations(container);
19
- });
20
-
21
- it('mounts icon-only button with accessible name', async () => {
22
- // Render an icon-only button with aria-label to satisfy accessibility
23
- const { container } = render(
24
- <Button containsIcon aria-label="Icon action" isDisabled>
25
- {/* icon-only scenario simulated with no children */}
26
- </Button>,
27
- );
28
- const btn = screen.getByRole('button', { name: 'Icon action' });
29
- expect(btn).toBeTruthy();
30
- await assertNoA11yViolations(container);
31
- });
32
-
33
- it('fails axe for icon-only button without accessible name', async () => {
34
- const { container } = render(<Button containsIcon isDisabled />);
35
- // Expect the helper to throw with accessibility violations
36
- await expect(assertNoA11yViolations(container)).rejects.toThrow(/Accessibility violations detected/);
37
- });
38
- });
@@ -1,26 +0,0 @@
1
- import { render, screen } from '@testing-library/react';
2
- import { describe, it, expect } from 'vitest';
3
-
4
- import { Icon } from '../Icon';
5
- import assertNoA11yViolations from '../test-utils/axe';
6
-
7
- describe('Icon', () => {
8
- it('renders an svg for a valid icon key', async () => {
9
- const { container } = render(<Icon icon="check" data-testid="icon" />);
10
- const el = screen.getByTestId('icon');
11
- expect(el.tagName.toLowerCase()).toBe('svg');
12
- // path should exist (may be empty if icon not present)
13
- expect(el.querySelector('path')).not.toBeNull();
14
- await assertNoA11yViolations(container);
15
- });
16
-
17
- it('renders aria-hidden fallback for unknown icon key', async () => {
18
- const { container } = render(<Icon icon={'__does_not_exist__' as unknown as string} data-testid="missing" />);
19
- const el = screen.getByTestId('missing');
20
- expect(el.getAttribute('aria-hidden')).not.toBeNull();
21
- const path = el.querySelector('path');
22
- expect(path).not.toBeNull();
23
- expect(path?.getAttribute('d')).toBe('');
24
- await assertNoA11yViolations(container);
25
- });
26
- });
@@ -1,31 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { render, screen } from '@testing-library/react';
3
- import { Link } from '../Link';
4
- import '@testing-library/jest-dom';
5
-
6
- describe('Link', () => {
7
- it('renders a link with correct text', () => {
8
- render(<Link href="https://example.com">Example</Link>);
9
- const linkElement = screen.getByRole('link', { name: /example/i });
10
- expect(linkElement).toBeInTheDocument();
11
- expect(linkElement).toHaveAttribute('href', 'https://example.com');
12
- });
13
-
14
- it('renders as a button when isButton is true', () => {
15
- render(<Link isButton>Button Link</Link>);
16
- const buttonElement = screen.getByRole('button', { name: /button link/i });
17
- expect(buttonElement).toBeInTheDocument();
18
- });
19
-
20
- it('renders an arrow icon when withArrow is true', () => {
21
- const { container } = render(<Link withArrow>Arrow Link</Link>);
22
- const svg = container.querySelector('svg');
23
- expect(svg).toBeInTheDocument();
24
- });
25
-
26
- it('renders with secondary styling', () => {
27
- render(<Link secondary>Secondary Link</Link>);
28
- const linkElement = screen.getByText('Secondary Link').closest('a');
29
- expect(linkElement).toHaveStyle('color: rgb(153, 153, 153)'); // color.mediumdark
30
- });
31
- });
package/src/mdx.d.ts DELETED
@@ -1,5 +0,0 @@
1
- declare module '*.mdx' {
2
- import * as React from 'react';
3
- const MDXComponent: (props: Record<string, unknown>) => React.JSX.Element;
4
- export default MDXComponent;
5
- }
package/src/setupTests.ts DELETED
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';
@@ -1,18 +0,0 @@
1
- /**
2
- * Type declarations for shared/animation.js
3
- */
4
-
5
- import { Keyframes, FlattenSimpleInterpolation } from 'styled-components';
6
-
7
- export interface Easing {
8
- rubber: string;
9
- }
10
-
11
- export declare const easing: Easing;
12
-
13
- export declare const rotate360: Keyframes;
14
- export declare const glow: Keyframes;
15
- export declare const float: Keyframes;
16
- export declare const jiggle: Keyframes;
17
- export declare const shake: Keyframes;
18
- export declare const inlineGlow: FlattenSimpleInterpolation;
@@ -1,60 +0,0 @@
1
- // Handy CSS animations for micro-interactions
2
- import { css, keyframes } from 'styled-components';
3
- import { color } from './styles';
4
-
5
- export const easing = {
6
- rubber: 'cubic-bezier(0.175, 0.885, 0.335, 1.05)',
7
- };
8
-
9
- export const rotate360 = keyframes`
10
- from {
11
- transform: rotate(0deg);
12
- }
13
- to {
14
- transform: rotate(360deg);
15
- }
16
- `;
17
-
18
- export const glow = keyframes`
19
- 0%, 100% { opacity: 1; }
20
- 50% { opacity: .4; }
21
- `;
22
-
23
- export const float = keyframes`
24
- 0% { transform: translateY(1px); }
25
- 25% { transform: translateY(0px); }
26
- 50% { transform: translateY(-3px); }
27
- 100% { transform: translateY(1px); }
28
- `;
29
-
30
- export const jiggle = keyframes`
31
- 0%, 100% { transform:translate3d(0,0,0); }
32
- 12.5%, 62.5% { transform:translate3d(-4px,0,0); }
33
- 37.5%, 87.5% { transform: translate3d(4px,0,0); }
34
- `;
35
-
36
- export const shake = keyframes`
37
- 0% { transform:rotate(-3deg) }
38
- 1.68421% { transform:rotate(3deg) }
39
- 2.10526% { transform:rotate(6deg) }
40
- 3.78947% { transform:rotate(-6deg) }
41
- 4.21053% { transform:rotate(-6deg) }
42
- 5.89474% { transform:rotate(6deg) }
43
- 6.31579% { transform:rotate(6deg) }
44
- 8% { transform:rotate(-6deg) }
45
- 8.42105% { transform:rotate(-6deg) }
46
- 10.10526% { transform:rotate(6deg) }
47
- 10.52632% { transform:rotate(6deg) }
48
- 12.21053% { transform:rotate(-6deg) }
49
- 12.63158% { transform:rotate(-6deg) }
50
- 14.31579% { transform:rotate(6deg) }
51
- 15.78947% { transform:rotate(0deg) }
52
- 100% { transform:rotate(0deg) }
53
- `;
54
-
55
- export const inlineGlow = css`
56
- animation: ${glow} 1.5s ease-in-out infinite;
57
- background: ${color.mediumlight};
58
- color: transparent;
59
- cursor: progress;
60
- `;
@@ -1,12 +0,0 @@
1
- /**
2
- * Type declarations for shared/global.js
3
- */
4
-
5
- import { FlattenSimpleInterpolation } from 'styled-components';
6
-
7
- export declare const fontUrl: string;
8
- export declare const bodyStyles: FlattenSimpleInterpolation;
9
- export declare const GlobalStyle: import('styled-components').GlobalStyleComponent<
10
- object,
11
- import('styled-components').DefaultTheme
12
- >;
@@ -1,120 +0,0 @@
1
- import { createGlobalStyle, css } from 'styled-components';
2
- import { color, typography } from './styles';
3
-
4
- export const fontUrl = 'https://fonts.googleapis.com/css?family=Nunito+Sans:400,700,800,900';
5
-
6
- export const bodyStyles = css`
7
- font-family: ${typography.type.primary};
8
- font-size: ${typography.size.s3}px;
9
- color: ${color.darkest};
10
-
11
- -webkit-font-smoothing: antialiased;
12
- -moz-osx-font-smoothing: grayscale;
13
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
14
- -webkit-tap-highlight-color: transparent;
15
- -webkit-overflow-scrolling: touch;
16
-
17
- * {
18
- box-sizing: border-box;
19
- }
20
-
21
- h1,
22
- h2,
23
- h3,
24
- h4,
25
- h5,
26
- h6 {
27
- font-weight: ${typography.weight.regular};
28
- margin: 0;
29
- padding: 0;
30
- }
31
-
32
- button,
33
- input,
34
- textarea,
35
- select {
36
- outline: none;
37
- font-family: ${typography.type.primary};
38
- }
39
-
40
- sub,
41
- sup {
42
- font-size: 0.8em;
43
- }
44
-
45
- sub {
46
- bottom: -0.2em;
47
- }
48
-
49
- sup {
50
- top: -0.2em;
51
- }
52
-
53
- b,
54
- em {
55
- font-weight: ${typography.weight.bold};
56
- }
57
-
58
- hr {
59
- border: none;
60
- border-top: 1px solid ${color.border};
61
- clear: both;
62
- margin-bottom: 1.25rem;
63
- }
64
-
65
- code,
66
- pre {
67
- font-family: ${typography.type.code};
68
- font-size: ${typography.size.s2 - 1}px;
69
- -webkit-font-smoothing: antialiased;
70
- -moz-osx-font-smoothing: grayscale;
71
- }
72
-
73
- code {
74
- display: inline-block;
75
- padding-left: 2px;
76
- padding-right: 2px;
77
- vertical-align: baseline;
78
-
79
- color: ${color.secondary};
80
- }
81
-
82
- pre {
83
- line-height: 18px;
84
- padding: 11px 1rem;
85
- white-space: pre-wrap;
86
-
87
- background: rgba(0, 0, 0, 0.05);
88
- color: ${color.darkest};
89
- border-radius: 3px;
90
- margin: 1rem 0;
91
- }
92
-
93
- &.ReactModal__Body--open {
94
- overflow: hidden;
95
- &.hide-intercom #intercom-container {
96
- display: none;
97
- }
98
- }
99
-
100
- .ReactModalPortal > div {
101
- opacity: 0;
102
- }
103
-
104
- .ReactModalPortal .ReactModal__Overlay {
105
- transition: all 200ms ease-in;
106
-
107
- &--after-open {
108
- opacity: 1;
109
- }
110
- &--before-close {
111
- opacity: 0;
112
- }
113
- }
114
- `;
115
-
116
- export const GlobalStyle = createGlobalStyle`
117
- body {
118
- ${bodyStyles}
119
- }
120
- `;
@@ -1,34 +0,0 @@
1
- /**
2
- * Type declarations for shared/icons.js
3
- */
4
-
5
- export interface Icons {
6
- mobile: string;
7
- watch: string;
8
- tablet: string;
9
- browser: string;
10
- sidebar: string;
11
- sidebaralt: string;
12
- bottombar: string;
13
- useralt: string;
14
- user: string;
15
- useradd: string;
16
- users: string;
17
- profile: string;
18
- bookmark: string;
19
- bookmarkhollow: string;
20
- book: string;
21
- star: string;
22
- starhollow: string;
23
- circle: string;
24
- circlehollow: string;
25
- heart: string;
26
- hearthollow: string;
27
- facehappy: string;
28
- facesad: string;
29
- faceneutral: string;
30
- lock: string;
31
- [key: string]: string; // Allow for additional icons
32
- }
33
-
34
- export declare const icons: Icons;