@shohojdhara/atomix 0.1.16 → 0.1.18

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 (525) hide show
  1. package/CONTRIBUTING.md +151 -0
  2. package/NEXTJS_INTEGRATION.md +358 -0
  3. package/README.md +168 -119
  4. package/babel.config.js +58 -0
  5. package/css.d.ts +10 -0
  6. package/dist/css/atomix.css +1 -2
  7. package/dist/js/194.js +1 -2
  8. package/dist/js/244.js +1 -0
  9. package/dist/js/atomix.react.cjs.js +1 -0
  10. package/dist/js/atomix.react.esm.js +1 -2
  11. package/dist/js/atomix.react.umd.js +1 -2
  12. package/dist/js/chunks/cjs/202.9d3b1ef1eaa0d5c8a309.js +1 -0
  13. package/dist/js/chunks/cjs/308.6ea9685ea38ead4120d0.js +1 -0
  14. package/dist/js/chunks/cjs/54.73db6922594e421ba6b1.js +1 -0
  15. package/dist/js/chunks/cjs/619.51feecaadcab819780d4.js +1 -0
  16. package/dist/js/chunks/cjs/690.90f6d11164081cbcbc4d.js +1 -0
  17. package/dist/js/chunks/cjs/894.24877561df336a8dfd14.js +1 -0
  18. package/dist/js/chunks/cjs/897.6c2a71fae95338890de7.js +1 -0
  19. package/dist/js/chunks/esm/{202.ff48d27672233280e021.js → 202.82aa7b3244e53c9edb72.js} +1 -2
  20. package/dist/js/chunks/esm/{308.f873332126eba90e5c62.js → 308.27e1e4005705ae320432.js} +1 -2
  21. package/dist/js/chunks/esm/{54.4db919e5e4e5cc6d7c72.js → 54.ece1fd6964f98d4d994f.js} +1 -2
  22. package/dist/js/chunks/esm/{619.afc5a718eff77fa423b5.js → 619.ebeb0298432a066ac05c.js} +1 -2
  23. package/dist/js/chunks/esm/{690.a9e968c7497d61e56cdc.js → 690.c5f412cc979b55740359.js} +1 -2
  24. package/dist/js/chunks/esm/{894.f1091a4a8758c26d29e4.js → 894.3604ddc9367d75191198.js} +1 -2
  25. package/dist/js/chunks/esm/{897.561a50f7d043d42169da.js → 897.a4aab2fad9401693eb12.js} +1 -2
  26. package/dist/js/chunks/umd/{202.dac7605cc555b6bda542.js → 202.5017dd0403d696bf1644.js} +1 -2
  27. package/dist/js/chunks/umd/{308.6709979849dcbdb90c9b.js → 308.4bc14b9d7b16b6ee0ab8.js} +1 -2
  28. package/dist/js/chunks/umd/{54.403470e1f7d0ef4424a7.js → 54.7fdfb4a031989470a70d.js} +1 -2
  29. package/dist/js/chunks/umd/{619.fa05ea98c10270eb64c5.js → 619.84a0c35ecee695250085.js} +1 -2
  30. package/dist/js/chunks/umd/{690.aa7054d1c53e5402c2d6.js → 690.d7041094a34a4a434be2.js} +1 -2
  31. package/dist/js/chunks/umd/{894.3e1eaf0a2aadf4434390.js → 894.c127ee4e9513c22ee97d.js} +1 -2
  32. package/dist/js/chunks/umd/{897.554ea37be4453698c167.js → 897.26932ac837a39fc91907.js} +1 -2
  33. package/dist/types/components/Badge/index.d.ts +3 -3
  34. package/dist/types/components/{Navbar → Navigation/Menu}/MegaMenu.d.ts +1 -1
  35. package/dist/types/components/{Navbar → Navigation/Menu}/Menu.d.ts +1 -1
  36. package/dist/types/components/Navigation/Nav/Nav.d.ts +20 -0
  37. package/dist/types/components/{Navbar → Navigation/Nav}/NavDropdown.d.ts +1 -1
  38. package/dist/types/components/Navigation/Nav/NavItem.d.ts +33 -0
  39. package/dist/types/components/Navigation/Navbar/Navbar.d.ts +19 -0
  40. package/dist/types/components/Navigation/SideMenu/SideMenu.d.ts +20 -0
  41. package/dist/types/components/Navigation/SideMenu/SideMenuItem.d.ts +30 -0
  42. package/dist/types/components/Navigation/SideMenu/SideMenuList.d.ts +17 -0
  43. package/dist/types/components/Navigation/index.d.ts +10 -0
  44. package/dist/types/components/PhotoViewer/PhotoViewer.d.ts +2 -2
  45. package/dist/types/components/PhotoViewer/PhotoViewerHeader.d.ts +2 -2
  46. package/dist/types/components/Tab/index.d.ts +2 -2
  47. package/dist/types/components/Toggle/index.d.ts +2 -2
  48. package/dist/types/components/Tooltip/index.d.ts +3 -3
  49. package/dist/types/components/index.d.ts +1 -1
  50. package/dist/types/lib/composables/index.d.ts +1 -0
  51. package/dist/types/lib/composables/useDatePicker.d.ts +1 -1
  52. package/dist/types/lib/composables/useDropdown.d.ts +1 -1
  53. package/dist/types/lib/composables/useModal.d.ts +1 -1
  54. package/dist/types/lib/composables/usePhotoViewer.d.ts +1 -1
  55. package/dist/types/lib/composables/useRating.d.ts +1 -1
  56. package/dist/types/lib/composables/useSideMenu.d.ts +28 -0
  57. package/dist/types/lib/constants/components.d.ts +72 -0
  58. package/dist/types/lib/types/components.d.ts +103 -0
  59. package/examples/nextjs-example.tsx +271 -0
  60. package/implementation-guide.md +505 -0
  61. package/next.config.js +69 -0
  62. package/package.json +80 -42
  63. package/postcss.config.js +28 -0
  64. package/src/Introduction.mdx +3 -5
  65. package/src/assets/fonts/HelveticaNeue/stylesheet.css +140 -127
  66. package/src/components/Accordion/Accordion.stories.tsx +58 -45
  67. package/src/components/Accordion/Accordion.tsx +14 -4
  68. package/src/components/Accordion/scripts/accordionInteractions.ts +9 -9
  69. package/src/components/Accordion/scripts/bundle.ts +1 -1
  70. package/src/components/Accordion/scripts/index.ts +3 -3
  71. package/src/components/AtomixLogo.tsx +13 -19
  72. package/src/components/Avatar/Avatar.stories.tsx +24 -21
  73. package/src/components/Avatar/Avatar.tsx +5 -8
  74. package/src/components/Avatar/AvatarGroup.tsx +11 -11
  75. package/src/components/Avatar/index.ts +1 -1
  76. package/src/components/Avatar/scripts/index.ts +66 -71
  77. package/src/components/Badge/Badge.stories.tsx +51 -21
  78. package/src/components/Badge/Badge.tsx +14 -12
  79. package/src/components/Badge/index.ts +3 -3
  80. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +40 -40
  81. package/src/components/Breadcrumb/Breadcrumb.tsx +19 -26
  82. package/src/components/Breadcrumb/index.ts +1 -1
  83. package/src/components/Breadcrumb/scripts/breadcrumb.ts +36 -34
  84. package/src/components/Breadcrumb/scripts/index.ts +1 -1
  85. package/src/components/Breadcrumb/scripts/types.ts +9 -9
  86. package/src/components/Button/Button.stories.tsx +36 -12
  87. package/src/components/Button/Button.tsx +52 -39
  88. package/src/components/Button/index.ts +1 -1
  89. package/src/components/Button/scripts/buttonInteractions.ts +9 -9
  90. package/src/components/Button/scripts/index.ts +1 -1
  91. package/src/components/Callout/Callout.stories.tsx +207 -114
  92. package/src/components/Callout/Callout.tsx +12 -12
  93. package/src/components/Callout/index.ts +1 -1
  94. package/src/components/Callout/scripts/CalloutInteractions.ts +58 -48
  95. package/src/components/Callout/scripts/bundle.ts +2 -2
  96. package/src/components/Callout/scripts/index.ts +19 -15
  97. package/src/components/Card/Card.stories.tsx +2 -2
  98. package/src/components/Card/Card.tsx +49 -72
  99. package/src/components/Card/ElevationCard.tsx +4 -8
  100. package/src/components/Card/index.ts +1 -1
  101. package/src/components/Card/scripts/bundle.ts +7 -7
  102. package/src/components/Card/scripts/cardInteractions.ts +24 -24
  103. package/src/components/Card/scripts/index.ts +25 -26
  104. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +6 -3
  105. package/src/components/ColorModeToggle/ColorModeToggle.tsx +12 -15
  106. package/src/components/ColorModeToggle/index.ts +1 -1
  107. package/src/components/Countdown/Countdown.stories.tsx +6 -2
  108. package/src/components/Countdown/Countdown.tsx +56 -48
  109. package/src/components/Countdown/index.ts +1 -1
  110. package/src/components/Countdown/scripts/index.ts +33 -28
  111. package/src/components/DataTable/DataTable.stories.tsx +23 -18
  112. package/src/components/DataTable/DataTable.tsx +39 -39
  113. package/src/components/DataTable/index.ts +1 -1
  114. package/src/components/DataTable/scripts/bundle.ts +8 -3
  115. package/src/components/DataTable/scripts/index.ts +182 -164
  116. package/src/components/DatePicker/DatePicker.stories.tsx +136 -148
  117. package/src/components/DatePicker/DatePicker.tsx +461 -420
  118. package/src/components/DatePicker/scripts/bundle.ts +12 -7
  119. package/src/components/DatePicker/scripts/componentInteractions.ts +76 -46
  120. package/src/components/DatePicker/scripts/index.ts +176 -156
  121. package/src/components/DatePicker/types.ts +32 -32
  122. package/src/components/DatePicker/utils.ts +41 -30
  123. package/src/components/Dropdown/Dropdown.stories.tsx +85 -55
  124. package/src/components/Dropdown/Dropdown.tsx +97 -88
  125. package/src/components/Dropdown/index.ts +5 -10
  126. package/src/components/Dropdown/scripts/bundle.ts +10 -10
  127. package/src/components/Dropdown/scripts/componentInteractions.ts +10 -2
  128. package/src/components/Dropdown/scripts/index.ts +122 -117
  129. package/src/components/EdgePanel/EdgePanel.stories.tsx +142 -58
  130. package/src/components/EdgePanel/EdgePanel.tsx +7 -13
  131. package/src/components/EdgePanel/index.ts +1 -1
  132. package/src/components/EdgePanel/scripts/bundle.ts +5 -5
  133. package/src/components/EdgePanel/scripts/edgePanelInteractions.ts +26 -26
  134. package/src/components/EdgePanel/scripts/index.ts +53 -53
  135. package/src/components/Form/Checkbox.stories.tsx +2 -2
  136. package/src/components/Form/Checkbox.tsx +13 -7
  137. package/src/components/Form/Form.stories.tsx +144 -218
  138. package/src/components/Form/Form.tsx +6 -6
  139. package/src/components/Form/FormGroup.stories.tsx +21 -38
  140. package/src/components/Form/FormGroup.tsx +18 -20
  141. package/src/components/Form/Input.stories.tsx +1 -1
  142. package/src/components/Form/Input.tsx +18 -8
  143. package/src/components/Form/Radio.stories.tsx +12 -25
  144. package/src/components/Form/Radio.tsx +11 -6
  145. package/src/components/Form/Select.stories.tsx +6 -6
  146. package/src/components/Form/Select.tsx +31 -33
  147. package/src/components/Form/Textarea.stories.tsx +7 -2
  148. package/src/components/Form/Textarea.tsx +17 -8
  149. package/src/components/Form/index.ts +1 -1
  150. package/src/components/Hero/Hero.stories.tsx +44 -42
  151. package/src/components/Hero/Hero.tsx +28 -38
  152. package/src/components/Hero/index.ts +1 -1
  153. package/src/components/Hero/scripts/bundle.ts +6 -6
  154. package/src/components/Hero/scripts/heroInteractions.ts +24 -29
  155. package/src/components/Hero/scripts/index.ts +16 -17
  156. package/src/components/Icon/Icon.tsx +16 -18
  157. package/src/components/Icon/index.ts +1 -1
  158. package/src/components/List/List.stories.tsx +1 -3
  159. package/src/components/List/List.tsx +6 -10
  160. package/src/components/List/ListGroup.tsx +1 -1
  161. package/src/components/List/index.ts +1 -1
  162. package/src/components/Messages/Messages.stories.tsx +30 -29
  163. package/src/components/Messages/Messages.tsx +60 -55
  164. package/src/components/Messages/index.ts +1 -1
  165. package/src/components/Messages/scripts/bundle.ts +1 -6
  166. package/src/components/Messages/scripts/componentInteractions.ts +32 -37
  167. package/src/components/Messages/scripts/index.ts +61 -55
  168. package/src/components/Modal/Modal.stories.tsx +77 -53
  169. package/src/components/Modal/Modal.tsx +63 -62
  170. package/src/components/Modal/index.ts +1 -1
  171. package/src/components/Modal/scripts/bundle.ts +3 -3
  172. package/src/components/Modal/scripts/index.ts +96 -84
  173. package/src/components/Modal/scripts/modalInteractions.ts +16 -14
  174. package/src/components/{Navbar → Navigation/Menu}/MegaMenu.tsx +50 -59
  175. package/src/components/Navigation/Menu/Menu.stories.tsx +340 -0
  176. package/src/components/Navigation/Menu/Menu.tsx +110 -0
  177. package/src/components/Navigation/Nav/Nav.stories.tsx +458 -0
  178. package/src/components/Navigation/Nav/Nav.tsx +50 -0
  179. package/src/components/Navigation/Nav/NavDropdown.tsx +105 -0
  180. package/src/components/Navigation/Nav/NavItem.tsx +159 -0
  181. package/src/components/{Navbar → Navigation/Navbar}/Navbar.stories.tsx +198 -104
  182. package/src/components/Navigation/Navbar/Navbar.tsx +150 -0
  183. package/src/components/Navigation/README.md +314 -0
  184. package/src/components/Navigation/SideMenu/SideMenu.README.md +494 -0
  185. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +618 -0
  186. package/src/components/Navigation/SideMenu/SideMenu.tsx +101 -0
  187. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +95 -0
  188. package/src/components/Navigation/SideMenu/SideMenuList.tsx +41 -0
  189. package/src/components/Navigation/index.ts +23 -0
  190. package/src/components/Navigation/scripts/NavbarInteractions.ts +171 -0
  191. package/src/components/Navigation/scripts/SideMenu.ts +319 -0
  192. package/src/components/Navigation/scripts/SideMenuBundle.ts +69 -0
  193. package/src/components/Navigation/scripts/SideMenuInteractions.ts +250 -0
  194. package/src/components/Navigation/scripts/bundle.ts +58 -0
  195. package/src/components/Navigation/scripts/index.ts +248 -0
  196. package/src/components/Pagination/Pagination.stories.tsx +34 -33
  197. package/src/components/Pagination/Pagination.tsx +25 -35
  198. package/src/components/Pagination/index.ts +1 -1
  199. package/src/components/Pagination/scripts/index.ts +42 -37
  200. package/src/components/PhotoViewer/PhotoViewer.stories.tsx +48 -48
  201. package/src/components/PhotoViewer/PhotoViewer.tsx +29 -46
  202. package/src/components/PhotoViewer/PhotoViewerHeader.tsx +20 -26
  203. package/src/components/PhotoViewer/PhotoViewerImage.tsx +19 -17
  204. package/src/components/PhotoViewer/PhotoViewerInfo.tsx +13 -5
  205. package/src/components/PhotoViewer/PhotoViewerNavigation.tsx +5 -5
  206. package/src/components/PhotoViewer/PhotoViewerThumbnails.tsx +31 -30
  207. package/src/components/PhotoViewer/examples/ImageGallery.tsx +27 -37
  208. package/src/components/PhotoViewer/examples/SimpleGallery.tsx +19 -13
  209. package/src/components/PhotoViewer/examples/index.ts +1 -1
  210. package/src/components/PhotoViewer/index.ts +1 -1
  211. package/src/components/PhotoViewer/scripts/PhotoViewerInteractions.ts +43 -33
  212. package/src/components/PhotoViewer/scripts/bundle.ts +14 -14
  213. package/src/components/PhotoViewer/scripts/index.ts +173 -129
  214. package/src/components/Popover/Popover.stories.tsx +11 -12
  215. package/src/components/Popover/Popover.tsx +36 -36
  216. package/src/components/Popover/index.ts +1 -1
  217. package/src/components/Popover/scripts/bundle.ts +1 -1
  218. package/src/components/Popover/scripts/componentInteractions.ts +34 -46
  219. package/src/components/Popover/scripts/index.ts +64 -53
  220. package/src/components/ProductReview/ProductReview.stories.tsx +10 -8
  221. package/src/components/ProductReview/ProductReview.tsx +28 -32
  222. package/src/components/ProductReview/scripts/componentInteractions.ts +20 -20
  223. package/src/components/Progress/Progress.tsx +36 -34
  224. package/src/components/Progress/scripts/bundle.ts +7 -2
  225. package/src/components/Progress/scripts/componentInteractions.ts +29 -23
  226. package/src/components/Progress/scripts/index.ts +45 -39
  227. package/src/components/Rating/Rating.stories.tsx +3 -16
  228. package/src/components/Rating/Rating.tsx +250 -231
  229. package/src/components/Rating/scripts/bundle.ts +11 -6
  230. package/src/components/Rating/scripts/index.ts +85 -80
  231. package/src/components/Rating/scripts/ratingInteractions.ts +27 -24
  232. package/src/components/River/River.stories.tsx +70 -24
  233. package/src/components/River/River.tsx +28 -38
  234. package/src/components/River/index.ts +1 -1
  235. package/src/components/River/scripts/index.ts +11 -12
  236. package/src/components/SectionIntro/SectionIntro.stories.tsx +12 -9
  237. package/src/components/SectionIntro/SectionIntro.tsx +25 -31
  238. package/src/components/SectionIntro/scripts/componentInteractions.ts +1 -1
  239. package/src/components/SectionIntro/scripts/index.ts +30 -16
  240. package/src/components/Spinner/Spinner.stories.tsx +5 -7
  241. package/src/components/Spinner/Spinner.tsx +11 -6
  242. package/src/components/Spinner/index.ts +2 -2
  243. package/src/components/Steps/Steps.stories.tsx +44 -48
  244. package/src/components/Steps/Steps.tsx +20 -20
  245. package/src/components/Steps/index.ts +1 -1
  246. package/src/components/Steps/scripts/index.ts +9 -9
  247. package/src/components/Tab/Tab.stories.tsx +14 -6
  248. package/src/components/Tab/Tab.tsx +16 -18
  249. package/src/components/Tab/index.ts +2 -2
  250. package/src/components/Tab/scripts/index.ts +13 -13
  251. package/src/components/Testimonial/Testimonial.stories.tsx +54 -51
  252. package/src/components/Testimonial/Testimonial.tsx +18 -19
  253. package/src/components/Testimonial/index.ts +1 -1
  254. package/src/components/Testimonial/scripts/index.ts +19 -8
  255. package/src/components/Todo/Todo.stories.tsx +7 -24
  256. package/src/components/Todo/Todo.tsx +35 -46
  257. package/src/components/Todo/index.ts +1 -1
  258. package/src/components/Todo/scripts/bundle.ts +1 -1
  259. package/src/components/Todo/scripts/index.ts +99 -81
  260. package/src/components/Todo/scripts/todoInteractions.ts +12 -12
  261. package/src/components/Todo/scripts/types.ts +3 -3
  262. package/src/components/Toggle/Toggle.stories.tsx +2 -2
  263. package/src/components/Toggle/Toggle.tsx +18 -18
  264. package/src/components/Toggle/index.ts +2 -2
  265. package/src/components/Toggle/scripts/bundle.ts +7 -2
  266. package/src/components/Toggle/scripts/index.ts +14 -10
  267. package/src/components/Toggle/scripts/toggleInteractions.ts +11 -14
  268. package/src/components/Tooltip/Tooltip.stories.tsx +13 -6
  269. package/src/components/Tooltip/Tooltip.tsx +25 -15
  270. package/src/components/Tooltip/index.ts +3 -3
  271. package/src/components/Tooltip/scripts/bundle.ts +0 -1
  272. package/src/components/Tooltip/scripts/index.ts +44 -41
  273. package/src/components/Tooltip/scripts/tooltipInteractions.ts +22 -22
  274. package/src/components/Upload/Upload.stories.tsx +28 -34
  275. package/src/components/Upload/Upload.tsx +86 -71
  276. package/src/components/Upload/index.ts +1 -1
  277. package/src/components/Upload/scripts/index.ts +58 -43
  278. package/src/components/index.ts +5 -6
  279. package/src/design-tokens/BoxShadow/BoxShadow.stories.tsx +13 -10
  280. package/src/design-tokens/Colors/colors.scss +10 -7
  281. package/src/design-tokens/Colors/colors.stories.tsx +46 -59
  282. package/src/design-tokens/Spacing/Spacing.scss +7 -5
  283. package/src/design-tokens/Spacing/Spacing.stories.tsx +19 -18
  284. package/src/design-tokens/Typography/Typography.scss +88 -25
  285. package/src/design-tokens/Typography/Typography.stories.tsx +22 -25
  286. package/src/docs/implementation-guide.mdx +2 -2
  287. package/src/htmlComponentsEntry.ts +23 -23
  288. package/src/index.ts +1 -1
  289. package/src/layouts/Grid/Container.tsx +6 -10
  290. package/src/layouts/Grid/Grid.stories.tsx +72 -34
  291. package/src/layouts/Grid/Grid.tsx +6 -13
  292. package/src/layouts/Grid/GridCol.tsx +29 -26
  293. package/src/layouts/Grid/Row.tsx +6 -13
  294. package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +79 -72
  295. package/src/layouts/MasonryGrid/MasonryGrid.tsx +23 -25
  296. package/src/layouts/MasonryGrid/MasonryGridItem.tsx +4 -12
  297. package/src/layouts/index.ts +3 -4
  298. package/src/lib/composables/index.ts +3 -3
  299. package/src/lib/composables/useAccordion.ts +15 -6
  300. package/src/lib/composables/useBadge.ts +3 -3
  301. package/src/lib/composables/useBreadcrumb.ts +6 -12
  302. package/src/lib/composables/useButton.ts +3 -3
  303. package/src/lib/composables/useCallout.ts +3 -3
  304. package/src/lib/composables/useCard.ts +50 -28
  305. package/src/lib/composables/useCheckbox.ts +7 -7
  306. package/src/lib/composables/useDataTable.ts +61 -57
  307. package/src/lib/composables/useDatePicker.ts +255 -231
  308. package/src/lib/composables/useDropdown.ts +90 -75
  309. package/src/lib/composables/useEdgePanel.ts +50 -47
  310. package/src/lib/composables/useForm.ts +4 -7
  311. package/src/lib/composables/useFormGroup.ts +11 -12
  312. package/src/lib/composables/useHero.ts +36 -38
  313. package/src/lib/composables/useInput.ts +9 -10
  314. package/src/lib/composables/useMessages.ts +12 -14
  315. package/src/lib/composables/useModal.ts +37 -34
  316. package/src/lib/composables/useNavbar.ts +33 -22
  317. package/src/lib/composables/usePagination.ts +3 -10
  318. package/src/lib/composables/usePhotoViewer.ts +625 -578
  319. package/src/lib/composables/usePopover.ts +68 -62
  320. package/src/lib/composables/useProgress.ts +9 -12
  321. package/src/lib/composables/useRadio.ts +4 -4
  322. package/src/lib/composables/useRating.ts +82 -70
  323. package/src/lib/composables/useRiver.ts +28 -31
  324. package/src/lib/composables/useSelect.ts +7 -8
  325. package/src/lib/composables/useSideMenu.ts +197 -0
  326. package/src/lib/composables/useSpinner.ts +3 -3
  327. package/src/lib/composables/useTextarea.ts +8 -9
  328. package/src/lib/composables/useTodo.ts +14 -18
  329. package/src/lib/constants/components.ts +191 -118
  330. package/src/lib/constants/index.ts +1 -1
  331. package/src/lib/types/components.ts +454 -324
  332. package/src/lib/utils/dom.ts +2 -6
  333. package/src/lib/utils/icons.ts +20 -12
  334. package/src/lib/utils/index.ts +2 -2
  335. package/src/lib/utils/useForkRef.ts +1 -2
  336. package/src/styles/01-settings/_index.scss +59 -59
  337. package/src/styles/01-settings/_settings.accordion.scss +21 -21
  338. package/src/styles/01-settings/_settings.animations.scss +2 -2
  339. package/src/styles/01-settings/_settings.avatar-group.scss +14 -14
  340. package/src/styles/01-settings/_settings.avatar.scss +31 -31
  341. package/src/styles/01-settings/_settings.badge.scss +11 -11
  342. package/src/styles/01-settings/_settings.border-radius.scss +10 -9
  343. package/src/styles/01-settings/_settings.border.scss +7 -7
  344. package/src/styles/01-settings/_settings.box-shadow.scss +24 -12
  345. package/src/styles/01-settings/_settings.breadcrumb.scss +18 -18
  346. package/src/styles/01-settings/_settings.btn-group.scss +1 -1
  347. package/src/styles/01-settings/_settings.button.scss +63 -49
  348. package/src/styles/01-settings/_settings.callout.scss +27 -7
  349. package/src/styles/01-settings/_settings.card.scss +27 -30
  350. package/src/styles/01-settings/_settings.checkbox-group.scss +2 -3
  351. package/src/styles/01-settings/_settings.checkbox.scss +17 -18
  352. package/src/styles/01-settings/_settings.color-mode.scss +1 -1
  353. package/src/styles/01-settings/_settings.colors.scss +197 -214
  354. package/src/styles/01-settings/_settings.config.scss +1 -3
  355. package/src/styles/01-settings/_settings.countdown.scss +14 -14
  356. package/src/styles/01-settings/_settings.data-table.scss +6 -6
  357. package/src/styles/01-settings/_settings.datepicker.scss +40 -42
  358. package/src/styles/01-settings/_settings.dropdown.scss +30 -30
  359. package/src/styles/01-settings/_settings.edge-panel.scss +16 -16
  360. package/src/styles/01-settings/_settings.fonts.scss +14 -12
  361. package/src/styles/01-settings/_settings.form-group.scss +10 -10
  362. package/src/styles/01-settings/_settings.form.scss +3 -3
  363. package/src/styles/01-settings/_settings.grid.scss +1 -1
  364. package/src/styles/01-settings/_settings.hero.scss +23 -23
  365. package/src/styles/01-settings/_settings.input.scss +32 -32
  366. package/src/styles/01-settings/_settings.link.scss +6 -6
  367. package/src/styles/01-settings/_settings.list-group.scss +12 -12
  368. package/src/styles/01-settings/_settings.list.scss +2 -2
  369. package/src/styles/01-settings/_settings.maps.scss +183 -188
  370. package/src/styles/01-settings/_settings.masonry-grid.scss +2 -2
  371. package/src/styles/01-settings/_settings.menu.scss +35 -38
  372. package/src/styles/01-settings/_settings.messages.scss +71 -77
  373. package/src/styles/01-settings/_settings.modal.scss +24 -24
  374. package/src/styles/01-settings/_settings.nav.scss +15 -15
  375. package/src/styles/01-settings/_settings.navbar.scss +39 -12
  376. package/src/styles/01-settings/_settings.pagination.scss +21 -21
  377. package/src/styles/01-settings/_settings.photoviewer.scss +1 -1
  378. package/src/styles/01-settings/_settings.popover.scss +3 -3
  379. package/src/styles/01-settings/_settings.position.scss +2 -2
  380. package/src/styles/01-settings/_settings.progress.scss +15 -18
  381. package/src/styles/01-settings/_settings.rating.scss +7 -7
  382. package/src/styles/01-settings/_settings.river.scss +25 -25
  383. package/src/styles/01-settings/_settings.sectionintro.scss +15 -16
  384. package/src/styles/01-settings/_settings.select.scss +31 -31
  385. package/src/styles/01-settings/_settings.side-menu.scss +64 -16
  386. package/src/styles/01-settings/_settings.skeleton.scss +12 -12
  387. package/src/styles/01-settings/_settings.spacing.scss +62 -33
  388. package/src/styles/01-settings/_settings.spinner.scss +10 -10
  389. package/src/styles/01-settings/_settings.steps.scss +22 -22
  390. package/src/styles/01-settings/_settings.tabs.scss +25 -25
  391. package/src/styles/01-settings/_settings.testimonials.scss +17 -19
  392. package/src/styles/01-settings/_settings.todo.scss +1 -1
  393. package/src/styles/01-settings/_settings.toggle.scss +26 -26
  394. package/src/styles/01-settings/_settings.tooltip.scss +15 -15
  395. package/src/styles/01-settings/_settings.typography.scss +65 -48
  396. package/src/styles/01-settings/_settings.upload.scss +70 -77
  397. package/src/styles/01-settings/_settings.z-layers.scss +1 -1
  398. package/src/styles/02-tools/_index.scss +19 -19
  399. package/src/styles/02-tools/_tools.animations.scss +4 -4
  400. package/src/styles/02-tools/_tools.border-radius.scss +4 -5
  401. package/src/styles/02-tools/_tools.breakpoints.scss +33 -34
  402. package/src/styles/02-tools/_tools.button.scss +49 -25
  403. package/src/styles/02-tools/_tools.color-mode.scss +11 -11
  404. package/src/styles/02-tools/_tools.event.scss +1 -1
  405. package/src/styles/02-tools/_tools.hidden-visually.scss +1 -1
  406. package/src/styles/02-tools/_tools.hidden.scss +1 -1
  407. package/src/styles/02-tools/_tools.map-loop.scss +9 -9
  408. package/src/styles/02-tools/_tools.media-queries.scss +5 -3
  409. package/src/styles/02-tools/_tools.object-fit.scss +3 -3
  410. package/src/styles/02-tools/_tools.placeholder.scss +0 -1
  411. package/src/styles/02-tools/_tools.rem.scss +1 -1
  412. package/src/styles/02-tools/_tools.spacing.scss +8 -34
  413. package/src/styles/02-tools/_tools.to-rgb.scss +3 -3
  414. package/src/styles/02-tools/_tools.transition.scss +1 -1
  415. package/src/styles/02-tools/_tools.utility-api.scss +29 -14
  416. package/src/styles/03-generic/_generic.fonts.scss +0 -1
  417. package/src/styles/03-generic/_generic.reset.scss +13 -8
  418. package/src/styles/03-generic/_generic.root.scss +5 -5
  419. package/src/styles/03-generic/_index.scss +4 -4
  420. package/src/styles/04-elements/_elements.all.scss +2 -2
  421. package/src/styles/04-elements/_elements.body.scss +1 -2
  422. package/src/styles/04-elements/_elements.heading.scss +37 -21
  423. package/src/styles/04-elements/_elements.links.scss +0 -1
  424. package/src/styles/04-elements/_index.scss +5 -5
  425. package/src/styles/05-objects/_index.scss +3 -3
  426. package/src/styles/05-objects/_objects.container.scss +5 -4
  427. package/src/styles/05-objects/_objects.grid.scss +12 -12
  428. package/src/styles/05-objects/_objects.masonry-grid.scss +80 -74
  429. package/src/styles/06-components/_components.accordion.scss +12 -6
  430. package/src/styles/06-components/_components.avatar-group.scss +9 -8
  431. package/src/styles/06-components/_components.avatar.scss +78 -77
  432. package/src/styles/06-components/_components.badge.scss +48 -48
  433. package/src/styles/06-components/_components.breadcrumb.scss +57 -58
  434. package/src/styles/06-components/_components.btn-group.scss +22 -22
  435. package/src/styles/06-components/_components.button.scss +118 -110
  436. package/src/styles/06-components/_components.callout.scss +21 -15
  437. package/src/styles/06-components/_components.card.scss +6 -10
  438. package/src/styles/06-components/_components.checkbox-group.scss +9 -10
  439. package/src/styles/06-components/_components.checkbox.scss +10 -17
  440. package/src/styles/06-components/_components.color-mode-toggle.scss +6 -6
  441. package/src/styles/06-components/_components.countdown.scss +53 -54
  442. package/src/styles/06-components/_components.data-table.scss +40 -36
  443. package/src/styles/06-components/_components.datepicker.scss +95 -73
  444. package/src/styles/06-components/_components.dropdown.scss +15 -9
  445. package/src/styles/06-components/_components.edge-panel.scss +87 -46
  446. package/src/styles/06-components/_components.form-group.scss +5 -4
  447. package/src/styles/06-components/_components.hero.scss +128 -132
  448. package/src/styles/06-components/_components.icon.scss +16 -16
  449. package/src/styles/06-components/_components.image-gallery.scss +9 -7
  450. package/src/styles/06-components/_components.input.scss +18 -16
  451. package/src/styles/06-components/_components.list-group.scss +52 -51
  452. package/src/styles/06-components/_components.list.scss +15 -15
  453. package/src/styles/06-components/_components.menu.scss +225 -220
  454. package/src/styles/06-components/_components.messages.scss +45 -32
  455. package/src/styles/06-components/_components.modal.scss +0 -1
  456. package/src/styles/06-components/_components.nav.scss +56 -11
  457. package/src/styles/06-components/_components.navbar.scss +278 -202
  458. package/src/styles/06-components/_components.pagination.scss +7 -6
  459. package/src/styles/06-components/_components.photoviewer.scss +121 -116
  460. package/src/styles/06-components/_components.popover.scss +10 -10
  461. package/src/styles/06-components/_components.product-review.scss +3 -3
  462. package/src/styles/06-components/_components.progress.scss +32 -35
  463. package/src/styles/06-components/_components.rating.scss +9 -8
  464. package/src/styles/06-components/_components.river.scss +4 -2
  465. package/src/styles/06-components/_components.sectionintro.scss +19 -26
  466. package/src/styles/06-components/_components.select.scss +7 -8
  467. package/src/styles/06-components/_components.side-menu.scss +154 -28
  468. package/src/styles/06-components/_components.skeleton.scss +0 -1
  469. package/src/styles/06-components/_components.spinner.scss +2 -4
  470. package/src/styles/06-components/_components.steps.scss +76 -77
  471. package/src/styles/06-components/_components.tabs.scss +17 -12
  472. package/src/styles/06-components/_components.testimonials.scss +49 -52
  473. package/src/styles/06-components/_components.todo.scss +26 -26
  474. package/src/styles/06-components/_components.tooltip.scss +114 -115
  475. package/src/styles/06-components/_components.upload.scss +8 -18
  476. package/src/styles/06-components/_index.scss +48 -48
  477. package/src/styles/99-utilities/_index.scss +18 -18
  478. package/src/styles/99-utilities/_utilities.background.scss +13 -13
  479. package/src/styles/99-utilities/_utilities.border.scss +30 -30
  480. package/src/styles/99-utilities/_utilities.clearfix.scss +1 -1
  481. package/src/styles/99-utilities/_utilities.display.scss +5 -4
  482. package/src/styles/99-utilities/_utilities.flex.scss +19 -19
  483. package/src/styles/99-utilities/_utilities.link.scss +52 -35
  484. package/src/styles/99-utilities/_utilities.object-fit.scss +3 -3
  485. package/src/styles/99-utilities/_utilities.opacity.scss +6 -6
  486. package/src/styles/99-utilities/_utilities.overflow.scss +4 -4
  487. package/src/styles/99-utilities/_utilities.position.scss +8 -8
  488. package/src/styles/99-utilities/_utilities.shadow.scss +13 -13
  489. package/src/styles/99-utilities/_utilities.sizes.scss +17 -17
  490. package/src/styles/99-utilities/_utilities.spacing.scss +72 -37
  491. package/src/styles/99-utilities/_utilities.text.scss +15 -15
  492. package/src/styles/99-utilities/_utilities.visibility.scss +8 -8
  493. package/src/styles/99-utilities/_utilities.visually-hidden.scss +1 -1
  494. package/src/styles/99-utilities/_utilities.z-index.scss +2 -2
  495. package/tsconfig.json +74 -0
  496. package/webpack.config.js +463 -0
  497. package/NPM_PUBLISHING.md +0 -221
  498. package/dist/css/atomix.css.map +0 -1
  499. package/dist/js/194.js.map +0 -1
  500. package/dist/js/atomix.react.esm.js.map +0 -1
  501. package/dist/js/atomix.react.umd.js.map +0 -1
  502. package/dist/js/chunks/esm/202.ff48d27672233280e021.js.map +0 -1
  503. package/dist/js/chunks/esm/308.f873332126eba90e5c62.js.map +0 -1
  504. package/dist/js/chunks/esm/54.4db919e5e4e5cc6d7c72.js.map +0 -1
  505. package/dist/js/chunks/esm/619.afc5a718eff77fa423b5.js.map +0 -1
  506. package/dist/js/chunks/esm/690.a9e968c7497d61e56cdc.js.map +0 -1
  507. package/dist/js/chunks/esm/894.f1091a4a8758c26d29e4.js.map +0 -1
  508. package/dist/js/chunks/esm/897.561a50f7d043d42169da.js.map +0 -1
  509. package/dist/js/chunks/umd/202.dac7605cc555b6bda542.js.map +0 -1
  510. package/dist/js/chunks/umd/308.6709979849dcbdb90c9b.js.map +0 -1
  511. package/dist/js/chunks/umd/54.403470e1f7d0ef4424a7.js.map +0 -1
  512. package/dist/js/chunks/umd/619.fa05ea98c10270eb64c5.js.map +0 -1
  513. package/dist/js/chunks/umd/690.aa7054d1c53e5402c2d6.js.map +0 -1
  514. package/dist/js/chunks/umd/894.3e1eaf0a2aadf4434390.js.map +0 -1
  515. package/dist/js/chunks/umd/897.554ea37be4453698c167.js.map +0 -1
  516. package/dist/types/components/Navbar/Nav.d.ts +0 -5
  517. package/dist/types/components/Navbar/NavItem.d.ts +0 -5
  518. package/dist/types/components/Navbar/Navbar.d.ts +0 -5
  519. package/dist/types/components/Navbar/index.d.ts +0 -6
  520. package/src/components/Navbar/Menu.tsx +0 -122
  521. package/src/components/Navbar/Nav.tsx +0 -35
  522. package/src/components/Navbar/NavDropdown.tsx +0 -108
  523. package/src/components/Navbar/NavItem.tsx +0 -128
  524. package/src/components/Navbar/Navbar.tsx +0 -124
  525. package/src/components/Navbar/index.ts +0 -6
@@ -5,34 +5,37 @@ export type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
5
  export type IconWeight = 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';
6
6
 
7
7
  // We need to filter out non-icon exports from the Phosphor package
8
- type PhosphorIconsType = Exclude<keyof typeof PhosphorIcons, 'Icon' | 'IconContext' | 'IconBase' | 'IconProps' | 'createIcon' | 'default' | 'SSR'>;
8
+ type PhosphorIconsType = Exclude<
9
+ keyof typeof PhosphorIcons,
10
+ 'Icon' | 'IconContext' | 'IconBase' | 'IconProps' | 'createIcon' | 'default' | 'SSR'
11
+ >;
9
12
 
10
13
  export interface IconProps {
11
14
  /**
12
15
  * Icon name from Phosphor Icons
13
16
  */
14
17
  name: PhosphorIconsType;
15
-
18
+
16
19
  /**
17
20
  * Icon size
18
21
  */
19
22
  size?: IconSize | number;
20
-
23
+
21
24
  /**
22
25
  * Icon weight/style
23
26
  */
24
27
  weight?: IconWeight;
25
-
28
+
26
29
  /**
27
30
  * Icon color
28
31
  */
29
32
  color?: string;
30
-
33
+
31
34
  /**
32
35
  * Additional CSS class names
33
36
  */
34
37
  className?: string;
35
-
38
+
36
39
  /**
37
40
  * Alt text for accessibility
38
41
  */
@@ -45,7 +48,7 @@ const sizeMap: Record<IconSize, number> = {
45
48
  sm: 20,
46
49
  md: 24,
47
50
  lg: 32,
48
- xl: 40
51
+ xl: 40,
49
52
  };
50
53
 
51
54
  /**
@@ -57,33 +60,28 @@ export const Icon: React.FC<IconProps> = ({
57
60
  weight = 'regular',
58
61
  color,
59
62
  className = '',
60
- alt
63
+ alt,
61
64
  }) => {
62
65
  // Get the icon component from Phosphor
63
66
  const IconComponent = PhosphorIcons[name] as React.FC<
64
67
  PhosphorIcons.IconProps & { ref?: React.Ref<SVGSVGElement> }
65
68
  >;
66
-
69
+
67
70
  if (!IconComponent) {
68
71
  console.warn(`Icon "${name}" not found in Phosphor Icons`);
69
72
  return null;
70
73
  }
71
-
74
+
72
75
  // Convert string size to pixel value if needed
73
76
  const pixelSize = typeof size === 'string' ? sizeMap[size as IconSize] || 24 : size;
74
-
77
+
75
78
  return (
76
79
  <span className={`c-icon c-icon--${size} ${className}`} aria-hidden={!alt} title={alt}>
77
- <IconComponent
78
- size={pixelSize}
79
- weight={weight}
80
- color={color}
81
- aria-label={alt}
82
- />
80
+ <IconComponent size={pixelSize} weight={weight} color={color} aria-label={alt} />
83
81
  </span>
84
82
  );
85
83
  };
86
84
 
87
85
  Icon.displayName = 'Icon';
88
86
 
89
- export default Icon;
87
+ export default Icon;
@@ -1,2 +1,2 @@
1
1
  export { Icon, type IconProps, type IconSize, type IconWeight } from './Icon';
2
- export { default } from './Icon';
2
+ export { default } from './Icon';
@@ -40,9 +40,7 @@ const ListItem = ({ children }: { children: React.ReactNode }) => <span>{childre
40
40
  const ListItems = ({ variant }: { variant: string }) => (
41
41
  <>
42
42
  {ITEMS.map((item, index) => (
43
- <ListItem key={index}>
44
- {variant === 'number' ? `${index + 1}. ${item}` : item}
45
- </ListItem>
43
+ <ListItem key={index}>{variant === 'number' ? `${index + 1}. ${item}` : item}</ListItem>
46
44
  ))}
47
45
  </>
48
46
  );
@@ -9,18 +9,16 @@ export const List: React.FC<ListProps> = ({
9
9
  ...props
10
10
  }) => {
11
11
  // Generate CSS classes
12
- const listClasses = [
13
- LIST.BASE_CLASS,
14
- variant !== 'default' && `c-list--${variant}`,
15
- className,
16
- ].filter(Boolean).join(' ');
12
+ const listClasses = [LIST.BASE_CLASS, variant !== 'default' && `c-list--${variant}`, className]
13
+ .filter(Boolean)
14
+ .join(' ');
17
15
 
18
16
  // Determine the HTML element based on variant
19
17
  const ListElement = ['number', 'text'].includes(variant) ? 'ol' : 'ul';
20
18
 
21
19
  return (
22
20
  <ListElement className={listClasses} {...props}>
23
- {React.Children.map(children, (child) => {
21
+ {React.Children.map(children, child => {
24
22
  if (React.isValidElement(child)) {
25
23
  return <li className="c-list__item">{child}</li>;
26
24
  }
@@ -30,10 +28,8 @@ export const List: React.FC<ListProps> = ({
30
28
  );
31
29
  };
32
30
 
33
-
34
-
35
- export type { ListProps };
31
+ export type { ListProps };
36
32
 
37
33
  List.displayName = 'List';
38
34
 
39
- export default List;
35
+ export default List;
@@ -14,7 +14,7 @@ export const ListGroup: React.FC<ListGroupProps> = ({
14
14
 
15
15
  // Get valid List children
16
16
  const validLists = React.Children.toArray(children).filter(
17
- (child) => React.isValidElement(child) && child.type === List
17
+ child => React.isValidElement(child) && child.type === List
18
18
  ) as React.ReactElement[];
19
19
 
20
20
  return (
@@ -1,2 +1,2 @@
1
1
  export { List } from './List';
2
- export { ListGroup } from './ListGroup';
2
+ export { ListGroup } from './ListGroup';
@@ -10,9 +10,10 @@ const meta: Meta<typeof Messages> = {
10
10
  layout: 'centered',
11
11
  docs: {
12
12
  description: {
13
- component: 'Messages component for displaying chat conversations with support for text messages, images, and file attachments.'
14
- }
15
- }
13
+ component:
14
+ 'Messages component for displaying chat conversations with support for text messages, images, and file attachments.',
15
+ },
16
+ },
16
17
  },
17
18
  tags: ['autodocs'],
18
19
  argTypes: {
@@ -36,18 +37,20 @@ export const Default: Story = {
36
37
  width: '800px',
37
38
  bodyHeight: '400px',
38
39
  otherName: 'Meghan',
39
- otherAvatar: 'https://images.unsplash.com/photo-1648074074225-16189e7ad8c9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1935&q=80',
40
- selfAvatar: 'https://images.unsplash.com/photo-1633332755192-727a05c4013d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1780&q=80',
40
+ otherAvatar:
41
+ 'https://images.unsplash.com/photo-1648074074225-16189e7ad8c9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1935&q=80',
42
+ selfAvatar:
43
+ 'https://images.unsplash.com/photo-1633332755192-727a05c4013d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1780&q=80',
41
44
  messages: [
42
45
  {
43
46
  id: '1',
44
- text: 'Hi, I hope you\'re having a good day.',
47
+ text: "Hi, I hope you're having a good day.",
45
48
  time: '12:12 AM',
46
49
  isSelf: false,
47
50
  },
48
51
  {
49
52
  id: '2',
50
- text: 'I\'m writing to remind you of your appointment tomorrow at 10 am. Please confirm if you can make it or reschedule if needed.',
53
+ text: "I'm writing to remind you of your appointment tomorrow at 10 am. Please confirm if you can make it or reschedule if needed.",
51
54
  time: '12:13 AM',
52
55
  isSelf: false,
53
56
  },
@@ -68,7 +71,7 @@ export const Default: Story = {
68
71
  },
69
72
  {
70
73
  id: '5',
71
- text: 'Sure, I\'ll be there',
74
+ text: "Sure, I'll be there",
72
75
  time: '12:18 AM',
73
76
  isSelf: true,
74
77
  },
@@ -96,8 +99,10 @@ export const EmptyChat: Story = {
96
99
  width: '800px',
97
100
  bodyHeight: '400px',
98
101
  otherName: 'Meghan',
99
- otherAvatar: 'https://images.unsplash.com/photo-1648074074225-16189e7ad8c9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1935&q=80',
100
- selfAvatar: 'https://images.unsplash.com/photo-1633332755192-727a05c4013d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1780&q=80',
102
+ otherAvatar:
103
+ 'https://images.unsplash.com/photo-1648074074225-16189e7ad8c9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1935&q=80',
104
+ selfAvatar:
105
+ 'https://images.unsplash.com/photo-1633332755192-727a05c4013d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1780&q=80',
101
106
  messages: [],
102
107
  },
103
108
  };
@@ -111,10 +116,9 @@ export const DisabledChat: Story = {
111
116
 
112
117
  // Interactive example with state management
113
118
  export const Interactive: StoryObj<typeof Messages> = {
114
- render: (args) => {
115
- // eslint-disable-next-line react-hooks/rules-of-hooks
119
+ render: args => {
116
120
  const [messages, setMessages] = useState<MessageItem[]>(args.messages || []);
117
-
121
+
118
122
  const handleSendMessage = (text: string) => {
119
123
  const newMessage: MessageItem = {
120
124
  id: `msg-${Date.now()}`,
@@ -122,24 +126,20 @@ export const Interactive: StoryObj<typeof Messages> = {
122
126
  time: new Date().toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }),
123
127
  isSelf: true,
124
128
  };
125
-
129
+
126
130
  setMessages([...messages, newMessage]);
127
131
  };
128
-
129
- return (
130
- <Messages
131
- {...args}
132
- messages={messages}
133
- onSendMessage={handleSendMessage}
134
- />
135
- );
132
+
133
+ return <Messages {...args} messages={messages} onSendMessage={handleSendMessage} />;
136
134
  },
137
135
  args: {
138
136
  width: '800px',
139
137
  bodyHeight: '400px',
140
138
  otherName: 'Meghan',
141
- otherAvatar: 'https://images.unsplash.com/photo-1648074074225-16189e7ad8c9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1935&q=80',
142
- selfAvatar: 'https://images.unsplash.com/photo-1633332755192-727a05c4013d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1780&q=80',
139
+ otherAvatar:
140
+ 'https://images.unsplash.com/photo-1648074074225-16189e7ad8c9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1935&q=80',
141
+ selfAvatar:
142
+ 'https://images.unsplash.com/photo-1633332755192-727a05c4013d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1780&q=80',
143
143
  messages: [
144
144
  {
145
145
  id: '1',
@@ -153,8 +153,9 @@ export const Interactive: StoryObj<typeof Messages> = {
153
153
  parameters: {
154
154
  docs: {
155
155
  description: {
156
- story: 'An interactive example where you can send messages and see them appear in the chat.'
157
- }
158
- }
159
- }
160
- };
156
+ story:
157
+ 'An interactive example where you can send messages and see them appear in the chat.',
158
+ },
159
+ },
160
+ },
161
+ };
@@ -21,19 +21,16 @@ export const Messages: React.FC<MessagesProps> = ({
21
21
  disabled = false,
22
22
  id,
23
23
  }) => {
24
- const {
25
- inputValue,
26
- handleInputChange,
27
- handleSubmit,
28
- handleKeyDown
29
- } = useMessages({ onSendMessage });
30
-
24
+ const { inputValue, handleInputChange, handleSubmit, handleKeyDown } = useMessages({
25
+ onSendMessage,
26
+ });
27
+
31
28
  // Generate unique ID for accessibility
32
29
  const messagesId = id || `messages-${Math.random().toString(36).substr(2, 9)}`;
33
30
  const inputId = `${messagesId}-input`;
34
-
31
+
35
32
  return (
36
- <div
33
+ <div
37
34
  className={`${MESSAGES.CLASSES.BASE} ${disabled ? 'is-disabled' : ''} ${className}`}
38
35
  style={{ '--atomix-messages-width': width } as React.CSSProperties}
39
36
  id={messagesId}
@@ -41,17 +38,21 @@ export const Messages: React.FC<MessagesProps> = ({
41
38
  role="log"
42
39
  aria-live="polite"
43
40
  >
44
- <div
41
+ <div
45
42
  className={MESSAGES.CLASSES.BODY}
46
- style={bodyHeight ? { '--atomix-messages-body-height': bodyHeight } as React.CSSProperties : undefined}
43
+ style={
44
+ bodyHeight
45
+ ? ({ '--atomix-messages-body-height': bodyHeight } as React.CSSProperties)
46
+ : undefined
47
+ }
47
48
  >
48
- {messages.map((message) => (
49
- <div
50
- key={message.id}
49
+ {messages.map(message => (
50
+ <div
51
+ key={message.id}
51
52
  className={`${MESSAGES.CLASSES.CONTENT} ${message.isSelf ? MESSAGES.CLASSES.CONTENT_SELF : ''}`}
52
53
  aria-label={`${message.isSelf ? 'You' : otherName || 'Other person'} sent a message at ${message.time}`}
53
54
  >
54
- <Avatar
55
+ <Avatar
55
56
  src={message.isSelf ? selfAvatar : otherAvatar}
56
57
  size="xl"
57
58
  circle
@@ -62,7 +63,7 @@ export const Messages: React.FC<MessagesProps> = ({
62
63
  {!message.isSelf && otherName && (
63
64
  <div className={MESSAGES.CLASSES.NAME}>{otherName}</div>
64
65
  )}
65
-
66
+
66
67
  {message.text && (
67
68
  <div className={MESSAGES.CLASSES.TEXT}>
68
69
  {message.text}
@@ -71,18 +72,18 @@ export const Messages: React.FC<MessagesProps> = ({
71
72
  </span>
72
73
  </div>
73
74
  )}
74
-
75
+
75
76
  {message.image && (
76
- <img
77
- className={MESSAGES.CLASSES.IMAGE}
78
- src={message.image}
79
- alt="Message attachment"
77
+ <img
78
+ className={MESSAGES.CLASSES.IMAGE}
79
+ src={message.image}
80
+ alt="Message attachment"
80
81
  loading="lazy"
81
82
  />
82
83
  )}
83
-
84
+
84
85
  {message.file && (
85
- <div
86
+ <div
86
87
  className={MESSAGES.CLASSES.FILE}
87
88
  aria-label={`File attachment: ${message.file.name}, size: ${message.file.size}`}
88
89
  >
@@ -99,9 +100,9 @@ export const Messages: React.FC<MessagesProps> = ({
99
100
  </div>
100
101
  ))}
101
102
  </div>
102
-
103
- <form
104
- className={MESSAGES.CLASSES.FORM}
103
+
104
+ <form
105
+ className={MESSAGES.CLASSES.FORM}
105
106
  onSubmit={handleSubmit}
106
107
  aria-label="Message input form"
107
108
  >
@@ -121,47 +122,51 @@ export const Messages: React.FC<MessagesProps> = ({
121
122
  aria-label="Message input"
122
123
  />
123
124
  <div className={MESSAGES.CLASSES.OPTIONS} aria-label="Message options">
124
- <button
125
- type="button"
126
- className={MESSAGES.CLASSES.OPTION}
127
- aria-label="Attach file"
128
- disabled={disabled}
129
- >
130
- <Icon name="PaperclipHorizontal" aria-hidden="true" className={MESSAGES.CLASSES.OPTION_ICON}/>
131
- </button>
132
- <button
133
- type="button"
134
- className={MESSAGES.CLASSES.OPTION}
135
- aria-label="Attach image"
136
- disabled={disabled}
137
- >
138
- <Icon name="Image" aria-hidden="true" className={MESSAGES.CLASSES.OPTION_ICON}/>
139
- </button>
140
- <button
141
- type="button"
142
- className={MESSAGES.CLASSES.OPTION}
143
- aria-label="Insert link"
144
- disabled={disabled}
145
- >
146
- <Icon name="Link" aria-hidden="true" className={MESSAGES.CLASSES.OPTION_ICON}/>
147
- </button>
125
+ <button
126
+ type="button"
127
+ className={MESSAGES.CLASSES.OPTION}
128
+ aria-label="Attach file"
129
+ disabled={disabled}
130
+ >
131
+ <Icon
132
+ name="PaperclipHorizontal"
133
+ aria-hidden="true"
134
+ className={MESSAGES.CLASSES.OPTION_ICON}
135
+ />
136
+ </button>
137
+ <button
138
+ type="button"
139
+ className={MESSAGES.CLASSES.OPTION}
140
+ aria-label="Attach image"
141
+ disabled={disabled}
142
+ >
143
+ <Icon name="Image" aria-hidden="true" className={MESSAGES.CLASSES.OPTION_ICON} />
144
+ </button>
145
+ <button
146
+ type="button"
147
+ className={MESSAGES.CLASSES.OPTION}
148
+ aria-label="Insert link"
149
+ disabled={disabled}
150
+ >
151
+ <Icon name="Link" aria-hidden="true" className={MESSAGES.CLASSES.OPTION_ICON} />
152
+ </button>
148
153
  </div>
149
154
  </div>
150
- <button
151
- type="submit"
155
+ <button
156
+ type="submit"
152
157
  className={MESSAGES.CLASSES.SUBMIT}
153
158
  aria-label="Send message"
154
159
  disabled={disabled}
155
160
  >
156
- <Icon name="PaperPlaneTilt" aria-hidden="true" size={24}/>
161
+ <Icon name="PaperPlaneTilt" aria-hidden="true" size={24} />
157
162
  </button>
158
163
  </form>
159
164
  </div>
160
165
  );
161
166
  };
162
167
 
163
- export type { MessagesProps };
168
+ export type { MessagesProps };
164
169
 
165
170
  Messages.displayName = 'Messages';
166
171
 
167
- export default Messages;
172
+ export default Messages;
@@ -1,3 +1,3 @@
1
1
  export { Messages } from './Messages';
2
2
  export { default } from './Messages';
3
- export type { MessagesProps } from './Messages';
3
+ export type { MessagesProps } from './Messages';
@@ -44,9 +44,4 @@ if (typeof window !== 'undefined') {
44
44
  });
45
45
  }
46
46
 
47
- export {
48
- Messages,
49
- type MessagesOptions,
50
- type MessageItem,
51
- MessagesInteractions
52
- };
47
+ export { Messages, type MessagesOptions, type MessageItem, MessagesInteractions };
@@ -27,14 +27,10 @@ export const initializeAllMessages = (options: MessagesOptions = {}): Messages[]
27
27
  * @param messagesInstance - Messages instance or selector
28
28
  * @param message - Message data
29
29
  */
30
- export const addMessage = (
31
- messagesInstance: Messages | string,
32
- message: MessageItem
33
- ): void => {
34
- const instance = typeof messagesInstance === 'string'
35
- ? new Messages(messagesInstance)
36
- : messagesInstance;
37
-
30
+ export const addMessage = (messagesInstance: Messages | string, message: MessageItem): void => {
31
+ const instance =
32
+ typeof messagesInstance === 'string' ? new Messages(messagesInstance) : messagesInstance;
33
+
38
34
  instance.addMessage(message);
39
35
  };
40
36
 
@@ -43,10 +39,9 @@ export const addMessage = (
43
39
  * @param messagesInstance - Messages instance or selector
44
40
  */
45
41
  export const clearMessages = (messagesInstance: Messages | string): void => {
46
- const instance = typeof messagesInstance === 'string'
47
- ? new Messages(messagesInstance)
48
- : messagesInstance;
49
-
42
+ const instance =
43
+ typeof messagesInstance === 'string' ? new Messages(messagesInstance) : messagesInstance;
44
+
50
45
  instance.clearMessages();
51
46
  };
52
47
 
@@ -55,10 +50,9 @@ export const clearMessages = (messagesInstance: Messages | string): void => {
55
50
  * @param messagesInstance - Messages instance or selector
56
51
  */
57
52
  export const enableMessages = (messagesInstance: Messages | string): void => {
58
- const instance = typeof messagesInstance === 'string'
59
- ? new Messages(messagesInstance)
60
- : messagesInstance;
61
-
53
+ const instance =
54
+ typeof messagesInstance === 'string' ? new Messages(messagesInstance) : messagesInstance;
55
+
62
56
  instance.enable();
63
57
  };
64
58
 
@@ -67,10 +61,9 @@ export const enableMessages = (messagesInstance: Messages | string): void => {
67
61
  * @param messagesInstance - Messages instance or selector
68
62
  */
69
63
  export const disableMessages = (messagesInstance: Messages | string): void => {
70
- const instance = typeof messagesInstance === 'string'
71
- ? new Messages(messagesInstance)
72
- : messagesInstance;
73
-
64
+ const instance =
65
+ typeof messagesInstance === 'string' ? new Messages(messagesInstance) : messagesInstance;
66
+
74
67
  instance.disable();
75
68
  };
76
69
 
@@ -83,22 +76,23 @@ export const disableMessages = (messagesInstance: Messages | string): void => {
83
76
  export const onMessageSend = (
84
77
  messagesInstance: Messages | string,
85
78
  callback: (text: string) => void
86
- ): () => void => {
87
- const element = typeof messagesInstance === 'string'
88
- ? document.querySelector(messagesInstance) as HTMLElement
89
- : messagesInstance.$element;
90
-
79
+ ): (() => void) => {
80
+ const element =
81
+ typeof messagesInstance === 'string'
82
+ ? (document.querySelector(messagesInstance) as HTMLElement)
83
+ : messagesInstance.$element;
84
+
91
85
  if (!element) {
92
86
  throw new Error('Messages element not found');
93
87
  }
94
-
88
+
95
89
  const handler = (event: Event) => {
96
90
  const customEvent = event as CustomEvent;
97
91
  callback(customEvent.detail.text);
98
92
  };
99
-
93
+
100
94
  element.addEventListener('messages:send', handler);
101
-
95
+
102
96
  // Return cleanup function
103
97
  return () => {
104
98
  element.removeEventListener('messages:send', handler);
@@ -114,24 +108,25 @@ export const onMessageSend = (
114
108
  export const onNewMessage = (
115
109
  messagesInstance: Messages | string,
116
110
  callback: (message: MessageItem) => void
117
- ): () => void => {
118
- const element = typeof messagesInstance === 'string'
119
- ? document.querySelector(messagesInstance) as HTMLElement
120
- : messagesInstance.$element;
121
-
111
+ ): (() => void) => {
112
+ const element =
113
+ typeof messagesInstance === 'string'
114
+ ? (document.querySelector(messagesInstance) as HTMLElement)
115
+ : messagesInstance.$element;
116
+
122
117
  if (!element) {
123
118
  throw new Error('Messages element not found');
124
119
  }
125
-
120
+
126
121
  const handler = (event: Event) => {
127
122
  const customEvent = event as CustomEvent;
128
123
  callback(customEvent.detail.message);
129
124
  };
130
-
125
+
131
126
  element.addEventListener('messages:new', handler);
132
-
127
+
133
128
  // Return cleanup function
134
129
  return () => {
135
130
  element.removeEventListener('messages:new', handler);
136
131
  };
137
- };
132
+ };