@kuraykaraaslan/kui-react 1.0.1
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/LICENSE +17 -0
- package/README.md +168 -0
- package/dist/AdvancedDataTable-F3DNXDKX.mjs +11 -0
- package/dist/DataTable-2G27T4E6.mjs +11 -0
- package/dist/DateRangePicker-AL32QB6L.mjs +11 -0
- package/dist/DropdownMenu-f5yV9dzM.d.mts +22 -0
- package/dist/DropdownMenu-f5yV9dzM.d.ts +22 -0
- package/dist/MapView-FERKPCDB.mjs +10 -0
- package/dist/ServerDataTable-RZV3K6KQ.mjs +11 -0
- package/dist/Tooltip-Bof5GvOc.d.mts +248 -0
- package/dist/Tooltip-Bof5GvOc.d.ts +248 -0
- package/dist/VideoPlayer-P3I6ESXJ.mjs +9 -0
- package/dist/app.d.mts +620 -0
- package/dist/app.d.ts +620 -0
- package/dist/app.js +7061 -0
- package/dist/app.mjs +100 -0
- package/dist/chunk-24BCQSLI.mjs +1 -0
- package/dist/chunk-45I3EDB2.mjs +90 -0
- package/dist/chunk-4IWCD7ID.mjs +1450 -0
- package/dist/chunk-5E2HXWFI.mjs +105 -0
- package/dist/chunk-C7AYI4XM.mjs +402 -0
- package/dist/chunk-J4D44TUA.mjs +1267 -0
- package/dist/chunk-KTEWZKNE.mjs +1020 -0
- package/dist/chunk-LMUQHL4Z.mjs +3829 -0
- package/dist/chunk-MD5OQ4J2.mjs +527 -0
- package/dist/chunk-MPJRPYIZ.mjs +1 -0
- package/dist/chunk-MPWUEQ7J.mjs +2422 -0
- package/dist/chunk-MTT5TKAJ.mjs +93 -0
- package/dist/chunk-RBDK7MWQ.mjs +46 -0
- package/dist/chunk-SVFQZPNZ.mjs +3648 -0
- package/dist/chunk-TZWBBMSG.mjs +1 -0
- package/dist/chunk-XA7J6PVJ.mjs +1488 -0
- package/dist/chunk-ZLYBRYWQ.mjs +726 -0
- package/dist/common.d.mts +921 -0
- package/dist/common.d.ts +921 -0
- package/dist/common.js +4991 -0
- package/dist/common.mjs +172 -0
- package/dist/index.d.mts +10 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +17563 -0
- package/dist/index.mjs +349 -0
- package/dist/ui.d.mts +937 -0
- package/dist/ui.d.ts +937 -0
- package/dist/ui.js +10095 -0
- package/dist/ui.mjs +163 -0
- package/package.json +114 -0
- package/styles/index.css +129 -0
package/dist/app.d.mts
ADDED
|
@@ -0,0 +1,620 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { a as BreadcrumbItem, c as SelectOption, b as MultiSelectOption, D as DateRange, h as ToastPosition, t as toast } from './Tooltip-Bof5GvOc.mjs';
|
|
3
|
+
export { A as Announcer, L as LiveRegion, d as SkipLink, l as Tooltip } from './Tooltip-Bof5GvOc.mjs';
|
|
4
|
+
import { FieldValues, Path, RegisterOptions } from 'react-hook-form';
|
|
5
|
+
import * as react from 'react';
|
|
6
|
+
|
|
7
|
+
type AppShellProps = {
|
|
8
|
+
logo?: React.ReactNode;
|
|
9
|
+
compactLogo?: React.ReactNode;
|
|
10
|
+
sidebarCollapsed?: boolean;
|
|
11
|
+
mobileSidebarTitle?: string;
|
|
12
|
+
sidebar?: React.ReactNode;
|
|
13
|
+
topbar?: React.ReactNode;
|
|
14
|
+
asideClassName?: string;
|
|
15
|
+
headerClassName?: string;
|
|
16
|
+
mainClassName?: string;
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
className?: string;
|
|
19
|
+
} & React.HTMLAttributes<HTMLDivElement>;
|
|
20
|
+
declare function AppShell({ logo, compactLogo, sidebarCollapsed, mobileSidebarTitle, sidebar, topbar, asideClassName, headerClassName, mainClassName, children, className, ...rest }: AppShellProps): react_jsx_runtime.JSX.Element;
|
|
21
|
+
|
|
22
|
+
type AppSidebarNavItem = {
|
|
23
|
+
id: string;
|
|
24
|
+
label: string;
|
|
25
|
+
icon?: React.ReactNode;
|
|
26
|
+
badge?: number;
|
|
27
|
+
href?: string;
|
|
28
|
+
};
|
|
29
|
+
type AppSidebarNavGroup = {
|
|
30
|
+
label?: string;
|
|
31
|
+
items: AppSidebarNavItem[];
|
|
32
|
+
collapsible?: boolean;
|
|
33
|
+
defaultExpanded?: boolean;
|
|
34
|
+
};
|
|
35
|
+
type AppSidebarFooterRenderContext = {
|
|
36
|
+
collapsed: boolean;
|
|
37
|
+
};
|
|
38
|
+
type AppSidebarFooter = React.ReactNode | ((context: AppSidebarFooterRenderContext) => React.ReactNode);
|
|
39
|
+
type AppSidebarProps = {
|
|
40
|
+
navGroups?: AppSidebarNavGroup[];
|
|
41
|
+
navItems?: AppSidebarNavItem[];
|
|
42
|
+
activeId?: string;
|
|
43
|
+
onSelect?: (id: string) => void;
|
|
44
|
+
collapsed?: boolean;
|
|
45
|
+
defaultCollapsed?: boolean;
|
|
46
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
47
|
+
footer?: AppSidebarFooter;
|
|
48
|
+
searchable?: boolean;
|
|
49
|
+
className?: string;
|
|
50
|
+
};
|
|
51
|
+
declare function AppSidebar({ navGroups, navItems, activeId, onSelect, collapsed, defaultCollapsed, onCollapsedChange, footer, searchable, className, }: AppSidebarProps): react_jsx_runtime.JSX.Element;
|
|
52
|
+
|
|
53
|
+
type AppTopBarProps = {
|
|
54
|
+
logo?: React.ReactNode;
|
|
55
|
+
children?: React.ReactNode;
|
|
56
|
+
className?: string;
|
|
57
|
+
} & React.HTMLAttributes<HTMLDivElement>;
|
|
58
|
+
declare function AppTopBar({ logo, children, className, ...rest }: AppTopBarProps): react_jsx_runtime.JSX.Element;
|
|
59
|
+
|
|
60
|
+
type AppDrawerProps = {
|
|
61
|
+
navGroups?: AppSidebarNavGroup[];
|
|
62
|
+
navItems?: AppSidebarNavItem[];
|
|
63
|
+
activeId?: string;
|
|
64
|
+
onSelect?: (id: string) => void;
|
|
65
|
+
header?: React.ReactNode;
|
|
66
|
+
footer?: React.ReactNode;
|
|
67
|
+
searchable?: boolean;
|
|
68
|
+
trigger?: React.ReactNode;
|
|
69
|
+
title?: string;
|
|
70
|
+
side?: 'left' | 'right';
|
|
71
|
+
};
|
|
72
|
+
declare function AppDrawer({ navGroups, navItems, activeId, onSelect, header, footer, searchable, trigger, title, side, }: AppDrawerProps): react_jsx_runtime.JSX.Element;
|
|
73
|
+
|
|
74
|
+
type AppFooterProps = {
|
|
75
|
+
logo?: React.ReactNode;
|
|
76
|
+
nav?: React.ReactNode;
|
|
77
|
+
social?: React.ReactNode;
|
|
78
|
+
version?: string;
|
|
79
|
+
status?: 'operational' | 'degraded' | 'outage';
|
|
80
|
+
copyright?: string;
|
|
81
|
+
className?: string;
|
|
82
|
+
};
|
|
83
|
+
declare function AppFooter({ logo, nav, social, version, status, copyright, className, }: AppFooterProps): react_jsx_runtime.JSX.Element;
|
|
84
|
+
|
|
85
|
+
type AppBreadcrumbsProps = {
|
|
86
|
+
items?: BreadcrumbItem[];
|
|
87
|
+
title?: string;
|
|
88
|
+
description?: string;
|
|
89
|
+
badge?: React.ReactNode;
|
|
90
|
+
className?: string;
|
|
91
|
+
};
|
|
92
|
+
declare function AppBreadcrumbs({ items, title, description, badge, className, }: AppBreadcrumbsProps): react_jsx_runtime.JSX.Element;
|
|
93
|
+
|
|
94
|
+
type SectionCardProps = {
|
|
95
|
+
title: string;
|
|
96
|
+
children: React.ReactNode;
|
|
97
|
+
className?: string;
|
|
98
|
+
};
|
|
99
|
+
declare function SectionCard({ title, children, className }: SectionCardProps): react_jsx_runtime.JSX.Element;
|
|
100
|
+
|
|
101
|
+
type AppNavItem = {
|
|
102
|
+
label: string;
|
|
103
|
+
href?: string;
|
|
104
|
+
active?: boolean;
|
|
105
|
+
};
|
|
106
|
+
type AppNavProps = {
|
|
107
|
+
logo?: React.ReactNode;
|
|
108
|
+
navItems?: AppNavItem[];
|
|
109
|
+
children?: React.ReactNode;
|
|
110
|
+
sticky?: boolean;
|
|
111
|
+
bordered?: boolean;
|
|
112
|
+
className?: string;
|
|
113
|
+
} & React.HTMLAttributes<HTMLElement>;
|
|
114
|
+
declare function AppNav({ logo, navItems, children, sticky, bordered, className, ...rest }: AppNavProps): react_jsx_runtime.JSX.Element;
|
|
115
|
+
|
|
116
|
+
type NavDrawerProps = {
|
|
117
|
+
trigger: React.ReactNode;
|
|
118
|
+
title?: string;
|
|
119
|
+
side?: 'left' | 'right';
|
|
120
|
+
footer?: React.ReactNode;
|
|
121
|
+
children: React.ReactNode;
|
|
122
|
+
className?: string;
|
|
123
|
+
};
|
|
124
|
+
declare function NavDrawer({ trigger, title, side, footer, children, className, }: NavDrawerProps): react_jsx_runtime.JSX.Element;
|
|
125
|
+
|
|
126
|
+
type SearchResult = {
|
|
127
|
+
id: string;
|
|
128
|
+
label: string;
|
|
129
|
+
description?: string;
|
|
130
|
+
icon?: React.ReactNode;
|
|
131
|
+
category?: string;
|
|
132
|
+
};
|
|
133
|
+
declare function GlobalSearch({ placeholder, results, onSearch, onSelect, loading, className, }: {
|
|
134
|
+
placeholder?: string;
|
|
135
|
+
results?: SearchResult[];
|
|
136
|
+
onSearch: (query: string) => void;
|
|
137
|
+
onSelect: (result: SearchResult) => void;
|
|
138
|
+
loading?: boolean;
|
|
139
|
+
className?: string;
|
|
140
|
+
}): react_jsx_runtime.JSX.Element;
|
|
141
|
+
|
|
142
|
+
type CommandItem = {
|
|
143
|
+
/** Optional leading icon (FontAwesome React element recommended). */
|
|
144
|
+
icon?: React.ReactNode;
|
|
145
|
+
/** Human-readable label, used for fuzzy matching + highlighting. */
|
|
146
|
+
label: string;
|
|
147
|
+
/** Keyboard shortcut hint (e.g. "G D", "⌘N"). */
|
|
148
|
+
shortcut?: string;
|
|
149
|
+
/** Group / category header. */
|
|
150
|
+
category: string;
|
|
151
|
+
/** Click handler invoked on select. */
|
|
152
|
+
onClick?: () => void;
|
|
153
|
+
/** Extra keywords boosted during fuzzy match. */
|
|
154
|
+
keywords?: string[];
|
|
155
|
+
/** Optional description shown after the label. */
|
|
156
|
+
description?: string;
|
|
157
|
+
/** Stable id (auto-derived from label if omitted). */
|
|
158
|
+
id?: string;
|
|
159
|
+
};
|
|
160
|
+
type CommandPaletteProps = {
|
|
161
|
+
/** Initial commands. Merged with the dynamic store registry. */
|
|
162
|
+
items?: CommandItem[];
|
|
163
|
+
/** Fires when the user selects a command. */
|
|
164
|
+
onSelect?: (item: CommandItem) => void;
|
|
165
|
+
/** Custom trigger element. Falls back to a default "Quick actions…" button. */
|
|
166
|
+
trigger?: React.ReactNode;
|
|
167
|
+
/** Search input placeholder. */
|
|
168
|
+
placeholder?: string;
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
declare function CommandPalette({ items, onSelect, trigger, placeholder, }: CommandPaletteProps): react_jsx_runtime.JSX.Element;
|
|
172
|
+
/**
|
|
173
|
+
* Backwards-compatible alias for existing imports:
|
|
174
|
+
* import { AppCommandBar } from '@/modules/app/AppCommandBar';
|
|
175
|
+
* import { AppCommandBar } from '@/modules/app/CommandPalette';
|
|
176
|
+
*/
|
|
177
|
+
declare const AppCommandBar: typeof CommandPalette;
|
|
178
|
+
|
|
179
|
+
declare function ThemeSwitcher(): react_jsx_runtime.JSX.Element;
|
|
180
|
+
|
|
181
|
+
type ContextMenuItem = {
|
|
182
|
+
type?: 'item';
|
|
183
|
+
label: string;
|
|
184
|
+
icon?: React.ReactNode;
|
|
185
|
+
/** Keyboard shortcut displayed on the right, e.g. "⌘C" */
|
|
186
|
+
shortcut?: string;
|
|
187
|
+
onClick?: () => void;
|
|
188
|
+
danger?: boolean;
|
|
189
|
+
disabled?: boolean;
|
|
190
|
+
} | {
|
|
191
|
+
type: 'separator';
|
|
192
|
+
} | {
|
|
193
|
+
type: 'group';
|
|
194
|
+
label: string;
|
|
195
|
+
};
|
|
196
|
+
type ContextMenuProps = {
|
|
197
|
+
/** Menu item definitions */
|
|
198
|
+
items: ContextMenuItem[];
|
|
199
|
+
/** The element that receives the right-click / long-press */
|
|
200
|
+
children: React.ReactNode;
|
|
201
|
+
/** Suppress the context menu entirely */
|
|
202
|
+
disabled?: boolean;
|
|
203
|
+
/** Extra className on the trigger wrapper */
|
|
204
|
+
className?: string;
|
|
205
|
+
/** Called when the menu opens or closes */
|
|
206
|
+
onOpenChange?: (open: boolean) => void;
|
|
207
|
+
};
|
|
208
|
+
declare function ContextMenu({ items, children, disabled, className, onOpenChange, }: ContextMenuProps): react_jsx_runtime.JSX.Element;
|
|
209
|
+
|
|
210
|
+
type ImageGalleryImage = {
|
|
211
|
+
src: string;
|
|
212
|
+
alt: string;
|
|
213
|
+
caption?: string;
|
|
214
|
+
};
|
|
215
|
+
type GalleryColumns = 2 | 3 | 4;
|
|
216
|
+
type GalleryAspect = 'square' | 'video' | 'portrait' | 'auto';
|
|
217
|
+
type GalleryGap = 'sm' | 'md' | 'lg';
|
|
218
|
+
type ImageGalleryProps = {
|
|
219
|
+
images: ImageGalleryImage[];
|
|
220
|
+
columns?: GalleryColumns;
|
|
221
|
+
aspect?: GalleryAspect;
|
|
222
|
+
gap?: GalleryGap;
|
|
223
|
+
lightbox?: boolean;
|
|
224
|
+
showCaptions?: boolean;
|
|
225
|
+
/** Enable drag-to-reorder and right-click context menu */
|
|
226
|
+
reorderable?: boolean;
|
|
227
|
+
/** Called with the new image array whenever order changes */
|
|
228
|
+
onReorder?: (images: ImageGalleryImage[]) => void;
|
|
229
|
+
/** Called when a user removes an image via the context menu */
|
|
230
|
+
onRemove?: (index: number, image: ImageGalleryImage) => void;
|
|
231
|
+
className?: string;
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
declare function ImageGallery({ images: imagesProp, columns, aspect, gap, lightbox, showCaptions, reorderable, onReorder, onRemove, className, }: ImageGalleryProps): react_jsx_runtime.JSX.Element;
|
|
235
|
+
|
|
236
|
+
type FormProps = {
|
|
237
|
+
title?: string;
|
|
238
|
+
description?: string;
|
|
239
|
+
error?: string;
|
|
240
|
+
columns?: 1 | 2;
|
|
241
|
+
actions?: React.ReactNode;
|
|
242
|
+
children?: React.ReactNode;
|
|
243
|
+
onSubmit?: React.FormEventHandler<HTMLFormElement>;
|
|
244
|
+
className?: string;
|
|
245
|
+
};
|
|
246
|
+
declare function Form({ title, description, error, columns, actions, children, onSubmit, className, }: FormProps): react_jsx_runtime.JSX.Element;
|
|
247
|
+
|
|
248
|
+
type FormFieldProps<T extends FieldValues> = {
|
|
249
|
+
name: Path<T>;
|
|
250
|
+
label: string;
|
|
251
|
+
hint?: string;
|
|
252
|
+
required?: boolean;
|
|
253
|
+
rules?: RegisterOptions<T>;
|
|
254
|
+
className?: string;
|
|
255
|
+
children: (props: {
|
|
256
|
+
id: string;
|
|
257
|
+
'aria-describedby': string | undefined;
|
|
258
|
+
'aria-invalid': boolean;
|
|
259
|
+
}) => React.ReactNode;
|
|
260
|
+
};
|
|
261
|
+
declare function FormField<T extends FieldValues>({ name, label, hint, required, rules, className, children, }: FormFieldProps<T>): react_jsx_runtime.JSX.Element;
|
|
262
|
+
|
|
263
|
+
type FilterField = {
|
|
264
|
+
type: 'select';
|
|
265
|
+
id: string;
|
|
266
|
+
label: string;
|
|
267
|
+
options: SelectOption[];
|
|
268
|
+
placeholder?: string;
|
|
269
|
+
} | {
|
|
270
|
+
type: 'multiselect';
|
|
271
|
+
id: string;
|
|
272
|
+
label: string;
|
|
273
|
+
options: MultiSelectOption[];
|
|
274
|
+
placeholder?: string;
|
|
275
|
+
} | {
|
|
276
|
+
type: 'daterange';
|
|
277
|
+
id: string;
|
|
278
|
+
label: string;
|
|
279
|
+
} | {
|
|
280
|
+
type: 'tags';
|
|
281
|
+
id: string;
|
|
282
|
+
label: string;
|
|
283
|
+
placeholder?: string;
|
|
284
|
+
};
|
|
285
|
+
type FilterValues = Record<string, string | string[] | DateRange | null>;
|
|
286
|
+
declare function FilterBar({ fields, values, onChange, onApply, onReset, applyLabel, resetLabel, className, }: {
|
|
287
|
+
fields: FilterField[];
|
|
288
|
+
values: FilterValues;
|
|
289
|
+
onChange: (id: string, value: FilterValues[string]) => void;
|
|
290
|
+
onApply?: () => void;
|
|
291
|
+
onReset?: () => void;
|
|
292
|
+
applyLabel?: string;
|
|
293
|
+
resetLabel?: string;
|
|
294
|
+
className?: string;
|
|
295
|
+
}): react_jsx_runtime.JSX.Element;
|
|
296
|
+
|
|
297
|
+
type StepFlowStep = {
|
|
298
|
+
id: string;
|
|
299
|
+
label: string;
|
|
300
|
+
description?: string;
|
|
301
|
+
content: (props: {
|
|
302
|
+
values: Record<string, unknown>;
|
|
303
|
+
onChange: (key: string, value: unknown) => void;
|
|
304
|
+
error?: string;
|
|
305
|
+
}) => React.ReactNode;
|
|
306
|
+
validate?: (values: Record<string, unknown>) => string | undefined;
|
|
307
|
+
optional?: boolean;
|
|
308
|
+
};
|
|
309
|
+
declare function StepFlow({ steps, onComplete, onCancel, completeLabel, cancelLabel, nextLabel, prevLabel, initialValues, className, }: {
|
|
310
|
+
steps: StepFlowStep[];
|
|
311
|
+
onComplete: (values: Record<string, unknown>) => void | Promise<void>;
|
|
312
|
+
onCancel?: () => void;
|
|
313
|
+
completeLabel?: string;
|
|
314
|
+
cancelLabel?: string;
|
|
315
|
+
nextLabel?: string;
|
|
316
|
+
prevLabel?: string;
|
|
317
|
+
initialValues?: Record<string, unknown>;
|
|
318
|
+
className?: string;
|
|
319
|
+
}): react_jsx_runtime.JSX.Element;
|
|
320
|
+
|
|
321
|
+
type StepShellProps = {
|
|
322
|
+
number: number;
|
|
323
|
+
title: string;
|
|
324
|
+
active: boolean;
|
|
325
|
+
done: boolean;
|
|
326
|
+
onEdit?: () => void;
|
|
327
|
+
summary?: React.ReactNode;
|
|
328
|
+
children?: React.ReactNode;
|
|
329
|
+
className?: string;
|
|
330
|
+
};
|
|
331
|
+
declare function StepShell({ number, title, active, done, onEdit, summary, children, className, }: StepShellProps): react_jsx_runtime.JSX.Element;
|
|
332
|
+
|
|
333
|
+
/** Lifecycle for a single file inside FileUploadSection. */
|
|
334
|
+
type UploadStatus = 'idle' | 'uploading' | 'paused' | 'success' | 'error' | 'cancelled';
|
|
335
|
+
/** A single file row inside the section. */
|
|
336
|
+
type FileItem = {
|
|
337
|
+
/** Stable id (e.g. `${name}-${size}-${lastModified}`). */
|
|
338
|
+
id: string;
|
|
339
|
+
file: File;
|
|
340
|
+
status: UploadStatus;
|
|
341
|
+
/** 0..100 percent. */
|
|
342
|
+
progress: number;
|
|
343
|
+
/** Optional status / error message line. */
|
|
344
|
+
message?: string;
|
|
345
|
+
/** Validation error from MIME / size / count checks. */
|
|
346
|
+
error?: string;
|
|
347
|
+
};
|
|
348
|
+
type FileUploadSectionMessages = {
|
|
349
|
+
dropHint: string;
|
|
350
|
+
browseLabel: string;
|
|
351
|
+
pasteHint: string;
|
|
352
|
+
invalidSize: (limit: string) => string;
|
|
353
|
+
invalidType: string;
|
|
354
|
+
tooMany: (max: number) => string;
|
|
355
|
+
emptyState: string;
|
|
356
|
+
remove: string;
|
|
357
|
+
};
|
|
358
|
+
type FileUploadSectionProps = {
|
|
359
|
+
/** Controlled file list (optional). Uncontrolled if omitted. */
|
|
360
|
+
files?: FileItem[];
|
|
361
|
+
onFilesChange?: (files: FileItem[]) => void;
|
|
362
|
+
accept?: string;
|
|
363
|
+
multiple?: boolean;
|
|
364
|
+
maxSizeBytes?: number;
|
|
365
|
+
maxFiles?: number;
|
|
366
|
+
disabled?: boolean;
|
|
367
|
+
enablePaste?: boolean;
|
|
368
|
+
/** Title shown above the drop zone. */
|
|
369
|
+
title?: string;
|
|
370
|
+
/** Hint shown beneath the drop zone copy. */
|
|
371
|
+
hint?: string;
|
|
372
|
+
className?: string;
|
|
373
|
+
messages?: Partial<FileUploadSectionMessages>;
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
declare function FileUploadSection({ files, onFilesChange, accept, multiple, maxSizeBytes, maxFiles, disabled, enablePaste, title, hint, className, messages, }: FileUploadSectionProps): react_jsx_runtime.JSX.Element;
|
|
377
|
+
|
|
378
|
+
type DetailTab = {
|
|
379
|
+
value: string;
|
|
380
|
+
label: string;
|
|
381
|
+
disabled?: boolean;
|
|
382
|
+
};
|
|
383
|
+
declare function DetailHeader({ title, subtitle, status, statusVariant, badge, children, tabs, defaultTab, onTabChange, className, }: {
|
|
384
|
+
title: string;
|
|
385
|
+
subtitle?: string;
|
|
386
|
+
status?: string;
|
|
387
|
+
statusVariant?: 'success' | 'error' | 'warning' | 'info' | 'neutral' | 'primary';
|
|
388
|
+
badge?: React.ReactNode;
|
|
389
|
+
children?: React.ReactNode;
|
|
390
|
+
tabs?: DetailTab[];
|
|
391
|
+
defaultTab?: string;
|
|
392
|
+
onTabChange?: (value: string) => void;
|
|
393
|
+
className?: string;
|
|
394
|
+
}): react_jsx_runtime.JSX.Element;
|
|
395
|
+
|
|
396
|
+
type InlineAlertVariant = 'success' | 'error' | 'warning' | 'info';
|
|
397
|
+
type InlineAlertProps = {
|
|
398
|
+
variant?: InlineAlertVariant;
|
|
399
|
+
message: React.ReactNode;
|
|
400
|
+
className?: string;
|
|
401
|
+
};
|
|
402
|
+
declare function InlineAlert({ variant, message, className }: InlineAlertProps): react_jsx_runtime.JSX.Element;
|
|
403
|
+
|
|
404
|
+
type LoadingVariant = 'table' | 'form' | 'cards' | 'list' | 'detail' | 'spinner';
|
|
405
|
+
declare function LoadingState({ variant, rows, cols, cards, className, }: {
|
|
406
|
+
variant?: LoadingVariant;
|
|
407
|
+
rows?: number;
|
|
408
|
+
cols?: number;
|
|
409
|
+
cards?: number;
|
|
410
|
+
className?: string;
|
|
411
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
412
|
+
|
|
413
|
+
declare function ErrorState({ title, message, onRetry, retryLabel, className, }: {
|
|
414
|
+
title?: string;
|
|
415
|
+
message: string;
|
|
416
|
+
onRetry?: () => void;
|
|
417
|
+
retryLabel?: string;
|
|
418
|
+
className?: string;
|
|
419
|
+
}): react_jsx_runtime.JSX.Element;
|
|
420
|
+
declare function NotFoundState({ title, description, onGoBack, goBackLabel, className, }: {
|
|
421
|
+
title?: string;
|
|
422
|
+
description?: string;
|
|
423
|
+
onGoBack?: () => void;
|
|
424
|
+
goBackLabel?: string;
|
|
425
|
+
className?: string;
|
|
426
|
+
}): react_jsx_runtime.JSX.Element;
|
|
427
|
+
declare function NoAccessState({ title, description, onRequestAccess, className, }: {
|
|
428
|
+
title?: string;
|
|
429
|
+
description?: string;
|
|
430
|
+
onRequestAccess?: () => void;
|
|
431
|
+
className?: string;
|
|
432
|
+
}): react_jsx_runtime.JSX.Element;
|
|
433
|
+
|
|
434
|
+
type NotFoundPageProps = {
|
|
435
|
+
title?: string;
|
|
436
|
+
description?: string;
|
|
437
|
+
homeHref?: string;
|
|
438
|
+
homeLabel?: string;
|
|
439
|
+
backLabel?: string;
|
|
440
|
+
icon?: React.ReactNode;
|
|
441
|
+
className?: string;
|
|
442
|
+
};
|
|
443
|
+
declare function NotFoundPage({ title, description, homeHref, homeLabel, backLabel, icon, className, }: NotFoundPageProps): react_jsx_runtime.JSX.Element;
|
|
444
|
+
|
|
445
|
+
type SplashScreenProps = {
|
|
446
|
+
visible?: boolean;
|
|
447
|
+
logo?: React.ReactNode;
|
|
448
|
+
message?: string;
|
|
449
|
+
progress?: number;
|
|
450
|
+
className?: string;
|
|
451
|
+
};
|
|
452
|
+
declare function SplashScreen({ visible, logo, message, progress, className, }: SplashScreenProps): react_jsx_runtime.JSX.Element;
|
|
453
|
+
|
|
454
|
+
declare const notify: {
|
|
455
|
+
readonly success: (message: string, opts?: Parameters<typeof toast.success>[1]) => string;
|
|
456
|
+
readonly error: (message: string, opts?: Parameters<typeof toast.error>[1]) => string;
|
|
457
|
+
readonly warning: (message: string, opts?: Parameters<typeof toast.warning>[1]) => string;
|
|
458
|
+
readonly info: (message: string, opts?: Parameters<typeof toast.info>[1]) => string;
|
|
459
|
+
readonly loading: (message: string, opts?: Parameters<typeof toast.loading>[1]) => string;
|
|
460
|
+
readonly dismiss: (id: string) => void;
|
|
461
|
+
};
|
|
462
|
+
declare function NotificationProvider({ children, position, }: {
|
|
463
|
+
children: React.ReactNode;
|
|
464
|
+
position?: ToastPosition;
|
|
465
|
+
}): react_jsx_runtime.JSX.Element;
|
|
466
|
+
|
|
467
|
+
type FocusTrapProps = {
|
|
468
|
+
/** When false the trap is dormant — children render but focus is unmanaged. */
|
|
469
|
+
active?: boolean;
|
|
470
|
+
/** Optional Escape handler. Receives no args; just react and (usually) deactivate. */
|
|
471
|
+
onEscape?: () => void;
|
|
472
|
+
/** Forwarded to the outer wrapper for layout / styling. */
|
|
473
|
+
className?: string;
|
|
474
|
+
children: React.ReactNode;
|
|
475
|
+
};
|
|
476
|
+
/**
|
|
477
|
+
* Wraps `useFocusTrap` as a drop-in component for app-layer surfaces that own
|
|
478
|
+
* their own DOM container (custom dialogs, inline editors, command-palette
|
|
479
|
+
* style panels). For Modal / Drawer / Popover you usually do not need this —
|
|
480
|
+
* those primitives wire the hook themselves.
|
|
481
|
+
*/
|
|
482
|
+
declare function FocusTrap({ active, onEscape, className, children }: FocusTrapProps): react_jsx_runtime.JSX.Element;
|
|
483
|
+
type Politeness = 'polite' | 'assertive';
|
|
484
|
+
/**
|
|
485
|
+
* Imperative announcer. Returns a function that pushes a message into a
|
|
486
|
+
* page-level `aria-live` region (one polite + one assertive, mounted by
|
|
487
|
+
* `<AnnouncerOutlet />`). The same string can be re-announced — the region
|
|
488
|
+
* is cleared first so screen readers re-read it.
|
|
489
|
+
*
|
|
490
|
+
* const announce = useAnnounce();
|
|
491
|
+
* announce('Saved', 'polite');
|
|
492
|
+
*/
|
|
493
|
+
declare function useAnnounce(): (message: string, politeness?: Politeness) => void;
|
|
494
|
+
/**
|
|
495
|
+
* Mount once near the root (e.g. in `AppShell`) so `useAnnounce()` has a
|
|
496
|
+
* destination. Renders two visually-hidden live regions via a portal so the
|
|
497
|
+
* outlet is unaffected by parent overflow / transforms.
|
|
498
|
+
*/
|
|
499
|
+
declare function AnnouncerOutlet(): react.ReactPortal | null;
|
|
500
|
+
|
|
501
|
+
type MaintenancePageProps = {
|
|
502
|
+
title?: string;
|
|
503
|
+
description?: string;
|
|
504
|
+
eta?: Date | string | number | null;
|
|
505
|
+
statusUrl?: string;
|
|
506
|
+
statusLabel?: string;
|
|
507
|
+
icon?: React.ReactNode;
|
|
508
|
+
className?: string;
|
|
509
|
+
};
|
|
510
|
+
declare function MaintenancePage({ title, description, eta, statusUrl, statusLabel, icon, className, }: MaintenancePageProps): react_jsx_runtime.JSX.Element;
|
|
511
|
+
|
|
512
|
+
type SharePermission = 'viewer' | 'commenter' | 'editor' | 'owner';
|
|
513
|
+
type ShareInvitee = {
|
|
514
|
+
id: string;
|
|
515
|
+
name: string;
|
|
516
|
+
email: string;
|
|
517
|
+
avatarUrl?: string | null;
|
|
518
|
+
permission: SharePermission;
|
|
519
|
+
};
|
|
520
|
+
type ShareDialogProps = {
|
|
521
|
+
open: boolean;
|
|
522
|
+
onClose: () => void;
|
|
523
|
+
title?: string;
|
|
524
|
+
description?: string;
|
|
525
|
+
shareUrl: string;
|
|
526
|
+
invitees?: ShareInvitee[];
|
|
527
|
+
permissions?: {
|
|
528
|
+
value: SharePermission;
|
|
529
|
+
label: string;
|
|
530
|
+
}[];
|
|
531
|
+
defaultPermission?: SharePermission;
|
|
532
|
+
onInvite?: (email: string, permission: SharePermission) => void | Promise<void>;
|
|
533
|
+
onRemove?: (id: string) => void;
|
|
534
|
+
onPermissionChange?: (id: string, permission: SharePermission) => void;
|
|
535
|
+
portalTarget?: Element | string | null;
|
|
536
|
+
};
|
|
537
|
+
declare function ShareDialog({ open, onClose, title, description, shareUrl, invitees, permissions, defaultPermission, onInvite, onRemove, onPermissionChange, portalTarget, }: ShareDialogProps): react_jsx_runtime.JSX.Element;
|
|
538
|
+
|
|
539
|
+
type CommentThreadItem = {
|
|
540
|
+
id: string;
|
|
541
|
+
author: {
|
|
542
|
+
id: string;
|
|
543
|
+
name: string;
|
|
544
|
+
avatarUrl?: string | null;
|
|
545
|
+
};
|
|
546
|
+
body: string;
|
|
547
|
+
createdAt: string | Date;
|
|
548
|
+
likeCount?: number;
|
|
549
|
+
likedByMe?: boolean;
|
|
550
|
+
replies?: CommentThreadItem[];
|
|
551
|
+
};
|
|
552
|
+
type CommentThreadProps = {
|
|
553
|
+
comments: CommentThreadItem[];
|
|
554
|
+
currentUserId?: string;
|
|
555
|
+
maxDepth?: number;
|
|
556
|
+
onReply?: (parentId: string | null, body: string) => void | Promise<void>;
|
|
557
|
+
onDelete?: (id: string) => void;
|
|
558
|
+
onLike?: (id: string, liked: boolean) => void;
|
|
559
|
+
formatTimestamp?: (value: string | Date) => string;
|
|
560
|
+
emptyMessage?: string;
|
|
561
|
+
placeholder?: string;
|
|
562
|
+
className?: string;
|
|
563
|
+
};
|
|
564
|
+
declare function CommentThread({ comments, currentUserId, maxDepth, onReply, onDelete, onLike, formatTimestamp, emptyMessage, placeholder, className, }: CommentThreadProps): react_jsx_runtime.JSX.Element;
|
|
565
|
+
|
|
566
|
+
type MentionPickerUser = {
|
|
567
|
+
id: string;
|
|
568
|
+
name: string;
|
|
569
|
+
handle?: string;
|
|
570
|
+
avatarUrl?: string | null;
|
|
571
|
+
subtitle?: string;
|
|
572
|
+
};
|
|
573
|
+
type MentionPickerProps = {
|
|
574
|
+
users: MentionPickerUser[];
|
|
575
|
+
query?: string;
|
|
576
|
+
open?: boolean;
|
|
577
|
+
position?: {
|
|
578
|
+
top: number;
|
|
579
|
+
left: number;
|
|
580
|
+
};
|
|
581
|
+
maxItems?: number;
|
|
582
|
+
emptyMessage?: string;
|
|
583
|
+
onSelect: (user: MentionPickerUser) => void;
|
|
584
|
+
onCancel?: () => void;
|
|
585
|
+
filter?: (user: MentionPickerUser, query: string) => boolean;
|
|
586
|
+
className?: string;
|
|
587
|
+
};
|
|
588
|
+
declare function MentionPicker({ users, query, open, position, maxItems, emptyMessage, onSelect, onCancel, filter, className, }: MentionPickerProps): react_jsx_runtime.JSX.Element | null;
|
|
589
|
+
|
|
590
|
+
type OnboardingStep = {
|
|
591
|
+
id: string;
|
|
592
|
+
title: string;
|
|
593
|
+
description?: string;
|
|
594
|
+
content: React.ReactNode | ((ctx: {
|
|
595
|
+
goNext: () => void;
|
|
596
|
+
goPrev: () => void;
|
|
597
|
+
}) => React.ReactNode);
|
|
598
|
+
optional?: boolean;
|
|
599
|
+
};
|
|
600
|
+
type OnboardingWizardProps = {
|
|
601
|
+
steps: OnboardingStep[];
|
|
602
|
+
mode?: 'page' | 'modal';
|
|
603
|
+
open?: boolean;
|
|
604
|
+
initialStep?: number;
|
|
605
|
+
title?: string;
|
|
606
|
+
allowSkip?: boolean;
|
|
607
|
+
onStepChange?: (index: number) => void;
|
|
608
|
+
onComplete?: () => void | Promise<void>;
|
|
609
|
+
onSkip?: () => void;
|
|
610
|
+
onClose?: () => void;
|
|
611
|
+
nextLabel?: string;
|
|
612
|
+
prevLabel?: string;
|
|
613
|
+
skipLabel?: string;
|
|
614
|
+
completeLabel?: string;
|
|
615
|
+
indicator?: 'dots' | 'bar';
|
|
616
|
+
className?: string;
|
|
617
|
+
};
|
|
618
|
+
declare function OnboardingWizard({ steps, mode, open, initialStep, title, allowSkip, onStepChange, onComplete, onSkip, onClose, nextLabel, prevLabel, skipLabel, completeLabel, indicator, className, }: OnboardingWizardProps): react_jsx_runtime.JSX.Element | null;
|
|
619
|
+
|
|
620
|
+
export { AnnouncerOutlet, AppBreadcrumbs, AppCommandBar, AppDrawer, AppFooter, AppNav, type AppNavItem, AppShell, AppSidebar, type AppSidebarFooterRenderContext, type AppSidebarNavGroup, type AppSidebarNavItem, AppTopBar, type CommandItem, CommentThread, type CommentThreadItem, type CommentThreadProps, ContextMenu, type ContextMenuItem, type ContextMenuProps, DetailHeader, type DetailTab, ErrorState, type FileItem, FileUploadSection, type FileUploadSectionMessages, type FileUploadSectionProps, FilterBar, type FilterField, type FilterValues, FocusTrap, Form, FormField, GlobalSearch, ImageGallery, type ImageGalleryImage, type ImageGalleryProps, InlineAlert, LoadingState, MaintenancePage, type MaintenancePageProps, MentionPicker, type MentionPickerProps, type MentionPickerUser, NavDrawer, NoAccessState, NotFoundPage, NotFoundState, NotificationProvider, type OnboardingStep, OnboardingWizard, type OnboardingWizardProps, type SearchResult, SectionCard, ShareDialog, type ShareDialogProps, type ShareInvitee, type SharePermission, SplashScreen, StepFlow, type StepFlowStep, StepShell, ThemeSwitcher, notify, toast, useAnnounce };
|