@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
@@ -8,22 +8,22 @@ export interface MessagesOptions {
8
8
  * Custom width for the messages container
9
9
  */
10
10
  width?: string;
11
-
11
+
12
12
  /**
13
13
  * Maximum height for the messages body
14
14
  */
15
15
  bodyHeight?: string;
16
-
16
+
17
17
  /**
18
18
  * Placeholder text for the input field
19
19
  */
20
20
  placeholder?: string;
21
-
21
+
22
22
  /**
23
23
  * Callback when a new message is sent
24
24
  */
25
25
  onSendMessage?: (text: string) => void;
26
-
26
+
27
27
  /**
28
28
  * Whether the component is disabled
29
29
  */
@@ -52,7 +52,7 @@ const DEFAULT_OPTIONS: MessagesOptions = {
52
52
  width: '100%',
53
53
  bodyHeight: 'calc(100vh - 600px)',
54
54
  placeholder: 'Type a message',
55
- disabled: false
55
+ disabled: false,
56
56
  };
57
57
 
58
58
  /**
@@ -80,22 +80,21 @@ export class Messages {
80
80
  * @param options - Component options
81
81
  */
82
82
  constructor(element: string | HTMLElement, options: MessagesOptions = {}) {
83
- this._element = typeof element === 'string'
84
- ? document.querySelector(element) as HTMLElement
85
- : element;
86
-
83
+ this._element =
84
+ typeof element === 'string' ? (document.querySelector(element) as HTMLElement) : element;
85
+
87
86
  if (!this._element) {
88
87
  throw new Error('Messages element not found');
89
88
  }
90
-
89
+
91
90
  this.options = { ...DEFAULT_OPTIONS, ...options };
92
-
91
+
93
92
  // Cache DOM elements
94
93
  this.$form = this._element.querySelector(MESSAGES.SELECTORS.FORM);
95
94
  this.$input = this._element.querySelector(MESSAGES.SELECTORS.INPUT);
96
95
  this.$submitButton = this._element.querySelector('.c-messages__submit');
97
96
  this.$body = this._element.querySelector(MESSAGES.SELECTORS.BODY);
98
-
97
+
99
98
  this._initialize();
100
99
  }
101
100
 
@@ -107,24 +106,24 @@ export class Messages {
107
106
  if (this.options.width) {
108
107
  this._element.style.setProperty('--atomix-messages-width', this.options.width);
109
108
  }
110
-
109
+
111
110
  if (this.options.bodyHeight && this.$body) {
112
111
  this.$body.style.setProperty('--atomix-messages-body-height', this.options.bodyHeight);
113
112
  }
114
-
113
+
115
114
  if (this.options.placeholder && this.$input) {
116
115
  this.$input.placeholder = this.options.placeholder;
117
116
  }
118
-
117
+
119
118
  if (this.options.disabled) {
120
119
  this._element.classList.add('is-disabled');
121
120
  if (this.$input) this.$input.disabled = true;
122
121
  if (this.$submitButton) this.$submitButton.disabled = true;
123
122
  }
124
-
123
+
125
124
  // Set up event handlers
126
125
  this._setupEventListeners();
127
-
126
+
128
127
  // Scroll to bottom of messages
129
128
  this._scrollToBottom();
130
129
  }
@@ -137,14 +136,14 @@ export class Messages {
137
136
  this.eventHandlers.submit = this._handleSubmit.bind(this);
138
137
  this.$form.addEventListener('submit', this.eventHandlers.submit);
139
138
  }
140
-
139
+
141
140
  if (this.$input) {
142
141
  this.eventHandlers.keydown = ((event: Event) => {
143
142
  if (event instanceof KeyboardEvent) {
144
143
  this._handleKeyDown(event);
145
144
  }
146
145
  }) as EventListener;
147
-
146
+
148
147
  this.$input.addEventListener('keydown', this.eventHandlers.keydown);
149
148
  }
150
149
  }
@@ -154,26 +153,26 @@ export class Messages {
154
153
  */
155
154
  private _handleSubmit(event: Event): void {
156
155
  event.preventDefault();
157
-
156
+
158
157
  if (!this.$input || this.options.disabled) return;
159
-
158
+
160
159
  const text = this.$input.value.trim();
161
160
  if (!text) return;
162
-
161
+
163
162
  if (this.options.onSendMessage) {
164
163
  this.options.onSendMessage(text);
165
164
  }
166
-
165
+
167
166
  // Dispatch custom event
168
167
  const customEvent = new CustomEvent('messages:send', {
169
168
  bubbles: true,
170
- detail: { text }
169
+ detail: { text },
171
170
  });
172
171
  this._element.dispatchEvent(customEvent);
173
-
172
+
174
173
  // Clear input
175
174
  this.$input.value = '';
176
-
175
+
177
176
  // Scroll to bottom
178
177
  this._scrollToBottom();
179
178
  }
@@ -197,17 +196,17 @@ export class Messages {
197
196
  */
198
197
  public addMessage(message: MessageItem): void {
199
198
  if (!this.$body) return;
200
-
199
+
201
200
  const messageEl = this._createMessageElement(message);
202
201
  this.$body.appendChild(messageEl);
203
-
202
+
204
203
  // Scroll to bottom
205
204
  this._scrollToBottom();
206
-
205
+
207
206
  // Dispatch custom event
208
207
  const customEvent = new CustomEvent('messages:new', {
209
208
  bubbles: true,
210
- detail: { message }
209
+ detail: { message },
211
210
  });
212
211
  this._element.dispatchEvent(customEvent);
213
212
  }
@@ -218,31 +217,34 @@ export class Messages {
218
217
  private _createMessageElement(message: MessageItem): HTMLElement {
219
218
  const contentEl = document.createElement('div');
220
219
  contentEl.className = `${MESSAGES.CLASSES.CONTENT} ${message.isSelf ? MESSAGES.CLASSES.CONTENT_SELF : ''}`;
221
- contentEl.setAttribute('aria-label', `${message.isSelf ? 'You' : 'Other person'} sent a message at ${message.time}`);
222
-
220
+ contentEl.setAttribute(
221
+ 'aria-label',
222
+ `${message.isSelf ? 'You' : 'Other person'} sent a message at ${message.time}`
223
+ );
224
+
223
225
  // Create avatar
224
226
  const avatarEl = document.createElement('div');
225
227
  avatarEl.className = `${MESSAGES.CLASSES.AVATAR} c-avatar c-avatar--xl c-avatar--circle`;
226
-
228
+
227
229
  // Create items container
228
230
  const itemsEl = document.createElement('div');
229
231
  itemsEl.className = MESSAGES.CLASSES.ITEMS;
230
-
232
+
231
233
  // Add text message if present
232
234
  if (message.text) {
233
235
  const textEl = document.createElement('div');
234
236
  textEl.className = MESSAGES.CLASSES.TEXT;
235
237
  textEl.textContent = message.text;
236
-
238
+
237
239
  const timeEl = document.createElement('span');
238
240
  timeEl.className = MESSAGES.CLASSES.TIME;
239
241
  timeEl.textContent = message.time;
240
242
  timeEl.setAttribute('aria-label', `Sent at ${message.time}`);
241
-
243
+
242
244
  textEl.appendChild(timeEl);
243
245
  itemsEl.appendChild(textEl);
244
246
  }
245
-
247
+
246
248
  // Add image if present
247
249
  if (message.image) {
248
250
  const imageEl = document.createElement('img');
@@ -250,43 +252,47 @@ export class Messages {
250
252
  imageEl.src = message.image;
251
253
  imageEl.alt = 'Message attachment';
252
254
  imageEl.setAttribute('loading', 'lazy');
253
-
255
+
254
256
  itemsEl.appendChild(imageEl);
255
257
  }
256
-
258
+
257
259
  // Add file if present
258
260
  if (message.file) {
259
261
  const fileEl = document.createElement('div');
260
262
  fileEl.className = MESSAGES.CLASSES.FILE;
261
- fileEl.setAttribute('aria-label', `File attachment: ${message.file.name}, size: ${message.file.size}`);
262
-
263
+ fileEl.setAttribute(
264
+ 'aria-label',
265
+ `File attachment: ${message.file.name}, size: ${message.file.size}`
266
+ );
267
+
263
268
  const iconEl = document.createElement('span');
264
269
  iconEl.className = MESSAGES.CLASSES.FILE_ICON;
265
- iconEl.innerHTML = '<span class="c-icon c-icon--md " aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 256 256"><rect width="256" height="256" fill="none"></rect><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></path><polyline points="152 32 152 88 208 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></polyline></svg></span>';
266
-
270
+ iconEl.innerHTML =
271
+ '<span class="c-icon c-icon--md " aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 256 256"><rect width="256" height="256" fill="none"></rect><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></path><polyline points="152 32 152 88 208 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></polyline></svg></span>';
272
+
267
273
  const detailsEl = document.createElement('div');
268
274
  detailsEl.className = MESSAGES.CLASSES.FILE_DETAILS;
269
-
275
+
270
276
  const nameEl = document.createElement('div');
271
277
  nameEl.className = MESSAGES.CLASSES.FILE_NAME;
272
278
  nameEl.textContent = message.file.name;
273
-
279
+
274
280
  const sizeEl = document.createElement('div');
275
281
  sizeEl.className = MESSAGES.CLASSES.FILE_SIZE;
276
282
  sizeEl.textContent = message.file.size;
277
-
283
+
278
284
  detailsEl.appendChild(nameEl);
279
285
  detailsEl.appendChild(sizeEl);
280
-
286
+
281
287
  fileEl.appendChild(iconEl);
282
288
  fileEl.appendChild(detailsEl);
283
-
289
+
284
290
  itemsEl.appendChild(fileEl);
285
291
  }
286
-
292
+
287
293
  contentEl.appendChild(avatarEl);
288
294
  contentEl.appendChild(itemsEl);
289
-
295
+
290
296
  return contentEl;
291
297
  }
292
298
 
@@ -307,7 +313,7 @@ export class Messages {
307
313
  this._element.classList.remove('is-disabled');
308
314
  if (this.$input) this.$input.disabled = false;
309
315
  if (this.$submitButton) this.$submitButton.disabled = false;
310
-
316
+
311
317
  const optionButtons = this._element.querySelectorAll('.c-messages__option-icon');
312
318
  optionButtons.forEach(button => {
313
319
  if (button instanceof HTMLButtonElement) {
@@ -324,7 +330,7 @@ export class Messages {
324
330
  this._element.classList.add('is-disabled');
325
331
  if (this.$input) this.$input.disabled = true;
326
332
  if (this.$submitButton) this.$submitButton.disabled = true;
327
-
333
+
328
334
  const optionButtons = this._element.querySelectorAll('.c-messages__option-icon');
329
335
  optionButtons.forEach(button => {
330
336
  if (button instanceof HTMLButtonElement) {
@@ -351,11 +357,11 @@ export class Messages {
351
357
  if (this.$form && this.eventHandlers.submit) {
352
358
  this.$form.removeEventListener('submit', this.eventHandlers.submit);
353
359
  }
354
-
360
+
355
361
  if (this.$input && this.eventHandlers.keydown) {
356
362
  this.$input.removeEventListener('keydown', this.eventHandlers.keydown);
357
363
  }
358
-
364
+
359
365
  // Clear event handlers
360
366
  this.eventHandlers = {};
361
367
  }
@@ -369,4 +375,4 @@ export class Messages {
369
375
  }
370
376
  }
371
377
 
372
- export default Messages;
378
+ export default Messages;
@@ -44,51 +44,56 @@ type Story = StoryObj<typeof Modal>;
44
44
  * Basic modal example with a button to trigger opening.
45
45
  */
46
46
  export const Basic: Story = {
47
- render: (args) => {
47
+ render: args => {
48
48
  const [isOpen, setIsOpen] = useState(false);
49
-
49
+
50
50
  return (
51
51
  <>
52
- <div
53
- className="c-btn c-btn--primary"
52
+ <div
53
+ className="c-btn c-btn--primary"
54
54
  onClick={() => setIsOpen(true)}
55
55
  style={{ cursor: 'pointer', padding: '8px 16px', display: 'inline-block' }}
56
56
  >
57
57
  Open Modal
58
58
  </div>
59
-
60
- <Modal
59
+
60
+ <Modal
61
61
  {...args}
62
62
  isOpen={isOpen}
63
63
  onOpenChange={setIsOpen}
64
64
  title="Title"
65
65
  subtitle="This is some description text. This text is only a placeholder and should be replaced with the actual content of the modal."
66
66
  >
67
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, odio vitae faucibus luctus, elit nisi tincidunt justo, in malesuada enim nisl eget nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
67
+ <p>
68
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, odio vitae
69
+ faucibus luctus, elit nisi tincidunt justo, in malesuada enim nisl eget nisl.
70
+ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis
71
+ egestas.
72
+ </p>
68
73
  </Modal>
69
74
  </>
70
75
  );
71
- }
76
+ },
72
77
  };
73
78
 
74
79
  /**
75
80
  * Modal with a title, subtitle, and footer actions.
76
81
  */
77
82
  export const WithFooter: Story = {
78
- render: (args) => {
83
+ render: args => {
79
84
  const [isOpen, setIsOpen] = useState(false);
80
-
85
+
81
86
  return (
82
87
  <>
83
- <div
84
- className="c-btn c-btn--primary"
88
+ <div
89
+ className="c-btn c-btn--primary"
85
90
  onClick={() => setIsOpen(true)}
86
91
  style={{ cursor: 'pointer', padding: '8px 16px', display: 'inline-block' }}
87
92
  >
88
93
  Open Modal with Footer
89
94
  </div>
90
-
91
- <Modal
95
+
96
+ <Modal
92
97
  {...args}
93
98
  isOpen={isOpen}
94
99
  onOpenChange={setIsOpen}
@@ -96,15 +101,20 @@ export const WithFooter: Story = {
96
101
  subtitle="This is some description text. This text is only a placeholder and should be replaced with the actual content of the modal."
97
102
  footer={
98
103
  <>
99
- <div
100
- className="c-btn c-btn--outline-secondary"
104
+ <div
105
+ className="c-btn c-btn--outline-secondary"
101
106
  onClick={() => setIsOpen(false)}
102
- style={{ cursor: 'pointer', padding: '8px 16px', display: 'inline-block', marginRight: '8px' }}
107
+ style={{
108
+ cursor: 'pointer',
109
+ padding: '8px 16px',
110
+ display: 'inline-block',
111
+ marginRight: '8px',
112
+ }}
103
113
  >
104
114
  Cancel
105
115
  </div>
106
- <div
107
- className="c-btn c-btn--primary"
116
+ <div
117
+ className="c-btn c-btn--primary"
108
118
  onClick={() => {
109
119
  alert('Action confirmed!');
110
120
  setIsOpen(false);
@@ -121,27 +131,27 @@ export const WithFooter: Story = {
121
131
  </Modal>
122
132
  </>
123
133
  );
124
- }
134
+ },
125
135
  };
126
136
 
127
137
  /**
128
138
  * Small size modal variant.
129
139
  */
130
140
  export const Small: Story = {
131
- render: (args) => {
141
+ render: args => {
132
142
  const [isOpen, setIsOpen] = useState(false);
133
-
143
+
134
144
  return (
135
145
  <>
136
- <div
137
- className="c-btn c-btn--primary"
146
+ <div
147
+ className="c-btn c-btn--primary"
138
148
  onClick={() => setIsOpen(true)}
139
149
  style={{ cursor: 'pointer', padding: '8px 16px', display: 'inline-block' }}
140
150
  >
141
151
  Open Small Modal
142
152
  </div>
143
-
144
- <Modal
153
+
154
+ <Modal
145
155
  {...args}
146
156
  isOpen={isOpen}
147
157
  onOpenChange={setIsOpen}
@@ -150,15 +160,20 @@ export const Small: Story = {
150
160
  size="sm"
151
161
  footer={
152
162
  <>
153
- <div
154
- className="c-btn c-btn--outline-secondary"
163
+ <div
164
+ className="c-btn c-btn--outline-secondary"
155
165
  onClick={() => setIsOpen(false)}
156
- style={{ cursor: 'pointer', padding: '8px 16px', display: 'inline-block', marginRight: '8px' }}
166
+ style={{
167
+ cursor: 'pointer',
168
+ padding: '8px 16px',
169
+ display: 'inline-block',
170
+ marginRight: '8px',
171
+ }}
157
172
  >
158
173
  Cancel
159
174
  </div>
160
- <div
161
- className="c-btn c-btn--primary"
175
+ <div
176
+ className="c-btn c-btn--primary"
162
177
  onClick={() => setIsOpen(false)}
163
178
  style={{ cursor: 'pointer', padding: '8px 16px', display: 'inline-block' }}
164
179
  >
@@ -167,11 +182,15 @@ export const Small: Story = {
167
182
  </>
168
183
  }
169
184
  >
170
- <img src="https://unsplash.it/g/400/200" alt="Example image" style={{ maxWidth: '100%' }} />
185
+ <img
186
+ src="https://unsplash.it/g/400/200"
187
+ alt="Example image"
188
+ style={{ maxWidth: '100%' }}
189
+ />
171
190
  </Modal>
172
191
  </>
173
192
  );
174
- }
193
+ },
175
194
  };
176
195
 
177
196
  /**
@@ -181,13 +200,13 @@ export const Sizes: Story = {
181
200
  render: () => {
182
201
  const [size, setSize] = useState<'sm' | 'md' | 'lg' | 'xl'>('md');
183
202
  const [isOpen, setIsOpen] = useState(false);
184
-
203
+
185
204
  return (
186
205
  <div className="u-d-flex u-flex-column u-gap-4">
187
206
  <div className="u-d-flex u-gap-4">
188
- <div
207
+ <div
189
208
  className={`c-btn ${size === 'sm' ? 'c-btn--primary' : 'c-btn--secondary'}`}
190
- onClick={() => {
209
+ onClick={() => {
191
210
  setSize('sm');
192
211
  setIsOpen(true);
193
212
  }}
@@ -195,10 +214,10 @@ export const Sizes: Story = {
195
214
  >
196
215
  Small Modal
197
216
  </div>
198
-
199
- <div
217
+
218
+ <div
200
219
  className={`c-btn ${size === 'md' ? 'c-btn--primary' : 'c-btn--secondary'}`}
201
- onClick={() => {
220
+ onClick={() => {
202
221
  setSize('md');
203
222
  setIsOpen(true);
204
223
  }}
@@ -206,10 +225,10 @@ export const Sizes: Story = {
206
225
  >
207
226
  Medium Modal
208
227
  </div>
209
-
210
- <div
228
+
229
+ <div
211
230
  className={`c-btn ${size === 'lg' ? 'c-btn--primary' : 'c-btn--secondary'}`}
212
- onClick={() => {
231
+ onClick={() => {
213
232
  setSize('lg');
214
233
  setIsOpen(true);
215
234
  }}
@@ -217,10 +236,10 @@ export const Sizes: Story = {
217
236
  >
218
237
  Large Modal
219
238
  </div>
220
-
221
- <div
239
+
240
+ <div
222
241
  className={`c-btn ${size === 'xl' ? 'c-btn--primary' : 'c-btn--secondary'}`}
223
- onClick={() => {
242
+ onClick={() => {
224
243
  setSize('xl');
225
244
  setIsOpen(true);
226
245
  }}
@@ -229,7 +248,7 @@ export const Sizes: Story = {
229
248
  Extra Large Modal
230
249
  </div>
231
250
  </div>
232
-
251
+
233
252
  <Modal
234
253
  isOpen={isOpen}
235
254
  onOpenChange={setIsOpen}
@@ -238,15 +257,20 @@ export const Sizes: Story = {
238
257
  size={size}
239
258
  footer={
240
259
  <>
241
- <div
242
- className="c-btn c-btn--outline-secondary"
260
+ <div
261
+ className="c-btn c-btn--outline-secondary"
243
262
  onClick={() => setIsOpen(false)}
244
- style={{ cursor: 'pointer', padding: '8px 16px', display: 'inline-block', marginRight: '8px' }}
263
+ style={{
264
+ cursor: 'pointer',
265
+ padding: '8px 16px',
266
+ display: 'inline-block',
267
+ marginRight: '8px',
268
+ }}
245
269
  >
246
270
  Button
247
271
  </div>
248
- <div
249
- className="c-btn c-btn--primary"
272
+ <div
273
+ className="c-btn c-btn--primary"
250
274
  onClick={() => setIsOpen(false)}
251
275
  style={{ cursor: 'pointer', padding: '8px 16px', display: 'inline-block' }}
252
276
  >
@@ -260,5 +284,5 @@ export const Sizes: Story = {
260
284
  </Modal>
261
285
  </div>
262
286
  );
263
- }
264
- };
287
+ },
288
+ };