@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
@@ -29,10 +29,7 @@ const TestComponent = ({ onThemeChange }: { onThemeChange?: (theme: string) => v
29
29
  >
30
30
  Update Typography
31
31
  </button>
32
- <button
33
- data-testid="reset-theme"
34
- onClick={() => setTheme(defaultTheme)}
35
- >
32
+ <button data-testid="reset-theme" onClick={() => setTheme(defaultTheme)}>
36
33
  Reset Theme
37
34
  </button>
38
35
  </div>
@@ -40,14 +37,14 @@ const TestComponent = ({ onThemeChange }: { onThemeChange?: (theme: string) => v
40
37
  };
41
38
 
42
39
  const defaultTheme = {
43
- 'primary': '#7c3aed',
44
- 'secondary': '#6b7280',
45
- 'success': '#22c55e',
46
- 'error': '#ef4444',
47
- 'warning': '#eab308',
48
- 'info': '#3b82f6',
49
- 'light': '#f9fafb',
50
- 'dark': '#1f2937',
40
+ primary: '#7c3aed',
41
+ secondary: '#6b7280',
42
+ success: '#22c55e',
43
+ error: '#ef4444',
44
+ warning: '#eab308',
45
+ info: '#3b82f6',
46
+ light: '#f9fafb',
47
+ dark: '#1f2937',
51
48
  'primary-rgb': '124, 58, 237',
52
49
  'secondary-rgb': '107, 114, 128',
53
50
  'success-rgb': '34, 197, 94',
@@ -164,9 +161,10 @@ const defaultTheme = {
164
161
  'info-gradient': 'linear-gradient(135deg, #eff6ff, #dbeafe, #bfdbfe)',
165
162
  'warning-gradient': 'linear-gradient(135deg, #fefce8, #fef9c3, #fef08a)',
166
163
  'error-gradient': 'linear-gradient(135deg, #fef2f2, #fee2e2, #fecaca)',
167
- 'gradient': 'linear-gradient(135deg, #f9fafb, #f3f4f6, #e5e7eb)',
164
+ gradient: 'linear-gradient(135deg, #f9fafb, #f3f4f6, #e5e7eb)',
168
165
  'font-sans-serif': '"Roboto", sans-serif',
169
- 'font-monospace': 'SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
166
+ 'font-monospace':
167
+ 'SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
170
168
  'body-font-family': '"Roboto", sans-serif',
171
169
  'body-font-size': '1rem',
172
170
  'body-font-weight': '400',
@@ -299,7 +297,7 @@ const defaultTheme = {
299
297
 
300
298
  const customTheme = {
301
299
  ...defaultTheme,
302
- 'primary': '#8b5cf6',
300
+ primary: '#8b5cf6',
303
301
  'error-text-emphasis': '#7f1d1d',
304
302
  'success-text-emphasis': '#14532d',
305
303
  };
@@ -406,7 +404,7 @@ describe('ThemeProvider', () => {
406
404
 
407
405
  it('should handle theme change callbacks', () => {
408
406
  const onThemeChange = vi.fn();
409
-
407
+
410
408
  render(
411
409
  <ThemeProvider theme={defaultTheme}>
412
410
  <TestComponent onThemeChange={onThemeChange} />
@@ -421,8 +419,8 @@ describe('ThemeProvider', () => {
421
419
  expect(onThemeChange).toHaveBeenCalledWith(
422
420
  expect.objectContaining({
423
421
  colors: expect.objectContaining({
424
- primary: '#8b5cf6'
425
- })
422
+ primary: '#8b5cf6',
423
+ }),
426
424
  })
427
425
  );
428
426
  });
@@ -442,10 +440,7 @@ describe('ThemeProvider', () => {
442
440
  fireEvent.click(screen.getByTestId('update-primary'));
443
441
  });
444
442
 
445
- expect(setItemSpy).toHaveBeenCalledWith(
446
- 'atomix-theme',
447
- expect.stringContaining('#8b5cf6')
448
- );
443
+ expect(setItemSpy).toHaveBeenCalledWith('atomix-theme', expect.stringContaining('#8b5cf6'));
449
444
 
450
445
  setItemSpy.mockRestore();
451
446
  });
@@ -514,10 +509,10 @@ describe('ThemeProvider', () => {
514
509
  // Update only part of the colors section
515
510
  const TestPartialUpdate = () => {
516
511
  const { updateTheme } = useTheme();
517
-
512
+
518
513
  return (
519
- <button
520
- data-testid="partial-update"
514
+ <button
515
+ data-testid="partial-update"
521
516
  onClick={() => updateTheme('colors', { secondary: '#ec4899' })}
522
517
  >
523
518
  Partial Update
@@ -556,10 +551,10 @@ describe('useTheme Hook Error Handling', () => {
556
551
  it('should handle invalid theme sections gracefully', () => {
557
552
  const TestInvalidUpdate = () => {
558
553
  const { updateTheme } = useTheme();
559
-
554
+
560
555
  return (
561
- <button
562
- data-testid="invalid-update"
556
+ <button
557
+ data-testid="invalid-update"
563
558
  onClick={() => updateTheme('invalid-section' as ThemeSection, { test: 'value' })}
564
559
  >
565
560
  Invalid Update
@@ -585,4 +580,4 @@ describe('useTheme Hook Error Handling', () => {
585
580
 
586
581
  consoleSpy.mockRestore();
587
582
  });
588
- });
583
+ });
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Theme Runtime Module
3
- *
3
+ *
4
4
  * Runtime components for theme management
5
5
  */
6
6
 
@@ -11,7 +11,4 @@ export { useThemeTokens } from './useThemeTokens';
11
11
  export { ThemeApplicator, getThemeApplicator, applyTheme } from './ThemeApplicator';
12
12
  export type { ThemeErrorBoundaryProps } from './ThemeErrorBoundary';
13
13
 
14
- export type {
15
- ThemeChangeEvent,
16
- ThemeLoadOptions,
17
- } from '../types';
14
+ export type { ThemeChangeEvent, ThemeLoadOptions } from '../types';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * useTheme Hook
3
- *
3
+ *
4
4
  * React hook for accessing theme context
5
5
  */
6
6
 
@@ -10,14 +10,14 @@ import type { UseThemeReturn } from '../types';
10
10
 
11
11
  /**
12
12
  * useTheme hook
13
- *
13
+ *
14
14
  * Access theme context and theme management functions
15
- *
15
+ *
16
16
  * @example
17
17
  * ```tsx
18
18
  * function MyComponent() {
19
19
  * const { theme, setTheme, availableThemes } = useTheme();
20
- *
20
+ *
21
21
  * return (
22
22
  * <div>
23
23
  * <p>Current theme: {theme}</p>
@@ -30,22 +30,22 @@ import type { UseThemeReturn } from '../types';
30
30
  * ```
31
31
  */
32
32
  export function useTheme(): UseThemeReturn {
33
- const context = useContext(ThemeContext);
33
+ const context = useContext(ThemeContext);
34
34
 
35
- if (!context) {
36
- throw new Error('useTheme must be used within a ThemeProvider');
37
- }
35
+ if (!context) {
36
+ throw new Error('useTheme must be used within a ThemeProvider');
37
+ }
38
38
 
39
- return {
40
- theme: context.theme,
41
- activeTokens: context.activeTokens,
42
- setTheme: context.setTheme,
43
- availableThemes: context.availableThemes,
44
- isLoading: context.isLoading,
45
- error: context.error,
46
- isThemeLoaded: context.isThemeLoaded,
47
- preloadTheme: context.preloadTheme,
48
- };
39
+ return {
40
+ theme: context.theme,
41
+ activeTokens: context.activeTokens,
42
+ setTheme: context.setTheme,
43
+ availableThemes: context.availableThemes,
44
+ isLoading: context.isLoading,
45
+ error: context.error,
46
+ isThemeLoaded: context.isThemeLoaded,
47
+ preloadTheme: context.preloadTheme,
48
+ };
49
49
  }
50
50
 
51
51
  export default useTheme;
@@ -9,29 +9,29 @@ import type { DesignTokens } from '../tokens/tokens';
9
9
  * and DesignTokens.
10
10
  */
11
11
  type ThemeTokens = {
12
- theme: string;
13
- activeTokens: DesignTokens | null;
14
- getToken: (tokenName: string, fallback?: string) => string;
15
- colors: {
16
- primary: string;
17
- secondary: string;
18
- error: string;
19
- success: string;
20
- warning: string;
21
- info: string;
22
- light: string;
23
- dark: string;
24
- };
25
- spacing: Record<string, string>;
26
- borderRadius: Record<string, string>;
27
- typography: {
28
- fontFamily: Record<string, string>;
29
- fontSize: Record<string, string>;
30
- fontWeight: Record<string, string>;
31
- };
32
- shadows: Record<string, string>;
33
- transitions: Record<string, string>;
12
+ theme: string;
13
+ activeTokens: DesignTokens | null;
14
+ getToken: (tokenName: string, fallback?: string) => string;
15
+ colors: {
16
+ primary: string;
17
+ secondary: string;
18
+ error: string;
19
+ success: string;
20
+ warning: string;
21
+ info: string;
22
+ light: string;
23
+ dark: string;
24
+ };
25
+ spacing: Record<string, string>;
26
+ borderRadius: Record<string, string>;
27
+ typography: {
28
+ fontFamily: Record<string, string>;
29
+ fontSize: Record<string, string>;
30
+ fontWeight: Record<string, string>;
34
31
  };
32
+ shadows: Record<string, string>;
33
+ transitions: Record<string, string>;
34
+ };
35
35
 
36
36
  export function useThemeTokens(): ThemeTokens {
37
37
  const { theme, activeTokens } = useTheme();
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Test Theme
3
- *
3
+ *
4
4
  * Comprehensive test theme demonstrating both DesignTokens and Theme object approaches.
5
5
  * This file can be used for testing the theme system, adapters, and generators.
6
6
  */
@@ -17,30 +17,30 @@ import { themeToDesignTokens, createDesignTokensFromTheme } from '../adapters/th
17
17
 
18
18
  /**
19
19
  * Test theme using DesignTokens (flat structure)
20
- *
20
+ *
21
21
  * This is the recommended approach for most use cases.
22
22
  * DesignTokens directly map to CSS variables.
23
23
  */
24
24
  export const testThemeTokens: Partial<DesignTokens> = {
25
25
  // Primary colors
26
- 'primary': '#7AFFD7',
26
+ primary: '#7AFFD7',
27
27
  'primary-3': '#B3FFE9',
28
28
  'primary-6': '#7AFFD7',
29
29
  'primary-9': '#00E6C3',
30
30
  'primary-rgb': '122, 255, 215',
31
31
 
32
32
  // Secondary colors
33
- 'secondary': '#FF6B9D',
33
+ secondary: '#FF6B9D',
34
34
  'secondary-rgb': '255, 107, 157',
35
35
 
36
36
  // Semantic colors
37
- 'success': '#1AFF85',
37
+ success: '#1AFF85',
38
38
  'success-rgb': '26, 255, 133',
39
- 'error': '#FF1A1A',
39
+ error: '#FF1A1A',
40
40
  'error-rgb': '255, 26, 26',
41
- 'warning': '#FFB800',
41
+ warning: '#FFB800',
42
42
  'warning-rgb': '255, 184, 0',
43
- 'info': '#1A9FFF',
43
+ info: '#1A9FFF',
44
44
  'info-rgb': '26, 159, 255',
45
45
 
46
46
  // Background colors
@@ -129,7 +129,7 @@ export function generateTestThemeCSS(): string {
129
129
 
130
130
  /**
131
131
  * Test theme using Theme object (nested structure)
132
- *
132
+ *
133
133
  * This approach provides more structure and computed values.
134
134
  * Useful for advanced use cases that need theme composition.
135
135
  */
@@ -282,7 +282,7 @@ export function generateTestThemeCSSFromObject(): string {
282
282
  * Minimal test theme for quick testing
283
283
  */
284
284
  export const minimalTestTheme: Partial<DesignTokens> = {
285
- 'primary': '#7AFFD7',
285
+ primary: '#7AFFD7',
286
286
  'body-bg': '#000000',
287
287
  'body-color': '#FFFFFF',
288
288
  'body-font-family': '"Inter", sans-serif',
@@ -301,7 +301,7 @@ export function generateMinimalTestThemeCSS(): string {
301
301
 
302
302
  /**
303
303
  * Test theme adapter conversion
304
- *
304
+ *
305
305
  * Converts Theme object to DesignTokens and back to verify adapter works correctly.
306
306
  */
307
307
  export function testThemeAdapter(): {
@@ -322,7 +322,7 @@ export function testThemeAdapter(): {
322
322
 
323
323
  /**
324
324
  * Compare CSS output from both approaches
325
- *
325
+ *
326
326
  * Verifies that DesignTokens and Theme object produce similar CSS output.
327
327
  */
328
328
  export function compareThemeOutputs(): {
@@ -333,7 +333,7 @@ export function compareThemeOutputs(): {
333
333
  } {
334
334
  const fromTokens = generateTestThemeCSS();
335
335
  const fromTheme = generateTestThemeCSSFromObject();
336
-
336
+
337
337
  const theme = createTestThemeObject();
338
338
  const themeTokens = themeToDesignTokens(theme);
339
339
 
@@ -347,12 +347,12 @@ export function compareThemeOutputs(): {
347
347
 
348
348
  /**
349
349
  * Test theme composition
350
- *
350
+ *
351
351
  * Tests extending a base theme with customizations.
352
352
  */
353
353
  export function testThemeComposition(): Theme {
354
354
  const baseTheme = createTestThemeObject();
355
-
355
+
356
356
  // Extend with custom options
357
357
  const extendedTheme = createThemeObject(
358
358
  {
@@ -383,4 +383,3 @@ export const testThemes = {
383
383
  compareOutputs: compareThemeOutputs,
384
384
  testComposition: testThemeComposition,
385
385
  };
386
-
@@ -1,12 +1,7 @@
1
1
  /**
2
2
  * Design Tokens
3
- *
3
+ *
4
4
  * Design token definitions and utilities
5
5
  */
6
6
 
7
- export {
8
- createTokens,
9
- defaultTokens,
10
- type DesignTokens,
11
- } from './tokens';
12
-
7
+ export { createTokens, defaultTokens, type DesignTokens } from './tokens';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Design Tokens
3
- *
3
+ *
4
4
  * Simple flat structure for design tokens.
5
5
  * All tokens match the actual CSS variables used in Atomix.
6
6
  * Based on docs/tokes-list.md
@@ -8,7 +8,7 @@
8
8
 
9
9
  /**
10
10
  * Design tokens interface
11
- *
11
+ *
12
12
  * Flat structure - no nesting complexity.
13
13
  * Keys use kebab-case format matching CSS variable names (without --atomix- prefix).
14
14
  */
@@ -16,14 +16,14 @@ export interface DesignTokens {
16
16
  // ============================================================================
17
17
  // Colors - Base
18
18
  // ============================================================================
19
- 'primary': string;
20
- 'secondary': string;
21
- 'success': string;
22
- 'info': string;
23
- 'warning': string;
24
- 'error': string;
25
- 'light': string;
26
- 'dark': string;
19
+ primary: string;
20
+ secondary: string;
21
+ success: string;
22
+ info: string;
23
+ warning: string;
24
+ error: string;
25
+ light: string;
26
+ dark: string;
27
27
 
28
28
  // RGB versions
29
29
  'primary-rgb': string;
@@ -186,7 +186,7 @@ export interface DesignTokens {
186
186
  'info-gradient': string;
187
187
  'warning-gradient': string;
188
188
  'error-gradient': string;
189
- 'gradient': string;
189
+ gradient: string;
190
190
 
191
191
  // ============================================================================
192
192
  // Typography - Fonts
@@ -386,19 +386,19 @@ export interface DesignTokens {
386
386
 
387
387
  /**
388
388
  * Default design tokens
389
- *
389
+ *
390
390
  * Based on Atomix default theme values from docs/tokes-list.md (light mode)
391
391
  */
392
392
  export const defaultTokens: DesignTokens = {
393
393
  // Colors - Base
394
- 'primary': '#7c3aed',
395
- 'secondary': '#f3f4f6',
396
- 'success': '#22c55e',
397
- 'info': '#3b82f6',
398
- 'warning': '#eab308',
399
- 'error': '#ef4444',
400
- 'light': '#f9fafb',
401
- 'dark': '#1f2937',
394
+ primary: '#7c3aed',
395
+ secondary: '#f3f4f6',
396
+ success: '#22c55e',
397
+ info: '#3b82f6',
398
+ warning: '#eab308',
399
+ error: '#ef4444',
400
+ light: '#f9fafb',
401
+ dark: '#1f2937',
402
402
 
403
403
  // RGB versions
404
404
  'primary-rgb': '124, 58, 237',
@@ -539,11 +539,12 @@ export const defaultTokens: DesignTokens = {
539
539
  'info-gradient': 'linear-gradient(135deg, #dbeafe, #bfdbfe, #60a5fa)',
540
540
  'warning-gradient': 'linear-gradient(135deg, #fef9c3, #fef08a, #facc15)',
541
541
  'error-gradient': 'linear-gradient(135deg, #fef2f2, #fee2e2, #fecaca)',
542
- 'gradient': 'linear-gradient(135deg, #f9fafb, #f3f4f6, #e5e7eb)',
542
+ gradient: 'linear-gradient(135deg, #f9fafb, #f3f4f6, #e5e7eb)',
543
543
 
544
544
  // Typography - Fonts
545
545
  'font-sans-serif': '"Roboto", sans-serif',
546
- 'font-monospace': 'SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
546
+ 'font-monospace':
547
+ 'SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
547
548
  'body-font-family': '"Roboto", sans-serif',
548
549
  'body-font-size': '1rem',
549
550
  'body-font-weight': '400',
@@ -704,10 +705,10 @@ export const defaultTokens: DesignTokens = {
704
705
 
705
706
  /**
706
707
  * Create tokens from defaults and overrides
707
- *
708
+ *
708
709
  * @param overrides - Partial tokens to override defaults
709
710
  * @returns Complete DesignTokens object
710
- *
711
+ *
711
712
  * @example
712
713
  * ```typescript
713
714
  * const tokens = createTokens({