@expcat/tigercat-core 2.1.2 → 2.1.3

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 (76) hide show
  1. package/dist/{data-export-CLWdsrRn.d.ts → data-export-D01yjggE.d.ts} +18 -7
  2. package/dist/datepicker-locales/ar-SA.d.ts +2 -1
  3. package/dist/datepicker-locales/ar-SA.js +8 -1
  4. package/dist/datepicker-locales/de-DE.d.ts +2 -1
  5. package/dist/datepicker-locales/de-DE.js +8 -1
  6. package/dist/datepicker-locales/en-US.d.ts +2 -1
  7. package/dist/datepicker-locales/en-US.js +3 -1
  8. package/dist/datepicker-locales/es-ES.d.ts +2 -1
  9. package/dist/datepicker-locales/es-ES.js +8 -1
  10. package/dist/datepicker-locales/fr-FR.d.ts +2 -1
  11. package/dist/datepicker-locales/fr-FR.js +8 -1
  12. package/dist/datepicker-locales/id-ID.d.ts +2 -1
  13. package/dist/datepicker-locales/id-ID.js +8 -1
  14. package/dist/datepicker-locales/ja-JP.d.ts +2 -1
  15. package/dist/datepicker-locales/ja-JP.js +8 -1
  16. package/dist/datepicker-locales/ko-KR.d.ts +2 -1
  17. package/dist/datepicker-locales/ko-KR.js +8 -1
  18. package/dist/datepicker-locales/pt-BR.d.ts +2 -1
  19. package/dist/datepicker-locales/pt-BR.js +8 -1
  20. package/dist/datepicker-locales/registry.d.ts +2 -1
  21. package/dist/datepicker-locales/registry.js +94 -13
  22. package/dist/datepicker-locales/th-TH.d.ts +2 -1
  23. package/dist/datepicker-locales/th-TH.js +8 -1
  24. package/dist/datepicker-locales/vi-VN.d.ts +2 -1
  25. package/dist/datepicker-locales/vi-VN.js +8 -1
  26. package/dist/datepicker-locales/zh-CN.d.ts +2 -1
  27. package/dist/datepicker-locales/zh-CN.js +3 -1
  28. package/dist/datepicker-locales/zh-TW.d.ts +2 -1
  29. package/dist/datepicker-locales/zh-TW.js +8 -1
  30. package/dist/icons/common.d.ts +2 -2
  31. package/dist/icons/common.js +14 -8
  32. package/dist/index.d.ts +10277 -5385
  33. package/dist/index.js +30920 -16435
  34. package/dist/locale-qoiGEqe_.d.ts +1507 -0
  35. package/dist/locales/ar-SA.d.ts +2 -2
  36. package/dist/locales/ar-SA.js +448 -442
  37. package/dist/locales/de-DE.d.ts +2 -2
  38. package/dist/locales/de-DE.js +456 -450
  39. package/dist/locales/en-US.d.ts +2 -2
  40. package/dist/locales/en-US.js +259 -62
  41. package/dist/locales/es-ES.d.ts +2 -2
  42. package/dist/locales/es-ES.js +450 -444
  43. package/dist/locales/fr-FR.d.ts +2 -2
  44. package/dist/locales/fr-FR.js +453 -447
  45. package/dist/locales/id-ID.d.ts +3 -3
  46. package/dist/locales/id-ID.js +471 -448
  47. package/dist/locales/ja-JP.d.ts +3 -3
  48. package/dist/locales/ja-JP.js +465 -442
  49. package/dist/locales/ko-KR.d.ts +3 -3
  50. package/dist/locales/ko-KR.js +465 -442
  51. package/dist/locales/pt-BR.d.ts +2 -2
  52. package/dist/locales/pt-BR.js +452 -446
  53. package/dist/locales/th-TH.d.ts +3 -3
  54. package/dist/locales/th-TH.js +467 -444
  55. package/dist/locales/vi-VN.d.ts +3 -3
  56. package/dist/locales/vi-VN.js +467 -444
  57. package/dist/locales/zh-CN.d.ts +2 -2
  58. package/dist/locales/zh-CN.js +257 -60
  59. package/dist/locales/zh-TW.d.ts +3 -3
  60. package/dist/locales/zh-TW.js +467 -444
  61. package/dist/{table-CHeBgM_2.d.ts → table-R9Yp1aVa.d.ts} +77 -54
  62. package/dist/tailwind/modern.js +1364 -150
  63. package/dist/{tailwind-entry-nnuviNxx.d.ts → tailwind-entry-C26Y3TZG.d.ts} +13 -10
  64. package/dist/tailwind.d.ts +1 -1
  65. package/dist/tailwind.js +1406 -136
  66. package/dist/utils/data-export.d.ts +19 -5
  67. package/dist/utils/data-export.js +138 -13
  68. package/dist/utils/table-export.d.ts +21 -12
  69. package/dist/utils/table-export.js +75 -46
  70. package/package.json +1 -1
  71. package/tokens/figma-variables.json +223 -147
  72. package/tokens/tokens.css +224 -57
  73. package/tokens/tokens.json +205 -31
  74. package/dist/datepicker-Digy7Stt.d.ts +0 -201
  75. package/dist/locale-KMGxL6bT.d.ts +0 -625
  76. package/tokens/tailwind-tokens.js +0 -145
@@ -1,75 +1,6 @@
1
1
  // src/tailwind-plugin.ts
2
2
  import plugin from "tailwindcss/plugin";
3
3
 
4
- // src/theme-runtime/index.ts
5
- var THEME_CSS_VARS = {
6
- // Primary colors
7
- primary: "--tiger-primary",
8
- primaryHover: "--tiger-primary-hover",
9
- primaryActive: "--tiger-primary-active",
10
- primaryDisabled: "--tiger-primary-disabled",
11
- // Secondary colors
12
- secondary: "--tiger-secondary",
13
- secondaryHover: "--tiger-secondary-hover",
14
- secondaryActive: "--tiger-secondary-active",
15
- secondaryDisabled: "--tiger-secondary-disabled",
16
- // Background hover states
17
- outlineBgHover: "--tiger-outline-bg-hover",
18
- ghostBgHover: "--tiger-ghost-bg-hover",
19
- // Interaction states
20
- focusRing: "--tiger-focus-ring",
21
- // Surface & background
22
- surface: "--tiger-surface",
23
- surfaceMuted: "--tiger-surface-muted",
24
- surfaceRaised: "--tiger-surface-raised",
25
- // Text
26
- text: "--tiger-text",
27
- textSecondary: "--tiger-text-secondary",
28
- textDisabled: "--tiger-text-disabled",
29
- // Border
30
- border: "--tiger-border",
31
- borderStrong: "--tiger-border-strong",
32
- // Status colors
33
- success: "--tiger-success",
34
- warning: "--tiger-warning",
35
- error: "--tiger-error",
36
- info: "--tiger-info",
37
- // Chart palette
38
- chart1: "--tiger-chart-1",
39
- chart2: "--tiger-chart-2",
40
- chart3: "--tiger-chart-3",
41
- chart4: "--tiger-chart-4",
42
- chart5: "--tiger-chart-5",
43
- chart6: "--tiger-chart-6",
44
- // Aliases of existing semantic tokens (not a third color system)
45
- textMuted: "--tiger-text-muted",
46
- fill: "--tiger-fill",
47
- bg: "--tiger-bg",
48
- // Breakpoints
49
- breakpointXs: "--tiger-breakpoint-xs",
50
- breakpointSm: "--tiger-breakpoint-sm",
51
- breakpointMd: "--tiger-breakpoint-md",
52
- breakpointLg: "--tiger-breakpoint-lg",
53
- breakpointXl: "--tiger-breakpoint-xl"
54
- };
55
- var THEME_CSS_VAR_ALIAS_SOURCES = {
56
- textMuted: "textSecondary",
57
- fill: "surfaceMuted",
58
- bg: "surface"
59
- };
60
- function semanticColorsToCssVars(colors = {}) {
61
- const vars = {};
62
- for (const [key, value] of Object.entries(colors)) {
63
- const varName = THEME_CSS_VARS[key];
64
- if (varName && value) vars[varName] = value;
65
- }
66
- for (const aliasKey of Object.keys(THEME_CSS_VAR_ALIAS_SOURCES)) {
67
- const sourceKey = THEME_CSS_VAR_ALIAS_SOURCES[aliasKey];
68
- vars[THEME_CSS_VARS[aliasKey]] = `var(${THEME_CSS_VARS[sourceKey]})`;
69
- }
70
- return vars;
71
- }
72
-
73
4
  // src/themes/modern/tokens.ts
74
5
  var MODERN_BASE_TOKENS_LIGHT = {
75
6
  // Radius (matches existing rounded-md/lg/xl)
@@ -205,73 +136,1346 @@ var MODERN_REDUCED_MOTION_TOKENS = {
205
136
  "--tiger-transition-emphasized": "transform 0ms linear"
206
137
  };
207
138
 
139
+ // src/tokens/tokens.ts
140
+ var runtimeThemeLight = {
141
+ colors: {
142
+ primary: "#2563eb",
143
+ primaryHover: "#1d4ed8",
144
+ primaryActive: "#1e40af",
145
+ primaryDisabled: "#93c5fd",
146
+ primaryForeground: "#ffffff",
147
+ secondary: "#4b5563",
148
+ secondaryHover: "#374151",
149
+ secondaryActive: "#1f2937",
150
+ secondaryDisabled: "#9ca3af",
151
+ secondaryForeground: "#ffffff",
152
+ outlineBgHover: "#eff6ff",
153
+ ghostBgHover: "#eff6ff",
154
+ focusRing: "#2563eb",
155
+ surface: "#ffffff",
156
+ surfaceMuted: "#f9fafb",
157
+ surfaceRaised: "#ffffff",
158
+ text: "#111827",
159
+ textSecondary: "#6b7280",
160
+ textDisabled: "#d1d5db",
161
+ border: "#e5e7eb",
162
+ borderStrong: "#9ca3af",
163
+ success: "#16a34a",
164
+ warning: "#d97706",
165
+ error: "#dc2626",
166
+ errorForeground: "#ffffff",
167
+ errorHover: "#b91c1c",
168
+ errorDisabled: "#fca5a5",
169
+ errorBgHover: "#fef2f2",
170
+ info: "#3b82f6",
171
+ chart1: "#2563eb",
172
+ chart2: "#16a34a",
173
+ chart3: "#d97706",
174
+ chart4: "#a855f7",
175
+ chart5: "#0ea5e9",
176
+ chart6: "#ef4444"
177
+ },
178
+ typography: {
179
+ fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
180
+ fontFamilyMono: "'SF Mono', Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
181
+ fontSizeBase: "16px",
182
+ fontSizeSm: "14px",
183
+ fontSizeLg: "18px",
184
+ fontWeightNormal: "400",
185
+ fontWeightMedium: "500",
186
+ fontWeightSemibold: "600",
187
+ fontWeightBold: "700",
188
+ lineHeightNormal: "1.5",
189
+ lineHeightTight: "1.25"
190
+ },
191
+ radius: {
192
+ none: "0",
193
+ sm: "4px",
194
+ md: "6px",
195
+ lg: "10px",
196
+ xl: "14px",
197
+ full: "9999px"
198
+ },
199
+ shadows: {
200
+ xs: "0 1px 2px 0 rgba(0,0,0,0.05)",
201
+ sm: "0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1)",
202
+ md: "0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)",
203
+ lg: "0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1)",
204
+ xl: "0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1)"
205
+ },
206
+ spacing: {
207
+ xs: "2px",
208
+ sm: "4px",
209
+ md: "8px",
210
+ lg: "16px",
211
+ xl: "24px"
212
+ },
213
+ motion: {
214
+ durationFast: "150ms",
215
+ durationBase: "200ms",
216
+ durationSlow: "300ms",
217
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)"
218
+ }
219
+ };
220
+ var runtimeThemeDark = {
221
+ colors: {
222
+ primary: "#60a5fa",
223
+ primaryHover: "#93c5fd",
224
+ primaryActive: "#bfdbfe",
225
+ primaryDisabled: "#1e40af",
226
+ primaryForeground: "#111827",
227
+ secondary: "#9ca3af",
228
+ secondaryHover: "#d1d5db",
229
+ secondaryActive: "#e5e7eb",
230
+ secondaryDisabled: "#4b5563",
231
+ secondaryForeground: "#111827",
232
+ outlineBgHover: "#1e3a5f",
233
+ ghostBgHover: "#1e3a5f",
234
+ focusRing: "#60a5fa",
235
+ surface: "#111827",
236
+ surfaceMuted: "#1f2937",
237
+ surfaceRaised: "#1f2937",
238
+ text: "#f9fafb",
239
+ textSecondary: "#d1d5db",
240
+ textDisabled: "#4b5563",
241
+ border: "#374151",
242
+ borderStrong: "#6b7280",
243
+ success: "#4ade80",
244
+ warning: "#fbbf24",
245
+ error: "#f87171",
246
+ errorForeground: "#111827",
247
+ errorHover: "#fca5a5",
248
+ errorDisabled: "#991b1b",
249
+ errorBgHover: "#1f2937",
250
+ info: "#60a5fa",
251
+ chart1: "#60a5fa",
252
+ chart2: "#4ade80",
253
+ chart3: "#fbbf24",
254
+ chart4: "#c084fc",
255
+ chart5: "#38bdf8",
256
+ chart6: "#f87171"
257
+ },
258
+ typography: {
259
+ fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
260
+ fontFamilyMono: "'SF Mono', Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
261
+ fontSizeBase: "16px",
262
+ fontSizeSm: "14px",
263
+ fontSizeLg: "18px",
264
+ fontWeightNormal: "400",
265
+ fontWeightMedium: "500",
266
+ fontWeightSemibold: "600",
267
+ fontWeightBold: "700",
268
+ lineHeightNormal: "1.5",
269
+ lineHeightTight: "1.25"
270
+ },
271
+ radius: {
272
+ none: "0",
273
+ sm: "4px",
274
+ md: "6px",
275
+ lg: "10px",
276
+ xl: "14px",
277
+ full: "9999px"
278
+ },
279
+ shadows: {
280
+ xs: "0 1px 2px 0 rgba(0,0,0,0.2)",
281
+ sm: "0 1px 3px 0 rgba(0,0,0,0.3), 0 1px 2px -1px rgba(0,0,0,0.25)",
282
+ md: "0 4px 6px -1px rgba(0,0,0,0.3), 0 2px 4px -2px rgba(0,0,0,0.25)",
283
+ lg: "0 10px 15px -3px rgba(0,0,0,0.3), 0 4px 6px -4px rgba(0,0,0,0.25)",
284
+ xl: "0 20px 25px -5px rgba(0,0,0,0.3), 0 8px 10px -6px rgba(0,0,0,0.25)"
285
+ },
286
+ spacing: {
287
+ xs: "2px",
288
+ sm: "4px",
289
+ md: "8px",
290
+ lg: "16px",
291
+ xl: "24px"
292
+ },
293
+ motion: {
294
+ durationFast: "150ms",
295
+ durationBase: "200ms",
296
+ durationSlow: "300ms",
297
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)"
298
+ }
299
+ };
300
+
208
301
  // src/themes/default/theme.ts
209
302
  var defaultThemeLightColors = {
210
- primary: "#2563eb",
211
- primaryHover: "#1d4ed8",
212
- primaryActive: "#1e40af",
213
- primaryDisabled: "#93c5fd",
214
- secondary: "#4b5563",
215
- secondaryHover: "#374151",
216
- secondaryActive: "#1f2937",
217
- secondaryDisabled: "#9ca3af",
218
- outlineBgHover: "#eff6ff",
219
- ghostBgHover: "#eff6ff",
220
- focusRing: "#2563eb",
221
- surface: "#ffffff",
222
- surfaceMuted: "#f9fafb",
223
- surfaceRaised: "#ffffff",
224
- text: "#111827",
225
- textSecondary: "#6b7280",
226
- textDisabled: "#d1d5db",
227
- border: "#e5e7eb",
228
- borderStrong: "#9ca3af",
229
- success: "#16a34a",
230
- warning: "#d97706",
231
- error: "#dc2626",
232
- info: "#3b82f6",
233
- chart1: "#2563eb",
234
- chart2: "#16a34a",
235
- chart3: "#d97706",
236
- chart4: "#a855f7",
237
- chart5: "#0ea5e9",
238
- chart6: "#ef4444"
303
+ ...runtimeThemeLight.colors
239
304
  };
240
305
  var defaultThemeDarkColors = {
241
- primary: "#60a5fa",
242
- primaryHover: "#93c5fd",
243
- primaryActive: "#bfdbfe",
244
- primaryDisabled: "#1e40af",
245
- secondary: "#9ca3af",
246
- secondaryHover: "#d1d5db",
247
- secondaryActive: "#e5e7eb",
248
- secondaryDisabled: "#4b5563",
249
- outlineBgHover: "#1e3a5f",
250
- ghostBgHover: "#1e3a5f",
251
- focusRing: "#60a5fa",
252
- surface: "#111827",
253
- surfaceMuted: "#1f2937",
254
- surfaceRaised: "#1f2937",
255
- text: "#f9fafb",
256
- textSecondary: "#d1d5db",
257
- textDisabled: "#4b5563",
258
- border: "#374151",
259
- borderStrong: "#6b7280",
260
- success: "#4ade80",
261
- warning: "#fbbf24",
262
- error: "#f87171",
263
- info: "#60a5fa",
264
- chart1: "#60a5fa",
265
- chart2: "#4ade80",
266
- chart3: "#fbbf24",
267
- chart4: "#c084fc",
268
- chart5: "#38bdf8",
269
- chart6: "#f87171"
306
+ ...runtimeThemeDark.colors
307
+ };
308
+ var defaultTheme = {
309
+ name: "default",
310
+ label: "Default",
311
+ light: {
312
+ colors: defaultThemeLightColors,
313
+ typography: { ...runtimeThemeLight.typography },
314
+ radius: { ...runtimeThemeLight.radius },
315
+ shadows: { ...runtimeThemeLight.shadows },
316
+ spacing: { ...runtimeThemeLight.spacing },
317
+ motion: { ...runtimeThemeLight.motion }
318
+ },
319
+ dark: {
320
+ colors: defaultThemeDarkColors,
321
+ typography: { ...runtimeThemeDark.typography },
322
+ radius: { ...runtimeThemeDark.radius },
323
+ shadows: { ...runtimeThemeDark.shadows },
324
+ spacing: { ...runtimeThemeDark.spacing },
325
+ motion: { ...runtimeThemeDark.motion }
326
+ }
327
+ };
328
+
329
+ // src/themes/modern/theme.ts
330
+ var modernTheme = {
331
+ name: "modern",
332
+ label: "Modern",
333
+ light: {
334
+ colors: {
335
+ primary: "#2563eb",
336
+ primaryHover: "#1d4ed8",
337
+ primaryActive: "#1e40af",
338
+ primaryDisabled: "#93c5fd",
339
+ primaryForeground: "#ffffff",
340
+ secondary: "#4b5563",
341
+ secondaryHover: "#374151",
342
+ secondaryActive: "#1f2937",
343
+ secondaryDisabled: "#9ca3af",
344
+ secondaryForeground: "#ffffff",
345
+ outlineBgHover: "#eff6ff",
346
+ ghostBgHover: "#eff6ff",
347
+ focusRing: "#2563eb",
348
+ surface: "#ffffff",
349
+ surfaceMuted: "#f8fafc",
350
+ surfaceRaised: "#ffffff",
351
+ text: "#0f172a",
352
+ textSecondary: "#475569",
353
+ textDisabled: "#cbd5e1",
354
+ border: "#e2e8f0",
355
+ borderStrong: "#94a3b8",
356
+ success: "#16a34a",
357
+ warning: "#d97706",
358
+ error: "#dc2626",
359
+ errorForeground: "#ffffff",
360
+ errorHover: "#b91c1c",
361
+ errorDisabled: "#fca5a5",
362
+ errorBgHover: "#fef2f2",
363
+ info: "#0ea5e9",
364
+ chart1: "#2563eb",
365
+ chart2: "#16a34a",
366
+ chart3: "#d97706",
367
+ chart4: "#a855f7",
368
+ chart5: "#0ea5e9",
369
+ chart6: "#ef4444"
370
+ },
371
+ radius: { none: "0", sm: "8px", md: "12px", lg: "16px", xl: "20px", full: "9999px" },
372
+ shadows: {
373
+ xs: "0 1px 2px 0 rgb(0 0 0 / 0.04)",
374
+ sm: "0 1px 2px 0 rgb(0 0 0 / 0.04), 0 1px 3px 0 rgb(0 0 0 / 0.06)",
375
+ md: "0 4px 8px -2px rgb(0 0 0 / 0.06), 0 2px 4px -1px rgb(0 0 0 / 0.04)",
376
+ lg: "0 12px 24px -4px rgb(0 0 0 / 0.08), 0 4px 8px -2px rgb(0 0 0 / 0.04)",
377
+ xl: "0 24px 48px -8px rgb(0 0 0 / 0.1), 0 8px 16px -4px rgb(0 0 0 / 0.05)"
378
+ },
379
+ motion: {
380
+ durationFast: "150ms",
381
+ durationBase: "200ms",
382
+ durationSlow: "300ms",
383
+ easing: "cubic-bezier(0.2, 0, 0, 1)"
384
+ }
385
+ },
386
+ dark: {
387
+ colors: {
388
+ primary: "#60a5fa",
389
+ primaryHover: "#93c5fd",
390
+ primaryActive: "#bfdbfe",
391
+ primaryDisabled: "#1e40af",
392
+ primaryForeground: "#0f172a",
393
+ secondary: "#94a3b8",
394
+ secondaryHover: "#cbd5e1",
395
+ secondaryActive: "#e2e8f0",
396
+ secondaryDisabled: "#475569",
397
+ secondaryForeground: "#0f172a",
398
+ outlineBgHover: "#1e3a5f",
399
+ ghostBgHover: "#1e3a5f",
400
+ focusRing: "#60a5fa",
401
+ surface: "#0f172a",
402
+ surfaceMuted: "#1e293b",
403
+ surfaceRaised: "#1e293b",
404
+ text: "#f1f5f9",
405
+ textSecondary: "#cbd5e1",
406
+ textDisabled: "#475569",
407
+ border: "#334155",
408
+ borderStrong: "#64748b",
409
+ success: "#4ade80",
410
+ warning: "#fbbf24",
411
+ error: "#f87171",
412
+ errorForeground: "#0f172a",
413
+ errorHover: "#fca5a5",
414
+ errorDisabled: "#7f1d1d",
415
+ errorBgHover: "#1e293b",
416
+ info: "#38bdf8",
417
+ chart1: "#60a5fa",
418
+ chart2: "#4ade80",
419
+ chart3: "#fbbf24",
420
+ chart4: "#c084fc",
421
+ chart5: "#38bdf8",
422
+ chart6: "#f87171"
423
+ },
424
+ radius: { none: "0", sm: "8px", md: "12px", lg: "16px", xl: "20px", full: "9999px" },
425
+ shadows: {
426
+ xs: "0 1px 2px 0 rgb(2 6 23 / 0.4)",
427
+ sm: "0 1px 2px 0 rgb(2 6 23 / 0.5)",
428
+ md: "0 4px 8px -2px rgb(2 6 23 / 0.55), 0 2px 4px -1px rgb(2 6 23 / 0.4)",
429
+ lg: "0 12px 24px -4px rgb(2 6 23 / 0.55), 0 4px 8px -2px rgb(2 6 23 / 0.4)",
430
+ xl: "0 24px 48px -8px rgb(2 6 23 / 0.6), 0 8px 16px -4px rgb(2 6 23 / 0.45)"
431
+ },
432
+ motion: {
433
+ durationFast: "150ms",
434
+ durationBase: "200ms",
435
+ durationSlow: "300ms",
436
+ easing: "cubic-bezier(0.2, 0, 0, 1)"
437
+ }
438
+ }
439
+ };
440
+
441
+ // src/utils/env.ts
442
+ function isBrowser() {
443
+ return typeof window !== "undefined" && typeof document !== "undefined";
444
+ }
445
+
446
+ // src/utils/dev-warn.ts
447
+ function isDevEnvironment() {
448
+ const proc = globalThis.process;
449
+ return !proc?.env || proc.env.NODE_ENV !== "production";
450
+ }
451
+ var warnedKeys = /* @__PURE__ */ new Set();
452
+ function devWarn(key, message) {
453
+ if (!isDevEnvironment() || warnedKeys.has(key)) return;
454
+ warnedKeys.add(key);
455
+ console.warn(message);
456
+ }
457
+
458
+ // src/theme-runtime/index.ts
459
+ var THEME_CSS_VARS = {
460
+ // Primary colors
461
+ primary: "--tiger-primary",
462
+ primaryHover: "--tiger-primary-hover",
463
+ primaryActive: "--tiger-primary-active",
464
+ primaryDisabled: "--tiger-primary-disabled",
465
+ primaryForeground: "--tiger-primary-foreground",
466
+ // Secondary colors
467
+ secondary: "--tiger-secondary",
468
+ secondaryHover: "--tiger-secondary-hover",
469
+ secondaryActive: "--tiger-secondary-active",
470
+ secondaryDisabled: "--tiger-secondary-disabled",
471
+ secondaryForeground: "--tiger-secondary-foreground",
472
+ // Background hover states
473
+ outlineBgHover: "--tiger-outline-bg-hover",
474
+ ghostBgHover: "--tiger-ghost-bg-hover",
475
+ // Interaction states
476
+ focusRing: "--tiger-focus-ring",
477
+ // Surface & background
478
+ surface: "--tiger-surface",
479
+ surfaceMuted: "--tiger-surface-muted",
480
+ surfaceRaised: "--tiger-surface-raised",
481
+ // Text
482
+ text: "--tiger-text",
483
+ textSecondary: "--tiger-text-secondary",
484
+ textDisabled: "--tiger-text-disabled",
485
+ // Border
486
+ border: "--tiger-border",
487
+ borderStrong: "--tiger-border-strong",
488
+ // Status colors
489
+ success: "--tiger-success",
490
+ warning: "--tiger-warning",
491
+ error: "--tiger-error",
492
+ errorForeground: "--tiger-error-foreground",
493
+ errorHover: "--tiger-error-hover",
494
+ errorDisabled: "--tiger-error-disabled",
495
+ errorBgHover: "--tiger-error-bg-hover",
496
+ info: "--tiger-info",
497
+ // Chart palette
498
+ chart1: "--tiger-chart-1",
499
+ chart2: "--tiger-chart-2",
500
+ chart3: "--tiger-chart-3",
501
+ chart4: "--tiger-chart-4",
502
+ chart5: "--tiger-chart-5",
503
+ chart6: "--tiger-chart-6",
504
+ // Aliases of existing semantic tokens (not a third color system)
505
+ textMuted: "--tiger-text-muted",
506
+ fill: "--tiger-fill",
507
+ bg: "--tiger-bg",
508
+ // Breakpoints
509
+ breakpointXs: "--tiger-breakpoint-xs",
510
+ breakpointSm: "--tiger-breakpoint-sm",
511
+ breakpointMd: "--tiger-breakpoint-md",
512
+ breakpointLg: "--tiger-breakpoint-lg",
513
+ breakpointXl: "--tiger-breakpoint-xl",
514
+ breakpoint2xl: "--tiger-breakpoint-2xl"
515
+ };
516
+ var TIGER_BREAKPOINT_CSS_VALUES = {
517
+ breakpointXs: "0px",
518
+ breakpointSm: "640px",
519
+ breakpointMd: "768px",
520
+ breakpointLg: "1024px",
521
+ breakpointXl: "1280px",
522
+ breakpoint2xl: "1536px"
523
+ };
524
+ var THEME_CSS_VAR_ALIAS_SOURCES = {
525
+ textMuted: "textSecondary",
526
+ fill: "surfaceMuted",
527
+ bg: "surface"
528
+ };
529
+ function semanticColorsToCssVars(colors = {}) {
530
+ const vars = {};
531
+ for (const [key, value] of Object.entries(colors)) {
532
+ const varName = THEME_CSS_VARS[key];
533
+ if (varName && value) vars[varName] = value;
534
+ }
535
+ for (const aliasKey of Object.keys(THEME_CSS_VAR_ALIAS_SOURCES)) {
536
+ const sourceKey = THEME_CSS_VAR_ALIAS_SOURCES[aliasKey];
537
+ vars[THEME_CSS_VARS[aliasKey]] = `var(${THEME_CSS_VARS[sourceKey]})`;
538
+ }
539
+ for (const [key, value] of Object.entries(TIGER_BREAKPOINT_CSS_VALUES)) {
540
+ vars[THEME_CSS_VARS[key]] = value;
541
+ }
542
+ return vars;
543
+ }
544
+ var cssVarCache = /* @__PURE__ */ new WeakMap();
545
+ function setCssVarsCached(element, vars) {
546
+ let cache = cssVarCache.get(element);
547
+ if (!cache) {
548
+ cache = /* @__PURE__ */ new Map();
549
+ cssVarCache.set(element, cache);
550
+ }
551
+ for (const [name, value] of Object.entries(vars)) {
552
+ if (!value) continue;
553
+ if (cache.get(name) === value) continue;
554
+ element.style.setProperty(name, value);
555
+ cache.set(name, value);
556
+ }
557
+ }
558
+ function removeCssVarsCached(element, names) {
559
+ const cache = cssVarCache.get(element);
560
+ for (const name of names) {
561
+ element.style.removeProperty(name);
562
+ cache?.delete(name);
563
+ }
564
+ }
565
+
566
+ // src/themes/vibrant/theme.ts
567
+ var vibrantTheme = {
568
+ name: "vibrant",
569
+ label: "Vibrant",
570
+ light: {
571
+ colors: {
572
+ primary: "#8b5cf6",
573
+ primaryHover: "#7c3aed",
574
+ primaryActive: "#6d28d9",
575
+ primaryDisabled: "#c4b5fd",
576
+ primaryForeground: "#000000",
577
+ secondary: "#ec4899",
578
+ secondaryHover: "#db2777",
579
+ secondaryActive: "#be185d",
580
+ secondaryDisabled: "#f9a8d4",
581
+ secondaryForeground: "#000000",
582
+ outlineBgHover: "#f5f3ff",
583
+ ghostBgHover: "#fdf2f8",
584
+ focusRing: "#8b5cf6",
585
+ surface: "#ffffff",
586
+ surfaceMuted: "#faf5ff",
587
+ surfaceRaised: "#ffffff",
588
+ text: "#1e1b4b",
589
+ textSecondary: "#6b21a8",
590
+ textDisabled: "#c4b5fd",
591
+ border: "#e9d5ff",
592
+ borderStrong: "#a78bfa",
593
+ success: "#10b981",
594
+ warning: "#f59e0b",
595
+ error: "#ef4444",
596
+ errorForeground: "#000000",
597
+ errorHover: "#dc2626",
598
+ errorDisabled: "#fca5a5",
599
+ errorBgHover: "#fef2f2",
600
+ info: "#06b6d4",
601
+ chart1: "#8b5cf6",
602
+ chart2: "#ec4899",
603
+ chart3: "#f59e0b",
604
+ chart4: "#06b6d4",
605
+ chart5: "#10b981",
606
+ chart6: "#f43f5e"
607
+ },
608
+ radius: { sm: "6px", md: "10px", lg: "14px", xl: "18px", none: "0", full: "9999px" }
609
+ },
610
+ dark: {
611
+ colors: {
612
+ primary: "#a78bfa",
613
+ primaryHover: "#c4b5fd",
614
+ primaryActive: "#ddd6fe",
615
+ primaryDisabled: "#4c1d95",
616
+ primaryForeground: "#1e1b4b",
617
+ secondary: "#f472b6",
618
+ secondaryHover: "#f9a8d4",
619
+ secondaryActive: "#fbcfe8",
620
+ secondaryDisabled: "#831843",
621
+ secondaryForeground: "#500724",
622
+ outlineBgHover: "#2e1065",
623
+ ghostBgHover: "#500724",
624
+ focusRing: "#a78bfa",
625
+ surface: "#0f0a1e",
626
+ surfaceMuted: "#1a1035",
627
+ surfaceRaised: "#231848",
628
+ text: "#f5f3ff",
629
+ textSecondary: "#c4b5fd",
630
+ textDisabled: "#4c1d95",
631
+ border: "#3b2070",
632
+ borderStrong: "#7c3aed",
633
+ success: "#34d399",
634
+ warning: "#fbbf24",
635
+ error: "#f87171",
636
+ errorForeground: "#0f0a1e",
637
+ errorHover: "#fca5a5",
638
+ errorDisabled: "#7f1d1d",
639
+ errorBgHover: "#1a1035",
640
+ info: "#22d3ee",
641
+ chart1: "#a78bfa",
642
+ chart2: "#f472b6",
643
+ chart3: "#fbbf24",
644
+ chart4: "#22d3ee",
645
+ chart5: "#34d399",
646
+ chart6: "#fb7185"
647
+ },
648
+ radius: { sm: "6px", md: "10px", lg: "14px", xl: "18px", none: "0", full: "9999px" }
649
+ }
650
+ };
651
+
652
+ // src/themes/professional/theme.ts
653
+ var professionalTheme = {
654
+ name: "professional",
655
+ label: "Professional",
656
+ light: {
657
+ colors: {
658
+ primary: "#1e40af",
659
+ primaryHover: "#1e3a8a",
660
+ primaryActive: "#172554",
661
+ primaryDisabled: "#93c5fd",
662
+ primaryForeground: "#ffffff",
663
+ secondary: "#334155",
664
+ secondaryHover: "#1e293b",
665
+ secondaryActive: "#0f172a",
666
+ secondaryDisabled: "#94a3b8",
667
+ secondaryForeground: "#ffffff",
668
+ outlineBgHover: "#eff6ff",
669
+ ghostBgHover: "#f1f5f9",
670
+ focusRing: "#1e40af",
671
+ surface: "#ffffff",
672
+ surfaceMuted: "#f8fafc",
673
+ surfaceRaised: "#ffffff",
674
+ text: "#0f172a",
675
+ textSecondary: "#475569",
676
+ textDisabled: "#cbd5e1",
677
+ border: "#e2e8f0",
678
+ borderStrong: "#94a3b8",
679
+ success: "#15803d",
680
+ warning: "#b45309",
681
+ error: "#b91c1c",
682
+ errorForeground: "#ffffff",
683
+ errorHover: "#991b1b",
684
+ errorDisabled: "#fca5a5",
685
+ errorBgHover: "#fef2f2",
686
+ info: "#1d4ed8",
687
+ chart1: "#1e40af",
688
+ chart2: "#15803d",
689
+ chart3: "#b45309",
690
+ chart4: "#7e22ce",
691
+ chart5: "#0e7490",
692
+ chart6: "#b91c1c"
693
+ },
694
+ radius: { sm: "2px", md: "4px", lg: "8px", xl: "10px", none: "0", full: "9999px" },
695
+ typography: {
696
+ fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
697
+ fontFamilyMono: "'JetBrains Mono', 'SF Mono', monospace",
698
+ fontSizeBase: "15px",
699
+ fontSizeSm: "13px",
700
+ fontSizeLg: "17px",
701
+ fontWeightNormal: "400",
702
+ fontWeightMedium: "500",
703
+ fontWeightSemibold: "600",
704
+ fontWeightBold: "700",
705
+ lineHeightNormal: "1.5",
706
+ lineHeightTight: "1.25"
707
+ }
708
+ },
709
+ dark: {
710
+ colors: {
711
+ primary: "#60a5fa",
712
+ primaryHover: "#93c5fd",
713
+ primaryActive: "#bfdbfe",
714
+ primaryDisabled: "#1e3a8a",
715
+ primaryForeground: "#0f172a",
716
+ secondary: "#94a3b8",
717
+ secondaryHover: "#cbd5e1",
718
+ secondaryActive: "#e2e8f0",
719
+ secondaryDisabled: "#334155",
720
+ secondaryForeground: "#0f172a",
721
+ outlineBgHover: "#172554",
722
+ ghostBgHover: "#1e293b",
723
+ focusRing: "#60a5fa",
724
+ surface: "#0f172a",
725
+ surfaceMuted: "#1e293b",
726
+ surfaceRaised: "#1e293b",
727
+ text: "#f1f5f9",
728
+ textSecondary: "#cbd5e1",
729
+ textDisabled: "#475569",
730
+ border: "#334155",
731
+ borderStrong: "#64748b",
732
+ success: "#4ade80",
733
+ warning: "#fbbf24",
734
+ error: "#f87171",
735
+ errorForeground: "#0f172a",
736
+ errorHover: "#fca5a5",
737
+ errorDisabled: "#7f1d1d",
738
+ errorBgHover: "#1e293b",
739
+ info: "#60a5fa",
740
+ chart1: "#60a5fa",
741
+ chart2: "#4ade80",
742
+ chart3: "#fbbf24",
743
+ chart4: "#c084fc",
744
+ chart5: "#22d3ee",
745
+ chart6: "#f87171"
746
+ },
747
+ radius: { sm: "2px", md: "4px", lg: "8px", xl: "10px", none: "0", full: "9999px" },
748
+ typography: {
749
+ fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
750
+ fontFamilyMono: "'JetBrains Mono', 'SF Mono', monospace",
751
+ fontSizeBase: "15px",
752
+ fontSizeSm: "13px",
753
+ fontSizeLg: "17px",
754
+ fontWeightNormal: "400",
755
+ fontWeightMedium: "500",
756
+ fontWeightSemibold: "600",
757
+ fontWeightBold: "700",
758
+ lineHeightNormal: "1.5",
759
+ lineHeightTight: "1.25"
760
+ }
761
+ }
762
+ };
763
+
764
+ // src/themes/minimal/theme.ts
765
+ var minimalTheme = {
766
+ name: "minimal",
767
+ label: "Minimal",
768
+ light: {
769
+ colors: {
770
+ primary: "#18181b",
771
+ primaryHover: "#09090b",
772
+ primaryActive: "#000000",
773
+ primaryDisabled: "#a1a1aa",
774
+ primaryForeground: "#ffffff",
775
+ secondary: "#52525b",
776
+ secondaryHover: "#3f3f46",
777
+ secondaryActive: "#27272a",
778
+ secondaryDisabled: "#a1a1aa",
779
+ secondaryForeground: "#ffffff",
780
+ outlineBgHover: "#fafafa",
781
+ ghostBgHover: "#f4f4f5",
782
+ focusRing: "#18181b",
783
+ surface: "#ffffff",
784
+ surfaceMuted: "#fafafa",
785
+ surfaceRaised: "#ffffff",
786
+ text: "#09090b",
787
+ textSecondary: "#71717a",
788
+ textDisabled: "#d4d4d8",
789
+ border: "#e4e4e7",
790
+ borderStrong: "#a1a1aa",
791
+ success: "#16a34a",
792
+ warning: "#ca8a04",
793
+ error: "#dc2626",
794
+ errorForeground: "#ffffff",
795
+ errorHover: "#b91c1c",
796
+ errorDisabled: "#fca5a5",
797
+ errorBgHover: "#fef2f2",
798
+ info: "#18181b",
799
+ chart1: "#18181b",
800
+ chart2: "#71717a",
801
+ chart3: "#a1a1aa",
802
+ chart4: "#d4d4d8",
803
+ chart5: "#3f3f46",
804
+ chart6: "#52525b"
805
+ },
806
+ radius: { sm: "2px", md: "4px", lg: "6px", xl: "8px", none: "0", full: "9999px" },
807
+ shadows: {
808
+ xs: "0 1px 2px 0 rgba(0,0,0,0.03)",
809
+ sm: "0 1px 2px 0 rgba(0,0,0,0.06)",
810
+ md: "0 2px 4px -1px rgba(0,0,0,0.06)",
811
+ lg: "0 4px 6px -2px rgba(0,0,0,0.06)",
812
+ xl: "0 8px 16px -4px rgba(0,0,0,0.08)"
813
+ }
814
+ },
815
+ dark: {
816
+ colors: {
817
+ primary: "#fafafa",
818
+ primaryHover: "#e4e4e7",
819
+ primaryActive: "#d4d4d8",
820
+ primaryDisabled: "#3f3f46",
821
+ primaryForeground: "#09090b",
822
+ secondary: "#a1a1aa",
823
+ secondaryHover: "#d4d4d8",
824
+ secondaryActive: "#e4e4e7",
825
+ secondaryDisabled: "#3f3f46",
826
+ secondaryForeground: "#09090b",
827
+ outlineBgHover: "#27272a",
828
+ ghostBgHover: "#27272a",
829
+ focusRing: "#fafafa",
830
+ surface: "#09090b",
831
+ surfaceMuted: "#18181b",
832
+ surfaceRaised: "#27272a",
833
+ text: "#fafafa",
834
+ textSecondary: "#a1a1aa",
835
+ textDisabled: "#3f3f46",
836
+ border: "#27272a",
837
+ borderStrong: "#52525b",
838
+ success: "#4ade80",
839
+ warning: "#fbbf24",
840
+ error: "#f87171",
841
+ errorForeground: "#09090b",
842
+ errorHover: "#fca5a5",
843
+ errorDisabled: "#7f1d1d",
844
+ errorBgHover: "#18181b",
845
+ info: "#fafafa",
846
+ chart1: "#fafafa",
847
+ chart2: "#a1a1aa",
848
+ chart3: "#71717a",
849
+ chart4: "#52525b",
850
+ chart5: "#d4d4d8",
851
+ chart6: "#e4e4e7"
852
+ },
853
+ radius: { sm: "2px", md: "4px", lg: "6px", xl: "8px", none: "0", full: "9999px" },
854
+ shadows: {
855
+ xs: "0 1px 2px 0 rgba(0,0,0,0.3)",
856
+ sm: "0 1px 2px 0 rgba(0,0,0,0.4)",
857
+ md: "0 2px 4px -1px rgba(0,0,0,0.4)",
858
+ lg: "0 4px 6px -2px rgba(0,0,0,0.4)",
859
+ xl: "0 8px 16px -4px rgba(0,0,0,0.5)"
860
+ }
861
+ }
862
+ };
863
+
864
+ // src/themes/natural/theme.ts
865
+ var naturalTheme = {
866
+ name: "natural",
867
+ label: "Natural",
868
+ light: {
869
+ colors: {
870
+ primary: "#059669",
871
+ primaryHover: "#047857",
872
+ primaryActive: "#065f46",
873
+ primaryDisabled: "#6ee7b7",
874
+ primaryForeground: "#1c1917",
875
+ secondary: "#78716c",
876
+ secondaryHover: "#57534e",
877
+ secondaryActive: "#44403c",
878
+ secondaryDisabled: "#a8a29e",
879
+ secondaryForeground: "#ffffff",
880
+ outlineBgHover: "#ecfdf5",
881
+ ghostBgHover: "#f5f5f4",
882
+ focusRing: "#059669",
883
+ surface: "#fffbf5",
884
+ surfaceMuted: "#faf5ee",
885
+ surfaceRaised: "#ffffff",
886
+ text: "#1c1917",
887
+ textSecondary: "#57534e",
888
+ textDisabled: "#d6d3d1",
889
+ border: "#e7e5e4",
890
+ borderStrong: "#a8a29e",
891
+ success: "#16a34a",
892
+ warning: "#d97706",
893
+ error: "#dc2626",
894
+ errorForeground: "#ffffff",
895
+ errorHover: "#b91c1c",
896
+ errorDisabled: "#fca5a5",
897
+ errorBgHover: "#fef2f2",
898
+ info: "#0284c7",
899
+ chart1: "#059669",
900
+ chart2: "#d97706",
901
+ chart3: "#0284c7",
902
+ chart4: "#a16207",
903
+ chart5: "#0d9488",
904
+ chart6: "#be123c"
905
+ },
906
+ radius: { sm: "6px", md: "8px", lg: "12px", xl: "16px", none: "0", full: "9999px" },
907
+ typography: {
908
+ fontFamily: "'Source Sans 3', 'Georgia', -apple-system, sans-serif",
909
+ fontFamilyMono: "'Source Code Pro', 'Menlo', monospace",
910
+ fontSizeBase: "16px",
911
+ fontSizeSm: "14px",
912
+ fontSizeLg: "18px",
913
+ fontWeightNormal: "400",
914
+ fontWeightMedium: "500",
915
+ fontWeightSemibold: "600",
916
+ fontWeightBold: "700",
917
+ lineHeightNormal: "1.6",
918
+ lineHeightTight: "1.3"
919
+ }
920
+ },
921
+ dark: {
922
+ colors: {
923
+ primary: "#34d399",
924
+ primaryHover: "#6ee7b7",
925
+ primaryActive: "#a7f3d0",
926
+ primaryDisabled: "#064e3b",
927
+ primaryForeground: "#1c1917",
928
+ secondary: "#a8a29e",
929
+ secondaryHover: "#d6d3d1",
930
+ secondaryActive: "#e7e5e4",
931
+ secondaryDisabled: "#44403c",
932
+ secondaryForeground: "#1c1917",
933
+ outlineBgHover: "#064e3b",
934
+ ghostBgHover: "#292524",
935
+ focusRing: "#34d399",
936
+ surface: "#1c1917",
937
+ surfaceMuted: "#292524",
938
+ surfaceRaised: "#292524",
939
+ text: "#fafaf9",
940
+ textSecondary: "#d6d3d1",
941
+ textDisabled: "#44403c",
942
+ border: "#44403c",
943
+ borderStrong: "#78716c",
944
+ success: "#4ade80",
945
+ warning: "#fbbf24",
946
+ error: "#f87171",
947
+ errorForeground: "#1c1917",
948
+ errorHover: "#fca5a5",
949
+ errorDisabled: "#7f1d1d",
950
+ errorBgHover: "#292524",
951
+ info: "#38bdf8",
952
+ chart1: "#34d399",
953
+ chart2: "#fbbf24",
954
+ chart3: "#38bdf8",
955
+ chart4: "#fcd34d",
956
+ chart5: "#2dd4bf",
957
+ chart6: "#fb7185"
958
+ },
959
+ radius: { sm: "6px", md: "8px", lg: "12px", xl: "16px", none: "0", full: "9999px" },
960
+ typography: {
961
+ fontFamily: "'Source Sans 3', 'Georgia', -apple-system, sans-serif",
962
+ fontFamilyMono: "'Source Code Pro', 'Menlo', monospace",
963
+ fontSizeBase: "16px",
964
+ fontSizeSm: "14px",
965
+ fontSizeLg: "18px",
966
+ fontWeightNormal: "400",
967
+ fontWeightMedium: "500",
968
+ fontWeightSemibold: "600",
969
+ fontWeightBold: "700",
970
+ lineHeightNormal: "1.6",
971
+ lineHeightTight: "1.3"
972
+ }
973
+ }
974
+ };
975
+
976
+ // src/themes/high-contrast/theme.ts
977
+ var highContrastTheme = {
978
+ name: "high-contrast",
979
+ label: "High Contrast",
980
+ light: {
981
+ colors: {
982
+ primary: "#0033cc",
983
+ primaryHover: "#002699",
984
+ primaryActive: "#001f80",
985
+ primaryDisabled: "#7f8fcf",
986
+ primaryForeground: "#ffffff",
987
+ secondary: "#000000",
988
+ secondaryHover: "#1f1f1f",
989
+ secondaryActive: "#333333",
990
+ secondaryDisabled: "#767676",
991
+ secondaryForeground: "#ffffff",
992
+ outlineBgHover: "#e6eeff",
993
+ ghostBgHover: "#f2f2f2",
994
+ focusRing: "#000000",
995
+ surface: "#ffffff",
996
+ surfaceMuted: "#f2f2f2",
997
+ surfaceRaised: "#ffffff",
998
+ text: "#000000",
999
+ textSecondary: "#000000",
1000
+ textDisabled: "#595959",
1001
+ border: "#000000",
1002
+ borderStrong: "#000000",
1003
+ success: "#006400",
1004
+ warning: "#7a4b00",
1005
+ error: "#b00020",
1006
+ errorForeground: "#ffffff",
1007
+ errorHover: "#7a0016",
1008
+ errorDisabled: "#fca5a5",
1009
+ errorBgHover: "#fef2f2",
1010
+ info: "#0033cc",
1011
+ chart1: "#0033cc",
1012
+ chart2: "#006400",
1013
+ chart3: "#7a4b00",
1014
+ chart4: "#6b00b9",
1015
+ chart5: "#005f73",
1016
+ chart6: "#b00020"
1017
+ },
1018
+ radius: { sm: "2px", md: "4px", lg: "6px", xl: "8px", none: "0", full: "9999px" },
1019
+ shadows: {
1020
+ xs: "0 0 0 1px #000000",
1021
+ sm: "0 0 0 1px #000000",
1022
+ md: "0 0 0 2px #000000",
1023
+ lg: "0 0 0 2px #000000",
1024
+ xl: "0 0 0 3px #000000"
1025
+ }
1026
+ },
1027
+ dark: {
1028
+ colors: {
1029
+ primary: "#66b2ff",
1030
+ primaryHover: "#99ccff",
1031
+ primaryActive: "#cce5ff",
1032
+ primaryDisabled: "#335c85",
1033
+ primaryForeground: "#000000",
1034
+ secondary: "#ffffff",
1035
+ secondaryHover: "#e6e6e6",
1036
+ secondaryActive: "#cccccc",
1037
+ secondaryDisabled: "#8c8c8c",
1038
+ secondaryForeground: "#000000",
1039
+ outlineBgHover: "#001f3f",
1040
+ ghostBgHover: "#1a1a1a",
1041
+ focusRing: "#ffff00",
1042
+ surface: "#000000",
1043
+ surfaceMuted: "#111111",
1044
+ surfaceRaised: "#000000",
1045
+ text: "#ffffff",
1046
+ textSecondary: "#ffffff",
1047
+ textDisabled: "#a6a6a6",
1048
+ border: "#ffffff",
1049
+ borderStrong: "#ffffff",
1050
+ success: "#00e676",
1051
+ warning: "#ffd54f",
1052
+ error: "#ff8a80",
1053
+ errorForeground: "#000000",
1054
+ errorHover: "#ffcdd2",
1055
+ errorDisabled: "#b71c1c",
1056
+ errorBgHover: "#1a1a1a",
1057
+ info: "#80d8ff",
1058
+ chart1: "#66b2ff",
1059
+ chart2: "#00e676",
1060
+ chart3: "#ffd54f",
1061
+ chart4: "#d7a5ff",
1062
+ chart5: "#80d8ff",
1063
+ chart6: "#ff8a80"
1064
+ },
1065
+ radius: { sm: "2px", md: "4px", lg: "6px", xl: "8px", none: "0", full: "9999px" },
1066
+ shadows: {
1067
+ xs: "0 0 0 1px #ffffff",
1068
+ sm: "0 0 0 1px #ffffff",
1069
+ md: "0 0 0 2px #ffffff",
1070
+ lg: "0 0 0 2px #ffffff",
1071
+ xl: "0 0 0 3px #ffffff"
1072
+ }
1073
+ }
1074
+ };
1075
+
1076
+ // src/themes/manager.ts
1077
+ var builtInPresets = [
1078
+ defaultTheme,
1079
+ vibrantTheme,
1080
+ professionalTheme,
1081
+ minimalTheme,
1082
+ naturalTheme,
1083
+ modernTheme,
1084
+ highContrastTheme
1085
+ ];
1086
+ function mergeThemeConfig(base = {}, override = {}) {
1087
+ return {
1088
+ colors: { ...base.colors, ...override.colors },
1089
+ typography: { ...base.typography, ...override.typography },
1090
+ radius: { ...base.radius, ...override.radius },
1091
+ shadows: { ...base.shadows, ...override.shadows },
1092
+ spacing: { ...base.spacing, ...override.spacing },
1093
+ motion: { ...base.motion, ...override.motion }
1094
+ };
1095
+ }
1096
+ function resolvePresetThemeConfig(preset, scheme, fallback = defaultTheme) {
1097
+ return mergeThemeConfig(fallback[scheme], preset?.[scheme] ?? {});
1098
+ }
1099
+ var THEME_CONFIG_CSS_VARS = {
1100
+ typography: {
1101
+ fontFamily: "--tiger-font-family",
1102
+ fontFamilyMono: "--tiger-font-family-mono",
1103
+ fontSizeBase: "--tiger-font-size-base",
1104
+ fontSizeSm: "--tiger-font-size-sm",
1105
+ fontSizeLg: "--tiger-font-size-lg",
1106
+ fontWeightNormal: "--tiger-font-weight-normal",
1107
+ fontWeightMedium: "--tiger-font-weight-medium",
1108
+ fontWeightSemibold: "--tiger-font-weight-semibold",
1109
+ fontWeightBold: "--tiger-font-weight-bold",
1110
+ lineHeightNormal: "--tiger-line-height-normal",
1111
+ lineHeightTight: "--tiger-line-height-tight"
1112
+ },
1113
+ radius: {
1114
+ none: "--tiger-radius-none",
1115
+ sm: "--tiger-radius-sm",
1116
+ md: "--tiger-radius-md",
1117
+ lg: "--tiger-radius-lg",
1118
+ xl: "--tiger-radius-xl",
1119
+ full: "--tiger-radius-full"
1120
+ },
1121
+ shadows: {
1122
+ xs: "--tiger-shadow-xs",
1123
+ sm: "--tiger-shadow-sm",
1124
+ md: "--tiger-shadow-md",
1125
+ lg: "--tiger-shadow-lg",
1126
+ xl: "--tiger-shadow-xl"
1127
+ },
1128
+ spacing: {
1129
+ xs: "--tiger-spacing-xs",
1130
+ sm: "--tiger-spacing-sm",
1131
+ md: "--tiger-spacing-md",
1132
+ lg: "--tiger-spacing-lg",
1133
+ xl: "--tiger-spacing-xl"
1134
+ },
1135
+ motion: {
1136
+ durationFast: "--tiger-motion-duration-quick",
1137
+ durationBase: "--tiger-motion-duration-base",
1138
+ durationSlow: "--tiger-motion-duration-relaxed",
1139
+ easing: "--tiger-motion-ease-standard"
1140
+ }
1141
+ };
1142
+ var THEME_TRANSITION_CSS_VARS = {
1143
+ durationFast: "--tiger-transition-quick",
1144
+ durationBase: "--tiger-transition-base",
1145
+ durationSlow: "--tiger-transition-emphasized"
1146
+ };
1147
+ function themeConfigToCssVars(config) {
1148
+ const vars = {
1149
+ ...semanticColorsToCssVars(config.colors)
1150
+ };
1151
+ for (const section of ["typography", "radius", "shadows", "spacing", "motion"]) {
1152
+ const values = config[section];
1153
+ if (!values) continue;
1154
+ const varNames = THEME_CONFIG_CSS_VARS[section];
1155
+ for (const [key, value] of Object.entries(values)) {
1156
+ const varName = varNames[key];
1157
+ if (varName && value) vars[varName] = value;
1158
+ }
1159
+ }
1160
+ const motion = config.motion;
1161
+ if (motion) {
1162
+ const easing = motion.easing ?? "cubic-bezier(0.4, 0, 0.2, 1)";
1163
+ if (motion.durationBase) {
1164
+ vars[THEME_TRANSITION_CSS_VARS.durationBase] = `all ${motion.durationBase} ${easing}`;
1165
+ }
1166
+ if (motion.durationFast) {
1167
+ vars[THEME_TRANSITION_CSS_VARS.durationFast] = `all ${motion.durationFast} ${easing}`;
1168
+ }
1169
+ if (motion.durationSlow) {
1170
+ vars[THEME_TRANSITION_CSS_VARS.durationSlow] = `transform ${motion.durationSlow} ${easing}`;
1171
+ }
1172
+ }
1173
+ return vars;
1174
+ }
1175
+ function extraThemeVarNames() {
1176
+ return [
1177
+ ...Object.values(THEME_TRANSITION_CSS_VARS),
1178
+ ...Object.keys(MODERN_BASE_TOKENS_LIGHT),
1179
+ ...Object.keys(MODERN_BASE_TOKENS_DARK),
1180
+ ...Object.keys(MODERN_OVERRIDE_TOKENS_LIGHT),
1181
+ ...Object.keys(MODERN_OVERRIDE_TOKENS_DARK)
1182
+ ];
1183
+ }
1184
+ function clearThemeConfig(target) {
1185
+ removeCssVarsCached(target, [
1186
+ ...Object.values(THEME_CSS_VARS),
1187
+ ...Object.values(THEME_CONFIG_CSS_VARS.typography),
1188
+ ...Object.values(THEME_CONFIG_CSS_VARS.radius),
1189
+ ...Object.values(THEME_CONFIG_CSS_VARS.shadows),
1190
+ ...Object.values(THEME_CONFIG_CSS_VARS.spacing),
1191
+ ...Object.values(THEME_CONFIG_CSS_VARS.motion),
1192
+ ...extraThemeVarNames()
1193
+ ]);
1194
+ }
1195
+ function resolveSystemDark() {
1196
+ if (!isBrowser()) return false;
1197
+ return window.matchMedia("(prefers-color-scheme: dark)").matches;
1198
+ }
1199
+ var ThemeManagerImpl = class {
1200
+ presets = /* @__PURE__ */ new Map();
1201
+ currentThemeName = "default";
1202
+ colorScheme = "light";
1203
+ resolvedDark = false;
1204
+ listeners = [];
1205
+ mediaQuery = null;
1206
+ mediaHandler = null;
1207
+ builtInsRegistered = false;
1208
+ /** Register shipped presets. Safe to call more than once. */
1209
+ registerBuiltIns() {
1210
+ if (this.builtInsRegistered) return;
1211
+ for (const preset of builtInPresets) {
1212
+ if (!this.presets.has(preset.name)) {
1213
+ this.presets.set(preset.name, preset);
1214
+ }
1215
+ }
1216
+ this.builtInsRegistered = true;
1217
+ }
1218
+ // -----------------------------------------------------------------------
1219
+ // Theme registration
1220
+ // -----------------------------------------------------------------------
1221
+ /** Register a preset theme. Replaces any existing preset with the same name. */
1222
+ registerTheme(preset) {
1223
+ this.registerBuiltIns();
1224
+ this.presets.set(preset.name, preset);
1225
+ }
1226
+ /** Get a registered preset by name. */
1227
+ getTheme(name) {
1228
+ this.registerBuiltIns();
1229
+ return this.presets.get(name);
1230
+ }
1231
+ /** List all registered preset names. */
1232
+ getAvailableThemes() {
1233
+ this.registerBuiltIns();
1234
+ return Array.from(this.presets.keys());
1235
+ }
1236
+ /** Get the currently active theme name. */
1237
+ getCurrentTheme() {
1238
+ return this.currentThemeName;
1239
+ }
1240
+ /** Get the resolved (effective) color scheme — always 'light' or 'dark'. */
1241
+ getResolvedColorScheme() {
1242
+ return this.resolvedDark ? "dark" : "light";
1243
+ }
1244
+ // -----------------------------------------------------------------------
1245
+ // Applying themes
1246
+ // -----------------------------------------------------------------------
1247
+ /**
1248
+ * Switch to a registered preset theme.
1249
+ * If the name is not registered the call is a no-op.
1250
+ */
1251
+ setTheme(name) {
1252
+ this.registerBuiltIns();
1253
+ if (!this.presets.has(name)) {
1254
+ devWarn(`ThemeManager.setTheme.${name}`, `[Tigercat] Theme "${name}" is not registered.`);
1255
+ return;
1256
+ }
1257
+ this.currentThemeName = name;
1258
+ this.apply();
1259
+ }
1260
+ /**
1261
+ * Define and immediately apply a custom theme at runtime.
1262
+ * Registers the theme, then switches to it.
1263
+ */
1264
+ defineTheme(preset) {
1265
+ this.registerTheme(preset);
1266
+ this.setTheme(preset.name);
1267
+ }
1268
+ /**
1269
+ * Set the colour scheme strategy.
1270
+ * - `'light'` / `'dark'` — force a specific mode
1271
+ * - `'auto'` — follow `prefers-color-scheme` media query
1272
+ *
1273
+ * Pass `{ applyResolved: false }` with `'auto'` to attach the media listener
1274
+ * without applying the current system preference. ConfigProvider uses that
1275
+ * on first paint so SSR (light) does not flash `.dark` during hydrate.
1276
+ */
1277
+ setColorScheme(scheme, options) {
1278
+ this.colorScheme = scheme;
1279
+ if (scheme === "auto") {
1280
+ this.startWatchingMedia();
1281
+ if (options?.applyResolved === false) {
1282
+ return;
1283
+ }
1284
+ this.resolvedDark = resolveSystemDark();
1285
+ } else {
1286
+ this.stopWatchingMedia();
1287
+ this.resolvedDark = scheme === "dark";
1288
+ }
1289
+ this.apply();
1290
+ }
1291
+ /** Get the current color scheme setting (may be 'auto'). */
1292
+ getColorScheme() {
1293
+ return this.colorScheme;
1294
+ }
1295
+ // -----------------------------------------------------------------------
1296
+ // Listeners
1297
+ // -----------------------------------------------------------------------
1298
+ /** Subscribe to theme/colour-scheme changes. Returns an unsubscribe function. */
1299
+ onChange(listener) {
1300
+ this.listeners.push(listener);
1301
+ return () => {
1302
+ this.listeners = this.listeners.filter((l) => l !== listener);
1303
+ };
1304
+ }
1305
+ // -----------------------------------------------------------------------
1306
+ // Internal
1307
+ // -----------------------------------------------------------------------
1308
+ apply() {
1309
+ this.registerBuiltIns();
1310
+ if (!isBrowser()) return;
1311
+ const root = document.documentElement;
1312
+ const preset = this.presets.get(this.currentThemeName);
1313
+ const scheme = this.resolvedDark ? "dark" : "light";
1314
+ const config = resolvePresetThemeConfig(preset, scheme);
1315
+ clearThemeConfig(root);
1316
+ const isModern = this.currentThemeName === "modern";
1317
+ const extra = isModern ? this.resolvedDark ? MODERN_OVERRIDE_TOKENS_DARK : MODERN_OVERRIDE_TOKENS_LIGHT : {};
1318
+ setCssVarsCached(root, { ...themeConfigToCssVars(config), ...extra });
1319
+ if (isModern) {
1320
+ root.setAttribute("data-tiger-style", "modern");
1321
+ } else {
1322
+ root.removeAttribute("data-tiger-style");
1323
+ }
1324
+ if (this.resolvedDark) {
1325
+ root.classList.add("dark");
1326
+ } else {
1327
+ root.classList.remove("dark");
1328
+ }
1329
+ root.style.colorScheme = this.resolvedDark ? "dark" : "light";
1330
+ this.notify();
1331
+ }
1332
+ notify() {
1333
+ const event = {
1334
+ theme: this.currentThemeName,
1335
+ colorScheme: this.resolvedDark ? "dark" : "light"
1336
+ };
1337
+ for (const listener of this.listeners) {
1338
+ listener(event);
1339
+ }
1340
+ }
1341
+ startWatchingMedia() {
1342
+ if (!isBrowser()) return;
1343
+ if (this.mediaQuery) return;
1344
+ this.mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
1345
+ this.mediaHandler = (e) => {
1346
+ this.resolvedDark = e.matches;
1347
+ this.apply();
1348
+ };
1349
+ this.mediaQuery.addEventListener("change", this.mediaHandler);
1350
+ }
1351
+ stopWatchingMedia() {
1352
+ if (this.mediaQuery && this.mediaHandler) {
1353
+ this.mediaQuery.removeEventListener("change", this.mediaHandler);
1354
+ }
1355
+ this.mediaQuery = null;
1356
+ this.mediaHandler = null;
1357
+ }
1358
+ };
1359
+ var ThemeManager = new ThemeManagerImpl();
1360
+
1361
+ // src/utils/class-names.ts
1362
+ function classNames(...classes) {
1363
+ let result = "";
1364
+ for (const cls of classes) {
1365
+ if (cls && cls !== "") {
1366
+ result += (result ? " " : "") + String(cls);
1367
+ }
1368
+ }
1369
+ return result;
1370
+ }
1371
+
1372
+ // src/utils/alert-utils.ts
1373
+ var alertCountdownBaseStyles = {
1374
+ "@keyframes tiger-alert-countdown": {
1375
+ from: { width: "100%" },
1376
+ to: { width: "0%" }
1377
+ },
1378
+ ".tiger-alert-countdown": {
1379
+ animationName: "tiger-alert-countdown",
1380
+ animationTimingFunction: "linear",
1381
+ animationFillMode: "forwards"
1382
+ }
1383
+ };
1384
+
1385
+ // src/utils/floating.ts
1386
+ import {
1387
+ computePosition,
1388
+ flip,
1389
+ shift,
1390
+ size,
1391
+ offset,
1392
+ arrow,
1393
+ autoUpdate
1394
+ } from "@floating-ui/dom";
1395
+ var overlayZIndexClass = {
1396
+ viewport: "z-[200]",
1397
+ overlay: "z-[1000]",
1398
+ modal: "z-[1100]",
1399
+ message: "z-[1200]",
1400
+ loadingBar: "z-[1300]"
1401
+ };
1402
+
1403
+ // src/utils/chart/color.ts
1404
+ var chartTooltipBaseClasses = classNames(
1405
+ `fixed left-0 top-0 ${overlayZIndexClass.overlay} pointer-events-none will-change-transform`,
1406
+ "max-w-xs px-3 py-2 rounded-[var(--tiger-radius-md,0.375rem)] shadow-[var(--tiger-shadow-glass,0_10px_15px_-3px_rgb(0_0_0_/_0.1),0_4px_6px_-4px_rgb(0_0_0_/_0.1))]",
1407
+ "bg-[color:var(--tiger-bg-elevated,#1f2937)]",
1408
+ "text-[color:var(--tiger-text-inverse,#f9fafb)]",
1409
+ "text-sm",
1410
+ "transition-opacity duration-150 motion-reduce:transition-none"
1411
+ );
1412
+ var cartesianChartAnimationBaseStyles = {
1413
+ "@keyframes tiger-line-draw": {
1414
+ from: { strokeDashoffset: "1" },
1415
+ to: { strokeDashoffset: "0" }
1416
+ },
1417
+ "@keyframes tiger-area-draw": {
1418
+ from: { strokeDashoffset: "1" },
1419
+ to: { strokeDashoffset: "0" }
1420
+ },
1421
+ "@keyframes tiger-scatter-entrance": {
1422
+ from: { opacity: "0", transform: "scale(0)" },
1423
+ "60%": { transform: "scale(1.15)" },
1424
+ to: { opacity: "1", transform: "scale(1)" }
1425
+ },
1426
+ ".tiger-line-animated": {
1427
+ animation: "tiger-line-draw var(--tiger-motion-duration-slow,1.2s) var(--tiger-motion-ease-emphasized,cubic-bezier(.4,0,.2,1)) forwards"
1428
+ },
1429
+ ".tiger-area-animated": {
1430
+ animation: "tiger-area-draw var(--tiger-motion-duration-slow,1.2s) var(--tiger-motion-ease-emphasized,cubic-bezier(.4,0,.2,1)) forwards"
1431
+ },
1432
+ ".tiger-scatter-entrance": {
1433
+ transformBox: "fill-box",
1434
+ transformOrigin: "center",
1435
+ animation: "tiger-scatter-entrance var(--tiger-motion-duration-slow,500ms) var(--tiger-motion-ease-spring,cubic-bezier(.34,1.56,.64,1)) both"
1436
+ },
1437
+ ".tiger-bar-animated": {
1438
+ transition: "y var(--tiger-motion-duration-slow,600ms) var(--tiger-motion-ease-emphasized,cubic-bezier(.4,0,.2,1)), height var(--tiger-motion-duration-slow,600ms) var(--tiger-motion-ease-emphasized,cubic-bezier(.4,0,.2,1)), opacity var(--tiger-motion-duration-base,200ms) var(--tiger-motion-ease-decelerate,ease-out), filter var(--tiger-motion-duration-base,200ms) var(--tiger-motion-ease-decelerate,ease-out)"
1439
+ },
1440
+ "@keyframes tiger-donut-entrance": {
1441
+ from: { opacity: "0", transform: "scale(0.9)" },
1442
+ to: { opacity: "1", transform: "scale(1)" }
1443
+ },
1444
+ ".tiger-donut-entrance": {
1445
+ transformBox: "fill-box",
1446
+ transformOrigin: "center",
1447
+ animation: "tiger-donut-entrance var(--tiger-motion-duration-slow,500ms) var(--tiger-motion-ease-spring,cubic-bezier(.34,1.56,.64,1)) both"
1448
+ }
1449
+ };
1450
+
1451
+ // src/utils/loading-utils.ts
1452
+ var loadingFullscreenBaseClasses = `fixed inset-0 ${overlayZIndexClass.modal} flex items-center justify-center`;
1453
+ var loadingAnimationBaseStyles = {
1454
+ "@keyframes tiger-bounce-dot": {
1455
+ "0%, 100%": { transform: "translateY(0)" },
1456
+ "50%": { transform: "translateY(-100%)" }
1457
+ },
1458
+ "@keyframes tiger-scale-bar": {
1459
+ "0%, 100%": { transform: "scaleY(1)" },
1460
+ "50%": { transform: "scaleY(1.5)" }
1461
+ },
1462
+ ".animate-bounce-dot": {
1463
+ animation: "tiger-bounce-dot var(--tiger-motion-duration-slow,0.6s) var(--tiger-motion-ease-standard,ease-in-out) infinite"
1464
+ },
1465
+ ".animate-scale-bar": {
1466
+ animation: "tiger-scale-bar var(--tiger-motion-duration-slow,0.6s) var(--tiger-motion-ease-standard,ease-in-out) infinite"
1467
+ },
1468
+ ".animation-delay-0": { animationDelay: "0s" },
1469
+ ".animation-delay-150": { animationDelay: "0.15s" },
1470
+ ".animation-delay-300": { animationDelay: "0.3s" }
270
1471
  };
271
1472
 
272
1473
  // src/tailwind-plugin.ts
273
- var tigercatTheme = semanticColorsToCssVars(defaultThemeLightColors);
274
- var tigercatDarkTheme = semanticColorsToCssVars(defaultThemeDarkColors);
1474
+ function cssVarsForPreset(preset, scheme) {
1475
+ return themeConfigToCssVars(resolvePresetThemeConfig(preset ?? defaultTheme, scheme));
1476
+ }
1477
+ var tigercatTheme = cssVarsForPreset(defaultTheme, "light");
1478
+ var tigercatDarkTheme = cssVarsForPreset(defaultTheme, "dark");
275
1479
  var tigercatDirectionBase = {
276
1480
  '[dir="rtl"] .tiger-rtl-mirror, [data-tiger-dir="rtl"] .tiger-rtl-mirror': {
277
1481
  transform: "scaleX(-1)"
@@ -300,36 +1504,46 @@ var tigercatReducedMotionBase = {
300
1504
  };
301
1505
  var tigercatPlugin = plugin(function({ addBase }) {
302
1506
  addBase({
303
- ":root": { ...tigercatTheme, ...MODERN_BASE_TOKENS_LIGHT },
304
- ".dark": { ...tigercatDarkTheme, ...MODERN_BASE_TOKENS_DARK },
305
- // Remove browser default focus outline on interactive SVG elements
306
- 'svg [tabindex], svg [role="button"]': {
307
- outline: "none"
308
- },
1507
+ // Extra (glass/gradient/motion-name) tokens first; the preset wins on
1508
+ // shared names such as --tiger-radius-md so plugin output matches ThemeManager.
1509
+ ":root": { ...MODERN_BASE_TOKENS_LIGHT, ...tigercatTheme },
1510
+ ".dark": { ...MODERN_BASE_TOKENS_DARK, ...tigercatDarkTheme },
309
1511
  ...tigercatDirectionBase,
310
- ...tigercatReducedMotionBase
1512
+ ...tigercatReducedMotionBase,
1513
+ '[data-tiger-style="modern"]': MODERN_OVERRIDE_TOKENS_LIGHT,
1514
+ '.dark[data-tiger-style="modern"], [data-tiger-style="modern"].dark': MODERN_OVERRIDE_TOKENS_DARK,
1515
+ ...alertCountdownBaseStyles,
1516
+ ...loadingAnimationBaseStyles,
1517
+ ...cartesianChartAnimationBaseStyles
311
1518
  });
312
1519
  });
313
1520
  function createTigercatPlugin(options = {}) {
314
1521
  return plugin(function({ addBase }) {
315
- const preset = options.preset;
316
- const lightVars = preset?.light?.colors ? semanticColorsToCssVars(preset.light.colors) : tigercatTheme;
317
- const darkVars = preset?.dark?.colors ? semanticColorsToCssVars(preset.dark.colors) : tigercatDarkTheme;
1522
+ const preset = options.preset ?? (options.modern ? modernTheme : defaultTheme);
1523
+ const modern = options.modern === true || preset.name === "modern";
1524
+ const lightVars = cssVarsForPreset(preset, "light");
1525
+ const darkVars = cssVarsForPreset(preset, "dark");
318
1526
  addBase({
319
- ":root": { ...lightVars, ...MODERN_BASE_TOKENS_LIGHT },
320
- ".dark": { ...darkVars, ...MODERN_BASE_TOKENS_DARK },
321
- 'svg [tabindex], svg [role="button"]': {
322
- outline: "none"
1527
+ ":root": {
1528
+ ...MODERN_BASE_TOKENS_LIGHT,
1529
+ ...lightVars,
1530
+ ...modern ? MODERN_OVERRIDE_TOKENS_LIGHT : {}
1531
+ },
1532
+ ".dark": {
1533
+ ...MODERN_BASE_TOKENS_DARK,
1534
+ ...darkVars,
1535
+ ...modern ? MODERN_OVERRIDE_TOKENS_DARK : {}
323
1536
  },
324
1537
  ...tigercatDirectionBase,
325
- ...tigercatReducedMotionBase
1538
+ ...tigercatReducedMotionBase,
1539
+ ...alertCountdownBaseStyles,
1540
+ ...loadingAnimationBaseStyles,
1541
+ ...cartesianChartAnimationBaseStyles
1542
+ });
1543
+ addBase({
1544
+ '[data-tiger-style="modern"]': MODERN_OVERRIDE_TOKENS_LIGHT,
1545
+ '.dark[data-tiger-style="modern"], [data-tiger-style="modern"].dark': MODERN_OVERRIDE_TOKENS_DARK
326
1546
  });
327
- if (options.modern) {
328
- addBase({
329
- '[data-tiger-style="modern"]': MODERN_OVERRIDE_TOKENS_LIGHT,
330
- '.dark[data-tiger-style="modern"], [data-tiger-style="modern"].dark': MODERN_OVERRIDE_TOKENS_DARK
331
- });
332
- }
333
1547
  });
334
1548
  }
335
1549