@smworks-cz/ui-kit 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,4 +1,5 @@
1
- import React from 'react';
1
+ import * as React from 'react';
2
+ import React__default from 'react';
2
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
4
 
4
5
  type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'danger' | 'danger-outline';
@@ -9,8 +10,8 @@ interface ButtonBaseProps {
9
10
  /**
10
11
  * Vizuální varianta tlačítka.
11
12
  * - `primary` — oranžové vyplnění (#FC4F00)
12
- * - `secondary` — průhledné, bez okraje
13
- * - `outline` — průhledné s bílým okrajem
13
+ * - `secondary` — jemné tónované pozadí bez okraje (viditelné i na kartě)
14
+ * - `outline` — průhledné s okrajem
14
15
  * - `danger` — červené vyplnění (#EF3838)
15
16
  * - `danger-outline` — průhledné s červeným okrajem a červeným textem
16
17
  * @default 'primary'
@@ -25,7 +26,7 @@ interface ButtonBaseProps {
25
26
  * Volitelná ikona — libovolný React uzel (SVG, komponenta…).
26
27
  * Při použití bez `children` se tlačítko vykreslí jako čtverec.
27
28
  */
28
- icon?: React.ReactNode;
29
+ icon?: React__default.ReactNode;
29
30
  /**
30
31
  * Na které straně se ikona zobrazí vzhledem k textu.
31
32
  * @default 'left'
@@ -45,14 +46,15 @@ interface ButtonBaseProps {
45
46
  */
46
47
  loadingPosition?: 'replace' | 'after-text';
47
48
  /**
48
- * Roztáhne tlačítko na celou šířku kontejneru.
49
+ * Roztáhne tlačítko na dostupnou šířku. Ve flex řádku vedle jiných prvků
50
+ * vyplní zbytek (`flex: 1 1 auto`, `min-width: 0`), nepřeteče rodiče.
49
51
  */
50
52
  fullWidth?: boolean;
51
53
  /**
52
54
  * Další inline styly aplikované na kořenový element (`<button>` nebo `<a>`).
53
55
  * Sloučeny za všechny variantní / velikostní styly — pro jednorázové přepsání.
54
56
  */
55
- style?: React.CSSProperties;
57
+ style?: React__default.CSSProperties;
56
58
  /**
57
59
  * Dodatečná CSS třída pro kořenový element.
58
60
  */
@@ -61,25 +63,25 @@ interface ButtonBaseProps {
61
63
  * Textový obsah tlačítka.
62
64
  * Při vynechání (pokud je zadána `icon`) se tlačítko vykreslí jako čtverec.
63
65
  */
64
- children?: React.ReactNode;
66
+ children?: React__default.ReactNode;
65
67
  }
66
68
  /** Vykreslení jako nativní `<button>` (výchozí). Dědí všechny standardní atributy — včetně `onClick`, `type`, `form`, `name`, `value`, `aria-*` apod. */
67
- interface ButtonAsButtonProps extends ButtonBaseProps, Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof ButtonBaseProps> {
69
+ interface ButtonAsButtonProps extends ButtonBaseProps, Omit<React__default.ButtonHTMLAttributes<HTMLButtonElement>, keyof ButtonBaseProps> {
68
70
  /** Při vynechání se komponenta vykreslí jako `<button>`. */
69
71
  href?: undefined;
70
72
  }
71
73
  /** Vykreslení jako `<a>` odkaz, pokud je zadáno `href`. Vhodné pro navigační tlačítka. */
72
- interface ButtonAsAnchorProps extends ButtonBaseProps, Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof ButtonBaseProps> {
74
+ interface ButtonAsAnchorProps extends ButtonBaseProps, Omit<React__default.AnchorHTMLAttributes<HTMLAnchorElement>, keyof ButtonBaseProps> {
73
75
  href: string;
74
76
  }
75
77
  type ButtonProps = ButtonAsButtonProps | ButtonAsAnchorProps;
76
- declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
78
+ declare const Button: React__default.ForwardRefExoticComponent<ButtonProps & React__default.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
77
79
 
78
- interface IconButtonProps {
80
+ interface IconButtonProps extends Omit<React__default.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'style' | 'className'> {
79
81
  /** Ikona. */
80
- icon: React.ReactNode;
82
+ icon: React__default.ReactNode;
81
83
  /** Callback při kliknutí. */
82
- onClick?: (e: React.MouseEvent) => void;
84
+ onClick?: (e: React__default.MouseEvent<HTMLButtonElement>) => void;
83
85
  /** Povinný aria-label pro přístupnost. */
84
86
  label: string;
85
87
  /** Varianta. @default 'default' */
@@ -90,10 +92,18 @@ interface IconButtonProps {
90
92
  disabled?: boolean;
91
93
  /** Zobrazí spinner. @default false */
92
94
  loading?: boolean;
95
+ /**
96
+ * Sepnutý stav (toggle v toolbaru — tučné písmo, filtr…). Zvýrazní pozadí
97
+ * a nastaví `aria-pressed`.
98
+ * @default false
99
+ */
100
+ active?: boolean;
93
101
  /** Automaticky obalí tooltipem. */
94
102
  tooltip?: string;
103
+ /** Typ nativního tlačítka. @default 'button' */
104
+ type?: 'button' | 'submit' | 'reset';
95
105
  /** Další inline styly. */
96
- style?: React.CSSProperties;
106
+ style?: React__default.CSSProperties;
97
107
  /** Dodatečná CSS třída. */
98
108
  className?: string;
99
109
  }
@@ -101,33 +111,35 @@ interface IconButtonProps {
101
111
  * Čtvercové tlačítko pro ikonu.
102
112
  *
103
113
  * Optimalizované pro akce bez textu — klikací plocha je čtvercová,
104
- * varianta a velikost se řídí samostatně.
114
+ * varianta a velikost se řídí samostatně. Forwarduje `ref` a propouští
115
+ * nativní atributy (`type`, `title`, `aria-*`, `data-*`, `form`…).
105
116
  *
106
117
  * @example
107
118
  * ```tsx
108
119
  * <IconButton icon={<TrashIcon />} label="Smazat" variant="danger" onClick={handleDelete} />
109
120
  * <IconButton icon={<PencilIcon />} label="Upravit" tooltip="Upravit záznam" />
121
+ * <IconButton icon={<TextBIcon />} label="Tučně" active={isBold} onClick={toggleBold} />
110
122
  * ```
111
123
  */
112
- declare const IconButton: React.FC<IconButtonProps>;
124
+ declare const IconButton: React__default.ForwardRefExoticComponent<IconButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
113
125
 
114
126
  interface FormFieldProps {
115
127
  /** Popisek pole. */
116
- label?: string | React.ReactNode;
128
+ label?: string | React__default.ReactNode;
117
129
  /** Povinné pole — zobrazí hvězdičku. @default false */
118
130
  required?: boolean;
119
131
  /** Nápovědný text pod polem. */
120
- helperText?: string | React.ReactNode;
132
+ helperText?: string | React__default.ReactNode;
121
133
  /** Chybová zpráva — zobrazí se červeně pod polem. */
122
- error?: string | React.ReactNode;
134
+ error?: string | React__default.ReactNode;
123
135
  /** Formulářový prvek (input, select, atd.). */
124
- children: React.ReactNode;
136
+ children: React__default.ReactNode;
125
137
  /** Vodorovný layout (label vlevo, field vpravo). @default false */
126
138
  inline?: boolean;
127
139
  /** Šířka labelu v inline režimu. @default '120px' */
128
140
  labelWidth?: number | string;
129
141
  /** Další inline styly. */
130
- style?: React.CSSProperties;
142
+ style?: React__default.CSSProperties;
131
143
  /** Dodatečná CSS třída. */
132
144
  className?: string;
133
145
  }
@@ -148,10 +160,45 @@ interface FormFieldProps {
148
160
  * </FormField>
149
161
  * ```
150
162
  */
151
- declare const FormField: React.FC<FormFieldProps>;
163
+ declare const FormField: React__default.FC<FormFieldProps>;
164
+
165
+ interface FieldLabelProps extends Omit<React__default.LabelHTMLAttributes<HTMLLabelElement>, 'children'> {
166
+ /** Text popisku. */
167
+ children: React__default.ReactNode;
168
+ /** Zobrazí hvězdičku povinného pole. @default false */
169
+ required?: boolean;
170
+ /** Vykreslit jako `<span>` místo `<label>` (pro prvky, které nejsou formulářové). @default 'label' */
171
+ as?: 'label' | 'span';
172
+ }
173
+ /**
174
+ * Samostatný popisek pole ve stylu SM-UI (Zalando Sans Expanded, 10px, verzálky).
175
+ * Stejná typografie, jakou používá `label` prop u Input / Select / Textarea,
176
+ * pro vlastní prvky konzumenta.
177
+ *
178
+ * @example
179
+ * ```tsx
180
+ * <FieldLabel htmlFor="color" required>Barva</FieldLabel>
181
+ * <FieldLabel as="span">Nastavení</FieldLabel>
182
+ * ```
183
+ */
184
+ declare const FieldLabel: React__default.FC<FieldLabelProps>;
152
185
 
153
186
  type InputSize = 'sm' | 'md' | 'lg';
154
- interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
187
+ type InputVariant = 'default' | 'inline';
188
+ interface InputProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'size'> {
189
+ /**
190
+ * Vizuální varianta.
191
+ * - `'default'` — pole s pozadím a rámečkem
192
+ * - `'inline'` — bez pozadí a rámečku v klidu (vypadá jako text), rámeček až na hover / focus.
193
+ * Pro editaci přímo v buňce tabulky nebo kartě (click-to-edit).
194
+ * @default 'default'
195
+ */
196
+ variant?: InputVariant;
197
+ /**
198
+ * Voláno při potvrzení hodnoty — na blur a na Enter — jen pokud se hodnota
199
+ * od získání fokusu změnila. Vzor click-to-edit: uložení až po dopsání, ne na každý stisk.
200
+ */
201
+ onCommit?: (value: string) => void;
155
202
  /**
156
203
  * Popisek zobrazený nad vstupním polem.
157
204
  * Stylizován velkými písmeny dle SM-UI design systému.
@@ -162,7 +209,7 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, '
162
209
  * Ikona vykreslená uvnitř vstupního pole.
163
210
  * Typicky SVG nebo komponenta ikony.
164
211
  */
165
- icon?: React.ReactNode;
212
+ icon?: React__default.ReactNode;
166
213
  /**
167
214
  * Na které straně se ikona zobrazí.
168
215
  * @default 'left'
@@ -212,7 +259,7 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, '
212
259
  * Další inline styly pro **obalový** `<div>` (ne pro nativní input).
213
260
  * Pro stylování nativního `<input>` použijte `inputStyle`.
214
261
  */
215
- style?: React.CSSProperties;
262
+ style?: React__default.CSSProperties;
216
263
  /**
217
264
  * Dodatečná CSS třída pro **obalový** `<div>`.
218
265
  */
@@ -220,7 +267,7 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, '
220
267
  /**
221
268
  * Další inline styly aplikované přímo na nativní `<input>` element.
222
269
  */
223
- inputStyle?: React.CSSProperties;
270
+ inputStyle?: React__default.CSSProperties;
224
271
  }
225
272
  interface InputGroupProps {
226
273
  /**
@@ -237,9 +284,9 @@ interface InputGroupProps {
237
284
  * Vstupní element(y) vykreslené uvnitř skupiny.
238
285
  * Při vynechání se vykreslí výchozí `<Input />`.
239
286
  */
240
- children?: React.ReactNode;
287
+ children?: React__default.ReactNode;
241
288
  /** Další inline styly pro obalový `<div>`. */
242
- style?: React.CSSProperties;
289
+ style?: React__default.CSSProperties;
243
290
  /** Dodatečná CSS třída pro obalový `<div>`. */
244
291
  className?: string;
245
292
  }
@@ -258,9 +305,10 @@ interface InputGroupProps {
258
305
  * <Input icon={<SearchIcon />} placeholder="Hledat…" clearable />
259
306
  * <Input error="Toto pole je povinné" value="" />
260
307
  * <Input label="Heslo" type="password" helperText="Min. 8 znaků" />
308
+ * <Input variant="inline" value={name} onChange={...} onCommit={save} />
261
309
  * ```
262
310
  */
263
- declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
311
+ declare const Input: React__default.ForwardRefExoticComponent<InputProps & React__default.RefAttributes<HTMLInputElement>>;
264
312
  /**
265
313
  * Obalí `<Input>` (nebo jiný formulářový prvek) skupinou s popiskem.
266
314
  * Popisek je stylizován velkými písmeny dle SM-UI design systému.
@@ -276,15 +324,11 @@ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttri
276
324
  * </InputGroup>
277
325
  * ```
278
326
  */
279
- declare const InputGroup: React.FC<InputGroupProps>;
327
+ declare const InputGroup: React__default.FC<InputGroupProps>;
280
328
 
281
329
  type NumberInputSize = 'sm' | 'md' | 'lg';
282
- type NumberInputVariant = 'default' | 'compact';
283
- interface NumberInputProps {
284
- /** Aktuální numerická hodnota. */
285
- value: number;
286
- /** Callback volaný při změně hodnoty. */
287
- onChange: (value: number) => void;
330
+ type NumberInputVariant = 'default' | 'compact' | 'inline';
331
+ interface NumberInputBaseProps {
288
332
  /** Minimální povolená hodnota. */
289
333
  min?: number;
290
334
  /** Maximální povolená hodnota. */
@@ -293,8 +337,14 @@ interface NumberInputProps {
293
337
  step?: number;
294
338
  /** Popisek zobrazený nad polem. Stylizován velkými písmeny dle SM-UI design systému. */
295
339
  label?: string;
340
+ /** Označí pole jako povinné (hvězdička u popisku). */
341
+ required?: boolean;
342
+ /** Zástupný text zobrazený při prázdném poli. */
343
+ placeholder?: string;
296
344
  /** Při `true` se pole zobrazí jako nevalidní. Při zadání řetězce se zobrazí chybová zpráva. */
297
345
  error?: boolean | string;
346
+ /** Nápovědný text zobrazený pod polem. Nezobrazí se pokud je aktivní chybová zpráva. */
347
+ helperText?: string;
298
348
  /** Zakáže celé pole včetně tlačítek. */
299
349
  disabled?: boolean;
300
350
  /**
@@ -309,6 +359,7 @@ interface NumberInputProps {
309
359
  * Varianta rozložení.
310
360
  * - `'default'` -- tlačítka −/+ po stranách
311
361
  * - `'compact'` -- šipky nahoru/dolů vpravo uvnitř pole
362
+ * - `'inline'` -- bez tlačítek, bez rámečku v klidu (editace v buňce); šipky na klávesnici fungují
312
363
  * @default 'default'
313
364
  */
314
365
  variant?: NumberInputVariant;
@@ -321,54 +372,67 @@ interface NumberInputProps {
321
372
  prefix?: string;
322
373
  /** Text zobrazený za hodnotou (např. jednotka). */
323
374
  suffix?: string;
375
+ /**
376
+ * Voláno při potvrzení hodnoty — na blur a na Enter — jen pokud se hodnota
377
+ * od získání fokusu změnila.
378
+ */
379
+ onCommit?: (value: number | null) => void;
380
+ /** `id` nativního inputu. Automaticky generováno, pokud chybí. */
381
+ id?: string;
382
+ /** Atribut `name` nativního inputu. */
383
+ name?: string;
324
384
  /** Další inline styly pro obalový `<div>`. */
325
- style?: React.CSSProperties;
385
+ style?: React__default.CSSProperties;
326
386
  /** Dodatečná CSS třída pro obalový `<div>`. */
327
387
  className?: string;
328
388
  }
329
- /**
330
- * Numerické vstupní pole s tlačítky +/− dle SM-UI design systému.
331
- *
332
- * Podržením tlačítka se hodnota plynule inkrementuje / dekrementuje.
333
- * Hodnota je automaticky omezena na rozsah `min`–`max`.
334
- *
335
- * @example
336
- * ```tsx
337
- * <NumberInput value={count} onChange={setCount} min={0} max={100} step={5} />
338
- * <NumberInput value={price} onChange={setPrice} prefix="$" suffix="USD" />
339
- * ```
340
- */
341
- declare const NumberInput: React.ForwardRefExoticComponent<NumberInputProps & React.RefAttributes<HTMLInputElement>>;
389
+ interface NumberInputStrictProps extends NumberInputBaseProps {
390
+ /** Pole nemůže být prázdné (výchozí) blur doplní poslední platnou hodnotu. */
391
+ allowEmpty?: false;
392
+ /** Aktuální numerická hodnota. */
393
+ value: number;
394
+ /** Callback volaný při změně hodnoty. */
395
+ onChange(value: number): void;
396
+ }
397
+ interface NumberInputEmptyProps extends NumberInputBaseProps {
398
+ /**
399
+ * Povolí prázdné pole ("není nastaveno"). Vymazání pole zavolá `onChange(null)`
400
+ * a blur prázdné pole nenahradí hodnotou `min`.
401
+ */
402
+ allowEmpty: true;
403
+ /** Aktuální numerická hodnota; `null` = prázdné pole. */
404
+ value: number | null;
405
+ /** Callback volaný při změně hodnoty; `null`, když uživatel pole vymaže. */
406
+ onChange(value: number | null): void;
407
+ }
408
+ type NumberInputProps = NumberInputStrictProps | NumberInputEmptyProps;
409
+ declare const NumberInput: ((props: NumberInputProps & React__default.RefAttributes<HTMLInputElement>) => React__default.ReactElement | null) & {
410
+ displayName?: string;
411
+ };
342
412
 
343
- interface SelectOption {
413
+ type SelectSize = 'sm' | 'md' | 'lg';
414
+ type SelectValue = string | number;
415
+ interface SelectOption<V = string> {
344
416
  /** Unikátní hodnota položky. */
345
- value: string;
417
+ value: V;
346
418
  /** Zobrazovaný popisek. Pokud chybí, použije se `value`. */
347
419
  label?: string;
348
420
  /** Při `true` nelze položku vybrat. */
349
421
  disabled?: boolean;
350
422
  }
351
- interface SelectProps {
352
- /** Dostupné položky k výběru. */
353
- options: SelectOption[];
354
- /**
355
- * Aktuální hodnota.
356
- * - Jednoduchý výběr: `string | null`
357
- * - Vícenásobný výběr: `string[]`
358
- */
359
- value?: string | string[] | null;
360
- /**
361
- * Voláno při změně výběru.
362
- * - Jednoduchý výběr: `(value: string | null) => void`
363
- * - Vícenásobný výběr: `(value: string[]) => void`
364
- */
365
- onChange?: (value: any) => void;
366
- /** Umožní vybrat více položek najednou. @default false */
367
- multiple?: boolean;
423
+ /** Skupina položek (optgroup) — nadpis + vlastní položky. */
424
+ interface SelectOptionGroup<V = string> {
425
+ /** Nadpis skupiny. */
426
+ label: string;
427
+ /** Položky skupiny. */
428
+ options: SelectOption<V>[];
429
+ }
430
+ type SelectOptions<V = string> = (SelectOption<V> | SelectOptionGroup<V>)[];
431
+ interface SelectBaseProps<V> {
432
+ /** Dostupné položky k výběru. Položky lze seskupit: `{ label: 'Skupina', options: [...] }`. */
433
+ options: SelectOptions<V>;
368
434
  /** Zobrazí textové pole pro filtrování položek. @default false */
369
435
  searchable?: boolean;
370
- /** Zobrazí tlačítko pro vymazání výběru. @default false */
371
- clearable?: boolean;
372
436
  /** Zakáže celý select. @default false */
373
437
  disabled?: boolean;
374
438
  /**
@@ -383,7 +447,7 @@ interface SelectProps {
383
447
  * Async vyhledávání — když zadáno, filtrace nejede client-side.
384
448
  * Voláno s textem hledání, vrací Promise s novými options.
385
449
  */
386
- onSearch?: (query: string) => Promise<SelectOption[]>;
450
+ onSearch?: (query: string) => Promise<SelectOption<V>[]>;
387
451
  /** Povolí uživateli vytvořit novou hodnotu. @default false */
388
452
  creatable?: boolean;
389
453
  /** Callback při vytvoření nové hodnoty. */
@@ -395,10 +459,12 @@ interface SelectProps {
395
459
  * @default 'inline'
396
460
  */
397
461
  chipDisplay?: 'inline' | 'count';
398
- /** Vlastní renderování položky v seznamu. */
399
- renderOption?: (option: SelectOption, selected: boolean) => React.ReactNode;
462
+ /** Vlastní renderování položky v seznamu (nahrazuje celý obsah řádku včetně fajfky). */
463
+ renderOption?: (option: SelectOption<V>, selected: boolean) => React__default.ReactNode;
400
464
  /** Vlastní renderování vybrané hodnoty v triggeru. */
401
- renderValue?: (option: SelectOption) => React.ReactNode;
465
+ renderValue?: (option: SelectOption<V>) => React__default.ReactNode;
466
+ /** Voláno při otevření / zavření dropdownu. */
467
+ onOpenChange?: (open: boolean) => void;
402
468
  /**
403
469
  * Popisek zobrazený nad selectem.
404
470
  * Stylizován velkými písmeny dle SM-UI design systému.
@@ -408,13 +474,51 @@ interface SelectProps {
408
474
  required?: boolean;
409
475
  /** Zástupný text zobrazený při prázdném výběru. */
410
476
  placeholder?: string;
477
+ /**
478
+ * Velikostní preset (shodný s Input / DatePicker / Combobox).
479
+ * @default 'md'
480
+ */
481
+ size?: SelectSize;
411
482
  /** Maximální výška (px) rozbalovacího seznamu před scrollováním. @default 240 */
412
483
  maxDropdownHeight?: number;
484
+ /** `id` triggeru (pro `<label htmlFor>`). Automaticky generováno, pokud chybí. */
485
+ id?: string;
413
486
  /** Další inline styly pro kořenový obal. */
414
- style?: React.CSSProperties;
487
+ style?: React__default.CSSProperties;
415
488
  /** Dodatečná CSS třída pro kořenový obal. */
416
489
  className?: string;
417
490
  }
491
+ interface SelectSingleProps<V = string> extends SelectBaseProps<V> {
492
+ /** Jednoduchý výběr (výchozí). */
493
+ multiple?: false;
494
+ /** Bez tlačítka pro vymazání (výchozí). */
495
+ clearable?: false;
496
+ /** Aktuální hodnota. */
497
+ value?: NoInfer<V> | null;
498
+ /** Voláno při změně výběru. */
499
+ onChange?(value: NoInfer<V>): void;
500
+ }
501
+ interface SelectSingleClearableProps<V = string> extends SelectBaseProps<V> {
502
+ /** Jednoduchý výběr (výchozí). */
503
+ multiple?: false;
504
+ /** Zobrazí tlačítko pro vymazání výběru — `onChange` pak může dostat `null`. */
505
+ clearable: true;
506
+ /** Aktuální hodnota. */
507
+ value?: NoInfer<V> | null;
508
+ /** Voláno při změně výběru (`null` po vymazání). */
509
+ onChange?(value: NoInfer<V> | null): void;
510
+ }
511
+ interface SelectMultipleProps<V = string> extends SelectBaseProps<V> {
512
+ /** Umožní vybrat více položek najednou. */
513
+ multiple: true;
514
+ /** Zobrazí tlačítko pro vymazání výběru. @default false */
515
+ clearable?: boolean;
516
+ /** Aktuální hodnoty. */
517
+ value?: NoInfer<V>[] | null;
518
+ /** Voláno při změně výběru. */
519
+ onChange?(value: NoInfer<V>[]): void;
520
+ }
521
+ type SelectProps<V = string> = SelectSingleProps<V> | SelectSingleClearableProps<V> | SelectMultipleProps<V>;
418
522
  interface SelectGroupProps {
419
523
  /** Text popisku nad selectem, velkými písmeny dle SM-UI design systému. */
420
524
  label: string;
@@ -423,9 +527,9 @@ interface SelectGroupProps {
423
527
  /** `htmlFor` propojující `<label>` se selectem. Automaticky generováno, pokud chybí. */
424
528
  htmlFor?: string;
425
529
  /** Select element(y) vykreslené uvnitř skupiny. */
426
- children?: React.ReactNode;
530
+ children?: React__default.ReactNode;
427
531
  /** Další inline styly pro obal. */
428
- style?: React.CSSProperties;
532
+ style?: React__default.CSSProperties;
429
533
  /** Dodatečná CSS třída pro obal. */
430
534
  className?: string;
431
535
  }
@@ -433,10 +537,13 @@ interface SelectGroupProps {
433
537
  * Vlastní rozbalovací výběr dle SM-UI design systému.
434
538
  *
435
539
  * Podporuje jednoduchý / vícenásobný výběr, fulltextové vyhledávání,
436
- * vymazání hodnoty, chybový stav a tmavý / světlý režim přes `useTheme`.
540
+ * skupiny položek (optgroup), vymazání hodnoty, chybový stav a tmavý / světlý
541
+ * režim přes `useTheme`. Hodnoty mohou být `string` i `number`; typ `onChange`
542
+ * je odvozený z `multiple`.
437
543
  *
438
544
  * Dropdown se vykresluje přes React portál, takže ho neořízne
439
- * rodičovský kontejner s `overflow: hidden`.
545
+ * rodičovský kontejner s `overflow: hidden`. Funguje i uvnitř Popoveru / Sheetu.
546
+ * Forwarduje `ref` na trigger (`ref.current.focus()`).
440
547
  *
441
548
  * @example
442
549
  * ```tsx
@@ -449,18 +556,23 @@ interface SelectGroupProps {
449
556
  * clearable
450
557
  * />
451
558
  *
452
- * // Vícenásobný výběr s vyhledáváním
559
+ * // Skupiny + číselné hodnoty
453
560
  * <Select
454
- * options={tagy}
455
- * value={vybraneTaxy}
456
- * onChange={setVybraneTaxy}
457
- * multiple
458
- * searchable
459
- * placeholder="Vyberte tagy…"
561
+ * options={[
562
+ * { label: 'Jaro', options: [{ value: 3, label: 'Březen' }, { value: 4, label: 'Duben' }] },
563
+ * { label: 'Léto', options: [{ value: 6, label: 'Červen' }] },
564
+ * ]}
565
+ * value={mesic}
566
+ * onChange={(v) => setMesic(v)}
460
567
  * />
568
+ *
569
+ * // Vícenásobný výběr s vyhledáváním
570
+ * <Select options={tagy} value={vybrane} onChange={setVybrane} multiple searchable />
461
571
  * ```
462
572
  */
463
- declare const Select: React.FC<SelectProps>;
573
+ declare const Select: (<V = string>(props: SelectProps<V> & React__default.RefAttributes<HTMLDivElement>) => React__default.ReactElement | null) & {
574
+ displayName?: string;
575
+ };
464
576
  /**
465
577
  * Obalí `<Select>` skupinou s popiskem, vizuálně odpovídá `InputGroup`.
466
578
  *
@@ -471,32 +583,37 @@ declare const Select: React.FC<SelectProps>;
471
583
  * </SelectGroup>
472
584
  * ```
473
585
  */
474
- declare const SelectGroup: React.FC<SelectGroupProps>;
586
+ declare const SelectGroup: React__default.FC<SelectGroupProps>;
475
587
 
476
588
  type ComboboxSize = 'sm' | 'md' | 'lg';
477
- interface ComboboxOption {
589
+ type ComboboxValue = string | number;
590
+ interface ComboboxOption<V = string> {
478
591
  /** Unikátní hodnota položky. */
479
- value: string;
592
+ value: V;
480
593
  /** Zobrazovaný popisek. Pokud chybí, použije se `value`. */
481
594
  label?: string;
595
+ /** Libovolná další pole pro `renderOption` / `filterOption`. */
596
+ [key: string]: unknown;
482
597
  }
483
- interface ComboboxProps {
598
+ type ComboboxFilter<V = string> = (input: string, option: ComboboxOption<V>) => boolean;
599
+ interface ComboboxBaseProps<V> {
484
600
  /** Dostupné položky k výběru. */
485
- options: ComboboxOption[];
601
+ options: ComboboxOption<V>[];
486
602
  /**
487
- * Aktuální vybraná hodnota.
488
- * - Jednoduchý výběr: `string`
489
- * - Vícenásobný výběr: `string[]`
603
+ * Callback volaný při každé změně textu v poli — jak od uživatele, tak když
604
+ * kit text sám resetuje (blur, outside-click, výběr). Vhodné pro asynchronní filtrování.
490
605
  */
491
- value: string | string[];
606
+ onInputChange?: (input: string) => void;
492
607
  /**
493
- * Callback volaný při výběru položky.
494
- * - Jednoduchý výběr: `(value: string) => void`
495
- * - Vícenásobný výběr: `(value: string[]) => void`
608
+ * Klientský filtr položek podle napsaného textu.
609
+ * - `true` filtruje podle `label` (case-insensitive `includes`), výchozí
610
+ * - `false` žádný klientský filtr (server-side search přes `onInputChange`)
611
+ * - funkce `(input, option) => boolean` — vlastní filtr
612
+ * Filtr se uplatní až po prvním reálném stisku klávesy od otevření;
613
+ * text vybrané položky předvyplněný v poli se za filtr nepovažuje.
614
+ * @default true
496
615
  */
497
- onChange: (value: any) => void;
498
- /** Callback volaný při změně textu ve vyhledávacím poli. Vhodné pro asynchronní filtrování. */
499
- onInputChange?: (input: string) => void;
616
+ filterOption?: boolean | ComboboxFilter<V>;
500
617
  /** Zástupný text zobrazený při prázdném poli. */
501
618
  placeholder?: string;
502
619
  /** Popisek zobrazený nad polem. Stylizován velkými písmeny dle SM-UI design systému. */
@@ -505,62 +622,96 @@ interface ComboboxProps {
505
622
  error?: boolean | string;
506
623
  /** Zakáže celou komponentu. */
507
624
  disabled?: boolean;
508
- /** Zobrazí spinner místo ikony vyhledávání. Vhodné při načítání položek. */
625
+ /** Zobrazí spinner místo ikony vyhledávání. Pole zůstává editovatelné. */
509
626
  loading?: boolean;
510
- /** Umožní vybrat více položek najednou. @default false */
511
- multiple?: boolean;
512
- /** Zobrazí tlačítko pro vymazání výběru. @default false */
513
- clearable?: boolean;
514
627
  /** Voláno při otevření/zavření dropdownu. */
515
628
  onOpenChange?: (open: boolean) => void;
516
629
  /** Voláno při výběru položky. */
517
- onSelect?: (value: string, option: ComboboxOption) => void;
630
+ onSelect?: (value: V, option: ComboboxOption<V>) => void;
518
631
  /** Voláno při odebrání položky (multiple). */
519
- onDeselect?: (value: string, option: ComboboxOption) => void;
632
+ onDeselect?: (value: V, option: ComboboxOption<V>) => void;
520
633
  /** Voláno při vymazání výběru (clearable). */
521
634
  onClear?: () => void;
522
635
  /** Voláno při focus. */
523
- onFocus?: (event: React.FocusEvent) => void;
636
+ onFocus?: (event: React__default.FocusEvent) => void;
524
637
  /** Voláno při blur. */
525
- onBlur?: (event: React.FocusEvent) => void;
638
+ onBlur?: (event: React__default.FocusEvent) => void;
526
639
  /** Povolí uživateli zadat vlastní hodnotu, která není v seznamu. @default false */
527
640
  allowCustom?: boolean;
528
641
  /** Callback volaný při vytvoření vlastní hodnoty (Enter při `allowCustom`). */
529
642
  onCreate?: (value: string) => void;
530
643
  /** Vlastní renderování položky v seznamu. */
531
- renderOption?: (option: {
532
- value: string;
533
- label?: string;
534
- }, highlighted: boolean) => React.ReactNode;
644
+ renderOption?: (option: ComboboxOption<V>, highlighted: boolean) => React__default.ReactNode;
535
645
  /**
536
646
  * Obsah zobrazený když žádné výsledky neodpovídají.
537
647
  * Může být ReactNode nebo funkce `(close: () => void) => ReactNode`
538
648
  * pro přístup k zavření dropdownu.
539
649
  * @default "Žádné výsledky"
540
650
  */
541
- notFoundContent?: React.ReactNode | ((close: () => void) => React.ReactNode);
651
+ notFoundContent?: React__default.ReactNode | ((close: () => void) => React__default.ReactNode);
542
652
  /**
543
653
  * Obsah zobrazený pod seznamem položek uvnitř dropdownu.
544
654
  * Může být ReactNode nebo funkce `(close: () => void) => ReactNode`
545
655
  * pro přístup k zavření dropdownu.
546
656
  */
547
- footer?: React.ReactNode | ((close: () => void) => React.ReactNode);
657
+ footer?: React__default.ReactNode | ((close: () => void) => React__default.ReactNode);
548
658
  /**
549
659
  * Velikostní preset.
550
660
  * @default 'md'
551
661
  */
552
662
  size?: ComboboxSize;
663
+ /**
664
+ * Roztáhne pole na celou šířku rodiče (kořen `display: flex; width: 100%`),
665
+ * stejně jako u `Input`. Rozbalený seznam má šířku pole.
666
+ * @default false
667
+ */
668
+ fullWidth?: boolean;
669
+ /** `id` nativního inputu. Automaticky generováno, pokud chybí. */
670
+ id?: string;
553
671
  /** Další inline styly pro obalový `<div>`. */
554
- style?: React.CSSProperties;
672
+ style?: React__default.CSSProperties;
555
673
  /** Dodatečná CSS třída pro obalový `<div>`. */
556
674
  className?: string;
557
675
  }
676
+ interface ComboboxSingleProps<V = string> extends ComboboxBaseProps<V> {
677
+ /** Jednoduchý výběr (výchozí). */
678
+ multiple?: false;
679
+ /** Bez tlačítka pro vymazání (výchozí). */
680
+ clearable?: false;
681
+ /** Aktuální vybraná hodnota. */
682
+ value: NoInfer<V> | null;
683
+ /** Callback volaný při výběru položky. */
684
+ onChange(value: NoInfer<V>): void;
685
+ }
686
+ interface ComboboxSingleClearableProps<V = string> extends ComboboxBaseProps<V> {
687
+ /** Jednoduchý výběr (výchozí). */
688
+ multiple?: false;
689
+ /** Zobrazí tlačítko pro vymazání výběru — `onChange` pak může dostat `null`. */
690
+ clearable: true;
691
+ /** Aktuální vybraná hodnota. */
692
+ value: NoInfer<V> | null;
693
+ /** Callback volaný při výběru položky (`null` po vymazání). */
694
+ onChange(value: NoInfer<V> | null): void;
695
+ }
696
+ interface ComboboxMultipleProps<V = string> extends ComboboxBaseProps<V> {
697
+ /** Umožní vybrat více položek najednou. */
698
+ multiple: true;
699
+ /** Zobrazí tlačítko pro vymazání výběru. @default false */
700
+ clearable?: boolean;
701
+ /** Aktuální vybrané hodnoty. */
702
+ value: NoInfer<V>[];
703
+ /** Callback volaný při změně výběru. */
704
+ onChange(value: NoInfer<V>[]): void;
705
+ }
706
+ type ComboboxProps<V = string> = ComboboxSingleProps<V> | ComboboxSingleClearableProps<V> | ComboboxMultipleProps<V>;
558
707
  /**
559
708
  * Kombinované vyhledávací pole se seznamem dle SM-UI design systému.
560
709
  *
561
710
  * Uživatel zadává text pro filtrování položek. Dropdown se vykresluje
562
711
  * přes React portál. Podporuje navigaci klávesami, vlastní hodnoty,
563
- * vícenásobný výběr a asynchronní filtrování přes `onInputChange`.
712
+ * vícenásobný výběr a asynchronní filtrování přes `onInputChange`
713
+ * (s `filterOption={false}` kit klientský filtr vypne). Hodnoty mohou být
714
+ * `string` i `number`; typ `onChange` je odvozený z `multiple`.
564
715
  *
565
716
  * @example
566
717
  * ```tsx
@@ -572,17 +723,16 @@ interface ComboboxProps {
572
723
  * placeholder="Hledat zemi…"
573
724
  * />
574
725
  *
726
+ * // Server-side search bez klientského filtru
727
+ * <Combobox options={results} value={op} onChange={setOp} onInputChange={search} filterOption={false} loading={loading} />
728
+ *
575
729
  * // Vícenásobný výběr
576
- * <Combobox
577
- * multiple
578
- * options={options}
579
- * value={selectedCountries}
580
- * onChange={setSelectedCountries}
581
- * placeholder="Vyberte země…"
582
- * />
730
+ * <Combobox multiple options={options} value={selected} onChange={setSelected} />
583
731
  * ```
584
732
  */
585
- declare const Combobox: React.ForwardRefExoticComponent<ComboboxProps & React.RefAttributes<HTMLInputElement>>;
733
+ declare const Combobox: (<V = string>(props: ComboboxProps<V> & React__default.RefAttributes<HTMLInputElement>) => React__default.ReactElement | null) & {
734
+ displayName?: string;
735
+ };
586
736
 
587
737
  type DatePickerSize = 'sm' | 'md' | 'lg';
588
738
  interface DatePickerProps {
@@ -673,7 +823,7 @@ interface DatePickerProps {
673
823
  */
674
824
  firstDayOfWeek?: number;
675
825
  /** Další inline styly pro kořenový obal. */
676
- style?: React.CSSProperties;
826
+ style?: React__default.CSSProperties;
677
827
  /** Dodatečná CSS třída pro kořenový obal. */
678
828
  className?: string;
679
829
  }
@@ -683,9 +833,9 @@ interface DatePickerGroupProps {
683
833
  /** `htmlFor` propojující `<label>` s DatePickerem. Automaticky generováno, pokud chybí. */
684
834
  htmlFor?: string;
685
835
  /** DatePicker element(y) vykreslené uvnitř skupiny. */
686
- children?: React.ReactNode;
836
+ children?: React__default.ReactNode;
687
837
  /** Další inline styly pro obal. */
688
- style?: React.CSSProperties;
838
+ style?: React__default.CSSProperties;
689
839
  /** Dodatečná CSS třída pro obal. */
690
840
  className?: string;
691
841
  }
@@ -718,7 +868,7 @@ interface DatePickerGroupProps {
718
868
  * />
719
869
  * ```
720
870
  */
721
- declare const DatePicker: React.FC<DatePickerProps>;
871
+ declare const DatePicker: React__default.FC<DatePickerProps>;
722
872
  /**
723
873
  * Obalí `<DatePicker>` skupinou s popiskem, vizuálně odpovídá `InputGroup`.
724
874
  *
@@ -729,10 +879,10 @@ declare const DatePicker: React.FC<DatePickerProps>;
729
879
  * </DatePickerGroup>
730
880
  * ```
731
881
  */
732
- declare const DatePickerGroup: React.FC<DatePickerGroupProps>;
882
+ declare const DatePickerGroup: React__default.FC<DatePickerGroupProps>;
733
883
 
734
884
  type CheckboxSize = 'sm' | 'md' | 'lg';
735
- interface CheckboxProps {
885
+ interface CheckboxProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size' | 'checked' | 'type' | 'style' | 'className'> {
736
886
  /** Stav zaškrtnutí. */
737
887
  checked?: boolean;
738
888
  /** Callback volaný při změně stavu. */
@@ -753,22 +903,32 @@ interface CheckboxProps {
753
903
  size?: CheckboxSize;
754
904
  /** Neurčitý stav — zobrazí pomlčku místo zaškrtnutí. */
755
905
  indeterminate?: boolean;
906
+ /**
907
+ * Blokové vykreslení (`display: flex; width: fit-content`): checkboxy pod sebou
908
+ * se neslévají do řádku ani bez obalu (`space-y-*`). Výchozí je inline.
909
+ * @default false
910
+ */
911
+ block?: boolean;
912
+ /** Přístupný název bez viditelného popisku. */
913
+ 'aria-label'?: string;
914
+ /** ID prvku s přístupným názvem. */
915
+ 'aria-labelledby'?: string;
756
916
  /** Dodatečná CSS třída pro obalový element. */
757
917
  className?: string;
758
918
  /** Další inline styly pro obalový element. */
759
- style?: React.CSSProperties;
919
+ style?: React__default.CSSProperties;
760
920
  }
761
921
  interface CheckboxGroupProps {
762
922
  /** Popisek skupiny. */
763
923
  label?: string;
764
924
  /** Potomci — typicky komponenty `<Checkbox>`. */
765
- children: React.ReactNode;
925
+ children: React__default.ReactNode;
766
926
  /** Chybový stav skupiny. Při řetězci se zobrazí chybová zpráva. */
767
927
  error?: boolean | string;
768
928
  /** Dodatečná CSS třída. */
769
929
  className?: string;
770
930
  /** Další inline styly. */
771
- style?: React.CSSProperties;
931
+ style?: React__default.CSSProperties;
772
932
  }
773
933
  /**
774
934
  * Zaškrtávací pole dle SM-UI design systému.
@@ -776,13 +936,16 @@ interface CheckboxGroupProps {
776
936
  * Podporuje vlastní SVG zaškrtnutí, neurčitý stav,
777
937
  * chybový stav, velikostní presety a tmavý / světlý režim.
778
938
  *
939
+ * Nativní atributy (`name`, `value`, `aria-label`, `data-*`…) se předávají na `<input>`.
940
+ *
779
941
  * @example
780
942
  * ```tsx
781
- * <Checkbox label="Souhlasím s podmínkami" checked={agreed} onChange={setAgreed} />
943
+ * <Checkbox label="Souhlasím s podmínkami" checked={agreed} onChange={setAgreed} name="agree" />
782
944
  * <Checkbox indeterminate label="Vybrat vše" />
945
+ * <Checkbox block label="Pod sebou bez obalu" />
783
946
  * ```
784
947
  */
785
- declare const Checkbox: React.FC<CheckboxProps>;
948
+ declare const Checkbox: React__default.FC<CheckboxProps>;
786
949
  /**
787
950
  * Skupina zaškrtávacích polí s volitelným popiskem.
788
951
  *
@@ -794,10 +957,10 @@ declare const Checkbox: React.FC<CheckboxProps>;
794
957
  * </CheckboxGroup>
795
958
  * ```
796
959
  */
797
- declare const CheckboxGroup: React.FC<CheckboxGroupProps>;
960
+ declare const CheckboxGroup: React__default.FC<CheckboxGroupProps>;
798
961
 
799
962
  type RadioSize = 'sm' | 'md' | 'lg';
800
- interface RadioProps {
963
+ interface RadioProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size' | 'checked' | 'type' | 'value' | 'style' | 'className'> {
801
964
  /** Hodnota tohoto přepínače. */
802
965
  value: string;
803
966
  /** Zda je tento přepínač vybrán. */
@@ -806,8 +969,12 @@ interface RadioProps {
806
969
  onChange?: (value: string) => void;
807
970
  /** Textový popisek. */
808
971
  label?: string;
972
+ /** Vysvětlivka zobrazená tlumeně pod popiskem. */
973
+ helperText?: string;
809
974
  /** Deaktivuje přepínač. */
810
975
  disabled?: boolean;
976
+ /** Atribut `name` — spojuje přepínače do skupiny (šipky, `FormData`). `RadioGroup` ho doplní sám. */
977
+ name?: string;
811
978
  /**
812
979
  * Velikostní preset.
813
980
  * @default 'md'
@@ -816,13 +983,15 @@ interface RadioProps {
816
983
  /** Dodatečná CSS třída. */
817
984
  className?: string;
818
985
  /** Další inline styly. */
819
- style?: React.CSSProperties;
986
+ style?: React__default.CSSProperties;
820
987
  }
821
988
  interface RadioGroupOption {
822
989
  /** Hodnota volby. */
823
990
  value: string;
824
991
  /** Zobrazený popisek. */
825
992
  label: string;
993
+ /** Vysvětlivka zobrazená tlumeně pod popiskem volby. */
994
+ helperText?: string;
826
995
  /** Deaktivuje tuto volbu. */
827
996
  disabled?: boolean;
828
997
  }
@@ -831,6 +1000,8 @@ interface RadioGroupProps {
831
1000
  value?: string;
832
1001
  /** Callback volaný při změně výběru. */
833
1002
  onChange?: (value: string) => void;
1003
+ /** Atribut `name` pro všechny přepínače ve skupině. Automaticky generováno, pokud chybí. */
1004
+ name?: string;
834
1005
  /** Popisek skupiny. */
835
1006
  label?: string;
836
1007
  /** Seznam voleb. */
@@ -854,7 +1025,7 @@ interface RadioGroupProps {
854
1025
  /** Dodatečná CSS třída. */
855
1026
  className?: string;
856
1027
  /** Další inline styly. */
857
- style?: React.CSSProperties;
1028
+ style?: React__default.CSSProperties;
858
1029
  }
859
1030
  /**
860
1031
  * Přepínací tlačítko (radio) dle SM-UI design systému.
@@ -867,7 +1038,7 @@ interface RadioGroupProps {
867
1038
  * <Radio value="a" label="Volba A" checked={selected === 'a'} onChange={setSelected} />
868
1039
  * ```
869
1040
  */
870
- declare const Radio: React.FC<RadioProps>;
1041
+ declare const Radio: React__default.FC<RadioProps>;
871
1042
  /**
872
1043
  * Skupina přepínačů s popiskem, chybovým stavem a nápovědným textem.
873
1044
  *
@@ -879,15 +1050,15 @@ declare const Radio: React.FC<RadioProps>;
879
1050
  * onChange={setGender}
880
1051
  * options={[
881
1052
  * { value: 'male', label: 'Muž' },
882
- * { value: 'female', label: 'Žena' },
1053
+ * { value: 'female', label: 'Žena', helperText: 'Vysvětlivka pod volbou' },
883
1054
  * ]}
884
1055
  * />
885
1056
  * ```
886
1057
  */
887
- declare const RadioGroup: React.FC<RadioGroupProps>;
1058
+ declare const RadioGroup: React__default.FC<RadioGroupProps>;
888
1059
 
889
1060
  type SwitchSize = 'sm' | 'md' | 'lg';
890
- interface SwitchProps {
1061
+ interface SwitchProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size' | 'checked' | 'type' | 'style' | 'className'> {
891
1062
  /** Stav přepínače. */
892
1063
  checked?: boolean;
893
1064
  /** Callback volaný při změně stavu. */
@@ -901,10 +1072,14 @@ interface SwitchProps {
901
1072
  * @default 'md'
902
1073
  */
903
1074
  size?: SwitchSize;
904
- /** Dodatečná CSS třída. */
1075
+ /** Přístupný název bez viditelného popisku (matice přepínačů apod.). */
1076
+ 'aria-label'?: string;
1077
+ /** ID prvku s přístupným názvem. */
1078
+ 'aria-labelledby'?: string;
1079
+ /** Dodatečná CSS třída pro obalový element. */
905
1080
  className?: string;
906
- /** Další inline styly. */
907
- style?: React.CSSProperties;
1081
+ /** Další inline styly pro obalový element. */
1082
+ style?: React__default.CSSProperties;
908
1083
  }
909
1084
  /**
910
1085
  * Přepínač (switch/toggle) dle SM-UI design systému.
@@ -912,16 +1087,33 @@ interface SwitchProps {
912
1087
  * Pilulkový tvar s plynulou animací posunu.
913
1088
  * Oranžový ve stavu zapnuto, jemný okraj ve stavu vypnuto.
914
1089
  *
1090
+ * Nativní atributy (`name`, `value`, `aria-label`, `data-*`…) se předávají na `<input>`.
1091
+ *
915
1092
  * @example
916
1093
  * ```tsx
917
1094
  * <Switch label="Noční režim" checked={dark} onChange={setDark} />
1095
+ * <Switch aria-label="E-mail: nové úkoly" checked={on} onChange={setOn} name="email_tasks" />
918
1096
  * ```
919
1097
  */
920
- declare const Switch: React.FC<SwitchProps>;
1098
+ declare const Switch: React__default.FC<SwitchProps>;
921
1099
 
922
1100
  type TextareaSize = 'sm' | 'md' | 'lg';
923
1101
  type TextareaResize = 'none' | 'vertical' | 'both';
924
- interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'> {
1102
+ type TextareaVariant = 'default' | 'inline';
1103
+ interface TextareaProps extends Omit<React__default.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'> {
1104
+ /**
1105
+ * Vizuální varianta.
1106
+ * - `'default'` — pole s pozadím a rámečkem
1107
+ * - `'inline'` — bez pozadí a rámečku v klidu (vypadá jako text), rámeček až na hover / focus.
1108
+ * Pro editaci přímo v buňce tabulky nebo kartě. Doporučeno s `autoHeight`.
1109
+ * @default 'default'
1110
+ */
1111
+ variant?: TextareaVariant;
1112
+ /**
1113
+ * Voláno při potvrzení hodnoty — na blur a na Ctrl/Cmd+Enter — jen pokud se hodnota
1114
+ * od získání fokusu změnila.
1115
+ */
1116
+ onCommit?: (value: string) => void;
925
1117
  /**
926
1118
  * Popisek zobrazený nad textovým polem.
927
1119
  * Stylizován velkými písmeny dle SM-UI design systému.
@@ -989,7 +1181,7 @@ interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaEl
989
1181
  /**
990
1182
  * Další inline styly pro **obalový** element.
991
1183
  */
992
- style?: React.CSSProperties;
1184
+ style?: React__default.CSSProperties;
993
1185
  }
994
1186
  /**
995
1187
  * Víceřádkové textové pole dle SM-UI design systému.
@@ -1001,16 +1193,22 @@ interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaEl
1001
1193
  * ```tsx
1002
1194
  * <Textarea label="Poznámka" placeholder="Napište poznámku…" rows={5} />
1003
1195
  * <Textarea label="Bio" maxLength={200} helperText="Krátký popis" />
1196
+ * <Textarea variant="inline" autoHeight value={note} onChange={...} onCommit={save} />
1004
1197
  * ```
1005
1198
  */
1006
- declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
1199
+ declare const Textarea: React__default.ForwardRefExoticComponent<TextareaProps & React__default.RefAttributes<HTMLTextAreaElement>>;
1007
1200
 
1008
1201
  type SliderSize = 'sm' | 'md' | 'lg';
1009
1202
  interface SliderProps {
1010
1203
  /** Aktuální hodnota. Při `range` je to `[number, number]`. */
1011
1204
  value: number | [number, number];
1012
- /** Callback volaný při změně hodnoty. */
1205
+ /** Callback volaný při změně hodnoty (během tažení na každý krok). */
1013
1206
  onChange?: (value: number | [number, number]) => void;
1207
+ /**
1208
+ * Voláno jednou po dokončení tažení (uvolnění myši) s finální hodnotou.
1209
+ * Vhodné pro uložení / request bez debounce.
1210
+ */
1211
+ onChangeEnd?: (value: number | [number, number]) => void;
1014
1212
  /**
1015
1213
  * Minimální hodnota.
1016
1214
  * @default 0
@@ -1048,7 +1246,7 @@ interface SliderProps {
1048
1246
  /** Dodatečná CSS třída. */
1049
1247
  className?: string;
1050
1248
  /** Další inline styly. */
1051
- style?: React.CSSProperties;
1249
+ style?: React__default.CSSProperties;
1052
1250
  }
1053
1251
  /**
1054
1252
  * Posuvník dle SM-UI design systému.
@@ -1060,9 +1258,10 @@ interface SliderProps {
1060
1258
  * ```tsx
1061
1259
  * <Slider label="Hlasitost" value={volume} onChange={setVolume} showValue />
1062
1260
  * <Slider range value={[20, 80]} onChange={setRange} label="Cenový rozsah" />
1261
+ * <Slider value={density} onChange={setDensity} onChangeEnd={savePreference} />
1063
1262
  * ```
1064
1263
  */
1065
- declare const Slider: React.FC<SliderProps>;
1264
+ declare const Slider: React__default.FC<SliderProps>;
1066
1265
 
1067
1266
  interface UploadedFile {
1068
1267
  /** Objekt nativního souboru. */
@@ -1071,6 +1270,7 @@ interface UploadedFile {
1071
1270
  id: string;
1072
1271
  }
1073
1272
  type FileUploadVariant = 'dropzone' | 'button';
1273
+ type FileRejectReason = 'size' | 'duplicate';
1074
1274
  interface FileUploadProps {
1075
1275
  /**
1076
1276
  * Vizuální varianta.
@@ -1081,6 +1281,14 @@ interface FileUploadProps {
1081
1281
  variant?: FileUploadVariant;
1082
1282
  /** Callback volaný při přidání souborů. Vrací pole nativních `File` objektů. */
1083
1283
  onFiles?: (files: File[]) => void;
1284
+ /**
1285
+ * Voláno pro soubory, které kit odmítl (nad `maxSize`, duplicita v `multiple`).
1286
+ * Ostatní soubory z dávky se přijmou normálně.
1287
+ */
1288
+ onReject?: (rejected: {
1289
+ file: File;
1290
+ reason: FileRejectReason;
1291
+ }[]) => void;
1084
1292
  /**
1085
1293
  * Povolené typy souborů (atribut `accept`).
1086
1294
  * @example 'image/*,.pdf'
@@ -1088,8 +1296,14 @@ interface FileUploadProps {
1088
1296
  accept?: string;
1089
1297
  /** Povolit výběr více souborů najednou. */
1090
1298
  multiple?: boolean;
1091
- /** Maximální velikost souboru v bajtech. */
1299
+ /** Maximální velikost souboru v bajtech. Odmítne jen soubory nad limit, zbytek dávky projde. */
1092
1300
  maxSize?: number;
1301
+ /**
1302
+ * V režimu `multiple` přeskočit soubory, které už v seznamu jsou
1303
+ * (shoda `name` + `size` + `lastModified`).
1304
+ * @default true
1305
+ */
1306
+ dedupe?: boolean;
1093
1307
  /** Deaktivuje zónu pro nahrávání. */
1094
1308
  disabled?: boolean;
1095
1309
  /** Popisek nad zónou. */
@@ -1126,7 +1340,7 @@ interface FileUploadProps {
1126
1340
  /** Dodatečná CSS třída. */
1127
1341
  className?: string;
1128
1342
  /** Další inline styly. */
1129
- style?: React.CSSProperties;
1343
+ style?: React__default.CSSProperties;
1130
1344
  }
1131
1345
  /**
1132
1346
  * Zóna pro nahrávání souborů dle SM-UI design systému.
@@ -1145,7 +1359,7 @@ interface FileUploadProps {
1145
1359
  * />
1146
1360
  * ```
1147
1361
  */
1148
- declare const FileUpload: React.FC<FileUploadProps>;
1362
+ declare const FileUpload: React__default.FC<FileUploadProps>;
1149
1363
 
1150
1364
  type SegmentedControlSize = 'sm' | 'md' | 'lg';
1151
1365
  interface SegmentedControlItem {
@@ -1154,7 +1368,7 @@ interface SegmentedControlItem {
1154
1368
  /** Zobrazovaný text. Výchozí: `value`. */
1155
1369
  label?: string;
1156
1370
  /** Ikona zobrazená v segmentu. Může být samostatně nebo s label. */
1157
- icon?: React.ReactNode;
1371
+ icon?: React__default.ReactNode;
1158
1372
  /** Zakáže tento segment. */
1159
1373
  disabled?: boolean;
1160
1374
  }
@@ -1191,7 +1405,7 @@ interface SegmentedControlProps {
1191
1405
  /** Dodatečná CSS třída. */
1192
1406
  className?: string;
1193
1407
  /** Další inline styly. */
1194
- style?: React.CSSProperties;
1408
+ style?: React__default.CSSProperties;
1195
1409
  }
1196
1410
  /**
1197
1411
  * Segmentovaný přepínač dle SM-UI design systému.
@@ -1210,7 +1424,7 @@ interface SegmentedControlProps {
1210
1424
  * />
1211
1425
  * ```
1212
1426
  */
1213
- declare const SegmentedControl: React.FC<SegmentedControlProps>;
1427
+ declare const SegmentedControl: React__default.FC<SegmentedControlProps>;
1214
1428
 
1215
1429
  interface ColorPickerProps {
1216
1430
  /** Aktuální barva v hexadecimálním formátu (např. `#FC4F00`). */
@@ -1224,7 +1438,7 @@ interface ColorPickerProps {
1224
1438
  /** Zakáže celou komponentu. */
1225
1439
  disabled?: boolean;
1226
1440
  /** Další inline styly pro obalový `<div>`. */
1227
- style?: React.CSSProperties;
1441
+ style?: React__default.CSSProperties;
1228
1442
  /** Dodatečná CSS třída pro obalový `<div>`. */
1229
1443
  className?: string;
1230
1444
  }
@@ -1240,7 +1454,7 @@ interface ColorPickerProps {
1240
1454
  * <ColorPicker value={color} onChange={setColor} presets={['#FF0000', '#00FF00', '#0000FF']} />
1241
1455
  * ```
1242
1456
  */
1243
- declare const ColorPicker: React.FC<ColorPickerProps>;
1457
+ declare const ColorPicker: React__default.FC<ColorPickerProps>;
1244
1458
 
1245
1459
  type RatingSize = 'sm' | 'md' | 'lg';
1246
1460
  interface RatingProps {
@@ -1260,7 +1474,7 @@ interface RatingProps {
1260
1474
  /** Popisek zobrazený nad komponentou. Stylizován velkými písmeny dle SM-UI design systému. */
1261
1475
  label?: string;
1262
1476
  /** Další inline styly pro obalový `<div>`. */
1263
- style?: React.CSSProperties;
1477
+ style?: React__default.CSSProperties;
1264
1478
  /** Dodatečná CSS třída pro obalový `<div>`. */
1265
1479
  className?: string;
1266
1480
  }
@@ -1277,7 +1491,7 @@ interface RatingProps {
1277
1491
  * <Rating value={4} size="lg" label="Hodnocení" />
1278
1492
  * ```
1279
1493
  */
1280
- declare const Rating: React.FC<RatingProps>;
1494
+ declare const Rating: React__default.FC<RatingProps>;
1281
1495
 
1282
1496
  interface OTPInputProps {
1283
1497
  /** Počet polí (číslic). @default 6 */
@@ -1297,9 +1511,9 @@ interface OTPInputProps {
1297
1511
  /** Vloží oddělovač po každých N polích. Např. `separatorAfter={3}` u 6místného kódu vytvoří skupiny 3-3. */
1298
1512
  separatorAfter?: number;
1299
1513
  /** Obsah oddělovače. @default '-' */
1300
- separator?: React.ReactNode;
1514
+ separator?: React__default.ReactNode;
1301
1515
  /** Další inline styly pro obalový `<div>`. */
1302
- style?: React.CSSProperties;
1516
+ style?: React__default.CSSProperties;
1303
1517
  /** Dodatečná CSS třída pro obalový `<div>`. */
1304
1518
  className?: string;
1305
1519
  }
@@ -1316,7 +1530,7 @@ interface OTPInputProps {
1316
1530
  * <OTPInput value={otp} onChange={setOtp} length={4} error="Neplatný kód" />
1317
1531
  * ```
1318
1532
  */
1319
- declare const OTPInput: React.FC<OTPInputProps>;
1533
+ declare const OTPInput: React__default.FC<OTPInputProps>;
1320
1534
 
1321
1535
  interface Country {
1322
1536
  /** ISO 3166-1 alpha-2 kód. */
@@ -1351,7 +1565,7 @@ interface PhoneInputProps {
1351
1565
  /** Placeholder pro číslo. */
1352
1566
  placeholder?: string;
1353
1567
  /** Další inline styly. */
1354
- style?: React.CSSProperties;
1568
+ style?: React__default.CSSProperties;
1355
1569
  /** Dodatečná CSS třída. */
1356
1570
  className?: string;
1357
1571
  }
@@ -1371,7 +1585,7 @@ interface PhoneInputProps {
1371
1585
  * />
1372
1586
  * ```
1373
1587
  */
1374
- declare const PhoneInput: React.FC<PhoneInputProps>;
1588
+ declare const PhoneInput: React__default.FC<PhoneInputProps>;
1375
1589
 
1376
1590
  type CropShape = 'rect' | 'circle';
1377
1591
  interface CropArea {
@@ -1396,7 +1610,7 @@ interface ImageCropperProps {
1396
1610
  /** Tvar ořezu. @default 'rect' */
1397
1611
  shape?: CropShape;
1398
1612
  /** Další inline styly. */
1399
- style?: React.CSSProperties;
1613
+ style?: React__default.CSSProperties;
1400
1614
  /** Dodatečná CSS třída. */
1401
1615
  className?: string;
1402
1616
  }
@@ -1417,7 +1631,7 @@ interface ImageCropperProps {
1417
1631
  * />
1418
1632
  * ```
1419
1633
  */
1420
- declare const ImageCropper: React.FC<ImageCropperProps>;
1634
+ declare const ImageCropper: React__default.FC<ImageCropperProps>;
1421
1635
 
1422
1636
  interface TableColumn {
1423
1637
  /** Klíč odpovídající hodnotě v datovém objektu. */
@@ -1429,7 +1643,7 @@ interface TableColumn {
1429
1643
  /** Šířka sloupce (CSS hodnota). */
1430
1644
  width?: string | number;
1431
1645
  /** Vlastní vykreslovací funkce pro buňku. */
1432
- render?: (value: any, row: any, index: number) => React.ReactNode;
1646
+ render?: (value: any, row: any, index: number) => React__default.ReactNode;
1433
1647
  }
1434
1648
  interface TableProps {
1435
1649
  /** Definice sloupců tabulky. */
@@ -1453,11 +1667,17 @@ interface TableProps {
1453
1667
  /** Callback při kliknutí na řádek. */
1454
1668
  onRowClick?: (row: any, index: number) => void;
1455
1669
  /** Render akčních tlačítek v posledním sloupci. */
1456
- rowActions?: (row: any) => React.ReactNode;
1670
+ rowActions?: (row: any) => React__default.ReactNode;
1671
+ /**
1672
+ * Rámeček, zaoblení a pozadí tabulky. `false` = bez rámu a s průhledným
1673
+ * pozadím, vhodné do `Card` (jinak se rám i pozadí zdvojí).
1674
+ * @default true
1675
+ */
1676
+ bordered?: boolean;
1457
1677
  /** Dodatečná CSS třída. */
1458
1678
  className?: string;
1459
1679
  /** Další inline styly. */
1460
- style?: React.CSSProperties;
1680
+ style?: React__default.CSSProperties;
1461
1681
  }
1462
1682
  /**
1463
1683
  * Datová tabulka dle SM-UI design systému.
@@ -1480,7 +1700,7 @@ interface TableProps {
1480
1700
  * />
1481
1701
  * ```
1482
1702
  */
1483
- declare const Table: React.FC<TableProps>;
1703
+ declare const Table: React__default.FC<TableProps>;
1484
1704
 
1485
1705
  /** Definice sloupce pro DataGrid. */
1486
1706
  interface DataGridColumn {
@@ -1499,7 +1719,7 @@ interface DataGridColumn {
1499
1719
  /** Povolí editaci buňky (placeholder pro budoucí implementaci). @default false */
1500
1720
  editable?: boolean;
1501
1721
  /** Vlastní vykreslovací funkce pro buňku. */
1502
- render?: (value: any, row: any, index: number) => React.ReactNode;
1722
+ render?: (value: any, row: any, index: number) => React__default.ReactNode;
1503
1723
  }
1504
1724
  interface DataGridProps {
1505
1725
  /** Definice sloupců. */
@@ -1520,8 +1740,14 @@ interface DataGridProps {
1520
1740
  stickyHeader?: boolean;
1521
1741
  /** Text zobrazený při prázdných datech. @default 'Žádná data' */
1522
1742
  emptyText?: string;
1743
+ /**
1744
+ * Rámeček, zaoblení a pozadí mřížky. `false` = bez rámu a s průhledným
1745
+ * pozadím, vhodné do `Card`.
1746
+ * @default true
1747
+ */
1748
+ bordered?: boolean;
1523
1749
  /** Další inline styly. */
1524
- style?: React.CSSProperties;
1750
+ style?: React__default.CSSProperties;
1525
1751
  /** Dodatečná CSS třída. */
1526
1752
  className?: string;
1527
1753
  }
@@ -1547,7 +1773,7 @@ interface DataGridProps {
1547
1773
  * />
1548
1774
  * ```
1549
1775
  */
1550
- declare const DataGrid: React.FC<DataGridProps>;
1776
+ declare const DataGrid: React__default.FC<DataGridProps>;
1551
1777
 
1552
1778
  interface MobileDataCardColumn {
1553
1779
  /** Klíč dat v řádkovém objektu. */
@@ -1555,7 +1781,7 @@ interface MobileDataCardColumn {
1555
1781
  /** Zobrazovaný popisek. */
1556
1782
  header: string;
1557
1783
  /** Vlastní renderování hodnoty — stejný podpis jako Table/DataGrid. */
1558
- render?: (value: any, row: any, index: number) => React.ReactNode;
1784
+ render?: (value: any, row: any, index: number) => React__default.ReactNode;
1559
1785
  /** Skrýt tento sloupec z karty. */
1560
1786
  hidden?: boolean;
1561
1787
  /** Zobrazit toto pole jako titulek karty. */
@@ -1593,13 +1819,13 @@ interface MobileDataCardProps {
1593
1819
  /** Text prázdného stavu. @default 'Žádná data' */
1594
1820
  emptyText?: string;
1595
1821
  /** Vlastní obsah prázdného stavu. */
1596
- emptyContent?: React.ReactNode;
1822
+ emptyContent?: React__default.ReactNode;
1597
1823
  /** Mezera mezi kartami v px. @default 12 */
1598
1824
  gap?: number;
1599
1825
  /** Vykreslení akčních tlačítek v patičce karty. */
1600
- cardActions?: (row: any, index: number) => React.ReactNode;
1826
+ cardActions?: (row: any, index: number) => React__default.ReactNode;
1601
1827
  /** Další inline styly. */
1602
- style?: React.CSSProperties;
1828
+ style?: React__default.CSSProperties;
1603
1829
  /** Dodatečná CSS třída. */
1604
1830
  className?: string;
1605
1831
  }
@@ -1630,32 +1856,42 @@ interface MobileDataCardProps {
1630
1856
  * />
1631
1857
  * ```
1632
1858
  */
1633
- declare const MobileDataCard: React.FC<MobileDataCardProps>;
1859
+ declare const MobileDataCard: React__default.FC<MobileDataCardProps>;
1634
1860
 
1635
- interface CardProps {
1861
+ interface CardProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, 'title' | 'style' | 'className'> {
1636
1862
  /** Titulek karty. */
1637
- title?: string;
1863
+ title?: React__default.ReactNode;
1638
1864
  /** Podtitulek karty. */
1639
- subtitle?: string;
1640
- /** Vlastní obsah záhlaví — přepíše `title` a `subtitle`. */
1641
- header?: React.ReactNode;
1865
+ subtitle?: React__default.ReactNode;
1866
+ /**
1867
+ * Akce vpravo v záhlaví vedle titulku (odkaz, tlačítko, badge).
1868
+ * Zachová typografii titulku a odsazení záhlaví.
1869
+ */
1870
+ headerActions?: React__default.ReactNode;
1871
+ /**
1872
+ * Vlastní obsah celého záhlaví — nahrazuje `title`, `subtitle` i `headerActions`
1873
+ * a vykreslí se bez odsazení (odsazení dodává konzument).
1874
+ * Pro titulek + akci použijte raději `headerActions`.
1875
+ */
1876
+ header?: React__default.ReactNode;
1642
1877
  /** Obsah patičky karty. */
1643
- footer?: React.ReactNode;
1878
+ footer?: React__default.ReactNode;
1644
1879
  /** Obsah karty. */
1645
- children?: React.ReactNode;
1880
+ children?: React__default.ReactNode;
1646
1881
  /** Při `true` se karta jemně zvedne při najetí myší. @default false */
1647
1882
  hoverable?: boolean;
1648
1883
  /** Zobrazí rámeček kolem karty. @default true */
1649
1884
  bordered?: boolean;
1650
1885
  /**
1651
- * Velikost vnitřního odsazení.
1886
+ * Velikost vnitřního odsazení **těla a patičky**. Záhlaví (`title`) má vlastní
1887
+ * odsazení: při `'none'` zůstává `md` (20px), aby se titulek nepřilepil k okraji.
1652
1888
  * @default 'md'
1653
1889
  */
1654
1890
  padding?: 'none' | 'sm' | 'md' | 'lg';
1655
1891
  /** Dodatečná CSS třída. */
1656
1892
  className?: string;
1657
1893
  /** Další inline styly. */
1658
- style?: React.CSSProperties;
1894
+ style?: React__default.CSSProperties;
1659
1895
  }
1660
1896
  /**
1661
1897
  * Karta dle SM-UI design systému.
@@ -1668,15 +1904,29 @@ interface CardProps {
1668
1904
  * <Card title="Statistiky" subtitle="Přehled za poslední měsíc">
1669
1905
  * <p>Obsah karty…</p>
1670
1906
  * </Card>
1907
+ *
1908
+ * // Titulek + akce vpravo, tabulka bez odsazení
1909
+ * <Card title="Poslední změny" headerActions={<Link href="/log">Vše</Link>} padding="none">
1910
+ * <Table bordered={false} … />
1911
+ * </Card>
1671
1912
  * ```
1672
1913
  */
1673
- declare const Card: React.FC<CardProps>;
1914
+ declare const Card: React__default.FC<CardProps>;
1674
1915
 
1675
1916
  interface AccordionItemProps {
1676
- /** Titulek položky. */
1677
- title: string;
1917
+ /** Titulek položky (text nebo ReactNode, např. s Badge). */
1918
+ title: React__default.ReactNode;
1678
1919
  /** Obsah zobrazený po rozbalení. */
1679
- children: React.ReactNode;
1920
+ children: React__default.ReactNode;
1921
+ /**
1922
+ * Identifikátor položky pro řízený `Accordion` (`value` / `onChange`).
1923
+ * Bez `id` se použije index položky jako string.
1924
+ */
1925
+ id?: string;
1926
+ /** Ikona vlevo před titulkem. */
1927
+ icon?: React__default.ReactNode;
1928
+ /** Obsah vpravo v hlavičce (badge, počet, akce) — mimo klikací plochu chevronu. */
1929
+ extra?: React__default.ReactNode;
1680
1930
  /** Při `true` bude položka výchozně rozbalena. @default false */
1681
1931
  defaultOpen?: boolean;
1682
1932
  /** Zakáže interakci s položkou. @default false */
@@ -1686,25 +1936,31 @@ interface AccordionProps {
1686
1936
  /**
1687
1937
  * Potomci — typicky komponenty `<AccordionItem>`.
1688
1938
  */
1689
- children: React.ReactNode;
1939
+ children: React__default.ReactNode;
1690
1940
  /** Povolí více současně otevřených položek. @default false */
1691
1941
  multiple?: boolean;
1942
+ /** Řízený seznam otevřených položek (`id` položek). */
1943
+ value?: string[];
1944
+ /** Výchozí otevřené položky pro neřízený režim (doplňuje `defaultOpen` na položkách). */
1945
+ defaultValue?: string[];
1946
+ /** Voláno při změně otevřených položek. */
1947
+ onChange?: (open: string[]) => void;
1692
1948
  /** Dodatečná CSS třída. */
1693
1949
  className?: string;
1694
1950
  /** Další inline styly. */
1695
- style?: React.CSSProperties;
1951
+ style?: React__default.CSSProperties;
1696
1952
  }
1697
1953
  /**
1698
1954
  * Položka akordéonu. Používejte uvnitř `<Accordion>`.
1699
1955
  *
1700
1956
  * @example
1701
1957
  * ```tsx
1702
- * <AccordionItem title="Sekce 1">
1958
+ * <AccordionItem title="Sekce 1" extra={<Badge label="8 kroků" size="sm" variant="neutral" />}>
1703
1959
  * Obsah první sekce.
1704
1960
  * </AccordionItem>
1705
1961
  * ```
1706
1962
  */
1707
- declare const AccordionItem: React.FC<AccordionItemProps & {
1963
+ declare const AccordionItem: React__default.FC<AccordionItemProps & {
1708
1964
  /** @internal Řízeno rodičem Accordion. */
1709
1965
  _controlled?: boolean;
1710
1966
  /** @internal */
@@ -1718,16 +1974,23 @@ declare const AccordionItem: React.FC<AccordionItemProps & {
1718
1974
  * Obalí skupinu `<AccordionItem>` a řídí jejich otevírání.
1719
1975
  * Ve výchozím stavu se otevře vždy pouze jedna položka najednou.
1720
1976
  * Pro více současně otevřených položek nastavte `multiple`.
1977
+ * Otevřené položky lze řídit přes `value` / `onChange` (podle `id` položek).
1721
1978
  *
1722
1979
  * @example
1723
1980
  * ```tsx
1724
1981
  * <Accordion>
1725
1982
  * <AccordionItem title="Sekce 1">Obsah 1</AccordionItem>
1726
- * <AccordionItem title="Sekce 2">Obsah 2</AccordionItem>
1983
+ * <AccordionItem title="Sekce 2" defaultOpen>Obsah 2</AccordionItem>
1984
+ * </Accordion>
1985
+ *
1986
+ * // Řízený
1987
+ * <Accordion multiple value={open} onChange={setOpen}>
1988
+ * <AccordionItem id="a" title="A">…</AccordionItem>
1989
+ * <AccordionItem id="b" title="B">…</AccordionItem>
1727
1990
  * </Accordion>
1728
1991
  * ```
1729
1992
  */
1730
- declare const Accordion: React.FC<AccordionProps>;
1993
+ declare const Accordion: React__default.FC<AccordionProps>;
1731
1994
 
1732
1995
  interface TabsProps {
1733
1996
  /** Aktuální aktivní hodnota. */
@@ -1735,7 +1998,7 @@ interface TabsProps {
1735
1998
  /** Voláno při změně aktivní záložky. */
1736
1999
  onChange: (value: string) => void;
1737
2000
  /** Potomci — komponenty `<Tab>` a `<TabPanel>`. */
1738
- children: React.ReactNode;
2001
+ children: React__default.ReactNode;
1739
2002
  /**
1740
2003
  * Vizuální varianta.
1741
2004
  * - `'underline'` — spodní linka na aktivní záložce
@@ -1753,7 +2016,7 @@ interface TabsProps {
1753
2016
  /** Dodatečná CSS třída. */
1754
2017
  className?: string;
1755
2018
  /** Další inline styly. */
1756
- style?: React.CSSProperties;
2019
+ style?: React__default.CSSProperties;
1757
2020
  }
1758
2021
  interface TabProps {
1759
2022
  /** Unikátní hodnota záložky. */
@@ -1763,13 +2026,13 @@ interface TabProps {
1763
2026
  /** Zakáže záložku. @default false */
1764
2027
  disabled?: boolean;
1765
2028
  /** Ikona zobrazená před textem. */
1766
- icon?: React.ReactNode;
2029
+ icon?: React__default.ReactNode;
1767
2030
  }
1768
2031
  interface TabPanelProps {
1769
2032
  /** Hodnota odpovídající záložce — panel se zobrazí, když je aktivní. */
1770
2033
  value: string;
1771
2034
  /** Obsah panelu. */
1772
- children: React.ReactNode;
2035
+ children: React__default.ReactNode;
1773
2036
  }
1774
2037
  /**
1775
2038
  * Záložka uvnitř `<Tabs>`. Definuje jednu záložku v navigaci.
@@ -1779,7 +2042,7 @@ interface TabPanelProps {
1779
2042
  * <Tab value="general" label="Obecné" />
1780
2043
  * ```
1781
2044
  */
1782
- declare const Tab: React.FC<TabProps>;
2045
+ declare const Tab: React__default.FC<TabProps>;
1783
2046
  /**
1784
2047
  * Panel obsahu spojený s konkrétní záložkou.
1785
2048
  *
@@ -1790,7 +2053,7 @@ declare const Tab: React.FC<TabProps>;
1790
2053
  * </TabPanel>
1791
2054
  * ```
1792
2055
  */
1793
- declare const TabPanel: React.FC<TabPanelProps>;
2056
+ declare const TabPanel: React__default.FC<TabPanelProps>;
1794
2057
  /**
1795
2058
  * Záložkový komponent dle SM-UI design systému.
1796
2059
  *
@@ -1807,13 +2070,17 @@ declare const TabPanel: React.FC<TabPanelProps>;
1807
2070
  * </Tabs>
1808
2071
  * ```
1809
2072
  */
1810
- declare const Tabs: React.FC<TabsProps>;
2073
+ declare const Tabs: React__default.FC<TabsProps>;
1811
2074
 
1812
2075
  interface TooltipProps {
1813
- /** Obsah tooltipu — text nebo ReactNode. */
1814
- content: string | React.ReactNode;
2076
+ /**
2077
+ * Obsah tooltipu — text nebo ReactNode.
2078
+ * Při `undefined` / `null` / `''` / `false` se bublina nezobrazí vůbec
2079
+ * (podmíněná nápověda bez nutnosti podmíněně obalovat).
2080
+ */
2081
+ content?: string | React__default.ReactNode;
1815
2082
  /** Trigger element obalený tooltipem. */
1816
- children: React.ReactElement;
2083
+ children: React__default.ReactElement;
1817
2084
  /**
1818
2085
  * Pozice tooltipu vůči triggeru.
1819
2086
  * @default 'top'
@@ -1853,7 +2120,7 @@ interface TooltipProps {
1853
2120
  /** Dodatečná CSS třída pro tooltip. */
1854
2121
  className?: string;
1855
2122
  /** Další inline styly pro tooltip. */
1856
- style?: React.CSSProperties;
2123
+ style?: React__default.CSSProperties;
1857
2124
  }
1858
2125
  /**
1859
2126
  * Tooltip dle SM-UI design systému.
@@ -1874,43 +2141,89 @@ interface TooltipProps {
1874
2141
  * </Tooltip>
1875
2142
  * ```
1876
2143
  */
1877
- declare const Tooltip: React.FC<TooltipProps>;
2144
+ declare const Tooltip: React__default.FC<TooltipProps>;
1878
2145
 
2146
+ type PopoverPosition = 'top' | 'bottom' | 'left' | 'right';
2147
+ type PopoverAlign = 'start' | 'center' | 'end';
1879
2148
  interface PopoverProps {
1880
- /** Obsah popoveru. */
1881
- content: React.ReactNode;
2149
+ /**
2150
+ * Obsah popoveru. Může být ReactNode nebo funkce `(close) => ReactNode`
2151
+ * pro zavření z obsahu (např. po výběru položky).
2152
+ */
2153
+ content: React__default.ReactNode | ((close: () => void) => React__default.ReactNode);
1882
2154
  /** Trigger element. */
1883
- children: React.ReactElement;
2155
+ children: React__default.ReactElement;
1884
2156
  /**
1885
2157
  * Pozice popoveru vůči triggeru.
1886
2158
  * @default 'bottom'
1887
2159
  */
1888
- position?: 'top' | 'bottom' | 'left' | 'right';
2160
+ position?: PopoverPosition;
2161
+ /**
2162
+ * Zarovnání panelu podél osy triggeru (u `top` / `bottom` vodorovně,
2163
+ * u `left` / `right` svisle).
2164
+ * @default 'center'
2165
+ */
2166
+ align?: PopoverAlign;
2167
+ /**
2168
+ * Mezera mezi triggerem a panelem v px.
2169
+ * @default 8
2170
+ */
2171
+ offset?: number;
2172
+ /**
2173
+ * Když se panel na zvolené straně nevejde, otočí se na protilehlou.
2174
+ * Panel se navíc vždy posune tak, aby zůstal celý ve viewportu.
2175
+ * @default true
2176
+ */
2177
+ autoFlip?: boolean;
1889
2178
  /**
1890
2179
  * Způsob otevření.
1891
2180
  * @default 'click'
1892
2181
  */
1893
2182
  trigger?: 'click' | 'hover';
2183
+ /** Řízený stav otevření. Když zadáno, kit stav sám nemění a volá jen `onOpenChange`. */
2184
+ open?: boolean;
2185
+ /** Výchozí stav pro neřízený režim. @default false */
2186
+ defaultOpen?: boolean;
2187
+ /** Voláno při požadavku na otevření / zavření (klik, outside-click, Escape, hover). */
2188
+ onOpenChange?: (open: boolean) => void;
2189
+ /**
2190
+ * Klik kamkoli do obsahu popover zavře. Pro menu-like obsah.
2191
+ * @default false
2192
+ */
2193
+ closeOnClickInside?: boolean;
2194
+ /**
2195
+ * Vypne výchozí vnitřní padding panelu (16px). Pro obsah s vlastním layoutem.
2196
+ * @default false
2197
+ */
2198
+ disablePadding?: boolean;
2199
+ /** Vlastní padding panelu (číslo = px). Přepíše výchozích 16px. */
2200
+ padding?: number | string;
1894
2201
  /** Dodatečná CSS třída pro popover. */
1895
2202
  className?: string;
1896
2203
  /** Další inline styly pro popover. */
1897
- style?: React.CSSProperties;
2204
+ style?: React__default.CSSProperties;
1898
2205
  }
1899
2206
  /**
1900
2207
  * Popover dle SM-UI design systému.
1901
2208
  *
1902
2209
  * Podobný Tooltipu, ale větší, s kartovým stylem.
1903
2210
  * Otevírá se kliknutím nebo hoverem, zavírá kliknutím mimo nebo Escape.
1904
- * Vykresluje se přes React portál.
2211
+ * Vykresluje se přes React portál. Panel nikdy neopustí viewport —
2212
+ * když se na zvolené straně nevejde, otočí se (`autoFlip`) a posune.
1905
2213
  *
1906
2214
  * @example
1907
2215
  * ```tsx
1908
2216
  * <Popover content={<div>Obsah popoveru</div>} trigger="click">
1909
2217
  * <button>Klikni</button>
1910
2218
  * </Popover>
2219
+ *
2220
+ * // Řízený + zavření z obsahu
2221
+ * <Popover open={open} onOpenChange={setOpen} content={(close) => <Menu onPick={close} />}>
2222
+ * <Button>Vybrat</Button>
2223
+ * </Popover>
1911
2224
  * ```
1912
2225
  */
1913
- declare const Popover: React.FC<PopoverProps>;
2226
+ declare const Popover: React__default.FC<PopoverProps>;
1914
2227
 
1915
2228
  interface SkeletonProps {
1916
2229
  /**
@@ -1932,7 +2245,7 @@ interface SkeletonProps {
1932
2245
  /** Dodatečná CSS třída. */
1933
2246
  className?: string;
1934
2247
  /** Další inline styly. */
1935
- style?: React.CSSProperties;
2248
+ style?: React__default.CSSProperties;
1936
2249
  }
1937
2250
  /**
1938
2251
  * Zástupný prvek zobrazený při načítání obsahu.
@@ -1947,18 +2260,18 @@ interface SkeletonProps {
1947
2260
  * <Skeleton variant="rect" width="100%" height={200} />
1948
2261
  * ```
1949
2262
  */
1950
- declare const Skeleton: React.FC<SkeletonProps>;
2263
+ declare const Skeleton: React__default.FC<SkeletonProps>;
1951
2264
 
1952
2265
  type EmptyStatePreset = 'no-data' | 'no-results' | 'no-permission' | 'error' | 'coming-soon';
1953
2266
  interface EmptyStateProps {
1954
- /** Ikona zobrazená nad titulkem. */
1955
- icon?: React.ReactNode;
2267
+ /** Ikona zobrazená nad titulkem. Phosphor ikona bez `size` se škáluje podle `size` komponenty. */
2268
+ icon?: React__default.ReactNode;
1956
2269
  /** Hlavní titulek prázdného stavu. */
1957
2270
  title?: string;
1958
2271
  /** Doplňkový popis. */
1959
2272
  description?: string;
1960
2273
  /** Akční prvky — typicky tlačítka. */
1961
- action?: React.ReactNode;
2274
+ action?: React__default.ReactNode;
1962
2275
  /**
1963
2276
  * Přednastavený prázdný stav s ikonou, titulkem a popisem.
1964
2277
  * Vlastní `icon`, `title`, `description` přepíší preset hodnoty.
@@ -1969,7 +2282,7 @@ interface EmptyStateProps {
1969
2282
  /** Dodatečná CSS třída. */
1970
2283
  className?: string;
1971
2284
  /** Další inline styly. */
1972
- style?: React.CSSProperties;
2285
+ style?: React__default.CSSProperties;
1973
2286
  }
1974
2287
  /**
1975
2288
  * Prázdný stav dle SM-UI design systému.
@@ -1992,19 +2305,19 @@ interface EmptyStateProps {
1992
2305
  * />
1993
2306
  * ```
1994
2307
  */
1995
- declare const EmptyState: React.FC<EmptyStateProps>;
2308
+ declare const EmptyState: React__default.FC<EmptyStateProps>;
1996
2309
 
1997
2310
  interface StatProps {
1998
2311
  /** Popisek statistiky. */
1999
2312
  label: string;
2000
2313
  /** Hodnota statistiky. */
2001
- value?: string | number | React.ReactNode;
2314
+ value?: string | number | React__default.ReactNode;
2002
2315
  /** Procentuální změna (zobrazí se se znaménkem). */
2003
2316
  change?: number;
2004
2317
  /** Doplňkový text k procentuální změně. */
2005
2318
  changeLabel?: string;
2006
2319
  /** Ikona zobrazená vedle hodnoty. */
2007
- icon?: React.ReactNode;
2320
+ icon?: React__default.ReactNode;
2008
2321
  /** Směr trendu. @default 'neutral' */
2009
2322
  trend?: 'up' | 'down' | 'neutral';
2010
2323
  /** Skeleton stav. @default false */
@@ -2012,11 +2325,11 @@ interface StatProps {
2012
2325
  /** Klikatelná karta s hover efektem. */
2013
2326
  onClick?: () => void;
2014
2327
  /** Sekundární text pod hodnotou. */
2015
- helper?: string | React.ReactNode;
2328
+ helper?: string | React__default.ReactNode;
2016
2329
  /** Dodatečná CSS třída. */
2017
2330
  className?: string;
2018
2331
  /** Další inline styly. */
2019
- style?: React.CSSProperties;
2332
+ style?: React__default.CSSProperties;
2020
2333
  }
2021
2334
  /**
2022
2335
  * Statistický ukazatel dle SM-UI design systému.
@@ -2030,7 +2343,7 @@ interface StatProps {
2030
2343
  * <Stat label="Aktivní" value={loading ? undefined : 127} loading={loading} onClick={() => navigate('/tasks')} helper="z toho 12 po termínu" />
2031
2344
  * ```
2032
2345
  */
2033
- declare const Stat: React.FC<StatProps>;
2346
+ declare const Stat: React__default.FC<StatProps>;
2034
2347
 
2035
2348
  type AvatarSize = '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;
2036
2349
  interface AvatarProps {
@@ -2061,14 +2374,14 @@ interface AvatarProps {
2061
2374
  * Zaoblení rohů kontejneru avataru.
2062
2375
  * @default '8px'
2063
2376
  */
2064
- borderRadius?: React.CSSProperties['borderRadius'];
2377
+ borderRadius?: React__default.CSSProperties['borderRadius'];
2065
2378
  /**
2066
2379
  * Přístupný popisek čtený čtečkami obrazovky.
2067
2380
  * Pokud není zadán, použije se `"Avatar {initials}"`.
2068
2381
  */
2069
2382
  'aria-label'?: string;
2070
2383
  /** Další inline styly pro kořenový element. */
2071
- style?: React.CSSProperties;
2384
+ style?: React__default.CSSProperties;
2072
2385
  /** Dodatečná CSS třída pro kořenový element. */
2073
2386
  className?: string;
2074
2387
  }
@@ -2087,11 +2400,11 @@ interface AvatarProps {
2087
2400
  * <Avatar initials="AB" size={56} borderRadius="50%" />
2088
2401
  * ```
2089
2402
  */
2090
- declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
2403
+ declare const Avatar: React__default.ForwardRefExoticComponent<AvatarProps & React__default.RefAttributes<HTMLDivElement>>;
2091
2404
 
2092
2405
  interface AvatarStackProps {
2093
2406
  /** Avatar elementy. Každý dostane forced consistent size a circular shape. */
2094
- children: React.ReactNode;
2407
+ children: React__default.ReactNode;
2095
2408
  /** Max viditelných avatarů. Ostatní se sbalí do „+N" badge. @default 3 */
2096
2409
  max?: number;
2097
2410
  /** Forced size pro všechny avatary uvnitř. @default 'sm' */
@@ -2103,7 +2416,7 @@ interface AvatarStackProps {
2103
2416
  /** Tooltip nad „+N" badge. String nebo funkce (hiddenCount) => string. */
2104
2417
  overflowTooltip?: string | ((hiddenCount: number) => string);
2105
2418
  /** Další inline styly. */
2106
- style?: React.CSSProperties;
2419
+ style?: React__default.CSSProperties;
2107
2420
  /** Dodatečná CSS třída. */
2108
2421
  className?: string;
2109
2422
  }
@@ -2123,7 +2436,7 @@ interface AvatarStackProps {
2123
2436
  * </AvatarStack>
2124
2437
  * ```
2125
2438
  */
2126
- declare const AvatarStack: React.FC<AvatarStackProps>;
2439
+ declare const AvatarStack: React__default.FC<AvatarStackProps>;
2127
2440
 
2128
2441
  interface TagProps {
2129
2442
  /**
@@ -2136,20 +2449,28 @@ interface TagProps {
2136
2449
  */
2137
2450
  onRemove?: () => void;
2138
2451
  /** Další inline styly pro kořenový element. */
2139
- style?: React.CSSProperties;
2452
+ style?: React__default.CSSProperties;
2140
2453
  /** Dodatečná CSS třída pro kořenový element. */
2141
2454
  className?: string;
2142
2455
  }
2143
- type BadgeVariant = 'default' | 'success' | 'info' | 'warning' | 'danger';
2144
- interface BadgeProps {
2456
+ type BadgeVariant = 'default' | 'brand' | 'neutral' | 'success' | 'info' | 'warning' | 'danger';
2457
+ type BadgeSize = 'sm' | 'md';
2458
+ /** Barva s protějškem pro tmavý režim. */
2459
+ interface ThemedColor {
2460
+ light: string;
2461
+ dark: string;
2462
+ }
2463
+ interface BadgeProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, 'color' | 'style' | 'className'> {
2145
2464
  /**
2146
2465
  * Text zobrazený uvnitř badge.
2147
- * Automaticky převeden na velká písmena dle SM-UI design systému.
2466
+ * Ve výchozím stavu převeden na velká písmena dle SM-UI design systému (viz `uppercase`).
2148
2467
  */
2149
2468
  label: string;
2150
2469
  /**
2151
2470
  * Sémantická barevná varianta.
2152
- * - `'default'` — oranžová (brand), výchozí
2471
+ * - `'brand'` — oranžová (brand); pro zvýraznění, ne pro stav
2472
+ * - `'default'` — alias pro `'brand'` (zachováno kvůli kompatibilitě), výchozí
2473
+ * - `'neutral'` — tlumená šedá pro tiché stavy („interní", „archiv", „brzy")
2153
2474
  * - `'success'` — zelená (#00A205)
2154
2475
  * - `'info'` — modrá
2155
2476
  * - `'warning'` — žlutá / amber
@@ -2157,10 +2478,28 @@ interface BadgeProps {
2157
2478
  * @default 'default'
2158
2479
  */
2159
2480
  variant?: BadgeVariant;
2160
- /** Vlastní barva pozadí — přepíše `variant`. */
2161
- color?: string;
2481
+ /**
2482
+ * Vlastní barva pozadí — přepíše `variant`. Řetězec (i CSS proměnná)
2483
+ * nebo dvojice `{ light, dark }` pro oba motivy.
2484
+ */
2485
+ color?: string | ThemedColor;
2486
+ /** Vlastní barva textu (řetězec nebo `{ light, dark }`). Výchozí podle varianty. */
2487
+ textColor?: string | ThemedColor;
2488
+ /** Ikona vlevo před textem (Phosphor, 10–12px). */
2489
+ icon?: React__default.ReactNode;
2490
+ /** Barevná tečka před textem (barva textu badge). @default false */
2491
+ dot?: boolean;
2492
+ /**
2493
+ * Velikost.
2494
+ * - `'md'` — výchozí (10px písmo, padding 2px 16px)
2495
+ * - `'sm'` — kompaktní do hustých tabulek (9px písmo, padding 1px 8px)
2496
+ * @default 'md'
2497
+ */
2498
+ size?: BadgeSize;
2499
+ /** Převádět text na verzálky. @default true */
2500
+ uppercase?: boolean;
2162
2501
  /** Další inline styly pro kořenový element. */
2163
- style?: React.CSSProperties;
2502
+ style?: React__default.CSSProperties;
2164
2503
  /** Dodatečná CSS třída pro kořenový element. */
2165
2504
  className?: string;
2166
2505
  }
@@ -2191,7 +2530,7 @@ interface TagItemProps {
2191
2530
  */
2192
2531
  showActions?: boolean;
2193
2532
  /** Další inline styly pro kořenový element. */
2194
- style?: React.CSSProperties;
2533
+ style?: React__default.CSSProperties;
2195
2534
  /** Dodatečná CSS třída pro kořenový element. */
2196
2535
  className?: string;
2197
2536
  }
@@ -2205,22 +2544,25 @@ interface TagItemProps {
2205
2544
  * <Tag label="TypeScript" onRemove={() => removeTag('ts')} />
2206
2545
  * ```
2207
2546
  */
2208
- declare const Tag: React.FC<TagProps>;
2547
+ declare const Tag: React__default.FC<TagProps>;
2209
2548
  /**
2210
2549
  * Malý stavový badge vykreslený jako barevná pilulka.
2211
- * Text je automaticky převeden na velká písmena.
2550
+ * Text je ve výchozím stavu převeden na velká písmena.
2212
2551
  *
2213
- * Bez `variant` je oranžový (brand). Sémantické varianty nesou stavovou barvu.
2552
+ * Bez `variant` je oranžový (brand, alias `default`). Pro tiché stavy použijte
2553
+ * `variant="neutral"`; sémantické varianty nesou stavovou barvu. Stav nikdy
2554
+ * nekódujte jen barvou — přidejte `icon` nebo `dot`.
2214
2555
  *
2215
2556
  * @example
2216
2557
  * ```tsx
2217
2558
  * <Badge label="Novinka" />
2218
- * <Badge label="Schváleno" variant="success" />
2219
- * <Badge label="Zamítnuto" variant="danger" />
2220
- * <Badge label="Vlastní" color="#9C27B0" />
2559
+ * <Badge label="Interní" variant="neutral" />
2560
+ * <Badge label="Schváleno" variant="success" icon={<CheckIcon size={10} />} />
2561
+ * <Badge label="Zamítnuto" variant="danger" size="sm" />
2562
+ * <Badge label="Vlastní" color={{ light: '#DDF3E1', dark: '#1E7A2A66' }} textColor={{ light: '#1a1a1a', dark: '#ffffff' }} uppercase={false} />
2221
2563
  * ```
2222
2564
  */
2223
- declare const Badge: React.FC<BadgeProps>;
2565
+ declare const Badge: React__default.FC<BadgeProps>;
2224
2566
  /**
2225
2567
  * Řádek seznamu zobrazující pojmenovaný tag s volitelnými akčními tlačítky
2226
2568
  * (filtrování, úprava, smazání).
@@ -2234,7 +2576,7 @@ declare const Badge: React.FC<BadgeProps>;
2234
2576
  * <TagItem label="Blog" showActions={false} />
2235
2577
  * ```
2236
2578
  */
2237
- declare const TagItem: React.FC<TagItemProps>;
2579
+ declare const TagItem: React__default.FC<TagItemProps>;
2238
2580
 
2239
2581
  /** Událost zobrazená v kalendáři. */
2240
2582
  interface CalendarEvent {
@@ -2253,7 +2595,7 @@ interface CalendarEvent {
2253
2595
  /** Emoji zobrazené před názvem. */
2254
2596
  emoji?: string;
2255
2597
  /** Obsah tooltipu. Pokud je nastaveno, event bar se obalí tooltipem. */
2256
- tooltip?: string | React.ReactNode;
2598
+ tooltip?: string | React__default.ReactNode;
2257
2599
  }
2258
2600
  interface CalendarProps {
2259
2601
  /** Aktuálně vybraný datum. */
@@ -2284,8 +2626,15 @@ interface CalendarProps {
2284
2626
  minDate?: Date;
2285
2627
  /** Maximální povolený datum. */
2286
2628
  maxDate?: Date;
2629
+ /**
2630
+ * Velikost kompaktního kalendáře (buňky, písmo, odsazení).
2631
+ * - `'md'` — výchozí (buňka 36px)
2632
+ * - `'sm'` — do popoverů a úzkých sloupců (buňka 28px)
2633
+ * @default 'md'
2634
+ */
2635
+ size?: 'sm' | 'md';
2287
2636
  /** Další inline styly. */
2288
- style?: React.CSSProperties;
2637
+ style?: React__default.CSSProperties;
2289
2638
  /** Dodatečná CSS třída. */
2290
2639
  className?: string;
2291
2640
  }
@@ -2302,6 +2651,7 @@ interface CalendarProps {
2302
2651
  * ```tsx
2303
2652
  * // Kompaktní
2304
2653
  * <Calendar value={date} onChange={setDate} events={events} />
2654
+ * <Calendar size="sm" value={date} onChange={setDate} />
2305
2655
  *
2306
2656
  * // Plnohodnotný
2307
2657
  * <Calendar
@@ -2311,20 +2661,29 @@ interface CalendarProps {
2311
2661
  * />
2312
2662
  * ```
2313
2663
  */
2314
- declare const Calendar: React.FC<CalendarProps>;
2664
+ declare const Calendar: React__default.FC<CalendarProps>;
2315
2665
 
2316
2666
  /** Položka časové osy. */
2317
2667
  interface TimelineItem {
2318
- /** Nadpis události. */
2319
- title: string;
2320
- /** Volitelný popis události. */
2321
- description?: string;
2668
+ /** Nadpis události (text nebo ReactNode, např. s Badge). */
2669
+ title: React__default.ReactNode;
2670
+ /** Volitelný popis události (text nebo ReactNode). */
2671
+ description?: React__default.ReactNode;
2322
2672
  /** Volitelný datum / časový údaj. */
2323
2673
  date?: string;
2324
2674
  /** Vlastní ikona místo výchozí tečky. */
2325
- icon?: React.ReactNode;
2675
+ icon?: React__default.ReactNode;
2326
2676
  /** Barva tečky nebo pozadí ikony. @default '#FC4F00' */
2327
2677
  color?: string;
2678
+ /** Obsah vpravo od nadpisu (štítek, badge, počet). Vertikální osa. */
2679
+ meta?: React__default.ReactNode;
2680
+ /** Libovolný obsah pod popisem (tlačítka, seznam, vnořený blok). Vertikální osa. */
2681
+ content?: React__default.ReactNode;
2682
+ /**
2683
+ * `'section'` = nadpis skupiny bez tečky (uvozuje blok položek).
2684
+ * @default 'dot'
2685
+ */
2686
+ variant?: 'dot' | 'section';
2328
2687
  }
2329
2688
  interface TimelineProps {
2330
2689
  /** Položky časové osy. */
@@ -2332,7 +2691,7 @@ interface TimelineProps {
2332
2691
  /** Orientace časové osy. @default 'vertical' */
2333
2692
  orientation?: 'vertical' | 'horizontal';
2334
2693
  /** Další inline styly. */
2335
- style?: React.CSSProperties;
2694
+ style?: React__default.CSSProperties;
2336
2695
  /** Dodatečná CSS třída. */
2337
2696
  className?: string;
2338
2697
  }
@@ -2351,16 +2710,22 @@ interface TimelineProps {
2351
2710
  * { title: 'Doručeno', date: '14:30', color: '#00A205' },
2352
2711
  * ]}
2353
2712
  * />
2713
+ *
2714
+ * // Sekce, štítky a vlastní obsah
2715
+ * <Timeline items={[
2716
+ * { variant: 'section', title: 'Fáze 1', meta: <Badge label="8 kroků" size="sm" variant="neutral" /> },
2717
+ * { title: <>Analýza <Badge label="Vždy" variant="success" size="sm" /></>, content: <Button size="sm">Otevřít</Button> },
2718
+ * ]} />
2354
2719
  * ```
2355
2720
  */
2356
- declare const Timeline: React.FC<TimelineProps>;
2721
+ declare const Timeline: React__default.FC<TimelineProps>;
2357
2722
 
2358
2723
  /** Položka klíč-hodnota v seznamu. */
2359
2724
  interface DataListItem {
2360
2725
  /** Popisek (klíč). */
2361
2726
  label: string;
2362
2727
  /** Hodnota — řetězec nebo libovolný React uzel. */
2363
- value: React.ReactNode;
2728
+ value: React__default.ReactNode;
2364
2729
  }
2365
2730
  interface DataListProps {
2366
2731
  /** Položky k zobrazení. */
@@ -2370,7 +2735,7 @@ interface DataListProps {
2370
2735
  /** Střídání barvy řádků. @default false */
2371
2736
  striped?: boolean;
2372
2737
  /** Další inline styly. */
2373
- style?: React.CSSProperties;
2738
+ style?: React__default.CSSProperties;
2374
2739
  /** Dodatečná CSS třída. */
2375
2740
  className?: string;
2376
2741
  }
@@ -2393,7 +2758,7 @@ interface DataListProps {
2393
2758
  * />
2394
2759
  * ```
2395
2760
  */
2396
- declare const DataList: React.FC<DataListProps>;
2761
+ declare const DataList: React__default.FC<DataListProps>;
2397
2762
 
2398
2763
  /** Uzel stromové struktury. */
2399
2764
  interface TreeNode {
@@ -2402,7 +2767,7 @@ interface TreeNode {
2402
2767
  /** Zobrazený text uzlu. */
2403
2768
  label: string;
2404
2769
  /** Volitelná ikona vedle popisku. */
2405
- icon?: React.ReactNode;
2770
+ icon?: React__default.ReactNode;
2406
2771
  /** Podřízené uzly. */
2407
2772
  children?: TreeNode[];
2408
2773
  }
@@ -2416,7 +2781,7 @@ interface TreeProps {
2416
2781
  /** ID uzlů, které jsou ve výchozím stavu rozbalené. */
2417
2782
  defaultExpanded?: string[];
2418
2783
  /** Další inline styly. */
2419
- style?: React.CSSProperties;
2784
+ style?: React__default.CSSProperties;
2420
2785
  /** Dodatečná CSS třída. */
2421
2786
  className?: string;
2422
2787
  }
@@ -2440,7 +2805,7 @@ interface TreeProps {
2440
2805
  * />
2441
2806
  * ```
2442
2807
  */
2443
- declare const Tree: React.FC<TreeProps>;
2808
+ declare const Tree: React__default.FC<TreeProps>;
2444
2809
 
2445
2810
  type StatusBadgeStatus = 'online' | 'offline' | 'away' | 'busy' | (string & {});
2446
2811
  interface StatusBadgeProps {
@@ -2455,7 +2820,7 @@ interface StatusBadgeProps {
2455
2820
  /** Vlastní barva indikátoru — přepíše výchozí barvu stavu. */
2456
2821
  color?: string;
2457
2822
  /** Další inline styly. */
2458
- style?: React.CSSProperties;
2823
+ style?: React__default.CSSProperties;
2459
2824
  /** Dodatečná CSS třída. */
2460
2825
  className?: string;
2461
2826
  }
@@ -2473,7 +2838,7 @@ interface StatusBadgeProps {
2473
2838
  * <StatusBadge status="streaming" color="#9C27B0" label="Živě" pulse />
2474
2839
  * ```
2475
2840
  */
2476
- declare const StatusBadge: React.FC<StatusBadgeProps>;
2841
+ declare const StatusBadge: React__default.FC<StatusBadgeProps>;
2477
2842
 
2478
2843
  /** Default series palette — brand orange first, then a distinct categorical set. */
2479
2844
  declare const CHART_PALETTE: readonly ["#FC4F00", "#2D7FF9", "#00A205", "#F5A623", "#9C27B0", "#00B8D9", "#EF3838", "#7C4DFF"];
@@ -2549,7 +2914,7 @@ interface LineChartProps {
2549
2914
  /** Accessible label for the chart. */
2550
2915
  ariaLabel?: string;
2551
2916
  /** Další inline styly pro obal. */
2552
- style?: React.CSSProperties;
2917
+ style?: React__default.CSSProperties;
2553
2918
  /** Dodatečná CSS třída pro obal. */
2554
2919
  className?: string;
2555
2920
  }
@@ -2567,7 +2932,7 @@ interface LineChartProps {
2567
2932
  * />
2568
2933
  * ```
2569
2934
  */
2570
- declare const LineChart: React.FC<LineChartProps>;
2935
+ declare const LineChart: React__default.FC<LineChartProps>;
2571
2936
  /**
2572
2937
  * Plošný graf — `LineChart` s výplní pod čarou.
2573
2938
  *
@@ -2576,7 +2941,7 @@ declare const LineChart: React.FC<LineChartProps>;
2576
2941
  * <AreaChart categories={mesice} series={[{ name: 'Tržby', data: trzby }]} />
2577
2942
  * ```
2578
2943
  */
2579
- declare const AreaChart: React.FC<LineChartProps>;
2944
+ declare const AreaChart: React__default.FC<LineChartProps>;
2580
2945
 
2581
2946
  interface BarChartProps {
2582
2947
  /** One or more data series, each aligned to `categories`. */
@@ -2632,7 +2997,7 @@ interface BarChartProps {
2632
2997
  /** Accessible label for the chart. */
2633
2998
  ariaLabel?: string;
2634
2999
  /** Další inline styly pro obal. */
2635
- style?: React.CSSProperties;
3000
+ style?: React__default.CSSProperties;
2636
3001
  /** Dodatečná CSS třída pro obal. */
2637
3002
  className?: string;
2638
3003
  }
@@ -2656,7 +3021,7 @@ interface BarChartProps {
2656
3021
  * />
2657
3022
  * ```
2658
3023
  */
2659
- declare const BarChart: React.FC<BarChartProps>;
3024
+ declare const BarChart: React__default.FC<BarChartProps>;
2660
3025
 
2661
3026
  interface PieChartProps {
2662
3027
  /** Slices to render (values must be >= 0). */
@@ -2674,7 +3039,7 @@ interface PieChartProps {
2674
3039
  /** Gap between slices in degrees. @default 0 */
2675
3040
  padAngle?: number;
2676
3041
  /** Custom content rendered in the donut center (only meaningful when innerRatio > 0). */
2677
- centerLabel?: React.ReactNode;
3042
+ centerLabel?: React__default.ReactNode;
2678
3043
  /** Animate the draw-in on mount. @default true */
2679
3044
  animate?: boolean;
2680
3045
  /** Format tooltip / label numbers. @default toLocaleString */
@@ -2689,7 +3054,7 @@ interface PieChartProps {
2689
3054
  /** Accessible label for the chart. */
2690
3055
  ariaLabel?: string;
2691
3056
  /** Další inline styly pro obal. */
2692
- style?: React.CSSProperties;
3057
+ style?: React__default.CSSProperties;
2693
3058
  /** Dodatečná CSS třída pro obal. */
2694
3059
  className?: string;
2695
3060
  }
@@ -2708,7 +3073,7 @@ interface PieChartProps {
2708
3073
  * ]} />
2709
3074
  * ```
2710
3075
  */
2711
- declare const PieChart: React.FC<PieChartProps>;
3076
+ declare const PieChart: React__default.FC<PieChartProps>;
2712
3077
  /**
2713
3078
  * Prstencový graf — `PieChart` s dírou uprostřed (a volitelným `centerLabel`).
2714
3079
  *
@@ -2720,7 +3085,7 @@ declare const PieChart: React.FC<PieChartProps>;
2720
3085
  * />
2721
3086
  * ```
2722
3087
  */
2723
- declare const DonutChart: React.FC<PieChartProps>;
3088
+ declare const DonutChart: React__default.FC<PieChartProps>;
2724
3089
 
2725
3090
  interface SparklineProps {
2726
3091
  /** Data points. */
@@ -2746,7 +3111,7 @@ interface SparklineProps {
2746
3111
  /** Accessible label. */
2747
3112
  ariaLabel?: string;
2748
3113
  /** Další inline styly. */
2749
- style?: React.CSSProperties;
3114
+ style?: React__default.CSSProperties;
2750
3115
  /** Dodatečná CSS třída. */
2751
3116
  className?: string;
2752
3117
  }
@@ -2762,23 +3127,58 @@ interface SparklineProps {
2762
3127
  * <Sparkline type="bar" data={[4, 8, 6, 10, 7]} />
2763
3128
  * ```
2764
3129
  */
2765
- declare const Sparkline: React.FC<SparklineProps>;
3130
+ declare const Sparkline: React__default.FC<SparklineProps>;
2766
3131
 
3132
+ type FocusTrapInitialFocus = 'container' | 'first' | React__default.RefObject<HTMLElement | null>;
3133
+ interface UseFocusTrapOptions {
3134
+ /** Zda je past aktivní. */
3135
+ active: boolean;
3136
+ /**
3137
+ * Kam přesunout fokus po aktivaci.
3138
+ * - `'container'` — na kontejner (musí mít `tabIndex={-1}`)
3139
+ * - `'first'` — na první viditelný fokusovatelný prvek
3140
+ * - ref — na konkrétní prvek
3141
+ * @default 'container'
3142
+ */
3143
+ initialFocus?: FocusTrapInitialFocus;
3144
+ /** Po deaktivaci vrátit fokus na prvek, který byl aktivní před otevřením. @default true */
3145
+ returnFocus?: boolean;
3146
+ }
3147
+ /**
3148
+ * Uzavře Tab / Shift+Tab do kontejneru. Skryté prvky (`display: none`)
3149
+ * se přeskakují, takže wrap funguje i s responzivně schovanými taby.
3150
+ * Reaguje jen pokud je fokus uvnitř kontejneru — vnořené portály
3151
+ * (dropdown Selectu) tak nejsou násilně vraceny zpět.
3152
+ */
3153
+ declare function useFocusTrap(containerRef: React__default.RefObject<HTMLElement | null>, { active, initialFocus, returnFocus }: UseFocusTrapOptions): void;
3154
+
3155
+ /** Breakpointy pro `fullscreenBelow` (max-width v px). */
3156
+ declare const BREAKPOINTS: {
3157
+ readonly sm: 640;
3158
+ readonly md: 768;
3159
+ readonly lg: 1024;
3160
+ };
3161
+ type ModalBreakpoint = keyof typeof BREAKPOINTS;
2767
3162
  interface ModalProps {
2768
3163
  /** Řídí zobrazení modálního okna. */
2769
3164
  open: boolean;
2770
3165
  /** Voláno při zavření modálu. */
2771
3166
  onClose: () => void;
2772
3167
  /** Titulek zobrazený v záhlaví modálu. String nebo ReactNode pro vlastní hlavičku. */
2773
- title?: string | React.ReactNode;
3168
+ title?: string | React__default.ReactNode;
2774
3169
  /** Alternativní slot pro celou hlavičku (nahrazuje title + close button). */
2775
- titleSlot?: React.ReactNode;
3170
+ titleSlot?: React__default.ReactNode;
2776
3171
  /** Obsah těla modálu. */
2777
- children: React.ReactNode;
3172
+ children: React__default.ReactNode;
2778
3173
  /** Obsah patičky modálu (tlačítka apod.). */
2779
- footer?: React.ReactNode;
3174
+ footer?: React__default.ReactNode;
2780
3175
  /** Velikostní preset modálu. `xl` je velký, ale ne fullscreen (1080px / 90vh). @default 'md' */
2781
3176
  size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen';
3177
+ /**
3178
+ * Pod tímto breakpointem (šířka viewportu) se modál vykreslí jako fullscreen,
3179
+ * nad ním jako karta dle `size`. Breakpointy: sm 640px, md 768px, lg 1024px.
3180
+ */
3181
+ fullscreenBelow?: ModalBreakpoint;
2782
3182
  /**
2783
3183
  * Explicitní šířka modálu. Přepíše `size`.
2784
3184
  * Přijímá číslo (px) nebo CSS string (např. '90vw').
@@ -2791,8 +3191,8 @@ interface ModalProps {
2791
3191
  maxHeight?: number | string;
2792
3192
  /**
2793
3193
  * z-index kořenového overlay kontejneru.
2794
- * Výchozí hodnota čerpá z CSS proměnné `--sm-ui-z-overlay` (fallback 99998),
2795
- * takže lze vrstvení řídit globálně. Tento prop ji přepíše pro jednu instanci.
3194
+ * Výchozí hodnota čerpá z CSS proměnné `--sm-ui-z-overlay` (fallback 99998)
3195
+ * a u vnořených overlayů se automaticky zvedá nad rodiče. Tento prop ji přepíše pro jednu instanci.
2796
3196
  */
2797
3197
  zIndex?: number;
2798
3198
  /** Zavře modál kliknutím na překryvnou vrstvu. @default true */
@@ -2809,17 +3209,33 @@ interface ModalProps {
2809
3209
  showClose?: boolean;
2810
3210
  /** Zobrazí oddělovací čáru pod hlavičkou. @default true */
2811
3211
  showHeaderDivider?: boolean;
3212
+ /**
3213
+ * Kam přesunout fokus po otevření: na kartu (`'container'`), první
3214
+ * fokusovatelný prvek (`'first'`) nebo konkrétní ref.
3215
+ * @default 'container'
3216
+ */
3217
+ initialFocus?: FocusTrapInitialFocus;
2812
3218
  /** Dodatečná CSS třída pro kartu modálu. */
2813
3219
  className?: string;
2814
3220
  /** Další inline styly pro kartu modálu. */
2815
- style?: React.CSSProperties;
3221
+ style?: React__default.CSSProperties;
3222
+ /**
3223
+ * Vypne výchozí vnitřní padding těla (`20px 24px`).
3224
+ * Vhodné pro full-bleed obsah (tabulky, taby edge-to-edge).
3225
+ * @default false
3226
+ */
3227
+ disableBodyPadding?: boolean;
3228
+ /** Dodatečná CSS třída pro tělo (scrollovací oblast). */
3229
+ bodyClassName?: string;
3230
+ /** Vlastní inline styly pro tělo (scrollovací oblast). */
3231
+ bodyStyle?: React__default.CSSProperties;
2816
3232
  }
2817
3233
  /**
2818
3234
  * Modální dialog dle SM-UI design systému.
2819
3235
  *
2820
3236
  * Vykresluje se přes React portál s překryvnou vrstvou,
2821
3237
  * podporuje animace otevření / zavření, focus trap
2822
- * a zamezení scrollu pozadí.
3238
+ * a zamezení scrollu pozadí. Escape zavře jen nejvyšší otevřený overlay.
2823
3239
  *
2824
3240
  * @example
2825
3241
  * ```tsx
@@ -2828,7 +3244,7 @@ interface ModalProps {
2828
3244
  * </Modal>
2829
3245
  * ```
2830
3246
  */
2831
- declare const Modal: React.FC<ModalProps>;
3247
+ declare const Modal: React__default.FC<ModalProps>;
2832
3248
 
2833
3249
  interface DrawerProps {
2834
3250
  /** Řídí zobrazení šuplíku. */
@@ -2837,12 +3253,29 @@ interface DrawerProps {
2837
3253
  onClose: () => void;
2838
3254
  /** Strana, ze které se šuplík vysune. @default 'right' */
2839
3255
  position?: 'left' | 'right';
3256
+ /**
3257
+ * Vzhled panelu.
3258
+ * - `'edge'` — přilepený k okraji viewportu (výchozí)
3259
+ * - `'floating'` — plovoucí karta s odsazením od okrajů a zaoblením
3260
+ * @default 'edge'
3261
+ */
3262
+ variant?: 'edge' | 'floating';
3263
+ /** Odsazení plovoucího panelu od okrajů viewportu v px (`variant="floating"`). @default 16 */
3264
+ floatingOffset?: number;
3265
+ /** Zavře šuplík stisknutím klávesy Escape. @default true */
3266
+ closeOnEscape?: boolean;
3267
+ /**
3268
+ * Kam přesunout fokus po otevření: na panel (`'container'`), první
3269
+ * fokusovatelný prvek (`'first'`) nebo konkrétní ref.
3270
+ * @default 'container'
3271
+ */
3272
+ initialFocus?: FocusTrapInitialFocus;
2840
3273
  /** Titulek zobrazený v záhlaví šuplíku. */
2841
3274
  title?: string;
2842
3275
  /** Obsah těla šuplíku. */
2843
- children: React.ReactNode;
3276
+ children: React__default.ReactNode;
2844
3277
  /** Obsah patičky šuplíku. */
2845
- footer?: React.ReactNode;
3278
+ footer?: React__default.ReactNode;
2846
3279
  /** Šířka panelu (px nebo CSS řetězec). @default 400 */
2847
3280
  width?: string | number;
2848
3281
  /** Zobrazí zavírací tlačítko (×). @default true */
@@ -2852,9 +3285,9 @@ interface DrawerProps {
2852
3285
  /** Dodatečná CSS třída pro panel šuplíku. */
2853
3286
  className?: string;
2854
3287
  /** Další inline styly pro panel šuplíku. */
2855
- style?: React.CSSProperties;
3288
+ style?: React__default.CSSProperties;
2856
3289
  /** Vlastní inline styly pro tělo (scrollovací oblast). */
2857
- bodyStyle?: React.CSSProperties;
3290
+ bodyStyle?: React__default.CSSProperties;
2858
3291
  /** Dodatečná CSS třída pro tělo (scrollovací oblast). */
2859
3292
  bodyClassName?: string;
2860
3293
  /**
@@ -2865,8 +3298,8 @@ interface DrawerProps {
2865
3298
  disableBodyPadding?: boolean;
2866
3299
  /**
2867
3300
  * z-index kořenového overlay kontejneru.
2868
- * Výchozí hodnota čerpá z CSS proměnné `--sm-ui-z-overlay` (fallback 99998),
2869
- * takže lze vrstvení řídit globálně. Tento prop ji přepíše pro jednu instanci.
3301
+ * Výchozí hodnota čerpá z CSS proměnné `--sm-ui-z-overlay` (fallback 99998)
3302
+ * a u vnořených overlayů se automaticky zvedá nad rodiče. Tento prop ji přepíše pro jednu instanci.
2870
3303
  */
2871
3304
  zIndex?: number;
2872
3305
  }
@@ -2874,7 +3307,8 @@ interface DrawerProps {
2874
3307
  * Vysuvný panel (Drawer) dle SM-UI design systému.
2875
3308
  *
2876
3309
  * Vykresluje se přes React portál, vysune se z levé nebo pravé strany
2877
- * s překryvnou vrstvou a plynulou animací.
3310
+ * s překryvnou vrstvou a plynulou animací. Focus trap, Escape zavírá jen
3311
+ * nejvyšší overlay, `variant="floating"` vykreslí plovoucí kartu.
2878
3312
  *
2879
3313
  * @example
2880
3314
  * ```tsx
@@ -2883,7 +3317,7 @@ interface DrawerProps {
2883
3317
  * </Drawer>
2884
3318
  * ```
2885
3319
  */
2886
- declare const Drawer: React.FC<DrawerProps>;
3320
+ declare const Drawer: React__default.FC<DrawerProps>;
2887
3321
 
2888
3322
  interface SheetProps {
2889
3323
  /** Řídí zobrazení sheetu. */
@@ -2891,15 +3325,37 @@ interface SheetProps {
2891
3325
  /** Voláno při zavření sheetu. */
2892
3326
  onClose: () => void;
2893
3327
  /** Obsah sheetu. */
2894
- children: React.ReactNode;
3328
+ children: React__default.ReactNode;
2895
3329
  /** Strana, ze které se sheet vysune. @default 'bottom' */
2896
3330
  side?: 'bottom' | 'right' | 'left' | 'top';
2897
3331
  /** Titulek zobrazený v záhlaví. */
2898
3332
  title?: string;
2899
3333
  /** Zobrazí zavírací tlačítko. @default true */
2900
3334
  showClose?: boolean;
3335
+ /** Zavře sheet kliknutím na překryvnou vrstvu. @default true */
3336
+ closeOnOverlay?: boolean;
3337
+ /** Zavře sheet stisknutím klávesy Escape. @default true */
3338
+ closeOnEscape?: boolean;
3339
+ /**
3340
+ * Kam přesunout fokus po otevření: na panel (`'container'`), první
3341
+ * fokusovatelný prvek (`'first'`) nebo konkrétní ref.
3342
+ * @default 'container'
3343
+ */
3344
+ initialFocus?: FocusTrapInitialFocus;
3345
+ /** Vypne výchozí vnitřní padding těla (`20px 24px`). @default false */
3346
+ disableBodyPadding?: boolean;
3347
+ /** Vlastní inline styly pro tělo (scrollovací oblast). */
3348
+ bodyStyle?: React__default.CSSProperties;
3349
+ /** Dodatečná CSS třída pro tělo (scrollovací oblast). */
3350
+ bodyClassName?: string;
3351
+ /**
3352
+ * z-index kořenového overlay kontejneru.
3353
+ * Výchozí hodnota čerpá z CSS proměnné `--sm-ui-z-overlay` (fallback 99998)
3354
+ * a u vnořených overlayů se automaticky zvedá nad rodiče.
3355
+ */
3356
+ zIndex?: number;
2901
3357
  /** Další inline styly. */
2902
- style?: React.CSSProperties;
3358
+ style?: React__default.CSSProperties;
2903
3359
  /** Dodatečná CSS třída. */
2904
3360
  className?: string;
2905
3361
  }
@@ -2916,7 +3372,7 @@ interface SheetProps {
2916
3372
  * </Sheet>
2917
3373
  * ```
2918
3374
  */
2919
- declare const Sheet: React.FC<SheetProps>;
3375
+ declare const Sheet: React__default.FC<SheetProps>;
2920
3376
 
2921
3377
  interface BreadcrumbItem {
2922
3378
  /** Zobrazovaný text položky. */
@@ -2924,19 +3380,25 @@ interface BreadcrumbItem {
2924
3380
  /** URL odkazu. Pokud chybí, položka se vykreslí jako prostý text. */
2925
3381
  href?: string;
2926
3382
  /** Voláno při kliknutí na položku. */
2927
- onClick?: (e: React.MouseEvent) => void;
3383
+ onClick?: (e: React__default.MouseEvent) => void;
2928
3384
  /** Volitelná ikona vykreslená před textem. */
2929
- icon?: React.ReactNode;
3385
+ icon?: React__default.ReactNode;
2930
3386
  }
2931
3387
  interface BreadcrumbProps {
2932
3388
  /** Seznam položek drobečkové navigace. */
2933
3389
  items: BreadcrumbItem[];
2934
3390
  /** Oddělovací znak mezi položkami. @default '/' */
2935
- separator?: React.ReactNode;
3391
+ separator?: React__default.ReactNode;
3392
+ /**
3393
+ * Komponenta pro vykreslení odkazu (položky s `href`), např. `Link` z Inertie
3394
+ * nebo react-routeru. Dostane `href`, `onClick`, `style`, `children`.
3395
+ * @default 'a'
3396
+ */
3397
+ linkComponent?: React__default.ElementType;
2936
3398
  /** Dodatečná CSS třída pro obalový element. */
2937
3399
  className?: string;
2938
3400
  /** Další inline styly pro obalový element. */
2939
- style?: React.CSSProperties;
3401
+ style?: React__default.CSSProperties;
2940
3402
  }
2941
3403
  /**
2942
3404
  * Drobečková navigace dle SM-UI design systému.
@@ -2953,9 +3415,12 @@ interface BreadcrumbProps {
2953
3415
  * { label: 'Detail' },
2954
3416
  * ]}
2955
3417
  * />
3418
+ *
3419
+ * // Klientský router (Inertia / react-router)
3420
+ * <Breadcrumb linkComponent={InertiaLink} items={items} />
2956
3421
  * ```
2957
3422
  */
2958
- declare const Breadcrumb: React.FC<BreadcrumbProps>;
3423
+ declare const Breadcrumb: React__default.FC<BreadcrumbProps>;
2959
3424
 
2960
3425
  interface PaginationProps {
2961
3426
  /** Aktuální číslo stránky (1-indexed). */
@@ -2975,7 +3440,7 @@ interface PaginationProps {
2975
3440
  /** Dodatečná CSS třída pro obalový element. */
2976
3441
  className?: string;
2977
3442
  /** Další inline styly pro obalový element. */
2978
- style?: React.CSSProperties;
3443
+ style?: React__default.CSSProperties;
2979
3444
  }
2980
3445
  /**
2981
3446
  * Stránkovací komponenta dle SM-UI design systému.
@@ -2988,7 +3453,7 @@ interface PaginationProps {
2988
3453
  * <Pagination page={3} totalPages={20} onChange={setPage} />
2989
3454
  * ```
2990
3455
  */
2991
- declare const Pagination: React.FC<PaginationProps>;
3456
+ declare const Pagination: React__default.FC<PaginationProps>;
2992
3457
 
2993
3458
  interface StepItem {
2994
3459
  /** Popisek kroku. */
@@ -3016,7 +3481,7 @@ interface StepperProps {
3016
3481
  /** Dodatečná CSS třída pro obalový element. */
3017
3482
  className?: string;
3018
3483
  /** Další inline styly pro obalový element. */
3019
- style?: React.CSSProperties;
3484
+ style?: React__default.CSSProperties;
3020
3485
  }
3021
3486
  /**
3022
3487
  * Kroková komponenta (Stepper) dle SM-UI design systému.
@@ -3043,7 +3508,7 @@ interface StepperProps {
3043
3508
  * />
3044
3509
  * ```
3045
3510
  */
3046
- declare const Stepper: React.FC<StepperProps>;
3511
+ declare const Stepper: React__default.FC<StepperProps>;
3047
3512
 
3048
3513
  interface FormWizardStep {
3049
3514
  /** Popisek kroku zobrazený ve Stepperu. */
@@ -3051,7 +3516,7 @@ interface FormWizardStep {
3051
3516
  /** Volitelný popis kroku. */
3052
3517
  description?: string;
3053
3518
  /** Obsah kroku (formulář, komponenta). */
3054
- content: React.ReactNode;
3519
+ content: React__default.ReactNode;
3055
3520
  /** Validace před pokračováním. Vrací boolean nebo Promise<boolean>. */
3056
3521
  validate?: () => boolean | Promise<boolean>;
3057
3522
  }
@@ -3073,7 +3538,7 @@ interface FormWizardProps {
3073
3538
  /** Text tlačítka Předchozí. @default 'Předchozí' */
3074
3539
  prevLabel?: string;
3075
3540
  /** Další inline styly. */
3076
- style?: React.CSSProperties;
3541
+ style?: React__default.CSSProperties;
3077
3542
  /** Dodatečná CSS třída. */
3078
3543
  className?: string;
3079
3544
  }
@@ -3096,13 +3561,14 @@ interface FormWizardProps {
3096
3561
  * />
3097
3562
  * ```
3098
3563
  */
3099
- declare const FormWizard: React.FC<FormWizardProps>;
3564
+ declare const FormWizard: React__default.FC<FormWizardProps>;
3100
3565
 
3566
+ type DropdownMenuPosition = 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
3101
3567
  interface DropdownMenuItem {
3102
3568
  /** Zobrazovaný popisek položky. Může být text nebo ReactNode pro vlastní obsah. */
3103
- label: React.ReactNode;
3569
+ label: React__default.ReactNode;
3104
3570
  /** Volitelná ikona vykreslená před textem. */
3105
- icon?: React.ReactNode;
3571
+ icon?: React__default.ReactNode;
3106
3572
  /** Voláno při kliknutí na položku. */
3107
3573
  onClick?: () => void;
3108
3574
  /** Při `true` nelze položku vybrat. @default false */
@@ -3113,33 +3579,56 @@ interface DropdownMenuItem {
3113
3579
  divider?: boolean;
3114
3580
  /** Text kategorie — zobrazí se jako malý nadpis sekce (uppercase label). */
3115
3581
  category?: string;
3116
- /** Klávesová zkratka zobrazená vpravo (např. '⌘S', '⌘⌫'). */
3117
- shortcut?: string;
3582
+ /** Klávesová zkratka nebo jiný obsah zobrazený vpravo (např. '⌘S', badge). */
3583
+ shortcut?: React__default.ReactNode;
3584
+ /** Obsah vpravo za popiskem (badge, tečka, počet). Zobrazí se i u položek se `subItems`. */
3585
+ suffix?: React__default.ReactNode;
3118
3586
  /** Při `true` se dropdown po kliknutí nezavře. Pro toggle položky. @default false */
3119
3587
  keepOpenOnClick?: boolean;
3120
3588
  /** Kaskádové submenu. Když nastaveno, klik/hover otevře submenu místo zavření. */
3121
3589
  subItems?: DropdownMenuItem[];
3590
+ /**
3591
+ * Vykreslí `label` bez paddingu a hoveru položky (plně vlastní řádek).
3592
+ * Výchozí je ReactNode label vykreslen se stejným paddingem jako text.
3593
+ * @default false
3594
+ */
3595
+ unstyled?: boolean;
3122
3596
  }
3123
3597
  interface DropdownMenuProps {
3124
3598
  /** Spouštěcí element (tlačítko apod.). */
3125
- trigger: React.ReactNode;
3599
+ trigger: React__default.ReactNode;
3126
3600
  /** Seznam položek nabídky. */
3127
3601
  items: DropdownMenuItem[];
3128
- /** Pozice rozbalovací nabídky vůči triggeru. @default 'bottom-left' */
3129
- position?: 'bottom-left' | 'bottom-right';
3602
+ /**
3603
+ * Pozice rozbalovací nabídky vůči triggeru.
3604
+ * `bottom-*` otevírá pod trigger, `top-*` nad něj; `-left` / `-right` = zarovnání okraje.
3605
+ * @default 'bottom-left'
3606
+ */
3607
+ position?: DropdownMenuPosition;
3608
+ /**
3609
+ * Když se nabídka na zvolené straně nevejde, otočí se na protilehlou.
3610
+ * @default true
3611
+ */
3612
+ autoFlip?: boolean;
3130
3613
  /** Otevřít nabídku pravým kliknutím místo levým. @default false */
3131
3614
  triggerOnRightClick?: boolean;
3615
+ /** Řízený stav otevření. Když zadáno, kit stav sám nemění a volá jen `onOpenChange`. */
3616
+ open?: boolean;
3617
+ /** Výchozí stav pro neřízený režim. @default false */
3618
+ defaultOpen?: boolean;
3619
+ /** Voláno při požadavku na otevření / zavření. */
3620
+ onOpenChange?: (open: boolean) => void;
3132
3621
  /** Dodatečná CSS třída pro obalový element. */
3133
3622
  className?: string;
3134
3623
  /** Další inline styly pro obalový element. */
3135
- style?: React.CSSProperties;
3624
+ style?: React__default.CSSProperties;
3136
3625
  }
3137
3626
  /**
3138
3627
  * Rozbalovací nabídka dle SM-UI design systému.
3139
3628
  *
3140
3629
  * Otevírá se kliknutím na trigger element, zavírá se kliknutím
3141
3630
  * mimo nebo klávesou Escape. Používá React portál
3142
- * s chytrým pozicováním (otevře se nad triggerem, pokud pod ním není místo).
3631
+ * s chytrým pozicováním (otočí se na druhou stranu, pokud není místo).
3143
3632
  *
3144
3633
  * @example
3145
3634
  * ```tsx
@@ -3154,14 +3643,16 @@ interface DropdownMenuProps {
3154
3643
  * />
3155
3644
  * ```
3156
3645
  */
3157
- declare const DropdownMenu: React.FC<DropdownMenuProps>;
3646
+ declare const DropdownMenu: React__default.FC<DropdownMenuProps>;
3158
3647
 
3159
- type LinkVariant = 'default' | 'danger';
3160
- interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> {
3648
+ type LinkVariant = 'default' | 'danger' | 'primary' | 'muted';
3649
+ interface LinkProps extends Omit<React__default.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> {
3161
3650
  /**
3162
3651
  * Barevná varianta.
3163
3652
  * - `'default'` — bílá (tmavý režim) / tmavá (světlý režim)
3164
3653
  * - `'danger'` — červená `#EF3838` v obou režimech
3654
+ * - `'primary'` — brand oranžová (primární akce v textu)
3655
+ * - `'muted'` — tlumená šedá (sekundární odkazy)
3165
3656
  * @default 'default'
3166
3657
  */
3167
3658
  variant?: LinkVariant;
@@ -3169,7 +3660,7 @@ interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>,
3169
3660
  * Ikona vykreslená vedle textu odkazu.
3170
3661
  * Typicky 14×14 SVG nebo komponenta ikony.
3171
3662
  */
3172
- icon?: React.ReactNode;
3663
+ icon?: React__default.ReactNode;
3173
3664
  /**
3174
3665
  * Na které straně se ikona zobrazí vzhledem k textu.
3175
3666
  * @default 'left'
@@ -3182,7 +3673,7 @@ interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>,
3182
3673
  */
3183
3674
  showIcon?: boolean;
3184
3675
  /** Další inline styly pro `<a>` element. */
3185
- style?: React.CSSProperties;
3676
+ style?: React__default.CSSProperties;
3186
3677
  /** Dodatečná CSS třída pro `<a>` element. */
3187
3678
  className?: string;
3188
3679
  }
@@ -3201,7 +3692,7 @@ interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>,
3201
3692
  * <Link icon={<ArrowIcon />} iconPosition="right" href="/dalsi">Další krok</Link>
3202
3693
  * ```
3203
3694
  */
3204
- declare const Link: React.FC<LinkProps>;
3695
+ declare const Link: React__default.FC<LinkProps>;
3205
3696
 
3206
3697
  interface SpotlightItem {
3207
3698
  /** Unikátní identifikátor položky. */
@@ -3213,7 +3704,7 @@ interface SpotlightItem {
3213
3704
  /** Kategorie pro vizuální seskupení (např. "Komponenty", "Hooky"). */
3214
3705
  category: string;
3215
3706
  /** Volitelná ikona vedle textu. */
3216
- icon?: React.ReactNode;
3707
+ icon?: React__default.ReactNode;
3217
3708
  /** Voláno při výběru položky (klik nebo Enter). */
3218
3709
  onSelect: () => void;
3219
3710
  }
@@ -3235,7 +3726,7 @@ interface SpotlightProps {
3235
3726
  /** Dodatečná CSS třída pro kartu spotlightu. */
3236
3727
  className?: string;
3237
3728
  /** Další inline styly pro kartu spotlightu. */
3238
- style?: React.CSSProperties;
3729
+ style?: React__default.CSSProperties;
3239
3730
  }
3240
3731
  /**
3241
3732
  * Command-palette / spotlight overlay dle SM-UI design systému.
@@ -3258,7 +3749,7 @@ interface SpotlightProps {
3258
3749
  * />
3259
3750
  * ```
3260
3751
  */
3261
- declare const Spotlight: React.FC<SpotlightProps>;
3752
+ declare const Spotlight: React__default.FC<SpotlightProps>;
3262
3753
 
3263
3754
  interface CommandItem {
3264
3755
  /** Unikátní identifikátor příkazu. */
@@ -3268,7 +3759,7 @@ interface CommandItem {
3268
3759
  /** Volitelný popis příkazu. */
3269
3760
  description?: string;
3270
3761
  /** Volitelná ikona příkazu. */
3271
- icon?: React.ReactNode;
3762
+ icon?: React__default.ReactNode;
3272
3763
  /** Klávesová zkratka (zobrazena jako badge). */
3273
3764
  shortcut?: string;
3274
3765
  /** Voláno při výběru příkazu. */
@@ -3290,7 +3781,7 @@ interface CommandMenuProps {
3290
3781
  /** Placeholder text vyhledávacího pole. @default 'Zadejte příkaz...' */
3291
3782
  placeholder?: string;
3292
3783
  /** Další inline styly pro kartu. */
3293
- style?: React.CSSProperties;
3784
+ style?: React__default.CSSProperties;
3294
3785
  /** Dodatečná CSS třída. */
3295
3786
  className?: string;
3296
3787
  }
@@ -3311,11 +3802,11 @@ interface CommandMenuProps {
3311
3802
  * />
3312
3803
  * ```
3313
3804
  */
3314
- declare const CommandMenu: React.FC<CommandMenuProps>;
3805
+ declare const CommandMenu: React__default.FC<CommandMenuProps>;
3315
3806
 
3316
3807
  interface AppSidebarProps {
3317
3808
  /** Obsah postranního panelu (navigace, menu apod.). */
3318
- children: React.ReactNode;
3809
+ children: React__default.ReactNode;
3319
3810
  /** Zda je panel sbalený. @default false */
3320
3811
  collapsed?: boolean;
3321
3812
  /** Voláno při změně stavu sbalení. */
@@ -3324,33 +3815,56 @@ interface AppSidebarProps {
3324
3815
  width?: number;
3325
3816
  /** Šířka sbalené postranní lišty v px. @default 64 */
3326
3817
  collapsedWidth?: number;
3818
+ /**
3819
+ * Vzhled panelu.
3820
+ * - `'edge'` — přilepený k okraji layoutu, jen pravý rámeček (výchozí)
3821
+ * - `'floating'` — plovoucí karta s odsazením, zaoblením a stínem
3822
+ * @default 'edge'
3823
+ */
3824
+ variant?: 'edge' | 'floating';
3825
+ /** Odsazení plovoucího panelu od okrajů v px (`variant="floating"`). @default 16 */
3826
+ floatingOffset?: number;
3827
+ /**
3828
+ * Vykreslí vestavěné tlačítko pro sbalení / rozbalení v patičce panelu.
3829
+ * Volá `onCollapse(!collapsed)`.
3830
+ * @default false
3831
+ */
3832
+ collapsible?: boolean;
3833
+ /** Přístupný popisek tlačítka sbalení. @default 'Sbalit panel' / 'Rozbalit panel' */
3834
+ collapseLabel?: {
3835
+ collapse: string;
3836
+ expand: string;
3837
+ };
3838
+ /** Obsah hlavičky nad navigací (logo). Nescrolluje. */
3839
+ header?: React__default.ReactNode;
3840
+ /** Obsah patičky pod navigací (profil). Nescrolluje. */
3841
+ footer?: React__default.ReactNode;
3327
3842
  /** Další inline styly. */
3328
- style?: React.CSSProperties;
3843
+ style?: React__default.CSSProperties;
3329
3844
  /** Dodatečná CSS třída. */
3330
3845
  className?: string;
3331
3846
  }
3332
3847
  /**
3333
3848
  * Sbaletelný postranní panel pro navigaci aplikace.
3334
3849
  *
3335
- * Používá glass efekt a plynulou animaci šířky. Tlačítko pro sbalení/rozbalení
3336
- * si řeší konzument sám komponenta je plně řízená přes `collapsed` a `onCollapse`.
3850
+ * Používá glass efekt a plynulou animaci šířky. Komponenta je řízená přes
3851
+ * `collapsed` a `onCollapse`; s `collapsible` vykreslí vlastní tlačítko sbalení.
3337
3852
  *
3338
3853
  * @example
3339
3854
  * ```tsx
3340
3855
  * const [collapsed, setCollapsed] = useState(false);
3341
- * <AppSidebar collapsed={collapsed} onCollapse={setCollapsed}>
3342
- * <button onClick={() => setCollapsed(c => !c)}>Toggle</button>
3343
- * <nav>...</nav>
3856
+ * <AppSidebar collapsed={collapsed} onCollapse={setCollapsed} collapsible variant="floating">
3857
+ * <SidebarItem label="Dashboard" icon={<HouseIcon />} collapsed={collapsed} />
3344
3858
  * </AppSidebar>
3345
3859
  * ```
3346
3860
  */
3347
- declare const AppSidebar: React.FC<AppSidebarProps>;
3861
+ declare const AppSidebar: React__default.FC<AppSidebarProps>;
3348
3862
 
3349
- interface SidebarItemProps {
3863
+ interface SidebarItemProps extends Omit<React__default.HTMLAttributes<HTMLElement>, 'onClick' | 'style' | 'className' | 'children'> {
3350
3864
  /** Textový popisek položky. */
3351
3865
  label: string;
3352
3866
  /** Volitelná ikona zobrazená před textem. */
3353
- icon?: React.ReactNode;
3867
+ icon?: React__default.ReactNode;
3354
3868
  /** Zda je položka aktivní (vybraná). @default false */
3355
3869
  active?: boolean;
3356
3870
  /** Zda je skupina výchozně rozbalená. @default false */
@@ -3360,15 +3874,34 @@ interface SidebarItemProps {
3360
3874
  /** Callback při změně rozbalení. */
3361
3875
  onExpandedChange?: (expanded: boolean) => void;
3362
3876
  /** Callback při kliknutí na položku (ne na chevron). */
3363
- onClick?: () => void;
3877
+ onClick?: (e: React__default.MouseEvent<HTMLElement>) => void;
3878
+ /**
3879
+ * URL — položka se vykreslí jako `<a href>` (middle-click, kopírování adresy).
3880
+ * S klientským routerem předejte i `as` (např. Inertia `Link`).
3881
+ */
3882
+ href?: string;
3883
+ /** Komponenta pro vykreslení položky s `href` (Inertia / react-router `Link`). @default 'a' */
3884
+ as?: React__default.ElementType;
3364
3885
  /** Potomci — vnořené SidebarItem komponenty. Přítomnost aktivuje rozbalovací režim. */
3365
- children?: React.ReactNode;
3886
+ children?: React__default.ReactNode;
3366
3887
  /** Zda je sidebar sbalený (jen ikona). @default false */
3367
3888
  collapsed?: boolean;
3889
+ /**
3890
+ * Ve sbaleném režimu zobrazit tooltip s popiskem vpravo od ikony.
3891
+ * @default true
3892
+ */
3893
+ collapsedTooltip?: boolean;
3368
3894
  /** Zakáže interakci. @default false */
3369
3895
  disabled?: boolean;
3896
+ /**
3897
+ * Velikost položky.
3898
+ * - `'sm'` — 13px písmo, výchozí
3899
+ * - `'md'` — 14px písmo, větší odsazení
3900
+ * @default 'sm'
3901
+ */
3902
+ size?: 'sm' | 'md';
3370
3903
  /** Další inline styly. */
3371
- style?: React.CSSProperties;
3904
+ style?: React__default.CSSProperties;
3372
3905
  /** Dodatečná CSS třída. */
3373
3906
  className?: string;
3374
3907
  }
@@ -3376,11 +3909,13 @@ interface SidebarItemProps {
3376
3909
  * Položka navigace pro AppSidebar.
3377
3910
  *
3378
3911
  * Podporuje ikonu, aktivní stav, hover efekt a vnořené položky
3379
- * s animovaným rozbalováním/sbalováním.
3912
+ * s animovaným rozbalováním/sbalováním. Ve sbaleném sidebaru má položka
3913
+ * přístupný název, tooltip a skupina se otevírá jako flyout vpravo.
3380
3914
  *
3381
3915
  * @example
3382
3916
  * ```tsx
3383
3917
  * <SidebarItem label="Dashboard" icon={<HouseIcon size={18} />} active onClick={...} />
3918
+ * <SidebarItem label="Projekty" icon={<FolderIcon size={18} />} href="/projekty" as={Link} />
3384
3919
  *
3385
3920
  * <SidebarItem label="Settings" icon={<GearIcon size={18} />} defaultExpanded>
3386
3921
  * <SidebarItem label="General" onClick={...} />
@@ -3389,21 +3924,21 @@ interface SidebarItemProps {
3389
3924
  * </SidebarItem>
3390
3925
  * ```
3391
3926
  */
3392
- declare const SidebarItem: React.FC<SidebarItemProps>;
3927
+ declare const SidebarItem: React__default.ForwardRefExoticComponent<SidebarItemProps & React__default.RefAttributes<HTMLElement>>;
3393
3928
 
3394
3929
  interface NavbarProps {
3395
3930
  /** Logo nebo název aplikace (vykresleno vlevo). */
3396
- logo?: React.ReactNode;
3931
+ logo?: React__default.ReactNode;
3397
3932
  /** Navigační obsah (vykresleno uprostřed). */
3398
- children?: React.ReactNode;
3933
+ children?: React__default.ReactNode;
3399
3934
  /** Akční prvky – tlačítka, avatar apod. (vykresleno vpravo). */
3400
- actions?: React.ReactNode;
3935
+ actions?: React__default.ReactNode;
3401
3936
  /** Zda je navbar přilepený k hornímu okraji. @default true */
3402
3937
  sticky?: boolean;
3403
3938
  /** Zda použít glass efekt (průhledné pozadí s rozmazáním). @default true */
3404
3939
  glass?: boolean;
3405
3940
  /** Další inline styly. */
3406
- style?: React.CSSProperties;
3941
+ style?: React__default.CSSProperties;
3407
3942
  /** Dodatečná CSS třída. */
3408
3943
  className?: string;
3409
3944
  }
@@ -3423,15 +3958,16 @@ interface NavbarProps {
3423
3958
  * </Navbar>
3424
3959
  * ```
3425
3960
  */
3426
- declare const Navbar: React.FC<NavbarProps>;
3961
+ declare const Navbar: React__default.FC<NavbarProps>;
3427
3962
 
3428
- type ToastVariant = 'info' | 'success' | 'error';
3963
+ type ToastVariant = 'info' | 'success' | 'warning' | 'error';
3429
3964
  interface ToastProps {
3430
3965
  /**
3431
- * Vizuální varianta určující barvu okraje a tón pozadí.
3432
- * - `'info'` — bílý / neutrální okraj, tmavé pozadí
3433
- * - `'success'` — zelený okraj (#00A205), tmavé nazelenalé pozadí
3434
- * - `'error'` červený okraj (#DE0000), tmavé načervenalé pozadí
3966
+ * Vizuální varianta určující barvu rámečku a ikony.
3967
+ * - `'info'` — neutrální
3968
+ * - `'success'` — zelená (#00A205)
3969
+ * - `'warning'` oranžovožlutá (#F5A623), stav „uloženo, ale…"
3970
+ * - `'error'` — červená (#EF3838)
3435
3971
  * @default 'info'
3436
3972
  */
3437
3973
  variant?: ToastVariant;
@@ -3440,14 +3976,14 @@ interface ToastProps {
3440
3976
  */
3441
3977
  title: string;
3442
3978
  /**
3443
- * Volitelný sekundární popis vykreslený pod nadpisem menším písmem.
3979
+ * Volitelný popis vykreslený pod nadpisem menším písmem.
3444
3980
  */
3445
- content?: string;
3981
+ content?: React__default.ReactNode;
3446
3982
  /**
3447
3983
  * Vlastní ikona vykreslená na levé straně.
3448
- * Pokud chybí, použije se vestavěná SVG ikona odpovídající variantě.
3984
+ * Pokud chybí, použije se vestavěná ikona odpovídající variantě.
3449
3985
  */
3450
- icon?: React.ReactNode;
3986
+ icon?: React__default.ReactNode;
3451
3987
  /**
3452
3988
  * Callback volaný při kliknutí na tlačítko zavření (✕).
3453
3989
  * Pokud není zadán, tlačítko zavření se nezobrazí.
@@ -3460,13 +3996,14 @@ interface ToastProps {
3460
3996
  */
3461
3997
  role?: 'alert' | 'status' | 'log';
3462
3998
  /** Další inline styly pro kořenový element. */
3463
- style?: React.CSSProperties;
3999
+ style?: React__default.CSSProperties;
3464
4000
  /** Dodatečná CSS třída pro kořenový element. */
3465
4001
  className?: string;
3466
4002
  }
3467
4003
  /**
3468
- * Notifikace se třemi úrovněmi závažnosti.
3469
- * Vykresluje se s efektem rozmazaného skla, vždy v tmavém režimu.
4004
+ * Kompaktní notifikace se čtyřmi úrovněmi závažnosti.
4005
+ * Glass panel jako dropdowny kitu, varianta určuje barvu rámečku
4006
+ * a ikony v tónovaném boxu.
3470
4007
  *
3471
4008
  * Tlačítko zavření se zobrazí pouze pokud je zadáno `onClose`.
3472
4009
  * Vlastní ikona může nahradit výchozí variantní ikonu přes prop `icon`.
@@ -3474,11 +4011,11 @@ interface ToastProps {
3474
4011
  * @example
3475
4012
  * ```tsx
3476
4013
  * <Toast variant="success" title="Uloženo" content="Změny byly uloženy." onClose={dismiss} />
3477
- * <Toast variant="error" title="Chyba" content="Něco se pokazilo." onClose={dismiss} />
4014
+ * <Toast variant="warning" title="Uloženo, ale nenasazeno" content="Router je nedosažitelný." />
3478
4015
  * <Toast variant="info" title="Upozornění" onClose={dismiss} />
3479
4016
  * ```
3480
4017
  */
3481
- declare const Toast: React.FC<ToastProps>;
4018
+ declare const Toast: React__default.FC<ToastProps>;
3482
4019
 
3483
4020
  type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
3484
4021
  /** Nastavení předávaná do `toast()` při vyvolání notifikace. */
@@ -3490,13 +4027,13 @@ interface ToastOptions {
3490
4027
  variant?: ToastVariant;
3491
4028
  /** Tučný nadpis notifikace. */
3492
4029
  title: string;
3493
- /** Volitelný popis vykreslený pod nadpisem. */
3494
- content?: string;
4030
+ /** Volitelný popis vykreslený pod nadpisem (text nebo ReactNode, např. s odkazem). */
4031
+ content?: React__default.ReactNode;
3495
4032
  /**
3496
4033
  * Vlastní ikona nahrazující vestavěnou variantní ikonu.
3497
4034
  * Libovolný React uzel — SVG, obrázek, komponenta…
3498
4035
  */
3499
- icon?: React.ReactNode;
4036
+ icon?: React__default.ReactNode;
3500
4037
  /**
3501
4038
  * Časový limit automatického zavření v ms.
3502
4039
  * Nastavte na `0` pro trvalou notifikaci, kterou je nutné zavřít ručně.
@@ -3532,7 +4069,7 @@ interface ToastContextValue {
3532
4069
  }
3533
4070
  /** Props pro `<ToasterProvider>`. */
3534
4071
  interface ToasterProviderProps {
3535
- children: React.ReactNode;
4072
+ children: React__default.ReactNode;
3536
4073
  /**
3537
4074
  * Pozice notifikací na obrazovce.
3538
4075
  * @default 'bottom-right'
@@ -3540,7 +4077,7 @@ interface ToasterProviderProps {
3540
4077
  position?: ToastPosition;
3541
4078
  /**
3542
4079
  * Šířka jednotlivé notifikace v px.
3543
- * @default 380
4080
+ * @default 340
3544
4081
  */
3545
4082
  toastWidth?: number;
3546
4083
  /**
@@ -3579,7 +4116,7 @@ interface ToasterProviderProps {
3579
4116
  * </ToasterProvider>
3580
4117
  * ```
3581
4118
  */
3582
- declare const ToasterProvider: React.FC<ToasterProviderProps>;
4119
+ declare const ToasterProvider: React__default.FC<ToasterProviderProps>;
3583
4120
  /**
3584
4121
  * Vrací `{ toast, dismiss }` pro vyvolání a zavření notifikací.
3585
4122
  * Musí být volán uvnitř stromu `<ToasterProvider>`.
@@ -3618,12 +4155,12 @@ interface AlertProps {
3618
4155
  /**
3619
4156
  * Volitelný popis vykreslený pod nadpisem menším písmem.
3620
4157
  */
3621
- children?: React.ReactNode;
4158
+ children?: React__default.ReactNode;
3622
4159
  /**
3623
4160
  * Vlastní ikona vykreslená na levé straně.
3624
4161
  * Pokud chybí, použije se vestavěná SVG ikona odpovídající variantě.
3625
4162
  */
3626
- icon?: React.ReactNode;
4163
+ icon?: React__default.ReactNode;
3627
4164
  /**
3628
4165
  * Zobrazí tlačítko zavření (✕).
3629
4166
  * @default false
@@ -3636,7 +4173,7 @@ interface AlertProps {
3636
4173
  /** Dodatečná CSS třída pro kořenový element. */
3637
4174
  className?: string;
3638
4175
  /** Další inline styly pro kořenový element. */
3639
- style?: React.CSSProperties;
4176
+ style?: React__default.CSSProperties;
3640
4177
  }
3641
4178
  /**
3642
4179
  * Statický banner pro zobrazení důležitých informací, varování nebo chyb.
@@ -3653,7 +4190,7 @@ interface AlertProps {
3653
4190
  * <Alert variant="warning" title="Pozor">Tato akce je nevratná.</Alert>
3654
4191
  * ```
3655
4192
  */
3656
- declare const Alert: React.FC<AlertProps>;
4193
+ declare const Alert: React__default.FC<AlertProps>;
3657
4194
 
3658
4195
  type BannerVariant = 'info' | 'success' | 'warning' | 'error';
3659
4196
  type BannerPosition = 'top' | 'bottom';
@@ -3663,15 +4200,15 @@ interface BannerProps {
3663
4200
  /** Tučný titulek. */
3664
4201
  title?: string;
3665
4202
  /** Obsah banneru. */
3666
- children?: React.ReactNode;
4203
+ children?: React__default.ReactNode;
3667
4204
  /** Zobrazí zavírací tlačítko. @default false */
3668
4205
  closable?: boolean;
3669
4206
  /** Callback při zavření. */
3670
4207
  onClose?: () => void;
3671
4208
  /** Vlastní ikona. Pokud není zadána, použije se výchozí dle varianty. */
3672
- icon?: React.ReactNode;
4209
+ icon?: React__default.ReactNode;
3673
4210
  /** Akční tlačítka na pravé straně. */
3674
- actions?: React.ReactNode;
4211
+ actions?: React__default.ReactNode;
3675
4212
  /** Persistentní dismiss přes localStorage key. */
3676
4213
  dismissKey?: string;
3677
4214
  /** Pozice akcentního proužku. @default 'top' */
@@ -3679,7 +4216,7 @@ interface BannerProps {
3679
4216
  /** Přilepí banner na pozici. @default false */
3680
4217
  sticky?: boolean;
3681
4218
  /** Další inline styly. */
3682
- style?: React.CSSProperties;
4219
+ style?: React__default.CSSProperties;
3683
4220
  /** Dodatečná CSS třída. */
3684
4221
  className?: string;
3685
4222
  }
@@ -3696,7 +4233,7 @@ interface BannerProps {
3696
4233
  * </Banner>
3697
4234
  * ```
3698
4235
  */
3699
- declare const Banner: React.FC<BannerProps>;
4236
+ declare const Banner: React__default.FC<BannerProps>;
3700
4237
 
3701
4238
  type NotificationVariant = 'info' | 'success' | 'warning' | 'error';
3702
4239
  interface NotificationProps {
@@ -3705,17 +4242,17 @@ interface NotificationProps {
3705
4242
  /** Titulek notifikace. */
3706
4243
  title: string;
3707
4244
  /** Obsah / popis notifikace. */
3708
- children?: React.ReactNode;
4245
+ children?: React__default.ReactNode;
3709
4246
  /** Zobrazí tlačítko zavření. @default false */
3710
4247
  closable?: boolean;
3711
4248
  /** Voláno při zavření notifikace. */
3712
4249
  onClose?: () => void;
3713
4250
  /** Vlastní ikona (nahradí výchozí ikonu varianty). */
3714
- icon?: React.ReactNode;
4251
+ icon?: React__default.ReactNode;
3715
4252
  /** Akční prvek zobrazený na pravé straně (tlačítko apod.). */
3716
- action?: React.ReactNode;
4253
+ action?: React__default.ReactNode;
3717
4254
  /** Další inline styly. */
3718
- style?: React.CSSProperties;
4255
+ style?: React__default.CSSProperties;
3719
4256
  /** Dodatečná CSS třída. */
3720
4257
  className?: string;
3721
4258
  }
@@ -3740,7 +4277,7 @@ interface NotificationProps {
3740
4277
  * </Notification>
3741
4278
  * ```
3742
4279
  */
3743
- declare const Notification: React.FC<NotificationProps>;
4280
+ declare const Notification: React__default.FC<NotificationProps>;
3744
4281
 
3745
4282
  type ProgressBarSize = 'xs' | 'sm' | 'md';
3746
4283
  type ProgressVariant = 'default' | 'success' | 'warning' | 'danger';
@@ -3772,7 +4309,7 @@ interface ProgressBarProps {
3772
4309
  /** Dodatečná CSS třída. */
3773
4310
  className?: string;
3774
4311
  /** Další inline styly. */
3775
- style?: React.CSSProperties;
4312
+ style?: React__default.CSSProperties;
3776
4313
  }
3777
4314
  interface ProgressCircleProps {
3778
4315
  /** Aktuální hodnota. */
@@ -3790,13 +4327,13 @@ interface ProgressCircleProps {
3790
4327
  /** Zobrazí "X%" uprostřed. @default false */
3791
4328
  showValue?: boolean;
3792
4329
  /** Custom render obsahu uprostřed (override showValue). */
3793
- valueLabel?: (value: number, max: number) => React.ReactNode;
4330
+ valueLabel?: (value: number, max: number) => React__default.ReactNode;
3794
4331
  /** Volitelný popisek pod kruhem. */
3795
4332
  label?: string;
3796
4333
  /** Dodatečná CSS třída. */
3797
4334
  className?: string;
3798
4335
  /** Další inline styly. */
3799
- style?: React.CSSProperties;
4336
+ style?: React__default.CSSProperties;
3800
4337
  }
3801
4338
  /**
3802
4339
  * Horizontální progress indikátor.
@@ -3810,7 +4347,7 @@ interface ProgressCircleProps {
3810
4347
  * <ProgressBar indeterminate />
3811
4348
  * ```
3812
4349
  */
3813
- declare const ProgressBar: React.FC<ProgressBarProps>;
4350
+ declare const ProgressBar: React__default.FC<ProgressBarProps>;
3814
4351
  /**
3815
4352
  * Kruhový progress indikátor (SVG).
3816
4353
  *
@@ -3822,7 +4359,7 @@ declare const ProgressBar: React.FC<ProgressBarProps>;
3822
4359
  * <ProgressCircle value={45} max={60} variant="warning" valueLabel={(v, m) => `${v}/${m}`} />
3823
4360
  * ```
3824
4361
  */
3825
- declare const ProgressCircle: React.FC<ProgressCircleProps>;
4362
+ declare const ProgressCircle: React__default.FC<ProgressCircleProps>;
3826
4363
 
3827
4364
  type SpinnerSize = 'sm' | 'md' | 'lg';
3828
4365
  interface SpinnerProps {
@@ -3847,7 +4384,7 @@ interface SpinnerProps {
3847
4384
  /** Dodatečná CSS třída pro kořenový element. */
3848
4385
  className?: string;
3849
4386
  /** Další inline styly pro kořenový element. */
3850
- style?: React.CSSProperties;
4387
+ style?: React__default.CSSProperties;
3851
4388
  }
3852
4389
  /**
3853
4390
  * Animovaný spinner (indikátor načítání) využívající requestAnimationFrame.
@@ -3863,8 +4400,18 @@ interface SpinnerProps {
3863
4400
  * <Spinner size={32} label="Ukládání dat" />
3864
4401
  * ```
3865
4402
  */
3866
- declare const Spinner: React.FC<SpinnerProps>;
4403
+ declare const Spinner: React__default.FC<SpinnerProps>;
3867
4404
 
4405
+ /** Kontext předaný funkci `content` — umožňuje řídit dialog z vlastního obsahu. */
4406
+ interface ConfirmContentContext {
4407
+ /** Potvrdí dialog (stejné jako klik na potvrzovací tlačítko). */
4408
+ confirm: () => void;
4409
+ /** Zruší dialog. */
4410
+ cancel: () => void;
4411
+ /** Zapne / vypne potvrzovací tlačítko (např. type-to-confirm). */
4412
+ setConfirmDisabled: (disabled: boolean) => void;
4413
+ }
4414
+ type ConfirmContent = React__default.ReactNode | ((ctx: ConfirmContentContext) => React__default.ReactNode);
3868
4415
  interface ConfirmDialogProps {
3869
4416
  /** Řídí zobrazení potvrzovacího dialogu. */
3870
4417
  open: boolean;
@@ -3874,8 +4421,15 @@ interface ConfirmDialogProps {
3874
4421
  onCancel: () => void;
3875
4422
  /** Titulek dialogu. */
3876
4423
  title: string;
3877
- /** Volitelný popis akce. */
3878
- description?: string;
4424
+ /** Volitelný popis akce. Text nebo ReactNode (seznam položek, zvýraznění…). */
4425
+ description?: React__default.ReactNode;
4426
+ /**
4427
+ * Vlastní obsah pod popisem (input pro type-to-confirm, checkbox…).
4428
+ * Funkce dostane `{ confirm, cancel, setConfirmDisabled }`.
4429
+ */
4430
+ content?: ConfirmContent;
4431
+ /** Zakáže potvrzovací tlačítko (např. dokud uživatel nepotvrdí vstup). @default false */
4432
+ confirmDisabled?: boolean;
3879
4433
  /** Text potvrzovacího tlačítka. @default 'Potvrdit' */
3880
4434
  confirmLabel?: string;
3881
4435
  /** Text zrušovacího tlačítka. @default 'Zrušit' */
@@ -3884,8 +4438,16 @@ interface ConfirmDialogProps {
3884
4438
  variant?: 'default' | 'danger';
3885
4439
  /** Stav načítání potvrzovacího tlačítka. @default false */
3886
4440
  loading?: boolean;
4441
+ /** z-index overlaye. Výchozí se počítá automaticky nad nadřazený overlay (Drawer, Modal). */
4442
+ zIndex?: number;
4443
+ /** Zavře dialog kliknutím na překryvnou vrstvu. @default true */
4444
+ closeOnOverlay?: boolean;
4445
+ /** Zavře dialog stisknutím klávesy Escape. @default true */
4446
+ closeOnEscape?: boolean;
4447
+ /** Umožní zavření dialogu jinak než tlačítky. @default true */
4448
+ dismissable?: boolean;
3887
4449
  /** Další inline styly. */
3888
- style?: React.CSSProperties;
4450
+ style?: React__default.CSSProperties;
3889
4451
  /** Dodatečná CSS třída. */
3890
4452
  className?: string;
3891
4453
  }
@@ -3893,7 +4455,7 @@ interface ConfirmDialogProps {
3893
4455
  * Předpřipravený modální dialog pro potvrzení akce.
3894
4456
  *
3895
4457
  * Interně používá komponentu `Modal`. Podporuje standardní a danger variantu
3896
- * s volitelným stavem načítání.
4458
+ * s volitelným stavem načítání. Otevřený z Draweru / Modalu se vždy vykreslí nad ním.
3897
4459
  *
3898
4460
  * @example
3899
4461
  * ```tsx
@@ -3905,21 +4467,41 @@ interface ConfirmDialogProps {
3905
4467
  * description="Tato akce je nevratná."
3906
4468
  * variant="danger"
3907
4469
  * />
4470
+ *
4471
+ * // Type-to-confirm
4472
+ * <ConfirmDialog
4473
+ * open={open}
4474
+ * title="Smazat projekt?"
4475
+ * confirmDisabled
4476
+ * content={({ setConfirmDisabled }) => (
4477
+ * <Input placeholder={slug} onChange={(e) => setConfirmDisabled(e.target.value !== slug)} />
4478
+ * )}
4479
+ * …
4480
+ * />
3908
4481
  * ```
3909
4482
  */
3910
- declare const ConfirmDialog: React.FC<ConfirmDialogProps>;
4483
+ declare const ConfirmDialog: React__default.FC<ConfirmDialogProps>;
3911
4484
  /** Nastavení předaná do imperativního `confirm()`. */
3912
4485
  interface ConfirmOptions {
3913
4486
  /** Titulek dialogu. */
3914
4487
  title: string;
3915
- /** Volitelný popis akce. */
3916
- description?: string;
4488
+ /** Volitelný popis akce. Text nebo ReactNode. */
4489
+ description?: React__default.ReactNode;
4490
+ /**
4491
+ * Vlastní obsah pod popisem. Funkce dostane `{ confirm, cancel, setConfirmDisabled }`,
4492
+ * takže lze potvrzení podmínit vstupem (type-to-confirm).
4493
+ */
4494
+ content?: ConfirmContent;
4495
+ /** Počáteční stav potvrzovacího tlačítka. @default false */
4496
+ confirmDisabled?: boolean;
3917
4497
  /** Text potvrzovacího tlačítka. @default 'Potvrdit' */
3918
4498
  confirmLabel?: string;
3919
4499
  /** Text zrušovacího tlačítka. @default 'Zrušit' */
3920
4500
  cancelLabel?: string;
3921
4501
  /** Varianta dialogu – 'danger' zvýrazní potvrzovací tlačítko červeně. @default 'default' */
3922
4502
  variant?: 'default' | 'danger';
4503
+ /** Umožní zavření dialogu overlay klikem / Escape (= zrušení). @default true */
4504
+ dismissable?: boolean;
3923
4505
  }
3924
4506
  /**
3925
4507
  * Poskytuje imperativní `confirm()` přes hook `useConfirm()`.
@@ -3933,8 +4515,8 @@ interface ConfirmOptions {
3933
4515
  * </ConfirmProvider>
3934
4516
  * ```
3935
4517
  */
3936
- declare const ConfirmProvider: React.FC<{
3937
- children: React.ReactNode;
4518
+ declare const ConfirmProvider: React__default.FC<{
4519
+ children: React__default.ReactNode;
3938
4520
  }>;
3939
4521
  /**
3940
4522
  * Vrací funkci `confirm(options): Promise<boolean>` pro imperativní potvrzení.
@@ -3955,7 +4537,7 @@ interface CopyButtonProps {
3955
4537
  /** Text ke zkopírování do schránky. */
3956
4538
  text: string;
3957
4539
  /** Vlastní obsah tlačítka (nahrazuje výchozí ikonu/text). */
3958
- children?: React.ReactNode;
4540
+ children?: React__default.ReactNode;
3959
4541
  /** Velikost tlačítka. @default 'md' */
3960
4542
  size?: 'sm' | 'md' | 'lg';
3961
4543
  /** Varianta zobrazení. @default 'icon' */
@@ -3967,7 +4549,7 @@ interface CopyButtonProps {
3967
4549
  /** Callback volaný po úspěšném zkopírování do schránky. */
3968
4550
  onCopy?: () => void;
3969
4551
  /** Další inline styly. */
3970
- style?: React.CSSProperties;
4552
+ style?: React__default.CSSProperties;
3971
4553
  /** Dodatečná CSS třída. */
3972
4554
  className?: string;
3973
4555
  }
@@ -3984,7 +4566,7 @@ interface CopyButtonProps {
3984
4566
  * <CopyButton text={code} />
3985
4567
  * ```
3986
4568
  */
3987
- declare const CopyButton: React.FC<CopyButtonProps>;
4569
+ declare const CopyButton: React__default.FC<CopyButtonProps>;
3988
4570
 
3989
4571
  type DividerOrientation = 'horizontal' | 'vertical';
3990
4572
  interface DividerProps {
@@ -4003,7 +4585,7 @@ interface DividerProps {
4003
4585
  /** Dodatečná CSS třída pro kořenový element. */
4004
4586
  className?: string;
4005
4587
  /** Další inline styly pro kořenový element. */
4006
- style?: React.CSSProperties;
4588
+ style?: React__default.CSSProperties;
4007
4589
  }
4008
4590
  /**
4009
4591
  * Vizuální oddělovač obsahu — horizontální nebo vertikální čára.
@@ -4018,7 +4600,7 @@ interface DividerProps {
4018
4600
  * <Divider orientation="vertical" />
4019
4601
  * ```
4020
4602
  */
4021
- declare const Divider: React.FC<DividerProps>;
4603
+ declare const Divider: React__default.FC<DividerProps>;
4022
4604
 
4023
4605
  type StackDirection = 'row' | 'column';
4024
4606
  type StackAlign = 'start' | 'center' | 'end' | 'stretch';
@@ -4057,11 +4639,11 @@ interface StackProps {
4057
4639
  /**
4058
4640
  * Potomci rozmístění uvnitř stacku.
4059
4641
  */
4060
- children?: React.ReactNode;
4642
+ children?: React__default.ReactNode;
4061
4643
  /** Dodatečná CSS třída pro kořenový element. */
4062
4644
  className?: string;
4063
4645
  /** Další inline styly pro kořenový element. */
4064
- style?: React.CSSProperties;
4646
+ style?: React__default.CSSProperties;
4065
4647
  }
4066
4648
  /**
4067
4649
  * Jednoduchý layout helper využívající CSS flexbox.
@@ -4082,7 +4664,7 @@ interface StackProps {
4082
4664
  * </Stack>
4083
4665
  * ```
4084
4666
  */
4085
- declare const Stack: React.FC<StackProps>;
4667
+ declare const Stack: React__default.FC<StackProps>;
4086
4668
 
4087
4669
  type ContainerMaxWidth = 'sm' | 'md' | 'lg' | 'xl';
4088
4670
  interface ContainerProps {
@@ -4109,11 +4691,11 @@ interface ContainerProps {
4109
4691
  /**
4110
4692
  * Potomci vykreslení uvnitř kontejneru.
4111
4693
  */
4112
- children?: React.ReactNode;
4694
+ children?: React__default.ReactNode;
4113
4695
  /** Dodatečná CSS třída pro kořenový element. */
4114
4696
  className?: string;
4115
4697
  /** Další inline styly pro kořenový element. */
4116
- style?: React.CSSProperties;
4698
+ style?: React__default.CSSProperties;
4117
4699
  }
4118
4700
  /**
4119
4701
  * Layout kontejner s maximální šířkou a volitelným centrováním.
@@ -4134,15 +4716,16 @@ interface ContainerProps {
4134
4716
  * </Container>
4135
4717
  * ```
4136
4718
  */
4137
- declare const Container: React.FC<ContainerProps>;
4719
+ declare const Container: React__default.FC<ContainerProps>;
4138
4720
 
4721
+ type DragListSize = 'sm' | 'md';
4139
4722
  interface DragListItem {
4140
4723
  /** Unikátní identifikátor položky. */
4141
4724
  id: string;
4142
4725
  /** Textový popisek položky. */
4143
4726
  label: string;
4144
4727
  /** Volitelná ikona zobrazená před popiskem. */
4145
- icon?: React.ReactNode;
4728
+ icon?: React__default.ReactNode;
4146
4729
  /** Potomci položky (pro stromový režim). */
4147
4730
  children?: DragListItem[];
4148
4731
  /** Zda je položka rozbalena (pro stromový režim). @default false */
@@ -4154,8 +4737,8 @@ interface DragListItem {
4154
4737
  interface DragHandleProps {
4155
4738
  /** Spread na element, který má sloužit jako drag handle. */
4156
4739
  handleProps: {
4157
- onMouseDown: (e: React.MouseEvent) => void;
4158
- style: React.CSSProperties;
4740
+ onMouseDown: (e: React__default.MouseEvent) => void;
4741
+ style: React__default.CSSProperties;
4159
4742
  'aria-label': string;
4160
4743
  };
4161
4744
  /** Zda je položka právě přetahována. */
@@ -4174,6 +4757,12 @@ interface DragListProps {
4174
4757
  items: DragListItem[];
4175
4758
  /** Callback volaný při změně pořadí položek. */
4176
4759
  onReorder: (items: DragListItem[]) => void;
4760
+ /**
4761
+ * Voláno při rozbalení / sbalení uzlu (chevron i auto-expand při přetahování)
4762
+ * s celým stromem s přepnutým `expanded`. Pokud je zadáno, `onReorder` se pro
4763
+ * rozbalení nevolá, takže konzument odliší změnu dat od změny zobrazení.
4764
+ */
4765
+ onExpandedChange?: (id: string, expanded: boolean, items: DragListItem[]) => void;
4177
4766
  /**
4178
4767
  * Vlastní vykreslovací funkce pro položku.
4179
4768
  * Přijímá `item`, `dragHandleProps` a další metadata.
@@ -4189,7 +4778,7 @@ interface DragListProps {
4189
4778
  * )}
4190
4779
  * ```
4191
4780
  */
4192
- renderItem?: (item: DragListItem, props: DragHandleProps) => React.ReactNode;
4781
+ renderItem?: (item: DragListItem, props: DragHandleProps) => React__default.ReactNode;
4193
4782
  /** Povolí vnořování položek (stromový režim). @default false */
4194
4783
  allowNesting?: boolean;
4195
4784
  /** Maximální hloubka vnoření. @default 3 */
@@ -4200,10 +4789,16 @@ interface DragListProps {
4200
4789
  * @default 'full'
4201
4790
  */
4202
4791
  dragMode?: 'full' | 'handle';
4792
+ /**
4793
+ * Hustota řádků. `'sm'` = kompaktní řádky (36px, menší mezery a odsazení)
4794
+ * pro dlouhé osnovy, `'md'` = výchozí vzhled. Chování přetahování se nemění.
4795
+ * @default 'md'
4796
+ */
4797
+ size?: DragListSize;
4203
4798
  /** Dodatečná CSS třída. */
4204
4799
  className?: string;
4205
4800
  /** Další inline styly. */
4206
- style?: React.CSSProperties;
4801
+ style?: React__default.CSSProperties;
4207
4802
  }
4208
4803
  /**
4209
4804
  * Přetahovací seznam dle SM-UI design systému.
@@ -4227,7 +4822,7 @@ interface DragListProps {
4227
4822
  * />
4228
4823
  * ```
4229
4824
  */
4230
- declare const DragList: React.FC<DragListProps>;
4825
+ declare const DragList: React__default.FC<DragListProps>;
4231
4826
 
4232
4827
  interface SortableListProps<T> {
4233
4828
  /** Datové položky. */
@@ -4235,7 +4830,7 @@ interface SortableListProps<T> {
4235
4830
  /** Stable key pro React reconciliation + drag tracking. */
4236
4831
  keyExtractor: (item: T) => string | number;
4237
4832
  /** Render každé položky. dragHandle je DOM node co lze umístit kdekoli. */
4238
- renderItem: (item: T, dragHandle: React.ReactNode) => React.ReactNode;
4833
+ renderItem: (item: T, dragHandle: React__default.ReactNode) => React__default.ReactNode;
4239
4834
  /** Po dokončení dragu, nové pořadí celého arraye. */
4240
4835
  onReorder: (newOrder: T[]) => void;
4241
4836
  /** Osa řazení. @default 'vertical' */
@@ -4247,7 +4842,7 @@ interface SortableListProps<T> {
4247
4842
  /** Mezera mezi položkami. */
4248
4843
  gap?: number | string;
4249
4844
  /** Další inline styly. */
4250
- style?: React.CSSProperties;
4845
+ style?: React__default.CSSProperties;
4251
4846
  /** Dodatečná CSS třída. */
4252
4847
  className?: string;
4253
4848
  }
@@ -4279,7 +4874,7 @@ interface SplitterProps {
4279
4874
  /** Směr rozdělení. horizontal = vertikální separátor. @default 'horizontal' */
4280
4875
  orientation?: 'horizontal' | 'vertical';
4281
4876
  /** Dva nebo více panelů. */
4282
- children: React.ReactNode[];
4877
+ children: React__default.ReactNode[];
4283
4878
  /** Iniciální velikosti v procentech. @default rovnoměrně */
4284
4879
  defaultSizes?: number[];
4285
4880
  /** Min velikost per panel v px. */
@@ -4295,7 +4890,7 @@ interface SplitterProps {
4295
4890
  /** Vypne resize. @default false */
4296
4891
  disabled?: boolean;
4297
4892
  /** Další inline styly. */
4298
- style?: React.CSSProperties;
4893
+ style?: React__default.CSSProperties;
4299
4894
  /** Dodatečná CSS třída. */
4300
4895
  className?: string;
4301
4896
  }
@@ -4313,14 +4908,309 @@ interface SplitterProps {
4313
4908
  * </Splitter>
4314
4909
  * ```
4315
4910
  */
4316
- declare const Splitter: React.FC<SplitterProps>;
4911
+ declare const Splitter: React__default.FC<SplitterProps>;
4317
4912
 
4318
4913
  type Theme = 'light' | 'dark';
4319
4914
  /**
4320
4915
  * Zjistí aktuální téma aplikace.
4321
4916
  * Výchozí je 'light'. Pokud je na html/body nastaven `data-theme`, použije se.
4322
4917
  * Jinak funguje fallback na systémové preference (prefers-color-scheme).
4918
+ *
4919
+ * Hodnota je správná už při prvním vykreslení (žádné bliknutí světlého motivu)
4920
+ * a hook funguje i bez `matchMedia` (jsdom, SSR).
4323
4921
  */
4324
4922
  declare const useTheme: () => Theme;
4325
4923
 
4326
- export { Accordion, AccordionItem, type AccordionItemProps, type AccordionProps, Alert, type AlertProps, type AlertVariant, AppSidebar, type AppSidebarProps, AreaChart, Avatar, type AvatarProps, type AvatarSize, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, type BadgeVariant, Banner, type BannerPosition, type BannerProps, type BannerVariant, BarChart, type BarChartProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonAsAnchorProps, type ButtonAsButtonProps, type ButtonIconPosition, type ButtonProps, type ButtonSize, type ButtonVariant, CHART_PALETTE, Calendar, type CalendarEvent, type CalendarProps, Card, type CardProps, type ChartSeries, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, type CheckboxSize, ColorPicker, type ColorPickerProps, Combobox, type ComboboxOption, type ComboboxProps, type ComboboxSize, type CommandGroup, type CommandItem, CommandMenu, type CommandMenuProps, ConfirmDialog, type ConfirmDialogProps, type ConfirmOptions, ConfirmProvider, Container, type ContainerMaxWidth, type ContainerProps, CopyButton, type CopyButtonProps, type Country, type CropArea, type CropShape, DataGrid, type DataGridColumn, type DataGridProps, DataList, type DataListItem, type DataListProps, DatePicker, DatePickerGroup, type DatePickerGroupProps, type DatePickerProps, type DatePickerSize, Divider, type DividerOrientation, type DividerProps, DonutChart, type DragHandleProps, DragList, type DragListItem, type DragListProps, Drawer, type DrawerProps, DropdownMenu, type DropdownMenuItem, type DropdownMenuProps, EmptyState, type EmptyStatePreset, type EmptyStateProps, FileUpload, type FileUploadProps, FormField, type FormFieldProps, FormWizard, type FormWizardProps, type FormWizardStep, IconButton, type IconButtonProps, ImageCropper, type ImageCropperProps, Input, InputGroup, type InputGroupProps, type InputProps, type InputSize, type LegendPosition, LineChart, type LineChartProps, Link, type LinkProps, type LinkVariant, MobileDataCard, type MobileDataCardColumn, type MobileDataCardProps, Modal, type ModalProps, Navbar, type NavbarProps, Notification, type NotificationProps, type NotificationVariant, NumberInput, type NumberInputProps, type NumberInputSize, type NumberInputVariant, OTPInput, type OTPInputProps, Pagination, type PaginationProps, PhoneInput, type PhoneInputProps, type PhoneInputSize, PieChart, type PieChartProps, type PieDatum, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, type ProgressBarSize, ProgressCircle, type ProgressCircleProps, type ProgressThreshold, type ProgressVariant, Radio, RadioGroup, type RadioGroupOption, type RadioGroupProps, type RadioProps, type RadioSize, Rating, type RatingProps, type RatingSize, SegmentedControl, type SegmentedControlItem, type SegmentedControlProps, type SegmentedControlSize, Select, SelectGroup, type SelectGroupProps, type SelectOption, type SelectProps, Sheet, type SheetProps, SidebarItem, type SidebarItemProps, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderSize, SortableList, type SortableListProps, Sparkline, type SparklineProps, Spinner, type SpinnerProps, type SpinnerSize, Splitter, type SplitterProps, Spotlight, type SpotlightItem, type SpotlightProps, Stack, type StackAlign, type StackDirection, type StackJustify, type StackProps, Stat, type StatProps, StatusBadge, type StatusBadgeProps, type StatusBadgeStatus, type StepItem, Stepper, type StepperProps, Switch, type SwitchProps, type SwitchSize, Tab, TabPanel, type TabPanelProps, type TabProps, Table, type TableColumn, type TableProps, Tabs, type TabsProps, Tag, TagItem, type TagItemProps, type TagProps, Textarea, type TextareaProps, type TextareaResize, type TextareaSize, type Theme, Timeline, type TimelineItem, type TimelineProps, Toast, type ToastContextValue, type ToastOptions, type ToastPosition, type ToastProps, type ToastVariant, ToasterProvider, type ToasterProviderProps, Tooltip, type TooltipProps, Tree, type TreeNode, type TreeProps, type UploadedFile, useConfirm, useTheme, useToast };
4924
+ type OverlayKind = 'modal' | 'popover';
4925
+ /**
4926
+ * Je `target` uvnitř overlaye `id` nebo uvnitř kteréhokoli overlaye,
4927
+ * který je jeho potomkem (portál Selectu v Popoveru apod.)?
4928
+ */
4929
+ declare function isInsideOverlayTree(id: string, target: EventTarget | null): boolean;
4930
+ interface OverlayContextValue {
4931
+ id: string;
4932
+ zIndex: number;
4933
+ }
4934
+ declare const OverlayContext: React.Context<OverlayContextValue | null>;
4935
+ /** Nejbližší nadřazený kit overlay (nebo `null` mimo overlay). */
4936
+ declare const useOverlayContext: () => OverlayContextValue | null;
4937
+ interface UseOverlayOptions {
4938
+ /** Zda je overlay právě otevřený (registrovaný ve stacku). */
4939
+ open: boolean;
4940
+ /** `'modal'` = Modal / Drawer / Sheet / Spotlight, `'popover'` = plovoucí prvky. */
4941
+ kind: OverlayKind;
4942
+ /**
4943
+ * Voláno při Escape, když je tento overlay nejvyšší. Předejte prázdnou
4944
+ * funkci, pokud má overlay Escape pohltit bez zavření.
4945
+ */
4946
+ onEscape?: () => void;
4947
+ /** DOM uzly, které se počítají jako "uvnitř" overlaye (trigger + panel). */
4948
+ getNodes?: () => (Element | null | undefined)[];
4949
+ /** Explicitní z-index; přepíše automatický výpočet. */
4950
+ zIndex?: number;
4951
+ /**
4952
+ * Pasivní vrstva (Tooltip): dostane z-index nad rodiče, ale nepočítá se do
4953
+ * `useOverlayState()` a nepohltí Escape.
4954
+ * @default false
4955
+ */
4956
+ passive?: boolean;
4957
+ }
4958
+ interface UseOverlayResult {
4959
+ /** Identifikátor overlaye. */
4960
+ id: string;
4961
+ /** Vypočtený z-index (nad rodičem, nad vším otevřeným u modálních). */
4962
+ zIndex: number;
4963
+ /** Hodnota pro `<OverlayContext.Provider>` kolem obsahu overlaye. */
4964
+ contextValue: OverlayContextValue;
4965
+ /** Je `target` uvnitř tohoto overlaye nebo jeho potomků? */
4966
+ contains: (target: EventTarget | null) => boolean;
4967
+ }
4968
+ /**
4969
+ * Registruje overlay do sdíleného stacku. Použitelné i pro vlastní vrstvy
4970
+ * konzumenta (např. průvodce nad modalem), aby Escape nezavřel kit dialog pod ní.
4971
+ *
4972
+ * @example
4973
+ * ```tsx
4974
+ * const { zIndex, contextValue } = useOverlay({ open, kind: 'modal', onEscape: onClose });
4975
+ * return open ? createPortal(
4976
+ * <OverlayContext.Provider value={contextValue}>
4977
+ * <div style={{ position: 'fixed', inset: 0, zIndex }}>…</div>
4978
+ * </OverlayContext.Provider>, document.body) : null;
4979
+ * ```
4980
+ */
4981
+ declare function useOverlay({ open, kind, onEscape, getNodes, zIndex: explicitZ, passive }: UseOverlayOptions): UseOverlayResult;
4982
+ interface OverlayState {
4983
+ /** Je otevřený alespoň jeden kit overlay? */
4984
+ open: boolean;
4985
+ /** Počet otevřených overlayů. */
4986
+ count: number;
4987
+ /** Druh nejvyššího overlaye. */
4988
+ topKind: OverlayKind | null;
4989
+ }
4990
+ /**
4991
+ * Stav sdíleného overlay stacku. Hodí se pro vypnutí globálních klávesových
4992
+ * zkratek, dokud je otevřený modal / dropdown.
4993
+ *
4994
+ * @example
4995
+ * ```tsx
4996
+ * const { open } = useOverlayState();
4997
+ * useHotkey('n', createTask, { enabled: !open });
4998
+ * ```
4999
+ */
5000
+ declare function useOverlayState(): OverlayState;
5001
+
5002
+ /**
5003
+ * Vrací `true`, pokud má uživatel v systému zapnuté omezení animací
5004
+ * (`prefers-reduced-motion: reduce`). Kit pak animace overlayů vynechá.
5005
+ */
5006
+ declare const useReducedMotion: () => boolean;
5007
+
5008
+ declare const colors: {
5009
+ readonly primary: "#FC4F00";
5010
+ readonly primaryHover: "#FF6D2A";
5011
+ readonly primaryAlpha: "rgba(246,84,14,0.8)";
5012
+ readonly error: "#EF3838";
5013
+ readonly success: "#00A205";
5014
+ readonly info: "#2D7FF9";
5015
+ readonly warning: "#F5A623";
5016
+ };
5017
+ declare const themeTokens: {
5018
+ readonly dark: {
5019
+ readonly background: "#1a1a1a";
5020
+ readonly surface: "rgba(24,24,24,0.95)";
5021
+ readonly surfaceGlass: "rgba(24,24,24,0.8)";
5022
+ readonly panelBg: "rgba(24,24,24,0.65)";
5023
+ readonly panelBorder: "rgba(255,255,255,0.1)";
5024
+ readonly inputBg: "rgba(3,3,3,0.75)";
5025
+ readonly inputBorder: "rgba(255,255,255,0.3)";
5026
+ readonly text: "#ffffff";
5027
+ readonly textSecondary: "#eaeaea";
5028
+ readonly textMuted: "#888888";
5029
+ readonly placeholder: "#ACACAC";
5030
+ readonly border: "rgba(255,255,255,0.1)";
5031
+ readonly divider: "rgba(255,255,255,0.08)";
5032
+ readonly hover: "rgba(255,255,255,0.06)";
5033
+ readonly overlay: "rgba(0,0,0,0.4)";
5034
+ };
5035
+ readonly light: {
5036
+ readonly background: "#ffffff";
5037
+ readonly surface: "rgba(255,255,255,0.95)";
5038
+ readonly surfaceGlass: "rgba(255,255,255,0.8)";
5039
+ readonly panelBg: "rgba(255,255,255,0.65)";
5040
+ readonly panelBorder: "rgba(0,0,0,0.08)";
5041
+ readonly inputBg: "rgba(255,255,255,0.85)";
5042
+ readonly inputBorder: "rgba(0,0,0,0.2)";
5043
+ readonly text: "#1a1a1a";
5044
+ readonly textSecondary: "#333333";
5045
+ readonly textMuted: "#999999";
5046
+ readonly placeholder: "#888888";
5047
+ readonly border: "rgba(0,0,0,0.08)";
5048
+ readonly divider: "rgba(0,0,0,0.06)";
5049
+ readonly hover: "rgba(0,0,0,0.04)";
5050
+ readonly overlay: "rgba(0,0,0,0.18)";
5051
+ };
5052
+ };
5053
+ declare const glass: {
5054
+ /** Dropdowny, popovery, tooltipy. */
5055
+ readonly blur: "blur(20px)";
5056
+ /** Modal, Drawer, Sheet, Spotlight (panely). */
5057
+ readonly panelBlur: "blur(32px) saturate(1.4)";
5058
+ /** Overlay pod panelem. */
5059
+ readonly backdropBlur: "blur(8px)";
5060
+ };
5061
+ declare const shadows: {
5062
+ readonly dark: {
5063
+ readonly elevated: "0 12px 40px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.04) inset";
5064
+ readonly high: "0 24px 60px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.04) inset";
5065
+ };
5066
+ readonly light: {
5067
+ readonly elevated: "0 12px 40px rgba(0,0,0,0.12), 0 0 0 1px rgba(0,0,0,0.03) inset";
5068
+ readonly high: "0 24px 60px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.03) inset";
5069
+ };
5070
+ };
5071
+ declare const radius: {
5072
+ readonly tag: 4;
5073
+ readonly kbd: 6;
5074
+ readonly button: 8;
5075
+ readonly input: 8;
5076
+ readonly badge: 12;
5077
+ readonly card: 12;
5078
+ readonly dropdown: 12;
5079
+ readonly modal: 16;
5080
+ };
5081
+ declare const fonts: {
5082
+ readonly body: "'Zalando Sans', sans-serif";
5083
+ readonly heading: "'Zalando Sans Expanded', sans-serif";
5084
+ };
5085
+ /** Typografie popisku formulářového pole (uppercase label nad Input / Select…). */
5086
+ declare const fieldLabel: {
5087
+ readonly fontFamily: "'Zalando Sans Expanded', sans-serif";
5088
+ readonly fontStyle: "normal";
5089
+ readonly fontWeight: 400;
5090
+ readonly fontSize: "10px";
5091
+ readonly lineHeight: "normal";
5092
+ readonly textTransform: "uppercase";
5093
+ readonly userSelect: "none";
5094
+ };
5095
+ declare const animation: {
5096
+ readonly duration: 180;
5097
+ readonly easing: "cubic-bezier(0.16, 1, 0.3, 1)";
5098
+ readonly hover: "0.12s ease";
5099
+ };
5100
+ /**
5101
+ * Výchozí z-index škála. Skutečné hodnoty čtou komponenty z CSS proměnných
5102
+ * `--sm-ui-z-overlay`, `--sm-ui-z-popover`, `--sm-ui-z-toast`; tyto konstanty
5103
+ * jsou jejich fallbacky.
5104
+ *
5105
+ * Vnořené overlaye (Modal v Draweru, Select v Modalu…) dostávají z-index
5106
+ * `rodič + 1`, takže kit může nad základ vystoupat o počet současně otevřených
5107
+ * vrstev. Vlastní vrstvy nad kitem (mimo toasty) umisťujte nad `popover + 20`.
5108
+ */
5109
+ declare const Z_INDEX: {
5110
+ readonly overlay: 99998;
5111
+ readonly popover: 99999;
5112
+ readonly toast: 100050;
5113
+ };
5114
+ type ZIndexKind = keyof typeof Z_INDEX;
5115
+ /** Přečte z-index základ z CSS proměnné (fallback `Z_INDEX`). */
5116
+ declare function getZIndexBase(kind: ZIndexKind): number;
5117
+ declare const tokens: {
5118
+ readonly colors: {
5119
+ readonly primary: "#FC4F00";
5120
+ readonly primaryHover: "#FF6D2A";
5121
+ readonly primaryAlpha: "rgba(246,84,14,0.8)";
5122
+ readonly error: "#EF3838";
5123
+ readonly success: "#00A205";
5124
+ readonly info: "#2D7FF9";
5125
+ readonly warning: "#F5A623";
5126
+ };
5127
+ readonly theme: {
5128
+ readonly dark: {
5129
+ readonly background: "#1a1a1a";
5130
+ readonly surface: "rgba(24,24,24,0.95)";
5131
+ readonly surfaceGlass: "rgba(24,24,24,0.8)";
5132
+ readonly panelBg: "rgba(24,24,24,0.65)";
5133
+ readonly panelBorder: "rgba(255,255,255,0.1)";
5134
+ readonly inputBg: "rgba(3,3,3,0.75)";
5135
+ readonly inputBorder: "rgba(255,255,255,0.3)";
5136
+ readonly text: "#ffffff";
5137
+ readonly textSecondary: "#eaeaea";
5138
+ readonly textMuted: "#888888";
5139
+ readonly placeholder: "#ACACAC";
5140
+ readonly border: "rgba(255,255,255,0.1)";
5141
+ readonly divider: "rgba(255,255,255,0.08)";
5142
+ readonly hover: "rgba(255,255,255,0.06)";
5143
+ readonly overlay: "rgba(0,0,0,0.4)";
5144
+ };
5145
+ readonly light: {
5146
+ readonly background: "#ffffff";
5147
+ readonly surface: "rgba(255,255,255,0.95)";
5148
+ readonly surfaceGlass: "rgba(255,255,255,0.8)";
5149
+ readonly panelBg: "rgba(255,255,255,0.65)";
5150
+ readonly panelBorder: "rgba(0,0,0,0.08)";
5151
+ readonly inputBg: "rgba(255,255,255,0.85)";
5152
+ readonly inputBorder: "rgba(0,0,0,0.2)";
5153
+ readonly text: "#1a1a1a";
5154
+ readonly textSecondary: "#333333";
5155
+ readonly textMuted: "#999999";
5156
+ readonly placeholder: "#888888";
5157
+ readonly border: "rgba(0,0,0,0.08)";
5158
+ readonly divider: "rgba(0,0,0,0.06)";
5159
+ readonly hover: "rgba(0,0,0,0.04)";
5160
+ readonly overlay: "rgba(0,0,0,0.18)";
5161
+ };
5162
+ };
5163
+ readonly glass: {
5164
+ /** Dropdowny, popovery, tooltipy. */
5165
+ readonly blur: "blur(20px)";
5166
+ /** Modal, Drawer, Sheet, Spotlight (panely). */
5167
+ readonly panelBlur: "blur(32px) saturate(1.4)";
5168
+ /** Overlay pod panelem. */
5169
+ readonly backdropBlur: "blur(8px)";
5170
+ };
5171
+ readonly shadows: {
5172
+ readonly dark: {
5173
+ readonly elevated: "0 12px 40px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.04) inset";
5174
+ readonly high: "0 24px 60px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.04) inset";
5175
+ };
5176
+ readonly light: {
5177
+ readonly elevated: "0 12px 40px rgba(0,0,0,0.12), 0 0 0 1px rgba(0,0,0,0.03) inset";
5178
+ readonly high: "0 24px 60px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.03) inset";
5179
+ };
5180
+ };
5181
+ readonly radius: {
5182
+ readonly tag: 4;
5183
+ readonly kbd: 6;
5184
+ readonly button: 8;
5185
+ readonly input: 8;
5186
+ readonly badge: 12;
5187
+ readonly card: 12;
5188
+ readonly dropdown: 12;
5189
+ readonly modal: 16;
5190
+ };
5191
+ readonly fonts: {
5192
+ readonly body: "'Zalando Sans', sans-serif";
5193
+ readonly heading: "'Zalando Sans Expanded', sans-serif";
5194
+ };
5195
+ readonly fieldLabel: {
5196
+ readonly fontFamily: "'Zalando Sans Expanded', sans-serif";
5197
+ readonly fontStyle: "normal";
5198
+ readonly fontWeight: 400;
5199
+ readonly fontSize: "10px";
5200
+ readonly lineHeight: "normal";
5201
+ readonly textTransform: "uppercase";
5202
+ readonly userSelect: "none";
5203
+ };
5204
+ readonly animation: {
5205
+ readonly duration: 180;
5206
+ readonly easing: "cubic-bezier(0.16, 1, 0.3, 1)";
5207
+ readonly hover: "0.12s ease";
5208
+ };
5209
+ readonly zIndex: {
5210
+ readonly overlay: 99998;
5211
+ readonly popover: 99999;
5212
+ readonly toast: 100050;
5213
+ };
5214
+ };
5215
+
5216
+ export { Accordion, AccordionItem, type AccordionItemProps, type AccordionProps, Alert, type AlertProps, type AlertVariant, AppSidebar, type AppSidebarProps, AreaChart, Avatar, type AvatarProps, type AvatarSize, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, type BadgeSize, type BadgeVariant, Banner, type BannerPosition, type BannerProps, type BannerVariant, BarChart, type BarChartProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonAsAnchorProps, type ButtonAsButtonProps, type ButtonIconPosition, type ButtonProps, type ButtonSize, type ButtonVariant, CHART_PALETTE, Calendar, type CalendarEvent, type CalendarProps, Card, type CardProps, type ChartSeries, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, type CheckboxSize, ColorPicker, type ColorPickerProps, Combobox, type ComboboxFilter, type ComboboxMultipleProps, type ComboboxOption, type ComboboxProps, type ComboboxSingleClearableProps, type ComboboxSingleProps, type ComboboxSize, type ComboboxValue, type CommandGroup, type CommandItem, CommandMenu, type CommandMenuProps, type ConfirmContent, type ConfirmContentContext, ConfirmDialog, type ConfirmDialogProps, type ConfirmOptions, ConfirmProvider, Container, type ContainerMaxWidth, type ContainerProps, CopyButton, type CopyButtonProps, type Country, type CropArea, type CropShape, DataGrid, type DataGridColumn, type DataGridProps, DataList, type DataListItem, type DataListProps, DatePicker, DatePickerGroup, type DatePickerGroupProps, type DatePickerProps, type DatePickerSize, Divider, type DividerOrientation, type DividerProps, DonutChart, type DragHandleProps, DragList, type DragListItem, type DragListProps, type DragListSize, Drawer, type DrawerProps, DropdownMenu, type DropdownMenuItem, type DropdownMenuPosition, type DropdownMenuProps, EmptyState, type EmptyStatePreset, type EmptyStateProps, FieldLabel, type FieldLabelProps, FileUpload, type FileUploadProps, type FocusTrapInitialFocus, FormField, type FormFieldProps, FormWizard, type FormWizardProps, type FormWizardStep, IconButton, type IconButtonProps, ImageCropper, type ImageCropperProps, Input, InputGroup, type InputGroupProps, type InputProps, type InputSize, type InputVariant, type LegendPosition, LineChart, type LineChartProps, Link, type LinkProps, type LinkVariant, MobileDataCard, type MobileDataCardColumn, type MobileDataCardProps, Modal, type ModalBreakpoint, type ModalProps, Navbar, type NavbarProps, Notification, type NotificationProps, type NotificationVariant, NumberInput, type NumberInputEmptyProps, type NumberInputProps, type NumberInputSize, type NumberInputStrictProps, type NumberInputVariant, OTPInput, type OTPInputProps, OverlayContext, type OverlayContextValue, type OverlayKind, type OverlayState, Pagination, type PaginationProps, PhoneInput, type PhoneInputProps, type PhoneInputSize, PieChart, type PieChartProps, type PieDatum, Popover, type PopoverAlign, type PopoverPosition, type PopoverProps, ProgressBar, type ProgressBarProps, type ProgressBarSize, ProgressCircle, type ProgressCircleProps, type ProgressThreshold, type ProgressVariant, Radio, RadioGroup, type RadioGroupOption, type RadioGroupProps, type RadioProps, type RadioSize, Rating, type RatingProps, type RatingSize, SegmentedControl, type SegmentedControlItem, type SegmentedControlProps, type SegmentedControlSize, Select, SelectGroup, type SelectGroupProps, type SelectMultipleProps, type SelectOption, type SelectOptionGroup, type SelectOptions, type SelectProps, type SelectSingleClearableProps, type SelectSingleProps, type SelectSize, type SelectValue, Sheet, type SheetProps, SidebarItem, type SidebarItemProps, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderSize, SortableList, type SortableListProps, Sparkline, type SparklineProps, Spinner, type SpinnerProps, type SpinnerSize, Splitter, type SplitterProps, Spotlight, type SpotlightItem, type SpotlightProps, Stack, type StackAlign, type StackDirection, type StackJustify, type StackProps, Stat, type StatProps, StatusBadge, type StatusBadgeProps, type StatusBadgeStatus, type StepItem, Stepper, type StepperProps, Switch, type SwitchProps, type SwitchSize, Tab, TabPanel, type TabPanelProps, type TabProps, Table, type TableColumn, type TableProps, Tabs, type TabsProps, Tag, TagItem, type TagItemProps, type TagProps, Textarea, type TextareaProps, type TextareaResize, type TextareaSize, type Theme, type ThemedColor, Timeline, type TimelineItem, type TimelineProps, Toast, type ToastContextValue, type ToastOptions, type ToastPosition, type ToastProps, type ToastVariant, ToasterProvider, type ToasterProviderProps, Tooltip, type TooltipProps, Tree, type TreeNode, type TreeProps, type UploadedFile, type UseFocusTrapOptions, type UseOverlayOptions, type UseOverlayResult, type ZIndexKind, Z_INDEX, animation, colors, fieldLabel, fonts, getZIndexBase, glass, isInsideOverlayTree, radius, shadows, themeTokens, tokens, useConfirm, useFocusTrap, useOverlay, useOverlayContext, useOverlayState, useReducedMotion, useTheme, useToast };