@nice2dev/ui 1.0.5 → 1.0.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 +253 -207
- package/dist/NiceAPIFlow.doc-DnQLPUie.js +30 -0
- package/dist/NiceAPIFlow.doc-Dx4qw1lm.cjs +6 -0
- package/dist/NiceBranchManager.doc-BXjiENlD.cjs +6 -0
- package/dist/NiceBranchManager.doc-xLB82YwU.js +30 -0
- package/dist/NiceButton-B5RXLDwI.cjs +1 -0
- package/dist/NiceButton-CDiS45Ya.cjs +1 -0
- package/dist/NiceButton-D9l39Rs7.js +595 -0
- package/dist/NiceButton-DmTHNHet.js +450 -0
- package/dist/NiceCodeTemplate.doc-BWxTE4C_.cjs +6 -0
- package/dist/NiceCodeTemplate.doc-CA2U5F-v.js +30 -0
- package/dist/NiceDataBranchGraph.doc-CkitupWc.js +29 -0
- package/dist/NiceDataBranchGraph.doc-DDUgipqH.cjs +5 -0
- package/dist/NiceDataBranchManager.doc-B0ODKOs4.js +30 -0
- package/dist/NiceDataBranchManager.doc-CC5o8ihs.cjs +6 -0
- package/dist/NiceDataConflictResolver.doc-CdzScNie.cjs +5 -0
- package/dist/NiceDataConflictResolver.doc-V8vxYAeo.js +29 -0
- package/dist/NiceDataDiffViewer.doc-CR14Bq3A.cjs +6 -0
- package/dist/NiceDataDiffViewer.doc-w2I2QjhX.js +30 -0
- package/dist/NiceDataMapper.doc-C7jSyHRM.js +30 -0
- package/dist/NiceDataMapper.doc-DXjQHz87.cjs +6 -0
- package/dist/NiceDataMergeBuilder.doc-CV32WC_w.cjs +6 -0
- package/dist/NiceDataMergeBuilder.doc-DtuYb3nx.js +30 -0
- package/dist/NiceDataSnapshot.doc-CFLkY3ry.js +30 -0
- package/dist/NiceDataSnapshot.doc-CpZyQ17u.cjs +6 -0
- package/dist/NiceErrorBoundary-BAeqfoSc.cjs +1 -0
- package/dist/NiceErrorBoundary-D1hh5GGe.js +732 -0
- package/dist/NiceErrorBoundary-Dta4TGee.cjs +1 -0
- package/dist/NiceErrorBoundary-niMx1aSJ.js +837 -0
- package/dist/NiceEventOrchestrator.doc-C4SJfIDV.js +30 -0
- package/dist/NiceEventOrchestrator.doc-CxjsLxBG.cjs +6 -0
- package/dist/NiceGitBlame.doc-BG3_K9_0.cjs +6 -0
- package/dist/NiceGitBlame.doc-DrJABEat.js +30 -0
- package/dist/NiceGitConflictResolver.doc-BK7hAfz6.js +30 -0
- package/dist/NiceGitConflictResolver.doc-CgroGM9_.cjs +6 -0
- package/dist/NiceGitDiffViewer.doc-BAwgcY_3.cjs +6 -0
- package/dist/NiceGitDiffViewer.doc-BXKJeP-E.js +30 -0
- package/dist/NiceGitGraph.doc-B-WtGuzn.cjs +5 -0
- package/dist/NiceGitGraph.doc-DxnDPCgC.js +29 -0
- package/dist/NiceGitHooks.doc-BrEizvMp.js +29 -0
- package/dist/NiceGitHooks.doc-C4EdV5zj.cjs +5 -0
- package/dist/NiceMergeRequestBuilder.doc-C5p8mYuh.cjs +6 -0
- package/dist/NiceMergeRequestBuilder.doc-Ct9RCmU8.js +30 -0
- package/dist/NiceModuleLifecyclePanel-BapdidD6.js +4776 -0
- package/dist/NiceModuleLifecyclePanel-Brg1RLwi.cjs +1 -0
- package/dist/NiceModuleLifecyclePanel-CsFsm534.cjs +1 -0
- package/dist/NiceModuleLifecyclePanel-I_TXRiiY.js +5053 -0
- package/dist/NicePinCodeInput-4q8yULuo.js +13359 -0
- package/dist/NicePinCodeInput-CrMfdxxc.js +15287 -0
- package/dist/NicePinCodeInput-D0aF9MK8.cjs +692 -0
- package/dist/NicePinCodeInput-eD2q8nGa.cjs +692 -0
- package/dist/NicePinCodeInput.css +1 -0
- package/dist/NicePipelineEditor.doc-0eGt8zbX.cjs +5 -0
- package/dist/NicePipelineEditor.doc-DTmaOebn.js +29 -0
- package/dist/NicePipelineMonitor.doc-67CmsRcf.cjs +5 -0
- package/dist/NicePipelineMonitor.doc-mSMdhuG8.js +29 -0
- package/dist/NiceSavedQueryPanel-BZNvqSQW.cjs +596 -0
- package/dist/NiceSavedQueryPanel-CUAsdOjJ.js +6190 -0
- package/dist/NiceSavedQueryPanel-DUw8plYP.js +5666 -0
- package/dist/NiceSavedQueryPanel-xpk09zy1.cjs +596 -0
- package/dist/NiceSavedQueryPanel.css +1 -0
- package/dist/NiceStateDesigner.doc-B36u0hNU.js +29 -0
- package/dist/NiceStateDesigner.doc-MPmvNHSx.cjs +5 -0
- package/dist/NiceStockChart-CHlOnWzN.cjs +287 -0
- package/dist/NiceStockChart-Cpmv9_Cc.js +2341 -0
- package/dist/NiceStockChart.css +1 -0
- package/dist/NiceTestBuilder.doc-BFInj8GJ.js +30 -0
- package/dist/NiceTestBuilder.doc-CB03U_uR.cjs +6 -0
- package/dist/NiceToggle-C1UKGXmJ.js +209 -0
- package/dist/NiceToggle-CaY1u82g.js +277 -0
- package/dist/NiceToggle-DFJFQv_Z.cjs +1 -0
- package/dist/NiceToggle-lVi-ETi0.cjs +1 -0
- package/dist/NiceWindow-D1awkyFl.js +1636 -0
- package/dist/NiceWindow-IdHAcP70.cjs +1 -0
- package/dist/NiceWindow-SiCaREbq.js +1408 -0
- package/dist/NiceWindow-yARTUJsg.cjs +1 -0
- package/dist/charts-Bx_kNBsE.js +4280 -0
- package/dist/charts-DECVsCHX.cjs +754 -0
- package/dist/charts.cjs +1 -0
- package/dist/charts.css +1 -0
- package/dist/charts.d.ts +1043 -0
- package/dist/charts.mjs +23 -0
- package/dist/core-BZBTsGWN.cjs +96 -0
- package/dist/core-BpghV7Ls.js +17555 -0
- package/dist/core-CfXsl755.js +16305 -0
- package/dist/core-DGJSUW64.cjs +96 -0
- package/dist/data-branching-De4ExX-S.cjs +1 -0
- package/dist/data-branching-DiRfob1f.js +6071 -0
- package/dist/data-branching.cjs +1 -0
- package/dist/data-branching.d.ts +401 -0
- package/dist/data-branching.mjs +9 -0
- package/dist/data.cjs +1 -0
- package/dist/data.d.ts +2003 -0
- package/dist/data.mjs +21 -0
- package/dist/devops-BnYinjkT.cjs +17 -0
- package/dist/devops-Ckh57eti.js +7198 -0
- package/dist/devops.cjs +1 -0
- package/dist/devops.d.ts +758 -0
- package/dist/devops.mjs +12 -0
- package/dist/editors.cjs +1 -0
- package/dist/editors.d.ts +2728 -0
- package/dist/editors.mjs +66 -0
- package/dist/feedback.cjs +1 -0
- package/dist/feedback.d.ts +339 -0
- package/dist/feedback.mjs +16 -0
- package/dist/index-C853adw1.cjs +6199 -0
- package/dist/index-CBIZ6mTQ.cjs +5734 -0
- package/dist/index-CIl98Vbm.js +72951 -0
- package/dist/index-CNwVELPJ.js +62857 -0
- package/dist/index-CUx_-gKK.cjs +1 -0
- package/dist/index-x8mRM4Jc.js +17 -0
- package/dist/index.cjs +1 -7866
- package/dist/index.css +1 -0
- package/dist/index.d.ts +4888 -180
- package/dist/index.mjs +1021 -105889
- package/dist/lazy.cjs +1 -0
- package/dist/lazy.d.ts +1880 -0
- package/dist/lazy.mjs +98 -0
- package/dist/navigation.cjs +1 -0
- package/dist/navigation.d.ts +1862 -0
- package/dist/navigation.mjs +576 -0
- package/dist/no-code-BCuadkm4.cjs +332 -0
- package/dist/no-code-TL7PyulA.js +7005 -0
- package/dist/no-code.cjs +1 -0
- package/dist/no-code.d.ts +870 -0
- package/dist/no-code.mjs +13 -0
- package/dist/overlays.cjs +1 -0
- package/dist/overlays.d.ts +706 -0
- package/dist/overlays.mjs +482 -0
- package/package.json +51 -1
|
@@ -0,0 +1,1862 @@
|
|
|
1
|
+
import { default as default_2 } from 'react';
|
|
2
|
+
import { ForwardRefExoticComponent } from 'react';
|
|
3
|
+
import { RefAttributes } from 'react';
|
|
4
|
+
|
|
5
|
+
declare interface ClosedTabEntry {
|
|
6
|
+
/** The closed tab descriptor. */
|
|
7
|
+
tab: NiceTabDescriptor;
|
|
8
|
+
/** Original index when closed. */
|
|
9
|
+
originalIndex: number;
|
|
10
|
+
/** Timestamp when closed. */
|
|
11
|
+
closedAt: number;
|
|
12
|
+
/** Optional content state to restore (serialized). */
|
|
13
|
+
state?: unknown;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare interface ContextMenuProps {
|
|
17
|
+
items: NiceStartMenuItem[];
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
onItemClick?: (key: string) => void;
|
|
21
|
+
onClose: () => void;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export declare const DEFAULT_SIDEBAR_PREFS: Omit<SidebarNavUserPrefs, 'userId'>;
|
|
25
|
+
|
|
26
|
+
export declare const DesktopContextMenu: default_2.FC<ContextMenuProps>;
|
|
27
|
+
|
|
28
|
+
export declare const DesktopGrid: default_2.FC<DesktopGridProps>;
|
|
29
|
+
|
|
30
|
+
declare interface DesktopGridProps {
|
|
31
|
+
icons: NiceDesktopIcon[];
|
|
32
|
+
gridColumns: number;
|
|
33
|
+
iconSize: NiceSize;
|
|
34
|
+
onIconClick?: (key: string) => void;
|
|
35
|
+
onIconDoubleClick?: (key: string) => void;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export declare const DesktopStartMenu: default_2.FC<StartMenuProps>;
|
|
39
|
+
|
|
40
|
+
export declare const DesktopSystemTray: default_2.FC<SystemTrayProps>;
|
|
41
|
+
|
|
42
|
+
export declare const DesktopTaskbar: default_2.FC<TaskbarProps>;
|
|
43
|
+
|
|
44
|
+
/** A breadcrumb item. */
|
|
45
|
+
declare interface NavbarBreadcrumb {
|
|
46
|
+
label: string;
|
|
47
|
+
href?: string;
|
|
48
|
+
onClick?: () => void;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Per-component visibility & interaction level used by the access control system.
|
|
53
|
+
* - `'full'` — fully interactive (default)
|
|
54
|
+
* - `'readOnly'` — renders but cannot be edited
|
|
55
|
+
* - `'disabled'` — renders greyed-out
|
|
56
|
+
* - `'hidden'` — not rendered at all
|
|
57
|
+
*/
|
|
58
|
+
declare type NiceAccessMode = 'full' | 'readOnly' | 'disabled' | 'hidden';
|
|
59
|
+
|
|
60
|
+
export declare const NiceAccordion: default_2.FC<NiceAccordionProps>;
|
|
61
|
+
|
|
62
|
+
/** A panel definition for the {@link NiceAccordion}. */
|
|
63
|
+
declare interface NiceAccordionItem {
|
|
64
|
+
/** Unique identifier. */
|
|
65
|
+
id: string;
|
|
66
|
+
/** Panel header text. */
|
|
67
|
+
title: string;
|
|
68
|
+
/** Panel body content. */
|
|
69
|
+
content: default_2.ReactNode;
|
|
70
|
+
/** Prevent the panel from being toggled. */
|
|
71
|
+
disabled?: boolean;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Props for the {@link NiceAccordion} component — a collapsible panel list. */
|
|
75
|
+
export declare interface NiceAccordionProps extends NiceBaseProps {
|
|
76
|
+
/** Accordion size. */
|
|
77
|
+
size?: NiceSize;
|
|
78
|
+
/** Panel definitions. */
|
|
79
|
+
items: NiceAccordionItem[];
|
|
80
|
+
/** Allow multiple panels to be open at once. */
|
|
81
|
+
multiple?: boolean;
|
|
82
|
+
/** IDs of panels that are open by default. */
|
|
83
|
+
defaultOpen?: string[];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export declare const NiceAppLayout: default_2.ForwardRefExoticComponent<NiceAppLayoutProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
87
|
+
|
|
88
|
+
/** Props for the {@link NiceAppLayout} component — a top-level application shell with header, collapsible sidebar, content area, and footer. */
|
|
89
|
+
export declare interface NiceAppLayoutProps extends NiceBaseProps {
|
|
90
|
+
/** Content rendered in the top header bar. */
|
|
91
|
+
header?: default_2.ReactNode;
|
|
92
|
+
/** Content rendered in the side navigation panel. */
|
|
93
|
+
sidebar?: default_2.ReactNode;
|
|
94
|
+
/** Width of the sidebar (px or CSS value). */
|
|
95
|
+
sidebarWidth?: number | string;
|
|
96
|
+
/** Controlled collapsed state of the sidebar. */
|
|
97
|
+
sidebarCollapsed?: boolean;
|
|
98
|
+
/** Called when the sidebar toggle button is clicked. */
|
|
99
|
+
onToggleSidebar?: (collapsed: boolean) => void;
|
|
100
|
+
/** Main page content. */
|
|
101
|
+
children: default_2.ReactNode;
|
|
102
|
+
/** Content rendered at the bottom. */
|
|
103
|
+
footer?: default_2.ReactNode;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/** Base props inherited by every NiceToDev component. */
|
|
107
|
+
declare interface NiceBaseProps {
|
|
108
|
+
/** Additional CSS class name(s). */
|
|
109
|
+
className?: string;
|
|
110
|
+
/** Inline style object. */
|
|
111
|
+
style?: React.CSSProperties;
|
|
112
|
+
/** HTML `id` attribute. When omitted a stable auto-generated id is used. */
|
|
113
|
+
id?: string;
|
|
114
|
+
/** Tooltip text shown on hover. */
|
|
115
|
+
title?: string;
|
|
116
|
+
/** Test identifier for integration / e2e test selectors. */
|
|
117
|
+
'data-testid'?: string;
|
|
118
|
+
/** Controls component visibility and interaction — see {@link NiceAccessMode}. */
|
|
119
|
+
accessMode?: NiceAccessMode;
|
|
120
|
+
/**
|
|
121
|
+
* Visual presentation style override.
|
|
122
|
+
* When set, overrides the global `displayStyle` from `NiceThemeProvider`.
|
|
123
|
+
* @see NiceDisplayStyle
|
|
124
|
+
*/
|
|
125
|
+
displayStyle?: NiceDisplayStyle;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export declare const NiceBottomNavigation: default_2.ForwardRefExoticComponent<NiceBottomNavigationProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
129
|
+
|
|
130
|
+
/** A navigation item in the {@link NiceBottomNavigation} bar. */
|
|
131
|
+
declare interface NiceBottomNavigationItem {
|
|
132
|
+
/** Unique key. */
|
|
133
|
+
key: string;
|
|
134
|
+
/** Label text. */
|
|
135
|
+
label: string;
|
|
136
|
+
/** Icon element. */
|
|
137
|
+
icon?: default_2.ReactNode;
|
|
138
|
+
/** Disable the item. */
|
|
139
|
+
disabled?: boolean;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/** Props for the {@link NiceBottomNavigation} component — a mobile-style bottom tab bar. */
|
|
143
|
+
export declare interface NiceBottomNavigationProps extends NiceBaseProps {
|
|
144
|
+
/** Navigation items. */
|
|
145
|
+
items: NiceBottomNavigationItem[];
|
|
146
|
+
/** Currently active item key. */
|
|
147
|
+
activeKey?: string;
|
|
148
|
+
/** Called when the active item changes. */
|
|
149
|
+
onChange?: (key: string) => void;
|
|
150
|
+
/** Bar size preset. */
|
|
151
|
+
size?: NiceSize;
|
|
152
|
+
/** Show text labels below icons. */
|
|
153
|
+
showLabels?: boolean;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export declare const NiceBreadcrumb: default_2.FC<NiceBreadcrumbProps>;
|
|
157
|
+
|
|
158
|
+
/** A single crumb in the {@link NiceBreadcrumb} trail. */
|
|
159
|
+
declare interface NiceBreadcrumbItem {
|
|
160
|
+
/** Display text. */
|
|
161
|
+
label: string;
|
|
162
|
+
/** Navigation URL. */
|
|
163
|
+
href?: string;
|
|
164
|
+
/** Click handler (alternative to href). */
|
|
165
|
+
onClick?: () => void;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/** Props for the {@link NiceBreadcrumb} component — a navigation trail showing the current location hierarchy. */
|
|
169
|
+
export declare interface NiceBreadcrumbProps extends NiceBaseProps {
|
|
170
|
+
/** Breadcrumb size. */
|
|
171
|
+
size?: NiceSize;
|
|
172
|
+
/** Ordered breadcrumb items (left-to-right). */
|
|
173
|
+
items: NiceBreadcrumbItem[];
|
|
174
|
+
/** Custom separator between crumbs (default "/"). */
|
|
175
|
+
separator?: default_2.ReactNode;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export declare const NiceCard: default_2.FC<NiceCardProps>;
|
|
179
|
+
|
|
180
|
+
/** Props for the {@link NiceCard} component — a bordered content container with optional header and footer. */
|
|
181
|
+
export declare interface NiceCardProps extends NiceBaseProps {
|
|
182
|
+
/** Card size. */
|
|
183
|
+
size?: NiceSize;
|
|
184
|
+
/** Card body content. */
|
|
185
|
+
children: default_2.ReactNode;
|
|
186
|
+
/** Header title text. */
|
|
187
|
+
title?: string;
|
|
188
|
+
/** Extra element rendered at the right side of the header (actions, badges, etc.). */
|
|
189
|
+
headerExtra?: default_2.ReactNode;
|
|
190
|
+
/** Footer content. */
|
|
191
|
+
footer?: default_2.ReactNode;
|
|
192
|
+
/** Elevate the card on hover. */
|
|
193
|
+
hoverable?: boolean;
|
|
194
|
+
/** Makes the entire card clickable. */
|
|
195
|
+
onClick?: () => void;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
export declare const NiceClassicShell: ForwardRefExoticComponent<NiceShellProps & RefAttributes<HTMLDivElement>>;
|
|
199
|
+
|
|
200
|
+
export declare const NiceCompactShell: ForwardRefExoticComponent<NiceCompactShellProps & RefAttributes<HTMLDivElement>>;
|
|
201
|
+
|
|
202
|
+
export declare interface NiceCompactShellProps extends NiceBaseProps {
|
|
203
|
+
/** Top bar (minimal, icon-only navigation). */
|
|
204
|
+
topBar?: React.ReactNode;
|
|
205
|
+
/** Bottom navigation (mobile-style). */
|
|
206
|
+
bottomNav?: React.ReactNode;
|
|
207
|
+
/** Main content. */
|
|
208
|
+
children?: React.ReactNode;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export declare const NiceConsole: ForwardRefExoticComponent<NiceConsoleProps & RefAttributes<HTMLDivElement>>;
|
|
212
|
+
|
|
213
|
+
/** A command registered in the {@link NiceConsole} command palette. */
|
|
214
|
+
declare interface NiceConsoleCommand {
|
|
215
|
+
/** Unique key. */
|
|
216
|
+
key: string;
|
|
217
|
+
/** Display label. */
|
|
218
|
+
label: string;
|
|
219
|
+
/** Optional description shown beside the label. */
|
|
220
|
+
description?: string;
|
|
221
|
+
/** Keyboard shortcut hint (display only). */
|
|
222
|
+
shortcut?: string;
|
|
223
|
+
/** Optional icon. */
|
|
224
|
+
icon?: React.ReactNode;
|
|
225
|
+
/** Disable the command. */
|
|
226
|
+
disabled?: boolean;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/** Props for the {@link NiceConsole} component — a VS Code-inspired IDE shell with tabs, command palette, status bar, and split panels. */
|
|
230
|
+
export declare interface NiceConsoleProps extends NiceBaseProps {
|
|
231
|
+
/** Tabs displayed at the top. */
|
|
232
|
+
tabs?: NiceConsoleTab[];
|
|
233
|
+
/** Active tab key */
|
|
234
|
+
activeTabKey?: string;
|
|
235
|
+
/** Called when tab changes */
|
|
236
|
+
onTabChange?: (key: string) => void;
|
|
237
|
+
/** Called when a tab is closed */
|
|
238
|
+
onTabClose?: (key: string) => void;
|
|
239
|
+
/** Show command palette on Ctrl+Shift+P */
|
|
240
|
+
commandPalette?: NiceConsoleCommand[];
|
|
241
|
+
/** Called when a command is selected */
|
|
242
|
+
onCommand?: (key: string) => void;
|
|
243
|
+
/** Status bar items */
|
|
244
|
+
statusItems?: NiceConsoleStatusItem[];
|
|
245
|
+
/** Header / toolbar content */
|
|
246
|
+
toolbar?: React.ReactNode;
|
|
247
|
+
/** Side panel content */
|
|
248
|
+
sidePanel?: React.ReactNode;
|
|
249
|
+
/** Side panel width */
|
|
250
|
+
sidePanelWidth?: number | string;
|
|
251
|
+
/** Side panel collapsed */
|
|
252
|
+
sidePanelCollapsed?: boolean;
|
|
253
|
+
/** Toggle side panel */
|
|
254
|
+
onToggleSidePanel?: (collapsed: boolean) => void;
|
|
255
|
+
/** Bottom panel content (output / terminal) */
|
|
256
|
+
bottomPanel?: React.ReactNode;
|
|
257
|
+
/** Bottom panel height */
|
|
258
|
+
bottomPanelHeight?: number | string;
|
|
259
|
+
/** Bottom panel collapsed */
|
|
260
|
+
bottomPanelCollapsed?: boolean;
|
|
261
|
+
/** Toggle bottom panel */
|
|
262
|
+
onToggleBottomPanel?: (collapsed: boolean) => void;
|
|
263
|
+
/** Main content when no tabs */
|
|
264
|
+
children?: React.ReactNode;
|
|
265
|
+
/** Size */
|
|
266
|
+
size?: NiceSize;
|
|
267
|
+
/** Console theme */
|
|
268
|
+
theme?: 'dark' | 'light';
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/** A status-bar item in the {@link NiceConsole}. */
|
|
272
|
+
declare interface NiceConsoleStatusItem {
|
|
273
|
+
/** Unique key. */
|
|
274
|
+
key: string;
|
|
275
|
+
/** Rendered content. */
|
|
276
|
+
content: React.ReactNode;
|
|
277
|
+
/** Side of the status bar. */
|
|
278
|
+
position?: 'left' | 'right';
|
|
279
|
+
/** Click handler. */
|
|
280
|
+
onClick?: () => void;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/** A tab inside the {@link NiceConsole} editor area. */
|
|
284
|
+
declare interface NiceConsoleTab {
|
|
285
|
+
/** Unique key. */
|
|
286
|
+
key: string;
|
|
287
|
+
/** Tab header label. */
|
|
288
|
+
label: string;
|
|
289
|
+
/** Optional tab icon. */
|
|
290
|
+
icon?: React.ReactNode;
|
|
291
|
+
/** Whether the tab can be closed. */
|
|
292
|
+
closable?: boolean;
|
|
293
|
+
/** Content renderer. */
|
|
294
|
+
render: () => React.ReactNode;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export declare const NiceContextMenu: default_2.FC<NiceContextMenuProps>;
|
|
298
|
+
|
|
299
|
+
/** Props for the {@link NiceContextMenu} component — a right-click popup menu attached to a target element. */
|
|
300
|
+
export declare interface NiceContextMenuProps extends NiceBaseProps {
|
|
301
|
+
/** Size variant. */
|
|
302
|
+
size?: NiceSize;
|
|
303
|
+
/** Menu items. */
|
|
304
|
+
items: NiceMenuItem[];
|
|
305
|
+
/** Element ref that triggers the context menu on right-click. */
|
|
306
|
+
target: default_2.RefObject<HTMLElement | null>;
|
|
307
|
+
/** Called when an item is selected. */
|
|
308
|
+
onItemClick?: (item: NiceMenuItem) => void;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
export declare const NiceDashboardLayout: default_2.ForwardRefExoticComponent<NiceDashboardLayoutProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
312
|
+
|
|
313
|
+
/** Props for the {@link NiceDashboardLayout} component — a CSS-grid dashboard with draggable, resizable panels. */
|
|
314
|
+
export declare interface NiceDashboardLayoutProps extends NiceBaseProps {
|
|
315
|
+
/** Panel definitions with grid positions. */
|
|
316
|
+
panels: NiceDashboardPanel[];
|
|
317
|
+
/** Number of grid columns. */
|
|
318
|
+
columns?: number;
|
|
319
|
+
/** Height of one grid row in px. */
|
|
320
|
+
rowHeight?: number;
|
|
321
|
+
/** Gap between panels in px. */
|
|
322
|
+
gap?: number;
|
|
323
|
+
/** Allow panels to be dragged to new positions. */
|
|
324
|
+
draggable?: boolean;
|
|
325
|
+
/** Allow panels to be resized. */
|
|
326
|
+
resizable?: boolean;
|
|
327
|
+
/** Called when the layout changes (after drag/resize). */
|
|
328
|
+
onLayoutChange?: (panels: NiceDashboardPanel[]) => void;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/** A positioned panel in the {@link NiceDashboardLayout} grid. */
|
|
332
|
+
declare interface NiceDashboardPanel {
|
|
333
|
+
/** Unique key. */
|
|
334
|
+
key: string;
|
|
335
|
+
/** 0-based column position. */
|
|
336
|
+
col: number;
|
|
337
|
+
/** 0-based row position. */
|
|
338
|
+
row: number;
|
|
339
|
+
/** Number of columns this panel spans. */
|
|
340
|
+
colSpan?: number;
|
|
341
|
+
/** Number of rows this panel spans. */
|
|
342
|
+
rowSpan?: number;
|
|
343
|
+
/** Content renderer. */
|
|
344
|
+
render: () => default_2.ReactNode;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
export declare const NiceDashboardShell: ForwardRefExoticComponent<NiceDashboardShellProps & RefAttributes<HTMLDivElement>>;
|
|
348
|
+
|
|
349
|
+
export declare interface NiceDashboardShellProps extends NiceBaseProps {
|
|
350
|
+
/** Top bar content (app title, user menu, search). */
|
|
351
|
+
topBar?: React.ReactNode;
|
|
352
|
+
/** Optional side panel content. */
|
|
353
|
+
sidePanel?: React.ReactNode;
|
|
354
|
+
/** Side panel position. */
|
|
355
|
+
sidePanelPosition?: 'left' | 'right';
|
|
356
|
+
/** Side panel width. */
|
|
357
|
+
sidePanelWidth?: number;
|
|
358
|
+
/** Main dashboard content (widgets grid). */
|
|
359
|
+
children?: React.ReactNode;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
export declare const NiceDesktop: ForwardRefExoticComponent<NiceDesktopProps & RefAttributes<HTMLDivElement>>;
|
|
363
|
+
|
|
364
|
+
/** A shortcut icon on the {@link NiceDesktop} surface. */
|
|
365
|
+
export declare interface NiceDesktopIcon {
|
|
366
|
+
/** Unique key. */
|
|
367
|
+
key: string;
|
|
368
|
+
/** Display label below the icon. */
|
|
369
|
+
label: string;
|
|
370
|
+
/** Icon element. */
|
|
371
|
+
icon: React.ReactNode;
|
|
372
|
+
/** Item type (changes visual styling). */
|
|
373
|
+
type?: 'file' | 'folder' | 'shortcut' | 'app';
|
|
374
|
+
/** Disable the icon. */
|
|
375
|
+
disabled?: boolean;
|
|
376
|
+
/** Position on the desktop grid (auto-layout if not set). */
|
|
377
|
+
gridCol?: number;
|
|
378
|
+
/** Row position on the desktop grid. */
|
|
379
|
+
gridRow?: number;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/** Props for the {@link NiceDesktop} component — a full OS-like desktop environment with taskbar, start menu, system tray, and windowed children. */
|
|
383
|
+
export declare interface NiceDesktopProps extends NiceBaseProps {
|
|
384
|
+
/** Desktop shortcut icons. */
|
|
385
|
+
icons?: NiceDesktopIcon[];
|
|
386
|
+
/** Taskbar position */
|
|
387
|
+
taskbarPosition?: NiceTaskbarPosition;
|
|
388
|
+
/** Taskbar height/width in px */
|
|
389
|
+
taskbarSize?: number;
|
|
390
|
+
/** Start menu items */
|
|
391
|
+
startMenuItems?: NiceStartMenuItem[];
|
|
392
|
+
/** Start menu title / label */
|
|
393
|
+
startMenuLabel?: string;
|
|
394
|
+
/** Start menu icon */
|
|
395
|
+
startMenuIcon?: React.ReactNode;
|
|
396
|
+
/** Items shown in the taskbar (open windows) */
|
|
397
|
+
taskbarItems?: NiceTaskbarItem[];
|
|
398
|
+
/** System tray items (clock area) */
|
|
399
|
+
systemTrayItems?: NiceSystemTrayItem[];
|
|
400
|
+
/** Show clock in system tray */
|
|
401
|
+
showClock?: boolean;
|
|
402
|
+
/** Wallpaper CSS background value */
|
|
403
|
+
wallpaper?: string;
|
|
404
|
+
/** Desktop grid columns */
|
|
405
|
+
gridColumns?: number;
|
|
406
|
+
/** Desktop icon size */
|
|
407
|
+
iconSize?: NiceSize;
|
|
408
|
+
/** Callback when an icon is clicked */
|
|
409
|
+
onIconClick?: (key: string) => void;
|
|
410
|
+
/** Callback when an icon is double-clicked */
|
|
411
|
+
onIconDoubleClick?: (key: string) => void;
|
|
412
|
+
/** Callback when a taskbar item is clicked */
|
|
413
|
+
onTaskbarItemClick?: (key: string) => void;
|
|
414
|
+
/** Callback when start menu item is clicked */
|
|
415
|
+
onStartMenuItemClick?: (key: string) => void;
|
|
416
|
+
/** Callback when a system tray item is clicked */
|
|
417
|
+
onSystemTrayItemClick?: (key: string) => void;
|
|
418
|
+
/** Desktop right-click context menu items */
|
|
419
|
+
contextMenuItems?: NiceStartMenuItem[];
|
|
420
|
+
/** Callback when context menu item is clicked */
|
|
421
|
+
onContextMenuItemClick?: (key: string) => void;
|
|
422
|
+
/** Render children (windows, etc.) on the desktop area */
|
|
423
|
+
children?: React.ReactNode;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Cross-component visual presentation style.
|
|
428
|
+
* Each style maps 1:1 to a ThemeVariantConfig preset controlling
|
|
429
|
+
* buttons, inputs, cards, badges, tabs, toggles, tooltips, tables, etc.
|
|
430
|
+
*/
|
|
431
|
+
declare type NiceDisplayStyle = 'default' | 'minimal' | 'rounded' | 'sharp' | 'glass' | 'neumorphic' | 'playful' | 'enterprise' | 'modern3d' | 'brutalist' | 'luxe' | 'pill' | 'flat' | 'editorial' | 'dashboard' | 'softCloud' | 'cosmic' | 'corporate' | 'bank' | 'government' | 'military' | 'legal' | 'medical' | 'swiss' | 'scandinavian' | 'bauhaus' | 'notebook' | 'origami' | 'watercolor' | 'monochrome' | 'paper' | 'zen' | 'terminal' | 'hacker' | 'retro8bit' | 'synthwave' | 'cyberpunk' | 'steampunk' | 'vapor' | 'neon' | 'windows95' | 'material' | 'fluent' | 'cupertino' | 'ant' | 'bootstrap' | 'chakra' | 'notion' | 'linear' | 'vercel' | 'candy' | 'bubblegum' | 'cartoon' | 'kawaii' | 'circus' | 'gaming' | 'kiddo' | 'disco' | 'clown';
|
|
432
|
+
|
|
433
|
+
export declare const NiceDock: ForwardRefExoticComponent<NiceDockProps & RefAttributes<HTMLDivElement>>;
|
|
434
|
+
|
|
435
|
+
/** An item in the {@link NiceDock} bar. */
|
|
436
|
+
declare interface NiceDockItem {
|
|
437
|
+
/** Unique key. */
|
|
438
|
+
key: string;
|
|
439
|
+
/** Icon element. */
|
|
440
|
+
icon: React.ReactNode;
|
|
441
|
+
/** Tooltip / label text. */
|
|
442
|
+
label: string;
|
|
443
|
+
/** Notification badge value. */
|
|
444
|
+
badge?: number | string;
|
|
445
|
+
/** Disable the item. */
|
|
446
|
+
disabled?: boolean;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
export declare const NiceDockMenu: ForwardRefExoticComponent<NiceDockMenuProps & RefAttributes<HTMLDivElement>>;
|
|
450
|
+
|
|
451
|
+
export declare interface NiceDockMenuProps extends NiceBaseProps {
|
|
452
|
+
size?: NiceSize;
|
|
453
|
+
items: NiceMenuGroupItem[];
|
|
454
|
+
activeKey?: string;
|
|
455
|
+
onItemClick?: (item: NiceMenuGroupItem) => void;
|
|
456
|
+
position?: 'bottom' | 'left' | 'right';
|
|
457
|
+
/** Auto-hide when not hovered. */
|
|
458
|
+
autoHide?: boolean;
|
|
459
|
+
/** Icon size. */
|
|
460
|
+
iconSize?: number;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/** Props for the {@link NiceDock} component — a macOS-style dock bar with magnification effect. */
|
|
464
|
+
export declare interface NiceDockProps extends NiceBaseProps {
|
|
465
|
+
/** Dock items. */
|
|
466
|
+
items: NiceDockItem[];
|
|
467
|
+
/** Dock placement. */
|
|
468
|
+
position?: 'bottom' | 'left' | 'right';
|
|
469
|
+
/** Icon size preset. */
|
|
470
|
+
size?: NiceSize;
|
|
471
|
+
/** Enable mouse-proximity magnification. */
|
|
472
|
+
magnify?: boolean;
|
|
473
|
+
/** Magnification scale factor (e.g. 1.5). */
|
|
474
|
+
magnifyScale?: number;
|
|
475
|
+
/** Currently active item key. */
|
|
476
|
+
activeKey?: string;
|
|
477
|
+
/** Called when an item is clicked. */
|
|
478
|
+
onItemClick?: (key: string) => void;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
export declare const NiceDynamicSidebar: ForwardRefExoticComponent<NiceDynamicSidebarProps & RefAttributes<HTMLElement>>;
|
|
482
|
+
|
|
483
|
+
export declare interface NiceDynamicSidebarProps extends NiceBaseProps {
|
|
484
|
+
/** Full navigation data (modules, quickActions, favorites). */
|
|
485
|
+
menu: NiceUserMenuResponse;
|
|
486
|
+
/** Currently active route for highlighting. */
|
|
487
|
+
activeRoute?: string;
|
|
488
|
+
/** Whether sidebar starts collapsed. */
|
|
489
|
+
collapsed?: boolean;
|
|
490
|
+
/** Width in px when expanded. */
|
|
491
|
+
width?: number;
|
|
492
|
+
/** Width in px when collapsed (icon-only). */
|
|
493
|
+
collapsedWidth?: number;
|
|
494
|
+
/** Show search input. */
|
|
495
|
+
searchable?: boolean;
|
|
496
|
+
/** Show favorites section. */
|
|
497
|
+
showFavorites?: boolean;
|
|
498
|
+
/** Show quick actions. */
|
|
499
|
+
showQuickActions?: boolean;
|
|
500
|
+
/** Allow user to toggle collapse. */
|
|
501
|
+
collapsible?: boolean;
|
|
502
|
+
/** Called when user navigates to a route. */
|
|
503
|
+
onNavigate?: (route: string, entity?: NiceEntityMenuDto) => void;
|
|
504
|
+
/** Called when sidebar collapse state changes. */
|
|
505
|
+
onCollapseChange?: (collapsed: boolean) => void;
|
|
506
|
+
/** Called when user toggles a favorite. */
|
|
507
|
+
onToggleFavorite?: (item: NiceFavoriteItem) => void;
|
|
508
|
+
/** Custom header content (logo, tenant name, etc.). */
|
|
509
|
+
header?: React.ReactNode;
|
|
510
|
+
/** Custom footer content (profile, settings links, etc.). */
|
|
511
|
+
footer?: React.ReactNode;
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
/** A single entity (list view / form view) inside a module. */
|
|
515
|
+
declare interface NiceEntityMenuDto {
|
|
516
|
+
id: string;
|
|
517
|
+
name: string;
|
|
518
|
+
label: string;
|
|
519
|
+
icon?: string;
|
|
520
|
+
listViewId?: string;
|
|
521
|
+
formViewId?: string;
|
|
522
|
+
route: string;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
declare interface NiceFavoriteItem {
|
|
526
|
+
id: string;
|
|
527
|
+
label: string;
|
|
528
|
+
icon?: string;
|
|
529
|
+
route: string;
|
|
530
|
+
entityId?: string;
|
|
531
|
+
moduleId?: string;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
/** Extended base props for form-field components (inputs, selects, etc.). */
|
|
535
|
+
declare interface NiceFormFieldProps extends NiceBaseProps {
|
|
536
|
+
/** Field label displayed above or beside the control. */
|
|
537
|
+
label?: string;
|
|
538
|
+
/** Assistive text shown below the field. */
|
|
539
|
+
helperText?: string;
|
|
540
|
+
/** Validation error message — when set the field is styled as invalid. */
|
|
541
|
+
error?: string;
|
|
542
|
+
/** Marks the field as required (adds visual indicator). */
|
|
543
|
+
required?: boolean;
|
|
544
|
+
/** Disables the field. */
|
|
545
|
+
disabled?: boolean;
|
|
546
|
+
/** Makes the field read-only. */
|
|
547
|
+
readOnly?: boolean;
|
|
548
|
+
/** Visual size of the field. */
|
|
549
|
+
size?: NiceSize;
|
|
550
|
+
/** HTML `name` attribute used in form serialization. */
|
|
551
|
+
name?: string;
|
|
552
|
+
/** When true, pressing Enter will trigger the onSubmit callback (if provided). */
|
|
553
|
+
submitOnEnter?: boolean;
|
|
554
|
+
/** Callback triggered when Enter is pressed (if submitOnEnter is true). */
|
|
555
|
+
onSubmit?: () => void;
|
|
556
|
+
/** Show a keyboard shortcuts hint icon (?) next to the label. */
|
|
557
|
+
showKeyboardHints?: boolean;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
export declare const NiceHamburgerMenu: ForwardRefExoticComponent<NiceHamburgerMenuProps & RefAttributes<HTMLDivElement>>;
|
|
561
|
+
|
|
562
|
+
export declare interface NiceHamburgerMenuProps extends NiceBaseProps {
|
|
563
|
+
size?: NiceSize;
|
|
564
|
+
items: NiceMenuGroupItem[];
|
|
565
|
+
activeKey?: string;
|
|
566
|
+
onItemClick?: (item: NiceMenuGroupItem) => void;
|
|
567
|
+
/** Open state for controlled usage. */
|
|
568
|
+
open?: boolean;
|
|
569
|
+
/** Called when open state changes. */
|
|
570
|
+
onOpenChange?: (open: boolean) => void;
|
|
571
|
+
/** Slide-in direction. */
|
|
572
|
+
position?: 'left' | 'right';
|
|
573
|
+
/** Panel width. */
|
|
574
|
+
panelWidth?: number;
|
|
575
|
+
/** Custom header inside menu panel. */
|
|
576
|
+
header?: React.ReactNode;
|
|
577
|
+
/** Custom footer inside menu panel. */
|
|
578
|
+
footer?: React.ReactNode;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
export declare const NiceKioskShell: ForwardRefExoticComponent<NiceKioskShellProps & RefAttributes<HTMLDivElement>>;
|
|
582
|
+
|
|
583
|
+
export declare interface NiceKioskShellProps extends NiceBaseProps {
|
|
584
|
+
/** Optional minimal controls overlay (home button, logout). */
|
|
585
|
+
overlay?: React.ReactNode;
|
|
586
|
+
/** Lock screen content when idle. */
|
|
587
|
+
lockScreen?: React.ReactNode;
|
|
588
|
+
/** Whether kiosk is locked (shows lock screen). */
|
|
589
|
+
locked?: boolean;
|
|
590
|
+
/** Full-screen content (POS, terminal, etc.). */
|
|
591
|
+
children?: React.ReactNode;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
export declare const NiceMdiWorkspace: ForwardRefExoticComponent<NiceMdiWorkspaceProps & RefAttributes<HTMLDivElement>>;
|
|
595
|
+
|
|
596
|
+
export declare interface NiceMdiWorkspaceProps extends NiceBaseProps {
|
|
597
|
+
/** Currently open tabs. */
|
|
598
|
+
tabs: NiceTabDescriptor[];
|
|
599
|
+
/** Index of the active (visible) tab. */
|
|
600
|
+
activeIndex: number;
|
|
601
|
+
/** Render function returning the content for a given tab. */
|
|
602
|
+
renderTab: (tab: NiceTabDescriptor, index: number) => React.ReactNode;
|
|
603
|
+
/** Called when user selects a different tab. */
|
|
604
|
+
onActiveChange?: (index: number) => void;
|
|
605
|
+
/** Called when user closes a tab. Return false to cancel close. */
|
|
606
|
+
onCloseTab?: (tab: NiceTabDescriptor, index: number) => void | boolean;
|
|
607
|
+
/** Called when tabs are reordered via drag. */
|
|
608
|
+
onReorderTabs?: (tabs: NiceTabDescriptor[]) => void;
|
|
609
|
+
/** Called to persist workspace state. */
|
|
610
|
+
onSaveState?: (state: NiceWorkspaceState) => void;
|
|
611
|
+
/** Enable keyboard shortcuts (Ctrl+W close, Ctrl+Tab next, Ctrl+Shift+T reopen). */
|
|
612
|
+
enableShortcuts?: boolean;
|
|
613
|
+
/** Max number of open tabs (0 = unlimited). */
|
|
614
|
+
maxTabs?: number;
|
|
615
|
+
/** Show dirty indicator on modified tabs. */
|
|
616
|
+
showDirtyIndicator?: boolean;
|
|
617
|
+
/** Tab bar position. */
|
|
618
|
+
tabBarPosition?: 'top' | 'bottom';
|
|
619
|
+
/** Allow dragging tabs to reorder. */
|
|
620
|
+
draggable?: boolean;
|
|
621
|
+
/** Show a "+" button to add new tabs. */
|
|
622
|
+
showAddButton?: boolean;
|
|
623
|
+
/** Called when "+" is clicked. */
|
|
624
|
+
onAddTab?: () => void;
|
|
625
|
+
/** Preserve closed tab content in DOM (IndexedStack). */
|
|
626
|
+
keepAlive?: boolean;
|
|
627
|
+
/** Show warning modal when closing tabs with unsaved changes. */
|
|
628
|
+
warnOnUnsavedClose?: boolean;
|
|
629
|
+
/** Max recently closed tabs to remember (default 10). */
|
|
630
|
+
maxClosedTabs?: number;
|
|
631
|
+
/** Called when user reopens a closed tab (Ctrl+Shift+T). */
|
|
632
|
+
onUndoCloseTab?: (entry: ClosedTabEntry) => void;
|
|
633
|
+
/** Function to get current state for a tab (for restoration). */
|
|
634
|
+
getTabState?: (tab: NiceTabDescriptor) => unknown;
|
|
635
|
+
/** Custom unsaved warning message. */
|
|
636
|
+
unsavedWarningMessage?: string;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
export declare const NiceMegaMenu: default_2.ForwardRefExoticComponent<NiceMegaMenuProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
640
|
+
|
|
641
|
+
/** A column within a {@link NiceMegaMenuPanel}. */
|
|
642
|
+
declare interface NiceMegaMenuColumn {
|
|
643
|
+
/** Optional column header text. */
|
|
644
|
+
header?: string;
|
|
645
|
+
/** Menu items in this column. */
|
|
646
|
+
items: NiceMegaMenuItem[];
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
/** A clickable item inside a {@link NiceMegaMenuColumn}. */
|
|
650
|
+
declare interface NiceMegaMenuItem {
|
|
651
|
+
/** Unique key. */
|
|
652
|
+
key: string;
|
|
653
|
+
/** Display label. */
|
|
654
|
+
label: string;
|
|
655
|
+
/** Optional icon. */
|
|
656
|
+
icon?: default_2.ReactNode;
|
|
657
|
+
/** If set, renders the item as a link. */
|
|
658
|
+
href?: string;
|
|
659
|
+
/** Click handler. */
|
|
660
|
+
onClick?: () => void;
|
|
661
|
+
/** Disable the item. */
|
|
662
|
+
disabled?: boolean;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
/** A top-level panel (mega dropdown) in the {@link NiceMegaMenu}. */
|
|
666
|
+
declare interface NiceMegaMenuPanel {
|
|
667
|
+
/** Unique key. */
|
|
668
|
+
key: string;
|
|
669
|
+
/** Panel trigger label. */
|
|
670
|
+
label: string;
|
|
671
|
+
/** Multi-column layout. */
|
|
672
|
+
columns: NiceMegaMenuColumn[];
|
|
673
|
+
/** Fully custom panel renderer (overrides columns). */
|
|
674
|
+
renderPanel?: () => default_2.ReactNode;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
/** Props for the {@link NiceMegaMenu} component — a desktop mega-dropdown navigation bar. */
|
|
678
|
+
export declare interface NiceMegaMenuProps extends NiceBaseProps {
|
|
679
|
+
/** Panel definitions. */
|
|
680
|
+
items: NiceMegaMenuPanel[];
|
|
681
|
+
/** Size preset. */
|
|
682
|
+
size?: NiceSize;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
export declare const NiceMenu: default_2.FC<NiceMenuProps>;
|
|
686
|
+
|
|
687
|
+
export declare interface NiceMenuGroupItem extends NiceMenuItem {
|
|
688
|
+
children?: NiceMenuGroupItem[];
|
|
689
|
+
badge?: string | number;
|
|
690
|
+
section?: string;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
/** A single item (or sub-menu) in the {@link NiceMenu}. */
|
|
694
|
+
declare interface NiceMenuItem {
|
|
695
|
+
/** Unique key. */
|
|
696
|
+
key: string;
|
|
697
|
+
/** Display text. */
|
|
698
|
+
text: string;
|
|
699
|
+
/** Icon element. */
|
|
700
|
+
icon?: default_2.ReactNode;
|
|
701
|
+
/** Disable this item. */
|
|
702
|
+
disabled?: boolean;
|
|
703
|
+
/** Nested sub-menu items. */
|
|
704
|
+
items?: NiceMenuItem[];
|
|
705
|
+
/** Click handler. */
|
|
706
|
+
onClick?: () => void;
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
/** Props for the {@link NiceMenu} component — a horizontal or vertical navigation menu with nested sub-menus. */
|
|
710
|
+
export declare interface NiceMenuProps extends NiceBaseProps {
|
|
711
|
+
/** Size variant. */
|
|
712
|
+
size?: NiceSize;
|
|
713
|
+
/** Menu items. */
|
|
714
|
+
items: NiceMenuItem[];
|
|
715
|
+
/** Layout direction. */
|
|
716
|
+
orientation?: 'horizontal' | 'vertical';
|
|
717
|
+
/** Called when any item is clicked. */
|
|
718
|
+
onItemClick?: (item: NiceMenuItem) => void;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
/** A work mode supported by the OmniVerk platform (test, demo, dev, prod, etc.). */
|
|
722
|
+
declare interface NiceModeInfo {
|
|
723
|
+
key: string;
|
|
724
|
+
displayName: string;
|
|
725
|
+
icon?: string;
|
|
726
|
+
color?: string;
|
|
727
|
+
sourcePackage?: string;
|
|
728
|
+
description?: string;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
export declare const NiceModeSelector: ForwardRefExoticComponent<NiceModeSelectorProps & RefAttributes<HTMLDivElement>>;
|
|
732
|
+
|
|
733
|
+
export declare interface NiceModeSelectorProps extends NiceBaseProps {
|
|
734
|
+
/** Size variant. */
|
|
735
|
+
size?: NiceSize;
|
|
736
|
+
/** Available modes. */
|
|
737
|
+
modes: NiceModeInfo[];
|
|
738
|
+
/** Currently active mode key. */
|
|
739
|
+
activeMode: string;
|
|
740
|
+
/** Called when user selects a mode. */
|
|
741
|
+
onModeChange?: (mode: NiceModeInfo) => void;
|
|
742
|
+
/** Display style. */
|
|
743
|
+
variant?: 'dropdown' | 'card-grid' | 'pills';
|
|
744
|
+
/** Grid column count (for card-grid variant). */
|
|
745
|
+
gridColumns?: number;
|
|
746
|
+
/** Show mode description. */
|
|
747
|
+
showDescription?: boolean;
|
|
748
|
+
/** Show colored indicator strip. */
|
|
749
|
+
showColorIndicator?: boolean;
|
|
750
|
+
/** Compact display (no description, smaller). */
|
|
751
|
+
compact?: boolean;
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
declare type NiceModuleAction = 'activate' | 'deactivate' | 'install' | 'uninstall' | 'update';
|
|
755
|
+
|
|
756
|
+
/** A module entry in the lifecycle management panel. */
|
|
757
|
+
declare interface NiceModuleInfo {
|
|
758
|
+
id: string;
|
|
759
|
+
name: string;
|
|
760
|
+
label: string;
|
|
761
|
+
description: string;
|
|
762
|
+
version: string;
|
|
763
|
+
icon?: string;
|
|
764
|
+
status: NiceModuleStatus;
|
|
765
|
+
author?: string;
|
|
766
|
+
dependencies?: string[];
|
|
767
|
+
isCore?: boolean;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
export declare const NiceModuleLifecyclePanel: ForwardRefExoticComponent<NiceModuleLifecyclePanelProps & RefAttributes<HTMLDivElement>>;
|
|
771
|
+
|
|
772
|
+
export declare interface NiceModuleLifecyclePanelProps extends NiceBaseProps {
|
|
773
|
+
/** List of all modules. */
|
|
774
|
+
modules: NiceModuleInfo[];
|
|
775
|
+
/** Called when an action is triggered on a module. */
|
|
776
|
+
onAction?: (moduleId: string, action: NiceModuleAction) => void;
|
|
777
|
+
/** Filter: show only specific statuses. Empty = all. */
|
|
778
|
+
statusFilter?: NiceModuleStatus[];
|
|
779
|
+
/** Allow search/filter. */
|
|
780
|
+
searchable?: boolean;
|
|
781
|
+
/** Show module dependencies. */
|
|
782
|
+
showDependencies?: boolean;
|
|
783
|
+
/** Show module author info. */
|
|
784
|
+
showAuthor?: boolean;
|
|
785
|
+
/** Show module version. */
|
|
786
|
+
showVersion?: boolean;
|
|
787
|
+
/** Modules currently processing an action (show spinner). */
|
|
788
|
+
processingModules?: Set<string>;
|
|
789
|
+
/** Display layout. */
|
|
790
|
+
layout?: 'list' | 'grid';
|
|
791
|
+
/** Grid column count (for grid layout). */
|
|
792
|
+
gridColumns?: number;
|
|
793
|
+
/** Called when module card is clicked (details view). */
|
|
794
|
+
onModuleClick?: (module: NiceModuleInfo) => void;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
/** A top-level module in the navigation sidebar. */
|
|
798
|
+
declare interface NiceModuleMenuDto {
|
|
799
|
+
id: string;
|
|
800
|
+
name: string;
|
|
801
|
+
label: string;
|
|
802
|
+
icon?: string;
|
|
803
|
+
order: number;
|
|
804
|
+
isAvailable: boolean;
|
|
805
|
+
entities: NiceEntityMenuDto[];
|
|
806
|
+
children?: NiceModuleMenuDto[];
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
declare type NiceModuleStatus = 'available' | 'installed' | 'active' | 'disabled' | 'error' | 'updating';
|
|
810
|
+
|
|
811
|
+
export declare const NiceMultiView: default_2.FC<NiceMultiViewProps>;
|
|
812
|
+
|
|
813
|
+
/** A view entry in the {@link NiceMultiView}. */
|
|
814
|
+
declare interface NiceMultiViewItem {
|
|
815
|
+
/** Unique key. */
|
|
816
|
+
key: string;
|
|
817
|
+
/** Content renderer. */
|
|
818
|
+
render: () => default_2.ReactNode;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
/** Props for the {@link NiceMultiView} component — a swipeable / indexed panel container (one visible at a time). */
|
|
822
|
+
export declare interface NiceMultiViewProps extends NiceBaseProps {
|
|
823
|
+
/** Size variant. */
|
|
824
|
+
size?: NiceSize;
|
|
825
|
+
/** View definitions. */
|
|
826
|
+
items: NiceMultiViewItem[];
|
|
827
|
+
/** Currently visible view index. */
|
|
828
|
+
selectedIndex?: number;
|
|
829
|
+
/** Called when the visible index changes. */
|
|
830
|
+
onSelectedIndexChange?: (index: number) => void;
|
|
831
|
+
/** Enable slide transition animation. */
|
|
832
|
+
animationEnabled?: boolean;
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
/**
|
|
836
|
+
* {@link NiceNavbar} — Top navigation bar with logo, breadcrumbs, centre content,
|
|
837
|
+
* and right-side slots for tenant switcher, notifications, and user menu.
|
|
838
|
+
*/
|
|
839
|
+
export declare const NiceNavbar: default_2.ForwardRefExoticComponent<NiceNavbarProps & default_2.RefAttributes<HTMLElement>>;
|
|
840
|
+
|
|
841
|
+
/** Props for the {@link NiceNavbar} component. */
|
|
842
|
+
export declare interface NiceNavbarProps extends NiceFormFieldProps {
|
|
843
|
+
/** Application/brand title or logo element. */
|
|
844
|
+
logo?: default_2.ReactNode;
|
|
845
|
+
/** Company/brand name text. */
|
|
846
|
+
brandName?: string;
|
|
847
|
+
/** Breadcrumb items. */
|
|
848
|
+
breadcrumbs?: NavbarBreadcrumb[];
|
|
849
|
+
/** Element to render in the center area (e.g., search). */
|
|
850
|
+
centerContent?: default_2.ReactNode;
|
|
851
|
+
/** Right-side content (user menu, tenant switcher, etc.). */
|
|
852
|
+
rightContent?: default_2.ReactNode;
|
|
853
|
+
/** Left-side content (hamburger, nav items). */
|
|
854
|
+
leftContent?: default_2.ReactNode;
|
|
855
|
+
/** Whether the navbar is sticky at the top. */
|
|
856
|
+
sticky?: boolean;
|
|
857
|
+
/** Background variant. */
|
|
858
|
+
variant?: 'light' | 'dark' | 'primary' | 'transparent';
|
|
859
|
+
/** Height preset. */
|
|
860
|
+
height?: 'sm' | 'md' | 'lg';
|
|
861
|
+
/** Fires when brand/logo is clicked. */
|
|
862
|
+
onBrandClick?: () => void;
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
export declare const NiceNavigationControls: ForwardRefExoticComponent<NiceNavigationControlsProps & RefAttributes<HTMLDivElement>>;
|
|
866
|
+
|
|
867
|
+
export declare interface NiceNavigationControlsProps extends NiceBaseProps {
|
|
868
|
+
/** Whether back navigation is available. */
|
|
869
|
+
canGoBack?: boolean;
|
|
870
|
+
/** Whether forward navigation is available. */
|
|
871
|
+
canGoForward?: boolean;
|
|
872
|
+
/** Called when back button is clicked. */
|
|
873
|
+
onBack?: () => void;
|
|
874
|
+
/** Called when forward button is clicked. */
|
|
875
|
+
onForward?: () => void;
|
|
876
|
+
/** Called when refresh button is clicked. */
|
|
877
|
+
onRefresh?: () => void;
|
|
878
|
+
/** Enable keyboard shortcuts (Alt+Left, Alt+Right, F5/Ctrl+R). */
|
|
879
|
+
enableShortcuts?: boolean;
|
|
880
|
+
/** Show refresh button. */
|
|
881
|
+
showRefresh?: boolean;
|
|
882
|
+
/** Show stop button (during loading). */
|
|
883
|
+
showStop?: boolean;
|
|
884
|
+
/** Is page currently loading (shows stop instead of refresh). */
|
|
885
|
+
isLoading?: boolean;
|
|
886
|
+
/** Called when stop button is clicked. */
|
|
887
|
+
onStop?: () => void;
|
|
888
|
+
/** Size variant. */
|
|
889
|
+
size?: NiceSize;
|
|
890
|
+
/** Visual variant. */
|
|
891
|
+
variant?: 'default' | 'compact' | 'minimal';
|
|
892
|
+
/** Tooltip position. */
|
|
893
|
+
tooltipPosition?: 'top' | 'bottom';
|
|
894
|
+
/** Whether the controls are disabled. */
|
|
895
|
+
disabled?: boolean;
|
|
896
|
+
/** Custom back icon. */
|
|
897
|
+
backIcon?: React.ReactNode;
|
|
898
|
+
/** Custom forward icon. */
|
|
899
|
+
forwardIcon?: React.ReactNode;
|
|
900
|
+
/** Custom refresh icon. */
|
|
901
|
+
refreshIcon?: React.ReactNode;
|
|
902
|
+
/** Custom stop icon. */
|
|
903
|
+
stopIcon?: React.ReactNode;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
/** Answer submitted for an onboarding question. */
|
|
907
|
+
declare interface NiceOnboardingAnswer {
|
|
908
|
+
questionId: string;
|
|
909
|
+
answer: string;
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
/** A single question in the onboarding wizard. */
|
|
913
|
+
declare interface NiceOnboardingQuestion {
|
|
914
|
+
id: string;
|
|
915
|
+
question: string;
|
|
916
|
+
questionType: 'text' | 'select' | 'multiSelect' | 'boolean' | 'number' | 'date';
|
|
917
|
+
category: string;
|
|
918
|
+
orderIndex: number;
|
|
919
|
+
isRequired: boolean;
|
|
920
|
+
options?: string[];
|
|
921
|
+
helpText?: string;
|
|
922
|
+
defaultValue?: string;
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
export declare const NiceOnboardingWizard: ForwardRefExoticComponent<NiceOnboardingWizardProps & RefAttributes<HTMLDivElement>>;
|
|
926
|
+
|
|
927
|
+
export declare interface NiceOnboardingWizardProps extends NiceBaseProps {
|
|
928
|
+
/** Size variant. */
|
|
929
|
+
size?: NiceSize;
|
|
930
|
+
/** All onboarding questions. */
|
|
931
|
+
questions: NiceOnboardingQuestion[];
|
|
932
|
+
/** Pre-filled answers. */
|
|
933
|
+
initialAnswers?: NiceOnboardingAnswer[];
|
|
934
|
+
/** Step labels (if different from category names). */
|
|
935
|
+
stepLabels?: string[];
|
|
936
|
+
/** Called when user submits final answers. */
|
|
937
|
+
onComplete?: (answers: NiceOnboardingAnswer[]) => void;
|
|
938
|
+
/** Called when user leaves the wizard without finishing. */
|
|
939
|
+
onCancel?: () => void;
|
|
940
|
+
/** Called on each step transition. */
|
|
941
|
+
onStepChange?: (step: number) => void;
|
|
942
|
+
/** Welcome screen content (shown before step 1). */
|
|
943
|
+
welcomeContent?: React.ReactNode;
|
|
944
|
+
/** Completion screen content (shown after last step). */
|
|
945
|
+
completionContent?: React.ReactNode;
|
|
946
|
+
/** Show progress bar. */
|
|
947
|
+
showProgress?: boolean;
|
|
948
|
+
/** Allow going back to previous steps. */
|
|
949
|
+
allowBack?: boolean;
|
|
950
|
+
/** Logo / branding element for the wizard header. */
|
|
951
|
+
logo?: React.ReactNode;
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
/** Full organization profile DTO (30+ fields across 8 sections). */
|
|
955
|
+
declare interface NiceOrganizationProfile {
|
|
956
|
+
id?: string;
|
|
957
|
+
name: string;
|
|
958
|
+
legalName?: string;
|
|
959
|
+
taxId?: string;
|
|
960
|
+
registrationNumber?: string;
|
|
961
|
+
industry?: string;
|
|
962
|
+
employeeCount?: number;
|
|
963
|
+
email?: string;
|
|
964
|
+
phone?: string;
|
|
965
|
+
website?: string;
|
|
966
|
+
fax?: string;
|
|
967
|
+
street?: string;
|
|
968
|
+
city?: string;
|
|
969
|
+
state?: string;
|
|
970
|
+
postalCode?: string;
|
|
971
|
+
country?: string;
|
|
972
|
+
logoUrl?: string;
|
|
973
|
+
primaryColor?: string;
|
|
974
|
+
secondaryColor?: string;
|
|
975
|
+
defaultLanguage?: string;
|
|
976
|
+
defaultCurrency?: string;
|
|
977
|
+
defaultTimezone?: string;
|
|
978
|
+
dateFormat?: string;
|
|
979
|
+
fiscalYearStart?: string;
|
|
980
|
+
vatEnabled?: boolean;
|
|
981
|
+
defaultVatRate?: number;
|
|
982
|
+
workingDays?: string[];
|
|
983
|
+
workingHoursStart?: string;
|
|
984
|
+
workingHoursEnd?: string;
|
|
985
|
+
createdAt?: string;
|
|
986
|
+
updatedAt?: string;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
export declare const NiceOrganizationProfileForm: ForwardRefExoticComponent<NiceOrganizationProfileFormProps & RefAttributes<HTMLDivElement>>;
|
|
990
|
+
|
|
991
|
+
export declare interface NiceOrganizationProfileFormProps extends NiceBaseProps {
|
|
992
|
+
/** Current profile data. */
|
|
993
|
+
profile: NiceOrganizationProfile;
|
|
994
|
+
/** Called when any field changes. */
|
|
995
|
+
onChange?: (profile: NiceOrganizationProfile) => void;
|
|
996
|
+
/** Called when Submit/Save is clicked. */
|
|
997
|
+
onSave?: (profile: NiceOrganizationProfile) => void;
|
|
998
|
+
/** Called when Cancel is clicked. */
|
|
999
|
+
onCancel?: () => void;
|
|
1000
|
+
/** Show only specific sections. Empty = all. */
|
|
1001
|
+
sections?: NiceOrgProfileSection[];
|
|
1002
|
+
/** Which sections start expanded. */
|
|
1003
|
+
expandedSections?: NiceOrgProfileSection[];
|
|
1004
|
+
/** Show save/cancel buttons. */
|
|
1005
|
+
showActions?: boolean;
|
|
1006
|
+
/** Custom country options for the address section. */
|
|
1007
|
+
countryOptions?: {
|
|
1008
|
+
value: string;
|
|
1009
|
+
label: string;
|
|
1010
|
+
}[];
|
|
1011
|
+
/** Custom language options for localization. */
|
|
1012
|
+
languageOptions?: {
|
|
1013
|
+
value: string;
|
|
1014
|
+
label: string;
|
|
1015
|
+
}[];
|
|
1016
|
+
/** Custom currency options. */
|
|
1017
|
+
currencyOptions?: {
|
|
1018
|
+
value: string;
|
|
1019
|
+
label: string;
|
|
1020
|
+
}[];
|
|
1021
|
+
/** Custom timezone options. */
|
|
1022
|
+
timezoneOptions?: {
|
|
1023
|
+
value: string;
|
|
1024
|
+
label: string;
|
|
1025
|
+
}[];
|
|
1026
|
+
/** Whether the form is currently submitting. */
|
|
1027
|
+
saving?: boolean;
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
declare type NiceOrgProfileSection = 'basic' | 'contact' | 'address' | 'branding' | 'localization' | 'fiscal' | 'preferences';
|
|
1031
|
+
|
|
1032
|
+
export declare const NicePagination: default_2.FC<NicePaginationProps>;
|
|
1033
|
+
|
|
1034
|
+
/** Props for the {@link NicePagination} component — a page navigation bar with numbered buttons, prev/next, and ellipsis. */
|
|
1035
|
+
export declare interface NicePaginationProps extends NiceBaseProps {
|
|
1036
|
+
/** Pagination size. */
|
|
1037
|
+
size?: NiceSize;
|
|
1038
|
+
/** Current 1-based page number. */
|
|
1039
|
+
page: number;
|
|
1040
|
+
/** Total number of pages. */
|
|
1041
|
+
totalPages: number;
|
|
1042
|
+
/** Called when the page changes. */
|
|
1043
|
+
onChange: (page: number) => void;
|
|
1044
|
+
/** Show "Page X of Y" info text. */
|
|
1045
|
+
showInfo?: boolean;
|
|
1046
|
+
/** Number of page buttons shown on each side of the current page. */
|
|
1047
|
+
siblingCount?: number;
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
declare interface NiceQuickAction {
|
|
1051
|
+
id: string;
|
|
1052
|
+
label: string;
|
|
1053
|
+
icon?: string;
|
|
1054
|
+
route: string;
|
|
1055
|
+
shortcut?: string;
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
export declare interface NiceRibbonGroup {
|
|
1059
|
+
label: string;
|
|
1060
|
+
items: NiceMenuGroupItem[];
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1063
|
+
export declare const NiceRibbonMenu: ForwardRefExoticComponent<NiceRibbonMenuProps & RefAttributes<HTMLDivElement>>;
|
|
1064
|
+
|
|
1065
|
+
export declare interface NiceRibbonMenuProps extends NiceBaseProps {
|
|
1066
|
+
size?: NiceSize;
|
|
1067
|
+
tabs: NiceRibbonTab[];
|
|
1068
|
+
activeTab?: string;
|
|
1069
|
+
onTabChange?: (key: string) => void;
|
|
1070
|
+
onItemClick?: (item: NiceMenuGroupItem) => void;
|
|
1071
|
+
/** Minimize ribbon (only tab headers visible). */
|
|
1072
|
+
minimized?: boolean;
|
|
1073
|
+
onMinimizeToggle?: (minimized: boolean) => void;
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
export declare interface NiceRibbonTab {
|
|
1077
|
+
key: string;
|
|
1078
|
+
label: string;
|
|
1079
|
+
groups: NiceRibbonGroup[];
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
/**
|
|
1083
|
+
* {@link NiceSetupWizard} — Advanced multi-step setup wizard with branching, quick mode, and schema-driven forms.
|
|
1084
|
+
*
|
|
1085
|
+
* @example
|
|
1086
|
+
* ```tsx
|
|
1087
|
+
* <NiceSetupWizard
|
|
1088
|
+
* layout="sidebar"
|
|
1089
|
+
* steps={[
|
|
1090
|
+
* { id: 'welcome', title: 'Welcome', content: <WelcomeScreen /> },
|
|
1091
|
+
* { id: 'account', title: 'Account', fields: [
|
|
1092
|
+
* { id: 'email', type: 'email', label: 'Email', required: true },
|
|
1093
|
+
* { id: 'password', type: 'password', label: 'Password', required: true },
|
|
1094
|
+
* ]},
|
|
1095
|
+
* { id: 'preferences', title: 'Preferences', optional: true, quickModeSkip: true },
|
|
1096
|
+
* { id: 'done', title: 'Complete', content: <CompleteScreen /> },
|
|
1097
|
+
* ]}
|
|
1098
|
+
* onComplete={(values) => saveUser(values)}
|
|
1099
|
+
* />
|
|
1100
|
+
* ```
|
|
1101
|
+
*/
|
|
1102
|
+
export declare const NiceSetupWizard: default_2.ForwardRefExoticComponent<NiceSetupWizardProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
1103
|
+
|
|
1104
|
+
/** Props */
|
|
1105
|
+
export declare interface NiceSetupWizardProps {
|
|
1106
|
+
/** Step definitions */
|
|
1107
|
+
steps: SetupWizardStep[];
|
|
1108
|
+
/** Initial values */
|
|
1109
|
+
initialValues?: Record<string, unknown>;
|
|
1110
|
+
/** Controlled current step */
|
|
1111
|
+
activeStep?: string;
|
|
1112
|
+
/** Layout variant */
|
|
1113
|
+
layout?: SetupWizardLayout;
|
|
1114
|
+
/** Size */
|
|
1115
|
+
size?: NiceSize;
|
|
1116
|
+
/** Whether quick mode is enabled by default */
|
|
1117
|
+
defaultQuickMode?: boolean;
|
|
1118
|
+
/** Allow toggling quick mode */
|
|
1119
|
+
allowQuickModeToggle?: boolean;
|
|
1120
|
+
/** Show step numbers */
|
|
1121
|
+
showStepNumbers?: boolean;
|
|
1122
|
+
/** Show progress bar */
|
|
1123
|
+
showProgress?: boolean;
|
|
1124
|
+
/** Show estimated time */
|
|
1125
|
+
showEstimatedTime?: boolean;
|
|
1126
|
+
/** Allow clicking on step indicators to navigate */
|
|
1127
|
+
allowStepClick?: boolean;
|
|
1128
|
+
/** Show review step before completion */
|
|
1129
|
+
showReviewStep?: boolean;
|
|
1130
|
+
/** Persist progress to localStorage */
|
|
1131
|
+
persistKey?: string;
|
|
1132
|
+
/** Animation type */
|
|
1133
|
+
animation?: 'slide' | 'fade' | 'none';
|
|
1134
|
+
/** Brand/logo element */
|
|
1135
|
+
branding?: default_2.ReactNode;
|
|
1136
|
+
/** Header content */
|
|
1137
|
+
header?: default_2.ReactNode;
|
|
1138
|
+
/** Footer content */
|
|
1139
|
+
footer?: default_2.ReactNode;
|
|
1140
|
+
/** Callbacks */
|
|
1141
|
+
onStepChange?: (stepId: string, index: number) => void;
|
|
1142
|
+
onValuesChange?: (values: Record<string, unknown>) => void;
|
|
1143
|
+
onComplete?: (values: Record<string, unknown>) => void | Promise<void>;
|
|
1144
|
+
onCancel?: () => void;
|
|
1145
|
+
/** Custom labels */
|
|
1146
|
+
labels?: {
|
|
1147
|
+
next?: string;
|
|
1148
|
+
prev?: string;
|
|
1149
|
+
finish?: string;
|
|
1150
|
+
cancel?: string;
|
|
1151
|
+
skip?: string;
|
|
1152
|
+
quickMode?: string;
|
|
1153
|
+
required?: string;
|
|
1154
|
+
optional?: string;
|
|
1155
|
+
review?: string;
|
|
1156
|
+
stepOf?: string;
|
|
1157
|
+
};
|
|
1158
|
+
/** Accessibility */
|
|
1159
|
+
accessMode?: NiceAccessMode;
|
|
1160
|
+
id?: string;
|
|
1161
|
+
className?: string;
|
|
1162
|
+
style?: default_2.CSSProperties;
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
export declare interface NiceShellProps extends NiceBaseProps {
|
|
1166
|
+
/** Navigation data for sidebar / menus. */
|
|
1167
|
+
menu?: NiceUserMenuResponse;
|
|
1168
|
+
/** Currently active route. */
|
|
1169
|
+
activeRoute?: string;
|
|
1170
|
+
/** Toolbar / top bar content. */
|
|
1171
|
+
toolbar?: React.ReactNode;
|
|
1172
|
+
/** Status bar content. */
|
|
1173
|
+
statusBar?: React.ReactNode;
|
|
1174
|
+
/** Sidebar header (logo, tenant name). */
|
|
1175
|
+
sidebarHeader?: React.ReactNode;
|
|
1176
|
+
/** Sidebar footer (profile, logout). */
|
|
1177
|
+
sidebarFooter?: React.ReactNode;
|
|
1178
|
+
/** Called when navigating. */
|
|
1179
|
+
onNavigate?: (route: string) => void;
|
|
1180
|
+
/** Main content area. */
|
|
1181
|
+
children?: React.ReactNode;
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1184
|
+
export declare const NiceSidebarMenu: ForwardRefExoticComponent<NiceSidebarMenuProps & RefAttributes<HTMLElement>>;
|
|
1185
|
+
|
|
1186
|
+
export declare interface NiceSidebarMenuProps extends NiceBaseProps {
|
|
1187
|
+
size?: NiceSize;
|
|
1188
|
+
items: NiceMenuGroupItem[];
|
|
1189
|
+
activeKey?: string;
|
|
1190
|
+
collapsed?: boolean;
|
|
1191
|
+
width?: number;
|
|
1192
|
+
collapsedWidth?: number;
|
|
1193
|
+
onItemClick?: (item: NiceMenuGroupItem) => void;
|
|
1194
|
+
onCollapseChange?: (collapsed: boolean) => void;
|
|
1195
|
+
header?: React.ReactNode;
|
|
1196
|
+
footer?: React.ReactNode;
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
export declare const NiceSidebarNav: ForwardRefExoticComponent<NiceSidebarNavProps & RefAttributes<HTMLDivElement>>;
|
|
1200
|
+
|
|
1201
|
+
export declare interface NiceSidebarNavProps {
|
|
1202
|
+
/** Full navigation data */
|
|
1203
|
+
data: SidebarNavDataNode[];
|
|
1204
|
+
/** User ID for per-user localStorage persistence */
|
|
1205
|
+
userId?: string;
|
|
1206
|
+
/** Currently active route (for item highlighting) */
|
|
1207
|
+
activeRoute?: string;
|
|
1208
|
+
/** Called when user clicks a navigable view */
|
|
1209
|
+
onNavigate?: (route: string, view: SidebarNavView) => void;
|
|
1210
|
+
/**
|
|
1211
|
+
* Override the initial enableModeIcons flag.
|
|
1212
|
+
* Can be toggled later via Preferences.
|
|
1213
|
+
*/
|
|
1214
|
+
enableModeIcons?: boolean;
|
|
1215
|
+
/**
|
|
1216
|
+
* Controlled prefs — if provided, the component uses these instead of
|
|
1217
|
+
* loading from localStorage. Changes still fire onPreferencesChange.
|
|
1218
|
+
*/
|
|
1219
|
+
preferences?: Partial<SidebarNavUserPrefs>;
|
|
1220
|
+
/** Called whenever preferences change (for server-side persistence) */
|
|
1221
|
+
onPreferencesChange?: (prefs: SidebarNavUserPrefs) => void;
|
|
1222
|
+
/** Sidebar width in px (default: 264) */
|
|
1223
|
+
width?: number;
|
|
1224
|
+
/** Extra CSS class on the root element */
|
|
1225
|
+
className?: string;
|
|
1226
|
+
/** Size variant */
|
|
1227
|
+
size?: NiceSize;
|
|
1228
|
+
'data-testid'?: string;
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
/** T-shirt sizing used across all components for consistent visual density. */
|
|
1232
|
+
declare type NiceSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
1233
|
+
|
|
1234
|
+
export declare const NiceSplitter: default_2.FC<NiceSplitterProps>;
|
|
1235
|
+
|
|
1236
|
+
/** A resizable pane inside the {@link NiceSplitter}. */
|
|
1237
|
+
declare interface NiceSplitterPane {
|
|
1238
|
+
/** Unique key. */
|
|
1239
|
+
key: string;
|
|
1240
|
+
/** Content renderer. */
|
|
1241
|
+
render: () => default_2.ReactNode;
|
|
1242
|
+
/** Initial size (px or %). */
|
|
1243
|
+
size?: number | string;
|
|
1244
|
+
/** Minimum pane size in px. */
|
|
1245
|
+
minSize?: number;
|
|
1246
|
+
/** Maximum pane size in px. */
|
|
1247
|
+
maxSize?: number;
|
|
1248
|
+
/** Allow the pane to collapse completely. */
|
|
1249
|
+
collapsible?: boolean;
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
/** Props for the {@link NiceSplitter} component — a resizable multi-pane layout with draggable gutters. */
|
|
1253
|
+
export declare interface NiceSplitterProps extends NiceBaseProps {
|
|
1254
|
+
/** Pane definitions. */
|
|
1255
|
+
panes: NiceSplitterPane[];
|
|
1256
|
+
/** Split direction. */
|
|
1257
|
+
orientation?: 'horizontal' | 'vertical';
|
|
1258
|
+
/** Drag handle width/height in px. */
|
|
1259
|
+
gutterSize?: number;
|
|
1260
|
+
/** Called when panes are resized (new sizes in px). */
|
|
1261
|
+
onResize?: (sizes: number[]) => void;
|
|
1262
|
+
}
|
|
1263
|
+
|
|
1264
|
+
/** A menu entry in the {@link NiceDesktop} start menu. */
|
|
1265
|
+
export declare interface NiceStartMenuItem {
|
|
1266
|
+
/** Unique key. */
|
|
1267
|
+
key: string;
|
|
1268
|
+
/** Display label. */
|
|
1269
|
+
label: string;
|
|
1270
|
+
/** Optional icon. */
|
|
1271
|
+
icon?: React.ReactNode;
|
|
1272
|
+
/** Disable the item. */
|
|
1273
|
+
disabled?: boolean;
|
|
1274
|
+
/** Nested sub-items. */
|
|
1275
|
+
children?: NiceStartMenuItem[];
|
|
1276
|
+
/** Click handler. */
|
|
1277
|
+
onClick?: () => void;
|
|
1278
|
+
/** Visual divider before this item. */
|
|
1279
|
+
divider?: boolean;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
/** A system-tray icon in the {@link NiceDesktop} clock area. */
|
|
1283
|
+
export declare interface NiceSystemTrayItem {
|
|
1284
|
+
/** Unique key. */
|
|
1285
|
+
key: string;
|
|
1286
|
+
/** Icon element. */
|
|
1287
|
+
icon: React.ReactNode;
|
|
1288
|
+
/** Tooltip text on hover. */
|
|
1289
|
+
tooltip?: string;
|
|
1290
|
+
/** Click handler. */
|
|
1291
|
+
onClick?: () => void;
|
|
1292
|
+
}
|
|
1293
|
+
|
|
1294
|
+
/** Descriptor for a single MDI tab. */
|
|
1295
|
+
declare interface NiceTabDescriptor {
|
|
1296
|
+
id: string;
|
|
1297
|
+
route: string;
|
|
1298
|
+
title: string;
|
|
1299
|
+
icon?: string;
|
|
1300
|
+
entityId?: string;
|
|
1301
|
+
isDirty?: boolean;
|
|
1302
|
+
isPinned?: boolean;
|
|
1303
|
+
closable?: boolean;
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
/** Definition of a single tab in a {@link NiceTabs} component. */
|
|
1307
|
+
declare interface NiceTabItem {
|
|
1308
|
+
/** Unique tab identifier. */
|
|
1309
|
+
id: string;
|
|
1310
|
+
/** Tab label text. */
|
|
1311
|
+
label: string;
|
|
1312
|
+
/** Optional icon rendered before the label. */
|
|
1313
|
+
icon?: default_2.ReactNode;
|
|
1314
|
+
/** Badge counter shown in the tab header. */
|
|
1315
|
+
badge?: string | number;
|
|
1316
|
+
/** Disable this tab. */
|
|
1317
|
+
disabled?: boolean;
|
|
1318
|
+
/** Tab panel content rendered when active. */
|
|
1319
|
+
content?: default_2.ReactNode;
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1322
|
+
export declare const NiceTabPanel: default_2.FC<NiceTabPanelProps>;
|
|
1323
|
+
|
|
1324
|
+
/** A tab definition for the {@link NiceTabPanel}. */
|
|
1325
|
+
declare interface NiceTabPanelItem {
|
|
1326
|
+
/** Unique key. */
|
|
1327
|
+
key: string;
|
|
1328
|
+
/** Tab header label. */
|
|
1329
|
+
title: string;
|
|
1330
|
+
/** Optional tab icon. */
|
|
1331
|
+
icon?: default_2.ReactNode;
|
|
1332
|
+
/** Badge element shown after the title (e.g. count). */
|
|
1333
|
+
badge?: default_2.ReactNode;
|
|
1334
|
+
/** Disable the tab. */
|
|
1335
|
+
disabled?: boolean;
|
|
1336
|
+
/** Content renderer. */
|
|
1337
|
+
render: () => default_2.ReactNode;
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
/** Props for the {@link NiceTabPanel} component — a keyed tab strip with content panels and flexible position. */
|
|
1341
|
+
export declare interface NiceTabPanelProps extends NiceBaseProps {
|
|
1342
|
+
/** Tab panel size. */
|
|
1343
|
+
size?: NiceSize;
|
|
1344
|
+
/** Tab definitions. */
|
|
1345
|
+
items: NiceTabPanelItem[];
|
|
1346
|
+
/** Currently active tab key (controlled). */
|
|
1347
|
+
selectedKey?: string;
|
|
1348
|
+
/** Called when the active tab changes. */
|
|
1349
|
+
onSelectedKeyChange?: (key: string) => void;
|
|
1350
|
+
/** Side on which the tab strip is rendered. */
|
|
1351
|
+
tabPosition?: 'top' | 'bottom' | 'left' | 'right';
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
export declare const NiceTabs: default_2.FC<NiceTabsProps>;
|
|
1355
|
+
|
|
1356
|
+
/** Props for the {@link NiceTabs} component — a tabbed content panel. */
|
|
1357
|
+
export declare interface NiceTabsProps extends NiceBaseProps {
|
|
1358
|
+
/** Array of tab definitions. */
|
|
1359
|
+
tabs: NiceTabItem[];
|
|
1360
|
+
/** Controlled active tab id. */
|
|
1361
|
+
activeTab?: string;
|
|
1362
|
+
/** Called when the active tab changes. */
|
|
1363
|
+
onChange?: (id: string) => void;
|
|
1364
|
+
/** Visual style variant. */
|
|
1365
|
+
variant?: 'default' | 'pills' | 'enclosed';
|
|
1366
|
+
/** Tabs size. */
|
|
1367
|
+
size?: NiceSize;
|
|
1368
|
+
/** Stack tabs vertically. */
|
|
1369
|
+
vertical?: boolean;
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
/** A running-window entry in the {@link NiceDesktop} taskbar. */
|
|
1373
|
+
export declare interface NiceTaskbarItem {
|
|
1374
|
+
/** Unique key. */
|
|
1375
|
+
key: string;
|
|
1376
|
+
/** Label text. */
|
|
1377
|
+
label: string;
|
|
1378
|
+
/** Optional icon. */
|
|
1379
|
+
icon?: React.ReactNode;
|
|
1380
|
+
/** Badge value (e.g. notification count). */
|
|
1381
|
+
badge?: number | string;
|
|
1382
|
+
/** Whether this item is focused / active. */
|
|
1383
|
+
active?: boolean;
|
|
1384
|
+
/** Whether the window is minimized. */
|
|
1385
|
+
minimized?: boolean;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
/** Where the taskbar is placed on the desktop. */
|
|
1389
|
+
export declare type NiceTaskbarPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
1390
|
+
|
|
1391
|
+
/**
|
|
1392
|
+
* {@link NiceTenantSwitcher} — Tenant/organization selector dropdown
|
|
1393
|
+
* for multi-tenant SaaS applications.
|
|
1394
|
+
*/
|
|
1395
|
+
export declare const NiceTenantSwitcher: default_2.ForwardRefExoticComponent<NiceTenantSwitcherProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
1396
|
+
|
|
1397
|
+
/** Props for the {@link NiceTenantSwitcher} component. */
|
|
1398
|
+
export declare interface NiceTenantSwitcherProps extends NiceFormFieldProps {
|
|
1399
|
+
/** Available tenants. */
|
|
1400
|
+
tenants: TenantEntry[];
|
|
1401
|
+
/** Currently selected tenant id. */
|
|
1402
|
+
currentTenantId?: string | number;
|
|
1403
|
+
/** Fires when tenant is switched. */
|
|
1404
|
+
onSwitch?: (tenantId: string | number) => void;
|
|
1405
|
+
/** Fires when "Manage tenants" is clicked. */
|
|
1406
|
+
onManage?: () => void;
|
|
1407
|
+
/** Fires when "Create tenant" is clicked. */
|
|
1408
|
+
onCreate?: () => void;
|
|
1409
|
+
/** Variant (inline selector or dropdown). */
|
|
1410
|
+
variant?: 'dropdown' | 'inline';
|
|
1411
|
+
/** Search filter enabled. */
|
|
1412
|
+
searchable?: boolean;
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
export declare const NiceToolbar: default_2.FC<NiceToolbarProps>;
|
|
1416
|
+
|
|
1417
|
+
/** A toolbar entry in the {@link NiceToolbar}. */
|
|
1418
|
+
declare interface NiceToolbarItem {
|
|
1419
|
+
/** Unique key. */
|
|
1420
|
+
key: string;
|
|
1421
|
+
/** Custom render function (overrides widget/text/icon). */
|
|
1422
|
+
render?: () => default_2.ReactNode;
|
|
1423
|
+
/** Built-in widget type: button, visual separator, or flexible spacer. */
|
|
1424
|
+
widget?: 'button' | 'separator' | 'spacer';
|
|
1425
|
+
/** Button label text. */
|
|
1426
|
+
text?: string;
|
|
1427
|
+
/** Button icon. */
|
|
1428
|
+
icon?: default_2.ReactNode;
|
|
1429
|
+
/** Disable the item. */
|
|
1430
|
+
disabled?: boolean;
|
|
1431
|
+
/** Click handler. */
|
|
1432
|
+
onClick?: () => void;
|
|
1433
|
+
/** Alignment group within the toolbar. */
|
|
1434
|
+
location?: 'before' | 'center' | 'after';
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1437
|
+
/** Props for the {@link NiceToolbar} component — a horizontal strip of action buttons and widgets. */
|
|
1438
|
+
export declare interface NiceToolbarProps extends NiceBaseProps {
|
|
1439
|
+
/** Toolbar items. */
|
|
1440
|
+
items: NiceToolbarItem[];
|
|
1441
|
+
/** Toolbar size preset. */
|
|
1442
|
+
size?: NiceSize;
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
export declare const NiceTopMenu: ForwardRefExoticComponent<NiceTopMenuProps & RefAttributes<HTMLElement>>;
|
|
1446
|
+
|
|
1447
|
+
export declare interface NiceTopMenuProps extends NiceBaseProps {
|
|
1448
|
+
size?: NiceSize;
|
|
1449
|
+
items: NiceMenuGroupItem[];
|
|
1450
|
+
activeKey?: string;
|
|
1451
|
+
onItemClick?: (item: NiceMenuGroupItem) => void;
|
|
1452
|
+
/** Left-side branding / logo. */
|
|
1453
|
+
brand?: React.ReactNode;
|
|
1454
|
+
/** Right-side actions. */
|
|
1455
|
+
actions?: React.ReactNode;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
/**
|
|
1459
|
+
* {@link NiceUserMenu} — Avatar button with dropdown showing user info, role,
|
|
1460
|
+
* status indicator, and action menu (profile, settings, logout).
|
|
1461
|
+
*/
|
|
1462
|
+
export declare const NiceUserMenu: default_2.ForwardRefExoticComponent<NiceUserMenuProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
1463
|
+
|
|
1464
|
+
/** Props for the {@link NiceUserMenu} component. */
|
|
1465
|
+
export declare interface NiceUserMenuProps extends NiceFormFieldProps {
|
|
1466
|
+
/** User's display name. */
|
|
1467
|
+
userName: string;
|
|
1468
|
+
/** User's email address. */
|
|
1469
|
+
userEmail?: string;
|
|
1470
|
+
/** User's role/title. */
|
|
1471
|
+
userRole?: string;
|
|
1472
|
+
/** Avatar image URL. */
|
|
1473
|
+
avatarUrl?: string;
|
|
1474
|
+
/** Menu items. */
|
|
1475
|
+
items?: UserMenuItem[];
|
|
1476
|
+
/** Whether the dropdown is open. */
|
|
1477
|
+
open?: boolean;
|
|
1478
|
+
/** Fires on toggle. */
|
|
1479
|
+
onOpenChange?: (open: boolean) => void;
|
|
1480
|
+
/** Fires when "Profile" is clicked (shortcut). */
|
|
1481
|
+
onProfile?: () => void;
|
|
1482
|
+
/** Fires when "Logout" is clicked (shortcut). */
|
|
1483
|
+
onLogout?: () => void;
|
|
1484
|
+
/** Avatar size in px. */
|
|
1485
|
+
avatarSize?: number;
|
|
1486
|
+
/** Status indicator. */
|
|
1487
|
+
status?: 'online' | 'away' | 'busy' | 'offline';
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
/** Full API response for user-scoped navigation menu. */
|
|
1491
|
+
declare interface NiceUserMenuResponse {
|
|
1492
|
+
modules: NiceModuleMenuDto[];
|
|
1493
|
+
quickActions: NiceQuickAction[];
|
|
1494
|
+
favorites: NiceFavoriteItem[];
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
/**
|
|
1498
|
+
* {@link NiceWizard} — Multi-step wizard/stepper with per-step validation, optional steps, and step branching.
|
|
1499
|
+
*/
|
|
1500
|
+
export declare const NiceWizard: default_2.ForwardRefExoticComponent<NiceWizardProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
1501
|
+
|
|
1502
|
+
/** Props for the {@link NiceWizard} component. */
|
|
1503
|
+
export declare interface NiceWizardProps {
|
|
1504
|
+
/** Step definitions. */
|
|
1505
|
+
steps: WizardStep[];
|
|
1506
|
+
/** Controlled current step index. */
|
|
1507
|
+
activeStep?: number;
|
|
1508
|
+
/** Called when step changes. */
|
|
1509
|
+
onStepChange?: (index: number) => void;
|
|
1510
|
+
/** Called when wizard completes (user clicks Finish on last step). */
|
|
1511
|
+
onComplete?: () => void;
|
|
1512
|
+
/** Called when user cancels the wizard. */
|
|
1513
|
+
onCancel?: () => void;
|
|
1514
|
+
/** Whether to allow clicking step indicators to navigate. */
|
|
1515
|
+
allowStepClick?: boolean;
|
|
1516
|
+
/** Layout variant. */
|
|
1517
|
+
variant?: 'horizontal' | 'vertical';
|
|
1518
|
+
/** Custom "Next" button label. */
|
|
1519
|
+
nextLabel?: string;
|
|
1520
|
+
/** Custom "Previous" button label. */
|
|
1521
|
+
prevLabel?: string;
|
|
1522
|
+
/** Custom "Finish" button label. */
|
|
1523
|
+
finishLabel?: string;
|
|
1524
|
+
/** Custom "Cancel" button label. */
|
|
1525
|
+
cancelLabel?: string;
|
|
1526
|
+
/** Whether to show a progress bar. */
|
|
1527
|
+
showProgress?: boolean;
|
|
1528
|
+
/** Custom class name. */
|
|
1529
|
+
className?: string;
|
|
1530
|
+
/** Custom style. */
|
|
1531
|
+
style?: default_2.CSSProperties;
|
|
1532
|
+
/** Size variant. */
|
|
1533
|
+
size?: NiceSize;
|
|
1534
|
+
/** Access mode. */
|
|
1535
|
+
accessMode?: NiceAccessMode;
|
|
1536
|
+
id?: string;
|
|
1537
|
+
}
|
|
1538
|
+
|
|
1539
|
+
/** Response from workspace state API. */
|
|
1540
|
+
declare interface NiceWorkspaceState {
|
|
1541
|
+
tabs: NiceTabDescriptor[];
|
|
1542
|
+
activeTabIndex: number;
|
|
1543
|
+
layoutPreferences?: Record<string, unknown>;
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1546
|
+
/** Field definition for schema-driven forms */
|
|
1547
|
+
declare interface SetupField {
|
|
1548
|
+
id: string;
|
|
1549
|
+
type: SetupFieldType;
|
|
1550
|
+
label: string;
|
|
1551
|
+
placeholder?: string;
|
|
1552
|
+
description?: string;
|
|
1553
|
+
required?: boolean;
|
|
1554
|
+
disabled?: boolean;
|
|
1555
|
+
defaultValue?: unknown;
|
|
1556
|
+
options?: Array<{
|
|
1557
|
+
value: string;
|
|
1558
|
+
label: string;
|
|
1559
|
+
icon?: default_2.ReactNode;
|
|
1560
|
+
}>;
|
|
1561
|
+
validation?: {
|
|
1562
|
+
pattern?: RegExp;
|
|
1563
|
+
min?: number;
|
|
1564
|
+
max?: number;
|
|
1565
|
+
minLength?: number;
|
|
1566
|
+
maxLength?: number;
|
|
1567
|
+
custom?: (value: unknown) => string | undefined;
|
|
1568
|
+
};
|
|
1569
|
+
/** Show field only when condition is met */
|
|
1570
|
+
showWhen?: (values: Record<string, unknown>) => boolean;
|
|
1571
|
+
/** Full-width in grid layout */
|
|
1572
|
+
fullWidth?: boolean;
|
|
1573
|
+
/** Custom render function */
|
|
1574
|
+
render?: (props: {
|
|
1575
|
+
value: unknown;
|
|
1576
|
+
onChange: (v: unknown) => void;
|
|
1577
|
+
field: SetupField;
|
|
1578
|
+
}) => default_2.ReactNode;
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
/** Step field types for schema-driven content */
|
|
1582
|
+
declare type SetupFieldType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'textarea' | 'select' | 'radio' | 'checkbox' | 'switch' | 'date' | 'time' | 'datetime' | 'color' | 'file' | 'slider' | 'rating' | 'custom';
|
|
1583
|
+
|
|
1584
|
+
/** Custom action button */
|
|
1585
|
+
declare interface SetupWizardAction {
|
|
1586
|
+
id: string;
|
|
1587
|
+
label: string;
|
|
1588
|
+
variant?: 'primary' | 'secondary' | 'outlined' | 'text' | 'danger';
|
|
1589
|
+
icon?: default_2.ReactNode;
|
|
1590
|
+
onClick: (ctx: SetupWizardContext) => void;
|
|
1591
|
+
disabled?: (ctx: SetupWizardContext) => boolean;
|
|
1592
|
+
position?: 'left' | 'right';
|
|
1593
|
+
}
|
|
1594
|
+
|
|
1595
|
+
/** Context provided to steps */
|
|
1596
|
+
declare interface SetupWizardContext {
|
|
1597
|
+
values: Record<string, unknown>;
|
|
1598
|
+
setValue: (key: string, value: unknown) => void;
|
|
1599
|
+
setValues: (vals: Record<string, unknown>) => void;
|
|
1600
|
+
currentStep: SetupWizardStep;
|
|
1601
|
+
currentIndex: number;
|
|
1602
|
+
totalSteps: number;
|
|
1603
|
+
visitedSteps: Set<string>;
|
|
1604
|
+
errors: Record<string, string>;
|
|
1605
|
+
setError: (stepId: string, error: string) => void;
|
|
1606
|
+
clearError: (stepId: string) => void;
|
|
1607
|
+
goNext: () => Promise<void>;
|
|
1608
|
+
goPrev: () => void;
|
|
1609
|
+
goTo: (stepId: string) => void;
|
|
1610
|
+
skip: () => void;
|
|
1611
|
+
complete: () => void;
|
|
1612
|
+
cancel: () => void;
|
|
1613
|
+
isFirst: boolean;
|
|
1614
|
+
isLast: boolean;
|
|
1615
|
+
isQuickMode: boolean;
|
|
1616
|
+
toggleQuickMode: () => void;
|
|
1617
|
+
progress: number;
|
|
1618
|
+
t: (key: string, defaultValue: string) => string;
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1621
|
+
/** Layout variant */
|
|
1622
|
+
declare type SetupWizardLayout = 'horizontal' | 'vertical' | 'cards' | 'minimal' | 'sidebar';
|
|
1623
|
+
|
|
1624
|
+
/** Step definition */
|
|
1625
|
+
declare interface SetupWizardStep {
|
|
1626
|
+
id: string;
|
|
1627
|
+
title: string;
|
|
1628
|
+
subtitle?: string;
|
|
1629
|
+
description?: string;
|
|
1630
|
+
icon?: default_2.ReactNode;
|
|
1631
|
+
/** Schema-driven fields */
|
|
1632
|
+
fields?: SetupField[];
|
|
1633
|
+
/** OR custom content */
|
|
1634
|
+
content?: default_2.ReactNode | ((ctx: SetupWizardContext) => default_2.ReactNode);
|
|
1635
|
+
/** Validation function */
|
|
1636
|
+
validate?: (values: Record<string, unknown>) => Promise<string | undefined> | string | undefined;
|
|
1637
|
+
/** Whether step is optional */
|
|
1638
|
+
optional?: boolean;
|
|
1639
|
+
/** Whether step is skippable in quick mode */
|
|
1640
|
+
quickModeSkip?: boolean;
|
|
1641
|
+
/** Custom action buttons */
|
|
1642
|
+
actions?: SetupWizardAction[];
|
|
1643
|
+
/** Next step override (for branching) */
|
|
1644
|
+
nextStep?: string | ((values: Record<string, unknown>) => string);
|
|
1645
|
+
/** Previous step override */
|
|
1646
|
+
prevStep?: string;
|
|
1647
|
+
/** Minimum time on step (ms) - for steps that need time to process */
|
|
1648
|
+
minDuration?: number;
|
|
1649
|
+
/** Summary to show in review step */
|
|
1650
|
+
summary?: (values: Record<string, unknown>) => default_2.ReactNode;
|
|
1651
|
+
/** Category/group for sidebar layout */
|
|
1652
|
+
category?: string;
|
|
1653
|
+
/** Badge to show on step indicator */
|
|
1654
|
+
badge?: default_2.ReactNode;
|
|
1655
|
+
/** Estimated time to complete (displayed to user) */
|
|
1656
|
+
estimatedTime?: string;
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
/** Icon/label for each mode */
|
|
1660
|
+
export declare const SIDEBAR_MODE_META: Record<SidebarNavMode, {
|
|
1661
|
+
icon: string;
|
|
1662
|
+
label: string;
|
|
1663
|
+
}>;
|
|
1664
|
+
|
|
1665
|
+
/**
|
|
1666
|
+
* Top-level data node: one data source with all its navigation children.
|
|
1667
|
+
* modules → used in 'all' mode (depth: source → module → view)
|
|
1668
|
+
* roles → used in 'by-role' mode (depth: source → role → module → view)
|
|
1669
|
+
* units → used in 'by-unit' mode (depth: source → unit → module → view)
|
|
1670
|
+
*/
|
|
1671
|
+
export declare interface SidebarNavDataNode {
|
|
1672
|
+
source: SidebarNavDataSource;
|
|
1673
|
+
/** Navigation tree for "All" mode */
|
|
1674
|
+
modules: SidebarNavModule[];
|
|
1675
|
+
/** Navigation tree for "By-Role" mode */
|
|
1676
|
+
roles: SidebarNavRole[];
|
|
1677
|
+
/** Navigation tree for "By-Unit" mode */
|
|
1678
|
+
units: SidebarNavUnit[];
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
/** A database / API instance that can be pinned per mode */
|
|
1682
|
+
export declare interface SidebarNavDataSource {
|
|
1683
|
+
id: string;
|
|
1684
|
+
label: string;
|
|
1685
|
+
icon?: string;
|
|
1686
|
+
color?: string;
|
|
1687
|
+
/** Server URL or connection string hint */
|
|
1688
|
+
url?: string;
|
|
1689
|
+
type?: 'database' | 'instance' | 'api' | 'other';
|
|
1690
|
+
}
|
|
1691
|
+
|
|
1692
|
+
/** A saved favorite item */
|
|
1693
|
+
export declare interface SidebarNavFavorite {
|
|
1694
|
+
id: string;
|
|
1695
|
+
label: string;
|
|
1696
|
+
icon?: string;
|
|
1697
|
+
route?: string;
|
|
1698
|
+
sourceId?: string;
|
|
1699
|
+
moduleId?: string;
|
|
1700
|
+
addedAt: number;
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1703
|
+
export declare interface SidebarNavHiddenItem {
|
|
1704
|
+
/** The id of the hidden entity (source/module/view/role/unit id) */
|
|
1705
|
+
id: string;
|
|
1706
|
+
/** What KIND it is — for display in the restore list */
|
|
1707
|
+
kind: 'source' | 'module' | 'view' | 'role' | 'unit';
|
|
1708
|
+
/** Human-readable label for the restore list */
|
|
1709
|
+
label: string;
|
|
1710
|
+
}
|
|
1711
|
+
|
|
1712
|
+
/** Display mode for the sidebar navigation */
|
|
1713
|
+
export declare type SidebarNavMode = 'all' | 'by-role' | 'by-unit' | 'favorites' | 'preferences';
|
|
1714
|
+
|
|
1715
|
+
/** A module containing multiple views */
|
|
1716
|
+
export declare interface SidebarNavModule {
|
|
1717
|
+
id: string;
|
|
1718
|
+
label: string;
|
|
1719
|
+
icon?: string;
|
|
1720
|
+
views: SidebarNavView[];
|
|
1721
|
+
/** Source this module belongs to */
|
|
1722
|
+
sourceId?: string;
|
|
1723
|
+
}
|
|
1724
|
+
|
|
1725
|
+
/** A role grouping modules */
|
|
1726
|
+
export declare interface SidebarNavRole {
|
|
1727
|
+
id: string;
|
|
1728
|
+
label: string;
|
|
1729
|
+
icon?: string;
|
|
1730
|
+
modules: SidebarNavModule[];
|
|
1731
|
+
/** Source this role belongs to */
|
|
1732
|
+
sourceId?: string;
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
/** An organizational unit grouping modules */
|
|
1736
|
+
export declare interface SidebarNavUnit {
|
|
1737
|
+
id: string;
|
|
1738
|
+
label: string;
|
|
1739
|
+
icon?: string;
|
|
1740
|
+
modules: SidebarNavModule[];
|
|
1741
|
+
/** Source this unit belongs to */
|
|
1742
|
+
sourceId?: string;
|
|
1743
|
+
}
|
|
1744
|
+
|
|
1745
|
+
export declare interface SidebarNavUserPrefs {
|
|
1746
|
+
/** Matches the userId prop to namespace localStorage keys */
|
|
1747
|
+
userId: string;
|
|
1748
|
+
/** Whether to show mode-switch icons at all (default: false) */
|
|
1749
|
+
enableModeIcons: boolean;
|
|
1750
|
+
/** Which modes are shown in the strip (preferences is always shown) */
|
|
1751
|
+
enabledModes: SidebarNavMode[];
|
|
1752
|
+
/** Active mode */
|
|
1753
|
+
activeMode: SidebarNavMode;
|
|
1754
|
+
/**
|
|
1755
|
+
* When a mode has pinned source ids, only those sources are shown.
|
|
1756
|
+
* Empty array / absent = show all sources in that mode.
|
|
1757
|
+
*/
|
|
1758
|
+
pinnedSources: Partial<Record<SidebarNavMode, string[]>>;
|
|
1759
|
+
hiddenItems: SidebarNavHiddenItem[];
|
|
1760
|
+
favorites: SidebarNavFavorite[];
|
|
1761
|
+
/**
|
|
1762
|
+
* How many levels to show per mode.
|
|
1763
|
+
* 1 = sources only, 2 = sources + first level, 3 = …, 4 = all (default)
|
|
1764
|
+
*/
|
|
1765
|
+
maxDepth: Partial<Record<SidebarNavMode, number>>;
|
|
1766
|
+
/** IDs that are manually collapsed */
|
|
1767
|
+
collapsedIds: string[];
|
|
1768
|
+
/** Start everything expanded (default: true) */
|
|
1769
|
+
autoExpand: boolean;
|
|
1770
|
+
}
|
|
1771
|
+
|
|
1772
|
+
/** A single navigable view / entity view */
|
|
1773
|
+
export declare interface SidebarNavView {
|
|
1774
|
+
id: string;
|
|
1775
|
+
label: string;
|
|
1776
|
+
icon?: string;
|
|
1777
|
+
/** Route path for navigation */
|
|
1778
|
+
route?: string;
|
|
1779
|
+
/** Badge counter (unread notifications, pending tasks, …) */
|
|
1780
|
+
badge?: string | number;
|
|
1781
|
+
isExternal?: boolean;
|
|
1782
|
+
/** Module this view belongs to */
|
|
1783
|
+
moduleId?: string;
|
|
1784
|
+
}
|
|
1785
|
+
|
|
1786
|
+
declare interface StartMenuProps {
|
|
1787
|
+
items: NiceStartMenuItem[];
|
|
1788
|
+
label?: string;
|
|
1789
|
+
icon?: default_2.ReactNode;
|
|
1790
|
+
position: NiceTaskbarPosition;
|
|
1791
|
+
onItemClick?: (key: string) => void;
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1794
|
+
declare interface SystemTrayProps {
|
|
1795
|
+
items: NiceSystemTrayItem[];
|
|
1796
|
+
showClock?: boolean;
|
|
1797
|
+
onItemClick?: (key: string) => void;
|
|
1798
|
+
}
|
|
1799
|
+
|
|
1800
|
+
declare interface TaskbarProps {
|
|
1801
|
+
items: NiceTaskbarItem[];
|
|
1802
|
+
position: NiceTaskbarPosition;
|
|
1803
|
+
size: number;
|
|
1804
|
+
startMenu?: default_2.ReactNode;
|
|
1805
|
+
systemTray?: default_2.ReactNode;
|
|
1806
|
+
onItemClick?: (key: string) => void;
|
|
1807
|
+
}
|
|
1808
|
+
|
|
1809
|
+
/** A tenant/organization entry. */
|
|
1810
|
+
declare interface TenantEntry {
|
|
1811
|
+
id: string | number;
|
|
1812
|
+
/** Display name. */
|
|
1813
|
+
name: string;
|
|
1814
|
+
/** Logo/icon URL. */
|
|
1815
|
+
logoUrl?: string;
|
|
1816
|
+
/** Subtitle (e.g. role, plan). */
|
|
1817
|
+
subtitle?: string;
|
|
1818
|
+
/** Whether the tenant is active/current. */
|
|
1819
|
+
isCurrent?: boolean;
|
|
1820
|
+
}
|
|
1821
|
+
|
|
1822
|
+
/** A menu item in the user menu. */
|
|
1823
|
+
declare interface UserMenuItem {
|
|
1824
|
+
id: string;
|
|
1825
|
+
label: string;
|
|
1826
|
+
icon?: default_2.ReactNode;
|
|
1827
|
+
/** Whether this item is a divider (label is ignored). */
|
|
1828
|
+
isDivider?: boolean;
|
|
1829
|
+
/** Fires when clicked. */
|
|
1830
|
+
onClick?: () => void;
|
|
1831
|
+
/** Whether this is a "danger" action (e.g. logout). */
|
|
1832
|
+
danger?: boolean;
|
|
1833
|
+
/** Whether the item is disabled. */
|
|
1834
|
+
disabled?: boolean;
|
|
1835
|
+
}
|
|
1836
|
+
|
|
1837
|
+
/** A single step in the wizard. */
|
|
1838
|
+
declare interface WizardStep {
|
|
1839
|
+
id: string;
|
|
1840
|
+
title: string;
|
|
1841
|
+
description?: string;
|
|
1842
|
+
icon?: default_2.ReactNode;
|
|
1843
|
+
/** Validation function — return error message string or undefined/true for valid. */
|
|
1844
|
+
validate?: () => string | true | undefined;
|
|
1845
|
+
/** Whether this step is optional (can be skipped). */
|
|
1846
|
+
optional?: boolean;
|
|
1847
|
+
/** Content renderer. */
|
|
1848
|
+
content: default_2.ReactNode | ((ctx: WizardStepContext) => default_2.ReactNode);
|
|
1849
|
+
}
|
|
1850
|
+
|
|
1851
|
+
/** Context provided to each step's content renderer. */
|
|
1852
|
+
declare interface WizardStepContext {
|
|
1853
|
+
stepIndex: number;
|
|
1854
|
+
totalSteps: number;
|
|
1855
|
+
goNext: () => void;
|
|
1856
|
+
goPrev: () => void;
|
|
1857
|
+
goTo: (id: string) => void;
|
|
1858
|
+
isFirst: boolean;
|
|
1859
|
+
isLast: boolean;
|
|
1860
|
+
}
|
|
1861
|
+
|
|
1862
|
+
export { }
|