@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
@@ -3,17 +3,19 @@ import { DesignTokensCustomizer } from './DesignTokensCustomizer';
3
3
  import { useState } from 'react';
4
4
 
5
5
  // Enhanced preview components
6
- const PreviewContainer = ({ title, description, children }: {
7
- title?: string;
8
- description?: string;
6
+ const PreviewContainer = ({
7
+ title,
8
+ description,
9
+ children,
10
+ }: {
11
+ title?: string;
12
+ description?: string;
9
13
  children: React.ReactNode;
10
14
  }) => (
11
15
  <div className="story-preview-container">
12
16
  {title && <h3 className="story-preview-title">{title}</h3>}
13
17
  {description && <p className="story-preview-description">{description}</p>}
14
- <div className="story-preview-content">
15
- {children}
16
- </div>
18
+ <div className="story-preview-content">{children}</div>
17
19
  </div>
18
20
  );
19
21
 
@@ -24,10 +26,10 @@ const meta: Meta<typeof DesignTokensCustomizer> = {
24
26
  layout: 'fullscreen',
25
27
  docs: {
26
28
  description: {
27
- component: 'Interactive design tokens customization tool for real-time theme adjustments.'
28
- }
29
- }
30
- }
29
+ component: 'Interactive design tokens customization tool for real-time theme adjustments.',
30
+ },
31
+ },
32
+ },
31
33
  };
32
34
 
33
35
  export default meta;
@@ -36,8 +38,8 @@ type Story = StoryObj<typeof DesignTokensCustomizer>;
36
38
  // Basic Usage
37
39
  export const Default: Story = {
38
40
  render: () => (
39
- <PreviewContainer
40
- title="Design Tokens Customizer"
41
+ <PreviewContainer
42
+ title="Design Tokens Customizer"
41
43
  description="Interactive tool for customizing design tokens in real-time"
42
44
  >
43
45
  <DesignTokensCustomizer />
@@ -46,10 +48,10 @@ export const Default: Story = {
46
48
  parameters: {
47
49
  docs: {
48
50
  description: {
49
- story: 'The default design tokens customizer with all standard controls and features.'
50
- }
51
- }
52
- }
51
+ story: 'The default design tokens customizer with all standard controls and features.',
52
+ },
53
+ },
54
+ },
53
55
  };
54
56
 
55
57
  // With Custom Configuration
@@ -59,36 +61,36 @@ export const WithCustomConfig: Story = {
59
61
  colors: {
60
62
  primary: '#667eea',
61
63
  secondary: '#764ba2',
62
- accent: '#f093fb'
64
+ accent: '#f093fb',
63
65
  },
64
66
  spacing: {
65
67
  small: '8px',
66
68
  medium: '16px',
67
- large: '24px'
69
+ large: '24px',
68
70
  },
69
71
  typography: {
70
72
  fontFamily: 'Inter, sans-serif',
71
73
  fontSize: '16px',
72
- fontWeight: '400'
73
- }
74
+ fontWeight: '400',
75
+ },
74
76
  };
75
-
77
+
76
78
  return (
77
- <PreviewContainer
78
- title="Custom Configuration"
79
+ <PreviewContainer
80
+ title="Custom Configuration"
79
81
  description="Design tokens customizer with predefined custom configuration"
80
82
  >
81
83
  <DesignTokensCustomizer initialConfig={customConfig} />
82
84
  </PreviewContainer>
83
85
  );
84
- }
86
+ },
85
87
  };
86
88
 
87
89
  // Theme Preview Mode
88
90
  export const ThemePreview: Story = {
89
91
  render: () => (
90
- <PreviewContainer
91
- title="Theme Preview Mode"
92
+ <PreviewContainer
93
+ title="Theme Preview Mode"
92
94
  description="Customizer with live theme preview components"
93
95
  >
94
96
  <div className="theme-preview-layout">
@@ -119,19 +121,19 @@ export const ThemePreview: Story = {
119
121
  viewports: {
120
122
  desktop: {
121
123
  name: 'Desktop',
122
- styles: { width: '1200px', height: '800px' }
123
- }
124
+ styles: { width: '1200px', height: '800px' },
125
+ },
124
126
  },
125
- defaultViewport: 'desktop'
126
- }
127
- }
127
+ defaultViewport: 'desktop',
128
+ },
129
+ },
128
130
  };
129
131
 
130
132
  // Compact Mode
131
133
  export const Compact: Story = {
132
134
  render: () => (
133
- <PreviewContainer
134
- title="Compact Mode"
135
+ <PreviewContainer
136
+ title="Compact Mode"
135
137
  description="Space-efficient customizer for smaller screens"
136
138
  >
137
139
  <DesignTokensCustomizer compact={true} />
@@ -142,26 +144,26 @@ export const Compact: Story = {
142
144
  viewports: {
143
145
  mobile: {
144
146
  name: 'Mobile',
145
- styles: { width: '375px', height: '667px' }
146
- }
147
+ styles: { width: '375px', height: '667px' },
148
+ },
147
149
  },
148
- defaultViewport: 'mobile'
149
- }
150
- }
150
+ defaultViewport: 'mobile',
151
+ },
152
+ },
151
153
  };
152
154
 
153
155
  // With Export Options
154
156
  export const WithExport: Story = {
155
157
  render: () => {
156
158
  const [exportData, setExportData] = useState('');
157
-
159
+
158
160
  const handleExport = (tokens: any) => {
159
161
  setExportData(JSON.stringify(tokens, null, 2));
160
162
  };
161
-
163
+
162
164
  return (
163
- <PreviewContainer
164
- title="With Export Options"
165
+ <PreviewContainer
166
+ title="With Export Options"
165
167
  description="Customizer with export functionality for sharing themes"
166
168
  >
167
169
  <div className="export-workflow">
@@ -170,7 +172,7 @@ export const WithExport: Story = {
170
172
  <div className="export-output">
171
173
  <h4>Exported Theme Data:</h4>
172
174
  <pre>{exportData}</pre>
173
- <button
175
+ <button
174
176
  onClick={() => navigator.clipboard.writeText(exportData)}
175
177
  className="copy-button"
176
178
  >
@@ -181,14 +183,14 @@ export const WithExport: Story = {
181
183
  </div>
182
184
  </PreviewContainer>
183
185
  );
184
- }
186
+ },
185
187
  };
186
188
 
187
189
  // Interactive Tutorial
188
190
  export const InteractiveTutorial: Story = {
189
191
  render: () => (
190
- <PreviewContainer
191
- title="Interactive Tutorial"
192
+ <PreviewContainer
193
+ title="Interactive Tutorial"
192
194
  description="Guided tour of the design tokens customizer features"
193
195
  >
194
196
  <div className="tutorial-container">
@@ -209,5 +211,5 @@ export const InteractiveTutorial: Story = {
209
211
  <DesignTokensCustomizer />
210
212
  </div>
211
213
  </PreviewContainer>
212
- )
213
- };
214
+ ),
215
+ };
@@ -35,7 +35,15 @@ type ColorFormat = 'hex' | 'rgb' | 'rgba' | 'hsl' | 'hsla';
35
35
  /**
36
36
  * Token category for organization
37
37
  */
38
- type TokenCategory = 'colors' | 'typography' | 'spacing' | 'shadows' | 'borders' | 'transitions' | 'zindex' | 'breakpoints';
38
+ type TokenCategory =
39
+ | 'colors'
40
+ | 'typography'
41
+ | 'spacing'
42
+ | 'shadows'
43
+ | 'borders'
44
+ | 'transitions'
45
+ | 'zindex'
46
+ | 'breakpoints';
39
47
 
40
48
  /**
41
49
  * Design Tokens Customizer Component
@@ -120,13 +128,12 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
120
128
  case 'rgba':
121
129
  return `rgba(${r}, ${g}, ${b}, ${a})`;
122
130
  case 'hsl':
123
- case 'hsla':
124
- {
131
+ case 'hsla': {
125
132
  const hsl = rgbToHsl(r, g, b);
126
133
  return format === 'hsl'
127
134
  ? `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`
128
135
  : `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${a})`;
129
- }
136
+ }
130
137
  default:
131
138
  return color;
132
139
  }
@@ -149,9 +156,15 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
149
156
  s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
150
157
 
151
158
  switch (max) {
152
- case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;
153
- case g: h = ((b - r) / d + 2) / 6; break;
154
- case b: h = ((r - g) / d + 4) / 6; break;
159
+ case r:
160
+ h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
161
+ break;
162
+ case g:
163
+ h = ((b - r) / d + 2) / 6;
164
+ break;
165
+ case b:
166
+ h = ((r - g) / d + 4) / 6;
167
+ break;
155
168
  }
156
169
  }
157
170
 
@@ -200,7 +213,7 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
200
213
  if (!file) return;
201
214
 
202
215
  const reader = new FileReader();
203
- reader.onload = (e) => {
216
+ reader.onload = e => {
204
217
  try {
205
218
  const content = e.target?.result as string;
206
219
  const parsedTokens = JSON.parse(content);
@@ -220,92 +233,264 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
220
233
  label: 'Colors',
221
234
  tokens: [
222
235
  // Base colors
223
- 'primary', 'secondary', 'success', 'info', 'warning', 'error', 'light', 'dark',
236
+ 'primary',
237
+ 'secondary',
238
+ 'success',
239
+ 'info',
240
+ 'warning',
241
+ 'error',
242
+ 'light',
243
+ 'dark',
224
244
  // RGB versions
225
- 'primary-rgb', 'secondary-rgb', 'success-rgb', 'info-rgb', 'warning-rgb', 'error-rgb', 'light-rgb', 'dark-rgb',
245
+ 'primary-rgb',
246
+ 'secondary-rgb',
247
+ 'success-rgb',
248
+ 'info-rgb',
249
+ 'warning-rgb',
250
+ 'error-rgb',
251
+ 'light-rgb',
252
+ 'dark-rgb',
226
253
  // Gray scale
227
- 'gray-1', 'gray-2', 'gray-3', 'gray-4', 'gray-5', 'gray-6', 'gray-7', 'gray-8', 'gray-9', 'gray-10',
254
+ 'gray-1',
255
+ 'gray-2',
256
+ 'gray-3',
257
+ 'gray-4',
258
+ 'gray-5',
259
+ 'gray-6',
260
+ 'gray-7',
261
+ 'gray-8',
262
+ 'gray-9',
263
+ 'gray-10',
228
264
  // Primary scale
229
- 'primary-1', 'primary-2', 'primary-3', 'primary-4', 'primary-5', 'primary-6', 'primary-7', 'primary-8', 'primary-9', 'primary-10',
265
+ 'primary-1',
266
+ 'primary-2',
267
+ 'primary-3',
268
+ 'primary-4',
269
+ 'primary-5',
270
+ 'primary-6',
271
+ 'primary-7',
272
+ 'primary-8',
273
+ 'primary-9',
274
+ 'primary-10',
230
275
  // Text emphasis
231
- 'primary-text-emphasis', 'secondary-text-emphasis', 'tertiary-text-emphasis', 'disabled-text-emphasis',
232
- 'invert-text-emphasis', 'brand-text-emphasis', 'error-text-emphasis', 'success-text-emphasis',
233
- 'warning-text-emphasis', 'info-text-emphasis', 'light-text-emphasis', 'dark-text-emphasis',
276
+ 'primary-text-emphasis',
277
+ 'secondary-text-emphasis',
278
+ 'tertiary-text-emphasis',
279
+ 'disabled-text-emphasis',
280
+ 'invert-text-emphasis',
281
+ 'brand-text-emphasis',
282
+ 'error-text-emphasis',
283
+ 'success-text-emphasis',
284
+ 'warning-text-emphasis',
285
+ 'info-text-emphasis',
286
+ 'light-text-emphasis',
287
+ 'dark-text-emphasis',
234
288
  // Background subtle
235
- 'primary-bg-subtle', 'secondary-bg-subtle', 'tertiary-bg-subtle', 'invert-bg-subtle',
236
- 'brand-bg-subtle', 'error-bg-subtle', 'success-bg-subtle', 'warning-bg-subtle', 'info-bg-subtle',
237
- 'light-bg-subtle', 'dark-bg-subtle',
289
+ 'primary-bg-subtle',
290
+ 'secondary-bg-subtle',
291
+ 'tertiary-bg-subtle',
292
+ 'invert-bg-subtle',
293
+ 'brand-bg-subtle',
294
+ 'error-bg-subtle',
295
+ 'success-bg-subtle',
296
+ 'warning-bg-subtle',
297
+ 'info-bg-subtle',
298
+ 'light-bg-subtle',
299
+ 'dark-bg-subtle',
238
300
  // Border subtle
239
- 'primary-border-subtle', 'secondary-border-subtle', 'success-border-subtle', 'error-border-subtle',
240
- 'warning-border-subtle', 'info-border-subtle', 'brand-border-subtle', 'light-border-subtle', 'dark-border-subtle',
301
+ 'primary-border-subtle',
302
+ 'secondary-border-subtle',
303
+ 'success-border-subtle',
304
+ 'error-border-subtle',
305
+ 'warning-border-subtle',
306
+ 'info-border-subtle',
307
+ 'brand-border-subtle',
308
+ 'light-border-subtle',
309
+ 'dark-border-subtle',
241
310
  // Hover states
242
- 'primary-hover', 'secondary-hover', 'light-hover', 'dark-hover', 'error-hover', 'success-hover',
243
- 'warning-hover', 'info-hover',
311
+ 'primary-hover',
312
+ 'secondary-hover',
313
+ 'light-hover',
314
+ 'dark-hover',
315
+ 'error-hover',
316
+ 'success-hover',
317
+ 'warning-hover',
318
+ 'info-hover',
244
319
  // Gradients
245
- 'primary-gradient', 'secondary-gradient', 'light-gradient', 'dark-gradient', 'success-gradient',
246
- 'info-gradient', 'warning-gradient', 'error-gradient', 'gradient',
320
+ 'primary-gradient',
321
+ 'secondary-gradient',
322
+ 'light-gradient',
323
+ 'dark-gradient',
324
+ 'success-gradient',
325
+ 'info-gradient',
326
+ 'warning-gradient',
327
+ 'error-gradient',
328
+ 'gradient',
247
329
  ],
248
330
  },
249
331
  typography: {
250
332
  label: 'Typography',
251
333
  tokens: [
252
- 'font-sans-serif', 'font-monospace', 'body-font-family', 'body-font-size', 'body-font-weight',
253
- 'body-line-height', 'body-color', 'body-bg', 'heading-color',
254
- 'font-size-xl', 'font-size-2xl', 'display-1',
255
- 'font-weight-light', 'font-weight-normal', 'font-weight-medium', 'font-weight-semibold',
256
- 'font-weight-bold', 'font-weight-heavy', 'font-weight-black',
257
- 'line-height-base', 'line-height-sm', 'line-height-lg',
258
- 'letter-spacing-h1', 'letter-spacing-h2', 'letter-spacing-h3', 'letter-spacing-h4',
259
- 'letter-spacing-h5', 'letter-spacing-h6',
260
- 'link-color', 'link-color-rgb', 'link-decoration', 'link-hover-color', 'link-hover-color-rgb',
261
- 'highlight-bg', 'code-color',
334
+ 'font-sans-serif',
335
+ 'font-monospace',
336
+ 'body-font-family',
337
+ 'body-font-size',
338
+ 'body-font-weight',
339
+ 'body-line-height',
340
+ 'body-color',
341
+ 'body-bg',
342
+ 'heading-color',
343
+ 'font-size-xl',
344
+ 'font-size-2xl',
345
+ 'display-1',
346
+ 'font-weight-light',
347
+ 'font-weight-normal',
348
+ 'font-weight-medium',
349
+ 'font-weight-semibold',
350
+ 'font-weight-bold',
351
+ 'font-weight-heavy',
352
+ 'font-weight-black',
353
+ 'line-height-base',
354
+ 'line-height-sm',
355
+ 'line-height-lg',
356
+ 'letter-spacing-h1',
357
+ 'letter-spacing-h2',
358
+ 'letter-spacing-h3',
359
+ 'letter-spacing-h4',
360
+ 'letter-spacing-h5',
361
+ 'letter-spacing-h6',
362
+ 'link-color',
363
+ 'link-color-rgb',
364
+ 'link-decoration',
365
+ 'link-hover-color',
366
+ 'link-hover-color-rgb',
367
+ 'highlight-bg',
368
+ 'code-color',
262
369
  ],
263
370
  },
264
371
  spacing: {
265
372
  label: 'Spacing',
266
373
  tokens: [
267
- 'spacing-0', 'spacing-1', 'spacing-px-6', 'spacing-2', 'spacing-px-10', 'spacing-3', 'spacing-px-14',
268
- 'spacing-4', 'spacing-5', 'spacing-px-22', 'spacing-6', 'spacing-7', 'spacing-px-30', 'spacing-8',
269
- 'spacing-9', 'spacing-10', 'spacing-11', 'spacing-12', 'spacing-14', 'spacing-16', 'spacing-20',
270
- 'spacing-24', 'spacing-28', 'spacing-32', 'spacing-36', 'spacing-40', 'spacing-44', 'spacing-48',
271
- 'spacing-52', 'spacing-56', 'spacing-60', 'spacing-64', 'spacing-72', 'spacing-80', 'spacing-90', 'spacing-200',
374
+ 'spacing-0',
375
+ 'spacing-1',
376
+ 'spacing-px-6',
377
+ 'spacing-2',
378
+ 'spacing-px-10',
379
+ 'spacing-3',
380
+ 'spacing-px-14',
381
+ 'spacing-4',
382
+ 'spacing-5',
383
+ 'spacing-px-22',
384
+ 'spacing-6',
385
+ 'spacing-7',
386
+ 'spacing-px-30',
387
+ 'spacing-8',
388
+ 'spacing-9',
389
+ 'spacing-10',
390
+ 'spacing-11',
391
+ 'spacing-12',
392
+ 'spacing-14',
393
+ 'spacing-16',
394
+ 'spacing-20',
395
+ 'spacing-24',
396
+ 'spacing-28',
397
+ 'spacing-32',
398
+ 'spacing-36',
399
+ 'spacing-40',
400
+ 'spacing-44',
401
+ 'spacing-48',
402
+ 'spacing-52',
403
+ 'spacing-56',
404
+ 'spacing-60',
405
+ 'spacing-64',
406
+ 'spacing-72',
407
+ 'spacing-80',
408
+ 'spacing-90',
409
+ 'spacing-200',
272
410
  ],
273
411
  },
274
412
  shadows: {
275
413
  label: 'Shadows',
276
414
  tokens: [
277
- 'box-shadow', 'box-shadow-xs', 'box-shadow-sm', 'box-shadow-lg', 'box-shadow-xl', 'box-shadow-inset',
415
+ 'box-shadow',
416
+ 'box-shadow-xs',
417
+ 'box-shadow-sm',
418
+ 'box-shadow-lg',
419
+ 'box-shadow-xl',
420
+ 'box-shadow-inset',
278
421
  ],
279
422
  },
280
423
  borders: {
281
424
  label: 'Borders',
282
425
  tokens: [
283
- 'border-width', 'border-style', 'border-color', 'border-color-translucent',
284
- 'border-radius', 'border-radius-sm', 'border-radius-lg', 'border-radius-xl', 'border-radius-xxl',
285
- 'border-radius-2xl', 'border-radius-3xl', 'border-radius-4xl', 'border-radius-pill',
286
- 'focus-border-color', 'focus-ring-width', 'focus-ring-offset', 'focus-ring-opacity',
287
- 'form-valid-color', 'form-valid-border-color', 'form-invalid-color', 'form-invalid-border-color',
426
+ 'border-width',
427
+ 'border-style',
428
+ 'border-color',
429
+ 'border-color-translucent',
430
+ 'border-radius',
431
+ 'border-radius-sm',
432
+ 'border-radius-lg',
433
+ 'border-radius-xl',
434
+ 'border-radius-xxl',
435
+ 'border-radius-2xl',
436
+ 'border-radius-3xl',
437
+ 'border-radius-4xl',
438
+ 'border-radius-pill',
439
+ 'focus-border-color',
440
+ 'focus-ring-width',
441
+ 'focus-ring-offset',
442
+ 'focus-ring-opacity',
443
+ 'form-valid-color',
444
+ 'form-valid-border-color',
445
+ 'form-invalid-color',
446
+ 'form-invalid-border-color',
288
447
  ],
289
448
  },
290
449
  transitions: {
291
450
  label: 'Transitions',
292
451
  tokens: [
293
- 'transition-duration-fast', 'transition-duration-base', 'transition-duration-slow', 'transition-duration-slower',
294
- 'easing-base', 'easing-ease-in-out', 'easing-ease-out', 'easing-ease-in', 'easing-ease-linear',
295
- 'transition-fast', 'transition-base', 'transition-slow',
452
+ 'transition-duration-fast',
453
+ 'transition-duration-base',
454
+ 'transition-duration-slow',
455
+ 'transition-duration-slower',
456
+ 'easing-base',
457
+ 'easing-ease-in-out',
458
+ 'easing-ease-out',
459
+ 'easing-ease-in',
460
+ 'easing-ease-linear',
461
+ 'transition-fast',
462
+ 'transition-base',
463
+ 'transition-slow',
296
464
  ],
297
465
  },
298
466
  zindex: {
299
467
  label: 'Z-Index',
300
468
  tokens: [
301
- 'z-n1', 'z-0', 'z-1', 'z-2', 'z-3', 'z-4', 'z-5', 'z-dropdown', 'z-sticky', 'z-fixed',
302
- 'z-modal', 'z-popover', 'z-tooltip', 'z-drawer',
469
+ 'z-n1',
470
+ 'z-0',
471
+ 'z-1',
472
+ 'z-2',
473
+ 'z-3',
474
+ 'z-4',
475
+ 'z-5',
476
+ 'z-dropdown',
477
+ 'z-sticky',
478
+ 'z-fixed',
479
+ 'z-modal',
480
+ 'z-popover',
481
+ 'z-tooltip',
482
+ 'z-drawer',
303
483
  ],
304
484
  },
305
485
  breakpoints: {
306
486
  label: 'Breakpoints',
307
487
  tokens: [
308
- 'breakpoint-xs', 'breakpoint-sm', 'breakpoint-md', 'breakpoint-lg', 'breakpoint-xl', 'breakpoint-xxl',
488
+ 'breakpoint-xs',
489
+ 'breakpoint-sm',
490
+ 'breakpoint-md',
491
+ 'breakpoint-lg',
492
+ 'breakpoint-xl',
493
+ 'breakpoint-xxl',
309
494
  ],
310
495
  },
311
496
  };
@@ -315,10 +500,7 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
315
500
  <div className="customizer-header">
316
501
  <h2>Interactive Theme Customizer</h2>
317
502
  <div className="customizer-controls">
318
- <select
319
- value={colorFormat}
320
- onChange={(e) => setColorFormat(e.target.value as ColorFormat)}
321
- >
503
+ <select value={colorFormat} onChange={e => setColorFormat(e.target.value as ColorFormat)}>
322
504
  <option value="hex">HEX</option>
323
505
  <option value="rgb">RGB</option>
324
506
  <option value="rgba">RGBA</option>
@@ -357,11 +539,23 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
357
539
  <div className="customizer-editor">
358
540
  <h3>{tokenCategories[activeCategory].label}</h3>
359
541
  <div className="tokens-grid">
360
- {tokenCategories[activeCategory].tokens.map((tokenKey) => {
542
+ {tokenCategories[activeCategory].tokens.map(tokenKey => {
361
543
  const value = tokens[tokenKey as keyof DesignTokens] || '';
362
- const isColor = tokenKey.includes('color') || tokenKey.includes('bg') || tokenKey.includes('gradient') ||
363
- ['primary', 'secondary', 'success', 'info', 'warning', 'error', 'light', 'dark'].includes(tokenKey) ||
364
- tokenKey.match(/^(gray|primary|red|green|blue|yellow)-\d+$/);
544
+ const isColor =
545
+ tokenKey.includes('color') ||
546
+ tokenKey.includes('bg') ||
547
+ tokenKey.includes('gradient') ||
548
+ [
549
+ 'primary',
550
+ 'secondary',
551
+ 'success',
552
+ 'info',
553
+ 'warning',
554
+ 'error',
555
+ 'light',
556
+ 'dark',
557
+ ].includes(tokenKey) ||
558
+ tokenKey.match(/^(gray|primary|red|green|blue|yellow)-\d+$/);
365
559
 
366
560
  return (
367
561
  <div key={tokenKey} className="token-item">
@@ -371,12 +565,12 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
371
565
  <input
372
566
  type="color"
373
567
  value={value.startsWith('#') ? value : convertColorFormat(value, 'hex')}
374
- onChange={(e) => updateToken(tokenKey as keyof DesignTokens, e.target.value)}
568
+ onChange={e => updateToken(tokenKey as keyof DesignTokens, e.target.value)}
375
569
  />
376
570
  <input
377
571
  type="text"
378
572
  value={convertColorFormat(value, colorFormat)}
379
- onChange={(e) => {
573
+ onChange={e => {
380
574
  const converted = convertColorFormat(e.target.value, 'hex');
381
575
  updateToken(tokenKey as keyof DesignTokens, converted);
382
576
  }}
@@ -386,7 +580,7 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
386
580
  <input
387
581
  type="text"
388
582
  value={value}
389
- onChange={(e) => updateToken(tokenKey as keyof DesignTokens, e.target.value)}
583
+ onChange={e => updateToken(tokenKey as keyof DesignTokens, e.target.value)}
390
584
  />
391
585
  )}
392
586
  </div>
@@ -563,4 +757,4 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
563
757
  `}</style>
564
758
  </div>
565
759
  );
566
- };
760
+ };