@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
@@ -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
+ };