@donkit-ai/design-system 1.1.5 → 1.1.7
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/index.d.ts +443 -0
- package/dist/tokens.css +1 -1
- package/package.json +4 -2
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ReactNode,
|
|
3
|
+
ReactElement,
|
|
4
|
+
MouseEvent,
|
|
5
|
+
HTMLAttributes,
|
|
6
|
+
ButtonHTMLAttributes,
|
|
7
|
+
InputHTMLAttributes,
|
|
8
|
+
TextareaHTMLAttributes,
|
|
9
|
+
AnchorHTMLAttributes,
|
|
10
|
+
} from 'react';
|
|
11
|
+
|
|
12
|
+
// ─── Shared ───────────────────────────────────────────────────────────────
|
|
13
|
+
|
|
14
|
+
type Size = 'xs' | 's' | 'm' | 'l';
|
|
15
|
+
|
|
16
|
+
// ─── iconSizes ────────────────────────────────────────────────────────────
|
|
17
|
+
|
|
18
|
+
export declare const iconSizes: { 1: 16; 2: 20; 3: 24; 4: 28; 5: 48 };
|
|
19
|
+
|
|
20
|
+
// ─── Button ───────────────────────────────────────────────────────────────
|
|
21
|
+
|
|
22
|
+
export interface ButtonProps extends Omit<HTMLAttributes<HTMLElement>, 'onClick'> {
|
|
23
|
+
children?: ReactNode;
|
|
24
|
+
variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
25
|
+
size?: Size;
|
|
26
|
+
fullWidth?: boolean;
|
|
27
|
+
icon?: ReactNode;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
onClick?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
|
|
30
|
+
type?: 'button' | 'submit' | 'reset';
|
|
31
|
+
href?: string;
|
|
32
|
+
'aria-label'?: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export declare function Button(props: ButtonProps): JSX.Element;
|
|
36
|
+
|
|
37
|
+
// ─── Tabs ─────────────────────────────────────────────────────────────────
|
|
38
|
+
|
|
39
|
+
export interface TabsProps extends HTMLAttributes<HTMLDivElement> {
|
|
40
|
+
children?: ReactNode;
|
|
41
|
+
size?: Size;
|
|
42
|
+
variant?: 'ghost' | 'underline';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export declare function Tabs(props: TabsProps): JSX.Element;
|
|
46
|
+
|
|
47
|
+
export interface TabProps extends Omit<HTMLAttributes<HTMLElement>, 'onClick'> {
|
|
48
|
+
children?: ReactNode;
|
|
49
|
+
selected?: boolean;
|
|
50
|
+
onClick?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
|
|
51
|
+
size?: Size;
|
|
52
|
+
variant?: 'ghost' | 'underline';
|
|
53
|
+
disabled?: boolean;
|
|
54
|
+
icon?: ReactNode;
|
|
55
|
+
href?: string;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export declare function Tab(props: TabProps): JSX.Element;
|
|
59
|
+
|
|
60
|
+
// ─── Input ────────────────────────────────────────────────────────────────
|
|
61
|
+
|
|
62
|
+
export interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
|
|
63
|
+
label?: string;
|
|
64
|
+
error?: string;
|
|
65
|
+
hint?: string;
|
|
66
|
+
fullWidth?: boolean;
|
|
67
|
+
icon?: ReactNode;
|
|
68
|
+
iconRight?: ReactNode;
|
|
69
|
+
onIconRightClick?: () => void;
|
|
70
|
+
size?: Size;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export declare function Input(props: InputProps): JSX.Element;
|
|
74
|
+
|
|
75
|
+
// ─── Textarea ─────────────────────────────────────────────────────────────
|
|
76
|
+
|
|
77
|
+
export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
78
|
+
label?: string;
|
|
79
|
+
error?: string;
|
|
80
|
+
hint?: string;
|
|
81
|
+
fullWidth?: boolean;
|
|
82
|
+
size?: 'xs' | 's' | 'm';
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export declare function Textarea(props: TextareaProps): JSX.Element;
|
|
86
|
+
|
|
87
|
+
// ─── Select ───────────────────────────────────────────────────────────────
|
|
88
|
+
|
|
89
|
+
export interface SelectOption {
|
|
90
|
+
value: string;
|
|
91
|
+
label: string;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface SelectProps {
|
|
95
|
+
label?: string;
|
|
96
|
+
value?: string;
|
|
97
|
+
onChange?: (value: string) => void;
|
|
98
|
+
options?: SelectOption[];
|
|
99
|
+
placeholder?: string;
|
|
100
|
+
error?: string;
|
|
101
|
+
fullWidth?: boolean;
|
|
102
|
+
size?: Size;
|
|
103
|
+
disabled?: boolean;
|
|
104
|
+
id?: string;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export declare function Select(props: SelectProps): JSX.Element;
|
|
108
|
+
|
|
109
|
+
// ─── Stepper ──────────────────────────────────────────────────────────────
|
|
110
|
+
|
|
111
|
+
export interface StepperProps {
|
|
112
|
+
label?: string;
|
|
113
|
+
value?: number;
|
|
114
|
+
onChange?: (value: number) => void;
|
|
115
|
+
min?: number;
|
|
116
|
+
max?: number;
|
|
117
|
+
step?: number;
|
|
118
|
+
size?: 'xs' | 's' | 'm';
|
|
119
|
+
disabled?: boolean;
|
|
120
|
+
hint?: string;
|
|
121
|
+
error?: string;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export declare function Stepper(props: StepperProps): JSX.Element;
|
|
125
|
+
|
|
126
|
+
// ─── Toggle ───────────────────────────────────────────────────────────────
|
|
127
|
+
|
|
128
|
+
export interface ToggleProps {
|
|
129
|
+
checked?: boolean;
|
|
130
|
+
onChange?: (checked: boolean) => void;
|
|
131
|
+
size?: Size;
|
|
132
|
+
disabled?: boolean;
|
|
133
|
+
label?: string;
|
|
134
|
+
id?: string;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export declare function Toggle(props: ToggleProps): JSX.Element;
|
|
138
|
+
|
|
139
|
+
// ─── Checkbox ─────────────────────────────────────────────────────────────
|
|
140
|
+
|
|
141
|
+
export interface CheckboxProps {
|
|
142
|
+
checked?: boolean;
|
|
143
|
+
onChange?: (checked: boolean) => void;
|
|
144
|
+
size?: Size;
|
|
145
|
+
disabled?: boolean;
|
|
146
|
+
label?: string;
|
|
147
|
+
id?: string;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export declare function Checkbox(props: CheckboxProps): JSX.Element;
|
|
151
|
+
|
|
152
|
+
// ─── Radio ────────────────────────────────────────────────────────────────
|
|
153
|
+
|
|
154
|
+
export interface RadioProps {
|
|
155
|
+
checked?: boolean;
|
|
156
|
+
onChange?: (checked: boolean) => void;
|
|
157
|
+
size?: Size;
|
|
158
|
+
disabled?: boolean;
|
|
159
|
+
label?: string;
|
|
160
|
+
name?: string;
|
|
161
|
+
value?: string;
|
|
162
|
+
id?: string;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export declare function Radio(props: RadioProps): JSX.Element;
|
|
166
|
+
|
|
167
|
+
// ─── Badge ────────────────────────────────────────────────────────────────
|
|
168
|
+
|
|
169
|
+
export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
170
|
+
children?: ReactNode;
|
|
171
|
+
variant?: 'default' | 'info' | 'success' | 'warning' | 'error' | 'accent';
|
|
172
|
+
size?: 's' | 'm';
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export declare function Badge(props: BadgeProps): JSX.Element;
|
|
176
|
+
|
|
177
|
+
// ─── Alert ────────────────────────────────────────────────────────────────
|
|
178
|
+
|
|
179
|
+
export interface AlertProps extends HTMLAttributes<HTMLDivElement> {
|
|
180
|
+
children?: ReactNode;
|
|
181
|
+
variant?: 'info' | 'success' | 'warning' | 'error';
|
|
182
|
+
title?: string;
|
|
183
|
+
onClose?: () => void;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export declare function Alert(props: AlertProps): JSX.Element;
|
|
187
|
+
|
|
188
|
+
// ─── Modal ────────────────────────────────────────────────────────────────
|
|
189
|
+
|
|
190
|
+
export interface ModalProps extends HTMLAttributes<HTMLDivElement> {
|
|
191
|
+
children?: ReactNode;
|
|
192
|
+
title?: string;
|
|
193
|
+
onClose?: () => void;
|
|
194
|
+
size?: 's' | 'm' | 'l';
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export declare function Modal(props: ModalProps): JSX.Element;
|
|
198
|
+
|
|
199
|
+
export interface ModalFooterProps {
|
|
200
|
+
children?: ReactNode;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export declare function ModalFooter(props: ModalFooterProps): JSX.Element;
|
|
204
|
+
|
|
205
|
+
// ─── Card ─────────────────────────────────────────────────────────────────
|
|
206
|
+
|
|
207
|
+
export interface CardProps extends HTMLAttributes<HTMLElement> {
|
|
208
|
+
children?: ReactNode;
|
|
209
|
+
padding?: 's' | 'm' | 'l';
|
|
210
|
+
variant?: 'info' | 'interactive';
|
|
211
|
+
/** @deprecated use variant="interactive" */
|
|
212
|
+
hover?: boolean;
|
|
213
|
+
onClick?: (e: MouseEvent<HTMLElement>) => void;
|
|
214
|
+
href?: string;
|
|
215
|
+
disabled?: boolean;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export declare function Card(props: CardProps): JSX.Element;
|
|
219
|
+
|
|
220
|
+
// ─── Typography ───────────────────────────────────────────────────────────
|
|
221
|
+
|
|
222
|
+
export interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {
|
|
223
|
+
children?: ReactNode;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
export interface ParagraphProps extends HTMLAttributes<HTMLParagraphElement> {
|
|
227
|
+
children?: ReactNode;
|
|
228
|
+
secondary?: boolean;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export declare function H1(props: HeadingProps): JSX.Element;
|
|
232
|
+
export declare function H2(props: HeadingProps): JSX.Element;
|
|
233
|
+
export declare function H3(props: HeadingProps): JSX.Element;
|
|
234
|
+
export declare function H4(props: HeadingProps): JSX.Element;
|
|
235
|
+
export declare function P1(props: ParagraphProps): JSX.Element;
|
|
236
|
+
export declare function P2(props: ParagraphProps): JSX.Element;
|
|
237
|
+
export declare function P3(props: ParagraphProps): JSX.Element;
|
|
238
|
+
|
|
239
|
+
// ─── Accordion ────────────────────────────────────────────────────────────
|
|
240
|
+
|
|
241
|
+
export interface AccordionProps extends HTMLAttributes<HTMLDivElement> {
|
|
242
|
+
children?: ReactNode;
|
|
243
|
+
title: string;
|
|
244
|
+
defaultExpanded?: boolean;
|
|
245
|
+
expanded?: boolean;
|
|
246
|
+
onToggle?: (expanded: boolean) => void;
|
|
247
|
+
padding?: 's' | 'm' | 'l';
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export declare function Accordion(props: AccordionProps): JSX.Element;
|
|
251
|
+
|
|
252
|
+
// ─── CodeAccordion ────────────────────────────────────────────────────────
|
|
253
|
+
|
|
254
|
+
export interface CodeAccordionProps extends HTMLAttributes<HTMLDivElement> {
|
|
255
|
+
children?: ReactNode;
|
|
256
|
+
title?: string;
|
|
257
|
+
defaultExpanded?: boolean;
|
|
258
|
+
expanded?: boolean;
|
|
259
|
+
onToggle?: (expanded: boolean) => void;
|
|
260
|
+
padding?: 's' | 'm' | 'l';
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export declare function CodeAccordion(props: CodeAccordionProps): JSX.Element;
|
|
264
|
+
|
|
265
|
+
// ─── Code ─────────────────────────────────────────────────────────────────
|
|
266
|
+
|
|
267
|
+
export interface CodeProps extends HTMLAttributes<HTMLElement> {
|
|
268
|
+
children?: ReactNode;
|
|
269
|
+
block?: boolean;
|
|
270
|
+
collapsible?: boolean;
|
|
271
|
+
title?: string;
|
|
272
|
+
defaultExpanded?: boolean;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
export declare function Code(props: CodeProps): JSX.Element;
|
|
276
|
+
|
|
277
|
+
// ─── Link ─────────────────────────────────────────────────────────────────
|
|
278
|
+
|
|
279
|
+
export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
280
|
+
children?: ReactNode;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
export declare function Link(props: LinkProps): JSX.Element;
|
|
284
|
+
|
|
285
|
+
// ─── Tooltip ──────────────────────────────────────────────────────────────
|
|
286
|
+
|
|
287
|
+
export interface TooltipProps extends HTMLAttributes<HTMLDivElement> {
|
|
288
|
+
children?: ReactNode;
|
|
289
|
+
content?: ReactNode;
|
|
290
|
+
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
export declare function Tooltip(props: TooltipProps): JSX.Element;
|
|
294
|
+
|
|
295
|
+
// ─── Spinner ──────────────────────────────────────────────────────────────
|
|
296
|
+
|
|
297
|
+
export interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {
|
|
298
|
+
size?: Size;
|
|
299
|
+
color?: 'default' | 'accent' | 'white';
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export declare function Spinner(props: SpinnerProps): JSX.Element;
|
|
303
|
+
|
|
304
|
+
// ─── Skeleton ─────────────────────────────────────────────────────────────
|
|
305
|
+
|
|
306
|
+
export interface SkeletonProps extends HTMLAttributes<HTMLSpanElement> {
|
|
307
|
+
width?: number | string;
|
|
308
|
+
height?: number | string;
|
|
309
|
+
shape?: 'rect' | 'circle';
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
export declare function Skeleton(props: SkeletonProps): JSX.Element;
|
|
313
|
+
|
|
314
|
+
// ─── Avatar ───────────────────────────────────────────────────────────────
|
|
315
|
+
|
|
316
|
+
export interface AvatarProps extends HTMLAttributes<HTMLDivElement> {
|
|
317
|
+
seed?: string;
|
|
318
|
+
icon?: ReactNode;
|
|
319
|
+
src?: string;
|
|
320
|
+
size?: number;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
export declare function Avatar(props: AvatarProps): JSX.Element;
|
|
324
|
+
|
|
325
|
+
// ─── Table ────────────────────────────────────────────────────────────────
|
|
326
|
+
|
|
327
|
+
export interface TableProps extends HTMLAttributes<HTMLTableElement> {
|
|
328
|
+
children?: ReactNode;
|
|
329
|
+
size?: 'compact' | 'comfortable';
|
|
330
|
+
stickyTop?: number | string;
|
|
331
|
+
maxHeight?: string;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
export declare function Table(props: TableProps): JSX.Element;
|
|
335
|
+
|
|
336
|
+
export interface TableHeadProps extends HTMLAttributes<HTMLTableSectionElement> {
|
|
337
|
+
children?: ReactNode;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export declare function TableHead(props: TableHeadProps): JSX.Element;
|
|
341
|
+
|
|
342
|
+
export interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {
|
|
343
|
+
children?: ReactNode;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
export declare function TableBody(props: TableBodyProps): JSX.Element;
|
|
347
|
+
|
|
348
|
+
export interface TableRowProps extends HTMLAttributes<HTMLTableRowElement> {
|
|
349
|
+
children?: ReactNode;
|
|
350
|
+
interactive?: boolean;
|
|
351
|
+
selected?: boolean;
|
|
352
|
+
subheader?: boolean;
|
|
353
|
+
onClick?: () => void;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export declare function TableRow(props: TableRowProps): JSX.Element;
|
|
357
|
+
|
|
358
|
+
export interface TableSubheaderRowProps extends HTMLAttributes<HTMLTableRowElement> {
|
|
359
|
+
children?: ReactNode;
|
|
360
|
+
colSpan?: number;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
export declare function TableSubheaderRow(props: TableSubheaderRowProps): JSX.Element;
|
|
364
|
+
|
|
365
|
+
export interface ThProps extends HTMLAttributes<HTMLTableCellElement> {
|
|
366
|
+
children?: ReactNode;
|
|
367
|
+
align?: 'left' | 'center' | 'right';
|
|
368
|
+
sortDir?: 'asc' | 'desc' | null;
|
|
369
|
+
onSort?: () => void;
|
|
370
|
+
width?: number | string;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
export declare function Th(props: ThProps): JSX.Element;
|
|
374
|
+
|
|
375
|
+
export interface TdProps extends HTMLAttributes<HTMLTableCellElement> {
|
|
376
|
+
children?: ReactNode;
|
|
377
|
+
align?: 'left' | 'center' | 'right';
|
|
378
|
+
secondary?: boolean;
|
|
379
|
+
muted?: boolean;
|
|
380
|
+
truncate?: boolean;
|
|
381
|
+
nowrap?: boolean;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
export declare function Td(props: TdProps): JSX.Element;
|
|
385
|
+
|
|
386
|
+
// ─── EmptyState ───────────────────────────────────────────────────────────
|
|
387
|
+
|
|
388
|
+
export interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {
|
|
389
|
+
icon?: ReactNode;
|
|
390
|
+
title: string;
|
|
391
|
+
description?: string;
|
|
392
|
+
action?: ReactNode;
|
|
393
|
+
size?: 's' | 'm' | 'l';
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
export declare function EmptyState(props: EmptyStateProps): JSX.Element;
|
|
397
|
+
|
|
398
|
+
// ─── Dropdown ─────────────────────────────────────────────────────────────
|
|
399
|
+
|
|
400
|
+
export interface DropdownItem {
|
|
401
|
+
label?: string;
|
|
402
|
+
onClick?: () => void;
|
|
403
|
+
icon?: ReactNode;
|
|
404
|
+
shortcut?: string;
|
|
405
|
+
disabled?: boolean;
|
|
406
|
+
danger?: boolean;
|
|
407
|
+
href?: string;
|
|
408
|
+
separator?: boolean;
|
|
409
|
+
type?: 'section';
|
|
410
|
+
content?: ReactNode;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
export interface DropdownProps extends HTMLAttributes<HTMLDivElement> {
|
|
414
|
+
trigger: ReactNode;
|
|
415
|
+
items?: DropdownItem[];
|
|
416
|
+
open?: boolean;
|
|
417
|
+
onOpenChange?: (open: boolean) => void;
|
|
418
|
+
align?: 'left' | 'right';
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
export declare function Dropdown(props: DropdownProps): JSX.Element;
|
|
422
|
+
|
|
423
|
+
// ─── Toast ────────────────────────────────────────────────────────────────
|
|
424
|
+
|
|
425
|
+
export interface ToastOptions {
|
|
426
|
+
type?: 'default' | 'success' | 'warning' | 'error';
|
|
427
|
+
duration?: number;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
export interface ToastFn {
|
|
431
|
+
(message: string, opts?: ToastOptions): void;
|
|
432
|
+
success(message: string, opts?: Omit<ToastOptions, 'type'>): void;
|
|
433
|
+
warning(message: string, opts?: Omit<ToastOptions, 'type'>): void;
|
|
434
|
+
error(message: string, opts?: Omit<ToastOptions, 'type'>): void;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
export declare function useToast(): { toast: ToastFn };
|
|
438
|
+
|
|
439
|
+
export interface ToastContainerProps {
|
|
440
|
+
position?: 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
export declare function ToastContainer(props: ToastContainerProps): JSX.Element | null;
|
package/dist/tokens.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer base{:root{--color-white: #F8F9FA;--color-black: #0E0F11;--color-red-light: #EE7A7A;--color-red: #EA6464;--color-red-dark: #E15252;--color-info: #60A5FA;--color-info-dark: #2563EB;--color-success: #00C86E;--color-success-dark: #00A055;--color-warning: #FFBB00;--color-warning-dark: #D97706;--color-error: #FF1200;--color-error-dark: #DC2626;--color-surface-0: #0E0F11;--color-surface-1: #16181C;--color-surface-2: #1E2026;--color-surface-3: #262830;--color-fg-primary: rgba(248, 249, 250, .92);--color-fg-secondary: rgba(248, 249, 250, .65);--color-fg-disabled: rgba(248, 249, 250, .3);--color-state-hover: rgba(248, 249, 250, .07);--color-state-active: rgba(248, 249, 250, .12);--color-state-selected: rgba(248, 249, 250, .1);--color-border-light: rgba(248, 249, 250, .08);--color-border-default: rgba(248, 249, 250, .2);--color-border-strong: rgba(248, 249, 250, .4);--color-border-focus: rgba(248, 249, 250, .5);--color-accent-default: var(--color-red);--color-accent-hover: var(--color-red-light);--color-accent-fg: var(--color-white);--color-accent-hover-fg: var(--color-accent-fg);--color-accent-bg: rgba(234, 100, 100, .12);--color-status-info: var(--color-info);--color-status-info-bg: rgba(37, 99, 235, .15);--color-status-success: var(--color-success);--color-status-success-bg: rgba(0, 160, 85, .15);--color-status-warning: var(--color-warning);--color-status-warning-bg: rgba(217, 119, 6, .15);--color-status-error: var(--color-error);--color-status-error-bg: rgba(220, 38, 38, .15);--color-overlay: rgba(14, 15, 17, .65);--shadow-1: 0 2px 8px rgba(0, 0, 0, .4), 0 0 0 1px rgba(248, 249, 250, .06);--shadow-2: 0 8px 24px rgba(0, 0, 0, .5), 0 0 0 1px rgba(248, 249, 250, .08);--shadow-3: 0 16px 48px rgba(0, 0, 0, .6), 0 0 0 1px rgba(248, 249, 250, .1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-1: 2px;--radius-2: 4px;--radius-3: 6px;--radius-4: 8px;--radius-6: 12px;--radius-8: 16px;--radius-full: 9999px;--height-1: 24px;--height-2: 32px;--height-3: 44px;--height-4: 56px;--icon-1: 16px;--icon-2: 20px;--icon-3: 24px;--icon-4: 28px;--icon-5: 48px;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--text-4xl: 32px;--text-3xl: 28px;--text-2xl: 24px;--text-xl: 20px;--text-lg: 16px;--text-md: 14px;--text-sm: 12px;--tracking-4xl: 0;--tracking-3xl: 0;--tracking-2xl: 0;--tracking-xl: 0;--tracking-lg: .02em;--tracking-md: .04em;--tracking-sm: .06em;--z-sticky: 100;--z-drawer: 200;--z-modal: 300;--z-dropdown: 400;--z-toast: 500;--z-tooltip: 600;--layout-padding-x: 16px;--layout-padding-y: 32px;--layout-header-height: 64px;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--font-ui: inherit;--ui-font-weight: var(--font-weight-medium);--ui-tracking: 0;--tab-tracking: 0;--ui-text-transform: none;--tab-font-size-xs: var(--text-sm);--tab-font-size-s: var(--text-md);--tab-font-size-m: var(--text-lg);--tab-font-size-l: var(--text-lg);--label-font-size: var(--text-md);--label-color: var(--color-fg-primary);--label-tracking: 0;--label-text-transform: none;--field-border: var(--color-border-default);--field-border-active: var(--color-border-strong);--btn-padding-ratio: .5;--btn-font-weight: var(--font-weight-medium);--btn-font-size-xs: var(--text-sm);--btn-font-size-s: var(--text-md);--btn-font-size-m: var(--text-lg);--btn-font-size-l: var(--text-xl);--btn-icon-size-xs: var(--icon-1);--btn-icon-size-s: var(--icon-2);--btn-icon-size-m: var(--icon-3);--btn-icon-size-l: var(--icon-4);--btn-secondary-color: var(--color-fg-primary);--btn-secondary-border: var(--color-border-default);--btn-secondary-hover-border: var(--color-border-strong);--btn-secondary-hover-bg: var(--color-state-hover);--btn-secondary-hover-color: var(--btn-secondary-color);--badge-font-size-s: var(--text-sm);--badge-font-size-m: var(--text-md);--badge-tracking: var(--ui-tracking);--badge-text-transform: var(--ui-text-transform);--card-border: var(--color-border-light);--card-hover-transform: none;--table-th-font-family: var(--font-ui);--table-th-font-size: inherit;--table-th-color: var(--color-fg-secondary);--table-th-weight: var(--font-weight-semibold);--table-th-tracking: 0;--table-th-text-transform: none;--table-wrap-border: var(--color-border-light);--table-row-border: var(--color-border-light);--table-subrow-bg: var(--color-surface-2);--table-subrow-color: var(--color-fg-secondary);--table-subrow-font: var(--font-ui);--table-subrow-tracking: 0;--table-subrow-transform: none;--color-accent-2: #FFCD1B;--color-accent-2-bg: rgba(255, 205, 27, .1);--color-accent-2-fg: #0A0A0B;--breakpoint-mobile: 375px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1280px}[data-variant=landing]{--color-surface-0: #0A0A0B;--color-surface-1: #111114;--color-surface-2: #18181C;--color-surface-3: #1F1F24;--color-border-light: rgba(255, 250, 250, .05);--color-border-default: rgba(255, 250, 250, .1);--color-border-strong: rgba(255, 250, 250, .22);--color-border-focus: rgba(255, 250, 250, .42);--shadow-1: 0 2px 12px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 250, 250, .05);--shadow-2: 0 8px 32px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 250, 250, .06);--shadow-3: 0 20px 60px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 250, 250, .07);--radius-1: 0px;--radius-2: 0px;--radius-3: 0px;--radius-4: 0px;--radius-6: 0px;--radius-8: 0px;--font-ui: "Fira Code", monospace;--ui-font-weight: var(--font-weight-regular);--ui-tracking: .15em;--tab-tracking: .1em;--ui-text-transform: uppercase;--btn-padding-ratio: .62;--btn-font-weight: var(--font-weight-regular);--btn-font-size-xs: var(--text-sm);--btn-font-size-s: var(--text-sm);--btn-font-size-m: var(--text-sm);--btn-font-size-l: var(--text-sm);--tab-font-size-xs: var(--text-sm);--tab-font-size-s: var(--text-sm);--tab-font-size-m: var(--text-sm);--tab-font-size-l: var(--text-sm);--label-font-size: var(--text-sm);--label-color: var(--color-fg-secondary);--field-border: rgba(248, 249, 250, .2);--field-border-active: rgba(248, 249, 250, .4);--btn-icon-size-xs: 16px;--btn-icon-size-s: 16px;--btn-icon-size-m: 18px;--btn-icon-size-l: 20px;--btn-secondary-color: var(--color-fg-primary);--btn-secondary-border: var(--color-border-default);--btn-secondary-hover-border: var(--color-accent-2);--btn-secondary-hover-bg: var(--color-accent-2);--btn-secondary-hover-color: var(--color-accent-2-fg);--badge-font-size-s: 9px;--badge-font-size-m: 10px;--badge-tracking: .12em;--badge-text-transform: uppercase;--card-border: rgba(255, 250, 250, .12);--card-hover-transform: translateY(-3px);--table-th-font-family: "Fira Code", monospace;--table-th-color: var(--color-accent-default);--table-th-weight: var(--font-weight-regular);--table-th-tracking: .15em;--table-th-text-transform: uppercase;--table-subrow-bg: var(--color-surface-2);--table-subrow-color: var(--color-fg-secondary);--table-subrow-font: "Fira Code", monospace;--table-subrow-tracking: .15em;--table-subrow-transform: uppercase;--color-accent-hover: var(--color-accent-2);--color-accent-hover-fg: var(--color-accent-2-fg)}[data-theme=light]{--color-surface-0: #F8F9FA;--color-surface-1: #F2F2F2;--color-surface-2: #E8E8E8;--color-surface-3: #F8F9FA;--color-fg-primary: rgba(14, 15, 17, .95);--color-fg-secondary: rgba(14, 15, 17, .65);--color-fg-disabled: rgba(14, 15, 17, .3);--color-state-hover: rgba(14, 15, 17, .05);--color-state-active: rgba(14, 15, 17, .1);--color-state-selected: rgba(14, 15, 17, .08);--color-accent-hover: var(--color-red-dark);--color-border-light: rgba(14, 15, 17, .1);--color-border-default: rgba(14, 15, 17, .2);--color-border-strong: rgba(14, 15, 17, .4);--color-border-focus: rgba(14, 15, 17, .5);--color-overlay: rgba(14, 15, 17, .6);--shadow-1: 0 2px 8px rgba(0, 0, 0, .1);--shadow-2: 0 8px 24px rgba(0, 0, 0, .14);--shadow-3: 0 16px 48px rgba(0, 0, 0, .18);--color-status-info: var(--color-info-dark);--color-status-info-bg: rgba(96, 165, 250, .15);--color-status-success: var(--color-success-dark);--color-status-success-bg: rgba(0, 200, 110, .15);--color-status-warning: var(--color-warning-dark);--color-status-warning-bg: rgba(255, 187, 0, .15);--color-status-error: var(--color-error-dark);--color-status-error-bg: rgba(255, 18, 0, .15)}@media (min-width: 768px){:root{--text-4xl: 40px;--text-3xl: 36px;--text-2xl: 28px;--text-xl: 24px;--text-lg: 18px;--text-md: 16px;--text-sm: 14px;--tracking-lg: .02em;--tracking-md: .02em;--tracking-sm: .04em;--layout-padding-x: 20px;--layout-padding-y: 48px;--layout-header-height: 72px}}@media (min-width: 1280px){:root{--layout-padding-x: 24px;--layout-padding-y: 64px}}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-surface-0);color:var(--color-fg-primary);transition:background-color var(--transition-slow),color var(--transition-slow)}*{box-sizing:border-box}}.ds-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:var(--btn-font-weight);font-family:var(--font-ui);letter-spacing:var(--ui-tracking);text-transform:var(--ui-text-transform);line-height:1;border:none;cursor:pointer;transition:background-color var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal);white-space:nowrap;text-decoration:none;position:relative;isolation:isolate}.ds-button:disabled,.ds-button[aria-disabled=true]{background-color:transparent!important;color:var(--color-fg-disabled)!important;border-color:var(--color-border-default)!important;border-width:1px;border-style:solid;cursor:not-allowed;pointer-events:none}.ds-button__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.ds-button__icon>svg{width:var(--_btn-icon-sz);height:var(--_btn-icon-sz)}.ds-button--xs{--_btn-icon-sz: var(--btn-icon-size-xs)}.ds-button--s{--_btn-icon-sz: var(--btn-icon-size-s)}.ds-button--m{--_btn-icon-sz: var(--btn-icon-size-m)}.ds-button--l{--_btn-icon-sz: var(--btn-icon-size-l)}.ds-button--primary{color:var(--color-accent-fg);background-color:var(--color-accent-default)}.ds-button--primary:hover:not(:disabled):not([aria-disabled=true]){background-color:var(--color-accent-hover);color:var(--color-accent-hover-fg)}.ds-button--secondary{color:var(--btn-secondary-color);background-color:transparent;border:1px solid var(--btn-secondary-border)}.ds-button--secondary:before,.ds-button--ghost:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-button--secondary:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--btn-secondary-hover-border);color:var(--btn-secondary-hover-color)}.ds-button--secondary:hover:not(:disabled):not([aria-disabled=true]):before{background-color:var(--btn-secondary-hover-bg)}.ds-button--ghost{color:var(--color-fg-secondary);background-color:transparent}.ds-button--ghost:hover:not(:disabled):not([aria-disabled=true]){color:var(--color-fg-primary)}.ds-button--ghost:hover:not(:disabled):not([aria-disabled=true]):before{background-color:var(--color-state-hover)}.ds-button--danger{color:var(--color-accent-fg);background-color:var(--color-error-dark)}.ds-button--danger:hover:not(:disabled):not([aria-disabled=true]){background-color:#b91c1c}.ds-button--xs{height:var(--height-1);padding:0 calc(var(--height-1) * var(--btn-padding-ratio));font-size:var(--btn-font-size-xs);border-radius:var(--radius-2)}.ds-button--s{height:var(--height-2);padding:0 calc(var(--height-2) * var(--btn-padding-ratio));font-size:var(--btn-font-size-s);border-radius:var(--radius-2)}.ds-button--m{height:var(--height-3);padding:0 calc(var(--height-3) * var(--btn-padding-ratio));font-size:var(--btn-font-size-m);border-radius:var(--radius-3)}.ds-button--l{height:var(--height-4);padding:0 calc(var(--height-4) * var(--btn-padding-ratio));font-size:var(--btn-font-size-l);border-radius:var(--radius-3);gap:var(--space-3)}.ds-button--full{width:100%}.ds-button--icon-only{aspect-ratio:1;padding-left:0;padding-right:0}.ds-input-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.ds-input-wrapper--full{width:100%}.ds-input-wrapper--disabled{opacity:.5;cursor:not-allowed}.ds-input-label{font-family:var(--font-ui);font-size:var(--label-font-size);font-weight:var(--font-weight-regular);letter-spacing:var(--label-tracking);text-transform:var(--label-text-transform);color:var(--label-color)}.ds-input-container{position:relative;display:flex;align-items:center}.ds-input{width:100%;font-family:inherit;color:var(--color-fg-primary);background-color:transparent;border:1px solid var(--field-border);transition:border-color var(--transition-normal);line-height:1.5}.ds-input::placeholder{color:var(--color-fg-secondary)}.ds-input:hover:not(:disabled){border-color:var(--field-border-active)}.ds-input:focus,.ds-input:active{outline:none;border-color:var(--field-border-active)}.ds-input:disabled{cursor:not-allowed}.ds-input--error{border-color:var(--color-error)}.ds-input--xs{height:var(--height-1);padding:0 calc(var(--height-1) / 4);font-size:var(--text-sm);border-radius:var(--radius-2)}.ds-input--s{height:var(--height-2);padding:0 calc(var(--height-2) / 4);font-size:var(--text-md);border-radius:var(--radius-2)}.ds-input--m{height:var(--height-3);padding:0 calc(var(--height-3) / 4);font-size:var(--text-lg);border-radius:var(--radius-3)}.ds-input--with-icon.ds-input--xs{padding-left:calc(var(--height-1) / 4 + 16px + var(--height-1) / 4)}.ds-input--with-icon.ds-input--s{padding-left:calc(var(--height-2) / 4 + 20px + var(--height-2) / 4)}.ds-input--with-icon.ds-input--m{padding-left:calc(var(--height-3) / 4 + 24px + var(--height-3) / 4)}.ds-input--with-icon-right.ds-input--xs{padding-right:calc(var(--height-1) / 4 + 16px + var(--height-1) / 4)}.ds-input--with-icon-right.ds-input--s{padding-right:calc(var(--height-2) / 4 + 20px + var(--height-2) / 4)}.ds-input--with-icon-right.ds-input--m{padding-right:calc(var(--height-3) / 4 + 24px + var(--height-3) / 4)}.ds-input-icon{position:absolute;display:flex;align-items:center;color:var(--color-fg-secondary);pointer-events:none}.ds-input-icon--xs{left:6px}.ds-input-icon--s{left:8px}.ds-input-icon--m{left:11px}.ds-input-icon-right{position:absolute;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-fg-secondary);cursor:pointer;transition:color var(--transition-normal);padding:0}.ds-input-icon-right:hover{color:var(--color-fg-primary)}.ds-input-icon-right--xs{right:6px}.ds-input-icon-right--s{right:8px}.ds-input-icon-right--m{right:11px}.ds-input-hint{font-size:var(--text-md);color:var(--color-fg-secondary)}.ds-input-error{font-size:var(--text-md);color:var(--color-error)}.ds-textarea-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.ds-textarea-wrapper--full{width:100%}.ds-textarea-wrapper--disabled{opacity:.5;cursor:not-allowed}.ds-textarea-label{font-family:var(--font-ui);font-size:var(--label-font-size);font-weight:var(--font-weight-regular);letter-spacing:var(--label-tracking);text-transform:var(--label-text-transform);color:var(--label-color)}.ds-textarea{width:100%;font-family:inherit;color:var(--color-fg-primary);background-color:transparent;border:1px solid var(--field-border);transition:border-color var(--transition-normal);line-height:1.5;resize:vertical;background:linear-gradient(315deg,transparent 5px,var(--field-border) 5px,var(--field-border) 6px,transparent 6px),linear-gradient(315deg,transparent 10px,var(--field-border) 10px,var(--field-border) 11px,transparent 11px);background-repeat:no-repeat;background-position:bottom right;background-size:16px 16px}.ds-textarea::placeholder{color:var(--color-fg-secondary)}.ds-textarea::-webkit-resizer{display:none}.ds-textarea:hover:not(:disabled){border-color:var(--field-border-active);background:linear-gradient(315deg,transparent 5px,var(--field-border-active) 5px,var(--field-border-active) 6px,transparent 6px),linear-gradient(315deg,transparent 10px,var(--field-border-active) 10px,var(--field-border-active) 11px,transparent 11px);background-repeat:no-repeat;background-position:bottom right;background-size:16px 16px}.ds-textarea:focus,.ds-textarea:active{outline:none;border-color:var(--field-border-active);background:linear-gradient(315deg,transparent 5px,var(--field-border-active) 5px,var(--field-border-active) 6px,transparent 6px),linear-gradient(315deg,transparent 10px,var(--field-border-active) 10px,var(--field-border-active) 11px,transparent 11px);background-repeat:no-repeat;background-position:bottom right;background-size:16px 16px}.ds-textarea:disabled{cursor:not-allowed}.ds-textarea--error{border-color:var(--color-error);background:linear-gradient(315deg,transparent 5px,var(--color-error) 5px,var(--color-error) 6px,transparent 6px),linear-gradient(315deg,transparent 10px,var(--color-error) 10px,var(--color-error) 11px,transparent 11px);background-repeat:no-repeat;background-position:bottom right;background-size:16px 16px}.ds-textarea--no-resize{resize:none;background:none}.ds-textarea--xs{padding:var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-2)}.ds-textarea--s{padding:var(--space-2) var(--space-3);font-size:var(--text-md);border-radius:var(--radius-2)}.ds-textarea--m{padding:var(--space-3);font-size:var(--text-lg);border-radius:var(--radius-3)}.ds-textarea-hint{font-size:var(--text-md);color:var(--color-fg-secondary)}.ds-textarea-error{font-size:var(--text-md);color:var(--color-error)}.ds-select-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.ds-select-wrapper--full{width:100%}.ds-select-wrapper--disabled{opacity:.5;cursor:not-allowed}.ds-select-label{font-family:var(--font-ui);font-size:var(--label-font-size);font-weight:var(--font-weight-regular);letter-spacing:var(--label-tracking);text-transform:var(--label-text-transform);color:var(--label-color)}.ds-select-container{position:relative}.ds-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);font-family:inherit;color:var(--color-fg-primary);background-color:transparent;border:1px solid var(--field-border);cursor:pointer;transition:border-color var(--transition-normal);text-align:left;line-height:1.5}.ds-select-trigger>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-select-trigger:hover:not(:disabled){border-color:var(--field-border-active)}.ds-select-trigger:disabled{cursor:not-allowed}.ds-select-trigger--error{border-color:var(--color-error)}.ds-select-trigger--xs{height:var(--height-1);padding:0 calc(var(--height-1) / 4);font-size:var(--text-sm);border-radius:var(--radius-2)}.ds-select-trigger--s{height:var(--height-2);padding:0 calc(var(--height-2) / 4);font-size:var(--text-md);border-radius:var(--radius-2)}.ds-select-trigger--m{height:var(--height-3);padding:0 calc(var(--height-3) / 4);font-size:var(--text-lg);border-radius:var(--radius-3)}.ds-select-placeholder{color:var(--color-fg-secondary)}.ds-select-icon{flex-shrink:0;color:var(--color-fg-secondary);transition:transform var(--transition-normal)}.ds-select-icon--open{transform:rotate(180deg)}.ds-select-icon--up{transform:rotate(0)}.ds-select-dropdown{position:fixed;background-color:var(--color-surface-0);border:1px solid var(--field-border);box-shadow:var(--shadow-1);z-index:var(--z-dropdown);max-height:300px;overflow-y:auto}.ds-select-dropdown--s{border-radius:var(--radius-2)}.ds-select-dropdown--m{border-radius:var(--radius-3)}.ds-select-option{width:100%;font-family:inherit;color:var(--color-fg-primary);background-color:transparent;border:none;cursor:pointer;text-align:left;line-height:1.5;white-space:normal;word-wrap:break-word;position:relative;isolation:isolate}.ds-select-option:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-select-option--s{min-height:var(--height-2);padding:var(--space-2) calc(var(--height-2) / 4);font-size:var(--text-md)}.ds-select-option--m{min-height:var(--height-3);padding:var(--space-2) calc(var(--height-3) / 4);font-size:var(--text-lg)}.ds-select-option:hover:before{background-color:var(--color-state-hover)}.ds-select-option--selected:before{background-color:var(--color-state-selected)}.ds-select-error{font-size:var(--text-md);color:var(--color-error)}.ds-stepper-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.ds-stepper-label{font-family:var(--font-ui);font-size:var(--label-font-size);font-weight:var(--font-weight-regular);letter-spacing:var(--label-tracking);text-transform:var(--label-text-transform);color:var(--label-color)}.ds-stepper{display:flex;align-items:stretch;width:fit-content;border:1px solid var(--field-border);border-radius:var(--radius-2);transition:border-color var(--transition-normal)}.ds-stepper:hover:not(.ds-stepper--disabled){border-color:var(--field-border-active)}.ds-stepper:focus-within{border-color:var(--field-border-active)}.ds-stepper--disabled{cursor:not-allowed}.ds-stepper-button{display:flex;align-items:center;justify-content:center;background-color:transparent;border:none;color:var(--color-fg-secondary);cursor:pointer;transition:color var(--transition-fast);flex-shrink:0;position:relative;isolation:isolate}.ds-stepper-button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-fast)}.ds-stepper-button:hover:not(:disabled){color:var(--color-fg-primary)}.ds-stepper-button:hover:not(:disabled):before{background-color:var(--color-state-hover)}.ds-stepper-button:active:not(:disabled):before{background-color:var(--color-state-active)}.ds-stepper-button:disabled{opacity:.5;cursor:not-allowed}.ds-stepper-button--minus{border-radius:var(--radius-2) 0 0 var(--radius-2);border-right:1px solid var(--field-border)}.ds-stepper-button--plus{border-radius:0 var(--radius-2) var(--radius-2) 0;border-left:1px solid var(--field-border)}.ds-stepper-input{width:80px;text-align:center;border:none;background-color:transparent;color:var(--color-fg-primary);font-size:var(--text-lg);letter-spacing:var(--tracking-lg);outline:none;cursor:text}.ds-stepper-input:disabled{cursor:not-allowed}.ds-stepper-input::-webkit-inner-spin-button,.ds-stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ds-stepper-input[type=number]{-moz-appearance:textfield}.ds-stepper--xs{height:var(--height-1)}.ds-stepper--xs .ds-stepper-button{width:var(--height-1);padding:0}.ds-stepper--xs .ds-stepper-input{font-size:var(--text-sm);letter-spacing:var(--tracking-sm);padding:0 var(--space-2)}.ds-stepper--s{height:var(--height-2)}.ds-stepper--s .ds-stepper-button{width:var(--height-2);padding:0}.ds-stepper--s .ds-stepper-input{font-size:var(--text-md);letter-spacing:var(--tracking-md);padding:0 var(--space-2)}.ds-stepper--m{height:var(--height-3)}.ds-stepper--m .ds-stepper-button{width:var(--height-3);padding:0}.ds-stepper--m .ds-stepper-input{font-size:var(--text-lg);letter-spacing:var(--tracking-lg);padding:0 var(--space-3)}.ds-stepper-hint{font-size:var(--text-md);letter-spacing:var(--tracking-md);color:var(--color-fg-secondary)}.ds-stepper-error{font-size:var(--text-md);letter-spacing:var(--tracking-md);color:var(--color-status-error)}.ds-stepper-wrapper--error .ds-stepper{border-color:var(--color-status-error)}.ds-stepper-wrapper--error .ds-stepper:hover:not(.ds-stepper--disabled){border-color:var(--color-status-error)}.ds-stepper-wrapper--error .ds-stepper:focus-within{border-color:var(--color-status-error)}.ds-stepper-wrapper--disabled{opacity:.5;cursor:not-allowed}.ds-stepper-wrapper--disabled *{cursor:not-allowed}.ds-card{display:flex;flex-direction:column;min-width:0;background-color:transparent;border-radius:var(--radius-3);border:1px solid var(--card-border);transition:border-color var(--transition-normal),background-color var(--transition-normal),transform var(--transition-normal);text-decoration:none;color:inherit}.ds-card--interactive{cursor:pointer;background-color:var(--color-surface-1);border:none;position:relative;isolation:isolate}.ds-card--interactive:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-card--interactive:hover:not([aria-disabled=true]){transform:var(--card-hover-transform)}.ds-card--interactive:hover:not([aria-disabled=true]):before{background-color:var(--color-state-hover)}.ds-card--outline{background-color:transparent;border:1px solid var(--card-border);cursor:pointer;transition:border-color var(--transition-normal),transform var(--transition-normal)}.ds-card--outline:hover:not([aria-disabled=true]){border-color:var(--color-border-strong);transform:var(--card-hover-transform)}.ds-card[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.ds-card--none{padding:0;gap:0}.ds-card--s{padding:var(--space-3);gap:var(--space-2)}.ds-card--m{padding:var(--space-4);gap:var(--space-3)}.ds-card--l{padding:var(--space-6);gap:var(--space-4)}.ds-h1{font-size:var(--text-4xl);font-weight:var(--font-weight-regular);line-height:1.2;color:var(--color-fg-primary);letter-spacing:var(--tracking-4xl);margin:0}.ds-h2{font-size:var(--text-3xl);font-weight:var(--font-weight-regular);line-height:1.3;color:var(--color-fg-primary);letter-spacing:var(--tracking-3xl);margin:0}.ds-h3{font-size:var(--text-2xl);font-weight:var(--font-weight-regular);line-height:1.3;color:var(--color-fg-primary);letter-spacing:var(--tracking-2xl);margin:0}.ds-h4{font-size:var(--text-xl);font-weight:var(--font-weight-regular);line-height:1.4;color:var(--color-fg-primary);letter-spacing:var(--tracking-xl);margin:0}.ds-p1{font-size:var(--text-lg);font-weight:var(--font-weight-regular);line-height:1.5;color:var(--color-fg-primary);letter-spacing:var(--tracking-lg);margin:0}.ds-p1--secondary{color:var(--color-fg-secondary)}.ds-p2{font-size:var(--text-md);font-weight:var(--font-weight-regular);line-height:1.5;color:var(--color-fg-primary);letter-spacing:var(--tracking-md);margin:0}.ds-p2--secondary{color:var(--color-fg-secondary)}.ds-p3{font-size:var(--text-sm);font-weight:var(--font-weight-regular);line-height:1.5;color:var(--color-fg-primary);letter-spacing:var(--tracking-sm);margin:0}.ds-p3--secondary{color:var(--color-fg-secondary)}.ds-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-weight:var(--ui-font-weight);letter-spacing:var(--badge-tracking);text-transform:var(--badge-text-transform);white-space:nowrap}.ds-badge--s{padding:2px var(--space-2);font-size:var(--badge-font-size-s);border-radius:var(--radius-2)}.ds-badge--m{padding:3px var(--space-3);font-size:var(--badge-font-size-m);border-radius:var(--radius-3)}.ds-badge--default{background-color:var(--color-state-selected);color:var(--color-fg-secondary)}.ds-badge--info{background-color:var(--color-status-info-bg);color:var(--color-status-info)}.ds-badge--success{background-color:var(--color-status-success-bg);color:var(--color-status-success)}.ds-badge--warning{background-color:var(--color-status-warning-bg);color:var(--color-status-warning)}.ds-badge--error{background-color:var(--color-status-error-bg);color:var(--color-status-error)}.ds-badge--accent{background-color:var(--color-accent-bg);color:var(--color-accent-default)}.ds-badge--danger{background-color:var(--color-status-error-bg);color:var(--color-status-error)}[data-variant=landing] .ds-badge{background-color:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 35%,transparent)}.ds-alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-3)}.ds-alert--no-title{align-items:center}.ds-alert__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.ds-alert:not(.ds-alert--no-title) .ds-alert__icon{margin-top:2px}.ds-alert__content{flex:1;min-width:0}.ds-alert__title{font-size:var(--text-lg);font-weight:var(--font-weight-regular);margin-bottom:var(--space-2)}.ds-alert__message{font-size:var(--text-md);line-height:1.5}.ds-alert__close{flex-shrink:0;background:none;border:none;color:inherit;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity var(--transition-normal)}.ds-alert__close:hover{opacity:1}.ds-alert--info{background:linear-gradient(var(--color-status-info-bg),var(--color-status-info-bg)),var(--color-surface-1);color:var(--color-status-info)}.ds-alert--info .ds-alert__message{color:var(--color-fg-primary)}.ds-alert--success{background:linear-gradient(var(--color-status-success-bg),var(--color-status-success-bg)),var(--color-surface-1);color:var(--color-status-success)}.ds-alert--success .ds-alert__message{color:var(--color-fg-primary)}.ds-alert--warning{background:linear-gradient(var(--color-status-warning-bg),var(--color-status-warning-bg)),var(--color-surface-1);color:var(--color-status-warning)}.ds-alert--warning .ds-alert__message{color:var(--color-fg-primary)}.ds-alert--error{background:linear-gradient(var(--color-status-error-bg),var(--color-status-error-bg)),var(--color-surface-1);color:var(--color-status-error)}.ds-alert--error .ds-alert__message{color:var(--color-fg-primary)}.ds-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--color-overlay);display:flex;align-items:flex-start;justify-content:center;z-index:var(--z-modal);padding:var(--space-4);overflow-y:auto}.ds-modal{background-color:var(--color-surface-1);border-radius:var(--radius-4);box-shadow:var(--shadow-2);display:flex;flex-direction:column;margin:auto 0}.ds-modal--s{width:100%;max-width:400px}.ds-modal--m{width:100%;max-width:600px}.ds-modal--l{width:100%;max-width:900px}.ds-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6)}.ds-modal__title{font-size:var(--text-2xl);font-weight:var(--font-weight-medium);color:var(--color-fg-primary);margin:0}.ds-modal__body{padding:0 var(--space-6) var(--space-6);flex:1}.ds-modal__footer{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-6);background-color:var(--color-surface-1);position:relative;z-index:10;border-bottom-left-radius:var(--space-3);border-bottom-right-radius:var(--space-3)}.ds-code-accordion{min-width:0;overflow:hidden}.ds-code-accordion__header{display:flex;align-items:center;justify-content:space-between;width:100%;background-color:var(--color-surface-1);border:none;border-radius:var(--radius-3);color:var(--color-fg-primary);font-size:var(--text-lg);font-family:inherit;cursor:pointer;position:relative;isolation:isolate}.ds-code-accordion__header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-code-accordion__header[aria-expanded=true]{border-radius:var(--radius-3) var(--radius-3) 0 0}.ds-code-accordion__header:hover:before{background-color:var(--color-state-hover)}.ds-code-accordion__title{font-weight:var(--font-weight-regular)}.ds-code-accordion__icon{flex-shrink:0;color:var(--color-fg-secondary);transition:transform var(--transition-normal)}.ds-code-accordion__icon--expanded{transform:rotate(180deg)}.ds-code-accordion__content{font-family:Fira Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:var(--text-md);background-color:var(--color-surface-2);color:var(--color-fg-primary);overflow-x:auto;border-radius:0 0 var(--radius-3) var(--radius-3);line-height:1.6;margin:0}.ds-code-accordion--s .ds-code-accordion__header,.ds-code-accordion--s .ds-code-accordion__content{padding:var(--space-2)}.ds-code-accordion--m .ds-code-accordion__header,.ds-code-accordion--m .ds-code-accordion__content{padding:var(--space-3)}.ds-code-accordion--l .ds-code-accordion__header,.ds-code-accordion--l .ds-code-accordion__content{padding:var(--space-4)}.ds-code-accordion__content code{background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:inherit}@media (max-width: 640px){.ds-code-accordion__header{font-size:var(--text-md)}.ds-code-accordion--l .ds-code-accordion__header,.ds-code-accordion--l .ds-code-accordion__content{padding:var(--space-3)}}.ds-code-inline{font-family:Fira Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:.9em;background-color:var(--color-surface-2);color:var(--color-fg-primary);padding:2px 6px;border-radius:var(--radius-3);white-space:nowrap}.ds-code-block{font-family:Fira Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:var(--text-md);background-color:var(--color-surface-2);color:var(--color-fg-primary);padding:var(--space-3);border-radius:var(--radius-3);overflow-x:auto;line-height:1.6;margin:0}.ds-code-block code{background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:inherit}.ds-link{color:var(--color-accent-default);text-decoration:none;cursor:pointer;transition:color var(--transition-fast),text-decoration var(--transition-fast);font-size:inherit;font-weight:inherit;line-height:inherit}.ds-link:hover{color:var(--color-accent-hover);text-decoration:underline}.ds-link:active{color:var(--color-accent-hover)}.ds-tabs{display:flex;gap:var(--space-2);flex-wrap:wrap}.ds-tab{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-ui);font-weight:var(--ui-font-weight);letter-spacing:var(--tab-tracking);text-transform:var(--ui-text-transform);line-height:1;cursor:pointer;background-color:transparent;color:var(--color-fg-primary);transition:border-color var(--transition-normal),background-color var(--transition-normal);white-space:nowrap;text-decoration:none}.ds-tab--ghost{border:none;color:var(--color-fg-secondary);position:relative;isolation:isolate}.ds-tab--ghost:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-tab--ghost:hover:not(.ds-tab--selected):not(:disabled):not([aria-disabled=true]){color:var(--color-fg-primary)}.ds-tab--ghost:hover:not(.ds-tab--selected):not(:disabled):not([aria-disabled=true]):before{background-color:var(--color-state-hover)}.ds-tab--ghost.ds-tab--selected{color:var(--color-fg-primary)}.ds-tab--ghost.ds-tab--selected:before{background-color:var(--color-state-selected)}.ds-tab--xs{height:var(--height-1);padding:0 calc(var(--height-1) / 2);font-size:var(--tab-font-size-xs);border-radius:var(--radius-2)}.ds-tab--s{height:var(--height-2);padding:0 calc(var(--height-2) / 2);font-size:var(--tab-font-size-s);border-radius:var(--radius-2)}.ds-tab--m{height:var(--height-3);padding:0 calc(var(--height-3) / 2);font-size:var(--tab-font-size-m);border-radius:var(--radius-3)}.ds-tab--l{height:var(--height-4);padding:0 calc(var(--height-4) / 2);font-size:var(--tab-font-size-l);border-radius:var(--radius-3);gap:var(--space-3)}.ds-tab:disabled,.ds-tab[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.ds-tab-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.ds-tab--icon-only{aspect-ratio:1;padding-left:0;padding-right:0}.ds-accordion{min-width:0}.ds-accordion__header{display:flex;align-items:center;justify-content:space-between;width:100%;background-color:var(--color-surface-1);border:none;border-radius:var(--radius-3);color:var(--color-fg-primary);font-size:var(--text-xl);font-family:inherit;cursor:pointer;position:relative;isolation:isolate}.ds-accordion__header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-accordion__header[aria-expanded=true]{border-radius:var(--radius-3) var(--radius-3) 0 0}.ds-accordion__header:hover:before{background-color:var(--color-state-hover)}.ds-accordion__title{font-weight:var(--font-weight-regular)}.ds-accordion__icon{flex-shrink:0;color:var(--color-fg-secondary);transition:transform var(--transition-normal)}.ds-accordion__icon--expanded{transform:rotate(180deg)}.ds-accordion__content{display:flex;flex-direction:column;background-color:var(--color-surface-1);border-radius:0 0 var(--radius-3) var(--radius-3);overflow-x:auto}.ds-accordion--s .ds-accordion__header{padding:var(--space-3)}.ds-accordion--s .ds-accordion__content{padding:var(--space-3);gap:var(--space-2)}.ds-accordion--m .ds-accordion__header{padding:var(--space-4)}.ds-accordion--m .ds-accordion__content{padding:var(--space-4);gap:var(--space-3)}.ds-accordion--l .ds-accordion__header{padding:var(--space-6)}.ds-accordion--l .ds-accordion__content{padding:var(--space-6);gap:var(--space-4)}@media (max-width: 640px){.ds-accordion__header{font-size:var(--text-lg)}.ds-accordion--l .ds-accordion__header{padding:var(--space-4)}.ds-accordion--l .ds-accordion__content{padding:var(--space-4);gap:var(--space-3)}}.ds-tooltip-wrapper{position:relative;display:inline-flex}.ds-tooltip{background-color:var(--color-surface-3);color:var(--color-fg-secondary);font-size:var(--text-sm);letter-spacing:var(--tracking-sm);width:max-content;max-width:200px;padding:var(--space-2);border:1px solid var(--color-border-default);box-shadow:var(--shadow-1);z-index:var(--z-tooltip);border-radius:var(--radius-2);white-space:normal;word-wrap:break-word;pointer-events:none;line-height:1.4}.ds-tooltip--top:after{content:"";position:absolute;top:100%;left:calc(50% + var(--arrow-offset, 0px));transform:translate(-50%);border:4px solid transparent;border-top-color:var(--color-border-default)}.ds-tooltip--top:before{content:"";position:absolute;top:100%;left:calc(50% + var(--arrow-offset, 0px));transform:translate(-50%);border:3px solid transparent;border-top-color:var(--color-surface-3);z-index:1}.ds-tooltip--bottom:after{content:"";position:absolute;bottom:100%;left:calc(50% + var(--arrow-offset, 0px));transform:translate(-50%);border:4px solid transparent;border-bottom-color:var(--color-border-default)}.ds-tooltip--bottom:before{content:"";position:absolute;bottom:100%;left:calc(50% + var(--arrow-offset, 0px));transform:translate(-50%);border:3px solid transparent;border-bottom-color:var(--color-surface-3);z-index:1}.ds-tooltip--left:after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:4px solid transparent;border-left-color:var(--color-border-default)}.ds-tooltip--left:before{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:3px solid transparent;border-left-color:var(--color-surface-3);z-index:1}.ds-tooltip--right:after{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:4px solid transparent;border-right-color:var(--color-border-default)}.ds-tooltip--right:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:3px solid transparent;border-right-color:var(--color-surface-3);z-index:1}.ds-toggle{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer}.ds-toggle--disabled{opacity:.5;cursor:not-allowed}.ds-toggle__input{position:absolute;opacity:0;pointer-events:none}.ds-toggle__track{position:relative;display:flex;align-items:center;background-color:var(--color-surface-1);border:1px solid var(--field-border);transition:background-color var(--transition-normal),border-color var(--transition-normal);flex-shrink:0}.ds-toggle__input:checked+.ds-toggle__track{background-color:var(--color-accent-default);border-color:var(--color-accent-default)}.ds-toggle__input:not(:checked)+.ds-toggle__track:hover{border-color:var(--field-border-active)}.ds-toggle__thumb{background-color:var(--color-accent-fg);border-radius:50%;transition:transform var(--transition-normal);box-shadow:0 1px 3px #0003}.ds-toggle__label{font-size:var(--text-lg);color:var(--color-fg-primary);-webkit-user-select:none;user-select:none}.ds-toggle--xs .ds-toggle__track{width:calc(var(--icon-1) * 1.75);height:var(--icon-1);border-radius:calc(var(--icon-1) / 2);padding:2px}.ds-toggle--xs .ds-toggle__thumb{width:calc(var(--icon-1) - 4px);height:calc(var(--icon-1) - 4px)}.ds-toggle--xs .ds-toggle__input:checked+.ds-toggle__track .ds-toggle__thumb{transform:translate(calc(var(--icon-1) * .75))}.ds-toggle--xs .ds-toggle__label{font-size:var(--text-sm)}.ds-toggle--s .ds-toggle__track{width:calc(var(--icon-2) * 1.75);height:var(--icon-2);border-radius:calc(var(--icon-2) / 2);padding:2px}.ds-toggle--s .ds-toggle__thumb{width:calc(var(--icon-2) - 4px);height:calc(var(--icon-2) - 4px)}.ds-toggle--s .ds-toggle__input:checked+.ds-toggle__track .ds-toggle__thumb{transform:translate(calc(var(--icon-2) * .75))}.ds-toggle--s .ds-toggle__label{font-size:var(--text-md)}.ds-toggle--m .ds-toggle__track{width:calc(var(--icon-3) * 1.75);height:var(--icon-3);border-radius:calc(var(--icon-3) / 2);padding:2px}.ds-toggle--m .ds-toggle__thumb{width:calc(var(--icon-3) - 4px);height:calc(var(--icon-3) - 4px)}.ds-toggle--m .ds-toggle__input:checked+.ds-toggle__track .ds-toggle__thumb{transform:translate(calc(var(--icon-3) * .75))}.ds-toggle--m .ds-toggle__label{font-size:var(--text-lg)}.ds-toggle--l .ds-toggle__track{width:calc(var(--icon-4) * 1.75);height:var(--icon-4);border-radius:calc(var(--icon-4) / 2);padding:3px}.ds-toggle--l .ds-toggle__thumb{width:calc(var(--icon-4) - 6px);height:calc(var(--icon-4) - 6px)}.ds-toggle--l .ds-toggle__input:checked+.ds-toggle__track .ds-toggle__thumb{transform:translate(calc(var(--icon-4) * .75))}.ds-toggle--l .ds-toggle__label{font-size:var(--text-lg)}[data-variant=landing] .ds-toggle__track,[data-variant=landing] .ds-toggle__thumb{border-radius:0}.ds-checkbox{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer}.ds-checkbox--disabled{opacity:.5;cursor:not-allowed}.ds-checkbox__input{position:absolute;opacity:0;pointer-events:none}.ds-checkbox__box{position:relative;display:flex;align-items:center;justify-content:center;background-color:var(--color-surface-1);border:1px solid var(--field-border);transition:background-color var(--transition-normal),border-color var(--transition-normal);flex-shrink:0;border-radius:4px}.ds-checkbox__input:checked+.ds-checkbox__box{background-color:var(--color-accent-default);border-color:var(--color-accent-default)}.ds-checkbox__input:not(:checked)+.ds-checkbox__box:hover{border-color:var(--field-border-active)}.ds-checkbox__icon{color:var(--color-accent-fg)}.ds-checkbox__label{font-size:var(--text-lg);color:var(--color-fg-primary);-webkit-user-select:none;user-select:none}.ds-checkbox--xs .ds-checkbox__box{width:var(--icon-1);height:var(--icon-1)}.ds-checkbox--xs .ds-checkbox__label{font-size:var(--text-sm)}.ds-checkbox--s .ds-checkbox__box{width:var(--icon-2);height:var(--icon-2)}.ds-checkbox--s .ds-checkbox__label{font-size:var(--text-md)}.ds-checkbox--m .ds-checkbox__box{width:var(--icon-3);height:var(--icon-3)}.ds-checkbox--m .ds-checkbox__label{font-size:var(--text-lg)}.ds-checkbox--l .ds-checkbox__box{width:var(--icon-4);height:var(--icon-4)}.ds-checkbox--l .ds-checkbox__label{font-size:var(--text-lg)}[data-variant=landing] .ds-checkbox__box{border-radius:0}.ds-radio{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer}.ds-radio--disabled{opacity:.5;cursor:not-allowed}.ds-radio__input{position:absolute;opacity:0;pointer-events:none}.ds-radio__circle{position:relative;display:flex;align-items:center;justify-content:center;background-color:var(--color-surface-1);border:1px solid var(--field-border);transition:background-color var(--transition-normal),border-color var(--transition-normal);flex-shrink:0;border-radius:50%}.ds-radio__input:checked+.ds-radio__circle{background-color:var(--color-accent-default);border-color:var(--color-accent-default)}.ds-radio__input:not(:checked)+.ds-radio__circle:hover{border-color:var(--field-border-active)}.ds-radio__dot{background-color:var(--color-accent-fg);border-radius:50%;opacity:0;transition:opacity var(--transition-normal)}.ds-radio__input:checked+.ds-radio__circle .ds-radio__dot{opacity:1}.ds-radio__label{font-size:var(--text-lg);color:var(--color-fg-primary);-webkit-user-select:none;user-select:none}.ds-radio--xs .ds-radio__circle{width:var(--icon-1);height:var(--icon-1)}.ds-radio--xs .ds-radio__dot{width:6px;height:6px}.ds-radio--xs .ds-radio__label{font-size:var(--text-sm)}.ds-radio--s .ds-radio__circle{width:var(--icon-2);height:var(--icon-2)}.ds-radio--s .ds-radio__dot{width:8px;height:8px}.ds-radio--s .ds-radio__label{font-size:var(--text-md)}.ds-radio--m .ds-radio__circle{width:var(--icon-3);height:var(--icon-3)}.ds-radio--m .ds-radio__dot{width:10px;height:10px}.ds-radio--m .ds-radio__label{font-size:var(--text-lg)}.ds-radio--l .ds-radio__circle{width:var(--icon-4);height:var(--icon-4)}.ds-radio--l .ds-radio__dot{width:12px;height:12px}.ds-radio--l .ds-radio__label{font-size:var(--text-lg)}.ds-spinner{display:inline-block;border-radius:var(--radius-full);border-style:solid;flex-shrink:0;animation:ds-spin .8s linear infinite}@keyframes ds-spin{to{transform:rotate(360deg)}}.ds-spinner--xs{width:12px;height:12px;border-width:1.5px}.ds-spinner--s{width:16px;height:16px;border-width:2px}.ds-spinner--m{width:20px;height:20px;border-width:2px}.ds-spinner--l{width:24px;height:24px;border-width:2.5px}.ds-spinner--xl{width:32px;height:32px;border-width:3px}.ds-spinner--default{border-color:var(--color-border-default);border-top-color:var(--color-accent-default)}.ds-spinner--secondary{border-color:var(--color-border-default);border-top-color:var(--color-fg-secondary)}.ds-spinner--on-accent{border-color:#f8f9fa4d;border-top-color:var(--color-accent-fg)}.ds-skeleton{display:block;background-color:var(--color-surface-2);animation:ds-skeleton-pulse 1.5s ease-in-out infinite}@keyframes ds-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.85}}.ds-skeleton--rect{border-radius:var(--radius-2)}.ds-skeleton--circle{border-radius:var(--radius-full)}.ds-skeleton--text{height:1em;border-radius:var(--radius-2)}.ds-avatar__initials{font-size:.4em;font-weight:var(--font-weight-medium);line-height:1;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.ds-avatar img{width:100%;height:100%;border-radius:inherit;object-fit:cover;display:block}.ds-avatar{flex-shrink:0;border-radius:var(--radius-full);display:grid;place-items:center;border:1px solid var(--color-border-default);background-color:hsl(var(--ds-avatar-h, 220) 22% 88%);color:hsl(var(--ds-avatar-h, 220) 30% 35%);overflow:hidden}[data-theme=dark] .ds-avatar,:root:not([data-theme=light]) .ds-avatar{background-color:hsl(var(--ds-avatar-h, 220) 18% 22%);color:hsl(var(--ds-avatar-h, 220) 40% 72%)}.ds-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-3);border:1px solid var(--table-wrap-border)}.ds-table-wrap--scroll{overflow-y:auto}.ds-table-wrap{scrollbar-width:thin;scrollbar-color:var(--color-border-default) transparent}.ds-table-wrap::-webkit-scrollbar{height:6px;width:6px}.ds-table-wrap::-webkit-scrollbar-track{background:transparent}.ds-table-wrap::-webkit-scrollbar-thumb{background-color:var(--color-border-default);border-radius:var(--radius-full)}.ds-table-wrap::-webkit-scrollbar-thumb:hover{background-color:var(--color-border-strong)}.ds-table{width:100%;border-collapse:collapse;background-color:var(--color-surface-1)}.ds-table thead{background-color:var(--color-surface-2)}.ds-table th{font-family:var(--table-th-font-family);font-weight:var(--table-th-weight);font-size:var(--table-th-font-size);color:var(--table-th-color);letter-spacing:var(--table-th-tracking);text-transform:var(--table-th-text-transform);text-align:left;white-space:nowrap;-webkit-user-select:none;user-select:none;position:sticky;top:var(--ds-table-sticky-top, 0px);z-index:2;background-color:var(--color-surface-2);box-shadow:0 1px 0 var(--table-row-border)}.ds-th--sortable{cursor:pointer}.ds-th--sortable:hover{color:var(--color-fg-primary)}.ds-table td{text-align:left;color:var(--color-fg-primary);border-bottom:1px solid var(--table-row-border);vertical-align:middle}.ds-table tbody tr:last-child td{border-bottom:none}.ds-table--compact th,.ds-table--compact td{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);letter-spacing:var(--tracking-sm);line-height:1.4}.ds-table--default th,.ds-table--default td{padding:var(--space-3) var(--space-4);font-size:var(--text-md);letter-spacing:var(--tracking-md)}.ds-table-row--interactive{cursor:pointer;transition:background-color var(--transition-fast)}.ds-table-row--interactive:hover{background-color:var(--color-state-hover)}.ds-table-row--interactive:active{background-color:var(--color-state-active)}.ds-table-row--selected,.ds-table-row--selected.ds-table-row--interactive:hover{background-color:var(--color-state-selected)}.ds-table-cell--center{text-align:center}.ds-table-cell--right{text-align:right}.ds-table-cell--secondary{color:var(--color-fg-secondary)}.ds-table-cell--muted{color:var(--color-fg-disabled)}.ds-table-cell--truncate{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-table-cell--nowrap{white-space:nowrap}.ds-th__inner{display:inline-flex;align-items:center;gap:var(--space-1)}.ds-th__sort-icon{flex-shrink:0;opacity:.35;transition:opacity var(--transition-fast)}.ds-th--sorted .ds-th__sort-icon{opacity:1;color:var(--color-accent-default)}.ds-th--sortable:hover .ds-th__sort-icon{opacity:.7}.ds-table-row--subheader td{font-family:var(--table-subrow-font);color:var(--table-subrow-color);background-color:var(--table-subrow-bg);letter-spacing:var(--table-subrow-tracking);text-transform:var(--table-subrow-transform);font-weight:var(--table-th-weight);border-top:1px solid var(--table-row-border);border-bottom:1px solid var(--table-row-border);pointer-events:none;-webkit-user-select:none;user-select:none}.ds-empty-state{display:flex;flex-direction:column;align-items:center;text-align:center}.ds-empty-state__icon{color:var(--color-fg-disabled);flex-shrink:0;display:flex;align-items:center}.ds-empty-state--s .ds-empty-state__icon svg{width:var(--icon-3);height:var(--icon-3)}.ds-empty-state--m .ds-empty-state__icon svg,.ds-empty-state--l .ds-empty-state__icon svg{width:var(--icon-5);height:var(--icon-5)}.ds-empty-state__title{font-size:var(--text-lg);font-weight:var(--font-weight-medium);color:var(--color-fg-primary);line-height:1.4}.ds-empty-state__description{font-size:var(--text-md);color:var(--color-fg-secondary);line-height:1.5;max-width:360px}.ds-empty-state--s{padding:var(--space-6);gap:var(--space-2)}.ds-empty-state--s .ds-empty-state__title{font-size:var(--text-md)}.ds-empty-state--s .ds-empty-state__description{font-size:var(--text-sm)}.ds-empty-state--m{padding:var(--space-10);gap:var(--space-3)}.ds-empty-state--l{padding:var(--space-16);gap:var(--space-4)}.ds-empty-state--l .ds-empty-state__title{font-size:var(--text-xl)}.ds-empty-state__action{margin-top:var(--space-1)}.ds-dropdown{position:relative;display:inline-block}.ds-dropdown__trigger{display:inline-flex}.ds-dropdown__menu{position:fixed;z-index:var(--z-dropdown);min-width:180px;background-color:var(--color-surface-0);border:1px solid var(--color-border-default);border-radius:var(--radius-3);box-shadow:var(--shadow-2);padding:var(--space-2)}.ds-dropdown__item{display:flex;align-items:center;gap:var(--space-2);width:100%;height:var(--height-2);padding:0 var(--space-3);background:none;border:none;border-radius:var(--radius-2);cursor:pointer;font-size:var(--text-md);font-family:var(--font-ui);font-weight:var(--font-weight-regular);color:var(--color-fg-secondary);text-align:left;text-decoration:none;transition:background-color var(--transition-normal),color var(--transition-normal)}.ds-dropdown__item:hover:not(:disabled):not([aria-disabled=true]){background-color:var(--color-state-hover);color:var(--color-fg-primary)}.ds-dropdown__item:disabled,.ds-dropdown__item[aria-disabled=true]{color:var(--color-fg-disabled);cursor:not-allowed}.ds-dropdown__item--danger{color:var(--color-status-error)}.ds-dropdown__item--danger:hover:not(:disabled):not([aria-disabled=true]){background-color:var(--color-status-error-bg);color:var(--color-status-error)}.ds-dropdown__item-icon{display:flex;align-items:center;flex-shrink:0}.ds-dropdown__item-label{flex:1}.ds-dropdown__item-shortcut{font-size:var(--text-sm);color:var(--color-fg-disabled);padding-left:var(--space-3)}.ds-dropdown__separator{height:1px;background-color:var(--color-border-light);margin:var(--space-2) 0}.ds-dropdown__section{padding:var(--space-2) var(--space-2) var(--space-2)}.ds-dropdown__section-label{font-size:var(--text-sm);color:var(--color-fg-secondary);margin-bottom:var(--space-2);padding:0 var(--space-1)}.ds-toast-container{position:fixed;z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.ds-toast-container--bottom-right{bottom:var(--space-6);right:var(--space-6);align-items:flex-end}.ds-toast-container--bottom-left{bottom:var(--space-6);left:var(--space-6);align-items:flex-start}.ds-toast-container--top-right{top:var(--space-6);right:var(--space-6);align-items:flex-end}.ds-toast-container--top-left{top:var(--space-6);left:var(--space-6);align-items:flex-start}.ds-toast-container--bottom-center{bottom:var(--space-6);left:50%;transform:translate(-50%);align-items:center}.ds-toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-3);box-shadow:var(--shadow-3);font-size:var(--text-md);pointer-events:all;max-width:380px;min-width:240px;opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease}.ds-toast--visible{opacity:1;transform:translateY(0)}.ds-toast--default{background:linear-gradient(var(--color-status-info-bg),var(--color-status-info-bg)),var(--color-surface-1);color:var(--color-status-info)}.ds-toast--success{background:linear-gradient(var(--color-status-success-bg),var(--color-status-success-bg)),var(--color-surface-1);color:var(--color-status-success)}.ds-toast--warning{background:linear-gradient(var(--color-status-warning-bg),var(--color-status-warning-bg)),var(--color-surface-1);color:var(--color-status-warning)}.ds-toast--error{background:linear-gradient(var(--color-status-error-bg),var(--color-status-error-bg)),var(--color-surface-1);color:var(--color-status-error)}.ds-toast__icon{flex-shrink:0;display:flex;align-items:center}.ds-toast__message{flex:1;color:var(--color-fg-primary);line-height:1.5}.ds-toast__close{flex-shrink:0;background:none;border:none;cursor:pointer;color:inherit;opacity:.7;padding:0;display:flex;align-items:center;transition:opacity var(--transition-normal)}.ds-toast__close:hover{opacity:1}
|
|
1
|
+
@layer base{:root{--color-white: #F8F9FA;--color-black: #0E0F11;--color-red-light: #EE7A7A;--color-red: #EA6464;--color-red-dark: #E15252;--color-info: #60A5FA;--color-info-dark: #2563EB;--color-success: #00C86E;--color-success-dark: #00A055;--color-warning: #FFBB00;--color-warning-dark: #D97706;--color-error: #FF1200;--color-error-dark: #DC2626;--color-surface-0: #0E0F11;--color-surface-1: #16181C;--color-surface-2: #1E2026;--color-surface-3: #262830;--color-fg-primary: rgba(248, 249, 250, .92);--color-fg-secondary: rgba(248, 249, 250, .65);--color-fg-disabled: rgba(248, 249, 250, .3);--color-state-hover: rgba(248, 249, 250, .07);--color-state-active: rgba(248, 249, 250, .12);--color-state-selected: rgba(248, 249, 250, .1);--color-border-light: rgba(248, 249, 250, .08);--color-border-default: rgba(248, 249, 250, .2);--color-border-strong: rgba(248, 249, 250, .4);--color-border-focus: rgba(248, 249, 250, .5);--color-accent-default: var(--color-red);--color-accent-hover: var(--color-red-light);--color-accent-fg: var(--color-white);--color-accent-hover-fg: var(--color-accent-fg);--color-accent-bg: rgba(234, 100, 100, .12);--color-status-info: var(--color-info);--color-status-info-bg: rgba(37, 99, 235, .15);--color-status-success: var(--color-success);--color-status-success-bg: rgba(0, 160, 85, .15);--color-status-warning: var(--color-warning);--color-status-warning-bg: rgba(217, 119, 6, .15);--color-status-error: var(--color-error);--color-status-error-bg: rgba(220, 38, 38, .15);--color-overlay: rgba(14, 15, 17, .65);--shadow-1: 0 2px 8px rgba(0, 0, 0, .4), 0 0 0 1px rgba(248, 249, 250, .06);--shadow-2: 0 8px 24px rgba(0, 0, 0, .5), 0 0 0 1px rgba(248, 249, 250, .08);--shadow-3: 0 16px 48px rgba(0, 0, 0, .6), 0 0 0 1px rgba(248, 249, 250, .1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-1: 2px;--radius-2: 4px;--radius-3: 6px;--radius-4: 8px;--radius-6: 12px;--radius-8: 16px;--radius-full: 9999px;--height-1: 24px;--height-2: 32px;--height-3: 44px;--height-4: 56px;--icon-1: 16px;--icon-2: 20px;--icon-3: 24px;--icon-4: 28px;--icon-5: 48px;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--text-4xl: 32px;--text-3xl: 28px;--text-2xl: 24px;--text-xl: 20px;--text-lg: 16px;--text-md: 14px;--text-sm: 12px;--tracking-4xl: 0;--tracking-3xl: 0;--tracking-2xl: 0;--tracking-xl: 0;--tracking-lg: .02em;--tracking-md: .04em;--tracking-sm: .06em;--z-sticky: 100;--z-drawer: 200;--z-modal: 300;--z-dropdown: 400;--z-toast: 500;--z-tooltip: 600;--layout-padding-x: 16px;--layout-padding-y: 32px;--layout-header-height: 64px;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--font-ui: inherit;--ui-font-weight: var(--font-weight-medium);--ui-tracking: 0;--tab-tracking: 0;--ui-text-transform: none;--tab-font-size-xs: var(--text-sm);--tab-font-size-s: var(--text-md);--tab-font-size-m: var(--text-lg);--tab-font-size-l: var(--text-lg);--label-font-size: var(--text-md);--label-color: var(--color-fg-primary);--label-tracking: 0;--label-text-transform: none;--field-border: var(--color-border-default);--field-border-active: var(--color-border-strong);--btn-padding-ratio: .5;--btn-font-weight: var(--font-weight-medium);--btn-font-size-xs: var(--text-sm);--btn-font-size-s: var(--text-md);--btn-font-size-m: var(--text-lg);--btn-font-size-l: var(--text-xl);--btn-icon-size-xs: var(--icon-1);--btn-icon-size-s: var(--icon-2);--btn-icon-size-m: var(--icon-3);--btn-icon-size-l: var(--icon-4);--btn-secondary-color: var(--color-fg-primary);--btn-secondary-border: var(--color-border-default);--btn-secondary-hover-border: var(--color-border-strong);--btn-secondary-hover-bg: var(--color-state-hover);--btn-secondary-hover-color: var(--btn-secondary-color);--badge-font-size-s: var(--text-sm);--badge-font-size-m: var(--text-md);--badge-tracking: var(--ui-tracking);--badge-text-transform: var(--ui-text-transform);--card-border: var(--color-border-light);--card-hover-transform: none;--table-th-font-family: var(--font-ui);--table-th-font-size: inherit;--table-th-color: var(--color-fg-secondary);--table-th-weight: var(--font-weight-semibold);--table-th-tracking: 0;--table-th-text-transform: none;--table-wrap-border: var(--color-border-light);--table-row-border: var(--color-border-light);--table-subrow-bg: var(--color-surface-2);--table-subrow-color: var(--color-fg-secondary);--table-subrow-font: var(--font-ui);--table-subrow-tracking: 0;--table-subrow-transform: none;--color-accent-2: #FFCD1B;--color-accent-2-bg: rgba(255, 205, 27, .1);--color-accent-2-fg: #0A0A0B;--breakpoint-mobile: 375px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1280px}[data-variant=landing]{--color-surface-0: #0A0A0B;--color-surface-1: #111114;--color-surface-2: #18181C;--color-surface-3: #1F1F24;--color-border-light: rgba(255, 250, 250, .05);--color-border-default: rgba(255, 250, 250, .1);--color-border-strong: rgba(255, 250, 250, .22);--color-border-focus: rgba(255, 250, 250, .42);--shadow-1: 0 2px 12px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 250, 250, .05);--shadow-2: 0 8px 32px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 250, 250, .06);--shadow-3: 0 20px 60px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 250, 250, .07);--radius-1: 0px;--radius-2: 0px;--radius-3: 0px;--radius-4: 0px;--radius-6: 0px;--radius-8: 0px;--font-ui: "Fira Code", monospace;--ui-font-weight: var(--font-weight-regular);--ui-tracking: .15em;--tab-tracking: .1em;--ui-text-transform: uppercase;--btn-padding-ratio: .62;--btn-font-weight: var(--font-weight-regular);--btn-font-size-xs: var(--text-sm);--btn-font-size-s: var(--text-sm);--btn-font-size-m: var(--text-sm);--btn-font-size-l: var(--text-sm);--tab-font-size-xs: var(--text-sm);--tab-font-size-s: var(--text-sm);--tab-font-size-m: var(--text-sm);--tab-font-size-l: var(--text-sm);--label-font-size: var(--text-sm);--label-color: var(--color-fg-secondary);--field-border: rgba(248, 249, 250, .2);--field-border-active: rgba(248, 249, 250, .4);--btn-icon-size-xs: 16px;--btn-icon-size-s: 16px;--btn-icon-size-m: 18px;--btn-icon-size-l: 20px;--btn-secondary-color: var(--color-fg-primary);--btn-secondary-border: var(--color-border-default);--btn-secondary-hover-border: var(--color-accent-2);--btn-secondary-hover-bg: var(--color-accent-2);--btn-secondary-hover-color: var(--color-accent-2-fg);--badge-font-size-s: 9px;--badge-font-size-m: 10px;--badge-tracking: .12em;--badge-text-transform: uppercase;--card-border: rgba(255, 250, 250, .12);--card-hover-transform: translateY(-3px);--table-th-font-family: "Fira Code", monospace;--table-th-color: var(--color-accent-default);--table-th-weight: var(--font-weight-regular);--table-th-tracking: .15em;--table-th-text-transform: uppercase;--table-subrow-bg: var(--color-surface-2);--table-subrow-color: var(--color-fg-secondary);--table-subrow-font: "Fira Code", monospace;--table-subrow-tracking: .15em;--table-subrow-transform: uppercase;--color-accent-hover: var(--color-accent-2);--color-accent-hover-fg: var(--color-accent-2-fg)}[data-theme=light]{--color-surface-0: #F8F9FA;--color-surface-1: #F2F2F2;--color-surface-2: #E8E8E8;--color-surface-3: #F8F9FA;--color-fg-primary: rgba(14, 15, 17, .95);--color-fg-secondary: rgba(14, 15, 17, .65);--color-fg-disabled: rgba(14, 15, 17, .3);--color-state-hover: rgba(14, 15, 17, .05);--color-state-active: rgba(14, 15, 17, .1);--color-state-selected: rgba(14, 15, 17, .08);--color-accent-hover: var(--color-red-dark);--color-border-light: rgba(14, 15, 17, .1);--color-border-default: rgba(14, 15, 17, .2);--color-border-strong: rgba(14, 15, 17, .4);--color-border-focus: rgba(14, 15, 17, .5);--color-overlay: rgba(14, 15, 17, .6);--shadow-1: 0 2px 8px rgba(0, 0, 0, .1);--shadow-2: 0 8px 24px rgba(0, 0, 0, .14);--shadow-3: 0 16px 48px rgba(0, 0, 0, .18);--color-status-info: var(--color-info-dark);--color-status-info-bg: rgba(96, 165, 250, .15);--color-status-success: var(--color-success-dark);--color-status-success-bg: rgba(0, 200, 110, .15);--color-status-warning: var(--color-warning-dark);--color-status-warning-bg: rgba(255, 187, 0, .15);--color-status-error: var(--color-error-dark);--color-status-error-bg: rgba(255, 18, 0, .15)}@media (min-width: 768px){:root{--text-4xl: 40px;--text-3xl: 36px;--text-2xl: 28px;--text-xl: 24px;--text-lg: 18px;--text-md: 16px;--text-sm: 14px;--tracking-lg: .02em;--tracking-md: .02em;--tracking-sm: .04em;--layout-padding-x: 20px;--layout-padding-y: 48px;--layout-header-height: 72px}}@media (min-width: 1280px){:root{--layout-padding-x: 24px;--layout-padding-y: 64px}}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-surface-0);color:var(--color-fg-primary);transition:background-color var(--transition-slow),color var(--transition-slow)}*{box-sizing:border-box}}.ds-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:var(--btn-font-weight);font-family:var(--font-ui);letter-spacing:var(--ui-tracking);text-transform:var(--ui-text-transform);line-height:1;border:none;cursor:pointer;transition:background-color var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal);white-space:nowrap;text-decoration:none;position:relative;isolation:isolate}.ds-button:disabled,.ds-button[aria-disabled=true]{background-color:transparent!important;color:var(--color-fg-disabled)!important;border-color:var(--color-border-default)!important;border-width:1px;border-style:solid;cursor:not-allowed;pointer-events:none}.ds-button__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.ds-button__icon>svg{width:var(--_btn-icon-sz);height:var(--_btn-icon-sz)}.ds-button--xs{--_btn-icon-sz: var(--btn-icon-size-xs)}.ds-button--s{--_btn-icon-sz: var(--btn-icon-size-s)}.ds-button--m{--_btn-icon-sz: var(--btn-icon-size-m)}.ds-button--l{--_btn-icon-sz: var(--btn-icon-size-l)}.ds-button--primary{color:var(--color-accent-fg);background-color:var(--color-accent-default)}.ds-button--primary:hover:not(:disabled):not([aria-disabled=true]){background-color:var(--color-accent-hover);color:var(--color-accent-hover-fg)}.ds-button--secondary{color:var(--btn-secondary-color);background-color:transparent;border:1px solid var(--btn-secondary-border)}.ds-button--secondary:before,.ds-button--ghost:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-button--secondary:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--btn-secondary-hover-border);color:var(--btn-secondary-hover-color)}.ds-button--secondary:hover:not(:disabled):not([aria-disabled=true]):before{background-color:var(--btn-secondary-hover-bg)}.ds-button--ghost{color:var(--color-fg-secondary);background-color:transparent}.ds-button--ghost:hover:not(:disabled):not([aria-disabled=true]){color:var(--color-fg-primary)}.ds-button--ghost:hover:not(:disabled):not([aria-disabled=true]):before{background-color:var(--color-state-hover)}.ds-button--danger{color:var(--color-accent-fg);background-color:var(--color-error-dark)}.ds-button--danger:hover:not(:disabled):not([aria-disabled=true]){background-color:#b91c1c}.ds-button--xs{height:var(--height-1);padding:0 calc(var(--height-1) * var(--btn-padding-ratio));font-size:var(--btn-font-size-xs);border-radius:var(--radius-2)}.ds-button--s{height:var(--height-2);padding:0 calc(var(--height-2) * var(--btn-padding-ratio));font-size:var(--btn-font-size-s);border-radius:var(--radius-2)}.ds-button--m{height:var(--height-3);padding:0 calc(var(--height-3) * var(--btn-padding-ratio));font-size:var(--btn-font-size-m);border-radius:var(--radius-3)}.ds-button--l{height:var(--height-4);padding:0 calc(var(--height-4) * var(--btn-padding-ratio));font-size:var(--btn-font-size-l);border-radius:var(--radius-3);gap:var(--space-3)}.ds-button--full{width:100%}.ds-button--icon-only{aspect-ratio:1;padding-left:0;padding-right:0}.ds-input-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.ds-input-wrapper--full{width:100%}.ds-input-wrapper--disabled{opacity:.5;cursor:not-allowed}.ds-input-label{font-family:var(--font-ui);font-size:var(--label-font-size);font-weight:var(--font-weight-regular);letter-spacing:var(--label-tracking);text-transform:var(--label-text-transform);color:var(--label-color)}.ds-input-container{position:relative;display:flex;align-items:center}.ds-input{width:100%;font-family:inherit;color:var(--color-fg-primary);background-color:transparent;border:1px solid var(--field-border);transition:border-color var(--transition-normal);line-height:1.5}.ds-input::placeholder{color:var(--color-fg-secondary)}.ds-input:hover:not(:disabled){border-color:var(--field-border-active)}.ds-input:focus,.ds-input:active{outline:none;border-color:var(--field-border-active)}.ds-input:disabled{cursor:not-allowed}.ds-input--error{border-color:var(--color-error)}.ds-input--xs{height:var(--height-1);padding:0 calc(var(--height-1) / 4);font-size:var(--text-sm);border-radius:var(--radius-2)}.ds-input--s{height:var(--height-2);padding:0 calc(var(--height-2) / 4);font-size:var(--text-md);border-radius:var(--radius-2)}.ds-input--m{height:var(--height-3);padding:0 calc(var(--height-3) / 4);font-size:var(--text-lg);border-radius:var(--radius-3)}.ds-input--with-icon.ds-input--xs{padding-left:calc(var(--height-1) / 4 + 16px + var(--height-1) / 4)}.ds-input--with-icon.ds-input--s{padding-left:calc(var(--height-2) / 4 + 20px + var(--height-2) / 4)}.ds-input--with-icon.ds-input--m{padding-left:calc(var(--height-3) / 4 + 24px + var(--height-3) / 4)}.ds-input--with-icon-right.ds-input--xs{padding-right:calc(var(--height-1) / 4 + 16px + var(--height-1) / 4)}.ds-input--with-icon-right.ds-input--s{padding-right:calc(var(--height-2) / 4 + 20px + var(--height-2) / 4)}.ds-input--with-icon-right.ds-input--m{padding-right:calc(var(--height-3) / 4 + 24px + var(--height-3) / 4)}.ds-input-icon{position:absolute;display:flex;align-items:center;color:var(--color-fg-secondary);pointer-events:none}.ds-input-icon--xs{left:6px}.ds-input-icon--s{left:8px}.ds-input-icon--m{left:11px}.ds-input-icon-right{position:absolute;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-fg-secondary);cursor:pointer;transition:color var(--transition-normal);padding:0}.ds-input-icon-right:hover{color:var(--color-fg-primary)}.ds-input-icon-right--xs{right:6px}.ds-input-icon-right--s{right:8px}.ds-input-icon-right--m{right:11px}.ds-input-hint{font-size:var(--text-md);color:var(--color-fg-secondary)}.ds-input-error{font-size:var(--text-md);color:var(--color-error)}.ds-textarea-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.ds-textarea-wrapper--full{width:100%}.ds-textarea-wrapper--disabled{opacity:.5;cursor:not-allowed}.ds-textarea-label{font-family:var(--font-ui);font-size:var(--label-font-size);font-weight:var(--font-weight-regular);letter-spacing:var(--label-tracking);text-transform:var(--label-text-transform);color:var(--label-color)}.ds-textarea{width:100%;font-family:inherit;color:var(--color-fg-primary);background-color:transparent;border:1px solid var(--field-border);transition:border-color var(--transition-normal);line-height:1.5;resize:vertical;background:linear-gradient(315deg,transparent 5px,var(--field-border) 5px,var(--field-border) 6px,transparent 6px),linear-gradient(315deg,transparent 10px,var(--field-border) 10px,var(--field-border) 11px,transparent 11px);background-repeat:no-repeat;background-position:bottom right;background-size:16px 16px}.ds-textarea::placeholder{color:var(--color-fg-secondary)}.ds-textarea::-webkit-resizer{display:none}.ds-textarea:hover:not(:disabled){border-color:var(--field-border-active);background:linear-gradient(315deg,transparent 5px,var(--field-border-active) 5px,var(--field-border-active) 6px,transparent 6px),linear-gradient(315deg,transparent 10px,var(--field-border-active) 10px,var(--field-border-active) 11px,transparent 11px);background-repeat:no-repeat;background-position:bottom right;background-size:16px 16px}.ds-textarea:focus,.ds-textarea:active{outline:none;border-color:var(--field-border-active);background:linear-gradient(315deg,transparent 5px,var(--field-border-active) 5px,var(--field-border-active) 6px,transparent 6px),linear-gradient(315deg,transparent 10px,var(--field-border-active) 10px,var(--field-border-active) 11px,transparent 11px);background-repeat:no-repeat;background-position:bottom right;background-size:16px 16px}.ds-textarea:disabled{cursor:not-allowed}.ds-textarea--error{border-color:var(--color-error);background:linear-gradient(315deg,transparent 5px,var(--color-error) 5px,var(--color-error) 6px,transparent 6px),linear-gradient(315deg,transparent 10px,var(--color-error) 10px,var(--color-error) 11px,transparent 11px);background-repeat:no-repeat;background-position:bottom right;background-size:16px 16px}.ds-textarea--no-resize{resize:none;background:none}.ds-textarea--xs{padding:var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-2)}.ds-textarea--s{padding:var(--space-2) var(--space-3);font-size:var(--text-md);border-radius:var(--radius-2)}.ds-textarea--m{padding:var(--space-3);font-size:var(--text-lg);border-radius:var(--radius-3)}.ds-textarea-hint{font-size:var(--text-md);color:var(--color-fg-secondary)}.ds-textarea-error{font-size:var(--text-md);color:var(--color-error)}.ds-select-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.ds-select-wrapper--full{width:100%}.ds-select-wrapper--disabled{opacity:.5;cursor:not-allowed}.ds-select-label{font-family:var(--font-ui);font-size:var(--label-font-size);font-weight:var(--font-weight-regular);letter-spacing:var(--label-tracking);text-transform:var(--label-text-transform);color:var(--label-color)}.ds-select-container{position:relative}.ds-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);font-family:inherit;color:var(--color-fg-primary);background-color:transparent;border:1px solid var(--field-border);cursor:pointer;transition:border-color var(--transition-normal);text-align:left;line-height:1.5}.ds-select-trigger>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-select-trigger:hover:not(:disabled){border-color:var(--field-border-active)}.ds-select-trigger:disabled{cursor:not-allowed}.ds-select-trigger--error{border-color:var(--color-error)}.ds-select-trigger--xs{height:var(--height-1);padding:0 calc(var(--height-1) / 4);font-size:var(--text-sm);border-radius:var(--radius-2)}.ds-select-trigger--s{height:var(--height-2);padding:0 calc(var(--height-2) / 4);font-size:var(--text-md);border-radius:var(--radius-2)}.ds-select-trigger--m{height:var(--height-3);padding:0 calc(var(--height-3) / 4);font-size:var(--text-lg);border-radius:var(--radius-3)}.ds-select-placeholder{color:var(--color-fg-secondary)}.ds-select-icon{flex-shrink:0;color:var(--color-fg-secondary);transition:transform var(--transition-normal)}.ds-select-icon--open{transform:rotate(180deg)}.ds-select-icon--up{transform:rotate(0)}.ds-select-dropdown{position:fixed;background-color:var(--color-surface-0);border:1px solid var(--field-border);box-shadow:var(--shadow-1);z-index:var(--z-dropdown);max-height:300px;overflow-y:auto}.ds-select-dropdown--s{border-radius:var(--radius-2)}.ds-select-dropdown--m{border-radius:var(--radius-3)}.ds-select-option{width:100%;font-family:inherit;color:var(--color-fg-primary);background-color:transparent;border:none;cursor:pointer;text-align:left;line-height:1.5;white-space:normal;word-wrap:break-word;position:relative;isolation:isolate}.ds-select-option:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-select-option--s{min-height:var(--height-2);padding:var(--space-2) calc(var(--height-2) / 4);font-size:var(--text-md)}.ds-select-option--m{min-height:var(--height-3);padding:var(--space-2) calc(var(--height-3) / 4);font-size:var(--text-lg)}.ds-select-option:hover:before{background-color:var(--color-state-hover)}.ds-select-option--selected:before{background-color:var(--color-state-selected)}.ds-select-error{font-size:var(--text-md);color:var(--color-error)}.ds-stepper-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.ds-stepper-label{font-family:var(--font-ui);font-size:var(--label-font-size);font-weight:var(--font-weight-regular);letter-spacing:var(--label-tracking);text-transform:var(--label-text-transform);color:var(--label-color)}.ds-stepper{display:flex;align-items:stretch;width:fit-content;border:1px solid var(--field-border);border-radius:var(--radius-2);transition:border-color var(--transition-normal)}.ds-stepper:hover:not(.ds-stepper--disabled){border-color:var(--field-border-active)}.ds-stepper:focus-within{border-color:var(--field-border-active)}.ds-stepper--disabled{cursor:not-allowed}.ds-stepper-button{display:flex;align-items:center;justify-content:center;background-color:transparent;border:none;color:var(--color-fg-secondary);cursor:pointer;transition:color var(--transition-fast);flex-shrink:0;position:relative;isolation:isolate}.ds-stepper-button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-fast)}.ds-stepper-button:hover:not(:disabled){color:var(--color-fg-primary)}.ds-stepper-button:hover:not(:disabled):before{background-color:var(--color-state-hover)}.ds-stepper-button:active:not(:disabled):before{background-color:var(--color-state-active)}.ds-stepper-button:disabled{opacity:.5;cursor:not-allowed}.ds-stepper-button--minus{border-radius:var(--radius-2) 0 0 var(--radius-2);border-right:1px solid var(--field-border)}.ds-stepper-button--plus{border-radius:0 var(--radius-2) var(--radius-2) 0;border-left:1px solid var(--field-border)}.ds-stepper-input{width:80px;text-align:center;border:none;background-color:transparent;color:var(--color-fg-primary);font-size:var(--text-lg);letter-spacing:var(--tracking-lg);outline:none;cursor:text}.ds-stepper-input:disabled{cursor:not-allowed}.ds-stepper-input::-webkit-inner-spin-button,.ds-stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ds-stepper-input[type=number]{-moz-appearance:textfield}.ds-stepper--xs{height:var(--height-1)}.ds-stepper--xs .ds-stepper-button{width:var(--height-1);padding:0}.ds-stepper--xs .ds-stepper-input{font-size:var(--text-sm);letter-spacing:var(--tracking-sm);padding:0 var(--space-2)}.ds-stepper--s{height:var(--height-2)}.ds-stepper--s .ds-stepper-button{width:var(--height-2);padding:0}.ds-stepper--s .ds-stepper-input{font-size:var(--text-md);letter-spacing:var(--tracking-md);padding:0 var(--space-2)}.ds-stepper--m{height:var(--height-3)}.ds-stepper--m .ds-stepper-button{width:var(--height-3);padding:0}.ds-stepper--m .ds-stepper-input{font-size:var(--text-lg);letter-spacing:var(--tracking-lg);padding:0 var(--space-3)}.ds-stepper-hint{font-size:var(--text-md);letter-spacing:var(--tracking-md);color:var(--color-fg-secondary)}.ds-stepper-error{font-size:var(--text-md);letter-spacing:var(--tracking-md);color:var(--color-status-error)}.ds-stepper-wrapper--error .ds-stepper{border-color:var(--color-status-error)}.ds-stepper-wrapper--error .ds-stepper:hover:not(.ds-stepper--disabled){border-color:var(--color-status-error)}.ds-stepper-wrapper--error .ds-stepper:focus-within{border-color:var(--color-status-error)}.ds-stepper-wrapper--disabled{opacity:.5;cursor:not-allowed}.ds-stepper-wrapper--disabled *{cursor:not-allowed}.ds-card{display:flex;flex-direction:column;min-width:0;background-color:transparent;border-radius:var(--radius-3);border:1px solid var(--card-border);transition:border-color var(--transition-normal),background-color var(--transition-normal),transform var(--transition-normal);text-decoration:none;color:inherit}.ds-card--interactive{cursor:pointer;background-color:var(--color-surface-1);border:none;position:relative;isolation:isolate}.ds-card--interactive:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-card--interactive:hover:not([aria-disabled=true]){transform:var(--card-hover-transform)}.ds-card--interactive:hover:not([aria-disabled=true]):before{background-color:var(--color-state-hover)}.ds-card--outline{background-color:transparent;border:1px solid var(--card-border);cursor:pointer;transition:border-color var(--transition-normal),transform var(--transition-normal)}.ds-card--outline:hover:not([aria-disabled=true]){border-color:var(--color-border-strong);transform:var(--card-hover-transform)}.ds-card[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.ds-card--none{padding:0;gap:0}.ds-card--s{padding:var(--space-3);gap:var(--space-2)}.ds-card--m{padding:var(--space-4);gap:var(--space-3)}.ds-card--l{padding:var(--space-6);gap:var(--space-4)}.ds-h1{font-size:var(--text-4xl);font-weight:var(--font-weight-regular);line-height:1.2;color:var(--color-fg-primary);letter-spacing:var(--tracking-4xl);margin:0}.ds-h2{font-size:var(--text-3xl);font-weight:var(--font-weight-regular);line-height:1.3;color:var(--color-fg-primary);letter-spacing:var(--tracking-3xl);margin:0}.ds-h3{font-size:var(--text-2xl);font-weight:var(--font-weight-regular);line-height:1.3;color:var(--color-fg-primary);letter-spacing:var(--tracking-2xl);margin:0}.ds-h4{font-size:var(--text-xl);font-weight:var(--font-weight-regular);line-height:1.4;color:var(--color-fg-primary);letter-spacing:var(--tracking-xl);margin:0}.ds-p1{font-size:var(--text-lg);font-weight:var(--font-weight-regular);line-height:1.5;color:var(--color-fg-primary);letter-spacing:var(--tracking-lg);margin:0}.ds-p1--secondary{color:var(--color-fg-secondary)}.ds-p2{font-size:var(--text-md);font-weight:var(--font-weight-regular);line-height:1.5;color:var(--color-fg-primary);letter-spacing:var(--tracking-md);margin:0}.ds-p2--secondary{color:var(--color-fg-secondary)}.ds-p3{font-size:var(--text-sm);font-weight:var(--font-weight-regular);line-height:1.5;color:var(--color-fg-primary);letter-spacing:var(--tracking-sm);margin:0}.ds-p3--secondary{color:var(--color-fg-secondary)}.ds-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-weight:var(--ui-font-weight);letter-spacing:var(--badge-tracking);text-transform:var(--badge-text-transform);white-space:nowrap}.ds-badge--s{padding:2px var(--space-2);font-size:var(--badge-font-size-s);border-radius:var(--radius-2)}.ds-badge--m{padding:3px var(--space-3);font-size:var(--badge-font-size-m);border-radius:var(--radius-3)}.ds-badge--default{background-color:var(--color-state-selected);color:var(--color-fg-secondary)}.ds-badge--info{background-color:var(--color-status-info-bg);color:var(--color-status-info)}.ds-badge--success{background-color:var(--color-status-success-bg);color:var(--color-status-success)}.ds-badge--warning{background-color:var(--color-status-warning-bg);color:var(--color-status-warning)}.ds-badge--error{background-color:var(--color-status-error-bg);color:var(--color-status-error)}.ds-badge--accent{background-color:var(--color-accent-bg);color:var(--color-accent-default)}.ds-badge--danger{background-color:var(--color-status-error-bg);color:var(--color-status-error)}[data-variant=landing] .ds-badge{background-color:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 35%,transparent)}.ds-alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-3)}.ds-alert--no-title{align-items:center}.ds-alert__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.ds-alert:not(.ds-alert--no-title) .ds-alert__icon{margin-top:2px}.ds-alert__content{flex:1;min-width:0}.ds-alert__title{font-size:var(--text-lg);font-weight:var(--font-weight-regular);margin-bottom:var(--space-2)}.ds-alert__message{font-size:var(--text-md);line-height:1.5}.ds-alert__close{flex-shrink:0;background:none;border:none;color:inherit;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity var(--transition-normal)}.ds-alert__close:hover{opacity:1}.ds-alert--info{background:linear-gradient(var(--color-status-info-bg),var(--color-status-info-bg)),var(--color-surface-1);color:var(--color-status-info)}.ds-alert--info .ds-alert__message{color:var(--color-fg-primary)}.ds-alert--success{background:linear-gradient(var(--color-status-success-bg),var(--color-status-success-bg)),var(--color-surface-1);color:var(--color-status-success)}.ds-alert--success .ds-alert__message{color:var(--color-fg-primary)}.ds-alert--warning{background:linear-gradient(var(--color-status-warning-bg),var(--color-status-warning-bg)),var(--color-surface-1);color:var(--color-status-warning)}.ds-alert--warning .ds-alert__message{color:var(--color-fg-primary)}.ds-alert--error{background:linear-gradient(var(--color-status-error-bg),var(--color-status-error-bg)),var(--color-surface-1);color:var(--color-status-error)}.ds-alert--error .ds-alert__message{color:var(--color-fg-primary)}.ds-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--color-overlay);display:flex;align-items:flex-start;justify-content:center;z-index:var(--z-modal);padding:var(--space-4);overflow-y:auto}.ds-modal{background-color:var(--color-surface-1);border-radius:var(--radius-4);box-shadow:var(--shadow-2);display:flex;flex-direction:column;margin:auto 0}.ds-modal--s{width:100%;max-width:400px}.ds-modal--m{width:100%;max-width:600px}.ds-modal--l{width:100%;max-width:900px}.ds-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6)}.ds-modal__title{font-size:var(--text-2xl);font-weight:var(--font-weight-medium);color:var(--color-fg-primary);margin:0}.ds-modal__body{padding:0 var(--space-6) var(--space-6);flex:1}.ds-modal__footer{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-6);background-color:var(--color-surface-1);position:relative;z-index:10;border-bottom-left-radius:var(--space-3);border-bottom-right-radius:var(--space-3)}.ds-code-accordion{min-width:0;overflow:hidden}.ds-code-accordion__header{display:flex;align-items:center;justify-content:space-between;width:100%;background-color:var(--color-surface-1);border:none;border-radius:var(--radius-3);color:var(--color-fg-primary);font-size:var(--text-lg);font-family:inherit;cursor:pointer;position:relative;isolation:isolate}.ds-code-accordion__header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-code-accordion__header[aria-expanded=true]{border-radius:var(--radius-3) var(--radius-3) 0 0}.ds-code-accordion__header:hover:before{background-color:var(--color-state-hover)}.ds-code-accordion__title{font-weight:var(--font-weight-regular)}.ds-code-accordion__icon{flex-shrink:0;color:var(--color-fg-secondary);transition:transform var(--transition-normal)}.ds-code-accordion__icon--expanded{transform:rotate(180deg)}.ds-code-accordion__content{font-family:Fira Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:var(--text-md);background-color:var(--color-surface-2);color:var(--color-fg-primary);overflow-x:auto;border-radius:0 0 var(--radius-3) var(--radius-3);line-height:1.6;margin:0}.ds-code-accordion--s .ds-code-accordion__header,.ds-code-accordion--s .ds-code-accordion__content{padding:var(--space-2)}.ds-code-accordion--m .ds-code-accordion__header,.ds-code-accordion--m .ds-code-accordion__content{padding:var(--space-3)}.ds-code-accordion--l .ds-code-accordion__header,.ds-code-accordion--l .ds-code-accordion__content{padding:var(--space-4)}.ds-code-accordion__content code{background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:inherit}@media (max-width: 640px){.ds-code-accordion__header{font-size:var(--text-md)}.ds-code-accordion--l .ds-code-accordion__header,.ds-code-accordion--l .ds-code-accordion__content{padding:var(--space-3)}}.ds-code-inline{font-family:Fira Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:.9em;background-color:var(--color-surface-2);color:var(--color-fg-primary);padding:2px 6px;border-radius:var(--radius-3);white-space:nowrap}.ds-code-block{font-family:Fira Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:var(--text-md);background-color:var(--color-surface-2);color:var(--color-fg-primary);padding:var(--space-3);border-radius:var(--radius-3);overflow-x:auto;line-height:1.6;margin:0}.ds-code-block code{background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:inherit}.ds-link{color:var(--color-accent-default);text-decoration:none;cursor:pointer;transition:color var(--transition-fast),text-decoration var(--transition-fast);font-size:inherit;font-weight:inherit;line-height:inherit}.ds-link:hover{color:var(--color-accent-hover);text-decoration:underline}.ds-link:active{color:var(--color-accent-hover)}.ds-tabs{display:flex;gap:var(--space-2);flex-wrap:wrap}.ds-tab{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-ui);font-weight:var(--ui-font-weight);letter-spacing:var(--tab-tracking);text-transform:var(--ui-text-transform);line-height:1;cursor:pointer;background-color:transparent;color:var(--color-fg-primary);transition:border-color var(--transition-normal),background-color var(--transition-normal);white-space:nowrap;text-decoration:none}.ds-tab--ghost{border:none;color:var(--color-fg-secondary);position:relative;isolation:isolate}.ds-tab--ghost:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-tab--ghost:hover:not(.ds-tab--selected):not(:disabled):not([aria-disabled=true]){color:var(--color-fg-primary)}.ds-tab--ghost:hover:not(.ds-tab--selected):not(:disabled):not([aria-disabled=true]):before{background-color:var(--color-state-hover)}.ds-tab--ghost.ds-tab--selected{color:var(--color-fg-primary)}.ds-tab--ghost.ds-tab--selected:before{background-color:var(--color-state-selected)}.ds-tab--xs{height:var(--height-1);padding:0 calc(var(--height-1) / 2);font-size:var(--tab-font-size-xs);border-radius:var(--radius-2)}.ds-tab--s{height:var(--height-2);padding:0 calc(var(--height-2) / 2);font-size:var(--tab-font-size-s);border-radius:var(--radius-2)}.ds-tab--m{height:var(--height-3);padding:0 calc(var(--height-3) / 2);font-size:var(--tab-font-size-m);border-radius:var(--radius-3)}.ds-tab--l{height:var(--height-4);padding:0 calc(var(--height-4) / 2);font-size:var(--tab-font-size-l);border-radius:var(--radius-3);gap:var(--space-3)}.ds-tab:disabled,.ds-tab[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.ds-tab-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.ds-tab--icon-only{aspect-ratio:1;padding-left:0;padding-right:0}.ds-accordion{min-width:0}.ds-accordion__header{display:flex;align-items:center;justify-content:space-between;width:100%;background-color:var(--color-surface-1);border:none;border-radius:var(--radius-3);color:var(--color-fg-primary);font-size:var(--text-xl);font-family:inherit;cursor:pointer;position:relative;isolation:isolate}.ds-accordion__header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:inherit;pointer-events:none;z-index:-1;transition:background-color var(--transition-normal)}.ds-accordion__header[aria-expanded=true]{border-radius:var(--radius-3) var(--radius-3) 0 0}.ds-accordion__header:hover:before{background-color:var(--color-state-hover)}.ds-accordion__title{font-weight:var(--font-weight-regular)}.ds-accordion__icon{flex-shrink:0;color:var(--color-fg-secondary);transition:transform var(--transition-normal)}.ds-accordion__icon--expanded{transform:rotate(180deg)}.ds-accordion__content{display:flex;flex-direction:column;background-color:var(--color-surface-1);border-radius:0 0 var(--radius-3) var(--radius-3);overflow-x:auto}.ds-accordion--s .ds-accordion__header{padding:var(--space-3)}.ds-accordion--s .ds-accordion__content{padding:var(--space-3);gap:var(--space-2)}.ds-accordion--m .ds-accordion__header{padding:var(--space-4)}.ds-accordion--m .ds-accordion__content{padding:var(--space-4);gap:var(--space-3)}.ds-accordion--l .ds-accordion__header{padding:var(--space-6)}.ds-accordion--l .ds-accordion__content{padding:var(--space-6);gap:var(--space-4)}@media (max-width: 640px){.ds-accordion__header{font-size:var(--text-lg)}.ds-accordion--l .ds-accordion__header{padding:var(--space-4)}.ds-accordion--l .ds-accordion__content{padding:var(--space-4);gap:var(--space-3)}}.ds-tooltip-wrapper{position:relative;display:inline-flex}.ds-tooltip{background-color:var(--color-surface-3);color:var(--color-fg-secondary);font-size:var(--text-sm);letter-spacing:var(--tracking-sm);width:max-content;max-width:200px;padding:var(--space-2);border:1px solid var(--color-border-default);box-shadow:var(--shadow-1);z-index:var(--z-tooltip);border-radius:var(--radius-2);white-space:normal;word-wrap:break-word;pointer-events:none;line-height:1.4}.ds-tooltip--top:after{content:"";position:absolute;top:100%;left:calc(50% + var(--arrow-offset, 0px));transform:translate(-50%);border:4px solid transparent;border-top-color:var(--color-border-default)}.ds-tooltip--top:before{content:"";position:absolute;top:100%;left:calc(50% + var(--arrow-offset, 0px));transform:translate(-50%);border:3px solid transparent;border-top-color:var(--color-surface-3);z-index:1}.ds-tooltip--bottom:after{content:"";position:absolute;bottom:100%;left:calc(50% + var(--arrow-offset, 0px));transform:translate(-50%);border:4px solid transparent;border-bottom-color:var(--color-border-default)}.ds-tooltip--bottom:before{content:"";position:absolute;bottom:100%;left:calc(50% + var(--arrow-offset, 0px));transform:translate(-50%);border:3px solid transparent;border-bottom-color:var(--color-surface-3);z-index:1}.ds-tooltip--left:after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:4px solid transparent;border-left-color:var(--color-border-default)}.ds-tooltip--left:before{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:3px solid transparent;border-left-color:var(--color-surface-3);z-index:1}.ds-tooltip--right:after{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:4px solid transparent;border-right-color:var(--color-border-default)}.ds-tooltip--right:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:3px solid transparent;border-right-color:var(--color-surface-3);z-index:1}.ds-toggle{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer}.ds-toggle--disabled{opacity:.5;cursor:not-allowed}.ds-toggle__input{position:absolute;opacity:0;pointer-events:none}.ds-toggle__track{position:relative;display:flex;align-items:center;background-color:var(--color-surface-1);border:1px solid var(--field-border);transition:background-color var(--transition-normal),border-color var(--transition-normal);flex-shrink:0}.ds-toggle__input:checked+.ds-toggle__track{background-color:var(--color-accent-default);border-color:var(--color-accent-default)}.ds-toggle__input:not(:checked)+.ds-toggle__track:hover{border-color:var(--field-border-active)}.ds-toggle__thumb{background-color:var(--color-accent-fg);border-radius:50%;transition:transform var(--transition-normal);box-shadow:0 1px 3px #0003}.ds-toggle__label{font-size:var(--text-lg);color:var(--color-fg-primary);-webkit-user-select:none;user-select:none}.ds-toggle--xs .ds-toggle__track{width:calc(var(--icon-1) * 1.75);height:var(--icon-1);border-radius:calc(var(--icon-1) / 2);padding:2px}.ds-toggle--xs .ds-toggle__thumb{width:calc(var(--icon-1) - 4px);height:calc(var(--icon-1) - 4px)}.ds-toggle--xs .ds-toggle__input:checked+.ds-toggle__track .ds-toggle__thumb{transform:translate(calc(var(--icon-1) * .75))}.ds-toggle--xs .ds-toggle__label{font-size:var(--text-sm)}.ds-toggle--s .ds-toggle__track{width:calc(var(--icon-2) * 1.75);height:var(--icon-2);border-radius:calc(var(--icon-2) / 2);padding:2px}.ds-toggle--s .ds-toggle__thumb{width:calc(var(--icon-2) - 4px);height:calc(var(--icon-2) - 4px)}.ds-toggle--s .ds-toggle__input:checked+.ds-toggle__track .ds-toggle__thumb{transform:translate(calc(var(--icon-2) * .75))}.ds-toggle--s .ds-toggle__label{font-size:var(--text-md)}.ds-toggle--m .ds-toggle__track{width:calc(var(--icon-3) * 1.75);height:var(--icon-3);border-radius:calc(var(--icon-3) / 2);padding:2px}.ds-toggle--m .ds-toggle__thumb{width:calc(var(--icon-3) - 4px);height:calc(var(--icon-3) - 4px)}.ds-toggle--m .ds-toggle__input:checked+.ds-toggle__track .ds-toggle__thumb{transform:translate(calc(var(--icon-3) * .75))}.ds-toggle--m .ds-toggle__label{font-size:var(--text-lg)}.ds-toggle--l .ds-toggle__track{width:calc(var(--icon-4) * 1.75);height:var(--icon-4);border-radius:calc(var(--icon-4) / 2);padding:3px}.ds-toggle--l .ds-toggle__thumb{width:calc(var(--icon-4) - 6px);height:calc(var(--icon-4) - 6px)}.ds-toggle--l .ds-toggle__input:checked+.ds-toggle__track .ds-toggle__thumb{transform:translate(calc(var(--icon-4) * .75))}.ds-toggle--l .ds-toggle__label{font-size:var(--text-lg)}.ds-checkbox{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer}.ds-checkbox--disabled{opacity:.5;cursor:not-allowed}.ds-checkbox__input{position:absolute;opacity:0;pointer-events:none}.ds-checkbox__box{position:relative;display:flex;align-items:center;justify-content:center;background-color:var(--color-surface-1);border:1px solid var(--field-border);transition:background-color var(--transition-normal),border-color var(--transition-normal);flex-shrink:0;border-radius:4px}.ds-checkbox__input:checked+.ds-checkbox__box{background-color:var(--color-accent-default);border-color:var(--color-accent-default)}.ds-checkbox__input:not(:checked)+.ds-checkbox__box:hover{border-color:var(--field-border-active)}.ds-checkbox__icon{color:var(--color-accent-fg)}.ds-checkbox__label{font-size:var(--text-lg);color:var(--color-fg-primary);-webkit-user-select:none;user-select:none}.ds-checkbox--xs .ds-checkbox__box{width:var(--icon-1);height:var(--icon-1)}.ds-checkbox--xs .ds-checkbox__label{font-size:var(--text-sm)}.ds-checkbox--s .ds-checkbox__box{width:var(--icon-2);height:var(--icon-2)}.ds-checkbox--s .ds-checkbox__label{font-size:var(--text-md)}.ds-checkbox--m .ds-checkbox__box{width:var(--icon-3);height:var(--icon-3)}.ds-checkbox--m .ds-checkbox__label{font-size:var(--text-lg)}.ds-checkbox--l .ds-checkbox__box{width:var(--icon-4);height:var(--icon-4)}.ds-checkbox--l .ds-checkbox__label{font-size:var(--text-lg)}[data-variant=landing] .ds-checkbox__box{border-radius:0}.ds-radio{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer}.ds-radio--disabled{opacity:.5;cursor:not-allowed}.ds-radio__input{position:absolute;opacity:0;pointer-events:none}.ds-radio__circle{position:relative;display:flex;align-items:center;justify-content:center;background-color:var(--color-surface-1);border:1px solid var(--field-border);transition:background-color var(--transition-normal),border-color var(--transition-normal);flex-shrink:0;border-radius:50%}.ds-radio__input:checked+.ds-radio__circle{background-color:var(--color-accent-default);border-color:var(--color-accent-default)}.ds-radio__input:not(:checked)+.ds-radio__circle:hover{border-color:var(--field-border-active)}.ds-radio__dot{background-color:var(--color-accent-fg);border-radius:50%;opacity:0;transition:opacity var(--transition-normal)}.ds-radio__input:checked+.ds-radio__circle .ds-radio__dot{opacity:1}.ds-radio__label{font-size:var(--text-lg);color:var(--color-fg-primary);-webkit-user-select:none;user-select:none}.ds-radio--xs .ds-radio__circle{width:var(--icon-1);height:var(--icon-1)}.ds-radio--xs .ds-radio__dot{width:6px;height:6px}.ds-radio--xs .ds-radio__label{font-size:var(--text-sm)}.ds-radio--s .ds-radio__circle{width:var(--icon-2);height:var(--icon-2)}.ds-radio--s .ds-radio__dot{width:8px;height:8px}.ds-radio--s .ds-radio__label{font-size:var(--text-md)}.ds-radio--m .ds-radio__circle{width:var(--icon-3);height:var(--icon-3)}.ds-radio--m .ds-radio__dot{width:10px;height:10px}.ds-radio--m .ds-radio__label{font-size:var(--text-lg)}.ds-radio--l .ds-radio__circle{width:var(--icon-4);height:var(--icon-4)}.ds-radio--l .ds-radio__dot{width:12px;height:12px}.ds-radio--l .ds-radio__label{font-size:var(--text-lg)}.ds-spinner{display:inline-block;border-radius:var(--radius-full);border-style:solid;flex-shrink:0;animation:ds-spin .8s linear infinite}@keyframes ds-spin{to{transform:rotate(360deg)}}.ds-spinner--xs{width:12px;height:12px;border-width:1.5px}.ds-spinner--s{width:16px;height:16px;border-width:2px}.ds-spinner--m{width:20px;height:20px;border-width:2px}.ds-spinner--l{width:24px;height:24px;border-width:2.5px}.ds-spinner--xl{width:32px;height:32px;border-width:3px}.ds-spinner--default{border-color:var(--color-border-default);border-top-color:var(--color-accent-default)}.ds-spinner--secondary{border-color:var(--color-border-default);border-top-color:var(--color-fg-secondary)}.ds-spinner--on-accent{border-color:#f8f9fa4d;border-top-color:var(--color-accent-fg)}.ds-skeleton{display:block;background-color:var(--color-surface-2);animation:ds-skeleton-pulse 1.5s ease-in-out infinite}@keyframes ds-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.85}}.ds-skeleton--rect{border-radius:var(--radius-2)}.ds-skeleton--circle{border-radius:var(--radius-full)}.ds-skeleton--text{height:1em;border-radius:var(--radius-2)}.ds-avatar__initials{font-size:.4em;font-weight:var(--font-weight-medium);line-height:1;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.ds-avatar img{width:100%;height:100%;border-radius:inherit;object-fit:cover;display:block}.ds-avatar{flex-shrink:0;border-radius:var(--radius-full);display:grid;place-items:center;border:1px solid var(--color-border-default);background-color:hsl(var(--ds-avatar-h, 220) 22% 88%);color:hsl(var(--ds-avatar-h, 220) 30% 35%);overflow:hidden}[data-theme=dark] .ds-avatar,:root:not([data-theme=light]) .ds-avatar{background-color:hsl(var(--ds-avatar-h, 220) 18% 22%);color:hsl(var(--ds-avatar-h, 220) 40% 72%)}.ds-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-3);border:1px solid var(--table-wrap-border)}.ds-table-wrap--scroll{overflow-y:auto}.ds-table-wrap{scrollbar-width:thin;scrollbar-color:var(--color-border-default) transparent}.ds-table-wrap::-webkit-scrollbar{height:6px;width:6px}.ds-table-wrap::-webkit-scrollbar-track{background:transparent}.ds-table-wrap::-webkit-scrollbar-thumb{background-color:var(--color-border-default);border-radius:var(--radius-full)}.ds-table-wrap::-webkit-scrollbar-thumb:hover{background-color:var(--color-border-strong)}.ds-table{width:100%;border-collapse:collapse;background-color:var(--color-surface-1)}.ds-table thead{background-color:var(--color-surface-2)}.ds-table th{font-family:var(--table-th-font-family);font-weight:var(--table-th-weight);font-size:var(--table-th-font-size);color:var(--table-th-color);letter-spacing:var(--table-th-tracking);text-transform:var(--table-th-text-transform);text-align:left;white-space:nowrap;-webkit-user-select:none;user-select:none;position:sticky;top:var(--ds-table-sticky-top, 0px);z-index:2;background-color:var(--color-surface-2);box-shadow:0 1px 0 var(--table-row-border)}.ds-th--sortable{cursor:pointer}.ds-th--sortable:hover{color:var(--color-fg-primary)}.ds-table td{text-align:left;color:var(--color-fg-primary);border-bottom:1px solid var(--table-row-border);vertical-align:middle}.ds-table tbody tr:last-child td{border-bottom:none}.ds-table--compact th,.ds-table--compact td{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);letter-spacing:var(--tracking-sm);line-height:1.4}.ds-table--default th,.ds-table--default td{padding:var(--space-3) var(--space-4);font-size:var(--text-md);letter-spacing:var(--tracking-md)}.ds-table-row--interactive{cursor:pointer;transition:background-color var(--transition-fast)}.ds-table-row--interactive:hover{background-color:var(--color-state-hover)}.ds-table-row--interactive:active{background-color:var(--color-state-active)}.ds-table-row--selected,.ds-table-row--selected.ds-table-row--interactive:hover{background-color:var(--color-state-selected)}.ds-table-cell--center{text-align:center}.ds-table-cell--right{text-align:right}.ds-table-cell--secondary{color:var(--color-fg-secondary)}.ds-table-cell--muted{color:var(--color-fg-disabled)}.ds-table-cell--truncate{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-table-cell--nowrap{white-space:nowrap}.ds-th__inner{display:inline-flex;align-items:center;gap:var(--space-1)}.ds-th__sort-icon{flex-shrink:0;opacity:.35;transition:opacity var(--transition-fast)}.ds-th--sorted .ds-th__sort-icon{opacity:1;color:var(--color-accent-default)}.ds-th--sortable:hover .ds-th__sort-icon{opacity:.7}.ds-table-row--subheader td{font-family:var(--table-subrow-font);color:var(--table-subrow-color);background-color:var(--table-subrow-bg);letter-spacing:var(--table-subrow-tracking);text-transform:var(--table-subrow-transform);font-weight:var(--table-th-weight);border-top:1px solid var(--table-row-border);border-bottom:1px solid var(--table-row-border);pointer-events:none;-webkit-user-select:none;user-select:none}.ds-empty-state{display:flex;flex-direction:column;align-items:center;text-align:center}.ds-empty-state__icon{color:var(--color-fg-disabled);flex-shrink:0;display:flex;align-items:center}.ds-empty-state--s .ds-empty-state__icon svg{width:var(--icon-3);height:var(--icon-3)}.ds-empty-state--m .ds-empty-state__icon svg,.ds-empty-state--l .ds-empty-state__icon svg{width:var(--icon-5);height:var(--icon-5)}.ds-empty-state__title{font-size:var(--text-lg);font-weight:var(--font-weight-medium);color:var(--color-fg-primary);line-height:1.4}.ds-empty-state__description{font-size:var(--text-md);color:var(--color-fg-secondary);line-height:1.5;max-width:360px}.ds-empty-state--s{padding:var(--space-6);gap:var(--space-2)}.ds-empty-state--s .ds-empty-state__title{font-size:var(--text-md)}.ds-empty-state--s .ds-empty-state__description{font-size:var(--text-sm)}.ds-empty-state--m{padding:var(--space-10);gap:var(--space-3)}.ds-empty-state--l{padding:var(--space-16);gap:var(--space-4)}.ds-empty-state--l .ds-empty-state__title{font-size:var(--text-xl)}.ds-empty-state__action{margin-top:var(--space-1)}.ds-dropdown{position:relative;display:inline-block}.ds-dropdown__trigger{display:inline-flex}.ds-dropdown__menu{position:fixed;z-index:var(--z-dropdown);min-width:180px;background-color:var(--color-surface-0);border:1px solid var(--color-border-default);border-radius:var(--radius-3);box-shadow:var(--shadow-2);padding:var(--space-2)}.ds-dropdown__item{display:flex;align-items:center;gap:var(--space-2);width:100%;height:var(--height-2);padding:0 var(--space-3);background:none;border:none;border-radius:var(--radius-2);cursor:pointer;font-size:var(--text-md);font-family:var(--font-ui);font-weight:var(--font-weight-regular);color:var(--color-fg-secondary);text-align:left;text-decoration:none;transition:background-color var(--transition-normal),color var(--transition-normal)}.ds-dropdown__item:hover:not(:disabled):not([aria-disabled=true]){background-color:var(--color-state-hover);color:var(--color-fg-primary)}.ds-dropdown__item:disabled,.ds-dropdown__item[aria-disabled=true]{color:var(--color-fg-disabled);cursor:not-allowed}.ds-dropdown__item--danger{color:var(--color-status-error)}.ds-dropdown__item--danger:hover:not(:disabled):not([aria-disabled=true]){background-color:var(--color-status-error-bg);color:var(--color-status-error)}.ds-dropdown__item-icon{display:flex;align-items:center;flex-shrink:0}.ds-dropdown__item-label{flex:1}.ds-dropdown__item-shortcut{font-size:var(--text-sm);color:var(--color-fg-disabled);padding-left:var(--space-3)}.ds-dropdown__separator{height:1px;background-color:var(--color-border-light);margin:var(--space-2) 0}.ds-dropdown__section{padding:var(--space-2) var(--space-2) var(--space-2)}.ds-dropdown__section-label{font-size:var(--text-sm);color:var(--color-fg-secondary);margin-bottom:var(--space-2);padding:0 var(--space-1)}.ds-toast-container{position:fixed;z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.ds-toast-container--bottom-right{bottom:var(--space-6);right:var(--space-6);align-items:flex-end}.ds-toast-container--bottom-left{bottom:var(--space-6);left:var(--space-6);align-items:flex-start}.ds-toast-container--top-right{top:var(--space-6);right:var(--space-6);align-items:flex-end}.ds-toast-container--top-left{top:var(--space-6);left:var(--space-6);align-items:flex-start}.ds-toast-container--bottom-center{bottom:var(--space-6);left:50%;transform:translate(-50%);align-items:center}.ds-toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-3);box-shadow:var(--shadow-3);font-size:var(--text-md);pointer-events:all;max-width:380px;min-width:240px;opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease}.ds-toast--visible{opacity:1;transform:translateY(0)}.ds-toast--default{background:linear-gradient(var(--color-status-info-bg),var(--color-status-info-bg)),var(--color-surface-1);color:var(--color-status-info)}.ds-toast--success{background:linear-gradient(var(--color-status-success-bg),var(--color-status-success-bg)),var(--color-surface-1);color:var(--color-status-success)}.ds-toast--warning{background:linear-gradient(var(--color-status-warning-bg),var(--color-status-warning-bg)),var(--color-surface-1);color:var(--color-status-warning)}.ds-toast--error{background:linear-gradient(var(--color-status-error-bg),var(--color-status-error-bg)),var(--color-surface-1);color:var(--color-status-error)}.ds-toast__icon{flex-shrink:0;display:flex;align-items:center}.ds-toast__message{flex:1;color:var(--color-fg-primary);line-height:1.5}.ds-toast__close{flex-shrink:0;background:none;border:none;cursor:pointer;color:inherit;opacity:.7;padding:0;display:flex;align-items:center;transition:opacity var(--transition-normal)}.ds-toast__close:hover{opacity:1}
|
package/package.json
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@donkit-ai/design-system",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.7",
|
|
4
4
|
"description": "Donkit Design System - minimal design tokens and React components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs.js",
|
|
7
7
|
"module": "./dist/index.es.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
8
9
|
"sideEffects": [
|
|
9
10
|
"*.css",
|
|
10
11
|
"dist/tokens.css"
|
|
11
12
|
],
|
|
12
13
|
"exports": {
|
|
13
14
|
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
14
16
|
"import": "./dist/index.es.js",
|
|
15
17
|
"require": "./dist/index.cjs.js"
|
|
16
18
|
},
|
|
@@ -22,7 +24,7 @@
|
|
|
22
24
|
],
|
|
23
25
|
"scripts": {
|
|
24
26
|
"dev": "vite",
|
|
25
|
-
"build": "vite build",
|
|
27
|
+
"build": "vite build && cp src/index.d.ts dist/index.d.ts",
|
|
26
28
|
"preview": "vite preview",
|
|
27
29
|
"prepublishOnly": "npm run build"
|
|
28
30
|
},
|