@juv/codego-react-ui 3.1.5 → 3.1.8
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 +301 -0
- package/dist/index.cjs +6912 -5821
- package/dist/index.d.cts +534 -232
- package/dist/index.d.ts +534 -232
- package/dist/index.global.js +68366 -67252
- package/dist/index.js +5388 -4301
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,50 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default from 'react';
|
|
4
4
|
|
|
5
|
+
type AuthView = "login" | "register" | "resetPassword";
|
|
6
|
+
interface AuthField {
|
|
7
|
+
name: string;
|
|
8
|
+
label: string;
|
|
9
|
+
type?: "text" | "email" | "password" | "tel" | "url" | "numeric" | "integer";
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
error?: string;
|
|
14
|
+
revealable?: boolean;
|
|
15
|
+
render?: (value: string, onChange: (v: string) => void) => React.ReactNode;
|
|
16
|
+
}
|
|
17
|
+
type AuthVariant = "default" | "split" | "minimal" | "glass";
|
|
18
|
+
interface AuthenticationProps {
|
|
19
|
+
/** Which views are enabled */
|
|
20
|
+
enableLogin?: boolean;
|
|
21
|
+
enableRegister?: boolean;
|
|
22
|
+
enableResetPassword?: boolean;
|
|
23
|
+
/** Initial view */
|
|
24
|
+
defaultView?: AuthView;
|
|
25
|
+
/** Base URL for axios requests (e.g. "https://api.example.com") */
|
|
26
|
+
baseURL?: string;
|
|
27
|
+
/** Extra axios headers */
|
|
28
|
+
headers?: Record<string, string>;
|
|
29
|
+
/** Custom fields per view — replaces default fields when provided */
|
|
30
|
+
loginFields?: AuthField[];
|
|
31
|
+
registerFields?: AuthField[];
|
|
32
|
+
resetPasswordFields?: AuthField[];
|
|
33
|
+
/** Callbacks */
|
|
34
|
+
onLoginSuccess?: (data: any) => void;
|
|
35
|
+
onRegisterSuccess?: (data: any) => void;
|
|
36
|
+
onResetSuccess?: (data: any) => void;
|
|
37
|
+
onError?: (view: AuthView, error: any) => void;
|
|
38
|
+
/** Branding */
|
|
39
|
+
logo?: React.ReactNode;
|
|
40
|
+
title?: string;
|
|
41
|
+
/** UI variant */
|
|
42
|
+
variant?: AuthVariant;
|
|
43
|
+
/** Split variant — custom left-panel content */
|
|
44
|
+
splitPanel?: React.ReactNode;
|
|
45
|
+
className?: string;
|
|
46
|
+
}
|
|
47
|
+
declare function Authentication({ enableLogin, enableRegister, enableResetPassword, defaultView, baseURL, headers, loginFields, registerFields, resetPasswordFields, onLoginSuccess, onRegisterSuccess, onResetSuccess, onError, logo, title, variant, splitPanel, className, }: AuthenticationProps): react_jsx_runtime.JSX.Element;
|
|
48
|
+
|
|
5
49
|
type AccordionVariant = "default" | "bordered" | "separated" | "ghost";
|
|
6
50
|
interface AccordionItem {
|
|
7
51
|
value: string;
|
|
@@ -56,7 +100,427 @@ interface BreadcrumbProps {
|
|
|
56
100
|
maxItems?: number;
|
|
57
101
|
className?: string;
|
|
58
102
|
}
|
|
59
|
-
declare function Breadcrumb({ items, separator, maxItems, className, }: BreadcrumbProps): react_jsx_runtime.JSX.Element;
|
|
103
|
+
declare function Breadcrumb({ items, separator, maxItems, className, }: BreadcrumbProps): react_jsx_runtime.JSX.Element;
|
|
104
|
+
|
|
105
|
+
type ToastVariant = "default" | "success" | "error" | "warning" | "info";
|
|
106
|
+
type ToastPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
|
|
107
|
+
interface ToastItem {
|
|
108
|
+
id: string;
|
|
109
|
+
title?: React.ReactNode;
|
|
110
|
+
description?: React.ReactNode;
|
|
111
|
+
variant?: ToastVariant;
|
|
112
|
+
/** Duration in ms before auto-dismiss. 0 = no auto-dismiss */
|
|
113
|
+
duration?: number;
|
|
114
|
+
/** Show a progress bar counting down the duration */
|
|
115
|
+
showProgress?: boolean;
|
|
116
|
+
/** Custom icon — overrides the variant icon */
|
|
117
|
+
icon?: React.ReactNode;
|
|
118
|
+
/** Action button */
|
|
119
|
+
action?: {
|
|
120
|
+
label: string;
|
|
121
|
+
onClick: () => void;
|
|
122
|
+
};
|
|
123
|
+
/** Whether the toast can be manually closed */
|
|
124
|
+
closable?: boolean;
|
|
125
|
+
/** Override the provider's default position for this toast */
|
|
126
|
+
position?: ToastPosition;
|
|
127
|
+
}
|
|
128
|
+
interface ToastContextValue {
|
|
129
|
+
toast: (item: Omit<ToastItem, "id">) => string;
|
|
130
|
+
dismiss: (id: string) => void;
|
|
131
|
+
dismissAll: () => void;
|
|
132
|
+
}
|
|
133
|
+
declare function useToast(): ToastContextValue;
|
|
134
|
+
interface ToastProviderProps {
|
|
135
|
+
children: React.ReactNode;
|
|
136
|
+
/** Default position for all toasts */
|
|
137
|
+
position?: ToastPosition;
|
|
138
|
+
/** Max toasts visible at once */
|
|
139
|
+
maxToasts?: number;
|
|
140
|
+
}
|
|
141
|
+
declare function ToastProvider({ children, position, maxToasts, }: ToastProviderProps): react_jsx_runtime.JSX.Element;
|
|
142
|
+
type NotificationVariant = "default" | "success" | "error" | "warning" | "info";
|
|
143
|
+
interface NotificationItem {
|
|
144
|
+
id: string;
|
|
145
|
+
title: React.ReactNode;
|
|
146
|
+
description?: React.ReactNode;
|
|
147
|
+
variant?: NotificationVariant;
|
|
148
|
+
/** Timestamp label e.g. "2m ago" */
|
|
149
|
+
time?: string;
|
|
150
|
+
/** Avatar or icon node shown on the left */
|
|
151
|
+
avatar?: React.ReactNode;
|
|
152
|
+
/** Whether the notification has been read */
|
|
153
|
+
read?: boolean;
|
|
154
|
+
/** Click handler for the whole row */
|
|
155
|
+
onClick?: () => void;
|
|
156
|
+
/** Action buttons */
|
|
157
|
+
actions?: {
|
|
158
|
+
label: string;
|
|
159
|
+
onClick: () => void;
|
|
160
|
+
variant?: "primary" | "ghost";
|
|
161
|
+
}[];
|
|
162
|
+
}
|
|
163
|
+
interface NotificationPanelProps {
|
|
164
|
+
items: NotificationItem[];
|
|
165
|
+
/** Header title */
|
|
166
|
+
title?: string;
|
|
167
|
+
/** Show a badge with unread count on the bell icon trigger */
|
|
168
|
+
showBadge?: boolean;
|
|
169
|
+
/** Called when "Mark all read" is clicked */
|
|
170
|
+
onMarkAllRead?: () => void;
|
|
171
|
+
/** Called when "Clear all" is clicked */
|
|
172
|
+
onClearAll?: () => void;
|
|
173
|
+
/** Called when a single item is dismissed */
|
|
174
|
+
onDismiss?: (id: string) => void;
|
|
175
|
+
/** Empty state message */
|
|
176
|
+
emptyMessage?: string;
|
|
177
|
+
className?: string;
|
|
178
|
+
/** Max height of the list */
|
|
179
|
+
maxHeight?: string;
|
|
180
|
+
}
|
|
181
|
+
declare function NotificationPanel({ items, title, showBadge, onMarkAllRead, onClearAll, onDismiss, emptyMessage, className, maxHeight, }: NotificationPanelProps): react_jsx_runtime.JSX.Element;
|
|
182
|
+
interface NotificationBannerProps {
|
|
183
|
+
variant?: NotificationVariant;
|
|
184
|
+
title?: React.ReactNode;
|
|
185
|
+
description?: React.ReactNode;
|
|
186
|
+
icon?: React.ReactNode;
|
|
187
|
+
closable?: boolean;
|
|
188
|
+
onClose?: () => void;
|
|
189
|
+
action?: {
|
|
190
|
+
label: string;
|
|
191
|
+
onClick: () => void;
|
|
192
|
+
};
|
|
193
|
+
className?: string;
|
|
194
|
+
}
|
|
195
|
+
declare function NotificationBanner({ variant, title, description, icon, closable, onClose, action, className, }: NotificationBannerProps): react_jsx_runtime.JSX.Element;
|
|
196
|
+
|
|
197
|
+
interface ServerPaginationLink {
|
|
198
|
+
page: number;
|
|
199
|
+
url: string;
|
|
200
|
+
active: boolean;
|
|
201
|
+
}
|
|
202
|
+
interface ServerPagination {
|
|
203
|
+
first_page_url: string;
|
|
204
|
+
last_page_url: string;
|
|
205
|
+
last_page: number;
|
|
206
|
+
next_page_url: string | null;
|
|
207
|
+
prev_page_url: string | null;
|
|
208
|
+
per_page: number;
|
|
209
|
+
total: number;
|
|
210
|
+
links: ServerPaginationLink[];
|
|
211
|
+
}
|
|
212
|
+
interface ServerTableResponse<T> extends ServerPagination {
|
|
213
|
+
current_page: number;
|
|
214
|
+
data: T[];
|
|
215
|
+
pagination?: ServerPagination;
|
|
216
|
+
}
|
|
217
|
+
interface UseServerTableOptions {
|
|
218
|
+
/** Base URL — page param appended automatically: `url?page=N` */
|
|
219
|
+
url: string;
|
|
220
|
+
/** Extra query params merged on every request */
|
|
221
|
+
params?: Record<string, string | number>;
|
|
222
|
+
/** If true, the response is expected to be a Laravel-encrypted payload */
|
|
223
|
+
encrypt?: boolean;
|
|
224
|
+
/** Laravel APP_KEY used for decryption. Pass import.meta.env["VITE_LARAVEL_KEY"] */
|
|
225
|
+
key?: string;
|
|
226
|
+
/** If true, logs the decrypted payload to the console */
|
|
227
|
+
decryptPayloadLog?: boolean;
|
|
228
|
+
/**
|
|
229
|
+
* Override auto-derived column definitions per key.
|
|
230
|
+
* Supports all Column<T> props: type, render, selectOptions, stackProps, onChange, sortable, etc.
|
|
231
|
+
* Example: { status: { type: "badge" }, enabled: { type: "toggle", onChange: (item, v) => patch(item.id, v) } }
|
|
232
|
+
*/
|
|
233
|
+
columnOverrides?: Record<string, Partial<Column<any>>>;
|
|
234
|
+
}
|
|
235
|
+
interface UseServerTableReturn<T> {
|
|
236
|
+
data: T[];
|
|
237
|
+
columns: Column<T>[];
|
|
238
|
+
currentPage: number;
|
|
239
|
+
pagination: ServerPagination | null;
|
|
240
|
+
serverPagination: ServerPaginationProp | null;
|
|
241
|
+
loading: boolean;
|
|
242
|
+
error: string | null;
|
|
243
|
+
goToPage: (page: number) => void;
|
|
244
|
+
reload: () => void;
|
|
245
|
+
}
|
|
246
|
+
interface ServerPaginationProp {
|
|
247
|
+
pagination: ServerPagination;
|
|
248
|
+
currentPage: number;
|
|
249
|
+
goToPage: (page: number) => void;
|
|
250
|
+
}
|
|
251
|
+
declare function useServerTable<T extends Record<string, any>>({ url, params, encrypt, key, decryptPayloadLog, columnOverrides }: UseServerTableOptions): UseServerTableReturn<T>;
|
|
252
|
+
type ActionFieldType = "input" | "password" | "textarea" | "checkbox" | "toggle" | "select" | "radio" | "slider" | "tag-input" | "otp" | "combobox" | "color-picker" | "date-range" | "rich-text" | "file-upload" | "repeater";
|
|
253
|
+
interface ActionField {
|
|
254
|
+
key: string;
|
|
255
|
+
label: string;
|
|
256
|
+
type?: ActionFieldType;
|
|
257
|
+
/** HTML input type for type="input" (e.g. "email", "number", "password") */
|
|
258
|
+
inputType?: string;
|
|
259
|
+
/** Options for type="select", "radio", "combobox" — string[] or { label, value }[] */
|
|
260
|
+
options?: string[] | {
|
|
261
|
+
label: string;
|
|
262
|
+
value: string;
|
|
263
|
+
}[];
|
|
264
|
+
placeholder?: string;
|
|
265
|
+
required?: boolean;
|
|
266
|
+
/** Min value for type="slider" */
|
|
267
|
+
min?: number;
|
|
268
|
+
/** Max value for type="slider" */
|
|
269
|
+
max?: number;
|
|
270
|
+
/** Step for type="slider" */
|
|
271
|
+
step?: number;
|
|
272
|
+
/** Number of OTP digits for type="otp" */
|
|
273
|
+
digits?: number;
|
|
274
|
+
/** Custom render — overrides built-in field renderer */
|
|
275
|
+
render?: (value: any, onChange: (v: any) => void) => React.ReactNode;
|
|
276
|
+
}
|
|
277
|
+
/** Controls appearance of a default action button (view / edit / delete) */
|
|
278
|
+
interface ActionButtonConfig {
|
|
279
|
+
/** Button variant. Defaults: view→"outline", edit→"outline", delete→"danger" */
|
|
280
|
+
variant?: "primary" | "secondary" | "outline" | "ghost" | "link" | "danger" | "success" | "destructive";
|
|
281
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
282
|
+
rounded?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
283
|
+
gradientFrom?: string;
|
|
284
|
+
gradientTo?: string;
|
|
285
|
+
gradientDirection?: "to-r" | "to-l" | "to-t" | "to-b" | "to-tr" | "to-tl" | "to-br" | "to-bl";
|
|
286
|
+
bgColor?: string;
|
|
287
|
+
textColor?: string;
|
|
288
|
+
borderColor?: string;
|
|
289
|
+
borderWidth?: number;
|
|
290
|
+
shadow?: boolean;
|
|
291
|
+
/** Override the default icon */
|
|
292
|
+
icon?: React.ReactNode;
|
|
293
|
+
/** Override the default label text */
|
|
294
|
+
label?: string;
|
|
295
|
+
/** "icon" = icon only, "text" = label only, "icon-text" = icon + label. Default "icon" */
|
|
296
|
+
displayMode?: "icon" | "text" | "icon-text";
|
|
297
|
+
className?: string;
|
|
298
|
+
}
|
|
299
|
+
/** Extra action button appended alongside the default view/edit/delete buttons */
|
|
300
|
+
interface ExtraActionConfig<T> {
|
|
301
|
+
/** Unique key */
|
|
302
|
+
key: string;
|
|
303
|
+
/** Button label */
|
|
304
|
+
label?: string;
|
|
305
|
+
/** Icon rendered in the button */
|
|
306
|
+
icon?: React.ReactNode;
|
|
307
|
+
/** "icon" | "text" | "icon-text". Default "icon-text" */
|
|
308
|
+
displayMode?: "icon" | "text" | "icon-text";
|
|
309
|
+
variant?: "primary" | "secondary" | "outline" | "ghost" | "link" | "danger" | "success" | "destructive";
|
|
310
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
311
|
+
rounded?: "none" | "sm" | "md" | "lg" | "xl" | "full";
|
|
312
|
+
gradientFrom?: string;
|
|
313
|
+
gradientTo?: string;
|
|
314
|
+
gradientDirection?: "to-r" | "to-l" | "to-t" | "to-b" | "to-tr" | "to-tl" | "to-br" | "to-bl";
|
|
315
|
+
bgColor?: string;
|
|
316
|
+
textColor?: string;
|
|
317
|
+
borderColor?: string;
|
|
318
|
+
borderWidth?: number;
|
|
319
|
+
shadow?: boolean;
|
|
320
|
+
className?: string;
|
|
321
|
+
onClick: (item: T) => void;
|
|
322
|
+
}
|
|
323
|
+
interface DefaultActionsConfig<T> {
|
|
324
|
+
/**
|
|
325
|
+
* Base URL used to build PUT and DELETE requests.
|
|
326
|
+
* PUT → `{baseUrl}/{id}/update`
|
|
327
|
+
* DELETE → `{baseUrl}/{id}/delete`
|
|
328
|
+
*/
|
|
329
|
+
baseUrl: string;
|
|
330
|
+
/** Row key used as the URL id segment. Defaults to "id". */
|
|
331
|
+
idKey?: keyof T;
|
|
332
|
+
/** Position of the Actions column. Default "last". */
|
|
333
|
+
position?: "first" | "last";
|
|
334
|
+
/** Fields rendered in the Edit modal form. Auto-derived from row keys when omitted. */
|
|
335
|
+
editForm?: ActionField[];
|
|
336
|
+
/** Fields rendered in the View modal. Auto-derived from row keys when omitted. */
|
|
337
|
+
viewForm?: ActionField[];
|
|
338
|
+
/** Called after a successful edit or delete so the parent can refresh data. */
|
|
339
|
+
onSuccess?: (action: "edit" | "delete", item: T) => void;
|
|
340
|
+
/** Show a toast or notification banner on successful edit/delete */
|
|
341
|
+
onSuccessNotif?: ActionSuccessNotif;
|
|
342
|
+
/** Customize the View button appearance */
|
|
343
|
+
viewButton?: ActionButtonConfig;
|
|
344
|
+
/** Customize the Edit button appearance */
|
|
345
|
+
editButton?: ActionButtonConfig;
|
|
346
|
+
/** Customize the Delete button appearance */
|
|
347
|
+
deleteButton?: ActionButtonConfig;
|
|
348
|
+
/** Extra action buttons rendered alongside view/edit/delete */
|
|
349
|
+
extraActions?: ExtraActionConfig<T>[];
|
|
350
|
+
}
|
|
351
|
+
interface ActionSuccessNotif {
|
|
352
|
+
/** "toast" uses the ToastProvider. "notification" renders an inline banner. Default "toast". */
|
|
353
|
+
type?: "toast" | "notification";
|
|
354
|
+
/** Toast position. Only used when type="toast". Default "bottom-right". */
|
|
355
|
+
toastPosition?: ToastPosition;
|
|
356
|
+
/** Variant for edit success. Default "success". */
|
|
357
|
+
editVariant?: ToastVariant;
|
|
358
|
+
/** Variant for delete success. Default "success". */
|
|
359
|
+
deleteVariant?: ToastVariant;
|
|
360
|
+
/** Title for edit success notification */
|
|
361
|
+
editTitle?: React.ReactNode;
|
|
362
|
+
/** Body/description for edit success notification */
|
|
363
|
+
editBody?: React.ReactNode;
|
|
364
|
+
/** Title for delete success notification */
|
|
365
|
+
deleteTitle?: React.ReactNode;
|
|
366
|
+
/** Body/description for delete success notification */
|
|
367
|
+
deleteBody?: React.ReactNode;
|
|
368
|
+
/** Extra action element rendered inside the notification */
|
|
369
|
+
action?: React.ReactNode;
|
|
370
|
+
}
|
|
371
|
+
interface Column<T> {
|
|
372
|
+
key: keyof T | string;
|
|
373
|
+
title: string;
|
|
374
|
+
type?: "text" | "image" | "badge" | "icon" | "stack" | "select" | "toggle" | "color" | "checkbox";
|
|
375
|
+
stackProps?: {
|
|
376
|
+
limit?: number;
|
|
377
|
+
stacked?: boolean;
|
|
378
|
+
shape?: "circle" | "square";
|
|
379
|
+
size?: number;
|
|
380
|
+
};
|
|
381
|
+
/** Options for type="select" */
|
|
382
|
+
selectOptions?: string[];
|
|
383
|
+
render?: (item: T) => React.ReactNode;
|
|
384
|
+
sortable?: boolean;
|
|
385
|
+
/** Called when a cell value changes (select, toggle, color, checkbox) */
|
|
386
|
+
onChange?: (item: T, value: any) => void;
|
|
387
|
+
}
|
|
388
|
+
interface TableProps<T> {
|
|
389
|
+
data: T[];
|
|
390
|
+
columns: Column<T>[];
|
|
391
|
+
searchable?: boolean;
|
|
392
|
+
searchPlaceholder?: string;
|
|
393
|
+
pagination?: boolean;
|
|
394
|
+
itemsPerPage?: number;
|
|
395
|
+
selectable?: boolean;
|
|
396
|
+
onBulkDelete?: (selectedIds: string[]) => void;
|
|
397
|
+
idKey?: keyof T;
|
|
398
|
+
/** When provided, appends an Actions column with View / Edit / Delete buttons */
|
|
399
|
+
defaultActions?: DefaultActionsConfig<T>;
|
|
400
|
+
/** Pass the serverPagination object from useServerTable to enable server-side pagination */
|
|
401
|
+
serverPagination?: ServerPaginationProp | null;
|
|
402
|
+
className?: string;
|
|
403
|
+
}
|
|
404
|
+
declare function Table<T extends Record<string, any>>({ data, columns, searchable, searchPlaceholder, pagination, itemsPerPage, selectable, onBulkDelete, idKey, defaultActions, serverPagination, className, }: TableProps<T>): react_jsx_runtime.JSX.Element;
|
|
405
|
+
|
|
406
|
+
type BulletinPriority = "low" | "medium" | "high" | "urgent";
|
|
407
|
+
type BulletinLayout = "grid" | "list" | "masonry";
|
|
408
|
+
type BulletinVariant = "card" | "minimal" | "bordered";
|
|
409
|
+
type BulletinColumns = 1 | 2 | 3 | 4;
|
|
410
|
+
interface BulletinAction {
|
|
411
|
+
label: string;
|
|
412
|
+
icon?: React.ReactNode;
|
|
413
|
+
onClick: (item: BulletinItem) => void;
|
|
414
|
+
variant?: "default" | "danger";
|
|
415
|
+
}
|
|
416
|
+
interface BulletinItem {
|
|
417
|
+
id: string | number;
|
|
418
|
+
title: string;
|
|
419
|
+
body?: React.ReactNode;
|
|
420
|
+
author?: string;
|
|
421
|
+
/** Author avatar URL */
|
|
422
|
+
authorImage?: string;
|
|
423
|
+
/** Author avatar fallback icon */
|
|
424
|
+
authorIcon?: React.ReactNode;
|
|
425
|
+
date?: string | Date;
|
|
426
|
+
category?: string;
|
|
427
|
+
/** Cover image URL */
|
|
428
|
+
image?: string;
|
|
429
|
+
pinned?: boolean;
|
|
430
|
+
priority?: BulletinPriority;
|
|
431
|
+
tags?: string[];
|
|
432
|
+
/** Per-item action menu items */
|
|
433
|
+
actions?: BulletinAction[];
|
|
434
|
+
className?: string;
|
|
435
|
+
}
|
|
436
|
+
interface BulletinServerPaginationProp {
|
|
437
|
+
pagination: ServerPagination;
|
|
438
|
+
currentPage: number;
|
|
439
|
+
goToPage: (page: number) => void;
|
|
440
|
+
}
|
|
441
|
+
interface UseServerBulletinOptions {
|
|
442
|
+
url: string;
|
|
443
|
+
params?: Record<string, string | number>;
|
|
444
|
+
encrypt?: boolean;
|
|
445
|
+
key?: string;
|
|
446
|
+
decryptPayloadLog?: boolean;
|
|
447
|
+
/** Map raw API row → BulletinItem */
|
|
448
|
+
transform?: (row: any) => BulletinItem;
|
|
449
|
+
}
|
|
450
|
+
interface UseServerBulletinReturn {
|
|
451
|
+
items: BulletinItem[];
|
|
452
|
+
currentPage: number;
|
|
453
|
+
pagination: ServerPagination | null;
|
|
454
|
+
serverPagination: BulletinServerPaginationProp | null;
|
|
455
|
+
loading: boolean;
|
|
456
|
+
error: string | null;
|
|
457
|
+
goToPage: (page: number) => void;
|
|
458
|
+
reload: () => void;
|
|
459
|
+
}
|
|
460
|
+
declare function useServerBulletin({ url, params, encrypt, key, decryptPayloadLog, transform, }: UseServerBulletinOptions): UseServerBulletinReturn;
|
|
461
|
+
interface BulletinPreviewProps {
|
|
462
|
+
item: BulletinItem;
|
|
463
|
+
onClose: () => void;
|
|
464
|
+
onEdit?: (item: BulletinItem) => void;
|
|
465
|
+
onDelete?: (item: BulletinItem) => void;
|
|
466
|
+
onView?: (item: BulletinItem) => void;
|
|
467
|
+
/** Custom actions to add to the preview header */
|
|
468
|
+
customActions?: BulletinAction[];
|
|
469
|
+
}
|
|
470
|
+
declare function BulletinPreview({ item, onClose, onEdit, onDelete, onView, customActions }: BulletinPreviewProps): React.ReactPortal;
|
|
471
|
+
interface BulletinBoardProps {
|
|
472
|
+
/** Array of bulletin post items. */
|
|
473
|
+
items: BulletinItem[];
|
|
474
|
+
/** Board layout mode. */
|
|
475
|
+
layout?: "grid" | "list" | "masonry";
|
|
476
|
+
/** Number of grid columns (responsive). */
|
|
477
|
+
columns?: 1 | 2 | 3 | 4;
|
|
478
|
+
/** Visual style of each post card. */
|
|
479
|
+
variant?: "card" | "minimal" | "bordered";
|
|
480
|
+
/** Show a search input above the board. */
|
|
481
|
+
searchable?: boolean;
|
|
482
|
+
/** Show category filter chips above the board. */
|
|
483
|
+
filterable?: boolean;
|
|
484
|
+
/** Explicit category list for filter chips. Auto-derived from items if omitted. */
|
|
485
|
+
categories?: string[];
|
|
486
|
+
/** Board header title. */
|
|
487
|
+
title?: React.ReactNode;
|
|
488
|
+
/** Trailing element in the board header (e.g. a New Post button). */
|
|
489
|
+
headerAction?: React.ReactNode;
|
|
490
|
+
/** Show or hide the board header bar. */
|
|
491
|
+
showHeader?: boolean;
|
|
492
|
+
/** Content shown when the filtered list is empty. */
|
|
493
|
+
emptyMessage?: React.ReactNode;
|
|
494
|
+
/** Show skeleton cards instead of real content. */
|
|
495
|
+
loading?: boolean;
|
|
496
|
+
/** Number of skeleton cards to render while loading. */
|
|
497
|
+
loadingCount?: number;
|
|
498
|
+
/** Open a BulletinPreview modal when a card is clicked. */
|
|
499
|
+
preview?: boolean;
|
|
500
|
+
/** Called when the Edit button is clicked inside the preview. */
|
|
501
|
+
onEdit?: (item: BulletinItem) => void;
|
|
502
|
+
/** Called when the Delete button is clicked inside the preview. */
|
|
503
|
+
onDelete?: (item: BulletinItem) => void;
|
|
504
|
+
/** Called when the View button is clicked inside the preview. */
|
|
505
|
+
onView?: (item: BulletinItem) => void;
|
|
506
|
+
/** Base URL for built-in PUT {baseUrl}/{id} request. */
|
|
507
|
+
editBaseUrl?: string;
|
|
508
|
+
/** HTTP method for edit request (default: PUT). */
|
|
509
|
+
editMethod?: "PUT" | "PATCH" | "POST";
|
|
510
|
+
/** Item key used as the id segment in the edit URL. */
|
|
511
|
+
editIdKey?: string;
|
|
512
|
+
/** Base URL for built-in DELETE {baseUrl}/{id}/delete request. */
|
|
513
|
+
deleteBaseUrl?: string;
|
|
514
|
+
/** Item key used as the id segment in the delete URL. */
|
|
515
|
+
deleteIdKey?: string;
|
|
516
|
+
/** Pass the serverPagination from useServerBulletin to enable server-driven pagination. */
|
|
517
|
+
serverPagination?: BulletinServerPaginationProp | null;
|
|
518
|
+
/** Fired when a post card is clicked (ignored when preview=true). */
|
|
519
|
+
onItemClick?: (item: BulletinItem) => void;
|
|
520
|
+
/** Additional CSS classes on the outer wrapper. */
|
|
521
|
+
className?: string;
|
|
522
|
+
}
|
|
523
|
+
declare function BulletinBoard({ items, layout, columns, variant, searchable, filterable, categories: categoriesProp, title, headerAction, showHeader, emptyMessage, loading, loadingCount, onItemClick, onView, onEdit, onDelete, preview, deleteBaseUrl, deleteIdKey, serverPagination, className, }: BulletinBoardProps): react_jsx_runtime.JSX.Element;
|
|
60
524
|
|
|
61
525
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
62
526
|
variant?: "primary" | "secondary" | "outline" | "ghost" | "link" | "danger" | "success" | "destructive";
|
|
@@ -180,6 +644,8 @@ interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>
|
|
|
180
644
|
declinedColor?: string;
|
|
181
645
|
height?: number | string;
|
|
182
646
|
width?: number | string;
|
|
647
|
+
required?: boolean;
|
|
648
|
+
error?: string;
|
|
183
649
|
}
|
|
184
650
|
declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
|
|
185
651
|
|
|
@@ -191,8 +657,10 @@ interface ColorPickerProps {
|
|
|
191
657
|
showSwatches?: boolean;
|
|
192
658
|
disabled?: boolean;
|
|
193
659
|
className?: string;
|
|
660
|
+
required?: boolean;
|
|
661
|
+
error?: string;
|
|
194
662
|
}
|
|
195
|
-
declare function ColorPicker({ value: controlled, defaultValue, onChange, showOpacity, showSwatches, disabled, className, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
|
|
663
|
+
declare function ColorPicker({ value: controlled, defaultValue, onChange, showOpacity, showSwatches, disabled, className, required, error, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
|
|
196
664
|
|
|
197
665
|
interface ComboboxOption {
|
|
198
666
|
value: string;
|
|
@@ -215,8 +683,10 @@ interface ComboboxProps {
|
|
|
215
683
|
disabled?: boolean;
|
|
216
684
|
maxHeight?: string;
|
|
217
685
|
className?: string;
|
|
686
|
+
required?: boolean;
|
|
687
|
+
error?: string;
|
|
218
688
|
}
|
|
219
|
-
declare function Combobox({ options, value: controlled, defaultValue, onChange, placeholder, searchPlaceholder, multiple, creatable, clearable, disabled, maxHeight, className, }: ComboboxProps): react_jsx_runtime.JSX.Element;
|
|
689
|
+
declare function Combobox({ options, value: controlled, defaultValue, onChange, placeholder, searchPlaceholder, multiple, creatable, clearable, disabled, maxHeight, className, required, error, }: ComboboxProps): react_jsx_runtime.JSX.Element;
|
|
220
690
|
|
|
221
691
|
interface CommandItem {
|
|
222
692
|
id: string;
|
|
@@ -336,133 +806,6 @@ interface MetricRowProps {
|
|
|
336
806
|
}
|
|
337
807
|
declare function MetricRow({ items, divided, className }: MetricRowProps): react_jsx_runtime.JSX.Element;
|
|
338
808
|
|
|
339
|
-
interface ServerPaginationLink {
|
|
340
|
-
page: number;
|
|
341
|
-
url: string;
|
|
342
|
-
active: boolean;
|
|
343
|
-
}
|
|
344
|
-
interface ServerPagination {
|
|
345
|
-
first_page_url: string;
|
|
346
|
-
last_page_url: string;
|
|
347
|
-
last_page: number;
|
|
348
|
-
next_page_url: string | null;
|
|
349
|
-
prev_page_url: string | null;
|
|
350
|
-
per_page: number;
|
|
351
|
-
total: number;
|
|
352
|
-
links: ServerPaginationLink[];
|
|
353
|
-
}
|
|
354
|
-
interface ServerTableResponse<T> extends ServerPagination {
|
|
355
|
-
current_page: number;
|
|
356
|
-
data: T[];
|
|
357
|
-
pagination?: ServerPagination;
|
|
358
|
-
}
|
|
359
|
-
interface UseServerTableOptions {
|
|
360
|
-
/** Base URL — page param appended automatically: `url?page=N` */
|
|
361
|
-
url: string;
|
|
362
|
-
/** Extra query params merged on every request */
|
|
363
|
-
params?: Record<string, string | number>;
|
|
364
|
-
/** If true, the response is expected to be a Laravel-encrypted payload */
|
|
365
|
-
encrypt?: boolean;
|
|
366
|
-
/** Laravel APP_KEY used for decryption. Pass import.meta.env["VITE_LARAVEL_KEY"] */
|
|
367
|
-
key?: string;
|
|
368
|
-
/** If true, logs the decrypted payload to the console */
|
|
369
|
-
decryptPayloadLog?: boolean;
|
|
370
|
-
}
|
|
371
|
-
interface UseServerTableReturn<T> {
|
|
372
|
-
data: T[];
|
|
373
|
-
columns: Column<T>[];
|
|
374
|
-
currentPage: number;
|
|
375
|
-
pagination: ServerPagination | null;
|
|
376
|
-
serverPagination: ServerPaginationProp | null;
|
|
377
|
-
loading: boolean;
|
|
378
|
-
error: string | null;
|
|
379
|
-
goToPage: (page: number) => void;
|
|
380
|
-
reload: () => void;
|
|
381
|
-
}
|
|
382
|
-
interface ServerPaginationProp {
|
|
383
|
-
pagination: ServerPagination;
|
|
384
|
-
currentPage: number;
|
|
385
|
-
goToPage: (page: number) => void;
|
|
386
|
-
}
|
|
387
|
-
declare function useServerTable<T extends Record<string, any>>({ url, params, encrypt, key, decryptPayloadLog }: UseServerTableOptions): UseServerTableReturn<T>;
|
|
388
|
-
type ActionFieldType = "input" | "password" | "textarea" | "checkbox" | "toggle" | "select" | "radio" | "slider" | "tag-input" | "otp" | "combobox" | "color-picker" | "date-range" | "rich-text" | "file-upload" | "repeater";
|
|
389
|
-
interface ActionField {
|
|
390
|
-
key: string;
|
|
391
|
-
label: string;
|
|
392
|
-
type?: ActionFieldType;
|
|
393
|
-
/** HTML input type for type="input" (e.g. "email", "number", "password") */
|
|
394
|
-
inputType?: string;
|
|
395
|
-
/** Options for type="select", "radio", "combobox" — string[] or { label, value }[] */
|
|
396
|
-
options?: string[] | {
|
|
397
|
-
label: string;
|
|
398
|
-
value: string;
|
|
399
|
-
}[];
|
|
400
|
-
placeholder?: string;
|
|
401
|
-
required?: boolean;
|
|
402
|
-
/** Min value for type="slider" */
|
|
403
|
-
min?: number;
|
|
404
|
-
/** Max value for type="slider" */
|
|
405
|
-
max?: number;
|
|
406
|
-
/** Step for type="slider" */
|
|
407
|
-
step?: number;
|
|
408
|
-
/** Number of OTP digits for type="otp" */
|
|
409
|
-
digits?: number;
|
|
410
|
-
/** Custom render — overrides built-in field renderer */
|
|
411
|
-
render?: (value: any, onChange: (v: any) => void) => React.ReactNode;
|
|
412
|
-
}
|
|
413
|
-
interface DefaultActionsConfig<T> {
|
|
414
|
-
/**
|
|
415
|
-
* Base URL used to build PUT and DELETE requests.
|
|
416
|
-
* PUT → `{baseUrl}/{id}/update`
|
|
417
|
-
* DELETE → `{baseUrl}/{id}/delete`
|
|
418
|
-
*/
|
|
419
|
-
baseUrl: string;
|
|
420
|
-
/** Row key used as the URL id segment. Defaults to "id". */
|
|
421
|
-
idKey?: keyof T;
|
|
422
|
-
/** Position of the Actions column. Default "last". */
|
|
423
|
-
position?: "first" | "last";
|
|
424
|
-
/** Fields rendered in the Edit modal form. Auto-derived from row keys when omitted. */
|
|
425
|
-
editForm?: ActionField[];
|
|
426
|
-
/** Fields rendered in the View modal. Auto-derived from row keys when omitted. */
|
|
427
|
-
viewForm?: ActionField[];
|
|
428
|
-
/** Called after a successful edit or delete so the parent can refresh data. */
|
|
429
|
-
onSuccess?: (action: "edit" | "delete", item: T) => void;
|
|
430
|
-
}
|
|
431
|
-
interface Column<T> {
|
|
432
|
-
key: keyof T | string;
|
|
433
|
-
title: string;
|
|
434
|
-
type?: "text" | "image" | "badge" | "icon" | "stack" | "select" | "toggle" | "color" | "checkbox";
|
|
435
|
-
stackProps?: {
|
|
436
|
-
limit?: number;
|
|
437
|
-
stacked?: boolean;
|
|
438
|
-
shape?: "circle" | "square";
|
|
439
|
-
size?: number;
|
|
440
|
-
};
|
|
441
|
-
/** Options for type="select" */
|
|
442
|
-
selectOptions?: string[];
|
|
443
|
-
render?: (item: T) => React.ReactNode;
|
|
444
|
-
sortable?: boolean;
|
|
445
|
-
/** Called when a cell value changes (select, toggle, color, checkbox) */
|
|
446
|
-
onChange?: (item: T, value: any) => void;
|
|
447
|
-
}
|
|
448
|
-
interface TableProps<T> {
|
|
449
|
-
data: T[];
|
|
450
|
-
columns: Column<T>[];
|
|
451
|
-
searchable?: boolean;
|
|
452
|
-
searchPlaceholder?: string;
|
|
453
|
-
pagination?: boolean;
|
|
454
|
-
itemsPerPage?: number;
|
|
455
|
-
selectable?: boolean;
|
|
456
|
-
onBulkDelete?: (selectedIds: string[]) => void;
|
|
457
|
-
idKey?: keyof T;
|
|
458
|
-
/** When provided, appends an Actions column with View / Edit / Delete buttons */
|
|
459
|
-
defaultActions?: DefaultActionsConfig<T>;
|
|
460
|
-
/** Pass the serverPagination object from useServerTable to enable server-side pagination */
|
|
461
|
-
serverPagination?: ServerPaginationProp | null;
|
|
462
|
-
className?: string;
|
|
463
|
-
}
|
|
464
|
-
declare function Table<T extends Record<string, any>>({ data, columns, searchable, searchPlaceholder, pagination, itemsPerPage, selectable, onBulkDelete, idKey, defaultActions, serverPagination, className, }: TableProps<T>): react_jsx_runtime.JSX.Element;
|
|
465
|
-
|
|
466
809
|
interface ServerDataGridProp {
|
|
467
810
|
pagination: ServerPagination;
|
|
468
811
|
currentPage: number;
|
|
@@ -477,6 +820,12 @@ interface UseServerDataGridOptions {
|
|
|
477
820
|
key?: string;
|
|
478
821
|
/** If true, logs the decrypted payload to the console */
|
|
479
822
|
decryptPayloadLog?: boolean;
|
|
823
|
+
/**
|
|
824
|
+
* Override auto-derived column definitions per key.
|
|
825
|
+
* Supports all DataGridColumn<T> props: render, sortable, filterable, width, align, etc.
|
|
826
|
+
* Example: { status: { render: (row) => <Badge>{row.status}</Badge> }, score: { sortable: true } }
|
|
827
|
+
*/
|
|
828
|
+
columnOverrides?: Record<string, Partial<DataGridColumn<any>>>;
|
|
480
829
|
}
|
|
481
830
|
interface UseServerDataGridReturn<T> {
|
|
482
831
|
data: T[];
|
|
@@ -489,7 +838,7 @@ interface UseServerDataGridReturn<T> {
|
|
|
489
838
|
goToPage: (page: number) => void;
|
|
490
839
|
reload: () => void;
|
|
491
840
|
}
|
|
492
|
-
declare function useServerDataGrid<T extends Record<string, any>>({ url, params, encrypt, key, decryptPayloadLog }: UseServerDataGridOptions): UseServerDataGridReturn<T>;
|
|
841
|
+
declare function useServerDataGrid<T extends Record<string, any>>({ url, params, encrypt, key, decryptPayloadLog, columnOverrides }: UseServerDataGridOptions): UseServerDataGridReturn<T>;
|
|
493
842
|
type SortDir = "asc" | "desc" | null;
|
|
494
843
|
interface DataGridColumn<T> {
|
|
495
844
|
key: keyof T | string;
|
|
@@ -645,8 +994,10 @@ interface FileUploadProps extends React.HTMLAttributes<HTMLDivElement>, FileType
|
|
|
645
994
|
/** Image editor configuration */
|
|
646
995
|
imageEditorOptions?: ImageEditorOptions;
|
|
647
996
|
className?: string;
|
|
997
|
+
required?: boolean;
|
|
998
|
+
error?: string;
|
|
648
999
|
}
|
|
649
|
-
declare function FileUpload({ className, onFileSelect, onFilesChange, onValidationError, accept, multiple, maxSize, maxFiles, disabled, reorderable, imagePreviewHeight, panelAspectRatio, label, helperText, hint, imageEditor, imageEditorOptions, allowedFileTypes, rejectedFileTypes, mimeTypes, ...props }: FileUploadProps): react_jsx_runtime.JSX.Element;
|
|
1000
|
+
declare function FileUpload({ className, onFileSelect, onFilesChange, onValidationError, accept, multiple, maxSize, maxFiles, disabled, reorderable, imagePreviewHeight, panelAspectRatio, label, helperText, hint, imageEditor, imageEditorOptions, allowedFileTypes, rejectedFileTypes, mimeTypes, required, error: externalError, ...props }: FileUploadProps): react_jsx_runtime.JSX.Element;
|
|
650
1001
|
|
|
651
1002
|
type FlexDirection = "row" | "row-reverse" | "col" | "col-reverse";
|
|
652
1003
|
type FlexWrap = "nowrap" | "wrap" | "wrap-reverse";
|
|
@@ -707,6 +1058,8 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "
|
|
|
707
1058
|
autocapitalize?: "none" | "sentences" | "words" | "characters" | boolean;
|
|
708
1059
|
prefix?: React.ReactNode;
|
|
709
1060
|
suffix?: React.ReactNode;
|
|
1061
|
+
required?: boolean;
|
|
1062
|
+
error?: string;
|
|
710
1063
|
regexValidation?: {
|
|
711
1064
|
pattern: RegExp;
|
|
712
1065
|
message?: string;
|
|
@@ -1045,98 +1398,6 @@ interface GroupNavigationProps {
|
|
|
1045
1398
|
}
|
|
1046
1399
|
declare function GroupNavigation({ groups, value, onChange, className, collapsed, }: GroupNavigationProps): react_jsx_runtime.JSX.Element;
|
|
1047
1400
|
|
|
1048
|
-
type ToastVariant = "default" | "success" | "error" | "warning" | "info";
|
|
1049
|
-
type ToastPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
|
|
1050
|
-
interface ToastItem {
|
|
1051
|
-
id: string;
|
|
1052
|
-
title?: React.ReactNode;
|
|
1053
|
-
description?: React.ReactNode;
|
|
1054
|
-
variant?: ToastVariant;
|
|
1055
|
-
/** Duration in ms before auto-dismiss. 0 = no auto-dismiss */
|
|
1056
|
-
duration?: number;
|
|
1057
|
-
/** Show a progress bar counting down the duration */
|
|
1058
|
-
showProgress?: boolean;
|
|
1059
|
-
/** Custom icon — overrides the variant icon */
|
|
1060
|
-
icon?: React.ReactNode;
|
|
1061
|
-
/** Action button */
|
|
1062
|
-
action?: {
|
|
1063
|
-
label: string;
|
|
1064
|
-
onClick: () => void;
|
|
1065
|
-
};
|
|
1066
|
-
/** Whether the toast can be manually closed */
|
|
1067
|
-
closable?: boolean;
|
|
1068
|
-
/** Override the provider's default position for this toast */
|
|
1069
|
-
position?: ToastPosition;
|
|
1070
|
-
}
|
|
1071
|
-
interface ToastContextValue {
|
|
1072
|
-
toast: (item: Omit<ToastItem, "id">) => string;
|
|
1073
|
-
dismiss: (id: string) => void;
|
|
1074
|
-
dismissAll: () => void;
|
|
1075
|
-
}
|
|
1076
|
-
declare function useToast(): ToastContextValue;
|
|
1077
|
-
interface ToastProviderProps {
|
|
1078
|
-
children: React.ReactNode;
|
|
1079
|
-
/** Default position for all toasts */
|
|
1080
|
-
position?: ToastPosition;
|
|
1081
|
-
/** Max toasts visible at once */
|
|
1082
|
-
maxToasts?: number;
|
|
1083
|
-
}
|
|
1084
|
-
declare function ToastProvider({ children, position, maxToasts, }: ToastProviderProps): react_jsx_runtime.JSX.Element;
|
|
1085
|
-
type NotificationVariant = "default" | "success" | "error" | "warning" | "info";
|
|
1086
|
-
interface NotificationItem {
|
|
1087
|
-
id: string;
|
|
1088
|
-
title: React.ReactNode;
|
|
1089
|
-
description?: React.ReactNode;
|
|
1090
|
-
variant?: NotificationVariant;
|
|
1091
|
-
/** Timestamp label e.g. "2m ago" */
|
|
1092
|
-
time?: string;
|
|
1093
|
-
/** Avatar or icon node shown on the left */
|
|
1094
|
-
avatar?: React.ReactNode;
|
|
1095
|
-
/** Whether the notification has been read */
|
|
1096
|
-
read?: boolean;
|
|
1097
|
-
/** Click handler for the whole row */
|
|
1098
|
-
onClick?: () => void;
|
|
1099
|
-
/** Action buttons */
|
|
1100
|
-
actions?: {
|
|
1101
|
-
label: string;
|
|
1102
|
-
onClick: () => void;
|
|
1103
|
-
variant?: "primary" | "ghost";
|
|
1104
|
-
}[];
|
|
1105
|
-
}
|
|
1106
|
-
interface NotificationPanelProps {
|
|
1107
|
-
items: NotificationItem[];
|
|
1108
|
-
/** Header title */
|
|
1109
|
-
title?: string;
|
|
1110
|
-
/** Show a badge with unread count on the bell icon trigger */
|
|
1111
|
-
showBadge?: boolean;
|
|
1112
|
-
/** Called when "Mark all read" is clicked */
|
|
1113
|
-
onMarkAllRead?: () => void;
|
|
1114
|
-
/** Called when "Clear all" is clicked */
|
|
1115
|
-
onClearAll?: () => void;
|
|
1116
|
-
/** Called when a single item is dismissed */
|
|
1117
|
-
onDismiss?: (id: string) => void;
|
|
1118
|
-
/** Empty state message */
|
|
1119
|
-
emptyMessage?: string;
|
|
1120
|
-
className?: string;
|
|
1121
|
-
/** Max height of the list */
|
|
1122
|
-
maxHeight?: string;
|
|
1123
|
-
}
|
|
1124
|
-
declare function NotificationPanel({ items, title, showBadge, onMarkAllRead, onClearAll, onDismiss, emptyMessage, className, maxHeight, }: NotificationPanelProps): react_jsx_runtime.JSX.Element;
|
|
1125
|
-
interface NotificationBannerProps {
|
|
1126
|
-
variant?: NotificationVariant;
|
|
1127
|
-
title?: React.ReactNode;
|
|
1128
|
-
description?: React.ReactNode;
|
|
1129
|
-
icon?: React.ReactNode;
|
|
1130
|
-
closable?: boolean;
|
|
1131
|
-
onClose?: () => void;
|
|
1132
|
-
action?: {
|
|
1133
|
-
label: string;
|
|
1134
|
-
onClick: () => void;
|
|
1135
|
-
};
|
|
1136
|
-
className?: string;
|
|
1137
|
-
}
|
|
1138
|
-
declare function NotificationBanner({ variant, title, description, icon, closable, onClose, action, className, }: NotificationBannerProps): react_jsx_runtime.JSX.Element;
|
|
1139
|
-
|
|
1140
1401
|
interface OtpInputProps {
|
|
1141
1402
|
length?: number;
|
|
1142
1403
|
value?: string;
|
|
@@ -1146,8 +1407,10 @@ interface OtpInputProps {
|
|
|
1146
1407
|
disabled?: boolean;
|
|
1147
1408
|
invalid?: boolean;
|
|
1148
1409
|
className?: string;
|
|
1410
|
+
required?: boolean;
|
|
1411
|
+
error?: string;
|
|
1149
1412
|
}
|
|
1150
|
-
declare function OtpInput({ length, value: controlled, onChange, onComplete, mask, disabled, invalid, className, }: OtpInputProps): react_jsx_runtime.JSX.Element;
|
|
1413
|
+
declare function OtpInput({ length, value: controlled, onChange, onComplete, mask, disabled, invalid, className, required, error, }: OtpInputProps): react_jsx_runtime.JSX.Element;
|
|
1151
1414
|
|
|
1152
1415
|
interface PaginationProps {
|
|
1153
1416
|
page: number;
|
|
@@ -1163,9 +1426,33 @@ interface PaginationProps {
|
|
|
1163
1426
|
}
|
|
1164
1427
|
declare function Pagination({ page, total, pageSize, siblingCount, showFirstLast, showPageSize, pageSizeOptions, onPageChange, onPageSizeChange, className, }: PaginationProps): react_jsx_runtime.JSX.Element;
|
|
1165
1428
|
|
|
1429
|
+
interface PanelBrand {
|
|
1430
|
+
/** Image URL shown as the project logo */
|
|
1431
|
+
image?: string;
|
|
1432
|
+
/** Fallback icon when no image — any React element */
|
|
1433
|
+
icon?: React.ReactNode;
|
|
1434
|
+
/** Project / app title shown when expanded */
|
|
1435
|
+
title?: React.ReactNode;
|
|
1436
|
+
/** Extra content rendered to the right of title when expanded */
|
|
1437
|
+
trailing?: React.ReactNode;
|
|
1438
|
+
}
|
|
1439
|
+
interface PanelProfile {
|
|
1440
|
+
/** Avatar image URL */
|
|
1441
|
+
image?: string;
|
|
1442
|
+
/** Fallback icon when no image — any React element */
|
|
1443
|
+
icon?: React.ReactNode;
|
|
1444
|
+
/** Full profile content rendered when expanded */
|
|
1445
|
+
content?: React.ReactNode;
|
|
1446
|
+
}
|
|
1166
1447
|
interface PanelProps {
|
|
1167
1448
|
sidebar?: React.ReactNode;
|
|
1449
|
+
/** Structured brand header: shows image+title when expanded, image/icon only when collapsed */
|
|
1450
|
+
sidebarBrand?: PanelBrand;
|
|
1451
|
+
/** Structured profile footer: shows full content when expanded, image/icon only when collapsed */
|
|
1452
|
+
sidebarProfile?: PanelProfile;
|
|
1453
|
+
/** @deprecated use sidebarBrand */
|
|
1168
1454
|
sidebarHeader?: React.ReactNode;
|
|
1455
|
+
/** @deprecated use sidebarProfile */
|
|
1169
1456
|
sidebarFooter?: React.ReactNode;
|
|
1170
1457
|
sidebarWidth?: string;
|
|
1171
1458
|
topbar?: React.ReactNode;
|
|
@@ -1178,7 +1465,7 @@ interface PanelProps {
|
|
|
1178
1465
|
children?: React.ReactNode;
|
|
1179
1466
|
className?: string;
|
|
1180
1467
|
}
|
|
1181
|
-
declare function Panel({ sidebar, sidebarHeader, sidebarFooter, sidebarWidth, topbar, topbarTrailing, defaultCollapsed, collapsible, showThemeToggle, defaultPage, height, children, className, }: PanelProps): react_jsx_runtime.JSX.Element;
|
|
1468
|
+
declare function Panel({ sidebar, sidebarBrand, sidebarProfile, sidebarHeader, sidebarFooter, sidebarWidth, topbar, topbarTrailing, defaultCollapsed, collapsible, showThemeToggle, defaultPage, height, children, className, }: PanelProps): react_jsx_runtime.JSX.Element;
|
|
1182
1469
|
declare function PanelSidebarItem({ icon: Icon, label, active, onClick, }: {
|
|
1183
1470
|
icon?: React.ElementType;
|
|
1184
1471
|
label: string;
|
|
@@ -1260,8 +1547,10 @@ interface RadioGroupProps {
|
|
|
1260
1547
|
orientation?: "horizontal" | "vertical";
|
|
1261
1548
|
name?: string;
|
|
1262
1549
|
className?: string;
|
|
1550
|
+
required?: boolean;
|
|
1551
|
+
error?: string;
|
|
1263
1552
|
}
|
|
1264
|
-
declare function RadioGroup({ options, value: controlledValue, defaultValue, onChange, variant, size, orientation, name, className, }: RadioGroupProps): react_jsx_runtime.JSX.Element;
|
|
1553
|
+
declare function RadioGroup({ options, value: controlledValue, defaultValue, onChange, variant, size, orientation, name, className, required, error, }: RadioGroupProps): react_jsx_runtime.JSX.Element;
|
|
1265
1554
|
|
|
1266
1555
|
interface RepeaterProps<T> {
|
|
1267
1556
|
items: T[];
|
|
@@ -1336,8 +1625,10 @@ interface SelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChan
|
|
|
1336
1625
|
createOptionForm?: React.ReactNode;
|
|
1337
1626
|
suffixIcon?: React.ReactNode;
|
|
1338
1627
|
suffixIconColor?: "success" | "error" | "warning" | "info" | (string & {});
|
|
1628
|
+
required?: boolean;
|
|
1629
|
+
error?: string;
|
|
1339
1630
|
}
|
|
1340
|
-
declare function Select({ options, value, onChange, placeholder, searchable, native, label, loadingMessage, noSearchResultsMessage, searchingMessage, multiple, reorderable, disabled, createOptionForm, suffixIcon, suffixIconColor, className, ...props }: SelectProps): react_jsx_runtime.JSX.Element;
|
|
1631
|
+
declare function Select({ options, value, onChange, placeholder, searchable, native, label, loadingMessage, noSearchResultsMessage, searchingMessage, multiple, reorderable, disabled, createOptionForm, suffixIcon, suffixIconColor, required, error, className, ...props }: SelectProps): react_jsx_runtime.JSX.Element;
|
|
1341
1632
|
|
|
1342
1633
|
type Theme = 'dark' | 'light' | 'system';
|
|
1343
1634
|
type ThemeColors = {
|
|
@@ -1420,6 +1711,8 @@ interface SliderProps {
|
|
|
1420
1711
|
label?: React.ReactNode;
|
|
1421
1712
|
showValue?: boolean;
|
|
1422
1713
|
className?: string;
|
|
1714
|
+
required?: boolean;
|
|
1715
|
+
error?: string;
|
|
1423
1716
|
}
|
|
1424
1717
|
interface RangeSliderProps {
|
|
1425
1718
|
value?: [number, number];
|
|
@@ -1433,9 +1726,11 @@ interface RangeSliderProps {
|
|
|
1433
1726
|
label?: React.ReactNode;
|
|
1434
1727
|
showValue?: boolean;
|
|
1435
1728
|
className?: string;
|
|
1729
|
+
required?: boolean;
|
|
1730
|
+
error?: string;
|
|
1436
1731
|
}
|
|
1437
|
-
declare function Slider({ value: controlled, defaultValue, min, max, step, onChange, disabled, showTooltip, showMarks, marks, label, showValue, className, }: SliderProps): react_jsx_runtime.JSX.Element;
|
|
1438
|
-
declare function RangeSlider({ value: controlled, defaultValue, min, max, step, onChange, disabled, showTooltip, label, showValue, className, }: RangeSliderProps): react_jsx_runtime.JSX.Element;
|
|
1732
|
+
declare function Slider({ value: controlled, defaultValue, min, max, step, onChange, disabled, showTooltip, showMarks, marks, label, showValue, className, required, error, }: SliderProps): react_jsx_runtime.JSX.Element;
|
|
1733
|
+
declare function RangeSlider({ value: controlled, defaultValue, min, max, step, onChange, disabled, showTooltip, label, showValue, className, required, error, }: RangeSliderProps): react_jsx_runtime.JSX.Element;
|
|
1439
1734
|
|
|
1440
1735
|
type StatTrend = "up" | "down" | "neutral";
|
|
1441
1736
|
interface StatCardProps {
|
|
@@ -1502,8 +1797,10 @@ interface TagInputProps {
|
|
|
1502
1797
|
allowDuplicates?: boolean;
|
|
1503
1798
|
disabled?: boolean;
|
|
1504
1799
|
className?: string;
|
|
1800
|
+
required?: boolean;
|
|
1801
|
+
error?: string;
|
|
1505
1802
|
}
|
|
1506
|
-
declare function TagInput({ value: controlled, defaultValue, onChange, placeholder, maxTags, allowDuplicates, disabled, className, }: TagInputProps): react_jsx_runtime.JSX.Element;
|
|
1803
|
+
declare function TagInput({ value: controlled, defaultValue, onChange, placeholder, maxTags, allowDuplicates, disabled, className, required, error, }: TagInputProps): react_jsx_runtime.JSX.Element;
|
|
1507
1804
|
|
|
1508
1805
|
interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "rows" | "cols" | "readOnly" | "minLength" | "maxLength"> {
|
|
1509
1806
|
rows?: number;
|
|
@@ -1515,6 +1812,9 @@ interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaEl
|
|
|
1515
1812
|
minLength?: number;
|
|
1516
1813
|
maxLength?: number;
|
|
1517
1814
|
length?: number;
|
|
1815
|
+
label?: string;
|
|
1816
|
+
required?: boolean;
|
|
1817
|
+
error?: string;
|
|
1518
1818
|
}
|
|
1519
1819
|
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
1520
1820
|
|
|
@@ -1571,6 +1871,8 @@ interface ToggleSwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
|
|
|
1571
1871
|
declinedColor?: string;
|
|
1572
1872
|
width?: number | string;
|
|
1573
1873
|
height?: number | string;
|
|
1874
|
+
required?: boolean;
|
|
1875
|
+
error?: string;
|
|
1574
1876
|
}
|
|
1575
1877
|
declare const ToggleSwitch: React.ForwardRefExoticComponent<ToggleSwitchProps & React.RefAttributes<HTMLInputElement>>;
|
|
1576
1878
|
|
|
@@ -1716,4 +2018,4 @@ interface WizardProps {
|
|
|
1716
2018
|
}
|
|
1717
2019
|
declare function Wizard({ steps, step: controlledStep, defaultStep, onStepChange, onFinish, onClose, layout, variant, size, isOpen, showClose, unchange, title, description, hideHeader, footer, renderActions, backLabel, nextLabel, finishLabel, cancelLabel, showCancel, showBackOnFirst, loading, clickableSteps, className, contentClassName, }: WizardProps): react_jsx_runtime.JSX.Element;
|
|
1718
2020
|
|
|
1719
|
-
export { Accordion, type AccordionItem, type AccordionProps, type AccordionVariant, type ActionField, type ActionFieldType, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, type BadgeSize, type BadgeVariant, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonProps, COLOR_PALETTE, Calendar, CalendarDateRangePicker, type CalendarDateRangePickerProps, type CalendarDateRangeVariant, type CalendarEvent, type CalendarProps, type CalendarView, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ChartDataPoint, ChartWidget, type ChartWidgetProps, Checkbox, type CheckboxProps, CircularProgress, type CircularProgressProps, type ClusterVariant, ColorPicker, type ColorPickerProps, type Column, Combobox, type ComboboxOption, type ComboboxProps, type CommandItem, CommandPalette, type CommandPaletteProps, ComposableWidget, type ComposableWidgetProps, type ConfirmVariant, ContextMenu, type ContextMenuItem, type ContextMenuProps, DataGrid, type DataGridColumn, type DataGridProps, DatePickerPopup, type DateRange, DateRangePicker, type DateRangePickerProps, type DefaultActionsConfig, DocsLayout, Drawer, type DrawerProps, type DrawerSide, Dropdown, DropdownItem, DropdownLabel, type DropdownProps, DropdownSeparator, EVENT_COLORS, type FileTypeValidation, FileUpload, type FileUploadProps, type FlexAlign, type FlexDirection, type FlexGap, FlexItem, type FlexItemProps, type FlexJustify, FlexLayout, type FlexLayoutProps, type FlexWrap, type FlyToOptions, type FormField, type FormFieldType, type GridAlign, type GridCols, type GridGap, GridItem, type GridItemProps, GridLayout, type GridLayoutProps, GroupNavigation, type GroupNavigationProps, type ImageEditorMode, type ImageEditorOptions, Input, type InputProps, KanbanBoard, type KanbanBoardProps, type KanbanCard, type KanbanColumn, Label, LeafletMap, type LeafletMapProps, LeftSidebar, type LeftSidebarProps, type MapLibreClusterVariant, MapLibreMap, type MapLibreMarker, type MapLibreProps, type MapLibreRoute, type MapLibreRouteType, type MapLibreStyle, type MapMarker, type MapRoute, type MarkerColor, type MetricItem, MetricRow, type MetricRowProps, Modal, ModalConfirmation, type ModalConfirmationProps, type ModalProps, ModalUnchange, type ModalUnchangeProps, ModalWithForms, type ModalWithFormsProps, type NavGroup, type NavItem, Navigation, type NavigationProps, NotificationBanner, type NotificationBannerProps, type NotificationItem, NotificationPanel, type NotificationPanelProps, type NotificationVariant, OtpInput, type OtpInputProps, Pagination, type PaginationProps, Panel, type PanelProps, PanelSettings, type PanelSettingsProps, type PanelSettingsTab, PanelSidebarGroup, PanelSidebarItem, Popover, type PopoverPlacement, type PopoverProps, Progress, type ProgressProps, type ProgressSize, type ProgressVariant, type PropRow, PropsTable, RadioGroup, type RadioGroupProps, type RadioOption, type RadioSize, type RadioVariant, RangeSlider, type RangeSliderProps, Repeater, type RepeaterProps, ResizablePanels, type ResizablePanelsProps, RichTextEditor, type RichTextEditorProps, RightSidebar, type RightSidebarProps, type RouteType, ScrollArea, type ScrollAreaProps, Section, SectionBlock, type SectionProps, type SectionVariant, Select, type SelectOption, type SelectProps, type SemanticColor, type ServerDataGridProp, type ServerPagination, type ServerPaginationLink, type ServerPaginationProp, type ServerTableResponse, Skeleton, Slider, type SliderProps, type SortDir, StatCard, type StatCardProps, type StatTrend, StatsWidget, type StatsWidgetProps, type Step, type StepStatus, Stepper, type StepperProps, type TabItem, type TabSize, type TabVariant, Table, TableOfContents, type TableProps, TableWidget, type TableWidgetProps, Tabs, type TabsProps, TagInput, type TagInputProps, Textarea, type TextareaProps, type ThemeColors, ThemeProvider, type ThemeSettings, Timeline, type TimelineItem, type TimelineProps, type TimelineVariant, type ToastItem, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, type TocItem, TocProvider, ToggleSwitch, type ToggleSwitchProps, Tooltip, type TooltipProps, Topbar, type TopbarProps, type TreeNode, TreeView, type TreeViewProps, type TrendDir, type UseServerDataGridOptions, type UseServerDataGridReturn, type UseServerTableOptions, type UseServerTableReturn, Widget, type WidgetProps, Wizard, type WizardActionProps, type WizardLayout, type WizardProps, type WizardSize, type WizardStep, type WizardVariant, useServerDataGrid, useServerTable, useTheme, useToast, useToc };
|
|
2021
|
+
export { Accordion, type AccordionItem, type AccordionProps, type AccordionVariant, type ActionField, type ActionFieldType, type AuthField, type AuthVariant, type AuthView, Authentication, type AuthenticationProps, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, type BadgeSize, type BadgeVariant, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, type BulletinAction, BulletinBoard, type BulletinBoardProps, type BulletinColumns, type BulletinItem, type BulletinLayout, BulletinPreview, type BulletinPreviewProps, type BulletinPriority, type BulletinServerPaginationProp, type BulletinVariant, Button, type ButtonProps, COLOR_PALETTE, Calendar, CalendarDateRangePicker, type CalendarDateRangePickerProps, type CalendarDateRangeVariant, type CalendarEvent, type CalendarProps, type CalendarView, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ChartDataPoint, ChartWidget, type ChartWidgetProps, Checkbox, type CheckboxProps, CircularProgress, type CircularProgressProps, type ClusterVariant, ColorPicker, type ColorPickerProps, type Column, Combobox, type ComboboxOption, type ComboboxProps, type CommandItem, CommandPalette, type CommandPaletteProps, ComposableWidget, type ComposableWidgetProps, type ConfirmVariant, ContextMenu, type ContextMenuItem, type ContextMenuProps, DataGrid, type DataGridColumn, type DataGridProps, DatePickerPopup, type DateRange, DateRangePicker, type DateRangePickerProps, type DefaultActionsConfig, DocsLayout, Drawer, type DrawerProps, type DrawerSide, Dropdown, DropdownItem, DropdownLabel, type DropdownProps, DropdownSeparator, EVENT_COLORS, type FileTypeValidation, FileUpload, type FileUploadProps, type FlexAlign, type FlexDirection, type FlexGap, FlexItem, type FlexItemProps, type FlexJustify, FlexLayout, type FlexLayoutProps, type FlexWrap, type FlyToOptions, type FormField, type FormFieldType, type GridAlign, type GridCols, type GridGap, GridItem, type GridItemProps, GridLayout, type GridLayoutProps, GroupNavigation, type GroupNavigationProps, type ImageEditorMode, type ImageEditorOptions, Input, type InputProps, KanbanBoard, type KanbanBoardProps, type KanbanCard, type KanbanColumn, Label, LeafletMap, type LeafletMapProps, LeftSidebar, type LeftSidebarProps, type MapLibreClusterVariant, MapLibreMap, type MapLibreMarker, type MapLibreProps, type MapLibreRoute, type MapLibreRouteType, type MapLibreStyle, type MapMarker, type MapRoute, type MarkerColor, type MetricItem, MetricRow, type MetricRowProps, Modal, ModalConfirmation, type ModalConfirmationProps, type ModalProps, ModalUnchange, type ModalUnchangeProps, ModalWithForms, type ModalWithFormsProps, type NavGroup, type NavItem, Navigation, type NavigationProps, NotificationBanner, type NotificationBannerProps, type NotificationItem, NotificationPanel, type NotificationPanelProps, type NotificationVariant, OtpInput, type OtpInputProps, Pagination, type PaginationProps, Panel, type PanelProps, PanelSettings, type PanelSettingsProps, type PanelSettingsTab, PanelSidebarGroup, PanelSidebarItem, Popover, type PopoverPlacement, type PopoverProps, Progress, type ProgressProps, type ProgressSize, type ProgressVariant, type PropRow, PropsTable, RadioGroup, type RadioGroupProps, type RadioOption, type RadioSize, type RadioVariant, RangeSlider, type RangeSliderProps, Repeater, type RepeaterProps, ResizablePanels, type ResizablePanelsProps, RichTextEditor, type RichTextEditorProps, RightSidebar, type RightSidebarProps, type RouteType, ScrollArea, type ScrollAreaProps, Section, SectionBlock, type SectionProps, type SectionVariant, Select, type SelectOption, type SelectProps, type SemanticColor, type ServerDataGridProp, type ServerPagination, type ServerPaginationLink, type ServerPaginationProp, type ServerTableResponse, Skeleton, Slider, type SliderProps, type SortDir, StatCard, type StatCardProps, type StatTrend, StatsWidget, type StatsWidgetProps, type Step, type StepStatus, Stepper, type StepperProps, type TabItem, type TabSize, type TabVariant, Table, TableOfContents, type TableProps, TableWidget, type TableWidgetProps, Tabs, type TabsProps, TagInput, type TagInputProps, Textarea, type TextareaProps, type ThemeColors, ThemeProvider, type ThemeSettings, Timeline, type TimelineItem, type TimelineProps, type TimelineVariant, type ToastItem, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, type TocItem, TocProvider, ToggleSwitch, type ToggleSwitchProps, Tooltip, type TooltipProps, Topbar, type TopbarProps, type TreeNode, TreeView, type TreeViewProps, type TrendDir, type UseServerBulletinOptions, type UseServerBulletinReturn, type UseServerDataGridOptions, type UseServerDataGridReturn, type UseServerTableOptions, type UseServerTableReturn, Widget, type WidgetProps, Wizard, type WizardActionProps, type WizardLayout, type WizardProps, type WizardSize, type WizardStep, type WizardVariant, useServerBulletin, useServerDataGrid, useServerTable, useTheme, useToast, useToc };
|