@shohojdhara/atomix 0.3.3 → 0.3.5
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/README.md +46 -28
- package/dist/atomix.css +15 -9
- package/dist/atomix.css.map +1 -0
- package/dist/atomix.min.css +15108 -11
- package/dist/atomix.min.css.map +1 -0
- package/dist/charts.d.ts +1929 -0
- package/dist/charts.js +6482 -0
- package/dist/charts.js.map +1 -0
- package/dist/core.d.ts +1289 -0
- package/dist/core.js +3357 -0
- package/dist/core.js.map +1 -0
- package/dist/forms.d.ts +1085 -0
- package/dist/forms.js +2450 -0
- package/dist/forms.js.map +1 -0
- package/dist/heavy.d.ts +636 -0
- package/dist/heavy.js +4550 -0
- package/dist/heavy.js.map +1 -0
- package/dist/index.d.ts +5196 -4618
- package/dist/index.esm.js +4240 -2776
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +4057 -2571
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/layout.d.ts +300 -0
- package/dist/layout.js +336 -0
- package/dist/layout.js.map +1 -0
- package/dist/theme.d.ts +1992 -0
- package/dist/theme.js +5348 -0
- package/dist/theme.js.map +1 -0
- package/package.json +63 -68
- package/scripts/atomix-cli.js +879 -15
- package/scripts/cli/__tests__/cli-commands.test.js +204 -0
- package/scripts/cli/__tests__/utils.test.js +201 -0
- package/scripts/cli/__tests__/vitest.config.js +26 -0
- package/scripts/cli/interactive-init.js +37 -45
- package/scripts/cli/theme-bridge.js +129 -0
- package/scripts/cli/token-manager.js +32 -7
- package/scripts/cli/utils.js +347 -0
- package/scripts/sync-theme-config.js +22 -22
- package/src/components/Accordion/Accordion.tsx +5 -54
- package/src/components/Accordion/index.ts +1 -1
- package/src/components/Avatar/Avatar.tsx +3 -3
- package/src/components/Badge/Badge.tsx +3 -3
- package/src/components/Breadcrumb/Breadcrumb.tsx +3 -3
- package/src/components/Button/Button.tsx +36 -1
- package/src/components/Card/ElevationCard.tsx +1 -1
- package/src/components/Chart/AnimatedChart.tsx +19 -17
- package/src/components/Chart/AreaChart.tsx +5 -1
- package/src/components/Chart/BarChart.tsx +1 -0
- package/src/components/Chart/BubbleChart.tsx +6 -5
- package/src/components/Chart/ChartToolbar.tsx +1 -0
- package/src/components/Chart/FunnelChart.tsx +1 -1
- package/src/components/Chart/RadarChart.tsx +19 -12
- package/src/components/Chart/ScatterChart.tsx +3 -3
- package/src/components/Chart/TreemapChart.tsx +2 -1
- package/src/components/Chart/WaterfallChart.tsx +0 -1
- package/src/components/Chart/types.ts +12 -2
- package/src/components/Chart/utils.ts +4 -3
- package/src/components/DataTable/DataTable.tsx +3 -3
- package/src/components/Dropdown/Dropdown.tsx +12 -9
- package/src/components/Footer/FooterSection.tsx +3 -3
- package/src/components/Form/Checkbox.tsx +3 -3
- package/src/components/Form/Input.tsx +4 -2
- package/src/components/Form/Radio.tsx +3 -3
- package/src/components/Form/Select.tsx +3 -3
- package/src/components/Form/Textarea.tsx +4 -2
- package/src/components/List/List.stories.tsx +3 -3
- package/src/components/List/List.tsx +3 -3
- package/src/components/List/ListGroup.tsx +3 -1
- package/src/components/Modal/Modal.tsx +3 -3
- package/src/components/Navigation/Menu/MegaMenu.tsx +9 -3
- package/src/components/Navigation/Menu/Menu.tsx +9 -3
- package/src/components/Pagination/Pagination.tsx +6 -5
- package/src/components/PhotoViewer/PhotoViewerImage.tsx +2 -2
- package/src/components/Popover/Popover.tsx +4 -4
- package/src/components/Progress/Progress.tsx +6 -2
- package/src/components/Rating/Rating.tsx +5 -2
- package/src/components/Slider/Slider.tsx +10 -9
- package/src/components/Spinner/Spinner.tsx +3 -3
- package/src/components/Tabs/Tabs.tsx +3 -3
- package/src/components/Tooltip/Tooltip.tsx +3 -3
- package/src/components/index.ts +5 -2
- package/src/layouts/MasonryGrid/MasonryGrid.tsx +2 -2
- package/src/lib/composables/useChartPerformance.ts +102 -78
- package/src/lib/composables/useChartScale.ts +10 -0
- package/src/lib/composables/useHero.ts +9 -2
- package/src/lib/composables/useHeroBackgroundSlider.ts +5 -3
- package/src/lib/composables/useSideMenu.ts +1 -0
- package/src/lib/composables/useVideoPlayer.ts +3 -2
- package/src/lib/config/index.ts +275 -0
- package/src/lib/config/loader.ts +147 -0
- package/src/lib/hooks/index.ts +0 -1
- package/src/lib/hooks/useComponentCustomization.ts +10 -14
- package/src/lib/hooks/usePerformanceMonitor.ts +149 -0
- package/src/lib/index.ts +1 -0
- package/src/lib/patterns/index.ts +2 -2
- package/src/lib/patterns/slots.tsx +2 -2
- package/src/lib/theme/composeTheme.ts +1 -6
- package/src/lib/theme/config/index.ts +1 -1
- package/src/lib/theme/config/loader.ts +75 -41
- package/src/lib/theme/config/types.ts +21 -7
- package/src/lib/theme/config/validator.ts +1 -1
- package/src/lib/theme/constants.ts +12 -2
- package/src/lib/theme/core/ThemeEngine.ts +8 -0
- package/src/lib/theme/core/ThemeValidator.ts +5 -2
- package/src/lib/theme/createTheme.ts +0 -1
- package/src/lib/theme/createThemeFromConfig.ts +132 -0
- package/src/lib/theme/devtools/CLI.ts +161 -76
- package/src/lib/theme/devtools/Comparator.tsx +343 -0
- package/src/lib/theme/devtools/IMPROVEMENTS.md +429 -0
- package/src/lib/theme/devtools/Inspector.tsx +22 -7
- package/src/lib/theme/devtools/LiveEditor.tsx +399 -0
- package/src/lib/theme/devtools/README.md +433 -0
- package/src/lib/theme/devtools/index.ts +12 -11
- package/src/lib/theme/generateCSSVariables.ts +80 -39
- package/src/lib/theme/i18n/rtl.ts +2 -1
- package/src/lib/theme/index.ts +18 -2
- package/src/lib/theme/runtime/ThemeApplicator.ts +28 -11
- package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +3 -3
- package/src/lib/theme/runtime/ThemeManager.test.ts +17 -1
- package/src/lib/theme/runtime/ThemeManager.ts +11 -7
- package/src/lib/theme/types.ts +42 -43
- package/src/lib/theme-tools.ts +8 -68
- package/src/lib/types/components.ts +252 -109
- package/src/lib/types/partProps.ts +0 -16
- package/src/lib/utils/fontPreloader.ts +148 -0
- package/src/lib/utils/index.ts +11 -0
- package/src/lib/utils/memoryMonitor.ts +189 -0
- package/src/styles/01-settings/_settings.fonts.scss +2 -5
- package/src/styles/01-settings/_settings.navbar.scss +1 -1
- package/src/styles/03-generic/_generated-root.css +26 -0
- package/src/styles/06-components/_components.navbar.scss +6 -5
- package/src/themes/README.md +1 -2
- package/src/themes/themes.config.js +30 -181
- package/dist/themes/applemix.css +0 -16576
- package/dist/themes/applemix.css.map +0 -1
- package/dist/themes/applemix.min.css +0 -73
- package/dist/themes/boomdevs.css +0 -16007
- package/dist/themes/boomdevs.css.map +0 -1
- package/dist/themes/boomdevs.min.css +0 -406
- package/dist/themes/esrar.css +0 -18424
- package/dist/themes/esrar.css.map +0 -1
- package/dist/themes/esrar.min.css +0 -221
- package/dist/themes/flashtrade.css +0 -17596
- package/dist/themes/flashtrade.css.map +0 -1
- package/dist/themes/flashtrade.min.css +0 -196
- package/dist/themes/mashroom.css +0 -31082
- package/dist/themes/mashroom.css.map +0 -1
- package/dist/themes/mashroom.min.css +0 -450
- package/dist/themes/shaj-default.css +0 -17200
- package/dist/themes/shaj-default.css.map +0 -1
- package/dist/themes/shaj-default.min.css +0 -502
- package/scripts/build-themes.js +0 -208
- package/src/components/AtomixGlass/atomixGLass.old.tsx +0 -1263
- package/src/lib/theme/__tests__/ThemeBuilder.test.ts +0 -223
- package/src/lib/theme/builders/ThemeBuilder.ts +0 -372
- package/src/lib/theme/errors.test.ts +0 -207
- package/src/lib/theme/generators/CSSGenerator.ts +0 -311
- package/src/lib/theme/generators/ConfigGenerator.ts +0 -287
- package/src/lib/theme/generators/TypeGenerator.ts +0 -228
- package/src/lib/theme/generators/index.ts +0 -21
- package/src/lib/theme/monitoring/ThemeAnalytics.ts +0 -409
- package/src/lib/theme/monitoring/index.ts +0 -17
- package/src/lib/theme/overrides/ComponentOverrides.ts +0 -243
- package/src/lib/theme/overrides/index.ts +0 -15
- package/src/lib/theme/whitelabel/WhiteLabelManager.ts +0 -364
- package/src/lib/theme/whitelabel/index.ts +0 -13
- package/src/themes/THEME_CHECKLIST.md +0 -74
- package/src/themes/applemix/01-settings/_index.scss +0 -24
- package/src/themes/applemix/01-settings/_settings.animations.scss +0 -0
- package/src/themes/applemix/01-settings/_settings.background.scss +0 -6
- package/src/themes/applemix/01-settings/_settings.colors.scss +0 -75
- package/src/themes/applemix/01-settings/_settings.config.scss +0 -15
- package/src/themes/applemix/01-settings/_settings.typography.scss +0 -30
- package/src/themes/applemix/02-tools/_index.scss +0 -4
- package/src/themes/applemix/03-generic/_index.scss +0 -7
- package/src/themes/applemix/04-elements/_index.scss +0 -7
- package/src/themes/applemix/05-objects/_index.scss +0 -7
- package/src/themes/applemix/06-components/_index.scss +0 -15
- package/src/themes/applemix/99-utilities/_index.scss +0 -7
- package/src/themes/applemix/README.md +0 -378
- package/src/themes/applemix/index.scss +0 -33
- package/src/themes/boomdevs/01-settings/_index.scss +0 -38
- package/src/themes/boomdevs/01-settings/_settings.accordion.scss +0 -12
- package/src/themes/boomdevs/01-settings/_settings.animations.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.avatar.scss +0 -9
- package/src/themes/boomdevs/01-settings/_settings.badge.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.border-radius.scss +0 -16
- package/src/themes/boomdevs/01-settings/_settings.border.scss +0 -10
- package/src/themes/boomdevs/01-settings/_settings.box-shadow.scss +0 -14
- package/src/themes/boomdevs/01-settings/_settings.breadcrumb.scss +0 -13
- package/src/themes/boomdevs/01-settings/_settings.breakpoints.scss +0 -15
- package/src/themes/boomdevs/01-settings/_settings.button.scss +0 -9
- package/src/themes/boomdevs/01-settings/_settings.callout.scss +0 -9
- package/src/themes/boomdevs/01-settings/_settings.card.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.checkbox.scss +0 -9
- package/src/themes/boomdevs/01-settings/_settings.colors.scss +0 -145
- package/src/themes/boomdevs/01-settings/_settings.dropdown.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.grid.scss +0 -16
- package/src/themes/boomdevs/01-settings/_settings.input.scss +0 -14
- package/src/themes/boomdevs/01-settings/_settings.link.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.list.scss +0 -10
- package/src/themes/boomdevs/01-settings/_settings.modal.scss +0 -16
- package/src/themes/boomdevs/01-settings/_settings.navbar.scss +0 -16
- package/src/themes/boomdevs/01-settings/_settings.pagination.scss +0 -13
- package/src/themes/boomdevs/01-settings/_settings.progress.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.rating.scss +0 -10
- package/src/themes/boomdevs/01-settings/_settings.spacing.scss +0 -33
- package/src/themes/boomdevs/01-settings/_settings.spinner.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.steps.scss +0 -12
- package/src/themes/boomdevs/01-settings/_settings.tabs.scss +0 -12
- package/src/themes/boomdevs/01-settings/_settings.todo.scss +0 -15
- package/src/themes/boomdevs/01-settings/_settings.toggle.scss +0 -14
- package/src/themes/boomdevs/01-settings/_settings.tooltip.scss +0 -13
- package/src/themes/boomdevs/01-settings/_settings.typography.scss +0 -58
- package/src/themes/boomdevs/01-settings/_settings.video-player.scss +0 -12
- package/src/themes/boomdevs/02-tools/_index.scss +0 -7
- package/src/themes/boomdevs/03-generic/_index.scss +0 -7
- package/src/themes/boomdevs/04-elements/_index.scss +0 -7
- package/src/themes/boomdevs/05-objects/_index.scss +0 -7
- package/src/themes/boomdevs/06-components/_components.button.scss +0 -11
- package/src/themes/boomdevs/06-components/_index.scss +0 -11
- package/src/themes/boomdevs/99-utilities/_index.scss +0 -7
- package/src/themes/boomdevs/index.scss +0 -26
- package/src/themes/esrar/01-settings/_index.scss +0 -15
- package/src/themes/esrar/01-settings/_settings.colors.scss +0 -91
- package/src/themes/esrar/02-tools/_index.scss +0 -8
- package/src/themes/esrar/02-tools/_tools.animations.scss +0 -342
- package/src/themes/esrar/06-components/_components.accordion.scss +0 -49
- package/src/themes/esrar/06-components/_components.avatar-group.scss +0 -14
- package/src/themes/esrar/06-components/_components.avatar.scss +0 -61
- package/src/themes/esrar/06-components/_components.badge.scss +0 -117
- package/src/themes/esrar/06-components/_components.breadcrumb.scss +0 -65
- package/src/themes/esrar/06-components/_components.btn-group.scss +0 -19
- package/src/themes/esrar/06-components/_components.button.scss +0 -224
- package/src/themes/esrar/06-components/_components.callout.scss +0 -51
- package/src/themes/esrar/06-components/_components.card.scss +0 -134
- package/src/themes/esrar/06-components/_components.chart.scss +0 -24
- package/src/themes/esrar/06-components/_components.checkbox-group.scss +0 -26
- package/src/themes/esrar/06-components/_components.checkbox.scss +0 -71
- package/src/themes/esrar/06-components/_components.color-mode-toggle.scss +0 -29
- package/src/themes/esrar/06-components/_components.countdown.scss +0 -67
- package/src/themes/esrar/06-components/_components.data-table.scss +0 -22
- package/src/themes/esrar/06-components/_components.datepicker.scss +0 -20
- package/src/themes/esrar/06-components/_components.dropdown.scss +0 -272
- package/src/themes/esrar/06-components/_components.edge-panel.scss +0 -10
- package/src/themes/esrar/06-components/_components.form-group.scss +0 -15
- package/src/themes/esrar/06-components/_components.form.scss +0 -66
- package/src/themes/esrar/06-components/_components.hero.scss +0 -251
- package/src/themes/esrar/06-components/_components.icon.scss +0 -33
- package/src/themes/esrar/06-components/_components.image-gallery.scss +0 -29
- package/src/themes/esrar/06-components/_components.input.scss +0 -91
- package/src/themes/esrar/06-components/_components.list-group.scss +0 -26
- package/src/themes/esrar/06-components/_components.modal.scss +0 -148
- package/src/themes/esrar/06-components/_components.notification.scss +0 -80
- package/src/themes/esrar/06-components/_components.pagination.scss +0 -84
- package/src/themes/esrar/06-components/_components.popover.scss +0 -10
- package/src/themes/esrar/06-components/_components.progress.scss +0 -64
- package/src/themes/esrar/06-components/_components.rating.scss +0 -26
- package/src/themes/esrar/06-components/_components.skeleton.scss +0 -15
- package/src/themes/esrar/06-components/_components.slider.scss +0 -90
- package/src/themes/esrar/06-components/_components.spinner.scss +0 -71
- package/src/themes/esrar/06-components/_components.steps.scss +0 -76
- package/src/themes/esrar/06-components/_components.tab.scss +0 -58
- package/src/themes/esrar/06-components/_components.tag.scss +0 -21
- package/src/themes/esrar/06-components/_components.timeline.scss +0 -19
- package/src/themes/esrar/06-components/_components.toast.scss +0 -91
- package/src/themes/esrar/06-components/_components.toggle.scss +0 -74
- package/src/themes/esrar/06-components/_components.tooltip.scss +0 -45
- package/src/themes/esrar/06-components/_components.upload.scss +0 -102
- package/src/themes/esrar/06-components/_index.scss +0 -42
- package/src/themes/esrar/index.scss +0 -30
- package/src/themes/flashtrade/01-settings/_index.scss +0 -19
- package/src/themes/flashtrade/01-settings/_settings.animations.scss +0 -11
- package/src/themes/flashtrade/01-settings/_settings.background.scss +0 -9
- package/src/themes/flashtrade/01-settings/_settings.colors.scss +0 -79
- package/src/themes/flashtrade/01-settings/_settings.config.scss +0 -16
- package/src/themes/flashtrade/01-settings/_settings.typography.scss +0 -35
- package/src/themes/flashtrade/02-tools/_index.scss +0 -8
- package/src/themes/flashtrade/03-generic/_index.scss +0 -8
- package/src/themes/flashtrade/04-elements/_index.scss +0 -12
- package/src/themes/flashtrade/05-objects/_index.scss +0 -8
- package/src/themes/flashtrade/06-components/_components.badge.scss +0 -156
- package/src/themes/flashtrade/06-components/_components.button.scss +0 -135
- package/src/themes/flashtrade/06-components/_components.card.scss +0 -214
- package/src/themes/flashtrade/06-components/_components.navbar.scss +0 -227
- package/src/themes/flashtrade/06-components/_index.scss +0 -13
- package/src/themes/flashtrade/99-utilities/_index.scss +0 -9
- package/src/themes/flashtrade/99-utilities/_utilities.trading.scss +0 -187
- package/src/themes/flashtrade/README.md +0 -386
- package/src/themes/flashtrade/demo.html +0 -272
- package/src/themes/flashtrade/index.scss +0 -36
- package/src/themes/mashroom/01-settings/_index.scss +0 -69
- package/src/themes/mashroom/01-settings/_settings.accordion.scss +0 -32
- package/src/themes/mashroom/01-settings/_settings.animations.scss +0 -26
- package/src/themes/mashroom/01-settings/_settings.avatar-group.scss +0 -22
- package/src/themes/mashroom/01-settings/_settings.avatar.scss +0 -57
- package/src/themes/mashroom/01-settings/_settings.badge.scss +0 -19
- package/src/themes/mashroom/01-settings/_settings.border-radius.scss +0 -24
- package/src/themes/mashroom/01-settings/_settings.border.scss +0 -14
- package/src/themes/mashroom/01-settings/_settings.box-shadow.scss +0 -40
- package/src/themes/mashroom/01-settings/_settings.breadcrumb.scss +0 -0
- package/src/themes/mashroom/01-settings/_settings.breakpoints.scss +0 -17
- package/src/themes/mashroom/01-settings/_settings.btn-group.scss +0 -5
- package/src/themes/mashroom/01-settings/_settings.button.scss +0 -50
- package/src/themes/mashroom/01-settings/_settings.callout.scss +0 -81
- package/src/themes/mashroom/01-settings/_settings.card.scss +0 -52
- package/src/themes/mashroom/01-settings/_settings.checkbox-group.scss +0 -5
- package/src/themes/mashroom/01-settings/_settings.checkbox.scss +0 -23
- package/src/themes/mashroom/01-settings/_settings.color-mode.scss +0 -7
- package/src/themes/mashroom/01-settings/_settings.colors.scss +0 -180
- package/src/themes/mashroom/01-settings/_settings.config.scss +0 -4
- package/src/themes/mashroom/01-settings/_settings.countdown.scss +0 -20
- package/src/themes/mashroom/01-settings/_settings.data-table.scss +0 -56
- package/src/themes/mashroom/01-settings/_settings.datepicker.scss +0 -45
- package/src/themes/mashroom/01-settings/_settings.design-tokens.scss +0 -3
- package/src/themes/mashroom/01-settings/_settings.dropdown.scss +0 -45
- package/src/themes/mashroom/01-settings/_settings.edge-panel.scss +0 -24
- package/src/themes/mashroom/01-settings/_settings.fonts.scss +0 -8
- package/src/themes/mashroom/01-settings/_settings.form-group.scss +0 -14
- package/src/themes/mashroom/01-settings/_settings.form.scss +0 -6
- package/src/themes/mashroom/01-settings/_settings.grid.scss +0 -23
- package/src/themes/mashroom/01-settings/_settings.hero.scss +0 -41
- package/src/themes/mashroom/01-settings/_settings.input.scss +0 -51
- package/src/themes/mashroom/01-settings/_settings.link.scss +0 -13
- package/src/themes/mashroom/01-settings/_settings.list-group.scss +0 -16
- package/src/themes/mashroom/01-settings/_settings.list.scss +0 -13
- package/src/themes/mashroom/01-settings/_settings.masonry-grid.scss +0 -23
- package/src/themes/mashroom/01-settings/_settings.menu.scss +0 -50
- package/src/themes/mashroom/01-settings/_settings.messages.scss +0 -98
- package/src/themes/mashroom/01-settings/_settings.modal.scss +0 -41
- package/src/themes/mashroom/01-settings/_settings.nav.scss +0 -20
- package/src/themes/mashroom/01-settings/_settings.navbar.scss +0 -54
- package/src/themes/mashroom/01-settings/_settings.pagination.scss +0 -30
- package/src/themes/mashroom/01-settings/_settings.photoviewer.scss +0 -45
- package/src/themes/mashroom/01-settings/_settings.popover.scss +0 -20
- package/src/themes/mashroom/01-settings/_settings.position.scss +0 -9
- package/src/themes/mashroom/01-settings/_settings.progress.scss +0 -17
- package/src/themes/mashroom/01-settings/_settings.rating.scss +0 -11
- package/src/themes/mashroom/01-settings/_settings.river.scss +0 -50
- package/src/themes/mashroom/01-settings/_settings.sectionintro.scss +0 -31
- package/src/themes/mashroom/01-settings/_settings.select.scss +0 -47
- package/src/themes/mashroom/01-settings/_settings.side-menu.scss +0 -79
- package/src/themes/mashroom/01-settings/_settings.skeleton.scss +0 -24
- package/src/themes/mashroom/01-settings/_settings.spacing.scss +0 -66
- package/src/themes/mashroom/01-settings/_settings.spinner.scss +0 -34
- package/src/themes/mashroom/01-settings/_settings.steps.scss +0 -33
- package/src/themes/mashroom/01-settings/_settings.tabs.scss +0 -33
- package/src/themes/mashroom/01-settings/_settings.testimonials.scss +0 -24
- package/src/themes/mashroom/01-settings/_settings.todo.scss +0 -52
- package/src/themes/mashroom/01-settings/_settings.toggle.scss +0 -49
- package/src/themes/mashroom/01-settings/_settings.tooltip.scss +0 -20
- package/src/themes/mashroom/01-settings/_settings.typography.scss +0 -95
- package/src/themes/mashroom/01-settings/_settings.upload.scss +0 -96
- package/src/themes/mashroom/01-settings/_settings.z-layers.scss +0 -19
- package/src/themes/mashroom/02-tools/_index.scss +0 -8
- package/src/themes/mashroom/02-tools/_tools.psychedelic-gradients.scss +0 -78
- package/src/themes/mashroom/02-tools/_tools.trippy-effects.scss +0 -114
- package/src/themes/mashroom/03-generic/_index.scss +0 -6
- package/src/themes/mashroom/04-elements/_index.scss +0 -6
- package/src/themes/mashroom/05-objects/_index.scss +0 -6
- package/src/themes/mashroom/06-components/_components.accordion.scss +0 -187
- package/src/themes/mashroom/06-components/_components.avatar-group.scss +0 -276
- package/src/themes/mashroom/06-components/_components.avatar.scss +0 -114
- package/src/themes/mashroom/06-components/_components.badge.scss +0 -152
- package/src/themes/mashroom/06-components/_components.breadcrumb.scss +0 -162
- package/src/themes/mashroom/06-components/_components.btn-group.scss +0 -404
- package/src/themes/mashroom/06-components/_components.button.scss +0 -160
- package/src/themes/mashroom/06-components/_components.callout.scss +0 -140
- package/src/themes/mashroom/06-components/_components.card.scss +0 -225
- package/src/themes/mashroom/06-components/_components.checkbox.scss +0 -186
- package/src/themes/mashroom/06-components/_components.color-mode-toggle.scss +0 -308
- package/src/themes/mashroom/06-components/_components.countdown.scss +0 -402
- package/src/themes/mashroom/06-components/_components.data-table.scss +0 -354
- package/src/themes/mashroom/06-components/_components.datepicker.scss +0 -349
- package/src/themes/mashroom/06-components/_components.dropdown.scss +0 -334
- package/src/themes/mashroom/06-components/_components.edge-panel.scss +0 -413
- package/src/themes/mashroom/06-components/_components.form-group.scss +0 -433
- package/src/themes/mashroom/06-components/_components.form.scss +0 -358
- package/src/themes/mashroom/06-components/_components.hero.scss +0 -151
- package/src/themes/mashroom/06-components/_components.input.scss +0 -147
- package/src/themes/mashroom/06-components/_components.list-group.scss +0 -456
- package/src/themes/mashroom/06-components/_components.list.scss +0 -145
- package/src/themes/mashroom/06-components/_components.menu.scss +0 -497
- package/src/themes/mashroom/06-components/_components.messages.scss +0 -277
- package/src/themes/mashroom/06-components/_components.modal.scss +0 -264
- package/src/themes/mashroom/06-components/_components.nav.scss +0 -181
- package/src/themes/mashroom/06-components/_components.navbar.scss +0 -538
- package/src/themes/mashroom/06-components/_components.pagination.scss +0 -400
- package/src/themes/mashroom/06-components/_components.photoviewer.scss +0 -498
- package/src/themes/mashroom/06-components/_components.popover.scss +0 -383
- package/src/themes/mashroom/06-components/_components.product-review.scss +0 -408
- package/src/themes/mashroom/06-components/_components.progress.scss +0 -249
- package/src/themes/mashroom/06-components/_components.rating.scss +0 -300
- package/src/themes/mashroom/06-components/_components.river.scss +0 -570
- package/src/themes/mashroom/06-components/_components.sectionintro.scss +0 -546
- package/src/themes/mashroom/06-components/_components.select.scss +0 -455
- package/src/themes/mashroom/06-components/_components.side-menu.scss +0 -635
- package/src/themes/mashroom/06-components/_components.skeleton.scss +0 -447
- package/src/themes/mashroom/06-components/_components.slider.scss +0 -414
- package/src/themes/mashroom/06-components/_components.spinner.scss +0 -198
- package/src/themes/mashroom/06-components/_components.steps.scss +0 -350
- package/src/themes/mashroom/06-components/_components.tabs.scss +0 -269
- package/src/themes/mashroom/06-components/_components.testimonials.scss +0 -561
- package/src/themes/mashroom/06-components/_components.toggle.scss +0 -231
- package/src/themes/mashroom/06-components/_components.tooltip.scss +0 -167
- package/src/themes/mashroom/06-components/_components.upload.scss +0 -537
- package/src/themes/mashroom/06-components/_components.video-player.scss +0 -560
- package/src/themes/mashroom/06-components/_index.scss +0 -55
- package/src/themes/mashroom/99-utilities/_index.scss +0 -6
- package/src/themes/mashroom/index.scss +0 -26
- package/src/themes/shaj-default/01-settings/_index.scss +0 -69
- package/src/themes/shaj-default/01-settings/_settings.accordion.scss +0 -38
- package/src/themes/shaj-default/01-settings/_settings.animations.scss +0 -32
- package/src/themes/shaj-default/01-settings/_settings.avatar-group.scss +0 -28
- package/src/themes/shaj-default/01-settings/_settings.avatar.scss +0 -63
- package/src/themes/shaj-default/01-settings/_settings.badge.scss +0 -25
- package/src/themes/shaj-default/01-settings/_settings.border-radius.scss +0 -24
- package/src/themes/shaj-default/01-settings/_settings.border.scss +0 -20
- package/src/themes/shaj-default/01-settings/_settings.box-shadow.scss +0 -46
- package/src/themes/shaj-default/01-settings/_settings.breadcrumb.scss +0 -0
- package/src/themes/shaj-default/01-settings/_settings.breakpoints.scss +0 -23
- package/src/themes/shaj-default/01-settings/_settings.btn-group.scss +0 -11
- package/src/themes/shaj-default/01-settings/_settings.button.scss +0 -56
- package/src/themes/shaj-default/01-settings/_settings.callout.scss +0 -87
- package/src/themes/shaj-default/01-settings/_settings.card.scss +0 -52
- package/src/themes/shaj-default/01-settings/_settings.checkbox-group.scss +0 -11
- package/src/themes/shaj-default/01-settings/_settings.checkbox.scss +0 -29
- package/src/themes/shaj-default/01-settings/_settings.color-mode.scss +0 -13
- package/src/themes/shaj-default/01-settings/_settings.colors.scss +0 -91
- package/src/themes/shaj-default/01-settings/_settings.config.scss +0 -4
- package/src/themes/shaj-default/01-settings/_settings.countdown.scss +0 -26
- package/src/themes/shaj-default/01-settings/_settings.data-table.scss +0 -62
- package/src/themes/shaj-default/01-settings/_settings.datepicker.scss +0 -51
- package/src/themes/shaj-default/01-settings/_settings.design-tokens.scss +0 -9
- package/src/themes/shaj-default/01-settings/_settings.dropdown.scss +0 -51
- package/src/themes/shaj-default/01-settings/_settings.edge-panel.scss +0 -30
- package/src/themes/shaj-default/01-settings/_settings.fonts.scss +0 -13
- package/src/themes/shaj-default/01-settings/_settings.form-group.scss +0 -20
- package/src/themes/shaj-default/01-settings/_settings.form.scss +0 -12
- package/src/themes/shaj-default/01-settings/_settings.grid.scss +0 -29
- package/src/themes/shaj-default/01-settings/_settings.hero.scss +0 -47
- package/src/themes/shaj-default/01-settings/_settings.input.scss +0 -57
- package/src/themes/shaj-default/01-settings/_settings.link.scss +0 -19
- package/src/themes/shaj-default/01-settings/_settings.list-group.scss +0 -22
- package/src/themes/shaj-default/01-settings/_settings.list.scss +0 -19
- package/src/themes/shaj-default/01-settings/_settings.masonry-grid.scss +0 -29
- package/src/themes/shaj-default/01-settings/_settings.menu.scss +0 -56
- package/src/themes/shaj-default/01-settings/_settings.messages.scss +0 -104
- package/src/themes/shaj-default/01-settings/_settings.modal.scss +0 -47
- package/src/themes/shaj-default/01-settings/_settings.nav.scss +0 -26
- package/src/themes/shaj-default/01-settings/_settings.navbar.scss +0 -60
- package/src/themes/shaj-default/01-settings/_settings.pagination.scss +0 -36
- package/src/themes/shaj-default/01-settings/_settings.photoviewer.scss +0 -51
- package/src/themes/shaj-default/01-settings/_settings.popover.scss +0 -26
- package/src/themes/shaj-default/01-settings/_settings.position.scss +0 -15
- package/src/themes/shaj-default/01-settings/_settings.progress.scss +0 -23
- package/src/themes/shaj-default/01-settings/_settings.rating.scss +0 -17
- package/src/themes/shaj-default/01-settings/_settings.river.scss +0 -56
- package/src/themes/shaj-default/01-settings/_settings.sectionintro.scss +0 -37
- package/src/themes/shaj-default/01-settings/_settings.select.scss +0 -53
- package/src/themes/shaj-default/01-settings/_settings.side-menu.scss +0 -85
- package/src/themes/shaj-default/01-settings/_settings.skeleton.scss +0 -30
- package/src/themes/shaj-default/01-settings/_settings.spacing.scss +0 -72
- package/src/themes/shaj-default/01-settings/_settings.spinner.scss +0 -24
- package/src/themes/shaj-default/01-settings/_settings.steps.scss +0 -39
- package/src/themes/shaj-default/01-settings/_settings.tabs.scss +0 -39
- package/src/themes/shaj-default/01-settings/_settings.testimonials.scss +0 -30
- package/src/themes/shaj-default/01-settings/_settings.todo.scss +0 -58
- package/src/themes/shaj-default/01-settings/_settings.toggle.scss +0 -55
- package/src/themes/shaj-default/01-settings/_settings.tooltip.scss +0 -26
- package/src/themes/shaj-default/01-settings/_settings.typography.scss +0 -101
- package/src/themes/shaj-default/01-settings/_settings.upload.scss +0 -102
- package/src/themes/shaj-default/01-settings/_settings.z-layers.scss +0 -25
- package/src/themes/shaj-default/02-tools/_index.scss +0 -0
- package/src/themes/shaj-default/03-generic/_generic.root.scss +0 -0
- package/src/themes/shaj-default/03-generic/_index.scss +0 -2
- package/src/themes/shaj-default/04-elements/_index.scss +0 -0
- package/src/themes/shaj-default/05-objects/_index.scss +0 -0
- package/src/themes/shaj-default/06-components/_components.button.scss +0 -55
- package/src/themes/shaj-default/06-components/_components.card.scss +0 -57
- package/src/themes/shaj-default/06-components/_components.input.scss +0 -58
- package/src/themes/shaj-default/06-components/_components.navbar.scss +0 -99
- package/src/themes/shaj-default/06-components/_components.tooltip.scss +0 -0
- package/src/themes/shaj-default/06-components/_index.scss +0 -13
- package/src/themes/shaj-default/99-utilities/_index.scss +0 -0
- package/src/themes/shaj-default/index.scss +0 -25
- package/theme.config.ts +0 -360
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { forwardRef } from 'react';
|
|
1
|
+
import React, { forwardRef, memo } from 'react';
|
|
2
2
|
import { InputProps } from '../../lib/types/components';
|
|
3
3
|
import { useInput } from '../../lib/composables/useInput';
|
|
4
4
|
import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
@@ -6,7 +6,8 @@ import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
|
6
6
|
/**
|
|
7
7
|
* Input - A component for text input fields
|
|
8
8
|
*/
|
|
9
|
-
export const Input =
|
|
9
|
+
export const Input = memo(
|
|
10
|
+
forwardRef<HTMLInputElement, InputProps>(
|
|
10
11
|
(
|
|
11
12
|
{
|
|
12
13
|
type = 'text',
|
|
@@ -109,6 +110,7 @@ export const Input = forwardRef<HTMLInputElement, InputProps>(
|
|
|
109
110
|
|
|
110
111
|
return inputElement;
|
|
111
112
|
}
|
|
113
|
+
)
|
|
112
114
|
);
|
|
113
115
|
|
|
114
116
|
Input.displayName = 'Input';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { memo } from 'react';
|
|
2
2
|
import { RadioProps } from '../../lib/types/components';
|
|
3
3
|
import { useRadio } from '../../lib/composables/useRadio';
|
|
4
4
|
import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
@@ -6,7 +6,7 @@ import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
|
6
6
|
/**
|
|
7
7
|
* Radio - A component for radio button inputs
|
|
8
8
|
*/
|
|
9
|
-
export const Radio: React.FC<RadioProps> = ({
|
|
9
|
+
export const Radio: React.FC<RadioProps> = memo(({
|
|
10
10
|
label,
|
|
11
11
|
checked = false,
|
|
12
12
|
onChange,
|
|
@@ -77,7 +77,7 @@ export const Radio: React.FC<RadioProps> = ({
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
return radioContent;
|
|
80
|
-
};
|
|
80
|
+
});
|
|
81
81
|
|
|
82
82
|
export type { RadioProps };
|
|
83
83
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useRef, useEffect, useState } from 'react';
|
|
1
|
+
import React, { useRef, useEffect, useState, memo } from 'react';
|
|
2
2
|
import { SelectProps } from '../../lib/types/components';
|
|
3
3
|
import { useSelect } from '../../lib/composables';
|
|
4
4
|
import { SELECT } from '../../lib/constants/components';
|
|
@@ -7,7 +7,7 @@ import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
|
7
7
|
/**
|
|
8
8
|
* Select - A component for dropdown selection
|
|
9
9
|
*/
|
|
10
|
-
export const Select: React.FC<SelectProps> = ({
|
|
10
|
+
export const Select: React.FC<SelectProps> = memo(({
|
|
11
11
|
options = [],
|
|
12
12
|
value,
|
|
13
13
|
onChange,
|
|
@@ -204,7 +204,7 @@ export const Select: React.FC<SelectProps> = ({
|
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
return selectContent;
|
|
207
|
-
};
|
|
207
|
+
});
|
|
208
208
|
|
|
209
209
|
export type { SelectProps };
|
|
210
210
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { forwardRef } from 'react';
|
|
1
|
+
import React, { forwardRef, memo } from 'react';
|
|
2
2
|
import { TextareaProps } from '../../lib/types/components';
|
|
3
3
|
import { useTextarea } from '../../lib/composables/useTextarea';
|
|
4
4
|
import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
@@ -6,7 +6,8 @@ import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
|
6
6
|
/**
|
|
7
7
|
* Textarea - A component for multiline text input
|
|
8
8
|
*/
|
|
9
|
-
export const Textarea =
|
|
9
|
+
export const Textarea = memo(
|
|
10
|
+
forwardRef<HTMLTextAreaElement, TextareaProps>(
|
|
10
11
|
(
|
|
11
12
|
{
|
|
12
13
|
value,
|
|
@@ -100,6 +101,7 @@ export const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(
|
|
|
100
101
|
|
|
101
102
|
return textareaElement;
|
|
102
103
|
}
|
|
104
|
+
)
|
|
103
105
|
);
|
|
104
106
|
|
|
105
107
|
Textarea.displayName = 'Textarea';
|
|
@@ -44,8 +44,8 @@ const ListItems = ({ variant }: { variant: string }) => (
|
|
|
44
44
|
</>
|
|
45
45
|
);
|
|
46
46
|
|
|
47
|
-
const createListSection = (title: string, variant: string) => (
|
|
48
|
-
<div style={sectionStyle}>
|
|
47
|
+
const createListSection = (title: string, variant: string, key?: string) => (
|
|
48
|
+
<div key={key} style={sectionStyle}>
|
|
49
49
|
<h3 style={titleStyle}>{title}</h3>
|
|
50
50
|
<List variant={variant as any}>
|
|
51
51
|
<ListItems variant={variant} />
|
|
@@ -67,7 +67,7 @@ export const VariantsShowcase: Story = {
|
|
|
67
67
|
<div className="u-d-flex u-flex-column u-gap-8">
|
|
68
68
|
{['Default', 'Dash', 'Number', 'Text'].map((title, index) => {
|
|
69
69
|
const variant = index === 0 ? 'default' : title.toLowerCase();
|
|
70
|
-
return createListSection(`${title} List`, variant);
|
|
70
|
+
return createListSection(`${title} List`, variant, variant);
|
|
71
71
|
})}
|
|
72
72
|
</div>
|
|
73
73
|
);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { memo } from 'react';
|
|
2
2
|
import { ListProps } from '../../lib/types/components';
|
|
3
3
|
import { LIST } from '../../lib/constants/components';
|
|
4
4
|
|
|
5
|
-
export const List: React.FC<ListProps> = ({
|
|
5
|
+
export const List: React.FC<ListProps> = memo(({
|
|
6
6
|
children,
|
|
7
7
|
variant = 'default',
|
|
8
8
|
className = '',
|
|
@@ -27,7 +27,7 @@ export const List: React.FC<ListProps> = ({
|
|
|
27
27
|
})}
|
|
28
28
|
</ListElement>
|
|
29
29
|
);
|
|
30
|
-
};
|
|
30
|
+
});
|
|
31
31
|
|
|
32
32
|
export type { ListProps };
|
|
33
33
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ListGroupProps } from '../../lib/types/components';
|
|
2
|
+
import { ListGroupProps as ListGroupPropsType } from '../../lib/types/components';
|
|
3
3
|
import { LIST_GROUP } from '../../lib/constants/components';
|
|
4
4
|
import { List } from './List';
|
|
5
5
|
|
|
6
|
+
export type ListGroupProps = ListGroupPropsType;
|
|
7
|
+
|
|
6
8
|
export const ListGroup: React.FC<ListGroupProps> = ({
|
|
7
9
|
children,
|
|
8
10
|
className = '',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useRef, useState, useCallback } from 'react';
|
|
1
|
+
import React, { useEffect, useRef, useState, useCallback, memo } from 'react';
|
|
2
2
|
import { ModalProps } from '../../lib/types/components';
|
|
3
3
|
import { MODAL } from '../../lib/constants/components';
|
|
4
4
|
import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
@@ -76,7 +76,7 @@ function useModal({
|
|
|
76
76
|
/**
|
|
77
77
|
* Modal component for displaying overlay content
|
|
78
78
|
*/
|
|
79
|
-
export const Modal: React.FC<ModalProps> = ({
|
|
79
|
+
export const Modal: React.FC<ModalProps> = memo(({
|
|
80
80
|
children,
|
|
81
81
|
isOpen = false,
|
|
82
82
|
onOpenChange,
|
|
@@ -213,7 +213,7 @@ export const Modal: React.FC<ModalProps> = ({
|
|
|
213
213
|
</div>
|
|
214
214
|
</div>
|
|
215
215
|
);
|
|
216
|
-
};
|
|
216
|
+
});
|
|
217
217
|
|
|
218
218
|
Modal.displayName = 'Modal';
|
|
219
219
|
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import { Icon } from '../../Icon/Icon';
|
|
8
8
|
import { mapIconName } from './Menu'; // Import the mapping function
|
|
9
9
|
|
|
10
|
-
export const MegaMenu
|
|
10
|
+
export const MegaMenu = forwardRef<HTMLDivElement, MegaMenuProps>(
|
|
11
11
|
({ children, className = '', style, disabled = false }, ref) => {
|
|
12
12
|
return (
|
|
13
13
|
<div ref={ref} className={`c-menu c-menu--mega ${className}`} style={style}>
|
|
@@ -31,7 +31,9 @@ export const MegaMenu: React.FC<MegaMenuProps> = forwardRef<HTMLDivElement, Mega
|
|
|
31
31
|
}
|
|
32
32
|
);
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
MegaMenu.displayName = 'MegaMenu';
|
|
35
|
+
|
|
36
|
+
export const MegaMenuColumn = forwardRef<
|
|
35
37
|
HTMLDivElement,
|
|
36
38
|
MegaMenuColumnProps
|
|
37
39
|
>(({ title, icon, children, width = 'auto', className = '', disabled = false }, ref) => {
|
|
@@ -80,7 +82,9 @@ export const MegaMenuColumn: React.FC<MegaMenuColumnProps> = forwardRef<
|
|
|
80
82
|
);
|
|
81
83
|
});
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
MegaMenuColumn.displayName = 'MegaMenuColumn';
|
|
86
|
+
|
|
87
|
+
export const MegaMenuLink = forwardRef<
|
|
84
88
|
HTMLAnchorElement,
|
|
85
89
|
MegaMenuLinkProps
|
|
86
90
|
>(({ href, children, className = '', disabled = false, onClick }, ref) => {
|
|
@@ -107,3 +111,5 @@ export const MegaMenuLink: React.FC<MegaMenuLinkProps> = forwardRef<
|
|
|
107
111
|
</a>
|
|
108
112
|
);
|
|
109
113
|
});
|
|
114
|
+
|
|
115
|
+
MegaMenuLink.displayName = 'MegaMenuLink';
|
|
@@ -2,7 +2,7 @@ import React, { forwardRef, ReactNode } from 'react';
|
|
|
2
2
|
import { MenuProps, MenuItemProps } from '../../../lib/types/components';
|
|
3
3
|
import { Icon } from '../../Icon/Icon';
|
|
4
4
|
|
|
5
|
-
export const Menu
|
|
5
|
+
export const Menu = forwardRef<HTMLDivElement, MenuProps>(
|
|
6
6
|
({ children, className = '', style, disabled = false }, ref) => {
|
|
7
7
|
return (
|
|
8
8
|
<div ref={ref} className={`c-menu ${className}`} style={style}>
|
|
@@ -24,6 +24,8 @@ export const Menu: React.FC<MenuProps> = forwardRef<HTMLDivElement, MenuProps>(
|
|
|
24
24
|
}
|
|
25
25
|
);
|
|
26
26
|
|
|
27
|
+
Menu.displayName = 'Menu';
|
|
28
|
+
|
|
27
29
|
export type { MenuProps, MenuItemProps, MenuDividerProps };
|
|
28
30
|
|
|
29
31
|
export default Menu;
|
|
@@ -35,7 +37,7 @@ interface MenuDividerProps {
|
|
|
35
37
|
className?: string;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
|
-
export const MenuItem
|
|
40
|
+
export const MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(
|
|
39
41
|
(
|
|
40
42
|
{ children, href = '#', icon, active = false, disabled = false, onClick, className = '' },
|
|
41
43
|
ref
|
|
@@ -83,6 +85,8 @@ export const MenuItem: React.FC<MenuItemProps> = forwardRef<HTMLLIElement, MenuI
|
|
|
83
85
|
}
|
|
84
86
|
);
|
|
85
87
|
|
|
88
|
+
MenuItem.displayName = 'MenuItem';
|
|
89
|
+
|
|
86
90
|
// Map icon-lux names to Phosphor icon names
|
|
87
91
|
export const mapIconName = (luxIconName: string): any => {
|
|
88
92
|
const iconMap: Record<string, any> = {
|
|
@@ -104,8 +108,10 @@ export const mapIconName = (luxIconName: string): any => {
|
|
|
104
108
|
return iconMap[luxIconName] || 'Circle'; // Default to Circle if no mapping found
|
|
105
109
|
};
|
|
106
110
|
|
|
107
|
-
export const MenuDivider
|
|
111
|
+
export const MenuDivider = forwardRef<HTMLLIElement, MenuDividerProps>(
|
|
108
112
|
({ className = '' }, ref) => {
|
|
109
113
|
return <li ref={ref} className={`c-menu__divider ${className}`} role="separator"></li>;
|
|
110
114
|
}
|
|
111
115
|
);
|
|
116
|
+
|
|
117
|
+
MenuDivider.displayName = 'MenuDivider';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { memo } from 'react';
|
|
2
2
|
import { PaginationProps } from '../../lib/types/components';
|
|
3
3
|
import { usePagination, DOTS } from '../../lib/composables/usePagination';
|
|
4
4
|
import { PAGINATION_DEFAULTS } from '../../lib/constants/components';
|
|
@@ -26,7 +26,7 @@ interface PaginationNavButtonProps {
|
|
|
26
26
|
/**
|
|
27
27
|
* PaginationNavButton component for rendering first, previous, next, and last buttons
|
|
28
28
|
*/
|
|
29
|
-
export const PaginationNavButton: React.FC<PaginationNavButtonProps> = ({
|
|
29
|
+
export const PaginationNavButton: React.FC<PaginationNavButtonProps> = memo(({
|
|
30
30
|
type,
|
|
31
31
|
onClick,
|
|
32
32
|
disabled,
|
|
@@ -47,12 +47,12 @@ export const PaginationNavButton: React.FC<PaginationNavButtonProps> = ({
|
|
|
47
47
|
<Icon name={iconName} size="sm" aria-hidden="true" />
|
|
48
48
|
</button>
|
|
49
49
|
</li>
|
|
50
|
-
);
|
|
50
|
+
));
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
53
|
* Pagination component
|
|
54
54
|
*/
|
|
55
|
-
export const Pagination: React.FC<PaginationProps> = ({
|
|
55
|
+
export const Pagination: React.FC<PaginationProps> = memo(({
|
|
56
56
|
currentPage = PAGINATION_DEFAULTS.currentPage,
|
|
57
57
|
totalPages = PAGINATION_DEFAULTS.totalPages,
|
|
58
58
|
onPageChange,
|
|
@@ -178,10 +178,11 @@ export const Pagination: React.FC<PaginationProps> = ({
|
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
return paginationContent;
|
|
181
|
-
};
|
|
181
|
+
});
|
|
182
182
|
|
|
183
183
|
export type { PaginationProps };
|
|
184
184
|
|
|
185
185
|
Pagination.displayName = 'Pagination';
|
|
186
|
+
PaginationNavButton.displayName = 'PaginationNavButton';
|
|
186
187
|
|
|
187
188
|
export default Pagination;
|
|
@@ -5,7 +5,7 @@ import React, { useRef, useEffect, useState } from 'react';
|
|
|
5
5
|
*/
|
|
6
6
|
export interface PhotoViewerImageProps {
|
|
7
7
|
/** Ref to the image element */
|
|
8
|
-
imageRef: React.RefObject<HTMLImageElement
|
|
8
|
+
imageRef: React.RefObject<HTMLImageElement>;
|
|
9
9
|
/** Ref to the container element */
|
|
10
10
|
containerRef?: React.RefObject<HTMLDivElement | null>;
|
|
11
11
|
/** Image source URL */
|
|
@@ -134,7 +134,7 @@ export const PhotoViewerImage: React.FC<PhotoViewerImageProps> = ({
|
|
|
134
134
|
|
|
135
135
|
return (
|
|
136
136
|
<div
|
|
137
|
-
ref={effectiveContainerRef}
|
|
137
|
+
ref={effectiveContainerRef as React.LegacyRef<HTMLDivElement>}
|
|
138
138
|
className={`c-photo-viewer__image-container ${isTransitioning ? 'is-transitioning' : ''}`}
|
|
139
139
|
style={{
|
|
140
140
|
cursor: isDragging ? 'grabbing' : zoomLevel > 1 ? 'grab' : 'default',
|
|
@@ -117,10 +117,8 @@ export const Popover: React.FC<PopoverProps> = ({
|
|
|
117
117
|
/**
|
|
118
118
|
* PopoverTrigger component to wrap the element that triggers the popover
|
|
119
119
|
*/
|
|
120
|
-
export const PopoverTrigger
|
|
121
|
-
|
|
122
|
-
PopoverTriggerProps
|
|
123
|
-
>(({ children, trigger: triggerProp }, ref) => {
|
|
120
|
+
export const PopoverTrigger = forwardRef<HTMLElement, PopoverTriggerProps>(
|
|
121
|
+
({ children, trigger: triggerProp }, ref) => {
|
|
124
122
|
const { isOpen, setIsOpen, triggerRef, popoverId, triggerType } =
|
|
125
123
|
React.useContext(PopoverContext);
|
|
126
124
|
|
|
@@ -159,6 +157,8 @@ export const PopoverTrigger: React.FC<PopoverTriggerProps> = forwardRef<
|
|
|
159
157
|
return React.cloneElement(child, triggerProps);
|
|
160
158
|
});
|
|
161
159
|
|
|
160
|
+
PopoverTrigger.displayName = 'PopoverTrigger';
|
|
161
|
+
|
|
162
162
|
export type { PopoverProps, PopoverTriggerProps };
|
|
163
163
|
|
|
164
164
|
Popover.displayName = 'Popover';
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import React, { forwardRef } from 'react';
|
|
1
|
+
import React, { forwardRef, memo } from 'react';
|
|
2
2
|
import { ProgressProps } from '../../lib/types/components';
|
|
3
3
|
import { useProgress } from '../../lib/composables/useProgress';
|
|
4
4
|
import { PROGRESS } from '../../lib/constants/components';
|
|
5
5
|
import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
6
6
|
|
|
7
|
-
export const Progress =
|
|
7
|
+
export const Progress = memo(
|
|
8
|
+
forwardRef<HTMLDivElement, ProgressProps>(
|
|
8
9
|
(
|
|
9
10
|
{
|
|
10
11
|
value,
|
|
@@ -54,8 +55,11 @@ export const Progress = forwardRef<HTMLDivElement, ProgressProps>(
|
|
|
54
55
|
|
|
55
56
|
return progressContent;
|
|
56
57
|
}
|
|
58
|
+
)
|
|
57
59
|
);
|
|
58
60
|
|
|
61
|
+
Progress.displayName = 'Progress';
|
|
62
|
+
|
|
59
63
|
export type { ProgressProps };
|
|
60
64
|
|
|
61
65
|
export default Progress;
|
|
@@ -54,6 +54,9 @@ export const Rating = forwardRef<HTMLDivElement, RatingProps>(
|
|
|
54
54
|
onChange,
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
+
// Create forked ref - must be called unconditionally
|
|
58
|
+
const forkedRef = useForkRef(internalRef, ref);
|
|
59
|
+
|
|
57
60
|
// Handle mouse enter on star with half-star support
|
|
58
61
|
const handleMouseEnter = useCallback(
|
|
59
62
|
(e: React.MouseEvent, starValue: number) => {
|
|
@@ -171,7 +174,7 @@ export const Rating = forwardRef<HTMLDivElement, RatingProps>(
|
|
|
171
174
|
// If using vanilla JS, just render the container
|
|
172
175
|
if (useVanillaJS) {
|
|
173
176
|
return (
|
|
174
|
-
<div className={ratingClasses} ref={
|
|
177
|
+
<div className={ratingClasses} ref={forkedRef} id={id} {...restProps}>
|
|
175
178
|
{/* Stars will be generated by the vanilla JS implementation */}
|
|
176
179
|
</div>
|
|
177
180
|
);
|
|
@@ -268,7 +271,7 @@ export const Rating = forwardRef<HTMLDivElement, RatingProps>(
|
|
|
268
271
|
const ratingContent = (
|
|
269
272
|
<div
|
|
270
273
|
className={ratingClasses}
|
|
271
|
-
ref={
|
|
274
|
+
ref={forkedRef}
|
|
272
275
|
id={id}
|
|
273
276
|
style={style}
|
|
274
277
|
data-readonly={readOnly ? 'true' : 'false'}
|
|
@@ -25,16 +25,9 @@ export const Slider = forwardRef<HTMLDivElement, SliderProps>((props, ref) => {
|
|
|
25
25
|
...rest
|
|
26
26
|
} = props;
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
return (
|
|
30
|
-
<div className="c-slider c-slider--empty" style={{ height, width, ...style }}>
|
|
31
|
-
<div className="c-slider__empty-message">No slides available</div>
|
|
32
|
-
</div>
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
28
|
+
// Hooks must be called unconditionally - before early return
|
|
36
29
|
const slider = useSlider({
|
|
37
|
-
slides,
|
|
30
|
+
slides: slides || [],
|
|
38
31
|
slidesToShow,
|
|
39
32
|
spaceBetween,
|
|
40
33
|
loop,
|
|
@@ -72,6 +65,14 @@ export const Slider = forwardRef<HTMLDivElement, SliderProps>((props, ref) => {
|
|
|
72
65
|
return allSlides.length * (slideWidth + spaceBetween) - spaceBetween;
|
|
73
66
|
}, [allSlides.length, slideWidth, spaceBetween]);
|
|
74
67
|
|
|
68
|
+
if (!slides || slides.length === 0) {
|
|
69
|
+
return (
|
|
70
|
+
<div className="c-slider c-slider--empty" style={{ height, width, ...style }}>
|
|
71
|
+
<div className="c-slider__empty-message">No slides available</div>
|
|
72
|
+
</div>
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
|
|
75
76
|
const containerClasses = [
|
|
76
77
|
'c-slider',
|
|
77
78
|
direction === 'vertical' && 'c-slider--vertical',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { memo } from 'react';
|
|
2
2
|
import { SpinnerProps } from '../../lib/types/components';
|
|
3
3
|
import { useSpinner } from '../../lib/composables/useSpinner';
|
|
4
4
|
import { SPINNER } from '../../lib/constants/components';
|
|
5
5
|
import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
6
6
|
|
|
7
|
-
export const Spinner: React.FC<SpinnerProps> = ({
|
|
7
|
+
export const Spinner: React.FC<SpinnerProps> = memo(({
|
|
8
8
|
size = 'md',
|
|
9
9
|
variant = 'primary',
|
|
10
10
|
fullscreen = false,
|
|
@@ -43,7 +43,7 @@ export const Spinner: React.FC<SpinnerProps> = ({
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
return spinnerContent;
|
|
46
|
-
};
|
|
46
|
+
});
|
|
47
47
|
|
|
48
48
|
export type { SpinnerProps };
|
|
49
49
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, ReactNode } from 'react';
|
|
1
|
+
import React, { useState, ReactNode, memo } from 'react';
|
|
2
2
|
import { TAB } from '../../lib/constants/components';
|
|
3
3
|
import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
4
4
|
import { AtomixGlassProps } from '../../lib/types/components';
|
|
@@ -61,7 +61,7 @@ export interface TabsProps {
|
|
|
61
61
|
/**
|
|
62
62
|
* Tabs component for switching between different content panels
|
|
63
63
|
*/
|
|
64
|
-
export const Tabs: React.FC<TabsProps> = ({
|
|
64
|
+
export const Tabs: React.FC<TabsProps> = memo(({
|
|
65
65
|
items,
|
|
66
66
|
activeIndex = TAB.DEFAULTS.ACTIVE_INDEX,
|
|
67
67
|
onTabChange,
|
|
@@ -137,7 +137,7 @@ export const Tabs: React.FC<TabsProps> = ({
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
return tabContent;
|
|
140
|
-
};
|
|
140
|
+
});
|
|
141
141
|
|
|
142
142
|
Tabs.displayName = 'Tabs';
|
|
143
143
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { ReactNode } from 'react';
|
|
1
|
+
import React, { ReactNode, memo } from 'react';
|
|
2
2
|
import { TOOLTIP } from '../../lib/constants/components';
|
|
3
3
|
import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
4
4
|
import { AtomixGlassProps } from '../../lib/types/components';
|
|
@@ -60,7 +60,7 @@ export interface TooltipProps {
|
|
|
60
60
|
glass?: AtomixGlassProps | boolean;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
export const Tooltip: React.FC<TooltipProps> = ({
|
|
63
|
+
export const Tooltip: React.FC<TooltipProps> = memo(({
|
|
64
64
|
content,
|
|
65
65
|
children,
|
|
66
66
|
position = TOOLTIP.DEFAULTS.POSITION,
|
|
@@ -162,7 +162,7 @@ export const Tooltip: React.FC<TooltipProps> = ({
|
|
|
162
162
|
)}
|
|
163
163
|
</div>
|
|
164
164
|
);
|
|
165
|
-
};
|
|
165
|
+
});
|
|
166
166
|
|
|
167
167
|
Tooltip.displayName = 'Tooltip';
|
|
168
168
|
|
package/src/components/index.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { SliderProps, VideoPlayerProps } from '../lib/types/components';
|
|
2
|
-
export { default as Accordion
|
|
2
|
+
export { default as Accordion } from './Accordion/Accordion';
|
|
3
|
+
export type { AccordionProps } from '../lib/types/components';
|
|
3
4
|
export { default as AtomixLogo, type AtomixLogoProps } from './AtomixLogo/AtomixLogo';
|
|
4
5
|
export { default as AtomixGlass, type AtomixGlassProps } from './AtomixGlass';
|
|
5
6
|
export { default as Avatar, type AvatarProps } from './Avatar/Avatar';
|
|
@@ -37,7 +38,7 @@ export {
|
|
|
37
38
|
type BubbleDataPoint,
|
|
38
39
|
type CandlestickChartProps,
|
|
39
40
|
type CandlestickDataPoint,
|
|
40
|
-
|
|
41
|
+
// ChartProps exported separately from lib/types/components to avoid conflict
|
|
41
42
|
type DonutChartProps,
|
|
42
43
|
type FunnelChartProps,
|
|
43
44
|
type FunnelDataPoint,
|
|
@@ -56,6 +57,8 @@ export {
|
|
|
56
57
|
type WaterfallChartProps,
|
|
57
58
|
type WaterfallDataPoint,
|
|
58
59
|
} from './Chart';
|
|
60
|
+
// Export ChartProps from lib/types/components to avoid duplicate export conflict
|
|
61
|
+
export type { ChartProps } from '../lib/types/components';
|
|
59
62
|
export {
|
|
60
63
|
default as ColorModeToggle,
|
|
61
64
|
type ColorModeToggleProps,
|
|
@@ -374,7 +374,7 @@ export const MasonryGrid = forwardRef<HTMLDivElement, MasonryGridProps>(
|
|
|
374
374
|
const position = positions[index];
|
|
375
375
|
if (!position) {
|
|
376
376
|
return (
|
|
377
|
-
<div key={item.id} ref={item.ref} style={{ opacity: 0, position: 'absolute' }}>
|
|
377
|
+
<div key={item.id} ref={item.ref as React.LegacyRef<HTMLDivElement>} style={{ opacity: 0, position: 'absolute' }}>
|
|
378
378
|
{item.element}
|
|
379
379
|
</div>
|
|
380
380
|
);
|
|
@@ -382,7 +382,7 @@ export const MasonryGrid = forwardRef<HTMLDivElement, MasonryGridProps>(
|
|
|
382
382
|
return (
|
|
383
383
|
<div
|
|
384
384
|
key={item.id}
|
|
385
|
-
ref={item.ref}
|
|
385
|
+
ref={item.ref as React.LegacyRef<HTMLDivElement>}
|
|
386
386
|
className="o-masonry-grid__item"
|
|
387
387
|
style={{
|
|
388
388
|
position: 'absolute',
|