@tree-ia/design-system 1.3.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/README.md +789 -0
- package/dist/index.d.mts +1069 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2927 -0
- package/dist/index.mjs.map +1 -0
- package/dist/styles.css +2 -0
- package/package.json +71 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,1069 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/Button/index.d.ts
|
|
5
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
6
|
+
variant?: "primary" | "secondary" | "danger" | "ghost";
|
|
7
|
+
size?: "sm" | "md" | "lg";
|
|
8
|
+
isLoading?: boolean;
|
|
9
|
+
icon?: React.ReactNode;
|
|
10
|
+
iconPosition?: "left" | "right";
|
|
11
|
+
}
|
|
12
|
+
declare function Button({
|
|
13
|
+
children,
|
|
14
|
+
variant,
|
|
15
|
+
size,
|
|
16
|
+
isLoading,
|
|
17
|
+
icon,
|
|
18
|
+
iconPosition,
|
|
19
|
+
className,
|
|
20
|
+
disabled,
|
|
21
|
+
...props
|
|
22
|
+
}: ButtonProps): react_jsx_runtime0.JSX.Element;
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region src/components/Input/index.d.ts
|
|
25
|
+
interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
26
|
+
label?: string;
|
|
27
|
+
error?: string;
|
|
28
|
+
children?: ReactNode;
|
|
29
|
+
}
|
|
30
|
+
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/components/Dropdown/index.d.ts
|
|
33
|
+
interface DropdownOption {
|
|
34
|
+
value: string;
|
|
35
|
+
label: string;
|
|
36
|
+
color?: string;
|
|
37
|
+
backgroundColor?: string;
|
|
38
|
+
}
|
|
39
|
+
interface DropdownProps {
|
|
40
|
+
options: DropdownOption[];
|
|
41
|
+
value?: string;
|
|
42
|
+
onChange: (value: string) => void;
|
|
43
|
+
label?: string;
|
|
44
|
+
placeholder?: string;
|
|
45
|
+
disabled?: boolean;
|
|
46
|
+
className?: string;
|
|
47
|
+
containerClassName?: string;
|
|
48
|
+
fullWidth?: boolean;
|
|
49
|
+
size?: "small" | "medium" | "large";
|
|
50
|
+
error?: string;
|
|
51
|
+
variant?: "default" | "underline" | "simple" | "compact";
|
|
52
|
+
customDropdownHeight?: string;
|
|
53
|
+
icon?: React.ReactNode;
|
|
54
|
+
fitContent?: boolean;
|
|
55
|
+
isActive?: boolean;
|
|
56
|
+
}
|
|
57
|
+
declare function Dropdown({
|
|
58
|
+
options,
|
|
59
|
+
value,
|
|
60
|
+
onChange,
|
|
61
|
+
label,
|
|
62
|
+
placeholder,
|
|
63
|
+
disabled,
|
|
64
|
+
className,
|
|
65
|
+
containerClassName,
|
|
66
|
+
fullWidth,
|
|
67
|
+
size,
|
|
68
|
+
error,
|
|
69
|
+
variant,
|
|
70
|
+
customDropdownHeight,
|
|
71
|
+
icon,
|
|
72
|
+
fitContent,
|
|
73
|
+
isActive
|
|
74
|
+
}: DropdownProps): react_jsx_runtime0.JSX.Element;
|
|
75
|
+
//#endregion
|
|
76
|
+
//#region src/components/Table/index.d.ts
|
|
77
|
+
interface TableColumn<T> {
|
|
78
|
+
key: string;
|
|
79
|
+
header: string;
|
|
80
|
+
render: (item: T) => ReactNode;
|
|
81
|
+
width?: string;
|
|
82
|
+
align?: "left" | "center" | "right";
|
|
83
|
+
sortable?: boolean;
|
|
84
|
+
}
|
|
85
|
+
interface TableProps<T> {
|
|
86
|
+
columns: TableColumn<T>[];
|
|
87
|
+
data: T[];
|
|
88
|
+
onRowClick?: (item: T) => void;
|
|
89
|
+
isLoading?: boolean;
|
|
90
|
+
emptyMessage?: string;
|
|
91
|
+
emptyIcon?: ReactNode;
|
|
92
|
+
loadingComponent?: ReactNode;
|
|
93
|
+
emptyComponent?: ReactNode;
|
|
94
|
+
keyExtractor: (item: T) => string;
|
|
95
|
+
className?: string;
|
|
96
|
+
}
|
|
97
|
+
declare function Table<T>({
|
|
98
|
+
columns,
|
|
99
|
+
data,
|
|
100
|
+
onRowClick,
|
|
101
|
+
isLoading,
|
|
102
|
+
emptyMessage,
|
|
103
|
+
emptyIcon,
|
|
104
|
+
loadingComponent,
|
|
105
|
+
emptyComponent,
|
|
106
|
+
keyExtractor,
|
|
107
|
+
className
|
|
108
|
+
}: TableProps<T>): react_jsx_runtime0.JSX.Element;
|
|
109
|
+
declare function TableHeader<T>({
|
|
110
|
+
columns
|
|
111
|
+
}: {
|
|
112
|
+
columns: TableColumn<T>[];
|
|
113
|
+
}): react_jsx_runtime0.JSX.Element;
|
|
114
|
+
declare function TableBody<T>({
|
|
115
|
+
columns,
|
|
116
|
+
data,
|
|
117
|
+
onRowClick,
|
|
118
|
+
keyExtractor
|
|
119
|
+
}: {
|
|
120
|
+
columns: TableColumn<T>[];
|
|
121
|
+
data: T[];
|
|
122
|
+
onRowClick?: (item: T) => void;
|
|
123
|
+
keyExtractor: (item: T) => string;
|
|
124
|
+
}): react_jsx_runtime0.JSX.Element;
|
|
125
|
+
declare function TableSkeleton(): react_jsx_runtime0.JSX.Element;
|
|
126
|
+
declare function TableEmpty({
|
|
127
|
+
message,
|
|
128
|
+
icon
|
|
129
|
+
}: {
|
|
130
|
+
message: string;
|
|
131
|
+
icon?: ReactNode;
|
|
132
|
+
}): react_jsx_runtime0.JSX.Element;
|
|
133
|
+
//#endregion
|
|
134
|
+
//#region src/components/Modal/index.d.ts
|
|
135
|
+
interface ModalProps {
|
|
136
|
+
isOpen: boolean;
|
|
137
|
+
onClose: () => void;
|
|
138
|
+
onSave?: () => void;
|
|
139
|
+
title?: string;
|
|
140
|
+
children: React.ReactNode;
|
|
141
|
+
showFooter?: boolean;
|
|
142
|
+
saveButtonText?: string;
|
|
143
|
+
cancelButtonText?: string;
|
|
144
|
+
size?: "small" | "medium" | "large" | "extraLarge" | "largeXl";
|
|
145
|
+
disableSaveButton?: boolean;
|
|
146
|
+
saveButtonVariant?: "primary" | "secondary" | "danger" | "ghost";
|
|
147
|
+
closeOnEscape?: boolean;
|
|
148
|
+
closeOnOverlayClick?: boolean;
|
|
149
|
+
}
|
|
150
|
+
declare function Modal({
|
|
151
|
+
isOpen,
|
|
152
|
+
onClose,
|
|
153
|
+
onSave,
|
|
154
|
+
title,
|
|
155
|
+
children,
|
|
156
|
+
showFooter,
|
|
157
|
+
saveButtonText,
|
|
158
|
+
cancelButtonText,
|
|
159
|
+
size,
|
|
160
|
+
disableSaveButton,
|
|
161
|
+
saveButtonVariant,
|
|
162
|
+
closeOnEscape,
|
|
163
|
+
closeOnOverlayClick
|
|
164
|
+
}: ModalProps): react_jsx_runtime0.JSX.Element | null;
|
|
165
|
+
//#endregion
|
|
166
|
+
//#region src/components/Card/index.d.ts
|
|
167
|
+
interface CardProps {
|
|
168
|
+
children: React.ReactNode;
|
|
169
|
+
className?: string;
|
|
170
|
+
title?: string;
|
|
171
|
+
subtitle?: string;
|
|
172
|
+
icon?: React.ReactNode;
|
|
173
|
+
headerActions?: React.ReactNode;
|
|
174
|
+
showDivider?: boolean;
|
|
175
|
+
}
|
|
176
|
+
declare function Card({
|
|
177
|
+
children,
|
|
178
|
+
className,
|
|
179
|
+
title,
|
|
180
|
+
subtitle,
|
|
181
|
+
icon,
|
|
182
|
+
headerActions,
|
|
183
|
+
showDivider
|
|
184
|
+
}: CardProps): react_jsx_runtime0.JSX.Element;
|
|
185
|
+
//#endregion
|
|
186
|
+
//#region src/components/Toast/index.d.ts
|
|
187
|
+
interface ToastProps {
|
|
188
|
+
title: string;
|
|
189
|
+
subtitle?: string;
|
|
190
|
+
type?: "success" | "error" | "warning" | "info";
|
|
191
|
+
duration?: number;
|
|
192
|
+
onClose: () => void;
|
|
193
|
+
showProgress?: boolean;
|
|
194
|
+
}
|
|
195
|
+
declare function Toast({
|
|
196
|
+
title,
|
|
197
|
+
subtitle,
|
|
198
|
+
type,
|
|
199
|
+
duration,
|
|
200
|
+
onClose,
|
|
201
|
+
showProgress
|
|
202
|
+
}: ToastProps): react_jsx_runtime0.JSX.Element;
|
|
203
|
+
//#endregion
|
|
204
|
+
//#region src/components/Loading/index.d.ts
|
|
205
|
+
interface LoadingProps {
|
|
206
|
+
size?: "sm" | "md" | "lg";
|
|
207
|
+
className?: string;
|
|
208
|
+
text?: string;
|
|
209
|
+
textColor?: string;
|
|
210
|
+
color?: string;
|
|
211
|
+
variant?: "spinner" | "border";
|
|
212
|
+
fullscreen?: boolean;
|
|
213
|
+
}
|
|
214
|
+
declare function Loading({
|
|
215
|
+
size,
|
|
216
|
+
className,
|
|
217
|
+
text,
|
|
218
|
+
textColor,
|
|
219
|
+
color,
|
|
220
|
+
variant,
|
|
221
|
+
fullscreen
|
|
222
|
+
}: LoadingProps): react_jsx_runtime0.JSX.Element;
|
|
223
|
+
//#endregion
|
|
224
|
+
//#region src/components/Pagination/index.d.ts
|
|
225
|
+
interface PaginationProps {
|
|
226
|
+
currentPage: number;
|
|
227
|
+
totalPages: number;
|
|
228
|
+
onPageChange: (page: number) => void;
|
|
229
|
+
itemsPerPage: number;
|
|
230
|
+
totalItems: number;
|
|
231
|
+
onItemsPerPageChange?: (itemsPerPage: number) => void;
|
|
232
|
+
itemsPerPageOptions?: number[];
|
|
233
|
+
showPageInfo?: boolean;
|
|
234
|
+
compact?: boolean;
|
|
235
|
+
className?: string;
|
|
236
|
+
}
|
|
237
|
+
declare function Pagination({
|
|
238
|
+
currentPage,
|
|
239
|
+
totalPages,
|
|
240
|
+
onPageChange,
|
|
241
|
+
itemsPerPage,
|
|
242
|
+
totalItems,
|
|
243
|
+
onItemsPerPageChange,
|
|
244
|
+
itemsPerPageOptions,
|
|
245
|
+
showPageInfo,
|
|
246
|
+
compact,
|
|
247
|
+
className
|
|
248
|
+
}: PaginationProps): react_jsx_runtime0.JSX.Element;
|
|
249
|
+
//#endregion
|
|
250
|
+
//#region src/components/FormField/index.d.ts
|
|
251
|
+
interface FormFieldProps {
|
|
252
|
+
label: string;
|
|
253
|
+
name: string;
|
|
254
|
+
type?: "text" | "email" | "password" | "number" | "tel";
|
|
255
|
+
value: string;
|
|
256
|
+
onChange: (value: string) => void;
|
|
257
|
+
error?: string;
|
|
258
|
+
required?: boolean;
|
|
259
|
+
placeholder?: string;
|
|
260
|
+
disabled?: boolean;
|
|
261
|
+
className?: string;
|
|
262
|
+
}
|
|
263
|
+
declare function FormField({
|
|
264
|
+
label,
|
|
265
|
+
name,
|
|
266
|
+
type,
|
|
267
|
+
value,
|
|
268
|
+
onChange,
|
|
269
|
+
error,
|
|
270
|
+
required,
|
|
271
|
+
placeholder,
|
|
272
|
+
disabled,
|
|
273
|
+
className
|
|
274
|
+
}: FormFieldProps): react_jsx_runtime0.JSX.Element;
|
|
275
|
+
//#endregion
|
|
276
|
+
//#region src/components/Tabs/index.d.ts
|
|
277
|
+
interface Tab {
|
|
278
|
+
id: string;
|
|
279
|
+
label: string;
|
|
280
|
+
count?: number;
|
|
281
|
+
icon?: ReactNode;
|
|
282
|
+
}
|
|
283
|
+
interface TabsProps {
|
|
284
|
+
tabs: Tab[];
|
|
285
|
+
activeTab: string;
|
|
286
|
+
onChange: (tabId: string) => void;
|
|
287
|
+
/** Estilo visual das tabs. Default: "underline" */
|
|
288
|
+
variant?: "underline" | "pill";
|
|
289
|
+
className?: string;
|
|
290
|
+
}
|
|
291
|
+
declare function Tabs({
|
|
292
|
+
tabs,
|
|
293
|
+
activeTab,
|
|
294
|
+
onChange,
|
|
295
|
+
variant,
|
|
296
|
+
className
|
|
297
|
+
}: TabsProps): react_jsx_runtime0.JSX.Element;
|
|
298
|
+
//#endregion
|
|
299
|
+
//#region src/components/DateRangePicker/index.d.ts
|
|
300
|
+
type DateRange = {
|
|
301
|
+
start: Date | null;
|
|
302
|
+
end: Date | null;
|
|
303
|
+
};
|
|
304
|
+
interface DateRangePickerProps {
|
|
305
|
+
value: DateRange;
|
|
306
|
+
onChange: (range: DateRange) => void;
|
|
307
|
+
locale?: "pt" | "en";
|
|
308
|
+
className?: string;
|
|
309
|
+
}
|
|
310
|
+
declare function DateRangePicker({
|
|
311
|
+
value,
|
|
312
|
+
onChange,
|
|
313
|
+
locale,
|
|
314
|
+
className
|
|
315
|
+
}: DateRangePickerProps): react_jsx_runtime0.JSX.Element;
|
|
316
|
+
//#endregion
|
|
317
|
+
//#region src/components/Title/index.d.ts
|
|
318
|
+
interface TitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
319
|
+
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
320
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl";
|
|
321
|
+
weight?: "normal" | "medium" | "semibold" | "bold" | "extrabold";
|
|
322
|
+
align?: "left" | "center" | "right";
|
|
323
|
+
color?: string;
|
|
324
|
+
}
|
|
325
|
+
declare function Title({
|
|
326
|
+
children,
|
|
327
|
+
level,
|
|
328
|
+
size,
|
|
329
|
+
weight,
|
|
330
|
+
align,
|
|
331
|
+
color,
|
|
332
|
+
className,
|
|
333
|
+
...props
|
|
334
|
+
}: TitleProps): react_jsx_runtime0.JSX.Element;
|
|
335
|
+
//#endregion
|
|
336
|
+
//#region src/components/ToggleSwitch/index.d.ts
|
|
337
|
+
interface ToggleSwitchProps {
|
|
338
|
+
enabled: boolean;
|
|
339
|
+
onChange: (enabled: boolean) => void;
|
|
340
|
+
disabled?: boolean;
|
|
341
|
+
size?: "sm" | "md" | "lg";
|
|
342
|
+
label?: string;
|
|
343
|
+
className?: string;
|
|
344
|
+
}
|
|
345
|
+
declare function ToggleSwitch({
|
|
346
|
+
enabled,
|
|
347
|
+
onChange,
|
|
348
|
+
disabled,
|
|
349
|
+
size,
|
|
350
|
+
label,
|
|
351
|
+
className
|
|
352
|
+
}: ToggleSwitchProps): react_jsx_runtime0.JSX.Element;
|
|
353
|
+
//#endregion
|
|
354
|
+
//#region src/components/BadgeStatus/index.d.ts
|
|
355
|
+
interface BadgeStatusProps {
|
|
356
|
+
label: string;
|
|
357
|
+
variant?: "success" | "warning" | "danger" | "info" | "neutral";
|
|
358
|
+
color?: string;
|
|
359
|
+
bgColor?: string;
|
|
360
|
+
size?: "sm" | "md";
|
|
361
|
+
className?: string;
|
|
362
|
+
}
|
|
363
|
+
declare function BadgeStatus({
|
|
364
|
+
label,
|
|
365
|
+
variant,
|
|
366
|
+
color,
|
|
367
|
+
bgColor,
|
|
368
|
+
size,
|
|
369
|
+
className
|
|
370
|
+
}: BadgeStatusProps): react_jsx_runtime0.JSX.Element;
|
|
371
|
+
//#endregion
|
|
372
|
+
//#region src/components/Sidebar/index.d.ts
|
|
373
|
+
interface SidebarMenuItem {
|
|
374
|
+
id: string;
|
|
375
|
+
label: string;
|
|
376
|
+
href: string;
|
|
377
|
+
icon: React.ComponentType<{
|
|
378
|
+
size?: number;
|
|
379
|
+
className?: string;
|
|
380
|
+
style?: React.CSSProperties;
|
|
381
|
+
}>;
|
|
382
|
+
}
|
|
383
|
+
interface SidebarUser {
|
|
384
|
+
name: string;
|
|
385
|
+
email: string;
|
|
386
|
+
subtitle?: string;
|
|
387
|
+
}
|
|
388
|
+
interface SidebarProps {
|
|
389
|
+
menuItems: SidebarMenuItem[];
|
|
390
|
+
logo: ReactNode;
|
|
391
|
+
collapsedLogo?: ReactNode;
|
|
392
|
+
currentPath: string;
|
|
393
|
+
linkComponent?: React.ComponentType<{
|
|
394
|
+
href: string;
|
|
395
|
+
className?: string;
|
|
396
|
+
children: ReactNode;
|
|
397
|
+
}>;
|
|
398
|
+
isCollapsed?: boolean;
|
|
399
|
+
onToggleCollapse?: () => void;
|
|
400
|
+
user?: SidebarUser;
|
|
401
|
+
onUserClick?: () => void;
|
|
402
|
+
onLogout?: () => void;
|
|
403
|
+
logoutLabel?: string;
|
|
404
|
+
className?: string;
|
|
405
|
+
}
|
|
406
|
+
declare function Sidebar({
|
|
407
|
+
menuItems,
|
|
408
|
+
logo,
|
|
409
|
+
collapsedLogo,
|
|
410
|
+
currentPath,
|
|
411
|
+
linkComponent: LinkComponent,
|
|
412
|
+
isCollapsed,
|
|
413
|
+
onToggleCollapse,
|
|
414
|
+
user,
|
|
415
|
+
onUserClick,
|
|
416
|
+
onLogout,
|
|
417
|
+
logoutLabel,
|
|
418
|
+
className
|
|
419
|
+
}: SidebarProps): react_jsx_runtime0.JSX.Element;
|
|
420
|
+
//#endregion
|
|
421
|
+
//#region src/components/ThemeSwitcher/index.d.ts
|
|
422
|
+
interface ThemeSwitcherProps {
|
|
423
|
+
className?: string;
|
|
424
|
+
}
|
|
425
|
+
declare function ThemeSwitcher({
|
|
426
|
+
className
|
|
427
|
+
}: ThemeSwitcherProps): react_jsx_runtime0.JSX.Element;
|
|
428
|
+
//#endregion
|
|
429
|
+
//#region src/components/KPICard/index.d.ts
|
|
430
|
+
type KPIValueFormat = "currency" | "number" | "percentage" | "rating";
|
|
431
|
+
interface KPICardProps {
|
|
432
|
+
title: string;
|
|
433
|
+
value: number;
|
|
434
|
+
variation: number;
|
|
435
|
+
trend: "up" | "down" | "stable";
|
|
436
|
+
format?: KPIValueFormat;
|
|
437
|
+
benchmark?: string;
|
|
438
|
+
isLoading?: boolean;
|
|
439
|
+
className?: string;
|
|
440
|
+
}
|
|
441
|
+
declare function KPICard({
|
|
442
|
+
title,
|
|
443
|
+
value,
|
|
444
|
+
variation,
|
|
445
|
+
trend,
|
|
446
|
+
format,
|
|
447
|
+
benchmark,
|
|
448
|
+
isLoading,
|
|
449
|
+
className
|
|
450
|
+
}: KPICardProps): react_jsx_runtime0.JSX.Element;
|
|
451
|
+
//#endregion
|
|
452
|
+
//#region src/components/PageLayout/index.d.ts
|
|
453
|
+
interface PageLayoutProps {
|
|
454
|
+
/** Titulo principal da pagina */
|
|
455
|
+
title: string;
|
|
456
|
+
/** Descricao opcional da pagina (aparece abaixo do titulo) */
|
|
457
|
+
description?: string;
|
|
458
|
+
/** Componentes de filtros ou acoes para o header (ex: PeriodFilter, botoes) */
|
|
459
|
+
headerActions?: ReactNode;
|
|
460
|
+
/** Conteudo principal da pagina */
|
|
461
|
+
children: ReactNode;
|
|
462
|
+
/** Se true, aplica padding no conteudo. Default: true */
|
|
463
|
+
contentPadding?: boolean;
|
|
464
|
+
/** Componente de sidebar a ser renderizado */
|
|
465
|
+
sidebar?: ReactNode;
|
|
466
|
+
/** Se a sidebar esta recolhida */
|
|
467
|
+
sidebarCollapsed?: boolean;
|
|
468
|
+
/** Largura da sidebar expandida em px. Default: 280 */
|
|
469
|
+
sidebarWidth?: number;
|
|
470
|
+
/** Largura da sidebar recolhida em px. Default: 109 */
|
|
471
|
+
sidebarCollapsedWidth?: number;
|
|
472
|
+
className?: string;
|
|
473
|
+
}
|
|
474
|
+
declare function PageLayout({
|
|
475
|
+
title,
|
|
476
|
+
description,
|
|
477
|
+
headerActions,
|
|
478
|
+
children,
|
|
479
|
+
contentPadding,
|
|
480
|
+
sidebar,
|
|
481
|
+
sidebarCollapsed,
|
|
482
|
+
sidebarWidth,
|
|
483
|
+
sidebarCollapsedWidth,
|
|
484
|
+
className
|
|
485
|
+
}: PageLayoutProps): react_jsx_runtime0.JSX.Element;
|
|
486
|
+
//#endregion
|
|
487
|
+
//#region src/components/ComparisonLineChart/index.d.ts
|
|
488
|
+
interface ComparisonLineChartProps {
|
|
489
|
+
/** Labels do eixo X (ex: datas) */
|
|
490
|
+
labels: string[];
|
|
491
|
+
/** Dados do periodo atual */
|
|
492
|
+
currentPeriodData: number[];
|
|
493
|
+
/** Dados do periodo anterior */
|
|
494
|
+
previousPeriodData: number[];
|
|
495
|
+
/** Label da legenda do periodo atual */
|
|
496
|
+
currentPeriodLabel?: string;
|
|
497
|
+
/** Label da legenda do periodo anterior */
|
|
498
|
+
previousPeriodLabel?: string;
|
|
499
|
+
/** Titulo do grafico */
|
|
500
|
+
title?: string;
|
|
501
|
+
/** Cor principal (default: --dashboard-primary) */
|
|
502
|
+
color?: string;
|
|
503
|
+
/** Altura do container do grafico em px. Default: 300 */
|
|
504
|
+
height?: number;
|
|
505
|
+
className?: string;
|
|
506
|
+
}
|
|
507
|
+
declare function ComparisonLineChart({
|
|
508
|
+
labels,
|
|
509
|
+
currentPeriodData,
|
|
510
|
+
previousPeriodData,
|
|
511
|
+
currentPeriodLabel,
|
|
512
|
+
previousPeriodLabel,
|
|
513
|
+
title,
|
|
514
|
+
color,
|
|
515
|
+
height,
|
|
516
|
+
className
|
|
517
|
+
}: ComparisonLineChartProps): react_jsx_runtime0.JSX.Element;
|
|
518
|
+
//#endregion
|
|
519
|
+
//#region src/components/HorizontalBarChart/index.d.ts
|
|
520
|
+
interface HorizontalBarChartTab {
|
|
521
|
+
id: string;
|
|
522
|
+
label: string;
|
|
523
|
+
}
|
|
524
|
+
interface HorizontalBarChartProps {
|
|
525
|
+
/** Labels do eixo Y (ex: horarios) */
|
|
526
|
+
labels: string[];
|
|
527
|
+
/** Dados por tab. Chave = tab.id, valor = array de numeros */
|
|
528
|
+
datasets: Record<string, number[]>;
|
|
529
|
+
/** Tabs para alternar entre datasets */
|
|
530
|
+
tabs?: HorizontalBarChartTab[];
|
|
531
|
+
/** Titulo do grafico */
|
|
532
|
+
title?: string;
|
|
533
|
+
/** Icone ao lado do titulo */
|
|
534
|
+
titleIcon?: React.ReactNode;
|
|
535
|
+
/** Cor das barras (default: --dashboard-primary) */
|
|
536
|
+
color?: string;
|
|
537
|
+
/** Label para tooltip (ex: "vendas", "pedidos") */
|
|
538
|
+
valueLabel?: string;
|
|
539
|
+
/** Label no singular (ex: "venda", "pedido") */
|
|
540
|
+
valueLabelSingular?: string;
|
|
541
|
+
/** Texto para melhor item (ex: "Melhor horário") */
|
|
542
|
+
bestItemLabel?: string;
|
|
543
|
+
className?: string;
|
|
544
|
+
}
|
|
545
|
+
declare function HorizontalBarChart({
|
|
546
|
+
labels,
|
|
547
|
+
datasets,
|
|
548
|
+
tabs,
|
|
549
|
+
title,
|
|
550
|
+
titleIcon,
|
|
551
|
+
color,
|
|
552
|
+
valueLabel,
|
|
553
|
+
valueLabelSingular,
|
|
554
|
+
bestItemLabel,
|
|
555
|
+
className
|
|
556
|
+
}: HorizontalBarChartProps): react_jsx_runtime0.JSX.Element;
|
|
557
|
+
//#endregion
|
|
558
|
+
//#region src/components/VerticalBarChart/index.d.ts
|
|
559
|
+
interface VerticalBarChartProps {
|
|
560
|
+
/** Labels do eixo X (ex: dias da semana) */
|
|
561
|
+
labels: string[];
|
|
562
|
+
/** Valores para cada label */
|
|
563
|
+
data: number[];
|
|
564
|
+
/** Titulo do grafico */
|
|
565
|
+
title?: string;
|
|
566
|
+
/** Icone ao lado do titulo */
|
|
567
|
+
titleIcon?: React.ReactNode;
|
|
568
|
+
/** Cor das barras (default: --dashboard-primary) */
|
|
569
|
+
color?: string;
|
|
570
|
+
/** Label do tooltip (ex: "vendas") */
|
|
571
|
+
valueLabel?: string;
|
|
572
|
+
/** Label no singular (ex: "venda") */
|
|
573
|
+
valueLabelSingular?: string;
|
|
574
|
+
/** Texto para melhor item (ex: "Melhor dia") */
|
|
575
|
+
bestItemLabel?: string;
|
|
576
|
+
/** Maximo de caracteres dos labels. Default: 3 */
|
|
577
|
+
labelMaxChars?: number;
|
|
578
|
+
className?: string;
|
|
579
|
+
}
|
|
580
|
+
declare function VerticalBarChart({
|
|
581
|
+
labels,
|
|
582
|
+
data: values,
|
|
583
|
+
title,
|
|
584
|
+
titleIcon,
|
|
585
|
+
color,
|
|
586
|
+
valueLabel,
|
|
587
|
+
valueLabelSingular,
|
|
588
|
+
bestItemLabel,
|
|
589
|
+
labelMaxChars,
|
|
590
|
+
className
|
|
591
|
+
}: VerticalBarChartProps): react_jsx_runtime0.JSX.Element;
|
|
592
|
+
//#endregion
|
|
593
|
+
//#region src/components/ProgressBarList/index.d.ts
|
|
594
|
+
interface ProgressBarListItem {
|
|
595
|
+
/** Label do item */
|
|
596
|
+
label: string;
|
|
597
|
+
/** Valor numerico */
|
|
598
|
+
value: number;
|
|
599
|
+
/** Icone opcional */
|
|
600
|
+
icon?: ReactNode;
|
|
601
|
+
}
|
|
602
|
+
interface ProgressBarListProps {
|
|
603
|
+
/** Itens da lista */
|
|
604
|
+
items: ProgressBarListItem[];
|
|
605
|
+
/** Titulo da lista */
|
|
606
|
+
title?: string;
|
|
607
|
+
/** Icone ao lado do titulo */
|
|
608
|
+
titleIcon?: ReactNode;
|
|
609
|
+
/** Cor da barra de progresso (default: --dashboard-primary) */
|
|
610
|
+
color?: string;
|
|
611
|
+
/** Label do valor (ex: "vendas") */
|
|
612
|
+
valueLabel?: string;
|
|
613
|
+
/** Label no singular (ex: "venda") */
|
|
614
|
+
valueLabelSingular?: string;
|
|
615
|
+
/** Ordenar automaticamente por valor desc. Default: true */
|
|
616
|
+
sortByValue?: boolean;
|
|
617
|
+
/** Formatar valor customizado */
|
|
618
|
+
formatValue?: (value: number) => string;
|
|
619
|
+
className?: string;
|
|
620
|
+
}
|
|
621
|
+
declare function ProgressBarList({
|
|
622
|
+
items,
|
|
623
|
+
title,
|
|
624
|
+
titleIcon,
|
|
625
|
+
color,
|
|
626
|
+
valueLabel,
|
|
627
|
+
valueLabelSingular,
|
|
628
|
+
sortByValue,
|
|
629
|
+
formatValue,
|
|
630
|
+
className
|
|
631
|
+
}: ProgressBarListProps): react_jsx_runtime0.JSX.Element;
|
|
632
|
+
//#endregion
|
|
633
|
+
//#region src/components/MetricPanel/index.d.ts
|
|
634
|
+
interface MetricPanelMetric {
|
|
635
|
+
/** Chave unica da metrica */
|
|
636
|
+
key: string;
|
|
637
|
+
/** Label exibida na tab e KPI */
|
|
638
|
+
label: string;
|
|
639
|
+
/** Icone da tab */
|
|
640
|
+
icon: React.ComponentType<{
|
|
641
|
+
className?: string;
|
|
642
|
+
}>;
|
|
643
|
+
/** Label da legenda do periodo atual */
|
|
644
|
+
currentLabel: string;
|
|
645
|
+
/** Label da legenda do periodo anterior */
|
|
646
|
+
previousLabel: string;
|
|
647
|
+
/** Formato do valor */
|
|
648
|
+
format: KPIValueFormat;
|
|
649
|
+
/** Unidade opcional (ex: "pedidos") */
|
|
650
|
+
unit?: string;
|
|
651
|
+
/** Valores do KPI */
|
|
652
|
+
kpiValue: {
|
|
653
|
+
current: number;
|
|
654
|
+
previous: number;
|
|
655
|
+
variation: number;
|
|
656
|
+
trend: "up" | "down" | "stable";
|
|
657
|
+
};
|
|
658
|
+
}
|
|
659
|
+
interface MetricPanelChartData {
|
|
660
|
+
labels: string[];
|
|
661
|
+
metrics: Record<string, {
|
|
662
|
+
currentPeriod: number[];
|
|
663
|
+
previousPeriod: number[];
|
|
664
|
+
}>;
|
|
665
|
+
}
|
|
666
|
+
interface MetricPanelProps {
|
|
667
|
+
/** Titulo do painel */
|
|
668
|
+
title: string;
|
|
669
|
+
/** Icone do titulo */
|
|
670
|
+
titleIcon: React.ComponentType<{
|
|
671
|
+
className?: string;
|
|
672
|
+
}>;
|
|
673
|
+
/** Configuracoes das metricas */
|
|
674
|
+
metrics: MetricPanelMetric[];
|
|
675
|
+
/** Dados do grafico */
|
|
676
|
+
chartData: MetricPanelChartData;
|
|
677
|
+
/** Cor principal */
|
|
678
|
+
color?: string;
|
|
679
|
+
/** Cor secundaria (periodo anterior) */
|
|
680
|
+
secondaryColor?: string;
|
|
681
|
+
/** Callback do botao de acao */
|
|
682
|
+
onActionClick?: () => void;
|
|
683
|
+
/** Label do botao de acao */
|
|
684
|
+
actionLabel?: string;
|
|
685
|
+
/** Estado de loading */
|
|
686
|
+
isLoading?: boolean;
|
|
687
|
+
className?: string;
|
|
688
|
+
}
|
|
689
|
+
declare function MetricPanel({
|
|
690
|
+
title,
|
|
691
|
+
titleIcon: TitleIcon,
|
|
692
|
+
metrics,
|
|
693
|
+
chartData,
|
|
694
|
+
color,
|
|
695
|
+
secondaryColor,
|
|
696
|
+
onActionClick,
|
|
697
|
+
actionLabel,
|
|
698
|
+
isLoading,
|
|
699
|
+
className
|
|
700
|
+
}: MetricPanelProps): react_jsx_runtime0.JSX.Element;
|
|
701
|
+
//#endregion
|
|
702
|
+
//#region src/components/FilterBar/index.d.ts
|
|
703
|
+
interface FilterBarProps {
|
|
704
|
+
/** Valor do campo de busca */
|
|
705
|
+
searchValue?: string;
|
|
706
|
+
/** Callback de mudanca do campo de busca */
|
|
707
|
+
onSearchChange?: (value: string) => void;
|
|
708
|
+
/** Placeholder do campo de busca */
|
|
709
|
+
searchPlaceholder?: string;
|
|
710
|
+
/** Slot para dropdowns, date pickers e outros filtros */
|
|
711
|
+
children?: ReactNode;
|
|
712
|
+
/** Slot para acoes extras (ex: botao de exportar) */
|
|
713
|
+
actions?: ReactNode;
|
|
714
|
+
className?: string;
|
|
715
|
+
}
|
|
716
|
+
declare function FilterBar({
|
|
717
|
+
searchValue,
|
|
718
|
+
onSearchChange,
|
|
719
|
+
searchPlaceholder,
|
|
720
|
+
children,
|
|
721
|
+
actions,
|
|
722
|
+
className
|
|
723
|
+
}: FilterBarProps): react_jsx_runtime0.JSX.Element;
|
|
724
|
+
//#endregion
|
|
725
|
+
//#region src/components/AuthLayout/index.d.ts
|
|
726
|
+
interface AuthField {
|
|
727
|
+
/** Unique name / id for the field */
|
|
728
|
+
name: string;
|
|
729
|
+
/** Label displayed above the input (omit for placeholder-only mode) */
|
|
730
|
+
label?: string;
|
|
731
|
+
/** HTML input type */
|
|
732
|
+
type?: "text" | "email" | "password" | "tel" | "number";
|
|
733
|
+
/** Placeholder text */
|
|
734
|
+
placeholder?: string;
|
|
735
|
+
/** Whether the field is required */
|
|
736
|
+
required?: boolean;
|
|
737
|
+
/** Minimum length for validation */
|
|
738
|
+
minLength?: number;
|
|
739
|
+
/** Field-level error message */
|
|
740
|
+
error?: string;
|
|
741
|
+
}
|
|
742
|
+
interface AuthLink {
|
|
743
|
+
/** Link text */
|
|
744
|
+
label: string;
|
|
745
|
+
/** URL or click handler */
|
|
746
|
+
href?: string;
|
|
747
|
+
/** Custom click handler (takes precedence over href) */
|
|
748
|
+
onClick?: () => void;
|
|
749
|
+
}
|
|
750
|
+
interface AuthCheckbox {
|
|
751
|
+
/** Checkbox name */
|
|
752
|
+
name: string;
|
|
753
|
+
/** Checkbox label */
|
|
754
|
+
label: string;
|
|
755
|
+
/** Whether checked */
|
|
756
|
+
checked?: boolean;
|
|
757
|
+
/** Change handler */
|
|
758
|
+
onChange?: (checked: boolean) => void;
|
|
759
|
+
}
|
|
760
|
+
interface AuthBackground {
|
|
761
|
+
/** Solid color, gradient, or CSS value for the page background */
|
|
762
|
+
color?: string;
|
|
763
|
+
/** Background image URL or element (for Next.js Image support) */
|
|
764
|
+
image?: string;
|
|
765
|
+
/** React element for the background (e.g., next/image with fill) */
|
|
766
|
+
imageElement?: ReactNode;
|
|
767
|
+
/** Overlay opacity (0-1) — rendered as bg-black/{opacity} */
|
|
768
|
+
overlayOpacity?: number;
|
|
769
|
+
/** Custom CSS for the background container */
|
|
770
|
+
style?: React.CSSProperties;
|
|
771
|
+
}
|
|
772
|
+
interface AuthHeadline {
|
|
773
|
+
/** Main headline text */
|
|
774
|
+
text: string;
|
|
775
|
+
/** Highlighted / accent portion (rendered on new line if not found inside text) */
|
|
776
|
+
highlight?: string;
|
|
777
|
+
/** Color of the main text (defaults to #faf3e1) */
|
|
778
|
+
color?: string;
|
|
779
|
+
/** Color of the highlighted text (defaults to primaryColor) */
|
|
780
|
+
highlightColor?: string;
|
|
781
|
+
}
|
|
782
|
+
interface AuthBranding {
|
|
783
|
+
/** Array of logo elements to render at the bottom-left */
|
|
784
|
+
logos: ReactNode[];
|
|
785
|
+
}
|
|
786
|
+
interface AuthCardStyle {
|
|
787
|
+
/** Card background color (defaults to #faf3e1) */
|
|
788
|
+
background?: string;
|
|
789
|
+
/** Card border radius in px (defaults to 16 = rounded-2xl) */
|
|
790
|
+
borderRadius?: number;
|
|
791
|
+
/** Card box shadow CSS */
|
|
792
|
+
shadow?: string;
|
|
793
|
+
/** Card max width in px (defaults to 420) */
|
|
794
|
+
maxWidth?: number;
|
|
795
|
+
/** Card padding in px (defaults to 32 = p-8) */
|
|
796
|
+
padding?: number;
|
|
797
|
+
/** Card border */
|
|
798
|
+
border?: string;
|
|
799
|
+
}
|
|
800
|
+
interface AuthLayoutProps {
|
|
801
|
+
/** Logo element displayed at top of card */
|
|
802
|
+
logo?: ReactNode;
|
|
803
|
+
/** Page title (e.g., "Painel de Controle") */
|
|
804
|
+
title: string;
|
|
805
|
+
/** Subtitle / description below the title (supports ReactNode for inline formatting) */
|
|
806
|
+
subtitle?: ReactNode;
|
|
807
|
+
/** Global error message displayed above the form */
|
|
808
|
+
error?: string;
|
|
809
|
+
/** Global success message displayed above the form */
|
|
810
|
+
success?: string;
|
|
811
|
+
/** Form field definitions */
|
|
812
|
+
fields: AuthField[];
|
|
813
|
+
/** Current field values keyed by field name */
|
|
814
|
+
values: Record<string, string>;
|
|
815
|
+
/** Callback when a field value changes */
|
|
816
|
+
onFieldChange: (name: string, value: string) => void;
|
|
817
|
+
/** Submit handler */
|
|
818
|
+
onSubmit: (values: Record<string, string>) => void;
|
|
819
|
+
/** Submit button label */
|
|
820
|
+
submitLabel?: string;
|
|
821
|
+
/** Loading label while submitting */
|
|
822
|
+
loadingLabel?: string;
|
|
823
|
+
/** Whether the form is currently submitting */
|
|
824
|
+
isLoading?: boolean;
|
|
825
|
+
/** Checkbox between fields and submit (e.g., "Lembrar conta") */
|
|
826
|
+
checkbox?: AuthCheckbox;
|
|
827
|
+
/** Primary link below the form */
|
|
828
|
+
primaryLink?: AuthLink;
|
|
829
|
+
/** Secondary link / text (e.g., "Ainda nao tem cadastro? Cadastre-se") */
|
|
830
|
+
secondaryLink?: AuthLink & {
|
|
831
|
+
prefix?: string;
|
|
832
|
+
};
|
|
833
|
+
/** Content rendered between the submit button and the links */
|
|
834
|
+
extraContent?: ReactNode;
|
|
835
|
+
/** Content rendered above the form (below title/subtitle) */
|
|
836
|
+
headerContent?: ReactNode;
|
|
837
|
+
/** Content rendered just above the submit button (e.g., resend code link) */
|
|
838
|
+
beforeSubmitContent?: ReactNode;
|
|
839
|
+
/** Content rendered at the very bottom of the card */
|
|
840
|
+
footerContent?: ReactNode;
|
|
841
|
+
/** Headline text displayed over the background (top-left, hidden on mobile) */
|
|
842
|
+
headline?: AuthHeadline;
|
|
843
|
+
/** Branding logos at the bottom-left over the background (hidden on mobile) */
|
|
844
|
+
branding?: AuthBranding;
|
|
845
|
+
/** Card horizontal position */
|
|
846
|
+
cardPosition?: "left" | "center" | "right";
|
|
847
|
+
/** Right padding for the card container on lg screens (defaults to 256 = pr-64) */
|
|
848
|
+
cardOffsetRight?: number;
|
|
849
|
+
/** Background configuration */
|
|
850
|
+
background?: AuthBackground;
|
|
851
|
+
/** Card styling overrides */
|
|
852
|
+
cardStyle?: AuthCardStyle;
|
|
853
|
+
/** Primary color (buttons, links, focus rings, checkbox). Defaults to #ff521d */
|
|
854
|
+
primaryColor?: string;
|
|
855
|
+
/** Text color for the title */
|
|
856
|
+
titleColor?: string;
|
|
857
|
+
/** Text alignment for the card header (title + subtitle). Defaults to "center" */
|
|
858
|
+
titleAlign?: "left" | "center" | "right";
|
|
859
|
+
/** Additional class name for the outermost container */
|
|
860
|
+
className?: string;
|
|
861
|
+
}
|
|
862
|
+
declare function AuthLayout({
|
|
863
|
+
logo,
|
|
864
|
+
title,
|
|
865
|
+
subtitle,
|
|
866
|
+
error,
|
|
867
|
+
success,
|
|
868
|
+
fields,
|
|
869
|
+
values,
|
|
870
|
+
onFieldChange,
|
|
871
|
+
onSubmit,
|
|
872
|
+
submitLabel,
|
|
873
|
+
loadingLabel,
|
|
874
|
+
isLoading,
|
|
875
|
+
checkbox,
|
|
876
|
+
primaryLink,
|
|
877
|
+
secondaryLink,
|
|
878
|
+
extraContent,
|
|
879
|
+
headerContent,
|
|
880
|
+
beforeSubmitContent,
|
|
881
|
+
footerContent,
|
|
882
|
+
headline,
|
|
883
|
+
branding,
|
|
884
|
+
cardPosition,
|
|
885
|
+
cardOffsetRight,
|
|
886
|
+
background,
|
|
887
|
+
cardStyle,
|
|
888
|
+
primaryColor,
|
|
889
|
+
titleColor,
|
|
890
|
+
titleAlign,
|
|
891
|
+
className
|
|
892
|
+
}: AuthLayoutProps): react_jsx_runtime0.JSX.Element;
|
|
893
|
+
//#endregion
|
|
894
|
+
//#region src/components/CodeInput/index.d.ts
|
|
895
|
+
interface CodeInputProps {
|
|
896
|
+
/** Number of digit boxes (defaults to 6) */
|
|
897
|
+
length?: number;
|
|
898
|
+
/** Current value as a string (e.g. "12" for the first two digits filled) */
|
|
899
|
+
value: string;
|
|
900
|
+
/** Called with the full string whenever a digit changes */
|
|
901
|
+
onChange: (value: string) => void;
|
|
902
|
+
/** Disable all inputs */
|
|
903
|
+
disabled?: boolean;
|
|
904
|
+
/** Show error styling */
|
|
905
|
+
error?: boolean;
|
|
906
|
+
/** Primary / accent color for focused box border */
|
|
907
|
+
primaryColor?: string;
|
|
908
|
+
/** Additional className on the container */
|
|
909
|
+
className?: string;
|
|
910
|
+
}
|
|
911
|
+
declare function CodeInput({
|
|
912
|
+
length,
|
|
913
|
+
value,
|
|
914
|
+
onChange,
|
|
915
|
+
disabled,
|
|
916
|
+
error,
|
|
917
|
+
primaryColor,
|
|
918
|
+
className
|
|
919
|
+
}: CodeInputProps): react_jsx_runtime0.JSX.Element;
|
|
920
|
+
//#endregion
|
|
921
|
+
//#region src/components/Checkbox/index.d.ts
|
|
922
|
+
interface CheckboxProps {
|
|
923
|
+
/** Input name */
|
|
924
|
+
name?: string;
|
|
925
|
+
/** Input id (defaults to name) */
|
|
926
|
+
id?: string;
|
|
927
|
+
/** Label text next to the checkbox */
|
|
928
|
+
label?: string;
|
|
929
|
+
/** Whether checked */
|
|
930
|
+
checked?: boolean;
|
|
931
|
+
/** Change handler */
|
|
932
|
+
onChange?: (checked: boolean) => void;
|
|
933
|
+
/** Disable the checkbox */
|
|
934
|
+
disabled?: boolean;
|
|
935
|
+
/** Size variant */
|
|
936
|
+
size?: "sm" | "md" | "lg";
|
|
937
|
+
/** Primary color override for checked state. Defaults to --dashboard-primary / #ff521d */
|
|
938
|
+
primaryColor?: string;
|
|
939
|
+
/** Additional className on the wrapper label */
|
|
940
|
+
className?: string;
|
|
941
|
+
/** Children rendered as label (takes precedence over label prop) */
|
|
942
|
+
children?: React.ReactNode;
|
|
943
|
+
}
|
|
944
|
+
declare function Checkbox({
|
|
945
|
+
name,
|
|
946
|
+
id,
|
|
947
|
+
label,
|
|
948
|
+
checked,
|
|
949
|
+
onChange,
|
|
950
|
+
disabled,
|
|
951
|
+
size,
|
|
952
|
+
primaryColor,
|
|
953
|
+
className,
|
|
954
|
+
children
|
|
955
|
+
}: CheckboxProps): react_jsx_runtime0.JSX.Element;
|
|
956
|
+
//#endregion
|
|
957
|
+
//#region src/config/types.d.ts
|
|
958
|
+
interface ThemeColors {
|
|
959
|
+
primary: string;
|
|
960
|
+
secondary: string;
|
|
961
|
+
background: string;
|
|
962
|
+
surface: string;
|
|
963
|
+
textPrimary: string;
|
|
964
|
+
textSecondary: string;
|
|
965
|
+
statusSuccess: string;
|
|
966
|
+
statusDanger: string;
|
|
967
|
+
statusWarning: string;
|
|
968
|
+
statusInfo: string;
|
|
969
|
+
statusNeutral: string;
|
|
970
|
+
}
|
|
971
|
+
interface ComponentsConfig {
|
|
972
|
+
modal: {
|
|
973
|
+
closeOnEscape: boolean;
|
|
974
|
+
closeOnOverlayClick: boolean;
|
|
975
|
+
};
|
|
976
|
+
toast: {
|
|
977
|
+
duration: number;
|
|
978
|
+
position: "top-right" | "top-left" | "bottom-right" | "bottom-left";
|
|
979
|
+
};
|
|
980
|
+
notification: {
|
|
981
|
+
duration: number;
|
|
982
|
+
};
|
|
983
|
+
pagination: {
|
|
984
|
+
itemsPerPageOptions: number[];
|
|
985
|
+
defaultItemsPerPage: number;
|
|
986
|
+
};
|
|
987
|
+
}
|
|
988
|
+
interface DashboardConfig {
|
|
989
|
+
name: string;
|
|
990
|
+
colors: ThemeColors;
|
|
991
|
+
components: ComponentsConfig;
|
|
992
|
+
}
|
|
993
|
+
//#endregion
|
|
994
|
+
//#region src/providers/DashboardProvider.d.ts
|
|
995
|
+
type DeepPartial$1<T> = { [P in keyof T]?: T[P] extends object ? DeepPartial$1<T[P]> : T[P] };
|
|
996
|
+
interface DashboardProviderProps {
|
|
997
|
+
config?: DeepPartial$1<DashboardConfig>;
|
|
998
|
+
children: React.ReactNode;
|
|
999
|
+
}
|
|
1000
|
+
declare function DashboardProvider({
|
|
1001
|
+
config: configOverrides,
|
|
1002
|
+
children
|
|
1003
|
+
}: DashboardProviderProps): react_jsx_runtime0.JSX.Element;
|
|
1004
|
+
//#endregion
|
|
1005
|
+
//#region src/providers/ThemeProvider.d.ts
|
|
1006
|
+
declare function ThemeProvider({
|
|
1007
|
+
children
|
|
1008
|
+
}: {
|
|
1009
|
+
children: React.ReactNode;
|
|
1010
|
+
}): react_jsx_runtime0.JSX.Element;
|
|
1011
|
+
//#endregion
|
|
1012
|
+
//#region src/providers/LoadingProvider.d.ts
|
|
1013
|
+
declare function LoadingProvider({
|
|
1014
|
+
children
|
|
1015
|
+
}: {
|
|
1016
|
+
children: React.ReactNode;
|
|
1017
|
+
}): react_jsx_runtime0.JSX.Element;
|
|
1018
|
+
//#endregion
|
|
1019
|
+
//#region src/providers/NotificationsProvider.d.ts
|
|
1020
|
+
declare function NotificationsProvider({
|
|
1021
|
+
children
|
|
1022
|
+
}: {
|
|
1023
|
+
children: React.ReactNode;
|
|
1024
|
+
}): react_jsx_runtime0.JSX.Element;
|
|
1025
|
+
//#endregion
|
|
1026
|
+
//#region src/hooks/useTheme.d.ts
|
|
1027
|
+
type Theme = "light" | "dark" | "system";
|
|
1028
|
+
interface ThemeContextType {
|
|
1029
|
+
theme: Theme;
|
|
1030
|
+
setTheme: (theme: Theme) => void;
|
|
1031
|
+
resolvedTheme: "light" | "dark";
|
|
1032
|
+
}
|
|
1033
|
+
declare function useTheme(): ThemeContextType;
|
|
1034
|
+
//#endregion
|
|
1035
|
+
//#region src/hooks/useConfig.d.ts
|
|
1036
|
+
declare function useConfig(): DashboardConfig;
|
|
1037
|
+
//#endregion
|
|
1038
|
+
//#region src/hooks/useLoading.d.ts
|
|
1039
|
+
interface LoadingContextType {
|
|
1040
|
+
isLoading: boolean;
|
|
1041
|
+
showLoading: () => void;
|
|
1042
|
+
hideLoading: () => void;
|
|
1043
|
+
}
|
|
1044
|
+
declare function useLoading(): LoadingContextType;
|
|
1045
|
+
//#endregion
|
|
1046
|
+
//#region src/hooks/useNotifications.d.ts
|
|
1047
|
+
interface Notification {
|
|
1048
|
+
id: string;
|
|
1049
|
+
title: string;
|
|
1050
|
+
subtitle: string;
|
|
1051
|
+
type: "success" | "error" | "warning" | "info";
|
|
1052
|
+
}
|
|
1053
|
+
interface NotificationsContextType {
|
|
1054
|
+
notifications: Notification[];
|
|
1055
|
+
addNotification: (notification: Omit<Notification, "id">) => void;
|
|
1056
|
+
removeNotification: (id: string) => void;
|
|
1057
|
+
clearNotifications: () => void;
|
|
1058
|
+
}
|
|
1059
|
+
declare function useNotifications(): NotificationsContextType;
|
|
1060
|
+
//#endregion
|
|
1061
|
+
//#region src/config/createConfig.d.ts
|
|
1062
|
+
type DeepPartial<T> = { [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P] };
|
|
1063
|
+
declare function createConfig(overrides?: DeepPartial<DashboardConfig>): DashboardConfig;
|
|
1064
|
+
//#endregion
|
|
1065
|
+
//#region src/config/defaults.d.ts
|
|
1066
|
+
declare const defaultConfig: DashboardConfig;
|
|
1067
|
+
//#endregion
|
|
1068
|
+
export { type AuthBackground, type AuthBranding, type AuthCardStyle, type AuthCheckbox, type AuthField, type AuthHeadline, AuthLayout, type AuthLayoutProps, type AuthLink, BadgeStatus, type BadgeStatusProps, Button, type ButtonProps, Card, type CardProps, Checkbox, type CheckboxProps, CodeInput, type CodeInputProps, ComparisonLineChart, type ComparisonLineChartProps, type ComponentsConfig, type DashboardConfig, DashboardProvider, type DateRange, DateRangePicker, type DateRangePickerProps, Dropdown, type DropdownOption, type DropdownProps, FilterBar, type FilterBarProps, FormField, type FormFieldProps, HorizontalBarChart, type HorizontalBarChartProps, type HorizontalBarChartTab, Input, type InputProps, KPICard, type KPICardProps, type KPIValueFormat, Loading, type LoadingContextType, type LoadingProps, LoadingProvider, MetricPanel, type MetricPanelChartData, type MetricPanelMetric, type MetricPanelProps, Modal, type ModalProps, type Notification, type NotificationsContextType, NotificationsProvider, PageLayout, type PageLayoutProps, Pagination, type PaginationProps, ProgressBarList, type ProgressBarListItem, type ProgressBarListProps, Sidebar, type SidebarMenuItem, type SidebarProps, type SidebarUser, type Tab, Table, TableBody, type TableColumn, TableEmpty, TableHeader, type TableProps, TableSkeleton, Tabs, type TabsProps, type Theme, type ThemeColors, type ThemeContextType, ThemeProvider, ThemeSwitcher, type ThemeSwitcherProps, Title, type TitleProps, Toast, type ToastProps, ToggleSwitch, type ToggleSwitchProps, VerticalBarChart, type VerticalBarChartProps, createConfig, defaultConfig, useConfig, useLoading, useNotifications, useTheme };
|
|
1069
|
+
//# sourceMappingURL=index.d.mts.map
|