@smworks-cz/ui-kit 1.0.0 → 1.2.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 +893 -50
- package/dist/index.d.ts +893 -50
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
type ButtonVariant = 'primary' | 'secondary' | 'outline';
|
|
3
|
+
type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'danger';
|
|
4
4
|
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
5
5
|
type ButtonIconPosition = 'left' | 'right';
|
|
6
6
|
/** Sdílené props pro režim `<button>` i `<a>`. */
|
|
@@ -10,6 +10,7 @@ interface ButtonBaseProps {
|
|
|
10
10
|
* - `primary` — oranžové vyplnění (#FC4F00)
|
|
11
11
|
* - `secondary` — průhledné, bez okraje
|
|
12
12
|
* - `outline` — průhledné s bílým okrajem
|
|
13
|
+
* - `danger` — červené vyplnění (#EF3838)
|
|
13
14
|
* @default 'primary'
|
|
14
15
|
*/
|
|
15
16
|
variant?: ButtonVariant;
|
|
@@ -193,6 +194,63 @@ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttri
|
|
|
193
194
|
*/
|
|
194
195
|
declare const InputGroup: React.FC<InputGroupProps>;
|
|
195
196
|
|
|
197
|
+
type NumberInputSize = 'sm' | 'md' | 'lg';
|
|
198
|
+
type NumberInputVariant = 'default' | 'compact';
|
|
199
|
+
interface NumberInputProps {
|
|
200
|
+
/** Aktuální numerická hodnota. */
|
|
201
|
+
value: number;
|
|
202
|
+
/** Callback volaný při změně hodnoty. */
|
|
203
|
+
onChange: (value: number) => void;
|
|
204
|
+
/** Minimální povolená hodnota. */
|
|
205
|
+
min?: number;
|
|
206
|
+
/** Maximální povolená hodnota. */
|
|
207
|
+
max?: number;
|
|
208
|
+
/** Krok inkrementace / dekrementace. @default 1 */
|
|
209
|
+
step?: number;
|
|
210
|
+
/** Popisek zobrazený nad polem. Stylizován velkými písmeny dle SM-UI design systému. */
|
|
211
|
+
label?: string;
|
|
212
|
+
/** Při `true` se pole zobrazí jako nevalidní. Při zadání řetězce se zobrazí chybová zpráva. */
|
|
213
|
+
error?: boolean | string;
|
|
214
|
+
/** Zakáže celé pole včetně tlačítek. */
|
|
215
|
+
disabled?: boolean;
|
|
216
|
+
/**
|
|
217
|
+
* Velikostní preset.
|
|
218
|
+
* - `'sm'` -- kompaktní
|
|
219
|
+
* - `'md'` -- výchozí
|
|
220
|
+
* - `'lg'` -- velký
|
|
221
|
+
* @default 'md'
|
|
222
|
+
*/
|
|
223
|
+
size?: NumberInputSize;
|
|
224
|
+
/**
|
|
225
|
+
* Varianta rozložení.
|
|
226
|
+
* - `'default'` -- tlačítka −/+ po stranách
|
|
227
|
+
* - `'compact'` -- šipky nahoru/dolů vpravo uvnitř pole
|
|
228
|
+
* @default 'default'
|
|
229
|
+
*/
|
|
230
|
+
variant?: NumberInputVariant;
|
|
231
|
+
/** Text zobrazený před hodnotou (např. měna). */
|
|
232
|
+
prefix?: string;
|
|
233
|
+
/** Text zobrazený za hodnotou (např. jednotka). */
|
|
234
|
+
suffix?: string;
|
|
235
|
+
/** Další inline styly pro obalový `<div>`. */
|
|
236
|
+
style?: React.CSSProperties;
|
|
237
|
+
/** Dodatečná CSS třída pro obalový `<div>`. */
|
|
238
|
+
className?: string;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Numerické vstupní pole s tlačítky +/− dle SM-UI design systému.
|
|
242
|
+
*
|
|
243
|
+
* Podržením tlačítka se hodnota plynule inkrementuje / dekrementuje.
|
|
244
|
+
* Hodnota je automaticky omezena na rozsah `min`–`max`.
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```tsx
|
|
248
|
+
* <NumberInput value={count} onChange={setCount} min={0} max={100} step={5} />
|
|
249
|
+
* <NumberInput value={price} onChange={setPrice} prefix="$" suffix="USD" />
|
|
250
|
+
* ```
|
|
251
|
+
*/
|
|
252
|
+
declare const NumberInput: React.ForwardRefExoticComponent<NumberInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
253
|
+
|
|
196
254
|
interface SelectOption {
|
|
197
255
|
/** Unikátní hodnota položky. */
|
|
198
256
|
value: string;
|
|
@@ -232,6 +290,11 @@ interface SelectProps {
|
|
|
232
290
|
loading?: boolean;
|
|
233
291
|
/** Označí select jako nevalidní — přijímá `true` nebo textovou chybovou zprávu. */
|
|
234
292
|
error?: boolean | string;
|
|
293
|
+
/**
|
|
294
|
+
* Popisek zobrazený nad selectem.
|
|
295
|
+
* Stylizován velkými písmeny dle SM-UI design systému.
|
|
296
|
+
*/
|
|
297
|
+
label?: string;
|
|
235
298
|
/** Zástupný text zobrazený při prázdném výběru. */
|
|
236
299
|
placeholder?: string;
|
|
237
300
|
/** Maximální výška (px) rozbalovacího seznamu před scrollováním. @default 240 */
|
|
@@ -297,6 +360,74 @@ declare const Select: React.FC<SelectProps>;
|
|
|
297
360
|
*/
|
|
298
361
|
declare const SelectGroup: React.FC<SelectGroupProps>;
|
|
299
362
|
|
|
363
|
+
type ComboboxSize = 'sm' | 'md' | 'lg';
|
|
364
|
+
interface ComboboxOption {
|
|
365
|
+
/** Unikátní hodnota položky. */
|
|
366
|
+
value: string;
|
|
367
|
+
/** Zobrazovaný popisek. Pokud chybí, použije se `value`. */
|
|
368
|
+
label?: string;
|
|
369
|
+
}
|
|
370
|
+
interface ComboboxProps {
|
|
371
|
+
/** Dostupné položky k výběru. */
|
|
372
|
+
options: ComboboxOption[];
|
|
373
|
+
/** Aktuální vybraná hodnota. */
|
|
374
|
+
value: string;
|
|
375
|
+
/** Callback volaný při výběru položky. */
|
|
376
|
+
onChange: (value: string) => void;
|
|
377
|
+
/** Callback volaný při změně textu ve vyhledávacím poli. Vhodné pro asynchronní filtrování. */
|
|
378
|
+
onInputChange?: (input: string) => void;
|
|
379
|
+
/** Zástupný text zobrazený při prázdném poli. */
|
|
380
|
+
placeholder?: string;
|
|
381
|
+
/** Popisek zobrazený nad polem. Stylizován velkými písmeny dle SM-UI design systému. */
|
|
382
|
+
label?: string;
|
|
383
|
+
/** Při `true` se pole zobrazí jako nevalidní. Při zadání řetězce se zobrazí chybová zpráva. */
|
|
384
|
+
error?: boolean | string;
|
|
385
|
+
/** Zakáže celou komponentu. */
|
|
386
|
+
disabled?: boolean;
|
|
387
|
+
/** Zobrazí spinner místo ikony vyhledávání. Vhodné při načítání položek. */
|
|
388
|
+
loading?: boolean;
|
|
389
|
+
/** Povolí uživateli zadat vlastní hodnotu, která není v seznamu. @default false */
|
|
390
|
+
allowCustom?: boolean;
|
|
391
|
+
/** Callback volaný při vytvoření vlastní hodnoty (Enter při `allowCustom`). */
|
|
392
|
+
onCreate?: (value: string) => void;
|
|
393
|
+
/** Vlastní renderování položky v seznamu. */
|
|
394
|
+
renderOption?: (option: {
|
|
395
|
+
value: string;
|
|
396
|
+
label?: string;
|
|
397
|
+
}, highlighted: boolean) => React.ReactNode;
|
|
398
|
+
/** Obsah zobrazený když žádné výsledky neodpovídají. @default "Žádné výsledky" */
|
|
399
|
+
notFoundContent?: React.ReactNode;
|
|
400
|
+
/** Obsah zobrazený pod seznamem položek uvnitř dropdownu. */
|
|
401
|
+
footer?: React.ReactNode;
|
|
402
|
+
/**
|
|
403
|
+
* Velikostní preset.
|
|
404
|
+
* @default 'md'
|
|
405
|
+
*/
|
|
406
|
+
size?: ComboboxSize;
|
|
407
|
+
/** Další inline styly pro obalový `<div>`. */
|
|
408
|
+
style?: React.CSSProperties;
|
|
409
|
+
/** Dodatečná CSS třída pro obalový `<div>`. */
|
|
410
|
+
className?: string;
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Kombinované vyhledávací pole se seznamem dle SM-UI design systému.
|
|
414
|
+
*
|
|
415
|
+
* Uživatel zadává text pro filtrování položek. Dropdown se vykresluje
|
|
416
|
+
* přes React portál. Podporuje navigaci klávesami, vlastní hodnoty
|
|
417
|
+
* a asynchronní filtrování přes `onInputChange`.
|
|
418
|
+
*
|
|
419
|
+
* @example
|
|
420
|
+
* ```tsx
|
|
421
|
+
* <Combobox
|
|
422
|
+
* options={[{ value: 'cz', label: 'Česko' }, { value: 'sk', label: 'Slovensko' }]}
|
|
423
|
+
* value={zeme}
|
|
424
|
+
* onChange={setZeme}
|
|
425
|
+
* placeholder="Hledat zemi…"
|
|
426
|
+
* />
|
|
427
|
+
* ```
|
|
428
|
+
*/
|
|
429
|
+
declare const Combobox: React.ForwardRefExoticComponent<ComboboxProps & React.RefAttributes<HTMLInputElement>>;
|
|
430
|
+
|
|
300
431
|
type DatePickerSize = 'sm' | 'md' | 'lg';
|
|
301
432
|
interface DatePickerProps {
|
|
302
433
|
/**
|
|
@@ -792,6 +923,18 @@ interface FileUploadProps {
|
|
|
792
923
|
* Chybový stav. Při řetězci se zobrazí chybová zpráva.
|
|
793
924
|
*/
|
|
794
925
|
error?: boolean | string;
|
|
926
|
+
/**
|
|
927
|
+
* Styl tlačítka u button varianty.
|
|
928
|
+
* - `'default'` — neutrální vstupní pole
|
|
929
|
+
* - `'primary'` — oranžové tlačítko jako primární Button
|
|
930
|
+
* @default 'default'
|
|
931
|
+
*/
|
|
932
|
+
buttonStyle?: 'default' | 'primary';
|
|
933
|
+
/**
|
|
934
|
+
* Zda zobrazit seznam nahraných souborů pod komponentou.
|
|
935
|
+
* @default true
|
|
936
|
+
*/
|
|
937
|
+
showFileList?: boolean;
|
|
795
938
|
/** Dodatečná CSS třída. */
|
|
796
939
|
className?: string;
|
|
797
940
|
/** Další inline styly. */
|
|
@@ -816,6 +959,175 @@ interface FileUploadProps {
|
|
|
816
959
|
*/
|
|
817
960
|
declare const FileUpload: React.FC<FileUploadProps>;
|
|
818
961
|
|
|
962
|
+
type SegmentedControlSize = 'sm' | 'md' | 'lg';
|
|
963
|
+
interface SegmentedControlItem {
|
|
964
|
+
/** Unikátní hodnota segmentu. */
|
|
965
|
+
value: string;
|
|
966
|
+
/** Zobrazovaný text. Výchozí: `value`. */
|
|
967
|
+
label?: string;
|
|
968
|
+
/** Zakáže tento segment. */
|
|
969
|
+
disabled?: boolean;
|
|
970
|
+
}
|
|
971
|
+
interface SegmentedControlProps {
|
|
972
|
+
/**
|
|
973
|
+
* Data — pole řetězců nebo objektů `{ value, label?, disabled? }`.
|
|
974
|
+
* Řetězce jsou automaticky převedeny na objekty s `value === label`.
|
|
975
|
+
*/
|
|
976
|
+
data: (string | SegmentedControlItem)[];
|
|
977
|
+
/** Aktuálně vybraná hodnota (řízená komponenta). */
|
|
978
|
+
value: string;
|
|
979
|
+
/** Callback volaný při změně výběru. */
|
|
980
|
+
onChange: (value: string) => void;
|
|
981
|
+
/**
|
|
982
|
+
* Velikostní preset.
|
|
983
|
+
* @default 'md'
|
|
984
|
+
*/
|
|
985
|
+
size?: SegmentedControlSize;
|
|
986
|
+
/**
|
|
987
|
+
* Roztáhne komponentu na celou šířku kontejneru.
|
|
988
|
+
* @default false
|
|
989
|
+
*/
|
|
990
|
+
fullWidth?: boolean;
|
|
991
|
+
/**
|
|
992
|
+
* Orientace segmentů.
|
|
993
|
+
* @default 'horizontal'
|
|
994
|
+
*/
|
|
995
|
+
orientation?: 'horizontal' | 'vertical';
|
|
996
|
+
/**
|
|
997
|
+
* Zakáže celou komponentu.
|
|
998
|
+
* @default false
|
|
999
|
+
*/
|
|
1000
|
+
disabled?: boolean;
|
|
1001
|
+
/** Dodatečná CSS třída. */
|
|
1002
|
+
className?: string;
|
|
1003
|
+
/** Další inline styly. */
|
|
1004
|
+
style?: React.CSSProperties;
|
|
1005
|
+
}
|
|
1006
|
+
/**
|
|
1007
|
+
* Segmentovaný přepínač dle SM-UI design systému.
|
|
1008
|
+
*
|
|
1009
|
+
* Podobný záložkám, ale v kompaktnějším inline formátu
|
|
1010
|
+
* s animovaným indikátorem posuvným mezi segmenty.
|
|
1011
|
+
*
|
|
1012
|
+
* @example
|
|
1013
|
+
* ```tsx
|
|
1014
|
+
* const [view, setView] = useState('list');
|
|
1015
|
+
*
|
|
1016
|
+
* <SegmentedControl
|
|
1017
|
+
* data={['list', 'grid', 'table']}
|
|
1018
|
+
* value={view}
|
|
1019
|
+
* onChange={setView}
|
|
1020
|
+
* />
|
|
1021
|
+
* ```
|
|
1022
|
+
*/
|
|
1023
|
+
declare const SegmentedControl: React.FC<SegmentedControlProps>;
|
|
1024
|
+
|
|
1025
|
+
interface ColorPickerProps {
|
|
1026
|
+
/** Aktuální barva v hexadecimálním formátu (např. `#FC4F00`). */
|
|
1027
|
+
value: string;
|
|
1028
|
+
/** Callback volaný při změně barvy. */
|
|
1029
|
+
onChange: (color: string) => void;
|
|
1030
|
+
/** Přednastavené barvy zobrazené v mřížce. Pokud chybí, použije se výchozí paleta. */
|
|
1031
|
+
presets?: string[];
|
|
1032
|
+
/** Popisek zobrazený nad komponentou. Stylizován velkými písmeny dle SM-UI design systému. */
|
|
1033
|
+
label?: string;
|
|
1034
|
+
/** Zakáže celou komponentu. */
|
|
1035
|
+
disabled?: boolean;
|
|
1036
|
+
/** Další inline styly pro obalový `<div>`. */
|
|
1037
|
+
style?: React.CSSProperties;
|
|
1038
|
+
/** Dodatečná CSS třída pro obalový `<div>`. */
|
|
1039
|
+
className?: string;
|
|
1040
|
+
}
|
|
1041
|
+
/**
|
|
1042
|
+
* Výběr barvy dle SM-UI design systému.
|
|
1043
|
+
*
|
|
1044
|
+
* Zobrazuje náhled aktuální barvy, hexadecimální vstup
|
|
1045
|
+
* a po kliknutí popover s mřížkou přednastavených barev.
|
|
1046
|
+
*
|
|
1047
|
+
* @example
|
|
1048
|
+
* ```tsx
|
|
1049
|
+
* <ColorPicker value={color} onChange={setColor} />
|
|
1050
|
+
* <ColorPicker value={color} onChange={setColor} presets={['#FF0000', '#00FF00', '#0000FF']} />
|
|
1051
|
+
* ```
|
|
1052
|
+
*/
|
|
1053
|
+
declare const ColorPicker: React.FC<ColorPickerProps>;
|
|
1054
|
+
|
|
1055
|
+
type RatingSize = 'sm' | 'md' | 'lg';
|
|
1056
|
+
interface RatingProps {
|
|
1057
|
+
/** Aktuální hodnota hodnocení (1–max). */
|
|
1058
|
+
value: number;
|
|
1059
|
+
/** Callback volaný při změně hodnocení. Pokud chybí, komponenta je v režimu pouze pro čtení. */
|
|
1060
|
+
onChange?: (value: number) => void;
|
|
1061
|
+
/** Maximální počet hvězd. @default 5 */
|
|
1062
|
+
max?: number;
|
|
1063
|
+
/**
|
|
1064
|
+
* Velikostní preset.
|
|
1065
|
+
* @default 'md'
|
|
1066
|
+
*/
|
|
1067
|
+
size?: RatingSize;
|
|
1068
|
+
/** Přepne komponentu do režimu pouze pro zobrazení. */
|
|
1069
|
+
readOnly?: boolean;
|
|
1070
|
+
/** Popisek zobrazený nad komponentou. Stylizován velkými písmeny dle SM-UI design systému. */
|
|
1071
|
+
label?: string;
|
|
1072
|
+
/** Další inline styly pro obalový `<div>`. */
|
|
1073
|
+
style?: React.CSSProperties;
|
|
1074
|
+
/** Dodatečná CSS třída pro obalový `<div>`. */
|
|
1075
|
+
className?: string;
|
|
1076
|
+
}
|
|
1077
|
+
/**
|
|
1078
|
+
* Hodnocení hvězdičkami dle SM-UI design systému.
|
|
1079
|
+
*
|
|
1080
|
+
* Podporuje interaktivní výběr s náhledem při najetí myší
|
|
1081
|
+
* a režim pouze pro čtení.
|
|
1082
|
+
*
|
|
1083
|
+
* @example
|
|
1084
|
+
* ```tsx
|
|
1085
|
+
* <Rating value={rating} onChange={setRating} />
|
|
1086
|
+
* <Rating value={3} max={10} readOnly />
|
|
1087
|
+
* <Rating value={4} size="lg" label="Hodnocení" />
|
|
1088
|
+
* ```
|
|
1089
|
+
*/
|
|
1090
|
+
declare const Rating: React.FC<RatingProps>;
|
|
1091
|
+
|
|
1092
|
+
interface OTPInputProps {
|
|
1093
|
+
/** Počet polí (číslic). @default 6 */
|
|
1094
|
+
length?: number;
|
|
1095
|
+
/** Aktuální hodnota jako řetězec číslic. */
|
|
1096
|
+
value: string;
|
|
1097
|
+
/** Callback volaný při změně hodnoty. */
|
|
1098
|
+
onChange: (value: string) => void;
|
|
1099
|
+
/** Při `true` se pole zobrazí jako nevalidní. Při zadání řetězce se zobrazí chybová zpráva. */
|
|
1100
|
+
error?: boolean | string;
|
|
1101
|
+
/** Zakáže celou komponentu. */
|
|
1102
|
+
disabled?: boolean;
|
|
1103
|
+
/** Automaticky zaměří první pole při renderování. @default false */
|
|
1104
|
+
autoFocus?: boolean;
|
|
1105
|
+
/** Popisek zobrazený nad komponentou. Stylizován velkými písmeny dle SM-UI design systému. */
|
|
1106
|
+
label?: string;
|
|
1107
|
+
/** Vloží oddělovač po každých N polích. Např. `separatorAfter={3}` u 6místného kódu vytvoří skupiny 3-3. */
|
|
1108
|
+
separatorAfter?: number;
|
|
1109
|
+
/** Obsah oddělovače. @default '-' */
|
|
1110
|
+
separator?: React.ReactNode;
|
|
1111
|
+
/** Další inline styly pro obalový `<div>`. */
|
|
1112
|
+
style?: React.CSSProperties;
|
|
1113
|
+
/** Dodatečná CSS třída pro obalový `<div>`. */
|
|
1114
|
+
className?: string;
|
|
1115
|
+
}
|
|
1116
|
+
/**
|
|
1117
|
+
* Pole pro zadání jednorázového kódu (OTP) dle SM-UI design systému.
|
|
1118
|
+
*
|
|
1119
|
+
* Každá číslice má vlastní pole. Automaticky přesouvá fokus
|
|
1120
|
+
* na další pole při zadání a na předchozí při smazání.
|
|
1121
|
+
* Podporuje vložení celého kódu ze schránky.
|
|
1122
|
+
*
|
|
1123
|
+
* @example
|
|
1124
|
+
* ```tsx
|
|
1125
|
+
* <OTPInput value={otp} onChange={setOtp} autoFocus />
|
|
1126
|
+
* <OTPInput value={otp} onChange={setOtp} length={4} error="Neplatný kód" />
|
|
1127
|
+
* ```
|
|
1128
|
+
*/
|
|
1129
|
+
declare const OTPInput: React.FC<OTPInputProps>;
|
|
1130
|
+
|
|
819
1131
|
interface TableColumn {
|
|
820
1132
|
/** Klíč odpovídající hodnotě v datovém objektu. */
|
|
821
1133
|
key: string;
|
|
@@ -875,6 +1187,73 @@ interface TableProps {
|
|
|
875
1187
|
*/
|
|
876
1188
|
declare const Table: React.FC<TableProps>;
|
|
877
1189
|
|
|
1190
|
+
/** Definice sloupce pro DataGrid. */
|
|
1191
|
+
interface DataGridColumn {
|
|
1192
|
+
/** Klíč odpovídající hodnotě v datovém objektu. */
|
|
1193
|
+
key: string;
|
|
1194
|
+
/** Text záhlaví sloupce. */
|
|
1195
|
+
header: string;
|
|
1196
|
+
/** Šířka sloupce (CSS hodnota). */
|
|
1197
|
+
width?: string | number;
|
|
1198
|
+
/** Minimální šířka sloupce v pixelech. */
|
|
1199
|
+
minWidth?: number;
|
|
1200
|
+
/** Zarovnání obsahu. @default 'left' */
|
|
1201
|
+
align?: 'left' | 'center' | 'right';
|
|
1202
|
+
/** Povolí řazení podle tohoto sloupce. @default false */
|
|
1203
|
+
sortable?: boolean;
|
|
1204
|
+
/** Povolí editaci buňky (placeholder pro budoucí implementaci). @default false */
|
|
1205
|
+
editable?: boolean;
|
|
1206
|
+
/** Vlastní vykreslovací funkce pro buňku. */
|
|
1207
|
+
render?: (value: any, row: any, index: number) => React.ReactNode;
|
|
1208
|
+
}
|
|
1209
|
+
interface DataGridProps {
|
|
1210
|
+
/** Definice sloupců. */
|
|
1211
|
+
columns: DataGridColumn[];
|
|
1212
|
+
/** Data k zobrazení — pole objektů. */
|
|
1213
|
+
data: any[];
|
|
1214
|
+
/** Povolí výběr řádků pomocí zaškrtávacích políček. @default false */
|
|
1215
|
+
selectable?: boolean;
|
|
1216
|
+
/** Callback při změně výběru řádků. */
|
|
1217
|
+
onSelectionChange?: (ids: string[]) => void;
|
|
1218
|
+
/** Při `true` se zobrazí skeleton řádky. @default false */
|
|
1219
|
+
loading?: boolean;
|
|
1220
|
+
/** Klíč pro identifikaci řádků. @default 'id' */
|
|
1221
|
+
rowKey?: string;
|
|
1222
|
+
/** Callback při kliknutí na řádek. */
|
|
1223
|
+
onRowClick?: (row: any) => void;
|
|
1224
|
+
/** Fixní záhlaví při scrollování. @default false */
|
|
1225
|
+
stickyHeader?: boolean;
|
|
1226
|
+
/** Text zobrazený při prázdných datech. @default 'Žádná data' */
|
|
1227
|
+
emptyText?: string;
|
|
1228
|
+
/** Další inline styly. */
|
|
1229
|
+
style?: React.CSSProperties;
|
|
1230
|
+
/** Dodatečná CSS třída. */
|
|
1231
|
+
className?: string;
|
|
1232
|
+
}
|
|
1233
|
+
/**
|
|
1234
|
+
* Pokročilá datová mřížka s výběrem řádků, sticky záhlavím a loading stavem.
|
|
1235
|
+
*
|
|
1236
|
+
* Rozšiřuje vzor Table o zaškrtávací políčka pro výběr,
|
|
1237
|
+
* klikání na řádky a skeleton placeholder při načítání.
|
|
1238
|
+
*
|
|
1239
|
+
* @example
|
|
1240
|
+
* ```tsx
|
|
1241
|
+
* <DataGrid
|
|
1242
|
+
* columns={[
|
|
1243
|
+
* { key: 'name', header: 'Jméno', minWidth: 200 },
|
|
1244
|
+
* { key: 'email', header: 'E-mail' },
|
|
1245
|
+
* { key: 'role', header: 'Role', align: 'center' },
|
|
1246
|
+
* ]}
|
|
1247
|
+
* data={users}
|
|
1248
|
+
* selectable
|
|
1249
|
+
* stickyHeader
|
|
1250
|
+
* onSelectionChange={(ids) => console.log(ids)}
|
|
1251
|
+
* onRowClick={(row) => console.log(row)}
|
|
1252
|
+
* />
|
|
1253
|
+
* ```
|
|
1254
|
+
*/
|
|
1255
|
+
declare const DataGrid: React.FC<DataGridProps>;
|
|
1256
|
+
|
|
878
1257
|
interface CardProps {
|
|
879
1258
|
/** Titulek karty. */
|
|
880
1259
|
title?: string;
|
|
@@ -1365,6 +1744,212 @@ declare const Badge: React.FC<BadgeProps>;
|
|
|
1365
1744
|
*/
|
|
1366
1745
|
declare const TagItem: React.FC<TagItemProps>;
|
|
1367
1746
|
|
|
1747
|
+
/** Událost zobrazená v kalendáři. */
|
|
1748
|
+
interface CalendarEvent {
|
|
1749
|
+
/** Datum události. */
|
|
1750
|
+
date: Date;
|
|
1751
|
+
/** Název události. */
|
|
1752
|
+
title: string;
|
|
1753
|
+
/** Barva tečky/indikátoru. @default '#FC4F00' */
|
|
1754
|
+
color?: string;
|
|
1755
|
+
}
|
|
1756
|
+
interface CalendarProps {
|
|
1757
|
+
/** Aktuálně vybraný datum. */
|
|
1758
|
+
value?: Date | null;
|
|
1759
|
+
/** Callback při výběru data. */
|
|
1760
|
+
onChange?: (date: Date) => void;
|
|
1761
|
+
/** Režim zobrazení. @default 'month' */
|
|
1762
|
+
view?: 'month' | 'week';
|
|
1763
|
+
/** Události k zobrazení (vizuální indikátory — barevné tečky). */
|
|
1764
|
+
events?: CalendarEvent[];
|
|
1765
|
+
/** Minimální povolený datum. */
|
|
1766
|
+
minDate?: Date;
|
|
1767
|
+
/** Maximální povolený datum. */
|
|
1768
|
+
maxDate?: Date;
|
|
1769
|
+
/** Další inline styly. */
|
|
1770
|
+
style?: React.CSSProperties;
|
|
1771
|
+
/** Dodatečná CSS třída. */
|
|
1772
|
+
className?: string;
|
|
1773
|
+
}
|
|
1774
|
+
/**
|
|
1775
|
+
* Kalendářní komponenta s měsíčním a týdenním zobrazením.
|
|
1776
|
+
*
|
|
1777
|
+
* Podporuje výběr data, zobrazení událostí (barevné tečky),
|
|
1778
|
+
* navigaci mezi měsíci/týdny a omezení rozsahu dat.
|
|
1779
|
+
*
|
|
1780
|
+
* @example
|
|
1781
|
+
* ```tsx
|
|
1782
|
+
* <Calendar
|
|
1783
|
+
* value={selectedDate}
|
|
1784
|
+
* onChange={setSelectedDate}
|
|
1785
|
+
* events={[{ date: new Date(), title: 'Meeting', color: '#00A205' }]}
|
|
1786
|
+
* />
|
|
1787
|
+
* ```
|
|
1788
|
+
*/
|
|
1789
|
+
declare const Calendar: React.FC<CalendarProps>;
|
|
1790
|
+
|
|
1791
|
+
/** Položka časové osy. */
|
|
1792
|
+
interface TimelineItem {
|
|
1793
|
+
/** Nadpis události. */
|
|
1794
|
+
title: string;
|
|
1795
|
+
/** Volitelný popis události. */
|
|
1796
|
+
description?: string;
|
|
1797
|
+
/** Volitelný datum / časový údaj. */
|
|
1798
|
+
date?: string;
|
|
1799
|
+
/** Vlastní ikona místo výchozí tečky. */
|
|
1800
|
+
icon?: React.ReactNode;
|
|
1801
|
+
/** Barva tečky nebo pozadí ikony. @default '#FC4F00' */
|
|
1802
|
+
color?: string;
|
|
1803
|
+
}
|
|
1804
|
+
interface TimelineProps {
|
|
1805
|
+
/** Položky časové osy. */
|
|
1806
|
+
items: TimelineItem[];
|
|
1807
|
+
/** Orientace časové osy. @default 'vertical' */
|
|
1808
|
+
orientation?: 'vertical' | 'horizontal';
|
|
1809
|
+
/** Další inline styly. */
|
|
1810
|
+
style?: React.CSSProperties;
|
|
1811
|
+
/** Dodatečná CSS třída. */
|
|
1812
|
+
className?: string;
|
|
1813
|
+
}
|
|
1814
|
+
/**
|
|
1815
|
+
* Časová osa s tečkami nebo ikonami.
|
|
1816
|
+
*
|
|
1817
|
+
* Podporuje vertikální i horizontální orientaci.
|
|
1818
|
+
* Každá položka zobrazuje nadpis, volitelný popis a datum.
|
|
1819
|
+
* Ikona nebo barevná tečka je propojená čárou.
|
|
1820
|
+
*
|
|
1821
|
+
* @example
|
|
1822
|
+
* ```tsx
|
|
1823
|
+
* <Timeline
|
|
1824
|
+
* items={[
|
|
1825
|
+
* { title: 'Odesláno', date: '10:00', description: 'Objednávka byla vytvořena.' },
|
|
1826
|
+
* { title: 'Doručeno', date: '14:30', color: '#00A205' },
|
|
1827
|
+
* ]}
|
|
1828
|
+
* />
|
|
1829
|
+
* ```
|
|
1830
|
+
*/
|
|
1831
|
+
declare const Timeline: React.FC<TimelineProps>;
|
|
1832
|
+
|
|
1833
|
+
/** Položka klíč-hodnota v seznamu. */
|
|
1834
|
+
interface DataListItem {
|
|
1835
|
+
/** Popisek (klíč). */
|
|
1836
|
+
label: string;
|
|
1837
|
+
/** Hodnota — řetězec nebo libovolný React uzel. */
|
|
1838
|
+
value: React.ReactNode;
|
|
1839
|
+
}
|
|
1840
|
+
interface DataListProps {
|
|
1841
|
+
/** Položky k zobrazení. */
|
|
1842
|
+
items: DataListItem[];
|
|
1843
|
+
/** Počet sloupců. @default 1 */
|
|
1844
|
+
columns?: number;
|
|
1845
|
+
/** Střídání barvy řádků. @default false */
|
|
1846
|
+
striped?: boolean;
|
|
1847
|
+
/** Další inline styly. */
|
|
1848
|
+
style?: React.CSSProperties;
|
|
1849
|
+
/** Dodatečná CSS třída. */
|
|
1850
|
+
className?: string;
|
|
1851
|
+
}
|
|
1852
|
+
/**
|
|
1853
|
+
* Seznam klíč-hodnota pro detailní zobrazení dat.
|
|
1854
|
+
*
|
|
1855
|
+
* Zobrazuje popisek vlevo (ztlumený) a hodnotu vpravo.
|
|
1856
|
+
* Podporuje rozložení do libovolného počtu sloupců a střídání barvy řádků.
|
|
1857
|
+
*
|
|
1858
|
+
* @example
|
|
1859
|
+
* ```tsx
|
|
1860
|
+
* <DataList
|
|
1861
|
+
* items={[
|
|
1862
|
+
* { label: 'Jméno', value: 'Jan Novák' },
|
|
1863
|
+
* { label: 'E-mail', value: 'jan@example.com' },
|
|
1864
|
+
* { label: 'Stav', value: <Tag>Aktivní</Tag> },
|
|
1865
|
+
* ]}
|
|
1866
|
+
* columns={2}
|
|
1867
|
+
* striped
|
|
1868
|
+
* />
|
|
1869
|
+
* ```
|
|
1870
|
+
*/
|
|
1871
|
+
declare const DataList: React.FC<DataListProps>;
|
|
1872
|
+
|
|
1873
|
+
/** Uzel stromové struktury. */
|
|
1874
|
+
interface TreeNode {
|
|
1875
|
+
/** Unikátní identifikátor uzlu. */
|
|
1876
|
+
id: string;
|
|
1877
|
+
/** Zobrazený text uzlu. */
|
|
1878
|
+
label: string;
|
|
1879
|
+
/** Volitelná ikona vedle popisku. */
|
|
1880
|
+
icon?: React.ReactNode;
|
|
1881
|
+
/** Podřízené uzly. */
|
|
1882
|
+
children?: TreeNode[];
|
|
1883
|
+
}
|
|
1884
|
+
interface TreeProps {
|
|
1885
|
+
/** Stromová data k zobrazení. */
|
|
1886
|
+
data: TreeNode[];
|
|
1887
|
+
/** Callback při výběru uzlu. */
|
|
1888
|
+
onSelect?: (node: TreeNode) => void;
|
|
1889
|
+
/** ID aktuálně vybraného uzlu. */
|
|
1890
|
+
selectedId?: string;
|
|
1891
|
+
/** ID uzlů, které jsou ve výchozím stavu rozbalené. */
|
|
1892
|
+
defaultExpanded?: string[];
|
|
1893
|
+
/** Další inline styly. */
|
|
1894
|
+
style?: React.CSSProperties;
|
|
1895
|
+
/** Dodatečná CSS třída. */
|
|
1896
|
+
className?: string;
|
|
1897
|
+
}
|
|
1898
|
+
/**
|
|
1899
|
+
* Stromový seznam s rozbalitelnými uzly.
|
|
1900
|
+
*
|
|
1901
|
+
* Podporuje ikony, výběr uzlu, animovanou šipku při rozbalení
|
|
1902
|
+
* a spojovací čáry mezi rodičem a potomky.
|
|
1903
|
+
*
|
|
1904
|
+
* @example
|
|
1905
|
+
* ```tsx
|
|
1906
|
+
* <Tree
|
|
1907
|
+
* data={[
|
|
1908
|
+
* { id: '1', label: 'Složka', children: [
|
|
1909
|
+
* { id: '1-1', label: 'Soubor A' },
|
|
1910
|
+
* { id: '1-2', label: 'Soubor B' },
|
|
1911
|
+
* ]},
|
|
1912
|
+
* ]}
|
|
1913
|
+
* selectedId="1-1"
|
|
1914
|
+
* onSelect={(node) => console.log(node.id)}
|
|
1915
|
+
* />
|
|
1916
|
+
* ```
|
|
1917
|
+
*/
|
|
1918
|
+
declare const Tree: React.FC<TreeProps>;
|
|
1919
|
+
|
|
1920
|
+
type StatusBadgeStatus = 'online' | 'offline' | 'away' | 'busy' | (string & {});
|
|
1921
|
+
interface StatusBadgeProps {
|
|
1922
|
+
/** Stav k zobrazení. Předdefinované: online, offline, away, busy. Lze zadat i vlastní řetězec. */
|
|
1923
|
+
status: StatusBadgeStatus;
|
|
1924
|
+
/** Volitelný textový popis vedle indikátoru. */
|
|
1925
|
+
label?: string;
|
|
1926
|
+
/** Velikost indikátoru. @default 'md' */
|
|
1927
|
+
size?: 'sm' | 'md' | 'lg';
|
|
1928
|
+
/** Zapne pulzující animaci. @default false */
|
|
1929
|
+
pulse?: boolean;
|
|
1930
|
+
/** Vlastní barva indikátoru — přepíše výchozí barvu stavu. */
|
|
1931
|
+
color?: string;
|
|
1932
|
+
/** Další inline styly. */
|
|
1933
|
+
style?: React.CSSProperties;
|
|
1934
|
+
/** Dodatečná CSS třída. */
|
|
1935
|
+
className?: string;
|
|
1936
|
+
}
|
|
1937
|
+
/**
|
|
1938
|
+
* Malý barevný indikátor stavu.
|
|
1939
|
+
*
|
|
1940
|
+
* Předdefinované stavy: online, offline, away, busy.
|
|
1941
|
+
* Lze zadat i vlastní řetězec s vlastní barvou přes prop `color`.
|
|
1942
|
+
* Pulzující animace funguje na libovolném stavu.
|
|
1943
|
+
*
|
|
1944
|
+
* @example
|
|
1945
|
+
* ```tsx
|
|
1946
|
+
* <StatusBadge status="online" pulse />
|
|
1947
|
+
* <StatusBadge status="busy" label="Nerušit" size="lg" />
|
|
1948
|
+
* <StatusBadge status="streaming" color="#9C27B0" label="Živě" pulse />
|
|
1949
|
+
* ```
|
|
1950
|
+
*/
|
|
1951
|
+
declare const StatusBadge: React.FC<StatusBadgeProps>;
|
|
1952
|
+
|
|
1368
1953
|
interface ModalProps {
|
|
1369
1954
|
/** Řídí zobrazení modálního okna. */
|
|
1370
1955
|
open: boolean;
|
|
@@ -1444,6 +2029,39 @@ interface DrawerProps {
|
|
|
1444
2029
|
*/
|
|
1445
2030
|
declare const Drawer: React.FC<DrawerProps>;
|
|
1446
2031
|
|
|
2032
|
+
interface SheetProps {
|
|
2033
|
+
/** Řídí zobrazení sheetu. */
|
|
2034
|
+
open: boolean;
|
|
2035
|
+
/** Voláno při zavření sheetu. */
|
|
2036
|
+
onClose: () => void;
|
|
2037
|
+
/** Obsah sheetu. */
|
|
2038
|
+
children: React.ReactNode;
|
|
2039
|
+
/** Strana, ze které se sheet vysune. @default 'bottom' */
|
|
2040
|
+
side?: 'bottom' | 'right' | 'left' | 'top';
|
|
2041
|
+
/** Titulek zobrazený v záhlaví. */
|
|
2042
|
+
title?: string;
|
|
2043
|
+
/** Zobrazí zavírací tlačítko. @default true */
|
|
2044
|
+
showClose?: boolean;
|
|
2045
|
+
/** Další inline styly. */
|
|
2046
|
+
style?: React.CSSProperties;
|
|
2047
|
+
/** Dodatečná CSS třída. */
|
|
2048
|
+
className?: string;
|
|
2049
|
+
}
|
|
2050
|
+
/**
|
|
2051
|
+
* Lehký vysuvný panel, který může přijít z libovolné strany.
|
|
2052
|
+
*
|
|
2053
|
+
* Na rozdíl od Draweru je Sheet odlehčený a výchozí pozice je zdola
|
|
2054
|
+
* (vhodné pro mobilní rozhraní). Používá glass efekt a portálové vykreslení.
|
|
2055
|
+
*
|
|
2056
|
+
* @example
|
|
2057
|
+
* ```tsx
|
|
2058
|
+
* <Sheet open={isOpen} onClose={() => setOpen(false)} title="Filtry">
|
|
2059
|
+
* <p>Obsah sheetu</p>
|
|
2060
|
+
* </Sheet>
|
|
2061
|
+
* ```
|
|
2062
|
+
*/
|
|
2063
|
+
declare const Sheet: React.FC<SheetProps>;
|
|
2064
|
+
|
|
1447
2065
|
interface BreadcrumbItem {
|
|
1448
2066
|
/** Zobrazovaný text položky. */
|
|
1449
2067
|
label: string;
|
|
@@ -1721,68 +2339,170 @@ interface SpotlightProps {
|
|
|
1721
2339
|
*/
|
|
1722
2340
|
declare const Spotlight: React.FC<SpotlightProps>;
|
|
1723
2341
|
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
2342
|
+
interface CommandItem {
|
|
2343
|
+
/** Unikátní identifikátor příkazu. */
|
|
2344
|
+
id: string;
|
|
2345
|
+
/** Hlavní text příkazu. */
|
|
2346
|
+
label: string;
|
|
2347
|
+
/** Volitelný popis příkazu. */
|
|
2348
|
+
description?: string;
|
|
2349
|
+
/** Volitelná ikona příkazu. */
|
|
2350
|
+
icon?: React.ReactNode;
|
|
2351
|
+
/** Klávesová zkratka (zobrazena jako badge). */
|
|
2352
|
+
shortcut?: string;
|
|
2353
|
+
/** Voláno při výběru příkazu. */
|
|
2354
|
+
onSelect: () => void;
|
|
1732
2355
|
}
|
|
1733
|
-
interface
|
|
1734
|
-
/**
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
/**
|
|
1749
|
-
|
|
1750
|
-
* @default false
|
|
1751
|
-
*/
|
|
1752
|
-
fullWidth?: boolean;
|
|
1753
|
-
/**
|
|
1754
|
-
* Orientace segmentů.
|
|
1755
|
-
* @default 'horizontal'
|
|
1756
|
-
*/
|
|
1757
|
-
orientation?: 'horizontal' | 'vertical';
|
|
1758
|
-
/**
|
|
1759
|
-
* Zakáže celou komponentu.
|
|
1760
|
-
* @default false
|
|
1761
|
-
*/
|
|
1762
|
-
disabled?: boolean;
|
|
2356
|
+
interface CommandGroup {
|
|
2357
|
+
/** Název skupiny příkazů. */
|
|
2358
|
+
label: string;
|
|
2359
|
+
/** Položky ve skupině. */
|
|
2360
|
+
items: CommandItem[];
|
|
2361
|
+
}
|
|
2362
|
+
interface CommandMenuProps {
|
|
2363
|
+
/** Řídí zobrazení command menu. */
|
|
2364
|
+
open: boolean;
|
|
2365
|
+
/** Voláno při zavření command menu. */
|
|
2366
|
+
onClose: () => void;
|
|
2367
|
+
/** Skupiny příkazů k zobrazení. */
|
|
2368
|
+
groups: CommandGroup[];
|
|
2369
|
+
/** Placeholder text vyhledávacího pole. @default 'Zadejte příkaz...' */
|
|
2370
|
+
placeholder?: string;
|
|
2371
|
+
/** Další inline styly pro kartu. */
|
|
2372
|
+
style?: React.CSSProperties;
|
|
1763
2373
|
/** Dodatečná CSS třída. */
|
|
1764
2374
|
className?: string;
|
|
2375
|
+
}
|
|
2376
|
+
/**
|
|
2377
|
+
* Rozšířený command palette s podporou skupin příkazů a klávesových zkratek.
|
|
2378
|
+
*
|
|
2379
|
+
* Filtruje příkazy podle vyhledávacího řetězce, podporuje klávesovou
|
|
2380
|
+
* navigaci (šipky, Enter, Escape) a zobrazuje klávesové zkratky.
|
|
2381
|
+
*
|
|
2382
|
+
* @example
|
|
2383
|
+
* ```tsx
|
|
2384
|
+
* <CommandMenu
|
|
2385
|
+
* open={open}
|
|
2386
|
+
* onClose={() => setOpen(false)}
|
|
2387
|
+
* groups={[
|
|
2388
|
+
* { label: 'Akce', items: [{ id: '1', label: 'Uložit', shortcut: '⌘S', onSelect: save }] },
|
|
2389
|
+
* ]}
|
|
2390
|
+
* />
|
|
2391
|
+
* ```
|
|
2392
|
+
*/
|
|
2393
|
+
declare const CommandMenu: React.FC<CommandMenuProps>;
|
|
2394
|
+
|
|
2395
|
+
interface AppSidebarProps {
|
|
2396
|
+
/** Obsah postranního panelu (navigace, menu apod.). */
|
|
2397
|
+
children: React.ReactNode;
|
|
2398
|
+
/** Zda je panel sbalený. @default false */
|
|
2399
|
+
collapsed?: boolean;
|
|
2400
|
+
/** Voláno při změně stavu sbalení. */
|
|
2401
|
+
onCollapse?: (collapsed: boolean) => void;
|
|
2402
|
+
/** Šířka rozbalené postranní lišty v px. @default 260 */
|
|
2403
|
+
width?: number;
|
|
2404
|
+
/** Šířka sbalené postranní lišty v px. @default 64 */
|
|
2405
|
+
collapsedWidth?: number;
|
|
1765
2406
|
/** Další inline styly. */
|
|
1766
2407
|
style?: React.CSSProperties;
|
|
2408
|
+
/** Dodatečná CSS třída. */
|
|
2409
|
+
className?: string;
|
|
1767
2410
|
}
|
|
1768
2411
|
/**
|
|
1769
|
-
*
|
|
2412
|
+
* Sbaletelný postranní panel pro navigaci aplikace.
|
|
1770
2413
|
*
|
|
1771
|
-
*
|
|
1772
|
-
*
|
|
2414
|
+
* Používá glass efekt a plynulou animaci šířky. Tlačítko pro sbalení/rozbalení
|
|
2415
|
+
* si řeší konzument sám — komponenta je plně řízená přes `collapsed` a `onCollapse`.
|
|
1773
2416
|
*
|
|
1774
2417
|
* @example
|
|
1775
2418
|
* ```tsx
|
|
1776
|
-
* const [
|
|
2419
|
+
* const [collapsed, setCollapsed] = useState(false);
|
|
2420
|
+
* <AppSidebar collapsed={collapsed} onCollapse={setCollapsed}>
|
|
2421
|
+
* <button onClick={() => setCollapsed(c => !c)}>Toggle</button>
|
|
2422
|
+
* <nav>...</nav>
|
|
2423
|
+
* </AppSidebar>
|
|
2424
|
+
* ```
|
|
2425
|
+
*/
|
|
2426
|
+
declare const AppSidebar: React.FC<AppSidebarProps>;
|
|
2427
|
+
|
|
2428
|
+
interface SidebarItemProps {
|
|
2429
|
+
/** Textový popisek položky. */
|
|
2430
|
+
label: string;
|
|
2431
|
+
/** Volitelná ikona zobrazená před textem. */
|
|
2432
|
+
icon?: React.ReactNode;
|
|
2433
|
+
/** Zda je položka aktivní (vybraná). @default false */
|
|
2434
|
+
active?: boolean;
|
|
2435
|
+
/** Zda je skupina výchozně rozbalená. @default false */
|
|
2436
|
+
defaultExpanded?: boolean;
|
|
2437
|
+
/** Řízené rozbalení. Pokud zadáno, přepíše defaultExpanded. */
|
|
2438
|
+
expanded?: boolean;
|
|
2439
|
+
/** Callback při změně rozbalení. */
|
|
2440
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
2441
|
+
/** Callback při kliknutí na položku (ne na chevron). */
|
|
2442
|
+
onClick?: () => void;
|
|
2443
|
+
/** Potomci — vnořené SidebarItem komponenty. Přítomnost aktivuje rozbalovací režim. */
|
|
2444
|
+
children?: React.ReactNode;
|
|
2445
|
+
/** Zda je sidebar sbalený (jen ikona). @default false */
|
|
2446
|
+
collapsed?: boolean;
|
|
2447
|
+
/** Zakáže interakci. @default false */
|
|
2448
|
+
disabled?: boolean;
|
|
2449
|
+
/** Další inline styly. */
|
|
2450
|
+
style?: React.CSSProperties;
|
|
2451
|
+
/** Dodatečná CSS třída. */
|
|
2452
|
+
className?: string;
|
|
2453
|
+
}
|
|
2454
|
+
/**
|
|
2455
|
+
* Položka navigace pro AppSidebar.
|
|
1777
2456
|
*
|
|
1778
|
-
*
|
|
1779
|
-
*
|
|
1780
|
-
*
|
|
1781
|
-
*
|
|
1782
|
-
*
|
|
2457
|
+
* Podporuje ikonu, aktivní stav, hover efekt a vnořené položky
|
|
2458
|
+
* s animovaným rozbalováním/sbalováním.
|
|
2459
|
+
*
|
|
2460
|
+
* @example
|
|
2461
|
+
* ```tsx
|
|
2462
|
+
* <SidebarItem label="Dashboard" icon={<HouseIcon size={18} />} active onClick={...} />
|
|
2463
|
+
*
|
|
2464
|
+
* <SidebarItem label="Settings" icon={<GearIcon size={18} />} defaultExpanded>
|
|
2465
|
+
* <SidebarItem label="General" onClick={...} />
|
|
2466
|
+
* <SidebarItem label="Security" onClick={...} />
|
|
2467
|
+
* <SidebarItem label="Billing" onClick={...} />
|
|
2468
|
+
* </SidebarItem>
|
|
1783
2469
|
* ```
|
|
1784
2470
|
*/
|
|
1785
|
-
declare const
|
|
2471
|
+
declare const SidebarItem: React.FC<SidebarItemProps>;
|
|
2472
|
+
|
|
2473
|
+
interface NavbarProps {
|
|
2474
|
+
/** Logo nebo název aplikace (vykresleno vlevo). */
|
|
2475
|
+
logo?: React.ReactNode;
|
|
2476
|
+
/** Navigační obsah (vykresleno uprostřed). */
|
|
2477
|
+
children?: React.ReactNode;
|
|
2478
|
+
/** Akční prvky – tlačítka, avatar apod. (vykresleno vpravo). */
|
|
2479
|
+
actions?: React.ReactNode;
|
|
2480
|
+
/** Zda je navbar přilepený k hornímu okraji. @default true */
|
|
2481
|
+
sticky?: boolean;
|
|
2482
|
+
/** Zda použít glass efekt (průhledné pozadí s rozmazáním). @default true */
|
|
2483
|
+
glass?: boolean;
|
|
2484
|
+
/** Další inline styly. */
|
|
2485
|
+
style?: React.CSSProperties;
|
|
2486
|
+
/** Dodatečná CSS třída. */
|
|
2487
|
+
className?: string;
|
|
2488
|
+
}
|
|
2489
|
+
/**
|
|
2490
|
+
* Horní navigační lišta aplikace.
|
|
2491
|
+
*
|
|
2492
|
+
* Obsahuje tři sloty: logo (vlevo), children (uprostřed)
|
|
2493
|
+
* a actions (vpravo). Podporuje glass efekt a sticky pozici.
|
|
2494
|
+
*
|
|
2495
|
+
* @example
|
|
2496
|
+
* ```tsx
|
|
2497
|
+
* <Navbar
|
|
2498
|
+
* logo={<span>MyApp</span>}
|
|
2499
|
+
* actions={<Button size="sm">Přihlásit</Button>}
|
|
2500
|
+
* >
|
|
2501
|
+
* <a href="/about">O nás</a>
|
|
2502
|
+
* </Navbar>
|
|
2503
|
+
* ```
|
|
2504
|
+
*/
|
|
2505
|
+
declare const Navbar: React.FC<NavbarProps>;
|
|
1786
2506
|
|
|
1787
2507
|
type ToastVariant = 'info' | 'success' | 'error';
|
|
1788
2508
|
interface ToastProps {
|
|
@@ -2014,6 +2734,50 @@ interface AlertProps {
|
|
|
2014
2734
|
*/
|
|
2015
2735
|
declare const Alert: React.FC<AlertProps>;
|
|
2016
2736
|
|
|
2737
|
+
type NotificationVariant = 'info' | 'success' | 'warning' | 'error';
|
|
2738
|
+
interface NotificationProps {
|
|
2739
|
+
/** Vizuální varianta notifikace. @default 'info' */
|
|
2740
|
+
variant?: NotificationVariant;
|
|
2741
|
+
/** Titulek notifikace. */
|
|
2742
|
+
title: string;
|
|
2743
|
+
/** Obsah / popis notifikace. */
|
|
2744
|
+
children?: React.ReactNode;
|
|
2745
|
+
/** Zobrazí tlačítko zavření. @default false */
|
|
2746
|
+
closable?: boolean;
|
|
2747
|
+
/** Voláno při zavření notifikace. */
|
|
2748
|
+
onClose?: () => void;
|
|
2749
|
+
/** Vlastní ikona (nahradí výchozí ikonu varianty). */
|
|
2750
|
+
icon?: React.ReactNode;
|
|
2751
|
+
/** Akční prvek zobrazený na pravé straně (tlačítko apod.). */
|
|
2752
|
+
action?: React.ReactNode;
|
|
2753
|
+
/** Další inline styly. */
|
|
2754
|
+
style?: React.CSSProperties;
|
|
2755
|
+
/** Dodatečná CSS třída. */
|
|
2756
|
+
className?: string;
|
|
2757
|
+
}
|
|
2758
|
+
/**
|
|
2759
|
+
* Inline notifikační banner pro trvalé zobrazení v layoutu.
|
|
2760
|
+
*
|
|
2761
|
+
* Na rozdíl od `Toast` se nejedná o plovoucí overlay, ale o součást
|
|
2762
|
+
* obsahu stránky. Podporuje varianty info/success/warning/error,
|
|
2763
|
+
* volitelný akční prvek a zavírací tlačítko.
|
|
2764
|
+
*
|
|
2765
|
+
* @example
|
|
2766
|
+
* ```tsx
|
|
2767
|
+
* <Notification variant="success" title="Uloženo" closable>
|
|
2768
|
+
* Změny byly úspěšně uloženy.
|
|
2769
|
+
* </Notification>
|
|
2770
|
+
* <Notification
|
|
2771
|
+
* variant="warning"
|
|
2772
|
+
* title="Nová verze"
|
|
2773
|
+
* action={<Button size="sm">Aktualizovat</Button>}
|
|
2774
|
+
* >
|
|
2775
|
+
* Je dostupná nová verze aplikace.
|
|
2776
|
+
* </Notification>
|
|
2777
|
+
* ```
|
|
2778
|
+
*/
|
|
2779
|
+
declare const Notification: React.FC<NotificationProps>;
|
|
2780
|
+
|
|
2017
2781
|
type ProgressBarSize = 'sm' | 'md' | 'lg';
|
|
2018
2782
|
interface ProgressBarProps {
|
|
2019
2783
|
/**
|
|
@@ -2160,6 +2924,85 @@ interface SpinnerProps {
|
|
|
2160
2924
|
*/
|
|
2161
2925
|
declare const Spinner: React.FC<SpinnerProps>;
|
|
2162
2926
|
|
|
2927
|
+
interface ConfirmDialogProps {
|
|
2928
|
+
/** Řídí zobrazení potvrzovacího dialogu. */
|
|
2929
|
+
open: boolean;
|
|
2930
|
+
/** Voláno při potvrzení akce. */
|
|
2931
|
+
onConfirm: () => void;
|
|
2932
|
+
/** Voláno při zrušení (zavření) dialogu. */
|
|
2933
|
+
onCancel: () => void;
|
|
2934
|
+
/** Titulek dialogu. */
|
|
2935
|
+
title: string;
|
|
2936
|
+
/** Volitelný popis akce. */
|
|
2937
|
+
description?: string;
|
|
2938
|
+
/** Text potvrzovacího tlačítka. @default 'Potvrdit' */
|
|
2939
|
+
confirmLabel?: string;
|
|
2940
|
+
/** Text zrušovacího tlačítka. @default 'Zrušit' */
|
|
2941
|
+
cancelLabel?: string;
|
|
2942
|
+
/** Varianta dialogu – 'danger' zvýrazní potvrzovací tlačítko červeně. @default 'default' */
|
|
2943
|
+
variant?: 'default' | 'danger';
|
|
2944
|
+
/** Stav načítání potvrzovacího tlačítka. @default false */
|
|
2945
|
+
loading?: boolean;
|
|
2946
|
+
/** Další inline styly. */
|
|
2947
|
+
style?: React.CSSProperties;
|
|
2948
|
+
/** Dodatečná CSS třída. */
|
|
2949
|
+
className?: string;
|
|
2950
|
+
}
|
|
2951
|
+
/**
|
|
2952
|
+
* Předpřipravený modální dialog pro potvrzení akce.
|
|
2953
|
+
*
|
|
2954
|
+
* Interně používá komponentu `Modal`. Podporuje standardní a danger variantu
|
|
2955
|
+
* s volitelným stavem načítání.
|
|
2956
|
+
*
|
|
2957
|
+
* @example
|
|
2958
|
+
* ```tsx
|
|
2959
|
+
* <ConfirmDialog
|
|
2960
|
+
* open={isOpen}
|
|
2961
|
+
* onConfirm={handleDelete}
|
|
2962
|
+
* onCancel={() => setOpen(false)}
|
|
2963
|
+
* title="Smazat položku?"
|
|
2964
|
+
* description="Tato akce je nevratná."
|
|
2965
|
+
* variant="danger"
|
|
2966
|
+
* />
|
|
2967
|
+
* ```
|
|
2968
|
+
*/
|
|
2969
|
+
declare const ConfirmDialog: React.FC<ConfirmDialogProps>;
|
|
2970
|
+
|
|
2971
|
+
interface CopyButtonProps {
|
|
2972
|
+
/** Text ke zkopírování do schránky. */
|
|
2973
|
+
text: string;
|
|
2974
|
+
/** Vlastní obsah tlačítka (nahrazuje výchozí ikonu/text). */
|
|
2975
|
+
children?: React.ReactNode;
|
|
2976
|
+
/** Velikost tlačítka. @default 'md' */
|
|
2977
|
+
size?: 'sm' | 'md' | 'lg';
|
|
2978
|
+
/** Varianta zobrazení. @default 'icon' */
|
|
2979
|
+
variant?: 'icon' | 'button';
|
|
2980
|
+
/** Popisek tlačítka ve variantě 'button'. @default 'Kopírovat' */
|
|
2981
|
+
label?: string;
|
|
2982
|
+
/** Popisek po úspěšném zkopírování. @default 'Zkopírováno' */
|
|
2983
|
+
successLabel?: string;
|
|
2984
|
+
/** Callback volaný po úspěšném zkopírování do schránky. */
|
|
2985
|
+
onCopy?: () => void;
|
|
2986
|
+
/** Další inline styly. */
|
|
2987
|
+
style?: React.CSSProperties;
|
|
2988
|
+
/** Dodatečná CSS třída. */
|
|
2989
|
+
className?: string;
|
|
2990
|
+
}
|
|
2991
|
+
/**
|
|
2992
|
+
* Tlačítko pro zkopírování textu do schránky.
|
|
2993
|
+
*
|
|
2994
|
+
* Podporuje dvě varianty: minimální ikonovou (jen ikona kopírování)
|
|
2995
|
+
* a plnou tlačítkovou (s textem). Po úspěšném zkopírování se na 2 sekundy
|
|
2996
|
+
* zobrazí ikona zaškrtnutí.
|
|
2997
|
+
*
|
|
2998
|
+
* @example
|
|
2999
|
+
* ```tsx
|
|
3000
|
+
* <CopyButton text="npm install sm-ui" variant="button" label="Kopírovat příkaz" />
|
|
3001
|
+
* <CopyButton text={code} />
|
|
3002
|
+
* ```
|
|
3003
|
+
*/
|
|
3004
|
+
declare const CopyButton: React.FC<CopyButtonProps>;
|
|
3005
|
+
|
|
2163
3006
|
type DividerOrientation = 'horizontal' | 'vertical';
|
|
2164
3007
|
interface DividerProps {
|
|
2165
3008
|
/**
|
|
@@ -2411,4 +3254,4 @@ type Theme = 'light' | 'dark';
|
|
|
2411
3254
|
*/
|
|
2412
3255
|
declare const useTheme: () => Theme;
|
|
2413
3256
|
|
|
2414
|
-
export { Accordion, AccordionItem, type AccordionItemProps, type AccordionProps, Alert, type AlertProps, type AlertVariant, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonAsAnchorProps, type ButtonAsButtonProps, type ButtonIconPosition, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, type CheckboxSize, Container, type ContainerMaxWidth, type ContainerProps, DatePicker, DatePickerGroup, type DatePickerGroupProps, type DatePickerProps, type DatePickerSize, Divider, type DividerOrientation, type DividerProps, type DragHandleProps, DragList, type DragListItem, type DragListProps, Drawer, type DrawerProps, DropdownMenu, type DropdownMenuItem, type DropdownMenuProps, EmptyState, type EmptyStateProps, FileUpload, type FileUploadProps, Input, InputGroup, type InputGroupProps, type InputProps, type InputSize, Link, type LinkProps, type LinkVariant, Modal, type ModalProps, Pagination, type PaginationProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, type ProgressBarSize, ProgressCircle, type ProgressCircleProps, Radio, RadioGroup, type RadioGroupOption, type RadioGroupProps, type RadioProps, type RadioSize, SegmentedControl, type SegmentedControlItem, type SegmentedControlProps, type SegmentedControlSize, Select, SelectGroup, type SelectGroupProps, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderSize, Spinner, type SpinnerProps, type SpinnerSize, Spotlight, type SpotlightItem, type SpotlightProps, Stack, type StackAlign, type StackDirection, type StackJustify, type StackProps, Stat, type StatProps, 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, Toast, type ToastContextValue, type ToastOptions, type ToastPosition, type ToastProps, type ToastVariant, ToasterProvider, type ToasterProviderProps, Tooltip, type TooltipProps, type UploadedFile, useTheme, useToast };
|
|
3257
|
+
export { Accordion, AccordionItem, type AccordionItemProps, type AccordionProps, Alert, type AlertProps, type AlertVariant, AppSidebar, type AppSidebarProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonAsAnchorProps, type ButtonAsButtonProps, type ButtonIconPosition, type ButtonProps, type ButtonSize, type ButtonVariant, Calendar, type CalendarEvent, type CalendarProps, Card, type CardProps, 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, Container, type ContainerMaxWidth, type ContainerProps, CopyButton, type CopyButtonProps, DataGrid, type DataGridColumn, type DataGridProps, DataList, type DataListItem, type DataListProps, DatePicker, DatePickerGroup, type DatePickerGroupProps, type DatePickerProps, type DatePickerSize, Divider, type DividerOrientation, type DividerProps, type DragHandleProps, DragList, type DragListItem, type DragListProps, Drawer, type DrawerProps, DropdownMenu, type DropdownMenuItem, type DropdownMenuProps, EmptyState, type EmptyStateProps, FileUpload, type FileUploadProps, Input, InputGroup, type InputGroupProps, type InputProps, type InputSize, Link, type LinkProps, type LinkVariant, Modal, type ModalProps, Navbar, type NavbarProps, Notification, type NotificationProps, type NotificationVariant, NumberInput, type NumberInputProps, type NumberInputSize, type NumberInputVariant, OTPInput, type OTPInputProps, Pagination, type PaginationProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, type ProgressBarSize, ProgressCircle, type ProgressCircleProps, 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, Spinner, type SpinnerProps, type SpinnerSize, 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, useTheme, useToast };
|