@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
package/dist/forms.d.ts
ADDED
|
@@ -0,0 +1,1085 @@
|
|
|
1
|
+
import React$1, { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Part-Based Styling Props
|
|
5
|
+
*
|
|
6
|
+
* Type definitions for styling individual component parts with className and style props.
|
|
7
|
+
* This enables granular customization of component internals.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Style properties for a component part
|
|
12
|
+
*/
|
|
13
|
+
interface PartStyleProps {
|
|
14
|
+
/** Additional CSS class name for the part */
|
|
15
|
+
className?: string;
|
|
16
|
+
/** Inline styles for the part */
|
|
17
|
+
style?: React$1.CSSProperties;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generic component parts type
|
|
21
|
+
* T is a union of part names as strings
|
|
22
|
+
*/
|
|
23
|
+
type ComponentParts<T extends string> = {
|
|
24
|
+
[K in T]?: PartStyleProps;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Checkbox component parts
|
|
28
|
+
*/
|
|
29
|
+
type CheckboxParts = ComponentParts<'root' | 'input' | 'box' | 'icon' | 'label'> & {
|
|
30
|
+
/** Root container */
|
|
31
|
+
root?: PartStyleProps;
|
|
32
|
+
/** Input element */
|
|
33
|
+
input?: PartStyleProps;
|
|
34
|
+
/** Checkbox box */
|
|
35
|
+
box?: PartStyleProps;
|
|
36
|
+
/** Check icon */
|
|
37
|
+
icon?: PartStyleProps;
|
|
38
|
+
/** Label text */
|
|
39
|
+
label?: PartStyleProps;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Radio component parts
|
|
43
|
+
*/
|
|
44
|
+
type RadioParts = ComponentParts<'root' | 'input' | 'circle' | 'dot' | 'label'> & {
|
|
45
|
+
/** Root container */
|
|
46
|
+
root?: PartStyleProps;
|
|
47
|
+
/** Input element */
|
|
48
|
+
input?: PartStyleProps;
|
|
49
|
+
/** Radio circle */
|
|
50
|
+
circle?: PartStyleProps;
|
|
51
|
+
/** Inner dot */
|
|
52
|
+
dot?: PartStyleProps;
|
|
53
|
+
/** Label text */
|
|
54
|
+
label?: PartStyleProps;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Slot configuration with multiple rendering options
|
|
59
|
+
*/
|
|
60
|
+
interface SlotProps<T = any> {
|
|
61
|
+
/** Static children to render */
|
|
62
|
+
children?: React$1.ReactNode;
|
|
63
|
+
/** Render function with access to slot props */
|
|
64
|
+
render?: (props: T) => React$1.ReactNode;
|
|
65
|
+
/** Custom component to render */
|
|
66
|
+
component?: React$1.ComponentType<T>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Slot props for Checkbox component
|
|
70
|
+
*/
|
|
71
|
+
interface CheckboxRootSlotProps {
|
|
72
|
+
className: string;
|
|
73
|
+
style?: React$1.CSSProperties;
|
|
74
|
+
children: React$1.ReactNode;
|
|
75
|
+
}
|
|
76
|
+
interface CheckboxInputSlotProps {
|
|
77
|
+
className: string;
|
|
78
|
+
style?: React$1.CSSProperties;
|
|
79
|
+
type: 'checkbox';
|
|
80
|
+
checked?: boolean;
|
|
81
|
+
onChange?: React$1.ChangeEventHandler<HTMLInputElement>;
|
|
82
|
+
disabled?: boolean;
|
|
83
|
+
required?: boolean;
|
|
84
|
+
id?: string;
|
|
85
|
+
name?: string;
|
|
86
|
+
value?: string;
|
|
87
|
+
'aria-label'?: string;
|
|
88
|
+
'aria-describedby'?: string;
|
|
89
|
+
'aria-invalid'?: boolean;
|
|
90
|
+
}
|
|
91
|
+
interface CheckboxLabelSlotProps {
|
|
92
|
+
className: string;
|
|
93
|
+
style?: React$1.CSSProperties;
|
|
94
|
+
children: React$1.ReactNode;
|
|
95
|
+
htmlFor?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Slot props for Radio component
|
|
99
|
+
*/
|
|
100
|
+
interface RadioRootSlotProps {
|
|
101
|
+
className: string;
|
|
102
|
+
style?: React$1.CSSProperties;
|
|
103
|
+
children: React$1.ReactNode;
|
|
104
|
+
}
|
|
105
|
+
interface RadioInputSlotProps {
|
|
106
|
+
className: string;
|
|
107
|
+
style?: React$1.CSSProperties;
|
|
108
|
+
type: 'radio';
|
|
109
|
+
checked?: boolean;
|
|
110
|
+
onChange?: React$1.ChangeEventHandler<HTMLInputElement>;
|
|
111
|
+
disabled?: boolean;
|
|
112
|
+
required?: boolean;
|
|
113
|
+
id?: string;
|
|
114
|
+
name?: string;
|
|
115
|
+
value?: string;
|
|
116
|
+
'aria-label'?: string;
|
|
117
|
+
'aria-describedby'?: string;
|
|
118
|
+
'aria-invalid'?: boolean;
|
|
119
|
+
}
|
|
120
|
+
interface RadioLabelSlotProps {
|
|
121
|
+
className: string;
|
|
122
|
+
style?: React$1.CSSProperties;
|
|
123
|
+
children: React$1.ReactNode;
|
|
124
|
+
htmlFor?: string;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Checkbox CSS Variables
|
|
129
|
+
*/
|
|
130
|
+
declare const CHECKBOX_CSS_VARS: {
|
|
131
|
+
readonly '--atomix-checkbox-size': "checkbox size";
|
|
132
|
+
readonly '--atomix-checkbox-bg': "background color";
|
|
133
|
+
readonly '--atomix-checkbox-border-color': "border color";
|
|
134
|
+
readonly '--atomix-checkbox-border-width': "border width";
|
|
135
|
+
readonly '--atomix-checkbox-border-radius': "border radius";
|
|
136
|
+
readonly '--atomix-checkbox-transition': "transition";
|
|
137
|
+
readonly '--atomix-checkbox-checked-bg': "checked background";
|
|
138
|
+
readonly '--atomix-checkbox-checked-border-color': "checked border color";
|
|
139
|
+
readonly '--atomix-checkbox-hover-border-color': "hover border color";
|
|
140
|
+
readonly '--atomix-checkbox-focus-ring-color': "focus ring color";
|
|
141
|
+
readonly '--atomix-checkbox-focus-ring-width': "focus ring width";
|
|
142
|
+
readonly '--atomix-checkbox-disabled-opacity': "disabled opacity";
|
|
143
|
+
readonly '--atomix-checkbox-invalid-border-color': "invalid border color";
|
|
144
|
+
readonly '--atomix-checkbox-icon-size': "icon size";
|
|
145
|
+
readonly '--atomix-checkbox-icon-color': "icon color";
|
|
146
|
+
readonly '--atomix-checkbox-label-gap': "label spacing";
|
|
147
|
+
readonly '--atomix-checkbox-label-font-size': "label font size";
|
|
148
|
+
readonly '--atomix-checkbox-label-color': "label color";
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Radio CSS Variables
|
|
152
|
+
*/
|
|
153
|
+
declare const RADIO_CSS_VARS: {
|
|
154
|
+
readonly '--atomix-radio-size': "radio size";
|
|
155
|
+
readonly '--atomix-radio-bg': "background color";
|
|
156
|
+
readonly '--atomix-radio-border-color': "border color";
|
|
157
|
+
readonly '--atomix-radio-border-width': "border width";
|
|
158
|
+
readonly '--atomix-radio-transition': "transition";
|
|
159
|
+
readonly '--atomix-radio-checked-bg': "checked background";
|
|
160
|
+
readonly '--atomix-radio-checked-border-color': "checked border color";
|
|
161
|
+
readonly '--atomix-radio-hover-border-color': "hover border color";
|
|
162
|
+
readonly '--atomix-radio-focus-ring-color': "focus ring color";
|
|
163
|
+
readonly '--atomix-radio-focus-ring-width': "focus ring width";
|
|
164
|
+
readonly '--atomix-radio-disabled-opacity': "disabled opacity";
|
|
165
|
+
readonly '--atomix-radio-invalid-border-color': "invalid border color";
|
|
166
|
+
readonly '--atomix-radio-dot-size': "dot size";
|
|
167
|
+
readonly '--atomix-radio-dot-color': "dot color";
|
|
168
|
+
readonly '--atomix-radio-label-gap': "label spacing";
|
|
169
|
+
readonly '--atomix-radio-label-font-size': "label font size";
|
|
170
|
+
readonly '--atomix-radio-label-color': "label color";
|
|
171
|
+
};
|
|
172
|
+
type CheckboxCSSVariable = keyof typeof CHECKBOX_CSS_VARS;
|
|
173
|
+
type RadioCSSVariable = keyof typeof RADIO_CSS_VARS;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Displacement mode for glass effect
|
|
177
|
+
*/
|
|
178
|
+
type DisplacementMode = 'standard' | 'polar' | 'prominent' | 'shader';
|
|
179
|
+
/**
|
|
180
|
+
* Mouse position coordinates
|
|
181
|
+
*/
|
|
182
|
+
interface MousePosition {
|
|
183
|
+
x: number;
|
|
184
|
+
y: number;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* OverLight configuration - can be boolean, 'auto', or object with settings
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* // Boolean - explicit control
|
|
191
|
+
* overLight={true}
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* // Auto-detection - automatically detects background brightness
|
|
195
|
+
* overLight="auto"
|
|
196
|
+
*
|
|
197
|
+
* @example
|
|
198
|
+
* // Object config - auto-detection with custom settings
|
|
199
|
+
* overLight={{
|
|
200
|
+
* threshold: 0.8,
|
|
201
|
+
* opacity: 0.6,
|
|
202
|
+
* contrast: 1.8,
|
|
203
|
+
* brightness: 1.0,
|
|
204
|
+
* saturationBoost: 1.5
|
|
205
|
+
* }}
|
|
206
|
+
*/
|
|
207
|
+
type OverLightConfig = boolean | 'auto' | OverLightObjectConfig;
|
|
208
|
+
/**
|
|
209
|
+
* OverLight object configuration
|
|
210
|
+
*
|
|
211
|
+
* When using object mode, the component will auto-detect background brightness
|
|
212
|
+
* and apply the custom settings. All properties are optional and will use
|
|
213
|
+
* sensible defaults if not provided.
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
* // Minimal config - only threshold
|
|
217
|
+
* overLight={{ threshold: 0.8 }}
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* // Full config with all properties
|
|
221
|
+
* overLight={{
|
|
222
|
+
* threshold: 0.75,
|
|
223
|
+
* opacity: 0.6,
|
|
224
|
+
* contrast: 1.8,
|
|
225
|
+
* brightness: 1.1,
|
|
226
|
+
* saturationBoost: 1.5
|
|
227
|
+
* }}
|
|
228
|
+
*/
|
|
229
|
+
interface OverLightObjectConfig {
|
|
230
|
+
/**
|
|
231
|
+
* Luminance threshold for auto-detection (0.1 - 1.0)
|
|
232
|
+
*
|
|
233
|
+
* Backgrounds with average luminance above this threshold will be
|
|
234
|
+
* considered "light" and trigger overLight mode.
|
|
235
|
+
*
|
|
236
|
+
* @default 0.7
|
|
237
|
+
* @minimum 0.1
|
|
238
|
+
* @maximum 1.0
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* // More sensitive detection (triggers on lighter backgrounds)
|
|
242
|
+
* threshold: 0.6
|
|
243
|
+
*
|
|
244
|
+
* @example
|
|
245
|
+
* // Less sensitive detection (only very light backgrounds)
|
|
246
|
+
* threshold: 0.85
|
|
247
|
+
*/
|
|
248
|
+
threshold?: number;
|
|
249
|
+
/**
|
|
250
|
+
* Base opacity for overLight layers (0.1 - 1.0)
|
|
251
|
+
*
|
|
252
|
+
* Controls the opacity of the base and overlay layers when overLight
|
|
253
|
+
* mode is active. This value is multiplied by hover/active intensity
|
|
254
|
+
* multipliers for dynamic effects.
|
|
255
|
+
*
|
|
256
|
+
* @default 0.5 (dynamic, depends on hover/active state)
|
|
257
|
+
* @minimum 0.1
|
|
258
|
+
* @maximum 1.0
|
|
259
|
+
*
|
|
260
|
+
* @example
|
|
261
|
+
* // Subtle overlay
|
|
262
|
+
* opacity: 0.3
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* // Strong overlay
|
|
266
|
+
* opacity: 0.7
|
|
267
|
+
*/
|
|
268
|
+
opacity?: number;
|
|
269
|
+
/**
|
|
270
|
+
* Contrast enhancement multiplier (0.5 - 2.5)
|
|
271
|
+
*
|
|
272
|
+
* Increases the contrast of the glass effect for better visibility
|
|
273
|
+
* on light backgrounds. Higher values create more dramatic effects.
|
|
274
|
+
*
|
|
275
|
+
* @default 1.4 (dynamic, includes mouse influence)
|
|
276
|
+
* @minimum 0.5
|
|
277
|
+
* @maximum 2.5
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* // Subtle contrast boost
|
|
281
|
+
* contrast: 1.2
|
|
282
|
+
*
|
|
283
|
+
* @example
|
|
284
|
+
* // High contrast for maximum visibility
|
|
285
|
+
* contrast: 2.0
|
|
286
|
+
*/
|
|
287
|
+
contrast?: number;
|
|
288
|
+
/**
|
|
289
|
+
* Brightness adjustment multiplier (0.5 - 2.0)
|
|
290
|
+
*
|
|
291
|
+
* Adjusts the overall brightness of the glass effect. Values above 1.0
|
|
292
|
+
* brighten the effect, while values below 1.0 darken it.
|
|
293
|
+
*
|
|
294
|
+
* @default 0.85 (dynamic, includes mouse influence)
|
|
295
|
+
* @minimum 0.5
|
|
296
|
+
* @maximum 2.0
|
|
297
|
+
*
|
|
298
|
+
* @example
|
|
299
|
+
* // Neutral brightness
|
|
300
|
+
* brightness: 1.0
|
|
301
|
+
*
|
|
302
|
+
* @example
|
|
303
|
+
* // Brighter effect
|
|
304
|
+
* brightness: 1.2
|
|
305
|
+
*/
|
|
306
|
+
brightness?: number;
|
|
307
|
+
/**
|
|
308
|
+
* Saturation boost multiplier (0.5 - 3.0)
|
|
309
|
+
*
|
|
310
|
+
* Enhances color saturation for more vibrant glass effects on light
|
|
311
|
+
* backgrounds. This works in conjunction with the base saturation prop.
|
|
312
|
+
*
|
|
313
|
+
* @default 1.3 (dynamic, includes mouse influence)
|
|
314
|
+
* @minimum 0.5
|
|
315
|
+
* @maximum 3.0
|
|
316
|
+
*
|
|
317
|
+
* @example
|
|
318
|
+
* // Moderate saturation boost
|
|
319
|
+
* saturationBoost: 1.2
|
|
320
|
+
*
|
|
321
|
+
* @example
|
|
322
|
+
* // High saturation for vivid effects
|
|
323
|
+
* saturationBoost: 2.0
|
|
324
|
+
*/
|
|
325
|
+
saturationBoost?: number;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* AtomixGlass component props interface
|
|
329
|
+
*/
|
|
330
|
+
interface AtomixGlassProps {
|
|
331
|
+
children: React.ReactNode;
|
|
332
|
+
displacementScale?: number;
|
|
333
|
+
blurAmount?: number;
|
|
334
|
+
saturation?: number;
|
|
335
|
+
aberrationIntensity?: number;
|
|
336
|
+
elasticity?: number;
|
|
337
|
+
cornerRadius?: number;
|
|
338
|
+
globalMousePosition?: MousePosition;
|
|
339
|
+
mouseOffset?: MousePosition;
|
|
340
|
+
mouseContainer?: React.RefObject<HTMLElement | null> | null;
|
|
341
|
+
className?: string;
|
|
342
|
+
padding?: string;
|
|
343
|
+
style?: React.CSSProperties;
|
|
344
|
+
overLight?: OverLightConfig;
|
|
345
|
+
mode?: DisplacementMode;
|
|
346
|
+
onClick?: () => void;
|
|
347
|
+
/**
|
|
348
|
+
* Shader variant for shader mode
|
|
349
|
+
*/
|
|
350
|
+
shaderVariant?: 'liquidGlass' | 'premiumGlass';
|
|
351
|
+
/**
|
|
352
|
+
* Accessibility props
|
|
353
|
+
*/
|
|
354
|
+
'aria-label'?: string;
|
|
355
|
+
'aria-describedby'?: string;
|
|
356
|
+
role?: string;
|
|
357
|
+
tabIndex?: number;
|
|
358
|
+
/**
|
|
359
|
+
* Performance and accessibility options
|
|
360
|
+
*/
|
|
361
|
+
reducedMotion?: boolean;
|
|
362
|
+
highContrast?: boolean;
|
|
363
|
+
disableEffects?: boolean;
|
|
364
|
+
enableLiquidBlur?: boolean;
|
|
365
|
+
enableBorderEffect?: boolean;
|
|
366
|
+
enableOverLightLayers?: boolean;
|
|
367
|
+
/**
|
|
368
|
+
* Performance monitoring
|
|
369
|
+
*/
|
|
370
|
+
enablePerformanceMonitoring?: boolean;
|
|
371
|
+
/**
|
|
372
|
+
* Debug mode for cornerRadius extraction
|
|
373
|
+
*/
|
|
374
|
+
debugCornerRadius?: boolean;
|
|
375
|
+
/**
|
|
376
|
+
* Debug mode for overLight detection and configuration
|
|
377
|
+
*
|
|
378
|
+
* When enabled, logs detailed information about:
|
|
379
|
+
* - Auto-detection results (luminance values, threshold comparison)
|
|
380
|
+
* - Final overLight configuration values
|
|
381
|
+
* - Detection timing and performance
|
|
382
|
+
*
|
|
383
|
+
* Useful for debugging auto-detection issues and fine-tuning thresholds.
|
|
384
|
+
*
|
|
385
|
+
* @default false
|
|
386
|
+
*
|
|
387
|
+
* @example
|
|
388
|
+
* <AtomixGlass overLight="auto" debugOverLight={true}>
|
|
389
|
+
* Content
|
|
390
|
+
* </AtomixGlass>
|
|
391
|
+
*/
|
|
392
|
+
debugOverLight?: boolean;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Common component size options
|
|
396
|
+
*/
|
|
397
|
+
type Size = 'sm' | 'md' | 'lg';
|
|
398
|
+
/**
|
|
399
|
+
* Theme color variants
|
|
400
|
+
*/
|
|
401
|
+
type ThemeColor = 'primary' | 'secondary' | 'tertiary' | 'invert' | 'brand' | 'error' | 'success' | 'warning' | 'info' | 'light' | 'dark';
|
|
402
|
+
/**
|
|
403
|
+
* Base component properties interface
|
|
404
|
+
*/
|
|
405
|
+
interface BaseComponentProps {
|
|
406
|
+
/**
|
|
407
|
+
* Additional CSS class names
|
|
408
|
+
*/
|
|
409
|
+
className?: string;
|
|
410
|
+
/**
|
|
411
|
+
* Component disabled state
|
|
412
|
+
*/
|
|
413
|
+
disabled?: boolean;
|
|
414
|
+
/**
|
|
415
|
+
* Component children
|
|
416
|
+
*/
|
|
417
|
+
children?: ReactNode;
|
|
418
|
+
/**
|
|
419
|
+
* Inline style for the component root element
|
|
420
|
+
*/
|
|
421
|
+
style?: React.CSSProperties;
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Form component properties
|
|
425
|
+
*/
|
|
426
|
+
interface FormProps extends BaseComponentProps {
|
|
427
|
+
/**
|
|
428
|
+
* Form content
|
|
429
|
+
*/
|
|
430
|
+
children: ReactNode;
|
|
431
|
+
/**
|
|
432
|
+
* Form submit handler
|
|
433
|
+
*/
|
|
434
|
+
onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void;
|
|
435
|
+
/**
|
|
436
|
+
* Form reset handler
|
|
437
|
+
*/
|
|
438
|
+
onReset?: (event: React.FormEvent<HTMLFormElement>) => void;
|
|
439
|
+
/**
|
|
440
|
+
* Form ID
|
|
441
|
+
*/
|
|
442
|
+
id?: string;
|
|
443
|
+
/**
|
|
444
|
+
* Form method
|
|
445
|
+
*/
|
|
446
|
+
method?: 'get' | 'post';
|
|
447
|
+
/**
|
|
448
|
+
* Form encoding type
|
|
449
|
+
*/
|
|
450
|
+
encType?: string;
|
|
451
|
+
/**
|
|
452
|
+
* Whether to disable HTML5 validation
|
|
453
|
+
*/
|
|
454
|
+
noValidate?: boolean;
|
|
455
|
+
/**
|
|
456
|
+
* Form autocomplete setting
|
|
457
|
+
*/
|
|
458
|
+
autoComplete?: string;
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Form Group component properties
|
|
462
|
+
*/
|
|
463
|
+
interface FormGroupProps extends BaseComponentProps {
|
|
464
|
+
/**
|
|
465
|
+
* Form control content
|
|
466
|
+
*/
|
|
467
|
+
children: ReactNode;
|
|
468
|
+
/**
|
|
469
|
+
* Label text
|
|
470
|
+
*/
|
|
471
|
+
label?: string;
|
|
472
|
+
/**
|
|
473
|
+
* Helper text displayed below the input
|
|
474
|
+
*/
|
|
475
|
+
helperText?: ReactNode;
|
|
476
|
+
/**
|
|
477
|
+
* ID of the form control this label is for
|
|
478
|
+
*/
|
|
479
|
+
htmlFor?: string;
|
|
480
|
+
/**
|
|
481
|
+
* Whether the field is required
|
|
482
|
+
*/
|
|
483
|
+
required?: boolean;
|
|
484
|
+
/**
|
|
485
|
+
* Whether the field is invalid
|
|
486
|
+
*/
|
|
487
|
+
invalid?: boolean;
|
|
488
|
+
/**
|
|
489
|
+
* Whether the field is valid
|
|
490
|
+
*/
|
|
491
|
+
valid?: boolean;
|
|
492
|
+
/**
|
|
493
|
+
* Size variant
|
|
494
|
+
*/
|
|
495
|
+
size?: Size;
|
|
496
|
+
/**
|
|
497
|
+
* Error message to display
|
|
498
|
+
*/
|
|
499
|
+
errorMessage?: string;
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Input component properties
|
|
503
|
+
*/
|
|
504
|
+
interface InputProps extends BaseComponentProps {
|
|
505
|
+
/**
|
|
506
|
+
* Input type
|
|
507
|
+
*/
|
|
508
|
+
type?: string;
|
|
509
|
+
/**
|
|
510
|
+
* Input value
|
|
511
|
+
*/
|
|
512
|
+
value?: string | number;
|
|
513
|
+
/**
|
|
514
|
+
* Change handler
|
|
515
|
+
*/
|
|
516
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
517
|
+
/**
|
|
518
|
+
* Blur handler
|
|
519
|
+
*/
|
|
520
|
+
onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
|
|
521
|
+
/**
|
|
522
|
+
* Focus handler
|
|
523
|
+
*/
|
|
524
|
+
onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
|
|
525
|
+
/**
|
|
526
|
+
* Placeholder text
|
|
527
|
+
*/
|
|
528
|
+
placeholder?: string;
|
|
529
|
+
/**
|
|
530
|
+
* Whether the input is required
|
|
531
|
+
*/
|
|
532
|
+
required?: boolean;
|
|
533
|
+
/**
|
|
534
|
+
* Whether the input is read-only
|
|
535
|
+
*/
|
|
536
|
+
readOnly?: boolean;
|
|
537
|
+
/**
|
|
538
|
+
* Input ID
|
|
539
|
+
*/
|
|
540
|
+
id?: string;
|
|
541
|
+
/**
|
|
542
|
+
* Input name
|
|
543
|
+
*/
|
|
544
|
+
name?: string;
|
|
545
|
+
/**
|
|
546
|
+
* Autocomplete attribute
|
|
547
|
+
*/
|
|
548
|
+
autoComplete?: string;
|
|
549
|
+
/**
|
|
550
|
+
* Whether the input should receive focus on render
|
|
551
|
+
*/
|
|
552
|
+
autoFocus?: boolean;
|
|
553
|
+
/**
|
|
554
|
+
* Size variant
|
|
555
|
+
*/
|
|
556
|
+
size?: Size;
|
|
557
|
+
/**
|
|
558
|
+
* Color variant
|
|
559
|
+
*/
|
|
560
|
+
variant?: ThemeColor;
|
|
561
|
+
/**
|
|
562
|
+
* Whether the input is invalid
|
|
563
|
+
*/
|
|
564
|
+
invalid?: boolean;
|
|
565
|
+
/**
|
|
566
|
+
* Whether the input is valid
|
|
567
|
+
*/
|
|
568
|
+
valid?: boolean;
|
|
569
|
+
/**
|
|
570
|
+
* Maximum length
|
|
571
|
+
*/
|
|
572
|
+
maxLength?: number;
|
|
573
|
+
/**
|
|
574
|
+
* Minimum length
|
|
575
|
+
*/
|
|
576
|
+
minLength?: number;
|
|
577
|
+
/**
|
|
578
|
+
* Input pattern
|
|
579
|
+
*/
|
|
580
|
+
pattern?: string;
|
|
581
|
+
/**
|
|
582
|
+
* Minimum value (for number inputs)
|
|
583
|
+
*/
|
|
584
|
+
min?: number | string;
|
|
585
|
+
/**
|
|
586
|
+
* Maximum value (for number inputs)
|
|
587
|
+
*/
|
|
588
|
+
max?: number | string;
|
|
589
|
+
/**
|
|
590
|
+
* Step value (for number inputs)
|
|
591
|
+
*/
|
|
592
|
+
step?: number | string;
|
|
593
|
+
/**
|
|
594
|
+
* Accessible label (if no visible label)
|
|
595
|
+
*/
|
|
596
|
+
ariaLabel?: string;
|
|
597
|
+
/**
|
|
598
|
+
* ID of element that describes this input
|
|
599
|
+
*/
|
|
600
|
+
ariaDescribedBy?: string;
|
|
601
|
+
/**
|
|
602
|
+
* Glass morphism effect
|
|
603
|
+
*/
|
|
604
|
+
glass?: boolean | Omit<AtomixGlassProps, 'children'>;
|
|
605
|
+
/**
|
|
606
|
+
* Prefix icon (appears before the input)
|
|
607
|
+
*/
|
|
608
|
+
prefixIcon?: React.ReactNode;
|
|
609
|
+
/**
|
|
610
|
+
* Suffix icon (appears after the input)
|
|
611
|
+
*/
|
|
612
|
+
suffixIcon?: React.ReactNode;
|
|
613
|
+
/**
|
|
614
|
+
* Whether the input is clearable (shows clear button when value exists)
|
|
615
|
+
*/
|
|
616
|
+
clearable?: boolean;
|
|
617
|
+
/**
|
|
618
|
+
* Handler for clear button click
|
|
619
|
+
*/
|
|
620
|
+
onClear?: () => void;
|
|
621
|
+
/**
|
|
622
|
+
* Whether to show character counter
|
|
623
|
+
*/
|
|
624
|
+
showCounter?: boolean;
|
|
625
|
+
/**
|
|
626
|
+
* Maximum character count for counter (uses maxLength if not provided)
|
|
627
|
+
*/
|
|
628
|
+
maxCount?: number;
|
|
629
|
+
/**
|
|
630
|
+
* Whether password visibility toggle is enabled (for password inputs)
|
|
631
|
+
*/
|
|
632
|
+
showPasswordToggle?: boolean;
|
|
633
|
+
/**
|
|
634
|
+
* Error message to display
|
|
635
|
+
*/
|
|
636
|
+
errorMessage?: string;
|
|
637
|
+
/**
|
|
638
|
+
* Helper text to display
|
|
639
|
+
*/
|
|
640
|
+
helperText?: string;
|
|
641
|
+
/**
|
|
642
|
+
* Whether the input should take full width
|
|
643
|
+
*/
|
|
644
|
+
fullWidth?: boolean;
|
|
645
|
+
}
|
|
646
|
+
/**
|
|
647
|
+
* Select option
|
|
648
|
+
*/
|
|
649
|
+
interface SelectOption {
|
|
650
|
+
/**
|
|
651
|
+
* Option value
|
|
652
|
+
*/
|
|
653
|
+
value: string;
|
|
654
|
+
/**
|
|
655
|
+
* Option display label
|
|
656
|
+
*/
|
|
657
|
+
label: string;
|
|
658
|
+
/**
|
|
659
|
+
* Whether the option is disabled
|
|
660
|
+
*/
|
|
661
|
+
disabled?: boolean;
|
|
662
|
+
}
|
|
663
|
+
/**
|
|
664
|
+
* Select component properties
|
|
665
|
+
*/
|
|
666
|
+
interface SelectProps extends BaseComponentProps {
|
|
667
|
+
/**
|
|
668
|
+
* Select options
|
|
669
|
+
*/
|
|
670
|
+
options: SelectOption[];
|
|
671
|
+
/**
|
|
672
|
+
* Selected value(s)
|
|
673
|
+
*/
|
|
674
|
+
value?: string | string[];
|
|
675
|
+
/**
|
|
676
|
+
* Change handler
|
|
677
|
+
*/
|
|
678
|
+
onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;
|
|
679
|
+
/**
|
|
680
|
+
* Blur handler
|
|
681
|
+
*/
|
|
682
|
+
onBlur?: (event: React.FocusEvent<HTMLSelectElement>) => void;
|
|
683
|
+
/**
|
|
684
|
+
* Focus handler
|
|
685
|
+
*/
|
|
686
|
+
onFocus?: (event: React.FocusEvent<HTMLSelectElement>) => void;
|
|
687
|
+
/**
|
|
688
|
+
* Placeholder text
|
|
689
|
+
*/
|
|
690
|
+
placeholder?: string;
|
|
691
|
+
/**
|
|
692
|
+
* Whether the select is required
|
|
693
|
+
*/
|
|
694
|
+
required?: boolean;
|
|
695
|
+
/**
|
|
696
|
+
* Select ID
|
|
697
|
+
*/
|
|
698
|
+
id?: string;
|
|
699
|
+
/**
|
|
700
|
+
* Select name
|
|
701
|
+
*/
|
|
702
|
+
name?: string;
|
|
703
|
+
/**
|
|
704
|
+
* Size variant
|
|
705
|
+
*/
|
|
706
|
+
size?: Size;
|
|
707
|
+
/**
|
|
708
|
+
* Whether the select is invalid
|
|
709
|
+
*/
|
|
710
|
+
invalid?: boolean;
|
|
711
|
+
/**
|
|
712
|
+
* Whether the select is valid
|
|
713
|
+
*/
|
|
714
|
+
valid?: boolean;
|
|
715
|
+
/**
|
|
716
|
+
* Whether multiple options can be selected
|
|
717
|
+
*/
|
|
718
|
+
multiple?: boolean;
|
|
719
|
+
/**
|
|
720
|
+
* Accessible label (if no visible label)
|
|
721
|
+
*/
|
|
722
|
+
ariaLabel?: string;
|
|
723
|
+
/**
|
|
724
|
+
* ID of element that describes this select
|
|
725
|
+
*/
|
|
726
|
+
ariaDescribedBy?: string;
|
|
727
|
+
/**
|
|
728
|
+
* Glass morphism effect for the select
|
|
729
|
+
* Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
|
|
730
|
+
*/
|
|
731
|
+
glass?: AtomixGlassProps | boolean;
|
|
732
|
+
/**
|
|
733
|
+
* Error message to display
|
|
734
|
+
*/
|
|
735
|
+
errorMessage?: string;
|
|
736
|
+
/**
|
|
737
|
+
* Helper text to display
|
|
738
|
+
*/
|
|
739
|
+
helperText?: string;
|
|
740
|
+
/**
|
|
741
|
+
* Whether the select should take full width
|
|
742
|
+
*/
|
|
743
|
+
fullWidth?: boolean;
|
|
744
|
+
}
|
|
745
|
+
/**
|
|
746
|
+
* Checkbox component properties
|
|
747
|
+
*/
|
|
748
|
+
interface CheckboxProps extends BaseComponentProps {
|
|
749
|
+
/**
|
|
750
|
+
* Checkbox label
|
|
751
|
+
*/
|
|
752
|
+
label?: ReactNode;
|
|
753
|
+
/**
|
|
754
|
+
* Whether the checkbox is checked
|
|
755
|
+
*/
|
|
756
|
+
checked?: boolean;
|
|
757
|
+
/**
|
|
758
|
+
* Change handler
|
|
759
|
+
*/
|
|
760
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
761
|
+
/**
|
|
762
|
+
* Whether the checkbox is required
|
|
763
|
+
*/
|
|
764
|
+
required?: boolean;
|
|
765
|
+
/**
|
|
766
|
+
* Checkbox ID
|
|
767
|
+
*/
|
|
768
|
+
id?: string;
|
|
769
|
+
/**
|
|
770
|
+
* Checkbox name
|
|
771
|
+
*/
|
|
772
|
+
name?: string;
|
|
773
|
+
/**
|
|
774
|
+
* Checkbox value
|
|
775
|
+
*/
|
|
776
|
+
value?: string;
|
|
777
|
+
/**
|
|
778
|
+
* Whether the checkbox is invalid
|
|
779
|
+
*/
|
|
780
|
+
invalid?: boolean;
|
|
781
|
+
/**
|
|
782
|
+
* Whether the checkbox is valid
|
|
783
|
+
*/
|
|
784
|
+
valid?: boolean;
|
|
785
|
+
/**
|
|
786
|
+
* Whether the checkbox is in indeterminate state
|
|
787
|
+
*/
|
|
788
|
+
indeterminate?: boolean;
|
|
789
|
+
/**
|
|
790
|
+
* Accessible label (if no visible label)
|
|
791
|
+
*/
|
|
792
|
+
ariaLabel?: string;
|
|
793
|
+
/**
|
|
794
|
+
* ID of element that describes this checkbox
|
|
795
|
+
*/
|
|
796
|
+
ariaDescribedBy?: string;
|
|
797
|
+
/**
|
|
798
|
+
* Glass morphism effect for the checkbox
|
|
799
|
+
* Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
|
|
800
|
+
*/
|
|
801
|
+
glass?: AtomixGlassProps | boolean;
|
|
802
|
+
/**
|
|
803
|
+
* Error message to display
|
|
804
|
+
*/
|
|
805
|
+
errorMessage?: string;
|
|
806
|
+
/**
|
|
807
|
+
* Helper text to display
|
|
808
|
+
*/
|
|
809
|
+
helperText?: string;
|
|
810
|
+
/**
|
|
811
|
+
* Part-based styling for granular customization
|
|
812
|
+
* @example
|
|
813
|
+
* parts={{
|
|
814
|
+
* root: { className: 'custom-checkbox', style: { margin: '8px' } },
|
|
815
|
+
* input: { style: { accentColor: '#7AFFD7' } },
|
|
816
|
+
* label: { className: 'checkbox-label' }
|
|
817
|
+
* }}
|
|
818
|
+
*/
|
|
819
|
+
parts?: CheckboxParts;
|
|
820
|
+
/**
|
|
821
|
+
* CSS variable overrides for runtime customization
|
|
822
|
+
* @example
|
|
823
|
+
* cssVars={{
|
|
824
|
+
* '--atomix-checkbox-size': '20px',
|
|
825
|
+
* '--atomix-checkbox-checked-bg': '#7AFFD7'
|
|
826
|
+
* }}
|
|
827
|
+
*/
|
|
828
|
+
cssVars?: Partial<Record<CheckboxCSSVariable, string | number>>;
|
|
829
|
+
/**
|
|
830
|
+
* Slot-based customization for complete control
|
|
831
|
+
* @example
|
|
832
|
+
* slots={{
|
|
833
|
+
* root: { render: (props) => <motion.div {...props} /> },
|
|
834
|
+
* input: { component: CustomInput },
|
|
835
|
+
* label: { component: CustomLabel }
|
|
836
|
+
* }}
|
|
837
|
+
*/
|
|
838
|
+
slots?: {
|
|
839
|
+
root?: SlotProps<CheckboxRootSlotProps>;
|
|
840
|
+
input?: SlotProps<CheckboxInputSlotProps>;
|
|
841
|
+
label?: SlotProps<CheckboxLabelSlotProps>;
|
|
842
|
+
};
|
|
843
|
+
}
|
|
844
|
+
/**
|
|
845
|
+
* Radio component properties
|
|
846
|
+
*/
|
|
847
|
+
interface RadioProps extends BaseComponentProps {
|
|
848
|
+
/**
|
|
849
|
+
* Radio label
|
|
850
|
+
*/
|
|
851
|
+
label?: ReactNode;
|
|
852
|
+
/**
|
|
853
|
+
* Whether the radio is checked
|
|
854
|
+
*/
|
|
855
|
+
checked?: boolean;
|
|
856
|
+
/**
|
|
857
|
+
* Change handler
|
|
858
|
+
*/
|
|
859
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
860
|
+
/**
|
|
861
|
+
* Whether the radio is required
|
|
862
|
+
*/
|
|
863
|
+
required?: boolean;
|
|
864
|
+
/**
|
|
865
|
+
* Radio ID
|
|
866
|
+
*/
|
|
867
|
+
id?: string;
|
|
868
|
+
/**
|
|
869
|
+
* Radio name
|
|
870
|
+
*/
|
|
871
|
+
name?: string;
|
|
872
|
+
/**
|
|
873
|
+
* Radio value
|
|
874
|
+
*/
|
|
875
|
+
value?: string;
|
|
876
|
+
/**
|
|
877
|
+
* Whether the radio is invalid
|
|
878
|
+
*/
|
|
879
|
+
invalid?: boolean;
|
|
880
|
+
/**
|
|
881
|
+
* Whether the radio is valid
|
|
882
|
+
*/
|
|
883
|
+
valid?: boolean;
|
|
884
|
+
/**
|
|
885
|
+
* Accessible label (if no visible label)
|
|
886
|
+
*/
|
|
887
|
+
ariaLabel?: string;
|
|
888
|
+
/**
|
|
889
|
+
* ID of element that describes this radio
|
|
890
|
+
*/
|
|
891
|
+
ariaDescribedBy?: string;
|
|
892
|
+
/**
|
|
893
|
+
* Glass morphism effect for the radio button
|
|
894
|
+
* Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
|
|
895
|
+
*/
|
|
896
|
+
glass?: AtomixGlassProps | boolean;
|
|
897
|
+
/**
|
|
898
|
+
* Error message to display
|
|
899
|
+
*/
|
|
900
|
+
errorMessage?: string;
|
|
901
|
+
/**
|
|
902
|
+
* Helper text to display
|
|
903
|
+
*/
|
|
904
|
+
helperText?: string;
|
|
905
|
+
/**
|
|
906
|
+
* Part-based styling for granular customization
|
|
907
|
+
* @example
|
|
908
|
+
* parts={{
|
|
909
|
+
* root: { className: 'custom-radio', style: { margin: '8px' } },
|
|
910
|
+
* input: { style: { accentColor: '#7AFFD7' } },
|
|
911
|
+
* label: { className: 'radio-label' }
|
|
912
|
+
* }}
|
|
913
|
+
*/
|
|
914
|
+
parts?: RadioParts;
|
|
915
|
+
/**
|
|
916
|
+
* CSS variable overrides for runtime customization
|
|
917
|
+
* @example
|
|
918
|
+
* cssVars={{
|
|
919
|
+
* '--atomix-radio-size': '20px',
|
|
920
|
+
* '--atomix-radio-checked-bg': '#7AFFD7'
|
|
921
|
+
* }}
|
|
922
|
+
*/
|
|
923
|
+
cssVars?: Partial<Record<RadioCSSVariable, string | number>>;
|
|
924
|
+
/**
|
|
925
|
+
* Slot-based customization for complete control
|
|
926
|
+
* @example
|
|
927
|
+
* slots={{
|
|
928
|
+
* root: { render: (props) => <motion.div {...props} /> },
|
|
929
|
+
* input: { component: CustomInput },
|
|
930
|
+
* label: { component: CustomLabel }
|
|
931
|
+
* }}
|
|
932
|
+
*/
|
|
933
|
+
slots?: {
|
|
934
|
+
root?: SlotProps<RadioRootSlotProps>;
|
|
935
|
+
input?: SlotProps<RadioInputSlotProps>;
|
|
936
|
+
label?: SlotProps<RadioLabelSlotProps>;
|
|
937
|
+
};
|
|
938
|
+
}
|
|
939
|
+
/**
|
|
940
|
+
* Textarea component properties
|
|
941
|
+
*/
|
|
942
|
+
interface TextareaProps extends BaseComponentProps {
|
|
943
|
+
/**
|
|
944
|
+
* Textarea value
|
|
945
|
+
*/
|
|
946
|
+
value?: string;
|
|
947
|
+
/**
|
|
948
|
+
* Change handler
|
|
949
|
+
*/
|
|
950
|
+
onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
|
|
951
|
+
/**
|
|
952
|
+
* Blur handler
|
|
953
|
+
*/
|
|
954
|
+
onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;
|
|
955
|
+
/**
|
|
956
|
+
* Focus handler
|
|
957
|
+
*/
|
|
958
|
+
onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;
|
|
959
|
+
/**
|
|
960
|
+
* Placeholder text
|
|
961
|
+
*/
|
|
962
|
+
placeholder?: string;
|
|
963
|
+
/**
|
|
964
|
+
* Whether the textarea is required
|
|
965
|
+
*/
|
|
966
|
+
required?: boolean;
|
|
967
|
+
/**
|
|
968
|
+
* Whether the textarea is read-only
|
|
969
|
+
*/
|
|
970
|
+
readOnly?: boolean;
|
|
971
|
+
/**
|
|
972
|
+
* Textarea ID
|
|
973
|
+
*/
|
|
974
|
+
id?: string;
|
|
975
|
+
/**
|
|
976
|
+
* Textarea name
|
|
977
|
+
*/
|
|
978
|
+
name?: string;
|
|
979
|
+
/**
|
|
980
|
+
* Number of rows
|
|
981
|
+
*/
|
|
982
|
+
rows?: number;
|
|
983
|
+
/**
|
|
984
|
+
* Number of columns
|
|
985
|
+
*/
|
|
986
|
+
cols?: number;
|
|
987
|
+
/**
|
|
988
|
+
* Maximum length
|
|
989
|
+
*/
|
|
990
|
+
maxLength?: number;
|
|
991
|
+
/**
|
|
992
|
+
* Minimum length
|
|
993
|
+
*/
|
|
994
|
+
minLength?: number;
|
|
995
|
+
/**
|
|
996
|
+
* Size variant
|
|
997
|
+
*/
|
|
998
|
+
size?: Size;
|
|
999
|
+
/**
|
|
1000
|
+
* Color variant
|
|
1001
|
+
*/
|
|
1002
|
+
variant?: ThemeColor;
|
|
1003
|
+
/**
|
|
1004
|
+
* Whether the textarea is invalid
|
|
1005
|
+
*/
|
|
1006
|
+
invalid?: boolean;
|
|
1007
|
+
/**
|
|
1008
|
+
* Whether the textarea is valid
|
|
1009
|
+
*/
|
|
1010
|
+
valid?: boolean;
|
|
1011
|
+
/**
|
|
1012
|
+
* Whether the textarea should receive focus on render
|
|
1013
|
+
*/
|
|
1014
|
+
autoFocus?: boolean;
|
|
1015
|
+
/**
|
|
1016
|
+
* Accessible label (if no visible label)
|
|
1017
|
+
*/
|
|
1018
|
+
ariaLabel?: string;
|
|
1019
|
+
/**
|
|
1020
|
+
* ID of element that describes this textarea
|
|
1021
|
+
*/
|
|
1022
|
+
ariaDescribedBy?: string;
|
|
1023
|
+
/**
|
|
1024
|
+
* Glass morphism effect
|
|
1025
|
+
*/
|
|
1026
|
+
glass?: boolean | Omit<AtomixGlassProps, 'children'>;
|
|
1027
|
+
/**
|
|
1028
|
+
* Whether to show character counter
|
|
1029
|
+
*/
|
|
1030
|
+
showCounter?: boolean;
|
|
1031
|
+
/**
|
|
1032
|
+
* Maximum character count for counter (uses maxLength if not provided)
|
|
1033
|
+
*/
|
|
1034
|
+
maxCount?: number;
|
|
1035
|
+
/**
|
|
1036
|
+
* Error message to display
|
|
1037
|
+
*/
|
|
1038
|
+
errorMessage?: string;
|
|
1039
|
+
/**
|
|
1040
|
+
* Helper text to display
|
|
1041
|
+
*/
|
|
1042
|
+
helperText?: string;
|
|
1043
|
+
/**
|
|
1044
|
+
* Whether the textarea should take full width
|
|
1045
|
+
*/
|
|
1046
|
+
fullWidth?: boolean;
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
/**
|
|
1050
|
+
* Checkbox - A component for checkbox inputs
|
|
1051
|
+
*/
|
|
1052
|
+
declare const Checkbox: React$1.FC<CheckboxProps>;
|
|
1053
|
+
|
|
1054
|
+
/**
|
|
1055
|
+
* Form - A component for creating form layouts
|
|
1056
|
+
*/
|
|
1057
|
+
declare const Form: React$1.FC<FormProps>;
|
|
1058
|
+
|
|
1059
|
+
/**
|
|
1060
|
+
* FormGroup - A component for grouping form controls with labels and help text
|
|
1061
|
+
*/
|
|
1062
|
+
declare const FormGroup: React$1.FC<FormGroupProps>;
|
|
1063
|
+
|
|
1064
|
+
/**
|
|
1065
|
+
* Input - A component for text input fields
|
|
1066
|
+
*/
|
|
1067
|
+
declare const Input: React$1.MemoExoticComponent<React$1.ForwardRefExoticComponent<InputProps & React$1.RefAttributes<HTMLInputElement>>>;
|
|
1068
|
+
|
|
1069
|
+
/**
|
|
1070
|
+
* Radio - A component for radio button inputs
|
|
1071
|
+
*/
|
|
1072
|
+
declare const Radio: React$1.FC<RadioProps>;
|
|
1073
|
+
|
|
1074
|
+
/**
|
|
1075
|
+
* Select - A component for dropdown selection
|
|
1076
|
+
*/
|
|
1077
|
+
declare const Select: React$1.FC<SelectProps>;
|
|
1078
|
+
|
|
1079
|
+
/**
|
|
1080
|
+
* Textarea - A component for multiline text input
|
|
1081
|
+
*/
|
|
1082
|
+
declare const Textarea: React$1.MemoExoticComponent<React$1.ForwardRefExoticComponent<TextareaProps & React$1.RefAttributes<HTMLTextAreaElement>>>;
|
|
1083
|
+
|
|
1084
|
+
export { Checkbox, Form, FormGroup, Input, Radio, Select, Textarea };
|
|
1085
|
+
export type { CheckboxProps, FormGroupProps, FormProps, InputProps, RadioProps, SelectProps, TextareaProps };
|