@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
@@ -10,47 +10,47 @@ interface UseHeroResult {
10
10
  * Generate hero class names based on props
11
11
  */
12
12
  generateHeroClassNames: (baseClassName?: string) => string;
13
-
13
+
14
14
  /**
15
15
  * Generate image column class based on size
16
16
  */
17
17
  generateImageColClass: (size?: number) => string;
18
-
18
+
19
19
  /**
20
20
  * Generate content column class based on size
21
21
  */
22
22
  generateContentColClass: (size?: number) => string;
23
-
23
+
24
24
  /**
25
25
  * Determine if the hero has a background image
26
26
  */
27
27
  hasBackgroundImage: boolean;
28
-
28
+
29
29
  /**
30
30
  * Determine if the hero has a foreground image
31
31
  */
32
32
  hasForegroundImage: boolean;
33
-
33
+
34
34
  /**
35
35
  * Determine if content should be displayed in a grid
36
36
  */
37
37
  useGridLayout: boolean;
38
-
38
+
39
39
  /**
40
40
  * Reference to the hero element
41
41
  */
42
42
  heroRef: React.RefObject<HTMLDivElement>;
43
-
43
+
44
44
  /**
45
45
  * Reference to the video element
46
46
  */
47
47
  videoRef: React.RefObject<HTMLVideoElement>;
48
-
48
+
49
49
  /**
50
50
  * Apply parallax effect
51
51
  */
52
52
  applyParallaxEffect: (element: HTMLElement, intensity: number) => void;
53
-
53
+
54
54
  /**
55
55
  * Remove parallax effect
56
56
  */
@@ -66,7 +66,7 @@ export function useHero(initialProps?: Partial<HeroProps>): UseHeroResult {
66
66
  const heroRef = useRef<HTMLDivElement>(null);
67
67
  const videoRef = useRef<HTMLVideoElement>(null);
68
68
  const parallaxHandlerRef = useRef<((event: Event) => void) | null>(null);
69
-
69
+
70
70
  const defaultProps: Partial<HeroProps> = {
71
71
  alignment: 'left',
72
72
  imageColSize: 7,
@@ -77,88 +77,88 @@ export function useHero(initialProps?: Partial<HeroProps>): UseHeroResult {
77
77
  contentWidth: undefined,
78
78
  parallax: false,
79
79
  parallaxIntensity: 0.5,
80
- ...initialProps
80
+ ...initialProps,
81
81
  };
82
82
 
83
83
  /**
84
84
  * Check if the hero has a background image
85
85
  */
86
86
  const hasBackgroundImage = !!defaultProps.backgroundImageSrc;
87
-
87
+
88
88
  /**
89
89
  * Check if the hero has a foreground image
90
90
  */
91
91
  const hasForegroundImage = !!defaultProps.imageSrc;
92
-
92
+
93
93
  /**
94
94
  * Check if content should be displayed in a grid
95
95
  */
96
96
  const useGridLayout = hasForegroundImage && defaultProps.alignment !== 'center';
97
-
97
+
98
98
  /**
99
99
  * Apply parallax effect to hero background
100
100
  */
101
101
  const applyParallaxEffect = (element: HTMLElement, intensity: number = 0.5): void => {
102
102
  if (!element) return;
103
-
103
+
104
104
  // Ensure intensity is between 0 and 1
105
105
  const safeIntensity = Math.max(0, Math.min(1, intensity));
106
-
106
+
107
107
  // Add parallax class
108
108
  element.classList.add('c-hero--parallax');
109
-
109
+
110
110
  // Handle scroll event
111
111
  const handleScroll = (): void => {
112
112
  const scrollPosition = window.pageYOffset;
113
113
  const offset = scrollPosition * safeIntensity;
114
-
114
+
115
115
  // Apply transform to background
116
116
  const bgElement = element.querySelector(HERO.SELECTORS.BG);
117
117
  if (bgElement) {
118
118
  (bgElement as HTMLElement).style.transform = `translateY(${offset}px)`;
119
119
  }
120
120
  };
121
-
121
+
122
122
  // Store the handler for cleanup
123
123
  parallaxHandlerRef.current = handleScroll;
124
-
124
+
125
125
  // Add event listener
126
126
  window.addEventListener('scroll', handleScroll);
127
-
127
+
128
128
  // Initial call
129
129
  handleScroll();
130
130
  };
131
-
131
+
132
132
  /**
133
133
  * Remove parallax effect from hero
134
134
  */
135
135
  const removeParallaxEffect = (element: HTMLElement): void => {
136
136
  if (!element) return;
137
-
137
+
138
138
  // Remove class
139
139
  element.classList.remove('c-hero--parallax');
140
-
140
+
141
141
  // Remove transform
142
142
  const bgElement = element.querySelector(HERO.SELECTORS.BG);
143
143
  if (bgElement) {
144
144
  (bgElement as HTMLElement).style.transform = '';
145
145
  }
146
-
146
+
147
147
  // Remove event listener
148
148
  if (parallaxHandlerRef.current) {
149
149
  window.removeEventListener('scroll', parallaxHandlerRef.current);
150
150
  parallaxHandlerRef.current = null;
151
151
  }
152
152
  };
153
-
153
+
154
154
  // Apply parallax effect if enabled
155
155
  useEffect(() => {
156
156
  const heroElement = heroRef.current;
157
-
157
+
158
158
  if (heroElement && defaultProps.parallax && hasBackgroundImage) {
159
159
  applyParallaxEffect(heroElement, defaultProps.parallaxIntensity);
160
160
  }
161
-
161
+
162
162
  return () => {
163
163
  if (heroElement && parallaxHandlerRef.current) {
164
164
  removeParallaxEffect(heroElement);
@@ -172,9 +172,7 @@ export function useHero(initialProps?: Partial<HeroProps>): UseHeroResult {
172
172
  * @returns Combined class names string
173
173
  */
174
174
  const generateHeroClassNames = (baseClassName: string = ''): string => {
175
- const classes = [
176
- HERO.SELECTORS.HERO.replace('.', '')
177
- ];
175
+ const classes = [HERO.SELECTORS.HERO.replace('.', '')];
178
176
 
179
177
  // Add alignment class
180
178
  if (defaultProps.alignment === 'center') {
@@ -184,17 +182,17 @@ export function useHero(initialProps?: Partial<HeroProps>): UseHeroResult {
184
182
  } else if (defaultProps.alignment === 'left') {
185
183
  classes.push(HERO.CLASSES.LEFT);
186
184
  }
187
-
185
+
188
186
  // Add full viewport height class if needed
189
187
  if (defaultProps.fullViewportHeight) {
190
188
  classes.push(HERO.CLASSES.FULL_VH);
191
189
  }
192
-
190
+
193
191
  // Add parallax class if enabled
194
192
  if (defaultProps.parallax) {
195
193
  classes.push('c-hero--parallax');
196
194
  }
197
-
195
+
198
196
  // Add video background class if provided
199
197
  if (defaultProps.videoBackground) {
200
198
  classes.push('c-hero--video');
@@ -219,12 +217,12 @@ export function useHero(initialProps?: Partial<HeroProps>): UseHeroResult {
219
217
  */
220
218
  const generateImageColClass = (size: number = defaultProps.imageColSize || 7): string => {
221
219
  const classes = [`o-grid__col o-grid__col--md-${size}`];
222
-
220
+
223
221
  // Add responsive margin if needed for mobile view
224
222
  if (defaultProps.alignment === 'left') {
225
223
  classes.push('u-mt-5 u-mt-md-0');
226
224
  }
227
-
225
+
228
226
  return classes.join(' ');
229
227
  };
230
228
 
@@ -247,6 +245,6 @@ export function useHero(initialProps?: Partial<HeroProps>): UseHeroResult {
247
245
  heroRef,
248
246
  videoRef,
249
247
  applyParallaxEffect,
250
- removeParallaxEffect
248
+ removeParallaxEffect,
251
249
  };
252
- }
250
+ }
@@ -13,7 +13,7 @@ export function useInput(initialProps?: Partial<InputProps>) {
13
13
  disabled: false,
14
14
  invalid: false,
15
15
  valid: false,
16
- ...initialProps
16
+ ...initialProps,
17
17
  };
18
18
 
19
19
  /**
@@ -32,23 +32,22 @@ export function useInput(initialProps?: Partial<InputProps>) {
32
32
  type,
33
33
  } = props;
34
34
 
35
- const sizeClass = size === 'md' ? '' : (
36
- size === 'sm' ? INPUT.CLASSES.SMALL : INPUT.CLASSES.LARGE
37
- );
38
-
35
+ const sizeClass =
36
+ size === 'md' ? '' : size === 'sm' ? INPUT.CLASSES.SMALL : INPUT.CLASSES.LARGE;
37
+
39
38
  const variantClass = variant ? `c-input--${variant}` : '';
40
-
39
+
41
40
  const textareaClass = type === 'textarea' ? 'c-input--textarea' : '';
42
-
41
+
43
42
  let validationClass = '';
44
43
  if (invalid) {
45
44
  validationClass = INPUT.CLASSES.INVALID;
46
45
  } else if (valid) {
47
46
  validationClass = INPUT.CLASSES.VALID;
48
47
  }
49
-
48
+
50
49
  const disabledClass = disabled ? INPUT.CLASSES.DISABLED : '';
51
-
50
+
52
51
  return `${INPUT.CLASSES.BASE} ${sizeClass} ${variantClass} ${textareaClass} ${validationClass} ${disabledClass} ${className}`.trim();
53
52
  };
54
53
 
@@ -56,4 +55,4 @@ export function useInput(initialProps?: Partial<InputProps>) {
56
55
  defaultProps,
57
56
  generateInputClass,
58
57
  };
59
- }
58
+ }
@@ -6,7 +6,7 @@ interface UseMessagesProps {
6
6
  * Initial messages
7
7
  */
8
8
  initialMessages?: MessageItem[];
9
-
9
+
10
10
  /**
11
11
  * Callback when a message is sent
12
12
  */
@@ -18,22 +18,22 @@ interface UseMessagesReturn {
18
18
  * Current input value
19
19
  */
20
20
  inputValue: string;
21
-
21
+
22
22
  /**
23
23
  * Set input value
24
24
  */
25
25
  setInputValue: (value: string) => void;
26
-
26
+
27
27
  /**
28
28
  * Handle input change
29
29
  */
30
30
  handleInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
31
-
31
+
32
32
  /**
33
33
  * Handle form submission
34
34
  */
35
35
  handleSubmit: (e: React.FormEvent) => void;
36
-
36
+
37
37
  /**
38
38
  * Handle key down events
39
39
  */
@@ -43,15 +43,13 @@ interface UseMessagesReturn {
43
43
  /**
44
44
  * Hook for managing Messages component state and behavior
45
45
  */
46
- export const useMessages = ({
47
- onSendMessage
48
- }: UseMessagesProps = {}): UseMessagesReturn => {
46
+ export const useMessages = ({ onSendMessage }: UseMessagesProps = {}): UseMessagesReturn => {
49
47
  const [inputValue, setInputValue] = useState('');
50
-
48
+
51
49
  const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
52
50
  setInputValue(e.target.value);
53
51
  };
54
-
52
+
55
53
  const handleSubmit = (e: React.FormEvent) => {
56
54
  e.preventDefault();
57
55
  if (inputValue.trim() && onSendMessage) {
@@ -59,21 +57,21 @@ export const useMessages = ({
59
57
  setInputValue('');
60
58
  }
61
59
  };
62
-
60
+
63
61
  const handleKeyDown = (e: React.KeyboardEvent) => {
64
62
  if (e.key === 'Enter' && !e.shiftKey) {
65
63
  e.preventDefault();
66
64
  handleSubmit(e);
67
65
  }
68
66
  };
69
-
67
+
70
68
  return {
71
69
  inputValue,
72
70
  setInputValue,
73
71
  handleInputChange,
74
72
  handleSubmit,
75
- handleKeyDown
73
+ handleKeyDown,
76
74
  };
77
75
  };
78
76
 
79
- export default useMessages;
77
+ export default useMessages;
@@ -5,17 +5,17 @@ export interface UseModalProps {
5
5
  * Whether the modal is open
6
6
  */
7
7
  isOpen?: boolean;
8
-
8
+
9
9
  /**
10
10
  * Callback when modal state changes
11
11
  */
12
12
  onOpenChange?: (isOpen: boolean) => void;
13
-
13
+
14
14
  /**
15
15
  * Callback when modal opens
16
16
  */
17
17
  onOpen?: () => void;
18
-
18
+
19
19
  /**
20
20
  * Callback when modal closes
21
21
  */
@@ -27,17 +27,17 @@ export interface UseModalReturn {
27
27
  * Current open state
28
28
  */
29
29
  isOpen: boolean;
30
-
30
+
31
31
  /**
32
32
  * Function to open the modal
33
33
  */
34
34
  open: () => void;
35
-
35
+
36
36
  /**
37
37
  * Function to close the modal
38
38
  */
39
39
  close: () => void;
40
-
40
+
41
41
  /**
42
42
  * Function to toggle the modal
43
43
  */
@@ -51,57 +51,60 @@ export function useModal({
51
51
  isOpen: isOpenProp,
52
52
  onOpenChange,
53
53
  onOpen,
54
- onClose
54
+ onClose,
55
55
  }: UseModalProps = {}): UseModalReturn {
56
56
  // For uncontrolled usage
57
57
  const [isOpenState, setIsOpenState] = useState(false);
58
-
58
+
59
59
  // Determine if we're in controlled or uncontrolled mode
60
60
  const isControlled = isOpenProp !== undefined;
61
61
  const isOpen = isControlled ? !!isOpenProp : isOpenState;
62
-
62
+
63
63
  // Update internal state when prop changes (for controlled mode)
64
64
  useEffect(() => {
65
65
  if (isControlled) {
66
66
  setIsOpenState(!!isOpenProp);
67
67
  }
68
68
  }, [isOpenProp, isControlled]);
69
-
70
- const updateOpen = useCallback((nextIsOpen: boolean) => {
71
- // For uncontrolled mode, update internal state
72
- if (!isControlled) {
73
- setIsOpenState(nextIsOpen);
74
- }
75
-
76
- // Call the change handler in either mode
77
- if (onOpenChange) {
78
- onOpenChange(nextIsOpen);
79
- }
80
-
81
- // Call the specific handler
82
- if (nextIsOpen && onOpen) {
83
- onOpen();
84
- } else if (!nextIsOpen && onClose) {
85
- onClose();
86
- }
87
- }, [isControlled, onOpenChange, onOpen, onClose]);
88
-
69
+
70
+ const updateOpen = useCallback(
71
+ (nextIsOpen: boolean) => {
72
+ // For uncontrolled mode, update internal state
73
+ if (!isControlled) {
74
+ setIsOpenState(nextIsOpen);
75
+ }
76
+
77
+ // Call the change handler in either mode
78
+ if (onOpenChange) {
79
+ onOpenChange(nextIsOpen);
80
+ }
81
+
82
+ // Call the specific handler
83
+ if (nextIsOpen && onOpen) {
84
+ onOpen();
85
+ } else if (!nextIsOpen && onClose) {
86
+ onClose();
87
+ }
88
+ },
89
+ [isControlled, onOpenChange, onOpen, onClose]
90
+ );
91
+
89
92
  const open = useCallback(() => {
90
93
  updateOpen(true);
91
94
  }, [updateOpen]);
92
-
95
+
93
96
  const close = useCallback(() => {
94
97
  updateOpen(false);
95
98
  }, [updateOpen]);
96
-
99
+
97
100
  const toggle = useCallback(() => {
98
101
  updateOpen(!isOpen);
99
102
  }, [isOpen, updateOpen]);
100
-
103
+
101
104
  return {
102
105
  isOpen,
103
106
  open,
104
107
  close,
105
- toggle
108
+ toggle,
106
109
  };
107
- }
110
+ }
@@ -14,11 +14,15 @@ export function useNavbar(initialProps?: Partial<NavbarProps>) {
14
14
  const defaultProps: Partial<NavbarProps> = {
15
15
  position: 'static',
16
16
  collapsible: true,
17
- ...initialProps
17
+ backdrop: false,
18
+ closeOnOutsideClick: true,
19
+ closeOnEscape: true,
20
+ ariaLabel: 'Main navigation',
21
+ ...initialProps,
18
22
  };
19
23
 
20
24
  // Local expanded state for when not controlled externally
21
- const [isExpanded, setIsExpanded] = useState(false);
25
+ const [isExpanded, setIsExpanded] = useState(defaultProps.expanded || false);
22
26
 
23
27
  /**
24
28
  * Generate navbar class based on properties
@@ -36,7 +40,7 @@ export function useNavbar(initialProps?: Partial<NavbarProps>) {
36
40
  const positionClass = position !== 'static' ? `c-navbar--${position}` : '';
37
41
  const variantClass = variant ? `c-navbar--${variant}` : '';
38
42
  const collapsibleClass = collapsible ? 'c-navbar--collapsible' : '';
39
-
43
+
40
44
  return `c-navbar ${positionClass} ${variantClass} ${collapsibleClass} ${className}`.trim();
41
45
  };
42
46
 
@@ -64,7 +68,7 @@ export function useNavbar(initialProps?: Partial<NavbarProps>) {
64
68
  const toggleExpanded = () => {
65
69
  const newState = !isExpanded;
66
70
  setIsExpanded(newState);
67
-
71
+
68
72
  if (defaultProps.onToggle) {
69
73
  defaultProps.onToggle(newState);
70
74
  }
@@ -87,7 +91,7 @@ export function useNavbar(initialProps?: Partial<NavbarProps>) {
87
91
  generateContainerStyle,
88
92
  generateCollapseClass,
89
93
  toggleExpanded,
90
- getExpandedState
94
+ getExpandedState,
91
95
  };
92
96
  }
93
97
 
@@ -100,7 +104,8 @@ export function useNav(initialProps?: Partial<NavProps>) {
100
104
  // Default nav properties
101
105
  const defaultProps: Partial<NavProps> = {
102
106
  alignment: 'start',
103
- ...initialProps
107
+ variant: 'default',
108
+ ...initialProps,
104
109
  };
105
110
 
106
111
  /**
@@ -111,17 +116,19 @@ export function useNav(initialProps?: Partial<NavProps>) {
111
116
  const generateNavClass = (props: Partial<NavProps>): string => {
112
117
  const {
113
118
  alignment = defaultProps.alignment,
119
+ variant = defaultProps.variant,
114
120
  className = '',
115
121
  } = props;
116
122
 
117
123
  const alignmentClass = alignment !== 'start' ? `c-nav--${alignment}` : '';
118
-
119
- return `c-nav ${alignmentClass} ${className}`.trim();
124
+ const variantClass = variant !== 'default' ? `c-nav--${variant}` : '';
125
+
126
+ return `c-nav ${alignmentClass} ${variantClass} ${className}`.trim();
120
127
  };
121
128
 
122
129
  return {
123
130
  defaultProps,
124
- generateNavClass
131
+ generateNavClass,
125
132
  };
126
133
  }
127
134
 
@@ -136,7 +143,7 @@ export function useNavItem(initialProps?: Partial<NavItemProps & { megaMenu?: bo
136
143
  dropdown: false,
137
144
  megaMenu: false,
138
145
  active: false,
139
- ...initialProps
146
+ ...initialProps,
140
147
  };
141
148
 
142
149
  /**
@@ -159,7 +166,7 @@ export function useNavItem(initialProps?: Partial<NavItemProps & { megaMenu?: bo
159
166
  const megaMenuClass = megaMenu ? 'c-nav__item--mega-menu' : '';
160
167
  const activeClass = active ? NAV.CLASSES.ACTIVE : '';
161
168
  const disabledClass = disabled ? NAV.CLASSES.DISABLED : '';
162
-
169
+
163
170
  return `c-nav__item ${dropdownClass} ${megaMenuClass} ${activeClass} ${disabledClass} ${className}`.trim();
164
171
  };
165
172
 
@@ -173,7 +180,7 @@ export function useNavItem(initialProps?: Partial<NavItemProps & { megaMenu?: bo
173
180
  const generateNavLinkClass = (active = false, disabled = false, className = ''): string => {
174
181
  const activeClass = active ? NAV.CLASSES.ACTIVE : '';
175
182
  const disabledClass = disabled ? 'c-nav__link--disabled' : '';
176
-
183
+
177
184
  return `c-nav__link ${activeClass} ${disabledClass} ${className}`.trim();
178
185
  };
179
186
 
@@ -188,7 +195,7 @@ export function useNavItem(initialProps?: Partial<NavItemProps & { megaMenu?: bo
188
195
  e.preventDefault();
189
196
  return;
190
197
  }
191
-
198
+
192
199
  handler();
193
200
  };
194
201
  };
@@ -197,7 +204,7 @@ export function useNavItem(initialProps?: Partial<NavItemProps & { megaMenu?: bo
197
204
  defaultProps,
198
205
  generateNavItemClass,
199
206
  generateNavLinkClass,
200
- handleClick
207
+ handleClick,
201
208
  };
202
209
  }
203
210
 
@@ -211,7 +218,7 @@ export function useNavDropdown(initialProps?: Partial<NavDropdownProps>) {
211
218
  const defaultProps: Partial<NavDropdownProps> = {
212
219
  alignment: 'start',
213
220
  megaMenu: false,
214
- ...initialProps
221
+ ...initialProps,
215
222
  };
216
223
 
217
224
  /**
@@ -227,8 +234,10 @@ export function useNavDropdown(initialProps?: Partial<NavDropdownProps>) {
227
234
  } = props;
228
235
 
229
236
  // Select the base class based on mega menu or regular dropdown
230
- const baseClass = megaMenu ? NAV.SELECTORS.MEGA_MENU.replace('.', '') : NAV.SELECTORS.DROPDOWN_MENU.replace('.', '');
231
-
237
+ const baseClass = megaMenu
238
+ ? NAV.SELECTORS.MEGA_MENU.replace('.', '')
239
+ : NAV.SELECTORS.DROPDOWN_MENU.replace('.', '');
240
+
232
241
  // Add alignment class if not default 'start'
233
242
  let alignmentClass = '';
234
243
  if (alignment === 'center') {
@@ -236,7 +245,7 @@ export function useNavDropdown(initialProps?: Partial<NavDropdownProps>) {
236
245
  } else if (alignment === 'end') {
237
246
  alignmentClass = `${baseClass}--end`;
238
247
  }
239
-
248
+
240
249
  return `${baseClass} ${alignmentClass} ${className}`.trim();
241
250
  };
242
251
 
@@ -249,7 +258,7 @@ export function useNavDropdown(initialProps?: Partial<NavDropdownProps>) {
249
258
  // because it requires DOM access
250
259
  return document.querySelector('.c-navbar--fixed-bottom') !== null;
251
260
  };
252
-
261
+
253
262
  /**
254
263
  * Get the appropriate icon name based on navbar position
255
264
  * @param isMegaMenu - Whether it's a mega menu
@@ -262,7 +271,9 @@ export function useNavDropdown(initialProps?: Partial<NavDropdownProps>) {
262
271
 
263
272
  // Keeping this for backward compatibility
264
273
  const getIconClass = (isMegaMenu: boolean = false): string => {
265
- console.warn('getIconClass is deprecated. Please use the Icon component directly with the getIconName function.');
274
+ console.warn(
275
+ 'getIconClass is deprecated. Please use the Icon component directly with the getIconName function.'
276
+ );
266
277
  const isFixedBottom = isInFixedBottomNavbar();
267
278
  return `c-nav__icon ${isFixedBottom ? 'icon-lux-caret-up' : 'icon-lux-caret-down'}`;
268
279
  };
@@ -272,6 +283,6 @@ export function useNavDropdown(initialProps?: Partial<NavDropdownProps>) {
272
283
  generateDropdownMenuClass,
273
284
  isInFixedBottomNavbar,
274
285
  getIconClass,
275
- getIconName
286
+ getIconName,
276
287
  };
277
- }
288
+ }
@@ -26,10 +26,7 @@ export const usePagination = ({
26
26
  }
27
27
 
28
28
  const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);
29
- const rightSiblingIndex = Math.min(
30
- currentPage + siblingCount,
31
- totalPages
32
- );
29
+ const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages);
33
30
 
34
31
  const shouldShowLeftDots = leftSiblingIndex > 2;
35
32
  const shouldShowRightDots = rightSiblingIndex < totalPages - 2;
@@ -52,10 +49,7 @@ export const usePagination = ({
52
49
  */
53
50
  if (shouldShowLeftDots && !shouldShowRightDots) {
54
51
  let rightItemCount = 3 + 2 * siblingCount;
55
- let rightRange = range(
56
- totalPages - rightItemCount + 1,
57
- totalPages
58
- );
52
+ let rightRange = range(totalPages - rightItemCount + 1, totalPages);
59
53
  return [firstPageIndex, DOTS, ...rightRange];
60
54
  }
61
55
 
@@ -68,8 +62,7 @@ export const usePagination = ({
68
62
  }
69
63
 
70
64
  // This case should ideally not be reached if logic is correct
71
- return [];
72
-
65
+ return [];
73
66
  }, [totalPages, siblingCount, currentPage]);
74
67
 
75
68
  const goToPage = (page: number) => {