@shalomormsby/ui 0.0.5
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.
- package/dist/hooks-BQi3Ia-W.d.ts +225 -0
- package/dist/hooks-JwoY_LtZ.d.mts +225 -0
- package/dist/hooks.d.mts +3 -0
- package/dist/hooks.d.ts +3 -0
- package/dist/hooks.js +724 -0
- package/dist/hooks.js.map +1 -0
- package/dist/hooks.mjs +696 -0
- package/dist/hooks.mjs.map +1 -0
- package/dist/index.d.mts +2829 -0
- package/dist/index.d.ts +2829 -0
- package/dist/index.js +11315 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +10997 -0
- package/dist/index.mjs.map +1 -0
- package/dist/providers-CNe9iqRi.d.mts +17 -0
- package/dist/providers-CNe9iqRi.d.ts +17 -0
- package/dist/providers.d.mts +2 -0
- package/dist/providers.d.ts +2 -0
- package/dist/providers.js +736 -0
- package/dist/providers.js.map +1 -0
- package/dist/providers.mjs +710 -0
- package/dist/providers.mjs.map +1 -0
- package/dist/tokens.d.mts +1 -0
- package/dist/tokens.d.ts +1 -0
- package/dist/tokens.js +26 -0
- package/dist/tokens.js.map +1 -0
- package/dist/tokens.mjs +5 -0
- package/dist/tokens.mjs.map +1 -0
- package/dist/utils-Bi4ypre8.d.ts +986 -0
- package/dist/utils-NA3gGYtZ.d.mts +986 -0
- package/dist/utils.d.mts +4 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.js +873 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.mjs +805 -0
- package/dist/utils.mjs.map +1 -0
- package/dist/validation-Bj1ye-v_.d.mts +114 -0
- package/dist/validation-Bj1ye-v_.d.ts +114 -0
- package/package.json +118 -0
|
@@ -0,0 +1,986 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { ClassValue } from 'clsx';
|
|
3
|
+
import './validation-Bj1ye-v_.mjs';
|
|
4
|
+
|
|
5
|
+
interface BreadcrumbItemLegacy {
|
|
6
|
+
/**
|
|
7
|
+
* Display text for the breadcrumb
|
|
8
|
+
*/
|
|
9
|
+
label: string;
|
|
10
|
+
/**
|
|
11
|
+
* Navigation URL (href for anchor tags)
|
|
12
|
+
* Omit for current/last item (will render as plain text)
|
|
13
|
+
*/
|
|
14
|
+
href?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Optional icon to display before the label
|
|
17
|
+
*/
|
|
18
|
+
icon?: React__default.ReactNode;
|
|
19
|
+
}
|
|
20
|
+
interface BreadcrumbsProps {
|
|
21
|
+
/**
|
|
22
|
+
* Array of breadcrumb items (hierarchy from root to current)
|
|
23
|
+
*/
|
|
24
|
+
items: BreadcrumbItemLegacy[];
|
|
25
|
+
/**
|
|
26
|
+
* Visual style variant
|
|
27
|
+
* @default 'subtle'
|
|
28
|
+
*/
|
|
29
|
+
variant?: 'subtle' | 'bold' | 'underline';
|
|
30
|
+
/**
|
|
31
|
+
* Custom separator between items
|
|
32
|
+
* @default '/'
|
|
33
|
+
*/
|
|
34
|
+
separator?: React__default.ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* ARIA label for the navigation
|
|
37
|
+
* @default 'Breadcrumb'
|
|
38
|
+
*/
|
|
39
|
+
ariaLabel?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Additional CSS classes for customization
|
|
42
|
+
*/
|
|
43
|
+
className?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Callback fired when a breadcrumb link is clicked
|
|
46
|
+
*/
|
|
47
|
+
onNavigate?: (item: BreadcrumbItemLegacy, index: number) => void;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Breadcrumbs Component
|
|
51
|
+
*
|
|
52
|
+
* A navigation component showing page hierarchy with clickable links.
|
|
53
|
+
*
|
|
54
|
+
* Features:
|
|
55
|
+
* - Three visual variants (subtle, bold, underline)
|
|
56
|
+
* - Customizable separators
|
|
57
|
+
* - Full ARIA accessibility
|
|
58
|
+
* - Theme-aware styling
|
|
59
|
+
* - Keyboard navigable
|
|
60
|
+
* - Current page indication
|
|
61
|
+
*
|
|
62
|
+
* Example:
|
|
63
|
+
* ```tsx
|
|
64
|
+
* <Breadcrumbs
|
|
65
|
+
* variant="subtle"
|
|
66
|
+
* items={[
|
|
67
|
+
* { label: 'Home', href: '/' },
|
|
68
|
+
* { label: 'Products', href: '/products' },
|
|
69
|
+
* { label: 'Laptop' }, // Current page (no href)
|
|
70
|
+
* ]}
|
|
71
|
+
* />
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
declare const Breadcrumbs: React__default.FC<BreadcrumbsProps>;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Syntax Parser Types
|
|
78
|
+
* Type definitions for the syntax parsing system
|
|
79
|
+
*/
|
|
80
|
+
type SyntaxType = 'comment' | 'keyword' | 'function' | 'string' | 'number' | 'boolean' | 'operator' | 'property' | 'className' | 'tag' | 'attribute' | 'variable' | 'punctuation' | 'plain';
|
|
81
|
+
interface SyntaxToken {
|
|
82
|
+
text: string;
|
|
83
|
+
type: SyntaxType;
|
|
84
|
+
}
|
|
85
|
+
type Language = 'typescript' | 'javascript' | 'tsx' | 'jsx';
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Syntax Tokenizer
|
|
89
|
+
* Core tokenization logic for parsing code into syntax tokens
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Tokenizes source code into an array of syntax tokens
|
|
94
|
+
*
|
|
95
|
+
* @param code - The source code to tokenize
|
|
96
|
+
* @param language - The programming language (currently only affects metadata, all use same patterns)
|
|
97
|
+
* @returns Array of syntax tokens with text and type information
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```ts
|
|
101
|
+
* const tokens = tokenize('const greeting = "Hello";');
|
|
102
|
+
* // Returns:
|
|
103
|
+
* // [
|
|
104
|
+
* // { text: 'const', type: 'keyword' },
|
|
105
|
+
* // { text: ' ', type: 'plain' },
|
|
106
|
+
* // { text: 'greeting', type: 'plain' },
|
|
107
|
+
* // { text: ' ', type: 'plain' },
|
|
108
|
+
* // { text: '=', type: 'operator' },
|
|
109
|
+
* // { text: ' ', type: 'plain' },
|
|
110
|
+
* // { text: '"Hello"', type: 'string' },
|
|
111
|
+
* // { text: ';', type: 'punctuation' },
|
|
112
|
+
* // ]
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
declare function tokenize(code: string, language?: Language): SyntaxToken[];
|
|
116
|
+
/**
|
|
117
|
+
* Detects the language from code content or file extension
|
|
118
|
+
* Currently returns 'typescript' for all cases as patterns support TS/JS/JSX/TSX
|
|
119
|
+
*
|
|
120
|
+
* @param code - The source code
|
|
121
|
+
* @param filename - Optional filename for extension detection
|
|
122
|
+
* @returns Detected language
|
|
123
|
+
*/
|
|
124
|
+
declare function detectLanguage(code: string, filename?: string): Language;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Syntax Parser
|
|
128
|
+
*
|
|
129
|
+
* Lightweight syntax parser for automatic code tokenization.
|
|
130
|
+
* Converts plain code strings into syntax-highlighted token arrays.
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```ts
|
|
134
|
+
* import { parseCode } from '@sage/ui';
|
|
135
|
+
*
|
|
136
|
+
* const tokens = parseCode('const greeting = "Hello World";');
|
|
137
|
+
* // Use with CollapsibleCodeBlock:
|
|
138
|
+
* <CollapsibleCodeBlock
|
|
139
|
+
* id="example"
|
|
140
|
+
* code={tokens}
|
|
141
|
+
* />
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Parses source code into syntax tokens for highlighting
|
|
147
|
+
*
|
|
148
|
+
* @param code - The source code to parse
|
|
149
|
+
* @param language - Optional language hint (auto-detected if not provided)
|
|
150
|
+
* @returns Array of syntax tokens ready for CollapsibleCodeBlock
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```ts
|
|
154
|
+
* const code = `
|
|
155
|
+
* import { useState } from 'react';
|
|
156
|
+
*
|
|
157
|
+
* export function Counter() {
|
|
158
|
+
* const [count, setCount] = useState(0);
|
|
159
|
+
* return <button onClick={() => setCount(count + 1)}>{count}</button>;
|
|
160
|
+
* }
|
|
161
|
+
* `;
|
|
162
|
+
*
|
|
163
|
+
* const tokens = parseCode(code);
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
declare function parseCode(code: string, language?: Language): SyntaxToken[];
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Animation Presets
|
|
170
|
+
*
|
|
171
|
+
* Reusable animation configurations for consistent motion throughout the design system.
|
|
172
|
+
* Works with Framer Motion and respects user motion preferences.
|
|
173
|
+
*/
|
|
174
|
+
type Variant = {
|
|
175
|
+
[key: string]: any;
|
|
176
|
+
};
|
|
177
|
+
type Variants = {
|
|
178
|
+
[key: string]: Variant;
|
|
179
|
+
};
|
|
180
|
+
type Transition = {
|
|
181
|
+
duration?: number;
|
|
182
|
+
ease?: readonly number[] | number[] | string;
|
|
183
|
+
type?: 'spring' | 'tween' | 'inertia';
|
|
184
|
+
damping?: number;
|
|
185
|
+
stiffness?: number;
|
|
186
|
+
[key: string]: any;
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Animation Duration Presets
|
|
190
|
+
* Based on Material Design motion guidelines
|
|
191
|
+
*/
|
|
192
|
+
declare const durations: {
|
|
193
|
+
readonly instant: 0;
|
|
194
|
+
readonly fast: 0.15;
|
|
195
|
+
readonly normal: 0.3;
|
|
196
|
+
readonly slow: 0.5;
|
|
197
|
+
readonly slower: 0.7;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Easing Presets
|
|
201
|
+
* Common easing curves for smooth animations
|
|
202
|
+
*/
|
|
203
|
+
declare const easings: {
|
|
204
|
+
readonly standard: readonly [0.4, 0, 0.2, 1];
|
|
205
|
+
readonly decelerate: readonly [0, 0, 0.2, 1];
|
|
206
|
+
readonly accelerate: readonly [0.4, 0, 1, 1];
|
|
207
|
+
readonly sharp: readonly [0.4, 0, 0.6, 1];
|
|
208
|
+
readonly bounce: readonly [0.68, -0.55, 0.265, 1.55];
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Common transition presets
|
|
212
|
+
*/
|
|
213
|
+
declare const transitions: {
|
|
214
|
+
readonly default: Transition;
|
|
215
|
+
readonly fast: Transition;
|
|
216
|
+
readonly slow: Transition;
|
|
217
|
+
readonly bounce: Transition;
|
|
218
|
+
readonly spring: Transition;
|
|
219
|
+
readonly springBouncy: Transition;
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* Fade Animation Variants
|
|
223
|
+
*/
|
|
224
|
+
declare const fadeVariants: Variants;
|
|
225
|
+
/**
|
|
226
|
+
* Slide Animation Variants
|
|
227
|
+
*/
|
|
228
|
+
declare const slideVariants: {
|
|
229
|
+
readonly fromLeft: {
|
|
230
|
+
readonly hidden: {
|
|
231
|
+
readonly x: -20;
|
|
232
|
+
readonly opacity: 0;
|
|
233
|
+
};
|
|
234
|
+
readonly visible: {
|
|
235
|
+
readonly x: 0;
|
|
236
|
+
readonly opacity: 1;
|
|
237
|
+
};
|
|
238
|
+
readonly exit: {
|
|
239
|
+
readonly x: -20;
|
|
240
|
+
readonly opacity: 0;
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
readonly fromRight: {
|
|
244
|
+
readonly hidden: {
|
|
245
|
+
readonly x: 20;
|
|
246
|
+
readonly opacity: 0;
|
|
247
|
+
};
|
|
248
|
+
readonly visible: {
|
|
249
|
+
readonly x: 0;
|
|
250
|
+
readonly opacity: 1;
|
|
251
|
+
};
|
|
252
|
+
readonly exit: {
|
|
253
|
+
readonly x: 20;
|
|
254
|
+
readonly opacity: 0;
|
|
255
|
+
};
|
|
256
|
+
};
|
|
257
|
+
readonly fromTop: {
|
|
258
|
+
readonly hidden: {
|
|
259
|
+
readonly y: -20;
|
|
260
|
+
readonly opacity: 0;
|
|
261
|
+
};
|
|
262
|
+
readonly visible: {
|
|
263
|
+
readonly y: 0;
|
|
264
|
+
readonly opacity: 1;
|
|
265
|
+
};
|
|
266
|
+
readonly exit: {
|
|
267
|
+
readonly y: -20;
|
|
268
|
+
readonly opacity: 0;
|
|
269
|
+
};
|
|
270
|
+
};
|
|
271
|
+
readonly fromBottom: {
|
|
272
|
+
readonly hidden: {
|
|
273
|
+
readonly y: 20;
|
|
274
|
+
readonly opacity: 0;
|
|
275
|
+
};
|
|
276
|
+
readonly visible: {
|
|
277
|
+
readonly y: 0;
|
|
278
|
+
readonly opacity: 1;
|
|
279
|
+
};
|
|
280
|
+
readonly exit: {
|
|
281
|
+
readonly y: 20;
|
|
282
|
+
readonly opacity: 0;
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
};
|
|
286
|
+
/**
|
|
287
|
+
* Scale Animation Variants
|
|
288
|
+
*/
|
|
289
|
+
declare const scaleVariants: {
|
|
290
|
+
readonly default: {
|
|
291
|
+
readonly hidden: {
|
|
292
|
+
readonly scale: 0.95;
|
|
293
|
+
readonly opacity: 0;
|
|
294
|
+
};
|
|
295
|
+
readonly visible: {
|
|
296
|
+
readonly scale: 1;
|
|
297
|
+
readonly opacity: 1;
|
|
298
|
+
};
|
|
299
|
+
readonly exit: {
|
|
300
|
+
readonly scale: 0.95;
|
|
301
|
+
readonly opacity: 0;
|
|
302
|
+
};
|
|
303
|
+
};
|
|
304
|
+
readonly grow: {
|
|
305
|
+
readonly hidden: {
|
|
306
|
+
readonly scale: 0.8;
|
|
307
|
+
readonly opacity: 0;
|
|
308
|
+
};
|
|
309
|
+
readonly visible: {
|
|
310
|
+
readonly scale: 1;
|
|
311
|
+
readonly opacity: 1;
|
|
312
|
+
};
|
|
313
|
+
readonly exit: {
|
|
314
|
+
readonly scale: 0.8;
|
|
315
|
+
readonly opacity: 0;
|
|
316
|
+
};
|
|
317
|
+
};
|
|
318
|
+
readonly pop: {
|
|
319
|
+
readonly hidden: {
|
|
320
|
+
readonly scale: 0;
|
|
321
|
+
};
|
|
322
|
+
readonly visible: {
|
|
323
|
+
readonly scale: 1;
|
|
324
|
+
};
|
|
325
|
+
readonly exit: {
|
|
326
|
+
readonly scale: 0;
|
|
327
|
+
};
|
|
328
|
+
};
|
|
329
|
+
};
|
|
330
|
+
/**
|
|
331
|
+
* Rotate Animation Variants
|
|
332
|
+
*/
|
|
333
|
+
declare const rotateVariants: {
|
|
334
|
+
readonly default: {
|
|
335
|
+
readonly hidden: {
|
|
336
|
+
readonly rotate: -10;
|
|
337
|
+
readonly opacity: 0;
|
|
338
|
+
};
|
|
339
|
+
readonly visible: {
|
|
340
|
+
readonly rotate: 0;
|
|
341
|
+
readonly opacity: 1;
|
|
342
|
+
};
|
|
343
|
+
readonly exit: {
|
|
344
|
+
readonly rotate: 10;
|
|
345
|
+
readonly opacity: 0;
|
|
346
|
+
};
|
|
347
|
+
};
|
|
348
|
+
readonly flip: {
|
|
349
|
+
readonly hidden: {
|
|
350
|
+
readonly rotateX: 90;
|
|
351
|
+
readonly opacity: 0;
|
|
352
|
+
};
|
|
353
|
+
readonly visible: {
|
|
354
|
+
readonly rotateX: 0;
|
|
355
|
+
readonly opacity: 1;
|
|
356
|
+
};
|
|
357
|
+
readonly exit: {
|
|
358
|
+
readonly rotateX: -90;
|
|
359
|
+
readonly opacity: 0;
|
|
360
|
+
};
|
|
361
|
+
};
|
|
362
|
+
};
|
|
363
|
+
/**
|
|
364
|
+
* List/Stagger Animation Variants
|
|
365
|
+
*/
|
|
366
|
+
declare const listVariants: {
|
|
367
|
+
readonly container: {
|
|
368
|
+
readonly hidden: {
|
|
369
|
+
readonly opacity: 0;
|
|
370
|
+
};
|
|
371
|
+
readonly visible: {
|
|
372
|
+
readonly opacity: 1;
|
|
373
|
+
readonly transition: {
|
|
374
|
+
readonly staggerChildren: 0.1;
|
|
375
|
+
};
|
|
376
|
+
};
|
|
377
|
+
};
|
|
378
|
+
readonly item: {
|
|
379
|
+
readonly hidden: {
|
|
380
|
+
readonly y: 20;
|
|
381
|
+
readonly opacity: 0;
|
|
382
|
+
};
|
|
383
|
+
readonly visible: {
|
|
384
|
+
readonly y: 0;
|
|
385
|
+
readonly opacity: 1;
|
|
386
|
+
};
|
|
387
|
+
};
|
|
388
|
+
};
|
|
389
|
+
/**
|
|
390
|
+
* Modal/Overlay Animation Variants
|
|
391
|
+
*/
|
|
392
|
+
declare const modalVariants: {
|
|
393
|
+
readonly overlay: {
|
|
394
|
+
readonly hidden: {
|
|
395
|
+
readonly opacity: 0;
|
|
396
|
+
};
|
|
397
|
+
readonly visible: {
|
|
398
|
+
readonly opacity: 1;
|
|
399
|
+
};
|
|
400
|
+
readonly exit: {
|
|
401
|
+
readonly opacity: 0;
|
|
402
|
+
};
|
|
403
|
+
};
|
|
404
|
+
readonly content: {
|
|
405
|
+
readonly hidden: {
|
|
406
|
+
readonly scale: 0.95;
|
|
407
|
+
readonly opacity: 0;
|
|
408
|
+
readonly y: 20;
|
|
409
|
+
};
|
|
410
|
+
readonly visible: {
|
|
411
|
+
readonly scale: 1;
|
|
412
|
+
readonly opacity: 1;
|
|
413
|
+
readonly y: 0;
|
|
414
|
+
};
|
|
415
|
+
readonly exit: {
|
|
416
|
+
readonly scale: 0.95;
|
|
417
|
+
readonly opacity: 0;
|
|
418
|
+
readonly y: 20;
|
|
419
|
+
};
|
|
420
|
+
};
|
|
421
|
+
};
|
|
422
|
+
/**
|
|
423
|
+
* Drawer/Sheet Animation Variants
|
|
424
|
+
*/
|
|
425
|
+
declare const drawerVariants: {
|
|
426
|
+
readonly fromLeft: {
|
|
427
|
+
readonly hidden: {
|
|
428
|
+
readonly x: "-100%";
|
|
429
|
+
};
|
|
430
|
+
readonly visible: {
|
|
431
|
+
readonly x: 0;
|
|
432
|
+
};
|
|
433
|
+
readonly exit: {
|
|
434
|
+
readonly x: "-100%";
|
|
435
|
+
};
|
|
436
|
+
};
|
|
437
|
+
readonly fromRight: {
|
|
438
|
+
readonly hidden: {
|
|
439
|
+
readonly x: "100%";
|
|
440
|
+
};
|
|
441
|
+
readonly visible: {
|
|
442
|
+
readonly x: 0;
|
|
443
|
+
};
|
|
444
|
+
readonly exit: {
|
|
445
|
+
readonly x: "100%";
|
|
446
|
+
};
|
|
447
|
+
};
|
|
448
|
+
readonly fromTop: {
|
|
449
|
+
readonly hidden: {
|
|
450
|
+
readonly y: "-100%";
|
|
451
|
+
};
|
|
452
|
+
readonly visible: {
|
|
453
|
+
readonly y: 0;
|
|
454
|
+
};
|
|
455
|
+
readonly exit: {
|
|
456
|
+
readonly y: "-100%";
|
|
457
|
+
};
|
|
458
|
+
};
|
|
459
|
+
readonly fromBottom: {
|
|
460
|
+
readonly hidden: {
|
|
461
|
+
readonly y: "100%";
|
|
462
|
+
};
|
|
463
|
+
readonly visible: {
|
|
464
|
+
readonly y: 0;
|
|
465
|
+
};
|
|
466
|
+
readonly exit: {
|
|
467
|
+
readonly y: "100%";
|
|
468
|
+
};
|
|
469
|
+
};
|
|
470
|
+
};
|
|
471
|
+
/**
|
|
472
|
+
* Collapse/Expand Animation Variants
|
|
473
|
+
*/
|
|
474
|
+
declare const collapseVariants: {
|
|
475
|
+
readonly collapsed: {
|
|
476
|
+
readonly height: 0;
|
|
477
|
+
readonly opacity: 0;
|
|
478
|
+
readonly transition: {
|
|
479
|
+
readonly duration: 0.15;
|
|
480
|
+
};
|
|
481
|
+
};
|
|
482
|
+
readonly expanded: {
|
|
483
|
+
readonly height: "auto";
|
|
484
|
+
readonly opacity: 1;
|
|
485
|
+
readonly transition: {
|
|
486
|
+
readonly duration: 0.3;
|
|
487
|
+
};
|
|
488
|
+
};
|
|
489
|
+
};
|
|
490
|
+
/**
|
|
491
|
+
* Preset Animations
|
|
492
|
+
* Complete animation configurations ready to use
|
|
493
|
+
*/
|
|
494
|
+
declare const presets: {
|
|
495
|
+
/**
|
|
496
|
+
* Fade in/out animation
|
|
497
|
+
*/
|
|
498
|
+
readonly fade: {
|
|
499
|
+
readonly initial: "hidden";
|
|
500
|
+
readonly animate: "visible";
|
|
501
|
+
readonly exit: "exit";
|
|
502
|
+
readonly variants: Variants;
|
|
503
|
+
readonly transition: Transition;
|
|
504
|
+
};
|
|
505
|
+
/**
|
|
506
|
+
* Slide from bottom animation
|
|
507
|
+
*/
|
|
508
|
+
readonly slideUp: {
|
|
509
|
+
readonly initial: "hidden";
|
|
510
|
+
readonly animate: "visible";
|
|
511
|
+
readonly exit: "exit";
|
|
512
|
+
readonly variants: {
|
|
513
|
+
readonly hidden: {
|
|
514
|
+
readonly y: 20;
|
|
515
|
+
readonly opacity: 0;
|
|
516
|
+
};
|
|
517
|
+
readonly visible: {
|
|
518
|
+
readonly y: 0;
|
|
519
|
+
readonly opacity: 1;
|
|
520
|
+
};
|
|
521
|
+
readonly exit: {
|
|
522
|
+
readonly y: 20;
|
|
523
|
+
readonly opacity: 0;
|
|
524
|
+
};
|
|
525
|
+
};
|
|
526
|
+
readonly transition: Transition;
|
|
527
|
+
};
|
|
528
|
+
/**
|
|
529
|
+
* Scale animation
|
|
530
|
+
*/
|
|
531
|
+
readonly scale: {
|
|
532
|
+
readonly initial: "hidden";
|
|
533
|
+
readonly animate: "visible";
|
|
534
|
+
readonly exit: "exit";
|
|
535
|
+
readonly variants: {
|
|
536
|
+
readonly hidden: {
|
|
537
|
+
readonly scale: 0.95;
|
|
538
|
+
readonly opacity: 0;
|
|
539
|
+
};
|
|
540
|
+
readonly visible: {
|
|
541
|
+
readonly scale: 1;
|
|
542
|
+
readonly opacity: 1;
|
|
543
|
+
};
|
|
544
|
+
readonly exit: {
|
|
545
|
+
readonly scale: 0.95;
|
|
546
|
+
readonly opacity: 0;
|
|
547
|
+
};
|
|
548
|
+
};
|
|
549
|
+
readonly transition: Transition;
|
|
550
|
+
};
|
|
551
|
+
/**
|
|
552
|
+
* Modal animation (overlay + content)
|
|
553
|
+
*/
|
|
554
|
+
readonly modal: {
|
|
555
|
+
readonly overlay: {
|
|
556
|
+
readonly initial: "hidden";
|
|
557
|
+
readonly animate: "visible";
|
|
558
|
+
readonly exit: "exit";
|
|
559
|
+
readonly variants: {
|
|
560
|
+
readonly hidden: {
|
|
561
|
+
readonly opacity: 0;
|
|
562
|
+
};
|
|
563
|
+
readonly visible: {
|
|
564
|
+
readonly opacity: 1;
|
|
565
|
+
};
|
|
566
|
+
readonly exit: {
|
|
567
|
+
readonly opacity: 0;
|
|
568
|
+
};
|
|
569
|
+
};
|
|
570
|
+
readonly transition: Transition;
|
|
571
|
+
};
|
|
572
|
+
readonly content: {
|
|
573
|
+
readonly initial: "hidden";
|
|
574
|
+
readonly animate: "visible";
|
|
575
|
+
readonly exit: "exit";
|
|
576
|
+
readonly variants: {
|
|
577
|
+
readonly hidden: {
|
|
578
|
+
readonly scale: 0.95;
|
|
579
|
+
readonly opacity: 0;
|
|
580
|
+
readonly y: 20;
|
|
581
|
+
};
|
|
582
|
+
readonly visible: {
|
|
583
|
+
readonly scale: 1;
|
|
584
|
+
readonly opacity: 1;
|
|
585
|
+
readonly y: 0;
|
|
586
|
+
};
|
|
587
|
+
readonly exit: {
|
|
588
|
+
readonly scale: 0.95;
|
|
589
|
+
readonly opacity: 0;
|
|
590
|
+
readonly y: 20;
|
|
591
|
+
};
|
|
592
|
+
};
|
|
593
|
+
readonly transition: Transition;
|
|
594
|
+
};
|
|
595
|
+
};
|
|
596
|
+
/**
|
|
597
|
+
* List stagger animation
|
|
598
|
+
*/
|
|
599
|
+
readonly list: {
|
|
600
|
+
readonly container: {
|
|
601
|
+
readonly initial: "hidden";
|
|
602
|
+
readonly animate: "visible";
|
|
603
|
+
readonly variants: {
|
|
604
|
+
readonly hidden: {
|
|
605
|
+
readonly opacity: 0;
|
|
606
|
+
};
|
|
607
|
+
readonly visible: {
|
|
608
|
+
readonly opacity: 1;
|
|
609
|
+
readonly transition: {
|
|
610
|
+
readonly staggerChildren: 0.1;
|
|
611
|
+
};
|
|
612
|
+
};
|
|
613
|
+
};
|
|
614
|
+
};
|
|
615
|
+
readonly item: {
|
|
616
|
+
readonly variants: {
|
|
617
|
+
readonly hidden: {
|
|
618
|
+
readonly y: 20;
|
|
619
|
+
readonly opacity: 0;
|
|
620
|
+
};
|
|
621
|
+
readonly visible: {
|
|
622
|
+
readonly y: 0;
|
|
623
|
+
readonly opacity: 1;
|
|
624
|
+
};
|
|
625
|
+
};
|
|
626
|
+
};
|
|
627
|
+
};
|
|
628
|
+
};
|
|
629
|
+
/**
|
|
630
|
+
* Helper to create a custom animation preset
|
|
631
|
+
*
|
|
632
|
+
* @example
|
|
633
|
+
* ```tsx
|
|
634
|
+
* const customFade = createAnimation({
|
|
635
|
+
* hidden: { opacity: 0, scale: 0.8 },
|
|
636
|
+
* visible: { opacity: 1, scale: 1 },
|
|
637
|
+
* }, transitions.bounce);
|
|
638
|
+
* ```
|
|
639
|
+
*/
|
|
640
|
+
declare function createAnimation(variants: Variants, transition?: Transition): {
|
|
641
|
+
initial: string;
|
|
642
|
+
animate: string;
|
|
643
|
+
exit: string;
|
|
644
|
+
variants: Variants;
|
|
645
|
+
transition: Transition;
|
|
646
|
+
};
|
|
647
|
+
/**
|
|
648
|
+
* Helper to scale transition duration based on motion preference
|
|
649
|
+
*
|
|
650
|
+
* @example
|
|
651
|
+
* ```tsx
|
|
652
|
+
* const { scale } = useMotionPreference();
|
|
653
|
+
* const duration = scaleDuration(durations.normal, scale);
|
|
654
|
+
* ```
|
|
655
|
+
*/
|
|
656
|
+
declare function scaleDuration(duration: number, scale: number): number;
|
|
657
|
+
|
|
658
|
+
interface RouteConfig {
|
|
659
|
+
[key: string]: {
|
|
660
|
+
label: string;
|
|
661
|
+
children?: RouteConfig;
|
|
662
|
+
};
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* Generates breadcrumb items from hash-based routing
|
|
666
|
+
*
|
|
667
|
+
* @param hash - Current window.location.hash (e.g., '#atoms/button')
|
|
668
|
+
* @param routeConfig - Configuration mapping routes to labels
|
|
669
|
+
* @param baseUrl - Base URL for href generation (default: '#')
|
|
670
|
+
* @returns Array of breadcrumb items with the last item having no href
|
|
671
|
+
*
|
|
672
|
+
* @example
|
|
673
|
+
* ```ts
|
|
674
|
+
* const routeConfig = {
|
|
675
|
+
* atoms: {
|
|
676
|
+
* label: 'Components',
|
|
677
|
+
* children: {
|
|
678
|
+
* button: { label: 'Button' }
|
|
679
|
+
* }
|
|
680
|
+
* }
|
|
681
|
+
* };
|
|
682
|
+
*
|
|
683
|
+
* // With hash: '#atoms/button'
|
|
684
|
+
* const breadcrumbs = generateBreadcrumbs('#atoms/button', routeConfig);
|
|
685
|
+
* // Returns: [
|
|
686
|
+
* // { label: 'Home', href: '#' },
|
|
687
|
+
* // { label: 'Components', href: '#atoms' },
|
|
688
|
+
* // { label: 'Button' } // No href for current page
|
|
689
|
+
* // ]
|
|
690
|
+
* ```
|
|
691
|
+
*/
|
|
692
|
+
declare function generateBreadcrumbs(hash: string, routeConfig: RouteConfig, baseUrl?: string): BreadcrumbItemLegacy[];
|
|
693
|
+
|
|
694
|
+
/**
|
|
695
|
+
* Semantic Color Utilities
|
|
696
|
+
*
|
|
697
|
+
* Helper functions for working with the design system's color tokens
|
|
698
|
+
* and CSS variables.
|
|
699
|
+
*/
|
|
700
|
+
/**
|
|
701
|
+
* Color token categories
|
|
702
|
+
*/
|
|
703
|
+
declare const colorTokens: {
|
|
704
|
+
readonly background: "var(--color-background)";
|
|
705
|
+
readonly backgroundSecondary: "var(--color-background-secondary)";
|
|
706
|
+
readonly backgroundTertiary: "var(--color-background-tertiary)";
|
|
707
|
+
readonly surface: "var(--color-surface)";
|
|
708
|
+
readonly foreground: "var(--color-foreground)";
|
|
709
|
+
readonly foregroundSecondary: "var(--color-foreground-secondary)";
|
|
710
|
+
readonly foregroundTertiary: "var(--color-foreground-tertiary)";
|
|
711
|
+
readonly textPrimary: "var(--color-text-primary)";
|
|
712
|
+
readonly textSecondary: "var(--color-text-secondary)";
|
|
713
|
+
readonly textMuted: "var(--color-text-muted)";
|
|
714
|
+
readonly primary: "var(--color-primary)";
|
|
715
|
+
readonly primaryForeground: "var(--color-primary-foreground)";
|
|
716
|
+
readonly secondary: "var(--color-secondary)";
|
|
717
|
+
readonly secondaryForeground: "var(--color-secondary-foreground)";
|
|
718
|
+
readonly accent: "var(--color-accent)";
|
|
719
|
+
readonly accentForeground: "var(--color-accent-foreground)";
|
|
720
|
+
readonly success: "var(--color-success)";
|
|
721
|
+
readonly successForeground: "var(--color-success-foreground)";
|
|
722
|
+
readonly warning: "var(--color-warning)";
|
|
723
|
+
readonly warningForeground: "var(--color-warning-foreground)";
|
|
724
|
+
readonly error: "var(--color-error)";
|
|
725
|
+
readonly errorForeground: "var(--color-error-foreground)";
|
|
726
|
+
readonly info: "var(--color-info)";
|
|
727
|
+
readonly infoForeground: "var(--color-info-foreground)";
|
|
728
|
+
readonly border: "var(--color-border)";
|
|
729
|
+
readonly borderSubtle: "var(--color-border-subtle)";
|
|
730
|
+
readonly hover: "var(--color-hover)";
|
|
731
|
+
readonly active: "var(--color-active)";
|
|
732
|
+
readonly focus: "var(--color-focus)";
|
|
733
|
+
readonly link: "var(--color-link)";
|
|
734
|
+
readonly linkHover: "var(--color-link-hover)";
|
|
735
|
+
readonly linkHoverForeground: "var(--color-link-hover-foreground)";
|
|
736
|
+
};
|
|
737
|
+
/**
|
|
738
|
+
* Get CSS variable value from computed styles
|
|
739
|
+
*
|
|
740
|
+
* @param variableName - CSS variable name (with or without --)
|
|
741
|
+
* @param element - Element to get computed style from (defaults to document.documentElement)
|
|
742
|
+
* @returns The computed value of the CSS variable
|
|
743
|
+
*
|
|
744
|
+
* @example
|
|
745
|
+
* ```ts
|
|
746
|
+
* const primaryColor = getCSSVariable('--color-primary');
|
|
747
|
+
* // Returns: '#0066ff' (or whatever the current theme's primary color is)
|
|
748
|
+
* ```
|
|
749
|
+
*/
|
|
750
|
+
declare function getCSSVariable(variableName: string, element?: HTMLElement): string;
|
|
751
|
+
/**
|
|
752
|
+
* Set CSS variable value
|
|
753
|
+
*
|
|
754
|
+
* @param variableName - CSS variable name (with or without --)
|
|
755
|
+
* @param value - Value to set
|
|
756
|
+
* @param element - Element to set the variable on (defaults to document.documentElement)
|
|
757
|
+
*
|
|
758
|
+
* @example
|
|
759
|
+
* ```ts
|
|
760
|
+
* setCSSVariable('--color-primary', '#ff0000');
|
|
761
|
+
* ```
|
|
762
|
+
*/
|
|
763
|
+
declare function setCSSVariable(variableName: string, value: string, element?: HTMLElement): void;
|
|
764
|
+
/**
|
|
765
|
+
* Get contrasting foreground color for a background color
|
|
766
|
+
*
|
|
767
|
+
* @param backgroundToken - Background color token name (without 'var()')
|
|
768
|
+
* @returns The appropriate foreground color token
|
|
769
|
+
*
|
|
770
|
+
* @example
|
|
771
|
+
* ```ts
|
|
772
|
+
* const foreground = getForegroundColor('--color-primary');
|
|
773
|
+
* // Returns: 'var(--color-primary-foreground)'
|
|
774
|
+
* ```
|
|
775
|
+
*/
|
|
776
|
+
declare function getForegroundColor(backgroundToken: string): string;
|
|
777
|
+
/**
|
|
778
|
+
* Semantic color groups for different use cases
|
|
779
|
+
*/
|
|
780
|
+
declare const semanticColors: {
|
|
781
|
+
/**
|
|
782
|
+
* Status colors for indicating states
|
|
783
|
+
*/
|
|
784
|
+
readonly status: {
|
|
785
|
+
readonly success: {
|
|
786
|
+
readonly bg: "var(--color-success)";
|
|
787
|
+
readonly fg: "var(--color-success-foreground)";
|
|
788
|
+
};
|
|
789
|
+
readonly warning: {
|
|
790
|
+
readonly bg: "var(--color-warning)";
|
|
791
|
+
readonly fg: "var(--color-warning-foreground)";
|
|
792
|
+
};
|
|
793
|
+
readonly error: {
|
|
794
|
+
readonly bg: "var(--color-error)";
|
|
795
|
+
readonly fg: "var(--color-error-foreground)";
|
|
796
|
+
};
|
|
797
|
+
readonly info: {
|
|
798
|
+
readonly bg: "var(--color-info)";
|
|
799
|
+
readonly fg: "var(--color-info-foreground)";
|
|
800
|
+
};
|
|
801
|
+
};
|
|
802
|
+
/**
|
|
803
|
+
* Brand colors for primary UI elements
|
|
804
|
+
*/
|
|
805
|
+
readonly brand: {
|
|
806
|
+
readonly primary: {
|
|
807
|
+
readonly bg: "var(--color-primary)";
|
|
808
|
+
readonly fg: "var(--color-primary-foreground)";
|
|
809
|
+
};
|
|
810
|
+
readonly secondary: {
|
|
811
|
+
readonly bg: "var(--color-secondary)";
|
|
812
|
+
readonly fg: "var(--color-secondary-foreground)";
|
|
813
|
+
};
|
|
814
|
+
readonly accent: {
|
|
815
|
+
readonly bg: "var(--color-accent)";
|
|
816
|
+
readonly fg: "var(--color-accent-foreground)";
|
|
817
|
+
};
|
|
818
|
+
};
|
|
819
|
+
/**
|
|
820
|
+
* Interactive state colors
|
|
821
|
+
*/
|
|
822
|
+
readonly interactive: {
|
|
823
|
+
readonly default: {
|
|
824
|
+
readonly bg: "var(--color-background)";
|
|
825
|
+
readonly fg: "var(--color-foreground)";
|
|
826
|
+
};
|
|
827
|
+
readonly hover: {
|
|
828
|
+
readonly bg: "var(--color-hover)";
|
|
829
|
+
readonly fg: "var(--color-foreground)";
|
|
830
|
+
};
|
|
831
|
+
readonly active: {
|
|
832
|
+
readonly bg: "var(--color-active)";
|
|
833
|
+
readonly fg: "var(--color-foreground)";
|
|
834
|
+
};
|
|
835
|
+
readonly focus: {
|
|
836
|
+
readonly border: "var(--color-focus)";
|
|
837
|
+
};
|
|
838
|
+
};
|
|
839
|
+
};
|
|
840
|
+
/**
|
|
841
|
+
* Helper to create color pairs (background + foreground)
|
|
842
|
+
*
|
|
843
|
+
* @param type - Semantic color type
|
|
844
|
+
* @returns Object with bg and fg (and optionally border)
|
|
845
|
+
*
|
|
846
|
+
* @example
|
|
847
|
+
* ```tsx
|
|
848
|
+
* const errorColors = getSemanticColorPair('error');
|
|
849
|
+
* <div style={{
|
|
850
|
+
* backgroundColor: errorColors.bg,
|
|
851
|
+
* color: errorColors.fg
|
|
852
|
+
* }}>
|
|
853
|
+
* Error message
|
|
854
|
+
* </div>
|
|
855
|
+
* ```
|
|
856
|
+
*/
|
|
857
|
+
declare function getSemanticColorPair(type: 'success' | 'warning' | 'error' | 'info' | 'primary' | 'secondary' | 'accent'): {
|
|
858
|
+
bg: string;
|
|
859
|
+
fg: string;
|
|
860
|
+
};
|
|
861
|
+
/**
|
|
862
|
+
* Convert hex color to RGB values
|
|
863
|
+
*
|
|
864
|
+
* @param hex - Hex color string (with or without #)
|
|
865
|
+
* @returns Object with r, g, b values (0-255)
|
|
866
|
+
*
|
|
867
|
+
* @example
|
|
868
|
+
* ```ts
|
|
869
|
+
* const rgb = hexToRgb('#0066ff');
|
|
870
|
+
* // Returns: { r: 0, g: 102, b: 255 }
|
|
871
|
+
* ```
|
|
872
|
+
*/
|
|
873
|
+
declare function hexToRgb(hex: string): {
|
|
874
|
+
r: number;
|
|
875
|
+
g: number;
|
|
876
|
+
b: number;
|
|
877
|
+
} | null;
|
|
878
|
+
/**
|
|
879
|
+
* Calculate relative luminance of a color (WCAG formula)
|
|
880
|
+
*
|
|
881
|
+
* @param r - Red value (0-255)
|
|
882
|
+
* @param g - Green value (0-255)
|
|
883
|
+
* @param b - Blue value (0-255)
|
|
884
|
+
* @returns Relative luminance (0-1)
|
|
885
|
+
*/
|
|
886
|
+
declare function getLuminance(r: number, g: number, b: number): number;
|
|
887
|
+
/**
|
|
888
|
+
* Calculate contrast ratio between two colors (WCAG formula)
|
|
889
|
+
*
|
|
890
|
+
* @param hex1 - First color (hex)
|
|
891
|
+
* @param hex2 - Second color (hex)
|
|
892
|
+
* @returns Contrast ratio (1-21)
|
|
893
|
+
*
|
|
894
|
+
* @example
|
|
895
|
+
* ```ts
|
|
896
|
+
* const ratio = getContrastRatio('#ffffff', '#000000');
|
|
897
|
+
* // Returns: 21 (maximum contrast)
|
|
898
|
+
* ```
|
|
899
|
+
*/
|
|
900
|
+
declare function getContrastRatio(hex1: string, hex2: string): number;
|
|
901
|
+
/**
|
|
902
|
+
* Check if color pair meets WCAG AA contrast requirements
|
|
903
|
+
*
|
|
904
|
+
* @param foreground - Foreground color (hex)
|
|
905
|
+
* @param background - Background color (hex)
|
|
906
|
+
* @param level - WCAG level ('AA' or 'AAA')
|
|
907
|
+
* @param size - Text size ('normal' or 'large')
|
|
908
|
+
* @returns true if contrast ratio meets requirements
|
|
909
|
+
*
|
|
910
|
+
* @example
|
|
911
|
+
* ```ts
|
|
912
|
+
* const isAccessible = meetsContrastRequirements('#000000', '#ffffff', 'AA', 'normal');
|
|
913
|
+
* // Returns: true
|
|
914
|
+
* ```
|
|
915
|
+
*/
|
|
916
|
+
declare function meetsContrastRequirements(foreground: string, background: string, level?: 'AA' | 'AAA', size?: 'normal' | 'large'): boolean;
|
|
917
|
+
/**
|
|
918
|
+
* Convert hex to HSL for manipulation
|
|
919
|
+
*/
|
|
920
|
+
declare function hexToHSL(hex: string): {
|
|
921
|
+
h: number;
|
|
922
|
+
s: number;
|
|
923
|
+
l: number;
|
|
924
|
+
};
|
|
925
|
+
/**
|
|
926
|
+
* Convert HSL to hex
|
|
927
|
+
*/
|
|
928
|
+
declare function hslToHex(h: number, s: number, l: number): string;
|
|
929
|
+
/**
|
|
930
|
+
* Adjust lightness of a hex color
|
|
931
|
+
* @param hex - Input color
|
|
932
|
+
* @param percent - Amount to adjust (-100 to 100)
|
|
933
|
+
*/
|
|
934
|
+
declare function adjustLightness(hex: string, percent: number): string;
|
|
935
|
+
/**
|
|
936
|
+
* Adjust saturation of a hex color
|
|
937
|
+
* @param hex - Input color
|
|
938
|
+
* @param percent - Amount to adjust (-100 to 100)
|
|
939
|
+
*/
|
|
940
|
+
declare function adjustSaturation(hex: string, percent: number): string;
|
|
941
|
+
/**
|
|
942
|
+
* Rotate hue of a hex color
|
|
943
|
+
* @param hex - Input color
|
|
944
|
+
* @param degrees - Degrees to rotate (0-360)
|
|
945
|
+
*/
|
|
946
|
+
declare function rotateHue(hex: string, degrees: number): string;
|
|
947
|
+
/**
|
|
948
|
+
* Add opacity to a hex color (returns rgba CSS value)
|
|
949
|
+
* @param hex - Input color
|
|
950
|
+
* @param opacity - Opacity (0-1)
|
|
951
|
+
*/
|
|
952
|
+
declare function adjustOpacity(hex: string, opacity: number): string;
|
|
953
|
+
/**
|
|
954
|
+
* Get optimal foreground color (white or black) for a background
|
|
955
|
+
* Uses WCAG contrast formula
|
|
956
|
+
*/
|
|
957
|
+
declare function getOptimalForeground(bgHex: string, whiteHex?: string, blackHex?: string): string;
|
|
958
|
+
/**
|
|
959
|
+
* Generate a complete tint/shade scale (like Tailwind)
|
|
960
|
+
* Returns 50, 100, 200, ..., 900 variants
|
|
961
|
+
*/
|
|
962
|
+
declare function generateColorScale(baseHex: string): Record<number, string>;
|
|
963
|
+
/**
|
|
964
|
+
* Color utilities for common operations
|
|
965
|
+
*/
|
|
966
|
+
declare const colorUtils: {
|
|
967
|
+
readonly getCSSVariable: typeof getCSSVariable;
|
|
968
|
+
readonly setCSSVariable: typeof setCSSVariable;
|
|
969
|
+
readonly getForegroundColor: typeof getForegroundColor;
|
|
970
|
+
readonly getSemanticColorPair: typeof getSemanticColorPair;
|
|
971
|
+
readonly hexToRgb: typeof hexToRgb;
|
|
972
|
+
readonly hexToHSL: typeof hexToHSL;
|
|
973
|
+
readonly hslToHex: typeof hslToHex;
|
|
974
|
+
readonly adjustLightness: typeof adjustLightness;
|
|
975
|
+
readonly adjustSaturation: typeof adjustSaturation;
|
|
976
|
+
readonly rotateHue: typeof rotateHue;
|
|
977
|
+
readonly adjustOpacity: typeof adjustOpacity;
|
|
978
|
+
readonly getOptimalForeground: typeof getOptimalForeground;
|
|
979
|
+
readonly generateColorScale: typeof generateColorScale;
|
|
980
|
+
readonly getContrastRatio: typeof getContrastRatio;
|
|
981
|
+
readonly meetsContrastRequirements: typeof meetsContrastRequirements;
|
|
982
|
+
};
|
|
983
|
+
|
|
984
|
+
declare function cn(...inputs: ClassValue[]): string;
|
|
985
|
+
|
|
986
|
+
export { getLuminance as A, type BreadcrumbItemLegacy as B, getContrastRatio as C, meetsContrastRequirements as D, hexToHSL as E, hslToHex as F, adjustLightness as G, adjustSaturation as H, rotateHue as I, adjustOpacity as J, getOptimalForeground as K, generateColorScale as L, colorUtils as M, cn as N, parseCode as O, tokenize as P, detectLanguage as Q, type RouteConfig as R, type SyntaxType as S, type Transition as T, type Language as U, type Variant as V, type SyntaxToken as a, Breadcrumbs as b, type BreadcrumbsProps as c, type Variants as d, durations as e, easings as f, fadeVariants as g, scaleVariants as h, drawerVariants as i, collapseVariants as j, createAnimation as k, listVariants as l, modalVariants as m, scaleDuration as n, generateBreadcrumbs as o, presets as p, colorTokens as q, rotateVariants as r, slideVariants as s, transitions as t, getCSSVariable as u, setCSSVariable as v, getForegroundColor as w, semanticColors as x, getSemanticColorPair as y, hexToRgb as z };
|