@titan-design/react-ui 0.0.1

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.
@@ -0,0 +1,1287 @@
1
+ import { ViewStyle } from 'react-native';
2
+
3
+ /**
4
+ * Primitive Design Tokens
5
+ *
6
+ * Raw values with no semantic meaning. These are the foundation of the design system
7
+ * and should rarely be used directly in components. Use semantic tokens instead.
8
+ */
9
+ declare const primitiveColors: {
10
+ readonly blue: {
11
+ readonly 50: "#EFF6FF";
12
+ readonly 100: "#DBEAFE";
13
+ readonly 200: "#BFDBFE";
14
+ readonly 300: "#93C5FD";
15
+ readonly 400: "#60A5FA";
16
+ readonly 500: "#3B82F6";
17
+ readonly 600: "#5048E5";
18
+ readonly 700: "#3832A0";
19
+ readonly 800: "#1E40AF";
20
+ readonly 900: "#1E3A8A";
21
+ };
22
+ readonly green: {
23
+ readonly 50: "#ECFDF5";
24
+ readonly 100: "#D1FAE5";
25
+ readonly 200: "#A7F3D0";
26
+ readonly 300: "#6EE7B7";
27
+ readonly 400: "#3FC79A";
28
+ readonly 500: "#10B981";
29
+ readonly 600: "#059669";
30
+ readonly 700: "#0B815A";
31
+ readonly 800: "#065F46";
32
+ readonly 900: "#064E3B";
33
+ };
34
+ readonly teal: {
35
+ readonly 50: "#F0FDFA";
36
+ readonly 100: "#CCFBF1";
37
+ readonly 200: "#99F6E4";
38
+ readonly 300: "#5EEAD4";
39
+ readonly 400: "#43C6B7";
40
+ readonly 500: "#14B8A6";
41
+ readonly 600: "#0D9488";
42
+ readonly 700: "#0E8074";
43
+ readonly 800: "#115E59";
44
+ readonly 900: "#134E4A";
45
+ };
46
+ readonly red: {
47
+ readonly 50: "#FEF2F2";
48
+ readonly 100: "#FEE2E2";
49
+ readonly 200: "#FECACA";
50
+ readonly 300: "#FCA5A5";
51
+ readonly 400: "#DA6868";
52
+ readonly 500: "#EF4444";
53
+ readonly 600: "#D14343";
54
+ readonly 700: "#922E2E";
55
+ readonly 800: "#991B1B";
56
+ readonly 900: "#7F1D1D";
57
+ };
58
+ readonly amber: {
59
+ readonly 50: "#FFFBEB";
60
+ readonly 100: "#FEF3C7";
61
+ readonly 200: "#FDE68A";
62
+ readonly 300: "#FCD34D";
63
+ readonly 400: "#FFBF4C";
64
+ readonly 500: "#FFB020";
65
+ readonly 600: "#B27B16";
66
+ readonly 700: "#B45309";
67
+ readonly 800: "#92400E";
68
+ readonly 900: "#78350F";
69
+ };
70
+ readonly sky: {
71
+ readonly 50: "#F0F9FF";
72
+ readonly 100: "#E0F2FE";
73
+ readonly 200: "#BAE6FD";
74
+ readonly 300: "#7DD3FC";
75
+ readonly 400: "#64B6F7";
76
+ readonly 500: "#2196F3";
77
+ readonly 600: "#0284C7";
78
+ readonly 700: "#0B79D0";
79
+ readonly 800: "#075985";
80
+ readonly 900: "#0C4A6E";
81
+ };
82
+ readonly neutral: {
83
+ readonly 50: "#FAFAFA";
84
+ readonly 100: "#F3F4F6";
85
+ readonly 200: "#E5E7EB";
86
+ readonly 300: "#D1D5DB";
87
+ readonly 400: "#9CA3AF";
88
+ readonly 500: "#6B7280";
89
+ readonly 600: "#4B5563";
90
+ readonly 700: "#374151";
91
+ readonly 800: "#1F2937";
92
+ readonly 900: "#111827";
93
+ readonly 950: "#030712";
94
+ };
95
+ readonly accent: {
96
+ readonly 100: "#FFA860";
97
+ readonly 200: "#FF9630";
98
+ readonly 300: "#FF8500";
99
+ readonly 400: "#FF7900";
100
+ readonly 500: "#F56C00";
101
+ readonly 600: "#E06D10";
102
+ readonly 700: "#D0620C";
103
+ readonly 800: "#B75500";
104
+ readonly 900: "#A34900";
105
+ };
106
+ readonly charcoal: {
107
+ readonly 0: "#6E6E6E";
108
+ readonly 50: "#5D5D5D";
109
+ readonly 100: "#4C4C4C";
110
+ readonly 200: "#3C3C3C";
111
+ readonly 300: "#2C2C2C";
112
+ readonly 400: "#1F1F1F";
113
+ readonly 500: "#1C1C1C";
114
+ readonly 600: "#191919";
115
+ readonly 700: "#161616";
116
+ readonly 800: "#131313";
117
+ readonly 900: "#101010";
118
+ };
119
+ readonly steel: {
120
+ readonly 100: "#8AA4B8";
121
+ readonly 200: "#7894A8";
122
+ readonly 300: "#678498";
123
+ readonly 400: "#557488";
124
+ readonly 500: "#406D87";
125
+ readonly 600: "#39617A";
126
+ readonly 700: "#32556D";
127
+ readonly 800: "#243D53";
128
+ readonly 900: "#1D3146";
129
+ };
130
+ readonly white: "#FFFFFF";
131
+ readonly black: "#000000";
132
+ readonly transparent: "transparent";
133
+ };
134
+ /**
135
+ * Discrete rainbow palette for data visualization
136
+ * Based on Paul Tol's color schemes: https://personal.sron.nl/~pault/#fig:scheme_rainbow_discrete
137
+ */
138
+ declare const discreteRainbow: readonly ["#E8ECFB", "#D9CCE3", "#D1BBD7", "#CAACCB", "#BA8DB4", "#AE76A3", "#AA6F9E", "#994F88", "#882E72", "#1965B0", "#437DBF", "#5289C7", "#6195CF", "#7BAFDE", "#4EB265", "#90C987", "#CAE0AB", "#F7F056", "#F7CB45", "#F6C141", "#F4A736", "#F1932D", "#EE8026", "#E8601C", "#E65518", "#DC050C", "#A5170E", "#72190E", "#42150A"];
139
+ /**
140
+ * Get a color from the discrete rainbow palette for a given index and palette size.
141
+ * Colors are optimized for visual distinction at each palette size.
142
+ *
143
+ * @param index - The index of the color in the series (0-based)
144
+ * @param size - The total number of colors needed (1-23)
145
+ * @returns The hex color string
146
+ */
147
+ declare function getDiscreteRainbowColor(index: number, size: number): string;
148
+ declare const primitiveTypography: {
149
+ readonly fontFamilies: {
150
+ readonly sans: readonly ["Inter", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Helvetica", "Arial", "sans-serif"];
151
+ readonly body: readonly ["Nunito Sans", "sans-serif"];
152
+ readonly heading: readonly ["Space Grotesk", "sans-serif"];
153
+ readonly mono: readonly ["SF Mono", "Monaco", "Inconsolata", "Fira Mono", "Droid Sans Mono", "Source Code Pro", "monospace"];
154
+ };
155
+ readonly fontSizes: {
156
+ readonly xs: "0.75rem";
157
+ readonly sm: "0.875rem";
158
+ readonly base: "1rem";
159
+ readonly lg: "1.125rem";
160
+ readonly xl: "1.5rem";
161
+ readonly '2xl': "2rem";
162
+ readonly '3xl': "2.25rem";
163
+ readonly '4xl': "3rem";
164
+ readonly '5xl': "3.5rem";
165
+ };
166
+ readonly fontWeights: {
167
+ readonly normal: 400;
168
+ readonly medium: 500;
169
+ readonly semibold: 600;
170
+ readonly bold: 700;
171
+ };
172
+ readonly lineHeights: {
173
+ readonly none: 1;
174
+ readonly tight: 1.375;
175
+ readonly snug: 1.5;
176
+ readonly normal: 1.57;
177
+ readonly relaxed: 1.66;
178
+ readonly loose: 1.75;
179
+ };
180
+ readonly letterSpacing: {
181
+ readonly tighter: "-0.05em";
182
+ readonly tight: "-0.025em";
183
+ readonly normal: "0em";
184
+ readonly wide: "0.025em";
185
+ readonly wider: "0.05em";
186
+ readonly widest: "0.5px";
187
+ };
188
+ };
189
+ declare const primitiveSpacing: {
190
+ readonly 0: "0";
191
+ readonly px: "1px";
192
+ readonly 0.5: "0.125rem";
193
+ readonly 1: "0.25rem";
194
+ readonly 1.5: "0.375rem";
195
+ readonly 2: "0.5rem";
196
+ readonly 2.5: "0.625rem";
197
+ readonly 3: "0.75rem";
198
+ readonly 3.5: "0.875rem";
199
+ readonly 4: "1rem";
200
+ readonly 5: "1.25rem";
201
+ readonly 6: "1.5rem";
202
+ readonly 7: "1.75rem";
203
+ readonly 8: "2rem";
204
+ readonly 9: "2.25rem";
205
+ readonly 10: "2.5rem";
206
+ readonly 11: "2.75rem";
207
+ readonly 12: "3rem";
208
+ readonly 14: "3.5rem";
209
+ readonly 16: "4rem";
210
+ readonly 20: "5rem";
211
+ readonly 24: "6rem";
212
+ readonly 28: "7rem";
213
+ readonly 32: "8rem";
214
+ };
215
+ declare const primitiveBorderRadius: {
216
+ readonly none: "0";
217
+ readonly sm: "4px";
218
+ readonly DEFAULT: "8px";
219
+ readonly md: "8px";
220
+ readonly lg: "12px";
221
+ readonly xl: "16px";
222
+ readonly '2xl': "24px";
223
+ readonly full: "9999px";
224
+ };
225
+ declare const primitiveShadows: {
226
+ readonly none: "none";
227
+ readonly sm: "0px 1px 2px rgba(100, 116, 139, 0.12)";
228
+ readonly DEFAULT: "0px 1px 3px rgba(100, 116, 139, 0.12), 0px 1px 2px rgba(100, 116, 139, 0.24)";
229
+ readonly md: "0px 4px 6px rgba(100, 116, 139, 0.12)";
230
+ readonly lg: "0px 10px 15px rgba(100, 116, 139, 0.12)";
231
+ readonly xl: "0px 20px 25px rgba(100, 116, 139, 0.12)";
232
+ readonly '2xl': "0px 25px 50px rgba(100, 116, 139, 0.25)";
233
+ readonly inner: "inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)";
234
+ };
235
+ declare const primitiveBreakpoints: {
236
+ readonly xs: 0;
237
+ readonly sm: 600;
238
+ readonly md: 1000;
239
+ readonly lg: 1200;
240
+ readonly xl: 1920;
241
+ };
242
+ declare const primitiveZIndex: {
243
+ readonly hide: -1;
244
+ readonly auto: "auto";
245
+ readonly base: 0;
246
+ readonly docked: 10;
247
+ readonly dropdown: 1000;
248
+ readonly sticky: 1100;
249
+ readonly drawer: 1100;
250
+ readonly banner: 1200;
251
+ readonly appBar: 1200;
252
+ readonly overlay: 1300;
253
+ readonly modal: 1400;
254
+ readonly popover: 1500;
255
+ readonly skipLink: 1600;
256
+ readonly toast: 1700;
257
+ readonly tooltip: 1800;
258
+ };
259
+
260
+ /**
261
+ * Semantic Design Tokens
262
+ *
263
+ * Meaningful tokens following DTCG (Design Tokens Community Group) naming conventions.
264
+ * Pattern: {category}-{intent}-{variant?}-{state?}
265
+ *
266
+ * Categories:
267
+ * - brand-* : Brand colors (primary, secondary, accent)
268
+ * - status-* : Feedback colors (success, error, warning, info)
269
+ * - result-* : Outcome indicators (improve, degrade, inconclusive, neutral)
270
+ * - data-* : Data visualization colors (chart series)
271
+ * - on-* : Text on colored backgrounds
272
+ * - surface-* : Elevated containers (NOT "paper")
273
+ * - background-* : Page backgrounds
274
+ * - text-* : Text colors
275
+ * - border-* : Border colors
276
+ * - interactive-* : Hover/focus/active/disabled states
277
+ */
278
+ declare const semanticColorsLight: {
279
+ readonly 'brand-primary': "#FF7900";
280
+ readonly 'brand-primary-light': "#FF9630";
281
+ readonly 'brand-primary-dark': "#D0620C";
282
+ readonly 'brand-primary-subtle': "rgba(255, 121, 0, 0.08)";
283
+ readonly 'brand-primary-hover': "#F56C00";
284
+ readonly 'brand-primary-active': "#E06D10";
285
+ readonly 'brand-secondary': "#406D87";
286
+ readonly 'brand-secondary-light': "#678498";
287
+ readonly 'brand-secondary-dark': "#32556D";
288
+ readonly 'brand-secondary-subtle': "rgba(64, 109, 135, 0.08)";
289
+ readonly 'brand-secondary-hover': "#39617A";
290
+ readonly 'brand-secondary-active': "#32556D";
291
+ readonly 'on-brand-primary': "#FFFFFF";
292
+ readonly 'on-brand-secondary': "#FFFFFF";
293
+ readonly 'status-success': "#14B8A6";
294
+ readonly 'status-success-light': "#43C6B7";
295
+ readonly 'status-success-dark': "#0E8074";
296
+ readonly 'status-success-subtle': "#F0FDFA";
297
+ readonly 'status-error': "#D14343";
298
+ readonly 'status-error-light': "#DA6868";
299
+ readonly 'status-error-dark': "#922E2E";
300
+ readonly 'status-error-subtle': "#FEF2F2";
301
+ readonly 'status-warning': "#FFB020";
302
+ readonly 'status-warning-light': "#FFBF4C";
303
+ readonly 'status-warning-dark': "#B27B16";
304
+ readonly 'status-warning-subtle': "#FFFBEB";
305
+ readonly 'status-info': "#2196F3";
306
+ readonly 'status-info-light': "#64B6F7";
307
+ readonly 'status-info-dark': "#0B79D0";
308
+ readonly 'status-info-subtle': "#F0F9FF";
309
+ readonly 'on-status-success': "#FFFFFF";
310
+ readonly 'on-status-error': "#FFFFFF";
311
+ readonly 'on-status-warning': "#FFFFFF";
312
+ readonly 'on-status-info': "#FFFFFF";
313
+ readonly 'result-improve': "#4caf50";
314
+ readonly 'result-improve-light': "rgba(76, 175, 80, 0.12)";
315
+ readonly 'result-improve-dark': "#248a24";
316
+ readonly 'result-degrade': "#ef5350";
317
+ readonly 'result-degrade-light': "rgba(239, 83, 80, 0.12)";
318
+ readonly 'result-degrade-dark': "#b30000";
319
+ readonly 'result-inconclusive': "#9E9A97";
320
+ readonly 'result-inconclusive-light': "rgba(158, 154, 151, 0.12)";
321
+ readonly 'result-neutral': "#6B7280";
322
+ readonly 'on-result-improve': "#FFFFFF";
323
+ readonly 'on-result-degrade': "#FFFFFF";
324
+ readonly 'on-result-inconclusive': "#FFFFFF";
325
+ readonly 'data-1': "#1965B0";
326
+ readonly 'data-2': "#4EB265";
327
+ readonly 'data-3': "#F7F056";
328
+ readonly 'data-4': "#DC050C";
329
+ readonly 'data-5': "#882E72";
330
+ readonly 'data-6': "#F4A736";
331
+ readonly 'data-7': "#7BAFDE";
332
+ readonly 'data-8': "#90C987";
333
+ readonly 'data-9': "#CAACCB";
334
+ readonly 'data-10': "#EE8026";
335
+ readonly 'text-primary': "#121828";
336
+ readonly 'text-secondary': "#65748B";
337
+ readonly 'text-tertiary': "#9CA3AF";
338
+ readonly 'text-disabled': "rgba(55, 65, 81, 0.48)";
339
+ readonly 'text-inverse': "#FFFFFF";
340
+ readonly 'text-link': "#5048E5";
341
+ readonly 'text-link-hover': "#3832A0";
342
+ readonly 'surface-base': "#FFFFFF";
343
+ readonly 'surface-elevated': "#FAFAFA";
344
+ readonly 'surface-raised': "#F3F4F6";
345
+ readonly 'surface-overlay': "#FFFFFF";
346
+ readonly 'surface-input': "#FAFAFA";
347
+ readonly 'background-base': "#EBEBEB";
348
+ readonly 'background-default': "#FFFFFF";
349
+ readonly 'background-subtle': "#FAFAFA";
350
+ readonly 'border-default': "#E8E9EB";
351
+ readonly 'border-subtle': "#F3F4F6";
352
+ readonly 'border-strong': "#D1D5DB";
353
+ readonly 'border-focus': "#5048E5";
354
+ readonly 'border-input': "#D1D5DB";
355
+ readonly 'border-input-hover': "#9CA3AF";
356
+ readonly 'border-input-focus': "#5048E5";
357
+ readonly 'border-input-error': "#D14343";
358
+ readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
359
+ readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
360
+ readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
361
+ readonly 'interactive-selected': "rgba(55, 65, 81, 0.08)";
362
+ readonly 'interactive-disabled': "rgba(55, 65, 81, 0.12)";
363
+ readonly 'interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
364
+ readonly divider: "#E8E9EB";
365
+ readonly 'avatar-background': "#6B7280";
366
+ readonly 'avatar-text': "#FFFFFF";
367
+ };
368
+ declare const semanticColorsDark: {
369
+ readonly 'brand-primary': "#FF7900";
370
+ readonly 'brand-primary-light': "#FF9630";
371
+ readonly 'brand-primary-dark': "#D0620C";
372
+ readonly 'brand-primary-subtle': "rgba(255, 121, 0, 0.12)";
373
+ readonly 'brand-primary-hover': "#FF8500";
374
+ readonly 'brand-primary-active': "#FF9630";
375
+ readonly 'brand-secondary': "#406D87";
376
+ readonly 'brand-secondary-light': "#678498";
377
+ readonly 'brand-secondary-dark': "#32556D";
378
+ readonly 'brand-secondary-subtle': "rgba(64, 109, 135, 0.12)";
379
+ readonly 'brand-secondary-hover': "#557488";
380
+ readonly 'brand-secondary-active': "#678498";
381
+ readonly 'on-brand-primary': "#FFFFFF";
382
+ readonly 'on-brand-secondary': "#FFFFFF";
383
+ readonly 'status-success': "#14B8A6";
384
+ readonly 'status-success-light': "#43C6B7";
385
+ readonly 'status-success-dark': "#0E8074";
386
+ readonly 'status-success-subtle': "rgba(20, 184, 166, 0.12)";
387
+ readonly 'status-error': "#D14343";
388
+ readonly 'status-error-light': "#DA6868";
389
+ readonly 'status-error-dark': "#922E2E";
390
+ readonly 'status-error-subtle': "rgba(209, 67, 67, 0.12)";
391
+ readonly 'status-warning': "#FFB020";
392
+ readonly 'status-warning-light': "#FFBF4C";
393
+ readonly 'status-warning-dark': "#B27B16";
394
+ readonly 'status-warning-subtle': "rgba(255, 176, 32, 0.12)";
395
+ readonly 'status-info': "#2196F3";
396
+ readonly 'status-info-light': "#64B6F7";
397
+ readonly 'status-info-dark': "#0B79D0";
398
+ readonly 'status-info-subtle': "rgba(33, 150, 243, 0.12)";
399
+ readonly 'on-status-success': "#FFFFFF";
400
+ readonly 'on-status-error': "#FFFFFF";
401
+ readonly 'on-status-warning': "#FFFFFF";
402
+ readonly 'on-status-info': "#FFFFFF";
403
+ readonly 'result-improve': "#4caf50";
404
+ readonly 'result-improve-light': "rgba(76, 175, 80, 0.16)";
405
+ readonly 'result-improve-dark': "#248a24";
406
+ readonly 'result-degrade': "#ef5350";
407
+ readonly 'result-degrade-light': "rgba(239, 83, 80, 0.16)";
408
+ readonly 'result-degrade-dark': "#b30000";
409
+ readonly 'result-inconclusive': "#9E9A97";
410
+ readonly 'result-inconclusive-light': "rgba(158, 154, 151, 0.16)";
411
+ readonly 'result-neutral': "#9CA3AF";
412
+ readonly 'on-result-improve': "#FFFFFF";
413
+ readonly 'on-result-degrade': "#FFFFFF";
414
+ readonly 'on-result-inconclusive': "#FFFFFF";
415
+ readonly 'data-1': "#1965B0";
416
+ readonly 'data-2': "#4EB265";
417
+ readonly 'data-3': "#F7F056";
418
+ readonly 'data-4': "#DC050C";
419
+ readonly 'data-5': "#882E72";
420
+ readonly 'data-6': "#F4A736";
421
+ readonly 'data-7': "#7BAFDE";
422
+ readonly 'data-8': "#90C987";
423
+ readonly 'data-9': "#CAACCB";
424
+ readonly 'data-10': "#EE8026";
425
+ readonly 'text-primary': "#F3F4F6";
426
+ readonly 'text-secondary': "#9CA3AF";
427
+ readonly 'text-tertiary': "#6B7280";
428
+ readonly 'text-disabled': "rgba(255, 255, 255, 0.38)";
429
+ readonly 'text-inverse': "#111827";
430
+ readonly 'text-link': "#828DF8";
431
+ readonly 'text-link-hover': "#60A5FA";
432
+ readonly 'surface-base': "#161616";
433
+ readonly 'surface-elevated': "#191919";
434
+ readonly 'surface-raised': "#1C1C1C";
435
+ readonly 'surface-overlay': "#191919";
436
+ readonly 'surface-input': "#191919";
437
+ readonly 'background-base': "#101010";
438
+ readonly 'background-default': "#161616";
439
+ readonly 'background-subtle': "#1C1C1C";
440
+ readonly 'border-default': "#1F1F1F";
441
+ readonly 'border-subtle': "#1C1C1C";
442
+ readonly 'border-strong': "#2C2C2C";
443
+ readonly 'border-focus': "#828DF8";
444
+ readonly 'border-input': "#4B5563";
445
+ readonly 'border-input-hover': "#6B7280";
446
+ readonly 'border-input-focus': "#828DF8";
447
+ readonly 'border-input-error': "#EF4444";
448
+ readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
449
+ readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
450
+ readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
451
+ readonly 'interactive-selected': "rgba(255, 255, 255, 0.08)";
452
+ readonly 'interactive-disabled': "rgba(255, 255, 255, 0.12)";
453
+ readonly 'interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
454
+ readonly divider: "#1F1F1F";
455
+ readonly 'avatar-background': "#4B5563";
456
+ readonly 'avatar-text': "#FFFFFF";
457
+ };
458
+ declare const semanticTypography: {
459
+ readonly h1: {
460
+ readonly fontFamily: "heading";
461
+ readonly fontSize: "3.5rem";
462
+ readonly fontWeight: 700;
463
+ readonly lineHeight: 1.375;
464
+ };
465
+ readonly h2: {
466
+ readonly fontFamily: "heading";
467
+ readonly fontSize: "3rem";
468
+ readonly fontWeight: 700;
469
+ readonly lineHeight: 1.375;
470
+ };
471
+ readonly h3: {
472
+ readonly fontFamily: "heading";
473
+ readonly fontSize: "2.25rem";
474
+ readonly fontWeight: 700;
475
+ readonly lineHeight: 1.375;
476
+ };
477
+ readonly h4: {
478
+ readonly fontFamily: "heading";
479
+ readonly fontSize: "2rem";
480
+ readonly fontWeight: 700;
481
+ readonly lineHeight: 1.375;
482
+ };
483
+ readonly h5: {
484
+ readonly fontFamily: "heading";
485
+ readonly fontSize: "1.5rem";
486
+ readonly fontWeight: 600;
487
+ readonly lineHeight: 1.375;
488
+ };
489
+ readonly h6: {
490
+ readonly fontFamily: "heading";
491
+ readonly fontSize: "1.125rem";
492
+ readonly fontWeight: 600;
493
+ readonly lineHeight: 1.375;
494
+ };
495
+ readonly body1: {
496
+ readonly fontFamily: "body";
497
+ readonly fontSize: "1rem";
498
+ readonly fontWeight: 400;
499
+ readonly lineHeight: 1.5;
500
+ };
501
+ readonly body2: {
502
+ readonly fontFamily: "body";
503
+ readonly fontSize: "0.875rem";
504
+ readonly fontWeight: 400;
505
+ readonly lineHeight: 1.57;
506
+ };
507
+ readonly subtitle1: {
508
+ readonly fontFamily: "body";
509
+ readonly fontSize: "1rem";
510
+ readonly fontWeight: 500;
511
+ readonly lineHeight: 1.75;
512
+ };
513
+ readonly subtitle2: {
514
+ readonly fontFamily: "body";
515
+ readonly fontSize: "0.875rem";
516
+ readonly fontWeight: 500;
517
+ readonly lineHeight: 1.57;
518
+ };
519
+ readonly caption: {
520
+ readonly fontFamily: "body";
521
+ readonly fontSize: "0.75rem";
522
+ readonly fontWeight: 400;
523
+ readonly lineHeight: 1.66;
524
+ };
525
+ readonly overline: {
526
+ readonly fontFamily: "body";
527
+ readonly fontSize: "0.75rem";
528
+ readonly fontWeight: 600;
529
+ readonly lineHeight: 2.5;
530
+ readonly letterSpacing: "0.5px";
531
+ readonly textTransform: "uppercase";
532
+ };
533
+ readonly button: {
534
+ readonly fontFamily: "sans";
535
+ readonly fontSize: "0.875rem";
536
+ readonly fontWeight: 600;
537
+ readonly lineHeight: 1.75;
538
+ };
539
+ };
540
+ declare const buttonSizes: {
541
+ readonly sm: {
542
+ readonly paddingX: "16px";
543
+ readonly paddingY: "6px";
544
+ readonly fontSize: "0.875rem";
545
+ };
546
+ readonly md: {
547
+ readonly paddingX: "20px";
548
+ readonly paddingY: "8px";
549
+ readonly fontSize: "0.875rem";
550
+ };
551
+ readonly lg: {
552
+ readonly paddingX: "24px";
553
+ readonly paddingY: "11px";
554
+ readonly fontSize: "1rem";
555
+ };
556
+ };
557
+ type ThemeMode = 'light' | 'dark';
558
+ declare function getSemanticColors(mode: ThemeMode): {
559
+ readonly 'brand-primary': "#FF7900";
560
+ readonly 'brand-primary-light': "#FF9630";
561
+ readonly 'brand-primary-dark': "#D0620C";
562
+ readonly 'brand-primary-subtle': "rgba(255, 121, 0, 0.08)";
563
+ readonly 'brand-primary-hover': "#F56C00";
564
+ readonly 'brand-primary-active': "#E06D10";
565
+ readonly 'brand-secondary': "#406D87";
566
+ readonly 'brand-secondary-light': "#678498";
567
+ readonly 'brand-secondary-dark': "#32556D";
568
+ readonly 'brand-secondary-subtle': "rgba(64, 109, 135, 0.08)";
569
+ readonly 'brand-secondary-hover': "#39617A";
570
+ readonly 'brand-secondary-active': "#32556D";
571
+ readonly 'on-brand-primary': "#FFFFFF";
572
+ readonly 'on-brand-secondary': "#FFFFFF";
573
+ readonly 'status-success': "#14B8A6";
574
+ readonly 'status-success-light': "#43C6B7";
575
+ readonly 'status-success-dark': "#0E8074";
576
+ readonly 'status-success-subtle': "#F0FDFA";
577
+ readonly 'status-error': "#D14343";
578
+ readonly 'status-error-light': "#DA6868";
579
+ readonly 'status-error-dark': "#922E2E";
580
+ readonly 'status-error-subtle': "#FEF2F2";
581
+ readonly 'status-warning': "#FFB020";
582
+ readonly 'status-warning-light': "#FFBF4C";
583
+ readonly 'status-warning-dark': "#B27B16";
584
+ readonly 'status-warning-subtle': "#FFFBEB";
585
+ readonly 'status-info': "#2196F3";
586
+ readonly 'status-info-light': "#64B6F7";
587
+ readonly 'status-info-dark': "#0B79D0";
588
+ readonly 'status-info-subtle': "#F0F9FF";
589
+ readonly 'on-status-success': "#FFFFFF";
590
+ readonly 'on-status-error': "#FFFFFF";
591
+ readonly 'on-status-warning': "#FFFFFF";
592
+ readonly 'on-status-info': "#FFFFFF";
593
+ readonly 'result-improve': "#4caf50";
594
+ readonly 'result-improve-light': "rgba(76, 175, 80, 0.12)";
595
+ readonly 'result-improve-dark': "#248a24";
596
+ readonly 'result-degrade': "#ef5350";
597
+ readonly 'result-degrade-light': "rgba(239, 83, 80, 0.12)";
598
+ readonly 'result-degrade-dark': "#b30000";
599
+ readonly 'result-inconclusive': "#9E9A97";
600
+ readonly 'result-inconclusive-light': "rgba(158, 154, 151, 0.12)";
601
+ readonly 'result-neutral': "#6B7280";
602
+ readonly 'on-result-improve': "#FFFFFF";
603
+ readonly 'on-result-degrade': "#FFFFFF";
604
+ readonly 'on-result-inconclusive': "#FFFFFF";
605
+ readonly 'data-1': "#1965B0";
606
+ readonly 'data-2': "#4EB265";
607
+ readonly 'data-3': "#F7F056";
608
+ readonly 'data-4': "#DC050C";
609
+ readonly 'data-5': "#882E72";
610
+ readonly 'data-6': "#F4A736";
611
+ readonly 'data-7': "#7BAFDE";
612
+ readonly 'data-8': "#90C987";
613
+ readonly 'data-9': "#CAACCB";
614
+ readonly 'data-10': "#EE8026";
615
+ readonly 'text-primary': "#121828";
616
+ readonly 'text-secondary': "#65748B";
617
+ readonly 'text-tertiary': "#9CA3AF";
618
+ readonly 'text-disabled': "rgba(55, 65, 81, 0.48)";
619
+ readonly 'text-inverse': "#FFFFFF";
620
+ readonly 'text-link': "#5048E5";
621
+ readonly 'text-link-hover': "#3832A0";
622
+ readonly 'surface-base': "#FFFFFF";
623
+ readonly 'surface-elevated': "#FAFAFA";
624
+ readonly 'surface-raised': "#F3F4F6";
625
+ readonly 'surface-overlay': "#FFFFFF";
626
+ readonly 'surface-input': "#FAFAFA";
627
+ readonly 'background-base': "#EBEBEB";
628
+ readonly 'background-default': "#FFFFFF";
629
+ readonly 'background-subtle': "#FAFAFA";
630
+ readonly 'border-default': "#E8E9EB";
631
+ readonly 'border-subtle': "#F3F4F6";
632
+ readonly 'border-strong': "#D1D5DB";
633
+ readonly 'border-focus': "#5048E5";
634
+ readonly 'border-input': "#D1D5DB";
635
+ readonly 'border-input-hover': "#9CA3AF";
636
+ readonly 'border-input-focus': "#5048E5";
637
+ readonly 'border-input-error': "#D14343";
638
+ readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
639
+ readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
640
+ readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
641
+ readonly 'interactive-selected': "rgba(55, 65, 81, 0.08)";
642
+ readonly 'interactive-disabled': "rgba(55, 65, 81, 0.12)";
643
+ readonly 'interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
644
+ readonly divider: "#E8E9EB";
645
+ readonly 'avatar-background': "#6B7280";
646
+ readonly 'avatar-text': "#FFFFFF";
647
+ } | {
648
+ readonly 'brand-primary': "#FF7900";
649
+ readonly 'brand-primary-light': "#FF9630";
650
+ readonly 'brand-primary-dark': "#D0620C";
651
+ readonly 'brand-primary-subtle': "rgba(255, 121, 0, 0.12)";
652
+ readonly 'brand-primary-hover': "#FF8500";
653
+ readonly 'brand-primary-active': "#FF9630";
654
+ readonly 'brand-secondary': "#406D87";
655
+ readonly 'brand-secondary-light': "#678498";
656
+ readonly 'brand-secondary-dark': "#32556D";
657
+ readonly 'brand-secondary-subtle': "rgba(64, 109, 135, 0.12)";
658
+ readonly 'brand-secondary-hover': "#557488";
659
+ readonly 'brand-secondary-active': "#678498";
660
+ readonly 'on-brand-primary': "#FFFFFF";
661
+ readonly 'on-brand-secondary': "#FFFFFF";
662
+ readonly 'status-success': "#14B8A6";
663
+ readonly 'status-success-light': "#43C6B7";
664
+ readonly 'status-success-dark': "#0E8074";
665
+ readonly 'status-success-subtle': "rgba(20, 184, 166, 0.12)";
666
+ readonly 'status-error': "#D14343";
667
+ readonly 'status-error-light': "#DA6868";
668
+ readonly 'status-error-dark': "#922E2E";
669
+ readonly 'status-error-subtle': "rgba(209, 67, 67, 0.12)";
670
+ readonly 'status-warning': "#FFB020";
671
+ readonly 'status-warning-light': "#FFBF4C";
672
+ readonly 'status-warning-dark': "#B27B16";
673
+ readonly 'status-warning-subtle': "rgba(255, 176, 32, 0.12)";
674
+ readonly 'status-info': "#2196F3";
675
+ readonly 'status-info-light': "#64B6F7";
676
+ readonly 'status-info-dark': "#0B79D0";
677
+ readonly 'status-info-subtle': "rgba(33, 150, 243, 0.12)";
678
+ readonly 'on-status-success': "#FFFFFF";
679
+ readonly 'on-status-error': "#FFFFFF";
680
+ readonly 'on-status-warning': "#FFFFFF";
681
+ readonly 'on-status-info': "#FFFFFF";
682
+ readonly 'result-improve': "#4caf50";
683
+ readonly 'result-improve-light': "rgba(76, 175, 80, 0.16)";
684
+ readonly 'result-improve-dark': "#248a24";
685
+ readonly 'result-degrade': "#ef5350";
686
+ readonly 'result-degrade-light': "rgba(239, 83, 80, 0.16)";
687
+ readonly 'result-degrade-dark': "#b30000";
688
+ readonly 'result-inconclusive': "#9E9A97";
689
+ readonly 'result-inconclusive-light': "rgba(158, 154, 151, 0.16)";
690
+ readonly 'result-neutral': "#9CA3AF";
691
+ readonly 'on-result-improve': "#FFFFFF";
692
+ readonly 'on-result-degrade': "#FFFFFF";
693
+ readonly 'on-result-inconclusive': "#FFFFFF";
694
+ readonly 'data-1': "#1965B0";
695
+ readonly 'data-2': "#4EB265";
696
+ readonly 'data-3': "#F7F056";
697
+ readonly 'data-4': "#DC050C";
698
+ readonly 'data-5': "#882E72";
699
+ readonly 'data-6': "#F4A736";
700
+ readonly 'data-7': "#7BAFDE";
701
+ readonly 'data-8': "#90C987";
702
+ readonly 'data-9': "#CAACCB";
703
+ readonly 'data-10': "#EE8026";
704
+ readonly 'text-primary': "#F3F4F6";
705
+ readonly 'text-secondary': "#9CA3AF";
706
+ readonly 'text-tertiary': "#6B7280";
707
+ readonly 'text-disabled': "rgba(255, 255, 255, 0.38)";
708
+ readonly 'text-inverse': "#111827";
709
+ readonly 'text-link': "#828DF8";
710
+ readonly 'text-link-hover': "#60A5FA";
711
+ readonly 'surface-base': "#161616";
712
+ readonly 'surface-elevated': "#191919";
713
+ readonly 'surface-raised': "#1C1C1C";
714
+ readonly 'surface-overlay': "#191919";
715
+ readonly 'surface-input': "#191919";
716
+ readonly 'background-base': "#101010";
717
+ readonly 'background-default': "#161616";
718
+ readonly 'background-subtle': "#1C1C1C";
719
+ readonly 'border-default': "#1F1F1F";
720
+ readonly 'border-subtle': "#1C1C1C";
721
+ readonly 'border-strong': "#2C2C2C";
722
+ readonly 'border-focus': "#828DF8";
723
+ readonly 'border-input': "#4B5563";
724
+ readonly 'border-input-hover': "#6B7280";
725
+ readonly 'border-input-focus': "#828DF8";
726
+ readonly 'border-input-error': "#EF4444";
727
+ readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
728
+ readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
729
+ readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
730
+ readonly 'interactive-selected': "rgba(255, 255, 255, 0.08)";
731
+ readonly 'interactive-disabled': "rgba(255, 255, 255, 0.12)";
732
+ readonly 'interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
733
+ readonly divider: "#1F1F1F";
734
+ readonly 'avatar-background': "#4B5563";
735
+ readonly 'avatar-text': "#FFFFFF";
736
+ };
737
+
738
+ /**
739
+ * Theme Configuration
740
+ *
741
+ * Maps semantic tokens to CSS custom properties for runtime theming.
742
+ * Dark mode is the default theme.
743
+ */
744
+
745
+ declare const lightThemeCSSVars: {
746
+ readonly '--color-brand-primary': "#FF7900";
747
+ readonly '--color-brand-primary-light': "#FF9630";
748
+ readonly '--color-brand-primary-dark': "#D0620C";
749
+ readonly '--color-brand-primary-subtle': "rgba(255, 121, 0, 0.08)";
750
+ readonly '--color-brand-secondary': "#406D87";
751
+ readonly '--color-brand-secondary-light': "#678498";
752
+ readonly '--color-brand-secondary-dark': "#32556D";
753
+ readonly '--color-brand-secondary-subtle': "rgba(64, 109, 135, 0.08)";
754
+ readonly '--color-on-brand-primary': "#FFFFFF";
755
+ readonly '--color-on-brand-secondary': "#FFFFFF";
756
+ readonly '--color-status-success': "#14B8A6";
757
+ readonly '--color-status-success-subtle': "#F0FDFA";
758
+ readonly '--color-status-error': "#D14343";
759
+ readonly '--color-status-error-subtle': "#FEF2F2";
760
+ readonly '--color-status-warning': "#FFB020";
761
+ readonly '--color-status-warning-subtle': "#FFFBEB";
762
+ readonly '--color-status-info': "#2196F3";
763
+ readonly '--color-status-info-subtle': "#F0F9FF";
764
+ readonly '--color-text-primary': "#121828";
765
+ readonly '--color-text-secondary': "#65748B";
766
+ readonly '--color-text-tertiary': "#9CA3AF";
767
+ readonly '--color-text-disabled': "rgba(55, 65, 81, 0.48)";
768
+ readonly '--color-text-inverse': "#FFFFFF";
769
+ readonly '--color-text-link': "#5048E5";
770
+ readonly '--color-surface-base': "#FFFFFF";
771
+ readonly '--color-surface-elevated': "#FAFAFA";
772
+ readonly '--color-surface-raised': "#F3F4F6";
773
+ readonly '--color-background-base': "#EBEBEB";
774
+ readonly '--color-background-default': "#FFFFFF";
775
+ readonly '--color-background-subtle': "#FAFAFA";
776
+ readonly '--color-border-default': "#E8E9EB";
777
+ readonly '--color-border-subtle': "#F3F4F6";
778
+ readonly '--color-border-strong': "#D1D5DB";
779
+ readonly '--color-border-focus': "#5048E5";
780
+ readonly '--color-interactive-hover': "rgba(55, 65, 81, 0.04)";
781
+ readonly '--color-interactive-focus': "rgba(55, 65, 81, 0.12)";
782
+ readonly '--color-interactive-active': "rgba(55, 65, 81, 0.16)";
783
+ readonly '--color-interactive-selected': "rgba(55, 65, 81, 0.08)";
784
+ readonly '--color-interactive-disabled': "rgba(55, 65, 81, 0.12)";
785
+ readonly '--color-divider': "#E8E9EB";
786
+ };
787
+ declare const darkThemeCSSVars: {
788
+ readonly '--color-brand-primary': "#FF7900";
789
+ readonly '--color-brand-primary-light': "#FF9630";
790
+ readonly '--color-brand-primary-dark': "#D0620C";
791
+ readonly '--color-brand-primary-subtle': "rgba(255, 121, 0, 0.12)";
792
+ readonly '--color-brand-secondary': "#406D87";
793
+ readonly '--color-brand-secondary-light': "#678498";
794
+ readonly '--color-brand-secondary-dark': "#32556D";
795
+ readonly '--color-brand-secondary-subtle': "rgba(64, 109, 135, 0.12)";
796
+ readonly '--color-on-brand-primary': "#FFFFFF";
797
+ readonly '--color-on-brand-secondary': "#FFFFFF";
798
+ readonly '--color-status-success': "#14B8A6";
799
+ readonly '--color-status-success-subtle': "rgba(20, 184, 166, 0.12)";
800
+ readonly '--color-status-error': "#D14343";
801
+ readonly '--color-status-error-subtle': "rgba(209, 67, 67, 0.12)";
802
+ readonly '--color-status-warning': "#FFB020";
803
+ readonly '--color-status-warning-subtle': "rgba(255, 176, 32, 0.12)";
804
+ readonly '--color-status-info': "#2196F3";
805
+ readonly '--color-status-info-subtle': "rgba(33, 150, 243, 0.12)";
806
+ readonly '--color-text-primary': "#F3F4F6";
807
+ readonly '--color-text-secondary': "#9CA3AF";
808
+ readonly '--color-text-tertiary': "#6B7280";
809
+ readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
810
+ readonly '--color-text-inverse': "#111827";
811
+ readonly '--color-text-link': "#828DF8";
812
+ readonly '--color-surface-base': "#161616";
813
+ readonly '--color-surface-elevated': "#191919";
814
+ readonly '--color-surface-raised': "#1C1C1C";
815
+ readonly '--color-background-base': "#101010";
816
+ readonly '--color-background-default': "#161616";
817
+ readonly '--color-background-subtle': "#1C1C1C";
818
+ readonly '--color-border-default': "#1F1F1F";
819
+ readonly '--color-border-subtle': "#1C1C1C";
820
+ readonly '--color-border-strong': "#2C2C2C";
821
+ readonly '--color-border-focus': "#828DF8";
822
+ readonly '--color-interactive-hover': "rgba(255, 255, 255, 0.04)";
823
+ readonly '--color-interactive-focus': "rgba(255, 255, 255, 0.12)";
824
+ readonly '--color-interactive-active': "rgba(255, 255, 255, 0.16)";
825
+ readonly '--color-interactive-selected': "rgba(255, 255, 255, 0.08)";
826
+ readonly '--color-interactive-disabled': "rgba(255, 255, 255, 0.12)";
827
+ readonly '--color-divider': "#1F1F1F";
828
+ };
829
+ declare function getThemeCSSVars(mode: ThemeMode): {
830
+ readonly '--color-brand-primary': "#FF7900";
831
+ readonly '--color-brand-primary-light': "#FF9630";
832
+ readonly '--color-brand-primary-dark': "#D0620C";
833
+ readonly '--color-brand-primary-subtle': "rgba(255, 121, 0, 0.08)";
834
+ readonly '--color-brand-secondary': "#406D87";
835
+ readonly '--color-brand-secondary-light': "#678498";
836
+ readonly '--color-brand-secondary-dark': "#32556D";
837
+ readonly '--color-brand-secondary-subtle': "rgba(64, 109, 135, 0.08)";
838
+ readonly '--color-on-brand-primary': "#FFFFFF";
839
+ readonly '--color-on-brand-secondary': "#FFFFFF";
840
+ readonly '--color-status-success': "#14B8A6";
841
+ readonly '--color-status-success-subtle': "#F0FDFA";
842
+ readonly '--color-status-error': "#D14343";
843
+ readonly '--color-status-error-subtle': "#FEF2F2";
844
+ readonly '--color-status-warning': "#FFB020";
845
+ readonly '--color-status-warning-subtle': "#FFFBEB";
846
+ readonly '--color-status-info': "#2196F3";
847
+ readonly '--color-status-info-subtle': "#F0F9FF";
848
+ readonly '--color-text-primary': "#121828";
849
+ readonly '--color-text-secondary': "#65748B";
850
+ readonly '--color-text-tertiary': "#9CA3AF";
851
+ readonly '--color-text-disabled': "rgba(55, 65, 81, 0.48)";
852
+ readonly '--color-text-inverse': "#FFFFFF";
853
+ readonly '--color-text-link': "#5048E5";
854
+ readonly '--color-surface-base': "#FFFFFF";
855
+ readonly '--color-surface-elevated': "#FAFAFA";
856
+ readonly '--color-surface-raised': "#F3F4F6";
857
+ readonly '--color-background-base': "#EBEBEB";
858
+ readonly '--color-background-default': "#FFFFFF";
859
+ readonly '--color-background-subtle': "#FAFAFA";
860
+ readonly '--color-border-default': "#E8E9EB";
861
+ readonly '--color-border-subtle': "#F3F4F6";
862
+ readonly '--color-border-strong': "#D1D5DB";
863
+ readonly '--color-border-focus': "#5048E5";
864
+ readonly '--color-interactive-hover': "rgba(55, 65, 81, 0.04)";
865
+ readonly '--color-interactive-focus': "rgba(55, 65, 81, 0.12)";
866
+ readonly '--color-interactive-active': "rgba(55, 65, 81, 0.16)";
867
+ readonly '--color-interactive-selected': "rgba(55, 65, 81, 0.08)";
868
+ readonly '--color-interactive-disabled': "rgba(55, 65, 81, 0.12)";
869
+ readonly '--color-divider': "#E8E9EB";
870
+ } | {
871
+ readonly '--color-brand-primary': "#FF7900";
872
+ readonly '--color-brand-primary-light': "#FF9630";
873
+ readonly '--color-brand-primary-dark': "#D0620C";
874
+ readonly '--color-brand-primary-subtle': "rgba(255, 121, 0, 0.12)";
875
+ readonly '--color-brand-secondary': "#406D87";
876
+ readonly '--color-brand-secondary-light': "#678498";
877
+ readonly '--color-brand-secondary-dark': "#32556D";
878
+ readonly '--color-brand-secondary-subtle': "rgba(64, 109, 135, 0.12)";
879
+ readonly '--color-on-brand-primary': "#FFFFFF";
880
+ readonly '--color-on-brand-secondary': "#FFFFFF";
881
+ readonly '--color-status-success': "#14B8A6";
882
+ readonly '--color-status-success-subtle': "rgba(20, 184, 166, 0.12)";
883
+ readonly '--color-status-error': "#D14343";
884
+ readonly '--color-status-error-subtle': "rgba(209, 67, 67, 0.12)";
885
+ readonly '--color-status-warning': "#FFB020";
886
+ readonly '--color-status-warning-subtle': "rgba(255, 176, 32, 0.12)";
887
+ readonly '--color-status-info': "#2196F3";
888
+ readonly '--color-status-info-subtle': "rgba(33, 150, 243, 0.12)";
889
+ readonly '--color-text-primary': "#F3F4F6";
890
+ readonly '--color-text-secondary': "#9CA3AF";
891
+ readonly '--color-text-tertiary': "#6B7280";
892
+ readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
893
+ readonly '--color-text-inverse': "#111827";
894
+ readonly '--color-text-link': "#828DF8";
895
+ readonly '--color-surface-base': "#161616";
896
+ readonly '--color-surface-elevated': "#191919";
897
+ readonly '--color-surface-raised': "#1C1C1C";
898
+ readonly '--color-background-base': "#101010";
899
+ readonly '--color-background-default': "#161616";
900
+ readonly '--color-background-subtle': "#1C1C1C";
901
+ readonly '--color-border-default': "#1F1F1F";
902
+ readonly '--color-border-subtle': "#1C1C1C";
903
+ readonly '--color-border-strong': "#2C2C2C";
904
+ readonly '--color-border-focus': "#828DF8";
905
+ readonly '--color-interactive-hover': "rgba(255, 255, 255, 0.04)";
906
+ readonly '--color-interactive-focus': "rgba(255, 255, 255, 0.12)";
907
+ readonly '--color-interactive-active': "rgba(255, 255, 255, 0.16)";
908
+ readonly '--color-interactive-selected': "rgba(255, 255, 255, 0.08)";
909
+ readonly '--color-interactive-disabled': "rgba(255, 255, 255, 0.12)";
910
+ readonly '--color-divider': "#1F1F1F";
911
+ };
912
+ declare const gluestackConfig: {
913
+ readonly tokens: {
914
+ readonly colors: {
915
+ readonly primary500: "var(--color-brand-primary)";
916
+ readonly primary600: "var(--color-brand-primary-dark)";
917
+ readonly primary400: "var(--color-brand-primary-light)";
918
+ readonly secondary500: "var(--color-brand-secondary)";
919
+ readonly secondary600: "var(--color-brand-secondary-dark)";
920
+ readonly secondary400: "var(--color-brand-secondary-light)";
921
+ readonly success500: "var(--color-status-success)";
922
+ readonly error500: "var(--color-status-error)";
923
+ readonly warning500: "var(--color-status-warning)";
924
+ readonly info500: "var(--color-status-info)";
925
+ readonly textLight: "var(--color-text-primary)";
926
+ readonly textDark: "var(--color-text-inverse)";
927
+ readonly backgroundLight: "var(--color-background-default)";
928
+ readonly backgroundDark: "var(--color-surface-base)";
929
+ };
930
+ readonly space: {
931
+ readonly '0': 0;
932
+ readonly '1': 4;
933
+ readonly '2': 8;
934
+ readonly '3': 12;
935
+ readonly '4': 16;
936
+ readonly '5': 20;
937
+ readonly '6': 24;
938
+ readonly '8': 32;
939
+ readonly '10': 40;
940
+ readonly '12': 48;
941
+ readonly '16': 64;
942
+ readonly '20': 80;
943
+ readonly '24': 96;
944
+ };
945
+ readonly radii: {
946
+ readonly none: 0;
947
+ readonly sm: 4;
948
+ readonly md: 8;
949
+ readonly lg: 12;
950
+ readonly xl: 16;
951
+ readonly '2xl': 24;
952
+ readonly full: 9999;
953
+ };
954
+ readonly fontSizes: {
955
+ readonly xs: 12;
956
+ readonly sm: 14;
957
+ readonly md: 16;
958
+ readonly lg: 18;
959
+ readonly xl: 20;
960
+ readonly '2xl': 24;
961
+ readonly '3xl': 30;
962
+ readonly '4xl': 36;
963
+ readonly '5xl': 48;
964
+ };
965
+ };
966
+ readonly aliases: {
967
+ readonly bg: "backgroundColor";
968
+ readonly p: "padding";
969
+ readonly px: "paddingHorizontal";
970
+ readonly py: "paddingVertical";
971
+ readonly m: "margin";
972
+ readonly mx: "marginHorizontal";
973
+ readonly my: "marginVertical";
974
+ readonly h: "height";
975
+ readonly w: "width";
976
+ readonly rounded: "borderRadius";
977
+ };
978
+ };
979
+ type ThemeConfig = typeof gluestackConfig;
980
+
981
+ /**
982
+ * Neumorphic Shadow Utilities
983
+ *
984
+ * Neumorphism creates soft, extruded UI using dual opposing shadows.
985
+ * - Light source assumed from top-left
986
+ * - Raised elements: dark shadow bottom-right, light highlight top-left
987
+ * - Pressed elements: inverted with `inset` shadows
988
+ */
989
+
990
+ /**
991
+ * Parse a hex color to RGB values (0-255).
992
+ * Supports both #RGB and #RRGGBB formats.
993
+ */
994
+ declare function hexToRgb(hex: string): {
995
+ r: number;
996
+ g: number;
997
+ b: number;
998
+ } | null;
999
+ /**
1000
+ * Convert RGB (0-255) to HSV (h: 0-360, s: 0-1, v: 0-1).
1001
+ */
1002
+ declare function rgbToHsv(r: number, g: number, b: number): {
1003
+ h: number;
1004
+ s: number;
1005
+ v: number;
1006
+ };
1007
+ /**
1008
+ * Convert HSV (h: 0-360, s: 0-1, v: 0-1) to RGB (0-255).
1009
+ */
1010
+ declare function hsvToRgb(h: number, s: number, v: number): {
1011
+ r: number;
1012
+ g: number;
1013
+ b: number;
1014
+ };
1015
+ /**
1016
+ * Convert RGB values to hex string.
1017
+ */
1018
+ declare function rgbToHex(r: number, g: number, b: number): string;
1019
+ /**
1020
+ * Lighten a color by increasing its HSV Value component.
1021
+ *
1022
+ * @param hex - The hex color to lighten
1023
+ * @param amount - Amount to increase V by (0-1)
1024
+ */
1025
+ declare function lighten(hex: string, amount?: number): string;
1026
+ /**
1027
+ * Darken a color by decreasing its HSV Value component.
1028
+ *
1029
+ * @param hex - The hex color to darken
1030
+ * @param amount - Amount to decrease V by (0-1)
1031
+ */
1032
+ declare function darken(hex: string, amount?: number): string;
1033
+ /**
1034
+ * Get hover colors for a button based on its background color.
1035
+ * Automatically adapts intensity based on the color's luminance.
1036
+ *
1037
+ * @param bgColor - The button's background color (hex)
1038
+ * @param intensity - How strong the hover effect should be ('subtle' | 'medium' | 'strong')
1039
+ */
1040
+ declare function getHoverColors(bgColor: string, intensity?: 'subtle' | 'medium' | 'strong'): {
1041
+ raised: string;
1042
+ pressed: string;
1043
+ };
1044
+ /**
1045
+ * Check if a color is considered "dark" (for choosing text color).
1046
+ * Uses HSV Value component for simplicity.
1047
+ */
1048
+ declare function isDark(hex: string): boolean;
1049
+ /**
1050
+ * Shadow configuration for different surface colors.
1051
+ * Each surface needs calibrated light/dark shadow colors.
1052
+ *
1053
+ * - dark: soft shadow for depth (bottom-right)
1054
+ * - light: sharp rim highlight (top-left) - higher opacity for crisp edge
1055
+ * - darker: deeper shadow for pressed/inset states
1056
+ */
1057
+ declare const shadowColors: {
1058
+ charcoal: {
1059
+ dark: string;
1060
+ light: string;
1061
+ darker: string;
1062
+ };
1063
+ neutralDark: {
1064
+ dark: string;
1065
+ light: string;
1066
+ darker: string;
1067
+ };
1068
+ neutralLight: {
1069
+ dark: string;
1070
+ light: string;
1071
+ darker: string;
1072
+ };
1073
+ };
1074
+ type ShadowIntensity = 'subtle' | 'medium' | 'strong';
1075
+ type ShadowSurface = keyof typeof shadowColors;
1076
+ /**
1077
+ * Creates a raised (elevated) neumorphic shadow.
1078
+ * Element appears to float above the surface.
1079
+ *
1080
+ * Uses a soft dark shadow (bottom-right) and a sharp rim light (top-left).
1081
+ */
1082
+ declare function createRaisedShadow(surface?: ShadowSurface, intensity?: ShadowIntensity): ViewStyle;
1083
+ /**
1084
+ * Creates a pressed (inset) neumorphic shadow.
1085
+ * Element appears pushed into the surface.
1086
+ *
1087
+ * Uses a soft dark inset shadow (top-left) and a thin sharp rim light (bottom-right).
1088
+ */
1089
+ declare function createPressedShadow(surface?: ShadowSurface, intensity?: ShadowIntensity): ViewStyle;
1090
+ /**
1091
+ * Creates a flat (no shadow) style for hover states.
1092
+ */
1093
+ declare function createFlatShadow(): ViewStyle;
1094
+ /**
1095
+ * Creates a hover shadow for raised elements.
1096
+ * Reduces shadow depth but keeps a subtle rim light to maintain visual boundary.
1097
+ */
1098
+ declare function createRaisedHoverShadow(surface?: ShadowSurface, intensity?: ShadowIntensity): ViewStyle;
1099
+ /**
1100
+ * Creates a hover shadow for pressed elements.
1101
+ * Reduces shadow depth but keeps a subtle rim light to maintain visual boundary.
1102
+ */
1103
+ declare function createPressedHoverShadow(surface?: ShadowSurface, intensity?: ShadowIntensity): ViewStyle;
1104
+ /**
1105
+ * Pre-built shadow presets for common use cases.
1106
+ */
1107
+ declare const neumorphicShadows: {
1108
+ charcoal: {
1109
+ raised: {
1110
+ subtle: ViewStyle;
1111
+ medium: ViewStyle;
1112
+ strong: ViewStyle;
1113
+ };
1114
+ raisedHover: {
1115
+ subtle: ViewStyle;
1116
+ medium: ViewStyle;
1117
+ strong: ViewStyle;
1118
+ };
1119
+ pressed: {
1120
+ subtle: ViewStyle;
1121
+ medium: ViewStyle;
1122
+ strong: ViewStyle;
1123
+ };
1124
+ pressedHover: {
1125
+ subtle: ViewStyle;
1126
+ medium: ViewStyle;
1127
+ strong: ViewStyle;
1128
+ };
1129
+ flat: ViewStyle;
1130
+ };
1131
+ neutralDark: {
1132
+ raised: {
1133
+ subtle: ViewStyle;
1134
+ medium: ViewStyle;
1135
+ strong: ViewStyle;
1136
+ };
1137
+ raisedHover: {
1138
+ subtle: ViewStyle;
1139
+ medium: ViewStyle;
1140
+ strong: ViewStyle;
1141
+ };
1142
+ pressed: {
1143
+ subtle: ViewStyle;
1144
+ medium: ViewStyle;
1145
+ strong: ViewStyle;
1146
+ };
1147
+ pressedHover: {
1148
+ subtle: ViewStyle;
1149
+ medium: ViewStyle;
1150
+ strong: ViewStyle;
1151
+ };
1152
+ flat: ViewStyle;
1153
+ };
1154
+ neutralLight: {
1155
+ raised: {
1156
+ subtle: ViewStyle;
1157
+ medium: ViewStyle;
1158
+ strong: ViewStyle;
1159
+ };
1160
+ raisedHover: {
1161
+ subtle: ViewStyle;
1162
+ medium: ViewStyle;
1163
+ strong: ViewStyle;
1164
+ };
1165
+ pressed: {
1166
+ subtle: ViewStyle;
1167
+ medium: ViewStyle;
1168
+ strong: ViewStyle;
1169
+ };
1170
+ pressedHover: {
1171
+ subtle: ViewStyle;
1172
+ medium: ViewStyle;
1173
+ strong: ViewStyle;
1174
+ };
1175
+ flat: ViewStyle;
1176
+ };
1177
+ };
1178
+
1179
+ /**
1180
+ * Elevation System
1181
+ *
1182
+ * A unified depth system where each elevation level corresponds to:
1183
+ * - Calculated surface color (derived from base using lighten)
1184
+ * - Shadow intensity and style (raised/pressed)
1185
+ * - Dynamically calculated shadow colors (derived from surface color)
1186
+ * - Semantic name for reference
1187
+ *
1188
+ * Elevation range: -2 (deep inset) to +5 (floating overlay)
1189
+ *
1190
+ * Negative elevations: Inset/pressed elements (sunken into surface)
1191
+ * Zero elevation: Base surface (background/page level)
1192
+ * Positive elevations: Raised elements (floating above surface)
1193
+ *
1194
+ * All colors are calculated dynamically from a base surface color,
1195
+ * allowing for custom surfaces and consistent color relationships.
1196
+ *
1197
+ * Lighting Model: Light source from upper-right corner
1198
+ * - Raised elements are always lighter than base (consistent across themes)
1199
+ * - Base colors must allow sufficient lightening in both themes
1200
+ */
1201
+
1202
+ type ElevationLevel = -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5;
1203
+ interface ElevationConfig {
1204
+ /** Semantic name for this elevation level */
1205
+ name: string;
1206
+ /** Amount to lighten base color (0-1) */
1207
+ colorAdjustment: number;
1208
+ /** Shadow intensity */
1209
+ shadowIntensity: 'subtle' | 'medium' | 'strong';
1210
+ /** Shadow style: raised (floating) or pressed (inset) */
1211
+ shadowStyle: 'raised' | 'pressed';
1212
+ /** Description of use case */
1213
+ description: string;
1214
+ }
1215
+ declare const elevationSystem: Record<ElevationLevel, ElevationConfig>;
1216
+ /**
1217
+ * Get elevation configuration for a given level
1218
+ */
1219
+ declare function getElevationConfig(level: ElevationLevel): ElevationConfig;
1220
+ /**
1221
+ * Calculate surface color for an elevation level from a base color.
1222
+ * Results are cached to avoid redundant calculations.
1223
+ *
1224
+ * @param baseColor - Base surface color (hex)
1225
+ * @param level - Elevation level
1226
+ * @param theme - Current theme ('light' or 'dark')
1227
+ * @returns Calculated surface color (hex)
1228
+ */
1229
+ declare function getElevationSurface(baseColor: string, level: ElevationLevel, theme: 'light' | 'dark'): string;
1230
+ /**
1231
+ * Get shadow style for an elevation level, calculated dynamically from surface color.
1232
+ * Results are cached to avoid redundant calculations.
1233
+ *
1234
+ * @param baseColor - Base surface color (hex)
1235
+ * @param level - Elevation level
1236
+ * @param theme - Current theme ('light' or 'dark')
1237
+ * @param isHovered - Whether element is hovered
1238
+ * @returns ViewStyle with shadow properties
1239
+ */
1240
+ declare function getElevationShadow(baseColor: string, level: ElevationLevel, theme: 'light' | 'dark', isHovered?: boolean): ViewStyle;
1241
+ /**
1242
+ * Get base surface color from theme.
1243
+ * This is the foundation color that all elevations are calculated from.
1244
+ *
1245
+ * IMPORTANT: Base colors must be chosen to allow sufficient lightening.
1246
+ *
1247
+ * **Light Mode**: Cannot use `#FFFFFF` (white) - cannot lighten white!
1248
+ * - Use `#F3F4F6` (neutral[100]) - can lighten to `#FAFAFA` → `#FFFFFF`
1249
+ * - This allows raised elevations to be lighter (closer to white)
1250
+ *
1251
+ * **Dark Mode**: Need lighter base to allow sufficient lightening
1252
+ * - Use `#191919` (charcoal[600]) - allows lightening to `#2A2A2A` at max elevation
1253
+ *
1254
+ * Can be overridden to use custom base colors for special cases.
1255
+ */
1256
+ declare function getBaseSurfaceColor(theme: 'light' | 'dark'): string;
1257
+ /**
1258
+ * Component-specific elevation ranges
1259
+ * Defines which elevation levels each component type can use
1260
+ */
1261
+ declare const componentElevationRanges: {
1262
+ readonly button: {
1263
+ readonly allowed: readonly [2];
1264
+ readonly default: 2;
1265
+ readonly hover: 3;
1266
+ };
1267
+ readonly card: {
1268
+ readonly allowed: readonly [1, 2, 3];
1269
+ readonly default: 2;
1270
+ readonly hover: 3;
1271
+ };
1272
+ readonly input: {
1273
+ readonly allowed: readonly [-2, -1, 0];
1274
+ readonly default: -1;
1275
+ };
1276
+ readonly overlay: {
1277
+ readonly allowed: readonly [4, 5];
1278
+ readonly default: 4;
1279
+ };
1280
+ };
1281
+ type ComponentType = keyof typeof componentElevationRanges;
1282
+ /**
1283
+ * Validate and clamp elevation to component's allowed range
1284
+ */
1285
+ declare function getValidatedElevation(component: ComponentType, requested: ElevationLevel): ElevationLevel;
1286
+
1287
+ export { type ComponentType, type ElevationConfig, type ElevationLevel, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, buttonSizes, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, discreteRainbow, elevationSystem, getBaseSurfaceColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getHoverColors, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isDark, lightThemeCSSVars, lighten, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, shadowColors };