@shohojdhara/atomix 0.3.15 → 0.4.0

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 (245) hide show
  1. package/build-tools/index.d.ts +31 -30
  2. package/build-tools/package.json +4 -21
  3. package/dist/atomix.css +20924 -2611
  4. package/dist/atomix.css.map +1 -1
  5. package/dist/atomix.min.css +76 -2
  6. package/dist/atomix.min.css.map +1 -1
  7. package/dist/build-tools/index.d.ts +31 -30
  8. package/dist/build-tools/package.json +4 -21
  9. package/dist/charts.js.map +1 -1
  10. package/dist/core.js.map +1 -1
  11. package/dist/forms.js.map +1 -1
  12. package/dist/heavy.js.map +1 -1
  13. package/dist/index.d.ts +144 -18
  14. package/dist/index.esm.js +110 -55
  15. package/dist/index.esm.js.map +1 -1
  16. package/dist/index.js +110 -55
  17. package/dist/index.js.map +1 -1
  18. package/dist/index.min.js +1 -1
  19. package/dist/index.min.js.map +1 -1
  20. package/dist/layout.js.map +1 -1
  21. package/dist/theme.d.ts +9 -9
  22. package/dist/theme.js.map +1 -1
  23. package/package.json +1 -1
  24. package/src/components/Accordion/Accordion.stories.tsx +32 -23
  25. package/src/components/Accordion/Accordion.test.tsx +70 -50
  26. package/src/components/Accordion/Accordion.tsx +99 -94
  27. package/src/components/AtomixGlass/AtomixGlass.test.tsx +1 -1
  28. package/src/components/AtomixGlass/GlassFilter.tsx +9 -16
  29. package/src/components/AtomixGlass/glass-utils.ts +4 -3
  30. package/src/components/AtomixGlass/shader-utils.ts +128 -52
  31. package/src/components/AtomixGlass/stories/Playground.stories.tsx +1 -1
  32. package/src/components/AtomixGlass/stories/Shaders.stories.tsx +1 -1
  33. package/src/components/Avatar/Avatar.stories.tsx +45 -62
  34. package/src/components/Avatar/Avatar.tsx +58 -56
  35. package/src/components/Badge/Badge.stories.tsx +20 -9
  36. package/src/components/Badge/Badge.test.tsx +41 -41
  37. package/src/components/Badge/Badge.tsx +64 -62
  38. package/src/components/Block/Block.stories.tsx +14 -4
  39. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +9 -8
  40. package/src/components/Breadcrumb/Breadcrumb.tsx +62 -60
  41. package/src/components/Button/Button.stories.tsx +13 -22
  42. package/src/components/Button/Button.test.tsx +97 -81
  43. package/src/components/Button/Button.tsx +46 -14
  44. package/src/components/Button/ButtonGroup.stories.tsx +37 -32
  45. package/src/components/Button/ButtonGroup.tsx +4 -15
  46. package/src/components/Callout/Callout.stories.tsx +109 -16
  47. package/src/components/Card/Card.stories.tsx +67 -36
  48. package/src/components/Card/Card.tsx +30 -14
  49. package/src/components/Chart/AreaChart.tsx +1 -1
  50. package/src/components/Chart/CandlestickChart.tsx +23 -16
  51. package/src/components/Chart/Chart.stories.tsx +4 -9
  52. package/src/components/Chart/Chart.tsx +40 -44
  53. package/src/components/Chart/ChartRenderer.tsx +39 -12
  54. package/src/components/Chart/ChartToolbar.tsx +21 -5
  55. package/src/components/Chart/DonutChart.tsx +1 -1
  56. package/src/components/Chart/FunnelChart.tsx +4 -1
  57. package/src/components/Chart/GaugeChart.tsx +3 -1
  58. package/src/components/Chart/HeatmapChart.tsx +50 -37
  59. package/src/components/Chart/LineChart.tsx +3 -2
  60. package/src/components/Chart/MultiAxisChart.tsx +24 -16
  61. package/src/components/Chart/RadarChart.tsx +19 -17
  62. package/src/components/Chart/ScatterChart.tsx +29 -21
  63. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +6 -2
  64. package/src/components/ColorModeToggle/ColorModeToggle.tsx +15 -3
  65. package/src/components/Countdown/Countdown.stories.tsx +7 -7
  66. package/src/components/DataTable/DataTable.stories.tsx +43 -38
  67. package/src/components/DataTable/DataTable.test.tsx +26 -148
  68. package/src/components/DataTable/DataTable.tsx +485 -456
  69. package/src/components/DatePicker/DatePicker.stories.tsx +32 -47
  70. package/src/components/DatePicker/DatePicker.tsx +31 -26
  71. package/src/components/Dropdown/Dropdown.stories.tsx +2 -5
  72. package/src/components/Dropdown/Dropdown.tsx +313 -299
  73. package/src/components/EdgePanel/EdgePanel.stories.tsx +6 -19
  74. package/src/components/EdgePanel/EdgePanel.tsx +1 -3
  75. package/src/components/Footer/Footer.stories.tsx +21 -16
  76. package/src/components/Footer/Footer.tsx +130 -128
  77. package/src/components/Footer/FooterLink.tsx +2 -2
  78. package/src/components/Form/Checkbox.test.tsx +49 -49
  79. package/src/components/Form/Checkbox.tsx +108 -100
  80. package/src/components/Form/Form.stories.tsx +2 -10
  81. package/src/components/Form/Input.stories.tsx +22 -39
  82. package/src/components/Form/Input.test.tsx +38 -44
  83. package/src/components/Form/Radio.stories.tsx +6 -12
  84. package/src/components/Form/Radio.tsx +68 -66
  85. package/src/components/Form/Select.tsx +184 -182
  86. package/src/components/Form/Textarea.test.tsx +27 -32
  87. package/src/components/Hero/Hero.stories.tsx +56 -23
  88. package/src/components/Hero/Hero.tsx +201 -55
  89. package/src/components/Icon/index.ts +7 -1
  90. package/src/components/List/List.tsx +19 -23
  91. package/src/components/Modal/Modal.stories.tsx +2 -1
  92. package/src/components/Modal/Modal.tsx +130 -127
  93. package/src/components/Navigation/Menu/MegaMenu.tsx +70 -70
  94. package/src/components/Navigation/Nav/NavDropdown.tsx +1 -5
  95. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +128 -28
  96. package/src/components/Navigation/SideMenu/SideMenu.tsx +5 -7
  97. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +4 -5
  98. package/src/components/Pagination/Pagination.stories.tsx +7 -4
  99. package/src/components/Pagination/Pagination.tsx +199 -202
  100. package/src/components/PhotoViewer/PhotoViewer.tsx +4 -1
  101. package/src/components/Popover/Popover.stories.tsx +99 -192
  102. package/src/components/Popover/Popover.tsx +41 -37
  103. package/src/components/Progress/Progress.stories.tsx +35 -44
  104. package/src/components/River/River.stories.tsx +2 -1
  105. package/src/components/SectionIntro/SectionIntro.stories.tsx +71 -71
  106. package/src/components/Slider/Slider.stories.tsx +12 -4
  107. package/src/components/Spinner/Spinner.stories.tsx +3 -1
  108. package/src/components/Spinner/Spinner.test.tsx +23 -23
  109. package/src/components/Spinner/Spinner.tsx +43 -46
  110. package/src/components/Steps/Steps.stories.tsx +8 -6
  111. package/src/components/Tabs/Tabs.stories.tsx +12 -9
  112. package/src/components/Tabs/Tabs.tsx +74 -72
  113. package/src/components/Toggle/Toggle.stories.tsx +27 -13
  114. package/src/components/Toggle/Toggle.test.tsx +65 -70
  115. package/src/components/Toggle/Toggle.tsx +4 -1
  116. package/src/components/Tooltip/Tooltip.stories.tsx +24 -20
  117. package/src/components/Tooltip/Tooltip.tsx +104 -106
  118. package/src/components/Upload/Upload.stories.tsx +129 -127
  119. package/src/components/Upload/Upload.tsx +287 -283
  120. package/src/components/VideoPlayer/VideoPlayer.tsx +6 -1
  121. package/src/components/index.ts +13 -2
  122. package/src/layouts/Grid/Grid.stories.tsx +9 -3
  123. package/src/layouts/MasonryGrid/MasonryGrid.tsx +5 -1
  124. package/src/lib/__tests__/theme-tools.test.ts +32 -6
  125. package/src/lib/composables/shared-mouse-tracker.ts +13 -14
  126. package/src/lib/composables/useAtomixGlass.ts +106 -49
  127. package/src/lib/composables/useChartExport.ts +1 -1
  128. package/src/lib/composables/useDataTable.ts +29 -17
  129. package/src/lib/composables/useHero.ts +58 -14
  130. package/src/lib/composables/useHeroBackgroundSlider.ts +2 -9
  131. package/src/lib/composables/useInput.ts +10 -8
  132. package/src/lib/composables/useSideMenu.ts +6 -5
  133. package/src/lib/composables/useTooltip.ts +1 -2
  134. package/src/lib/composables/useVideoPlayer.ts +44 -35
  135. package/src/lib/config/index.ts +154 -154
  136. package/src/lib/constants/cssVariables.ts +29 -29
  137. package/src/lib/hooks/__tests__/useComponentCustomization.test.ts +2 -6
  138. package/src/lib/hooks/index.ts +1 -1
  139. package/src/lib/hooks/useComponentCustomization.ts +11 -17
  140. package/src/lib/hooks/usePerformanceMonitor.ts +6 -7
  141. package/src/lib/patterns/__tests__/slots.test.ts +1 -1
  142. package/src/lib/patterns/index.ts +1 -1
  143. package/src/lib/patterns/slots.tsx +8 -13
  144. package/src/lib/storybook/InteractiveDemo.tsx +13 -18
  145. package/src/lib/storybook/PreviewContainer.tsx +1 -1
  146. package/src/lib/storybook/VariantsGrid.tsx +3 -7
  147. package/src/lib/storybook/index.ts +1 -1
  148. package/src/lib/theme/adapters/cssVariableMapper.ts +47 -74
  149. package/src/lib/theme/adapters/index.ts +3 -9
  150. package/src/lib/theme/adapters/themeAdapter.ts +41 -26
  151. package/src/lib/theme/config/index.ts +1 -1
  152. package/src/lib/theme/config/types.ts +2 -2
  153. package/src/lib/theme/config/validator.ts +10 -5
  154. package/src/lib/theme/constants/constants.ts +2 -2
  155. package/src/lib/theme/constants/index.ts +1 -2
  156. package/src/lib/theme/core/__tests__/createTheme.test.ts +20 -22
  157. package/src/lib/theme/core/composeTheme.ts +32 -26
  158. package/src/lib/theme/core/createTheme.ts +1 -1
  159. package/src/lib/theme/core/createThemeObject.ts +308 -301
  160. package/src/lib/theme/core/index.ts +3 -3
  161. package/src/lib/theme/devtools/CLI.ts +106 -104
  162. package/src/lib/theme/devtools/Comparator.tsx +50 -32
  163. package/src/lib/theme/devtools/DesignTokensCustomizer.stories.tsx +50 -48
  164. package/src/lib/theme/devtools/DesignTokensCustomizer.tsx +257 -63
  165. package/src/lib/theme/devtools/Inspector.tsx +75 -60
  166. package/src/lib/theme/devtools/LiveEditor.tsx +97 -76
  167. package/src/lib/theme/devtools/Preview.tsx +150 -106
  168. package/src/lib/theme/devtools/ThemeValidator.ts +29 -21
  169. package/src/lib/theme/devtools/index.ts +3 -9
  170. package/src/lib/theme/devtools/useHistory.ts +23 -21
  171. package/src/lib/theme/errors/errors.ts +12 -11
  172. package/src/lib/theme/errors/index.ts +2 -7
  173. package/src/lib/theme/generators/generateCSS.ts +9 -13
  174. package/src/lib/theme/generators/generateCSSNested.ts +1 -6
  175. package/src/lib/theme/generators/generateCSSVariables.ts +673 -630
  176. package/src/lib/theme/generators/index.ts +1 -4
  177. package/src/lib/theme/i18n/index.ts +1 -1
  178. package/src/lib/theme/i18n/rtl.ts +13 -13
  179. package/src/lib/theme/index.ts +7 -16
  180. package/src/lib/theme/runtime/ThemeApplicator.ts +4 -4
  181. package/src/lib/theme/runtime/ThemeContext.tsx +1 -1
  182. package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +19 -23
  183. package/src/lib/theme/runtime/ThemeProvider.tsx +230 -239
  184. package/src/lib/theme/runtime/__tests__/ThemeProvider.integration.test.tsx +1 -1
  185. package/src/lib/theme/runtime/__tests__/ThemeProvider.test.tsx +24 -29
  186. package/src/lib/theme/runtime/index.ts +2 -5
  187. package/src/lib/theme/runtime/useTheme.ts +18 -18
  188. package/src/lib/theme/runtime/useThemeTokens.ts +22 -22
  189. package/src/lib/theme/test/testTheme.ts +15 -16
  190. package/src/lib/theme/tokens/index.ts +2 -7
  191. package/src/lib/theme/tokens/tokens.ts +25 -24
  192. package/src/lib/theme/types.ts +428 -411
  193. package/src/lib/theme/utils/__tests__/themeValidation.test.ts +3 -3
  194. package/src/lib/theme/utils/componentTheming.ts +18 -18
  195. package/src/lib/theme/utils/domUtils.ts +277 -289
  196. package/src/lib/theme/utils/index.ts +1 -2
  197. package/src/lib/theme/utils/injectCSS.ts +10 -14
  198. package/src/lib/theme/utils/naming.ts +20 -16
  199. package/src/lib/theme/utils/themeHelpers.ts +10 -12
  200. package/src/lib/theme/utils/themeUtils.ts +85 -86
  201. package/src/lib/theme/utils/themeValidation.ts +82 -33
  202. package/src/lib/theme-tools.ts +8 -6
  203. package/src/lib/types/components.ts +172 -71
  204. package/src/lib/types/partProps.ts +1 -1
  205. package/src/lib/utils/__tests__/csv.test.ts +1 -1
  206. package/src/lib/utils/componentUtils.ts +8 -12
  207. package/src/lib/utils/csv.ts +3 -1
  208. package/src/lib/utils/dataTableExport.ts +1 -5
  209. package/src/lib/utils/fontPreloader.ts +10 -19
  210. package/src/lib/utils/icons.ts +4 -1
  211. package/src/lib/utils/index.ts +2 -6
  212. package/src/lib/utils/memoryMonitor.ts +10 -8
  213. package/src/lib/utils/themeNaming.ts +2 -2
  214. package/src/styles/01-settings/_index.scss +0 -1
  215. package/src/styles/01-settings/_settings.colors.scss +8 -8
  216. package/src/styles/01-settings/_settings.design-tokens.scss +61 -50
  217. package/src/styles/01-settings/_settings.navbar.scss +1 -1
  218. package/src/styles/01-settings/_settings.spacing.scss +3 -4
  219. package/src/styles/01-settings/_settings.tooltip.scss +1 -1
  220. package/src/styles/01-settings/_settings.typography.scss +1 -1
  221. package/src/styles/02-tools/_tools.button.scss +51 -21
  222. package/src/styles/02-tools/_tools.utility-api.scss +30 -18
  223. package/src/styles/03-generic/_generic.root.scss +4 -3
  224. package/src/styles/06-components/_components.atomix-glass.scss +13 -9
  225. package/src/styles/06-components/_components.button.scss +16 -4
  226. package/src/styles/06-components/_components.callout.scss +27 -21
  227. package/src/styles/06-components/_components.card.scss +5 -14
  228. package/src/styles/06-components/_components.chart.scss +22 -19
  229. package/src/styles/06-components/_components.checkbox.scss +3 -1
  230. package/src/styles/06-components/_components.color-mode-toggle.scss +3 -1
  231. package/src/styles/06-components/_components.edge-panel.scss +9 -2
  232. package/src/styles/06-components/_components.footer.scss +1 -1
  233. package/src/styles/06-components/_components.side-menu.scss +5 -5
  234. package/src/styles/06-components/_components.toggle.scss +18 -0
  235. package/src/styles/06-components/_index.scss +1 -1
  236. package/src/styles/06-components/old.chart.styles.scss +0 -2
  237. package/src/styles/99-utilities/_utilities.border.scss +69 -27
  238. package/src/styles/99-utilities/_utilities.display.scss +1 -1
  239. package/src/styles/99-utilities/_utilities.opacity.scss +10 -0
  240. package/src/styles/99-utilities/_utilities.position.scss +16 -9
  241. package/src/styles/99-utilities/_utilities.scss +1 -1
  242. package/src/styles/99-utilities/_utilities.sizes.scss +47 -18
  243. package/src/styles/99-utilities/_utilities.spacing.scss +118 -66
  244. package/src/styles/99-utilities/_utilities.text-gradient.scss +30 -30
  245. package/src/styles/99-utilities/_utilities.text.scss +67 -46
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Theme Tools for Library Users
3
- *
3
+ *
4
4
  * Developer-friendly utilities for working with Atomix themes
5
5
  */
6
6
 
@@ -49,7 +49,7 @@ export function createDarkVariant(lightTheme: Theme): Theme {
49
49
  },
50
50
  },
51
51
  };
52
-
52
+
53
53
  // Create a new theme by extending the light theme with the dark variant
54
54
  const extendedTheme: Theme = {
55
55
  ...lightTheme,
@@ -67,7 +67,7 @@ export function createDarkVariant(lightTheme: Theme): Theme {
67
67
  },
68
68
  },
69
69
  };
70
-
70
+
71
71
  return extendedTheme;
72
72
  }
73
73
 
@@ -125,9 +125,11 @@ export function getThemeMetadata(theme: Theme): ThemeMetadata {
125
125
  * Check if theme supports dark mode
126
126
  */
127
127
  export function supportsDarkMode(theme: Theme): boolean {
128
- return theme.palette?.mode === 'dark' ||
128
+ return (
129
+ theme.palette?.mode === 'dark' ||
129
130
  theme.supportsDarkMode === true ||
130
- Boolean(theme.a11y?.modes?.includes('dark'));
131
+ Boolean(theme.a11y?.modes?.includes('dark'))
132
+ );
131
133
  }
132
134
 
133
135
  /**
@@ -150,4 +152,4 @@ export function importTheme(json: string): Theme {
150
152
 
151
153
  // Note: createTheme, extendTheme, mergeTheme, and generateCSSVariables
152
154
  // are already exported from './theme' module. Import them directly from there.
153
- // This file only exports theme-tools specific utilities.
155
+ // This file only exports theme-tools specific utilities.
@@ -1,7 +1,44 @@
1
1
  import { ReactNode } from 'react';
2
- import type { ButtonParts, CardParts, InputParts, ModalParts, DropdownParts, BadgeParts, ProgressParts, CheckboxParts, RadioParts } from './partProps';
3
- import type { SlotProps, ButtonRootSlotProps, ButtonIconSlotProps, ButtonLabelSlotProps, ButtonSpinnerSlotProps, BadgeRootSlotProps, BadgeIconSlotProps, BadgeLabelSlotProps, ProgressRootSlotProps, ProgressBarSlotProps, CheckboxRootSlotProps, CheckboxInputSlotProps, CheckboxLabelSlotProps, RadioRootSlotProps, RadioInputSlotProps, RadioLabelSlotProps } from '../patterns/slots';
4
- import type { ButtonCSSVariable, CardCSSVariable, InputCSSVariable, ModalCSSVariable, DropdownCSSVariable, BadgeCSSVariable, ProgressCSSVariable, CheckboxCSSVariable, RadioCSSVariable } from '../constants/cssVariables';
2
+ import type {
3
+ ButtonParts,
4
+ CardParts,
5
+ InputParts,
6
+ ModalParts,
7
+ DropdownParts,
8
+ BadgeParts,
9
+ ProgressParts,
10
+ CheckboxParts,
11
+ RadioParts,
12
+ } from './partProps';
13
+ import type {
14
+ SlotProps,
15
+ ButtonRootSlotProps,
16
+ ButtonIconSlotProps,
17
+ ButtonLabelSlotProps,
18
+ ButtonSpinnerSlotProps,
19
+ BadgeRootSlotProps,
20
+ BadgeIconSlotProps,
21
+ BadgeLabelSlotProps,
22
+ ProgressRootSlotProps,
23
+ ProgressBarSlotProps,
24
+ CheckboxRootSlotProps,
25
+ CheckboxInputSlotProps,
26
+ CheckboxLabelSlotProps,
27
+ RadioRootSlotProps,
28
+ RadioInputSlotProps,
29
+ RadioLabelSlotProps,
30
+ } from '../patterns/slots';
31
+ import type {
32
+ ButtonCSSVariable,
33
+ CardCSSVariable,
34
+ InputCSSVariable,
35
+ ModalCSSVariable,
36
+ DropdownCSSVariable,
37
+ BadgeCSSVariable,
38
+ ProgressCSSVariable,
39
+ CheckboxCSSVariable,
40
+ RadioCSSVariable,
41
+ } from '../constants/cssVariables';
5
42
 
6
43
  // ============================================================================
7
44
  // AtomixGlass Types
@@ -199,7 +236,14 @@ export interface AtomixGlassProps {
199
236
  /**
200
237
  * Shader variant for shader mode
201
238
  */
202
- shaderVariant?: 'liquidGlass' | 'premiumGlass' | 'appleFluid' | 'liquidMetal' | 'plasma' | 'waves' | 'noise';
239
+ shaderVariant?:
240
+ | 'liquidGlass'
241
+ | 'premiumGlass'
242
+ | 'appleFluid'
243
+ | 'liquidMetal'
244
+ | 'plasma'
245
+ | 'waves'
246
+ | 'noise';
203
247
 
204
248
  /**
205
249
  * Accessibility props
@@ -914,14 +958,40 @@ export interface HeroBackgroundSliderConfig {
914
958
  customTransition?: (currentIndex: number, nextIndex: number) => string | React.CSSProperties;
915
959
  }
916
960
 
961
+ /**
962
+ * Hero component parts for granular styling
963
+ */
964
+ export interface HeroParts {
965
+ root?: { className?: string; style?: React.CSSProperties };
966
+ container?: { className?: string; style?: React.CSSProperties };
967
+ grid?: { className?: string; style?: React.CSSProperties };
968
+ content?: { className?: string; style?: React.CSSProperties };
969
+ title?: { className?: string; style?: React.CSSProperties };
970
+ subtitle?: { className?: string; style?: React.CSSProperties };
971
+ text?: { className?: string; style?: React.CSSProperties };
972
+ actions?: { className?: string; style?: React.CSSProperties };
973
+ imageWrapper?: { className?: string; style?: React.CSSProperties };
974
+ image?: { className?: string; style?: React.CSSProperties };
975
+ background?: { className?: string; style?: React.CSSProperties };
976
+ overlay?: { className?: string; style?: React.CSSProperties };
977
+ }
978
+
917
979
  /**
918
980
  * Hero component properties
919
981
  */
920
- export interface HeroProps extends BaseComponentProps {
982
+ export interface HeroProps
983
+ extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title' | 'content'>,
984
+ BaseComponentProps {
921
985
  /**
922
986
  * Hero title
923
987
  */
924
- title: string;
988
+ title: ReactNode;
989
+
990
+ /**
991
+ * HTML Heading level for the title
992
+ * @default 'h1'
993
+ */
994
+ headingLevel?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'div';
925
995
 
926
996
  /**
927
997
  * Hero subtitle
@@ -973,11 +1043,31 @@ export interface HeroProps extends BaseComponentProps {
973
1043
  */
974
1044
  imageColSize?: number;
975
1045
 
1046
+ /**
1047
+ * Custom grid column class name for image
1048
+ */
1049
+ imageColClassName?: string;
1050
+
1051
+ /**
1052
+ * Custom inline style for image column
1053
+ */
1054
+ imageColStyle?: React.CSSProperties;
1055
+
976
1056
  /**
977
1057
  * Custom grid column size for content (default is 5)
978
1058
  */
979
1059
  contentColSize?: number;
980
1060
 
1061
+ /**
1062
+ * Custom grid column class name for content
1063
+ */
1064
+ contentColClassName?: string;
1065
+
1066
+ /**
1067
+ * Custom inline style for content column
1068
+ */
1069
+ contentColStyle?: React.CSSProperties;
1070
+
981
1071
  /**
982
1072
  * Custom width for the hero content (overrides the default CSS variable)
983
1073
  */
@@ -1039,6 +1129,17 @@ export interface HeroProps extends BaseComponentProps {
1039
1129
  * Takes precedence over backgroundImageSrc and videoBackground props
1040
1130
  */
1041
1131
  backgroundSlider?: HeroBackgroundSliderConfig;
1132
+
1133
+ /**
1134
+ * Reverse the stacking order of content and image on mobile devices
1135
+ * @default false
1136
+ */
1137
+ reverseOnMobile?: boolean;
1138
+
1139
+ /**
1140
+ * Granular part-based styling
1141
+ */
1142
+ parts?: HeroParts;
1042
1143
  }
1043
1144
 
1044
1145
  /**
@@ -1468,16 +1569,16 @@ export interface SideMenuProps extends BaseComponentProps {
1468
1569
  active?: boolean | undefined;
1469
1570
  disabled?: boolean | undefined;
1470
1571
  as?:
1471
- | React.ComponentType<{
1472
- href?: string;
1473
- to?: string;
1474
- children: React.ReactNode;
1475
- className?: string;
1476
- onClick?: (event: React.MouseEvent) => void;
1477
- target?: string;
1478
- rel?: string;
1479
- }>
1480
- | undefined;
1572
+ | React.ComponentType<{
1573
+ href?: string;
1574
+ to?: string;
1575
+ children: React.ReactNode;
1576
+ className?: string;
1577
+ onClick?: (event: React.MouseEvent) => void;
1578
+ target?: string;
1579
+ rel?: string;
1580
+ }>
1581
+ | undefined;
1481
1582
  }>;
1482
1583
  }>;
1483
1584
  }
@@ -3677,17 +3778,17 @@ export interface VideoPlayerProps extends BaseComponentProps {
3677
3778
  * - object: Custom glass configuration
3678
3779
  */
3679
3780
  glass?:
3680
- | boolean
3681
- | {
3682
- displacementScale?: number;
3683
- blurAmount?: number;
3684
- saturation?: number;
3685
- aberrationIntensity?: number;
3686
- elasticity?: number;
3687
- cornerRadius?: number;
3688
- mode?: 'standard' | 'polar' | 'prominent' | 'shader';
3689
- overLight?: boolean;
3690
- };
3781
+ | boolean
3782
+ | {
3783
+ displacementScale?: number;
3784
+ blurAmount?: number;
3785
+ saturation?: number;
3786
+ aberrationIntensity?: number;
3787
+ elasticity?: number;
3788
+ cornerRadius?: number;
3789
+ mode?: 'standard' | 'polar' | 'prominent' | 'shader';
3790
+ overLight?: boolean;
3791
+ };
3691
3792
 
3692
3793
  /**
3693
3794
  * Glass overlay opacity (0-1) when glass variant is enabled
@@ -5075,23 +5176,23 @@ export interface SliderProps extends BaseComponentProps {
5075
5176
  * Whether to enable mouse wheel control
5076
5177
  */
5077
5178
  mousewheel?:
5078
- | boolean
5079
- | {
5080
- forceToAxis?: boolean;
5081
- sensitivity?: number;
5082
- releaseOnEdges?: boolean;
5083
- };
5179
+ | boolean
5180
+ | {
5181
+ forceToAxis?: boolean;
5182
+ sensitivity?: number;
5183
+ releaseOnEdges?: boolean;
5184
+ };
5084
5185
 
5085
5186
  /**
5086
5187
  * Whether to enable keyboard control
5087
5188
  */
5088
5189
  keyboard?:
5089
- | boolean
5090
- | {
5091
- enabled?: boolean;
5092
- onlyInViewport?: boolean;
5093
- pageUpDown?: boolean;
5094
- };
5190
+ | boolean
5191
+ | {
5192
+ enabled?: boolean;
5193
+ onlyInViewport?: boolean;
5194
+ pageUpDown?: boolean;
5195
+ };
5095
5196
 
5096
5197
  /**
5097
5198
  * Whether to grab cursor on hover (default: true)
@@ -5154,16 +5255,16 @@ export interface SliderProps extends BaseComponentProps {
5154
5255
  * Whether to free mode (no snap to slides)
5155
5256
  */
5156
5257
  freeMode?:
5157
- | boolean
5158
- | {
5159
- enabled?: boolean;
5160
- sticky?: boolean;
5161
- momentumRatio?: number;
5162
- momentumVelocityRatio?: number;
5163
- momentumBounce?: boolean;
5164
- momentumBounceRatio?: number;
5165
- minimumVelocity?: number;
5166
- };
5258
+ | boolean
5259
+ | {
5260
+ enabled?: boolean;
5261
+ sticky?: boolean;
5262
+ momentumRatio?: number;
5263
+ momentumVelocityRatio?: number;
5264
+ momentumBounce?: boolean;
5265
+ momentumBounceRatio?: number;
5266
+ minimumVelocity?: number;
5267
+ };
5167
5268
 
5168
5269
  /**
5169
5270
  * Whether to watch for slides and wrapper size changes
@@ -5199,23 +5300,23 @@ export interface SliderProps extends BaseComponentProps {
5199
5300
  * Hash navigation
5200
5301
  */
5201
5302
  hashNavigation?:
5202
- | boolean
5203
- | {
5204
- watchState?: boolean;
5205
- replaceState?: boolean;
5206
- };
5303
+ | boolean
5304
+ | {
5305
+ watchState?: boolean;
5306
+ replaceState?: boolean;
5307
+ };
5207
5308
 
5208
5309
  /**
5209
5310
  * History navigation
5210
5311
  */
5211
5312
  history?:
5212
- | boolean
5213
- | {
5214
- enabled?: boolean;
5215
- root?: string;
5216
- replaceState?: boolean;
5217
- key?: string;
5218
- };
5313
+ | boolean
5314
+ | {
5315
+ enabled?: boolean;
5316
+ root?: string;
5317
+ replaceState?: boolean;
5318
+ key?: string;
5319
+ };
5219
5320
 
5220
5321
  /**
5221
5322
  * Controller configuration
@@ -5230,16 +5331,16 @@ export interface SliderProps extends BaseComponentProps {
5230
5331
  * A11y configuration
5231
5332
  */
5232
5333
  a11y?:
5233
- | boolean
5234
- | {
5235
- enabled?: boolean;
5236
- prevSlideMessage?: string;
5237
- nextSlideMessage?: string;
5238
- firstSlideMessage?: string;
5239
- lastSlideMessage?: string;
5240
- paginationBulletMessage?: string;
5241
- notificationClass?: string;
5242
- };
5334
+ | boolean
5335
+ | {
5336
+ enabled?: boolean;
5337
+ prevSlideMessage?: string;
5338
+ nextSlideMessage?: string;
5339
+ firstSlideMessage?: string;
5340
+ lastSlideMessage?: string;
5341
+ paginationBulletMessage?: string;
5342
+ notificationClass?: string;
5343
+ };
5243
5344
 
5244
5345
  /**
5245
5346
  * Slide change callback
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Part-Based Styling Props
3
- *
3
+ *
4
4
  * Type definitions for styling individual component parts with className and style props.
5
5
  * This enables granular customization of component internals.
6
6
  */
@@ -40,6 +40,6 @@ describe('sanitizeCSVCell', () => {
40
40
 
41
41
  it('should handle mixed cases', () => {
42
42
  // Dangerous character + quotes + newlines
43
- expect(sanitizeCSVCell('=cmd|\' /C calc\'!A0\n')).toBe("'=cmd|' /C calc'!A0 ");
43
+ expect(sanitizeCSVCell("=cmd|' /C calc'!A0\n")).toBe("'=cmd|' /C calc'!A0 ");
44
44
  });
45
45
  });
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Component Utilities
3
- *
3
+ *
4
4
  * Helper functions for component development with the new customization system
5
5
  */
6
6
 
@@ -39,7 +39,7 @@ export function createCSSVarStyle(
39
39
  baseStyle?: React.CSSProperties
40
40
  ): React.CSSProperties {
41
41
  if (!cssVars) return baseStyle || {};
42
-
42
+
43
43
  const varStyle = cssVarsToStyle(cssVars);
44
44
  return { ...varStyle, ...baseStyle };
45
45
  }
@@ -102,11 +102,7 @@ export function createPartProps<T extends { className?: string; style?: React.CS
102
102
  /**
103
103
  * Check if component has customization
104
104
  */
105
- export function hasCustomization(props: {
106
- parts?: any;
107
- cssVars?: any;
108
- slots?: any;
109
- }): boolean {
105
+ export function hasCustomization(props: { parts?: any; cssVars?: any; slots?: any }): boolean {
110
106
  return Boolean(props.parts || props.cssVars || props.slots);
111
107
  }
112
108
 
@@ -115,7 +111,7 @@ export function hasCustomization(props: {
115
111
  */
116
112
  export function createDebugAttrs(componentName: string, variant?: string): Record<string, string> {
117
113
  if (typeof process === 'undefined' || process.env?.NODE_ENV !== 'development') return {};
118
-
114
+
119
115
  return {
120
116
  'data-component': componentName,
121
117
  ...(variant && { 'data-variant': variant }),
@@ -126,7 +122,7 @@ export function createDebugAttrs(componentName: string, variant?: string): Recor
126
122
  * Generate a UUID v4
127
123
  */
128
124
  export function generateUUID(): string {
129
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
125
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
130
126
  const r = (Math.random() * 16) | 0;
131
127
  const v = c === 'x' ? r : (r & 0x3) | 0x8;
132
128
  return v.toString(16);
@@ -146,18 +142,18 @@ export function isYouTubeUrl(url: string): boolean {
146
142
  */
147
143
  export function extractYouTubeId(url: string): string | null {
148
144
  if (!isYouTubeUrl(url)) return null;
149
-
145
+
150
146
  const patterns = [
151
147
  /(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([^&\n?#]+)/,
152
148
  /youtube\.com\/.*[?&]v=([^&\n?#]+)/,
153
149
  ];
154
-
150
+
155
151
  for (const pattern of patterns) {
156
152
  const match = url.match(pattern);
157
153
  if (match && match[1]) {
158
154
  return match[1];
159
155
  }
160
156
  }
161
-
157
+
162
158
  return null;
163
159
  }
@@ -10,7 +10,9 @@
10
10
  * to prevent formula injection.
11
11
  */
12
12
  export function sanitizeCSVCell(cell: any): string {
13
- const sanitized = String(cell ?? '').replace(/[\r\n\t]/g, ' ').replace(/"/g, '""');
13
+ const sanitized = String(cell ?? '')
14
+ .replace(/[\r\n\t]/g, ' ')
15
+ .replace(/"/g, '""');
14
16
  // Prevent formula injection by prefixing dangerous characters
15
17
  const dangerous = /^[=+\-@]/;
16
18
  return dangerous.test(sanitized) ? `'${sanitized}` : sanitized;
@@ -46,10 +46,7 @@ export function exportToCSV(
46
46
  /**
47
47
  * Export data as JSON
48
48
  */
49
- export function exportToJSON(
50
- data: any[],
51
- filename: string = 'data-table.json'
52
- ): void {
49
+ export function exportToJSON(data: any[], filename: string = 'data-table.json'): void {
53
50
  if (!data.length) return;
54
51
 
55
52
  const jsonContent = JSON.stringify(data, null, 2);
@@ -131,4 +128,3 @@ export function exportData(
131
128
  console.warn(`Unsupported export format: ${format}`);
132
129
  }
133
130
  }
134
-
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Font Preloading Utilities
3
- *
3
+ *
4
4
  * Provides utilities for preloading fonts to improve performance
5
5
  * and prevent Flash of Invisible Text (FOIT).
6
6
  */
@@ -34,10 +34,10 @@ export interface FontPreloadConfig {
34
34
 
35
35
  /**
36
36
  * Creates a preload link element for a font
37
- *
37
+ *
38
38
  * @param config - Font preload configuration
39
39
  * @returns HTML link element for preloading
40
- *
40
+ *
41
41
  * @example
42
42
  * ```tsx
43
43
  * const preloadLink = createFontPreloadLink({
@@ -49,11 +49,7 @@ export interface FontPreloadConfig {
49
49
  * ```
50
50
  */
51
51
  export function createFontPreloadLink(config: FontPreloadConfig): HTMLLinkElement {
52
- const {
53
- path,
54
- format = 'woff2',
55
- crossorigin = 'anonymous',
56
- } = config;
52
+ const { path, format = 'woff2', crossorigin = 'anonymous' } = config;
57
53
 
58
54
  const link = document.createElement('link');
59
55
  link.rel = 'preload';
@@ -67,10 +63,10 @@ export function createFontPreloadLink(config: FontPreloadConfig): HTMLLinkElemen
67
63
 
68
64
  /**
69
65
  * Preloads multiple fonts
70
- *
66
+ *
71
67
  * @param fonts - Array of font configurations to preload
72
68
  * @returns Array of created link elements
73
- *
69
+ *
74
70
  * @example
75
71
  * ```tsx
76
72
  * const links = preloadFonts([
@@ -87,10 +83,10 @@ export function preloadFonts(fonts: FontPreloadConfig[]): HTMLLinkElement[] {
87
83
  /**
88
84
  * Generates preload link HTML tags as strings
89
85
  * Useful for server-side rendering or static HTML generation
90
- *
86
+ *
91
87
  * @param fonts - Array of font configurations
92
88
  * @returns Array of HTML string representations
93
- *
89
+ *
94
90
  * @example
95
91
  * ```tsx
96
92
  * const htmlTags = generateFontPreloadTags([
@@ -100,12 +96,8 @@ export function preloadFonts(fonts: FontPreloadConfig[]): HTMLLinkElement[] {
100
96
  * ```
101
97
  */
102
98
  export function generateFontPreloadTags(fonts: FontPreloadConfig[]): string[] {
103
- return fonts.map((config) => {
104
- const {
105
- path,
106
- format = 'woff2',
107
- crossorigin = 'anonymous',
108
- } = config;
99
+ return fonts.map(config => {
100
+ const { path, format = 'woff2', crossorigin = 'anonymous' } = config;
109
101
 
110
102
  return `<link rel="preload" as="font" href="${path}" type="font/${format}" crossorigin="${crossorigin}">`;
111
103
  });
@@ -145,4 +137,3 @@ export const DEFAULT_ATOMIX_FONTS: FontPreloadConfig[] = [
145
137
  format: 'woff2',
146
138
  },
147
139
  ];
148
-
@@ -35,7 +35,10 @@ export function createPhosphorIcon(name: string, size: number = 16): string {
35
35
  const path = ICON_PATHS[name] || '';
36
36
 
37
37
  if (!path) {
38
- console.warn('Icon not found in icon library:', typeof name === 'string' ? name.replace(/[^a-zA-Z0-9_-]/g, '_') : 'invalid_name');
38
+ console.warn(
39
+ 'Icon not found in icon library:',
40
+ typeof name === 'string' ? name.replace(/[^a-zA-Z0-9_-]/g, '_') : 'invalid_name'
41
+ );
39
42
  }
40
43
 
41
44
  return `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" fill="currentColor" viewBox="0 0 256 256">
@@ -16,9 +16,7 @@ export {
16
16
  extractYouTubeId,
17
17
  } from './componentUtils';
18
18
 
19
- export type {
20
- MergePropsOptions,
21
- } from './componentUtils';
19
+ export type { MergePropsOptions } from './componentUtils';
22
20
 
23
21
  export {
24
22
  createFontPreloadLink,
@@ -27,6 +25,4 @@ export {
27
25
  DEFAULT_ATOMIX_FONTS,
28
26
  } from './fontPreloader';
29
27
 
30
- export type {
31
- FontPreloadConfig,
32
- } from './fontPreloader';
28
+ export type { FontPreloadConfig } from './fontPreloader';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Memory Monitoring Utilities
3
- *
3
+ *
4
4
  * Detects memory leaks and tracks component lifecycle memory usage
5
5
  * Only available in development mode
6
6
  */
@@ -40,7 +40,7 @@ export function isMemoryMonitoringAvailable(): boolean {
40
40
 
41
41
  /**
42
42
  * Get current memory usage snapshot
43
- *
43
+ *
44
44
  * @returns Memory snapshot or null if not available
45
45
  */
46
46
  export function getMemorySnapshot(): MemorySnapshot | null {
@@ -60,7 +60,7 @@ export function getMemorySnapshot(): MemorySnapshot | null {
60
60
 
61
61
  /**
62
62
  * Format bytes to human-readable string
63
- *
63
+ *
64
64
  * @param bytes - Number of bytes
65
65
  * @returns Formatted string (e.g., "1.5 MB")
66
66
  */
@@ -76,7 +76,7 @@ export function formatBytes(bytes: number): string {
76
76
 
77
77
  /**
78
78
  * Compare two memory snapshots and detect potential leaks
79
- *
79
+ *
80
80
  * @param before - Snapshot before operation
81
81
  * @param after - Snapshot after operation
82
82
  * @param threshold - Threshold in bytes to consider a leak (default: 5MB)
@@ -114,7 +114,7 @@ export function detectMemoryLeak(
114
114
 
115
115
  /**
116
116
  * Monitor memory usage over time
117
- *
117
+ *
118
118
  * @param interval - Interval in milliseconds to check memory
119
119
  * @param callback - Callback function called with each snapshot
120
120
  * @returns Function to stop monitoring
@@ -156,7 +156,7 @@ export function monitorMemoryUsage(
156
156
 
157
157
  /**
158
158
  * Track component lifecycle memory usage
159
- *
159
+ *
160
160
  * @param componentName - Name of the component
161
161
  * @returns Object with start and end tracking functions
162
162
  */
@@ -175,7 +175,10 @@ export function trackComponentMemory(componentName: string) {
175
175
  const after = getMemorySnapshot();
176
176
  if (before && after) {
177
177
  const leakInfo = detectMemoryLeak(before, after);
178
- if (leakInfo.hasLeak && (typeof process === 'undefined' || process.env?.NODE_ENV === 'development')) {
178
+ if (
179
+ leakInfo.hasLeak &&
180
+ (typeof process === 'undefined' || process.env?.NODE_ENV === 'development')
181
+ ) {
179
182
  console.warn(
180
183
  `[Memory Monitor] Potential memory leak detected in ${componentName}:`,
181
184
  leakInfo
@@ -186,4 +189,3 @@ export function trackComponentMemory(componentName: string) {
186
189
  },
187
190
  };
188
191
  }
189
-