@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.
- package/CONTRIBUTING.md +151 -0
- package/NEXTJS_INTEGRATION.md +358 -0
- package/README.md +168 -119
- package/babel.config.js +58 -0
- package/css.d.ts +10 -0
- package/dist/css/atomix.css +1 -2
- package/dist/js/194.js +1 -2
- package/dist/js/244.js +1 -0
- package/dist/js/atomix.react.cjs.js +1 -0
- package/dist/js/atomix.react.esm.js +1 -2
- package/dist/js/atomix.react.umd.js +1 -2
- package/dist/js/chunks/cjs/202.9d3b1ef1eaa0d5c8a309.js +1 -0
- package/dist/js/chunks/cjs/308.6ea9685ea38ead4120d0.js +1 -0
- package/dist/js/chunks/cjs/54.73db6922594e421ba6b1.js +1 -0
- package/dist/js/chunks/cjs/619.51feecaadcab819780d4.js +1 -0
- package/dist/js/chunks/cjs/690.90f6d11164081cbcbc4d.js +1 -0
- package/dist/js/chunks/cjs/894.24877561df336a8dfd14.js +1 -0
- package/dist/js/chunks/cjs/897.6c2a71fae95338890de7.js +1 -0
- package/dist/js/chunks/esm/{202.ff48d27672233280e021.js → 202.82aa7b3244e53c9edb72.js} +1 -2
- package/dist/js/chunks/esm/{308.f873332126eba90e5c62.js → 308.27e1e4005705ae320432.js} +1 -2
- package/dist/js/chunks/esm/{54.4db919e5e4e5cc6d7c72.js → 54.ece1fd6964f98d4d994f.js} +1 -2
- package/dist/js/chunks/esm/{619.afc5a718eff77fa423b5.js → 619.ebeb0298432a066ac05c.js} +1 -2
- package/dist/js/chunks/esm/{690.a9e968c7497d61e56cdc.js → 690.c5f412cc979b55740359.js} +1 -2
- package/dist/js/chunks/esm/{894.f1091a4a8758c26d29e4.js → 894.3604ddc9367d75191198.js} +1 -2
- package/dist/js/chunks/esm/{897.561a50f7d043d42169da.js → 897.a4aab2fad9401693eb12.js} +1 -2
- package/dist/js/chunks/umd/{202.dac7605cc555b6bda542.js → 202.5017dd0403d696bf1644.js} +1 -2
- package/dist/js/chunks/umd/{308.6709979849dcbdb90c9b.js → 308.4bc14b9d7b16b6ee0ab8.js} +1 -2
- package/dist/js/chunks/umd/{54.403470e1f7d0ef4424a7.js → 54.7fdfb4a031989470a70d.js} +1 -2
- package/dist/js/chunks/umd/{619.fa05ea98c10270eb64c5.js → 619.84a0c35ecee695250085.js} +1 -2
- package/dist/js/chunks/umd/{690.aa7054d1c53e5402c2d6.js → 690.d7041094a34a4a434be2.js} +1 -2
- package/dist/js/chunks/umd/{894.3e1eaf0a2aadf4434390.js → 894.c127ee4e9513c22ee97d.js} +1 -2
- package/dist/js/chunks/umd/{897.554ea37be4453698c167.js → 897.26932ac837a39fc91907.js} +1 -2
- package/dist/types/components/Badge/index.d.ts +3 -3
- package/dist/types/components/{Navbar → Navigation/Menu}/MegaMenu.d.ts +1 -1
- package/dist/types/components/{Navbar → Navigation/Menu}/Menu.d.ts +1 -1
- package/dist/types/components/Navigation/Nav/Nav.d.ts +20 -0
- package/dist/types/components/{Navbar → Navigation/Nav}/NavDropdown.d.ts +1 -1
- package/dist/types/components/Navigation/Nav/NavItem.d.ts +33 -0
- package/dist/types/components/Navigation/Navbar/Navbar.d.ts +19 -0
- package/dist/types/components/Navigation/SideMenu/SideMenu.d.ts +20 -0
- package/dist/types/components/Navigation/SideMenu/SideMenuItem.d.ts +30 -0
- package/dist/types/components/Navigation/SideMenu/SideMenuList.d.ts +17 -0
- package/dist/types/components/Navigation/index.d.ts +10 -0
- package/dist/types/components/PhotoViewer/PhotoViewer.d.ts +2 -2
- package/dist/types/components/PhotoViewer/PhotoViewerHeader.d.ts +2 -2
- package/dist/types/components/Tab/index.d.ts +2 -2
- package/dist/types/components/Toggle/index.d.ts +2 -2
- package/dist/types/components/Tooltip/index.d.ts +3 -3
- package/dist/types/components/index.d.ts +1 -1
- package/dist/types/lib/composables/index.d.ts +1 -0
- package/dist/types/lib/composables/useDatePicker.d.ts +1 -1
- package/dist/types/lib/composables/useDropdown.d.ts +1 -1
- package/dist/types/lib/composables/useModal.d.ts +1 -1
- package/dist/types/lib/composables/usePhotoViewer.d.ts +1 -1
- package/dist/types/lib/composables/useRating.d.ts +1 -1
- package/dist/types/lib/composables/useSideMenu.d.ts +28 -0
- package/dist/types/lib/constants/components.d.ts +72 -0
- package/dist/types/lib/types/components.d.ts +103 -0
- package/examples/nextjs-example.tsx +271 -0
- package/implementation-guide.md +505 -0
- package/next.config.js +69 -0
- package/package.json +80 -42
- package/postcss.config.js +28 -0
- package/src/Introduction.mdx +3 -5
- package/src/assets/fonts/HelveticaNeue/stylesheet.css +140 -127
- package/src/components/Accordion/Accordion.stories.tsx +58 -45
- package/src/components/Accordion/Accordion.tsx +14 -4
- package/src/components/Accordion/scripts/accordionInteractions.ts +9 -9
- package/src/components/Accordion/scripts/bundle.ts +1 -1
- package/src/components/Accordion/scripts/index.ts +3 -3
- package/src/components/AtomixLogo.tsx +13 -19
- package/src/components/Avatar/Avatar.stories.tsx +24 -21
- package/src/components/Avatar/Avatar.tsx +5 -8
- package/src/components/Avatar/AvatarGroup.tsx +11 -11
- package/src/components/Avatar/index.ts +1 -1
- package/src/components/Avatar/scripts/index.ts +66 -71
- package/src/components/Badge/Badge.stories.tsx +51 -21
- package/src/components/Badge/Badge.tsx +14 -12
- package/src/components/Badge/index.ts +3 -3
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +40 -40
- package/src/components/Breadcrumb/Breadcrumb.tsx +19 -26
- package/src/components/Breadcrumb/index.ts +1 -1
- package/src/components/Breadcrumb/scripts/breadcrumb.ts +36 -34
- package/src/components/Breadcrumb/scripts/index.ts +1 -1
- package/src/components/Breadcrumb/scripts/types.ts +9 -9
- package/src/components/Button/Button.stories.tsx +36 -12
- package/src/components/Button/Button.tsx +52 -39
- package/src/components/Button/index.ts +1 -1
- package/src/components/Button/scripts/buttonInteractions.ts +9 -9
- package/src/components/Button/scripts/index.ts +1 -1
- package/src/components/Callout/Callout.stories.tsx +207 -114
- package/src/components/Callout/Callout.tsx +12 -12
- package/src/components/Callout/index.ts +1 -1
- package/src/components/Callout/scripts/CalloutInteractions.ts +58 -48
- package/src/components/Callout/scripts/bundle.ts +2 -2
- package/src/components/Callout/scripts/index.ts +19 -15
- package/src/components/Card/Card.stories.tsx +2 -2
- package/src/components/Card/Card.tsx +49 -72
- package/src/components/Card/ElevationCard.tsx +4 -8
- package/src/components/Card/index.ts +1 -1
- package/src/components/Card/scripts/bundle.ts +7 -7
- package/src/components/Card/scripts/cardInteractions.ts +24 -24
- package/src/components/Card/scripts/index.ts +25 -26
- package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +6 -3
- package/src/components/ColorModeToggle/ColorModeToggle.tsx +12 -15
- package/src/components/ColorModeToggle/index.ts +1 -1
- package/src/components/Countdown/Countdown.stories.tsx +6 -2
- package/src/components/Countdown/Countdown.tsx +56 -48
- package/src/components/Countdown/index.ts +1 -1
- package/src/components/Countdown/scripts/index.ts +33 -28
- package/src/components/DataTable/DataTable.stories.tsx +23 -18
- package/src/components/DataTable/DataTable.tsx +39 -39
- package/src/components/DataTable/index.ts +1 -1
- package/src/components/DataTable/scripts/bundle.ts +8 -3
- package/src/components/DataTable/scripts/index.ts +182 -164
- package/src/components/DatePicker/DatePicker.stories.tsx +136 -148
- package/src/components/DatePicker/DatePicker.tsx +461 -420
- package/src/components/DatePicker/scripts/bundle.ts +12 -7
- package/src/components/DatePicker/scripts/componentInteractions.ts +76 -46
- package/src/components/DatePicker/scripts/index.ts +176 -156
- package/src/components/DatePicker/types.ts +32 -32
- package/src/components/DatePicker/utils.ts +41 -30
- package/src/components/Dropdown/Dropdown.stories.tsx +85 -55
- package/src/components/Dropdown/Dropdown.tsx +97 -88
- package/src/components/Dropdown/index.ts +5 -10
- package/src/components/Dropdown/scripts/bundle.ts +10 -10
- package/src/components/Dropdown/scripts/componentInteractions.ts +10 -2
- package/src/components/Dropdown/scripts/index.ts +122 -117
- package/src/components/EdgePanel/EdgePanel.stories.tsx +142 -58
- package/src/components/EdgePanel/EdgePanel.tsx +7 -13
- package/src/components/EdgePanel/index.ts +1 -1
- package/src/components/EdgePanel/scripts/bundle.ts +5 -5
- package/src/components/EdgePanel/scripts/edgePanelInteractions.ts +26 -26
- package/src/components/EdgePanel/scripts/index.ts +53 -53
- package/src/components/Form/Checkbox.stories.tsx +2 -2
- package/src/components/Form/Checkbox.tsx +13 -7
- package/src/components/Form/Form.stories.tsx +144 -218
- package/src/components/Form/Form.tsx +6 -6
- package/src/components/Form/FormGroup.stories.tsx +21 -38
- package/src/components/Form/FormGroup.tsx +18 -20
- package/src/components/Form/Input.stories.tsx +1 -1
- package/src/components/Form/Input.tsx +18 -8
- package/src/components/Form/Radio.stories.tsx +12 -25
- package/src/components/Form/Radio.tsx +11 -6
- package/src/components/Form/Select.stories.tsx +6 -6
- package/src/components/Form/Select.tsx +31 -33
- package/src/components/Form/Textarea.stories.tsx +7 -2
- package/src/components/Form/Textarea.tsx +17 -8
- package/src/components/Form/index.ts +1 -1
- package/src/components/Hero/Hero.stories.tsx +44 -42
- package/src/components/Hero/Hero.tsx +28 -38
- package/src/components/Hero/index.ts +1 -1
- package/src/components/Hero/scripts/bundle.ts +6 -6
- package/src/components/Hero/scripts/heroInteractions.ts +24 -29
- package/src/components/Hero/scripts/index.ts +16 -17
- package/src/components/Icon/Icon.tsx +16 -18
- package/src/components/Icon/index.ts +1 -1
- package/src/components/List/List.stories.tsx +1 -3
- package/src/components/List/List.tsx +6 -10
- package/src/components/List/ListGroup.tsx +1 -1
- package/src/components/List/index.ts +1 -1
- package/src/components/Messages/Messages.stories.tsx +30 -29
- package/src/components/Messages/Messages.tsx +60 -55
- package/src/components/Messages/index.ts +1 -1
- package/src/components/Messages/scripts/bundle.ts +1 -6
- package/src/components/Messages/scripts/componentInteractions.ts +32 -37
- package/src/components/Messages/scripts/index.ts +61 -55
- package/src/components/Modal/Modal.stories.tsx +77 -53
- package/src/components/Modal/Modal.tsx +63 -62
- package/src/components/Modal/index.ts +1 -1
- package/src/components/Modal/scripts/bundle.ts +3 -3
- package/src/components/Modal/scripts/index.ts +96 -84
- package/src/components/Modal/scripts/modalInteractions.ts +16 -14
- package/src/components/{Navbar → Navigation/Menu}/MegaMenu.tsx +50 -59
- package/src/components/Navigation/Menu/Menu.stories.tsx +340 -0
- package/src/components/Navigation/Menu/Menu.tsx +110 -0
- package/src/components/Navigation/Nav/Nav.stories.tsx +458 -0
- package/src/components/Navigation/Nav/Nav.tsx +50 -0
- package/src/components/Navigation/Nav/NavDropdown.tsx +105 -0
- package/src/components/Navigation/Nav/NavItem.tsx +159 -0
- package/src/components/{Navbar → Navigation/Navbar}/Navbar.stories.tsx +198 -104
- package/src/components/Navigation/Navbar/Navbar.tsx +150 -0
- package/src/components/Navigation/README.md +314 -0
- package/src/components/Navigation/SideMenu/SideMenu.README.md +494 -0
- package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +618 -0
- package/src/components/Navigation/SideMenu/SideMenu.tsx +101 -0
- package/src/components/Navigation/SideMenu/SideMenuItem.tsx +95 -0
- package/src/components/Navigation/SideMenu/SideMenuList.tsx +41 -0
- package/src/components/Navigation/index.ts +23 -0
- package/src/components/Navigation/scripts/NavbarInteractions.ts +171 -0
- package/src/components/Navigation/scripts/SideMenu.ts +319 -0
- package/src/components/Navigation/scripts/SideMenuBundle.ts +69 -0
- package/src/components/Navigation/scripts/SideMenuInteractions.ts +250 -0
- package/src/components/Navigation/scripts/bundle.ts +58 -0
- package/src/components/Navigation/scripts/index.ts +248 -0
- package/src/components/Pagination/Pagination.stories.tsx +34 -33
- package/src/components/Pagination/Pagination.tsx +25 -35
- package/src/components/Pagination/index.ts +1 -1
- package/src/components/Pagination/scripts/index.ts +42 -37
- package/src/components/PhotoViewer/PhotoViewer.stories.tsx +48 -48
- package/src/components/PhotoViewer/PhotoViewer.tsx +29 -46
- package/src/components/PhotoViewer/PhotoViewerHeader.tsx +20 -26
- package/src/components/PhotoViewer/PhotoViewerImage.tsx +19 -17
- package/src/components/PhotoViewer/PhotoViewerInfo.tsx +13 -5
- package/src/components/PhotoViewer/PhotoViewerNavigation.tsx +5 -5
- package/src/components/PhotoViewer/PhotoViewerThumbnails.tsx +31 -30
- package/src/components/PhotoViewer/examples/ImageGallery.tsx +27 -37
- package/src/components/PhotoViewer/examples/SimpleGallery.tsx +19 -13
- package/src/components/PhotoViewer/examples/index.ts +1 -1
- package/src/components/PhotoViewer/index.ts +1 -1
- package/src/components/PhotoViewer/scripts/PhotoViewerInteractions.ts +43 -33
- package/src/components/PhotoViewer/scripts/bundle.ts +14 -14
- package/src/components/PhotoViewer/scripts/index.ts +173 -129
- package/src/components/Popover/Popover.stories.tsx +11 -12
- package/src/components/Popover/Popover.tsx +36 -36
- package/src/components/Popover/index.ts +1 -1
- package/src/components/Popover/scripts/bundle.ts +1 -1
- package/src/components/Popover/scripts/componentInteractions.ts +34 -46
- package/src/components/Popover/scripts/index.ts +64 -53
- package/src/components/ProductReview/ProductReview.stories.tsx +10 -8
- package/src/components/ProductReview/ProductReview.tsx +28 -32
- package/src/components/ProductReview/scripts/componentInteractions.ts +20 -20
- package/src/components/Progress/Progress.tsx +36 -34
- package/src/components/Progress/scripts/bundle.ts +7 -2
- package/src/components/Progress/scripts/componentInteractions.ts +29 -23
- package/src/components/Progress/scripts/index.ts +45 -39
- package/src/components/Rating/Rating.stories.tsx +3 -16
- package/src/components/Rating/Rating.tsx +250 -231
- package/src/components/Rating/scripts/bundle.ts +11 -6
- package/src/components/Rating/scripts/index.ts +85 -80
- package/src/components/Rating/scripts/ratingInteractions.ts +27 -24
- package/src/components/River/River.stories.tsx +70 -24
- package/src/components/River/River.tsx +28 -38
- package/src/components/River/index.ts +1 -1
- package/src/components/River/scripts/index.ts +11 -12
- package/src/components/SectionIntro/SectionIntro.stories.tsx +12 -9
- package/src/components/SectionIntro/SectionIntro.tsx +25 -31
- package/src/components/SectionIntro/scripts/componentInteractions.ts +1 -1
- package/src/components/SectionIntro/scripts/index.ts +30 -16
- package/src/components/Spinner/Spinner.stories.tsx +5 -7
- package/src/components/Spinner/Spinner.tsx +11 -6
- package/src/components/Spinner/index.ts +2 -2
- package/src/components/Steps/Steps.stories.tsx +44 -48
- package/src/components/Steps/Steps.tsx +20 -20
- package/src/components/Steps/index.ts +1 -1
- package/src/components/Steps/scripts/index.ts +9 -9
- package/src/components/Tab/Tab.stories.tsx +14 -6
- package/src/components/Tab/Tab.tsx +16 -18
- package/src/components/Tab/index.ts +2 -2
- package/src/components/Tab/scripts/index.ts +13 -13
- package/src/components/Testimonial/Testimonial.stories.tsx +54 -51
- package/src/components/Testimonial/Testimonial.tsx +18 -19
- package/src/components/Testimonial/index.ts +1 -1
- package/src/components/Testimonial/scripts/index.ts +19 -8
- package/src/components/Todo/Todo.stories.tsx +7 -24
- package/src/components/Todo/Todo.tsx +35 -46
- package/src/components/Todo/index.ts +1 -1
- package/src/components/Todo/scripts/bundle.ts +1 -1
- package/src/components/Todo/scripts/index.ts +99 -81
- package/src/components/Todo/scripts/todoInteractions.ts +12 -12
- package/src/components/Todo/scripts/types.ts +3 -3
- package/src/components/Toggle/Toggle.stories.tsx +2 -2
- package/src/components/Toggle/Toggle.tsx +18 -18
- package/src/components/Toggle/index.ts +2 -2
- package/src/components/Toggle/scripts/bundle.ts +7 -2
- package/src/components/Toggle/scripts/index.ts +14 -10
- package/src/components/Toggle/scripts/toggleInteractions.ts +11 -14
- package/src/components/Tooltip/Tooltip.stories.tsx +13 -6
- package/src/components/Tooltip/Tooltip.tsx +25 -15
- package/src/components/Tooltip/index.ts +3 -3
- package/src/components/Tooltip/scripts/bundle.ts +0 -1
- package/src/components/Tooltip/scripts/index.ts +44 -41
- package/src/components/Tooltip/scripts/tooltipInteractions.ts +22 -22
- package/src/components/Upload/Upload.stories.tsx +28 -34
- package/src/components/Upload/Upload.tsx +86 -71
- package/src/components/Upload/index.ts +1 -1
- package/src/components/Upload/scripts/index.ts +58 -43
- package/src/components/index.ts +5 -6
- package/src/design-tokens/BoxShadow/BoxShadow.stories.tsx +13 -10
- package/src/design-tokens/Colors/colors.scss +10 -7
- package/src/design-tokens/Colors/colors.stories.tsx +46 -59
- package/src/design-tokens/Spacing/Spacing.scss +7 -5
- package/src/design-tokens/Spacing/Spacing.stories.tsx +19 -18
- package/src/design-tokens/Typography/Typography.scss +88 -25
- package/src/design-tokens/Typography/Typography.stories.tsx +22 -25
- package/src/docs/implementation-guide.mdx +2 -2
- package/src/htmlComponentsEntry.ts +23 -23
- package/src/index.ts +1 -1
- package/src/layouts/Grid/Container.tsx +6 -10
- package/src/layouts/Grid/Grid.stories.tsx +72 -34
- package/src/layouts/Grid/Grid.tsx +6 -13
- package/src/layouts/Grid/GridCol.tsx +29 -26
- package/src/layouts/Grid/Row.tsx +6 -13
- package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +79 -72
- package/src/layouts/MasonryGrid/MasonryGrid.tsx +23 -25
- package/src/layouts/MasonryGrid/MasonryGridItem.tsx +4 -12
- package/src/layouts/index.ts +3 -4
- package/src/lib/composables/index.ts +3 -3
- package/src/lib/composables/useAccordion.ts +15 -6
- package/src/lib/composables/useBadge.ts +3 -3
- package/src/lib/composables/useBreadcrumb.ts +6 -12
- package/src/lib/composables/useButton.ts +3 -3
- package/src/lib/composables/useCallout.ts +3 -3
- package/src/lib/composables/useCard.ts +50 -28
- package/src/lib/composables/useCheckbox.ts +7 -7
- package/src/lib/composables/useDataTable.ts +61 -57
- package/src/lib/composables/useDatePicker.ts +255 -231
- package/src/lib/composables/useDropdown.ts +90 -75
- package/src/lib/composables/useEdgePanel.ts +50 -47
- package/src/lib/composables/useForm.ts +4 -7
- package/src/lib/composables/useFormGroup.ts +11 -12
- package/src/lib/composables/useHero.ts +36 -38
- package/src/lib/composables/useInput.ts +9 -10
- package/src/lib/composables/useMessages.ts +12 -14
- package/src/lib/composables/useModal.ts +37 -34
- package/src/lib/composables/useNavbar.ts +33 -22
- package/src/lib/composables/usePagination.ts +3 -10
- package/src/lib/composables/usePhotoViewer.ts +625 -578
- package/src/lib/composables/usePopover.ts +68 -62
- package/src/lib/composables/useProgress.ts +9 -12
- package/src/lib/composables/useRadio.ts +4 -4
- package/src/lib/composables/useRating.ts +82 -70
- package/src/lib/composables/useRiver.ts +28 -31
- package/src/lib/composables/useSelect.ts +7 -8
- package/src/lib/composables/useSideMenu.ts +197 -0
- package/src/lib/composables/useSpinner.ts +3 -3
- package/src/lib/composables/useTextarea.ts +8 -9
- package/src/lib/composables/useTodo.ts +14 -18
- package/src/lib/constants/components.ts +191 -118
- package/src/lib/constants/index.ts +1 -1
- package/src/lib/types/components.ts +454 -324
- package/src/lib/utils/dom.ts +2 -6
- package/src/lib/utils/icons.ts +20 -12
- package/src/lib/utils/index.ts +2 -2
- package/src/lib/utils/useForkRef.ts +1 -2
- package/src/styles/01-settings/_index.scss +59 -59
- package/src/styles/01-settings/_settings.accordion.scss +21 -21
- package/src/styles/01-settings/_settings.animations.scss +2 -2
- package/src/styles/01-settings/_settings.avatar-group.scss +14 -14
- package/src/styles/01-settings/_settings.avatar.scss +31 -31
- package/src/styles/01-settings/_settings.badge.scss +11 -11
- package/src/styles/01-settings/_settings.border-radius.scss +10 -9
- package/src/styles/01-settings/_settings.border.scss +7 -7
- package/src/styles/01-settings/_settings.box-shadow.scss +24 -12
- package/src/styles/01-settings/_settings.breadcrumb.scss +18 -18
- package/src/styles/01-settings/_settings.btn-group.scss +1 -1
- package/src/styles/01-settings/_settings.button.scss +63 -49
- package/src/styles/01-settings/_settings.callout.scss +27 -7
- package/src/styles/01-settings/_settings.card.scss +27 -30
- package/src/styles/01-settings/_settings.checkbox-group.scss +2 -3
- package/src/styles/01-settings/_settings.checkbox.scss +17 -18
- package/src/styles/01-settings/_settings.color-mode.scss +1 -1
- package/src/styles/01-settings/_settings.colors.scss +197 -214
- package/src/styles/01-settings/_settings.config.scss +1 -3
- package/src/styles/01-settings/_settings.countdown.scss +14 -14
- package/src/styles/01-settings/_settings.data-table.scss +6 -6
- package/src/styles/01-settings/_settings.datepicker.scss +40 -42
- package/src/styles/01-settings/_settings.dropdown.scss +30 -30
- package/src/styles/01-settings/_settings.edge-panel.scss +16 -16
- package/src/styles/01-settings/_settings.fonts.scss +14 -12
- package/src/styles/01-settings/_settings.form-group.scss +10 -10
- package/src/styles/01-settings/_settings.form.scss +3 -3
- package/src/styles/01-settings/_settings.grid.scss +1 -1
- package/src/styles/01-settings/_settings.hero.scss +23 -23
- package/src/styles/01-settings/_settings.input.scss +32 -32
- package/src/styles/01-settings/_settings.link.scss +6 -6
- package/src/styles/01-settings/_settings.list-group.scss +12 -12
- package/src/styles/01-settings/_settings.list.scss +2 -2
- package/src/styles/01-settings/_settings.maps.scss +183 -188
- package/src/styles/01-settings/_settings.masonry-grid.scss +2 -2
- package/src/styles/01-settings/_settings.menu.scss +35 -38
- package/src/styles/01-settings/_settings.messages.scss +71 -77
- package/src/styles/01-settings/_settings.modal.scss +24 -24
- package/src/styles/01-settings/_settings.nav.scss +15 -15
- package/src/styles/01-settings/_settings.navbar.scss +39 -12
- package/src/styles/01-settings/_settings.pagination.scss +21 -21
- package/src/styles/01-settings/_settings.photoviewer.scss +1 -1
- package/src/styles/01-settings/_settings.popover.scss +3 -3
- package/src/styles/01-settings/_settings.position.scss +2 -2
- package/src/styles/01-settings/_settings.progress.scss +15 -18
- package/src/styles/01-settings/_settings.rating.scss +7 -7
- package/src/styles/01-settings/_settings.river.scss +25 -25
- package/src/styles/01-settings/_settings.sectionintro.scss +15 -16
- package/src/styles/01-settings/_settings.select.scss +31 -31
- package/src/styles/01-settings/_settings.side-menu.scss +64 -16
- package/src/styles/01-settings/_settings.skeleton.scss +12 -12
- package/src/styles/01-settings/_settings.spacing.scss +62 -33
- package/src/styles/01-settings/_settings.spinner.scss +10 -10
- package/src/styles/01-settings/_settings.steps.scss +22 -22
- package/src/styles/01-settings/_settings.tabs.scss +25 -25
- package/src/styles/01-settings/_settings.testimonials.scss +17 -19
- package/src/styles/01-settings/_settings.todo.scss +1 -1
- package/src/styles/01-settings/_settings.toggle.scss +26 -26
- package/src/styles/01-settings/_settings.tooltip.scss +15 -15
- package/src/styles/01-settings/_settings.typography.scss +65 -48
- package/src/styles/01-settings/_settings.upload.scss +70 -77
- package/src/styles/01-settings/_settings.z-layers.scss +1 -1
- package/src/styles/02-tools/_index.scss +19 -19
- package/src/styles/02-tools/_tools.animations.scss +4 -4
- package/src/styles/02-tools/_tools.border-radius.scss +4 -5
- package/src/styles/02-tools/_tools.breakpoints.scss +33 -34
- package/src/styles/02-tools/_tools.button.scss +49 -25
- package/src/styles/02-tools/_tools.color-mode.scss +11 -11
- package/src/styles/02-tools/_tools.event.scss +1 -1
- package/src/styles/02-tools/_tools.hidden-visually.scss +1 -1
- package/src/styles/02-tools/_tools.hidden.scss +1 -1
- package/src/styles/02-tools/_tools.map-loop.scss +9 -9
- package/src/styles/02-tools/_tools.media-queries.scss +5 -3
- package/src/styles/02-tools/_tools.object-fit.scss +3 -3
- package/src/styles/02-tools/_tools.placeholder.scss +0 -1
- package/src/styles/02-tools/_tools.rem.scss +1 -1
- package/src/styles/02-tools/_tools.spacing.scss +8 -34
- package/src/styles/02-tools/_tools.to-rgb.scss +3 -3
- package/src/styles/02-tools/_tools.transition.scss +1 -1
- package/src/styles/02-tools/_tools.utility-api.scss +29 -14
- package/src/styles/03-generic/_generic.fonts.scss +0 -1
- package/src/styles/03-generic/_generic.reset.scss +13 -8
- package/src/styles/03-generic/_generic.root.scss +5 -5
- package/src/styles/03-generic/_index.scss +4 -4
- package/src/styles/04-elements/_elements.all.scss +2 -2
- package/src/styles/04-elements/_elements.body.scss +1 -2
- package/src/styles/04-elements/_elements.heading.scss +37 -21
- package/src/styles/04-elements/_elements.links.scss +0 -1
- package/src/styles/04-elements/_index.scss +5 -5
- package/src/styles/05-objects/_index.scss +3 -3
- package/src/styles/05-objects/_objects.container.scss +5 -4
- package/src/styles/05-objects/_objects.grid.scss +12 -12
- package/src/styles/05-objects/_objects.masonry-grid.scss +80 -74
- package/src/styles/06-components/_components.accordion.scss +12 -6
- package/src/styles/06-components/_components.avatar-group.scss +9 -8
- package/src/styles/06-components/_components.avatar.scss +78 -77
- package/src/styles/06-components/_components.badge.scss +48 -48
- package/src/styles/06-components/_components.breadcrumb.scss +57 -58
- package/src/styles/06-components/_components.btn-group.scss +22 -22
- package/src/styles/06-components/_components.button.scss +118 -110
- package/src/styles/06-components/_components.callout.scss +21 -15
- package/src/styles/06-components/_components.card.scss +6 -10
- package/src/styles/06-components/_components.checkbox-group.scss +9 -10
- package/src/styles/06-components/_components.checkbox.scss +10 -17
- package/src/styles/06-components/_components.color-mode-toggle.scss +6 -6
- package/src/styles/06-components/_components.countdown.scss +53 -54
- package/src/styles/06-components/_components.data-table.scss +40 -36
- package/src/styles/06-components/_components.datepicker.scss +95 -73
- package/src/styles/06-components/_components.dropdown.scss +15 -9
- package/src/styles/06-components/_components.edge-panel.scss +87 -46
- package/src/styles/06-components/_components.form-group.scss +5 -4
- package/src/styles/06-components/_components.hero.scss +128 -132
- package/src/styles/06-components/_components.icon.scss +16 -16
- package/src/styles/06-components/_components.image-gallery.scss +9 -7
- package/src/styles/06-components/_components.input.scss +18 -16
- package/src/styles/06-components/_components.list-group.scss +52 -51
- package/src/styles/06-components/_components.list.scss +15 -15
- package/src/styles/06-components/_components.menu.scss +225 -220
- package/src/styles/06-components/_components.messages.scss +45 -32
- package/src/styles/06-components/_components.modal.scss +0 -1
- package/src/styles/06-components/_components.nav.scss +56 -11
- package/src/styles/06-components/_components.navbar.scss +278 -202
- package/src/styles/06-components/_components.pagination.scss +7 -6
- package/src/styles/06-components/_components.photoviewer.scss +121 -116
- package/src/styles/06-components/_components.popover.scss +10 -10
- package/src/styles/06-components/_components.product-review.scss +3 -3
- package/src/styles/06-components/_components.progress.scss +32 -35
- package/src/styles/06-components/_components.rating.scss +9 -8
- package/src/styles/06-components/_components.river.scss +4 -2
- package/src/styles/06-components/_components.sectionintro.scss +19 -26
- package/src/styles/06-components/_components.select.scss +7 -8
- package/src/styles/06-components/_components.side-menu.scss +154 -28
- package/src/styles/06-components/_components.skeleton.scss +0 -1
- package/src/styles/06-components/_components.spinner.scss +2 -4
- package/src/styles/06-components/_components.steps.scss +76 -77
- package/src/styles/06-components/_components.tabs.scss +17 -12
- package/src/styles/06-components/_components.testimonials.scss +49 -52
- package/src/styles/06-components/_components.todo.scss +26 -26
- package/src/styles/06-components/_components.tooltip.scss +114 -115
- package/src/styles/06-components/_components.upload.scss +8 -18
- package/src/styles/06-components/_index.scss +48 -48
- package/src/styles/99-utilities/_index.scss +18 -18
- package/src/styles/99-utilities/_utilities.background.scss +13 -13
- package/src/styles/99-utilities/_utilities.border.scss +30 -30
- package/src/styles/99-utilities/_utilities.clearfix.scss +1 -1
- package/src/styles/99-utilities/_utilities.display.scss +5 -4
- package/src/styles/99-utilities/_utilities.flex.scss +19 -19
- package/src/styles/99-utilities/_utilities.link.scss +52 -35
- package/src/styles/99-utilities/_utilities.object-fit.scss +3 -3
- package/src/styles/99-utilities/_utilities.opacity.scss +6 -6
- package/src/styles/99-utilities/_utilities.overflow.scss +4 -4
- package/src/styles/99-utilities/_utilities.position.scss +8 -8
- package/src/styles/99-utilities/_utilities.shadow.scss +13 -13
- package/src/styles/99-utilities/_utilities.sizes.scss +17 -17
- package/src/styles/99-utilities/_utilities.spacing.scss +72 -37
- package/src/styles/99-utilities/_utilities.text.scss +15 -15
- package/src/styles/99-utilities/_utilities.visibility.scss +8 -8
- package/src/styles/99-utilities/_utilities.visually-hidden.scss +1 -1
- package/src/styles/99-utilities/_utilities.z-index.scss +2 -2
- package/tsconfig.json +74 -0
- package/webpack.config.js +463 -0
- package/NPM_PUBLISHING.md +0 -221
- package/dist/css/atomix.css.map +0 -1
- package/dist/js/194.js.map +0 -1
- package/dist/js/atomix.react.esm.js.map +0 -1
- package/dist/js/atomix.react.umd.js.map +0 -1
- package/dist/js/chunks/esm/202.ff48d27672233280e021.js.map +0 -1
- package/dist/js/chunks/esm/308.f873332126eba90e5c62.js.map +0 -1
- package/dist/js/chunks/esm/54.4db919e5e4e5cc6d7c72.js.map +0 -1
- package/dist/js/chunks/esm/619.afc5a718eff77fa423b5.js.map +0 -1
- package/dist/js/chunks/esm/690.a9e968c7497d61e56cdc.js.map +0 -1
- package/dist/js/chunks/esm/894.f1091a4a8758c26d29e4.js.map +0 -1
- package/dist/js/chunks/esm/897.561a50f7d043d42169da.js.map +0 -1
- package/dist/js/chunks/umd/202.dac7605cc555b6bda542.js.map +0 -1
- package/dist/js/chunks/umd/308.6709979849dcbdb90c9b.js.map +0 -1
- package/dist/js/chunks/umd/54.403470e1f7d0ef4424a7.js.map +0 -1
- package/dist/js/chunks/umd/619.fa05ea98c10270eb64c5.js.map +0 -1
- package/dist/js/chunks/umd/690.aa7054d1c53e5402c2d6.js.map +0 -1
- package/dist/js/chunks/umd/894.3e1eaf0a2aadf4434390.js.map +0 -1
- package/dist/js/chunks/umd/897.554ea37be4453698c167.js.map +0 -1
- package/dist/types/components/Navbar/Nav.d.ts +0 -5
- package/dist/types/components/Navbar/NavItem.d.ts +0 -5
- package/dist/types/components/Navbar/Navbar.d.ts +0 -5
- package/dist/types/components/Navbar/index.d.ts +0 -6
- package/src/components/Navbar/Menu.tsx +0 -122
- package/src/components/Navbar/Nav.tsx +0 -35
- package/src/components/Navbar/NavDropdown.tsx +0 -108
- package/src/components/Navbar/NavItem.tsx +0 -128
- package/src/components/Navbar/Navbar.tsx +0 -124
- 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 =
|
|
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 =
|
|
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
|
-
|
|
56
|
-
|
|
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;
|
|
@@ -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
|
-
|
|
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 =
|
|
48
|
-
? document.querySelector(element) as HTMLElement
|
|
49
|
-
|
|
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
|
+
}
|