@shohojdhara/atomix 0.3.4 → 0.3.6
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 +101 -199
- package/atomix.config.ts +241 -0
- package/dist/atomix.css +269 -189
- package/dist/atomix.css.map +1 -0
- package/dist/atomix.min.css +15179 -11
- package/dist/atomix.min.css.map +1 -0
- package/dist/charts.d.ts +1929 -0
- package/dist/charts.js +6477 -0
- package/dist/charts.js.map +1 -0
- package/dist/core.d.ts +1289 -0
- package/dist/core.js +3373 -0
- package/dist/core.js.map +1 -0
- package/dist/forms.d.ts +1085 -0
- package/dist/forms.js +2466 -0
- package/dist/forms.js.map +1 -0
- package/dist/heavy.d.ts +636 -0
- package/dist/heavy.js +4566 -0
- package/dist/heavy.js.map +1 -0
- package/dist/index.d.ts +5171 -4792
- package/dist/index.esm.js +6098 -4563
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +6291 -4747
- 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 +2122 -0
- package/dist/theme.js +6084 -0
- package/dist/theme.js.map +1 -0
- package/package.json +59 -27
- package/scripts/atomix-cli.js +544 -16
- 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 +1 -1
- package/scripts/cli/token-manager.js +32 -7
- package/scripts/cli/utils.js +347 -0
- package/src/components/Accordion/Accordion.stories.tsx +50 -17
- package/src/components/Accordion/Accordion.tsx +5 -54
- package/src/components/Accordion/index.ts +1 -1
- package/src/components/AtomixGlass/AtomixGlass.tsx +65 -31
- package/src/components/AtomixGlass/AtomixGlassContainer.tsx +11 -4
- package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +1 -32
- package/src/components/AtomixGlass/stories/Examples.stories.tsx +2 -2
- package/src/components/AtomixGlass/stories/shared-components.tsx +0 -31
- package/src/components/Avatar/Avatar.stories.tsx +7 -0
- package/src/components/Avatar/Avatar.tsx +3 -3
- package/src/components/Badge/Badge.stories.tsx +91 -13
- package/src/components/Badge/Badge.tsx +3 -3
- package/src/components/Block/Block.stories.tsx +7 -23
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +7 -0
- package/src/components/Breadcrumb/Breadcrumb.tsx +3 -3
- package/src/components/Button/Button.stories.tsx +141 -22
- package/src/components/Button/ButtonGroup.stories.tsx +315 -0
- package/src/components/Button/ButtonGroup.tsx +67 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Callout/Callout.stories.tsx +8 -6
- package/src/components/Card/Card.stories.tsx +82 -28
- package/src/components/Card/ElevationCard.tsx +1 -1
- package/src/components/Chart/AnimatedChart.tsx +19 -18
- package/src/components/Chart/AreaChart.tsx +5 -2
- package/src/components/Chart/BarChart.tsx +1 -1
- package/src/components/Chart/BubbleChart.tsx +6 -6
- package/src/components/Chart/CandlestickChart.tsx +0 -1
- package/src/components/Chart/Chart.stories.tsx +5 -7
- package/src/components/Chart/Chart.tsx +0 -16
- package/src/components/Chart/ChartRenderer.tsx +1 -1
- package/src/components/Chart/ChartToolbar.tsx +1 -0
- package/src/components/Chart/DonutChart.tsx +0 -1
- package/src/components/Chart/FunnelChart.tsx +1 -2
- package/src/components/Chart/GaugeChart.tsx +0 -1
- package/src/components/Chart/HeatmapChart.tsx +0 -1
- package/src/components/Chart/LineChart.tsx +0 -1
- package/src/components/Chart/MultiAxisChart.tsx +0 -1
- package/src/components/Chart/PieChart.tsx +0 -1
- package/src/components/Chart/RadarChart.tsx +19 -13
- package/src/components/Chart/ScatterChart.tsx +3 -4
- package/src/components/Chart/TreemapChart.tsx +2 -1
- package/src/components/Chart/WaterfallChart.tsx +0 -2
- package/src/components/Chart/types.ts +12 -2
- package/src/components/Chart/utils.ts +4 -3
- package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +7 -0
- package/src/components/DataTable/DataTable.stories.tsx +23 -16
- package/src/components/DataTable/DataTable.tsx +3 -3
- package/src/components/DatePicker/DatePicker.stories.tsx +27 -19
- package/src/components/Dropdown/Dropdown.stories.tsx +11 -19
- package/src/components/Dropdown/Dropdown.tsx +12 -9
- package/src/components/EdgePanel/EdgePanel.stories.tsx +1 -0
- package/src/components/Footer/Footer.stories.tsx +8 -6
- package/src/components/Footer/FooterLink.tsx +9 -2
- package/src/components/Footer/FooterSection.tsx +3 -3
- package/src/components/Form/Checkbox.stories.tsx +7 -0
- package/src/components/Form/Checkbox.tsx +3 -3
- package/src/components/Form/Form.stories.tsx +7 -0
- package/src/components/Form/FormGroup.stories.tsx +9 -1
- package/src/components/Form/Input.stories.tsx +69 -16
- package/src/components/Form/Input.tsx +4 -2
- package/src/components/Form/Radio.stories.tsx +9 -1
- package/src/components/Form/Radio.tsx +3 -3
- package/src/components/Form/Select.stories.tsx +9 -1
- package/src/components/Form/Select.tsx +3 -3
- package/src/components/Form/Textarea.stories.tsx +10 -2
- package/src/components/Form/Textarea.tsx +4 -2
- package/src/components/Hero/Hero.stories.tsx +7 -0
- package/src/components/List/List.stories.tsx +10 -3
- package/src/components/List/List.tsx +3 -3
- package/src/components/List/ListGroup.tsx +3 -1
- package/src/components/Messages/Messages.stories.tsx +8 -7
- package/src/components/Modal/Modal.stories.tsx +17 -6
- package/src/components/Modal/Modal.tsx +3 -3
- package/src/components/Navigation/Menu/MegaMenu.tsx +9 -3
- package/src/components/Navigation/Menu/Menu.stories.tsx +7 -0
- package/src/components/Navigation/Menu/Menu.tsx +9 -3
- package/src/components/Navigation/Nav/Nav.stories.tsx +7 -0
- package/src/components/Navigation/Navbar/Navbar.stories.tsx +1 -0
- package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +1 -1
- package/src/components/Pagination/Pagination.stories.tsx +188 -111
- package/src/components/Pagination/Pagination.tsx +88 -7
- package/src/components/PhotoViewer/PhotoViewer.stories.tsx +10 -5
- package/src/components/PhotoViewer/PhotoViewerImage.tsx +2 -2
- package/src/components/Popover/Popover.stories.tsx +191 -115
- package/src/components/Popover/Popover.tsx +4 -4
- package/src/components/ProductReview/ProductReview.stories.tsx +80 -58
- package/src/components/Progress/Progress.stories.tsx +79 -49
- package/src/components/Progress/Progress.tsx +6 -2
- package/src/components/Rating/Rating.stories.tsx +109 -84
- package/src/components/Rating/Rating.tsx +5 -2
- package/src/components/River/River.stories.tsx +194 -114
- package/src/components/SectionIntro/SectionIntro.stories.tsx +19 -9
- package/src/components/Slider/Slider.stories.tsx +7 -0
- package/src/components/Slider/Slider.tsx +10 -9
- package/src/components/Spinner/Spinner.stories.tsx +15 -11
- package/src/components/Spinner/Spinner.tsx +3 -3
- package/src/components/Steps/Steps.stories.tsx +132 -98
- package/src/components/Tabs/Tabs.stories.tsx +163 -112
- package/src/components/Tabs/Tabs.tsx +3 -3
- package/src/components/Testimonial/Testimonial.stories.tsx +114 -68
- package/src/components/Todo/Todo.stories.tsx +38 -12
- package/src/components/Toggle/Toggle.stories.tsx +61 -28
- package/src/components/Tooltip/Tooltip.stories.tsx +318 -200
- package/src/components/Tooltip/Tooltip.tsx +3 -3
- package/src/components/Upload/Upload.stories.tsx +122 -84
- package/src/components/VideoPlayer/VideoPlayer.stories.tsx +7 -24
- package/src/components/index.ts +6 -2
- package/src/layouts/MasonryGrid/MasonryGrid.tsx +2 -2
- package/src/lib/composables/useAtomixGlass.ts +2 -3
- 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/useNavbar.ts +0 -10
- package/src/lib/composables/useSideMenu.ts +1 -0
- package/src/lib/composables/useVideoPlayer.ts +3 -2
- package/src/lib/config/loader.ts +57 -14
- package/src/lib/constants/components.ts +10 -0
- package/src/lib/hooks/index.ts +0 -1
- package/src/lib/hooks/useComponentCustomization.ts +11 -15
- package/src/lib/hooks/usePerformanceMonitor.ts +149 -0
- package/src/lib/patterns/index.ts +2 -2
- package/src/lib/patterns/slots.tsx +2 -2
- package/src/lib/theme/README.md +174 -0
- package/src/lib/theme/adapters/index.ts +31 -0
- package/src/lib/theme/adapters/themeAdapter.ts +287 -0
- package/src/lib/theme/config/__tests__/configLoader.test.ts +207 -0
- package/src/lib/theme/config/configLoader.ts +254 -0
- package/src/lib/theme/config/loader.ts +37 -48
- package/src/lib/theme/config/types.ts +2 -2
- package/src/lib/theme/config/validator.ts +15 -91
- package/src/lib/theme/{constants.ts → constants/constants.ts} +0 -18
- package/src/lib/theme/constants/index.ts +8 -0
- package/src/lib/theme/core/ThemeRegistry.ts +19 -6
- package/src/lib/theme/core/__tests__/createTheme.test.ts +132 -0
- package/src/lib/theme/core/composeTheme.ts +155 -0
- package/src/lib/theme/core/createTheme.ts +94 -0
- package/src/lib/theme/{createTheme.ts → core/createThemeObject.ts} +10 -6
- package/src/lib/theme/core/index.ts +5 -19
- package/src/lib/theme/devtools/Comparator.tsx +346 -22
- package/src/lib/theme/devtools/IMPROVEMENTS.md +139 -38
- package/src/lib/theme/devtools/Inspector.tsx +335 -51
- package/src/lib/theme/devtools/LiveEditor.tsx +489 -112
- package/src/lib/theme/devtools/Preview.tsx +471 -221
- package/src/lib/theme/{core → devtools}/ThemeValidator.ts +6 -3
- package/src/lib/theme/devtools/index.ts +14 -4
- package/src/lib/theme/devtools/useHistory.ts +130 -0
- package/src/lib/theme/errors/index.ts +12 -0
- package/src/lib/theme/generators/cssFile.ts +79 -0
- package/src/lib/theme/generators/generateCSS.ts +89 -0
- package/src/lib/theme/{generateCSSVariables.ts → generators/generateCSSVariables.ts} +4 -14
- package/src/lib/theme/generators/index.ts +19 -0
- package/src/lib/theme/i18n/rtl.ts +7 -7
- package/src/lib/theme/index.ts +120 -15
- package/src/lib/theme/runtime/ThemeApplicator.ts +53 -95
- package/src/lib/theme/{ThemeContext.tsx → runtime/ThemeContext.tsx} +1 -1
- package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +4 -4
- package/src/lib/theme/runtime/ThemeProvider.tsx +456 -179
- package/src/lib/theme/runtime/index.ts +1 -2
- package/src/lib/theme/runtime/useTheme.ts +1 -2
- package/src/lib/theme/test/testTheme.ts +385 -0
- package/src/lib/theme/tokens/index.ts +12 -0
- package/src/lib/theme/tokens/tokens.ts +721 -0
- package/src/lib/theme/types.ts +6 -42
- package/src/lib/theme/{utils.ts → utils/domUtils.ts} +2 -2
- package/src/lib/theme/utils/index.ts +11 -0
- package/src/lib/theme/utils/injectCSS.ts +90 -0
- package/src/lib/theme/utils/themeHelpers.ts +78 -0
- package/src/lib/theme/{themeUtils.ts → utils/themeUtils.ts} +1 -1
- package/src/lib/theme-tools.ts +8 -9
- package/src/lib/types/components.ts +93 -34
- package/src/lib/types/partProps.ts +0 -16
- package/src/lib/utils/componentUtils.ts +1 -1
- 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.design-tokens.scss +4 -1
- package/src/styles/01-settings/_settings.fonts.scss +2 -5
- package/src/styles/02-tools/_tools.button.scss +66 -79
- package/src/styles/06-components/_components.atomix-glass.scss +13 -3
- package/src/styles/06-components/_components.navbar.scss +0 -6
- package/src/styles/06-components/_components.pagination.scss +88 -0
- package/scripts/build-themes.js +0 -208
- package/scripts/sync-theme-config.js +0 -309
- package/src/components/AtomixGlass/atomixGLass.old.tsx +0 -1263
- package/src/lib/theme/composeTheme.ts +0 -370
- package/src/lib/theme/core/ThemeCache.ts +0 -283
- package/src/lib/theme/core/ThemeEngine.test.ts +0 -146
- package/src/lib/theme/core/ThemeEngine.ts +0 -657
- package/src/lib/theme/createThemeFromConfig.ts +0 -132
- package/src/lib/theme/devtools/CLI.ts +0 -364
- package/src/lib/theme/runtime/ThemeManager.test.ts +0 -192
- package/src/lib/theme/runtime/ThemeManager.ts +0 -442
- package/src/styles/03-generic/_generated-root.css +0 -5
- package/src/themes/README.md +0 -442
- package/src/themes/themes.config.js +0 -35
- /package/src/lib/theme/{cssVariableMapper.ts → adapters/cssVariableMapper.ts} +0 -0
- /package/src/lib/theme/{errors.ts → errors/errors.ts} +0 -0
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,1289 @@
|
|
|
1
|
+
import React$1, { ReactNode, HTMLAttributes, ElementType } from 'react';
|
|
2
|
+
import * as _phosphor_icons_react from '@phosphor-icons/react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Part-Based Styling Props
|
|
6
|
+
*
|
|
7
|
+
* Type definitions for styling individual component parts with className and style props.
|
|
8
|
+
* This enables granular customization of component internals.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Style properties for a component part
|
|
13
|
+
*/
|
|
14
|
+
interface PartStyleProps {
|
|
15
|
+
/** Additional CSS class name for the part */
|
|
16
|
+
className?: string;
|
|
17
|
+
/** Inline styles for the part */
|
|
18
|
+
style?: React$1.CSSProperties;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Generic component parts type
|
|
22
|
+
* T is a union of part names as strings
|
|
23
|
+
*/
|
|
24
|
+
type ComponentParts<T extends string> = {
|
|
25
|
+
[K in T]?: PartStyleProps;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Button component parts
|
|
29
|
+
*/
|
|
30
|
+
type ButtonParts = ComponentParts<'root' | 'icon' | 'label' | 'spinner'> & {
|
|
31
|
+
/** Root button element */
|
|
32
|
+
root?: PartStyleProps;
|
|
33
|
+
/** Icon wrapper element */
|
|
34
|
+
icon?: PartStyleProps;
|
|
35
|
+
/** Label/text wrapper element */
|
|
36
|
+
label?: PartStyleProps;
|
|
37
|
+
/** Loading spinner element */
|
|
38
|
+
spinner?: PartStyleProps;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Card component parts
|
|
42
|
+
*/
|
|
43
|
+
type CardParts = ComponentParts<'root' | 'header' | 'body' | 'footer' | 'title' | 'text' | 'image' | 'actions' | 'icon'> & {
|
|
44
|
+
/** Root card element */
|
|
45
|
+
root?: PartStyleProps;
|
|
46
|
+
/** Header section */
|
|
47
|
+
header?: PartStyleProps;
|
|
48
|
+
/** Body/content section */
|
|
49
|
+
body?: PartStyleProps;
|
|
50
|
+
/** Footer section */
|
|
51
|
+
footer?: PartStyleProps;
|
|
52
|
+
/** Title element */
|
|
53
|
+
title?: PartStyleProps;
|
|
54
|
+
/** Text/description element */
|
|
55
|
+
text?: PartStyleProps;
|
|
56
|
+
/** Image element */
|
|
57
|
+
image?: PartStyleProps;
|
|
58
|
+
/** Actions container */
|
|
59
|
+
actions?: PartStyleProps;
|
|
60
|
+
/** Icon element */
|
|
61
|
+
icon?: PartStyleProps;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Badge component parts
|
|
65
|
+
*/
|
|
66
|
+
type BadgeParts = ComponentParts<'root' | 'icon' | 'label'> & {
|
|
67
|
+
/** Root badge element */
|
|
68
|
+
root?: PartStyleProps;
|
|
69
|
+
/** Icon element */
|
|
70
|
+
icon?: PartStyleProps;
|
|
71
|
+
/** Label/text element */
|
|
72
|
+
label?: PartStyleProps;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Slot configuration with multiple rendering options
|
|
77
|
+
*/
|
|
78
|
+
interface SlotProps<T = any> {
|
|
79
|
+
/** Static children to render */
|
|
80
|
+
children?: React$1.ReactNode;
|
|
81
|
+
/** Render function with access to slot props */
|
|
82
|
+
render?: (props: T) => React$1.ReactNode;
|
|
83
|
+
/** Custom component to render */
|
|
84
|
+
component?: React$1.ComponentType<T>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Slot props for Button component
|
|
88
|
+
*/
|
|
89
|
+
interface ButtonRootSlotProps {
|
|
90
|
+
className: string;
|
|
91
|
+
style?: React$1.CSSProperties;
|
|
92
|
+
children: React$1.ReactNode;
|
|
93
|
+
disabled?: boolean;
|
|
94
|
+
loading?: boolean;
|
|
95
|
+
onClick?: React$1.MouseEventHandler<HTMLButtonElement>;
|
|
96
|
+
type?: 'button' | 'submit' | 'reset';
|
|
97
|
+
'aria-label'?: string;
|
|
98
|
+
'aria-disabled'?: boolean;
|
|
99
|
+
'aria-busy'?: boolean;
|
|
100
|
+
}
|
|
101
|
+
interface ButtonIconSlotProps {
|
|
102
|
+
className: string;
|
|
103
|
+
style?: React$1.CSSProperties;
|
|
104
|
+
children: React$1.ReactNode;
|
|
105
|
+
size?: 'sm' | 'md' | 'lg';
|
|
106
|
+
}
|
|
107
|
+
interface ButtonLabelSlotProps {
|
|
108
|
+
className: string;
|
|
109
|
+
style?: React$1.CSSProperties;
|
|
110
|
+
children: React$1.ReactNode;
|
|
111
|
+
}
|
|
112
|
+
interface ButtonSpinnerSlotProps {
|
|
113
|
+
className: string;
|
|
114
|
+
style?: React$1.CSSProperties;
|
|
115
|
+
size?: 'sm' | 'md' | 'lg';
|
|
116
|
+
variant?: string;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Slot props for Badge component
|
|
120
|
+
*/
|
|
121
|
+
interface BadgeRootSlotProps {
|
|
122
|
+
className: string;
|
|
123
|
+
style?: React$1.CSSProperties;
|
|
124
|
+
children: React$1.ReactNode;
|
|
125
|
+
onClick?: React$1.MouseEventHandler<HTMLSpanElement>;
|
|
126
|
+
role?: string;
|
|
127
|
+
'aria-label'?: string;
|
|
128
|
+
}
|
|
129
|
+
interface BadgeIconSlotProps {
|
|
130
|
+
className: string;
|
|
131
|
+
style?: React$1.CSSProperties;
|
|
132
|
+
children: React$1.ReactNode;
|
|
133
|
+
}
|
|
134
|
+
interface BadgeLabelSlotProps {
|
|
135
|
+
className: string;
|
|
136
|
+
style?: React$1.CSSProperties;
|
|
137
|
+
children: React$1.ReactNode;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* CSS Variables Constants
|
|
142
|
+
*
|
|
143
|
+
* Comprehensive CSS custom property definitions for all components.
|
|
144
|
+
* These provide type-safe access to component styling variables.
|
|
145
|
+
*/
|
|
146
|
+
/**
|
|
147
|
+
* Button CSS Variables
|
|
148
|
+
*/
|
|
149
|
+
declare const BUTTON_CSS_VARS: {
|
|
150
|
+
readonly '--atomix-button-bg': "background-color";
|
|
151
|
+
readonly '--atomix-button-color': "text color";
|
|
152
|
+
readonly '--atomix-button-padding-x': "horizontal padding";
|
|
153
|
+
readonly '--atomix-button-padding-y': "vertical padding";
|
|
154
|
+
readonly '--atomix-button-border-radius': "border radius";
|
|
155
|
+
readonly '--atomix-button-border-width': "border width";
|
|
156
|
+
readonly '--atomix-button-border-color': "border color";
|
|
157
|
+
readonly '--atomix-button-font-size': "font size";
|
|
158
|
+
readonly '--atomix-button-font-weight': "font weight";
|
|
159
|
+
readonly '--atomix-button-font-family': "font family";
|
|
160
|
+
readonly '--atomix-button-line-height': "line height";
|
|
161
|
+
readonly '--atomix-button-min-width': "minimum width";
|
|
162
|
+
readonly '--atomix-button-min-height': "minimum height";
|
|
163
|
+
readonly '--atomix-button-transition': "transition";
|
|
164
|
+
readonly '--atomix-button-hover-bg': "hover background";
|
|
165
|
+
readonly '--atomix-button-hover-color': "hover text color";
|
|
166
|
+
readonly '--atomix-button-hover-border-color': "hover border color";
|
|
167
|
+
readonly '--atomix-button-active-bg': "active background";
|
|
168
|
+
readonly '--atomix-button-active-color': "active text color";
|
|
169
|
+
readonly '--atomix-button-focus-ring-color': "focus ring color";
|
|
170
|
+
readonly '--atomix-button-focus-ring-width': "focus ring width";
|
|
171
|
+
readonly '--atomix-button-disabled-opacity': "disabled opacity";
|
|
172
|
+
readonly '--atomix-button-disabled-bg': "disabled background";
|
|
173
|
+
readonly '--atomix-button-icon-size': "icon size";
|
|
174
|
+
readonly '--atomix-button-icon-gap': "icon spacing";
|
|
175
|
+
readonly '--atomix-button-spinner-size': "spinner size";
|
|
176
|
+
readonly '--atomix-button-label-font-weight': "label font weight";
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Card CSS Variables
|
|
180
|
+
*/
|
|
181
|
+
declare const CARD_CSS_VARS: {
|
|
182
|
+
readonly '--atomix-card-bg': "background color";
|
|
183
|
+
readonly '--atomix-card-color': "text color";
|
|
184
|
+
readonly '--atomix-card-padding': "padding";
|
|
185
|
+
readonly '--atomix-card-border-radius': "border radius";
|
|
186
|
+
readonly '--atomix-card-border-width': "border width";
|
|
187
|
+
readonly '--atomix-card-border-color': "border color";
|
|
188
|
+
readonly '--atomix-card-box-shadow': "box shadow";
|
|
189
|
+
readonly '--atomix-card-width': "width";
|
|
190
|
+
readonly '--atomix-card-max-width': "maximum width";
|
|
191
|
+
readonly '--atomix-card-hover-bg': "hover background";
|
|
192
|
+
readonly '--atomix-card-hover-shadow': "hover shadow";
|
|
193
|
+
readonly '--atomix-card-hover-transform': "hover transform";
|
|
194
|
+
readonly '--atomix-card-header-padding': "header padding";
|
|
195
|
+
readonly '--atomix-card-header-bg': "header background";
|
|
196
|
+
readonly '--atomix-card-header-border-bottom': "header border bottom";
|
|
197
|
+
readonly '--atomix-card-body-padding': "body padding";
|
|
198
|
+
readonly '--atomix-card-body-font-size': "body font size";
|
|
199
|
+
readonly '--atomix-card-footer-padding': "footer padding";
|
|
200
|
+
readonly '--atomix-card-footer-bg': "footer background";
|
|
201
|
+
readonly '--atomix-card-footer-border-top': "footer border top";
|
|
202
|
+
readonly '--atomix-card-title-font-size': "title font size";
|
|
203
|
+
readonly '--atomix-card-title-font-weight': "title font weight";
|
|
204
|
+
readonly '--atomix-card-title-color': "title color";
|
|
205
|
+
readonly '--atomix-card-title-margin-bottom': "title margin bottom";
|
|
206
|
+
readonly '--atomix-card-image-border-radius': "image border radius";
|
|
207
|
+
readonly '--atomix-card-image-max-height': "image max height";
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* Badge CSS Variables
|
|
211
|
+
*/
|
|
212
|
+
declare const BADGE_CSS_VARS: {
|
|
213
|
+
readonly '--atomix-badge-bg': "background color";
|
|
214
|
+
readonly '--atomix-badge-color': "text color";
|
|
215
|
+
readonly '--atomix-badge-padding-x': "horizontal padding";
|
|
216
|
+
readonly '--atomix-badge-padding-y': "vertical padding";
|
|
217
|
+
readonly '--atomix-badge-border-radius': "border radius";
|
|
218
|
+
readonly '--atomix-badge-font-size': "font size";
|
|
219
|
+
readonly '--atomix-badge-font-weight': "font weight";
|
|
220
|
+
readonly '--atomix-badge-line-height': "line height";
|
|
221
|
+
readonly '--atomix-badge-icon-size': "icon size";
|
|
222
|
+
readonly '--atomix-badge-icon-gap': "icon spacing";
|
|
223
|
+
};
|
|
224
|
+
/**
|
|
225
|
+
* Type-safe CSS variable keys by component
|
|
226
|
+
*/
|
|
227
|
+
type ButtonCSSVariable = keyof typeof BUTTON_CSS_VARS;
|
|
228
|
+
type CardCSSVariable = keyof typeof CARD_CSS_VARS;
|
|
229
|
+
type BadgeCSSVariable = keyof typeof BADGE_CSS_VARS;
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Displacement mode for glass effect
|
|
233
|
+
*/
|
|
234
|
+
type DisplacementMode = 'standard' | 'polar' | 'prominent' | 'shader';
|
|
235
|
+
/**
|
|
236
|
+
* Mouse position coordinates
|
|
237
|
+
*/
|
|
238
|
+
interface MousePosition {
|
|
239
|
+
x: number;
|
|
240
|
+
y: number;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* OverLight configuration - can be boolean, 'auto', or object with settings
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* // Boolean - explicit control
|
|
247
|
+
* overLight={true}
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* // Auto-detection - automatically detects background brightness
|
|
251
|
+
* overLight="auto"
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* // Object config - auto-detection with custom settings
|
|
255
|
+
* overLight={{
|
|
256
|
+
* threshold: 0.8,
|
|
257
|
+
* opacity: 0.6,
|
|
258
|
+
* contrast: 1.8,
|
|
259
|
+
* brightness: 1.0,
|
|
260
|
+
* saturationBoost: 1.5
|
|
261
|
+
* }}
|
|
262
|
+
*/
|
|
263
|
+
type OverLightConfig = boolean | 'auto' | OverLightObjectConfig;
|
|
264
|
+
/**
|
|
265
|
+
* OverLight object configuration
|
|
266
|
+
*
|
|
267
|
+
* When using object mode, the component will auto-detect background brightness
|
|
268
|
+
* and apply the custom settings. All properties are optional and will use
|
|
269
|
+
* sensible defaults if not provided.
|
|
270
|
+
*
|
|
271
|
+
* @example
|
|
272
|
+
* // Minimal config - only threshold
|
|
273
|
+
* overLight={{ threshold: 0.8 }}
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* // Full config with all properties
|
|
277
|
+
* overLight={{
|
|
278
|
+
* threshold: 0.75,
|
|
279
|
+
* opacity: 0.6,
|
|
280
|
+
* contrast: 1.8,
|
|
281
|
+
* brightness: 1.1,
|
|
282
|
+
* saturationBoost: 1.5
|
|
283
|
+
* }}
|
|
284
|
+
*/
|
|
285
|
+
interface OverLightObjectConfig {
|
|
286
|
+
/**
|
|
287
|
+
* Luminance threshold for auto-detection (0.1 - 1.0)
|
|
288
|
+
*
|
|
289
|
+
* Backgrounds with average luminance above this threshold will be
|
|
290
|
+
* considered "light" and trigger overLight mode.
|
|
291
|
+
*
|
|
292
|
+
* @default 0.7
|
|
293
|
+
* @minimum 0.1
|
|
294
|
+
* @maximum 1.0
|
|
295
|
+
*
|
|
296
|
+
* @example
|
|
297
|
+
* // More sensitive detection (triggers on lighter backgrounds)
|
|
298
|
+
* threshold: 0.6
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* // Less sensitive detection (only very light backgrounds)
|
|
302
|
+
* threshold: 0.85
|
|
303
|
+
*/
|
|
304
|
+
threshold?: number;
|
|
305
|
+
/**
|
|
306
|
+
* Base opacity for overLight layers (0.1 - 1.0)
|
|
307
|
+
*
|
|
308
|
+
* Controls the opacity of the base and overlay layers when overLight
|
|
309
|
+
* mode is active. This value is multiplied by hover/active intensity
|
|
310
|
+
* multipliers for dynamic effects.
|
|
311
|
+
*
|
|
312
|
+
* @default 0.5 (dynamic, depends on hover/active state)
|
|
313
|
+
* @minimum 0.1
|
|
314
|
+
* @maximum 1.0
|
|
315
|
+
*
|
|
316
|
+
* @example
|
|
317
|
+
* // Subtle overlay
|
|
318
|
+
* opacity: 0.3
|
|
319
|
+
*
|
|
320
|
+
* @example
|
|
321
|
+
* // Strong overlay
|
|
322
|
+
* opacity: 0.7
|
|
323
|
+
*/
|
|
324
|
+
opacity?: number;
|
|
325
|
+
/**
|
|
326
|
+
* Contrast enhancement multiplier (0.5 - 2.5)
|
|
327
|
+
*
|
|
328
|
+
* Increases the contrast of the glass effect for better visibility
|
|
329
|
+
* on light backgrounds. Higher values create more dramatic effects.
|
|
330
|
+
*
|
|
331
|
+
* @default 1.4 (dynamic, includes mouse influence)
|
|
332
|
+
* @minimum 0.5
|
|
333
|
+
* @maximum 2.5
|
|
334
|
+
*
|
|
335
|
+
* @example
|
|
336
|
+
* // Subtle contrast boost
|
|
337
|
+
* contrast: 1.2
|
|
338
|
+
*
|
|
339
|
+
* @example
|
|
340
|
+
* // High contrast for maximum visibility
|
|
341
|
+
* contrast: 2.0
|
|
342
|
+
*/
|
|
343
|
+
contrast?: number;
|
|
344
|
+
/**
|
|
345
|
+
* Brightness adjustment multiplier (0.5 - 2.0)
|
|
346
|
+
*
|
|
347
|
+
* Adjusts the overall brightness of the glass effect. Values above 1.0
|
|
348
|
+
* brighten the effect, while values below 1.0 darken it.
|
|
349
|
+
*
|
|
350
|
+
* @default 0.85 (dynamic, includes mouse influence)
|
|
351
|
+
* @minimum 0.5
|
|
352
|
+
* @maximum 2.0
|
|
353
|
+
*
|
|
354
|
+
* @example
|
|
355
|
+
* // Neutral brightness
|
|
356
|
+
* brightness: 1.0
|
|
357
|
+
*
|
|
358
|
+
* @example
|
|
359
|
+
* // Brighter effect
|
|
360
|
+
* brightness: 1.2
|
|
361
|
+
*/
|
|
362
|
+
brightness?: number;
|
|
363
|
+
/**
|
|
364
|
+
* Saturation boost multiplier (0.5 - 3.0)
|
|
365
|
+
*
|
|
366
|
+
* Enhances color saturation for more vibrant glass effects on light
|
|
367
|
+
* backgrounds. This works in conjunction with the base saturation prop.
|
|
368
|
+
*
|
|
369
|
+
* @default 1.3 (dynamic, includes mouse influence)
|
|
370
|
+
* @minimum 0.5
|
|
371
|
+
* @maximum 3.0
|
|
372
|
+
*
|
|
373
|
+
* @example
|
|
374
|
+
* // Moderate saturation boost
|
|
375
|
+
* saturationBoost: 1.2
|
|
376
|
+
*
|
|
377
|
+
* @example
|
|
378
|
+
* // High saturation for vivid effects
|
|
379
|
+
* saturationBoost: 2.0
|
|
380
|
+
*/
|
|
381
|
+
saturationBoost?: number;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* AtomixGlass component props interface
|
|
385
|
+
*/
|
|
386
|
+
interface AtomixGlassProps {
|
|
387
|
+
children: React.ReactNode;
|
|
388
|
+
displacementScale?: number;
|
|
389
|
+
blurAmount?: number;
|
|
390
|
+
saturation?: number;
|
|
391
|
+
aberrationIntensity?: number;
|
|
392
|
+
elasticity?: number;
|
|
393
|
+
cornerRadius?: number;
|
|
394
|
+
globalMousePosition?: MousePosition;
|
|
395
|
+
mouseOffset?: MousePosition;
|
|
396
|
+
mouseContainer?: React.RefObject<HTMLElement | null> | null;
|
|
397
|
+
className?: string;
|
|
398
|
+
padding?: string;
|
|
399
|
+
style?: React.CSSProperties;
|
|
400
|
+
overLight?: OverLightConfig;
|
|
401
|
+
mode?: DisplacementMode;
|
|
402
|
+
onClick?: () => void;
|
|
403
|
+
/**
|
|
404
|
+
* Shader variant for shader mode
|
|
405
|
+
*/
|
|
406
|
+
shaderVariant?: 'liquidGlass' | 'premiumGlass';
|
|
407
|
+
/**
|
|
408
|
+
* Accessibility props
|
|
409
|
+
*/
|
|
410
|
+
'aria-label'?: string;
|
|
411
|
+
'aria-describedby'?: string;
|
|
412
|
+
role?: string;
|
|
413
|
+
tabIndex?: number;
|
|
414
|
+
/**
|
|
415
|
+
* Performance and accessibility options
|
|
416
|
+
*/
|
|
417
|
+
reducedMotion?: boolean;
|
|
418
|
+
highContrast?: boolean;
|
|
419
|
+
disableEffects?: boolean;
|
|
420
|
+
enableLiquidBlur?: boolean;
|
|
421
|
+
enableBorderEffect?: boolean;
|
|
422
|
+
enableOverLightLayers?: boolean;
|
|
423
|
+
/**
|
|
424
|
+
* Performance monitoring
|
|
425
|
+
*/
|
|
426
|
+
enablePerformanceMonitoring?: boolean;
|
|
427
|
+
/**
|
|
428
|
+
* Debug mode for cornerRadius extraction
|
|
429
|
+
*/
|
|
430
|
+
debugCornerRadius?: boolean;
|
|
431
|
+
/**
|
|
432
|
+
* Debug mode for overLight detection and configuration
|
|
433
|
+
*
|
|
434
|
+
* When enabled, logs detailed information about:
|
|
435
|
+
* - Auto-detection results (luminance values, threshold comparison)
|
|
436
|
+
* - Final overLight configuration values
|
|
437
|
+
* - Detection timing and performance
|
|
438
|
+
*
|
|
439
|
+
* Useful for debugging auto-detection issues and fine-tuning thresholds.
|
|
440
|
+
*
|
|
441
|
+
* @default false
|
|
442
|
+
*
|
|
443
|
+
* @example
|
|
444
|
+
* <AtomixGlass overLight="auto" debugOverLight={true}>
|
|
445
|
+
* Content
|
|
446
|
+
* </AtomixGlass>
|
|
447
|
+
*/
|
|
448
|
+
debugOverLight?: boolean;
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Common component size options
|
|
452
|
+
*/
|
|
453
|
+
type Size = 'sm' | 'md' | 'lg';
|
|
454
|
+
/**
|
|
455
|
+
* Theme color variants
|
|
456
|
+
*/
|
|
457
|
+
type ThemeColor = 'primary' | 'secondary' | 'tertiary' | 'invert' | 'brand' | 'error' | 'success' | 'warning' | 'info' | 'light' | 'dark';
|
|
458
|
+
/**
|
|
459
|
+
* Component variant including theme colors and outline variants
|
|
460
|
+
*/
|
|
461
|
+
type Variant = ThemeColor | `outline-${ThemeColor}` | 'link';
|
|
462
|
+
/**
|
|
463
|
+
* Base component properties interface
|
|
464
|
+
*/
|
|
465
|
+
interface BaseComponentProps {
|
|
466
|
+
/**
|
|
467
|
+
* Additional CSS class names
|
|
468
|
+
*/
|
|
469
|
+
className?: string;
|
|
470
|
+
/**
|
|
471
|
+
* Component disabled state
|
|
472
|
+
*/
|
|
473
|
+
disabled?: boolean;
|
|
474
|
+
/**
|
|
475
|
+
* Component children
|
|
476
|
+
*/
|
|
477
|
+
children?: ReactNode;
|
|
478
|
+
/**
|
|
479
|
+
* Inline style for the component root element
|
|
480
|
+
*/
|
|
481
|
+
style?: React.CSSProperties;
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Icon position options
|
|
485
|
+
*/
|
|
486
|
+
type IconPosition = 'left' | 'right';
|
|
487
|
+
type listvariant = 'dash' | 'number' | 'text';
|
|
488
|
+
/**;
|
|
489
|
+
* List component properties
|
|
490
|
+
*/
|
|
491
|
+
interface ListProps extends BaseComponentProps {
|
|
492
|
+
children?: ReactNode;
|
|
493
|
+
/**
|
|
494
|
+
* List items
|
|
495
|
+
*/
|
|
496
|
+
items?: ReactNode[];
|
|
497
|
+
/**
|
|
498
|
+
* List variant
|
|
499
|
+
*/
|
|
500
|
+
variant?: listvariant;
|
|
501
|
+
/**
|
|
502
|
+
* List size
|
|
503
|
+
*/
|
|
504
|
+
size?: Size;
|
|
505
|
+
/**
|
|
506
|
+
* Whether the list is ordered
|
|
507
|
+
*/
|
|
508
|
+
ordered?: boolean;
|
|
509
|
+
/**
|
|
510
|
+
* Whether to display list items inline
|
|
511
|
+
*/
|
|
512
|
+
inline?: boolean;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* List group component properties
|
|
516
|
+
*/
|
|
517
|
+
interface ListGroupProps$1 extends BaseComponentProps {
|
|
518
|
+
/**
|
|
519
|
+
* List group children
|
|
520
|
+
*/
|
|
521
|
+
children?: ReactNode;
|
|
522
|
+
/**
|
|
523
|
+
* List group variant
|
|
524
|
+
*/
|
|
525
|
+
variant?: Variant;
|
|
526
|
+
/**
|
|
527
|
+
* List group size
|
|
528
|
+
*/
|
|
529
|
+
size?: Size;
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Button component properties
|
|
533
|
+
*/
|
|
534
|
+
interface ButtonProps extends BaseComponentProps {
|
|
535
|
+
/**
|
|
536
|
+
* Button contents
|
|
537
|
+
*/
|
|
538
|
+
label?: string;
|
|
539
|
+
/**
|
|
540
|
+
* Optional click handler
|
|
541
|
+
*/
|
|
542
|
+
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
543
|
+
/**
|
|
544
|
+
* Button variant
|
|
545
|
+
*/
|
|
546
|
+
variant?: Variant;
|
|
547
|
+
/**
|
|
548
|
+
* Button size
|
|
549
|
+
*/
|
|
550
|
+
size?: Size;
|
|
551
|
+
/**
|
|
552
|
+
* Part-based styling (NEW)
|
|
553
|
+
* Allows styling individual button parts
|
|
554
|
+
*/
|
|
555
|
+
parts?: ButtonParts;
|
|
556
|
+
/**
|
|
557
|
+
* CSS variable overrides (NEW)
|
|
558
|
+
* Runtime CSS custom property overrides
|
|
559
|
+
*/
|
|
560
|
+
cssVars?: Partial<Record<ButtonCSSVariable, string | number>>;
|
|
561
|
+
/**
|
|
562
|
+
* Slot-based customization (NEW)
|
|
563
|
+
* Complete control over rendering
|
|
564
|
+
*/
|
|
565
|
+
slots?: {
|
|
566
|
+
root?: SlotProps<ButtonRootSlotProps>;
|
|
567
|
+
icon?: SlotProps<ButtonIconSlotProps>;
|
|
568
|
+
label?: SlotProps<ButtonLabelSlotProps>;
|
|
569
|
+
spinner?: SlotProps<ButtonSpinnerSlotProps>;
|
|
570
|
+
};
|
|
571
|
+
/**
|
|
572
|
+
* Optional icon (ReactNode)
|
|
573
|
+
*/
|
|
574
|
+
icon?: ReactNode;
|
|
575
|
+
/**
|
|
576
|
+
* Icon name from Phosphor Icons (simplified icon prop)
|
|
577
|
+
* When provided, automatically creates an Icon component
|
|
578
|
+
* @example iconName="Rocket" iconSize="sm"
|
|
579
|
+
*/
|
|
580
|
+
iconName?: string;
|
|
581
|
+
/**
|
|
582
|
+
* Icon size (used with iconName prop)
|
|
583
|
+
*/
|
|
584
|
+
iconSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
585
|
+
/**
|
|
586
|
+
* Icon position (start or end)
|
|
587
|
+
*/
|
|
588
|
+
iconPosition?: 'start' | 'end';
|
|
589
|
+
/**
|
|
590
|
+
* Icon only button
|
|
591
|
+
*/
|
|
592
|
+
iconOnly?: boolean;
|
|
593
|
+
/**
|
|
594
|
+
* Make button fully rounded (pill shape)
|
|
595
|
+
*/
|
|
596
|
+
rounded?: boolean;
|
|
597
|
+
/**
|
|
598
|
+
* Full width button (takes 100% of container width)
|
|
599
|
+
*/
|
|
600
|
+
fullWidth?: boolean;
|
|
601
|
+
/**
|
|
602
|
+
* Block-level button (full width with block display)
|
|
603
|
+
*/
|
|
604
|
+
block?: boolean;
|
|
605
|
+
/**
|
|
606
|
+
* Loading state - shows spinner and disables button
|
|
607
|
+
*/
|
|
608
|
+
loading?: boolean;
|
|
609
|
+
/**
|
|
610
|
+
* Custom loading text (replaces label when loading)
|
|
611
|
+
*/
|
|
612
|
+
loadingText?: string;
|
|
613
|
+
/**
|
|
614
|
+
* Active state
|
|
615
|
+
*/
|
|
616
|
+
active?: boolean;
|
|
617
|
+
/**
|
|
618
|
+
* Selected state
|
|
619
|
+
*/
|
|
620
|
+
selected?: boolean;
|
|
621
|
+
/**
|
|
622
|
+
* Button type attribute
|
|
623
|
+
*/
|
|
624
|
+
type?: 'button' | 'submit' | 'reset';
|
|
625
|
+
/**
|
|
626
|
+
* Glass morphism effect for the button
|
|
627
|
+
* Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
|
|
628
|
+
*/
|
|
629
|
+
glass?: AtomixGlassProps | boolean;
|
|
630
|
+
/**
|
|
631
|
+
* Optional hover handler
|
|
632
|
+
*/
|
|
633
|
+
onHover?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
634
|
+
/**
|
|
635
|
+
* Optional focus handler
|
|
636
|
+
*/
|
|
637
|
+
onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void;
|
|
638
|
+
/**
|
|
639
|
+
* Optional blur handler
|
|
640
|
+
*/
|
|
641
|
+
onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void;
|
|
642
|
+
/**
|
|
643
|
+
* ARIA label for accessibility
|
|
644
|
+
*/
|
|
645
|
+
ariaLabel?: string;
|
|
646
|
+
/**
|
|
647
|
+
* ARIA described by reference
|
|
648
|
+
*/
|
|
649
|
+
ariaDescribedBy?: string;
|
|
650
|
+
/**
|
|
651
|
+
* ARIA expanded state (for toggle buttons)
|
|
652
|
+
*/
|
|
653
|
+
ariaExpanded?: boolean;
|
|
654
|
+
/**
|
|
655
|
+
* ARIA controls reference
|
|
656
|
+
*/
|
|
657
|
+
ariaControls?: string;
|
|
658
|
+
/**
|
|
659
|
+
* Tab index for keyboard navigation
|
|
660
|
+
*/
|
|
661
|
+
tabIndex?: number;
|
|
662
|
+
/**
|
|
663
|
+
* Link URL - when provided, button renders as Next.js Link or anchor element
|
|
664
|
+
* Automatically wraps with Next.js Link if available, otherwise uses anchor
|
|
665
|
+
*/
|
|
666
|
+
href?: string;
|
|
667
|
+
/**
|
|
668
|
+
* Link target attribute (used with href)
|
|
669
|
+
*/
|
|
670
|
+
target?: '_blank' | '_self' | '_parent' | '_top';
|
|
671
|
+
/**
|
|
672
|
+
* Custom style for the button
|
|
673
|
+
*/
|
|
674
|
+
style?: React.CSSProperties;
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* Badge component properties
|
|
678
|
+
*/
|
|
679
|
+
interface BadgeProps extends BaseComponentProps {
|
|
680
|
+
/**
|
|
681
|
+
* Badge text content
|
|
682
|
+
*/
|
|
683
|
+
label: string;
|
|
684
|
+
/**
|
|
685
|
+
* Badge color variant
|
|
686
|
+
*/
|
|
687
|
+
variant?: ThemeColor;
|
|
688
|
+
/**
|
|
689
|
+
* Badge size
|
|
690
|
+
*/
|
|
691
|
+
size?: Size;
|
|
692
|
+
/**
|
|
693
|
+
* Optional icon
|
|
694
|
+
*/
|
|
695
|
+
icon?: ReactNode;
|
|
696
|
+
/**
|
|
697
|
+
* Glass morphism effect for the badge
|
|
698
|
+
* Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
|
|
699
|
+
*/
|
|
700
|
+
glass?: AtomixGlassProps | boolean;
|
|
701
|
+
/**
|
|
702
|
+
* Custom style for the badge
|
|
703
|
+
*/
|
|
704
|
+
style?: React.CSSProperties;
|
|
705
|
+
/**
|
|
706
|
+
* Part-based styling for granular customization
|
|
707
|
+
* @example
|
|
708
|
+
* parts={{
|
|
709
|
+
* root: { className: 'custom-badge', style: { boxShadow: '0 2px 8px rgba(0,0,0,0.1)' } },
|
|
710
|
+
* icon: { style: { fontSize: '18px' } },
|
|
711
|
+
* label: { className: 'badge-label' }
|
|
712
|
+
* }}
|
|
713
|
+
*/
|
|
714
|
+
parts?: BadgeParts;
|
|
715
|
+
/**
|
|
716
|
+
* CSS variable overrides for runtime customization
|
|
717
|
+
* @example
|
|
718
|
+
* cssVars={{
|
|
719
|
+
* '--atomix-badge-bg': '#FF0000',
|
|
720
|
+
* '--atomix-badge-border-radius': '20px'
|
|
721
|
+
* }}
|
|
722
|
+
*/
|
|
723
|
+
cssVars?: Partial<Record<BadgeCSSVariable, string | number>>;
|
|
724
|
+
/**
|
|
725
|
+
* Slot-based customization for complete control
|
|
726
|
+
* @example
|
|
727
|
+
* slots={{
|
|
728
|
+
* root: { render: (props) => <motion.span {...props} /> },
|
|
729
|
+
* icon: { component: CustomIcon }
|
|
730
|
+
* }}
|
|
731
|
+
*/
|
|
732
|
+
slots?: {
|
|
733
|
+
root?: SlotProps<BadgeRootSlotProps>;
|
|
734
|
+
icon?: SlotProps<BadgeIconSlotProps>;
|
|
735
|
+
label?: SlotProps<BadgeLabelSlotProps>;
|
|
736
|
+
};
|
|
737
|
+
}
|
|
738
|
+
/**
|
|
739
|
+
* Callout component properties
|
|
740
|
+
*/
|
|
741
|
+
interface CalloutProps extends BaseComponentProps {
|
|
742
|
+
/**
|
|
743
|
+
* Callout title
|
|
744
|
+
*/
|
|
745
|
+
title?: ReactNode;
|
|
746
|
+
/**
|
|
747
|
+
* Callout content
|
|
748
|
+
*/
|
|
749
|
+
children?: ReactNode;
|
|
750
|
+
/**
|
|
751
|
+
* Optional icon
|
|
752
|
+
*/
|
|
753
|
+
icon?: ReactNode;
|
|
754
|
+
/**
|
|
755
|
+
* Callout variant
|
|
756
|
+
*/
|
|
757
|
+
variant?: ThemeColor;
|
|
758
|
+
/**
|
|
759
|
+
* Optional close handler
|
|
760
|
+
*/
|
|
761
|
+
onClose?: () => void;
|
|
762
|
+
/**
|
|
763
|
+
* Optional action buttons
|
|
764
|
+
*/
|
|
765
|
+
actions?: ReactNode;
|
|
766
|
+
/**
|
|
767
|
+
* Display in one line mode
|
|
768
|
+
*/
|
|
769
|
+
oneLine?: boolean;
|
|
770
|
+
/**
|
|
771
|
+
* Display as toast notification
|
|
772
|
+
*/
|
|
773
|
+
toast?: boolean;
|
|
774
|
+
/**
|
|
775
|
+
* Glass morphism effect for the callout
|
|
776
|
+
* Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
|
|
777
|
+
*/
|
|
778
|
+
glass?: AtomixGlassProps | boolean;
|
|
779
|
+
/**
|
|
780
|
+
* Custom style for the callout
|
|
781
|
+
*/
|
|
782
|
+
style?: React.CSSProperties;
|
|
783
|
+
}
|
|
784
|
+
/**
|
|
785
|
+
* Accordion component properties
|
|
786
|
+
*/
|
|
787
|
+
interface AccordionProps$1 extends BaseComponentProps {
|
|
788
|
+
/**
|
|
789
|
+
* Title of the accordion
|
|
790
|
+
*/
|
|
791
|
+
title: string;
|
|
792
|
+
/**
|
|
793
|
+
* Content to be shown when accordion is expanded
|
|
794
|
+
*/
|
|
795
|
+
children: ReactNode;
|
|
796
|
+
/**
|
|
797
|
+
* Whether the accordion is initially open
|
|
798
|
+
*/
|
|
799
|
+
defaultOpen?: boolean;
|
|
800
|
+
/**
|
|
801
|
+
* Position of the icon (right or left)
|
|
802
|
+
*/
|
|
803
|
+
iconPosition?: IconPosition;
|
|
804
|
+
/**
|
|
805
|
+
* Custom icon for the accordion
|
|
806
|
+
*/
|
|
807
|
+
icon?: ReactNode;
|
|
808
|
+
/**
|
|
809
|
+
* Whether the accordion is open
|
|
810
|
+
*/
|
|
811
|
+
isOpen?: boolean;
|
|
812
|
+
/**
|
|
813
|
+
* Whether the accordion is disabled
|
|
814
|
+
*/
|
|
815
|
+
disabled?: boolean;
|
|
816
|
+
onOpenChange?: (open: boolean) => void;
|
|
817
|
+
/**
|
|
818
|
+
* Optional open handler
|
|
819
|
+
*/
|
|
820
|
+
onOpen?: () => void;
|
|
821
|
+
/**
|
|
822
|
+
* Optional close handler
|
|
823
|
+
*/
|
|
824
|
+
onClose?: () => void;
|
|
825
|
+
/**
|
|
826
|
+
* Glass morphism effect for the accordion
|
|
827
|
+
* Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
|
|
828
|
+
*/
|
|
829
|
+
glass?: AtomixGlassProps | boolean;
|
|
830
|
+
}
|
|
831
|
+
/**
|
|
832
|
+
* Spinner component properties
|
|
833
|
+
*/
|
|
834
|
+
interface SpinnerProps extends BaseComponentProps {
|
|
835
|
+
/**
|
|
836
|
+
* Spinner color variant
|
|
837
|
+
*/
|
|
838
|
+
variant?: ThemeColor;
|
|
839
|
+
/**
|
|
840
|
+
* Spinner size
|
|
841
|
+
*/
|
|
842
|
+
size?: Size;
|
|
843
|
+
/**
|
|
844
|
+
* Whether the spinner should be displayed fullscreen
|
|
845
|
+
*/
|
|
846
|
+
fullscreen?: boolean;
|
|
847
|
+
/**
|
|
848
|
+
* Glass morphism effect for the spinner
|
|
849
|
+
* Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
|
|
850
|
+
*/
|
|
851
|
+
glass?: AtomixGlassProps | boolean;
|
|
852
|
+
}
|
|
853
|
+
/**
|
|
854
|
+
* Card component props
|
|
855
|
+
*/
|
|
856
|
+
interface CardProps extends BaseComponentProps {
|
|
857
|
+
/**
|
|
858
|
+
* Card header content
|
|
859
|
+
*/
|
|
860
|
+
header?: ReactNode;
|
|
861
|
+
/**
|
|
862
|
+
* Card image source URL
|
|
863
|
+
*/
|
|
864
|
+
image?: string;
|
|
865
|
+
/**
|
|
866
|
+
* Alternative text for the image
|
|
867
|
+
*/
|
|
868
|
+
imageAlt?: string;
|
|
869
|
+
/**
|
|
870
|
+
* Card title
|
|
871
|
+
*/
|
|
872
|
+
title?: ReactNode;
|
|
873
|
+
/**
|
|
874
|
+
* Card text content
|
|
875
|
+
*/
|
|
876
|
+
text?: ReactNode;
|
|
877
|
+
/**
|
|
878
|
+
* Card actions (buttons, links, etc.)
|
|
879
|
+
*/
|
|
880
|
+
actions?: ReactNode;
|
|
881
|
+
/**
|
|
882
|
+
* Card icon
|
|
883
|
+
*/
|
|
884
|
+
icon?: ReactNode;
|
|
885
|
+
/**
|
|
886
|
+
* Card footer content
|
|
887
|
+
*/
|
|
888
|
+
footer?: ReactNode;
|
|
889
|
+
/**
|
|
890
|
+
* Size variant of the card
|
|
891
|
+
*/
|
|
892
|
+
size?: Size;
|
|
893
|
+
/**
|
|
894
|
+
* Color variant of the card
|
|
895
|
+
*/
|
|
896
|
+
variant?: ThemeColor;
|
|
897
|
+
/**
|
|
898
|
+
* Appearance style of the card
|
|
899
|
+
*/
|
|
900
|
+
appearance?: 'filled' | 'outlined' | 'ghost' | 'elevated';
|
|
901
|
+
/**
|
|
902
|
+
* Elevation level (shadow depth)
|
|
903
|
+
*/
|
|
904
|
+
elevation?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
905
|
+
/**
|
|
906
|
+
* Enable hover effects (adds hover elevation and transition)
|
|
907
|
+
*/
|
|
908
|
+
hoverable?: boolean;
|
|
909
|
+
/**
|
|
910
|
+
* Elevation level on hover (only applies when hoverable is true)
|
|
911
|
+
*/
|
|
912
|
+
hoverElevation?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
913
|
+
/**
|
|
914
|
+
* Row layout (horizontal card)
|
|
915
|
+
*/
|
|
916
|
+
row?: boolean;
|
|
917
|
+
/**
|
|
918
|
+
* Flat style (no padding on image container)
|
|
919
|
+
*/
|
|
920
|
+
flat?: boolean;
|
|
921
|
+
/**
|
|
922
|
+
* Active state
|
|
923
|
+
*/
|
|
924
|
+
active?: boolean;
|
|
925
|
+
/**
|
|
926
|
+
* Disabled state - prevents interactions and shows visual feedback
|
|
927
|
+
*/
|
|
928
|
+
disabled?: boolean;
|
|
929
|
+
/**
|
|
930
|
+
* Loading state - shows loading indicator
|
|
931
|
+
*/
|
|
932
|
+
loading?: boolean;
|
|
933
|
+
/**
|
|
934
|
+
* Selected state - indicates card is selected
|
|
935
|
+
*/
|
|
936
|
+
selected?: boolean;
|
|
937
|
+
/**
|
|
938
|
+
* Interactive state - makes card clickable with proper ARIA attributes
|
|
939
|
+
*/
|
|
940
|
+
interactive?: boolean;
|
|
941
|
+
/**
|
|
942
|
+
* Applies a glass morphism effect to the card.
|
|
943
|
+
* Can be a boolean to enable with default settings, or an object with `AtomixGlassProps` to customize the effect.
|
|
944
|
+
*/
|
|
945
|
+
glass?: boolean | Omit<AtomixGlassProps, 'children'>;
|
|
946
|
+
/**
|
|
947
|
+
* Link URL - when provided, card renders as an anchor element
|
|
948
|
+
*/
|
|
949
|
+
href?: string;
|
|
950
|
+
/**
|
|
951
|
+
* Link target attribute
|
|
952
|
+
*/
|
|
953
|
+
target?: '_blank' | '_self' | '_parent' | '_top';
|
|
954
|
+
/**
|
|
955
|
+
* Card content (body)
|
|
956
|
+
*/
|
|
957
|
+
children?: ReactNode;
|
|
958
|
+
/**
|
|
959
|
+
* Card styles
|
|
960
|
+
*/
|
|
961
|
+
style?: React.CSSProperties;
|
|
962
|
+
/**
|
|
963
|
+
* Card className
|
|
964
|
+
*/
|
|
965
|
+
className?: string;
|
|
966
|
+
/**
|
|
967
|
+
* Optional click handler
|
|
968
|
+
*/
|
|
969
|
+
onClick?: (event: React.MouseEvent<HTMLDivElement | HTMLAnchorElement>) => void;
|
|
970
|
+
/**
|
|
971
|
+
* Optional hover handler
|
|
972
|
+
*/
|
|
973
|
+
onHover?: (event: React.MouseEvent<HTMLDivElement | HTMLAnchorElement>) => void;
|
|
974
|
+
/**
|
|
975
|
+
* Optional focus handler
|
|
976
|
+
*/
|
|
977
|
+
onFocus?: (event: React.FocusEvent<HTMLDivElement | HTMLAnchorElement>) => void;
|
|
978
|
+
/**
|
|
979
|
+
* ARIA role for the card
|
|
980
|
+
*/
|
|
981
|
+
role?: 'article' | 'button' | 'link' | 'region';
|
|
982
|
+
/**
|
|
983
|
+
* ARIA label for accessibility
|
|
984
|
+
*/
|
|
985
|
+
ariaLabel?: string;
|
|
986
|
+
/**
|
|
987
|
+
* ARIA described by reference
|
|
988
|
+
*/
|
|
989
|
+
ariaDescribedBy?: string;
|
|
990
|
+
/**
|
|
991
|
+
* Tab index for keyboard navigation
|
|
992
|
+
*/
|
|
993
|
+
tabIndex?: number;
|
|
994
|
+
/**
|
|
995
|
+
* CSS variable overrides
|
|
996
|
+
* Runtime CSS custom property overrides
|
|
997
|
+
* @example
|
|
998
|
+
* cssVars={{
|
|
999
|
+
* '--atomix-card-bg': 'rgba(255, 255, 255, 0.1)',
|
|
1000
|
+
* '--atomix-card-border-radius': '24px'
|
|
1001
|
+
* }}
|
|
1002
|
+
*/
|
|
1003
|
+
cssVars?: Partial<Record<CardCSSVariable, string | number>>;
|
|
1004
|
+
/**
|
|
1005
|
+
* Part-based styling
|
|
1006
|
+
* Allows styling individual card parts
|
|
1007
|
+
*/
|
|
1008
|
+
parts?: CardParts;
|
|
1009
|
+
/**
|
|
1010
|
+
* Slot-based customization
|
|
1011
|
+
* Complete control over rendering
|
|
1012
|
+
*/
|
|
1013
|
+
slots?: {
|
|
1014
|
+
root?: (props: SlotProps) => ReactNode;
|
|
1015
|
+
header?: (props: SlotProps) => ReactNode;
|
|
1016
|
+
body?: (props: SlotProps) => ReactNode;
|
|
1017
|
+
footer?: (props: SlotProps) => ReactNode;
|
|
1018
|
+
};
|
|
1019
|
+
}
|
|
1020
|
+
/**
|
|
1021
|
+
* Elevation Card component props
|
|
1022
|
+
*/
|
|
1023
|
+
interface ElevationCardProps extends CardProps {
|
|
1024
|
+
/**
|
|
1025
|
+
* CSS class for elevation effect
|
|
1026
|
+
*/
|
|
1027
|
+
elevationClass?: string;
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
type AccordionProps = AccordionProps$1;
|
|
1031
|
+
declare const Accordion: React$1.FC<AccordionProps>;
|
|
1032
|
+
|
|
1033
|
+
declare const Badge: React$1.FC<BadgeProps>;
|
|
1034
|
+
|
|
1035
|
+
interface ContainerProps extends HTMLAttributes<HTMLDivElement> {
|
|
1036
|
+
/**
|
|
1037
|
+
* The content to be rendered within the container
|
|
1038
|
+
*/
|
|
1039
|
+
children: ReactNode;
|
|
1040
|
+
/**
|
|
1041
|
+
* Additional CSS class names
|
|
1042
|
+
*/
|
|
1043
|
+
className?: string;
|
|
1044
|
+
/**
|
|
1045
|
+
* Container type:
|
|
1046
|
+
* - undefined: responsive container with max-width at each breakpoint
|
|
1047
|
+
* - 'fluid': full width container
|
|
1048
|
+
* - 'sm', 'md', 'lg', 'xl', 'xxl': responsive container with max-width at specified breakpoint
|
|
1049
|
+
*/
|
|
1050
|
+
type?: 'fluid' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
/**
|
|
1054
|
+
* Block-specific constants
|
|
1055
|
+
*/
|
|
1056
|
+
declare const BLOCK: {
|
|
1057
|
+
BASE_CLASS: string;
|
|
1058
|
+
SPACING_PREFIX: string;
|
|
1059
|
+
CLASSES: {
|
|
1060
|
+
SPACING_XS: string;
|
|
1061
|
+
SPACING_SM: string;
|
|
1062
|
+
SPACING_MD: string;
|
|
1063
|
+
SPACING_LG: string;
|
|
1064
|
+
SPACING_XL: string;
|
|
1065
|
+
SPACING_NONE: string;
|
|
1066
|
+
FULL_WIDTH: string;
|
|
1067
|
+
BG_PRIMARY: string;
|
|
1068
|
+
BG_SECONDARY: string;
|
|
1069
|
+
BG_TERTIARY: string;
|
|
1070
|
+
BG_INVERT: string;
|
|
1071
|
+
BG_BRAND: string;
|
|
1072
|
+
BG_ERROR: string;
|
|
1073
|
+
BG_SUCCESS: string;
|
|
1074
|
+
BG_WARNING: string;
|
|
1075
|
+
BG_INFO: string;
|
|
1076
|
+
BG_LIGHT: string;
|
|
1077
|
+
BG_DARK: string;
|
|
1078
|
+
};
|
|
1079
|
+
SPACING: {
|
|
1080
|
+
SIZES: readonly ["xs", "sm", "md", "lg", "xl", "none"];
|
|
1081
|
+
DEFAULT: "md";
|
|
1082
|
+
};
|
|
1083
|
+
};
|
|
1084
|
+
|
|
1085
|
+
interface BlockProps extends HTMLAttributes<HTMLElement> {
|
|
1086
|
+
/**
|
|
1087
|
+
* The content to be rendered within the block
|
|
1088
|
+
*/
|
|
1089
|
+
children: ReactNode;
|
|
1090
|
+
/**
|
|
1091
|
+
* The HTML element to render as
|
|
1092
|
+
* @default 'section'
|
|
1093
|
+
*/
|
|
1094
|
+
as?: 'section' | 'div' | 'article' | 'aside' | 'main';
|
|
1095
|
+
/**
|
|
1096
|
+
* Spacing size for vertical padding
|
|
1097
|
+
* @default 'md'
|
|
1098
|
+
*/
|
|
1099
|
+
spacing?: (typeof BLOCK.SPACING.SIZES)[number];
|
|
1100
|
+
/**
|
|
1101
|
+
* Container configuration
|
|
1102
|
+
*/
|
|
1103
|
+
container?: {
|
|
1104
|
+
/**
|
|
1105
|
+
* Container type for content width
|
|
1106
|
+
* @default undefined
|
|
1107
|
+
*/
|
|
1108
|
+
type?: ContainerProps['type'];
|
|
1109
|
+
/**
|
|
1110
|
+
* Additional container classes
|
|
1111
|
+
*/
|
|
1112
|
+
className?: string;
|
|
1113
|
+
};
|
|
1114
|
+
/**
|
|
1115
|
+
* Whether to enable full-width content
|
|
1116
|
+
* @default false
|
|
1117
|
+
*/
|
|
1118
|
+
fullWidth?: boolean;
|
|
1119
|
+
/**
|
|
1120
|
+
* Additional CSS class names
|
|
1121
|
+
*/
|
|
1122
|
+
className?: string;
|
|
1123
|
+
/**
|
|
1124
|
+
* Custom styles object
|
|
1125
|
+
*/
|
|
1126
|
+
style?: React$1.CSSProperties;
|
|
1127
|
+
/**
|
|
1128
|
+
* Background color variant
|
|
1129
|
+
*/
|
|
1130
|
+
background?: 'primary' | 'secondary' | 'tertiary' | 'invert' | 'brand' | 'error' | 'success' | 'warning' | 'info' | 'light';
|
|
1131
|
+
}
|
|
1132
|
+
/**
|
|
1133
|
+
* Block component for creating structured section layouts.
|
|
1134
|
+
* Provides consistent spacing, backgrounds, and container behavior for content sections.
|
|
1135
|
+
*
|
|
1136
|
+
* @example
|
|
1137
|
+
* ```tsx
|
|
1138
|
+
* // Basic usage
|
|
1139
|
+
* <Block>
|
|
1140
|
+
* <h2>Section Title</h2>
|
|
1141
|
+
* <p>Section content goes here...</p>
|
|
1142
|
+
* </Block>
|
|
1143
|
+
*
|
|
1144
|
+
* // With custom spacing and background
|
|
1145
|
+
* <Block spacing="lg" background="subtle">
|
|
1146
|
+
* <h2>Featured Section</h2>
|
|
1147
|
+
* <p>This section has extra padding and a subtle background.</p>
|
|
1148
|
+
* </Block>
|
|
1149
|
+
*
|
|
1150
|
+
* // Full-width with custom container
|
|
1151
|
+
* <Block fullWidth background="primary">
|
|
1152
|
+
* <Container type="lg">
|
|
1153
|
+
* <h2>Hero Section</h2>
|
|
1154
|
+
* <p>Full-width section with centered content.</p>
|
|
1155
|
+
* </Container>
|
|
1156
|
+
* </Block>
|
|
1157
|
+
*
|
|
1158
|
+
* // As article element
|
|
1159
|
+
* <Block as="article" spacing="xl" background="accent">
|
|
1160
|
+
* <h1>Blog Post</h1>
|
|
1161
|
+
* <p>Article content...</p>
|
|
1162
|
+
* </Block>
|
|
1163
|
+
* ```
|
|
1164
|
+
*/
|
|
1165
|
+
declare const Block: React$1.ForwardRefExoticComponent<BlockProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1166
|
+
|
|
1167
|
+
interface BreadcrumbItem {
|
|
1168
|
+
/**
|
|
1169
|
+
* Text to display
|
|
1170
|
+
*/
|
|
1171
|
+
label: string;
|
|
1172
|
+
/**
|
|
1173
|
+
* URL for the breadcrumb item
|
|
1174
|
+
*/
|
|
1175
|
+
href?: string;
|
|
1176
|
+
/**
|
|
1177
|
+
* Whether this item is active (current page)
|
|
1178
|
+
*/
|
|
1179
|
+
active?: boolean;
|
|
1180
|
+
/**
|
|
1181
|
+
* Optional icon to display before the label
|
|
1182
|
+
*/
|
|
1183
|
+
icon?: ReactNode;
|
|
1184
|
+
/**
|
|
1185
|
+
* Optional click handler
|
|
1186
|
+
*/
|
|
1187
|
+
onClick?: (event: React$1.MouseEvent<HTMLAnchorElement>) => void;
|
|
1188
|
+
/**
|
|
1189
|
+
* Custom style for the breadcrumb item
|
|
1190
|
+
*/
|
|
1191
|
+
style?: React$1.CSSProperties;
|
|
1192
|
+
/**
|
|
1193
|
+
* Additional className
|
|
1194
|
+
*/
|
|
1195
|
+
className?: string;
|
|
1196
|
+
}
|
|
1197
|
+
interface BreadcrumbProps {
|
|
1198
|
+
/**
|
|
1199
|
+
* Array of breadcrumb items
|
|
1200
|
+
*/
|
|
1201
|
+
items: BreadcrumbItem[];
|
|
1202
|
+
/**
|
|
1203
|
+
* Custom divider character or element
|
|
1204
|
+
*/
|
|
1205
|
+
divider?: ReactNode;
|
|
1206
|
+
/**
|
|
1207
|
+
* Additional className
|
|
1208
|
+
*/
|
|
1209
|
+
className?: string;
|
|
1210
|
+
/**
|
|
1211
|
+
* Aria label for the navigation
|
|
1212
|
+
*/
|
|
1213
|
+
ariaLabel?: string;
|
|
1214
|
+
/**
|
|
1215
|
+
* Optional custom link component
|
|
1216
|
+
*/
|
|
1217
|
+
LinkComponent?: React$1.ElementType;
|
|
1218
|
+
/**
|
|
1219
|
+
* Custom style for the breadcrumb
|
|
1220
|
+
*/
|
|
1221
|
+
style?: React$1.CSSProperties;
|
|
1222
|
+
}
|
|
1223
|
+
declare const Breadcrumb: React$1.FC<BreadcrumbProps>;
|
|
1224
|
+
|
|
1225
|
+
type ButtonAsProp = {
|
|
1226
|
+
as?: ElementType;
|
|
1227
|
+
to?: string;
|
|
1228
|
+
href?: string;
|
|
1229
|
+
LinkComponent?: React$1.ComponentType<any>;
|
|
1230
|
+
[key: string]: any;
|
|
1231
|
+
};
|
|
1232
|
+
declare const Button: React$1.MemoExoticComponent<React$1.ForwardRefExoticComponent<Omit<ButtonProps & ButtonAsProp, "ref"> & React$1.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>>;
|
|
1233
|
+
|
|
1234
|
+
declare const Card: React$1.MemoExoticComponent<React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLAnchorElement | HTMLDivElement>>>;
|
|
1235
|
+
|
|
1236
|
+
declare const ElevationCard: React$1.FC<ElevationCardProps>;
|
|
1237
|
+
|
|
1238
|
+
/**
|
|
1239
|
+
* Callout component for displaying important messages, notifications, or alerts
|
|
1240
|
+
*/
|
|
1241
|
+
declare const Callout: React$1.FC<CalloutProps>;
|
|
1242
|
+
|
|
1243
|
+
type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
1244
|
+
type IconWeight = 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';
|
|
1245
|
+
type PhosphorIconsType = Exclude<keyof typeof _phosphor_icons_react, 'Icon' | 'IconContext' | 'IconBase' | 'IconProps' | 'createIcon' | 'default' | 'SSR'>;
|
|
1246
|
+
interface IconProps {
|
|
1247
|
+
/**
|
|
1248
|
+
* Icon name from Phosphor Icons
|
|
1249
|
+
*/
|
|
1250
|
+
name: PhosphorIconsType;
|
|
1251
|
+
/**
|
|
1252
|
+
* Icon size
|
|
1253
|
+
*/
|
|
1254
|
+
size?: IconSize | number;
|
|
1255
|
+
/**
|
|
1256
|
+
* Icon weight/style
|
|
1257
|
+
*/
|
|
1258
|
+
weight?: IconWeight;
|
|
1259
|
+
/**
|
|
1260
|
+
* Icon color
|
|
1261
|
+
*/
|
|
1262
|
+
color?: string;
|
|
1263
|
+
/**
|
|
1264
|
+
* Additional CSS class names
|
|
1265
|
+
*/
|
|
1266
|
+
className?: string;
|
|
1267
|
+
/**
|
|
1268
|
+
* Custom style
|
|
1269
|
+
*/
|
|
1270
|
+
style?: React$1.CSSProperties;
|
|
1271
|
+
/**
|
|
1272
|
+
* Alt text for accessibility
|
|
1273
|
+
*/
|
|
1274
|
+
alt?: string;
|
|
1275
|
+
}
|
|
1276
|
+
/**
|
|
1277
|
+
* Icon component that displays a Phosphor icon
|
|
1278
|
+
*/
|
|
1279
|
+
declare const Icon: React$1.FC<IconProps>;
|
|
1280
|
+
|
|
1281
|
+
declare const List: React$1.FC<ListProps>;
|
|
1282
|
+
|
|
1283
|
+
type ListGroupProps = ListGroupProps$1;
|
|
1284
|
+
declare const ListGroup: React$1.FC<ListGroupProps>;
|
|
1285
|
+
|
|
1286
|
+
declare const Spinner: React$1.FC<SpinnerProps>;
|
|
1287
|
+
|
|
1288
|
+
export { Accordion, Badge, Block, Breadcrumb, Button, Callout, Card, ElevationCard, Icon, List, ListGroup, Spinner };
|
|
1289
|
+
export type { AccordionProps, BadgeProps, BlockProps, BreadcrumbProps, ButtonProps, CalloutProps, CardProps, ElevationCardProps, IconProps, ListGroupProps, ListProps, SpinnerProps };
|