@projectdiscoveryio/design-system 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1497 @@
1
+ import React, { Component, ReactNode } from 'react';
2
+ import * as LucideIcons from 'lucide-react';
3
+ export { LucideIcons as Icons };
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+
6
+ /**
7
+ * Design Tokens - Single Source of Truth
8
+ *
9
+ * This file contains all design tokens in one place:
10
+ * - Base color primitives
11
+ * - Typography, spacing, radius, shadows, z-index
12
+ * - Semantic token mappings (derived from base tokens)
13
+ *
14
+ * Everything else (CSS variables, theme objects) is generated from this file.
15
+ */
16
+ declare const neutral: {
17
+ readonly 100: "#FFFFFF";
18
+ readonly 200: "#EDEDED";
19
+ readonly 300: "#DFDFE2";
20
+ readonly 400: "#BEBEC1";
21
+ readonly 500: "#7E7E8B";
22
+ readonly 600: "#60606C";
23
+ readonly 700: "#4E4E5A";
24
+ readonly 800: "#2F2F37";
25
+ readonly 900: "#17171C";
26
+ readonly 950: "#09090B";
27
+ readonly 1000: "#FAFAFA";
28
+ };
29
+ declare const blue: {
30
+ readonly 100: "#EBF1FF";
31
+ readonly 200: "#C2D4FF";
32
+ readonly 300: "#99B7FF";
33
+ readonly 400: "#709AFF";
34
+ readonly 500: "#3772FF";
35
+ readonly 600: "#004BFF";
36
+ readonly 700: "#003FD6";
37
+ readonly 800: "#002680";
38
+ readonly 900: "#001E66";
39
+ readonly 950: "#00123D";
40
+ };
41
+ declare const orange: {
42
+ readonly 100: "#FFF3EB";
43
+ readonly 200: "#FFE1CC";
44
+ readonly 300: "#FFC9A3";
45
+ readonly 400: "#EC9C64";
46
+ readonly 500: "#FF6800";
47
+ readonly 600: "#D65700";
48
+ readonly 700: "#AD4700";
49
+ readonly 800: "#7A3200";
50
+ readonly 900: "#5C2500";
51
+ readonly 950: "#331500";
52
+ };
53
+ declare const red: {
54
+ readonly 100: "#FDF2F4";
55
+ readonly 200: "#FADBE1";
56
+ readonly 300: "#F6C1CA";
57
+ readonly 400: "#E15C5C";
58
+ readonly 500: "#E12D4E";
59
+ readonly 600: "#C41C3B";
60
+ readonly 700: "#A11730";
61
+ readonly 800: "#7D1225";
62
+ readonly 900: "#4C0B17";
63
+ readonly 950: "#2D060D";
64
+ };
65
+ declare const green: {
66
+ readonly 100: "#E0FFEC";
67
+ readonly 200: "#BDFFD5";
68
+ readonly 300: "#8AFFB5";
69
+ readonly 400: "#5CFF98";
70
+ readonly 500: "#09FF63";
71
+ readonly 600: "#00E052";
72
+ readonly 700: "#00B241";
73
+ readonly 800: "#008A32";
74
+ readonly 900: "#006625";
75
+ readonly 950: "#00471A";
76
+ };
77
+ declare const yellow: {
78
+ readonly 100: "#FFF4E0";
79
+ readonly 200: "#FFE8C2";
80
+ readonly 300: "#FFD999";
81
+ readonly 400: "#FFCA70";
82
+ readonly 500: "#FFAD22";
83
+ readonly 600: "#F09700";
84
+ readonly 700: "#D68700";
85
+ readonly 800: "#7A4D00";
86
+ readonly 900: "#5C3A00";
87
+ readonly 950: "#3D2600";
88
+ };
89
+ declare const colorPrimitives: {
90
+ readonly neutral: {
91
+ readonly 100: "#FFFFFF";
92
+ readonly 200: "#EDEDED";
93
+ readonly 300: "#DFDFE2";
94
+ readonly 400: "#BEBEC1";
95
+ readonly 500: "#7E7E8B";
96
+ readonly 600: "#60606C";
97
+ readonly 700: "#4E4E5A";
98
+ readonly 800: "#2F2F37";
99
+ readonly 900: "#17171C";
100
+ readonly 950: "#09090B";
101
+ readonly 1000: "#FAFAFA";
102
+ };
103
+ readonly blue: {
104
+ readonly 100: "#EBF1FF";
105
+ readonly 200: "#C2D4FF";
106
+ readonly 300: "#99B7FF";
107
+ readonly 400: "#709AFF";
108
+ readonly 500: "#3772FF";
109
+ readonly 600: "#004BFF";
110
+ readonly 700: "#003FD6";
111
+ readonly 800: "#002680";
112
+ readonly 900: "#001E66";
113
+ readonly 950: "#00123D";
114
+ };
115
+ readonly orange: {
116
+ readonly 100: "#FFF3EB";
117
+ readonly 200: "#FFE1CC";
118
+ readonly 300: "#FFC9A3";
119
+ readonly 400: "#EC9C64";
120
+ readonly 500: "#FF6800";
121
+ readonly 600: "#D65700";
122
+ readonly 700: "#AD4700";
123
+ readonly 800: "#7A3200";
124
+ readonly 900: "#5C2500";
125
+ readonly 950: "#331500";
126
+ };
127
+ readonly red: {
128
+ readonly 100: "#FDF2F4";
129
+ readonly 200: "#FADBE1";
130
+ readonly 300: "#F6C1CA";
131
+ readonly 400: "#E15C5C";
132
+ readonly 500: "#E12D4E";
133
+ readonly 600: "#C41C3B";
134
+ readonly 700: "#A11730";
135
+ readonly 800: "#7D1225";
136
+ readonly 900: "#4C0B17";
137
+ readonly 950: "#2D060D";
138
+ };
139
+ readonly green: {
140
+ readonly 100: "#E0FFEC";
141
+ readonly 200: "#BDFFD5";
142
+ readonly 300: "#8AFFB5";
143
+ readonly 400: "#5CFF98";
144
+ readonly 500: "#09FF63";
145
+ readonly 600: "#00E052";
146
+ readonly 700: "#00B241";
147
+ readonly 800: "#008A32";
148
+ readonly 900: "#006625";
149
+ readonly 950: "#00471A";
150
+ };
151
+ readonly yellow: {
152
+ readonly 100: "#FFF4E0";
153
+ readonly 200: "#FFE8C2";
154
+ readonly 300: "#FFD999";
155
+ readonly 400: "#FFCA70";
156
+ readonly 500: "#FFAD22";
157
+ readonly 600: "#F09700";
158
+ readonly 700: "#D68700";
159
+ readonly 800: "#7A4D00";
160
+ readonly 900: "#5C3A00";
161
+ readonly 950: "#3D2600";
162
+ };
163
+ };
164
+ declare const typography: {
165
+ readonly fontFamily: {
166
+ readonly sans: readonly ["Geist", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "sans-serif"];
167
+ readonly mono: readonly ["Geist Mono", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", "monospace"];
168
+ };
169
+ readonly fontSize: {
170
+ readonly xs: "0.75em";
171
+ readonly sm: "0.875em";
172
+ readonly base: "1em";
173
+ readonly lg: "1.125em";
174
+ readonly xl: "1.25em";
175
+ readonly '2xl': "1.5em";
176
+ readonly '3xl': "1.875em";
177
+ readonly '4xl': "2.25em";
178
+ readonly '5xl': "3em";
179
+ readonly '6xl': "3.75em";
180
+ readonly '7xl': "4.5em";
181
+ readonly '8xl': "6em";
182
+ readonly '9xl': "8em";
183
+ };
184
+ readonly fontWeight: {
185
+ readonly normal: "400";
186
+ readonly medium: "500";
187
+ readonly semibold: "600";
188
+ readonly bold: "700";
189
+ };
190
+ readonly lineHeight: {
191
+ readonly tight: "1.25";
192
+ readonly normal: "1.5";
193
+ readonly relaxed: "1.75";
194
+ };
195
+ readonly fontSizeLineHeight: {
196
+ readonly xs: "1em";
197
+ readonly sm: "1.25em";
198
+ readonly base: "1.5em";
199
+ readonly lg: "1.75em";
200
+ readonly xl: "1.75em";
201
+ readonly '2xl': "2em";
202
+ readonly '3xl': "2.25em";
203
+ readonly '4xl': "2.5em";
204
+ readonly '5xl': "1";
205
+ readonly '6xl': "1";
206
+ readonly '7xl': "1";
207
+ readonly '8xl': "1";
208
+ readonly '9xl': "1";
209
+ };
210
+ readonly letterSpacing: {
211
+ readonly tight: "-0.025em";
212
+ readonly normal: "0";
213
+ readonly wide: "0.025em";
214
+ readonly wider: "0.05em";
215
+ readonly widest: "0.1em";
216
+ readonly button: "0.00833em";
217
+ };
218
+ };
219
+ declare const spacing: {
220
+ readonly 0: "0em";
221
+ readonly 1: "0.25em";
222
+ readonly 2: "0.5em";
223
+ readonly 3: "0.75em";
224
+ readonly 4: "1em";
225
+ readonly 5: "1.25em";
226
+ readonly 6: "1.5em";
227
+ readonly 7: "1.75em";
228
+ readonly 8: "2em";
229
+ readonly 9: "2.25em";
230
+ readonly 10: "2.5em";
231
+ };
232
+ declare const radius: {
233
+ readonly none: "0";
234
+ readonly sm: "0.125em";
235
+ readonly base: "0.25em";
236
+ readonly md: "0.375em";
237
+ readonly lg: "0.5em";
238
+ readonly xl: "0.75em";
239
+ readonly '2xl': "1em";
240
+ readonly '3xl': "1.5em";
241
+ readonly full: "9999px";
242
+ readonly button: "0.5em";
243
+ };
244
+ declare const shadows: {
245
+ readonly sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)";
246
+ readonly base: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)";
247
+ readonly md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
248
+ readonly lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)";
249
+ readonly xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)";
250
+ readonly '2xl': "0 25px 50px -12px rgb(0 0 0 / 0.25)";
251
+ readonly inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)";
252
+ readonly none: "none";
253
+ };
254
+ declare const zIndex: {
255
+ readonly base: 0;
256
+ readonly dropdown: 1000;
257
+ readonly sticky: 1020;
258
+ readonly fixed: 1030;
259
+ readonly modalBackdrop: 1040;
260
+ readonly modal: 1050;
261
+ readonly popover: 1060;
262
+ readonly tooltip: 1070;
263
+ };
264
+ declare const button: {
265
+ readonly padding: {
266
+ readonly sm: {
267
+ readonly vertical: "0.5em";
268
+ readonly horizontal: "0.75em";
269
+ };
270
+ readonly md: {
271
+ readonly vertical: "0.625em";
272
+ readonly horizontal: "1em";
273
+ };
274
+ readonly lg: {
275
+ readonly vertical: "0.75em";
276
+ readonly horizontal: "1.25em";
277
+ };
278
+ };
279
+ readonly gap: "0.5em";
280
+ readonly lineHeight: {
281
+ readonly sm: "1.333em";
282
+ readonly md: "1.333em";
283
+ readonly lg: "1.333em";
284
+ };
285
+ readonly letterSpacing: "0.00833em";
286
+ };
287
+ /**
288
+ * Semantic tokens map base color primitives to meaningful names
289
+ * that change based on theme mode (light/dark)
290
+ */
291
+ declare const semanticTokens: {
292
+ readonly light: {
293
+ readonly border: {
294
+ readonly primary: "#BEBEC1";
295
+ readonly secondary: "#DFDFE2";
296
+ readonly subtle: "#DFDFE2";
297
+ readonly invert: "#09090B";
298
+ readonly onColor: "#FFFFFF";
299
+ readonly blue: "#3772FF";
300
+ readonly blueSubtle: "#99B7FF";
301
+ readonly blueOnHover: "#003FD6";
302
+ readonly red: "#C41C3B";
303
+ readonly redSubtle: "#F6C1CA";
304
+ readonly redOnHover: "#A11730";
305
+ readonly orange: "#D65700";
306
+ readonly orangeSubtle: "#FFC9A3";
307
+ readonly orangeOnHover: "#AD4700";
308
+ readonly yellow: "#F09700";
309
+ readonly yellowSubtle: "#FFD999";
310
+ readonly yellowOnHover: "#D68700";
311
+ readonly green: "#00E052";
312
+ readonly greenSubtle: "#8AFFB5";
313
+ readonly greenOnHover: "#00B241";
314
+ };
315
+ readonly content: {
316
+ readonly primary: "#17171C";
317
+ readonly secondary: "#60606C";
318
+ readonly subtle: "#BEBEC1";
319
+ readonly onColor: "#FFFFFF";
320
+ readonly alwaysWhite: "#FFFFFF";
321
+ readonly alwaysBlack: "#09090B";
322
+ readonly onColorInverse: "#09090B";
323
+ readonly blue: "#3772FF";
324
+ readonly blueDisabled: "#709AFF";
325
+ readonly blueOnHover: "#004BFF";
326
+ readonly green: "#00B241";
327
+ readonly greenDisabled: "#5CFF98";
328
+ readonly greenOnHover: "#00E052";
329
+ readonly red: "#C41C3B";
330
+ readonly redDisabled: "#E15C5C";
331
+ readonly redOnHover: "#A11730";
332
+ readonly orange: "#D65700";
333
+ readonly orangeDisabled: "#EC9C64";
334
+ readonly orangeOnHover: "#AD4700";
335
+ readonly yellow: "#F09700";
336
+ readonly yellowDisabled: "#FFCA70";
337
+ readonly yellowOnHover: "#D68700";
338
+ };
339
+ readonly background: {
340
+ readonly primary: "#FFFFFF";
341
+ readonly system: "#FAFAFA";
342
+ readonly secondary: "#EDEDED";
343
+ readonly tertiary: "#DFDFE2";
344
+ readonly invert: "#09090B";
345
+ readonly invertLight: "#17171C";
346
+ readonly green: "#E0FFEC";
347
+ readonly greenOnHover: "#BDFFD5";
348
+ readonly red: "#FDF2F4";
349
+ readonly redOnHover: "#FADBE1";
350
+ readonly orange: "#FFF3EB";
351
+ readonly orangeOnHover: "#FFE1CC";
352
+ readonly yellow: "#FFF3EB";
353
+ readonly yellowOnHover: "#FFE1CC";
354
+ readonly low: "#EDEDED";
355
+ readonly lowOnHover: "#DFDFE2";
356
+ readonly info: "#EBF1FF";
357
+ readonly infoOnHover: "#99B7FF";
358
+ readonly base: "#FFFFFF";
359
+ };
360
+ };
361
+ readonly dark: {
362
+ readonly border: {
363
+ readonly primary: "#4E4E5A";
364
+ readonly secondary: "#2F2F37";
365
+ readonly subtle: "#2F2F37";
366
+ readonly invert: "#FFFFFF";
367
+ readonly onColor: "#09090B";
368
+ readonly blue: "#709AFF";
369
+ readonly blueSubtle: "#002680";
370
+ readonly blueOnHover: "#3772FF";
371
+ readonly red: "#E15C5C";
372
+ readonly redSubtle: "#4C0B17";
373
+ readonly redOnHover: "#E12D4E";
374
+ readonly orange: "#EC9C64";
375
+ readonly orangeSubtle: "#5C2500";
376
+ readonly orangeOnHover: "#FF6800";
377
+ readonly yellow: "#FFCA70";
378
+ readonly yellowSubtle: "#5C3A00";
379
+ readonly yellowOnHover: "#FFAD22";
380
+ readonly green: "#00E052";
381
+ readonly greenSubtle: "#006625";
382
+ readonly greenOnHover: "#00B241";
383
+ };
384
+ readonly content: {
385
+ readonly primary: "#DFDFE2";
386
+ readonly secondary: "#7E7E8B";
387
+ readonly subtle: "#4E4E5A";
388
+ readonly onColor: "#09090B";
389
+ readonly alwaysWhite: "#FFFFFF";
390
+ readonly alwaysBlack: "#09090B";
391
+ readonly onColorInverse: "#FFFFFF";
392
+ readonly blue: "#709AFF";
393
+ readonly blueDisabled: "#002680";
394
+ readonly blueOnHover: "#3772FF";
395
+ readonly green: "#00E052";
396
+ readonly greenDisabled: "#008A32";
397
+ readonly greenOnHover: "#09FF63";
398
+ readonly red: "#E15C5C";
399
+ readonly redDisabled: "#7D1225";
400
+ readonly redOnHover: "#F6C1CA";
401
+ readonly orange: "#EC9C64";
402
+ readonly orangeDisabled: "#7A3200";
403
+ readonly orangeOnHover: "#FFC9A3";
404
+ readonly yellow: "#FFCA70";
405
+ readonly yellowDisabled: "#7A4D00";
406
+ readonly yellowOnHover: "#FFD999";
407
+ };
408
+ readonly background: {
409
+ readonly primary: "#09090B";
410
+ readonly system: "#09090B";
411
+ readonly secondary: "#17171C";
412
+ readonly tertiary: "#2F2F37";
413
+ readonly invert: "#FFFFFF";
414
+ readonly invertLight: "#DFDFE2";
415
+ readonly green: "#00471A";
416
+ readonly greenOnHover: "#006625";
417
+ readonly red: "#2D060D";
418
+ readonly redOnHover: "#4C0B17";
419
+ readonly orange: "#331500";
420
+ readonly orangeOnHover: "#5C2500";
421
+ readonly yellow: "#3D2600";
422
+ readonly yellowOnHover: "#5C3A00";
423
+ readonly low: "#17171C";
424
+ readonly lowOnHover: "#2F2F37";
425
+ readonly info: "#00123D";
426
+ readonly infoOnHover: "#001E66";
427
+ readonly base: "#09090B";
428
+ };
429
+ };
430
+ };
431
+ declare const COLOR_SCALES: readonly [100, 200, 300, 400, 500, 600, 700, 800, 900, 950, 1000];
432
+ declare const VARIANTS: readonly ["primary", "secondary", "ghost", "destructive"];
433
+ declare const INTENTS: readonly ["primary", "success", "warning", "danger", "neutral"];
434
+ declare const SIZES: readonly ["sm", "md", "lg"];
435
+ declare const BUTTON_TYPES: readonly ["button", "submit", "reset"];
436
+ declare const INPUT_TYPES: readonly ["text", "email", "password", "number", "tel", "url", "search"];
437
+ declare const ORIENTATIONS: readonly ["horizontal", "vertical"];
438
+ declare const SURFACE_LEVELS: readonly ["base", "elevated", "overlay"];
439
+ type ColorName = keyof typeof colorPrimitives;
440
+ type ColorScale = typeof COLOR_SCALES[number];
441
+ type Variant = typeof VARIANTS[number];
442
+ type Intent = typeof INTENTS[number];
443
+ type Size = typeof SIZES[number];
444
+ type ButtonType = typeof BUTTON_TYPES[number];
445
+ type InputType = typeof INPUT_TYPES[number];
446
+ type Orientation = typeof ORIENTATIONS[number];
447
+ type SurfaceLevel = typeof SURFACE_LEVELS[number];
448
+ type ColorPrimitives = typeof colorPrimitives;
449
+ type Typography = typeof typography;
450
+ type Spacing = typeof spacing;
451
+ type Radius = typeof radius;
452
+ type Shadows = typeof shadows;
453
+ type ZIndex = typeof zIndex;
454
+ /**
455
+ * Legacy colors object for backward compatibility
456
+ * Maps old color names to new scale-based colors
457
+ */
458
+ declare const colors: {
459
+ readonly white: "#FFFFFF";
460
+ readonly black: "#09090B";
461
+ readonly gray50: "#EDEDED";
462
+ readonly gray100: "#DFDFE2";
463
+ readonly gray200: "#BEBEC1";
464
+ readonly gray300: "#7E7E8B";
465
+ readonly gray400: "#7E7E8B";
466
+ readonly gray500: "#7E7E8B";
467
+ readonly gray600: "#60606C";
468
+ readonly gray700: "#4E4E5A";
469
+ readonly gray800: "#2F2F37";
470
+ readonly gray900: "#17171C";
471
+ readonly blue50: "#EBF1FF";
472
+ readonly blue100: "#EBF1FF";
473
+ readonly blue200: "#C2D4FF";
474
+ readonly blue300: "#99B7FF";
475
+ readonly blue400: "#709AFF";
476
+ readonly blue500: "#3772FF";
477
+ readonly blue600: "#004BFF";
478
+ readonly blue700: "#003FD6";
479
+ readonly blue800: "#002680";
480
+ readonly blue900: "#001E66";
481
+ readonly green50: "#E0FFEC";
482
+ readonly green100: "#E0FFEC";
483
+ readonly green200: "#BDFFD5";
484
+ readonly green300: "#8AFFB5";
485
+ readonly green400: "#5CFF98";
486
+ readonly green500: "#09FF63";
487
+ readonly green600: "#00E052";
488
+ readonly green700: "#00B241";
489
+ readonly green800: "#008A32";
490
+ readonly green900: "#006625";
491
+ readonly yellow50: "#FFF4E0";
492
+ readonly yellow100: "#FFF4E0";
493
+ readonly yellow200: "#FFE8C2";
494
+ readonly yellow300: "#FFD999";
495
+ readonly yellow400: "#FFCA70";
496
+ readonly yellow500: "#FFAD22";
497
+ readonly yellow600: "#F09700";
498
+ readonly yellow700: "#D68700";
499
+ readonly yellow800: "#7A4D00";
500
+ readonly yellow900: "#5C3A00";
501
+ readonly red50: "#FDF2F4";
502
+ readonly red100: "#FDF2F4";
503
+ readonly red200: "#FADBE1";
504
+ readonly red300: "#F6C1CA";
505
+ readonly red400: "#E15C5C";
506
+ readonly red500: "#E12D4E";
507
+ readonly red600: "#C41C3B";
508
+ readonly red700: "#A11730";
509
+ readonly red800: "#7D1225";
510
+ readonly red900: "#4C0B17";
511
+ };
512
+ type Colors = typeof colors;
513
+
514
+ declare const THEME_MODES: readonly ["light", "dark", "system"];
515
+ declare const THEME_NAMES: readonly ["base", "brand"];
516
+ declare const ADAPTER_TYPES: readonly ["shadcn", "material"];
517
+ type ThemeMode = typeof THEME_MODES[number];
518
+ type ThemeName = typeof THEME_NAMES[number];
519
+ type AdapterType = typeof ADAPTER_TYPES[number];
520
+ declare const DEFAULT_ADAPTER: AdapterType;
521
+ declare const DEFAULT_THEME: ThemeName;
522
+ declare const DEFAULT_MODE: ThemeMode;
523
+ interface DesignSystemConfig {
524
+ adapter: AdapterType;
525
+ theme: ThemeName;
526
+ mode: ThemeMode;
527
+ }
528
+ interface Theme {
529
+ mode: ThemeMode;
530
+ name: ThemeName;
531
+ cssVariables: Record<string, string>;
532
+ }
533
+
534
+ /**
535
+ * @deprecated This file is kept for backward compatibility.
536
+ * Import from '../tokens/tokens' or '../tokens' instead.
537
+ *
538
+ * This file re-exports from the unified tokens.ts file and provides
539
+ * legacy compatibility functions.
540
+ */
541
+
542
+ declare const borderTokens: {
543
+ readonly light: {
544
+ readonly primary: "#BEBEC1";
545
+ readonly secondary: "#DFDFE2";
546
+ readonly subtle: "#DFDFE2";
547
+ readonly invert: "#09090B";
548
+ readonly onColor: "#FFFFFF";
549
+ readonly blue: "#3772FF";
550
+ readonly blueSubtle: "#99B7FF";
551
+ readonly blueOnHover: "#003FD6";
552
+ readonly red: "#C41C3B";
553
+ readonly redSubtle: "#F6C1CA";
554
+ readonly redOnHover: "#A11730";
555
+ readonly orange: "#D65700";
556
+ readonly orangeSubtle: "#FFC9A3";
557
+ readonly orangeOnHover: "#AD4700";
558
+ readonly yellow: "#F09700";
559
+ readonly yellowSubtle: "#FFD999";
560
+ readonly yellowOnHover: "#D68700";
561
+ readonly green: "#00E052";
562
+ readonly greenSubtle: "#8AFFB5";
563
+ readonly greenOnHover: "#00B241";
564
+ };
565
+ readonly dark: {
566
+ readonly primary: "#4E4E5A";
567
+ readonly secondary: "#2F2F37";
568
+ readonly subtle: "#2F2F37";
569
+ readonly invert: "#FFFFFF";
570
+ readonly onColor: "#09090B";
571
+ readonly blue: "#709AFF";
572
+ readonly blueSubtle: "#002680";
573
+ readonly blueOnHover: "#3772FF";
574
+ readonly red: "#E15C5C";
575
+ readonly redSubtle: "#4C0B17";
576
+ readonly redOnHover: "#E12D4E";
577
+ readonly orange: "#EC9C64";
578
+ readonly orangeSubtle: "#5C2500";
579
+ readonly orangeOnHover: "#FF6800";
580
+ readonly yellow: "#FFCA70";
581
+ readonly yellowSubtle: "#5C3A00";
582
+ readonly yellowOnHover: "#FFAD22";
583
+ readonly green: "#00E052";
584
+ readonly greenSubtle: "#006625";
585
+ readonly greenOnHover: "#00B241";
586
+ };
587
+ };
588
+ declare const contentTokens: {
589
+ readonly light: {
590
+ readonly primary: "#17171C";
591
+ readonly secondary: "#60606C";
592
+ readonly subtle: "#BEBEC1";
593
+ readonly onColor: "#FFFFFF";
594
+ readonly alwaysWhite: "#FFFFFF";
595
+ readonly alwaysBlack: "#09090B";
596
+ readonly onColorInverse: "#09090B";
597
+ readonly blue: "#3772FF";
598
+ readonly blueDisabled: "#709AFF";
599
+ readonly blueOnHover: "#004BFF";
600
+ readonly green: "#00B241";
601
+ readonly greenDisabled: "#5CFF98";
602
+ readonly greenOnHover: "#00E052";
603
+ readonly red: "#C41C3B";
604
+ readonly redDisabled: "#E15C5C";
605
+ readonly redOnHover: "#A11730";
606
+ readonly orange: "#D65700";
607
+ readonly orangeDisabled: "#EC9C64";
608
+ readonly orangeOnHover: "#AD4700";
609
+ readonly yellow: "#F09700";
610
+ readonly yellowDisabled: "#FFCA70";
611
+ readonly yellowOnHover: "#D68700";
612
+ };
613
+ readonly dark: {
614
+ readonly primary: "#DFDFE2";
615
+ readonly secondary: "#7E7E8B";
616
+ readonly subtle: "#4E4E5A";
617
+ readonly onColor: "#09090B";
618
+ readonly alwaysWhite: "#FFFFFF";
619
+ readonly alwaysBlack: "#09090B";
620
+ readonly onColorInverse: "#FFFFFF";
621
+ readonly blue: "#709AFF";
622
+ readonly blueDisabled: "#002680";
623
+ readonly blueOnHover: "#3772FF";
624
+ readonly green: "#00E052";
625
+ readonly greenDisabled: "#008A32";
626
+ readonly greenOnHover: "#09FF63";
627
+ readonly red: "#E15C5C";
628
+ readonly redDisabled: "#7D1225";
629
+ readonly redOnHover: "#F6C1CA";
630
+ readonly orange: "#EC9C64";
631
+ readonly orangeDisabled: "#7A3200";
632
+ readonly orangeOnHover: "#FFC9A3";
633
+ readonly yellow: "#FFCA70";
634
+ readonly yellowDisabled: "#7A4D00";
635
+ readonly yellowOnHover: "#FFD999";
636
+ };
637
+ };
638
+ declare const backgroundTokens: {
639
+ readonly light: {
640
+ readonly primary: "#FFFFFF";
641
+ readonly system: "#FAFAFA";
642
+ readonly secondary: "#EDEDED";
643
+ readonly tertiary: "#DFDFE2";
644
+ readonly invert: "#09090B";
645
+ readonly invertLight: "#17171C";
646
+ readonly green: "#E0FFEC";
647
+ readonly greenOnHover: "#BDFFD5";
648
+ readonly red: "#FDF2F4";
649
+ readonly redOnHover: "#FADBE1";
650
+ readonly orange: "#FFF3EB";
651
+ readonly orangeOnHover: "#FFE1CC";
652
+ readonly yellow: "#FFF3EB";
653
+ readonly yellowOnHover: "#FFE1CC";
654
+ readonly low: "#EDEDED";
655
+ readonly lowOnHover: "#DFDFE2";
656
+ readonly info: "#EBF1FF";
657
+ readonly infoOnHover: "#99B7FF";
658
+ readonly base: "#FFFFFF";
659
+ };
660
+ readonly dark: {
661
+ readonly primary: "#09090B";
662
+ readonly system: "#09090B";
663
+ readonly secondary: "#17171C";
664
+ readonly tertiary: "#2F2F37";
665
+ readonly invert: "#FFFFFF";
666
+ readonly invertLight: "#DFDFE2";
667
+ readonly green: "#00471A";
668
+ readonly greenOnHover: "#006625";
669
+ readonly red: "#2D060D";
670
+ readonly redOnHover: "#4C0B17";
671
+ readonly orange: "#331500";
672
+ readonly orangeOnHover: "#5C2500";
673
+ readonly yellow: "#3D2600";
674
+ readonly yellowOnHover: "#5C3A00";
675
+ readonly low: "#17171C";
676
+ readonly lowOnHover: "#2F2F37";
677
+ readonly info: "#00123D";
678
+ readonly infoOnHover: "#001E66";
679
+ readonly base: "#09090B";
680
+ };
681
+ };
682
+
683
+ type BorderToken = keyof typeof borderTokens.light;
684
+ type ContentToken = keyof typeof contentTokens.light;
685
+ type BackgroundToken = keyof typeof backgroundTokens.light;
686
+ type SemanticToken = BorderToken | ContentToken | BackgroundToken;
687
+ interface SemanticTokens {
688
+ intent: {
689
+ [K in typeof INTENTS[number]]: {
690
+ color: string;
691
+ colorHover: string;
692
+ colorActive: string;
693
+ background: string;
694
+ backgroundHover: string;
695
+ backgroundActive: string;
696
+ border: string;
697
+ text: string;
698
+ textMuted: string;
699
+ };
700
+ };
701
+ surface: {
702
+ [K in typeof SURFACE_LEVELS[number]]: {
703
+ background: string;
704
+ border: string;
705
+ };
706
+ };
707
+ text: {
708
+ heading: string;
709
+ body: string;
710
+ muted: string;
711
+ disabled: string;
712
+ };
713
+ }
714
+
715
+ /**
716
+ * Legacy function for backward compatibility
717
+ * Maps new semantic tokens to old structure
718
+ */
719
+ declare function createSemanticTokens(mode: ThemeMode): SemanticTokens;
720
+
721
+ /**
722
+ * Icon Utility
723
+ *
724
+ * Dynamically loads icons from lucide-react by name.
725
+ * Handles invalid icon names gracefully.
726
+ */
727
+
728
+ type LucideExports = typeof LucideIcons;
729
+ type LucideIconKeys = {
730
+ [K in keyof LucideExports]: LucideExports[K] extends React.ComponentType<React.SVGProps<SVGSVGElement>> ? K : never;
731
+ }[keyof LucideExports];
732
+ type LucideIconName = LucideIconKeys;
733
+ /**
734
+ * Get an icon component from lucide-react by name
735
+ *
736
+ * @param iconName - Name of the icon (e.g., 'Download', 'Trash2', 'Plus')
737
+ * @returns Icon component or null if icon doesn't exist
738
+ *
739
+ * @example
740
+ * ```tsx
741
+ * const Icon = getIcon('Download');
742
+ * if (Icon) {
743
+ * return <Icon className="h-4 w-4" />;
744
+ * }
745
+ * ```
746
+ */
747
+ declare function getIcon(iconName: string | undefined | null): React.ComponentType<React.SVGProps<SVGSVGElement>> | null;
748
+ /**
749
+ * Render an icon component with proper sizing
750
+ *
751
+ * @param iconName - Name of the icon
752
+ * @param size - Size class for the icon
753
+ * @param className - Additional classes
754
+ * @returns Rendered icon or null
755
+ */
756
+ declare function renderIcon(iconName: string | undefined | null, size?: string, className?: string): React.ReactElement | null;
757
+ /**
758
+ * Check if an icon name exists in lucide-react
759
+ *
760
+ * @param iconName - Name of the icon to check
761
+ * @returns true if icon exists, false otherwise
762
+ */
763
+ declare function iconExists(iconName: string | undefined | null): boolean;
764
+ /**
765
+ * Get list of available icon names (for autocomplete/validation)
766
+ * Note: This returns all exported names from lucide-react
767
+ */
768
+ declare function getAvailableIconNames(): string[];
769
+
770
+ interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'className'> {
771
+ variant?: Variant;
772
+ size?: Size;
773
+ loading?: boolean;
774
+ fullWidth?: boolean;
775
+ startIcon?: LucideIconName;
776
+ endIcon?: LucideIconName;
777
+ loadingText?: string;
778
+ href?: string;
779
+ target?: '_blank' | '_self' | '_parent' | '_top';
780
+ type?: ButtonType;
781
+ asChild?: boolean;
782
+ }
783
+ declare const Button: React.MemoExoticComponent<React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>>;
784
+
785
+ type PdThemeProviderProps = {
786
+ children: React.ReactNode;
787
+ theme?: ThemeName;
788
+ mode?: ThemeMode;
789
+ className?: string;
790
+ };
791
+ /**
792
+ * PdThemeProvider - Root provider for PD Design System
793
+ *
794
+ * This component creates a scoped boundary for all design system styles.
795
+ * All tokens are scoped under .pd-root to prevent style leakage.
796
+ *
797
+ * @param theme - Theme name ('base' | 'brand'). Defaults to 'base'.
798
+ * @param mode - Color mode ('light' | 'dark' | 'system'). Defaults to 'system'.
799
+ *
800
+ * @example
801
+ * ```tsx
802
+ * <PdThemeProvider theme="base" mode="dark">
803
+ * <Button>Click me</Button>
804
+ * </PdThemeProvider>
805
+ * ```
806
+ *
807
+ * @example
808
+ * ```tsx
809
+ * <PdThemeProvider theme="brand" mode="light">
810
+ * <Button>Click me</Button>
811
+ * </PdThemeProvider>
812
+ * ```
813
+ */
814
+ declare function PdThemeProvider({ children, theme: themeName, mode, className }: PdThemeProviderProps): react_jsx_runtime.JSX.Element;
815
+ declare namespace PdThemeProvider {
816
+ var displayName: string;
817
+ }
818
+
819
+ interface ErrorBoundaryProps {
820
+ children: ReactNode;
821
+ fallback?: ReactNode | ((error: Error, errorInfo: React.ErrorInfo) => ReactNode);
822
+ onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
823
+ }
824
+ interface ErrorBoundaryState {
825
+ hasError: boolean;
826
+ error: Error | null;
827
+ errorInfo: React.ErrorInfo | null;
828
+ }
829
+ /**
830
+ * ErrorBoundary component to catch adapter failures and other React errors
831
+ *
832
+ * @example
833
+ * ```tsx
834
+ * <ErrorBoundary fallback={<div>Something went wrong</div>}>
835
+ * <Button>Click me</Button>
836
+ * </ErrorBoundary>
837
+ * ```
838
+ */
839
+ declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
840
+ constructor(props: ErrorBoundaryProps);
841
+ static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>;
842
+ componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
843
+ render(): ReactNode;
844
+ }
845
+
846
+ /**
847
+ * Theme Creation
848
+ *
849
+ * Creates theme objects from unified tokens.
850
+ * This is a thin layer that converts tokens to CSS variables for runtime theming.
851
+ */
852
+
853
+ /**
854
+ * Resolves 'system' mode to either 'light' or 'dark' based on OS preference
855
+ * Falls back to 'light' if matchMedia is not available (SSR)
856
+ */
857
+ declare function resolveThemeMode(mode: ThemeMode): 'light' | 'dark';
858
+ declare function createTheme(name: ThemeName, mode: ThemeMode): Theme;
859
+
860
+ declare function setDesignSystemConfig(config: Partial<DesignSystemConfig>): void;
861
+ declare function getDesignSystemConfig(): DesignSystemConfig;
862
+ declare function getAdapter(): AdapterType;
863
+ declare function getThemeName(): ThemeName;
864
+ declare function getThemeMode(): ThemeMode;
865
+
866
+ interface ThemeContextValue {
867
+ config: DesignSystemConfig;
868
+ setConfig: (config: Partial<DesignSystemConfig>) => void;
869
+ }
870
+ interface ThemeProviderProps {
871
+ children: React.ReactNode;
872
+ adapter?: DesignSystemConfig['adapter'];
873
+ theme?: ThemeName;
874
+ mode?: ThemeMode;
875
+ /**
876
+ * Optional localStorage key for persisting theme preference.
877
+ * If provided, ThemeProvider will automatically sync mode with localStorage.
878
+ * If not provided, no localStorage sync will occur.
879
+ */
880
+ storageKey?: string;
881
+ }
882
+ declare function ThemeProvider({ children, adapter, theme: themeName, mode: initialMode, storageKey, }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
883
+ declare function useTheme(): ThemeContextValue;
884
+
885
+ /**
886
+ * Design Tokens - Main Export
887
+ *
888
+ * This is the main entry point for all design tokens.
889
+ * All tokens come from the unified tokens.ts file (single source of truth).
890
+ */
891
+
892
+ /**
893
+ * Grouped design tokens for convenient access
894
+ *
895
+ * Provides a structured object containing all design tokens organized by category.
896
+ *
897
+ * @example
898
+ * ```ts
899
+ * import { tokens } from '@pd-design/system';
900
+ *
901
+ * // Access color primitives
902
+ * const primaryColor = tokens.colors.blue[500];
903
+ * const grayColor = tokens.colors.neutral[600];
904
+ *
905
+ * // Access semantic tokens
906
+ * const borderColor = tokens.semantic.light.border.primary;
907
+ *
908
+ * // Access spacing
909
+ * const padding = tokens.spacing[4];
910
+ *
911
+ * // Access typography
912
+ * const fontSize = tokens.typography.fontSize.base;
913
+ * ```
914
+ */
915
+ declare const tokens: {
916
+ readonly colors: {
917
+ readonly neutral: {
918
+ readonly 100: "#FFFFFF";
919
+ readonly 200: "#EDEDED";
920
+ readonly 300: "#DFDFE2";
921
+ readonly 400: "#BEBEC1";
922
+ readonly 500: "#7E7E8B";
923
+ readonly 600: "#60606C";
924
+ readonly 700: "#4E4E5A";
925
+ readonly 800: "#2F2F37";
926
+ readonly 900: "#17171C";
927
+ readonly 950: "#09090B";
928
+ readonly 1000: "#FAFAFA";
929
+ };
930
+ readonly blue: {
931
+ readonly 100: "#EBF1FF";
932
+ readonly 200: "#C2D4FF";
933
+ readonly 300: "#99B7FF";
934
+ readonly 400: "#709AFF";
935
+ readonly 500: "#3772FF";
936
+ readonly 600: "#004BFF";
937
+ readonly 700: "#003FD6";
938
+ readonly 800: "#002680";
939
+ readonly 900: "#001E66";
940
+ readonly 950: "#00123D";
941
+ };
942
+ readonly orange: {
943
+ readonly 100: "#FFF3EB";
944
+ readonly 200: "#FFE1CC";
945
+ readonly 300: "#FFC9A3";
946
+ readonly 400: "#EC9C64";
947
+ readonly 500: "#FF6800";
948
+ readonly 600: "#D65700";
949
+ readonly 700: "#AD4700";
950
+ readonly 800: "#7A3200";
951
+ readonly 900: "#5C2500";
952
+ readonly 950: "#331500";
953
+ };
954
+ readonly red: {
955
+ readonly 100: "#FDF2F4";
956
+ readonly 200: "#FADBE1";
957
+ readonly 300: "#F6C1CA";
958
+ readonly 400: "#E15C5C";
959
+ readonly 500: "#E12D4E";
960
+ readonly 600: "#C41C3B";
961
+ readonly 700: "#A11730";
962
+ readonly 800: "#7D1225";
963
+ readonly 900: "#4C0B17";
964
+ readonly 950: "#2D060D";
965
+ };
966
+ readonly green: {
967
+ readonly 100: "#E0FFEC";
968
+ readonly 200: "#BDFFD5";
969
+ readonly 300: "#8AFFB5";
970
+ readonly 400: "#5CFF98";
971
+ readonly 500: "#09FF63";
972
+ readonly 600: "#00E052";
973
+ readonly 700: "#00B241";
974
+ readonly 800: "#008A32";
975
+ readonly 900: "#006625";
976
+ readonly 950: "#00471A";
977
+ };
978
+ readonly yellow: {
979
+ readonly 100: "#FFF4E0";
980
+ readonly 200: "#FFE8C2";
981
+ readonly 300: "#FFD999";
982
+ readonly 400: "#FFCA70";
983
+ readonly 500: "#FFAD22";
984
+ readonly 600: "#F09700";
985
+ readonly 700: "#D68700";
986
+ readonly 800: "#7A4D00";
987
+ readonly 900: "#5C3A00";
988
+ readonly 950: "#3D2600";
989
+ };
990
+ readonly all: {
991
+ readonly neutral: {
992
+ readonly 100: "#FFFFFF";
993
+ readonly 200: "#EDEDED";
994
+ readonly 300: "#DFDFE2";
995
+ readonly 400: "#BEBEC1";
996
+ readonly 500: "#7E7E8B";
997
+ readonly 600: "#60606C";
998
+ readonly 700: "#4E4E5A";
999
+ readonly 800: "#2F2F37";
1000
+ readonly 900: "#17171C";
1001
+ readonly 950: "#09090B";
1002
+ readonly 1000: "#FAFAFA";
1003
+ };
1004
+ readonly blue: {
1005
+ readonly 100: "#EBF1FF";
1006
+ readonly 200: "#C2D4FF";
1007
+ readonly 300: "#99B7FF";
1008
+ readonly 400: "#709AFF";
1009
+ readonly 500: "#3772FF";
1010
+ readonly 600: "#004BFF";
1011
+ readonly 700: "#003FD6";
1012
+ readonly 800: "#002680";
1013
+ readonly 900: "#001E66";
1014
+ readonly 950: "#00123D";
1015
+ };
1016
+ readonly orange: {
1017
+ readonly 100: "#FFF3EB";
1018
+ readonly 200: "#FFE1CC";
1019
+ readonly 300: "#FFC9A3";
1020
+ readonly 400: "#EC9C64";
1021
+ readonly 500: "#FF6800";
1022
+ readonly 600: "#D65700";
1023
+ readonly 700: "#AD4700";
1024
+ readonly 800: "#7A3200";
1025
+ readonly 900: "#5C2500";
1026
+ readonly 950: "#331500";
1027
+ };
1028
+ readonly red: {
1029
+ readonly 100: "#FDF2F4";
1030
+ readonly 200: "#FADBE1";
1031
+ readonly 300: "#F6C1CA";
1032
+ readonly 400: "#E15C5C";
1033
+ readonly 500: "#E12D4E";
1034
+ readonly 600: "#C41C3B";
1035
+ readonly 700: "#A11730";
1036
+ readonly 800: "#7D1225";
1037
+ readonly 900: "#4C0B17";
1038
+ readonly 950: "#2D060D";
1039
+ };
1040
+ readonly green: {
1041
+ readonly 100: "#E0FFEC";
1042
+ readonly 200: "#BDFFD5";
1043
+ readonly 300: "#8AFFB5";
1044
+ readonly 400: "#5CFF98";
1045
+ readonly 500: "#09FF63";
1046
+ readonly 600: "#00E052";
1047
+ readonly 700: "#00B241";
1048
+ readonly 800: "#008A32";
1049
+ readonly 900: "#006625";
1050
+ readonly 950: "#00471A";
1051
+ };
1052
+ readonly yellow: {
1053
+ readonly 100: "#FFF4E0";
1054
+ readonly 200: "#FFE8C2";
1055
+ readonly 300: "#FFD999";
1056
+ readonly 400: "#FFCA70";
1057
+ readonly 500: "#FFAD22";
1058
+ readonly 600: "#F09700";
1059
+ readonly 700: "#D68700";
1060
+ readonly 800: "#7A4D00";
1061
+ readonly 900: "#5C3A00";
1062
+ readonly 950: "#3D2600";
1063
+ };
1064
+ };
1065
+ readonly legacy: {
1066
+ readonly white: "#FFFFFF";
1067
+ readonly black: "#09090B";
1068
+ readonly gray50: "#EDEDED";
1069
+ readonly gray100: "#DFDFE2";
1070
+ readonly gray200: "#BEBEC1";
1071
+ readonly gray300: "#7E7E8B";
1072
+ readonly gray400: "#7E7E8B";
1073
+ readonly gray500: "#7E7E8B";
1074
+ readonly gray600: "#60606C";
1075
+ readonly gray700: "#4E4E5A";
1076
+ readonly gray800: "#2F2F37";
1077
+ readonly gray900: "#17171C";
1078
+ readonly blue50: "#EBF1FF";
1079
+ readonly blue100: "#EBF1FF";
1080
+ readonly blue200: "#C2D4FF";
1081
+ readonly blue300: "#99B7FF";
1082
+ readonly blue400: "#709AFF";
1083
+ readonly blue500: "#3772FF";
1084
+ readonly blue600: "#004BFF";
1085
+ readonly blue700: "#003FD6";
1086
+ readonly blue800: "#002680";
1087
+ readonly blue900: "#001E66";
1088
+ readonly green50: "#E0FFEC";
1089
+ readonly green100: "#E0FFEC";
1090
+ readonly green200: "#BDFFD5";
1091
+ readonly green300: "#8AFFB5";
1092
+ readonly green400: "#5CFF98";
1093
+ readonly green500: "#09FF63";
1094
+ readonly green600: "#00E052";
1095
+ readonly green700: "#00B241";
1096
+ readonly green800: "#008A32";
1097
+ readonly green900: "#006625";
1098
+ readonly yellow50: "#FFF4E0";
1099
+ readonly yellow100: "#FFF4E0";
1100
+ readonly yellow200: "#FFE8C2";
1101
+ readonly yellow300: "#FFD999";
1102
+ readonly yellow400: "#FFCA70";
1103
+ readonly yellow500: "#FFAD22";
1104
+ readonly yellow600: "#F09700";
1105
+ readonly yellow700: "#D68700";
1106
+ readonly yellow800: "#7A4D00";
1107
+ readonly yellow900: "#5C3A00";
1108
+ readonly red50: "#FDF2F4";
1109
+ readonly red100: "#FDF2F4";
1110
+ readonly red200: "#FADBE1";
1111
+ readonly red300: "#F6C1CA";
1112
+ readonly red400: "#E15C5C";
1113
+ readonly red500: "#E12D4E";
1114
+ readonly red600: "#C41C3B";
1115
+ readonly red700: "#A11730";
1116
+ readonly red800: "#7D1225";
1117
+ readonly red900: "#4C0B17";
1118
+ };
1119
+ };
1120
+ readonly semantic: {
1121
+ readonly light: {
1122
+ readonly border: {
1123
+ readonly primary: "#BEBEC1";
1124
+ readonly secondary: "#DFDFE2";
1125
+ readonly subtle: "#DFDFE2";
1126
+ readonly invert: "#09090B";
1127
+ readonly onColor: "#FFFFFF";
1128
+ readonly blue: "#3772FF";
1129
+ readonly blueSubtle: "#99B7FF";
1130
+ readonly blueOnHover: "#003FD6";
1131
+ readonly red: "#C41C3B";
1132
+ readonly redSubtle: "#F6C1CA";
1133
+ readonly redOnHover: "#A11730";
1134
+ readonly orange: "#D65700";
1135
+ readonly orangeSubtle: "#FFC9A3";
1136
+ readonly orangeOnHover: "#AD4700";
1137
+ readonly yellow: "#F09700";
1138
+ readonly yellowSubtle: "#FFD999";
1139
+ readonly yellowOnHover: "#D68700";
1140
+ readonly green: "#00E052";
1141
+ readonly greenSubtle: "#8AFFB5";
1142
+ readonly greenOnHover: "#00B241";
1143
+ };
1144
+ readonly content: {
1145
+ readonly primary: "#17171C";
1146
+ readonly secondary: "#60606C";
1147
+ readonly subtle: "#BEBEC1";
1148
+ readonly onColor: "#FFFFFF";
1149
+ readonly alwaysWhite: "#FFFFFF";
1150
+ readonly alwaysBlack: "#09090B";
1151
+ readonly onColorInverse: "#09090B";
1152
+ readonly blue: "#3772FF";
1153
+ readonly blueDisabled: "#709AFF";
1154
+ readonly blueOnHover: "#004BFF";
1155
+ readonly green: "#00B241";
1156
+ readonly greenDisabled: "#5CFF98";
1157
+ readonly greenOnHover: "#00E052";
1158
+ readonly red: "#C41C3B";
1159
+ readonly redDisabled: "#E15C5C";
1160
+ readonly redOnHover: "#A11730";
1161
+ readonly orange: "#D65700";
1162
+ readonly orangeDisabled: "#EC9C64";
1163
+ readonly orangeOnHover: "#AD4700";
1164
+ readonly yellow: "#F09700";
1165
+ readonly yellowDisabled: "#FFCA70";
1166
+ readonly yellowOnHover: "#D68700";
1167
+ };
1168
+ readonly background: {
1169
+ readonly primary: "#FFFFFF";
1170
+ readonly system: "#FAFAFA";
1171
+ readonly secondary: "#EDEDED";
1172
+ readonly tertiary: "#DFDFE2";
1173
+ readonly invert: "#09090B";
1174
+ readonly invertLight: "#17171C";
1175
+ readonly green: "#E0FFEC";
1176
+ readonly greenOnHover: "#BDFFD5";
1177
+ readonly red: "#FDF2F4";
1178
+ readonly redOnHover: "#FADBE1";
1179
+ readonly orange: "#FFF3EB";
1180
+ readonly orangeOnHover: "#FFE1CC";
1181
+ readonly yellow: "#FFF3EB";
1182
+ readonly yellowOnHover: "#FFE1CC";
1183
+ readonly low: "#EDEDED";
1184
+ readonly lowOnHover: "#DFDFE2";
1185
+ readonly info: "#EBF1FF";
1186
+ readonly infoOnHover: "#99B7FF";
1187
+ readonly base: "#FFFFFF";
1188
+ };
1189
+ };
1190
+ readonly dark: {
1191
+ readonly border: {
1192
+ readonly primary: "#4E4E5A";
1193
+ readonly secondary: "#2F2F37";
1194
+ readonly subtle: "#2F2F37";
1195
+ readonly invert: "#FFFFFF";
1196
+ readonly onColor: "#09090B";
1197
+ readonly blue: "#709AFF";
1198
+ readonly blueSubtle: "#002680";
1199
+ readonly blueOnHover: "#3772FF";
1200
+ readonly red: "#E15C5C";
1201
+ readonly redSubtle: "#4C0B17";
1202
+ readonly redOnHover: "#E12D4E";
1203
+ readonly orange: "#EC9C64";
1204
+ readonly orangeSubtle: "#5C2500";
1205
+ readonly orangeOnHover: "#FF6800";
1206
+ readonly yellow: "#FFCA70";
1207
+ readonly yellowSubtle: "#5C3A00";
1208
+ readonly yellowOnHover: "#FFAD22";
1209
+ readonly green: "#00E052";
1210
+ readonly greenSubtle: "#006625";
1211
+ readonly greenOnHover: "#00B241";
1212
+ };
1213
+ readonly content: {
1214
+ readonly primary: "#DFDFE2";
1215
+ readonly secondary: "#7E7E8B";
1216
+ readonly subtle: "#4E4E5A";
1217
+ readonly onColor: "#09090B";
1218
+ readonly alwaysWhite: "#FFFFFF";
1219
+ readonly alwaysBlack: "#09090B";
1220
+ readonly onColorInverse: "#FFFFFF";
1221
+ readonly blue: "#709AFF";
1222
+ readonly blueDisabled: "#002680";
1223
+ readonly blueOnHover: "#3772FF";
1224
+ readonly green: "#00E052";
1225
+ readonly greenDisabled: "#008A32";
1226
+ readonly greenOnHover: "#09FF63";
1227
+ readonly red: "#E15C5C";
1228
+ readonly redDisabled: "#7D1225";
1229
+ readonly redOnHover: "#F6C1CA";
1230
+ readonly orange: "#EC9C64";
1231
+ readonly orangeDisabled: "#7A3200";
1232
+ readonly orangeOnHover: "#FFC9A3";
1233
+ readonly yellow: "#FFCA70";
1234
+ readonly yellowDisabled: "#7A4D00";
1235
+ readonly yellowOnHover: "#FFD999";
1236
+ };
1237
+ readonly background: {
1238
+ readonly primary: "#09090B";
1239
+ readonly system: "#09090B";
1240
+ readonly secondary: "#17171C";
1241
+ readonly tertiary: "#2F2F37";
1242
+ readonly invert: "#FFFFFF";
1243
+ readonly invertLight: "#DFDFE2";
1244
+ readonly green: "#00471A";
1245
+ readonly greenOnHover: "#006625";
1246
+ readonly red: "#2D060D";
1247
+ readonly redOnHover: "#4C0B17";
1248
+ readonly orange: "#331500";
1249
+ readonly orangeOnHover: "#5C2500";
1250
+ readonly yellow: "#3D2600";
1251
+ readonly yellowOnHover: "#5C3A00";
1252
+ readonly low: "#17171C";
1253
+ readonly lowOnHover: "#2F2F37";
1254
+ readonly info: "#00123D";
1255
+ readonly infoOnHover: "#001E66";
1256
+ readonly base: "#09090B";
1257
+ };
1258
+ };
1259
+ };
1260
+ readonly spacing: {
1261
+ readonly 0: "0em";
1262
+ readonly 1: "0.25em";
1263
+ readonly 2: "0.5em";
1264
+ readonly 3: "0.75em";
1265
+ readonly 4: "1em";
1266
+ readonly 5: "1.25em";
1267
+ readonly 6: "1.5em";
1268
+ readonly 7: "1.75em";
1269
+ readonly 8: "2em";
1270
+ readonly 9: "2.25em";
1271
+ readonly 10: "2.5em";
1272
+ };
1273
+ readonly typography: {
1274
+ readonly fontFamily: {
1275
+ readonly sans: readonly ["Geist", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "sans-serif"];
1276
+ readonly mono: readonly ["Geist Mono", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", "monospace"];
1277
+ };
1278
+ readonly fontSize: {
1279
+ readonly xs: "0.75em";
1280
+ readonly sm: "0.875em";
1281
+ readonly base: "1em";
1282
+ readonly lg: "1.125em";
1283
+ readonly xl: "1.25em";
1284
+ readonly '2xl': "1.5em";
1285
+ readonly '3xl': "1.875em";
1286
+ readonly '4xl': "2.25em";
1287
+ readonly '5xl': "3em";
1288
+ readonly '6xl': "3.75em";
1289
+ readonly '7xl': "4.5em";
1290
+ readonly '8xl': "6em";
1291
+ readonly '9xl': "8em";
1292
+ };
1293
+ readonly fontWeight: {
1294
+ readonly normal: "400";
1295
+ readonly medium: "500";
1296
+ readonly semibold: "600";
1297
+ readonly bold: "700";
1298
+ };
1299
+ readonly lineHeight: {
1300
+ readonly tight: "1.25";
1301
+ readonly normal: "1.5";
1302
+ readonly relaxed: "1.75";
1303
+ };
1304
+ readonly fontSizeLineHeight: {
1305
+ readonly xs: "1em";
1306
+ readonly sm: "1.25em";
1307
+ readonly base: "1.5em";
1308
+ readonly lg: "1.75em";
1309
+ readonly xl: "1.75em";
1310
+ readonly '2xl': "2em";
1311
+ readonly '3xl': "2.25em";
1312
+ readonly '4xl': "2.5em";
1313
+ readonly '5xl': "1";
1314
+ readonly '6xl': "1";
1315
+ readonly '7xl': "1";
1316
+ readonly '8xl': "1";
1317
+ readonly '9xl': "1";
1318
+ };
1319
+ readonly letterSpacing: {
1320
+ readonly tight: "-0.025em";
1321
+ readonly normal: "0";
1322
+ readonly wide: "0.025em";
1323
+ readonly wider: "0.05em";
1324
+ readonly widest: "0.1em";
1325
+ readonly button: "0.00833em";
1326
+ };
1327
+ };
1328
+ readonly radius: {
1329
+ readonly none: "0";
1330
+ readonly sm: "0.125em";
1331
+ readonly base: "0.25em";
1332
+ readonly md: "0.375em";
1333
+ readonly lg: "0.5em";
1334
+ readonly xl: "0.75em";
1335
+ readonly '2xl': "1em";
1336
+ readonly '3xl': "1.5em";
1337
+ readonly full: "9999px";
1338
+ readonly button: "0.5em";
1339
+ };
1340
+ readonly shadows: {
1341
+ readonly sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)";
1342
+ readonly base: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)";
1343
+ readonly md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
1344
+ readonly lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)";
1345
+ readonly xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)";
1346
+ readonly '2xl': "0 25px 50px -12px rgb(0 0 0 / 0.25)";
1347
+ readonly inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)";
1348
+ readonly none: "none";
1349
+ };
1350
+ readonly zIndex: {
1351
+ readonly base: 0;
1352
+ readonly dropdown: 1000;
1353
+ readonly sticky: 1020;
1354
+ readonly fixed: 1030;
1355
+ readonly modalBackdrop: 1040;
1356
+ readonly modal: 1050;
1357
+ readonly popover: 1060;
1358
+ readonly tooltip: 1070;
1359
+ };
1360
+ };
1361
+ type Tokens = typeof tokens;
1362
+
1363
+ /**
1364
+ * Accessibility Utilities
1365
+ *
1366
+ * Provides utilities and types for ensuring excellent accessibility scores
1367
+ * across all components. Supports both user-provided and default accessibility props.
1368
+ */
1369
+
1370
+ /**
1371
+ * Accessibility props that can be passed by users or use defaults
1372
+ */
1373
+ interface AccessibilityProps {
1374
+ /**
1375
+ * Accessible label for the element.
1376
+ * If not provided, will attempt to generate from children or other props.
1377
+ */
1378
+ 'aria-label'?: string;
1379
+ /**
1380
+ * Reference to element(s) that describe this element.
1381
+ */
1382
+ 'aria-describedby'?: string;
1383
+ /**
1384
+ * Reference to element(s) that label this element.
1385
+ */
1386
+ 'aria-labelledby'?: string;
1387
+ /**
1388
+ * Indicates the current state of the element.
1389
+ */
1390
+ 'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time' | boolean;
1391
+ /**
1392
+ * Indicates whether the element is expanded or collapsed.
1393
+ */
1394
+ 'aria-expanded'?: boolean;
1395
+ /**
1396
+ * Indicates whether the element is selected.
1397
+ */
1398
+ 'aria-selected'?: boolean;
1399
+ /**
1400
+ * Indicates whether the element is checked.
1401
+ */
1402
+ 'aria-checked'?: boolean | 'mixed';
1403
+ /**
1404
+ * Indicates whether the element is disabled.
1405
+ */
1406
+ 'aria-disabled'?: boolean;
1407
+ /**
1408
+ * Indicates whether the element is required.
1409
+ */
1410
+ 'aria-required'?: boolean;
1411
+ /**
1412
+ * Indicates whether the element has invalid input.
1413
+ */
1414
+ 'aria-invalid'?: boolean | 'grammar' | 'spelling';
1415
+ /**
1416
+ * Describes the error message for invalid input.
1417
+ */
1418
+ 'aria-errormessage'?: string;
1419
+ /**
1420
+ * Indicates the element's role.
1421
+ */
1422
+ role?: string;
1423
+ /**
1424
+ * Tab index for keyboard navigation.
1425
+ * -1: Not focusable, 0: Focusable in tab order, >0: Custom tab order (not recommended)
1426
+ */
1427
+ tabIndex?: number;
1428
+ /**
1429
+ * Indicates whether the element should be hidden from assistive technologies.
1430
+ */
1431
+ 'aria-hidden'?: boolean;
1432
+ /**
1433
+ * Indicates whether the element is live and should be announced.
1434
+ */
1435
+ 'aria-live'?: 'off' | 'polite' | 'assertive';
1436
+ /**
1437
+ * Indicates whether the element is atomic for live regions.
1438
+ */
1439
+ 'aria-atomic'?: boolean;
1440
+ /**
1441
+ * Indicates the level of heading (for headings).
1442
+ */
1443
+ 'aria-level'?: number;
1444
+ /**
1445
+ * Indicates the position in a set (for list items, etc.).
1446
+ */
1447
+ 'aria-posinset'?: number;
1448
+ /**
1449
+ * Indicates the size of a set (for list items, etc.).
1450
+ */
1451
+ 'aria-setsize'?: number;
1452
+ /**
1453
+ * Indicates whether the element has a popup.
1454
+ */
1455
+ 'aria-haspopup'?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';
1456
+ /**
1457
+ * Indicates the orientation of the element.
1458
+ */
1459
+ 'aria-orientation'?: 'horizontal' | 'vertical';
1460
+ /**
1461
+ * Indicates the value of the element.
1462
+ */
1463
+ 'aria-valuenow'?: number;
1464
+ /**
1465
+ * Indicates the minimum value.
1466
+ */
1467
+ 'aria-valuemin'?: number;
1468
+ /**
1469
+ * Indicates the maximum value.
1470
+ */
1471
+ 'aria-valuemax'?: number;
1472
+ /**
1473
+ * Human-readable text alternative of aria-valuenow.
1474
+ */
1475
+ 'aria-valuetext'?: string;
1476
+ /**
1477
+ * Indicates whether the element is busy.
1478
+ */
1479
+ 'aria-busy'?: boolean;
1480
+ /**
1481
+ * Indicates the element's controls.
1482
+ */
1483
+ 'aria-controls'?: string;
1484
+ /**
1485
+ * Indicates the element's owns.
1486
+ */
1487
+ 'aria-owns'?: string;
1488
+ }
1489
+ /**
1490
+ * Validates accessibility props and returns warnings in development
1491
+ */
1492
+ declare function validateAccessibilityProps(props: AccessibilityProps, componentType: string, options?: {
1493
+ children?: React.ReactNode;
1494
+ iconOnly?: boolean;
1495
+ }): void;
1496
+
1497
+ export { ADAPTER_TYPES, type AccessibilityProps, type AdapterType, BUTTON_TYPES, type BackgroundToken, type BorderToken, Button, type ButtonProps, type ButtonType, COLOR_SCALES, type ColorName, type ColorPrimitives, type ColorScale, type Colors, type ContentToken, DEFAULT_ADAPTER, DEFAULT_MODE, DEFAULT_THEME, type DesignSystemConfig, ErrorBoundary, INPUT_TYPES, INTENTS, type InputType, type Intent, type LucideIconName, ORIENTATIONS, type Orientation, PdThemeProvider, type PdThemeProviderProps, type Radius, SIZES, SURFACE_LEVELS, type SemanticToken, type SemanticTokens, type Shadows, type Size, type Spacing, type SurfaceLevel, THEME_MODES, THEME_NAMES, type Theme, type ThemeMode, type ThemeName, ThemeProvider, type ThemeProviderProps, type Tokens, type Typography, VARIANTS, type Variant, type ZIndex, backgroundTokens, blue, borderTokens, button, colorPrimitives, colors, contentTokens, createSemanticTokens, createTheme, getAdapter, getAvailableIconNames, getDesignSystemConfig, getIcon, getThemeMode, getThemeName, green, iconExists, neutral, orange, radius, red, renderIcon, resolveThemeMode, semanticTokens, setDesignSystemConfig, shadows, spacing, tokens, typography, useTheme, validateAccessibilityProps, yellow, zIndex };