@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
@@ -0,0 +1,248 @@
1
+ import { NAVBAR } from '../../../lib/constants/components';
2
+
3
+ /**
4
+ * Default options for Navbar component
5
+ */
6
+ const DEFAULTS = {
7
+ collapsible: true,
8
+ expanded: false,
9
+ position: 'static',
10
+ backdrop: false,
11
+ keyboard: true,
12
+ autoClose: true,
13
+ };
14
+
15
+ /**
16
+ * Navbar component class for vanilla JavaScript implementation
17
+ * Provides responsive navigation functionality with collapsible mobile menu
18
+ *
19
+ * @example
20
+ * ```js
21
+ * // Initialize a navbar
22
+ * const navbar = new Navbar('.c-navbar', {
23
+ * collapsible: true,
24
+ * autoClose: true
25
+ * });
26
+ *
27
+ * // Control programmatically
28
+ * navbar.expand();
29
+ * navbar.collapse();
30
+ * ```
31
+ */
32
+ export default class Navbar {
33
+ private element: HTMLElement;
34
+ private options: any;
35
+ private toggler: HTMLButtonElement | null = null;
36
+ private collapseElement: HTMLElement | null = null;
37
+ private isExpanded: boolean = false;
38
+ private resizeHandler: () => void;
39
+
40
+ /**
41
+ * Create a new Navbar instance
42
+ * @param element - The navbar element or selector
43
+ * @param options - Configuration options
44
+ */
45
+ constructor(element: string | HTMLElement, options: any = {}) {
46
+ this.element =
47
+ typeof element === 'string' ? (document.querySelector(element) as HTMLElement) : element;
48
+
49
+ if (!this.element) {
50
+ throw new Error('Navbar element not found');
51
+ }
52
+
53
+ this.options = { ...DEFAULTS, ...options };
54
+ this.resizeHandler = this._handleResize.bind(this);
55
+ this._init();
56
+ }
57
+
58
+ /**
59
+ * Initialize the navbar component
60
+ * @private
61
+ */
62
+ private _init(): void {
63
+ this._findElements();
64
+ this._bindEvents();
65
+ this._setInitialState();
66
+ }
67
+
68
+ /**
69
+ * Find required DOM elements
70
+ * @private
71
+ */
72
+ private _findElements(): void {
73
+ this.toggler = this.element.querySelector(NAVBAR.SELECTORS.TOGGLER);
74
+ this.collapseElement = this.element.querySelector(NAVBAR.SELECTORS.COLLAPSE);
75
+ }
76
+
77
+ /**
78
+ * Bind event listeners
79
+ * @private
80
+ */
81
+ private _bindEvents(): void {
82
+ if (this.toggler) {
83
+ this.toggler.addEventListener('click', this._handleToggleClick.bind(this));
84
+ }
85
+
86
+ if (this.options.keyboard) {
87
+ document.addEventListener('keydown', this._handleKeydown.bind(this));
88
+ }
89
+
90
+ // Handle window resize for responsive behavior
91
+ window.addEventListener('resize', this.resizeHandler);
92
+
93
+ // Auto-close on outside click if enabled
94
+ if (this.options.autoClose) {
95
+ document.addEventListener('click', this._handleOutsideClick.bind(this));
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Set initial component state
101
+ * @private
102
+ */
103
+ private _setInitialState(): void {
104
+ this.isExpanded = this.options.expanded || false;
105
+ this._updateExpandedState();
106
+ }
107
+
108
+ /**
109
+ * Handle toggle button click
110
+ * @private
111
+ */
112
+ private _handleToggleClick(event: Event): void {
113
+ event.preventDefault();
114
+ this.toggle();
115
+ }
116
+
117
+ /**
118
+ * Handle keyboard events
119
+ * @private
120
+ */
121
+ private _handleKeydown(event: KeyboardEvent): void {
122
+ if (event.key === 'Escape' && this.isExpanded) {
123
+ this.collapse();
124
+ }
125
+ }
126
+
127
+ /**
128
+ * Handle window resize
129
+ * @private
130
+ */
131
+ private _handleResize(): void {
132
+ // Auto-collapse on desktop breakpoint
133
+ if (window.innerWidth >= 768 && this.isExpanded) {
134
+ this.collapse();
135
+ }
136
+ }
137
+
138
+ /**
139
+ * Handle clicks outside the navbar
140
+ * @private
141
+ */
142
+ private _handleOutsideClick(event: Event): void {
143
+ const target = event.target as HTMLElement;
144
+ if (this.isExpanded && !this.element.contains(target)) {
145
+ this.collapse();
146
+ }
147
+ }
148
+
149
+ /**
150
+ * Update the expanded state and DOM
151
+ * @private
152
+ */
153
+ private _updateExpandedState(): void {
154
+ if (this.toggler) {
155
+ this.toggler.setAttribute('aria-expanded', this.isExpanded.toString());
156
+ }
157
+
158
+ if (this.collapseElement) {
159
+ if (this.isExpanded) {
160
+ this.collapseElement.classList.add('is-expanded');
161
+ } else {
162
+ this.collapseElement.classList.remove('is-expanded');
163
+ }
164
+ }
165
+
166
+ // Dispatch custom event
167
+ const eventType = this.isExpanded ? 'navbar:expanded' : 'navbar:collapsed';
168
+ const customEvent = new CustomEvent(eventType, {
169
+ detail: { navbar: this, expanded: this.isExpanded },
170
+ });
171
+ this.element.dispatchEvent(customEvent);
172
+ }
173
+
174
+ /**
175
+ * Expand the navbar collapse
176
+ */
177
+ public expand(): void {
178
+ if (this.isExpanded) return;
179
+
180
+ this.isExpanded = true;
181
+ this._updateExpandedState();
182
+ }
183
+
184
+ /**
185
+ * Collapse the navbar collapse
186
+ */
187
+ public collapse(): void {
188
+ if (!this.isExpanded) return;
189
+
190
+ this.isExpanded = false;
191
+ this._updateExpandedState();
192
+ }
193
+
194
+ /**
195
+ * Toggle the navbar collapse state
196
+ */
197
+ public toggle(): void {
198
+ if (this.isExpanded) {
199
+ this.collapse();
200
+ } else {
201
+ this.expand();
202
+ }
203
+ }
204
+
205
+ /**
206
+ * Get the current expanded state
207
+ * @returns Whether the navbar is expanded
208
+ */
209
+ public isOpen(): boolean {
210
+ return this.isExpanded;
211
+ }
212
+
213
+ /**
214
+ * Update navbar options
215
+ * @param newOptions - New options to merge
216
+ */
217
+ public updateOptions(newOptions: Partial<typeof DEFAULTS>): void {
218
+ this.options = { ...this.options, ...newOptions };
219
+ }
220
+
221
+ /**
222
+ * Destroy the navbar instance and clean up
223
+ */
224
+ public destroy(): void {
225
+ // Remove event listeners
226
+ if (this.toggler) {
227
+ this.toggler.removeEventListener('click', this._handleToggleClick);
228
+ }
229
+
230
+ document.removeEventListener('keydown', this._handleKeydown);
231
+ window.removeEventListener('resize', this.resizeHandler);
232
+ document.removeEventListener('click', this._handleOutsideClick);
233
+
234
+ // Reset DOM state
235
+ if (this.collapseElement) {
236
+ this.collapseElement.classList.remove('is-expanded');
237
+ }
238
+
239
+ if (this.toggler) {
240
+ this.toggler.removeAttribute('aria-expanded');
241
+ }
242
+
243
+ // Clear references
244
+ this.element = null as any;
245
+ this.toggler = null;
246
+ this.collapse = null;
247
+ }
248
+ }
@@ -35,7 +35,7 @@ export default {
35
35
  size: {
36
36
  control: 'select',
37
37
  options: ['sm', 'md', 'lg'],
38
- description: 'Size variant for pagination'
38
+ description: 'Size variant for pagination',
39
39
  },
40
40
  ariaLabel: {
41
41
  control: 'text',
@@ -52,21 +52,22 @@ export default {
52
52
  },
53
53
  docs: {
54
54
  description: {
55
- component: 'A Pagination component for navigating through pages of content with enhanced accessibility, configurable sizes, and icons for navigation buttons.'
56
- }
57
- }
58
- }
55
+ component:
56
+ 'A Pagination component for navigating through pages of content with enhanced accessibility, configurable sizes, and icons for navigation buttons.',
57
+ },
58
+ },
59
+ },
59
60
  } as Meta<typeof Pagination>;
60
61
 
61
62
  // Template with controlled state
62
- const ControlledTemplate: StoryFn<PaginationProps> = (args) => {
63
+ const ControlledTemplate: StoryFn<PaginationProps> = args => {
63
64
  const [currentPage, setCurrentPage] = useState(args.currentPage);
64
-
65
+
65
66
  const handlePageChange = (page: number) => {
66
67
  setCurrentPage(page);
67
68
  args.onPageChange?.(page);
68
69
  };
69
-
70
+
70
71
  return <Pagination {...args} currentPage={currentPage} onPageChange={handlePageChange} />;
71
72
  };
72
73
 
@@ -78,14 +79,14 @@ Default.args = {
78
79
  showFirstLastButtons: true,
79
80
  showPrevNextButtons: true,
80
81
  size: 'md',
81
- ariaLabel: 'Pagination'
82
+ ariaLabel: 'Pagination',
82
83
  };
83
84
  Default.parameters = {
84
85
  docs: {
85
86
  description: {
86
- story: 'Default pagination with first/last and previous/next navigation buttons using icons.'
87
- }
88
- }
87
+ story: 'Default pagination with first/last and previous/next navigation buttons using icons.',
88
+ },
89
+ },
89
90
  };
90
91
 
91
92
  export const WithMorePages = ControlledTemplate.bind({});
@@ -98,9 +99,9 @@ WithMorePages.args = {
98
99
  WithMorePages.parameters = {
99
100
  docs: {
100
101
  description: {
101
- story: 'Pagination with many pages, showing the ellipsis (dots) for page ranges.'
102
- }
103
- }
102
+ story: 'Pagination with many pages, showing the ellipsis (dots) for page ranges.',
103
+ },
104
+ },
104
105
  };
105
106
 
106
107
  export const SmallSize = ControlledTemplate.bind({});
@@ -113,9 +114,9 @@ SmallSize.args = {
113
114
  SmallSize.parameters = {
114
115
  docs: {
115
116
  description: {
116
- story: 'Small-sized pagination component with smaller icons and buttons.'
117
- }
118
- }
117
+ story: 'Small-sized pagination component with smaller icons and buttons.',
118
+ },
119
+ },
119
120
  };
120
121
 
121
122
  export const LargeSize = ControlledTemplate.bind({});
@@ -128,9 +129,9 @@ LargeSize.args = {
128
129
  LargeSize.parameters = {
129
130
  docs: {
130
131
  description: {
131
- story: 'Large-sized pagination component with larger icons and buttons.'
132
- }
133
- }
132
+ story: 'Large-sized pagination component with larger icons and buttons.',
133
+ },
134
+ },
134
135
  };
135
136
 
136
137
  export const FewPages = ControlledTemplate.bind({});
@@ -142,9 +143,9 @@ FewPages.args = {
142
143
  FewPages.parameters = {
143
144
  docs: {
144
145
  description: {
145
- story: 'Pagination with only a few pages, showing all page numbers without ellipsis.'
146
- }
147
- }
146
+ story: 'Pagination with only a few pages, showing all page numbers without ellipsis.',
147
+ },
148
+ },
148
149
  };
149
150
 
150
151
  export const NoFirstLastButtons = ControlledTemplate.bind({});
@@ -157,9 +158,9 @@ NoFirstLastButtons.args = {
157
158
  NoFirstLastButtons.parameters = {
158
159
  docs: {
159
160
  description: {
160
- story: 'Pagination with only previous/next navigation buttons (no skip to first/last).'
161
- }
162
- }
161
+ story: 'Pagination with only previous/next navigation buttons (no skip to first/last).',
162
+ },
163
+ },
163
164
  };
164
165
 
165
166
  export const OnlyPageNumbers = ControlledTemplate.bind({});
@@ -172,9 +173,9 @@ OnlyPageNumbers.args = {
172
173
  OnlyPageNumbers.parameters = {
173
174
  docs: {
174
175
  description: {
175
- story: 'Pagination with only page numbers, no navigation buttons.'
176
- }
177
- }
176
+ story: 'Pagination with only page numbers, no navigation buttons.',
177
+ },
178
+ },
178
179
  };
179
180
 
180
181
  export const CustomStyling = ControlledTemplate.bind({});
@@ -187,7 +188,7 @@ CustomStyling.args = {
187
188
  CustomStyling.parameters = {
188
189
  docs: {
189
190
  description: {
190
- story: 'Pagination with custom CSS class for additional styling.'
191
- }
192
- }
191
+ story: 'Pagination with custom CSS class for additional styling.',
192
+ },
193
+ },
193
194
  };
@@ -25,21 +25,21 @@ interface PaginationNavButtonProps {
25
25
  /**
26
26
  * PaginationNavButton component for rendering first, previous, next, and last buttons
27
27
  */
28
- export const PaginationNavButton: React.FC<PaginationNavButtonProps> = ({
29
- type,
30
- onClick,
31
- disabled,
28
+ export const PaginationNavButton: React.FC<PaginationNavButtonProps> = ({
29
+ type,
30
+ onClick,
31
+ disabled,
32
32
  label,
33
- iconName
33
+ iconName,
34
34
  }) => (
35
- <li
35
+ <li
36
36
  className={`c-pagination__item c-pagination__item--${type} ${disabled ? 'is-disabled' : ''}`}
37
37
  aria-disabled={disabled}
38
38
  >
39
- <button
39
+ <button
40
40
  type="button"
41
41
  className="c-pagination__link"
42
- onClick={onClick}
42
+ onClick={onClick}
43
43
  disabled={disabled}
44
44
  aria-label={label}
45
45
  >
@@ -62,14 +62,7 @@ export const Pagination: React.FC<PaginationProps> = ({
62
62
  className = '',
63
63
  ariaLabel = 'Pagination',
64
64
  }) => {
65
- const {
66
- paginationRange,
67
- goToPage,
68
- nextPage,
69
- prevPage,
70
- firstPage,
71
- lastPage,
72
- } = usePagination({
65
+ const { paginationRange, goToPage, nextPage, prevPage, firstPage, lastPage } = usePagination({
73
66
  currentPage,
74
67
  totalPages,
75
68
  siblingCount,
@@ -82,13 +75,10 @@ export const Pagination: React.FC<PaginationProps> = ({
82
75
  }
83
76
 
84
77
  return (
85
- <nav
86
- className={`c-pagination c-pagination--${size} ${className}`}
87
- aria-label={ariaLabel}
88
- >
78
+ <nav className={`c-pagination c-pagination--${size} ${className}`} aria-label={ariaLabel}>
89
79
  <ul className="c-pagination__items">
90
80
  {showFirstLastButtons && (
91
- <PaginationNavButton
81
+ <PaginationNavButton
92
82
  type="first"
93
83
  onClick={firstPage}
94
84
  disabled={currentPage === 1}
@@ -96,9 +86,9 @@ export const Pagination: React.FC<PaginationProps> = ({
96
86
  iconName="SkipBack"
97
87
  />
98
88
  )}
99
-
89
+
100
90
  {showPrevNextButtons && (
101
- <PaginationNavButton
91
+ <PaginationNavButton
102
92
  type="prev"
103
93
  onClick={prevPage}
104
94
  disabled={currentPage === 1}
@@ -106,12 +96,12 @@ export const Pagination: React.FC<PaginationProps> = ({
106
96
  iconName="CaretLeft"
107
97
  />
108
98
  )}
109
-
99
+
110
100
  {paginationRange.map((pageNumber, index) => {
111
101
  if (pageNumber === DOTS) {
112
102
  return (
113
- <li
114
- key={`dots-${index}`}
103
+ <li
104
+ key={`dots-${index}`}
115
105
  className="c-pagination__item c-pagination__item--dots"
116
106
  aria-hidden="true"
117
107
  >
@@ -121,14 +111,14 @@ export const Pagination: React.FC<PaginationProps> = ({
121
111
  }
122
112
 
123
113
  const isActive = pageNumber === currentPage;
124
-
114
+
125
115
  return (
126
- <li
116
+ <li
127
117
  key={pageNumber}
128
118
  className={`c-pagination__item ${isActive ? 'is-active' : ''}`}
129
119
  aria-current={isActive ? 'page' : undefined}
130
120
  >
131
- <button
121
+ <button
132
122
  type="button"
133
123
  className="c-pagination__link"
134
124
  onClick={() => goToPage(pageNumber as number)}
@@ -140,9 +130,9 @@ export const Pagination: React.FC<PaginationProps> = ({
140
130
  </li>
141
131
  );
142
132
  })}
143
-
133
+
144
134
  {showPrevNextButtons && (
145
- <PaginationNavButton
135
+ <PaginationNavButton
146
136
  type="next"
147
137
  onClick={nextPage}
148
138
  disabled={currentPage === totalPages}
@@ -150,9 +140,9 @@ export const Pagination: React.FC<PaginationProps> = ({
150
140
  iconName="CaretRight"
151
141
  />
152
142
  )}
153
-
143
+
154
144
  {showFirstLastButtons && (
155
- <PaginationNavButton
145
+ <PaginationNavButton
156
146
  type="last"
157
147
  onClick={lastPage}
158
148
  disabled={currentPage === totalPages}
@@ -165,8 +155,8 @@ export const Pagination: React.FC<PaginationProps> = ({
165
155
  );
166
156
  };
167
157
 
168
- export type { PaginationProps };
158
+ export type { PaginationProps };
169
159
 
170
160
  Pagination.displayName = 'Pagination';
171
161
 
172
- export default Pagination;
162
+ export default Pagination;
@@ -1 +1 @@
1
- export { Pagination } from './Pagination';
1
+ export { Pagination } from './Pagination';