@shohojdhara/atomix 0.3.5 → 0.3.6

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 (173) hide show
  1. package/README.md +101 -199
  2. package/atomix.config.ts +241 -0
  3. package/dist/atomix.css +260 -179
  4. package/dist/atomix.css.map +1 -1
  5. package/dist/atomix.min.css +250 -179
  6. package/dist/atomix.min.css.map +1 -1
  7. package/dist/charts.js +61 -66
  8. package/dist/charts.js.map +1 -1
  9. package/dist/core.js +47 -31
  10. package/dist/core.js.map +1 -1
  11. package/dist/forms.js +47 -31
  12. package/dist/forms.js.map +1 -1
  13. package/dist/heavy.js +47 -31
  14. package/dist/heavy.js.map +1 -1
  15. package/dist/index.d.ts +1841 -1633
  16. package/dist/index.esm.js +4975 -4113
  17. package/dist/index.esm.js.map +1 -1
  18. package/dist/index.js +5151 -4290
  19. package/dist/index.js.map +1 -1
  20. package/dist/index.min.js +1 -1
  21. package/dist/index.min.js.map +1 -1
  22. package/dist/theme.d.ts +1572 -1442
  23. package/dist/theme.js +4816 -4080
  24. package/dist/theme.js.map +1 -1
  25. package/package.json +6 -20
  26. package/src/components/Accordion/Accordion.stories.tsx +50 -17
  27. package/src/components/AtomixGlass/AtomixGlass.tsx +65 -31
  28. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +11 -4
  29. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +1 -32
  30. package/src/components/AtomixGlass/stories/Examples.stories.tsx +2 -2
  31. package/src/components/AtomixGlass/stories/shared-components.tsx +0 -31
  32. package/src/components/Avatar/Avatar.stories.tsx +7 -0
  33. package/src/components/Badge/Badge.stories.tsx +91 -13
  34. package/src/components/Block/Block.stories.tsx +7 -23
  35. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +7 -0
  36. package/src/components/Button/Button.stories.tsx +141 -22
  37. package/src/components/Button/ButtonGroup.stories.tsx +315 -0
  38. package/src/components/Button/ButtonGroup.tsx +67 -0
  39. package/src/components/Button/index.ts +2 -0
  40. package/src/components/Callout/Callout.stories.tsx +8 -6
  41. package/src/components/Card/Card.stories.tsx +82 -28
  42. package/src/components/Chart/AnimatedChart.tsx +0 -1
  43. package/src/components/Chart/AreaChart.tsx +0 -1
  44. package/src/components/Chart/BarChart.tsx +0 -1
  45. package/src/components/Chart/BubbleChart.tsx +0 -1
  46. package/src/components/Chart/CandlestickChart.tsx +0 -1
  47. package/src/components/Chart/Chart.stories.tsx +5 -7
  48. package/src/components/Chart/Chart.tsx +0 -16
  49. package/src/components/Chart/ChartRenderer.tsx +1 -1
  50. package/src/components/Chart/DonutChart.tsx +0 -1
  51. package/src/components/Chart/FunnelChart.tsx +0 -1
  52. package/src/components/Chart/GaugeChart.tsx +0 -1
  53. package/src/components/Chart/HeatmapChart.tsx +0 -1
  54. package/src/components/Chart/LineChart.tsx +0 -1
  55. package/src/components/Chart/MultiAxisChart.tsx +0 -1
  56. package/src/components/Chart/PieChart.tsx +0 -1
  57. package/src/components/Chart/RadarChart.tsx +0 -1
  58. package/src/components/Chart/ScatterChart.tsx +0 -1
  59. package/src/components/Chart/WaterfallChart.tsx +0 -1
  60. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +7 -0
  61. package/src/components/DataTable/DataTable.stories.tsx +23 -16
  62. package/src/components/DatePicker/DatePicker.stories.tsx +27 -19
  63. package/src/components/Dropdown/Dropdown.stories.tsx +11 -19
  64. package/src/components/EdgePanel/EdgePanel.stories.tsx +1 -0
  65. package/src/components/Footer/Footer.stories.tsx +8 -6
  66. package/src/components/Footer/FooterLink.tsx +9 -2
  67. package/src/components/Form/Checkbox.stories.tsx +7 -0
  68. package/src/components/Form/Form.stories.tsx +7 -0
  69. package/src/components/Form/FormGroup.stories.tsx +9 -1
  70. package/src/components/Form/Input.stories.tsx +69 -16
  71. package/src/components/Form/Radio.stories.tsx +9 -1
  72. package/src/components/Form/Select.stories.tsx +9 -1
  73. package/src/components/Form/Textarea.stories.tsx +10 -2
  74. package/src/components/Hero/Hero.stories.tsx +7 -0
  75. package/src/components/List/List.stories.tsx +7 -0
  76. package/src/components/Messages/Messages.stories.tsx +8 -7
  77. package/src/components/Modal/Modal.stories.tsx +17 -6
  78. package/src/components/Navigation/Menu/Menu.stories.tsx +7 -0
  79. package/src/components/Navigation/Nav/Nav.stories.tsx +7 -0
  80. package/src/components/Navigation/Navbar/Navbar.stories.tsx +1 -0
  81. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +1 -1
  82. package/src/components/Pagination/Pagination.stories.tsx +188 -111
  83. package/src/components/Pagination/Pagination.tsx +83 -3
  84. package/src/components/PhotoViewer/PhotoViewer.stories.tsx +10 -5
  85. package/src/components/Popover/Popover.stories.tsx +191 -115
  86. package/src/components/ProductReview/ProductReview.stories.tsx +80 -58
  87. package/src/components/Progress/Progress.stories.tsx +79 -49
  88. package/src/components/Rating/Rating.stories.tsx +109 -84
  89. package/src/components/River/River.stories.tsx +194 -114
  90. package/src/components/SectionIntro/SectionIntro.stories.tsx +19 -9
  91. package/src/components/Slider/Slider.stories.tsx +7 -0
  92. package/src/components/Spinner/Spinner.stories.tsx +15 -11
  93. package/src/components/Steps/Steps.stories.tsx +132 -98
  94. package/src/components/Tabs/Tabs.stories.tsx +163 -112
  95. package/src/components/Testimonial/Testimonial.stories.tsx +114 -68
  96. package/src/components/Todo/Todo.stories.tsx +38 -12
  97. package/src/components/Toggle/Toggle.stories.tsx +61 -28
  98. package/src/components/Tooltip/Tooltip.stories.tsx +318 -200
  99. package/src/components/Upload/Upload.stories.tsx +122 -84
  100. package/src/components/VideoPlayer/VideoPlayer.stories.tsx +7 -24
  101. package/src/components/index.ts +1 -0
  102. package/src/lib/composables/useAtomixGlass.ts +2 -3
  103. package/src/lib/composables/useNavbar.ts +0 -10
  104. package/src/lib/config/loader.ts +2 -1
  105. package/src/lib/constants/components.ts +10 -0
  106. package/src/lib/hooks/useComponentCustomization.ts +1 -1
  107. package/src/lib/theme/README.md +174 -0
  108. package/src/lib/theme/adapters/index.ts +31 -0
  109. package/src/lib/theme/adapters/themeAdapter.ts +287 -0
  110. package/src/lib/theme/config/__tests__/configLoader.test.ts +207 -0
  111. package/src/lib/theme/config/configLoader.ts +254 -0
  112. package/src/lib/theme/config/loader.ts +37 -48
  113. package/src/lib/theme/config/types.ts +2 -2
  114. package/src/lib/theme/config/validator.ts +15 -91
  115. package/src/lib/theme/{constants.ts → constants/constants.ts} +0 -18
  116. package/src/lib/theme/constants/index.ts +8 -0
  117. package/src/lib/theme/core/ThemeRegistry.ts +19 -6
  118. package/src/lib/theme/core/__tests__/createTheme.test.ts +132 -0
  119. package/src/lib/theme/core/composeTheme.ts +155 -0
  120. package/src/lib/theme/core/createTheme.ts +94 -0
  121. package/src/lib/theme/{createTheme.ts → core/createThemeObject.ts} +10 -6
  122. package/src/lib/theme/core/index.ts +5 -19
  123. package/src/lib/theme/devtools/Comparator.tsx +346 -22
  124. package/src/lib/theme/devtools/IMPROVEMENTS.md +139 -38
  125. package/src/lib/theme/devtools/Inspector.tsx +335 -51
  126. package/src/lib/theme/devtools/LiveEditor.tsx +478 -107
  127. package/src/lib/theme/devtools/Preview.tsx +471 -221
  128. package/src/lib/theme/{core → devtools}/ThemeValidator.ts +1 -1
  129. package/src/lib/theme/devtools/index.ts +14 -4
  130. package/src/lib/theme/devtools/useHistory.ts +130 -0
  131. package/src/lib/theme/errors/index.ts +12 -0
  132. package/src/lib/theme/generators/cssFile.ts +79 -0
  133. package/src/lib/theme/generators/generateCSS.ts +89 -0
  134. package/src/lib/theme/{generateCSSVariables.ts → generators/generateCSSVariables.ts} +3 -13
  135. package/src/lib/theme/generators/index.ts +19 -0
  136. package/src/lib/theme/i18n/rtl.ts +5 -6
  137. package/src/lib/theme/index.ts +120 -15
  138. package/src/lib/theme/runtime/ThemeApplicator.ts +52 -111
  139. package/src/lib/theme/{ThemeContext.tsx → runtime/ThemeContext.tsx} +1 -1
  140. package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +1 -1
  141. package/src/lib/theme/runtime/ThemeProvider.tsx +456 -179
  142. package/src/lib/theme/runtime/index.ts +1 -2
  143. package/src/lib/theme/runtime/useTheme.ts +1 -2
  144. package/src/lib/theme/test/testTheme.ts +385 -0
  145. package/src/lib/theme/tokens/index.ts +12 -0
  146. package/src/lib/theme/tokens/tokens.ts +721 -0
  147. package/src/lib/theme/types.ts +6 -42
  148. package/src/lib/theme/{utils.ts → utils/domUtils.ts} +2 -2
  149. package/src/lib/theme/utils/index.ts +11 -0
  150. package/src/lib/theme/utils/injectCSS.ts +90 -0
  151. package/src/lib/theme/utils/themeHelpers.ts +78 -0
  152. package/src/lib/theme/{themeUtils.ts → utils/themeUtils.ts} +1 -1
  153. package/src/lib/theme-tools.ts +7 -8
  154. package/src/lib/types/components.ts +40 -130
  155. package/src/lib/utils/componentUtils.ts +1 -1
  156. package/src/styles/01-settings/_settings.design-tokens.scss +4 -1
  157. package/src/styles/02-tools/_tools.button.scss +66 -79
  158. package/src/styles/06-components/_components.atomix-glass.scss +13 -3
  159. package/src/styles/06-components/_components.pagination.scss +88 -0
  160. package/scripts/sync-theme-config.js +0 -309
  161. package/src/lib/theme/composeTheme.ts +0 -370
  162. package/src/lib/theme/core/ThemeCache.ts +0 -283
  163. package/src/lib/theme/core/ThemeEngine.test.ts +0 -146
  164. package/src/lib/theme/core/ThemeEngine.ts +0 -665
  165. package/src/lib/theme/createThemeFromConfig.ts +0 -132
  166. package/src/lib/theme/devtools/CLI.ts +0 -364
  167. package/src/lib/theme/runtime/ThemeManager.test.ts +0 -192
  168. package/src/lib/theme/runtime/ThemeManager.ts +0 -446
  169. package/src/styles/03-generic/_generated-root.css +0 -26
  170. package/src/themes/README.md +0 -442
  171. package/src/themes/themes.config.js +0 -68
  172. /package/src/lib/theme/{cssVariableMapper.ts → adapters/cssVariableMapper.ts} +0 -0
  173. /package/src/lib/theme/{errors.ts → errors/errors.ts} +0 -0
@@ -0,0 +1,721 @@
1
+ /**
2
+ * Design Tokens
3
+ *
4
+ * Simple flat structure for design tokens.
5
+ * All tokens match the actual CSS variables used in Atomix.
6
+ * Based on docs/tokes-list.md
7
+ */
8
+
9
+ /**
10
+ * Design tokens interface
11
+ *
12
+ * Flat structure - no nesting complexity.
13
+ * Keys use kebab-case format matching CSS variable names (without --atomix- prefix).
14
+ */
15
+ export interface DesignTokens {
16
+ // ============================================================================
17
+ // Colors - Base
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;
27
+
28
+ // RGB versions
29
+ 'primary-rgb': string;
30
+ 'secondary-rgb': string;
31
+ 'success-rgb': string;
32
+ 'info-rgb': string;
33
+ 'warning-rgb': string;
34
+ 'error-rgb': string;
35
+ 'light-rgb': string;
36
+ 'dark-rgb': string;
37
+
38
+ // ============================================================================
39
+ // Colors - Gray Scale
40
+ // ============================================================================
41
+ 'gray-1': string;
42
+ 'gray-2': string;
43
+ 'gray-3': string;
44
+ 'gray-4': string;
45
+ 'gray-5': string;
46
+ 'gray-6': string;
47
+ 'gray-7': string;
48
+ 'gray-8': string;
49
+ 'gray-9': string;
50
+ 'gray-10': string;
51
+
52
+ // ============================================================================
53
+ // Colors - Primary Scale
54
+ // ============================================================================
55
+ 'primary-1': string;
56
+ 'primary-2': string;
57
+ 'primary-3': string;
58
+ 'primary-4': string;
59
+ 'primary-5': string;
60
+ 'primary-6': string;
61
+ 'primary-7': string;
62
+ 'primary-8': string;
63
+ 'primary-9': string;
64
+ 'primary-10': string;
65
+
66
+ // ============================================================================
67
+ // Colors - Red Scale
68
+ // ============================================================================
69
+ 'red-1': string;
70
+ 'red-2': string;
71
+ 'red-3': string;
72
+ 'red-4': string;
73
+ 'red-5': string;
74
+ 'red-6': string;
75
+ 'red-7': string;
76
+ 'red-8': string;
77
+ 'red-9': string;
78
+ 'red-10': string;
79
+
80
+ // ============================================================================
81
+ // Colors - Green Scale
82
+ // ============================================================================
83
+ 'green-1': string;
84
+ 'green-2': string;
85
+ 'green-3': string;
86
+ 'green-4': string;
87
+ 'green-5': string;
88
+ 'green-6': string;
89
+ 'green-7': string;
90
+ 'green-8': string;
91
+ 'green-9': string;
92
+ 'green-10': string;
93
+
94
+ // ============================================================================
95
+ // Colors - Blue Scale
96
+ // ============================================================================
97
+ 'blue-1': string;
98
+ 'blue-2': string;
99
+ 'blue-3': string;
100
+ 'blue-4': string;
101
+ 'blue-5': string;
102
+ 'blue-6': string;
103
+ 'blue-7': string;
104
+ 'blue-8': string;
105
+ 'blue-9': string;
106
+ 'blue-10': string;
107
+
108
+ // ============================================================================
109
+ // Colors - Yellow Scale
110
+ // ============================================================================
111
+ 'yellow-1': string;
112
+ 'yellow-2': string;
113
+ 'yellow-3': string;
114
+ 'yellow-4': string;
115
+ 'yellow-5': string;
116
+ 'yellow-6': string;
117
+ 'yellow-7': string;
118
+ 'yellow-8': string;
119
+ 'yellow-9': string;
120
+ 'yellow-10': string;
121
+
122
+ // ============================================================================
123
+ // Colors - Text Emphasis
124
+ // ============================================================================
125
+ 'primary-text-emphasis': string;
126
+ 'secondary-text-emphasis': string;
127
+ 'tertiary-text-emphasis': string;
128
+ 'disabled-text-emphasis': string;
129
+ 'invert-text-emphasis': string;
130
+ 'brand-text-emphasis': string;
131
+ 'error-text-emphasis': string;
132
+ 'success-text-emphasis': string;
133
+ 'warning-text-emphasis': string;
134
+ 'info-text-emphasis': string;
135
+ 'light-text-emphasis': string;
136
+ 'dark-text-emphasis': string;
137
+
138
+ // ============================================================================
139
+ // Colors - Background Subtle
140
+ // ============================================================================
141
+ 'primary-bg-subtle': string;
142
+ 'secondary-bg-subtle': string;
143
+ 'tertiary-bg-subtle': string;
144
+ 'invert-bg-subtle': string;
145
+ 'brand-bg-subtle': string;
146
+ 'error-bg-subtle': string;
147
+ 'success-bg-subtle': string;
148
+ 'warning-bg-subtle': string;
149
+ 'info-bg-subtle': string;
150
+ 'light-bg-subtle': string;
151
+ 'dark-bg-subtle': string;
152
+
153
+ // ============================================================================
154
+ // Colors - Border Subtle
155
+ // ============================================================================
156
+ 'primary-border-subtle': string;
157
+ 'secondary-border-subtle': string;
158
+ 'success-border-subtle': string;
159
+ 'error-border-subtle': string;
160
+ 'warning-border-subtle': string;
161
+ 'info-border-subtle': string;
162
+ 'brand-border-subtle': string;
163
+ 'light-border-subtle': string;
164
+ 'dark-border-subtle': string;
165
+
166
+ // ============================================================================
167
+ // Colors - Hover States
168
+ // ============================================================================
169
+ 'primary-hover': string;
170
+ 'secondary-hover': string;
171
+ 'light-hover': string;
172
+ 'dark-hover': string;
173
+ 'error-hover': string;
174
+ 'success-hover': string;
175
+ 'warning-hover': string;
176
+ 'info-hover': string;
177
+
178
+ // ============================================================================
179
+ // Colors - Gradients
180
+ // ============================================================================
181
+ 'primary-gradient': string;
182
+ 'secondary-gradient': string;
183
+ 'light-gradient': string;
184
+ 'dark-gradient': string;
185
+ 'success-gradient': string;
186
+ 'info-gradient': string;
187
+ 'warning-gradient': string;
188
+ 'error-gradient': string;
189
+ 'gradient': string;
190
+
191
+ // ============================================================================
192
+ // Typography - Fonts
193
+ // ============================================================================
194
+ 'font-sans-serif': string;
195
+ 'font-monospace': string;
196
+ 'body-font-family': string;
197
+ 'body-font-size': string;
198
+ 'body-font-weight': string;
199
+ 'body-line-height': string;
200
+ 'body-color': string;
201
+ 'body-bg': string;
202
+ 'heading-color': string;
203
+
204
+ // ============================================================================
205
+ // Typography - Font Sizes
206
+ // ============================================================================
207
+ 'font-size-xl': string;
208
+ 'font-size-2xl': string;
209
+ 'display-1': string;
210
+
211
+ // ============================================================================
212
+ // Typography - Font Weights
213
+ // ============================================================================
214
+ 'font-weight-light': string;
215
+ 'font-weight-normal': string;
216
+ 'font-weight-medium': string;
217
+ 'font-weight-semibold': string;
218
+ 'font-weight-bold': string;
219
+ 'font-weight-heavy': string;
220
+ 'font-weight-black': string;
221
+
222
+ // ============================================================================
223
+ // Typography - Line Heights
224
+ // ============================================================================
225
+ 'line-height-base': string;
226
+ 'line-height-sm': string;
227
+ 'line-height-lg': string;
228
+
229
+ // ============================================================================
230
+ // Typography - Letter Spacing
231
+ // ============================================================================
232
+ 'letter-spacing-h1': string;
233
+ 'letter-spacing-h2': string;
234
+ 'letter-spacing-h3': string;
235
+ 'letter-spacing-h4': string;
236
+ 'letter-spacing-h5': string;
237
+ 'letter-spacing-h6': string;
238
+
239
+ // ============================================================================
240
+ // Links
241
+ // ============================================================================
242
+ 'link-color': string;
243
+ 'link-color-rgb': string;
244
+ 'link-decoration': string;
245
+ 'link-hover-color': string;
246
+ 'link-hover-color-rgb': string;
247
+
248
+ // ============================================================================
249
+ // Highlight & Code
250
+ // ============================================================================
251
+ 'highlight-bg': string;
252
+ 'code-color': string;
253
+
254
+ // ============================================================================
255
+ // Borders
256
+ // ============================================================================
257
+ 'border-width': string;
258
+ 'border-style': string;
259
+ 'border-color': string;
260
+ 'border-color-translucent': string;
261
+ 'border-radius': string;
262
+ 'border-radius-sm': string;
263
+ 'border-radius-lg': string;
264
+ 'border-radius-xl': string;
265
+ 'border-radius-xxl': string;
266
+ 'border-radius-2xl': string;
267
+ 'border-radius-3xl': string;
268
+ 'border-radius-4xl': string;
269
+ 'border-radius-pill': string;
270
+
271
+ // ============================================================================
272
+ // Shadows
273
+ // ============================================================================
274
+ 'box-shadow': string;
275
+ 'box-shadow-xs': string;
276
+ 'box-shadow-sm': string;
277
+ 'box-shadow-lg': string;
278
+ 'box-shadow-xl': string;
279
+ 'box-shadow-inset': string;
280
+
281
+ // ============================================================================
282
+ // Focus Ring
283
+ // ============================================================================
284
+ 'focus-border-color': string;
285
+ 'focus-ring-width': string;
286
+ 'focus-ring-offset': string;
287
+ 'focus-ring-opacity': string;
288
+
289
+ // ============================================================================
290
+ // Form Validation
291
+ // ============================================================================
292
+ 'form-valid-color': string;
293
+ 'form-valid-border-color': string;
294
+ 'form-invalid-color': string;
295
+ 'form-invalid-border-color': string;
296
+
297
+ // ============================================================================
298
+ // Spacing
299
+ // ============================================================================
300
+ 'spacing-0': string;
301
+ 'spacing-1': string;
302
+ 'spacing-px-6': string;
303
+ 'spacing-2': string;
304
+ 'spacing-px-10': string;
305
+ 'spacing-3': string;
306
+ 'spacing-px-14': string;
307
+ 'spacing-4': string;
308
+ 'spacing-5': string;
309
+ 'spacing-px-22': string;
310
+ 'spacing-6': string;
311
+ 'spacing-7': string;
312
+ 'spacing-px-30': string;
313
+ 'spacing-8': string;
314
+ 'spacing-9': string;
315
+ 'spacing-10': string;
316
+ 'spacing-11': string;
317
+ 'spacing-12': string;
318
+ 'spacing-14': string;
319
+ 'spacing-16': string;
320
+ 'spacing-20': string;
321
+ 'spacing-24': string;
322
+ 'spacing-28': string;
323
+ 'spacing-32': string;
324
+ 'spacing-36': string;
325
+ 'spacing-40': string;
326
+ 'spacing-44': string;
327
+ 'spacing-48': string;
328
+ 'spacing-52': string;
329
+ 'spacing-56': string;
330
+ 'spacing-60': string;
331
+ 'spacing-64': string;
332
+ 'spacing-72': string;
333
+ 'spacing-80': string;
334
+ 'spacing-90': string;
335
+ 'spacing-200': string;
336
+
337
+ // ============================================================================
338
+ // Transitions
339
+ // ============================================================================
340
+ 'transition-duration-fast': string;
341
+ 'transition-duration-base': string;
342
+ 'transition-duration-slow': string;
343
+ 'transition-duration-slower': string;
344
+ 'easing-base': string;
345
+ 'easing-ease-in-out': string;
346
+ 'easing-ease-out': string;
347
+ 'easing-ease-in': string;
348
+ 'easing-ease-linear': string;
349
+ 'transition-fast': string;
350
+ 'transition-base': string;
351
+ 'transition-slow': string;
352
+
353
+ // ============================================================================
354
+ // Z-Index
355
+ // ============================================================================
356
+ 'z-n1': string;
357
+ 'z-0': string;
358
+ 'z-1': string;
359
+ 'z-2': string;
360
+ 'z-3': string;
361
+ 'z-4': string;
362
+ 'z-5': string;
363
+ 'z-dropdown': string;
364
+ 'z-sticky': string;
365
+ 'z-fixed': string;
366
+ 'z-modal': string;
367
+ 'z-popover': string;
368
+ 'z-tooltip': string;
369
+ 'z-drawer': string;
370
+
371
+ // ============================================================================
372
+ // Breakpoints
373
+ // ============================================================================
374
+ 'breakpoint-xs': string;
375
+ 'breakpoint-sm': string;
376
+ 'breakpoint-md': string;
377
+ 'breakpoint-lg': string;
378
+ 'breakpoint-xl': string;
379
+ 'breakpoint-xxl': string;
380
+
381
+ // ============================================================================
382
+ // Custom tokens (allow any additional tokens)
383
+ // ============================================================================
384
+ [key: string]: string | undefined;
385
+ }
386
+
387
+ /**
388
+ * Default design tokens
389
+ *
390
+ * Based on Atomix default theme values from docs/tokes-list.md (light mode)
391
+ */
392
+ export const defaultTokens: DesignTokens = {
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',
402
+
403
+ // RGB versions
404
+ 'primary-rgb': '124, 58, 237',
405
+ 'secondary-rgb': '243, 244, 246',
406
+ 'success-rgb': '34, 197, 94',
407
+ 'info-rgb': '59, 130, 246',
408
+ 'warning-rgb': '234, 179, 8',
409
+ 'error-rgb': '239, 68, 68',
410
+ 'light-rgb': '249, 250, 251',
411
+ 'dark-rgb': '31, 41, 55',
412
+
413
+ // Gray Scale
414
+ 'gray-1': '#f9fafb',
415
+ 'gray-2': '#f3f4f6',
416
+ 'gray-3': '#e5e7eb',
417
+ 'gray-4': '#d1d5db',
418
+ 'gray-5': '#9ca3af',
419
+ 'gray-6': '#6b7280',
420
+ 'gray-7': '#4b5563',
421
+ 'gray-8': '#374151',
422
+ 'gray-9': '#1f2937',
423
+ 'gray-10': '#111827',
424
+
425
+ // Primary Scale
426
+ 'primary-1': '#f2e8fd',
427
+ 'primary-2': '#e4d0fa',
428
+ 'primary-3': '#d0b2f5',
429
+ 'primary-4': '#b88cef',
430
+ 'primary-5': '#9c63e9',
431
+ 'primary-6': '#7c3aed',
432
+ 'primary-7': '#6425ca',
433
+ 'primary-8': '#501ba6',
434
+ 'primary-9': '#3c1583',
435
+ 'primary-10': '#2a0e60',
436
+
437
+ // Red Scale
438
+ 'red-1': '#fef2f2',
439
+ 'red-2': '#fee2e2',
440
+ 'red-3': '#fecaca',
441
+ 'red-4': '#fca5a5',
442
+ 'red-5': '#f87171',
443
+ 'red-6': '#ef4444',
444
+ 'red-7': '#dc2626',
445
+ 'red-8': '#b91c1c',
446
+ 'red-9': '#991b1b',
447
+ 'red-10': '#7f1d1d',
448
+
449
+ // Green Scale
450
+ 'green-1': '#f0fdf4',
451
+ 'green-2': '#dcfce7',
452
+ 'green-3': '#bbf7d0',
453
+ 'green-4': '#86efac',
454
+ 'green-5': '#4ade80',
455
+ 'green-6': '#22c55e',
456
+ 'green-7': '#16a34a',
457
+ 'green-8': '#15803d',
458
+ 'green-9': '#166534',
459
+ 'green-10': '#14532d',
460
+
461
+ // Blue Scale
462
+ 'blue-1': '#eff6ff',
463
+ 'blue-2': '#dbeafe',
464
+ 'blue-3': '#bfdbfe',
465
+ 'blue-4': '#93c5fd',
466
+ 'blue-5': '#60a5fa',
467
+ 'blue-6': '#3b82f6',
468
+ 'blue-7': '#2563eb',
469
+ 'blue-8': '#1d4ed8',
470
+ 'blue-9': '#1e40af',
471
+ 'blue-10': '#1e3a8a',
472
+
473
+ // Yellow Scale
474
+ 'yellow-1': '#fefce8',
475
+ 'yellow-2': '#fef9c3',
476
+ 'yellow-3': '#fef08a',
477
+ 'yellow-4': '#fde047',
478
+ 'yellow-5': '#facc15',
479
+ 'yellow-6': '#eab308',
480
+ 'yellow-7': '#ca8a04',
481
+ 'yellow-8': '#a16207',
482
+ 'yellow-9': '#854d0e',
483
+ 'yellow-10': '#713f12',
484
+
485
+ // Text Emphasis
486
+ 'primary-text-emphasis': '#111827',
487
+ 'secondary-text-emphasis': '#374151',
488
+ 'tertiary-text-emphasis': '#6b7280',
489
+ 'disabled-text-emphasis': '#9ca3af',
490
+ 'invert-text-emphasis': '#111827',
491
+ 'brand-text-emphasis': '#7c3aed',
492
+ 'error-text-emphasis': '#ef4444',
493
+ 'success-text-emphasis': '#22c55e',
494
+ 'warning-text-emphasis': '#eab308',
495
+ 'info-text-emphasis': '#3b82f6',
496
+ 'light-text-emphasis': '#f9fafb',
497
+ 'dark-text-emphasis': '#1f2937',
498
+
499
+ // Background Subtle
500
+ 'primary-bg-subtle': '#ffffff',
501
+ 'secondary-bg-subtle': '#e5e7eb',
502
+ 'tertiary-bg-subtle': '#d1d5db',
503
+ 'invert-bg-subtle': '#111827',
504
+ 'brand-bg-subtle': '#e4d0fa',
505
+ 'error-bg-subtle': '#fee2e2',
506
+ 'success-bg-subtle': '#dcfce7',
507
+ 'warning-bg-subtle': '#fef9c3',
508
+ 'info-bg-subtle': '#dbeafe',
509
+ 'light-bg-subtle': '#f3f4f6',
510
+ 'dark-bg-subtle': '#1f2937',
511
+
512
+ // Border Subtle
513
+ 'primary-border-subtle': '#e5e7eb',
514
+ 'secondary-border-subtle': '#111827',
515
+ 'success-border-subtle': '#22c55e',
516
+ 'error-border-subtle': '#ef4444',
517
+ 'warning-border-subtle': '#eab308',
518
+ 'info-border-subtle': '#3b82f6',
519
+ 'brand-border-subtle': '#7c3aed',
520
+ 'light-border-subtle': '#f9fafb',
521
+ 'dark-border-subtle': '#1f2937',
522
+
523
+ // Hover States
524
+ 'primary-hover': '#7c3aed',
525
+ 'secondary-hover': '#e5e7eb',
526
+ 'light-hover': '#f3f4f6',
527
+ 'dark-hover': '#4b5563',
528
+ 'error-hover': '#b91c1c',
529
+ 'success-hover': '#15803d',
530
+ 'warning-hover': '#a16207',
531
+ 'info-hover': '#1d4ed8',
532
+
533
+ // Gradients
534
+ 'primary-gradient': 'linear-gradient(135deg, #e4d0fa, #d0b2f5, #b88cef)',
535
+ 'secondary-gradient': 'linear-gradient(135deg, #f3f4f6, #e5e7eb, #d1d5db)',
536
+ 'light-gradient': 'linear-gradient(135deg, #f9fafb, #f3f4f6, #e5e7eb)',
537
+ 'dark-gradient': 'linear-gradient(135deg, #4b5563, #1f2937, #000000)',
538
+ 'success-gradient': 'linear-gradient(135deg, #dcfce7, #86efac, #4ade80)',
539
+ 'info-gradient': 'linear-gradient(135deg, #dbeafe, #bfdbfe, #60a5fa)',
540
+ 'warning-gradient': 'linear-gradient(135deg, #fef9c3, #fef08a, #facc15)',
541
+ 'error-gradient': 'linear-gradient(135deg, #fef2f2, #fee2e2, #fecaca)',
542
+ 'gradient': 'linear-gradient(135deg, #f9fafb, #f3f4f6, #e5e7eb)',
543
+
544
+ // Typography - Fonts
545
+ 'font-sans-serif': '"Roboto", sans-serif',
546
+ 'font-monospace': 'SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
547
+ 'body-font-family': '"Roboto", sans-serif',
548
+ 'body-font-size': '1rem',
549
+ 'body-font-weight': '400',
550
+ 'body-line-height': '1.2',
551
+ 'body-color': '#111827',
552
+ 'body-bg': '#ffffff',
553
+ 'heading-color': '#111827',
554
+
555
+ // Typography - Font Sizes
556
+ 'font-size-xl': '1.5rem',
557
+ 'font-size-2xl': '2rem',
558
+ 'display-1': '4rem',
559
+
560
+ // Typography - Font Weights
561
+ 'font-weight-light': '300',
562
+ 'font-weight-normal': '400',
563
+ 'font-weight-medium': '500',
564
+ 'font-weight-semibold': '600',
565
+ 'font-weight-bold': '700',
566
+ 'font-weight-heavy': '800',
567
+ 'font-weight-black': '900',
568
+
569
+ // Typography - Line Heights
570
+ 'line-height-base': '1.2',
571
+ 'line-height-sm': '1.43',
572
+ 'line-height-lg': '1.56',
573
+
574
+ // Typography - Letter Spacing
575
+ 'letter-spacing-h1': '-1px',
576
+ 'letter-spacing-h2': '-1px',
577
+ 'letter-spacing-h3': '-1px',
578
+ 'letter-spacing-h4': '-0.5px',
579
+ 'letter-spacing-h5': '-0.5px',
580
+ 'letter-spacing-h6': '-0.5px',
581
+
582
+ // Links
583
+ 'link-color': '#7c3aed',
584
+ 'link-color-rgb': '124, 58, 237',
585
+ 'link-decoration': 'none',
586
+ 'link-hover-color': 'rgb(85.3674418605, 18.2930232558, 200.2069767442)',
587
+ 'link-hover-color-rgb': '85.3674418605, 18.2930232558, 200.2069767442',
588
+
589
+ // Highlight & Code
590
+ 'highlight-bg': '#fef08a',
591
+ 'code-color': '#f87171',
592
+
593
+ // Borders
594
+ 'border-width': '1px',
595
+ 'border-style': 'solid',
596
+ 'border-color': '#e5e7eb',
597
+ 'border-color-translucent': 'rgba(229, 231, 235, 0.175)',
598
+ 'border-radius': '0.5rem',
599
+ 'border-radius-sm': '0.25rem',
600
+ 'border-radius-lg': '0.625rem',
601
+ 'border-radius-xl': '0.75rem',
602
+ 'border-radius-xxl': '1rem',
603
+ 'border-radius-2xl': 'var(--atomix-border-radius-xxl)',
604
+ 'border-radius-3xl': '1.5rem',
605
+ 'border-radius-4xl': '2rem',
606
+ 'border-radius-pill': '50rem',
607
+
608
+ // Shadows
609
+ 'box-shadow': '0 8px 16px rgba(0, 0, 0, 0.15)',
610
+ 'box-shadow-xs': '0px 1px 2px 0px rgba(45, 54, 67, 0.04), 0px 2px 4px 0px rgba(45, 54, 67, 0.08)',
611
+ 'box-shadow-sm': '0 2px 4px rgba(0, 0, 0, 0.075)',
612
+ 'box-shadow-lg': '0 16px 48px rgba(0, 0, 0, 0.175)',
613
+ 'box-shadow-xl': '0px 16px 64px -8px rgba(45, 54, 67, 0.14)',
614
+ 'box-shadow-inset': 'inset 0 1px 2px rgba(0, 0, 0, 0.075)',
615
+
616
+ // Focus Ring
617
+ 'focus-border-color': '#9c63e9',
618
+ 'focus-ring-width': '3px',
619
+ 'focus-ring-offset': '2px',
620
+ 'focus-ring-opacity': '0.25',
621
+
622
+ // Form Validation
623
+ 'form-valid-color': '#22c55e',
624
+ 'form-valid-border-color': '#22c55e',
625
+ 'form-invalid-color': '#ef4444',
626
+ 'form-invalid-border-color': '#ef4444',
627
+
628
+ // Spacing
629
+ 'spacing-0': '0rem',
630
+ 'spacing-1': '0.25rem',
631
+ 'spacing-px-6': '0.375rem',
632
+ 'spacing-2': '0.5rem',
633
+ 'spacing-px-10': '0.625rem',
634
+ 'spacing-3': '0.75rem',
635
+ 'spacing-px-14': '0.875rem',
636
+ 'spacing-4': '1rem',
637
+ 'spacing-5': '1.25rem',
638
+ 'spacing-px-22': '1.375rem',
639
+ 'spacing-6': '1.5rem',
640
+ 'spacing-7': '1.75rem',
641
+ 'spacing-px-30': '1.875rem',
642
+ 'spacing-8': '2rem',
643
+ 'spacing-9': '2.25rem',
644
+ 'spacing-10': '2.5rem',
645
+ 'spacing-11': '2.75rem',
646
+ 'spacing-12': '3rem',
647
+ 'spacing-14': '3.5rem',
648
+ 'spacing-16': '4rem',
649
+ 'spacing-20': '5rem',
650
+ 'spacing-24': '6rem',
651
+ 'spacing-28': '7rem',
652
+ 'spacing-32': '8rem',
653
+ 'spacing-36': '9rem',
654
+ 'spacing-40': '10rem',
655
+ 'spacing-44': '11rem',
656
+ 'spacing-48': '12rem',
657
+ 'spacing-52': '13rem',
658
+ 'spacing-56': '14rem',
659
+ 'spacing-60': '15rem',
660
+ 'spacing-64': '16rem',
661
+ 'spacing-72': '18rem',
662
+ 'spacing-80': '20rem',
663
+ 'spacing-90': '22.5rem',
664
+ 'spacing-200': '50rem',
665
+
666
+ // Transitions
667
+ 'transition-duration-fast': '0.15s',
668
+ 'transition-duration-base': '0.3s',
669
+ 'transition-duration-slow': '0.5s',
670
+ 'transition-duration-slower': '0.7s',
671
+ 'easing-base': 'cubic-bezier(0.23, 1, 0.32, 1)',
672
+ 'easing-ease-in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',
673
+ 'easing-ease-out': 'cubic-bezier(0, 0, 0.2, 1)',
674
+ 'easing-ease-in': 'cubic-bezier(0.4, 0, 1, 1)',
675
+ 'easing-ease-linear': 'linear',
676
+ 'transition-fast': 'all 0.15s cubic-bezier(0.23, 1, 0.32, 1)',
677
+ 'transition-base': 'all 0.3s cubic-bezier(0.23, 1, 0.32, 1)',
678
+ 'transition-slow': 'all 0.5s cubic-bezier(0.23, 1, 0.32, 1)',
679
+
680
+ // Z-Index
681
+ 'z-n1': '-1',
682
+ 'z-0': '0',
683
+ 'z-1': '1',
684
+ 'z-2': '2',
685
+ 'z-3': '3',
686
+ 'z-4': '4',
687
+ 'z-5': '5',
688
+ 'z-dropdown': '1000',
689
+ 'z-sticky': '1020',
690
+ 'z-fixed': '1030',
691
+ 'z-modal': '1040',
692
+ 'z-popover': '1050',
693
+ 'z-tooltip': '1060',
694
+ 'z-drawer': '1070',
695
+
696
+ // Breakpoints
697
+ 'breakpoint-xs': '0',
698
+ 'breakpoint-sm': '576px',
699
+ 'breakpoint-md': '768px',
700
+ 'breakpoint-lg': '992px',
701
+ 'breakpoint-xl': '1200px',
702
+ 'breakpoint-xxl': '1440px',
703
+ };
704
+
705
+ /**
706
+ * Create tokens from defaults and overrides
707
+ *
708
+ * @param overrides - Partial tokens to override defaults
709
+ * @returns Complete DesignTokens object
710
+ *
711
+ * @example
712
+ * ```typescript
713
+ * const tokens = createTokens({
714
+ * 'primary': '#7c3aed',
715
+ * 'spacing-4': '1rem',
716
+ * });
717
+ * ```
718
+ */
719
+ export function createTokens(overrides?: Partial<DesignTokens>): DesignTokens {
720
+ return { ...defaultTokens, ...overrides };
721
+ }