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,58 @@
1
+ import * as React from "react"
2
+ import { cn } from "@lib/utils"
3
+ import { cva, type VariantProps } from "class-variance-authority"
4
+
5
+ const overlayVariants = cva(
6
+ "fixed inset-0 z-40 data-[state=open]:animate-fm-fadeIn data-[state=closed]:animate-fm-fadeOut ",
7
+ {
8
+ variants: {
9
+ opacity: {
10
+ high: "bg-black/80 ", // 80% opacity
11
+ medium: "bg-black/60", // 60% opacity
12
+ low: "bg-black/40", // 40% opacity
13
+ none: "bg-black",
14
+ },
15
+ glass: {
16
+ high: "backdrop-blur-lg",
17
+ medium: "backdrop-blur-md",
18
+ low: "backdrop-blur-sm",
19
+ none: "",
20
+ },
21
+ noise: {
22
+ high: "[background-image:var(--button-fm-noise-strong)]",
23
+ medium: "[background-image:var(--button-fm-noise)]",
24
+ low: "[background-image:var(--button-fm-noise-low)]",
25
+ none: "",
26
+ },
27
+ },
28
+ defaultVariants: {
29
+ opacity: "medium",
30
+ glass: "low",
31
+ noise: "low",
32
+ },
33
+ }
34
+ )
35
+
36
+ export interface OverlayProps
37
+ extends React.HTMLAttributes<HTMLDivElement>,
38
+ VariantProps<typeof overlayVariants> {}
39
+
40
+ const Overlay = React.forwardRef<HTMLDivElement, OverlayProps>(
41
+ ({ opacity, glass, noise, className, children, ...props }, ref) => (
42
+ <>
43
+ <div
44
+ ref={ref}
45
+ className={cn(overlayVariants({ opacity, glass, noise }), className)}
46
+ {...props}
47
+ />
48
+ {children && (
49
+ <div className="pointer-events-none fixed inset-0 z-50 flex items-center justify-center">
50
+ <div className="pointer-events-auto">{children}</div>
51
+ </div>
52
+ )}
53
+ </>
54
+ )
55
+ )
56
+ Overlay.displayName = "Overlay"
57
+
58
+ export { Overlay, overlayVariants }
@@ -0,0 +1,10 @@
1
+ export const meta = {
2
+ dependencies: {},
3
+ devDependencies: {},
4
+ internalDependencies: [],
5
+ tokens: [
6
+ "--button-fm-noise-low",
7
+ "--button-fm-noise-strong",
8
+ "--button-fm-noise",
9
+ ],
10
+ }
@@ -0,0 +1,354 @@
1
+ import React from "react"
2
+ import {
3
+ ChevronDoubleLeftIcon,
4
+ ChevronDoubleRightIcon,
5
+ ChevronLeftIcon,
6
+ ChevronRightIcon,
7
+ } from "@icons/index"
8
+ import type { Meta, StoryObj } from "@storybook/react"
9
+
10
+ import {
11
+ Pagination,
12
+ PaginationButton,
13
+ PaginationContent,
14
+ PaginationEllipsis,
15
+ PaginationProvider,
16
+ PaginationRoot,
17
+ PaginationSizeSelector,
18
+ } from "."
19
+
20
+ const meta: Meta<typeof Pagination> = {
21
+ title: "Components/UI/Pagination",
22
+ component: Pagination,
23
+ parameters: {
24
+ layout: "centered",
25
+ docs: {
26
+ description: {
27
+ component:
28
+ "A pagination component for navigating through paginated data with customizable options.",
29
+ },
30
+ },
31
+ },
32
+ tags: ["autodocs"],
33
+ argTypes: {
34
+ size: {
35
+ control: { type: "select" },
36
+ options: ["sm", "md", "lg"],
37
+ description: "Size of the pagination component",
38
+ },
39
+ showFirstLast: {
40
+ control: "boolean",
41
+ description: "Show first/last page navigation buttons",
42
+ },
43
+ showPageSize: {
44
+ control: "boolean",
45
+ description: "Show page size selector",
46
+ },
47
+ pageSizeOptions: {
48
+ control: "object",
49
+ description: "Available page sizes",
50
+ },
51
+ className: {
52
+ control: "text",
53
+ description: "Additional CSS class name",
54
+ },
55
+ },
56
+ decorators: [
57
+ (Story, context) => (
58
+ <PaginationProvider totalItems={250} initialPage={5} initialPageSize={10}>
59
+ <Story {...context} />
60
+ </PaginationProvider>
61
+ ),
62
+ ],
63
+ }
64
+
65
+ export default meta
66
+ type Story = StoryObj<typeof Pagination>
67
+
68
+ // Main Pagination Stories
69
+ export const Default: Story = {
70
+ args: {
71
+ size: "md",
72
+ showFirstLast: true,
73
+ showPageSize: false,
74
+ pageSizeOptions: [10, 20, 50, 100],
75
+ },
76
+ }
77
+
78
+ export const Small: Story = {
79
+ args: {
80
+ size: "sm",
81
+ showFirstLast: true,
82
+ showPageSize: false,
83
+ },
84
+ }
85
+
86
+ export const Large: Story = {
87
+ args: {
88
+ size: "lg",
89
+ showFirstLast: true,
90
+ showPageSize: false,
91
+ },
92
+ }
93
+
94
+ export const WithPageSize: Story = {
95
+ args: {
96
+ size: "md",
97
+ showFirstLast: true,
98
+ showPageSize: true,
99
+ pageSizeOptions: [10, 20, 50, 100],
100
+ },
101
+ }
102
+
103
+ export const WithoutFirstLast: Story = {
104
+ args: {
105
+ size: "md",
106
+ showFirstLast: false,
107
+ showPageSize: false,
108
+ },
109
+ }
110
+
111
+ export const FirstPage: Story = {
112
+ decorators: [
113
+ (Story) => (
114
+ <PaginationProvider totalItems={100} initialPage={1} initialPageSize={10}>
115
+ <Story />
116
+ </PaginationProvider>
117
+ ),
118
+ ],
119
+ args: {
120
+ size: "md",
121
+ showFirstLast: true,
122
+ showPageSize: true,
123
+ },
124
+ }
125
+
126
+ export const LastPage: Story = {
127
+ decorators: [
128
+ (Story) => (
129
+ <PaginationProvider
130
+ totalItems={100}
131
+ initialPage={10}
132
+ initialPageSize={10}
133
+ >
134
+ <Story />
135
+ </PaginationProvider>
136
+ ),
137
+ ],
138
+ args: {
139
+ size: "md",
140
+ showFirstLast: true,
141
+ showPageSize: true,
142
+ },
143
+ }
144
+
145
+ // Primitives Stories
146
+ export const PrimitiveButtons: Story = {
147
+ render: () => (
148
+ <div className="text-fm-primary space-y-4">
149
+ <div className="space-x-2">
150
+ <h3 className="mb-2 text-sm font-medium">Button Variants</h3>
151
+ <PaginationButton variant="navigation" size="md">
152
+ <ChevronLeftIcon />
153
+ </PaginationButton>
154
+ <PaginationButton variant="number" size="md">
155
+ 1
156
+ </PaginationButton>
157
+ <PaginationButton variant="active" size="md">
158
+ 2
159
+ </PaginationButton>
160
+ <PaginationButton variant="number" size="md">
161
+ 3
162
+ </PaginationButton>
163
+ <PaginationButton variant="navigation" size="md">
164
+ <ChevronRightIcon />
165
+ </PaginationButton>
166
+ </div>
167
+
168
+ <div className="space-x-2">
169
+ <h3 className="mb-2 text-sm font-medium">Button Sizes</h3>
170
+ <PaginationButton variant="number" size="sm">
171
+ 1
172
+ </PaginationButton>
173
+ <PaginationButton variant="number" size="md">
174
+ 2
175
+ </PaginationButton>
176
+ <PaginationButton variant="number" size="lg">
177
+ 3
178
+ </PaginationButton>
179
+ </div>
180
+
181
+ <div className="space-x-2">
182
+ <h3 className="mb-2 text-sm font-medium">Disabled States</h3>
183
+ <PaginationButton variant="navigation" size="md" disabled>
184
+ <ChevronLeftIcon />
185
+ </PaginationButton>
186
+ <PaginationButton variant="number" size="md" disabled>
187
+ 1
188
+ </PaginationButton>
189
+ <PaginationButton variant="navigation" size="md" disabled>
190
+ <ChevronRightIcon />
191
+ </PaginationButton>
192
+ </div>
193
+ </div>
194
+ ),
195
+ parameters: {
196
+ docs: {
197
+ description: {
198
+ story:
199
+ "Individual pagination button primitives with different variants, sizes, and states.",
200
+ },
201
+ },
202
+ },
203
+ }
204
+
205
+ export const PrimitiveEllipsis: Story = {
206
+ render: () => (
207
+ <div className="text-fm-primary space-y-4">
208
+ <div className="flex items-center space-x-2">
209
+ <h3 className="text-sm font-medium">Ellipsis Sizes</h3>
210
+ </div>
211
+ <div className="flex items-center space-x-2">
212
+ <PaginationButton variant="number" size="sm">
213
+ 1
214
+ </PaginationButton>
215
+ <PaginationEllipsis size="sm" />
216
+ <PaginationButton variant="number" size="sm">
217
+ 5
218
+ </PaginationButton>
219
+ </div>
220
+ <div className="flex items-center space-x-2">
221
+ <PaginationButton variant="number" size="md">
222
+ 1
223
+ </PaginationButton>
224
+ <PaginationEllipsis size="md" />
225
+ <PaginationButton variant="number" size="md">
226
+ 5
227
+ </PaginationButton>
228
+ </div>
229
+ <div className="flex items-center space-x-2">
230
+ <PaginationButton variant="number" size="lg">
231
+ 1
232
+ </PaginationButton>
233
+ <PaginationEllipsis size="lg" />
234
+ <PaginationButton variant="number" size="lg">
235
+ 5
236
+ </PaginationButton>
237
+ </div>
238
+ </div>
239
+ ),
240
+ parameters: {
241
+ docs: {
242
+ description: {
243
+ story: "Pagination ellipsis primitive in different sizes.",
244
+ },
245
+ },
246
+ },
247
+ }
248
+
249
+ export const PrimitiveSizeSelector: Story = {
250
+ render: () => (
251
+ <PaginationProvider totalItems={100} initialPage={1} initialPageSize={10}>
252
+ <div className="text-fm-primary space-y-4">
253
+ <div>
254
+ <h3 className="mb-2 text-sm font-medium">Size Selector Sizes</h3>
255
+ </div>
256
+ <div className="space-y-2">
257
+ <PaginationSizeSelector
258
+ size="sm"
259
+ pageSizeOptions={[5, 10, 20]}
260
+ pageSize={10}
261
+ setPageSize={(size) => console.log("Set page size:", size)}
262
+ />
263
+ <PaginationSizeSelector
264
+ size="md"
265
+ pageSizeOptions={[10, 20, 50]}
266
+ pageSize={20}
267
+ setPageSize={(size) => console.log("Set page size:", size)}
268
+ />
269
+ <PaginationSizeSelector
270
+ size="lg"
271
+ pageSizeOptions={[20, 50, 100]}
272
+ pageSize={50}
273
+ setPageSize={(size) => console.log("Set page size:", size)}
274
+ />
275
+ </div>
276
+ </div>
277
+ </PaginationProvider>
278
+ ),
279
+ parameters: {
280
+ docs: {
281
+ description: {
282
+ story: "Pagination size selector primitive in different sizes.",
283
+ },
284
+ },
285
+ },
286
+ }
287
+
288
+ export const PrimitiveComposition: Story = {
289
+ render: () => (
290
+ <div className="text-fm-primary space-y-6">
291
+ <div>
292
+ <h3 className="mb-2 text-sm font-medium">
293
+ Custom Composition with Primitives
294
+ </h3>
295
+ <PaginationRoot>
296
+ <PaginationContent>
297
+ <PaginationButton variant="navigation" size="md">
298
+ <ChevronDoubleLeftIcon />
299
+ </PaginationButton>
300
+ <PaginationButton variant="navigation" size="md">
301
+ <ChevronLeftIcon />
302
+ </PaginationButton>
303
+ <PaginationButton variant="number" size="md">
304
+ 1
305
+ </PaginationButton>
306
+ <PaginationButton variant="number" size="md">
307
+ 2
308
+ </PaginationButton>
309
+ <PaginationButton variant="active" size="md">
310
+ 3
311
+ </PaginationButton>
312
+ <PaginationButton variant="number" size="md">
313
+ 4
314
+ </PaginationButton>
315
+ <PaginationEllipsis size="md" />
316
+ <PaginationButton variant="number" size="md">
317
+ 10
318
+ </PaginationButton>
319
+ <PaginationButton variant="navigation" size="md">
320
+ <ChevronRightIcon />
321
+ </PaginationButton>
322
+ <PaginationButton variant="navigation" size="md">
323
+ <ChevronDoubleRightIcon />
324
+ </PaginationButton>
325
+ </PaginationContent>
326
+ </PaginationRoot>
327
+ </div>
328
+
329
+ <div>
330
+ <h3 className="mb-2 text-sm font-medium">Minimal Composition</h3>
331
+ <PaginationRoot>
332
+ <PaginationContent>
333
+ <PaginationButton variant="navigation" size="sm">
334
+ <ChevronLeftIcon />
335
+ </PaginationButton>
336
+ <PaginationButton variant="active" size="sm">
337
+ 5
338
+ </PaginationButton>
339
+ <PaginationButton variant="navigation" size="sm">
340
+ <ChevronRightIcon />
341
+ </PaginationButton>
342
+ </PaginationContent>
343
+ </PaginationRoot>
344
+ </div>
345
+ </div>
346
+ ),
347
+ parameters: {
348
+ docs: {
349
+ description: {
350
+ story: "Examples of custom compositions using pagination primitives.",
351
+ },
352
+ },
353
+ },
354
+ }