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,1029 @@
1
+ import React from "react"
2
+ import type { Meta, StoryObj } from "@storybook/react"
3
+
4
+ import { ChevronLeftIcon } from "."
5
+
6
+ const meta: Meta<typeof ChevronLeftIcon> = {
7
+ title: "Icons/ChevronLeftIcon",
8
+ component: ChevronLeftIcon,
9
+ parameters: {
10
+ layout: "fullscreen",
11
+ backgrounds: {
12
+ default: "dark",
13
+ values: [
14
+ { name: "dark", value: "#0a0a0a" },
15
+ { name: "darker", value: "#000000" },
16
+ { name: "light", value: "#ffffff" },
17
+ ],
18
+ },
19
+ docs: {
20
+ page: () => (
21
+ <>
22
+ {/* Override default docs styling */}
23
+ <style>
24
+ {`
25
+ .sbdocs-wrapper {
26
+ padding: 0 ;
27
+ max-width: none ;
28
+ background: transparent ;
29
+ }
30
+ .sbdocs-content {
31
+ max-width: none ;
32
+ padding: 0 ;
33
+ margin: 0 ;
34
+ background: transparent ;
35
+ }
36
+ .docs-story {
37
+ background: transparent ;
38
+ }
39
+ .sbdocs {
40
+ background: transparent ;
41
+ }
42
+ body {
43
+ background: #0a0a0a ;
44
+ }
45
+ #storybook-docs {
46
+ background: #0a0a0a ;
47
+ }
48
+ .sbdocs-preview {
49
+ background: transparent ;
50
+ border: none ;
51
+ }
52
+ .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
+ color: white ;
54
+ }
55
+ .sbdocs-p, .sbdocs-li {
56
+ color: rgba(255, 255, 255, 0.7) ;
57
+ }
58
+ .sbdocs-code {
59
+ background: rgba(255, 255, 255, 0.1) ;
60
+ color: rgba(168, 85, 247, 1) ;
61
+ border: 1px solid rgba(255, 255, 255, 0.1) ;
62
+ }
63
+ .sbdocs-pre {
64
+ background: rgba(0, 0, 0, 0.4) ;
65
+ border: 1px solid rgba(255, 255, 255, 0.1) ;
66
+ }
67
+ .sbdocs-table {
68
+ background: rgba(255, 255, 255, 0.05) ;
69
+ border: 1px solid rgba(255, 255, 255, 0.1) ;
70
+ }
71
+ .sbdocs-table th {
72
+ background: rgba(255, 255, 255, 0.05) ;
73
+ color: white ;
74
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
75
+ }
76
+ .sbdocs-table td {
77
+ color: rgba(255, 255, 255, 0.7) ;
78
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
79
+ }
80
+ `}
81
+ </style>
82
+
83
+ <div className="min-h-screen bg-gradient-to-br from-gray-900 via-purple-900/20 to-gray-900">
84
+ {/* Header */}
85
+ <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
86
+ <div className="absolute inset-0 bg-gradient-to-r from-purple-500/10 via-transparent to-pink-500/10" />
87
+ <div className="relative !mx-auto max-w-7xl px-6 py-16">
88
+ <div className="!space-y-6 text-center">
89
+ <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-purple-500/30 bg-gradient-to-br from-purple-500/20 to-pink-500/20">
90
+ <ChevronLeftIcon className="h-12 w-12 text-purple-400" />
91
+ </div>
92
+ <h1 className="!text-fm-primary text-5xl font-bold">
93
+ ChevronLeftIcon
94
+ </h1>
95
+ <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
96
+ A versatile chevron left icon for navigation, back buttons,
97
+ and leftward direction indicators. Built with accessibility
98
+ in mind using Radix UI's AccessibleIcon wrapper.
99
+ </p>
100
+
101
+ {/* Stats */}
102
+ <div className="flex items-center justify-center gap-8 pt-8">
103
+ <div className="text-center">
104
+ <div className="text-3xl font-bold text-purple-300">
105
+ Accessible
106
+ </div>
107
+ <div className="text-sm text-white/60">
108
+ Screen reader friendly
109
+ </div>
110
+ </div>
111
+ <div className="h-8 w-px bg-white/20" />
112
+ <div className="text-center">
113
+ <div className="text-3xl font-bold text-pink-300">
114
+ Scalable
115
+ </div>
116
+ <div className="text-sm text-white/60">
117
+ Any size needed
118
+ </div>
119
+ </div>
120
+ <div className="h-8 w-px bg-white/20" />
121
+ <div className="text-center">
122
+ <div className="text-3xl font-bold text-indigo-300">
123
+ Navigation
124
+ </div>
125
+ <div className="text-sm text-white/60">
126
+ Leftward movement
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ </div>
133
+
134
+ {/* Content */}
135
+ <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
136
+ {/* Quick Usage */}
137
+ <div className="!space-y-8">
138
+ <h2 className="text-center text-3xl font-bold !text-white">
139
+ Quick Start
140
+ </h2>
141
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
142
+ <div className="!space-y-4">
143
+ <h3 className="text-xl font-semibold !text-purple-300">
144
+ Basic Usage
145
+ </h3>
146
+ <div className="rounded-lg bg-black/40 p-4">
147
+ <pre className="overflow-x-auto text-sm !text-green-300">
148
+ {`import { ChevronLeftIcon } from "@icons/chevron-left-icon"
149
+
150
+ function BackButton() {
151
+ return (
152
+ <button className="flex items-center gap-2">
153
+ <ChevronLeftIcon className="h-4 w-4 text-purple-400 " />
154
+ <span>Go Back</span>
155
+ </button>
156
+ )
157
+ }`}
158
+ </pre>
159
+ </div>
160
+ </div>
161
+
162
+ <div className="!space-y-4">
163
+ <h3 className="text-xl font-semibold !text-purple-300">
164
+ Live Preview
165
+ </h3>
166
+ <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
167
+ <button className="flex items-center gap-3 rounded-lg border border-purple-500/20 bg-purple-500/10 px-4 py-2 transition-colors hover:bg-purple-500/20">
168
+ <ChevronLeftIcon className="h-4 w-4 text-purple-400" />
169
+ <span className="text-white">Go Back</span>
170
+ </button>
171
+ </div>
172
+ </div>
173
+ </div>
174
+ </div>
175
+
176
+ {/* Props Documentation */}
177
+ <div className="!space-y-8">
178
+ <h2 className="text-center text-3xl font-bold !text-white">
179
+ Props & Configuration
180
+ </h2>
181
+
182
+ <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
183
+ <div className="bg-white/5 p-4">
184
+ <h3 className="text-xl font-semibold !text-white">Props</h3>
185
+ </div>
186
+ <table className="!my-0 w-full">
187
+ <thead className="bg-white/5">
188
+ <tr className="border-b border-white/10">
189
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
190
+ Prop
191
+ </th>
192
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
193
+ Type
194
+ </th>
195
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
196
+ Default
197
+ </th>
198
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
199
+ Description
200
+ </th>
201
+ </tr>
202
+ </thead>
203
+ <tbody>
204
+ <tr className="border-b border-white/5">
205
+ <td className="px-6 py-4 font-mono text-sm !text-purple-300">
206
+ width
207
+ </td>
208
+ <td className="px-6 py-4 text-sm !text-white/70">
209
+ number | string
210
+ </td>
211
+ <td className="px-6 py-4 text-sm !text-white/50">24</td>
212
+ <td className="px-6 py-4 text-sm !text-white/70">
213
+ Width of the icon in pixels
214
+ </td>
215
+ </tr>
216
+ <tr className="border-b border-white/5 !bg-black/10">
217
+ <td className="px-6 py-4 font-mono text-sm !text-purple-300">
218
+ height
219
+ </td>
220
+ <td className="px-6 py-4 text-sm !text-white/70">
221
+ number | string
222
+ </td>
223
+ <td className="px-6 py-4 text-sm !text-white/50">24</td>
224
+ <td className="px-6 py-4 text-sm !text-white/70">
225
+ Height of the icon in pixels
226
+ </td>
227
+ </tr>
228
+ <tr className="border-b border-white/5">
229
+ <td className="px-6 py-4 font-mono text-sm !text-purple-300">
230
+ stroke
231
+ </td>
232
+ <td className="px-6 py-4 text-sm !text-white/70">
233
+ string
234
+ </td>
235
+ <td className="px-6 py-4 text-sm !text-white/50">
236
+ currentColor
237
+ </td>
238
+ <td className="px-6 py-4 text-sm !text-white/70">
239
+ Stroke color of the icon
240
+ </td>
241
+ </tr>
242
+ <tr className="border-b border-white/5 !bg-black/10">
243
+ <td className="px-6 py-4 font-mono text-sm !text-purple-300">
244
+ className
245
+ </td>
246
+ <td className="px-6 py-4 text-sm !text-white/70">
247
+ string
248
+ </td>
249
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
250
+ <td className="px-6 py-4 text-sm !text-white/70">
251
+ CSS classes for styling (use for overrides)
252
+ </td>
253
+ </tr>
254
+ <tr className="border-b border-white/5">
255
+ <td className="px-6 py-4 font-mono text-sm !text-purple-300">
256
+ strokeWidth
257
+ </td>
258
+ <td className="px-6 py-4 text-sm !text-white/70">
259
+ number | string
260
+ </td>
261
+ <td className="px-6 py-4 text-sm !text-white/50">
262
+ 1.5
263
+ </td>
264
+ <td className="px-6 py-4 text-sm !text-white/70">
265
+ Stroke width of the chevron line
266
+ </td>
267
+ </tr>
268
+ <tr className="!bg-black/10">
269
+ <td className="px-6 py-4 font-mono text-sm !text-purple-300">
270
+ ...svgProps
271
+ </td>
272
+ <td className="px-6 py-4 text-sm !text-white/70">
273
+ SVGProps
274
+ </td>
275
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
276
+ <td className="px-6 py-4 text-sm !text-white/70">
277
+ All standard SVG element props
278
+ </td>
279
+ </tr>
280
+ </tbody>
281
+ </table>
282
+ </div>
283
+ </div>
284
+
285
+ {/* Size Variations */}
286
+ <div className="!space-y-8">
287
+ <h2 className="text-center text-3xl font-bold !text-white">
288
+ Size Variations
289
+ </h2>
290
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
291
+ <div className="!space-y-6">
292
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
293
+ <div className="!space-y-4">
294
+ <h3 className="text-lg font-semibold !text-purple-300">
295
+ Standard Sizes
296
+ </h3>
297
+ <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
298
+ <div className="text-center">
299
+ <ChevronLeftIcon className="!mx-auto mb-2 h-3 w-3 text-purple-400" />
300
+ <span className="text-xs text-white/60">12px</span>
301
+ </div>
302
+ <div className="text-center">
303
+ <ChevronLeftIcon className="!mx-auto mb-2 h-4 w-4 text-purple-400" />
304
+ <span className="text-xs text-white/60">16px</span>
305
+ </div>
306
+ <div className="text-center">
307
+ <ChevronLeftIcon className="!mx-auto mb-2 h-5 w-5 text-purple-400" />
308
+ <span className="text-xs text-white/60">20px</span>
309
+ </div>
310
+ <div className="text-center">
311
+ <ChevronLeftIcon className="!mx-auto mb-2 h-6 w-6 text-purple-400" />
312
+ <span className="text-xs text-white/60">24px</span>
313
+ </div>
314
+ <div className="text-center">
315
+ <ChevronLeftIcon className="!mx-auto mb-2 h-8 w-8 text-purple-400" />
316
+ <span className="text-xs text-white/60">32px</span>
317
+ </div>
318
+ <div className="text-center">
319
+ <ChevronLeftIcon className="!mx-auto mb-2 h-12 w-12 text-purple-400" />
320
+ <span className="text-xs text-white/60">48px</span>
321
+ </div>
322
+ </div>
323
+ </div>
324
+
325
+ <div className="!space-y-4">
326
+ <h3 className="text-lg font-semibold !text-purple-300">
327
+ Code Example
328
+ </h3>
329
+ <div className="rounded-lg bg-black/40 p-4">
330
+ <pre className="overflow-x-auto text-sm !text-blue-300">
331
+ {`// Small (16px)
332
+ <ChevronLeftIcon className="h-4 w-4 " />
333
+
334
+ // Medium (24px)
335
+ <ChevronLeftIcon className="h-6 w-6 " />
336
+
337
+ // Large (32px)
338
+ <ChevronLeftIcon className="h-8 w-8 " />
339
+
340
+ // Custom size
341
+ <ChevronLeftIcon width={40} height={40} />`}
342
+ </pre>
343
+ </div>
344
+ </div>
345
+ </div>
346
+ </div>
347
+ </div>
348
+ </div>
349
+
350
+ {/* Color Variations */}
351
+ <div className="!space-y-8">
352
+ <h2 className="text-center text-3xl font-bold !text-white">
353
+ Color Variations
354
+ </h2>
355
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
356
+ <div className="!space-y-4">
357
+ <h3 className="text-lg font-semibold !text-purple-300">
358
+ Semantic Colors
359
+ </h3>
360
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
361
+ <div className="flex items-center gap-4">
362
+ <ChevronLeftIcon className="h-6 w-6 text-purple-400" />
363
+ <div>
364
+ <div className="text-sm font-medium text-white">
365
+ Primary
366
+ </div>
367
+ <div className="text-xs text-white/60">
368
+ text-purple-400
369
+ </div>
370
+ </div>
371
+ </div>
372
+ <div className="flex items-center gap-4">
373
+ <ChevronLeftIcon className="h-6 w-6 text-gray-400" />
374
+ <div>
375
+ <div className="text-sm font-medium text-white">
376
+ Secondary
377
+ </div>
378
+ <div className="text-xs text-white/60">
379
+ text-gray-400
380
+ </div>
381
+ </div>
382
+ </div>
383
+ <div className="flex items-center gap-4">
384
+ <ChevronLeftIcon className="h-6 w-6 text-pink-400" />
385
+ <div>
386
+ <div className="text-sm font-medium text-white">
387
+ Accent
388
+ </div>
389
+ <div className="text-xs text-white/60">
390
+ text-pink-400
391
+ </div>
392
+ </div>
393
+ </div>
394
+ <div className="flex items-center gap-4">
395
+ <ChevronLeftIcon className="h-6 w-6 text-white/40" />
396
+ <div>
397
+ <div className="text-sm font-medium text-white">
398
+ Disabled
399
+ </div>
400
+ <div className="text-xs text-white/60">
401
+ text-white/40
402
+ </div>
403
+ </div>
404
+ </div>
405
+ </div>
406
+ </div>
407
+
408
+ <div className="!space-y-4">
409
+ <h3 className="text-lg font-semibold !text-purple-300">
410
+ Custom Colors
411
+ </h3>
412
+ <div className="rounded-lg bg-black/40 p-4">
413
+ <pre className="overflow-x-auto text-sm !text-green-300">
414
+ {`// Using Tailwind classes with
415
+ <ChevronLeftIcon className="h-6 w-6 text-purple-400 " />
416
+ <ChevronLeftIcon className="h-6 w-6 text-pink-500 " />
417
+
418
+ // Using CSS custom properties
419
+ <ChevronLeftIcon
420
+ className="h-6 w-6 "
421
+ style={{ color: 'var(--color-primary)' }}
422
+ />
423
+
424
+ // Direct stroke prop
425
+ <ChevronLeftIcon
426
+ width={24}
427
+ height={24}
428
+ stroke="#8b5cf6"
429
+ />`}
430
+ </pre>
431
+ </div>
432
+ </div>
433
+ </div>
434
+ </div>
435
+
436
+ {/* Usage Examples */}
437
+ <div className="!space-y-8">
438
+ <h2 className="text-center text-3xl font-bold !text-white">
439
+ Usage Examples
440
+ </h2>
441
+
442
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
443
+ {/* Back Button */}
444
+ <div className="!space-y-4">
445
+ <h3 className="text-lg font-semibold !text-purple-300">
446
+ Back Button
447
+ </h3>
448
+ <div className="!space-y-4">
449
+ <div className="flex items-center gap-4">
450
+ <button className="flex items-center gap-2 rounded-lg border border-purple-500/30 bg-purple-500/10 px-4 py-2 text-purple-200 transition-colors hover:bg-purple-500/20">
451
+ <ChevronLeftIcon className="h-4 w-4" />
452
+ Back
453
+ </button>
454
+ <button className="flex items-center gap-2 rounded-lg border border-white/20 bg-white/5 px-4 py-2 text-white transition-colors hover:bg-white/10">
455
+ <ChevronLeftIcon className="h-4 w-4" />
456
+ Previous Page
457
+ </button>
458
+ </div>
459
+ <div className="rounded-lg bg-black/40 p-4">
460
+ <pre className="overflow-x-auto text-sm !text-green-300">
461
+ {`// Back button
462
+ <button className="flex items-center gap-2 bg-purple-500/10 border border-purple-500/30 px-4 py-2 rounded-lg">
463
+ <ChevronLeftIcon className="h-4 w-4 " />
464
+ Back
465
+ </button>
466
+
467
+ // Navigation button
468
+ <button className="flex items-center gap-2 bg-white/5 border border-white/20 px-4 py-2 rounded-lg">
469
+ <ChevronLeftIcon className="h-4 w-4 " />
470
+ Previous Page
471
+ </button>`}
472
+ </pre>
473
+ </div>
474
+ </div>
475
+ </div>
476
+
477
+ {/* Breadcrumb Navigation */}
478
+ <div className="!space-y-4">
479
+ <h3 className="text-lg font-semibold !text-purple-300">
480
+ Breadcrumb Navigation
481
+ </h3>
482
+ <div className="!space-y-4">
483
+ <nav className="flex items-center gap-2 text-sm">
484
+ <button className="flex items-center gap-1 text-purple-400 hover:text-purple-300">
485
+ <ChevronLeftIcon className="h-3 w-3" />
486
+ <span>Dashboard</span>
487
+ </button>
488
+ <span className="text-white/40">/</span>
489
+ <button className="flex items-center gap-1 text-purple-400 hover:text-purple-300">
490
+ <ChevronLeftIcon className="h-3 w-3" />
491
+ <span>Projects</span>
492
+ </button>
493
+ <span className="text-white/40">/</span>
494
+ <span className="text-white">Current Page</span>
495
+ </nav>
496
+ <div className="rounded-lg bg-black/40 p-4">
497
+ <pre className="overflow-x-auto text-sm !text-green-300">
498
+ {`// Breadcrumb with back navigation
499
+ <nav className="flex items-center gap-2 text-sm">
500
+ <button className="flex items-center gap-1 text-purple-400 hover:text-purple-300">
501
+ <ChevronLeftIcon className="h-3 w-3 " />
502
+ <span>Dashboard</span>
503
+ </button>
504
+ <span className="text-white/40">/</span>
505
+ <button className="flex items-center gap-1 text-purple-400 hover:text-purple-300">
506
+ <ChevronLeftIcon className="h-3 w-3 " />
507
+ <span>Projects</span>
508
+ </button>
509
+ <span className="text-white/40">/</span>
510
+ <span className="text-white">Current Page</span>
511
+ </nav>`}
512
+ </pre>
513
+ </div>
514
+ </div>
515
+ </div>
516
+
517
+ {/* Pagination */}
518
+ <div className="!space-y-4">
519
+ <h3 className="text-lg font-semibold !text-purple-300">
520
+ Pagination Controls
521
+ </h3>
522
+ <div className="!space-y-4">
523
+ <div className="flex items-center gap-2">
524
+ <button className="flex items-center justify-center rounded-lg border border-white/20 bg-white/5 p-2 text-white hover:bg-white/10">
525
+ <ChevronLeftIcon className="h-4 w-4" />
526
+ </button>
527
+ <div className="flex items-center gap-1">
528
+ <button className="rounded-lg border border-purple-500/30 bg-purple-500/20 px-3 py-1 text-purple-200">
529
+ 1
530
+ </button>
531
+ <button className="rounded-lg px-3 py-1 text-white/60 hover:bg-white/10">
532
+ 2
533
+ </button>
534
+ <button className="rounded-lg px-3 py-1 text-white/60 hover:bg-white/10">
535
+ 3
536
+ </button>
537
+ </div>
538
+ <button className="flex items-center justify-center rounded-lg border border-white/20 bg-white/5 p-2 text-white hover:bg-white/10">
539
+ <ChevronLeftIcon className="h-4 w-4 rotate-180" />
540
+ </button>
541
+ </div>
542
+ <div className="rounded-lg bg-black/40 p-4">
543
+ <pre className="overflow-x-auto text-sm !text-green-300">
544
+ {`// Previous button
545
+ <button className="flex items-center justify-center bg-white/5 border border-white/20 p-2 rounded-lg">
546
+ <ChevronLeftIcon className="h-4 w-4 " />
547
+ </button>
548
+
549
+ // Next button (rotated left icon)
550
+ <button className="flex items-center justify-center bg-white/5 border border-white/20 p-2 rounded-lg">
551
+ <ChevronLeftIcon className="h-4 w-4 rotate-180 " />
552
+ </button>`}
553
+ </pre>
554
+ </div>
555
+ </div>
556
+ </div>
557
+
558
+ {/* Sidebar Toggle */}
559
+ <div className="!space-y-4">
560
+ <h3 className="text-lg font-semibold !text-purple-300">
561
+ Sidebar Toggle
562
+ </h3>
563
+ <div className="!space-y-4">
564
+ <div className="flex items-center gap-4">
565
+ <div className="relative">
566
+ <div className="h-24 w-64 rounded-lg border border-white/10 bg-white/5 p-4">
567
+ <div className="mb-2 flex items-center justify-between">
568
+ <span className="text-sm font-medium text-white">
569
+ Sidebar
570
+ </span>
571
+ <button className="rounded p-1 text-purple-400 hover:bg-white/10">
572
+ <ChevronLeftIcon className="h-4 w-4" />
573
+ </button>
574
+ </div>
575
+ <div className="!space-y-1">
576
+ <div className="h-2 w-20 rounded bg-white/10"></div>
577
+ <div className="h-2 w-16 rounded bg-white/10"></div>
578
+ </div>
579
+ </div>
580
+ </div>
581
+ <div className="h-24 w-32 rounded-lg border border-white/10 bg-white/5 p-4">
582
+ <button className="rounded p-1 text-purple-400 hover:bg-white/10">
583
+ <ChevronLeftIcon className="h-4 w-4 rotate-180" />
584
+ </button>
585
+ </div>
586
+ </div>
587
+ <div className="rounded-lg bg-black/40 p-4">
588
+ <pre className="overflow-x-auto text-sm !text-green-300">
589
+ {`// Collapse sidebar
590
+ <button className="rounded p-1 text-purple-400 hover:bg-white/10">
591
+ <ChevronLeftIcon className="h-4 w-4 " />
592
+ </button>
593
+
594
+ // Expand sidebar (rotated)
595
+ <button className="rounded p-1 text-purple-400 hover:bg-white/10">
596
+ <ChevronLeftIcon className="h-4 w-4 rotate-180 " />
597
+ </button>`}
598
+ </pre>
599
+ </div>
600
+ </div>
601
+ </div>
602
+ </div>
603
+ </div>
604
+
605
+ {/* Accessibility */}
606
+ <div className="!space-y-8">
607
+ <h2 className="text-center text-3xl font-bold !text-white">
608
+ Accessibility Features
609
+ </h2>
610
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
611
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
612
+ <h3 className="text-lg font-semibold !text-green-300">
613
+ ✅ Built-in Features
614
+ </h3>
615
+ <ul className="!space-y-2 text-sm !text-white/70">
616
+ <li className="!text-white/70">
617
+ Uses Radix UI AccessibleIcon wrapper
618
+ </li>
619
+ <li className="!text-white/70">
620
+ Provides screen reader label "Chevron Left icon"
621
+ </li>
622
+ <li className="!text-white/70">
623
+ Supports keyboard navigation when interactive
624
+ </li>
625
+ <li className="!text-white/70">
626
+ Maintains proper color contrast ratios
627
+ </li>
628
+ <li className="!text-white/70">
629
+ Scales with user's font size preferences
630
+ </li>
631
+ </ul>
632
+ </div>
633
+
634
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
635
+ <h3 className="text-lg font-semibold !text-purple-300">
636
+ 💡 Best Practices
637
+ </h3>
638
+ <ul className="!space-y-2 text-sm text-white/70">
639
+ <li className="!text-white/70">
640
+ Use descriptive aria-labels for navigation buttons
641
+ </li>
642
+ <li className="!text-white/70">
643
+ Provide keyboard shortcuts for common actions
644
+ </li>
645
+ <li className="!text-white/70">
646
+ Ensure sufficient touch target size (44px minimum)
647
+ </li>
648
+ <li className="!text-white/70">
649
+ Add focus states for interactive elements
650
+ </li>
651
+ <li className="!text-white/70">
652
+ Consider disabled states when navigation unavailable
653
+ </li>
654
+ </ul>
655
+ </div>
656
+ </div>
657
+
658
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
659
+ <h3 className="mb-4 text-lg font-semibold !text-purple-300">
660
+ Proper ARIA Implementation
661
+ </h3>
662
+ <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
663
+ <div className="rounded-lg bg-black/40 p-4">
664
+ <pre className="overflow-x-auto text-sm !text-blue-300">
665
+ {`// Navigation button with proper ARIA
666
+ <button
667
+ aria-label="Go back to previous page"
668
+ className="flex items-center gap-2"
669
+ >
670
+ <ChevronLeftIcon className="h-4 w-4 " />
671
+ Back
672
+ </button>
673
+
674
+ // Pagination with context
675
+ <button
676
+ aria-label="Go to previous page"
677
+ disabled={currentPage === 1}
678
+ >
679
+ <ChevronLeftIcon className="h-4 w-4 " />
680
+ </button>
681
+
682
+ // Sidebar toggle with state
683
+ <button
684
+ aria-label={sidebarOpen ? "Collapse sidebar" : "Expand sidebar"}
685
+ aria-expanded={sidebarOpen}
686
+ >
687
+ <ChevronLeftIcon
688
+ className={cn(
689
+ "h-4 w-4 transition-transform ",
690
+ !sidebarOpen && "rotate-180"
691
+ )}
692
+ />
693
+ </button>`}
694
+ </pre>
695
+ </div>
696
+ <div className="!space-y-4">
697
+ <p className="text-sm !text-white/70">
698
+ Always provide context-appropriate ARIA labels for
699
+ navigation elements. The chevron direction should match
700
+ the action being performed.
701
+ </p>
702
+ <div className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-4">
703
+ <div className="flex items-center gap-2 text-sm text-purple-200">
704
+ <ChevronLeftIcon className="h-4 w-4" />
705
+ <span>
706
+ Consider the user's mental model of navigation
707
+ </span>
708
+ </div>
709
+ </div>
710
+ </div>
711
+ </div>
712
+ </div>
713
+ </div>
714
+
715
+ {/* Related Icons */}
716
+ <div className="!space-y-8">
717
+ <h2 className="text-center text-3xl font-bold !text-white">
718
+ Related Icons
719
+ </h2>
720
+ <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
721
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
722
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
723
+ <span className="!text-2xl !text-white">→</span>
724
+ </div>
725
+ <div>
726
+ <div className="font-medium text-white">
727
+ ChevronRightIcon
728
+ </div>
729
+ <div className="text-xs text-white/60">
730
+ Right direction
731
+ </div>
732
+ </div>
733
+ </div>
734
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
735
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-pink-500/20">
736
+ <span className="!text-2xl !text-white">↑</span>
737
+ </div>
738
+ <div>
739
+ <div className="font-medium text-white">
740
+ ChevronUpIcon
741
+ </div>
742
+ <div className="text-xs text-white/60">
743
+ Upward direction
744
+ </div>
745
+ </div>
746
+ </div>
747
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
748
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-indigo-500/20">
749
+ <span className="!text-2xl !text-white">↓</span>
750
+ </div>
751
+ <div>
752
+ <div className="font-medium text-white">
753
+ ChevronDownIcon
754
+ </div>
755
+ <div className="text-xs text-white/60">
756
+ Downward direction
757
+ </div>
758
+ </div>
759
+ </div>
760
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
761
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-cyan-500/20">
762
+ <span className="!text-2xl !text-white">←</span>
763
+ </div>
764
+ <div>
765
+ <div className="font-medium text-white">
766
+ ArrowLeftIcon
767
+ </div>
768
+ <div className="text-xs text-white/60">Arrow variant</div>
769
+ </div>
770
+ </div>
771
+ </div>
772
+ </div>
773
+ </div>
774
+
775
+ {/* Footer */}
776
+ <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
777
+ <div className="!mx-auto max-w-7xl px-6 py-8">
778
+ <div className="!space-y-4 text-center">
779
+ <p className="!text-white/60">
780
+ ChevronLeftIcon is part of the Aural UI icon library, built
781
+ with accessibility and intuitive navigation in mind.
782
+ </p>
783
+ <p className="text-sm !text-white/40">
784
+ All icons use Radix UI's AccessibleIcon for screen reader
785
+ compatibility and follow WCAG guidelines.
786
+ </p>
787
+ </div>
788
+ </div>
789
+ </div>
790
+ </div>
791
+ </>
792
+ ),
793
+ },
794
+ },
795
+ tags: ["autodocs"],
796
+ argTypes: {
797
+ width: {
798
+ control: { type: "range", min: 8, max: 96, step: 2 },
799
+ description: "Width of the icon in pixels",
800
+ },
801
+ height: {
802
+ control: { type: "range", min: 8, max: 96, step: 2 },
803
+ description: "Height of the icon in pixels",
804
+ },
805
+ stroke: {
806
+ control: "color",
807
+ description: "Stroke color of the icon",
808
+ },
809
+ strokeWidth: {
810
+ control: { type: "range", min: 0.5, max: 3, step: 0.1 },
811
+ description: "Stroke width of the chevron line",
812
+ },
813
+ className: {
814
+ control: "text",
815
+ description: "CSS classes for styling (use for overrides)",
816
+ },
817
+ },
818
+ }
819
+
820
+ export default meta
821
+ type Story = StoryObj<typeof ChevronLeftIcon>
822
+
823
+ // Story parameters for consistent dark theme
824
+ const storyParameters = {
825
+ backgrounds: {
826
+ default: "dark",
827
+ values: [
828
+ { name: "dark", value: "#0a0a0a" },
829
+ { name: "darker", value: "#000000" },
830
+ ],
831
+ },
832
+ }
833
+
834
+ export const Default: Story = {
835
+ args: {
836
+ width: 24,
837
+ height: 24,
838
+ className: "text-purple-400 ",
839
+ },
840
+ parameters: storyParameters,
841
+ render: (args) => (
842
+ <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
843
+ <ChevronLeftIcon {...args} />
844
+ </div>
845
+ ),
846
+ }
847
+
848
+ export const SizeVariations: Story = {
849
+ parameters: {
850
+ ...storyParameters,
851
+ docs: {
852
+ description: {
853
+ story:
854
+ "ChevronLeftIcon in different sizes, from small UI elements to large displays.",
855
+ },
856
+ },
857
+ },
858
+ render: () => (
859
+ <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">
860
+ <div className="text-center">
861
+ <ChevronLeftIcon className="!mx-auto mb-2 h-3 w-3 text-purple-400" />
862
+ <span className="text-xs text-white/60">12px</span>
863
+ </div>
864
+ <div className="text-center">
865
+ <ChevronLeftIcon className="!mx-auto mb-2 h-4 w-4 text-purple-400" />
866
+ <span className="text-xs text-white/60">16px</span>
867
+ </div>
868
+ <div className="text-center">
869
+ <ChevronLeftIcon className="!mx-auto mb-2 h-5 w-5 text-purple-400" />
870
+ <span className="text-xs text-white/60">20px</span>
871
+ </div>
872
+ <div className="text-center">
873
+ <ChevronLeftIcon className="!mx-auto mb-2 h-6 w-6 text-purple-400" />
874
+ <span className="text-xs text-white/60">24px</span>
875
+ </div>
876
+ <div className="text-center">
877
+ <ChevronLeftIcon className="!mx-auto mb-2 h-8 w-8 text-purple-400" />
878
+ <span className="text-xs text-white/60">32px</span>
879
+ </div>
880
+ <div className="text-center">
881
+ <ChevronLeftIcon className="!mx-auto mb-2 h-12 w-12 text-purple-400" />
882
+ <span className="text-xs text-white/60">48px</span>
883
+ </div>
884
+ </div>
885
+ ),
886
+ }
887
+
888
+ export const ColorVariations: Story = {
889
+ parameters: {
890
+ ...storyParameters,
891
+ docs: {
892
+ description: {
893
+ story:
894
+ "ChevronLeftIcon in different semantic colors for various navigation contexts.",
895
+ },
896
+ },
897
+ },
898
+ render: () => (
899
+ <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">
900
+ <div className="text-center">
901
+ <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">
902
+ <ChevronLeftIcon className="h-8 w-8 text-purple-400" />
903
+ </div>
904
+ <div className="text-sm font-medium text-white">Primary</div>
905
+ <div className="text-xs text-purple-400">text-purple-400</div>
906
+ </div>
907
+ <div className="text-center">
908
+ <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">
909
+ <ChevronLeftIcon className="h-8 w-8 text-gray-400" />
910
+ </div>
911
+ <div className="text-sm font-medium text-white">Secondary</div>
912
+ <div className="text-xs text-gray-400">text-gray-400</div>
913
+ </div>
914
+ <div className="text-center">
915
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-pink-500/30 bg-pink-500/20">
916
+ <ChevronLeftIcon className="h-8 w-8 text-pink-400" />
917
+ </div>
918
+ <div className="text-sm font-medium text-white">Accent</div>
919
+ <div className="text-xs text-pink-400">text-pink-400</div>
920
+ </div>
921
+ <div className="text-center">
922
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/10 bg-white/5">
923
+ <ChevronLeftIcon className="h-8 w-8 text-white/40" />
924
+ </div>
925
+ <div className="text-sm font-medium text-white">Disabled</div>
926
+ <div className="text-xs text-white/40">text-white/40</div>
927
+ </div>
928
+ </div>
929
+ ),
930
+ }
931
+
932
+ export const UsageExamples: Story = {
933
+ parameters: {
934
+ ...storyParameters,
935
+ docs: {
936
+ description: {
937
+ story:
938
+ "Real-world usage examples showing ChevronLeftIcon in different navigation contexts.",
939
+ },
940
+ },
941
+ },
942
+ render: () => (
943
+ <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
944
+ {/* Back Button */}
945
+ <div className="!space-y-2">
946
+ <h3 className="text-sm font-medium text-white">Back Button</h3>
947
+ <div className="flex items-center gap-4">
948
+ <button className="flex items-center gap-2 rounded-lg border border-purple-500/30 bg-purple-500/10 px-4 py-2 text-purple-200 transition-colors hover:bg-purple-500/20">
949
+ <ChevronLeftIcon className="h-4 w-4" />
950
+ Back
951
+ </button>
952
+ <button className="flex items-center gap-2 rounded-lg border border-white/20 bg-white/5 px-4 py-2 text-white transition-colors hover:bg-white/10">
953
+ <ChevronLeftIcon className="h-4 w-4" />
954
+ Previous Page
955
+ </button>
956
+ </div>
957
+ </div>
958
+
959
+ {/* Pagination */}
960
+ <div className="!space-y-2">
961
+ <h3 className="text-sm font-medium text-white">Pagination Controls</h3>
962
+ <div className="flex items-center gap-2">
963
+ <button className="flex items-center justify-center rounded-lg border border-white/20 bg-white/5 p-2 text-white hover:bg-white/10">
964
+ <ChevronLeftIcon className="h-4 w-4" />
965
+ </button>
966
+ <div className="flex items-center gap-1">
967
+ <button className="rounded-lg border border-purple-500/30 bg-purple-500/20 px-3 py-1 text-purple-200">
968
+ 1
969
+ </button>
970
+ <button className="rounded-lg px-3 py-1 text-white/60 hover:bg-white/10">
971
+ 2
972
+ </button>
973
+ <button className="rounded-lg px-3 py-1 text-white/60 hover:bg-white/10">
974
+ 3
975
+ </button>
976
+ </div>
977
+ <button className="flex items-center justify-center rounded-lg border border-white/20 bg-white/5 p-2 text-white hover:bg-white/10">
978
+ <ChevronLeftIcon className="h-4 w-4 rotate-180" />
979
+ </button>
980
+ </div>
981
+ </div>
982
+
983
+ {/* Breadcrumb */}
984
+ <div className="!space-y-2">
985
+ <h3 className="text-sm font-medium text-white">
986
+ Breadcrumb Navigation
987
+ </h3>
988
+ <nav className="flex items-center gap-2 text-sm">
989
+ <button className="flex items-center gap-1 text-purple-400 hover:text-purple-300">
990
+ <ChevronLeftIcon className="h-3 w-3" />
991
+ <span>Dashboard</span>
992
+ </button>
993
+ <span className="text-white/40">/</span>
994
+ <button className="flex items-center gap-1 text-purple-400 hover:text-purple-300">
995
+ <ChevronLeftIcon className="h-3 w-3" />
996
+ <span>Projects</span>
997
+ </button>
998
+ <span className="text-white/40">/</span>
999
+ <span className="text-white">Current Page</span>
1000
+ </nav>
1001
+ </div>
1002
+ </div>
1003
+ ),
1004
+ }
1005
+
1006
+ export const Playground: Story = {
1007
+ parameters: {
1008
+ ...storyParameters,
1009
+ docs: {
1010
+ description: {
1011
+ story:
1012
+ "Interactive playground to experiment with different ChevronLeftIcon configurations.",
1013
+ },
1014
+ },
1015
+ },
1016
+ args: {
1017
+ width: 32,
1018
+ height: 32,
1019
+ className: "text-purple-400 ",
1020
+ strokeWidth: 1.5,
1021
+ },
1022
+ render: (args) => (
1023
+ <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1024
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1025
+ <ChevronLeftIcon {...args} />
1026
+ </div>
1027
+ </div>
1028
+ ),
1029
+ }