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,475 @@
1
+ import React from "react"
2
+ import type { Meta, StoryObj } from "@storybook/react"
3
+
4
+ import { Banner } from "."
5
+
6
+ const meta: Meta<typeof Banner> = {
7
+ title: "Components/UI/Banner",
8
+ component: Banner,
9
+ parameters: {
10
+ layout: "centered",
11
+ },
12
+ tags: ["autodocs"],
13
+ argTypes: {
14
+ variant: {
15
+ control: "select",
16
+ options: ["positive", "negative", "warning", "info"],
17
+ description: "The color variant of the banner",
18
+ },
19
+ appearance: {
20
+ control: "radio",
21
+ options: ["filled", "outlined"],
22
+ description: "The appearance style of the banner",
23
+ },
24
+ heading: {
25
+ control: "text",
26
+ description: "The heading text of the banner",
27
+ },
28
+ paragraph: {
29
+ control: "text",
30
+ description: "The optional paragraph text of the banner",
31
+ },
32
+ leftIcon: {
33
+ control: "boolean",
34
+ description: "Whether to show the left icon",
35
+ },
36
+ rightIcon: {
37
+ control: "boolean",
38
+ description: "Whether to show the right icon",
39
+ },
40
+ onClick: {
41
+ action: "clicked",
42
+ description: "Optional click handler, makes the banner interactive",
43
+ },
44
+ },
45
+ }
46
+
47
+ export default meta
48
+ type Story = StoryObj<typeof Banner>
49
+
50
+ export const Default: Story = {
51
+ args: {
52
+ heading: "Heading",
53
+ paragraph: "Paragraph",
54
+ variant: "info",
55
+ appearance: "filled",
56
+ leftIcon: true,
57
+ rightIcon: true,
58
+ },
59
+ }
60
+
61
+ export const Positive: Story = {
62
+ args: {
63
+ heading: "Heading",
64
+ paragraph: "Paragraph",
65
+ variant: "positive",
66
+ appearance: "filled",
67
+ leftIcon: true,
68
+ rightIcon: true,
69
+ },
70
+ }
71
+
72
+ export const PositiveOutlined: Story = {
73
+ args: {
74
+ heading: "Heading",
75
+ paragraph: "Paragraph",
76
+ variant: "positive",
77
+ appearance: "outlined",
78
+ leftIcon: true,
79
+ rightIcon: true,
80
+ },
81
+ }
82
+
83
+ export const Negative: Story = {
84
+ args: {
85
+ heading: "Heading",
86
+ paragraph: "Paragraph",
87
+ variant: "negative",
88
+ appearance: "filled",
89
+ leftIcon: true,
90
+ rightIcon: true,
91
+ },
92
+ }
93
+
94
+ export const NegativeOutlined: Story = {
95
+ args: {
96
+ heading: "Heading",
97
+ paragraph: "Paragraph",
98
+ variant: "negative",
99
+ appearance: "outlined",
100
+ leftIcon: true,
101
+ rightIcon: true,
102
+ },
103
+ }
104
+
105
+ export const Warning: Story = {
106
+ args: {
107
+ heading: "Heading",
108
+ paragraph: "Paragraph",
109
+ variant: "warning",
110
+ appearance: "filled",
111
+ leftIcon: true,
112
+ rightIcon: true,
113
+ },
114
+ }
115
+
116
+ export const WarningOutlined: Story = {
117
+ args: {
118
+ heading: "Heading",
119
+ paragraph: "Paragraph",
120
+ variant: "warning",
121
+ appearance: "outlined",
122
+ leftIcon: true,
123
+ rightIcon: true,
124
+ },
125
+ }
126
+
127
+ export const Info: Story = {
128
+ args: {
129
+ heading: "Heading",
130
+ paragraph: "Paragraph",
131
+ variant: "info",
132
+ appearance: "filled",
133
+ leftIcon: true,
134
+ rightIcon: true,
135
+ },
136
+ }
137
+
138
+ export const InfoOutlined: Story = {
139
+ args: {
140
+ heading: "Heading",
141
+ paragraph: "Paragraph",
142
+ variant: "info",
143
+ appearance: "outlined",
144
+ leftIcon: true,
145
+ rightIcon: true,
146
+ },
147
+ }
148
+
149
+ export const NoLeftIcon: Story = {
150
+ args: {
151
+ heading: "Heading",
152
+ paragraph: "Paragraph",
153
+ variant: "info",
154
+ appearance: "filled",
155
+ leftIcon: false,
156
+ },
157
+ }
158
+
159
+ export const NoRightIcon: Story = {
160
+ args: {
161
+ heading: "Heading",
162
+ paragraph: "Paragraph",
163
+ variant: "info",
164
+ appearance: "filled",
165
+ rightIcon: false,
166
+ },
167
+ }
168
+
169
+ export const Clickable: Story = {
170
+ args: {
171
+ heading: "Heading",
172
+ paragraph: "Paragraph",
173
+ variant: "positive",
174
+ appearance: "filled",
175
+ onClick: () => alert("Banner clicked!"),
176
+ },
177
+ }
178
+
179
+ export const HeadingOnly: Story = {
180
+ args: {
181
+ heading: "Heading",
182
+ variant: "info",
183
+ appearance: "filled",
184
+ leftIcon: true,
185
+ rightIcon: true,
186
+ },
187
+ }
188
+
189
+ export const WithBothIcons: Story = {
190
+ args: {
191
+ heading: "Heading",
192
+ paragraph: "Paragraph",
193
+ variant: "info",
194
+ appearance: "filled",
195
+ leftIcon: true,
196
+ rightIcon: true,
197
+ },
198
+ }
199
+
200
+ export const WithCustomIcons: Story = {
201
+ render: () => (
202
+ <Banner
203
+ heading="Custom Icons"
204
+ paragraph="This banner has custom icons on both sides"
205
+ variant="positive"
206
+ appearance="filled"
207
+ leftIcon={<span className="mr-4 text-xl">🚀</span>}
208
+ rightIcon={<span className="ml-4 text-xl">✨</span>}
209
+ />
210
+ ),
211
+ }
212
+
213
+ export const ReactNodeContent: Story = {
214
+ render: () => (
215
+ <Banner
216
+ heading={
217
+ <span className="font-bold text-[#ffffff]">Rich Text Heading</span>
218
+ }
219
+ paragraph={
220
+ <div className="flex items-center gap-2">
221
+ <span className="text-[#ffffff]">Rich content</span>
222
+ <span className="inline-block h-2 w-2 rounded-full bg-[#ffffff]"></span>
223
+ <span className="text-[#ffffff]">with components</span>
224
+ </div>
225
+ }
226
+ variant="info"
227
+ appearance="filled"
228
+ leftIcon={true}
229
+ />
230
+ ),
231
+ }
232
+
233
+ export const AllBanners = () => {
234
+ return (
235
+ <div className="flex w-full max-w-2xl flex-col gap-4">
236
+ <h2 className="text-fm-primary text-xl font-bold uppercase">POSITIVE</h2>
237
+ <Banner
238
+ variant="positive"
239
+ appearance="filled"
240
+ heading="Heading"
241
+ paragraph="Paragraph"
242
+ leftIcon={true}
243
+ rightIcon={true}
244
+ />
245
+ <Banner
246
+ variant="positive"
247
+ appearance="outlined"
248
+ heading="Heading"
249
+ paragraph="Paragraph"
250
+ leftIcon={true}
251
+ rightIcon={true}
252
+ />
253
+
254
+ <h2 className="text-fm-primary mt-4 text-xl font-bold uppercase">
255
+ NEGATIVE
256
+ </h2>
257
+ <Banner
258
+ variant="negative"
259
+ appearance="filled"
260
+ heading="Heading"
261
+ paragraph="Paragraph"
262
+ leftIcon={true}
263
+ rightIcon={true}
264
+ />
265
+ <Banner
266
+ variant="negative"
267
+ appearance="outlined"
268
+ heading="Heading"
269
+ paragraph="Paragraph"
270
+ leftIcon={true}
271
+ rightIcon={true}
272
+ />
273
+
274
+ <h2 className="text-fm-primary mt-4 text-xl font-bold uppercase">INFO</h2>
275
+ <Banner
276
+ variant="info"
277
+ appearance="filled"
278
+ heading="Heading"
279
+ paragraph="Paragraph"
280
+ leftIcon={true}
281
+ rightIcon={true}
282
+ />
283
+ <Banner
284
+ variant="info"
285
+ appearance="outlined"
286
+ heading="Heading"
287
+ paragraph="Paragraph"
288
+ leftIcon={true}
289
+ rightIcon={true}
290
+ />
291
+
292
+ <h2 className="text-fm-primary mt-4 text-xl font-bold uppercase">
293
+ WARNING
294
+ </h2>
295
+ <Banner
296
+ variant="warning"
297
+ appearance="filled"
298
+ heading="Heading"
299
+ paragraph="Paragraph"
300
+ leftIcon={true}
301
+ rightIcon={true}
302
+ />
303
+ <Banner
304
+ variant="warning"
305
+ appearance="outlined"
306
+ heading="Heading"
307
+ paragraph="Paragraph"
308
+ leftIcon={true}
309
+ rightIcon={true}
310
+ />
311
+
312
+ <h2 className="text-fm-primary mt-8 text-xl font-bold uppercase">
313
+ INTERACTIVE EXAMPLES
314
+ </h2>
315
+ <Banner
316
+ variant="positive"
317
+ appearance="filled"
318
+ heading="Click me"
319
+ paragraph="This banner is clickable"
320
+ leftIcon={true}
321
+ rightIcon={true}
322
+ onClick={() => alert("Banner clicked!")}
323
+ />
324
+
325
+ <h2 className="text-fm-primary mt-8 text-xl font-bold uppercase">
326
+ CUSTOM ICON EXAMPLES
327
+ </h2>
328
+ <Banner
329
+ variant="info"
330
+ appearance="filled"
331
+ heading="Custom left icon"
332
+ paragraph="This banner has a custom left icon"
333
+ leftIcon={<span className="mr-4 text-xl">🔔</span>}
334
+ rightIcon={true}
335
+ />
336
+ <Banner
337
+ variant="warning"
338
+ appearance="outlined"
339
+ heading="Custom right icon"
340
+ paragraph="This banner has a custom right icon"
341
+ leftIcon={true}
342
+ rightIcon={<span className="ml-4 text-xl">👉</span>}
343
+ />
344
+ </div>
345
+ )
346
+ }
347
+
348
+ export const IconVariants = () => {
349
+ return (
350
+ <div className="flex w-full max-w-2xl flex-col gap-4">
351
+ <h2 className="text-fm-primary text-xl font-bold uppercase">
352
+ WITH ICONS
353
+ </h2>
354
+ <Banner
355
+ variant="info"
356
+ appearance="filled"
357
+ heading="Both icons"
358
+ paragraph="This banner has both left and right icons"
359
+ leftIcon={true}
360
+ rightIcon={true}
361
+ />
362
+ <Banner
363
+ variant="info"
364
+ appearance="filled"
365
+ heading="Left icon only"
366
+ paragraph="This banner has only a left icon"
367
+ leftIcon={true}
368
+ rightIcon={false}
369
+ />
370
+ <Banner
371
+ variant="info"
372
+ appearance="filled"
373
+ heading="Right icon only"
374
+ paragraph="This banner has only a right icon"
375
+ leftIcon={false}
376
+ rightIcon={true}
377
+ />
378
+ <Banner
379
+ variant="info"
380
+ appearance="filled"
381
+ heading="No icons"
382
+ paragraph="This banner has no icons"
383
+ leftIcon={false}
384
+ rightIcon={false}
385
+ />
386
+ </div>
387
+ )
388
+ }
389
+
390
+ export const ContentVariants = () => {
391
+ return (
392
+ <div className="flex w-full max-w-2xl flex-col gap-4">
393
+ <h2 className="text-fm-primary text-xl font-bold uppercase">
394
+ CONTENT VARIATIONS
395
+ </h2>
396
+ <Banner
397
+ variant="positive"
398
+ appearance="filled"
399
+ heading="Heading only"
400
+ leftIcon={true}
401
+ />
402
+ <Banner
403
+ variant="negative"
404
+ appearance="filled"
405
+ paragraph="Paragraph only (no heading)"
406
+ leftIcon={true}
407
+ />
408
+ <Banner
409
+ variant="warning"
410
+ appearance="filled"
411
+ heading={
412
+ <div className="flex items-center gap-2">
413
+ <span>Heading with </span>
414
+ <span className="bg-fm-surface-warning text-fm-neutral-100 rounded px-2 py-1">
415
+ Component
416
+ </span>
417
+ </div>
418
+ }
419
+ paragraph="Normal paragraph"
420
+ leftIcon={true}
421
+ />
422
+ <Banner
423
+ variant="info"
424
+ appearance="filled"
425
+ heading="Normal heading"
426
+ paragraph={
427
+ <div className="flex items-center gap-2">
428
+ <span>Paragraph with </span>
429
+ <span className="bg-fm-surface-info text-fm-neutral-100 rounded px-2 py-1">
430
+ Component
431
+ </span>
432
+ </div>
433
+ }
434
+ leftIcon={true}
435
+ />
436
+ </div>
437
+ )
438
+ }
439
+
440
+ export const InteractiveVariants = () => {
441
+ return (
442
+ <div className="flex w-full max-w-2xl flex-col gap-4">
443
+ <h2 className="text-fm-primary text-xl font-bold uppercase">
444
+ INTERACTIVE BANNERS
445
+ </h2>
446
+ <Banner
447
+ variant="positive"
448
+ appearance="filled"
449
+ heading="Clickable banner"
450
+ paragraph="Click me to trigger an action"
451
+ leftIcon={true}
452
+ rightIcon={true}
453
+ onClick={() => alert("Positive banner clicked!")}
454
+ />
455
+ <Banner
456
+ variant="negative"
457
+ appearance="outlined"
458
+ heading="Clickable outlined banner"
459
+ paragraph="Click me to trigger an action"
460
+ leftIcon={true}
461
+ rightIcon={true}
462
+ onClick={() => alert("Negative banner clicked!")}
463
+ />
464
+ <Banner
465
+ variant="info"
466
+ appearance="filled"
467
+ heading="No right arrow"
468
+ paragraph="This banner is clickable but has no right arrow"
469
+ leftIcon={true}
470
+ rightIcon={false}
471
+ onClick={() => alert("Info banner clicked!")}
472
+ />
473
+ </div>
474
+ )
475
+ }