@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
@@ -33,71 +33,71 @@ const meta = {
33
33
  argTypes: {
34
34
  title: {
35
35
  control: 'text',
36
- description: 'Hero title'
36
+ description: 'Hero title',
37
37
  },
38
38
  subtitle: {
39
39
  control: 'text',
40
- description: 'Hero subtitle'
40
+ description: 'Hero subtitle',
41
41
  },
42
42
  text: {
43
43
  control: 'text',
44
- description: 'Hero text content'
44
+ description: 'Hero text content',
45
45
  },
46
46
  imageSrc: {
47
47
  control: 'text',
48
- description: 'Image source URL'
48
+ description: 'Image source URL',
49
49
  },
50
50
  imageAlt: {
51
51
  control: 'text',
52
- description: 'Image alt text'
52
+ description: 'Image alt text',
53
53
  },
54
54
  alignment: {
55
55
  control: { type: 'select', options: ['left', 'center', 'right'] },
56
- description: 'Content alignment'
56
+ description: 'Content alignment',
57
57
  },
58
58
  backgroundImageSrc: {
59
59
  control: 'text',
60
- description: 'Background image source URL'
60
+ description: 'Background image source URL',
61
61
  },
62
62
  showOverlay: {
63
63
  control: 'boolean',
64
- description: 'Show background overlay'
64
+ description: 'Show background overlay',
65
65
  },
66
66
  fullViewportHeight: {
67
67
  control: 'boolean',
68
- description: 'Make hero full viewport height'
68
+ description: 'Make hero full viewport height',
69
69
  },
70
70
  imageColSize: {
71
71
  control: { type: 'range', min: 1, max: 12, step: 1 },
72
- description: 'Image column size (1-12)'
72
+ description: 'Image column size (1-12)',
73
73
  },
74
74
  contentColSize: {
75
75
  control: { type: 'range', min: 1, max: 12, step: 1 },
76
- description: 'Content column size (1-12)'
76
+ description: 'Content column size (1-12)',
77
77
  },
78
78
  contentWidth: {
79
79
  control: 'text',
80
80
  description: 'Custom width for the hero content (e.g., "800px", "50%")',
81
81
  table: {
82
82
  defaultValue: { summary: '536px' },
83
- }
83
+ },
84
84
  },
85
85
  parallax: {
86
86
  control: 'boolean',
87
- description: 'Enable parallax effect on background image'
87
+ description: 'Enable parallax effect on background image',
88
88
  },
89
89
  parallaxIntensity: {
90
90
  control: { type: 'range', min: 0, max: 1, step: 0.1 },
91
- description: 'Parallax effect intensity (0-1)'
91
+ description: 'Parallax effect intensity (0-1)',
92
92
  },
93
93
  videoBackground: {
94
94
  control: 'text',
95
- description: 'Video background URL'
95
+ description: 'Video background URL',
96
96
  },
97
97
  videoOptions: {
98
98
  control: 'object',
99
- description: 'Video background options'
100
- }
99
+ description: 'Video background options',
100
+ },
101
101
  },
102
102
  } satisfies Meta<typeof Hero>;
103
103
 
@@ -119,9 +119,11 @@ const showcaseActionButtons = (
119
119
  </>
120
120
  );
121
121
 
122
- const demoText = 'Build modern, responsive interfaces with a clean, consistent design language. Our component library helps you create beautiful user experiences with minimal effort.';
122
+ const demoText =
123
+ 'Build modern, responsive interfaces with a clean, consistent design language. Our component library helps you create beautiful user experiences with minimal effort.';
123
124
 
124
- const showcaseText = 'Atomix provides a complete design system with powerful, flexible components that follow best practices for accessibility, performance, and user experience.';
125
+ const showcaseText =
126
+ 'Atomix provides a complete design system with powerful, flexible components that follow best practices for accessibility, performance, and user experience.';
125
127
 
126
128
  /**
127
129
  * Default Hero component with right-aligned content and image
@@ -134,7 +136,7 @@ export const Default: Story = {
134
136
  imageSrc: 'https://picsum.photos/id/0/712/500',
135
137
  imageAlt: 'Developer working with code',
136
138
  alignment: 'right',
137
- actions: primaryActionButtons
139
+ actions: primaryActionButtons,
138
140
  },
139
141
  };
140
142
 
@@ -147,7 +149,7 @@ export const LeftAligned: Story = {
147
149
  title: 'Crafted for Developer Experience',
148
150
  alignment: 'left',
149
151
  imageSrc: 'https://picsum.photos/id/3/712/500',
150
- }
152
+ },
151
153
  };
152
154
 
153
155
  /**
@@ -160,7 +162,7 @@ export const CenterAligned: Story = {
160
162
  text: 'Our components follow best practices for accessibility, performance, and responsive design. Start building beautiful interfaces in minutes.',
161
163
  alignment: 'center',
162
164
  imageSrc: 'https://picsum.photos/id/1/1024/300',
163
- }
165
+ },
164
166
  };
165
167
 
166
168
  /**
@@ -173,8 +175,8 @@ export const WithBackgroundImage: Story = {
173
175
  text: showcaseText,
174
176
  actions: showcaseActionButtons,
175
177
  backgroundImageSrc: 'https://picsum.photos/id/24/1920/1080',
176
- showOverlay: true
177
- }
178
+ showOverlay: true,
179
+ },
178
180
  };
179
181
 
180
182
  /**
@@ -190,8 +192,8 @@ export const BackgroundImageOnly: Story = {
190
192
  showOverlay: true,
191
193
  alignment: 'center',
192
194
  actions: showcaseActionButtons,
193
- contentWidth: '800px'
194
- }
195
+ contentWidth: '800px',
196
+ },
195
197
  };
196
198
 
197
199
  /**
@@ -202,8 +204,8 @@ export const FullViewportHeight: Story = {
202
204
  ...BackgroundImageOnly.args,
203
205
  title: 'Atomix. Build Once. Use Everywhere.',
204
206
  text: 'A flexible, scalable design system that works seamlessly across all devices and platforms.',
205
- fullViewportHeight: true
206
- }
207
+ fullViewportHeight: true,
208
+ },
207
209
  };
208
210
 
209
211
  /**
@@ -214,8 +216,8 @@ export const LeftAlignedWithBackground: Story = {
214
216
  ...WithBackgroundImage.args,
215
217
  title: 'Customizable & Extensible',
216
218
  text: 'Easily customize components to match your brand. Built with a flexible architecture that allows for easy extension and adaptation.',
217
- alignment: 'left'
218
- }
219
+ alignment: 'left',
220
+ },
219
221
  };
220
222
 
221
223
  /**
@@ -227,8 +229,8 @@ export const CenterAlignedWithImageBackground: Story = {
227
229
  title: 'Based on Modern Standards',
228
230
  text: 'Built with the latest technologies like React, TypeScript, and SCSS. Follows BEM, ITCSS, and OOCSS methodologies for clean, maintainable CSS.',
229
231
  alignment: 'center',
230
- imageSrc: 'https://picsum.photos/id/160/1312/280'
231
- }
232
+ imageSrc: 'https://picsum.photos/id/160/1312/280',
233
+ },
232
234
  };
233
235
 
234
236
  /**
@@ -239,8 +241,8 @@ export const CustomContentWidth: Story = {
239
241
  ...CenterAligned.args,
240
242
  title: 'Hero with Custom Content Width',
241
243
  text: 'This hero component has a custom content width set through the contentWidth prop, which sets the --atomix-hero-content-width CSS variable.',
242
- contentWidth: '800px'
243
- }
244
+ contentWidth: '800px',
245
+ },
244
246
  };
245
247
 
246
248
  /**
@@ -254,8 +256,8 @@ export const WithParallaxEffect: Story = {
254
256
  backgroundImageSrc: 'https://picsum.photos/id/1015/1920/1080',
255
257
  parallax: true,
256
258
  parallaxIntensity: 0.5,
257
- fullViewportHeight: true
258
- }
259
+ fullViewportHeight: true,
260
+ },
259
261
  };
260
262
 
261
263
  /**
@@ -272,12 +274,12 @@ export const WithVideoBackground: Story = {
272
274
  autoplay: true,
273
275
  loop: true,
274
276
  muted: true,
275
- posterUrl: 'https://picsum.photos/id/1018/1920/1080'
277
+ posterUrl: 'https://picsum.photos/id/1018/1920/1080',
276
278
  },
277
279
  showOverlay: true,
278
280
  actions: showcaseActionButtons,
279
- contentWidth: '800px'
280
- }
281
+ contentWidth: '800px',
282
+ },
281
283
  };
282
284
 
283
285
  /**
@@ -290,6 +292,6 @@ export const VideoBackgroundWithImage: Story = {
290
292
  text: 'Combine video backgrounds with foreground images for rich, layered visual presentations.',
291
293
  alignment: 'left',
292
294
  imageSrc: 'https://picsum.photos/id/180/712/500',
293
- imageAlt: 'Product showcase'
294
- }
295
- };
295
+ imageAlt: 'Product showcase',
296
+ },
297
+ };
@@ -24,18 +24,18 @@ export const Hero: React.FC<HeroProps> = ({
24
24
  videoOptions = {
25
25
  autoplay: true,
26
26
  loop: true,
27
- muted: true
28
- }
27
+ muted: true,
28
+ },
29
29
  }) => {
30
- const {
31
- generateHeroClassNames,
32
- generateImageColClass,
30
+ const {
31
+ generateHeroClassNames,
32
+ generateImageColClass,
33
33
  generateContentColClass,
34
34
  hasBackgroundImage,
35
35
  hasForegroundImage,
36
36
  useGridLayout,
37
37
  heroRef,
38
- videoRef
38
+ videoRef,
39
39
  } = useHero({
40
40
  alignment,
41
41
  imageColSize,
@@ -47,21 +47,23 @@ export const Hero: React.FC<HeroProps> = ({
47
47
  contentWidth,
48
48
  parallax,
49
49
  parallaxIntensity,
50
- videoBackground
50
+ videoBackground,
51
51
  });
52
52
 
53
53
  // Create custom style for hero element with content width if provided
54
- const heroStyle: React.CSSProperties | undefined = contentWidth ? {
55
- '--atomix-hero-content-width': contentWidth
56
- } as React.CSSProperties : undefined;
54
+ const heroStyle: React.CSSProperties | undefined = contentWidth
55
+ ? ({
56
+ '--atomix-hero-content-width': contentWidth,
57
+ } as React.CSSProperties)
58
+ : undefined;
57
59
 
58
60
  const renderVideoBackground = () => {
59
61
  if (!videoBackground) return null;
60
-
62
+
61
63
  const { autoplay, loop, muted, posterUrl } = videoOptions;
62
-
64
+
63
65
  return (
64
- <video
66
+ <video
65
67
  ref={videoRef}
66
68
  className="c-hero__video"
67
69
  autoPlay={autoplay}
@@ -78,7 +80,7 @@ export const Hero: React.FC<HeroProps> = ({
78
80
 
79
81
  const renderBackground = () => {
80
82
  if (!hasBackgroundImage && !videoBackground) return null;
81
-
83
+
82
84
  return (
83
85
  <div className={HERO.SELECTORS.BG.replace('.', '')}>
84
86
  {backgroundImageSrc && (
@@ -105,26 +107,18 @@ export const Hero: React.FC<HeroProps> = ({
105
107
 
106
108
  const renderForegroundImage = () => {
107
109
  if (!hasForegroundImage) return null;
108
-
110
+
109
111
  if (alignment === 'center') {
110
112
  return (
111
113
  <div className={HERO.SELECTORS.IMAGE_WRAPPER.replace('.', '')}>
112
- <img
113
- src={imageSrc}
114
- alt={imageAlt}
115
- className={HERO.SELECTORS.IMAGE.replace('.', '')}
116
- />
114
+ <img src={imageSrc} alt={imageAlt} className={HERO.SELECTORS.IMAGE.replace('.', '')} />
117
115
  </div>
118
116
  );
119
117
  }
120
-
118
+
121
119
  return (
122
120
  <div className={generateImageColClass()}>
123
- <img
124
- src={imageSrc}
125
- alt={imageAlt}
126
- className={HERO.SELECTORS.IMAGE.replace('.', '')}
127
- />
121
+ <img src={imageSrc} alt={imageAlt} className={HERO.SELECTORS.IMAGE.replace('.', '')} />
128
122
  </div>
129
123
  );
130
124
  };
@@ -134,29 +128,25 @@ export const Hero: React.FC<HeroProps> = ({
134
128
  if (alignment === 'left') {
135
129
  return (
136
130
  <>
137
- <div className={generateContentColClass()}>
138
- {renderContent()}
139
- </div>
131
+ <div className={generateContentColClass()}>{renderContent()}</div>
140
132
  {renderForegroundImage()}
141
133
  </>
142
134
  );
143
135
  }
144
-
136
+
145
137
  // For right-aligned or default, render image first then content
146
138
  return (
147
139
  <>
148
140
  {renderForegroundImage()}
149
- <div className={generateContentColClass()}>
150
- {renderContent()}
151
- </div>
141
+ <div className={generateContentColClass()}>{renderContent()}</div>
152
142
  </>
153
143
  );
154
144
  };
155
145
 
156
146
  return (
157
- <div
147
+ <div
158
148
  ref={heroRef}
159
- className={generateHeroClassNames(className)}
149
+ className={generateHeroClassNames(className)}
160
150
  style={heroStyle}
161
151
  data-parallax={parallax ? 'true' : undefined}
162
152
  data-parallax-intensity={parallax ? parallaxIntensity : undefined}
@@ -176,10 +166,10 @@ export const Hero: React.FC<HeroProps> = ({
176
166
  </div>
177
167
  </div>
178
168
  );
179
- };
169
+ };
180
170
 
181
- export type { HeroProps };
171
+ export type { HeroProps };
182
172
 
183
173
  Hero.displayName = 'Hero';
184
174
 
185
- export default Hero;
175
+ export default Hero;
@@ -3,4 +3,4 @@ import type { HeroProps } from './Hero';
3
3
 
4
4
  export { Hero };
5
5
  export type { HeroProps };
6
- export default Hero;
6
+ export default Hero;
@@ -4,11 +4,11 @@
4
4
  */
5
5
 
6
6
  import { Hero, initHeroes } from './index';
7
- import {
8
- applyParallaxEffect,
9
- removeParallaxEffect,
7
+ import {
8
+ applyParallaxEffect,
9
+ removeParallaxEffect,
10
10
  applyVideoBackground,
11
- initializeHeroesWithCustomBehavior
11
+ initializeHeroesWithCustomBehavior,
12
12
  } from './heroInteractions';
13
13
 
14
14
  // Export for global use
@@ -18,7 +18,7 @@ export {
18
18
  applyParallaxEffect,
19
19
  removeParallaxEffect,
20
20
  applyVideoBackground,
21
- initializeHeroesWithCustomBehavior
21
+ initializeHeroesWithCustomBehavior,
22
22
  };
23
23
 
24
24
  // Add to global namespace for direct browser usage
@@ -30,4 +30,4 @@ if (typeof window !== 'undefined') {
30
30
  (window as any).Atomix.removeParallaxEffect = removeParallaxEffect;
31
31
  (window as any).Atomix.applyVideoBackground = applyVideoBackground;
32
32
  (window as any).Atomix.initializeHeroesWithCustomBehavior = initializeHeroesWithCustomBehavior;
33
- }
33
+ }
@@ -8,28 +8,28 @@ import { HERO } from '../../../lib/constants/components';
8
8
  */
9
9
  export function applyParallaxEffect(hero: HTMLElement, intensity: number = 0.5): void {
10
10
  if (!hero) return;
11
-
11
+
12
12
  // Ensure intensity is between 0 and 1
13
13
  const safeIntensity = Math.max(0, Math.min(1, intensity));
14
-
14
+
15
15
  // Add parallax class
16
16
  hero.classList.add('c-hero--parallax');
17
-
17
+
18
18
  // Handle scroll event
19
19
  const handleScroll = (): void => {
20
20
  const scrollPosition = window.pageYOffset;
21
21
  const offset = scrollPosition * safeIntensity;
22
-
22
+
23
23
  // Apply transform
24
24
  hero.style.backgroundPositionY = `calc(50% + ${offset}px)`;
25
25
  };
26
-
26
+
27
27
  // Add event listener
28
28
  window.addEventListener('scroll', handleScroll);
29
-
29
+
30
30
  // Store the handler for cleanup
31
31
  (hero as any)._parallaxHandler = handleScroll;
32
-
32
+
33
33
  // Initial call
34
34
  handleScroll();
35
35
  }
@@ -40,13 +40,13 @@ export function applyParallaxEffect(hero: HTMLElement, intensity: number = 0.5):
40
40
  */
41
41
  export function removeParallaxEffect(hero: HTMLElement): void {
42
42
  if (!hero) return;
43
-
43
+
44
44
  // Remove class
45
45
  hero.classList.remove('c-hero--parallax');
46
-
46
+
47
47
  // Remove style
48
48
  hero.style.backgroundPositionY = '';
49
-
49
+
50
50
  // Remove event listener
51
51
  if ((hero as any)._parallaxHandler) {
52
52
  window.removeEventListener('scroll', (hero as any)._parallaxHandler);
@@ -61,7 +61,7 @@ export function removeParallaxEffect(hero: HTMLElement): void {
61
61
  * @param options - Video options
62
62
  */
63
63
  export function applyVideoBackground(
64
- hero: HTMLElement,
64
+ hero: HTMLElement,
65
65
  videoUrl: string,
66
66
  options: {
67
67
  autoplay?: boolean;
@@ -71,15 +71,10 @@ export function applyVideoBackground(
71
71
  } = {}
72
72
  ): void {
73
73
  if (!hero) return;
74
-
74
+
75
75
  // Default options
76
- const {
77
- autoplay = true,
78
- loop = true,
79
- muted = true,
80
- posterUrl
81
- } = options;
82
-
76
+ const { autoplay = true, loop = true, muted = true, posterUrl } = options;
77
+
83
78
  // Create video element
84
79
  const video = document.createElement('video');
85
80
  video.className = 'c-hero__video';
@@ -87,18 +82,18 @@ export function applyVideoBackground(
87
82
  video.loop = loop;
88
83
  video.muted = muted;
89
84
  video.setAttribute('playsinline', '');
90
-
85
+
91
86
  if (posterUrl) {
92
87
  video.poster = posterUrl;
93
88
  }
94
-
89
+
95
90
  // Add source
96
91
  const source = document.createElement('source');
97
92
  source.src = videoUrl;
98
93
  source.type = `video/${videoUrl.split('.').pop() || 'mp4'}`;
99
-
94
+
100
95
  video.appendChild(source);
101
-
96
+
102
97
  // Add to hero
103
98
  hero.appendChild(video);
104
99
  }
@@ -109,27 +104,27 @@ export function applyVideoBackground(
109
104
  */
110
105
  export function initializeHeroesWithCustomBehavior(selector = HERO.SELECTORS.HERO): Hero[] {
111
106
  const heroes = Hero.initializeAll(selector);
112
-
107
+
113
108
  // Apply custom behaviors based on data attributes
114
109
  heroes.forEach(heroInstance => {
115
110
  const element = heroInstance['element'] as HTMLElement;
116
-
111
+
117
112
  // Apply parallax if data attribute is present
118
113
  if (element.dataset.parallax === 'true') {
119
114
  const intensity = parseFloat(element.dataset.parallaxIntensity || '0.5');
120
115
  applyParallaxEffect(element, intensity);
121
116
  }
122
-
117
+
123
118
  // Apply video background if data attribute is present
124
119
  if (element.dataset.videoBackground) {
125
120
  applyVideoBackground(element, element.dataset.videoBackground, {
126
121
  autoplay: element.dataset.videoAutoplay !== 'false',
127
122
  loop: element.dataset.videoLoop !== 'false',
128
123
  muted: element.dataset.videoMuted !== 'false',
129
- posterUrl: element.dataset.videoPoster
124
+ posterUrl: element.dataset.videoPoster,
130
125
  });
131
126
  }
132
127
  });
133
-
128
+
134
129
  return heroes;
135
- }
130
+ }
@@ -27,7 +27,7 @@ const DEFAULT_OPTIONS: HeroOptions = {
27
27
  overlay: true,
28
28
  overlayOpacity: 0.5,
29
29
  fullHeight: false,
30
- centered: false
30
+ centered: false,
31
31
  };
32
32
 
33
33
  /**
@@ -44,17 +44,16 @@ export class Hero implements HeroInstance {
44
44
  */
45
45
  constructor(element: string | HTMLElement, options: HeroOptions = {}) {
46
46
  // Get element reference
47
- this.element = typeof element === 'string'
48
- ? document.querySelector(element) as HTMLElement
49
- : element;
50
-
47
+ this.element =
48
+ typeof element === 'string' ? (document.querySelector(element) as HTMLElement) : element;
49
+
51
50
  if (!this.element) {
52
51
  throw new Error('Hero: Element not found');
53
52
  }
54
-
53
+
55
54
  // Merge default options with provided options
56
55
  this.options = { ...DEFAULT_OPTIONS, ...options };
57
-
56
+
58
57
  // Initialize the component
59
58
  this.init();
60
59
  }
@@ -67,28 +66,28 @@ export class Hero implements HeroInstance {
67
66
  if (this.options.fullHeight) {
68
67
  this.element.classList.add('c-hero--full-height');
69
68
  }
70
-
69
+
71
70
  if (this.options.centered) {
72
71
  this.element.classList.add('c-hero--centered');
73
72
  }
74
-
73
+
75
74
  if (this.options.className) {
76
75
  this.element.classList.add(this.options.className);
77
76
  }
78
-
77
+
79
78
  if (this.options.backgroundImage) {
80
79
  this.element.style.backgroundImage = `url(${this.options.backgroundImage})`;
81
80
  }
82
-
81
+
83
82
  // Set up overlay if needed
84
83
  if (this.options.overlay) {
85
84
  const overlay = document.createElement('div');
86
85
  overlay.className = 'c-hero__overlay';
87
-
86
+
88
87
  if (this.options.overlayOpacity !== undefined) {
89
88
  overlay.style.opacity = this.options.overlayOpacity.toString();
90
89
  }
91
-
90
+
92
91
  this.element.appendChild(overlay);
93
92
  }
94
93
  }
@@ -100,16 +99,16 @@ export class Hero implements HeroInstance {
100
99
  // Remove added classes
101
100
  this.element.classList.remove('c-hero--full-height');
102
101
  this.element.classList.remove('c-hero--centered');
103
-
102
+
104
103
  if (this.options.className) {
105
104
  this.element.classList.remove(this.options.className);
106
105
  }
107
-
106
+
108
107
  // Remove background image
109
108
  if (this.options.backgroundImage) {
110
109
  this.element.style.backgroundImage = '';
111
110
  }
112
-
111
+
113
112
  // Remove overlay
114
113
  const overlay = this.element.querySelector('.c-hero__overlay');
115
114
  if (overlay) {
@@ -142,4 +141,4 @@ if (typeof document !== 'undefined') {
142
141
  } else {
143
142
  initHeroes();
144
143
  }
145
- }
144
+ }