@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,8 +33,14 @@ interface UploadInstance {
|
|
|
33
33
|
const DEFAULT_OPTIONS: UploadOptions = {
|
|
34
34
|
disabled: false,
|
|
35
35
|
maxSizeInMB: 5,
|
|
36
|
-
acceptedFileTypes: [
|
|
37
|
-
|
|
36
|
+
acceptedFileTypes: [
|
|
37
|
+
'application/pdf',
|
|
38
|
+
'application/vnd.ms-excel',
|
|
39
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
40
|
+
'image/jpeg',
|
|
41
|
+
'image/png',
|
|
42
|
+
],
|
|
43
|
+
multiple: false,
|
|
38
44
|
};
|
|
39
45
|
|
|
40
46
|
/**
|
|
@@ -63,7 +69,7 @@ class Upload implements UploadInstance {
|
|
|
63
69
|
this.$element =
|
|
64
70
|
typeof selector === 'string'
|
|
65
71
|
? document.querySelector<HTMLElement>(selector)
|
|
66
|
-
: selector as HTMLElement;
|
|
72
|
+
: (selector as HTMLElement);
|
|
67
73
|
this.options = { ...DEFAULT_OPTIONS, ...options } as UploadOptions;
|
|
68
74
|
this.$input = null;
|
|
69
75
|
this.$button = null;
|
|
@@ -89,8 +95,12 @@ class Upload implements UploadInstance {
|
|
|
89
95
|
this.$button = this.$element.querySelector<HTMLButtonElement>(UPLOAD.SELECTORS.BUTTON);
|
|
90
96
|
this.$loader = this.$element.querySelector<HTMLElement>(UPLOAD.SELECTORS.LOADER);
|
|
91
97
|
this.$loaderTitle = this.$element?.querySelector<HTMLElement>(UPLOAD.SELECTORS.LOADER_TITLE);
|
|
92
|
-
this.$loaderProgress = this.$element?.querySelector<HTMLElement>(
|
|
93
|
-
|
|
98
|
+
this.$loaderProgress = this.$element?.querySelector<HTMLElement>(
|
|
99
|
+
UPLOAD.SELECTORS.LOADER_PROGRESS
|
|
100
|
+
);
|
|
101
|
+
this.$loaderClose = this.$element?.querySelector<HTMLButtonElement>(
|
|
102
|
+
UPLOAD.SELECTORS.LOADER_CLOSE
|
|
103
|
+
);
|
|
94
104
|
|
|
95
105
|
// Apply disabled state if specified
|
|
96
106
|
if (this.options.disabled) {
|
|
@@ -113,7 +123,7 @@ class Upload implements UploadInstance {
|
|
|
113
123
|
input.style.display = 'none';
|
|
114
124
|
input.accept = this.options.acceptedFileTypes?.join(',') || '';
|
|
115
125
|
input.multiple = !!this.options.multiple;
|
|
116
|
-
|
|
126
|
+
|
|
117
127
|
// Append to element
|
|
118
128
|
this.$element.appendChild(input);
|
|
119
129
|
this.$input = input;
|
|
@@ -158,7 +168,7 @@ class Upload implements UploadInstance {
|
|
|
158
168
|
*/
|
|
159
169
|
private _handleFileSelect(event: Event): void {
|
|
160
170
|
if (!this.$input?.files?.length) return;
|
|
161
|
-
|
|
171
|
+
|
|
162
172
|
const files = Array.from(this.$input.files);
|
|
163
173
|
this._processFiles(files);
|
|
164
174
|
}
|
|
@@ -169,7 +179,7 @@ class Upload implements UploadInstance {
|
|
|
169
179
|
private _handleDragEnter(event: DragEvent): void {
|
|
170
180
|
event.preventDefault();
|
|
171
181
|
if (this.options.disabled) return;
|
|
172
|
-
|
|
182
|
+
|
|
173
183
|
this.dragCounter++;
|
|
174
184
|
if (this.dragCounter === 1) {
|
|
175
185
|
this.$element?.classList.add(UPLOAD.CLASSES.DRAGGING);
|
|
@@ -182,7 +192,7 @@ class Upload implements UploadInstance {
|
|
|
182
192
|
private _handleDragLeave(event: DragEvent): void {
|
|
183
193
|
event.preventDefault();
|
|
184
194
|
if (this.options.disabled) return;
|
|
185
|
-
|
|
195
|
+
|
|
186
196
|
this.dragCounter--;
|
|
187
197
|
if (this.dragCounter === 0) {
|
|
188
198
|
this.$element?.classList.remove(UPLOAD.CLASSES.DRAGGING);
|
|
@@ -203,12 +213,12 @@ class Upload implements UploadInstance {
|
|
|
203
213
|
private _handleDrop(event: DragEvent): void {
|
|
204
214
|
event.preventDefault();
|
|
205
215
|
if (this.options.disabled) return;
|
|
206
|
-
|
|
216
|
+
|
|
207
217
|
this.dragCounter = 0;
|
|
208
218
|
this.$element?.classList.remove(UPLOAD.CLASSES.DRAGGING);
|
|
209
|
-
|
|
219
|
+
|
|
210
220
|
if (!event.dataTransfer?.files.length) return;
|
|
211
|
-
|
|
221
|
+
|
|
212
222
|
const files = Array.from(event.dataTransfer.files);
|
|
213
223
|
this._processFiles(files);
|
|
214
224
|
}
|
|
@@ -218,11 +228,11 @@ class Upload implements UploadInstance {
|
|
|
218
228
|
*/
|
|
219
229
|
private _handleClose(event: MouseEvent): void {
|
|
220
230
|
event.preventDefault();
|
|
221
|
-
|
|
231
|
+
|
|
222
232
|
// Reset state
|
|
223
233
|
this.setStatus('idle');
|
|
224
234
|
this.setFile(null);
|
|
225
|
-
|
|
235
|
+
|
|
226
236
|
// Reset input
|
|
227
237
|
if (this.$input) {
|
|
228
238
|
this.$input.value = '';
|
|
@@ -234,18 +244,18 @@ class Upload implements UploadInstance {
|
|
|
234
244
|
*/
|
|
235
245
|
private _processFiles(files: File[]): void {
|
|
236
246
|
if (!files.length) return;
|
|
237
|
-
|
|
247
|
+
|
|
238
248
|
// If multiple is not allowed, take only the first file
|
|
239
249
|
const filesToProcess = this.options.multiple ? files : [files[0]];
|
|
240
|
-
|
|
250
|
+
|
|
241
251
|
// Validate files
|
|
242
252
|
const validFiles = filesToProcess.filter(file => this._validateFile(file));
|
|
243
|
-
|
|
253
|
+
|
|
244
254
|
// Notify about file selection
|
|
245
255
|
if (validFiles.length && this.options.onFileSelect) {
|
|
246
256
|
this.options.onFileSelect(validFiles);
|
|
247
257
|
}
|
|
248
|
-
|
|
258
|
+
|
|
249
259
|
// Process the first valid file
|
|
250
260
|
if (validFiles.length) {
|
|
251
261
|
this.setFile(validFiles[0]);
|
|
@@ -258,13 +268,13 @@ class Upload implements UploadInstance {
|
|
|
258
268
|
*/
|
|
259
269
|
private _validateFile(file: File): boolean {
|
|
260
270
|
const maxSizeInBytes = (this.options.maxSizeInMB || 5) * 1024 * 1024;
|
|
261
|
-
|
|
271
|
+
|
|
262
272
|
// Check file size
|
|
263
273
|
if (file.size > maxSizeInBytes) {
|
|
264
274
|
this.setStatus('error', `File too large. Maximum size is ${this.options.maxSizeInMB}MB.`);
|
|
265
275
|
return false;
|
|
266
276
|
}
|
|
267
|
-
|
|
277
|
+
|
|
268
278
|
// Check file type if acceptedFileTypes is provided
|
|
269
279
|
if (this.options.acceptedFileTypes?.length) {
|
|
270
280
|
const isAcceptedType = this.options.acceptedFileTypes.some(type => {
|
|
@@ -275,13 +285,13 @@ class Upload implements UploadInstance {
|
|
|
275
285
|
}
|
|
276
286
|
return file.type === type;
|
|
277
287
|
});
|
|
278
|
-
|
|
288
|
+
|
|
279
289
|
if (!isAcceptedType) {
|
|
280
290
|
this.setStatus('error', 'File type not supported.');
|
|
281
291
|
return false;
|
|
282
292
|
}
|
|
283
293
|
}
|
|
284
|
-
|
|
294
|
+
|
|
285
295
|
return true;
|
|
286
296
|
}
|
|
287
297
|
|
|
@@ -292,20 +302,20 @@ class Upload implements UploadInstance {
|
|
|
292
302
|
private _simulateUpload(file: File): void {
|
|
293
303
|
this.setStatus('loading');
|
|
294
304
|
let progress = 0;
|
|
295
|
-
|
|
305
|
+
|
|
296
306
|
const interval = setInterval(() => {
|
|
297
307
|
progress += 5;
|
|
298
|
-
|
|
308
|
+
|
|
299
309
|
if (progress < 100) {
|
|
300
310
|
this.setProgress(progress, `${Math.ceil((100 - progress) / 5)} seconds left`);
|
|
301
|
-
|
|
311
|
+
|
|
302
312
|
if (this.options.onFileUpload) {
|
|
303
313
|
this.options.onFileUpload(file, progress);
|
|
304
314
|
}
|
|
305
315
|
} else {
|
|
306
316
|
clearInterval(interval);
|
|
307
317
|
this.setStatus('success', 'Upload successful');
|
|
308
|
-
|
|
318
|
+
|
|
309
319
|
if (this.options.onFileUploadComplete) {
|
|
310
320
|
this.options.onFileUploadComplete(file);
|
|
311
321
|
}
|
|
@@ -318,7 +328,7 @@ class Upload implements UploadInstance {
|
|
|
318
328
|
*/
|
|
319
329
|
public setFile(file: File | null): void {
|
|
320
330
|
this.currentFile = file;
|
|
321
|
-
|
|
331
|
+
|
|
322
332
|
if (file && this.$loaderTitle) {
|
|
323
333
|
this.$loaderTitle.textContent = file.name;
|
|
324
334
|
}
|
|
@@ -329,18 +339,18 @@ class Upload implements UploadInstance {
|
|
|
329
339
|
*/
|
|
330
340
|
public setProgress(percentage: number, timeLeft?: string): void {
|
|
331
341
|
if (!this.$element || !this.$loaderProgress) return;
|
|
332
|
-
|
|
342
|
+
|
|
333
343
|
// Set percentage as CSS variable
|
|
334
344
|
this.$element.style.setProperty(UPLOAD.ATTRIBUTES.PERCENTAGE, percentage.toString());
|
|
335
|
-
|
|
345
|
+
|
|
336
346
|
// Update the loader elements if they exist
|
|
337
347
|
const $par = this.$element.querySelector<HTMLElement>(UPLOAD.SELECTORS.LOADER_PAR);
|
|
338
348
|
const $time = this.$element.querySelector<HTMLElement>(UPLOAD.SELECTORS.LOADER_TIME);
|
|
339
|
-
|
|
349
|
+
|
|
340
350
|
if ($par) {
|
|
341
351
|
$par.textContent = `${percentage}%`;
|
|
342
352
|
}
|
|
343
|
-
|
|
353
|
+
|
|
344
354
|
if ($time && timeLeft) {
|
|
345
355
|
$time.textContent = timeLeft;
|
|
346
356
|
}
|
|
@@ -351,14 +361,14 @@ class Upload implements UploadInstance {
|
|
|
351
361
|
*/
|
|
352
362
|
public setStatus(status: 'idle' | 'loading' | 'success' | 'error', message?: string): void {
|
|
353
363
|
if (!this.$element) return;
|
|
354
|
-
|
|
364
|
+
|
|
355
365
|
// Remove all status classes
|
|
356
366
|
this.$element.classList.remove(
|
|
357
367
|
UPLOAD.CLASSES.LOADING,
|
|
358
368
|
UPLOAD.CLASSES.SUCCESS,
|
|
359
369
|
UPLOAD.CLASSES.ERROR
|
|
360
370
|
);
|
|
361
|
-
|
|
371
|
+
|
|
362
372
|
// Add appropriate class based on status
|
|
363
373
|
switch (status) {
|
|
364
374
|
case 'loading':
|
|
@@ -371,7 +381,7 @@ class Upload implements UploadInstance {
|
|
|
371
381
|
this.$element.classList.add(UPLOAD.CLASSES.ERROR);
|
|
372
382
|
break;
|
|
373
383
|
}
|
|
374
|
-
|
|
384
|
+
|
|
375
385
|
// Update message if provided and loader exists
|
|
376
386
|
if (message && this.$loaderProgress) {
|
|
377
387
|
this.$loaderProgress.textContent = message;
|
|
@@ -383,7 +393,7 @@ class Upload implements UploadInstance {
|
|
|
383
393
|
*/
|
|
384
394
|
public disable(): void {
|
|
385
395
|
if (!this.$element || !this.$button) return;
|
|
386
|
-
|
|
396
|
+
|
|
387
397
|
this.$element.classList.add(UPLOAD.CLASSES.DISABLED);
|
|
388
398
|
this.$button.disabled = true;
|
|
389
399
|
this.options.disabled = true;
|
|
@@ -394,7 +404,7 @@ class Upload implements UploadInstance {
|
|
|
394
404
|
*/
|
|
395
405
|
public enable(): void {
|
|
396
406
|
if (!this.$element || !this.$button) return;
|
|
397
|
-
|
|
407
|
+
|
|
398
408
|
this.$element.classList.remove(UPLOAD.CLASSES.DISABLED);
|
|
399
409
|
this.$button.disabled = false;
|
|
400
410
|
this.options.disabled = false;
|
|
@@ -405,7 +415,7 @@ class Upload implements UploadInstance {
|
|
|
405
415
|
*/
|
|
406
416
|
public destroy(): void {
|
|
407
417
|
if (!this.$element || !this.$input || !this.$button) return;
|
|
408
|
-
|
|
418
|
+
|
|
409
419
|
// Remove event listeners
|
|
410
420
|
this.$button.removeEventListener('click', this._handleButtonClick.bind(this));
|
|
411
421
|
this.$input.removeEventListener('change', this._handleFileSelect.bind(this));
|
|
@@ -413,11 +423,11 @@ class Upload implements UploadInstance {
|
|
|
413
423
|
this.$element.removeEventListener('dragleave', this._handleDragLeave.bind(this));
|
|
414
424
|
this.$element.removeEventListener('dragover', this._handleDragOver.bind(this));
|
|
415
425
|
this.$element.removeEventListener('drop', this._handleDrop.bind(this));
|
|
416
|
-
|
|
426
|
+
|
|
417
427
|
if (this.$loaderClose) {
|
|
418
428
|
this.$loaderClose.removeEventListener('click', this._handleClose.bind(this));
|
|
419
429
|
}
|
|
420
|
-
|
|
430
|
+
|
|
421
431
|
// Remove input element
|
|
422
432
|
if (this.$input.parentNode) {
|
|
423
433
|
this.$input.parentNode.removeChild(this.$input);
|
|
@@ -431,13 +441,18 @@ class Upload implements UploadInstance {
|
|
|
431
441
|
* @param {Object} options - Custom options to override defaults
|
|
432
442
|
* @returns {UploadInstance[]} Array of Upload instances
|
|
433
443
|
*/
|
|
434
|
-
export function initializeUploads(
|
|
444
|
+
export function initializeUploads(
|
|
445
|
+
selector = UPLOAD.SELECTORS.UPLOAD,
|
|
446
|
+
options = {}
|
|
447
|
+
): UploadInstance[] {
|
|
435
448
|
const uploadInstances: UploadInstance[] = [];
|
|
436
|
-
const uploadElements = document.querySelectorAll<HTMLElement>(
|
|
449
|
+
const uploadElements = document.querySelectorAll<HTMLElement>(
|
|
450
|
+
typeof selector === 'string' ? selector : UPLOAD.SELECTORS.UPLOAD
|
|
451
|
+
);
|
|
437
452
|
|
|
438
453
|
if (!uploadElements.length) return uploadInstances;
|
|
439
454
|
|
|
440
|
-
uploadElements.forEach(
|
|
455
|
+
uploadElements.forEach(element => {
|
|
441
456
|
try {
|
|
442
457
|
const instance = new Upload(element, options);
|
|
443
458
|
uploadInstances.push(instance);
|
|
@@ -449,4 +464,4 @@ export function initializeUploads(selector = UPLOAD.SELECTORS.UPLOAD, options =
|
|
|
449
464
|
return uploadInstances;
|
|
450
465
|
}
|
|
451
466
|
|
|
452
|
-
export default Upload;
|
|
467
|
+
export default Upload;
|
package/src/components/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Accordion
|
|
4
4
|
export { Accordion, type AccordionProps } from './Accordion/Accordion';
|
|
5
5
|
|
|
6
|
-
// Avatar
|
|
6
|
+
// Avatar
|
|
7
7
|
export { Avatar, type AvatarProps } from './Avatar/Avatar';
|
|
8
8
|
|
|
9
9
|
// AvatarGroup
|
|
@@ -37,7 +37,7 @@ export { DataTable, type DataTableProps } from './DataTable/DataTable';
|
|
|
37
37
|
export { DatePicker, type DatePickerProps } from './DatePicker/DatePicker';
|
|
38
38
|
|
|
39
39
|
// Dropdown
|
|
40
|
-
export { Dropdown, type DropdownProps } from './Dropdown/Dropdown';
|
|
40
|
+
export { Dropdown, type DropdownProps } from './Dropdown/Dropdown';
|
|
41
41
|
|
|
42
42
|
// EdgePanel
|
|
43
43
|
export { EdgePanel, type EdgePanelProps } from './EdgePanel/EdgePanel';
|
|
@@ -66,7 +66,7 @@ export { Messages, type MessagesProps } from './Messages/Messages';
|
|
|
66
66
|
export { Modal, type ModalProps } from './Modal/Modal';
|
|
67
67
|
|
|
68
68
|
// Navbar
|
|
69
|
-
export { Navbar, type NavbarProps } from './Navbar/Navbar';
|
|
69
|
+
export { Navbar, type NavbarProps } from './Navigation/Navbar/Navbar';
|
|
70
70
|
|
|
71
71
|
// Pagination
|
|
72
72
|
export { Pagination, type PaginationProps } from './Pagination/Pagination';
|
|
@@ -78,7 +78,7 @@ export { PhotoViewer, type PhotoViewerProps } from './PhotoViewer/PhotoViewer';
|
|
|
78
78
|
export { Popover, type PopoverProps } from './Popover/Popover';
|
|
79
79
|
|
|
80
80
|
// ProductReview
|
|
81
|
-
export { ProductReview, type ProductReviewProps } from './ProductReview/ProductReview';
|
|
81
|
+
export { ProductReview, type ProductReviewProps } from './ProductReview/ProductReview';
|
|
82
82
|
|
|
83
83
|
// Progress
|
|
84
84
|
export { Progress, type ProgressProps } from './Progress/Progress';
|
|
@@ -111,8 +111,7 @@ export { Todo, type TodoProps } from './Todo/Todo';
|
|
|
111
111
|
export { Toggle, type ToggleProps } from './Toggle/Toggle';
|
|
112
112
|
|
|
113
113
|
// Tooltip
|
|
114
|
-
export { Tooltip, type TooltipProps } from './Tooltip/Tooltip';
|
|
114
|
+
export { Tooltip, type TooltipProps } from './Tooltip/Tooltip';
|
|
115
115
|
|
|
116
116
|
// Upload
|
|
117
117
|
export { Upload, type UploadProps } from './Upload/Upload';
|
|
118
|
-
|
|
@@ -10,14 +10,19 @@ interface ShadowExampleProps {
|
|
|
10
10
|
|
|
11
11
|
const ShadowExample = ({ name, size, shadow, isDark = false, darkShadow }: ShadowExampleProps) => {
|
|
12
12
|
const currentShadow = isDark && darkShadow ? darkShadow : shadow;
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
return (
|
|
15
15
|
<div className="o-grid__col o-grid__col--xs-12 o-grid__col--md-4 o-grid__col--lg-3">
|
|
16
16
|
<div className="u-d-flex u-flex-column u-gap-2">
|
|
17
17
|
<span className="u-fs-sm u-fw-semibold">{name}</span>
|
|
18
|
-
<code
|
|
18
|
+
<code
|
|
19
|
+
className="u-py-2 u-px-4 u-bg-light-subtle u-rounded-md u-fs-xs u-shadow-inset u-border u-border-primary-subtle"
|
|
20
|
+
style={{ minHeight: '50px' }}
|
|
21
|
+
>
|
|
22
|
+
{currentShadow}
|
|
23
|
+
</code>
|
|
19
24
|
</div>
|
|
20
|
-
<div
|
|
25
|
+
<div
|
|
21
26
|
className={`u-shadow-${size} u-bg-light-subtle u-rounded-md u-py-2 u-px-4 u-mt-2`}
|
|
22
27
|
style={{ minHeight: '100px' }}
|
|
23
28
|
></div>
|
|
@@ -26,7 +31,6 @@ const ShadowExample = ({ name, size, shadow, isDark = false, darkShadow }: Shado
|
|
|
26
31
|
};
|
|
27
32
|
|
|
28
33
|
const BoxShadowPreview = () => {
|
|
29
|
-
|
|
30
34
|
const shadows = [
|
|
31
35
|
{
|
|
32
36
|
name: 'Shadow',
|
|
@@ -67,19 +71,18 @@ const BoxShadowPreview = () => {
|
|
|
67
71
|
];
|
|
68
72
|
|
|
69
73
|
return (
|
|
70
|
-
|
|
71
74
|
<div className={`o-container u-py-12`}>
|
|
72
75
|
<h1 className="u-mb-8">Box Shadows</h1>
|
|
73
|
-
|
|
76
|
+
|
|
74
77
|
<section className="u-py-10 u-px-4 u-border u-border-dashed u-border-primary-subtle u-rounded-md">
|
|
75
78
|
<h2 className="u-mb-2">Shadow Variants</h2>
|
|
76
79
|
<p className="u-mb-4">
|
|
77
|
-
These are the available box shadow variants in the design system.
|
|
78
|
-
|
|
80
|
+
These are the available box shadow variants in the design system. They automatically
|
|
81
|
+
adjust between light and dark modes.
|
|
79
82
|
</p>
|
|
80
|
-
|
|
83
|
+
|
|
81
84
|
<div className="o-grid u-row-gap-4">
|
|
82
|
-
{shadows.map(
|
|
85
|
+
{shadows.map(shadow => (
|
|
83
86
|
<ShadowExample
|
|
84
87
|
key={shadow.name}
|
|
85
88
|
name={shadow.name}
|
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
min-height: 100vh;
|
|
4
4
|
background-color: var(--atomix-primary-bg);
|
|
5
5
|
color: var(--atomix-primary-text-emphasis);
|
|
6
|
-
transition:
|
|
6
|
+
transition:
|
|
7
|
+
background-color 0.3s,
|
|
8
|
+
color 0.3s;
|
|
7
9
|
|
|
8
|
-
h1,
|
|
10
|
+
h1,
|
|
11
|
+
h2,
|
|
12
|
+
h3 {
|
|
9
13
|
margin-top: 0;
|
|
10
14
|
color: var(--atomix-primary-text-emphasis);
|
|
11
15
|
}
|
|
@@ -45,12 +49,11 @@
|
|
|
45
49
|
display: flex;
|
|
46
50
|
flex-direction: column;
|
|
47
51
|
overflow: hidden;
|
|
48
|
-
transition: all 0.1s ease-out
|
|
49
|
-
|
|
52
|
+
transition: all 0.1s ease-out;
|
|
50
53
|
|
|
51
54
|
&:hover {
|
|
52
55
|
transform: translateY(-20px);
|
|
53
|
-
border-radius: var(--atomix-border-radius) var(--atomix-border-radius)
|
|
56
|
+
border-radius: var(--atomix-border-radius) var(--atomix-border-radius) 0 0;
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
&.is-right-hover {
|
|
@@ -58,7 +61,7 @@
|
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
&.is-left-hover {
|
|
61
|
-
border-radius: 0 4px 0 4px
|
|
64
|
+
border-radius: 0 4px 0 4px;
|
|
62
65
|
}
|
|
63
66
|
|
|
64
67
|
.color-box {
|
|
@@ -111,7 +114,7 @@
|
|
|
111
114
|
.design-tokens {
|
|
112
115
|
padding: 1rem;
|
|
113
116
|
}
|
|
114
|
-
|
|
117
|
+
|
|
115
118
|
.color-palette .color-grid {
|
|
116
119
|
grid-template-columns: 1fr;
|
|
117
120
|
}
|
|
@@ -9,12 +9,10 @@ interface ColorSwatchProps {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
const ColorSwatch = ({ name, value, isDark = false }: ColorSwatchProps) => (
|
|
12
|
-
<div
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
className="color-box"
|
|
17
|
-
style={{
|
|
12
|
+
<div className={`color-swatch`}>
|
|
13
|
+
<div
|
|
14
|
+
className="color-box"
|
|
15
|
+
style={{
|
|
18
16
|
backgroundColor: value,
|
|
19
17
|
}}
|
|
20
18
|
/>
|
|
@@ -71,17 +69,17 @@ const ColorPalette = ({ title, colors, isDark = false }: ColorPaletteProps) => {
|
|
|
71
69
|
if (!colorGridElement) return;
|
|
72
70
|
|
|
73
71
|
for (let i = 0; i < colorGridElement.children.length; i++) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
72
|
+
const swatchElement = colorGridElement.children[i] as HTMLDivElement;
|
|
73
|
+
if (swatchElement) {
|
|
74
|
+
const swatchRect = swatchElement.getBoundingClientRect();
|
|
75
|
+
const swatchCenterX = (swatchRect.left + swatchRect.right) / 2 - rect.left;
|
|
76
|
+
const distance = Math.abs(currentMouseX - swatchCenterX);
|
|
79
77
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
78
|
+
if (distance < minDistance) {
|
|
79
|
+
minDistance = distance;
|
|
80
|
+
closestIndex = i;
|
|
84
81
|
}
|
|
82
|
+
}
|
|
85
83
|
}
|
|
86
84
|
setClosestSwatchIdx(closestIndex);
|
|
87
85
|
};
|
|
@@ -112,37 +110,37 @@ const ColorPalette = ({ title, colors, isDark = false }: ColorPaletteProps) => {
|
|
|
112
110
|
if (mousePosX !== null && paletteRef.current) {
|
|
113
111
|
const swatchElement = paletteRef.current.children[1].children[idx] as HTMLDivElement;
|
|
114
112
|
if (swatchElement) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
113
|
+
const swatchRect = swatchElement.getBoundingClientRect();
|
|
114
|
+
const paletteRect = paletteRef.current.getBoundingClientRect();
|
|
115
|
+
const swatchCenterX = (swatchRect.left + swatchRect.right) / 2 - paletteRect.left;
|
|
116
|
+
const distance = Math.abs(mousePosX - swatchCenterX);
|
|
117
|
+
|
|
118
|
+
const currentSwatchWidth = swatchRect.width;
|
|
119
|
+
const maxEffectDistance = currentSwatchWidth * 3;
|
|
120
|
+
|
|
121
|
+
if (distance < maxEffectDistance) {
|
|
122
|
+
const normalizedDistance = distance / maxEffectDistance;
|
|
123
|
+
const animationProgress = 1 - Math.pow(normalizedDistance, 2);
|
|
124
|
+
translateY = Math.round(maxLift * animationProgress);
|
|
125
|
+
if (maxLift < 0) {
|
|
126
|
+
translateY = Math.max(maxLift, translateY);
|
|
127
|
+
} else {
|
|
128
|
+
translateY = Math.min(maxLift, translateY);
|
|
132
129
|
}
|
|
130
|
+
}
|
|
133
131
|
}
|
|
134
132
|
|
|
135
133
|
if (closestSwatchIdx !== null) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
134
|
+
if (idx < closestSwatchIdx) {
|
|
135
|
+
isRightHover = true; // All elements to the left of the closest
|
|
136
|
+
} else if (idx > closestSwatchIdx) {
|
|
137
|
+
isLeftHover = true; // All elements to the right of the closest
|
|
138
|
+
}
|
|
141
139
|
}
|
|
142
140
|
} else {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
141
|
+
translateY = 0;
|
|
142
|
+
isLeftHover = false;
|
|
143
|
+
isRightHover = false;
|
|
146
144
|
}
|
|
147
145
|
|
|
148
146
|
return (
|
|
@@ -153,10 +151,7 @@ const ColorPalette = ({ title, colors, isDark = false }: ColorPaletteProps) => {
|
|
|
153
151
|
transform: `translateY(${translateY}px)`,
|
|
154
152
|
}}
|
|
155
153
|
>
|
|
156
|
-
<div
|
|
157
|
-
className="color-box"
|
|
158
|
-
style={{ backgroundColor: value }}
|
|
159
|
-
/>
|
|
154
|
+
<div className="color-box" style={{ backgroundColor: value }} />
|
|
160
155
|
<div className="color-info">
|
|
161
156
|
<div className="color-name">{name}</div>
|
|
162
157
|
<div className="color-value">{value}</div>
|
|
@@ -274,35 +269,27 @@ const DesignTokens = () => {
|
|
|
274
269
|
return (
|
|
275
270
|
<div className={`design-tokens ${isDark ? 'dark' : 'light'}`}>
|
|
276
271
|
<h1>Design Tokens</h1>
|
|
277
|
-
|
|
272
|
+
|
|
278
273
|
<section>
|
|
279
274
|
<h2>Theme Colors</h2>
|
|
280
|
-
<ColorPalette
|
|
281
|
-
title="Theme Colors"
|
|
282
|
-
colors={themeColors}
|
|
283
|
-
isDark={isDark}
|
|
284
|
-
/>
|
|
275
|
+
<ColorPalette title="Theme Colors" colors={themeColors} isDark={isDark} />
|
|
285
276
|
</section>
|
|
286
277
|
|
|
287
278
|
<section>
|
|
288
279
|
<h2>Color Scales</h2>
|
|
289
280
|
{Object.entries(colorScales).map(([name, colors]) => (
|
|
290
|
-
<ColorPalette
|
|
281
|
+
<ColorPalette
|
|
291
282
|
key={name}
|
|
292
|
-
title={name.charAt(0).toUpperCase() + name.slice(1)}
|
|
293
|
-
colors={colors}
|
|
294
|
-
isDark={isDark}
|
|
283
|
+
title={name.charAt(0).toUpperCase() + name.slice(1)}
|
|
284
|
+
colors={colors}
|
|
285
|
+
isDark={isDark}
|
|
295
286
|
/>
|
|
296
287
|
))}
|
|
297
288
|
</section>
|
|
298
289
|
|
|
299
290
|
<section>
|
|
300
291
|
<h2>Text Colors</h2>
|
|
301
|
-
<ColorPalette
|
|
302
|
-
title="Text Colors"
|
|
303
|
-
colors={textColors}
|
|
304
|
-
isDark={isDark}
|
|
305
|
-
/>
|
|
292
|
+
<ColorPalette title="Text Colors" colors={textColors} isDark={isDark} />
|
|
306
293
|
</section>
|
|
307
294
|
</div>
|
|
308
295
|
);
|
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
color: var(--atomix-primary-text);
|
|
4
4
|
background-color: var(--atomix-brand-bg-subtle);
|
|
5
5
|
min-height: 100vh;
|
|
6
|
-
transition:
|
|
6
|
+
transition:
|
|
7
|
+
background-color 0.3s,
|
|
8
|
+
color 0.3s;
|
|
7
9
|
|
|
8
10
|
.section-description {
|
|
9
11
|
max-width: 800px;
|
|
10
12
|
}
|
|
11
13
|
}
|
|
12
14
|
|
|
13
|
-
|
|
14
15
|
.spacing-grid {
|
|
15
16
|
display: grid;
|
|
16
17
|
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
@@ -18,7 +19,6 @@
|
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
.spacing-example {
|
|
21
|
-
|
|
22
22
|
.spacing-visual {
|
|
23
23
|
width: 100%;
|
|
24
24
|
background-color: var(--atomix-secondary-bg-subtle);
|
|
@@ -44,7 +44,9 @@
|
|
|
44
44
|
height: 100%;
|
|
45
45
|
background-color: var(--atomix-brand-bg);
|
|
46
46
|
border-radius: 3px;
|
|
47
|
-
transition:
|
|
47
|
+
transition:
|
|
48
|
+
width 0.3s ease-out,
|
|
49
|
+
background-color 0.3s ease-in-out;
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
}
|
|
@@ -57,4 +59,4 @@
|
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
|
-
}
|
|
62
|
+
}
|