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,304 @@
1
+ import * as React from "react"
2
+ import { cn } from "@lib/utils"
3
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip"
4
+ import { cva } from "class-variance-authority"
5
+
6
+ const tooltipVariants = cva(
7
+ "z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-fm-s text-balance popover-content min-h-11 p-3 [font-size:var(--text-fm-sm)] leading-fm-sm font-fm-text flex items-center gap-2",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ dark: "bg-fm-surface-secondary text-fm-primary",
12
+ light: "bg-fm-primary text-fm-contrast",
13
+ },
14
+ side: {
15
+ top: "",
16
+ right: "",
17
+ bottom: "",
18
+ left: "",
19
+ },
20
+ align: {
21
+ start: "",
22
+ center: "",
23
+ end: "",
24
+ },
25
+ },
26
+ compoundVariants: [
27
+ {
28
+ variant: "dark",
29
+ side: "top",
30
+ align: "center",
31
+ className:
32
+ "bg-[radial-gradient(70.39%_86.36%_at_50%_97.73%,var(--color-fm-secondary-200)_0%,rgba(29,29,29,0.02)_100%)]",
33
+ },
34
+ {
35
+ variant: "dark",
36
+ side: "top",
37
+ align: "start",
38
+ className:
39
+ "bg-[radial-gradient(139.94%_91.41%_at_24.52%_100%,var(--color-fm-secondary-200)_0%,rgba(29,29,29,0.02)_100%)]",
40
+ },
41
+ {
42
+ variant: "dark",
43
+ side: "top",
44
+ align: "end",
45
+ className:
46
+ "bg-[radial-gradient(144.29%_88.59%_at_76.44%_98.86%,var(--color-fm-secondary-200)_0%,rgba(29,29,29,0.02)_100%)]",
47
+ },
48
+ {
49
+ variant: "dark",
50
+ side: "right",
51
+ className:
52
+ "bg-[radial-gradient(227.67%_50%_at_0%_50%,var(--color-fm-secondary-200)_0%,rgba(29,29,29,0.02)_100%)]",
53
+ },
54
+ {
55
+ variant: "dark",
56
+ side: "left",
57
+ className:
58
+ "bg-[radial-gradient(214.53%_47.12%_at_97.12%_50%,var(--color-fm-secondary-200)_0%,rgba(29,29,29,0.02)_100%)]",
59
+ },
60
+ {
61
+ variant: "dark",
62
+ side: "bottom",
63
+ align: "center",
64
+ className:
65
+ "bg-[radial-gradient(65.76%_80.68%_at_50.21%_3.41%,var(--color-fm-secondary-200)_0%,rgba(29,29,29,0.02)_100%)]",
66
+ },
67
+ {
68
+ variant: "dark",
69
+ side: "bottom",
70
+ align: "start",
71
+ className:
72
+ "bg-[radial-gradient(133.68%_87.79%_at_25%_0%,var(--color-fm-secondary-200)_0%,rgba(29,29,29,0.02)_100%)]",
73
+ },
74
+ {
75
+ variant: "dark",
76
+ side: "bottom",
77
+ align: "end",
78
+ className:
79
+ "bg-[radial-gradient(130.2%_87.53%_at_74.52%_0%,var(--color-fm-secondary-200)_0%,rgba(29,29,29,0.02)_100%)]",
80
+ },
81
+ // Light variants
82
+ {
83
+ variant: "light",
84
+ side: "top",
85
+ align: "center",
86
+ className:
87
+ "bg-[radial-gradient(81.99%_100%_at_50%_100%,var(--color-fm-secondary-800)_0%,rgba(255,255,255,0.02)_100%)]",
88
+ },
89
+ {
90
+ variant: "light",
91
+ side: "top",
92
+ align: "start",
93
+ className:
94
+ "bg-[linear-gradient(253deg,rgba(255,255,255,0.00)_35.74%,rgba(197,138,255,0.40)_76.76%),radial-gradient(153.27%_103.56%_at_23.08%_100%,var(--color-fm-secondary-800)_0%,rgba(255,255,255,0.02)_100%)]",
95
+ },
96
+ {
97
+ variant: "light",
98
+ side: "top",
99
+ align: "end",
100
+ className:
101
+ "bg-[linear-gradient(105deg,rgba(255,255,255,0.00)_30.68%,rgba(197,138,255,0.40)_75.77%),radial-gradient(141.12%_102.46%_at_76.44%_100%,var(--color-fm-secondary-800)_0%,rgba(255,255,255,0.02)_100%)]",
102
+ },
103
+ {
104
+ variant: "light",
105
+ side: "right",
106
+ className:
107
+ "bg-[radial-gradient(339.53%_74.52%_at_2.88%_50%,var(--color-fm-secondary-800)_0%,rgba(255,255,255,0.02)_100%)]",
108
+ },
109
+ {
110
+ variant: "light",
111
+ side: "left",
112
+ className:
113
+ "bg-[radial-gradient(330.77%_72.6%_at_95.19%_50%,var(--color-fm-secondary-800)_0%,rgba(255,255,255,0.02)_100%)]",
114
+ },
115
+ {
116
+ variant: "light",
117
+ side: "bottom",
118
+ align: "center",
119
+ className:
120
+ "bg-[radial-gradient(79.28%_96.59%_at_50.21%_3.41%,var(--color-fm-secondary-800)_0%,rgba(255,255,255,0.02)_100%)]",
121
+ },
122
+ {
123
+ variant: "light",
124
+ side: "bottom",
125
+ align: "start",
126
+ className:
127
+ "bg-[linear-gradient(285deg,rgba(255,255,255,0.00)_32.13%,rgba(197,138,255,0.40)_74.24%),radial-gradient(133.78%_103.03%_at_25%_0%,var(--color-fm-secondary-800)_0%,rgba(255,255,255,0.02)_100%)]",
128
+ },
129
+ {
130
+ variant: "light",
131
+ side: "bottom",
132
+ align: "end",
133
+ className:
134
+ "bg-[linear-gradient(75deg,rgba(255,255,255,0.00)_29.62%,rgba(197,138,255,0.40)_75.3%),radial-gradient(150.37%_103.37%_at_75.96%_0%,var(--color-fm-secondary-800)_0%,rgba(255,255,255,0.02)_100%)]",
135
+ },
136
+ ],
137
+ defaultVariants: {
138
+ variant: "dark",
139
+ side: "top",
140
+ align: "center",
141
+ },
142
+ }
143
+ )
144
+
145
+ function DarkArrow(props: React.ComponentProps<typeof TooltipPrimitive.Arrow>) {
146
+ return (
147
+ <svg
148
+ xmlns="http://www.w3.org/2000/svg"
149
+ width="18"
150
+ height="9"
151
+ viewBox="0 0 18 9"
152
+ fill="none"
153
+ {...props}
154
+ >
155
+ <path d="M9 9L18 0H9H0L9 9Z" fill="var(--color-fm-neutral-100)" />
156
+ <path d="M9 9L18 0H9H0L9 9Z" fill="var(--color-fm-secondary-200)" />
157
+ <path
158
+ d="M1.20703 0.5H16.793L9 8.29297L1.20703 0.5Z"
159
+ stroke="var(--color-fm-neutral-1100)"
160
+ strokeOpacity="0.04"
161
+ />
162
+ <path
163
+ d="M9.00117 7.5L16.6172 0H1.3668L9.00117 7.5Z"
164
+ fill="url(#paint0_linear_2648_50933)"
165
+ />
166
+ <defs>
167
+ <linearGradient
168
+ id="paint0_linear_2648_50933"
169
+ x1="1.5"
170
+ y1="0.5"
171
+ x2="16.5"
172
+ y2="0.5"
173
+ gradientUnits="userSpaceOnUse"
174
+ >
175
+ <stop stop-color="#350565" />
176
+ <stop offset="0.502442" stopColor="var(--color-fm-secondary-200)" />
177
+ <stop offset="1" stopColor="#350663" />
178
+ </linearGradient>
179
+ </defs>
180
+ </svg>
181
+ )
182
+ }
183
+
184
+ function LightArrow(
185
+ props: React.ComponentProps<typeof TooltipPrimitive.Arrow>
186
+ ) {
187
+ return (
188
+ <svg
189
+ xmlns="http://www.w3.org/2000/svg"
190
+ width="18"
191
+ height="9"
192
+ viewBox="0 0 18 9"
193
+ fill="none"
194
+ {...props}
195
+ >
196
+ <path d="M9 9L18 0H9H0L9 9Z" fill="var(--color-fm-secondary-800)" />
197
+ <path
198
+ d="M1.20703 0.5H16.793L9 8.29297L1.20703 0.5Z"
199
+ stroke="var(--color-fm-neutral-50)"
200
+ strokeOpacity="0.02"
201
+ />
202
+ <path
203
+ d="M9.00117 7.5L16.6172 0H1.3668L9.00117 7.5Z"
204
+ fill="url(#paint0_linear_2648_52230)"
205
+ />
206
+ <defs>
207
+ <linearGradient
208
+ id="paint0_linear_2648_52230"
209
+ x1="2"
210
+ y1="0.5"
211
+ x2="16"
212
+ y2="0.5"
213
+ gradientUnits="userSpaceOnUse"
214
+ >
215
+ <stop stopColor="#C992FF" />
216
+ <stop offset="0.499825" stopColor="var(--color-fm-secondary-800)" />
217
+ <stop offset="1" stopColor="#CE9CFF" />
218
+ </linearGradient>
219
+ </defs>
220
+ </svg>
221
+ )
222
+ }
223
+
224
+ function TooltipProvider({
225
+ delayDuration = 0,
226
+ ...props
227
+ }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {
228
+ return (
229
+ <TooltipPrimitive.Provider
230
+ data-slot="tooltip-provider"
231
+ delayDuration={delayDuration}
232
+ {...props}
233
+ />
234
+ )
235
+ }
236
+
237
+ const TooltipContext = React.createContext<{
238
+ variant: "dark" | "light"
239
+ }>({
240
+ variant: "dark",
241
+ })
242
+
243
+ interface ToolTipProps
244
+ extends React.ComponentProps<typeof TooltipPrimitive.Root> {
245
+ variant?: "dark" | "light"
246
+ }
247
+
248
+ const useTooltipContext = () => {
249
+ const context = React.useContext(TooltipContext)
250
+ if (!context) {
251
+ throw new Error("Tooltip components must be used within a TooltipProvider")
252
+ }
253
+ return context
254
+ }
255
+
256
+ function Tooltip({ variant = "dark", ...props }: ToolTipProps) {
257
+ return (
258
+ <TooltipContext.Provider value={{ variant }}>
259
+ <TooltipProvider>
260
+ <TooltipPrimitive.Root data-slot="tooltip" {...props} />
261
+ </TooltipProvider>
262
+ </TooltipContext.Provider>
263
+ )
264
+ }
265
+
266
+ function TooltipTrigger({
267
+ ...props
268
+ }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {
269
+ return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />
270
+ }
271
+
272
+ function TooltipContent({
273
+ className,
274
+ sideOffset = 0,
275
+ side,
276
+ align,
277
+ children,
278
+ ...props
279
+ }: React.ComponentProps<typeof TooltipPrimitive.Content>) {
280
+ const { variant } = useTooltipContext()
281
+ return (
282
+ <TooltipPrimitive.Portal>
283
+ <TooltipPrimitive.Content
284
+ data-slot="tooltip-content"
285
+ sideOffset={sideOffset}
286
+ side={side}
287
+ align={align}
288
+ className={cn(tooltipVariants({ variant, side, align }), className)}
289
+ {...props}
290
+ >
291
+ {children}
292
+ <TooltipPrimitive.Arrow asChild>
293
+ {variant === "dark" ? (
294
+ <DarkArrow className="h-2 w-6" />
295
+ ) : (
296
+ <LightArrow className="h-2 w-6" />
297
+ )}
298
+ </TooltipPrimitive.Arrow>
299
+ </TooltipPrimitive.Content>
300
+ </TooltipPrimitive.Portal>
301
+ )
302
+ }
303
+
304
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
@@ -0,0 +1,21 @@
1
+ export const meta = {
2
+ dependencies: {
3
+ "@radix-ui/react-tooltip": "^1.2.7",
4
+ },
5
+ devDependencies: {},
6
+ internalDependencies: [],
7
+ tokens: [
8
+ "--color-fm-contrast",
9
+ "--color-fm-neutral-50",
10
+ "--color-fm-neutral-100",
11
+ "--color-fm-primary",
12
+ "--color-fm-secondary-200",
13
+ "--color-fm-secondary-800",
14
+ "--color-fm-surface-secondary",
15
+ "--font-fm-text",
16
+ "--leading-fm-sm",
17
+ "--radius-fm-s",
18
+ "--text-fm-sm",
19
+ ".popover-content",
20
+ ],
21
+ }
@@ -0,0 +1,197 @@
1
+ import React from "react"
2
+ import type { Meta, StoryObj } from "@storybook/react"
3
+
4
+ import {
5
+ BodyLarge,
6
+ BodyMedium,
7
+ BodySmall,
8
+ CaptionLarge,
9
+ CaptionMedium,
10
+ CaptionSmall,
11
+ DisplayLarge,
12
+ DisplayMedium,
13
+ DisplaySmall,
14
+ LabelLarge,
15
+ LabelMedium,
16
+ LabelSmall,
17
+ TitleLarge,
18
+ TitleMedium,
19
+ TitleSmall,
20
+ Typography,
21
+ } from "./index"
22
+
23
+ const meta: Meta<typeof Typography> = {
24
+ title: "Components/UI/Typography",
25
+ component: Typography,
26
+ parameters: {
27
+ layout: "centered",
28
+ },
29
+ tags: ["autodocs"],
30
+ argTypes: {
31
+ variant: {
32
+ control: "select",
33
+ options: [
34
+ "display-large",
35
+ "display-medium",
36
+ "display-small",
37
+ "title-large",
38
+ "title-medium",
39
+ "title-small",
40
+ "label-large",
41
+ "label-medium",
42
+ "label-small",
43
+ "body-large",
44
+ "body-medium",
45
+ "body-small",
46
+ "caption-large",
47
+ "caption-medium",
48
+ "caption-small",
49
+ ],
50
+ },
51
+ weight: {
52
+ control: "select",
53
+ options: ["regular", "medium", "semibold", "bold"],
54
+ },
55
+ align: {
56
+ control: "radio",
57
+ options: ["left", "center", "right"],
58
+ },
59
+ color: {
60
+ control: "select",
61
+ options: ["primary", "secondary", "tertiary", "contrast", "inactive"],
62
+ },
63
+ transform: {
64
+ control: "select",
65
+ options: ["uppercase", "lowercase", "capitalize", "normal"],
66
+ },
67
+ lineHeight: {
68
+ control: "select",
69
+ options: ["tight", "normal", "loose"],
70
+ },
71
+ wrap: {
72
+ control: "select",
73
+ options: ["normal", "nowrap", "wrap", "pretty", "balance"],
74
+ },
75
+ as: {
76
+ control: "select",
77
+ options: ["p", "span", "div", "h1", "h2", "h3", "h4", "h5", "h6"],
78
+ },
79
+ },
80
+ }
81
+
82
+ export default meta
83
+ type Story = StoryObj<typeof Typography>
84
+
85
+ export const Default: Story = {
86
+ args: {
87
+ children: "The quick brown fox jumps over the lazy dog",
88
+ variant: "body-medium",
89
+ weight: "regular",
90
+ color: "primary",
91
+ align: "left",
92
+ },
93
+ }
94
+
95
+ export const AllVariants = () => {
96
+ return (
97
+ <div className="bg-fm-surface-primary flex flex-col gap-6 p-4">
98
+ <div className="space-y-4">
99
+ <DisplayLarge className="mb-2">Display Large</DisplayLarge>
100
+ <DisplayMedium className="mb-2">Display Medium</DisplayMedium>
101
+ <DisplaySmall className="mb-2">Display Small</DisplaySmall>
102
+ </div>
103
+
104
+ <div className="space-y-4">
105
+ <TitleLarge className="mb-2">Title Large</TitleLarge>
106
+ <TitleMedium className="mb-2">Title Medium</TitleMedium>
107
+ <TitleSmall className="mb-2">Title Small</TitleSmall>
108
+ </div>
109
+
110
+ <div className="space-y-4">
111
+ <LabelLarge className="mb-2 block">Label Large</LabelLarge>
112
+ <LabelMedium className="mb-2 block">Label Medium</LabelMedium>
113
+ <LabelSmall className="mb-2 block">Label Small</LabelSmall>
114
+ </div>
115
+
116
+ <div className="space-y-4">
117
+ <BodyLarge className="mb-2">Body Large</BodyLarge>
118
+ <BodyMedium className="mb-2">Body Medium</BodyMedium>
119
+ <BodySmall className="mb-2">Body Small</BodySmall>
120
+ </div>
121
+
122
+ <div className="space-y-4">
123
+ <CaptionLarge className="mb-2 block">Caption Large</CaptionLarge>
124
+ <CaptionMedium className="mb-2 block">Caption Medium</CaptionMedium>
125
+ <CaptionSmall className="mb-2 block">Caption Small</CaptionSmall>
126
+ </div>
127
+ </div>
128
+ )
129
+ }
130
+
131
+ export const WeightVariants = () => {
132
+ return (
133
+ <div className="bg-fm-surface-primary flex flex-col gap-4 p-4">
134
+ <Typography weight="regular">Regular weight text</Typography>
135
+ <Typography weight="medium">Medium weight text</Typography>
136
+ <Typography weight="semibold">Semibold weight text</Typography>
137
+ <Typography weight="bold">Bold weight text</Typography>
138
+ </div>
139
+ )
140
+ }
141
+
142
+ export const ColorVariants = () => {
143
+ return (
144
+ <div className="bg-fm-surface-primary flex flex-col gap-4 p-4">
145
+ <Typography color="primary">Primary color text</Typography>
146
+ <Typography color="secondary">Secondary color text</Typography>
147
+ <Typography color="tertiary">Tertiary color text</Typography>
148
+ <Typography color="contrast">Contrast color text</Typography>
149
+ <Typography color="inactive">Inactive color text</Typography>
150
+ </div>
151
+ )
152
+ }
153
+
154
+ export const AlignmentVariants = () => {
155
+ return (
156
+ <div className="bg-fm-surface-primary flex flex-col gap-4 p-4">
157
+ <Typography align="left">Left aligned text</Typography>
158
+ <Typography align="center">Center aligned text</Typography>
159
+ <Typography align="right">Right aligned text</Typography>
160
+ </div>
161
+ )
162
+ }
163
+
164
+ export const TransformVariants = () => {
165
+ return (
166
+ <div className="bg-fm-surface-primary flex flex-col gap-4 p-4">
167
+ <Typography transform="uppercase">Uppercase text</Typography>
168
+ <Typography transform="lowercase">
169
+ Lowercase Text Will Appear Here
170
+ </Typography>
171
+ <Typography transform="capitalize">capitalize each word</Typography>
172
+ <Typography transform="normal">Normal text transform</Typography>
173
+ </div>
174
+ )
175
+ }
176
+
177
+ export const LineHeightVariants = () => {
178
+ return (
179
+ <div className="bg-fm-surface-primary flex flex-col gap-8 p-4">
180
+ <Typography lineHeight="tight">
181
+ Tight line height. Lorem ipsum dolor sit amet, consectetur adipiscing
182
+ elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie
183
+ vehicula.
184
+ </Typography>
185
+ <Typography lineHeight="normal">
186
+ Normal line height. Lorem ipsum dolor sit amet, consectetur adipiscing
187
+ elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie
188
+ vehicula.
189
+ </Typography>
190
+ <Typography lineHeight="loose">
191
+ Loose line height. Lorem ipsum dolor sit amet, consectetur adipiscing
192
+ elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie
193
+ vehicula.
194
+ </Typography>
195
+ </div>
196
+ )
197
+ }
@@ -0,0 +1,184 @@
1
+ import React, { forwardRef } from "react"
2
+ import { cn } from "@lib/utils"
3
+ import { cva, VariantProps } from "class-variance-authority"
4
+
5
+ export const typographyVariants = cva("", {
6
+ variants: {
7
+ variant: {
8
+ "display-large": "text-fm-8xl leading-fm-8xl font-fm-brand",
9
+ "display-medium": "text-fm-7xl leading-fm-7xl font-fm-brand",
10
+ "display-small": "text-fm-6xl leading-fm-6xl font-fm-brand",
11
+
12
+ "title-large": "text-fm-5xl leading-fm-5xl font-fm-brand",
13
+ "title-medium": "text-fm-4xl leading-fm-4xl font-fm-brand",
14
+ "title-small": "text-fm-3xl leading-fm-3xl font-fm-brand",
15
+
16
+ "label-large": "text-fm-2xl leading-fm-2xl font-fm-brand",
17
+ "label-medium": "text-fm-xl leading-fm-xl font-fm-brand",
18
+ "label-small": "text-fm-lg leading-fm-lg font-fm-brand",
19
+
20
+ "body-large": "text-fm-xl leading-fm-xl font-fm-text",
21
+ "body-medium": "text-fm-lg leading-fm-lg font-fm-text",
22
+ "body-small": "text-fm-md leading-fm-md font-fm-text",
23
+
24
+ "caption-large": "text-fm-md leading-fm-md font-fm-text",
25
+ "caption-medium": "text-fm-sm leading-fm-sm font-fm-text",
26
+ "caption-small": "text-fm-xs leading-fm-xs font-fm-text",
27
+ },
28
+ weight: {
29
+ regular: "font-normal",
30
+ medium: "font-medium",
31
+ semibold: "font-semibold",
32
+ bold: "font-bold",
33
+ },
34
+ align: {
35
+ left: "text-left",
36
+ center: "text-center",
37
+ right: "text-right",
38
+ },
39
+ color: {
40
+ primary: "[color:var(--color-fm-primary)]",
41
+ secondary: "[color:var(--color-fm-secondary)]",
42
+ tertiary: "[color:var(--color-fm-tertiary)]",
43
+ contrast: "[color:var(--color-fm-contrast)]",
44
+ inactive: "[color:var(--color-fm-inactive)]",
45
+ },
46
+ transform: {
47
+ uppercase: "uppercase",
48
+ lowercase: "lowercase",
49
+ capitalize: "capitalize",
50
+ normal: "",
51
+ },
52
+ lineHeight: {
53
+ tight: "leading-tight",
54
+ normal: "leading-normal",
55
+ loose: "leading-loose",
56
+ auto: "",
57
+ },
58
+ wrap: {
59
+ normal: "",
60
+ nowrap: "[text-wrap:nowrap]",
61
+ wrap: "[text-wrap:wrap]",
62
+ pretty: "[text-wrap:pretty]",
63
+ balance: "[text-wrap:balance]",
64
+ },
65
+ },
66
+ defaultVariants: {
67
+ variant: "body-medium",
68
+ weight: "regular",
69
+ align: "left",
70
+ color: "primary",
71
+ transform: "normal",
72
+ lineHeight: "auto",
73
+ wrap: "normal",
74
+ },
75
+ })
76
+
77
+ export interface TypographyProps
78
+ extends Omit<React.HTMLAttributes<HTMLElement>, "color">,
79
+ VariantProps<typeof typographyVariants> {
80
+ as?: React.ElementType
81
+ children: React.ReactNode
82
+ className?: string
83
+ }
84
+
85
+ export const Typography = forwardRef<HTMLElement, TypographyProps>(
86
+ (
87
+ {
88
+ as: Element = "p",
89
+ children,
90
+ className,
91
+ variant,
92
+ weight,
93
+ align,
94
+ color,
95
+ transform,
96
+ lineHeight,
97
+ wrap,
98
+ ...props
99
+ },
100
+ ref
101
+ ) => {
102
+ return (
103
+ <Element
104
+ ref={ref}
105
+ className={cn(
106
+ typographyVariants({
107
+ variant,
108
+ weight,
109
+ align,
110
+ color,
111
+ transform,
112
+ lineHeight,
113
+ wrap,
114
+ }),
115
+ className
116
+ )}
117
+ {...props}
118
+ >
119
+ {children}
120
+ </Element>
121
+ )
122
+ }
123
+ )
124
+
125
+ // Export specific variants for easier use
126
+ export const DisplayLarge = (props: Omit<TypographyProps, "variant">) => (
127
+ <Typography variant="display-large" as="h1" {...props} />
128
+ )
129
+
130
+ export const DisplayMedium = (props: Omit<TypographyProps, "variant">) => (
131
+ <Typography variant="display-medium" as="h1" {...props} />
132
+ )
133
+
134
+ export const DisplaySmall = (props: Omit<TypographyProps, "variant">) => (
135
+ <Typography variant="display-small" as="h1" {...props} />
136
+ )
137
+
138
+ export const TitleLarge = (props: Omit<TypographyProps, "variant">) => (
139
+ <Typography variant="title-large" as="h2" {...props} />
140
+ )
141
+
142
+ export const TitleMedium = (props: Omit<TypographyProps, "variant">) => (
143
+ <Typography variant="title-medium" as="h3" {...props} />
144
+ )
145
+
146
+ export const TitleSmall = (props: Omit<TypographyProps, "variant">) => (
147
+ <Typography variant="title-small" as="h4" {...props} />
148
+ )
149
+
150
+ export const LabelLarge = (props: Omit<TypographyProps, "variant">) => (
151
+ <Typography variant="label-large" as="span" {...props} />
152
+ )
153
+
154
+ export const LabelMedium = (props: Omit<TypographyProps, "variant">) => (
155
+ <Typography variant="label-medium" as="span" {...props} />
156
+ )
157
+
158
+ export const LabelSmall = (props: Omit<TypographyProps, "variant">) => (
159
+ <Typography variant="label-small" as="span" {...props} />
160
+ )
161
+
162
+ export const BodyLarge = (props: Omit<TypographyProps, "variant">) => (
163
+ <Typography variant="body-large" {...props} />
164
+ )
165
+
166
+ export const BodyMedium = (props: Omit<TypographyProps, "variant">) => (
167
+ <Typography variant="body-medium" {...props} />
168
+ )
169
+
170
+ export const BodySmall = (props: Omit<TypographyProps, "variant">) => (
171
+ <Typography variant="body-small" {...props} />
172
+ )
173
+
174
+ export const CaptionLarge = (props: Omit<TypographyProps, "variant">) => (
175
+ <Typography variant="caption-large" as="span" {...props} />
176
+ )
177
+
178
+ export const CaptionMedium = (props: Omit<TypographyProps, "variant">) => (
179
+ <Typography variant="caption-medium" as="span" {...props} />
180
+ )
181
+
182
+ export const CaptionSmall = (props: Omit<TypographyProps, "variant">) => (
183
+ <Typography variant="caption-small" as="span" {...props} />
184
+ )