@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
@@ -2,14 +2,14 @@ import React from 'react';
2
2
 
3
3
  export type DatePickerViewMode = 'days' | 'months' | 'years';
4
4
 
5
- export type DatePickerPlacement =
6
- | 'top-start'
7
- | 'top-end'
8
- | 'bottom-start'
9
- | 'bottom-end'
10
- | 'left-start'
11
- | 'left-end'
12
- | 'right-start'
5
+ export type DatePickerPlacement =
6
+ | 'top-start'
7
+ | 'top-end'
8
+ | 'bottom-start'
9
+ | 'bottom-end'
10
+ | 'left-start'
11
+ | 'left-end'
12
+ | 'right-start'
13
13
  | 'right-end';
14
14
 
15
15
  export type DatePickerSize = 'sm' | 'md' | 'lg';
@@ -26,117 +26,117 @@ export interface DatePickerProps {
26
26
  * The currently selected date value
27
27
  */
28
28
  value?: Date | null;
29
-
29
+
30
30
  /**
31
31
  * Callback function when date is changed
32
32
  */
33
33
  onChange?: (date: Date | null) => void;
34
-
34
+
35
35
  /**
36
36
  * Selection mode - single date or date range
37
37
  * @default "single"
38
38
  */
39
39
  selectionMode?: DatePickerSelectionMode;
40
-
40
+
41
41
  /**
42
42
  * The start date of the range (only used when selectionMode is "range")
43
43
  */
44
44
  startDate?: Date | null;
45
-
45
+
46
46
  /**
47
47
  * The end date of the range (only used when selectionMode is "range")
48
48
  */
49
49
  endDate?: Date | null;
50
-
50
+
51
51
  /**
52
52
  * Callback function when date range is changed
53
53
  */
54
54
  onRangeChange?: (range: DateRange) => void;
55
-
55
+
56
56
  /**
57
57
  * Format for the date display (follows Intl.DateTimeFormat patterns)
58
58
  * @default "MM/dd/yyyy"
59
59
  */
60
60
  format?: string;
61
-
61
+
62
62
  /**
63
63
  * Minimum selectable date
64
64
  */
65
65
  minDate?: Date;
66
-
66
+
67
67
  /**
68
68
  * Maximum selectable date
69
69
  */
70
70
  maxDate?: Date;
71
-
71
+
72
72
  /**
73
73
  * Placeholder text for the input
74
74
  * @default "Select date..."
75
75
  */
76
76
  placeholder?: string;
77
-
77
+
78
78
  /**
79
79
  * Whether the datepicker is disabled
80
80
  * @default false
81
81
  */
82
82
  disabled?: boolean;
83
-
83
+
84
84
  /**
85
85
  * Whether the datepicker is read-only
86
86
  * @default false
87
87
  */
88
88
  readOnly?: boolean;
89
-
89
+
90
90
  /**
91
91
  * Whether to show a clear button
92
92
  * @default true
93
93
  */
94
94
  clearable?: boolean;
95
-
95
+
96
96
  /**
97
97
  * Whether to show the "Today" button
98
98
  * @default true
99
99
  */
100
100
  showTodayButton?: boolean;
101
-
101
+
102
102
  /**
103
103
  * Whether to show week numbers
104
104
  * @default false
105
105
  */
106
106
  showWeekNumbers?: boolean;
107
-
107
+
108
108
  /**
109
109
  * Whether to display the datepicker inline (always visible)
110
110
  * @default false
111
111
  */
112
112
  inline?: boolean;
113
-
113
+
114
114
  /**
115
115
  * ID for the input element
116
116
  */
117
117
  id?: string;
118
-
118
+
119
119
  /**
120
120
  * Name for the input element
121
121
  */
122
122
  name?: string;
123
-
123
+
124
124
  /**
125
125
  * Additional class name for the datepicker component
126
126
  */
127
127
  className?: string;
128
-
128
+
129
129
  /**
130
130
  * Placement of the dropdown calendar
131
131
  * @default "bottom-start"
132
132
  */
133
133
  placement?: DatePickerPlacement;
134
-
134
+
135
135
  /**
136
136
  * Additional class name for the input element
137
137
  */
138
138
  inputClassName?: string;
139
-
139
+
140
140
  /**
141
141
  * Size of the input field
142
142
  * @default "md"
@@ -149,17 +149,17 @@ export interface DatePickerRef {
149
149
  * Open the datepicker
150
150
  */
151
151
  open: () => void;
152
-
152
+
153
153
  /**
154
154
  * Close the datepicker
155
155
  */
156
156
  close: () => void;
157
-
157
+
158
158
  /**
159
159
  * Clear the selected date
160
160
  */
161
161
  clear: () => void;
162
-
162
+
163
163
  /**
164
164
  * Set focus on the input element
165
165
  */
@@ -4,7 +4,7 @@
4
4
  export function getMonthName(month: number): string {
5
5
  const date = new Date();
6
6
  date.setMonth(month);
7
-
7
+
8
8
  return date.toLocaleString('default', { month: 'long' });
9
9
  }
10
10
 
@@ -27,11 +27,11 @@ export function getFirstDayOfMonth(year: number, month: number): number {
27
27
  */
28
28
  export function formatDate(date: Date, format: string): string {
29
29
  if (!date) return '';
30
-
30
+
31
31
  const day = date.getDate();
32
32
  const month = date.getMonth() + 1;
33
33
  const year = date.getFullYear();
34
-
34
+
35
35
  // Simple formatting for the most common patterns
36
36
  return format
37
37
  .replace('yyyy', year.toString())
@@ -44,13 +44,17 @@ export function formatDate(date: Date, format: string): string {
44
44
  /**
45
45
  * Format a date range for display
46
46
  */
47
- export function formatDateRange(startDate: Date | null, endDate: Date | null, format: string): string {
47
+ export function formatDateRange(
48
+ startDate: Date | null,
49
+ endDate: Date | null,
50
+ format: string
51
+ ): string {
48
52
  if (!startDate) return '';
49
-
53
+
50
54
  if (!endDate) {
51
55
  return `${formatDate(startDate, format)} - Select end date`;
52
56
  }
53
-
57
+
54
58
  return `${formatDate(startDate, format)} - ${formatDate(endDate, format)}`;
55
59
  }
56
60
 
@@ -59,49 +63,49 @@ export function formatDateRange(startDate: Date | null, endDate: Date | null, fo
59
63
  */
60
64
  export function parseDate(dateStr: string, format: string): Date | null {
61
65
  if (!dateStr) return null;
62
-
66
+
63
67
  // Simple parsing for common formats
64
68
  const normalized = format.toLowerCase();
65
-
69
+
66
70
  if (normalized === 'mm/dd/yyyy') {
67
71
  const parts = dateStr.split('/');
68
72
  if (parts.length !== 3) return null;
69
-
73
+
70
74
  const month = parseInt(parts[0], 10) - 1;
71
75
  const day = parseInt(parts[1], 10);
72
76
  const year = parseInt(parts[2], 10);
73
-
77
+
74
78
  if (isNaN(month) || isNaN(day) || isNaN(year)) return null;
75
-
79
+
76
80
  return new Date(year, month, day);
77
81
  }
78
-
82
+
79
83
  if (normalized === 'dd/mm/yyyy') {
80
84
  const parts = dateStr.split('/');
81
85
  if (parts.length !== 3) return null;
82
-
86
+
83
87
  const day = parseInt(parts[0], 10);
84
88
  const month = parseInt(parts[1], 10) - 1;
85
89
  const year = parseInt(parts[2], 10);
86
-
90
+
87
91
  if (isNaN(month) || isNaN(day) || isNaN(year)) return null;
88
-
92
+
89
93
  return new Date(year, month, day);
90
94
  }
91
-
95
+
92
96
  if (normalized === 'yyyy-mm-dd') {
93
97
  const parts = dateStr.split('-');
94
98
  if (parts.length !== 3) return null;
95
-
99
+
96
100
  const year = parseInt(parts[0], 10);
97
101
  const month = parseInt(parts[1], 10) - 1;
98
102
  const day = parseInt(parts[2], 10);
99
-
103
+
100
104
  if (isNaN(month) || isNaN(day) || isNaN(year)) return null;
101
-
105
+
102
106
  return new Date(year, month, day);
103
107
  }
104
-
108
+
105
109
  // Fallback to native parsing
106
110
  const parsedDate = new Date(dateStr);
107
111
  return isNaN(parsedDate.getTime()) ? null : parsedDate;
@@ -110,18 +114,21 @@ export function parseDate(dateStr: string, format: string): Date | null {
110
114
  /**
111
115
  * Try to parse a date range string (e.g. "01/01/2023 - 01/15/2023")
112
116
  */
113
- export function parseDateRange(rangeStr: string, format: string): { startDate: Date | null, endDate: Date | null } {
117
+ export function parseDateRange(
118
+ rangeStr: string,
119
+ format: string
120
+ ): { startDate: Date | null; endDate: Date | null } {
114
121
  if (!rangeStr) return { startDate: null, endDate: null };
115
-
122
+
116
123
  const parts = rangeStr.split('-');
117
124
  if (parts.length !== 2) return { startDate: null, endDate: null };
118
-
125
+
119
126
  const startDateStr = parts[0].trim();
120
127
  const endDateStr = parts[1].trim();
121
-
128
+
122
129
  const startDate = parseDate(startDateStr, format);
123
130
  const endDate = parseDate(endDateStr, format);
124
-
131
+
125
132
  return { startDate, endDate };
126
133
  }
127
134
 
@@ -130,23 +137,27 @@ export function parseDateRange(rangeStr: string, format: string): { startDate: D
130
137
  */
131
138
  export function isDateInRange(date: Date, minDate?: Date, maxDate?: Date): boolean {
132
139
  if (!date) return false;
133
-
140
+
134
141
  if (minDate && date < minDate) return false;
135
142
  if (maxDate && date > maxDate) return false;
136
-
143
+
137
144
  return true;
138
145
  }
139
146
 
140
147
  /**
141
148
  * Check if a date is between startDate and endDate (inclusive)
142
149
  */
143
- export function isDateInSelectedRange(date: Date, startDate: Date | null, endDate: Date | null): boolean {
150
+ export function isDateInSelectedRange(
151
+ date: Date,
152
+ startDate: Date | null,
153
+ endDate: Date | null
154
+ ): boolean {
144
155
  if (!date || !startDate || !endDate) return false;
145
-
156
+
146
157
  // Handle case where end date is before start date
147
158
  if (endDate < startDate) {
148
159
  return date >= endDate && date <= startDate;
149
160
  }
150
-
161
+
151
162
  return date >= startDate && date <= endDate;
152
163
  }
@@ -12,46 +12,61 @@ const meta: Meta<typeof Dropdown> = {
12
12
  layout: 'centered',
13
13
  docs: {
14
14
  description: {
15
- component: 'Dropdown component with a toggleable menu. The dropdown menu appears on click or hover, depending on the trigger prop.'
16
- }
17
- }
15
+ component:
16
+ 'Dropdown component with a toggleable menu. The dropdown menu appears on click or hover, depending on the trigger prop.',
17
+ },
18
+ },
18
19
  },
19
20
  argTypes: {
20
21
  placement: {
21
22
  control: 'select',
22
23
  options: [
23
- 'bottom-start', 'bottom-end',
24
- 'top-start', 'top-end',
25
- 'left-start', 'left-end',
26
- 'right-start', 'right-end'
24
+ 'bottom-start',
25
+ 'bottom-end',
26
+ 'top-start',
27
+ 'top-end',
28
+ 'left-start',
29
+ 'left-end',
30
+ 'right-start',
31
+ 'right-end',
27
32
  ],
28
- description: 'The placement of the dropdown menu relative to the trigger element'
33
+ description: 'The placement of the dropdown menu relative to the trigger element',
29
34
  },
30
35
  trigger: {
31
36
  control: 'radio',
32
37
  options: ['click', 'hover'],
33
- description: 'How the dropdown is triggered - by click or hover'
38
+ description: 'How the dropdown is triggered - by click or hover',
34
39
  },
35
40
  variant: {
36
41
  control: 'select',
37
- options: ['primary', 'secondary', 'tertiary', 'success', 'info', 'warning', 'error', 'light', 'dark'],
38
- description: 'The color variant of the dropdown'
42
+ options: [
43
+ 'primary',
44
+ 'secondary',
45
+ 'tertiary',
46
+ 'success',
47
+ 'info',
48
+ 'warning',
49
+ 'error',
50
+ 'light',
51
+ 'dark',
52
+ ],
53
+ description: 'The color variant of the dropdown',
39
54
  },
40
55
  minWidth: {
41
56
  control: 'text',
42
- description: 'Minimum width of the dropdown menu'
57
+ description: 'Minimum width of the dropdown menu',
43
58
  },
44
59
  maxHeight: {
45
60
  control: 'text',
46
- description: 'Maximum height of the dropdown menu'
61
+ description: 'Maximum height of the dropdown menu',
47
62
  },
48
63
  closeOnClickOutside: {
49
64
  control: 'boolean',
50
- description: 'Whether to close the dropdown when clicking outside'
65
+ description: 'Whether to close the dropdown when clicking outside',
51
66
  },
52
67
  closeOnEscape: {
53
68
  control: 'boolean',
54
- description: 'Whether to close the dropdown when pressing the Escape key'
69
+ description: 'Whether to close the dropdown when pressing the Escape key',
55
70
  },
56
71
  },
57
72
  };
@@ -64,14 +79,13 @@ type Story = StoryObj<typeof Dropdown>;
64
79
  */
65
80
  const InteractiveDropdown = (args: React.ComponentProps<typeof Dropdown>) => {
66
81
  const [isOpen, setIsOpen] = useState(false);
67
-
82
+
68
83
  return (
69
- <div className="u-p-4" style={{ minHeight: '300px', display: 'flex', alignItems: 'flex-start' }}>
70
- <Dropdown
71
- {...args}
72
- isOpen={isOpen}
73
- onOpenChange={setIsOpen}
74
- />
84
+ <div
85
+ className="u-p-4"
86
+ style={{ minHeight: '300px', display: 'flex', alignItems: 'flex-start' }}
87
+ >
88
+ <Dropdown {...args} isOpen={isOpen} onOpenChange={setIsOpen} />
75
89
  </div>
76
90
  );
77
91
  };
@@ -83,7 +97,11 @@ export const Default: Story = {
83
97
  args: {
84
98
  trigger: 'click',
85
99
  placement: 'bottom-start',
86
- children: <button className="c-btn c-btn--primary">Dropdown <Icon name="CaretDown" className="c-dropdown__toggle-icon" size="sm" /></button>,
100
+ children: (
101
+ <button className="c-btn c-btn--primary">
102
+ Dropdown <Icon name="CaretDown" className="c-dropdown__toggle-icon" size="sm" />
103
+ </button>
104
+ ),
87
105
  menu: (
88
106
  <>
89
107
  <DropdownItem>Menu item 1</DropdownItem>
@@ -92,7 +110,7 @@ export const Default: Story = {
92
110
  </>
93
111
  ),
94
112
  },
95
- render: (args) => <InteractiveDropdown {...args} />,
113
+ render: args => <InteractiveDropdown {...args} />,
96
114
  };
97
115
 
98
116
  /**
@@ -103,7 +121,7 @@ export const ClickTrigger: Story = {
103
121
  ...Default.args,
104
122
  trigger: 'click',
105
123
  },
106
- render: (args) => <InteractiveDropdown {...args} />,
124
+ render: args => <InteractiveDropdown {...args} />,
107
125
  };
108
126
 
109
127
  /**
@@ -114,7 +132,7 @@ export const HoverTrigger: Story = {
114
132
  ...Default.args,
115
133
  trigger: 'hover',
116
134
  },
117
- render: (args) => <InteractiveDropdown {...args} />,
135
+ render: args => <InteractiveDropdown {...args} />,
118
136
  };
119
137
 
120
138
  /**
@@ -132,7 +150,7 @@ export const WithIcons: Story = {
132
150
  </>
133
151
  ),
134
152
  },
135
- render: (args) => <InteractiveDropdown {...args} />,
153
+ render: args => <InteractiveDropdown {...args} />,
136
154
  };
137
155
 
138
156
  /**
@@ -150,7 +168,7 @@ export const WithLinks: Story = {
150
168
  </>
151
169
  ),
152
170
  },
153
- render: (args) => <InteractiveDropdown {...args} />,
171
+ render: args => <InteractiveDropdown {...args} />,
154
172
  };
155
173
 
156
174
  /**
@@ -171,7 +189,7 @@ export const WithHeader: Story = {
171
189
  </>
172
190
  ),
173
191
  },
174
- render: (args) => <InteractiveDropdown {...args} />,
192
+ render: args => <InteractiveDropdown {...args} />,
175
193
  };
176
194
 
177
195
  /**
@@ -188,7 +206,7 @@ export const ActiveItem: Story = {
188
206
  </>
189
207
  ),
190
208
  },
191
- render: (args) => <InteractiveDropdown {...args} />,
209
+ render: args => <InteractiveDropdown {...args} />,
192
210
  };
193
211
 
194
212
  /**
@@ -205,7 +223,7 @@ export const DisabledItem: Story = {
205
223
  </>
206
224
  ),
207
225
  },
208
- render: (args) => <InteractiveDropdown {...args} />,
226
+ render: args => <InteractiveDropdown {...args} />,
209
227
  };
210
228
 
211
229
  /**
@@ -215,9 +233,10 @@ export const AllPlacements: Story = {
215
233
  parameters: {
216
234
  docs: {
217
235
  description: {
218
- story: 'The Dropdown component supports various placement options to position the menu relative to the trigger element.'
219
- }
220
- }
236
+ story:
237
+ 'The Dropdown component supports various placement options to position the menu relative to the trigger element.',
238
+ },
239
+ },
221
240
  },
222
241
  render: () => {
223
242
  // All possible placement options with properly typed icon names
@@ -231,19 +250,22 @@ export const AllPlacements: Story = {
231
250
  { value: 'right-start', label: 'Right Start', icon: 'CaretRight' as const },
232
251
  { value: 'right-end', label: 'Right End', icon: 'CaretRight' as const },
233
252
  ];
234
-
253
+
235
254
  // Create a grid layout with plenty of space for dropdowns to display correctly
236
255
  return (
237
256
  <div className="u-p-5" style={{ height: '650px' }}>
238
- <div className="u-d-grid" style={{
239
- gridTemplateColumns: 'repeat(4, 1fr)',
240
- gridTemplateRows: 'repeat(2, 1fr)',
241
- gap: '1.5rem',
242
- height: '100%'
243
- }}>
244
- {placements.map((placement) => (
245
- <div
246
- key={placement.value}
257
+ <div
258
+ className="u-d-grid"
259
+ style={{
260
+ gridTemplateColumns: 'repeat(4, 1fr)',
261
+ gridTemplateRows: 'repeat(2, 1fr)',
262
+ gap: '1.5rem',
263
+ height: '100%',
264
+ }}
265
+ >
266
+ {placements.map(placement => (
267
+ <div
268
+ key={placement.value}
247
269
  className="u-d-flex u-align-items-center u-justify-content-center"
248
270
  >
249
271
  <Dropdown
@@ -254,7 +276,8 @@ export const AllPlacements: Story = {
254
276
  closeOnEscape={false}
255
277
  children={
256
278
  <button className="c-btn c-btn--primary">
257
- {placement.label} <Icon name={placement.icon} className="c-dropdown__toggle-icon" size="sm" />
279
+ {placement.label}{' '}
280
+ <Icon name={placement.icon} className="c-dropdown__toggle-icon" size="sm" />
258
281
  </button>
259
282
  }
260
283
  menu={
@@ -273,7 +296,6 @@ export const AllPlacements: Story = {
273
296
  },
274
297
  };
275
298
 
276
-
277
299
  /**
278
300
  * Dropdown with all color variants
279
301
  */
@@ -281,13 +303,14 @@ export const AllVariants: Story = {
281
303
  parameters: {
282
304
  docs: {
283
305
  description: {
284
- story: 'The Dropdown component supports various color variants to match your design system.'
285
- }
286
- }
306
+ story:
307
+ 'The Dropdown component supports various color variants to match your design system.',
308
+ },
309
+ },
287
310
  },
288
311
  render: () => {
289
312
  const [openDropdown, setOpenDropdown] = useState<string | null>(null);
290
-
313
+
291
314
  const handleOpenChange = (variant: string, isOpen: boolean) => {
292
315
  if (isOpen) {
293
316
  setOpenDropdown(variant);
@@ -295,20 +318,27 @@ export const AllVariants: Story = {
295
318
  setOpenDropdown(null);
296
319
  }
297
320
  };
298
-
321
+
299
322
  return (
300
323
  <div className="u-p-4" style={{ minHeight: '300px' }}>
301
324
  <div className="u-d-flex u-flex-wrap u-gap-3">
302
325
  {[
303
- 'primary', 'secondary', 'tertiary', 'success',
304
- 'info', 'warning', 'error', 'light', 'dark'
305
- ].map((color) => (
326
+ 'primary',
327
+ 'secondary',
328
+ 'tertiary',
329
+ 'success',
330
+ 'info',
331
+ 'warning',
332
+ 'error',
333
+ 'light',
334
+ 'dark',
335
+ ].map(color => (
306
336
  <Dropdown
307
337
  key={color}
308
338
  variant={color as ThemeColor}
309
339
  trigger="click"
310
340
  isOpen={openDropdown === color}
311
- onOpenChange={(isOpen) => handleOpenChange(color, isOpen)}
341
+ onOpenChange={isOpen => handleOpenChange(color, isOpen)}
312
342
  children={
313
343
  <button className={`c-btn c-btn--${color}`}>
314
344
  {color} <Icon name="CaretDown" className="c-dropdown__toggle-icon" size="sm" />