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