@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.
Files changed (237) hide show
  1. package/README.md +101 -199
  2. package/atomix.config.ts +241 -0
  3. package/dist/atomix.css +269 -189
  4. package/dist/atomix.css.map +1 -0
  5. package/dist/atomix.min.css +15179 -11
  6. package/dist/atomix.min.css.map +1 -0
  7. package/dist/charts.d.ts +1929 -0
  8. package/dist/charts.js +6477 -0
  9. package/dist/charts.js.map +1 -0
  10. package/dist/core.d.ts +1289 -0
  11. package/dist/core.js +3373 -0
  12. package/dist/core.js.map +1 -0
  13. package/dist/forms.d.ts +1085 -0
  14. package/dist/forms.js +2466 -0
  15. package/dist/forms.js.map +1 -0
  16. package/dist/heavy.d.ts +636 -0
  17. package/dist/heavy.js +4566 -0
  18. package/dist/heavy.js.map +1 -0
  19. package/dist/index.d.ts +5171 -4792
  20. package/dist/index.esm.js +6098 -4563
  21. package/dist/index.esm.js.map +1 -1
  22. package/dist/index.js +6291 -4747
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.min.js +1 -1
  25. package/dist/index.min.js.map +1 -1
  26. package/dist/layout.d.ts +300 -0
  27. package/dist/layout.js +336 -0
  28. package/dist/layout.js.map +1 -0
  29. package/dist/theme.d.ts +2122 -0
  30. package/dist/theme.js +6084 -0
  31. package/dist/theme.js.map +1 -0
  32. package/package.json +59 -27
  33. package/scripts/atomix-cli.js +544 -16
  34. package/scripts/cli/__tests__/cli-commands.test.js +204 -0
  35. package/scripts/cli/__tests__/utils.test.js +201 -0
  36. package/scripts/cli/__tests__/vitest.config.js +26 -0
  37. package/scripts/cli/interactive-init.js +1 -1
  38. package/scripts/cli/token-manager.js +32 -7
  39. package/scripts/cli/utils.js +347 -0
  40. package/src/components/Accordion/Accordion.stories.tsx +50 -17
  41. package/src/components/Accordion/Accordion.tsx +5 -54
  42. package/src/components/Accordion/index.ts +1 -1
  43. package/src/components/AtomixGlass/AtomixGlass.tsx +65 -31
  44. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +11 -4
  45. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +1 -32
  46. package/src/components/AtomixGlass/stories/Examples.stories.tsx +2 -2
  47. package/src/components/AtomixGlass/stories/shared-components.tsx +0 -31
  48. package/src/components/Avatar/Avatar.stories.tsx +7 -0
  49. package/src/components/Avatar/Avatar.tsx +3 -3
  50. package/src/components/Badge/Badge.stories.tsx +91 -13
  51. package/src/components/Badge/Badge.tsx +3 -3
  52. package/src/components/Block/Block.stories.tsx +7 -23
  53. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +7 -0
  54. package/src/components/Breadcrumb/Breadcrumb.tsx +3 -3
  55. package/src/components/Button/Button.stories.tsx +141 -22
  56. package/src/components/Button/ButtonGroup.stories.tsx +315 -0
  57. package/src/components/Button/ButtonGroup.tsx +67 -0
  58. package/src/components/Button/index.ts +2 -0
  59. package/src/components/Callout/Callout.stories.tsx +8 -6
  60. package/src/components/Card/Card.stories.tsx +82 -28
  61. package/src/components/Card/ElevationCard.tsx +1 -1
  62. package/src/components/Chart/AnimatedChart.tsx +19 -18
  63. package/src/components/Chart/AreaChart.tsx +5 -2
  64. package/src/components/Chart/BarChart.tsx +1 -1
  65. package/src/components/Chart/BubbleChart.tsx +6 -6
  66. package/src/components/Chart/CandlestickChart.tsx +0 -1
  67. package/src/components/Chart/Chart.stories.tsx +5 -7
  68. package/src/components/Chart/Chart.tsx +0 -16
  69. package/src/components/Chart/ChartRenderer.tsx +1 -1
  70. package/src/components/Chart/ChartToolbar.tsx +1 -0
  71. package/src/components/Chart/DonutChart.tsx +0 -1
  72. package/src/components/Chart/FunnelChart.tsx +1 -2
  73. package/src/components/Chart/GaugeChart.tsx +0 -1
  74. package/src/components/Chart/HeatmapChart.tsx +0 -1
  75. package/src/components/Chart/LineChart.tsx +0 -1
  76. package/src/components/Chart/MultiAxisChart.tsx +0 -1
  77. package/src/components/Chart/PieChart.tsx +0 -1
  78. package/src/components/Chart/RadarChart.tsx +19 -13
  79. package/src/components/Chart/ScatterChart.tsx +3 -4
  80. package/src/components/Chart/TreemapChart.tsx +2 -1
  81. package/src/components/Chart/WaterfallChart.tsx +0 -2
  82. package/src/components/Chart/types.ts +12 -2
  83. package/src/components/Chart/utils.ts +4 -3
  84. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +7 -0
  85. package/src/components/DataTable/DataTable.stories.tsx +23 -16
  86. package/src/components/DataTable/DataTable.tsx +3 -3
  87. package/src/components/DatePicker/DatePicker.stories.tsx +27 -19
  88. package/src/components/Dropdown/Dropdown.stories.tsx +11 -19
  89. package/src/components/Dropdown/Dropdown.tsx +12 -9
  90. package/src/components/EdgePanel/EdgePanel.stories.tsx +1 -0
  91. package/src/components/Footer/Footer.stories.tsx +8 -6
  92. package/src/components/Footer/FooterLink.tsx +9 -2
  93. package/src/components/Footer/FooterSection.tsx +3 -3
  94. package/src/components/Form/Checkbox.stories.tsx +7 -0
  95. package/src/components/Form/Checkbox.tsx +3 -3
  96. package/src/components/Form/Form.stories.tsx +7 -0
  97. package/src/components/Form/FormGroup.stories.tsx +9 -1
  98. package/src/components/Form/Input.stories.tsx +69 -16
  99. package/src/components/Form/Input.tsx +4 -2
  100. package/src/components/Form/Radio.stories.tsx +9 -1
  101. package/src/components/Form/Radio.tsx +3 -3
  102. package/src/components/Form/Select.stories.tsx +9 -1
  103. package/src/components/Form/Select.tsx +3 -3
  104. package/src/components/Form/Textarea.stories.tsx +10 -2
  105. package/src/components/Form/Textarea.tsx +4 -2
  106. package/src/components/Hero/Hero.stories.tsx +7 -0
  107. package/src/components/List/List.stories.tsx +10 -3
  108. package/src/components/List/List.tsx +3 -3
  109. package/src/components/List/ListGroup.tsx +3 -1
  110. package/src/components/Messages/Messages.stories.tsx +8 -7
  111. package/src/components/Modal/Modal.stories.tsx +17 -6
  112. package/src/components/Modal/Modal.tsx +3 -3
  113. package/src/components/Navigation/Menu/MegaMenu.tsx +9 -3
  114. package/src/components/Navigation/Menu/Menu.stories.tsx +7 -0
  115. package/src/components/Navigation/Menu/Menu.tsx +9 -3
  116. package/src/components/Navigation/Nav/Nav.stories.tsx +7 -0
  117. package/src/components/Navigation/Navbar/Navbar.stories.tsx +1 -0
  118. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +1 -1
  119. package/src/components/Pagination/Pagination.stories.tsx +188 -111
  120. package/src/components/Pagination/Pagination.tsx +88 -7
  121. package/src/components/PhotoViewer/PhotoViewer.stories.tsx +10 -5
  122. package/src/components/PhotoViewer/PhotoViewerImage.tsx +2 -2
  123. package/src/components/Popover/Popover.stories.tsx +191 -115
  124. package/src/components/Popover/Popover.tsx +4 -4
  125. package/src/components/ProductReview/ProductReview.stories.tsx +80 -58
  126. package/src/components/Progress/Progress.stories.tsx +79 -49
  127. package/src/components/Progress/Progress.tsx +6 -2
  128. package/src/components/Rating/Rating.stories.tsx +109 -84
  129. package/src/components/Rating/Rating.tsx +5 -2
  130. package/src/components/River/River.stories.tsx +194 -114
  131. package/src/components/SectionIntro/SectionIntro.stories.tsx +19 -9
  132. package/src/components/Slider/Slider.stories.tsx +7 -0
  133. package/src/components/Slider/Slider.tsx +10 -9
  134. package/src/components/Spinner/Spinner.stories.tsx +15 -11
  135. package/src/components/Spinner/Spinner.tsx +3 -3
  136. package/src/components/Steps/Steps.stories.tsx +132 -98
  137. package/src/components/Tabs/Tabs.stories.tsx +163 -112
  138. package/src/components/Tabs/Tabs.tsx +3 -3
  139. package/src/components/Testimonial/Testimonial.stories.tsx +114 -68
  140. package/src/components/Todo/Todo.stories.tsx +38 -12
  141. package/src/components/Toggle/Toggle.stories.tsx +61 -28
  142. package/src/components/Tooltip/Tooltip.stories.tsx +318 -200
  143. package/src/components/Tooltip/Tooltip.tsx +3 -3
  144. package/src/components/Upload/Upload.stories.tsx +122 -84
  145. package/src/components/VideoPlayer/VideoPlayer.stories.tsx +7 -24
  146. package/src/components/index.ts +6 -2
  147. package/src/layouts/MasonryGrid/MasonryGrid.tsx +2 -2
  148. package/src/lib/composables/useAtomixGlass.ts +2 -3
  149. package/src/lib/composables/useChartPerformance.ts +102 -78
  150. package/src/lib/composables/useChartScale.ts +10 -0
  151. package/src/lib/composables/useHero.ts +9 -2
  152. package/src/lib/composables/useHeroBackgroundSlider.ts +5 -3
  153. package/src/lib/composables/useNavbar.ts +0 -10
  154. package/src/lib/composables/useSideMenu.ts +1 -0
  155. package/src/lib/composables/useVideoPlayer.ts +3 -2
  156. package/src/lib/config/loader.ts +57 -14
  157. package/src/lib/constants/components.ts +10 -0
  158. package/src/lib/hooks/index.ts +0 -1
  159. package/src/lib/hooks/useComponentCustomization.ts +11 -15
  160. package/src/lib/hooks/usePerformanceMonitor.ts +149 -0
  161. package/src/lib/patterns/index.ts +2 -2
  162. package/src/lib/patterns/slots.tsx +2 -2
  163. package/src/lib/theme/README.md +174 -0
  164. package/src/lib/theme/adapters/index.ts +31 -0
  165. package/src/lib/theme/adapters/themeAdapter.ts +287 -0
  166. package/src/lib/theme/config/__tests__/configLoader.test.ts +207 -0
  167. package/src/lib/theme/config/configLoader.ts +254 -0
  168. package/src/lib/theme/config/loader.ts +37 -48
  169. package/src/lib/theme/config/types.ts +2 -2
  170. package/src/lib/theme/config/validator.ts +15 -91
  171. package/src/lib/theme/{constants.ts → constants/constants.ts} +0 -18
  172. package/src/lib/theme/constants/index.ts +8 -0
  173. package/src/lib/theme/core/ThemeRegistry.ts +19 -6
  174. package/src/lib/theme/core/__tests__/createTheme.test.ts +132 -0
  175. package/src/lib/theme/core/composeTheme.ts +155 -0
  176. package/src/lib/theme/core/createTheme.ts +94 -0
  177. package/src/lib/theme/{createTheme.ts → core/createThemeObject.ts} +10 -6
  178. package/src/lib/theme/core/index.ts +5 -19
  179. package/src/lib/theme/devtools/Comparator.tsx +346 -22
  180. package/src/lib/theme/devtools/IMPROVEMENTS.md +139 -38
  181. package/src/lib/theme/devtools/Inspector.tsx +335 -51
  182. package/src/lib/theme/devtools/LiveEditor.tsx +489 -112
  183. package/src/lib/theme/devtools/Preview.tsx +471 -221
  184. package/src/lib/theme/{core → devtools}/ThemeValidator.ts +6 -3
  185. package/src/lib/theme/devtools/index.ts +14 -4
  186. package/src/lib/theme/devtools/useHistory.ts +130 -0
  187. package/src/lib/theme/errors/index.ts +12 -0
  188. package/src/lib/theme/generators/cssFile.ts +79 -0
  189. package/src/lib/theme/generators/generateCSS.ts +89 -0
  190. package/src/lib/theme/{generateCSSVariables.ts → generators/generateCSSVariables.ts} +4 -14
  191. package/src/lib/theme/generators/index.ts +19 -0
  192. package/src/lib/theme/i18n/rtl.ts +7 -7
  193. package/src/lib/theme/index.ts +120 -15
  194. package/src/lib/theme/runtime/ThemeApplicator.ts +53 -95
  195. package/src/lib/theme/{ThemeContext.tsx → runtime/ThemeContext.tsx} +1 -1
  196. package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +4 -4
  197. package/src/lib/theme/runtime/ThemeProvider.tsx +456 -179
  198. package/src/lib/theme/runtime/index.ts +1 -2
  199. package/src/lib/theme/runtime/useTheme.ts +1 -2
  200. package/src/lib/theme/test/testTheme.ts +385 -0
  201. package/src/lib/theme/tokens/index.ts +12 -0
  202. package/src/lib/theme/tokens/tokens.ts +721 -0
  203. package/src/lib/theme/types.ts +6 -42
  204. package/src/lib/theme/{utils.ts → utils/domUtils.ts} +2 -2
  205. package/src/lib/theme/utils/index.ts +11 -0
  206. package/src/lib/theme/utils/injectCSS.ts +90 -0
  207. package/src/lib/theme/utils/themeHelpers.ts +78 -0
  208. package/src/lib/theme/{themeUtils.ts → utils/themeUtils.ts} +1 -1
  209. package/src/lib/theme-tools.ts +8 -9
  210. package/src/lib/types/components.ts +93 -34
  211. package/src/lib/types/partProps.ts +0 -16
  212. package/src/lib/utils/componentUtils.ts +1 -1
  213. package/src/lib/utils/fontPreloader.ts +148 -0
  214. package/src/lib/utils/index.ts +11 -0
  215. package/src/lib/utils/memoryMonitor.ts +189 -0
  216. package/src/styles/01-settings/_settings.design-tokens.scss +4 -1
  217. package/src/styles/01-settings/_settings.fonts.scss +2 -5
  218. package/src/styles/02-tools/_tools.button.scss +66 -79
  219. package/src/styles/06-components/_components.atomix-glass.scss +13 -3
  220. package/src/styles/06-components/_components.navbar.scss +0 -6
  221. package/src/styles/06-components/_components.pagination.scss +88 -0
  222. package/scripts/build-themes.js +0 -208
  223. package/scripts/sync-theme-config.js +0 -309
  224. package/src/components/AtomixGlass/atomixGLass.old.tsx +0 -1263
  225. package/src/lib/theme/composeTheme.ts +0 -370
  226. package/src/lib/theme/core/ThemeCache.ts +0 -283
  227. package/src/lib/theme/core/ThemeEngine.test.ts +0 -146
  228. package/src/lib/theme/core/ThemeEngine.ts +0 -657
  229. package/src/lib/theme/createThemeFromConfig.ts +0 -132
  230. package/src/lib/theme/devtools/CLI.ts +0 -364
  231. package/src/lib/theme/runtime/ThemeManager.test.ts +0 -192
  232. package/src/lib/theme/runtime/ThemeManager.ts +0 -442
  233. package/src/styles/03-generic/_generated-root.css +0 -5
  234. package/src/themes/README.md +0 -442
  235. package/src/themes/themes.config.js +0 -35
  236. /package/src/lib/theme/{cssVariableMapper.ts → adapters/cssVariableMapper.ts} +0 -0
  237. /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 };