aural-ui 2.0.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 (308) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +456 -0
  3. package/dist/components/aspect-ratio/AspectRatio.stories.tsx +1327 -0
  4. package/dist/components/aspect-ratio/index.tsx +10 -0
  5. package/dist/components/aspect-ratio/meta.ts +8 -0
  6. package/dist/components/avatar/Avatar.stories.tsx +645 -0
  7. package/dist/components/avatar/index.tsx +50 -0
  8. package/dist/components/avatar/meta.ts +8 -0
  9. package/dist/components/badge/Badge.stories.tsx +169 -0
  10. package/dist/components/badge/index.tsx +28 -0
  11. package/dist/components/badge/meta.ts +6 -0
  12. package/dist/components/banner/Banner.stories.tsx +475 -0
  13. package/dist/components/banner/index.tsx +256 -0
  14. package/dist/components/banner/meta.ts +36 -0
  15. package/dist/components/button/Button.stories.tsx +74 -0
  16. package/dist/components/button/index.tsx +158 -0
  17. package/dist/components/button/meta.ts +33 -0
  18. package/dist/components/card/Card.stories.tsx +377 -0
  19. package/dist/components/card/index.tsx +85 -0
  20. package/dist/components/card/meta.ts +14 -0
  21. package/dist/components/char-count/CharCount.stories.tsx +334 -0
  22. package/dist/components/char-count/index.tsx +51 -0
  23. package/dist/components/char-count/meta.ts +13 -0
  24. package/dist/components/checkbox/Checkbox.stories.tsx +209 -0
  25. package/dist/components/checkbox/index.tsx +34 -0
  26. package/dist/components/checkbox/meta.ts +19 -0
  27. package/dist/components/chip/Chip.stories.tsx +207 -0
  28. package/dist/components/chip/index.tsx +92 -0
  29. package/dist/components/chip/meta.ts +17 -0
  30. package/dist/components/circular-loader/CircularLoader.stories.tsx +741 -0
  31. package/dist/components/circular-loader/index.tsx +138 -0
  32. package/dist/components/circular-loader/meta.ts +11 -0
  33. package/dist/components/collapsible/Collapsible.stories.tsx +319 -0
  34. package/dist/components/collapsible/index.tsx +158 -0
  35. package/dist/components/collapsible/meta.ts +22 -0
  36. package/dist/components/command/Command.stories.tsx +996 -0
  37. package/dist/components/command/index.tsx +324 -0
  38. package/dist/components/command/meta.ts +18 -0
  39. package/dist/components/dialog/Dialog.stories.tsx +963 -0
  40. package/dist/components/dialog/index.tsx +250 -0
  41. package/dist/components/dialog/meta.ts +28 -0
  42. package/dist/components/divider/Divider.stories.tsx +633 -0
  43. package/dist/components/divider/index.tsx +181 -0
  44. package/dist/components/divider/meta.ts +12 -0
  45. package/dist/components/dot-loader/DotLoader.stories.tsx +352 -0
  46. package/dist/components/dot-loader/index.tsx +78 -0
  47. package/dist/components/dot-loader/meta.ts +14 -0
  48. package/dist/components/dropdown/Dropdown.stories.tsx +1210 -0
  49. package/dist/components/dropdown/index.tsx +479 -0
  50. package/dist/components/dropdown/meta.ts +21 -0
  51. package/dist/components/form/Form.stories.tsx +320 -0
  52. package/dist/components/form/index.tsx +183 -0
  53. package/dist/components/form/meta.ts +11 -0
  54. package/dist/components/helper-text/HelperText.stories.tsx +254 -0
  55. package/dist/components/helper-text/index.tsx +102 -0
  56. package/dist/components/helper-text/meta.ts +18 -0
  57. package/dist/components/hover-card/HoverCard.stories.tsx +1328 -0
  58. package/dist/components/hover-card/index.tsx +42 -0
  59. package/dist/components/hover-card/meta.ts +12 -0
  60. package/dist/components/icon-button/IconButton.stories.tsx +252 -0
  61. package/dist/components/icon-button/index.tsx +130 -0
  62. package/dist/components/icon-button/meta.ts +20 -0
  63. package/dist/components/if-else/if-else.stories.tsx +100 -0
  64. package/dist/components/if-else/index.tsx +56 -0
  65. package/dist/components/if-else/meta.ts +6 -0
  66. package/dist/components/index.ts +70 -0
  67. package/dist/components/input/Input.stories.tsx +431 -0
  68. package/dist/components/input/index.tsx +487 -0
  69. package/dist/components/input/meta.ts +28 -0
  70. package/dist/components/label/Label.stories.tsx +200 -0
  71. package/dist/components/label/index.tsx +43 -0
  72. package/dist/components/label/meta.ts +14 -0
  73. package/dist/components/list/List.stories.tsx +963 -0
  74. package/dist/components/list/index.tsx +567 -0
  75. package/dist/components/list/meta.ts +24 -0
  76. package/dist/components/marquee/Marquee.stories.tsx +819 -0
  77. package/dist/components/marquee/index.tsx +107 -0
  78. package/dist/components/marquee/meta.ts +6 -0
  79. package/dist/components/overlay/Overlay.stories.tsx +954 -0
  80. package/dist/components/overlay/index.tsx +58 -0
  81. package/dist/components/overlay/meta.ts +10 -0
  82. package/dist/components/pagination/Pagination.stories.tsx +354 -0
  83. package/dist/components/pagination/index.tsx +455 -0
  84. package/dist/components/pagination/meta.ts +29 -0
  85. package/dist/components/popover/Popover.stories.tsx +1037 -0
  86. package/dist/components/popover/index.tsx +67 -0
  87. package/dist/components/popover/meta.ts +12 -0
  88. package/dist/components/radio/Radio.stories.tsx +146 -0
  89. package/dist/components/radio/index.tsx +41 -0
  90. package/dist/components/radio/meta.ts +19 -0
  91. package/dist/components/resizable/Resizable.stories.tsx +866 -0
  92. package/dist/components/resizable/index.tsx +55 -0
  93. package/dist/components/resizable/meta.ts +12 -0
  94. package/dist/components/scroll-area/ScrollArea.stories.tsx +1104 -0
  95. package/dist/components/scroll-area/index.tsx +55 -0
  96. package/dist/components/scroll-area/meta.ts +8 -0
  97. package/dist/components/search/Search.stories.tsx +678 -0
  98. package/dist/components/search/index.tsx +141 -0
  99. package/dist/components/search/meta.ts +6 -0
  100. package/dist/components/select/Select.stories.tsx +962 -0
  101. package/dist/components/select/index.tsx +512 -0
  102. package/dist/components/select/meta.ts +40 -0
  103. package/dist/components/sheet/Sheet.stories.tsx +1060 -0
  104. package/dist/components/sheet/index.tsx +440 -0
  105. package/dist/components/sheet/meta.ts +38 -0
  106. package/dist/components/skelton/Skelton.stories.tsx +859 -0
  107. package/dist/components/skelton/index.tsx +17 -0
  108. package/dist/components/skelton/meta.ts +6 -0
  109. package/dist/components/slider/Slider.stories.tsx +876 -0
  110. package/dist/components/slider/index.tsx +156 -0
  111. package/dist/components/slider/meta.ts +29 -0
  112. package/dist/components/stepper/Stepper.stories.tsx +639 -0
  113. package/dist/components/stepper/index.tsx +650 -0
  114. package/dist/components/stepper/meta.ts +19 -0
  115. package/dist/components/switch/Switch.stories.tsx +85 -0
  116. package/dist/components/switch/index.tsx +37 -0
  117. package/dist/components/switch/meta.ts +24 -0
  118. package/dist/components/switch-case/SwitchCase.stories.tsx +209 -0
  119. package/dist/components/switch-case/index.tsx +89 -0
  120. package/dist/components/switch-case/meta.ts +6 -0
  121. package/dist/components/table/Table.stories.tsx +1095 -0
  122. package/dist/components/table/index.tsx +113 -0
  123. package/dist/components/table/meta.ts +20 -0
  124. package/dist/components/tabs/Tabs.stories.tsx +1379 -0
  125. package/dist/components/tabs/index.tsx +186 -0
  126. package/dist/components/tabs/meta.ts +25 -0
  127. package/dist/components/tag/Tag.stories.tsx +625 -0
  128. package/dist/components/tag/index.tsx +320 -0
  129. package/dist/components/tag/meta.ts +52 -0
  130. package/dist/components/textarea/TextArea.stories.tsx +723 -0
  131. package/dist/components/textarea/index.tsx +480 -0
  132. package/dist/components/textarea/meta.ts +23 -0
  133. package/dist/components/toast/Toast.stories.tsx +1427 -0
  134. package/dist/components/toast/index.tsx +26 -0
  135. package/dist/components/toast/meta.ts +19 -0
  136. package/dist/components/toggle/Toggle.stories.tsx +1093 -0
  137. package/dist/components/toggle/index.tsx +44 -0
  138. package/dist/components/toggle/meta.ts +19 -0
  139. package/dist/components/tooltip/Tooltip.stories.tsx +1548 -0
  140. package/dist/components/tooltip/index.tsx +304 -0
  141. package/dist/components/tooltip/meta.ts +21 -0
  142. package/dist/components/typography/Typography.stories.tsx +197 -0
  143. package/dist/components/typography/index.tsx +184 -0
  144. package/dist/components/typography/meta.ts +38 -0
  145. package/dist/fonts/LabGrotesque-Regular.ttf +0 -0
  146. package/dist/fonts/LabGrotesqueTRIAL-Bold.otf +0 -0
  147. package/dist/fonts/LabGrotesqueTRIAL-Light.otf +0 -0
  148. package/dist/fonts/LabGrotesqueTRIAL-Medium.otf +0 -0
  149. package/dist/fonts/LabGrotesqueTRIAL-Regular.otf +0 -0
  150. package/dist/fonts/PPSupplySans-Regular (1).otf +0 -0
  151. package/dist/fonts/PPSupplySans-Regular.otf +0 -0
  152. package/dist/fonts/PPSupplySans-Ultralight.otf +0 -0
  153. package/dist/hooks/index.ts +3 -0
  154. package/dist/hooks/use-previous/UsePrevious.stories.tsx +997 -0
  155. package/dist/hooks/use-previous/index.ts +15 -0
  156. package/dist/hooks/use-previous/meta.ts +6 -0
  157. package/dist/hooks/use-standalone-pagination/UseStandalonePagination.stories.tsx +983 -0
  158. package/dist/hooks/use-standalone-pagination/index.ts +146 -0
  159. package/dist/hooks/use-standalone-pagination/meta.ts +6 -0
  160. package/dist/icons/Icons.stories.tsx +29 -0
  161. package/dist/icons/alert-icon/AlertIcon.stories.tsx +991 -0
  162. package/dist/icons/alert-icon/index.tsx +48 -0
  163. package/dist/icons/alert-icon/meta.ts +8 -0
  164. package/dist/icons/all-icons.tsx +738 -0
  165. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +1031 -0
  166. package/dist/icons/angle-down-icon/index.tsx +25 -0
  167. package/dist/icons/angle-down-icon/meta.ts +8 -0
  168. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +1080 -0
  169. package/dist/icons/arrow-box-left-icon/index.tsx +24 -0
  170. package/dist/icons/arrow-box-left-icon/meta.ts +8 -0
  171. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +1151 -0
  172. package/dist/icons/arrow-right-icon/index.tsx +26 -0
  173. package/dist/icons/arrow-right-icon/meta.ts +8 -0
  174. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +1273 -0
  175. package/dist/icons/arrow-right-up-icon/index.tsx +24 -0
  176. package/dist/icons/arrow-right-up-icon/meta.ts +8 -0
  177. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +670 -0
  178. package/dist/icons/art-board-icon/index.tsx +24 -0
  179. package/dist/icons/art-board-icon/meta.ts +7 -0
  180. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +1244 -0
  181. package/dist/icons/audio-bar-icon/index.tsx +19 -0
  182. package/dist/icons/audio-bar-icon/meta.ts +8 -0
  183. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +1239 -0
  184. package/dist/icons/bubble-check-icon/index.tsx +24 -0
  185. package/dist/icons/bubble-check-icon/meta.ts +8 -0
  186. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +1228 -0
  187. package/dist/icons/bubble-crossed-icon/index.tsx +24 -0
  188. package/dist/icons/bubble-crossed-icon/meta.ts +8 -0
  189. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +912 -0
  190. package/dist/icons/bubble-sparkle-icon/index.tsx +26 -0
  191. package/dist/icons/bubble-sparkle-icon/meta.ts +8 -0
  192. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +1021 -0
  193. package/dist/icons/chevron-double-left-icon/index.tsx +34 -0
  194. package/dist/icons/chevron-double-left-icon/meta.ts +8 -0
  195. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +1021 -0
  196. package/dist/icons/chevron-double-right-icon/index.tsx +34 -0
  197. package/dist/icons/chevron-double-right-icon/meta.ts +8 -0
  198. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +1001 -0
  199. package/dist/icons/chevron-down-icon/index.tsx +27 -0
  200. package/dist/icons/chevron-down-icon/meta.ts +8 -0
  201. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +1029 -0
  202. package/dist/icons/chevron-left-icon/index.tsx +27 -0
  203. package/dist/icons/chevron-left-icon/meta.ts +8 -0
  204. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +1021 -0
  205. package/dist/icons/chevron-right-icon/index.tsx +27 -0
  206. package/dist/icons/chevron-right-icon/meta.ts +8 -0
  207. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +1036 -0
  208. package/dist/icons/chevron-up-icon/index.tsx +27 -0
  209. package/dist/icons/chevron-up-icon/meta.ts +8 -0
  210. package/dist/icons/command-icon/CommandIcon.stories.tsx +1098 -0
  211. package/dist/icons/command-icon/index.tsx +24 -0
  212. package/dist/icons/command-icon/meta.ts +8 -0
  213. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +1061 -0
  214. package/dist/icons/cross-circle-icon/index.tsx +23 -0
  215. package/dist/icons/cross-circle-icon/meta.ts +8 -0
  216. package/dist/icons/cross-icon/CrossIcon.stories.tsx +1027 -0
  217. package/dist/icons/cross-icon/index.tsx +24 -0
  218. package/dist/icons/cross-icon/meta.ts +8 -0
  219. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +1092 -0
  220. package/dist/icons/edit-big-icon/index.tsx +22 -0
  221. package/dist/icons/edit-big-icon/meta.ts +8 -0
  222. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +1090 -0
  223. package/dist/icons/eye-close-icon/index.tsx +26 -0
  224. package/dist/icons/eye-close-icon/meta.ts +8 -0
  225. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +1098 -0
  226. package/dist/icons/eye-open-icon/index.tsx +24 -0
  227. package/dist/icons/eye-open-icon/meta.ts +8 -0
  228. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +1071 -0
  229. package/dist/icons/feature-shine-icon/index.tsx +29 -0
  230. package/dist/icons/feature-shine-icon/meta.ts +8 -0
  231. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +1115 -0
  232. package/dist/icons/file-chart-icon/index.tsx +24 -0
  233. package/dist/icons/file-chart-icon/meta.ts +8 -0
  234. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +668 -0
  235. package/dist/icons/file-text-icon/index.tsx +24 -0
  236. package/dist/icons/file-text-icon/meta.ts +8 -0
  237. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +1239 -0
  238. package/dist/icons/grip-vertical-icon/index.tsx +28 -0
  239. package/dist/icons/grip-vertical-icon/meta.ts +8 -0
  240. package/dist/icons/image-icon/ImageIcon.stories.tsx +1181 -0
  241. package/dist/icons/image-icon/index.tsx +24 -0
  242. package/dist/icons/image-icon/meta.ts +8 -0
  243. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +1248 -0
  244. package/dist/icons/import-folder-icon/index.tsx +22 -0
  245. package/dist/icons/import-folder-icon/meta.ts +8 -0
  246. package/dist/icons/index.ts +46 -0
  247. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +1272 -0
  248. package/dist/icons/light-bulb-simple-icon/index.tsx +24 -0
  249. package/dist/icons/light-bulb-simple-icon/meta.ts +8 -0
  250. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +1245 -0
  251. package/dist/icons/magic-book-icon/index.tsx +32 -0
  252. package/dist/icons/magic-book-icon/meta.ts +8 -0
  253. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +1251 -0
  254. package/dist/icons/maintenance-icon/index.tsx +23 -0
  255. package/dist/icons/maintenance-icon/meta.ts +8 -0
  256. package/dist/icons/message-icon/MessageIcon.stories.tsx +595 -0
  257. package/dist/icons/message-icon/index.tsx +30 -0
  258. package/dist/icons/message-icon/meta.ts +8 -0
  259. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +1245 -0
  260. package/dist/icons/move-horizontal-icon/index.tsx +23 -0
  261. package/dist/icons/move-horizontal-icon/meta.ts +8 -0
  262. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +1196 -0
  263. package/dist/icons/move-vertical-icon/index.tsx +23 -0
  264. package/dist/icons/move-vertical-icon/meta.ts +8 -0
  265. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +1167 -0
  266. package/dist/icons/page-search-icon/index.tsx +21 -0
  267. package/dist/icons/page-search-icon/meta.ts +8 -0
  268. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +1131 -0
  269. package/dist/icons/pencil-icon/index.tsx +21 -0
  270. package/dist/icons/pencil-icon/meta.ts +8 -0
  271. package/dist/icons/plus-icon/PlusIcon.stories.tsx +1151 -0
  272. package/dist/icons/plus-icon/index.tsx +24 -0
  273. package/dist/icons/plus-icon/meta.ts +8 -0
  274. package/dist/icons/search-icon/SearchIcon.stories.tsx +1181 -0
  275. package/dist/icons/search-icon/index.tsx +24 -0
  276. package/dist/icons/search-icon/meta.ts +8 -0
  277. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +1167 -0
  278. package/dist/icons/site-logo-icon/index.tsx +79 -0
  279. package/dist/icons/site-logo-icon/meta.ts +8 -0
  280. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +637 -0
  281. package/dist/icons/spinner-gradient-icon/index.tsx +53 -0
  282. package/dist/icons/spinner-gradient-icon/meta.ts +8 -0
  283. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +644 -0
  284. package/dist/icons/spinner-solid-icon/index.tsx +59 -0
  285. package/dist/icons/spinner-solid-icon/meta.ts +8 -0
  286. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +736 -0
  287. package/dist/icons/spinner-solid-neutral-icon/index.tsx +53 -0
  288. package/dist/icons/spinner-solid-neutral-icon/meta.ts +8 -0
  289. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +1204 -0
  290. package/dist/icons/tick-circle-icon/index.tsx +23 -0
  291. package/dist/icons/tick-circle-icon/meta.ts +8 -0
  292. package/dist/icons/tick-icon/TickIcon.stories.tsx +1340 -0
  293. package/dist/icons/tick-icon/index.tsx +24 -0
  294. package/dist/icons/tick-icon/meta.ts +8 -0
  295. package/dist/icons/trash-icon/TrashIcon.stories.tsx +996 -0
  296. package/dist/icons/trash-icon/index.tsx +24 -0
  297. package/dist/icons/trash-icon/meta.ts +8 -0
  298. package/dist/icons/upload-icon/UploadIcon.stories.tsx +947 -0
  299. package/dist/icons/upload-icon/index.tsx +24 -0
  300. package/dist/icons/upload-icon/meta.ts +8 -0
  301. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +1045 -0
  302. package/dist/icons/vertical-menu-icon/index.tsx +27 -0
  303. package/dist/icons/vertical-menu-icon/meta.ts +8 -0
  304. package/dist/index.d.ts +6 -0
  305. package/dist/index.js +206 -0
  306. package/dist/lib/utils.ts +6 -0
  307. package/dist/styles/aural-theme.css +1008 -0
  308. package/package.json +142 -0
@@ -0,0 +1,644 @@
1
+ import React from "react"
2
+ import type { Meta, StoryObj } from "@storybook/react"
3
+
4
+ import { SpinnerSolidIcon } from "."
5
+ import { SpinnerGradientIcon } from "../spinner-gradient-icon"
6
+
7
+ const meta: Meta<typeof SpinnerSolidIcon> = {
8
+ title: "Icons/SpinnerSolidIcon",
9
+ component: SpinnerSolidIcon,
10
+ parameters: {
11
+ layout: "fullscreen",
12
+ backgrounds: {
13
+ default: "dark",
14
+ values: [
15
+ { name: "dark", value: "#0a0a0a" },
16
+ { name: "darker", value: "#000000" },
17
+ { name: "light", value: "#ffffff" },
18
+ ],
19
+ },
20
+ docs: {
21
+ page: () => (
22
+ <>
23
+ {/* Override default docs styling */}
24
+ <style>
25
+ {`
26
+ .sbdocs-wrapper {
27
+ padding: 0 !important;
28
+ max-width: none !important;
29
+ background: transparent !important;
30
+ }
31
+ .sbdocs-content {
32
+ max-width: none !important;
33
+ padding: 0 !important;
34
+ margin: 0 !important;
35
+ background: transparent !important;
36
+ }
37
+ .docs-story {
38
+ background: transparent !important;
39
+ }
40
+ .sbdocs {
41
+ background: transparent !important;
42
+ }
43
+ body {
44
+ background: #0a0a0a !important;
45
+ }
46
+ #storybook-docs {
47
+ background: #0a0a0a !important;
48
+ }
49
+ .sbdocs-preview {
50
+ background: transparent !important;
51
+ border: none !important;
52
+ }
53
+ .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
54
+ color: white !important;
55
+ }
56
+ .sbdocs-p, .sbdocs-li {
57
+ color: rgba(255, 255, 255, 0.7) !important;
58
+ }
59
+ .sbdocs-code {
60
+ background: rgba(255, 255, 255, 0.1) !important;
61
+ color: rgba(168, 85, 247, 1) !important;
62
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
63
+ }
64
+ .sbdocs-pre {
65
+ background: rgba(0, 0, 0, 0.4) !important;
66
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
67
+ }
68
+ .sbdocs-table {
69
+ background: rgba(255, 255, 255, 0.05) !important;
70
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
71
+ }
72
+ .sbdocs-table th {
73
+ background: rgba(255, 255, 255, 0.05) !important;
74
+ color: white !important;
75
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
76
+ }
77
+ .sbdocs-table td {
78
+ color: rgba(255, 255, 255, 0.7) !important;
79
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
80
+ }
81
+ @keyframes search-pulse {
82
+ 0%, 100% { transform: scale(1); opacity: 1; }
83
+ 50% { transform: scale(1.05); opacity: 0.8; }
84
+ }
85
+ .animate-search-pulse {
86
+ animation: search-pulse 2s ease-in-out infinite;
87
+ }
88
+ @keyframes search-bounce {
89
+ 0%, 100% { transform: translateY(0); }
90
+ 50% { transform: translateY(-4px); }
91
+ }
92
+ .animate-search-bounce {
93
+ animation: search-bounce 1.5s ease-in-out infinite;
94
+ }
95
+ @keyframes search-glow {
96
+ 0%, 100% { filter: drop-shadow(0 0 2px currentColor); }
97
+ 50% { filter: drop-shadow(0 0 8px currentColor); }
98
+ }
99
+ .animate-search-glow {
100
+ animation: search-glow 2s ease-in-out infinite;
101
+ }
102
+ `}
103
+ </style>
104
+
105
+ <div className="min-h-screen bg-gradient-to-br from-gray-900 via-blue-900/20 to-gray-900">
106
+ {/* Header */}
107
+ <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
108
+ <div className="absolute inset-0 bg-gradient-to-r from-blue-500/10 via-transparent to-purple-500/10" />
109
+ <div className="relative !mx-auto max-w-7xl px-6 py-16">
110
+ <div className="!space-y-6 text-center">
111
+ <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-blue-500/30 bg-gradient-to-br from-blue-500/20 to-purple-500/20">
112
+ <SpinnerSolidIcon className="h-12 w-12 text-blue-400" />
113
+ </div>
114
+ <h1 className="!text-white">SpinnerSolidIcon</h1>
115
+ <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white">
116
+ A clean and minimal spinner icon for loading states,
117
+ asynchronous actions, and content transitions. Perfect for
118
+ indicating progress in a subtle and elegant way.
119
+ </p>
120
+
121
+ {/* Stats */}
122
+ <div className="flex items-center justify-center gap-8 pt-8">
123
+ <div className="text-center">
124
+ <div className="text-3xl font-bold text-blue-300">
125
+ Minimal
126
+ </div>
127
+ <div className="text-sm text-white/80">Clean Design</div>
128
+ </div>
129
+ <div className="h-8 w-px bg-white/20" />
130
+ <div className="text-center">
131
+ <div className="text-3xl font-bold text-purple-300">
132
+ Accessible
133
+ </div>
134
+ <div className="text-sm text-white/80">
135
+ Screen Reader Ready
136
+ </div>
137
+ </div>
138
+ <div className="h-8 w-px bg-white/20" />
139
+ <div className="text-center">
140
+ <div className="text-3xl font-bold text-green-300">
141
+ Versatile
142
+ </div>
143
+ <div className="text-sm text-white/80">
144
+ Multiple Sizes
145
+ </div>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ </div>
150
+ </div>
151
+
152
+ {/* Content */}
153
+ <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
154
+ {/* Features */}
155
+ <div className="!space-y-8">
156
+ <h3 className="text-center text-2xl font-bold !text-white">
157
+ Key Features
158
+ </h3>
159
+ <div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
160
+ <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
161
+ <div className="text-3xl">🎨</div>
162
+ <h4 className="text-lg font-semibold !text-white">
163
+ Clean Design
164
+ </h4>
165
+ <p className="text-sm !text-white/80">
166
+ Minimal and elegant spinner design that fits any interface
167
+ </p>
168
+ </div>
169
+ <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
170
+ <div className="text-3xl">♿</div>
171
+ <h4 className="text-lg font-semibold !text-white">
172
+ Accessibility
173
+ </h4>
174
+ <p className="text-sm !text-white/80">
175
+ Built with Radix UI's AccessibleIcon for screen reader
176
+ support
177
+ </p>
178
+ </div>
179
+ <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
180
+ <div className="text-3xl">⚡</div>
181
+ <h4 className="text-lg font-semibold !text-white">
182
+ Performance
183
+ </h4>
184
+ <p className="text-sm !text-white/80">
185
+ Optimized SVG rendering with minimal DOM impact
186
+ </p>
187
+ </div>
188
+ </div>
189
+ </div>
190
+
191
+ {/* API Reference */}
192
+ <div className="!space-y-8">
193
+ <h3 className="text-center text-2xl font-bold !text-white">
194
+ API Reference
195
+ </h3>
196
+
197
+ {/* Component Signature */}
198
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
199
+ <h4 className="mb-4 text-lg font-semibold !text-blue-300">
200
+ Component Signature
201
+ </h4>
202
+ <div className="rounded-lg bg-black/40 p-4">
203
+ <pre className="text-sm !text-green-300">
204
+ {`import { SpinnerSolidIcon } from "@/ui/icons/spinner-solid-icon"
205
+
206
+ <SpinnerSolidIcon className="h-6 w-6 animate-spin" />`}
207
+ </pre>
208
+ </div>
209
+ </div>
210
+
211
+ {/* Props Table */}
212
+ <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
213
+ <div className="bg-white/5 p-4">
214
+ <h3 className="text-xl font-semibold !text-white">Props</h3>
215
+ </div>
216
+ <table className="!my-0 w-full">
217
+ <thead className="bg-white/5">
218
+ <tr className="border-b border-white/10">
219
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
220
+ Prop
221
+ </th>
222
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
223
+ Type
224
+ </th>
225
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
226
+ Default
227
+ </th>
228
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
229
+ Description
230
+ </th>
231
+ </tr>
232
+ </thead>
233
+ <tbody>
234
+ <tr className="border-b border-white/5">
235
+ <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
236
+ width
237
+ </td>
238
+ <td className="px-6 py-4 text-sm !text-white/70">
239
+ number | string
240
+ </td>
241
+ <td className="px-6 py-4 text-sm !text-white/50">16</td>
242
+ <td className="px-6 py-4 text-sm !text-white/70">
243
+ Width of the icon in pixels
244
+ </td>
245
+ </tr>
246
+ <tr className="border-b border-white/5 !bg-black/10">
247
+ <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
248
+ height
249
+ </td>
250
+ <td className="px-6 py-4 text-sm !text-white/70">
251
+ number | string
252
+ </td>
253
+ <td className="px-6 py-4 text-sm !text-white/50">16</td>
254
+ <td className="px-6 py-4 text-sm !text-white/70">
255
+ Height of the icon in pixels
256
+ </td>
257
+ </tr>
258
+ <tr className="!bg-black/10">
259
+ <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
260
+ className
261
+ </td>
262
+ <td className="px-6 py-4 text-sm !text-white/70">
263
+ string
264
+ </td>
265
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
266
+ <td className="px-6 py-4 text-sm !text-white/70">
267
+ CSS classes for styling
268
+ </td>
269
+ </tr>
270
+ </tbody>
271
+ </table>
272
+ </div>
273
+
274
+ {/* Accessibility */}
275
+ <div className="!space-y-8">
276
+ <h2 className="text-center text-3xl font-bold !text-white">
277
+ Accessibility Features
278
+ </h2>
279
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
280
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
281
+ <h3 className="text-lg font-semibold !text-green-300">
282
+ ✅ Built-in Features
283
+ </h3>
284
+ <ul className="!space-y-2 text-sm !text-white/70">
285
+ <li className="!text-white/70">
286
+ Uses Radix UI AccessibleIcon wrapper
287
+ </li>
288
+ <li className="!text-white/70">
289
+ Provides screen reader label "Spinner Solid icon"
290
+ </li>
291
+ <li className="!text-white/70">
292
+ Supports keyboard navigation when interactive
293
+ </li>
294
+ <li className="!text-white/70">
295
+ Maintains proper color contrast ratios
296
+ </li>
297
+ <li className="!text-white/70">
298
+ Scales with user's font size preferences
299
+ </li>
300
+ </ul>
301
+ </div>
302
+
303
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
304
+ <h3 className="text-lg font-semibold !text-red-300">
305
+ 💡 Best Practices
306
+ </h3>
307
+ <ul className="!space-y-2 text-sm text-white/70">
308
+ <li className="!text-white/70">
309
+ Always pair with descriptive text
310
+ </li>
311
+ <li className="!text-white/70">
312
+ Provide a text fallback for screen readers{" "}
313
+ </li>
314
+ <li className="!text-white/70">
315
+ Ensure sufficient color contrast
316
+ </li>
317
+ <li className="!text-white/70">
318
+ Respect reduced motion user preferences{" "}
319
+ </li>
320
+ <li className="!text-white/70">
321
+ Ensure spinner indicates real loading action{" "}
322
+ </li>
323
+ </ul>
324
+ </div>
325
+ </div>
326
+
327
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
328
+ <h3 className="mb-4 text-lg font-semibold !text-purple-300">
329
+ Custom Accessibility Label
330
+ </h3>
331
+ <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
332
+ <div className="rounded-lg bg-black/40 p-4">
333
+ <pre className="overflow-x-auto text-sm !text-blue-300">
334
+ {`// Custom implementation with specific label
335
+ import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
336
+
337
+ function CustomTrashIcon({ label = "Delete", ...props }) {
338
+ return (
339
+ <AccessibleIcon label={label}>
340
+ <TrashIcon {...props} />
341
+ </AccessibleIcon>
342
+ )
343
+ }
344
+
345
+ // Usage with specific context
346
+ <CustomTrashIcon
347
+ label="Delete user account"
348
+ className="h-4 w-4 text-red-400"
349
+ />`}
350
+ </pre>
351
+ </div>
352
+ <div className="!space-y-4">
353
+ <p className="text-sm !text-white/70">
354
+ For specific contexts, you can wrap the SpinnerSolid
355
+ with a custom AccessibleIcon component that provides
356
+ more descriptive labels.
357
+ </p>
358
+ <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
359
+ <div className="flex items-center gap-2 text-sm text-red-200">
360
+ <SpinnerSolidIcon className="h-4 w-4" />
361
+ <span>
362
+ This approach gives screen readers more context
363
+ </span>
364
+ </div>
365
+ </div>
366
+ </div>
367
+ </div>
368
+ </div>
369
+ </div>
370
+ {/* Related Icons */}
371
+ <div className="!space-y-8">
372
+ <h2 className="text-center text-3xl font-bold !text-white">
373
+ Related Icons
374
+ </h2>
375
+ <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
376
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
377
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-neutral-900">
378
+ <SpinnerGradientIcon className="size-8 animate-spin" />
379
+ </div>
380
+ <div>
381
+ <div className="font-medium text-white">
382
+ Spinner Gradient
383
+ </div>
384
+ <div className="text-xs text-white/60">
385
+ Solid Gradient loading spinner{" "}
386
+ </div>
387
+ </div>
388
+ </div>
389
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
390
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
391
+ <span className="!text-2xl !text-white">+</span>
392
+ </div>
393
+ <div>
394
+ <div className="font-medium text-white">AddIcon</div>
395
+ <div className="text-xs text-white/60">
396
+ Create operations
397
+ </div>
398
+ </div>
399
+ </div>
400
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
401
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
402
+ <span className="text-2xl">📁</span>
403
+ </div>
404
+ <div>
405
+ <div className="font-medium text-white">FolderIcon</div>
406
+ <div className="text-xs text-white/60">
407
+ File management
408
+ </div>
409
+ </div>
410
+ </div>
411
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
412
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
413
+ <span className="text-2xl">⚙️</span>
414
+ </div>
415
+ <div>
416
+ <div className="font-medium text-white">
417
+ SettingsIcon
418
+ </div>
419
+ <div className="text-xs text-white/60">
420
+ Configuration
421
+ </div>
422
+ </div>
423
+ </div>
424
+ </div>
425
+ </div>
426
+ {/* Footer */}
427
+ <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
428
+ <div className="!mx-auto max-w-7xl px-6 py-8">
429
+ <div className="!space-y-4 text-center">
430
+ <p className="!text-white/60">
431
+ Spinner Solid icons are part of the Aural UI icon
432
+ library, optimized for accessibility and responsiveness.
433
+ </p>
434
+ <p className="text-sm !text-white/40">
435
+ All icons use Radix UI's AccessibleIcon for screen
436
+ reader compatibility and follow WCAG guidelines.
437
+ </p>
438
+ </div>
439
+ </div>
440
+ </div>
441
+ </div>
442
+ </div>
443
+ </div>
444
+ </>
445
+ ),
446
+ },
447
+ },
448
+ tags: ["autodocs"],
449
+ }
450
+
451
+ export default meta
452
+ type Story = StoryObj<typeof SpinnerSolidIcon>
453
+
454
+ // Story parameters for consistent dark theme
455
+ const storyParameters = {
456
+ backgrounds: {
457
+ default: "dark",
458
+ values: [
459
+ { name: "dark", value: "#0a0a0a" },
460
+ { name: "darker", value: "#000000" },
461
+ ],
462
+ },
463
+ }
464
+
465
+ export const Default: Story = {
466
+ args: {
467
+ width: 24,
468
+ height: 24,
469
+ className: "text-blue-400",
470
+ },
471
+ parameters: storyParameters,
472
+ render: (args) => (
473
+ <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
474
+ <SpinnerSolidIcon {...args} className="animate-spin" />
475
+ </div>
476
+ ),
477
+ }
478
+
479
+ export const SizeVariations: Story = {
480
+ parameters: {
481
+ ...storyParameters,
482
+ docs: {
483
+ description: {
484
+ story:
485
+ "SpinnerSolidIcon in different sizes, from small UI elements to large loading states.",
486
+ },
487
+ },
488
+ },
489
+ render: () => (
490
+ <div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
491
+ <div className="text-center">
492
+ <SpinnerSolidIcon className="!mx-auto mb-2 h-3 w-3 animate-spin text-blue-400" />
493
+ <span className="text-xs text-white/60">12px</span>
494
+ </div>
495
+ <div className="text-center">
496
+ <SpinnerSolidIcon className="!mx-auto mb-2 h-4 w-4 animate-spin text-blue-400" />
497
+ <span className="text-xs text-white/60">16px</span>
498
+ </div>
499
+ <div className="text-center">
500
+ <SpinnerSolidIcon className="!mx-auto mb-2 h-5 w-5 animate-spin text-blue-400" />
501
+ <span className="text-xs text-white/60">20px</span>
502
+ </div>
503
+ <div className="text-center">
504
+ <SpinnerSolidIcon className="!mx-auto mb-2 h-6 w-6 animate-spin text-blue-400" />
505
+ <span className="text-xs text-white/60">24px</span>
506
+ </div>
507
+ <div className="text-center">
508
+ <SpinnerSolidIcon className="!mx-auto mb-2 h-8 w-8 animate-spin text-blue-400" />
509
+ <span className="text-xs text-white/60">32px</span>
510
+ </div>
511
+ <div className="text-center">
512
+ <SpinnerSolidIcon className="!mx-auto mb-2 h-12 w-12 animate-spin text-blue-400" />
513
+ <span className="text-xs text-white/60">48px</span>
514
+ </div>
515
+ </div>
516
+ ),
517
+ }
518
+
519
+ export const ColorVariations: Story = {
520
+ parameters: {
521
+ ...storyParameters,
522
+ docs: {
523
+ description: {
524
+ story:
525
+ "SpinnerSolidIcon in different colors for various contexts and states.",
526
+ },
527
+ },
528
+ },
529
+ render: () => (
530
+ <div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-4">
531
+ <div className="text-center">
532
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-blue-500/30 bg-blue-500/20">
533
+ <SpinnerSolidIcon className="h-8 w-8 animate-spin text-blue-400" />
534
+ </div>
535
+ <div className="text-sm font-medium text-white">Primary</div>
536
+ <div className="text-xs text-blue-400">text-blue-400</div>
537
+ </div>
538
+ <div className="text-center">
539
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20">
540
+ <SpinnerSolidIcon className="h-8 w-8 animate-spin text-purple-400" />
541
+ </div>
542
+ <div className="text-sm font-medium text-white">Secondary</div>
543
+ <div className="text-xs text-purple-400">text-purple-400</div>
544
+ </div>
545
+ <div className="text-center">
546
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-cyan-500/30 bg-cyan-500/20">
547
+ <SpinnerSolidIcon className="h-8 w-8 animate-spin text-cyan-400" />
548
+ </div>
549
+ <div className="text-sm font-medium text-white">Info</div>
550
+ <div className="text-xs text-cyan-400">text-cyan-400</div>
551
+ </div>
552
+ <div className="text-center">
553
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-gray-500/30 bg-gray-500/20">
554
+ <SpinnerSolidIcon className="h-8 w-8 animate-spin text-gray-400" />
555
+ </div>
556
+ <div className="text-sm font-medium text-white">Muted</div>
557
+ <div className="text-xs text-gray-400">text-gray-400</div>
558
+ </div>
559
+ </div>
560
+ ),
561
+ }
562
+
563
+ export const UsageExamples: Story = {
564
+ parameters: {
565
+ ...storyParameters,
566
+ docs: {
567
+ description: {
568
+ story:
569
+ "Real-world usage examples showing SpinnerSolidIcon in different UI contexts.",
570
+ },
571
+ },
572
+ },
573
+ render: () => (
574
+ <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
575
+ {/* Loading Button */}
576
+ <div className="!space-y-2">
577
+ <h3 className="text-sm font-medium text-white">Loading Button</h3>
578
+ <div className="flex gap-4">
579
+ <button className="flex items-center gap-2 rounded-lg border border-blue-500/30 bg-blue-500/20 px-4 py-2 text-blue-200 transition-colors hover:bg-blue-500/30">
580
+ <SpinnerSolidIcon className="h-4 w-4 animate-spin" />
581
+ Loading...
582
+ </button>
583
+ <button className="flex h-10 w-10 items-center justify-center rounded-lg border border-blue-500/30 bg-blue-500/20 text-blue-200 transition-colors hover:bg-blue-500/30">
584
+ <SpinnerSolidIcon className="h-5 w-5 animate-spin" />
585
+ </button>
586
+ </div>
587
+ </div>
588
+
589
+ {/* Loading State */}
590
+ <div className="!space-y-2">
591
+ <h3 className="text-sm font-medium text-white">Loading State</h3>
592
+ <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
593
+ <div className="text-center">
594
+ <SpinnerSolidIcon className="!mx-auto mb-4 h-12 w-12 animate-spin text-blue-400" />
595
+ <div className="text-sm text-white/60">Loading content...</div>
596
+ </div>
597
+ </div>
598
+ </div>
599
+
600
+ {/* Form Loading */}
601
+ <div className="!space-y-2">
602
+ <h3 className="text-sm font-medium text-white">Form Loading</h3>
603
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
604
+ <div className="mb-4">
605
+ <label className="mb-2 block text-sm text-white/60">Email</label>
606
+ <input
607
+ type="email"
608
+ className="w-full rounded-lg border border-white/20 bg-white/10 px-4 py-2 text-white placeholder-white/50"
609
+ placeholder="Enter your email"
610
+ />
611
+ </div>
612
+ <button className="flex w-full items-center justify-center gap-2 rounded-lg bg-blue-500/20 px-4 py-2 text-blue-200">
613
+ <SpinnerSolidIcon className="h-4 w-4 animate-spin" />
614
+ Submitting...
615
+ </button>
616
+ </div>
617
+ </div>
618
+ </div>
619
+ ),
620
+ }
621
+
622
+ export const Playground: Story = {
623
+ parameters: {
624
+ ...storyParameters,
625
+ docs: {
626
+ description: {
627
+ story:
628
+ "Interactive playground to experiment with different SpinnerSolidIcon configurations.",
629
+ },
630
+ },
631
+ },
632
+ args: {
633
+ width: 32,
634
+ height: 32,
635
+ className: "text-blue-400",
636
+ },
637
+ render: (args) => (
638
+ <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
639
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
640
+ <SpinnerSolidIcon {...args} className="animate-spin" />
641
+ </div>
642
+ </div>
643
+ ),
644
+ }