@12-apps/ui 1.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 (633) hide show
  1. package/components-catalog.md +806 -0
  2. package/components-guidelines.md +347 -0
  3. package/dist/index.cjs +2 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +2 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -0
  9. package/eslint.config.js +77 -0
  10. package/package.json +247 -0
  11. package/src/__tests__/package-wiring.test.ts +37 -0
  12. package/src/__tests__/setup.ts +1 -0
  13. package/src/__tests__/social-login-button.test.tsx +186 -0
  14. package/src/__tests__/user-avatar.test.tsx +195 -0
  15. package/src/button.tsx +22 -0
  16. package/src/components/command/__tests__/command.test.tsx +112 -0
  17. package/src/components/data-display/Alert/Alert.md +209 -0
  18. package/src/components/data-display/Alert/Alert.stories.tsx +561 -0
  19. package/src/components/data-display/Alert/Alert.test.stories.tsx +709 -0
  20. package/src/components/data-display/Alert/Alert.tsx +449 -0
  21. package/src/components/data-display/Alert/Alert.types.ts +79 -0
  22. package/src/components/data-display/Alert/index.ts +2 -0
  23. package/src/components/data-display/AlertDialog/AlertDialog.md +408 -0
  24. package/src/components/data-display/AlertDialog/AlertDialog.stories.tsx +360 -0
  25. package/src/components/data-display/AlertDialog/AlertDialog.test.stories.tsx +753 -0
  26. package/src/components/data-display/AlertDialog/AlertDialog.tsx +273 -0
  27. package/src/components/data-display/AlertDialog/AlertDialog.types.ts +74 -0
  28. package/src/components/data-display/AlertDialog/index.ts +2 -0
  29. package/src/components/data-display/AsyncStateContainer/AsyncStateContainer.stories.tsx +230 -0
  30. package/src/components/data-display/AsyncStateContainer/AsyncStateContainer.test.stories.tsx +270 -0
  31. package/src/components/data-display/AsyncStateContainer/AsyncStateContainer.tsx +116 -0
  32. package/src/components/data-display/AsyncStateContainer/AsyncStateContainer.types.ts +70 -0
  33. package/src/components/data-display/AsyncStateContainer/index.ts +2 -0
  34. package/src/components/data-display/Avatar/Avatar.md +568 -0
  35. package/src/components/data-display/Avatar/Avatar.stories.tsx +718 -0
  36. package/src/components/data-display/Avatar/Avatar.test.stories.tsx +820 -0
  37. package/src/components/data-display/Avatar/Avatar.tsx +507 -0
  38. package/src/components/data-display/Avatar/Avatar.types.ts +88 -0
  39. package/src/components/data-display/Avatar/index.ts +2 -0
  40. package/src/components/data-display/Badge/Badge.md +469 -0
  41. package/src/components/data-display/Badge/Badge.stories.tsx +1136 -0
  42. package/src/components/data-display/Badge/Badge.test.stories.tsx +1193 -0
  43. package/src/components/data-display/Badge/Badge.tsx +606 -0
  44. package/src/components/data-display/Badge/Badge.types.ts +118 -0
  45. package/src/components/data-display/Badge/index.ts +2 -0
  46. package/src/components/data-display/Banner/Banner.stories.tsx +524 -0
  47. package/src/components/data-display/Banner/Banner.test.stories.tsx +503 -0
  48. package/src/components/data-display/Banner/Banner.tsx +350 -0
  49. package/src/components/data-display/Banner/Banner.types.ts +41 -0
  50. package/src/components/data-display/Banner/banner.md +141 -0
  51. package/src/components/data-display/Banner/index.ts +2 -0
  52. package/src/components/data-display/Carousel/Carousel.md +815 -0
  53. package/src/components/data-display/Carousel/Carousel.stories.tsx +607 -0
  54. package/src/components/data-display/Carousel/Carousel.test.stories.tsx +691 -0
  55. package/src/components/data-display/Carousel/Carousel.tsx +765 -0
  56. package/src/components/data-display/Carousel/Carousel.types.ts +79 -0
  57. package/src/components/data-display/Carousel/index.ts +8 -0
  58. package/src/components/data-display/Chart/Chart.md +352 -0
  59. package/src/components/data-display/Chart/Chart.stories.tsx +568 -0
  60. package/src/components/data-display/Chart/Chart.test.stories.tsx +174 -0
  61. package/src/components/data-display/Chart/Chart.tsx +520 -0
  62. package/src/components/data-display/Chart/Chart.types.ts +65 -0
  63. package/src/components/data-display/Chart/index.ts +2 -0
  64. package/src/components/data-display/Chip/Chip.stories.tsx +251 -0
  65. package/src/components/data-display/Chip/Chip.test.stories.tsx +263 -0
  66. package/src/components/data-display/Chip/Chip.tsx +134 -0
  67. package/src/components/data-display/Chip/Chip.types.ts +51 -0
  68. package/src/components/data-display/Chip/chip.md +395 -0
  69. package/src/components/data-display/Chip/index.ts +2 -0
  70. package/src/components/data-display/DataGrid/DataGrid.md +602 -0
  71. package/src/components/data-display/DataGrid/DataGrid.stories.tsx +515 -0
  72. package/src/components/data-display/DataGrid/DataGrid.test.stories.tsx +659 -0
  73. package/src/components/data-display/DataGrid/DataGrid.tsx +743 -0
  74. package/src/components/data-display/DataGrid/DataGrid.types.ts +171 -0
  75. package/src/components/data-display/DataGrid/index.ts +21 -0
  76. package/src/components/data-display/DateTimeDisplay/DateTimeDisplay.tsx +197 -0
  77. package/src/components/data-display/DateTimeDisplay/DateTimeDisplay.types.ts +46 -0
  78. package/src/components/data-display/DateTimeDisplay/index.ts +2 -0
  79. package/src/components/data-display/DescriptionItem/DescriptionItem.md +226 -0
  80. package/src/components/data-display/DescriptionItem/DescriptionItem.stories.tsx +254 -0
  81. package/src/components/data-display/DescriptionItem/DescriptionItem.tsx +100 -0
  82. package/src/components/data-display/DescriptionItem/DescriptionItem.types.ts +1 -0
  83. package/src/components/data-display/DescriptionItem/index.ts +2 -0
  84. package/src/components/data-display/EmptyState/EmptyState.md +265 -0
  85. package/src/components/data-display/EmptyState/EmptyState.stories.tsx +282 -0
  86. package/src/components/data-display/EmptyState/EmptyState.test.stories.tsx +441 -0
  87. package/src/components/data-display/EmptyState/EmptyState.tsx +180 -0
  88. package/src/components/data-display/EmptyState/EmptyState.types.ts +31 -0
  89. package/src/components/data-display/EmptyState/index.ts +2 -0
  90. package/src/components/data-display/ErrorState/ErrorState.stories.tsx +110 -0
  91. package/src/components/data-display/ErrorState/ErrorState.test.stories.tsx +133 -0
  92. package/src/components/data-display/ErrorState/ErrorState.tsx +118 -0
  93. package/src/components/data-display/ErrorState/ErrorState.types.ts +45 -0
  94. package/src/components/data-display/ErrorState/index.ts +2 -0
  95. package/src/components/data-display/HoverCard/HoverCard.md +389 -0
  96. package/src/components/data-display/HoverCard/HoverCard.stories.tsx +648 -0
  97. package/src/components/data-display/HoverCard/HoverCard.test.stories.tsx +929 -0
  98. package/src/components/data-display/HoverCard/HoverCard.tsx +657 -0
  99. package/src/components/data-display/HoverCard/HoverCard.types.ts +116 -0
  100. package/src/components/data-display/HoverCard/index.ts +2 -0
  101. package/src/components/data-display/InteractiveTooltip/InteractiveTooltip.md +532 -0
  102. package/src/components/data-display/InteractiveTooltip/InteractiveTooltip.stories.tsx +411 -0
  103. package/src/components/data-display/InteractiveTooltip/InteractiveTooltip.tsx +245 -0
  104. package/src/components/data-display/InteractiveTooltip/InteractiveTooltip.types.ts +64 -0
  105. package/src/components/data-display/InteractiveTooltip/index.ts +2 -0
  106. package/src/components/data-display/LazyImage/LazyImage.md +356 -0
  107. package/src/components/data-display/LazyImage/LazyImage.stories.tsx +387 -0
  108. package/src/components/data-display/LazyImage/LazyImage.tsx +323 -0
  109. package/src/components/data-display/LazyImage/LazyImage.types.ts +205 -0
  110. package/src/components/data-display/LazyImage/index.ts +2 -0
  111. package/src/components/data-display/Lightbox/Lightbox.stories.tsx +315 -0
  112. package/src/components/data-display/Lightbox/Lightbox.test.stories.tsx +605 -0
  113. package/src/components/data-display/Lightbox/Lightbox.tsx +666 -0
  114. package/src/components/data-display/Lightbox/Lightbox.types.ts +49 -0
  115. package/src/components/data-display/Lightbox/index.ts +2 -0
  116. package/src/components/data-display/Lightbox/lightbox.md +298 -0
  117. package/src/components/data-display/LoadingState/LoadingState.stories.tsx +124 -0
  118. package/src/components/data-display/LoadingState/LoadingState.test.stories.tsx +99 -0
  119. package/src/components/data-display/LoadingState/LoadingState.tsx +103 -0
  120. package/src/components/data-display/LoadingState/LoadingState.types.ts +37 -0
  121. package/src/components/data-display/LoadingState/index.ts +2 -0
  122. package/src/components/data-display/MapPreview/MapPreview.md +154 -0
  123. package/src/components/data-display/MapPreview/MapPreview.stories.tsx +458 -0
  124. package/src/components/data-display/MapPreview/MapPreview.test.stories.tsx +390 -0
  125. package/src/components/data-display/MapPreview/MapPreview.tsx +922 -0
  126. package/src/components/data-display/MapPreview/MapPreview.types.ts +56 -0
  127. package/src/components/data-display/MapPreview/index.ts +2 -0
  128. package/src/components/data-display/Popover/Popover.md +245 -0
  129. package/src/components/data-display/Popover/Popover.stories.tsx +295 -0
  130. package/src/components/data-display/Popover/Popover.test.stories.tsx +1168 -0
  131. package/src/components/data-display/Popover/Popover.tsx +132 -0
  132. package/src/components/data-display/Popover/Popover.types.ts +33 -0
  133. package/src/components/data-display/Popover/index.ts +2 -0
  134. package/src/components/data-display/Progress/Progress.md +450 -0
  135. package/src/components/data-display/Progress/Progress.stories.tsx +481 -0
  136. package/src/components/data-display/Progress/Progress.test.stories.tsx +2070 -0
  137. package/src/components/data-display/Progress/Progress.tsx +332 -0
  138. package/src/components/data-display/Progress/Progress.types.ts +61 -0
  139. package/src/components/data-display/Progress/index.ts +2 -0
  140. package/src/components/data-display/SectionOnboarding/SectionOnboarding.md +108 -0
  141. package/src/components/data-display/SectionOnboarding/SectionOnboarding.stories.tsx +160 -0
  142. package/src/components/data-display/SectionOnboarding/SectionOnboarding.test.stories.tsx +190 -0
  143. package/src/components/data-display/SectionOnboarding/SectionOnboarding.tsx +224 -0
  144. package/src/components/data-display/SectionOnboarding/SectionOnboarding.types.ts +101 -0
  145. package/src/components/data-display/SectionOnboarding/index.ts +7 -0
  146. package/src/components/data-display/Sheet/Sheet.md +475 -0
  147. package/src/components/data-display/Sheet/Sheet.stories.tsx +883 -0
  148. package/src/components/data-display/Sheet/Sheet.test.stories.tsx +1101 -0
  149. package/src/components/data-display/Sheet/Sheet.tsx +978 -0
  150. package/src/components/data-display/Sheet/Sheet.types.ts +93 -0
  151. package/src/components/data-display/Sheet/index.ts +8 -0
  152. package/src/components/data-display/Stepper/Stepper.md +542 -0
  153. package/src/components/data-display/Stepper/Stepper.stories.tsx +540 -0
  154. package/src/components/data-display/Stepper/Stepper.test.stories.tsx +607 -0
  155. package/src/components/data-display/Stepper/Stepper.tsx +328 -0
  156. package/src/components/data-display/Stepper/Stepper.types.ts +97 -0
  157. package/src/components/data-display/Stepper/index.ts +2 -0
  158. package/src/components/data-display/Table/Table.md +243 -0
  159. package/src/components/data-display/Table/Table.stories.tsx +801 -0
  160. package/src/components/data-display/Table/Table.test.stories.tsx +369 -0
  161. package/src/components/data-display/Table/Table.tsx +831 -0
  162. package/src/components/data-display/Table/Table.types.ts +335 -0
  163. package/src/components/data-display/Table/index.ts +2 -0
  164. package/src/components/data-display/Timeline/Timeline.md +201 -0
  165. package/src/components/data-display/Timeline/Timeline.stories.tsx +444 -0
  166. package/src/components/data-display/Timeline/Timeline.test.stories.tsx +944 -0
  167. package/src/components/data-display/Timeline/Timeline.tsx +348 -0
  168. package/src/components/data-display/Timeline/Timeline.types.ts +26 -0
  169. package/src/components/data-display/Timeline/index.ts +2 -0
  170. package/src/components/data-display/TimingDiagram/TimingDiagram.md +162 -0
  171. package/src/components/data-display/TimingDiagram/TimingDiagram.stories.tsx +475 -0
  172. package/src/components/data-display/TimingDiagram/TimingDiagram.test.stories.tsx +734 -0
  173. package/src/components/data-display/TimingDiagram/TimingDiagram.tsx +399 -0
  174. package/src/components/data-display/TimingDiagram/TimingDiagram.types.ts +19 -0
  175. package/src/components/data-display/TimingDiagram/index.ts +2 -0
  176. package/src/components/data-display/Tooltip/Tooltip.md +397 -0
  177. package/src/components/data-display/Tooltip/Tooltip.stories.tsx +465 -0
  178. package/src/components/data-display/Tooltip/Tooltip.test.stories.tsx +1168 -0
  179. package/src/components/data-display/Tooltip/Tooltip.tsx +161 -0
  180. package/src/components/data-display/Tooltip/Tooltip.types.ts +33 -0
  181. package/src/components/data-display/Tooltip/index.ts +2 -0
  182. package/src/components/data-display/index.ts +29 -0
  183. package/src/components/feedback/Dialog/Dialog.md +527 -0
  184. package/src/components/feedback/Dialog/Dialog.stories.tsx +833 -0
  185. package/src/components/feedback/Dialog/Dialog.styles.ts +171 -0
  186. package/src/components/feedback/Dialog/Dialog.test.stories.tsx +955 -0
  187. package/src/components/feedback/Dialog/Dialog.tsx +256 -0
  188. package/src/components/feedback/Dialog/Dialog.types.ts +46 -0
  189. package/src/components/feedback/Dialog/index.ts +9 -0
  190. package/src/components/feedback/Modal/Modal.md +629 -0
  191. package/src/components/feedback/Modal/Modal.stories.tsx +765 -0
  192. package/src/components/feedback/Modal/Modal.test.stories.tsx +251 -0
  193. package/src/components/feedback/Modal/Modal.tsx +279 -0
  194. package/src/components/feedback/Modal/Modal.types.ts +26 -0
  195. package/src/components/feedback/Modal/index.ts +7 -0
  196. package/src/components/feedback/Sonner/Sonner.stories.tsx +698 -0
  197. package/src/components/feedback/Sonner/Sonner.test.stories.tsx +896 -0
  198. package/src/components/feedback/Sonner/Sonner.tsx +493 -0
  199. package/src/components/feedback/Sonner/Sonner.types.ts +65 -0
  200. package/src/components/feedback/Sonner/index.ts +8 -0
  201. package/src/components/feedback/StackedModal/StackedModal.md +273 -0
  202. package/src/components/feedback/StackedModal/StackedModal.stories.tsx +1785 -0
  203. package/src/components/feedback/StackedModal/StackedModal.test.stories.tsx +975 -0
  204. package/src/components/feedback/StackedModal/StackedModal.tsx +664 -0
  205. package/src/components/feedback/StackedModal/StackedModal.types.ts +70 -0
  206. package/src/components/feedback/StackedModal/index.ts +11 -0
  207. package/src/components/feedback/Toast/Toast.md +547 -0
  208. package/src/components/feedback/Toast/Toast.stories.tsx +548 -0
  209. package/src/components/feedback/Toast/Toast.test.stories.tsx +834 -0
  210. package/src/components/feedback/Toast/Toast.tsx +279 -0
  211. package/src/components/feedback/Toast/Toast.types.ts +59 -0
  212. package/src/components/feedback/Toast/index.ts +8 -0
  213. package/src/components/feedback/TutorialOverlay/TutorialOverlay.md +610 -0
  214. package/src/components/feedback/TutorialOverlay/TutorialOverlay.stories.tsx +691 -0
  215. package/src/components/feedback/TutorialOverlay/TutorialOverlay.test.stories.tsx +634 -0
  216. package/src/components/feedback/TutorialOverlay/TutorialOverlay.tsx +554 -0
  217. package/src/components/feedback/TutorialOverlay/TutorialOverlay.types.ts +30 -0
  218. package/src/components/feedback/TutorialOverlay/index.ts +2 -0
  219. package/src/components/feedback/index.ts +6 -0
  220. package/src/components/form/AddressAutocomplete/AddressAutocomplete.md +633 -0
  221. package/src/components/form/AddressAutocomplete/AddressAutocomplete.stories.tsx +663 -0
  222. package/src/components/form/AddressAutocomplete/AddressAutocomplete.test.stories.tsx +723 -0
  223. package/src/components/form/AddressAutocomplete/AddressAutocomplete.tsx +836 -0
  224. package/src/components/form/AddressAutocomplete/AddressAutocomplete.types.ts +37 -0
  225. package/src/components/form/AddressAutocomplete/index.ts +2 -0
  226. package/src/components/form/Autocomplete/Autocomplete.helpers.ts +115 -0
  227. package/src/components/form/Autocomplete/Autocomplete.keys.ts +134 -0
  228. package/src/components/form/Autocomplete/Autocomplete.parts.tsx +337 -0
  229. package/src/components/form/Autocomplete/Autocomplete.stories.tsx +715 -0
  230. package/src/components/form/Autocomplete/Autocomplete.test.stories.tsx +825 -0
  231. package/src/components/form/Autocomplete/Autocomplete.tsx +166 -0
  232. package/src/components/form/Autocomplete/Autocomplete.types.ts +116 -0
  233. package/src/components/form/Autocomplete/autocomplete.md +789 -0
  234. package/src/components/form/Autocomplete/index.ts +8 -0
  235. package/src/components/form/Autocomplete/useAutocomplete.ts +311 -0
  236. package/src/components/form/Button/Button.md +411 -0
  237. package/src/components/form/Button/Button.stories.tsx +362 -0
  238. package/src/components/form/Button/Button.test.stories.tsx +603 -0
  239. package/src/components/form/Button/Button.tsx +326 -0
  240. package/src/components/form/Button/Button.types.ts +74 -0
  241. package/src/components/form/Button/index.ts +2 -0
  242. package/src/components/form/Calendar/Calendar.md +807 -0
  243. package/src/components/form/Calendar/Calendar.stories.tsx +349 -0
  244. package/src/components/form/Calendar/Calendar.test.stories.tsx +465 -0
  245. package/src/components/form/Calendar/Calendar.tsx +571 -0
  246. package/src/components/form/Calendar/Calendar.types.ts +81 -0
  247. package/src/components/form/Calendar/index.ts +11 -0
  248. package/src/components/form/Checkbox/Checkbox.md +200 -0
  249. package/src/components/form/Checkbox/Checkbox.stories.tsx +265 -0
  250. package/src/components/form/Checkbox/Checkbox.test.stories.tsx +181 -0
  251. package/src/components/form/Checkbox/Checkbox.tsx +170 -0
  252. package/src/components/form/Checkbox/Checkbox.types.ts +20 -0
  253. package/src/components/form/Checkbox/index.ts +2 -0
  254. package/src/components/form/CodeEditor/CodeEditor.md +350 -0
  255. package/src/components/form/CodeEditor/CodeEditor.stories.tsx +871 -0
  256. package/src/components/form/CodeEditor/CodeEditor.test.stories.tsx +575 -0
  257. package/src/components/form/CodeEditor/CodeEditor.tsx +415 -0
  258. package/src/components/form/CodeEditor/CodeEditor.types.ts +38 -0
  259. package/src/components/form/CodeEditor/index.ts +2 -0
  260. package/src/components/form/Command/Command.md +468 -0
  261. package/src/components/form/Command/Command.stories.tsx +580 -0
  262. package/src/components/form/Command/Command.test.stories.tsx +215 -0
  263. package/src/components/form/Command/Command.tsx +545 -0
  264. package/src/components/form/Command/Command.types.ts +116 -0
  265. package/src/components/form/Command/index.ts +12 -0
  266. package/src/components/form/CreatableSelect/CreatableSelect.md +114 -0
  267. package/src/components/form/CreatableSelect/CreatableSelect.stories.tsx +112 -0
  268. package/src/components/form/CreatableSelect/CreatableSelect.test.stories.tsx +134 -0
  269. package/src/components/form/CreatableSelect/CreatableSelect.tsx +149 -0
  270. package/src/components/form/CreatableSelect/CreatableSelect.types.ts +37 -0
  271. package/src/components/form/CreatableSelect/index.ts +2 -0
  272. package/src/components/form/Form/Form.md +325 -0
  273. package/src/components/form/Form/Form.stories.tsx +687 -0
  274. package/src/components/form/Form/Form.test.stories.tsx +601 -0
  275. package/src/components/form/Form/Form.tsx +136 -0
  276. package/src/components/form/Form/Form.types.ts +42 -0
  277. package/src/components/form/Form/index.ts +8 -0
  278. package/src/components/form/Input/Input.md +252 -0
  279. package/src/components/form/Input/Input.stories.tsx +256 -0
  280. package/src/components/form/Input/Input.test.stories.tsx +1184 -0
  281. package/src/components/form/Input/Input.tsx +263 -0
  282. package/src/components/form/Input/Input.types.ts +24 -0
  283. package/src/components/form/Input/index.ts +2 -0
  284. package/src/components/form/InputOTP/InputOTP.md +419 -0
  285. package/src/components/form/InputOTP/InputOTP.stories.tsx +774 -0
  286. package/src/components/form/InputOTP/InputOTP.test.stories.tsx +596 -0
  287. package/src/components/form/InputOTP/InputOTP.tsx +231 -0
  288. package/src/components/form/InputOTP/InputOTP.types.ts +68 -0
  289. package/src/components/form/InputOTP/index.ts +2 -0
  290. package/src/components/form/Label/Label.md +426 -0
  291. package/src/components/form/Label/Label.stories.tsx +473 -0
  292. package/src/components/form/Label/Label.test.stories.tsx +909 -0
  293. package/src/components/form/Label/Label.tsx +367 -0
  294. package/src/components/form/Label/Label.types.ts +35 -0
  295. package/src/components/form/Label/index.ts +2 -0
  296. package/src/components/form/Menubar/Menubar.md +275 -0
  297. package/src/components/form/Menubar/Menubar.stories.tsx +472 -0
  298. package/src/components/form/Menubar/Menubar.test.stories.tsx +588 -0
  299. package/src/components/form/Menubar/Menubar.tsx +467 -0
  300. package/src/components/form/Menubar/Menubar.types.ts +71 -0
  301. package/src/components/form/Menubar/index.ts +8 -0
  302. package/src/components/form/PasswordStrength/PasswordStrength.md +139 -0
  303. package/src/components/form/PasswordStrength/PasswordStrength.stories.tsx +562 -0
  304. package/src/components/form/PasswordStrength/PasswordStrength.test.stories.tsx +327 -0
  305. package/src/components/form/PasswordStrength/PasswordStrength.tsx +419 -0
  306. package/src/components/form/PasswordStrength/PasswordStrength.types.ts +18 -0
  307. package/src/components/form/PasswordStrength/index.ts +2 -0
  308. package/src/components/form/PhoneInput/PhoneInput.md +578 -0
  309. package/src/components/form/PhoneInput/PhoneInput.stories.tsx +495 -0
  310. package/src/components/form/PhoneInput/PhoneInput.test.stories.tsx +666 -0
  311. package/src/components/form/PhoneInput/PhoneInput.tsx +376 -0
  312. package/src/components/form/PhoneInput/PhoneInput.types.ts +25 -0
  313. package/src/components/form/PhoneInput/index.ts +2 -0
  314. package/src/components/form/RadioGroup/RadioGroup.md +477 -0
  315. package/src/components/form/RadioGroup/RadioGroup.stories.tsx +518 -0
  316. package/src/components/form/RadioGroup/RadioGroup.test.stories.tsx +685 -0
  317. package/src/components/form/RadioGroup/RadioGroup.tsx +664 -0
  318. package/src/components/form/RadioGroup/RadioGroup.types.ts +82 -0
  319. package/src/components/form/RadioGroup/index.ts +2 -0
  320. package/src/components/form/RichTextEditor/RichTextEditor.md +710 -0
  321. package/src/components/form/RichTextEditor/RichTextEditor.stories.tsx +261 -0
  322. package/src/components/form/RichTextEditor/RichTextEditor.test.stories.tsx +498 -0
  323. package/src/components/form/RichTextEditor/RichTextEditor.tsx +468 -0
  324. package/src/components/form/RichTextEditor/RichTextEditor.types.ts +72 -0
  325. package/src/components/form/RichTextEditor/index.ts +2 -0
  326. package/src/components/form/SearchPalette/SearchPalette.md +69 -0
  327. package/src/components/form/SearchPalette/SearchPalette.parts.tsx +358 -0
  328. package/src/components/form/SearchPalette/SearchPalette.stories.tsx +135 -0
  329. package/src/components/form/SearchPalette/SearchPalette.tsx +141 -0
  330. package/src/components/form/SearchPalette/SearchPalette.types.ts +82 -0
  331. package/src/components/form/SearchPalette/index.ts +7 -0
  332. package/src/components/form/Select/Select.md +254 -0
  333. package/src/components/form/Select/Select.stories.tsx +364 -0
  334. package/src/components/form/Select/Select.test.stories.tsx +977 -0
  335. package/src/components/form/Select/Select.tsx +239 -0
  336. package/src/components/form/Select/Select.types.ts +57 -0
  337. package/src/components/form/Select/index.ts +2 -0
  338. package/src/components/form/Slider/Slider.md +326 -0
  339. package/src/components/form/Slider/Slider.stories.tsx +418 -0
  340. package/src/components/form/Slider/Slider.test.stories.tsx +1044 -0
  341. package/src/components/form/Slider/Slider.tsx +374 -0
  342. package/src/components/form/Slider/Slider.types.ts +113 -0
  343. package/src/components/form/Slider/index.ts +2 -0
  344. package/src/components/form/Switch/Switch.md +565 -0
  345. package/src/components/form/Switch/Switch.stories.tsx +697 -0
  346. package/src/components/form/Switch/Switch.test.stories.tsx +597 -0
  347. package/src/components/form/Switch/Switch.tsx +578 -0
  348. package/src/components/form/Switch/Switch.types.ts +130 -0
  349. package/src/components/form/Switch/index.ts +2 -0
  350. package/src/components/form/Textarea/Textarea.stories.tsx +473 -0
  351. package/src/components/form/Textarea/Textarea.test.stories.tsx +708 -0
  352. package/src/components/form/Textarea/Textarea.tsx +678 -0
  353. package/src/components/form/Textarea/Textarea.types.ts +84 -0
  354. package/src/components/form/Textarea/index.ts +2 -0
  355. package/src/components/form/Toggle/Toggle.md +234 -0
  356. package/src/components/form/Toggle/Toggle.stories.tsx +638 -0
  357. package/src/components/form/Toggle/Toggle.test.stories.tsx +1167 -0
  358. package/src/components/form/Toggle/Toggle.tsx +265 -0
  359. package/src/components/form/Toggle/Toggle.types.ts +79 -0
  360. package/src/components/form/Toggle/index.ts +2 -0
  361. package/src/components/form/ToggleGroup/ToggleGroup.md +329 -0
  362. package/src/components/form/ToggleGroup/ToggleGroup.stories.tsx +617 -0
  363. package/src/components/form/ToggleGroup/ToggleGroup.test.stories.tsx +918 -0
  364. package/src/components/form/ToggleGroup/ToggleGroup.tsx +129 -0
  365. package/src/components/form/ToggleGroup/ToggleGroup.types.ts +53 -0
  366. package/src/components/form/ToggleGroup/index.ts +2 -0
  367. package/src/components/form/UploadButton/UploadButton.md +44 -0
  368. package/src/components/form/UploadButton/UploadButton.stories.tsx +366 -0
  369. package/src/components/form/UploadButton/UploadButton.test.stories.tsx +454 -0
  370. package/src/components/form/UploadButton/UploadButton.tsx +312 -0
  371. package/src/components/form/UploadButton/UploadButton.types.ts +58 -0
  372. package/src/components/form/UploadButton/index.ts +2 -0
  373. package/src/components/form/index.ts +25 -0
  374. package/src/components/form/total-form/Fields/SelectField.tsx +57 -0
  375. package/src/components/form/total-form/Fields/TextField.tsx +58 -0
  376. package/src/components/form/total-form/Fields/index.ts +4 -0
  377. package/src/components/form/total-form/FormContainer.tsx +104 -0
  378. package/src/components/form/total-form/FormContext.tsx +38 -0
  379. package/src/components/form/total-form/FormErrorSnackbar.tsx +35 -0
  380. package/src/components/form/total-form/SubmitButton.tsx +27 -0
  381. package/src/components/form/total-form/index.ts +12 -0
  382. package/src/components/form/total-form/total-form.test.tsx +97 -0
  383. package/src/components/index.ts +7 -0
  384. package/src/components/layout/Accordion/Accordion.md +725 -0
  385. package/src/components/layout/Accordion/Accordion.stories.tsx +690 -0
  386. package/src/components/layout/Accordion/Accordion.test.stories.tsx +1362 -0
  387. package/src/components/layout/Accordion/Accordion.tsx +242 -0
  388. package/src/components/layout/Accordion/Accordion.types.ts +32 -0
  389. package/src/components/layout/Accordion/index.ts +8 -0
  390. package/src/components/layout/Card/Card.md +533 -0
  391. package/src/components/layout/Card/Card.stories.tsx +593 -0
  392. package/src/components/layout/Card/Card.test.stories.tsx +1134 -0
  393. package/src/components/layout/Card/Card.tsx +404 -0
  394. package/src/components/layout/Card/Card.types.ts +57 -0
  395. package/src/components/layout/Card/index.ts +8 -0
  396. package/src/components/layout/Collapsible/Collapsible.md +135 -0
  397. package/src/components/layout/Collapsible/Collapsible.stories.tsx +180 -0
  398. package/src/components/layout/Collapsible/Collapsible.test.stories.tsx +304 -0
  399. package/src/components/layout/Collapsible/Collapsible.tsx +198 -0
  400. package/src/components/layout/Collapsible/Collapsible.types.ts +35 -0
  401. package/src/components/layout/Collapsible/index.ts +6 -0
  402. package/src/components/layout/Container/Container.md +420 -0
  403. package/src/components/layout/Container/Container.stories.tsx +557 -0
  404. package/src/components/layout/Container/Container.test.stories.tsx +750 -0
  405. package/src/components/layout/Container/Container.tsx +72 -0
  406. package/src/components/layout/Container/Container.types.ts +11 -0
  407. package/src/components/layout/Container/index.ts +2 -0
  408. package/src/components/layout/ContentToolbar/ColumnsMenu.tsx +99 -0
  409. package/src/components/layout/ContentToolbar/ContentToolbar.md +75 -0
  410. package/src/components/layout/ContentToolbar/ContentToolbar.stories.tsx +129 -0
  411. package/src/components/layout/ContentToolbar/ContentToolbar.test.stories.tsx +251 -0
  412. package/src/components/layout/ContentToolbar/ContentToolbar.tsx +108 -0
  413. package/src/components/layout/ContentToolbar/ContentToolbar.types.ts +229 -0
  414. package/src/components/layout/ContentToolbar/FilterTrigger.tsx +71 -0
  415. package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +297 -0
  416. package/src/components/layout/ContentToolbar/SavedViewsMenu.tsx +334 -0
  417. package/src/components/layout/ContentToolbar/SortByDropdown.tsx +213 -0
  418. package/src/components/layout/ContentToolbar/ViewSelector.tsx +98 -0
  419. package/src/components/layout/ContentToolbar/__tests__/ColumnsMenu.test.tsx +39 -0
  420. package/src/components/layout/ContentToolbar/__tests__/MultiSelectDropdown.test.tsx +110 -0
  421. package/src/components/layout/ContentToolbar/__tests__/SavedViewsMenu.test.tsx +99 -0
  422. package/src/components/layout/ContentToolbar/index.ts +24 -0
  423. package/src/components/layout/ContentToolbar/tests.md +42 -0
  424. package/src/components/layout/ContentToolbar/track.md +41 -0
  425. package/src/components/layout/Dashboard/Dashboard.md +71 -0
  426. package/src/components/layout/Dashboard/Dashboard.stories.tsx +104 -0
  427. package/src/components/layout/Dashboard/Dashboard.test.stories.tsx +164 -0
  428. package/src/components/layout/Dashboard/Dashboard.tsx +297 -0
  429. package/src/components/layout/Dashboard/Dashboard.types.ts +157 -0
  430. package/src/components/layout/Dashboard/DashboardContext.tsx +47 -0
  431. package/src/components/layout/Dashboard/DashboardParts.tsx +216 -0
  432. package/src/components/layout/Dashboard/index.ts +18 -0
  433. package/src/components/layout/Dashboard/tests.md +46 -0
  434. package/src/components/layout/Dashboard/track.md +50 -0
  435. package/src/components/layout/Drawer/Drawer.md +479 -0
  436. package/src/components/layout/Drawer/Drawer.stories.tsx +660 -0
  437. package/src/components/layout/Drawer/Drawer.test.stories.tsx +1339 -0
  438. package/src/components/layout/Drawer/Drawer.tsx +150 -0
  439. package/src/components/layout/Drawer/Drawer.types.ts +34 -0
  440. package/src/components/layout/Drawer/index.ts +2 -0
  441. package/src/components/layout/Resizable/Resizable.md +308 -0
  442. package/src/components/layout/Resizable/Resizable.stories.tsx +1039 -0
  443. package/src/components/layout/Resizable/Resizable.test.stories.tsx +750 -0
  444. package/src/components/layout/Resizable/Resizable.tsx +190 -0
  445. package/src/components/layout/Resizable/Resizable.types.ts +34 -0
  446. package/src/components/layout/Resizable/index.ts +2 -0
  447. package/src/components/layout/ScrollArea/ScrollArea.md +122 -0
  448. package/src/components/layout/ScrollArea/ScrollArea.stories.tsx +651 -0
  449. package/src/components/layout/ScrollArea/ScrollArea.test.stories.tsx +619 -0
  450. package/src/components/layout/ScrollArea/ScrollArea.tsx +449 -0
  451. package/src/components/layout/ScrollArea/ScrollArea.types.ts +80 -0
  452. package/src/components/layout/ScrollArea/index.ts +7 -0
  453. package/src/components/layout/Separator/Separator.stories.tsx +563 -0
  454. package/src/components/layout/Separator/Separator.test.stories.tsx +527 -0
  455. package/src/components/layout/Separator/Separator.tsx +187 -0
  456. package/src/components/layout/Separator/Separator.types.ts +17 -0
  457. package/src/components/layout/Separator/index.ts +2 -0
  458. package/src/components/layout/SettingsLayout/SettingsLayout.md +139 -0
  459. package/src/components/layout/SettingsLayout/SettingsLayout.parts.tsx +357 -0
  460. package/src/components/layout/SettingsLayout/SettingsLayout.stories.tsx +194 -0
  461. package/src/components/layout/SettingsLayout/SettingsLayout.test.stories.tsx +175 -0
  462. package/src/components/layout/SettingsLayout/SettingsLayout.tsx +69 -0
  463. package/src/components/layout/SettingsLayout/SettingsLayout.types.ts +61 -0
  464. package/src/components/layout/SettingsLayout/index.ts +6 -0
  465. package/src/components/layout/Sidebar/Sidebar.md +367 -0
  466. package/src/components/layout/Sidebar/Sidebar.stories.tsx +611 -0
  467. package/src/components/layout/Sidebar/Sidebar.test.stories.tsx +1326 -0
  468. package/src/components/layout/Sidebar/Sidebar.tsx +131 -0
  469. package/src/components/layout/Sidebar/Sidebar.types.ts +30 -0
  470. package/src/components/layout/Sidebar/index.ts +7 -0
  471. package/src/components/layout/Skeleton/Skeleton.md +240 -0
  472. package/src/components/layout/Skeleton/Skeleton.stories.tsx +689 -0
  473. package/src/components/layout/Skeleton/Skeleton.test.stories.tsx +521 -0
  474. package/src/components/layout/Skeleton/Skeleton.tsx +166 -0
  475. package/src/components/layout/Skeleton/Skeleton.types.ts +19 -0
  476. package/src/components/layout/Skeleton/index.ts +2 -0
  477. package/src/components/layout/Spacer/Spacer.md +84 -0
  478. package/src/components/layout/Spacer/Spacer.stories.tsx +502 -0
  479. package/src/components/layout/Spacer/Spacer.test.stories.tsx +472 -0
  480. package/src/components/layout/Spacer/Spacer.tsx +68 -0
  481. package/src/components/layout/Spacer/Spacer.types.ts +12 -0
  482. package/src/components/layout/Spacer/index.ts +2 -0
  483. package/src/components/layout/TableFilter/TableFilter.md +55 -0
  484. package/src/components/layout/TableFilter/TableFilter.stories.tsx +82 -0
  485. package/src/components/layout/TableFilter/TableFilter.test.stories.tsx +87 -0
  486. package/src/components/layout/TableFilter/TableFilter.tsx +383 -0
  487. package/src/components/layout/TableFilter/TableFilter.types.ts +87 -0
  488. package/src/components/layout/TableFilter/TableFilterContext.tsx +29 -0
  489. package/src/components/layout/TableFilter/index.ts +15 -0
  490. package/src/components/layout/TableFilter/tests.md +37 -0
  491. package/src/components/layout/TableFilter/track.md +36 -0
  492. package/src/components/layout/index.ts +14 -0
  493. package/src/components/navigation/Breadcrumbs/Breadcrumbs.md +558 -0
  494. package/src/components/navigation/Breadcrumbs/Breadcrumbs.stories.tsx +640 -0
  495. package/src/components/navigation/Breadcrumbs/Breadcrumbs.test.stories.tsx +1007 -0
  496. package/src/components/navigation/Breadcrumbs/Breadcrumbs.tsx +516 -0
  497. package/src/components/navigation/Breadcrumbs/Breadcrumbs.types.ts +132 -0
  498. package/src/components/navigation/Breadcrumbs/index.ts +2 -0
  499. package/src/components/navigation/CommandPalette/CommandPalette.md +201 -0
  500. package/src/components/navigation/CommandPalette/CommandPalette.stories.tsx +384 -0
  501. package/src/components/navigation/CommandPalette/CommandPalette.test.stories.tsx +437 -0
  502. package/src/components/navigation/CommandPalette/CommandPalette.tsx +434 -0
  503. package/src/components/navigation/CommandPalette/CommandPalette.types.ts +25 -0
  504. package/src/components/navigation/CommandPalette/index.ts +2 -0
  505. package/src/components/navigation/ContextMenu/ContextMenu.md +535 -0
  506. package/src/components/navigation/ContextMenu/ContextMenu.stories.tsx +611 -0
  507. package/src/components/navigation/ContextMenu/ContextMenu.test.stories.tsx +850 -0
  508. package/src/components/navigation/ContextMenu/ContextMenu.tsx +254 -0
  509. package/src/components/navigation/ContextMenu/ContextMenu.types.ts +96 -0
  510. package/src/components/navigation/ContextMenu/index.ts +2 -0
  511. package/src/components/navigation/DropdownMenu/DropdownMenu.md +514 -0
  512. package/src/components/navigation/DropdownMenu/DropdownMenu.stories.tsx +580 -0
  513. package/src/components/navigation/DropdownMenu/DropdownMenu.test.stories.tsx +660 -0
  514. package/src/components/navigation/DropdownMenu/DropdownMenu.tsx +305 -0
  515. package/src/components/navigation/DropdownMenu/DropdownMenu.types.ts +116 -0
  516. package/src/components/navigation/DropdownMenu/index.ts +2 -0
  517. package/src/components/navigation/NavigationMenu/NavigationMenu.md +580 -0
  518. package/src/components/navigation/NavigationMenu/NavigationMenu.tsx +874 -0
  519. package/src/components/navigation/NavigationMenu/NavigationMenu.types.ts +135 -0
  520. package/src/components/navigation/NavigationMenu/index.ts +2 -0
  521. package/src/components/navigation/NavigationMenu/stories/NavigationMenu.stories.tsx +518 -0
  522. package/src/components/navigation/NavigationMenu/stories/NavigationMenu.test.stories.tsx +931 -0
  523. package/src/components/navigation/NavigationMenu/stories/NavigationMenuHorizontal.stories.tsx +503 -0
  524. package/src/components/navigation/NavigationMenu/stories/NavigationMenuVertical.stories.tsx +455 -0
  525. package/src/components/navigation/Pagination/Pagination.md +699 -0
  526. package/src/components/navigation/Pagination/Pagination.stories.tsx +604 -0
  527. package/src/components/navigation/Pagination/Pagination.test.stories.tsx +520 -0
  528. package/src/components/navigation/Pagination/Pagination.tsx +356 -0
  529. package/src/components/navigation/Pagination/Pagination.types.ts +129 -0
  530. package/src/components/navigation/Pagination/index.ts +2 -0
  531. package/src/components/navigation/Tabs/Tabs.md +774 -0
  532. package/src/components/navigation/Tabs/Tabs.stories.tsx +1006 -0
  533. package/src/components/navigation/Tabs/Tabs.test.stories.tsx +1225 -0
  534. package/src/components/navigation/Tabs/Tabs.tsx +433 -0
  535. package/src/components/navigation/Tabs/Tabs.types.ts +239 -0
  536. package/src/components/navigation/Tabs/index.ts +2 -0
  537. package/src/components/navigation/index.ts +7 -0
  538. package/src/components/typography/Blockquote/Blockquote.md +130 -0
  539. package/src/components/typography/Blockquote/Blockquote.stories.tsx +359 -0
  540. package/src/components/typography/Blockquote/Blockquote.test.stories.tsx +432 -0
  541. package/src/components/typography/Blockquote/Blockquote.tsx +166 -0
  542. package/src/components/typography/Blockquote/Blockquote.types.ts +11 -0
  543. package/src/components/typography/Blockquote/index.ts +2 -0
  544. package/src/components/typography/Code/Code.md +182 -0
  545. package/src/components/typography/Code/Code.stories.tsx +686 -0
  546. package/src/components/typography/Code/Code.test.stories.tsx +703 -0
  547. package/src/components/typography/Code/Code.tsx +228 -0
  548. package/src/components/typography/Code/Code.types.ts +12 -0
  549. package/src/components/typography/Code/index.ts +2 -0
  550. package/src/components/typography/Heading/Heading.md +143 -0
  551. package/src/components/typography/Heading/Heading.stories.tsx +451 -0
  552. package/src/components/typography/Heading/Heading.test.stories.tsx +830 -0
  553. package/src/components/typography/Heading/Heading.tsx +178 -0
  554. package/src/components/typography/Heading/Heading.types.ts +11 -0
  555. package/src/components/typography/Heading/index.ts +2 -0
  556. package/src/components/typography/Paragraph/Paragraph.md +80 -0
  557. package/src/components/typography/Paragraph/Paragraph.stories.tsx +280 -0
  558. package/src/components/typography/Paragraph/Paragraph.test.stories.tsx +238 -0
  559. package/src/components/typography/Paragraph/Paragraph.tsx +99 -0
  560. package/src/components/typography/Paragraph/Paragraph.types.ts +10 -0
  561. package/src/components/typography/Paragraph/index.ts +2 -0
  562. package/src/components/typography/Text/Text.md +129 -0
  563. package/src/components/typography/Text/Text.stories.tsx +359 -0
  564. package/src/components/typography/Text/Text.test.stories.tsx +762 -0
  565. package/src/components/typography/Text/Text.tsx +159 -0
  566. package/src/components/typography/Text/Text.types.ts +15 -0
  567. package/src/components/typography/Text/index.ts +2 -0
  568. package/src/components/typography/index.ts +5 -0
  569. package/src/components/utility/AnimatedIcon/AnimatedIcon.md +359 -0
  570. package/src/components/utility/AnimatedIcon/AnimatedIcon.stories.tsx +947 -0
  571. package/src/components/utility/AnimatedIcon/AnimatedIcon.test.stories.tsx +596 -0
  572. package/src/components/utility/AnimatedIcon/AnimatedIcon.tsx +595 -0
  573. package/src/components/utility/AnimatedIcon/AnimatedIcon.types.ts +98 -0
  574. package/src/components/utility/AnimatedIcon/index.ts +2 -0
  575. package/src/components/utility/AspectRatio/AspectRatio.md +200 -0
  576. package/src/components/utility/AspectRatio/AspectRatio.stories.tsx +414 -0
  577. package/src/components/utility/AspectRatio/AspectRatio.test.stories.tsx +859 -0
  578. package/src/components/utility/AspectRatio/AspectRatio.tsx +76 -0
  579. package/src/components/utility/AspectRatio/AspectRatio.types.ts +13 -0
  580. package/src/components/utility/AspectRatio/index.ts +2 -0
  581. package/src/components/utility/InfiniteScroll/InfiniteScroll.md +531 -0
  582. package/src/components/utility/InfiniteScroll/InfiniteScroll.stories.tsx +620 -0
  583. package/src/components/utility/InfiniteScroll/InfiniteScroll.test.stories.tsx +358 -0
  584. package/src/components/utility/InfiniteScroll/InfiniteScroll.tsx +204 -0
  585. package/src/components/utility/InfiniteScroll/InfiniteScroll.types.ts +39 -0
  586. package/src/components/utility/InfiniteScroll/index.ts +6 -0
  587. package/src/components/utility/Portal/Portal.button-container.example.tsx +99 -0
  588. package/src/components/utility/Portal/Portal.md +593 -0
  589. package/src/components/utility/Portal/Portal.stories.tsx +340 -0
  590. package/src/components/utility/Portal/Portal.test.stories.tsx +2086 -0
  591. package/src/components/utility/Portal/Portal.tsx +39 -0
  592. package/src/components/utility/Portal/Portal.types.ts +7 -0
  593. package/src/components/utility/Portal/index.ts +2 -0
  594. package/src/components/utility/Transition/Transition.md +684 -0
  595. package/src/components/utility/Transition/Transition.stories.tsx +493 -0
  596. package/src/components/utility/Transition/Transition.test.stories.tsx +854 -0
  597. package/src/components/utility/Transition/Transition.tsx +140 -0
  598. package/src/components/utility/Transition/Transition.types.ts +14 -0
  599. package/src/components/utility/Transition/index.ts +6 -0
  600. package/src/components/utility/VirtualList/VirtualList.md +520 -0
  601. package/src/components/utility/VirtualList/VirtualList.stories.tsx +1073 -0
  602. package/src/components/utility/VirtualList/VirtualList.test.stories.tsx +1074 -0
  603. package/src/components/utility/VirtualList/VirtualList.tsx +369 -0
  604. package/src/components/utility/VirtualList/VirtualList.types.ts +56 -0
  605. package/src/components/utility/VirtualList/index.ts +7 -0
  606. package/src/components/utility/WorkflowStep/WorkflowStep.md +187 -0
  607. package/src/components/utility/WorkflowStep/WorkflowStep.stories.tsx +433 -0
  608. package/src/components/utility/WorkflowStep/WorkflowStep.test.stories.tsx +364 -0
  609. package/src/components/utility/WorkflowStep/WorkflowStep.tsx +506 -0
  610. package/src/components/utility/WorkflowStep/WorkflowStep.types.ts +133 -0
  611. package/src/components/utility/WorkflowStep/index.ts +13 -0
  612. package/src/components/utility/index.ts +7 -0
  613. package/src/index.ts +17 -0
  614. package/src/mui/AppBar.ts +2 -0
  615. package/src/mui/Box.ts +2 -0
  616. package/src/mui/CssBaseline.ts +2 -0
  617. package/src/mui/FormControl.ts +2 -0
  618. package/src/mui/FormControlLabel.ts +2 -0
  619. package/src/mui/Grid2.ts +2 -0
  620. package/src/mui/InputLabel.ts +2 -0
  621. package/src/mui/List.ts +2 -0
  622. package/src/mui/ListItem.ts +2 -0
  623. package/src/mui/ListItemButton.ts +2 -0
  624. package/src/mui/ListItemText.ts +2 -0
  625. package/src/mui/Stack.ts +2 -0
  626. package/src/mui/SvgIcon.ts +2 -0
  627. package/src/mui/Toolbar.ts +2 -0
  628. package/src/mui/styles.ts +2 -0
  629. package/src/mui/useMediaQuery.ts +1 -0
  630. package/src/social-login-button.tsx +199 -0
  631. package/src/user-avatar.tsx +102 -0
  632. package/src/utils/cn.ts +9 -0
  633. package/src/utils/index.ts +1 -0
@@ -0,0 +1,947 @@
1
+ import {
2
+ AccountCircle,
3
+ AutoAwesome,
4
+ Bolt,
5
+ Diamond,
6
+ Download,
7
+ Favorite,
8
+ FlashOn,
9
+ Home,
10
+ Lens,
11
+ Lightbulb,
12
+ Notifications,
13
+ Psychology,
14
+ Refresh,
15
+ Rocket,
16
+ Search,
17
+ Settings,
18
+ Star,
19
+ Upload,
20
+ Waves,
21
+ } from '@mui/icons-material';
22
+ import { Box, Chip,Grid, Paper, Stack, Typography } from '@mui/material';
23
+ import type { Meta, StoryObj } from '@storybook/react-vite';
24
+ import React from 'react';
25
+
26
+ import { AnimatedIcon } from './AnimatedIcon';
27
+
28
+ const meta: Meta<typeof AnimatedIcon> = {
29
+ title: 'Enhanced/AnimatedIcon',
30
+ component: AnimatedIcon,
31
+ parameters: {
32
+ layout: 'centered',
33
+ docs: {
34
+ description: {
35
+ component:
36
+ 'Advanced animated icon wrapper with 17 animation variants and multiple visual effects including glow, glass morphism, metallic, gradient, neon, and holographic styles.',
37
+ },
38
+ },
39
+ },
40
+ tags: ['autodocs', 'component:AnimatedIcon'],
41
+ argTypes: {
42
+ children: {
43
+ control: false,
44
+ description: 'Icon element to animate - can be any React node (MUI icon, SVG, etc.)',
45
+ },
46
+ variant: {
47
+ control: 'select',
48
+ options: [
49
+ 'none',
50
+ 'rotate',
51
+ 'pulse',
52
+ 'translate',
53
+ 'bounce',
54
+ 'shake',
55
+ 'flip',
56
+ 'spin',
57
+ 'fadeInOut',
58
+ 'heartbeat',
59
+ 'wobble',
60
+ 'morph',
61
+ 'swing',
62
+ 'float',
63
+ 'jello',
64
+ 'neonFlicker',
65
+ 'breathe',
66
+ ],
67
+ description: 'Animation variant to apply',
68
+ },
69
+ size: {
70
+ control: 'select',
71
+ options: ['sm', 'md', 'lg', 'xl'],
72
+ description: 'Size of the animated icon container',
73
+ },
74
+ color: {
75
+ control: 'color',
76
+ description: 'Custom color override for the icon',
77
+ },
78
+ duration: {
79
+ control: { type: 'range', min: 0.5, max: 5, step: 0.5 },
80
+ description: 'Animation duration in seconds',
81
+ },
82
+ delay: {
83
+ control: { type: 'range', min: 0, max: 3, step: 0.5 },
84
+ description: 'Animation delay in seconds',
85
+ },
86
+ loop: {
87
+ control: 'boolean',
88
+ description: 'Whether the animation should loop infinitely',
89
+ },
90
+ glow: {
91
+ control: 'boolean',
92
+ description: 'Enable glow effect around the icon',
93
+ },
94
+ glass: {
95
+ control: 'boolean',
96
+ description: 'Enable glass morphism effect',
97
+ },
98
+ glowColor: {
99
+ control: 'color',
100
+ description: 'Glow color (only used when glow is true)',
101
+ },
102
+ metallic: {
103
+ control: 'boolean',
104
+ description: 'Enable metallic appearance',
105
+ },
106
+ gradient: {
107
+ control: 'boolean',
108
+ description: 'Enable gradient background',
109
+ },
110
+ shadow: {
111
+ control: 'select',
112
+ options: ['none', 'soft', 'hard', 'elevated'],
113
+ description: 'Shadow style for the icon',
114
+ },
115
+ ripple: {
116
+ control: 'boolean',
117
+ description: 'Enable ripple effect overlay',
118
+ },
119
+ neon: {
120
+ control: 'boolean',
121
+ description: 'Enable neon glow effect',
122
+ },
123
+ holographic: {
124
+ control: 'boolean',
125
+ description: 'Enable holographic rainbow effect',
126
+ },
127
+ },
128
+ };
129
+
130
+ export default meta;
131
+ type Story = StoryObj<typeof meta>;
132
+
133
+ // Required Default story
134
+ export const Default: Story = {
135
+ args: {
136
+ children: <Star />,
137
+ },
138
+ };
139
+
140
+ export const Playground: Story = {
141
+ args: {
142
+ children: <Star />,
143
+ variant: 'spin',
144
+ size: 'lg',
145
+ duration: 2,
146
+ glow: true,
147
+ glowColor: '#FFD700',
148
+ },
149
+ };
150
+
151
+ // Showcase all animation variants
152
+ // Comprehensive showcase of all animation variants
153
+ export const AllVariants: Story = {
154
+ args: {},
155
+ render: () => {
156
+ const variants = [
157
+ { variant: 'none', icon: <Home />, description: 'No animation, static display' },
158
+ { variant: 'rotate', icon: <Refresh />, description: 'Continuous rotation animation' },
159
+ { variant: 'pulse', icon: <Favorite />, description: 'Scale pulsing effect' },
160
+ { variant: 'translate', icon: <Star />, description: 'Vertical translation movement' },
161
+ { variant: 'bounce', icon: <Download />, description: 'Bouncing with gravity effect' },
162
+ { variant: 'shake', icon: <Notifications />, description: 'Horizontal shaking motion' },
163
+ { variant: 'flip', icon: <AccountCircle />, description: '3D flip rotation effect' },
164
+ { variant: 'spin', icon: <Settings />, description: 'Rotating with scale change' },
165
+ { variant: 'fadeInOut', icon: <Search />, description: 'Opacity fade animation' },
166
+ { variant: 'heartbeat', icon: <Favorite />, description: 'Double pulse heartbeat' },
167
+ { variant: 'wobble', icon: <Diamond />, description: 'Wobbly side-to-side motion' },
168
+ { variant: 'morph', icon: <Lens />, description: 'Shape morphing animation' },
169
+ { variant: 'swing', icon: <Lightbulb />, description: 'Pendulum swing motion' },
170
+ { variant: 'float', icon: <Rocket />, description: 'Floating in space effect' },
171
+ { variant: 'jello', icon: <AutoAwesome />, description: 'Jelly-like elastic bounce' },
172
+ { variant: 'neonFlicker', icon: <Bolt />, description: 'Neon sign flicker effect' },
173
+ { variant: 'breathe', icon: <Psychology />, description: 'Gentle breathing pulse' },
174
+ ] as const;
175
+
176
+ return (
177
+ <Grid container spacing={3}>
178
+ {variants.map(({ variant, icon, description }) => (
179
+ <Grid item xs={12} sm={6} md={4} lg={3} key={variant}>
180
+ <Paper
181
+ sx={{
182
+ p: 3,
183
+ textAlign: 'center',
184
+ height: '100%',
185
+ background:
186
+ 'linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05))',
187
+ backdropFilter: 'blur(10px)',
188
+ border: '1px solid',
189
+ borderColor: 'divider',
190
+ transition: 'all 0.3s ease',
191
+ '&:hover': {
192
+ transform: 'translateY(-4px)',
193
+ boxShadow: '0 8px 24px rgba(0,0,0,0.1)',
194
+ },
195
+ }}
196
+ >
197
+ <AnimatedIcon variant={variant} size="lg">
198
+ {icon}
199
+ </AnimatedIcon>
200
+ <Typography
201
+ variant="h6"
202
+ sx={{ mt: 2, textTransform: 'capitalize', fontWeight: 'bold' }}
203
+ >
204
+ {variant === 'none' ? 'Static' : variant.replace(/([A-Z])/g, ' $1').trim()}
205
+ </Typography>
206
+ <Typography variant="body2" color="text.secondary" sx={{ mt: 1 }}>
207
+ {description}
208
+ </Typography>
209
+ </Paper>
210
+ </Grid>
211
+ ))}
212
+ </Grid>
213
+ );
214
+ },
215
+ };
216
+
217
+ // New comprehensive animation showcase
218
+ export const AllAnimationVariants: Story = {
219
+ args: {},
220
+ render: () => {
221
+ const variants = [
222
+ { variant: 'rotate', icon: <Refresh />, description: 'Continuous rotation' },
223
+ { variant: 'pulse', icon: <Favorite />, description: 'Scale pulsing' },
224
+ { variant: 'translate', icon: <Upload />, description: 'Vertical movement' },
225
+ { variant: 'bounce', icon: <Download />, description: 'Bouncing effect' },
226
+ { variant: 'shake', icon: <Notifications />, description: 'Horizontal shake' },
227
+ { variant: 'flip', icon: <AccountCircle />, description: '3D flip rotation' },
228
+ { variant: 'spin', icon: <Settings />, description: 'Spin with scale' },
229
+ { variant: 'fadeInOut', icon: <Star />, description: 'Opacity fade' },
230
+ { variant: 'heartbeat', icon: <Favorite />, description: 'Double pulse' },
231
+ { variant: 'wobble', icon: <Home />, description: 'Wobbly motion' },
232
+ { variant: 'morph', icon: <Lens />, description: 'Shape morphing' },
233
+ { variant: 'swing', icon: <Notifications />, description: 'Pendulum swing' },
234
+ { variant: 'float', icon: <Rocket />, description: 'Floating in space' },
235
+ { variant: 'jello', icon: <Diamond />, description: 'Jelly elastic' },
236
+ { variant: 'neonFlicker', icon: <Bolt />, description: 'Neon flicker' },
237
+ { variant: 'breathe', icon: <Psychology />, description: 'Gentle breathing' },
238
+ ] as const;
239
+
240
+ return (
241
+ <Grid container spacing={3} sx={{ maxWidth: 1200 }}>
242
+ {variants.map(({ variant, icon, description }) => (
243
+ <Grid item xs={6} sm={4} md={3} key={variant}>
244
+ <Paper
245
+ sx={{
246
+ p: 3,
247
+ textAlign: 'center',
248
+ height: '100%',
249
+ background:
250
+ 'linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05))',
251
+ backdropFilter: 'blur(10px)',
252
+ border: '1px solid',
253
+ borderColor: 'divider',
254
+ transition: 'transform 0.3s',
255
+ '&:hover': {
256
+ transform: 'translateY(-4px)',
257
+ },
258
+ }}
259
+ >
260
+ <AnimatedIcon variant={variant} size="lg">
261
+ {icon}
262
+ </AnimatedIcon>
263
+ <Typography variant="subtitle2" sx={{ mt: 2, fontWeight: 'bold' }}>
264
+ {variant}
265
+ </Typography>
266
+ <Typography variant="caption" color="text.secondary" display="block">
267
+ {description}
268
+ </Typography>
269
+ </Paper>
270
+ </Grid>
271
+ ))}
272
+ </Grid>
273
+ );
274
+ },
275
+ };
276
+
277
+ // Visual Effects Showcase
278
+ export const VisualEffects: Story = {
279
+ args: {},
280
+ render: () => (
281
+ <Stack spacing={4}>
282
+ <Typography variant="h5">Visual Effects Gallery</Typography>
283
+
284
+ <Grid container spacing={3}>
285
+ <Grid item xs={12} sm={6} md={4}>
286
+ <Paper sx={{ p: 3, textAlign: 'center', background: '#1a1a1a' }}>
287
+ <AnimatedIcon variant="pulse" size="lg" glow glowColor="#FFD700">
288
+ <Star />
289
+ </AnimatedIcon>
290
+ <Typography variant="subtitle1" sx={{ mt: 2, color: 'common.white' }}>
291
+ Glow Effect
292
+ </Typography>
293
+ <Typography variant="caption" sx={{ color: 'gray' }}>
294
+ Radiant aura animation
295
+ </Typography>
296
+ </Paper>
297
+ </Grid>
298
+
299
+ <Grid item xs={12} sm={6} md={4}>
300
+ <Paper
301
+ sx={{
302
+ p: 3,
303
+ textAlign: 'center',
304
+ background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
305
+ }}
306
+ >
307
+ <AnimatedIcon variant="rotate" size="lg" glass>
308
+ <Diamond />
309
+ </AnimatedIcon>
310
+ <Typography variant="subtitle1" sx={{ mt: 2, color: 'common.white' }}>
311
+ Glass Morphism
312
+ </Typography>
313
+ <Typography variant="caption" sx={{ color: 'rgba(255,255,255,0.8)' }}>
314
+ Frosted glass effect
315
+ </Typography>
316
+ </Paper>
317
+ </Grid>
318
+
319
+ <Grid item xs={12} sm={6} md={4}>
320
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
321
+ <AnimatedIcon variant="spin" size="lg" metallic>
322
+ <Settings />
323
+ </AnimatedIcon>
324
+ <Typography variant="subtitle1" sx={{ mt: 2 }}>
325
+ Metallic
326
+ </Typography>
327
+ <Typography variant="caption" color="text.secondary">
328
+ Chrome-like finish
329
+ </Typography>
330
+ </Paper>
331
+ </Grid>
332
+
333
+ <Grid item xs={12} sm={6} md={4}>
334
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
335
+ <AnimatedIcon variant="float" size="lg" gradient>
336
+ <Rocket />
337
+ </AnimatedIcon>
338
+ <Typography variant="subtitle1" sx={{ mt: 2 }}>
339
+ Gradient
340
+ </Typography>
341
+ <Typography variant="caption" color="text.secondary">
342
+ Color gradient background
343
+ </Typography>
344
+ </Paper>
345
+ </Grid>
346
+
347
+ <Grid item xs={12} sm={6} md={4}>
348
+ <Paper sx={{ p: 3, textAlign: 'center', background: '#0a0a0a' }}>
349
+ <AnimatedIcon variant="neonFlicker" size="lg" neon color="#00ffff">
350
+ <Bolt />
351
+ </AnimatedIcon>
352
+ <Typography variant="subtitle1" sx={{ mt: 2, color: '#00ffff' }}>
353
+ Neon
354
+ </Typography>
355
+ <Typography variant="caption" sx={{ color: 'gray' }}>
356
+ Electric neon glow
357
+ </Typography>
358
+ </Paper>
359
+ </Grid>
360
+
361
+ <Grid item xs={12} sm={6} md={4}>
362
+ <Paper sx={{ p: 3, textAlign: 'center', background: '#1a0033' }}>
363
+ <AnimatedIcon variant="breathe" size="lg" holographic>
364
+ <AutoAwesome />
365
+ </AnimatedIcon>
366
+ <Typography variant="subtitle1" sx={{ mt: 2, color: 'common.white' }}>
367
+ Holographic
368
+ </Typography>
369
+ <Typography variant="caption" sx={{ color: 'rgba(255,255,255,0.7)' }}>
370
+ Rainbow shimmer
371
+ </Typography>
372
+ </Paper>
373
+ </Grid>
374
+ </Grid>
375
+ </Stack>
376
+ ),
377
+ };
378
+
379
+ // Shadow Styles
380
+ export const ShadowStyles: Story = {
381
+ args: {},
382
+ render: () => (
383
+ <Stack spacing={4}>
384
+ <Typography variant="h5">Shadow Variations</Typography>
385
+ <Grid container spacing={3}>
386
+ {(['none', 'soft', 'hard', 'elevated'] as const).map((shadow) => (
387
+ <Grid item xs={6} sm={3} key={shadow}>
388
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
389
+ <AnimatedIcon variant="pulse" size="lg" shadow={shadow}>
390
+ <Lightbulb />
391
+ </AnimatedIcon>
392
+ <Typography variant="subtitle2" sx={{ mt: 2, textTransform: 'capitalize' }}>
393
+ {shadow === 'none' ? 'No Shadow' : `${shadow} Shadow`}
394
+ </Typography>
395
+ </Paper>
396
+ </Grid>
397
+ ))}
398
+ </Grid>
399
+ </Stack>
400
+ ),
401
+ };
402
+
403
+ // Combined Effects
404
+ export const CombinedEffects: Story = {
405
+ args: {},
406
+ render: () => (
407
+ <Stack spacing={4}>
408
+ <Typography variant="h5">Combined Effects</Typography>
409
+ <Grid container spacing={3}>
410
+ <Grid item xs={12} sm={6} md={4}>
411
+ <Paper
412
+ sx={{
413
+ p: 3,
414
+ textAlign: 'center',
415
+ background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
416
+ }}
417
+ >
418
+ <AnimatedIcon variant="spin" size="lg" glow glass glowColor="#ffffff">
419
+ <Diamond />
420
+ </AnimatedIcon>
421
+ <Typography variant="subtitle2" sx={{ mt: 2, color: 'common.white' }}>
422
+ Glass + Glow + Spin
423
+ </Typography>
424
+ </Paper>
425
+ </Grid>
426
+
427
+ <Grid item xs={12} sm={6} md={4}>
428
+ <Paper sx={{ p: 3, textAlign: 'center', background: '#0f0f0f' }}>
429
+ <AnimatedIcon variant="float" size="lg" neon ripple color="#ff00ff">
430
+ <FlashOn />
431
+ </AnimatedIcon>
432
+ <Typography variant="subtitle2" sx={{ mt: 2, color: '#ff00ff' }}>
433
+ Neon + Ripple + Float
434
+ </Typography>
435
+ </Paper>
436
+ </Grid>
437
+
438
+ <Grid item xs={12} sm={6} md={4}>
439
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
440
+ <AnimatedIcon variant="heartbeat" size="lg" gradient shadow="elevated">
441
+ <Favorite />
442
+ </AnimatedIcon>
443
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
444
+ Gradient + Shadow + Heartbeat
445
+ </Typography>
446
+ </Paper>
447
+ </Grid>
448
+
449
+ <Grid item xs={12} sm={6} md={4}>
450
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
451
+ <AnimatedIcon variant="wobble" size="lg" metallic shadow="hard">
452
+ <Settings />
453
+ </AnimatedIcon>
454
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
455
+ Metallic + Hard Shadow + Wobble
456
+ </Typography>
457
+ </Paper>
458
+ </Grid>
459
+
460
+ <Grid item xs={12} sm={6} md={4}>
461
+ <Paper
462
+ sx={{
463
+ p: 3,
464
+ textAlign: 'center',
465
+ background: 'linear-gradient(135deg, #1e3c72 0%, #2a5298 100%)',
466
+ }}
467
+ >
468
+ <AnimatedIcon variant="morph" size="lg" holographic glow>
469
+ <AutoAwesome />
470
+ </AnimatedIcon>
471
+ <Typography variant="subtitle2" sx={{ mt: 2, color: 'common.white' }}>
472
+ Holographic + Glow + Morph
473
+ </Typography>
474
+ </Paper>
475
+ </Grid>
476
+
477
+ <Grid item xs={12} sm={6} md={4}>
478
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
479
+ <AnimatedIcon variant="jello" size="lg" glass ripple shadow="soft">
480
+ <Waves />
481
+ </AnimatedIcon>
482
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
483
+ Glass + Ripple + Soft Shadow
484
+ </Typography>
485
+ </Paper>
486
+ </Grid>
487
+ </Grid>
488
+ </Stack>
489
+ ),
490
+ };
491
+
492
+ // Interactive Demo
493
+ export const InteractiveDemo: Story = {
494
+ args: {},
495
+ render: () => {
496
+ const [selectedVariant, setSelectedVariant] = React.useState<string>('spin');
497
+ const [effects, setEffects] = React.useState({
498
+ glow: false,
499
+ glass: false,
500
+ metallic: false,
501
+ gradient: false,
502
+ neon: false,
503
+ holographic: false,
504
+ ripple: false,
505
+ });
506
+
507
+ const toggleEffect = (effect: keyof typeof effects) => {
508
+ setEffects((prev) => ({ ...prev, [effect]: !prev[effect] }));
509
+ };
510
+
511
+ return (
512
+ <Stack spacing={4} sx={{ minWidth: 600 }}>
513
+ <Typography variant="h5">Interactive Playground</Typography>
514
+
515
+ <Paper
516
+ sx={{
517
+ p: 4,
518
+ textAlign: 'center',
519
+ minHeight: 200,
520
+ display: 'flex',
521
+ alignItems: 'center',
522
+ justifyContent: 'center',
523
+ }}
524
+ >
525
+ <AnimatedIcon
526
+ variant={selectedVariant}
527
+ size="xl"
528
+ {...effects}
529
+ shadow={effects.metallic ? 'hard' : effects.glass ? 'soft' : 'none'}
530
+ color={effects.neon ? '#00ff00' : undefined}
531
+ >
532
+ <Star />
533
+ </AnimatedIcon>
534
+ </Paper>
535
+
536
+ <Box>
537
+ <Typography variant="subtitle2" gutterBottom>
538
+ Animation Variant
539
+ </Typography>
540
+ <Grid container spacing={1}>
541
+ {['spin', 'pulse', 'bounce', 'float', 'heartbeat', 'wobble', 'neonFlicker'].map(
542
+ (variant) => (
543
+ <Grid item key={variant}>
544
+ <Chip
545
+ label={variant}
546
+ onClick={() => setSelectedVariant(variant)}
547
+ color={selectedVariant === variant ? 'primary' : 'default'}
548
+ variant={selectedVariant === variant ? 'filled' : 'outlined'}
549
+ />
550
+ </Grid>
551
+ ),
552
+ )}
553
+ </Grid>
554
+ </Box>
555
+
556
+ <Box>
557
+ <Typography variant="subtitle2" gutterBottom>
558
+ Visual Effects
559
+ </Typography>
560
+ <Grid container spacing={1}>
561
+ {Object.keys(effects).map((effect) => (
562
+ <Grid item key={effect}>
563
+ <Chip
564
+ label={effect}
565
+ onClick={() => toggleEffect(effect as keyof typeof effects)}
566
+ color={effects[effect as keyof typeof effects] ? 'secondary' : 'default'}
567
+ variant={effects[effect as keyof typeof effects] ? 'filled' : 'outlined'}
568
+ />
569
+ </Grid>
570
+ ))}
571
+ </Grid>
572
+ </Box>
573
+ </Stack>
574
+ );
575
+ },
576
+ };
577
+
578
+ // Use Cases
579
+ export const UseCases: Story = {
580
+ args: {},
581
+ render: () => (
582
+ <Stack spacing={4}>
583
+ <Typography variant="h5">Real-World Use Cases</Typography>
584
+
585
+ <Paper sx={{ p: 3, background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)' }}>
586
+ <Stack direction="row" spacing={2} alignItems="center">
587
+ <AnimatedIcon variant="rotate" size="md" color="#ffffff" glass>
588
+ <Refresh />
589
+ </AnimatedIcon>
590
+ <Box>
591
+ <Typography variant="h6" sx={{ color: 'common.white' }}>
592
+ Loading State
593
+ </Typography>
594
+ <Typography variant="body2" sx={{ color: 'rgba(255,255,255,0.9)' }}>
595
+ Processing your request...
596
+ </Typography>
597
+ </Box>
598
+ </Stack>
599
+ </Paper>
600
+
601
+ <Paper sx={{ p: 3, background: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)' }}>
602
+ <Stack direction="row" spacing={2} alignItems="center">
603
+ <AnimatedIcon variant="heartbeat" size="md" color="#ffffff" glow>
604
+ <Favorite />
605
+ </AnimatedIcon>
606
+ <Box>
607
+ <Typography variant="h6" sx={{ color: 'common.white' }}>
608
+ Like Animation
609
+ </Typography>
610
+ <Typography variant="body2" sx={{ color: 'rgba(255,255,255,0.9)' }}>
611
+ Double-tap to like this post
612
+ </Typography>
613
+ </Box>
614
+ </Stack>
615
+ </Paper>
616
+
617
+ <Paper sx={{ p: 3, background: '#0f0f0f' }}>
618
+ <Stack direction="row" spacing={2} alignItems="center">
619
+ <AnimatedIcon variant="neonFlicker" size="md" neon color="#00ffff">
620
+ <Bolt />
621
+ </AnimatedIcon>
622
+ <Box>
623
+ <Typography variant="h6" sx={{ color: '#00ffff' }}>
624
+ Power Mode
625
+ </Typography>
626
+ <Typography variant="body2" sx={{ color: 'gray' }}>
627
+ High performance enabled
628
+ </Typography>
629
+ </Box>
630
+ </Stack>
631
+ </Paper>
632
+
633
+ <Paper sx={{ p: 3 }}>
634
+ <Stack direction="row" spacing={2} alignItems="center">
635
+ <AnimatedIcon variant="bounce" size="md" gradient shadow="elevated">
636
+ <Download />
637
+ </AnimatedIcon>
638
+ <Box>
639
+ <Typography variant="h6">Download Ready</Typography>
640
+ <Typography variant="body2" color="text.secondary">
641
+ Your file is ready to download
642
+ </Typography>
643
+ </Box>
644
+ </Stack>
645
+ </Paper>
646
+
647
+ <Paper sx={{ p: 3, background: 'linear-gradient(135deg, #fa709a 0%, #fee140 100%)' }}>
648
+ <Stack direction="row" spacing={2} alignItems="center">
649
+ <AnimatedIcon variant="float" size="md" color="#ffffff" ripple>
650
+ <Rocket />
651
+ </AnimatedIcon>
652
+ <Box>
653
+ <Typography variant="h6" sx={{ color: 'common.white' }}>
654
+ Launch Ready
655
+ </Typography>
656
+ <Typography variant="body2" sx={{ color: 'rgba(255,255,255,0.9)' }}>
657
+ Deployment in progress
658
+ </Typography>
659
+ </Box>
660
+ </Stack>
661
+ </Paper>
662
+ </Stack>
663
+ ),
664
+ };
665
+
666
+ // Performance Demo
667
+ export const PerformanceDemo: Story = {
668
+ args: {},
669
+ render: () => (
670
+ <Stack spacing={4}>
671
+ <Typography variant="h5">Performance Test - Multiple Animations</Typography>
672
+ <Typography variant="body2" color="text.secondary">
673
+ All animations running simultaneously with different timings
674
+ </Typography>
675
+
676
+ <Grid container spacing={2}>
677
+ {Array.from({ length: 20 }, (_, i) => {
678
+ const variants = ['spin', 'pulse', 'bounce', 'float', 'wobble', 'heartbeat'] as const;
679
+ const variant = variants[i % variants.length];
680
+ const duration = 1 + (i % 4) * 0.5;
681
+
682
+ return (
683
+ <Grid item xs={3} sm={2} key={i}>
684
+ <Paper sx={{ p: 2, textAlign: 'center' }}>
685
+ <AnimatedIcon
686
+ variant={variant}
687
+ size="md"
688
+ duration={duration}
689
+ color={`hsl(${i * 18}, 70%, 50%)`}
690
+ >
691
+ <Star />
692
+ </AnimatedIcon>
693
+ <Typography variant="caption" display="block" sx={{ mt: 1 }}>
694
+ {duration}s
695
+ </Typography>
696
+ </Paper>
697
+ </Grid>
698
+ );
699
+ })}
700
+ </Grid>
701
+ </Stack>
702
+ ),
703
+ };
704
+
705
+ // Required AllSizes story
706
+ export const AllSizes: Story = {
707
+ args: {},
708
+ render: () => (
709
+ <Stack spacing={4} alignItems="center">
710
+ <Typography variant="h5">Size Variations</Typography>
711
+ <Grid container spacing={3} justifyContent="center">
712
+ {(['sm', 'md', 'lg', 'xl'] as const).map((size) => (
713
+ <Grid item key={size}>
714
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
715
+ <AnimatedIcon variant="pulse" size={size}>
716
+ <Star />
717
+ </AnimatedIcon>
718
+ <Typography variant="subtitle2" sx={{ mt: 2, textTransform: 'uppercase' }}>
719
+ {size}
720
+ </Typography>
721
+ </Paper>
722
+ </Grid>
723
+ ))}
724
+ </Grid>
725
+ </Stack>
726
+ ),
727
+ };
728
+
729
+ // Required AllStates story
730
+ export const AllStates: Story = {
731
+ args: {},
732
+ render: () => (
733
+ <Stack spacing={4}>
734
+ <Typography variant="h5">All Component States</Typography>
735
+ <Grid container spacing={3}>
736
+ <Grid item xs={12} sm={6} md={4}>
737
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
738
+ <AnimatedIcon variant="none" size="lg">
739
+ <Star />
740
+ </AnimatedIcon>
741
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
742
+ Static State
743
+ </Typography>
744
+ </Paper>
745
+ </Grid>
746
+ <Grid item xs={12} sm={6} md={4}>
747
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
748
+ <AnimatedIcon variant="rotate" size="lg">
749
+ <Refresh />
750
+ </AnimatedIcon>
751
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
752
+ Loading State
753
+ </Typography>
754
+ </Paper>
755
+ </Grid>
756
+ <Grid item xs={12} sm={6} md={4}>
757
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
758
+ <AnimatedIcon variant="pulse" size="lg" glow glowColor="#4CAF50">
759
+ <Favorite />
760
+ </AnimatedIcon>
761
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
762
+ Active State
763
+ </Typography>
764
+ </Paper>
765
+ </Grid>
766
+ <Grid item xs={12} sm={6} md={4}>
767
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
768
+ <AnimatedIcon variant="bounce" size="lg" color="#F44336">
769
+ <Notifications />
770
+ </AnimatedIcon>
771
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
772
+ Alert State
773
+ </Typography>
774
+ </Paper>
775
+ </Grid>
776
+ <Grid item xs={12} sm={6} md={4}>
777
+ <Paper sx={{ p: 3, textAlign: 'center', opacity: 0.5 }}>
778
+ <AnimatedIcon variant="none" size="lg" color="#ccc">
779
+ <Settings />
780
+ </AnimatedIcon>
781
+ <Typography variant="subtitle2" sx={{ mt: 2, color: 'text.disabled' }}>
782
+ Disabled State
783
+ </Typography>
784
+ </Paper>
785
+ </Grid>
786
+ <Grid item xs={12} sm={6} md={4}>
787
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
788
+ <AnimatedIcon variant="heartbeat" size="lg" glow glowColor="#FF6B6B">
789
+ <Bolt />
790
+ </AnimatedIcon>
791
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
792
+ Success State
793
+ </Typography>
794
+ </Paper>
795
+ </Grid>
796
+ </Grid>
797
+ </Stack>
798
+ ),
799
+ };
800
+
801
+ // Required InteractiveStates story
802
+ export const InteractiveStates: Story = {
803
+ args: {},
804
+ render: () => {
805
+ const [isActive, setIsActive] = React.useState(false);
806
+ const [isHovered, setIsHovered] = React.useState(false);
807
+ const [isFocused, setIsFocused] = React.useState(false);
808
+
809
+ return (
810
+ <Stack spacing={4}>
811
+ <Typography variant="h5">Interactive States</Typography>
812
+ <Grid container spacing={3}>
813
+ <Grid item xs={12} sm={6} md={4}>
814
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
815
+ <AnimatedIcon
816
+ variant={isHovered ? 'pulse' : 'none'}
817
+ size="lg"
818
+ onMouseEnter={() => setIsHovered(true)}
819
+ onMouseLeave={() => setIsHovered(false)}
820
+ style={{ cursor: 'pointer' }}
821
+ >
822
+ <Home />
823
+ </AnimatedIcon>
824
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
825
+ Hover to Activate
826
+ </Typography>
827
+ <Typography variant="caption" color="text.secondary">
828
+ State: {isHovered ? 'Hovered' : 'Normal'}
829
+ </Typography>
830
+ </Paper>
831
+ </Grid>
832
+ <Grid item xs={12} sm={6} md={4}>
833
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
834
+ <AnimatedIcon
835
+ variant={isActive ? 'spin' : 'none'}
836
+ size="lg"
837
+ glow={isActive}
838
+ glowColor="#FFD700"
839
+ onClick={() => setIsActive(!isActive)}
840
+ style={{ cursor: 'pointer' }}
841
+ >
842
+ <Settings />
843
+ </AnimatedIcon>
844
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
845
+ Click to Toggle
846
+ </Typography>
847
+ <Typography variant="caption" color="text.secondary">
848
+ State: {isActive ? 'Active' : 'Inactive'}
849
+ </Typography>
850
+ </Paper>
851
+ </Grid>
852
+ <Grid item xs={12} sm={6} md={4}>
853
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
854
+ <AnimatedIcon
855
+ variant={isFocused ? 'heartbeat' : 'none'}
856
+ size="lg"
857
+ glass={isFocused}
858
+ tabIndex={0}
859
+ onFocus={() => setIsFocused(true)}
860
+ onBlur={() => setIsFocused(false)}
861
+ style={{ cursor: 'pointer', outline: isFocused ? '2px solid #1976d2' : 'none' }}
862
+ >
863
+ <Search />
864
+ </AnimatedIcon>
865
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
866
+ Focus with Tab
867
+ </Typography>
868
+ <Typography variant="caption" color="text.secondary">
869
+ State: {isFocused ? 'Focused' : 'Unfocused'}
870
+ </Typography>
871
+ </Paper>
872
+ </Grid>
873
+ </Grid>
874
+ </Stack>
875
+ );
876
+ },
877
+ };
878
+
879
+ // Required Responsive story
880
+ export const Responsive: Story = {
881
+ args: {},
882
+ render: () => (
883
+ <Stack spacing={4}>
884
+ <Typography variant="h5">Responsive Design</Typography>
885
+ <Typography variant="body2" color="text.secondary">
886
+ Icons adapt to different screen sizes and breakpoints
887
+ </Typography>
888
+ <Box
889
+ sx={{
890
+ display: 'grid',
891
+ gridTemplateColumns: {
892
+ xs: '1fr',
893
+ sm: '1fr 1fr',
894
+ md: '1fr 1fr 1fr',
895
+ lg: '1fr 1fr 1fr 1fr',
896
+ },
897
+ gap: 3,
898
+ }}
899
+ >
900
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
901
+ <AnimatedIcon variant="pulse" size="lg" glow glowColor="#2196F3">
902
+ <Star />
903
+ </AnimatedIcon>
904
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
905
+ Mobile First
906
+ </Typography>
907
+ <Typography variant="caption" color="text.secondary">
908
+ Responsive sizing
909
+ </Typography>
910
+ </Paper>
911
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
912
+ <AnimatedIcon variant="rotate" size="lg">
913
+ <Settings />
914
+ </AnimatedIcon>
915
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
916
+ Fixed Large
917
+ </Typography>
918
+ <Typography variant="caption" color="text.secondary">
919
+ Always lg
920
+ </Typography>
921
+ </Paper>
922
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
923
+ <AnimatedIcon variant="bounce" size="md" glass>
924
+ <Favorite />
925
+ </AnimatedIcon>
926
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
927
+ Medium Glass
928
+ </Typography>
929
+ <Typography variant="caption" color="text.secondary">
930
+ With glass effect
931
+ </Typography>
932
+ </Paper>
933
+ <Paper sx={{ p: 3, textAlign: 'center' }}>
934
+ <AnimatedIcon variant="float" size="xl" gradient>
935
+ <Rocket />
936
+ </AnimatedIcon>
937
+ <Typography variant="subtitle2" sx={{ mt: 2 }}>
938
+ Extra Large
939
+ </Typography>
940
+ <Typography variant="caption" color="text.secondary">
941
+ XL with gradient
942
+ </Typography>
943
+ </Paper>
944
+ </Box>
945
+ </Stack>
946
+ ),
947
+ };