@shohojdhara/atomix 0.3.14 → 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 (343) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/build-tools/EXAMPLES.md +372 -0
  3. package/build-tools/README.md +242 -0
  4. package/build-tools/__tests__/error-handler.test.js +230 -0
  5. package/build-tools/__tests__/index.test.js +141 -0
  6. package/build-tools/__tests__/rollup-plugin.test.js +194 -0
  7. package/build-tools/__tests__/utils.test.js +161 -0
  8. package/build-tools/__tests__/vite-plugin.test.js +129 -0
  9. package/build-tools/__tests__/webpack-loader.test.js +190 -0
  10. package/build-tools/error-handler.js +308 -0
  11. package/build-tools/index.d.ts +44 -0
  12. package/build-tools/index.js +88 -0
  13. package/build-tools/package.json +50 -0
  14. package/build-tools/rollup-plugin.js +236 -0
  15. package/build-tools/types.d.ts +163 -0
  16. package/build-tools/utils.js +203 -0
  17. package/build-tools/vite-plugin.js +161 -0
  18. package/build-tools/webpack-loader.js +123 -0
  19. package/dist/atomix.css +21044 -2618
  20. package/dist/atomix.css.map +1 -1
  21. package/dist/atomix.min.css +77 -3
  22. package/dist/atomix.min.css.map +1 -1
  23. package/dist/build-tools/EXAMPLES.md +372 -0
  24. package/dist/build-tools/README.md +242 -0
  25. package/dist/build-tools/__tests__/error-handler.test.js +230 -0
  26. package/dist/build-tools/__tests__/index.test.js +141 -0
  27. package/dist/build-tools/__tests__/rollup-plugin.test.js +194 -0
  28. package/dist/build-tools/__tests__/utils.test.js +161 -0
  29. package/dist/build-tools/__tests__/vite-plugin.test.js +129 -0
  30. package/dist/build-tools/__tests__/webpack-loader.test.js +190 -0
  31. package/dist/build-tools/error-handler.js +308 -0
  32. package/dist/build-tools/index.d.ts +44 -0
  33. package/dist/build-tools/index.js +88 -0
  34. package/dist/build-tools/package.json +50 -0
  35. package/dist/build-tools/rollup-plugin.js +236 -0
  36. package/dist/build-tools/types.d.ts +163 -0
  37. package/dist/build-tools/utils.js +203 -0
  38. package/dist/build-tools/vite-plugin.js +161 -0
  39. package/dist/build-tools/webpack-loader.js +123 -0
  40. package/dist/charts.d.ts +1 -1
  41. package/dist/charts.js +86 -57
  42. package/dist/charts.js.map +1 -1
  43. package/dist/core.d.ts +1 -1
  44. package/dist/core.js +136 -112
  45. package/dist/core.js.map +1 -1
  46. package/dist/forms.d.ts +2 -5
  47. package/dist/forms.js +140 -128
  48. package/dist/forms.js.map +1 -1
  49. package/dist/heavy.d.ts +1 -1
  50. package/dist/heavy.js +136 -112
  51. package/dist/heavy.js.map +1 -1
  52. package/dist/index.d.ts +152 -78
  53. package/dist/index.esm.js +346 -340
  54. package/dist/index.esm.js.map +1 -1
  55. package/dist/index.js +359 -353
  56. package/dist/index.js.map +1 -1
  57. package/dist/index.min.js +1 -1
  58. package/dist/index.min.js.map +1 -1
  59. package/dist/layout.js.map +1 -1
  60. package/dist/theme.d.ts +9 -9
  61. package/dist/theme.js.map +1 -1
  62. package/package.json +23 -8
  63. package/scripts/atomix-cli.js +170 -73
  64. package/scripts/cli/__tests__/README.md +81 -0
  65. package/scripts/cli/__tests__/basic.test.js +115 -0
  66. package/scripts/cli/__tests__/component-generator.test.js +332 -0
  67. package/scripts/cli/__tests__/integration.test.js +327 -0
  68. package/scripts/cli/__tests__/test-setup.js +133 -0
  69. package/scripts/cli/__tests__/token-manager.test.js +251 -0
  70. package/scripts/cli/__tests__/utils.test.js +161 -0
  71. package/scripts/cli/component-generator.js +253 -299
  72. package/scripts/cli/dependency-checker.js +355 -0
  73. package/scripts/cli/interactive-init.js +46 -5
  74. package/scripts/cli/template-manager.js +0 -2
  75. package/scripts/cli/templates/common-templates.js +636 -0
  76. package/scripts/cli/templates/composable-templates.js +148 -126
  77. package/scripts/cli/templates/index.js +23 -16
  78. package/scripts/cli/templates/project-templates.js +151 -23
  79. package/scripts/cli/templates/react-templates.js +280 -210
  80. package/scripts/cli/templates/scss-templates.js +90 -91
  81. package/scripts/cli/templates/testing-templates.js +206 -27
  82. package/scripts/cli/templates/testing-utils.js +278 -0
  83. package/scripts/cli/templates/types-templates.js +70 -56
  84. package/scripts/cli/theme-bridge.js +8 -2
  85. package/scripts/cli/token-manager.js +318 -206
  86. package/scripts/cli/utils.js +0 -1
  87. package/src/components/Accordion/Accordion.stories.tsx +358 -850
  88. package/src/components/Accordion/Accordion.test.tsx +70 -50
  89. package/src/components/Accordion/Accordion.tsx +99 -94
  90. package/src/components/AtomixGlass/AtomixGlass.test.tsx +1 -1
  91. package/src/components/AtomixGlass/AtomixGlass.tsx +80 -39
  92. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +103 -81
  93. package/src/components/AtomixGlass/GlassFilter.tsx +9 -16
  94. package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +8 -7
  95. package/src/components/AtomixGlass/glass-utils.ts +6 -5
  96. package/src/components/AtomixGlass/shader-utils.ts +133 -52
  97. package/src/components/AtomixGlass/stories/Customization.stories.tsx +131 -0
  98. package/src/components/AtomixGlass/stories/Examples.stories.tsx +2957 -2853
  99. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -1
  100. package/src/components/AtomixGlass/stories/Overview.stories.tsx +348 -0
  101. package/src/components/AtomixGlass/stories/Performance.stories.tsx +103 -0
  102. package/src/components/AtomixGlass/stories/Playground.stories.tsx +51 -36
  103. package/src/components/AtomixGlass/stories/{ShaderVariants.stories.tsx → Shaders.stories.tsx} +2 -2
  104. package/src/components/AtomixGlass/stories/shared-components.tsx +90 -190
  105. package/src/components/Avatar/Avatar.stories.tsx +195 -0
  106. package/src/components/Avatar/Avatar.tsx +58 -56
  107. package/src/components/Badge/Badge.stories.tsx +122 -352
  108. package/src/components/Badge/Badge.test.tsx +41 -41
  109. package/src/components/Badge/Badge.tsx +64 -62
  110. package/src/components/Block/Block.stories.tsx +30 -11
  111. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +142 -23
  112. package/src/components/Breadcrumb/Breadcrumb.tsx +62 -60
  113. package/src/components/Button/Button.stories.tsx +454 -1126
  114. package/src/components/Button/Button.test.tsx +123 -0
  115. package/src/components/Button/Button.tsx +88 -60
  116. package/src/components/Button/ButtonGroup.stories.tsx +376 -215
  117. package/src/components/Button/ButtonGroup.tsx +4 -15
  118. package/src/components/Callout/Callout.stories.tsx +316 -568
  119. package/src/components/Card/Card.stories.tsx +292 -81
  120. package/src/components/Card/Card.tsx +30 -14
  121. package/src/components/Chart/AreaChart.tsx +1 -1
  122. package/src/components/Chart/CandlestickChart.tsx +23 -16
  123. package/src/components/Chart/Chart.stories.tsx +153 -16
  124. package/src/components/Chart/Chart.tsx +40 -44
  125. package/src/components/Chart/ChartRenderer.tsx +39 -12
  126. package/src/components/Chart/ChartToolbar.tsx +21 -5
  127. package/src/components/Chart/DonutChart.tsx +1 -1
  128. package/src/components/Chart/FunnelChart.tsx +4 -1
  129. package/src/components/Chart/GaugeChart.tsx +3 -1
  130. package/src/components/Chart/HeatmapChart.tsx +50 -37
  131. package/src/components/Chart/LineChart.tsx +3 -2
  132. package/src/components/Chart/MultiAxisChart.tsx +24 -16
  133. package/src/components/Chart/RadarChart.tsx +19 -17
  134. package/src/components/Chart/ScatterChart.tsx +29 -21
  135. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +152 -66
  136. package/src/components/ColorModeToggle/ColorModeToggle.tsx +15 -3
  137. package/src/components/Countdown/Countdown.stories.tsx +114 -7
  138. package/src/components/DataTable/DataTable.stories.tsx +349 -144
  139. package/src/components/DataTable/DataTable.test.tsx +26 -148
  140. package/src/components/DataTable/DataTable.tsx +485 -456
  141. package/src/components/DatePicker/DatePicker.stories.tsx +310 -1066
  142. package/src/components/DatePicker/DatePicker.tsx +31 -26
  143. package/src/components/Dropdown/Dropdown.stories.tsx +153 -36
  144. package/src/components/Dropdown/Dropdown.tsx +313 -299
  145. package/src/components/EdgePanel/EdgePanel.stories.tsx +221 -25
  146. package/src/components/EdgePanel/EdgePanel.tsx +1 -3
  147. package/src/components/Footer/Footer.stories.tsx +396 -327
  148. package/src/components/Footer/Footer.tsx +130 -128
  149. package/src/components/Footer/FooterLink.tsx +2 -2
  150. package/src/components/Form/Checkbox.stories.tsx +140 -6
  151. package/src/components/Form/Checkbox.test.tsx +63 -0
  152. package/src/components/Form/Checkbox.tsx +122 -78
  153. package/src/components/Form/Form.stories.tsx +110 -19
  154. package/src/components/Form/FormGroup.stories.tsx +127 -4
  155. package/src/components/Form/Input.stories.tsx +22 -39
  156. package/src/components/Form/Input.test.tsx +38 -44
  157. package/src/components/Form/Radio.stories.tsx +146 -17
  158. package/src/components/Form/Radio.tsx +68 -66
  159. package/src/components/Form/Select.stories.tsx +140 -8
  160. package/src/components/Form/Select.tsx +184 -182
  161. package/src/components/Form/Textarea.stories.tsx +149 -6
  162. package/src/components/Form/Textarea.test.tsx +27 -32
  163. package/src/components/Hero/Hero.stories.tsx +372 -38
  164. package/src/components/Hero/Hero.tsx +201 -55
  165. package/src/components/Icon/index.ts +7 -1
  166. package/src/components/List/List.stories.tsx +141 -3
  167. package/src/components/List/List.tsx +19 -23
  168. package/src/components/Modal/Modal.stories.tsx +183 -43
  169. package/src/components/Modal/Modal.tsx +130 -127
  170. package/src/components/Navigation/Menu/MegaMenu.tsx +70 -70
  171. package/src/components/Navigation/Nav/NavDropdown.tsx +1 -5
  172. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +128 -28
  173. package/src/components/Navigation/SideMenu/SideMenu.tsx +5 -7
  174. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +4 -5
  175. package/src/components/Pagination/Pagination.stories.tsx +7 -4
  176. package/src/components/Pagination/Pagination.tsx +199 -202
  177. package/src/components/PhotoViewer/PhotoViewer.tsx +4 -1
  178. package/src/components/Popover/Popover.stories.tsx +354 -97
  179. package/src/components/Popover/Popover.tsx +41 -37
  180. package/src/components/Progress/Progress.stories.tsx +160 -7
  181. package/src/components/River/River.stories.tsx +3 -2
  182. package/src/components/SectionIntro/SectionIntro.stories.tsx +239 -47
  183. package/src/components/Slider/Slider.stories.tsx +12 -4
  184. package/src/components/Spinner/Spinner.stories.tsx +104 -8
  185. package/src/components/Spinner/Spinner.test.tsx +23 -23
  186. package/src/components/Spinner/Spinner.tsx +43 -46
  187. package/src/components/Steps/Steps.stories.tsx +173 -42
  188. package/src/components/Tabs/Tabs.stories.tsx +141 -12
  189. package/src/components/Tabs/Tabs.tsx +74 -72
  190. package/src/components/Testimonial/Testimonial.stories.tsx +120 -3
  191. package/src/components/Todo/Todo.stories.tsx +198 -9
  192. package/src/components/Toggle/Toggle.stories.tsx +137 -36
  193. package/src/components/Toggle/Toggle.test.tsx +65 -70
  194. package/src/components/Toggle/Toggle.tsx +4 -1
  195. package/src/components/Tooltip/Tooltip.stories.tsx +194 -100
  196. package/src/components/Tooltip/Tooltip.tsx +104 -106
  197. package/src/components/Upload/Upload.stories.tsx +241 -150
  198. package/src/components/Upload/Upload.tsx +287 -283
  199. package/src/components/VideoPlayer/VideoPlayer.tsx +6 -1
  200. package/src/components/index.ts +13 -2
  201. package/src/layouts/Grid/Grid.stories.tsx +9 -3
  202. package/src/layouts/MasonryGrid/MasonryGrid.tsx +5 -1
  203. package/src/lib/README.md +2 -2
  204. package/src/lib/__tests__/theme-tools.test.ts +219 -0
  205. package/src/lib/composables/index.ts +2 -2
  206. package/src/lib/composables/shared-mouse-tracker.ts +13 -14
  207. package/src/lib/composables/useAtomixGlass.ts +126 -97
  208. package/src/lib/composables/useChartExport.ts +3 -8
  209. package/src/lib/composables/useDataTable.ts +72 -43
  210. package/src/lib/composables/useHero.ts +58 -14
  211. package/src/lib/composables/useHeroBackgroundSlider.ts +2 -9
  212. package/src/lib/composables/useInput.ts +10 -8
  213. package/src/lib/composables/useSideMenu.ts +6 -5
  214. package/src/lib/composables/useTooltip.ts +1 -2
  215. package/src/lib/composables/useVideoPlayer.ts +44 -35
  216. package/src/lib/config/index.ts +154 -154
  217. package/src/lib/constants/components.ts +9 -32
  218. package/src/lib/constants/cssVariables.ts +29 -29
  219. package/src/lib/hooks/__tests__/useComponentCustomization.test.ts +2 -6
  220. package/src/lib/hooks/index.ts +1 -1
  221. package/src/lib/hooks/useComponentCustomization.ts +11 -17
  222. package/src/lib/hooks/usePerformanceMonitor.ts +6 -7
  223. package/src/lib/patterns/__tests__/slots.test.ts +1 -1
  224. package/src/lib/patterns/index.ts +1 -1
  225. package/src/lib/patterns/slots.tsx +8 -13
  226. package/src/lib/storybook/InteractiveDemo.tsx +13 -18
  227. package/src/lib/storybook/PreviewContainer.tsx +1 -1
  228. package/src/lib/storybook/VariantsGrid.tsx +3 -7
  229. package/src/lib/storybook/index.ts +1 -1
  230. package/src/lib/theme/adapters/cssVariableMapper.ts +47 -74
  231. package/src/lib/theme/adapters/index.ts +3 -9
  232. package/src/lib/theme/adapters/themeAdapter.ts +41 -26
  233. package/src/lib/theme/config/index.ts +1 -1
  234. package/src/lib/theme/config/types.ts +2 -2
  235. package/src/lib/theme/config/validator.ts +10 -5
  236. package/src/lib/theme/constants/constants.ts +2 -2
  237. package/src/lib/theme/constants/index.ts +1 -2
  238. package/src/lib/theme/core/__tests__/createTheme.test.ts +20 -22
  239. package/src/lib/theme/core/composeTheme.ts +32 -26
  240. package/src/lib/theme/core/createTheme.ts +1 -1
  241. package/src/lib/theme/core/createThemeObject.ts +308 -301
  242. package/src/lib/theme/core/index.ts +3 -3
  243. package/src/lib/theme/devtools/CLI.ts +107 -105
  244. package/src/lib/theme/devtools/Comparator.tsx +50 -32
  245. package/src/lib/theme/devtools/DesignTokensCustomizer.stories.tsx +50 -48
  246. package/src/lib/theme/devtools/DesignTokensCustomizer.tsx +257 -63
  247. package/src/lib/theme/devtools/Inspector.tsx +75 -60
  248. package/src/lib/theme/devtools/LiveEditor.tsx +97 -76
  249. package/src/lib/theme/devtools/Preview.tsx +150 -106
  250. package/src/lib/theme/devtools/ThemeValidator.ts +29 -21
  251. package/src/lib/theme/devtools/index.ts +3 -9
  252. package/src/lib/theme/devtools/useHistory.ts +23 -21
  253. package/src/lib/theme/errors/errors.ts +12 -11
  254. package/src/lib/theme/errors/index.ts +2 -7
  255. package/src/lib/theme/generators/generateCSS.ts +9 -13
  256. package/src/lib/theme/generators/generateCSSNested.ts +1 -6
  257. package/src/lib/theme/generators/generateCSSVariables.ts +673 -630
  258. package/src/lib/theme/generators/index.ts +1 -4
  259. package/src/lib/theme/i18n/index.ts +1 -1
  260. package/src/lib/theme/i18n/rtl.ts +13 -13
  261. package/src/lib/theme/index.ts +7 -16
  262. package/src/lib/theme/runtime/ThemeApplicator.ts +4 -4
  263. package/src/lib/theme/runtime/ThemeContext.tsx +1 -1
  264. package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +19 -23
  265. package/src/lib/theme/runtime/ThemeProvider.tsx +230 -239
  266. package/src/lib/theme/runtime/__tests__/ThemeProvider.integration.test.tsx +1 -1
  267. package/src/lib/theme/runtime/__tests__/ThemeProvider.test.tsx +24 -29
  268. package/src/lib/theme/runtime/index.ts +2 -5
  269. package/src/lib/theme/runtime/useTheme.ts +18 -18
  270. package/src/lib/theme/runtime/useThemeTokens.ts +22 -22
  271. package/src/lib/theme/test/testTheme.ts +15 -16
  272. package/src/lib/theme/tokens/index.ts +2 -7
  273. package/src/lib/theme/tokens/tokens.ts +25 -24
  274. package/src/lib/theme/types.ts +428 -411
  275. package/src/lib/theme/utils/__tests__/themeValidation.test.ts +3 -3
  276. package/src/lib/theme/utils/componentTheming.ts +18 -18
  277. package/src/lib/theme/utils/domUtils.ts +277 -289
  278. package/src/lib/theme/utils/index.ts +1 -2
  279. package/src/lib/theme/utils/injectCSS.ts +10 -14
  280. package/src/lib/theme/utils/naming.ts +20 -16
  281. package/src/lib/theme/utils/themeHelpers.ts +10 -12
  282. package/src/lib/theme/utils/themeUtils.ts +85 -86
  283. package/src/lib/theme/utils/themeValidation.ts +82 -33
  284. package/src/lib/theme-tools.ts +8 -6
  285. package/src/lib/types/components.ts +172 -71
  286. package/src/lib/types/partProps.ts +1 -1
  287. package/src/lib/utils/__tests__/csv.test.ts +45 -0
  288. package/src/lib/utils/componentUtils.ts +8 -12
  289. package/src/lib/utils/csv.ts +19 -0
  290. package/src/lib/utils/dataTableExport.ts +2 -15
  291. package/src/lib/utils/fontPreloader.ts +10 -19
  292. package/src/lib/utils/icons.ts +4 -1
  293. package/src/lib/utils/index.ts +2 -6
  294. package/src/lib/utils/memoryMonitor.ts +10 -8
  295. package/src/lib/utils/themeNaming.ts +2 -2
  296. package/src/styles/01-settings/_index.scss +1 -1
  297. package/src/styles/01-settings/_settings.accordion.scss +28 -7
  298. package/src/styles/01-settings/_settings.colors.scss +11 -11
  299. package/src/styles/01-settings/_settings.design-tokens.scss +61 -50
  300. package/src/styles/01-settings/_settings.navbar.scss +1 -1
  301. package/src/styles/01-settings/_settings.spacing.scss +3 -4
  302. package/src/styles/01-settings/_settings.tooltip.scss +1 -1
  303. package/src/styles/01-settings/_settings.typography.scss +4 -4
  304. package/src/styles/02-tools/_tools.button.scss +51 -21
  305. package/src/styles/02-tools/_tools.utility-api.scss +38 -12
  306. package/src/styles/03-generic/_generic.root.scss +4 -3
  307. package/src/styles/06-components/_components.accordion.scss +56 -14
  308. package/src/styles/06-components/_components.atomix-glass.scss +13 -9
  309. package/src/styles/06-components/_components.button.scss +16 -4
  310. package/src/styles/06-components/_components.callout.scss +27 -21
  311. package/src/styles/06-components/_components.card.scss +5 -14
  312. package/src/styles/06-components/_components.chart.scss +22 -19
  313. package/src/styles/06-components/_components.checkbox.scss +25 -17
  314. package/src/styles/06-components/_components.color-mode-toggle.scss +3 -1
  315. package/src/styles/06-components/_components.edge-panel.scss +9 -2
  316. package/src/styles/06-components/_components.footer.scss +1 -1
  317. package/src/styles/06-components/_components.side-menu.scss +5 -5
  318. package/src/styles/06-components/_components.toggle.scss +18 -0
  319. package/src/styles/06-components/_index.scss +1 -1
  320. package/src/styles/06-components/old.chart.styles.scss +0 -2
  321. package/src/styles/99-utilities/_index.scss +2 -0
  322. package/src/styles/99-utilities/_utilities.border.scss +69 -27
  323. package/src/styles/99-utilities/_utilities.display.scss +1 -1
  324. package/src/styles/99-utilities/_utilities.opacity.scss +10 -0
  325. package/src/styles/99-utilities/_utilities.position.scss +16 -9
  326. package/src/styles/99-utilities/_utilities.scss +2 -0
  327. package/src/styles/99-utilities/_utilities.sizes.scss +47 -18
  328. package/src/styles/99-utilities/_utilities.spacing.scss +118 -66
  329. package/src/styles/99-utilities/_utilities.text-gradient.scss +45 -0
  330. package/src/styles/99-utilities/_utilities.text.scss +67 -46
  331. package/themes/dark-complementary/README.md +98 -0
  332. package/themes/dark-complementary/index.scss +158 -0
  333. package/themes/default-light/README.md +81 -0
  334. package/themes/default-light/index.scss +154 -0
  335. package/themes/high-contrast/README.md +105 -0
  336. package/themes/high-contrast/index.scss +172 -0
  337. package/themes/test-theme/README.md +38 -0
  338. package/themes/test-theme/index.scss +47 -0
  339. package/scripts/cli/templates-original-backup.js +0 -1655
  340. package/scripts/cli/templates_backup.js +0 -684
  341. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +0 -1438
  342. package/src/lib/composables/useButton.ts +0 -93
  343. package/src/lib/composables/useCheckbox.ts +0 -70
@@ -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({