@skygraph/react 0.0.0-placeholder.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/LICENSE +21 -0
  2. package/dist/Table-BqN2u5ma.d.cts +1015 -0
  3. package/dist/Table-IvijKCyd.d.ts +1015 -0
  4. package/dist/chunk-2OCEO636.js +91 -0
  5. package/dist/chunk-2OCEO636.js.map +1 -0
  6. package/dist/chunk-6SHHUUAE.js +1667 -0
  7. package/dist/chunk-6SHHUUAE.js.map +1 -0
  8. package/dist/chunk-BNMJSYI2.js +54 -0
  9. package/dist/chunk-BNMJSYI2.js.map +1 -0
  10. package/dist/chunk-DRBAZI46.js +57 -0
  11. package/dist/chunk-DRBAZI46.js.map +1 -0
  12. package/dist/chunk-GJDDPZH7.js +226 -0
  13. package/dist/chunk-GJDDPZH7.js.map +1 -0
  14. package/dist/chunk-KCFWFDSP.js +847 -0
  15. package/dist/chunk-KCFWFDSP.js.map +1 -0
  16. package/dist/chunk-MJAEAFPN.js +3791 -0
  17. package/dist/chunk-MJAEAFPN.js.map +1 -0
  18. package/dist/chunk-MLEBVELO.js +1412 -0
  19. package/dist/chunk-MLEBVELO.js.map +1 -0
  20. package/dist/chunk-SEQI65CF.js +61 -0
  21. package/dist/chunk-SEQI65CF.js.map +1 -0
  22. package/dist/chunk-ZJF6SJLP.js +200 -0
  23. package/dist/chunk-ZJF6SJLP.js.map +1 -0
  24. package/dist/common-CdpocIEz.d.cts +27 -0
  25. package/dist/common-CdpocIEz.d.ts +27 -0
  26. package/dist/datagrid-B6hg5yJh.d.cts +200 -0
  27. package/dist/datagrid-B6hg5yJh.d.ts +200 -0
  28. package/dist/datagrid.cjs +1052 -0
  29. package/dist/datagrid.cjs.map +1 -0
  30. package/dist/datagrid.d.cts +2 -0
  31. package/dist/datagrid.d.ts +2 -0
  32. package/dist/datagrid.js +10 -0
  33. package/dist/datagrid.js.map +1 -0
  34. package/dist/devtools.cjs +253 -0
  35. package/dist/devtools.cjs.map +1 -0
  36. package/dist/devtools.d.cts +29 -0
  37. package/dist/devtools.d.ts +29 -0
  38. package/dist/devtools.js +9 -0
  39. package/dist/devtools.js.map +1 -0
  40. package/dist/form.cjs +1723 -0
  41. package/dist/form.cjs.map +1 -0
  42. package/dist/form.d.cts +530 -0
  43. package/dist/form.d.ts +530 -0
  44. package/dist/form.js +49 -0
  45. package/dist/form.js.map +1 -0
  46. package/dist/index.cjs +22419 -0
  47. package/dist/index.cjs.map +1 -0
  48. package/dist/index.d.cts +3671 -0
  49. package/dist/index.d.ts +3671 -0
  50. package/dist/index.js +14087 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/table.cjs +4130 -0
  53. package/dist/table.cjs.map +1 -0
  54. package/dist/table.d.cts +31 -0
  55. package/dist/table.d.ts +31 -0
  56. package/dist/table.js +26 -0
  57. package/dist/table.js.map +1 -0
  58. package/dist/tree.cjs +1821 -0
  59. package/dist/tree.cjs.map +1 -0
  60. package/dist/tree.d.cts +348 -0
  61. package/dist/tree.d.ts +348 -0
  62. package/dist/tree.js +13 -0
  63. package/dist/tree.js.map +1 -0
  64. package/dist/virtual.cjs +145 -0
  65. package/dist/virtual.cjs.map +1 -0
  66. package/dist/virtual.d.cts +50 -0
  67. package/dist/virtual.d.ts +50 -0
  68. package/dist/virtual.js +11 -0
  69. package/dist/virtual.js.map +1 -0
  70. package/package.json +108 -18
  71. package/README.md +0 -12
  72. package/index.js +0 -3
@@ -0,0 +1,3671 @@
1
+ import { a as SizeType, B as BaseComponentProps, S as SizableProps, I as InteractiveProps } from './common-CdpocIEz.js';
2
+ import { i as SgLocale, j as PrintOptions, k as CalendarLocale, l as PrintableProp, m as SlotClassNames, n as SlotStyles } from './Table-IvijKCyd.js';
3
+ export { A as AggregateType, B as BreadcrumbLocale, o as CarouselLocale, p as CascaderLocale, C as CellSpan, q as ChartsLocale, D as DashboardLocale, r as DatePickerLocale, s as DrawerLocale, t as EmptyLocale, E as ExpandableConfig, F as FilterDropdownProps, a as FlatRow, v as FormLocale, w as GanttLocale, G as GroupRow, H as HeaderCell, I as InlineEditLocale, x as InputPasswordLocale, M as ModalLocale, N as NotificationLocale, y as PaginationLocale, P as PinnedRowsConfig, z as PopconfirmLocale, J as RateLocale, K as ResourceCalendarLocale, R as RowNumberConfig, b as RowSelectionConfig, L as SchemaFormEditorLocale, O as SearchInputLocale, S as SelectionSummaryAction, Q as SkeletonLocale, V as SpinLocale, c as SummaryCell, T as Table, d as TableColumn, e as TableLocale, f as TableProps, W as TableRef, X as TagInputLocale, Y as TagLocale, Z as TimelineLocale, _ as TransferLocale, g as TreeConfig, $ as TreeSelectLocale, a0 as UploadLocale, U as UseTableOptions, h as UseTableReturn, u as useTable } from './Table-IvijKCyd.js';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import * as React$1 from 'react';
6
+ import React__default, { ReactNode, CSSProperties, MouseEvent } from 'react';
7
+ import { FieldType, AutoFieldOption, JSONSchema } from './form.js';
8
+ export { AutoField, AutoFieldConfig, AutoFieldProps, Field, FieldProps, Form, FormContext, FormList, FormListProps, FormProps, FormProvider, FormProviderProps, JSONSchemaProperty, SchemaForm, SchemaFormProps, SubmitButton, SubmitButtonProps, UseFieldArrayReturn, UseFieldReturn, UseFormOptions, UseFormReturn, ZodAdapterOptions, ZodLikeSchema, ZodObjectLikeSchema, jsonSchemaToDefaults, jsonSchemaToFields, jsonSchemaToRules, useField, useFieldArray, useForm, useFormContext, useFormProvider, useWatch, zodDefaults, zodRule, zodRules, zodToJsonSchema } from './form.js';
9
+ import { Core, GraphEngineOptions, GraphEngine, GraphState, GraphNode, GraphEdge, NodeId, CalendarAvailabilityRule, CalendarScale, CalendarConflict } from '@skygraph/core';
10
+ export { CalendarAvailabilityRule as AvailabilityRule, CalendarScale, ColumnFilter, CalendarConflict as Conflict, FilterFn, MeasureCache, MeasureCacheEvent, MeasureCacheListener, RowId, SortConfig, SortDirection, TreeFieldNames, TreeKey, TreeNodeData, VirtualEngine, VirtualEngineEvent, VirtualEngineListener, VirtualEngineOptions, VirtualItem, VirtualRange, createMeasureCache, createVirtual } from '@skygraph/core';
11
+ export { CheckInfo, DragInfo, DropInfo, EditInfo, ExpandInfo, SelectInfo, Tree, TreeLocale, TreeNodeAction, TreeNodeStatus, TreeProps, TreeSelect, TreeSelectProps, UseTreeOptions, UseTreeReturn, useTree } from './tree.js';
12
+ export { UseVirtualScrollOptions, UseVirtualScrollReturn, VirtualList, VirtualListProps, VirtualListRef, useVirtualScroll } from './virtual.js';
13
+ export { HistoryPanel, HistoryPanelProps, UseHistoryReturn, useHistory } from './devtools.js';
14
+ export { C as CellEditorProps, a as CellPosition, b as CellRange, c as CellValue, D as DataGrid, d as DataGridColumn, e as DataGridContextMenuItem, f as DataGridLocale, g as DataGridProps, h as DataGridRef, i as DataGridSummaryRow } from './datagrid-B6hg5yJh.js';
15
+
16
+ /**
17
+ * Global Skygraph component configuration merged through React context.
18
+ *
19
+ * По `prefixCls`: сознательно НЕ входит в публичный API до реализации
20
+ * (вариант A в `docs/styling-plan.md`, фаза 4). На практике все корневые классы
21
+ * имеют стабильный префикс `.sg-*`; если нужна изоляция — используйте изолированный
22
+ * скоуп на хосте (шадоу-рут/отдельный контейнер со своими токенами).
23
+ */
24
+ interface SgConfig {
25
+ /** Default size token for nested components. */
26
+ size?: SizeType;
27
+ /** Disables interactions for nested components when true. */
28
+ disabled?: boolean;
29
+ /** Enables bordered styling for nested components when true. */
30
+ bordered?: boolean;
31
+ /** Locale messages shallow-merged with the parent provider when set. */
32
+ locale?: SgLocale;
33
+ }
34
+ /** Props for `ConfigProvider`, extending `SgConfig` with React children. */
35
+ interface ConfigProviderProps extends SgConfig {
36
+ /** Tree of components that consume merged configuration from this provider. */
37
+ children: React__default.ReactNode;
38
+ }
39
+ /**
40
+ * Merges Skygraph configuration with any parent provider and exposes it via context.
41
+ * Descendants read values through `useConfig` or `useConfigWithDefaults`.
42
+ */
43
+ declare function ConfigProvider({ children, ...config }: ConfigProviderProps): react_jsx_runtime.JSX.Element;
44
+ /** Returns the merged `SgConfig` from the nearest ancestor `ConfigProvider`. */
45
+ declare function useConfig(): SgConfig;
46
+
47
+ /**
48
+ * English (US) locale preset for {@link ConfigProvider}.
49
+ *
50
+ * Covers the strings consumed by all React-adapter components: hidden
51
+ * helper aria-labels, button tooltips, placeholders, modal/drawer/notification
52
+ * close buttons, chart aria roles, date-picker / calendar navigation,
53
+ * dashboard / gantt / resource-calendar / timeline accessibility names,
54
+ * and schema-form-editor toolbar.
55
+ */
56
+ declare const en_US: SgLocale;
57
+
58
+ /**
59
+ * Russian (RU) locale preset for {@link ConfigProvider}.
60
+ */
61
+ declare const ru_RU: SgLocale;
62
+
63
+ /**
64
+ * Chinese (Simplified, zh-CN) locale preset for {@link ConfigProvider}.
65
+ *
66
+ * Mirrors the structure of {@link en_US}; values translated for general
67
+ * UI use. Identifiers, `sg-*` class names and unicode glyphs are not
68
+ * translated (see CHARTER §10).
69
+ */
70
+ declare const zh_CN: SgLocale;
71
+
72
+ /**
73
+ * German (de-DE) locale preset for {@link ConfigProvider}.
74
+ *
75
+ * Mirrors the structure of {@link en_US}; values translated for general
76
+ * UI use. Identifiers, `sg-*` class names and unicode glyphs are not
77
+ * translated (see CHARTER §10).
78
+ */
79
+ declare const de_DE: SgLocale;
80
+
81
+ /**
82
+ * French (fr-FR) locale preset for {@link ConfigProvider}.
83
+ *
84
+ * Mirrors the structure of {@link en_US}; values translated for general
85
+ * UI use. Identifiers, `sg-*` class names and unicode glyphs are not
86
+ * translated (see CHARTER §10).
87
+ */
88
+ declare const fr_FR: SgLocale;
89
+
90
+ /**
91
+ * Spanish (es-ES) locale preset for {@link ConfigProvider}.
92
+ *
93
+ * Mirrors the structure of {@link en_US}; values translated for general
94
+ * UI use. Identifiers, `sg-*` class names and unicode glyphs are not
95
+ * translated (see CHARTER §10).
96
+ */
97
+ declare const es_ES: SgLocale;
98
+
99
+ declare function useComputed(core: Core, path: string): unknown;
100
+
101
+ /**
102
+ * Вычисляет CSS `@page` блок для popup-страницы по `PrintOptions`. Вынесено
103
+ * в отдельную функцию ради тестируемости (snapshot-тест без `window.open`).
104
+ */
105
+ declare function buildPageRule(opts?: PrintOptions): string;
106
+ /**
107
+ * Собирает HTML-документ popup-страницы. Используется `printElement` и
108
+ * напрямую тестами — поэтому никаких `window.*` побочных эффектов.
109
+ *
110
+ * Стратегия:
111
+ * 1. Клонируем `<style>` и `<link rel="stylesheet">` из текущего
112
+ * документа, чтобы popup увидел SkyGraph-стили (включая `print.css`).
113
+ * 2. Дописываем нашу `@page`-секцию + `body` reset.
114
+ * 3. Опциональный `transform: scale(...)` на обёртке.
115
+ * 4. Подставляем `outerHTML` исходного `node`.
116
+ * 5. Триггерим `print()` после `load`-события, чтобы шрифты и стили
117
+ * успели приехать в popup.
118
+ */
119
+ declare function buildPrintHtml(fragment: string, opts?: PrintOptions, documentRef?: Document | null): string;
120
+ /**
121
+ * Открывает popup-окно, инжектирует SkyGraph-стили + `outerHTML` `node`-а,
122
+ * и вызывает `window.print()`. Возвращает popup-окно или `null`, если
123
+ * браузер заблокировал открытие нового окна.
124
+ *
125
+ * Пример:
126
+ * ```ts
127
+ * const ref = useRef<HTMLDivElement>(null)
128
+ * <button onClick={() => printElement(ref.current, { fileName: 'report.pdf' })}>
129
+ * Print
130
+ * </button>
131
+ * ```
132
+ *
133
+ * Никаких runtime-зависимостей: всё на штатном `window.open` + CSS
134
+ * `@media print`. PDF получается через системный диалог печати → "Save as PDF".
135
+ */
136
+ declare function printElement(node: Element | null, opts?: PrintOptions): Window | null;
137
+
138
+ /** One node in a cascader tree; children define the next column. */
139
+ interface CascaderOption {
140
+ /** Stable value included in the selected path. */
141
+ value: string | number;
142
+ /** Display node for the option row. */
143
+ label: React__default.ReactNode;
144
+ /** Nested options for the next level. */
145
+ children?: CascaderOption[];
146
+ /** When `true`, the option cannot be chosen. */
147
+ disabled?: boolean;
148
+ /** When `false`, children may load asynchronously (see `loadData`). */
149
+ isLeaf?: boolean;
150
+ }
151
+ /** Props for hierarchical single- or multi-select with search and async children. */
152
+ interface CascaderProps {
153
+ /** Top-level options; each may nest `children`. */
154
+ options: CascaderOption[];
155
+ /** Selected path from root to current value (controlled). */
156
+ value?: (string | number)[];
157
+ /** Initial path when uncontrolled. */
158
+ defaultValue?: (string | number)[];
159
+ /** Fired with the value path and resolved option chain. */
160
+ onChange?: (value: (string | number)[], selectedOptions: CascaderOption[]) => void;
161
+ /**
162
+ * Shown when nothing is selected.
163
+ * @default 'Please select'
164
+ */
165
+ placeholder?: string;
166
+ /**
167
+ * Shows a clear control when there is a selection.
168
+ * @default false
169
+ */
170
+ allowClear?: boolean;
171
+ /**
172
+ * Disables opening and changing the value.
173
+ * @default false
174
+ */
175
+ disabled?: boolean;
176
+ /**
177
+ * Visual size of the trigger.
178
+ * @default 'middle'
179
+ */
180
+ size?: 'small' | 'middle' | 'large';
181
+ /**
182
+ * Allows several leaf paths as tags.
183
+ * @default false
184
+ */
185
+ multiple?: boolean;
186
+ /**
187
+ * Enables search, or `{ filter }` for custom path matching.
188
+ * @default false
189
+ */
190
+ showSearch?: boolean | {
191
+ filter?: (inputValue: string, path: CascaderOption[]) => boolean;
192
+ };
193
+ /**
194
+ * Opens the next column on click or hover.
195
+ * @default 'click'
196
+ */
197
+ expandTrigger?: 'click' | 'hover';
198
+ /**
199
+ * Commits selection on non-leaf nodes when `true`.
200
+ * @default false
201
+ */
202
+ changeOnSelect?: boolean;
203
+ /** Custom display for the single-select trigger from labels and options. */
204
+ displayRender?: (labels: string[], selectedOptions: CascaderOption[]) => React__default.ReactNode;
205
+ /** Loads children for a node when `isLeaf` is false and children are empty. */
206
+ loadData?: (selectedOptions: CascaderOption[]) => void;
207
+ /** Max tags shown in multiple mode before a “+N” summary. */
208
+ maxTagCount?: number;
209
+ /** Inline styles for the dropdown panel. */
210
+ dropdownStyle?: React__default.CSSProperties;
211
+ /** Root wrapper class name. */
212
+ className?: string;
213
+ /** Root wrapper inline styles. */
214
+ style?: React__default.CSSProperties;
215
+ /** Renders minimal markup without cascader CSS classes. */
216
+ unstyled?: boolean;
217
+ }
218
+
219
+ /**
220
+ * Hierarchical picker with columns, optional multi-select, search, and lazy-loaded branches.
221
+ */
222
+ declare function Cascader(props: CascaderProps): react_jsx_runtime.JSX.Element;
223
+
224
+ /** Values passed to `headerRender` for custom calendar chrome. */
225
+ interface CalendarHeaderInfo {
226
+ /** Date currently shown in the panel (year/month context). */
227
+ value: Date;
228
+ /** Whether the panel shows the month grid or year/month picker. */
229
+ type: 'month' | 'year';
230
+ /** Updates the panel date (e.g. month/year selects). */
231
+ onChange: (date: Date) => void;
232
+ /** Switches between month and year panel modes. */
233
+ onTypeChange: (type: 'month' | 'year') => void;
234
+ }
235
+ /** Context for `cellRender` describing which cell kind is being rendered. */
236
+ interface CalendarCellInfo {
237
+ /** `date` for day cells, `month` for month tiles in year view. */
238
+ type: 'date' | 'month';
239
+ }
240
+ /** Calendar event marker for a specific date. */
241
+ interface CalendarEvent {
242
+ /** Date of the event. */
243
+ date: Date;
244
+ /** Short label shown in the cell. */
245
+ title: string;
246
+ /** Color dot or badge color. */
247
+ color?: string;
248
+ /** Unique key. */
249
+ key?: string;
250
+ }
251
+ /** Props for the month/year calendar with optional custom header and cells. */
252
+ interface CalendarProps {
253
+ /** Controlled selected date. */
254
+ value?: Date;
255
+ /** Initial selected date when uncontrolled. */
256
+ defaultValue?: Date;
257
+ /** Fired when the selected date changes. */
258
+ onChange?: (date: Date) => void;
259
+ /** Fired when the visible panel date or view mode changes. */
260
+ onPanelChange?: (date: Date, mode: 'month' | 'year') => void;
261
+ /** Fired when a date is chosen (including month pick in year view). */
262
+ onSelect?: (date: Date) => void;
263
+ /** Controlled panel mode: month grid or year/month list. */
264
+ mode?: 'month' | 'year';
265
+ /**
266
+ * Uses full layout including footer "today" when `true`.
267
+ * @default true
268
+ */
269
+ fullscreen?: boolean;
270
+ /** Custom header UI; receives navigation state and handlers. */
271
+ headerRender?: (info: CalendarHeaderInfo) => React__default.ReactNode;
272
+ /** Extra content inside day or month cells. */
273
+ cellRender?: (date: Date, info: CalendarCellInfo) => React__default.ReactNode;
274
+ /** Marks dates non-interactive when it returns `true`. */
275
+ disabledDate?: (date: Date) => boolean;
276
+ /** Overrides default English month/day names and today label. */
277
+ locale?: CalendarLocale;
278
+ /** Root element class name. */
279
+ className?: string;
280
+ /** Root element inline styles. */
281
+ style?: React__default.CSSProperties;
282
+ /** Renders semantic structure without Skygraph calendar CSS. */
283
+ unstyled?: boolean;
284
+ /** Shows ISO week numbers on the left of each row. */
285
+ showWeekNumber?: boolean;
286
+ /** First day of week: 0=Sunday, 1=Monday, etc. @default 0 */
287
+ weekStartDay?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
288
+ /** Enables range selection mode. */
289
+ rangeSelection?: boolean;
290
+ /** Controlled range value [start, end]. */
291
+ rangeValue?: [Date | null, Date | null];
292
+ /** Default range when uncontrolled. */
293
+ defaultRangeValue?: [Date | null, Date | null];
294
+ /** Fired when range changes. */
295
+ onRangeChange?: (range: [Date | null, Date | null]) => void;
296
+ /** Enables multiple date selection mode. */
297
+ multipleSelection?: boolean;
298
+ /** Controlled array of selected dates. */
299
+ multipleValue?: Date[];
300
+ /** Default multiple selected dates. */
301
+ defaultMultipleValue?: Date[];
302
+ /** Fired when multiple selection changes. */
303
+ onMultipleChange?: (dates: Date[]) => void;
304
+ /** Event markers per date. */
305
+ events?: CalendarEvent[];
306
+ /** Max events to show per cell before "+N more". @default 3 */
307
+ maxEvents?: number;
308
+ /** Enables keyboard navigation. @default true */
309
+ keyboard?: boolean;
310
+ }
311
+
312
+ /**
313
+ * Month/year calendar with panel navigation, week numbers, range/multi selection,
314
+ * event markers, keyboard navigation, and fullscreen or compact layout.
315
+ */
316
+ declare function Calendar(props: CalendarProps): react_jsx_runtime.JSX.Element;
317
+
318
+ /** Props for loading spinner, overlay, and optional content blur. */
319
+ interface SpinProps extends BaseComponentProps, SizableProps {
320
+ /** When `true`, shows the loading state (subject to `delay`). @default true */
321
+ spinning?: boolean;
322
+ /** Milliseconds to wait before showing the spinner after `spinning` becomes true. */
323
+ delay?: number;
324
+ /** Optional text below the indicator. */
325
+ tip?: string;
326
+ /** When `true`, covers the viewport instead of inline or wrapping children. */
327
+ fullscreen?: boolean;
328
+ /** Custom spinner node; defaults to a styled status element. */
329
+ indicator?: React__default.ReactNode;
330
+ /** When set, shows an overlay with blur on this content while loading. */
331
+ children?: React__default.ReactNode;
332
+ }
333
+ /**
334
+ * Loading indicator with optional delay, tip, fullscreen mode, and child overlay.
335
+ */
336
+ declare function Spin({ spinning, size: sizeProp, delay, tip, fullscreen, indicator, children, className, style, unstyled, }: SpinProps): react_jsx_runtime.JSX.Element | null;
337
+
338
+ /** Props for the Button component. */
339
+ interface ButtonProps extends BaseComponentProps, InteractiveProps, SizableProps {
340
+ /** Visual style variant. @default 'default' */
341
+ type?: 'default' | 'primary' | 'dashed' | 'text' | 'link';
342
+ /** Native HTML button type attribute. @default 'button' */
343
+ htmlType?: 'button' | 'submit' | 'reset';
344
+ /**
345
+ * Visually flags a destructive action. Combines with `type` (e.g. a
346
+ * `danger` `primary` button is solid red, a `danger` `text` is red text).
347
+ * Adds the `sg-button-danger` modifier class.
348
+ * @default false
349
+ */
350
+ danger?: boolean;
351
+ /** Stretches the button to fill its parent container. @default false */
352
+ block?: boolean;
353
+ /** Click event handler. */
354
+ onClick?: (e: React__default.MouseEvent<HTMLButtonElement>) => void;
355
+ /** Button content. */
356
+ children?: React__default.ReactNode;
357
+ }
358
+ /** General-purpose button with multiple visual variants, sizes, and loading state. */
359
+ declare function Button({ type, size: sizeProp, disabled: disabledProp, loading, htmlType, danger, block, onClick, children, className, style, unstyled, }: ButtonProps): react_jsx_runtime.JSX.Element;
360
+
361
+ /** Props for the Input component. */
362
+ interface InputProps extends BaseComponentProps, InteractiveProps, SizableProps {
363
+ /** Controlled input value. */
364
+ value?: string;
365
+ /** Uncontrolled initial value. */
366
+ defaultValue?: string;
367
+ /** Placeholder text when the field is empty. */
368
+ placeholder?: string;
369
+ /** Native HTML input type. @default 'text' */
370
+ type?: 'text' | 'email' | 'password' | 'number';
371
+ /**
372
+ * Marks the field as read-only. The value is selectable and submitted
373
+ * but cannot be edited. Sets the HTML `readonly` attribute,
374
+ * `aria-readonly="true"`, and adds the `sg-input-readonly` modifier class.
375
+ * @default false
376
+ */
377
+ readOnly?: boolean;
378
+ /** DOM id forwarded to the underlying `<input>`. */
379
+ id?: string;
380
+ /** Exposes invalid state to assistive technologies. */
381
+ 'aria-invalid'?: boolean | 'false' | 'true' | 'grammar' | 'spelling';
382
+ /** Marks the field as required for assistive technologies. */
383
+ 'aria-required'?: boolean | 'false' | 'true';
384
+ /** Connects the input to description / error nodes for assistive technologies. */
385
+ 'aria-describedby'?: string;
386
+ /** Called when the text value changes. */
387
+ onChange?: (value: string) => void;
388
+ /** Called when the input loses focus. */
389
+ onBlur?: () => void;
390
+ /** Called when the input gains focus. */
391
+ onFocus?: () => void;
392
+ }
393
+ /** Single-line text input with optional loading indicator and configurable HTML type. */
394
+ declare function Input({ value, defaultValue, placeholder, type, readOnly, size: sizeProp, disabled: disabledProp, loading, onChange, onBlur, onFocus, 'aria-invalid': ariaInvalid, 'aria-required': ariaRequired, 'aria-describedby': ariaDescribedBy, id, className, style, unstyled, }: InputProps): react_jsx_runtime.JSX.Element;
395
+
396
+ /** Props for the modal dialog overlay. */
397
+ interface ModalProps extends BaseComponentProps {
398
+ /** When `true`, the modal is visible. */
399
+ open: boolean;
400
+ /** Called when the modal should close (Escape, mask click, or close control). */
401
+ onClose: () => void;
402
+ /** Optional heading text; used for the accessible name when set. */
403
+ title?: string;
404
+ /** Main dialog body content. */
405
+ children?: React__default.ReactNode;
406
+ /**
407
+ * Footer region below the body. Omit to render the default OK / Cancel pair
408
+ * (enabled when `onOk` is provided). Pass `null` to hide the footer entirely.
409
+ */
410
+ footer?: React__default.ReactNode;
411
+ /** Dialog width as a CSS length or number (pixels). @default 520 */
412
+ width?: number | string;
413
+ /** Called when the default OK button is clicked. Enables the default footer. */
414
+ onOk?: () => void | Promise<void>;
415
+ /** Label for the default OK button. Falls back to `locale.modal.okText` → `OK`. */
416
+ okText?: string;
417
+ /** Label for the default Cancel button. Falls back to `locale.modal.cancelText` → `Cancel`. */
418
+ cancelText?: string;
419
+ /** Visual type of the default OK button. @default 'primary' */
420
+ okType?: 'primary' | 'default' | 'dashed' | 'text';
421
+ /** Shows the OK button in loading state and disables interactions. */
422
+ confirmLoading?: boolean;
423
+ }
424
+ /**
425
+ * Modal dialog with mask, optional title/footer, focus trap, and Escape to close.
426
+ * Renders a bare structure when `unstyled` is set.
427
+ */
428
+ declare function Modal({ open, onClose, title, children, footer, width, onOk, okText: okTextProp, cancelText: cancelTextProp, okType, confirmLoading, className, unstyled, }: ModalProps): react_jsx_runtime.JSX.Element | null;
429
+
430
+ /** Props for the Checkbox component. */
431
+ interface CheckboxProps extends BaseComponentProps, InteractiveProps {
432
+ /** Controlled checked state. */
433
+ checked?: boolean;
434
+ /** Uncontrolled initial checked state. */
435
+ defaultChecked?: boolean;
436
+ /** Renders the native checkbox in indeterminate state. */
437
+ indeterminate?: boolean;
438
+ /** Called when the checked state changes. */
439
+ onChange?: (checked: boolean) => void;
440
+ /** Label content beside the control. */
441
+ children?: React__default.ReactNode;
442
+ }
443
+ /** Labeled checkbox with indeterminate support and optional loading state. */
444
+ declare function Checkbox({ checked, defaultChecked, disabled: disabledProp, loading, indeterminate, onChange, children, className, style, unstyled, }: CheckboxProps): react_jsx_runtime.JSX.Element;
445
+
446
+ /** One selectable option in a radio group. */
447
+ interface RadioOption {
448
+ /** Visible label for the option. */
449
+ label: string;
450
+ /** Value emitted when this option is selected. */
451
+ value: string | number;
452
+ /** Disables this option regardless of group-level disabled state. */
453
+ disabled?: boolean;
454
+ }
455
+ /** Props for the RadioGroup component. */
456
+ interface RadioGroupProps extends BaseComponentProps, InteractiveProps {
457
+ /** Controlled selected value. */
458
+ value?: string | number;
459
+ /** Uncontrolled initial selected value. */
460
+ defaultValue?: string | number;
461
+ /** Options rendered as radio controls. */
462
+ options: RadioOption[];
463
+ /** Stacks options horizontally or vertically. @default 'horizontal' */
464
+ direction?: 'horizontal' | 'vertical';
465
+ /** Called when the selected value changes. */
466
+ onChange?: (value: string | number) => void;
467
+ }
468
+ /** Mutually exclusive radio options in a horizontal or vertical group. */
469
+ declare function RadioGroup({ value, defaultValue, options, direction, disabled: disabledProp, loading, onChange, className, style, unstyled, }: RadioGroupProps): react_jsx_runtime.JSX.Element;
470
+
471
+ /** Props for the Switch component. */
472
+ interface SwitchProps extends BaseComponentProps, InteractiveProps, SizableProps {
473
+ /** Controlled on state. */
474
+ checked?: boolean;
475
+ /** Uncontrolled initial on state. */
476
+ defaultChecked?: boolean;
477
+ /** Called when the switch is toggled. */
478
+ onChange?: (checked: boolean) => void;
479
+ /** Content shown while the switch is on. */
480
+ checkedChildren?: React__default.ReactNode;
481
+ /** Content shown while the switch is off. */
482
+ unCheckedChildren?: React__default.ReactNode;
483
+ }
484
+ /** Toggle switch with optional on/off slot content and loading state. */
485
+ declare function Switch({ checked, defaultChecked, disabled: disabledProp, loading, size: sizeProp, onChange, checkedChildren, unCheckedChildren, className, style, unstyled, }: SwitchProps): react_jsx_runtime.JSX.Element;
486
+
487
+ /** Single selectable entry in a Select dropdown or native option list. */
488
+ interface SelectOption {
489
+ /** Display text for the option. */
490
+ label: string;
491
+ /** Value submitted with the form and returned by onChange. */
492
+ value: string | number;
493
+ /** When true, the option cannot be selected. */
494
+ disabled?: boolean;
495
+ /** When true, shows a loading state for the option. */
496
+ loading?: boolean;
497
+ }
498
+ /** Props shared by single and multiple modes. */
499
+ interface SelectPropsBase extends BaseComponentProps, InteractiveProps, SizableProps {
500
+ /** Options shown in the dropdown or native select. */
501
+ options: SelectOption[];
502
+ /** Text shown when nothing is selected. */
503
+ placeholder?: string;
504
+ /** Called when the control loses focus. */
505
+ onBlur?: () => void;
506
+ /**
507
+ * Accessible name for the control. Required for the styled (non-`unstyled`)
508
+ * variant when there is no surrounding `<label htmlFor=...>` — the styled
509
+ * trigger is a `<div role="combobox">` and a parent `<label>` cannot
510
+ * associate. WCAG 4.1.2 expects a name for every interactive control;
511
+ * provide either `'aria-label'` or `'aria-labelledby'`.
512
+ *
513
+ * In the `unstyled` variant the underlying native `<select>` is fully
514
+ * labelable, so this prop is purely informational there.
515
+ */
516
+ 'aria-label'?: string;
517
+ /** Id(s) of the element(s) that describe this control. Mirrors `aria-label`. */
518
+ 'aria-labelledby'?: string;
519
+ }
520
+ /** Single-select variant. `value` is one option value. */
521
+ interface SelectPropsSingle extends SelectPropsBase {
522
+ /** When false/omitted, the component is single-select. */
523
+ multiple?: false;
524
+ /** Controlled selected value. */
525
+ value?: string | number;
526
+ /** Initial value when uncontrolled. */
527
+ defaultValue?: string | number;
528
+ /** Called when the selection changes. */
529
+ onChange?: (value: string | number) => void;
530
+ }
531
+ /**
532
+ * Multiple-select variant. `value` is an array. Selecting an option
533
+ * toggles its presence in the array; the dropdown stays open while picking.
534
+ */
535
+ interface SelectPropsMultiple extends SelectPropsBase {
536
+ /** Enables multi-select mode. Render shows chips per selected option. */
537
+ multiple: true;
538
+ /** Controlled selected values. */
539
+ value?: (string | number)[];
540
+ /** Initial selection when uncontrolled. */
541
+ defaultValue?: (string | number)[];
542
+ /** Called when the selection set changes. */
543
+ onChange?: (values: (string | number)[]) => void;
544
+ }
545
+ /** Props for the Select combobox; supports styled or native unstyled rendering. */
546
+ type SelectProps = SelectPropsSingle | SelectPropsMultiple;
547
+ /**
548
+ * Dropdown or native select for choosing one option (default) or many
549
+ * options when `multiple` is set. Keyboard and click-outside behavior apply
550
+ * in the styled (non-unstyled) mode.
551
+ *
552
+ * @default placeholder - `'Select...'`
553
+ */
554
+ declare function Select(props: SelectProps): react_jsx_runtime.JSX.Element;
555
+
556
+ /** Configuration for one tab: label, panel content, and optional states. */
557
+ interface TabItem {
558
+ /** Unique key used for selection and ARIA. */
559
+ key: string;
560
+ /** Tab label in the tab list. */
561
+ label: React__default.ReactNode;
562
+ /** Panel body shown when this tab is active. */
563
+ children: React__default.ReactNode;
564
+ /** When true, the tab cannot be activated. */
565
+ disabled?: boolean;
566
+ /** When true, shows a spinner and blocks activation until cleared. */
567
+ loading?: boolean;
568
+ }
569
+ /** Props for the tab list and associated single visible panel. */
570
+ interface TabsProps extends BaseComponentProps, SizableProps {
571
+ /**
572
+ * Visual chrome: `card` — bordered strip with the active tab attached to the
573
+ * panel (classic desktop tabs). `line` — minimal underline indicator only.
574
+ * @default 'card'
575
+ */
576
+ type?: 'line' | 'card';
577
+ /** Tab definitions including labels and panel content. */
578
+ items: TabItem[];
579
+ /** Controlled active tab key. */
580
+ activeKey?: string;
581
+ /** Initial active tab when `activeKey` is not controlled. */
582
+ defaultActiveKey?: string;
583
+ /** Called when the active tab changes after user interaction. */
584
+ onChange?: (key: string) => void;
585
+ }
586
+ /**
587
+ * Tabbed interface with keyboard navigation between tabs and one visible panel.
588
+ * Resolves initial active key from props, then first item, when uncontrolled.
589
+ */
590
+ declare function Tabs({ type: typeProp, items, activeKey, defaultActiveKey, onChange, size: sizeProp, className, style, unstyled, }: TabsProps): react_jsx_runtime.JSX.Element;
591
+
592
+ /** Props for the Tooltip component. */
593
+ interface TooltipProps extends BaseComponentProps {
594
+ /** Content shown in the tooltip on hover. */
595
+ title: React__default.ReactNode;
596
+ /** Tooltip position relative to the trigger. @default 'top' */
597
+ placement?: 'top' | 'bottom' | 'left' | 'right';
598
+ /** Single React element that receives hover / focus handlers as the trigger. */
599
+ children: React__default.ReactElement;
600
+ }
601
+ /**
602
+ * Shows floating help text on hover or keyboard focus, with optional placement and fade transition.
603
+ * The `aria-describedby` link is forwarded to the trigger element so assistive tech reads it on focus.
604
+ */
605
+ declare function Tooltip({ title, placement, children, className, unstyled, }: TooltipProps): react_jsx_runtime.JSX.Element;
606
+
607
+ /** Props for the multiline text field with optional character count and loading overlay. */
608
+ interface TextareaProps extends BaseComponentProps, InteractiveProps, SizableProps {
609
+ /** Controlled value; when omitted, uses internal state seeded by `defaultValue`. */
610
+ value?: string;
611
+ /** Initial value when uncontrolled. */
612
+ defaultValue?: string;
613
+ /** Placeholder shown when empty. */
614
+ placeholder?: string;
615
+ /** Visible row count on the native textarea. @default 4 */
616
+ rows?: number;
617
+ /** Hard cap on input length enforced in the change handler. */
618
+ maxLength?: number;
619
+ /** Shows current length (and `maxLength` when set) beside the field in styled mode. */
620
+ showCount?: boolean;
621
+ /** DOM id forwarded to the underlying `<textarea>`. */
622
+ id?: string;
623
+ /** Exposes invalid state to assistive technologies. */
624
+ 'aria-invalid'?: boolean | 'false' | 'true' | 'grammar' | 'spelling';
625
+ /** Connects the textarea to description / error nodes for assistive technologies. */
626
+ 'aria-describedby'?: string;
627
+ /** Marks the field as required for assistive technologies. */
628
+ 'aria-required'?: boolean | 'false' | 'true';
629
+ /** Emits the full string on each change. */
630
+ onChange?: (value: string) => void;
631
+ /** Passed through to the textarea blur event. */
632
+ onBlur?: () => void;
633
+ /** Passed through to the textarea focus event. */
634
+ onFocus?: () => void;
635
+ }
636
+ /**
637
+ * Styled textarea with configurable rows, optional character count, and loading state from shared interactive props.
638
+ */
639
+ declare function Textarea({ value, defaultValue, placeholder, rows, maxLength, showCount, disabled: disabledProp, loading, size: sizeProp, onChange, onBlur, onFocus, id, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, 'aria-required': ariaRequired, className, style, unstyled, }: TextareaProps): react_jsx_runtime.JSX.Element;
640
+
641
+ /** Props for the InputNumber component. */
642
+ interface InputNumberProps extends BaseComponentProps, InteractiveProps, SizableProps {
643
+ /** Controlled numeric value. */
644
+ value?: number;
645
+ /** Uncontrolled initial value. */
646
+ defaultValue?: number;
647
+ /** Lower bound applied on change and via stepper. */
648
+ min?: number;
649
+ /** Upper bound applied on change and via stepper. */
650
+ max?: number;
651
+ /** Amount added or subtracted by the stepper buttons. @default 1 */
652
+ step?: number;
653
+ /** Decimal places enforced after clamping. */
654
+ precision?: number;
655
+ /** Placeholder when the field has no value. */
656
+ placeholder?: string;
657
+ /** Called with the clamped number or null when the field is cleared. */
658
+ onChange?: (value: number | null) => void;
659
+ /** Called when the input loses focus. */
660
+ onBlur?: () => void;
661
+ }
662
+ /** Numeric field with +/- controls, optional bounds, precision, and loading state. */
663
+ declare function InputNumber({ value, defaultValue, min, max, step, precision, disabled: disabledProp, loading, placeholder, size: sizeProp, onChange, onBlur, className, style, unstyled, }: InputNumberProps): react_jsx_runtime.JSX.Element;
664
+
665
+ type PickerMode = 'date' | 'month' | 'year' | 'week';
666
+ /** Named shortcut that sets the calendar to a single date or a range. */
667
+ interface DatePreset {
668
+ /** Preset label shown in the sidebar. */
669
+ label: string;
670
+ /** Date applied for single picker, or [start, end] for range presets. */
671
+ value: Date | [Date, Date];
672
+ }
673
+ /** Fine-grained options when time selection is enabled on the date picker. */
674
+ interface ShowTimeConfig {
675
+ /** Time portion format string (supports HH, mm, ss tokens). */
676
+ format?: string;
677
+ /** Step between selectable hours in the time scroller. */
678
+ hourStep?: number;
679
+ /** Step between selectable minutes in the time scroller. */
680
+ minuteStep?: number;
681
+ /** Step between selectable seconds in the time scroller. */
682
+ secondStep?: number;
683
+ /** Initial time used when opening the panel without a selected date. */
684
+ defaultValue?: Date;
685
+ }
686
+ /** Props for picking a single calendar date (and optional time) with presets and placement. */
687
+ interface DatePickerProps extends BaseComponentProps, InteractiveProps, SizableProps {
688
+ /** Controlled selected date or null when cleared. */
689
+ value?: Date | null;
690
+ /** Initial date when uncontrolled. */
691
+ defaultValue?: Date;
692
+ /** Called when the value is committed or cleared; second arg is formatted string. */
693
+ onChange?: (date: Date | null, dateString: string) => void;
694
+ /** Called when a day is selected in the calendar (including while picking time). */
695
+ onCalendarChange?: (date: Date | null) => void;
696
+ /** Placeholder shown when no date is selected. */
697
+ placeholder?: string;
698
+ /** Display and parse format (YYYY, MM, DD, HH, mm, ss). */
699
+ format?: string;
700
+ /** Granularity: full date, month only, year only, or week (week mode uses date UI). */
701
+ picker?: PickerMode;
702
+ /** When true, show default time UI; when an object, pass ShowTimeConfig. */
703
+ showTime?: boolean | ShowTimeConfig;
704
+ /** When true, show a Today action in the footer (date mode without time). */
705
+ showToday?: boolean;
706
+ /** When true with showTime, show a Now action in the footer. */
707
+ showNow?: boolean;
708
+ /** When true, show a clear control when a value exists. */
709
+ allowClear?: boolean;
710
+ /** Return true to disable specific calendar days. */
711
+ disabledDate?: (date: Date) => boolean;
712
+ /** Sidebar shortcuts for common dates or ranges. */
713
+ presets?: DatePreset[];
714
+ /** Corner alignment of the dropdown relative to the input. */
715
+ placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';
716
+ /** Controlled visibility of the dropdown. */
717
+ open?: boolean;
718
+ /** Called when the dropdown opens or closes. */
719
+ onOpenChange?: (open: boolean) => void;
720
+ /** Called when the panel closes after an outside click (blur semantics). */
721
+ onBlur?: () => void;
722
+ /** When true, the field shows text only; otherwise the input is editable. */
723
+ inputReadOnly?: boolean;
724
+ }
725
+ /** Props for selecting a start and end date (optional time) in one control. */
726
+ interface RangePickerProps extends BaseComponentProps, InteractiveProps, SizableProps {
727
+ /** Controlled range; null entries mean that end is not set yet. */
728
+ value?: [Date | null, Date | null];
729
+ /** Initial range when uncontrolled. */
730
+ defaultValue?: [Date, Date];
731
+ /** Called when the range changes; includes formatted strings for both ends. */
732
+ onChange?: (dates: [Date | null, Date | null], dateStrings: [string, string]) => void;
733
+ /** Placeholders for start and end inputs. */
734
+ placeholder?: [string, string];
735
+ /** Display format for both values. */
736
+ format?: string;
737
+ /** Enable time columns for both ends; object passes ShowTimeConfig. */
738
+ showTime?: boolean | ShowTimeConfig;
739
+ /** When true, show a clear control when either end has a value. */
740
+ allowClear?: boolean;
741
+ /** Return true to disable specific calendar days. */
742
+ disabledDate?: (date: Date) => boolean;
743
+ /** Sidebar shortcuts; tuple values apply as full range, single dates duplicate to range. */
744
+ presets?: DatePreset[];
745
+ /** Node between start and end display (default arrow). */
746
+ separator?: React__default.ReactNode;
747
+ /** Corner alignment of the range dropdown. */
748
+ placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';
749
+ /** Controlled visibility of the dropdown. */
750
+ open?: boolean;
751
+ /** Called when the dropdown opens or closes. */
752
+ onOpenChange?: (open: boolean) => void;
753
+ }
754
+ /**
755
+ * Single-date (or month/year) picker with optional time, presets, and typed input.
756
+ * Dropdown placement, open state, and today/now actions are configurable.
757
+ *
758
+ * @default placeholder - `'Select date'`
759
+ * @default picker - `'date'`
760
+ * @default showTime - `false`
761
+ * @default showToday - `true`
762
+ * @default showNow - `false`
763
+ * @default allowClear - `true`
764
+ * @default placement - `'bottomLeft'`
765
+ * @default inputReadOnly - `false`
766
+ */
767
+ declare function DatePicker({ value, defaultValue, onChange, onCalendarChange, placeholder, format: formatProp, picker, showTime, showToday, showNow, allowClear, disabledDate, presets, disabled: disabledProp, loading, size: sizeProp, placement, open: openProp, onOpenChange, onBlur, inputReadOnly, className, style, unstyled, }: DatePickerProps): react_jsx_runtime.JSX.Element;
768
+ /**
769
+ * Two-month range selector with optional time columns and preset shortcuts.
770
+ * Commits the range after the second date is chosen (or OK when time is enabled).
771
+ *
772
+ * @default placeholder - `['Start date', 'End date']`
773
+ * @default showTime - `false`
774
+ * @default allowClear - `true`
775
+ * @default separator - `'→'`
776
+ * @default placement - `'bottomLeft'`
777
+ */
778
+ declare function RangePicker({ value, defaultValue, onChange, placeholder, format: formatProp, showTime, allowClear, disabledDate, presets, separator, disabled: disabledProp, loading, size: sizeProp, placement, open: openProp, onOpenChange, className, style, unstyled, }: RangePickerProps): react_jsx_runtime.JSX.Element;
779
+
780
+ /** Props for a single time value picked via scroll columns and optional Now/Clear. */
781
+ interface TimePickerProps extends BaseComponentProps, InteractiveProps, SizableProps {
782
+ /** Controlled time string matching the active format. */
783
+ value?: string;
784
+ /** Initial time when uncontrolled. */
785
+ defaultValue?: string;
786
+ /** Placeholder when the value is empty. */
787
+ placeholder?: string;
788
+ /** Display format (HH/hh, mm, ss, A for 12h). */
789
+ format?: string;
790
+ /** When true, use 12-hour clock with AM/PM column. */
791
+ use12Hours?: boolean;
792
+ /** Step between hour values in the scroller. */
793
+ hourStep?: number;
794
+ /** Step between minute values in the scroller. */
795
+ minuteStep?: number;
796
+ /** Step between second values in the scroller. */
797
+ secondStep?: number;
798
+ /** When true, show the seconds column. */
799
+ showSecond?: boolean;
800
+ /** When true, show a Now button that sets current time and closes. */
801
+ showNow?: boolean;
802
+ /** When true, show a clear control when a value exists. */
803
+ allowClear?: boolean;
804
+ /** Hour values to disable in the hour column. */
805
+ disabledHours?: () => number[];
806
+ /** Minute values to disable for the given hour. */
807
+ disabledMinutes?: (hour: number) => number[];
808
+ /** Second values to disable for the given hour and minute. */
809
+ disabledSeconds?: (hour: number, minute: number) => number[];
810
+ /** Called when the time string changes. */
811
+ onChange?: (timeString: string) => void;
812
+ /** Called when the dropdown opens or closes. */
813
+ onOpenChange?: (open: boolean) => void;
814
+ /** Controlled visibility of the dropdown. */
815
+ open?: boolean;
816
+ /** Reserved for read-only input behavior (currently unused in markup). */
817
+ inputReadOnly?: boolean;
818
+ /**
819
+ * Accessible name for the `role="combobox"` trigger. Wrapping the styled
820
+ * trigger in a `<label>` does not associate (the trigger is not a form
821
+ * element), so `aria-label` / `aria-labelledby` is the supported way to
822
+ * give the control a name. Required for axe `aria-input-field-name`.
823
+ */
824
+ 'aria-label'?: string;
825
+ /** Id(s) of the element(s) that label the trigger. Mirrors `aria-label`. */
826
+ 'aria-labelledby'?: string;
827
+ }
828
+ /** Props for two side-by-side TimePicker panels as a start/end range. */
829
+ interface TimeRangePickerProps extends BaseComponentProps, InteractiveProps, SizableProps {
830
+ /** Controlled start and end time strings. */
831
+ value?: [string, string];
832
+ /** Initial range when uncontrolled. */
833
+ defaultValue?: [string, string];
834
+ /** Placeholders for start and end fields. */
835
+ placeholder?: [string, string];
836
+ /** Shared display format for both pickers. */
837
+ format?: string;
838
+ /** When true, both panels use 12-hour mode. */
839
+ use12Hours?: boolean;
840
+ /** Shared hour step for both panels. */
841
+ hourStep?: number;
842
+ /** Shared minute step for both panels. */
843
+ minuteStep?: number;
844
+ /** Shared second step for both panels. */
845
+ secondStep?: number;
846
+ /** When true, show seconds on both panels. */
847
+ showSecond?: boolean;
848
+ /** When true, show a clear control when either side has a value. */
849
+ allowClear?: boolean;
850
+ /** Node between start and end labels. */
851
+ separator?: React__default.ReactNode;
852
+ /** Called when either start or end time changes. */
853
+ onChange?: (timeStrings: [string, string]) => void;
854
+ /** Called when the combined dropdown opens or closes. */
855
+ onOpenChange?: (open: boolean) => void;
856
+ /** Controlled visibility of the range dropdown. */
857
+ open?: boolean;
858
+ }
859
+ /**
860
+ * Scroll-column time picker with optional 12h mode, disabled slots, and Now/Clear.
861
+ * Value is a formatted string; format defaults from use12Hours and showSecond.
862
+ *
863
+ * @default placeholder - `'Select time'`
864
+ * @default use12Hours - `false`
865
+ * @default hourStep - `1`
866
+ * @default minuteStep - `1`
867
+ * @default secondStep - `1`
868
+ * @default showSecond - `true`
869
+ * @default showNow - `true`
870
+ * @default allowClear - `true`
871
+ * @default inputReadOnly - `false`
872
+ */
873
+ declare function TimePicker({ value, defaultValue, placeholder, format: formatProp, use12Hours, hourStep, minuteStep, secondStep, showSecond, showNow, allowClear, disabledHours, disabledMinutes, disabledSeconds, disabled: disabledProp, loading, size: sizeProp, onChange, onOpenChange, open: openProp, inputReadOnly: _inputReadOnly, className, style, unstyled, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, }: TimePickerProps): react_jsx_runtime.JSX.Element;
874
+ /**
875
+ * Range control hosting two TimePicker instances for independent start and end times.
876
+ * Shares format, steps, and 12h setting; inner panels stay open while the range is open.
877
+ *
878
+ * @default placeholder - `['Start', 'End']`
879
+ * @default use12Hours - `false`
880
+ * @default hourStep - `1`
881
+ * @default minuteStep - `1`
882
+ * @default secondStep - `1`
883
+ * @default showSecond - `true`
884
+ * @default allowClear - `true`
885
+ * @default separator - `'→'`
886
+ */
887
+ declare function TimeRangePicker({ value, defaultValue, placeholder, format: formatProp, use12Hours, hourStep, minuteStep, secondStep, showSecond, allowClear, separator, disabled: disabledProp, loading, size: sizeProp, onChange, onOpenChange, open: openProp, className, style, unstyled, }: TimeRangePickerProps): react_jsx_runtime.JSX.Element;
888
+
889
+ /** Suggestion row shown in the AutoComplete dropdown. */
890
+ interface AutoCompleteOption {
891
+ /** Text shown in the list; also used for client-side filtering. */
892
+ label: string;
893
+ /** Value written to the input when the row is chosen. */
894
+ value: string;
895
+ }
896
+ /** Props for text input with filtered suggestions and optional callbacks. */
897
+ interface AutoCompleteProps extends BaseComponentProps, InteractiveProps, SizableProps {
898
+ /** Controlled input value. */
899
+ value?: string;
900
+ /** Initial value when uncontrolled. */
901
+ defaultValue?: string;
902
+ /** Suggestion list; filtered by label against current input. */
903
+ options: AutoCompleteOption[];
904
+ /** Input placeholder text. */
905
+ placeholder?: string;
906
+ /** Called when the typed value changes. */
907
+ onChange?: (value: string) => void;
908
+ /** Called on each change with the current query string. */
909
+ onSearch?: (query: string) => void;
910
+ /** Called when a suggestion is picked from the list. */
911
+ onSelect?: (value: string, option: AutoCompleteOption) => void;
912
+ /** Called when the input loses focus. */
913
+ onBlur?: () => void;
914
+ }
915
+ /**
916
+ * Text field with a dropdown of options filtered as the user types.
917
+ * Opens the list on focus and filters by option label (case-insensitive).
918
+ */
919
+ declare function AutoComplete({ value, defaultValue, options, placeholder, disabled: disabledProp, loading, size: sizeProp, onChange, onSearch, onSelect, onBlur, className, style, unstyled, }: AutoCompleteProps): react_jsx_runtime.JSX.Element;
920
+
921
+ /** Props for the Slider component. */
922
+ interface SliderProps extends BaseComponentProps, InteractiveProps {
923
+ /** Controlled value within min and max. */
924
+ value?: number;
925
+ /** Uncontrolled initial value. @default 0 */
926
+ defaultValue?: number;
927
+ /** Minimum selectable value. @default 0 */
928
+ min?: number;
929
+ /** Maximum selectable value. @default 100 */
930
+ max?: number;
931
+ /** Increment between valid values. @default 1 */
932
+ step?: number;
933
+ /** Called when the value changes via pointer or keyboard. */
934
+ onChange?: (value: number) => void;
935
+ }
936
+ /** Horizontal slider for picking a number between min and max with keyboard support. */
937
+ declare function Slider({ value, defaultValue, min, max, step, disabled: disabledProp, onChange, className, style, unstyled, }: SliderProps): react_jsx_runtime.JSX.Element;
938
+
939
+ /** Props for the Rate component. */
940
+ interface RateProps extends BaseComponentProps, InteractiveProps {
941
+ /** Controlled rating value. */
942
+ value?: number;
943
+ /** Uncontrolled initial rating. @default 0 */
944
+ defaultValue?: number;
945
+ /** Number of rating symbols. @default 5 */
946
+ count?: number;
947
+ /** Allows selecting half steps between stars. */
948
+ allowHalf?: boolean;
949
+ /** Custom node rendered for each rating symbol. @default '★' */
950
+ character?: React__default.ReactNode;
951
+ /** Called when the rating value changes. */
952
+ onChange?: (value: number) => void;
953
+ }
954
+ /** Star-style rating with hover preview, half steps, and keyboard adjustment. */
955
+ declare function Rate({ value, defaultValue, count, disabled: disabledProp, allowHalf, character, onChange, className, style, unstyled, }: RateProps): react_jsx_runtime.JSX.Element;
956
+
957
+ /** File entry shown in the upload list after selection or simulated progress. */
958
+ interface UploadFile {
959
+ /** Stable unique id for list keys and remove callbacks. */
960
+ uid: string;
961
+ /** Display file name. */
962
+ name: string;
963
+ /** File size in bytes. */
964
+ size: number;
965
+ /** Visual state in the file list row. */
966
+ status: 'uploading' | 'done' | 'error';
967
+ }
968
+ /** Props for the file picker trigger, optional custom trigger, and file list UI. */
969
+ interface UploadProps extends BaseComponentProps, InteractiveProps {
970
+ /** Passed to the hidden `<input type="file">` accept attribute. */
971
+ accept?: string;
972
+ /** Allows selecting more than one file per dialog when supported. */
973
+ multiple?: boolean;
974
+ /** Files to render in the list below the trigger. @default [] */
975
+ fileList?: UploadFile[];
976
+ /** Caps how many new files are passed to `onUpload` relative to current list length. */
977
+ maxCount?: number;
978
+ /** Called with chosen files after the user confirms the native picker. */
979
+ onUpload?: (files: File[]) => void;
980
+ /** Called when the user removes a completed or errored list item. */
981
+ onRemove?: (file: UploadFile) => void;
982
+ /** Custom trigger; defaults to a primary Upload button. */
983
+ children?: React__default.ReactNode;
984
+ }
985
+ /**
986
+ * Hidden file input with a clickable trigger and optional controlled file list with remove actions.
987
+ */
988
+ declare function Upload({ accept, multiple, disabled: disabledProp, loading, fileList, maxCount, onUpload, onRemove, children, className, style, unstyled, }: UploadProps): react_jsx_runtime.JSX.Element;
989
+
990
+ /** Visual variant for notification styling and icon. */
991
+ type NotificationType = 'success' | 'error' | 'warning' | 'info';
992
+ /** Options passed to `notification.open` and shorthand helpers. */
993
+ interface NotificationConfig {
994
+ /** Notification style variant; defaults to `info` when omitted in the card. */
995
+ type?: NotificationType;
996
+ /** Primary line of text (title). */
997
+ message: React__default.ReactNode;
998
+ /** Optional secondary detail below the message. */
999
+ description?: React__default.ReactNode;
1000
+ /** Auto-dismiss delay in ms; `0` disables auto-close. */
1001
+ duration?: number;
1002
+ /** Stable id for deduplication; a generated id is used if omitted. */
1003
+ key?: string;
1004
+ /** Called after the notification is removed (manual or auto). */
1005
+ onClose?: () => void;
1006
+ /** Corner stack this toast belongs to; must match a mounted container. */
1007
+ placement?: 'topRight' | 'topLeft' | 'bottomRight' | 'bottomLeft';
1008
+ }
1009
+ declare const notification: {
1010
+ open: (config: NotificationConfig) => void;
1011
+ success: (message: React__default.ReactNode, description?: React__default.ReactNode) => void;
1012
+ error: (message: React__default.ReactNode, description?: React__default.ReactNode) => void;
1013
+ warning: (message: React__default.ReactNode, description?: React__default.ReactNode) => void;
1014
+ info: (message: React__default.ReactNode, description?: React__default.ReactNode) => void;
1015
+ destroy: () => void;
1016
+ };
1017
+ /** Props for the region that renders toasts for one corner placement. */
1018
+ interface NotificationContainerProps extends BaseComponentProps {
1019
+ /** Which corner this container listens to; filters incoming notifications. @default 'topRight' */
1020
+ placement?: 'topRight' | 'topLeft' | 'bottomRight' | 'bottomLeft';
1021
+ }
1022
+ /**
1023
+ * Subscribes to the global notification store and renders matching toasts.
1024
+ * Mount one instance per `placement` you use (typically in app root).
1025
+ */
1026
+ declare function NotificationContainer({ placement, unstyled, }: NotificationContainerProps): react_jsx_runtime.JSX.Element | null;
1027
+
1028
+ /** Props for the slide-in drawer panel. */
1029
+ interface DrawerProps extends BaseComponentProps {
1030
+ /** When `true`, the drawer is visible. */
1031
+ open: boolean;
1032
+ /** Called when the drawer should close (Escape, mask, or close button). */
1033
+ onClose: () => void;
1034
+ /** Optional header content next to the close control. */
1035
+ title?: React__default.ReactNode;
1036
+ /** Main drawer body content. */
1037
+ children?: React__default.ReactNode;
1038
+ /** Optional footer region (e.g. actions). */
1039
+ footer?: React__default.ReactNode;
1040
+ /** Edge from which the panel enters. @default 'right' */
1041
+ placement?: 'left' | 'right' | 'top' | 'bottom';
1042
+ /** Width for left/right placement (CSS length or pixels). @default 378 */
1043
+ width?: number | string;
1044
+ /** Height for top/bottom placement (CSS length or pixels). @default 378 */
1045
+ height?: number | string;
1046
+ /** When `true`, shows a header close button. @default true */
1047
+ closable?: boolean;
1048
+ /** When `true`, renders a dimmed mask behind the panel. @default true */
1049
+ mask?: boolean;
1050
+ /** When `true`, clicking the mask calls `onClose`. @default true */
1051
+ maskClosable?: boolean;
1052
+ }
1053
+ /**
1054
+ * Side panel drawer with optional mask, placement transitions, and focus trap.
1055
+ * Horizontal placement uses `width`; vertical uses `height`.
1056
+ */
1057
+ declare function Drawer({ open, onClose, title, children, footer, placement, width, height, closable, mask, maskClosable, className, style, unstyled, }: DrawerProps): react_jsx_runtime.JSX.Element | null;
1058
+
1059
+ /** Props for the confirmation bubble anchored to a trigger element. */
1060
+ interface PopconfirmProps extends BaseComponentProps {
1061
+ /** Main confirmation question or summary. */
1062
+ title: React__default.ReactNode;
1063
+ /** Optional supporting text below the title. */
1064
+ description?: React__default.ReactNode;
1065
+ /** Called when the user confirms. */
1066
+ onConfirm?: () => void;
1067
+ /** Called when the user cancels or dismisses without confirming. */
1068
+ onCancel?: () => void;
1069
+ /** Label for the confirm action button. @default 'Yes' */
1070
+ okText?: string;
1071
+ /** Label for the cancel action button. @default 'No' */
1072
+ cancelText?: string;
1073
+ /** Popover position relative to the trigger. @default 'top' */
1074
+ placement?: 'top' | 'bottom' | 'left' | 'right';
1075
+ /** Single React element that opens the popconfirm on click. */
1076
+ children: React__default.ReactElement;
1077
+ /** When `true`, the trigger does not open the popconfirm. */
1078
+ disabled?: boolean;
1079
+ }
1080
+ /**
1081
+ * Lightweight confirm dialog on click: wraps a trigger and shows OK/Cancel.
1082
+ * Closes on outside click or after confirm/cancel.
1083
+ */
1084
+ declare function Popconfirm({ title, description, onConfirm, onCancel, okText: okTextProp, cancelText: cancelTextProp, placement, children, disabled, className, unstyled, }: PopconfirmProps): react_jsx_runtime.JSX.Element;
1085
+
1086
+ /** Props for the Badge component (count, dot, or status ribbon). */
1087
+ interface BadgeProps extends BaseComponentProps, SizableProps {
1088
+ /** Numeric value shown in the badge; hidden when zero unless `showZero`. */
1089
+ count?: number;
1090
+ /** Renders a small dot indicator instead of a numeric count. */
1091
+ dot?: boolean;
1092
+ /** Maximum count before showing `{overflowCount}+`. @default 99 */
1093
+ overflowCount?: number;
1094
+ /** When true, shows the badge even when `count` is zero. */
1095
+ showZero?: boolean;
1096
+ /** Custom background color for the dot or count (CSS color). */
1097
+ color?: string;
1098
+ /** Preset status style for standalone status badges. */
1099
+ status?: 'success' | 'error' | 'warning' | 'processing' | 'default';
1100
+ /** Text shown next to the status dot when `status` is set. */
1101
+ text?: React__default.ReactNode;
1102
+ /** Pixel offset `[right, top]` for the dot or count position. */
1103
+ offset?: [number, number];
1104
+ /** Wrapped trigger element (e.g. icon or avatar). */
1105
+ children?: React__default.ReactNode;
1106
+ }
1107
+ /**
1108
+ * Displays a notification count, dot, or status label on a child element.
1109
+ */
1110
+ declare function Badge({ count, dot, overflowCount, showZero, color, status, text, offset, children, className, style, unstyled, }: BadgeProps): react_jsx_runtime.JSX.Element;
1111
+
1112
+ /** Props for the Tag component (label with optional close control). */
1113
+ interface TagProps extends BaseComponentProps, SizableProps {
1114
+ /** Preset semantic color or any CSS color string for custom tags. @default 'default' */
1115
+ color?: 'default' | 'success' | 'error' | 'warning' | 'processing' | string;
1116
+ /** Shows a close control when true. */
1117
+ closable?: boolean;
1118
+ /** Called when the close control is activated. */
1119
+ onClose?: () => void;
1120
+ /** Whether to show a border around the tag. @default true */
1121
+ bordered?: boolean;
1122
+ /** Tag label content. */
1123
+ children: React__default.ReactNode;
1124
+ }
1125
+ /**
1126
+ * Inline label tag with optional preset colors and closable behavior.
1127
+ */
1128
+ declare function Tag({ color, closable, onClose, bordered, children, className, style, unstyled, }: TagProps): react_jsx_runtime.JSX.Element;
1129
+
1130
+ /** Props for the Avatar component (image, icon, or text fallback). */
1131
+ interface AvatarProps extends BaseComponentProps {
1132
+ /** Image URL when displaying a photo avatar. */
1133
+ src?: string;
1134
+ /** Alt text for the image when `src` is set. */
1135
+ alt?: string;
1136
+ /** Accessible name for the avatar when there is no visible text. */
1137
+ 'aria-label'?: string;
1138
+ /** Width/height in px (number) or preset size token. */
1139
+ size?: SizeType | number;
1140
+ /** Outer shape of the avatar. @default 'circle' */
1141
+ shape?: 'circle' | 'square';
1142
+ /** Icon node shown when `src` is omitted. */
1143
+ icon?: React__default.ReactNode;
1144
+ /** Text or initials shown when neither `src` nor `icon` is set. */
1145
+ children?: React__default.ReactNode;
1146
+ }
1147
+ /**
1148
+ * Renders a user avatar from an image URL, icon, or text content.
1149
+ */
1150
+ declare function Avatar({ src, alt, 'aria-label': ariaLabel, size: sizeProp, shape, icon, children, className, style, unstyled, }: AvatarProps): react_jsx_runtime.JSX.Element;
1151
+
1152
+ /** One segment in the breadcrumb trail. */
1153
+ interface BreadcrumbItem {
1154
+ /** Segment label or custom content. */
1155
+ title: React__default.ReactNode;
1156
+ /** When set, the segment renders as a link with this URL. */
1157
+ href?: string;
1158
+ /** Invoked on click; prevents navigation when `href` is also set. */
1159
+ onClick?: () => void;
1160
+ }
1161
+ /** Props for the breadcrumb navigation list. */
1162
+ interface BreadcrumbProps extends BaseComponentProps {
1163
+ /** Ordered trail from root to current location. */
1164
+ items: BreadcrumbItem[];
1165
+ /** Node rendered between segments. @default '/' */
1166
+ separator?: React__default.ReactNode;
1167
+ }
1168
+ /** Renders a breadcrumb trail with optional links, custom separators, and current-page styling. */
1169
+ declare function Breadcrumb({ items, separator, className, style, unstyled, }: BreadcrumbProps): react_jsx_runtime.JSX.Element;
1170
+
1171
+ /** Props for page navigation, optional total text, page size, and quick jump. */
1172
+ interface PaginationProps extends BaseComponentProps {
1173
+ /** Current page number (1-based). */
1174
+ current: number;
1175
+ /** Total number of records across all pages. */
1176
+ total: number;
1177
+ /** Number of items per page. @default 10 */
1178
+ pageSize?: number;
1179
+ /** Called when the user selects a different page. */
1180
+ onChange?: (page: number) => void;
1181
+ /** Called when the user picks a new value from the size changer. */
1182
+ onPageSizeChange?: (size: number) => void;
1183
+ /** Renders total count text, or a custom node from total and visible range. */
1184
+ showTotal?: boolean | ((total: number, range: [number, number]) => React__default.ReactNode);
1185
+ /** Disables all controls; falls back to ConfigProvider when omitted. */
1186
+ disabled?: boolean;
1187
+ /** Renders prev/next with current/total only, hiding page numbers. */
1188
+ simple?: boolean;
1189
+ /** Shows a select to change `pageSize`. */
1190
+ showSizeChanger?: boolean;
1191
+ /** Options for the page size select. @default [10, 20, 50, 100] */
1192
+ pageSizeOptions?: number[];
1193
+ /** Shows an input to jump to a page by number. */
1194
+ showQuickJumper?: boolean;
1195
+ }
1196
+ /**
1197
+ * Page controls with numbered pages, ellipsis folding, and optional size changer and jumper.
1198
+ * Clamps the current page into valid range for the given total and page size.
1199
+ */
1200
+ declare function Pagination({ current, total, pageSize, onChange, onPageSizeChange, showTotal, disabled: disabledProp, simple, showSizeChanger, pageSizeOptions, showQuickJumper, className, style, unstyled, }: PaginationProps): react_jsx_runtime.JSX.Element;
1201
+
1202
+ /** One entry in the dropdown menu: action row or non-interactive divider. */
1203
+ interface DropdownItem {
1204
+ /** Unique key passed to `onSelect` when the row is activated. */
1205
+ key: string;
1206
+ /** Visible menu row content. */
1207
+ label: React__default.ReactNode;
1208
+ /** When true, the row cannot be selected. */
1209
+ disabled?: boolean;
1210
+ /** When true, styles the row as a destructive action. */
1211
+ danger?: boolean;
1212
+ /** When true, renders a separator instead of a selectable row. */
1213
+ divider?: boolean;
1214
+ }
1215
+ /** Props for the trigger + anchored menu dropdown. */
1216
+ interface DropdownProps extends BaseComponentProps {
1217
+ /** Menu rows and optional dividers. */
1218
+ items: DropdownItem[];
1219
+ /** Called with the item `key` after a successful selection. */
1220
+ onSelect?: (key: string) => void;
1221
+ /** Opens the menu on click or hover. @default 'hover' */
1222
+ trigger?: 'click' | 'hover';
1223
+ /** Menu position relative to the trigger. @default 'bottomLeft' */
1224
+ placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';
1225
+ /** When true, ignores open/close and selection; uses ConfigProvider when omitted. */
1226
+ disabled?: boolean;
1227
+ /** Element rendered as the menu trigger. */
1228
+ children: React__default.ReactElement;
1229
+ }
1230
+ /**
1231
+ * Anchored menu opened by hover or click, with keyboard support and outside-click close.
1232
+ * Styled variant uses a slide transition; unstyled variant renders a minimal structure.
1233
+ */
1234
+ declare function Dropdown({ items, onSelect, trigger, placement, disabled: disabledProp, children, className, unstyled, }: DropdownProps): react_jsx_runtime.JSX.Element;
1235
+
1236
+ /** Props for the Progress bar or circular progress indicator. */
1237
+ interface ProgressProps extends BaseComponentProps, SizableProps {
1238
+ /** Completion value from 0 to 100 (clamped). */
1239
+ percent: number;
1240
+ /** Renders a horizontal bar or circular SVG progress. @default 'line' */
1241
+ type?: 'line' | 'circle';
1242
+ /** Visual state; `normal` becomes success at 100%. @default 'normal' */
1243
+ status?: 'normal' | 'success' | 'error' | 'active';
1244
+ /** Shows percentage text next to or inside the indicator. @default true */
1245
+ showInfo?: boolean;
1246
+ /** Bar or circle stroke thickness in pixels. */
1247
+ strokeWidth?: number;
1248
+ /** Custom color for the filled portion of the progress. */
1249
+ strokeColor?: string;
1250
+ /** SVG width/height for circle type. @default 120 */
1251
+ width?: number;
1252
+ }
1253
+ /**
1254
+ * Displays task completion as a line or circle, with optional percentage label.
1255
+ */
1256
+ declare function Progress({ percent, type, status, showInfo, strokeWidth, strokeColor, size: sizeProp, width, className, style, unstyled, }: ProgressProps): react_jsx_runtime.JSX.Element;
1257
+
1258
+ /** Single menu entry: leaf item, submenu, group heading, or divider. */
1259
+ interface MenuItem {
1260
+ /** Unique key for selection and open-state tracking. */
1261
+ key: string;
1262
+ /** Visible label or custom node. */
1263
+ label: ReactNode;
1264
+ /** Optional icon shown before the label. */
1265
+ icon?: ReactNode;
1266
+ /** When true, the item cannot be activated. */
1267
+ disabled?: boolean;
1268
+ /** When true, styles the item as a destructive action. */
1269
+ danger?: boolean;
1270
+ /** Nested items for a submenu; omit for a leaf. */
1271
+ children?: MenuItem[];
1272
+ /** Renders as a titled group or a non-interactive divider. */
1273
+ type?: 'group' | 'divider';
1274
+ }
1275
+ /** Props for the hierarchical menu with optional inline, horizontal, or vertical layout. */
1276
+ interface MenuProps extends BaseComponentProps, SizableProps {
1277
+ /** Top-level menu items (may include groups and nested submenus). */
1278
+ items: MenuItem[];
1279
+ /** Layout and interaction mode for the root menu. @default 'vertical' */
1280
+ mode?: 'vertical' | 'horizontal' | 'inline';
1281
+ /** Controlled list of selected item keys. */
1282
+ selectedKeys?: string[];
1283
+ /** Initial selected keys when `selectedKeys` is not set. @default [] */
1284
+ defaultSelectedKeys?: string[];
1285
+ /** Controlled list of keys for expanded inline submenus. */
1286
+ openKeys?: string[];
1287
+ /** Initial open submenu keys when `openKeys` is not set. @default [] */
1288
+ defaultOpenKeys?: string[];
1289
+ /** Called after the user selects a leaf item. */
1290
+ onSelect?: (info: {
1291
+ key: string;
1292
+ selectedKeys: string[];
1293
+ }) => void;
1294
+ /** Called when inline submenu expand/collapse state changes. */
1295
+ onOpenChange?: (openKeys: string[]) => void;
1296
+ /** Collapses inline mode to icons only at the root level. @default false */
1297
+ inlineCollapsed?: boolean;
1298
+ /** Built-in color scheme for styled menus. @default 'light' */
1299
+ theme?: 'light' | 'dark';
1300
+ }
1301
+ /**
1302
+ * Renders an accessible menu tree with support for groups, dividers, and nested submenus.
1303
+ * Supports controlled or uncontrolled selection and open keys.
1304
+ */
1305
+ declare function Menu({ items, mode, selectedKeys, defaultSelectedKeys, openKeys, defaultOpenKeys, onSelect, onOpenChange, inlineCollapsed, theme, className, style, unstyled, }: MenuProps): react_jsx_runtime.JSX.Element;
1306
+
1307
+ /** Single collapsible section: header, body, and optional metadata. */
1308
+ interface CollapseItem {
1309
+ /** Unique key used for selection state and toggling. */
1310
+ key: string;
1311
+ /** Header content shown in the panel trigger. */
1312
+ label: ReactNode;
1313
+ /** Body content revealed when the panel is expanded. */
1314
+ children: ReactNode;
1315
+ /** Optional content rendered beside the header (e.g. actions). */
1316
+ extra?: ReactNode;
1317
+ /** When `false`, hides the expand/collapse arrow. */
1318
+ showArrow?: boolean;
1319
+ /** When `true`, the panel cannot be toggled. */
1320
+ disabled?: boolean;
1321
+ }
1322
+ /** Props for the vertical accordion-style collapse list. */
1323
+ interface CollapseProps extends BaseComponentProps, SizableProps {
1324
+ /** Panels to render, each with a stable `key`. */
1325
+ items: CollapseItem[];
1326
+ /** Controlled open keys; when set, overrides internal state. */
1327
+ activeKey?: string | string[];
1328
+ /** Initial open keys when uncontrolled. */
1329
+ defaultActiveKey?: string | string[];
1330
+ /** Called after the open set changes (controlled or uncontrolled). */
1331
+ onChange?: (activeKey: string[]) => void;
1332
+ /** When `true`, only one panel may be open at a time. @default false */
1333
+ accordion?: boolean;
1334
+ /** When `true`, draws a border around the collapse container. @default true */
1335
+ bordered?: boolean;
1336
+ /** Placement of the expand icon relative to the header text. @default 'start' */
1337
+ expandIconPosition?: 'start' | 'end';
1338
+ /** Transparent style without panel background borders. @default false */
1339
+ ghost?: boolean;
1340
+ }
1341
+ /**
1342
+ * Renders an expandable list of panels with optional accordion mode and styled or unstyled markup.
1343
+ */
1344
+ declare function Collapse({ items, activeKey, defaultActiveKey, onChange, accordion, bordered, expandIconPosition, ghost, size: sizeProp, className, style, unstyled, }: CollapseProps): react_jsx_runtime.JSX.Element;
1345
+
1346
+ /** Props for a color swatch trigger with saturation/hue panel and optional presets. */
1347
+ interface ColorPickerProps extends BaseComponentProps, InteractiveProps, SizableProps {
1348
+ /** Controlled color as hex (#rrggbb) or rgb(...) string matching parse rules. */
1349
+ value?: string;
1350
+ /** Initial color when uncontrolled. */
1351
+ defaultValue?: string;
1352
+ /** Called when the color changes; receives string in the active format prop. */
1353
+ onChange?: (color: string) => void;
1354
+ /** Optional grouped preset swatches (label + color strings). */
1355
+ presets?: Array<{
1356
+ label: string;
1357
+ colors: string[];
1358
+ }>;
1359
+ /** When true, show formatted text; when a function, render custom node beside swatch. */
1360
+ showText?: boolean | ((color: string) => ReactNode);
1361
+ /** String format used for display and onChange payload. */
1362
+ format?: 'hex' | 'rgb';
1363
+ /** Whether the panel opens on click or on hover (with a short leave delay). */
1364
+ trigger?: 'click' | 'hover';
1365
+ /** Controlled open state of the picker panel. */
1366
+ open?: boolean;
1367
+ /** Called when the panel opens or closes. */
1368
+ onOpenChange?: (open: boolean) => void;
1369
+ /**
1370
+ * Accessible name for the trigger button. The trigger only shows a color
1371
+ * swatch (and optional `showText`), so without a programmatic name axe
1372
+ * `button-name` flags the control. Provide either `aria-label` or
1373
+ * `aria-labelledby`; if `showText` renders text, that text is enough.
1374
+ */
1375
+ 'aria-label'?: string;
1376
+ /** Id(s) of the element(s) that label the trigger. Mirrors `aria-label`. */
1377
+ 'aria-labelledby'?: string;
1378
+ }
1379
+ /**
1380
+ * Color picker with saturation/value square, hue strip, text input, and optional presets.
1381
+ * Supports click or hover trigger and controlled or internal open state.
1382
+ *
1383
+ * @default format - `'hex'`
1384
+ * @default trigger - `'click'`
1385
+ */
1386
+ declare function ColorPicker({ value, defaultValue, onChange, presets, showText, size: sizeProp, disabled: disabledProp, format, trigger, open: controlledOpen, onOpenChange, className, style, unstyled, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
1387
+
1388
+ /** Props for the Empty state component. */
1389
+ interface EmptyProps extends BaseComponentProps {
1390
+ /** Illustration or icon above the description; uses built-in art when omitted. */
1391
+ image?: React__default.ReactNode;
1392
+ /** Message below the image; defaults to "No Data" when undefined, hidden when null. */
1393
+ description?: React__default.ReactNode;
1394
+ /** Optional footer actions or supplementary content. */
1395
+ children?: React__default.ReactNode;
1396
+ }
1397
+ /**
1398
+ * Presents a no-data state with optional image, description, and footer slot.
1399
+ */
1400
+ declare function Empty({ image, description, children, className, style, unstyled, }: EmptyProps): react_jsx_runtime.JSX.Element;
1401
+
1402
+ /** Props for the Result feedback page (status, title, and optional actions). */
1403
+ interface ResultProps extends BaseComponentProps {
1404
+ /** Outcome type controlling default icon and styling. */
1405
+ status: 'success' | 'error' | 'info' | 'warning' | '404' | '403' | '500';
1406
+ /** Primary heading for the result. */
1407
+ title: React__default.ReactNode;
1408
+ /** Secondary explanatory text below the title. */
1409
+ subTitle?: React__default.ReactNode;
1410
+ /** Replaces the default icon for the given `status`. */
1411
+ icon?: React__default.ReactNode;
1412
+ /** Actions or buttons shown below the titles (e.g. primary CTA). */
1413
+ extra?: React__default.ReactNode;
1414
+ /** Additional body content below `extra`. */
1415
+ children?: React__default.ReactNode;
1416
+ }
1417
+ /**
1418
+ * Full-page or section result layout with preset icons for common HTTP and feedback states.
1419
+ */
1420
+ declare function Result({ status, title, subTitle, icon, extra, children, className, style, unstyled, }: ResultProps): react_jsx_runtime.JSX.Element;
1421
+
1422
+ /** Props for the Skeleton loading placeholder layout. */
1423
+ interface SkeletonProps extends BaseComponentProps {
1424
+ /** Enables a shimmering animation on placeholders. @default false */
1425
+ active?: boolean;
1426
+ /** Shows an avatar block; pass an object for `size` and `shape`. */
1427
+ avatar?: boolean | {
1428
+ size?: number;
1429
+ shape?: 'circle' | 'square';
1430
+ };
1431
+ /** Shows a title bar; pass an object for custom `width`. @default true */
1432
+ title?: boolean | {
1433
+ width?: number | string;
1434
+ };
1435
+ /** Shows paragraph lines; pass an object for `rows` and per-line `width`. @default true */
1436
+ paragraph?: boolean | {
1437
+ rows?: number;
1438
+ width?: Array<number | string>;
1439
+ };
1440
+ /** When false, renders `children` instead of the skeleton. @default true */
1441
+ loading?: boolean;
1442
+ /** Real content shown when `loading` is false. */
1443
+ children?: React__default.ReactNode;
1444
+ }
1445
+ /**
1446
+ * Placeholder UI while content loads; supports avatar, title, and paragraph blocks.
1447
+ */
1448
+ declare function Skeleton({ active, avatar, title, paragraph, loading, children, className, style, unstyled, }: SkeletonProps): react_jsx_runtime.JSX.Element;
1449
+
1450
+ type SegmentedOption = string | {
1451
+ label: React__default.ReactNode;
1452
+ value: string;
1453
+ icon?: React__default.ReactNode;
1454
+ disabled?: boolean;
1455
+ };
1456
+ /** Props for a horizontal group of mutually exclusive segment choices. */
1457
+ interface SegmentedProps extends BaseComponentProps, InteractiveProps, SizableProps {
1458
+ /** Segment definitions as strings or objects with label, value, and optional icon. */
1459
+ options: SegmentedOption[];
1460
+ /** Controlled selected segment value. */
1461
+ value?: string;
1462
+ /** Initial value when uncontrolled; falls back to first option value if unset. */
1463
+ defaultValue?: string;
1464
+ /** Called when the user selects a segment. */
1465
+ onChange?: (value: string) => void;
1466
+ /** When true, the control stretches to the full width of its container. */
1467
+ block?: boolean;
1468
+ }
1469
+ /**
1470
+ * Segmented control (radio group) for picking one of several options.
1471
+ * Renders as styled pills or, when unstyled, as native radio inputs.
1472
+ */
1473
+ declare function Segmented({ options, value, defaultValue, onChange, block, size: sizeProp, disabled: disabledProp, className, style, unstyled, }: SegmentedProps): react_jsx_runtime.JSX.Element;
1474
+
1475
+ /** One step in a wizard or progress sequence. */
1476
+ interface StepItem {
1477
+ /** Primary step title. */
1478
+ title: React__default.ReactNode;
1479
+ /** Optional secondary text below the title. */
1480
+ description?: React__default.ReactNode;
1481
+ /** Custom icon; defaults to checkmark, error mark, or index when omitted. */
1482
+ icon?: React__default.ReactNode;
1483
+ /** Overrides auto-derived status from `current` index. */
1484
+ status?: 'wait' | 'process' | 'finish' | 'error';
1485
+ }
1486
+ /** Props for the step indicator sequence. */
1487
+ interface StepsProps extends BaseComponentProps, SizableProps {
1488
+ /** Zero-based index of the active (in-progress) step. */
1489
+ current: number;
1490
+ /** Steps in display order. */
1491
+ items: StepItem[];
1492
+ /** Stack direction for the step list. @default 'horizontal' */
1493
+ direction?: 'horizontal' | 'vertical';
1494
+ /** When set, each step becomes clickable and reports its index. */
1495
+ onChange?: (current: number) => void;
1496
+ /** Visual variant: standard steps or navigation-style. @default 'default' */
1497
+ type?: 'default' | 'navigation';
1498
+ }
1499
+ /**
1500
+ * Displays a linear sequence of steps with icons, titles, and optional descriptions.
1501
+ * Derives each step status from `current` unless overridden per item.
1502
+ */
1503
+ declare function Steps({ current, items, direction, size: sizeProp, onChange, type, className, style, unstyled, }: StepsProps): react_jsx_runtime.JSX.Element;
1504
+
1505
+ /** One entry on the timeline axis (content, optional label, and marker styling). */
1506
+ interface TimelineItem {
1507
+ /** Main body content for this step. */
1508
+ children: React__default.ReactNode;
1509
+ /** Border/text color for the default dot when no custom `dot` is set. */
1510
+ color?: string;
1511
+ /** Custom marker node; replaces the default dot. */
1512
+ dot?: React__default.ReactNode;
1513
+ /** Optional label rendered beside or above the marker. */
1514
+ label?: React__default.ReactNode;
1515
+ /** Forces this item to the left or right side (overrides list `mode` for this index). */
1516
+ position?: 'left' | 'right';
1517
+ }
1518
+ /** Props for the vertical timeline list with optional pending tail. */
1519
+ interface TimelineProps extends BaseComponentProps {
1520
+ /** Ordered timeline steps. */
1521
+ items: TimelineItem[];
1522
+ /** Layout: fixed side, or alternating left/right per item. @default 'left' */
1523
+ mode?: 'left' | 'right' | 'alternate';
1524
+ /** When truthy, appends a pending item; if `true`, children of that item are empty. */
1525
+ pending?: React__default.ReactNode | boolean;
1526
+ /** Marker for the synthetic pending item when `pending` is set. */
1527
+ pendingDot?: React__default.ReactNode;
1528
+ /** When `true`, reverses the visual order of `items` (and pending). */
1529
+ reverse?: boolean;
1530
+ }
1531
+ /**
1532
+ * Displays a chronological list with axis, dots, and optional pending state.
1533
+ */
1534
+ declare function Timeline({ items: rawItems, mode, pending, pendingDot, reverse, className, style, unstyled, }: TimelineProps): react_jsx_runtime.JSX.Element;
1535
+
1536
+ /** Props for a simple slide carousel with dots and optional autoplay. */
1537
+ interface CarouselProps extends BaseComponentProps {
1538
+ /** Advances to the next slide on an interval when there is more than one slide. @default false */
1539
+ autoplay?: boolean;
1540
+ /** Interval in ms between autoplay steps. @default 3000 */
1541
+ autoplaySpeed?: number;
1542
+ /** Shows dot controls to jump between slides (hidden when only one slide in styled mode). @default true */
1543
+ dots?: boolean;
1544
+ /** Where dot navigation is placed relative to the track. @default 'bottom' */
1545
+ dotPosition?: 'top' | 'bottom' | 'left' | 'right';
1546
+ /** Transition between slides: horizontal offset or crossfade. @default 'slide' */
1547
+ effect?: 'slide' | 'fade';
1548
+ /** Each direct child is treated as one slide. */
1549
+ children: React__default.ReactNode;
1550
+ }
1551
+ /**
1552
+ * Cycles through child slides with optional autoplay, dot navigation, and slide or fade transitions.
1553
+ */
1554
+ declare function Carousel({ autoplay, autoplaySpeed, dots, dotPosition, effect, children, className, style, unstyled, }: CarouselProps): react_jsx_runtime.JSX.Element;
1555
+
1556
+ /** Single label/value pair in a descriptions list. */
1557
+ interface DescriptionsItem {
1558
+ /** Optional stable key for list reconciliation. */
1559
+ key?: string;
1560
+ /** Field label shown in the first cell or header row. */
1561
+ label: React__default.ReactNode;
1562
+ /** Value content paired with `label`. */
1563
+ children: React__default.ReactNode;
1564
+ /** Column span for this item within the grid (max `column`). */
1565
+ span?: number;
1566
+ }
1567
+ /** Props for the Descriptions key-value table. */
1568
+ interface DescriptionsProps extends BaseComponentProps, SizableProps {
1569
+ /** Optional heading above the descriptions table. */
1570
+ title?: React__default.ReactNode;
1571
+ /** Rows built from these items according to `column` and each item's `span`. */
1572
+ items: DescriptionsItem[];
1573
+ /** Renders a bordered table style. @default false */
1574
+ bordered?: boolean;
1575
+ /** Number of description columns per row. @default 3 */
1576
+ column?: number;
1577
+ /** Stacks labels and values in separate rows when vertical. @default 'horizontal' */
1578
+ layout?: 'horizontal' | 'vertical';
1579
+ /** Appends ":" after labels when true. @default true */
1580
+ colon?: boolean;
1581
+ }
1582
+ /**
1583
+ * Renders a responsive key-value table from `items`, with horizontal or vertical layout.
1584
+ */
1585
+ declare function Descriptions({ title, items, bordered, column, size: sizeProp, layout, colon, className, style, unstyled, }: DescriptionsProps): react_jsx_runtime.JSX.Element;
1586
+
1587
+ /**
1588
+ * A single field in an editor schema. This is a UI-aware projection over a
1589
+ * JSON-Schema property — extra editor metadata (defaultValue, helpText, the
1590
+ * stable client-side `id`) lives alongside the standard JSON-Schema bits.
1591
+ *
1592
+ * The `id` is opaque to JSON-Schema and only used by the editor to track a
1593
+ * field across reorders / renames. When exporting to plain JSON-Schema the
1594
+ * `id` is dropped (`name` is the JSON-Schema property key).
1595
+ */
1596
+ interface EditorField {
1597
+ /** Stable client-side identifier (survives renames / reorders). */
1598
+ id: string;
1599
+ /** JSON-Schema property key (i.e. `properties[name]`). */
1600
+ name: string;
1601
+ /** Display label (`title` in JSON-Schema). */
1602
+ label: string;
1603
+ /** Mapped to `AutoField.type` and back to a JSON-Schema `type` / `format`. */
1604
+ type: FieldType;
1605
+ /** Whether this field is in the schema-level `required` array. */
1606
+ required?: boolean;
1607
+ /** Min — `minLength` for string, `minimum` for number, `min` for slider. */
1608
+ min?: number;
1609
+ /** Max — `maxLength` for string, `maximum` for number, `max` for slider. */
1610
+ max?: number;
1611
+ /** RegExp source (string) for `pattern` validation on string fields. */
1612
+ pattern?: string;
1613
+ /** Default value applied when the form mounts. */
1614
+ defaultValue?: unknown;
1615
+ /** Inline help text rendered below the control. Editor-only. */
1616
+ helpText?: string;
1617
+ /** Placeholder for the rendered control. */
1618
+ placeholder?: string;
1619
+ /** Choices for select / radio. */
1620
+ options?: AutoFieldOption[];
1621
+ }
1622
+ /**
1623
+ * Top-level editor schema. We intentionally do NOT model nested groups /
1624
+ * field-arrays in v1 (see TODO in adapters/jsonSchema.ts) — the field list
1625
+ * is flat, mirroring `JSONSchema.properties`.
1626
+ */
1627
+ interface EditorSchema {
1628
+ /** Optional schema title shown in the live preview header. */
1629
+ title?: string;
1630
+ /** Optional schema description shown in the live preview header. */
1631
+ description?: string;
1632
+ /** Ordered list of fields. Order maps directly to render order. */
1633
+ fields: EditorField[];
1634
+ }
1635
+ /**
1636
+ * Discriminated union of all supported editor mutations. Routed through the
1637
+ * store so undo / redo + onChange callbacks see a single point of truth.
1638
+ */
1639
+ type EditorAction = {
1640
+ type: 'add';
1641
+ field: EditorField;
1642
+ index?: number;
1643
+ } | {
1644
+ type: 'remove';
1645
+ id: string;
1646
+ } | {
1647
+ type: 'update';
1648
+ id: string;
1649
+ patch: Partial<EditorField>;
1650
+ } | {
1651
+ type: 'move';
1652
+ id: string;
1653
+ toIndex: number;
1654
+ } | {
1655
+ type: 'setSchema';
1656
+ schema: EditorSchema;
1657
+ };
1658
+ /** External, read-only snapshot of the editor store. */
1659
+ interface EditorState {
1660
+ schema: EditorSchema;
1661
+ selectedId: string | null;
1662
+ canUndo: boolean;
1663
+ canRedo: boolean;
1664
+ }
1665
+
1666
+ /**
1667
+ * Public store API surfaced by `useSchemaEditor`. Mutations are dispatched
1668
+ * through `apply(action)` which handles undo / redo bookkeeping. Convenience
1669
+ * methods (`addField`, `removeField`, ...) wrap the corresponding actions.
1670
+ */
1671
+ interface SchemaEditorStore {
1672
+ /** Live snapshot — re-rendered on every commit. */
1673
+ state: EditorState;
1674
+ /** Underlying Core instance (mirrored snapshot under `$sfe.snapshot`). */
1675
+ core: Core;
1676
+ apply: (action: EditorAction) => void;
1677
+ addField: (field: EditorField, index?: number) => void;
1678
+ removeField: (id: string) => void;
1679
+ updateField: (id: string, patch: Partial<EditorField>) => void;
1680
+ moveField: (id: string, toIndex: number) => void;
1681
+ moveFieldUp: (id: string) => void;
1682
+ moveFieldDown: (id: string) => void;
1683
+ duplicateField: (id: string) => void;
1684
+ setSchema: (schema: EditorSchema) => void;
1685
+ setSelectedId: (id: string | null) => void;
1686
+ undo: () => void;
1687
+ redo: () => void;
1688
+ }
1689
+ interface UseSchemaEditorOptions {
1690
+ /** Initial schema; defaults to an empty schema. */
1691
+ initialSchema?: EditorSchema;
1692
+ /** External Core instance (cross-engine coordination). */
1693
+ core?: Core;
1694
+ /** Fires after every successful mutation with the new schema. */
1695
+ onChange?: (schema: EditorSchema) => void;
1696
+ }
1697
+ declare function useSchemaEditor(options?: UseSchemaEditorOptions): SchemaEditorStore;
1698
+
1699
+ interface PaletteItem {
1700
+ /** SkyGraph field type — passed through `dataTransfer` on drop. */
1701
+ type: FieldType;
1702
+ /** Display label in the palette. */
1703
+ label: string;
1704
+ /** One-line description shown under the label. */
1705
+ hint?: string;
1706
+ /** Single-character glyph (rendered as plain text — no emoji). */
1707
+ glyph?: string;
1708
+ }
1709
+ /**
1710
+ * Default catalogue rendered when the consumer doesn't pass `items`. The list
1711
+ * is intentionally flat (no categorisation) so the v1 editor stays focused.
1712
+ */
1713
+ declare const DEFAULT_PALETTE_ITEMS: PaletteItem[];
1714
+ /**
1715
+ * Mime-type used by the palette → canvas drag transfer. Kept narrow so
1716
+ * external drops (e.g. files into the page) do not collide.
1717
+ */
1718
+ declare const PALETTE_DATA_TYPE = "application/x-sg-sfe-palette-type";
1719
+ interface SchemaFormEditorPaletteProps {
1720
+ /** Override the default catalogue. */
1721
+ items?: PaletteItem[];
1722
+ /** Wrapper className (additive). */
1723
+ className?: string;
1724
+ /** Wrapper inline style. */
1725
+ style?: CSSProperties;
1726
+ /**
1727
+ * Optional fallback callback when the host environment does not support
1728
+ * HTML5 drag-and-drop (e.g. some test runners). The canvas listens for
1729
+ * `onClick` on palette items to add a field at the end as a graceful
1730
+ * degradation.
1731
+ */
1732
+ onItemActivate?: (type: FieldType) => void;
1733
+ }
1734
+ declare function SchemaFormEditorPalette({ items, className, style, onItemActivate, }: SchemaFormEditorPaletteProps): react_jsx_runtime.JSX.Element;
1735
+
1736
+ interface SchemaFormEditorProps {
1737
+ /** Initial schema (uncontrolled). Use `setSchema` from a custom store for controlled use. */
1738
+ initialSchema?: EditorSchema;
1739
+ /**
1740
+ * Externally-managed editor store. When provided, `initialSchema`,
1741
+ * `onChange` are ignored and the consumer drives the editor directly.
1742
+ */
1743
+ store?: SchemaEditorStore;
1744
+ /** Override the default palette catalogue. */
1745
+ paletteItems?: PaletteItem[];
1746
+ /** Fires after every successful mutation with the new schema. */
1747
+ onChange?: (schema: EditorSchema) => void;
1748
+ /** Empty-state CTA. */
1749
+ emptyText?: string;
1750
+ /** Wrapper className (additive). */
1751
+ className?: string;
1752
+ /** Wrapper inline style. */
1753
+ style?: CSSProperties;
1754
+ /** Hide the bottom Preview / Schema toggle. Default is to show it. */
1755
+ hideSchemaView?: boolean;
1756
+ }
1757
+ declare function SchemaFormEditor({ initialSchema, store: externalStore, paletteItems, onChange, emptyText, className, style, hideSchemaView, }: SchemaFormEditorProps): react_jsx_runtime.JSX.Element;
1758
+
1759
+ interface SchemaFormEditorCanvasProps {
1760
+ store: SchemaEditorStore;
1761
+ /** Empty-state CTA text. */
1762
+ emptyText?: string;
1763
+ /** Wrapper className (additive). */
1764
+ className?: string;
1765
+ /** Wrapper inline style. */
1766
+ style?: CSSProperties;
1767
+ }
1768
+ declare function SchemaFormEditorCanvas({ store, emptyText, className, style, }: SchemaFormEditorCanvasProps): react_jsx_runtime.JSX.Element;
1769
+
1770
+ interface SchemaFormEditorInspectorProps {
1771
+ store: SchemaEditorStore;
1772
+ className?: string;
1773
+ style?: CSSProperties;
1774
+ }
1775
+ declare function SchemaFormEditorInspector({ store, className, style, }: SchemaFormEditorInspectorProps): react_jsx_runtime.JSX.Element;
1776
+
1777
+ interface SchemaFormEditorSchemaViewProps {
1778
+ store: SchemaEditorStore;
1779
+ className?: string;
1780
+ style?: CSSProperties;
1781
+ /** Output mode — formatted JSON or a TypeScript-friendly literal. */
1782
+ mode?: 'json' | 'ts';
1783
+ }
1784
+ declare function SchemaFormEditorSchemaView({ store, className, style, mode, }: SchemaFormEditorSchemaViewProps): react_jsx_runtime.JSX.Element;
1785
+
1786
+ /** Build an empty editor schema. Useful for the "blank canvas" demo. */
1787
+ declare function createEmptyEditorSchema(): EditorSchema;
1788
+ /**
1789
+ * Convert a plain JSON Schema (the same shape `SchemaForm` accepts) to an
1790
+ * `EditorSchema`. Property order is preserved (`Object.entries` is stable
1791
+ * for string keys per ES2015).
1792
+ */
1793
+ declare function jsonSchemaToEditorSchema(schema: JSONSchema): EditorSchema;
1794
+ /** Convert an `EditorSchema` back to a plain JSON Schema. */
1795
+ declare function editorSchemaToJsonSchema(editor: EditorSchema): JSONSchema;
1796
+ /**
1797
+ * Factory for newly-dropped palette items. Keeps the per-type defaults in
1798
+ * one place so the palette and the inspector agree on what e.g. a brand-new
1799
+ * "Slider" should look like.
1800
+ */
1801
+ declare function createFieldFromPaletteType(type: FieldType, existingNames: string[]): EditorField;
1802
+
1803
+ interface UseGraphOptions extends GraphEngineOptions {
1804
+ /** Bring your own Core instance (for cross-engine coordination). */
1805
+ core?: Core;
1806
+ }
1807
+ interface UseGraphReturn {
1808
+ /** Underlying engine — call mutating methods on this. */
1809
+ graph: GraphEngine;
1810
+ /** Reactive snapshot of nodes / edges / edgesByNode. */
1811
+ state: GraphState;
1812
+ /** The Core instance backing the engine (own or borrowed). */
1813
+ core: Core;
1814
+ }
1815
+ /**
1816
+ * Reactive bridge between `createGraph` (from `@skygraph/core`) and React.
1817
+ *
1818
+ * The hook creates (or reuses) a Core + Graph pair, subscribes to the
1819
+ * `$graph.snapshot.*` namespace, and re-renders the consumer on every commit.
1820
+ *
1821
+ * The graph object reference is stable across renders. Mutations go through
1822
+ * `graph.addNode(...)`, `graph.moveNode(...)`, etc.
1823
+ */
1824
+ declare function useGraph(options?: UseGraphOptions): UseGraphReturn;
1825
+
1826
+ /**
1827
+ * Mini-toolbar entry rendered above a hovered `GraphNode` (from
1828
+ * `@skygraph/core`). The `onClick` receives the original node so handlers
1829
+ * can run engine mutations (e.g. `graph.removeNode(node.id)`) without
1830
+ * re-resolving by id.
1831
+ */
1832
+ interface NodeAction {
1833
+ /** Stable key — also the value reflected in `data-action-id`. */
1834
+ id: string;
1835
+ /** Custom React content (icon / SVG); falls back to `label`. */
1836
+ icon?: ReactNode;
1837
+ /** Label rendered next to / instead of the icon, also used as `aria-label`. */
1838
+ label?: string;
1839
+ /** Click handler. */
1840
+ onClick: (node: GraphNode, event: MouseEvent<HTMLButtonElement>) => void;
1841
+ /**
1842
+ * Optional predicate hiding the action for some nodes. Re-evaluated on
1843
+ * every render so it can react to per-node `data` changes.
1844
+ */
1845
+ hidden?: (node: GraphNode) => boolean;
1846
+ }
1847
+ /** Same shape as `NodeAction`, but rendered above a hovered edge. */
1848
+ interface EdgeAction {
1849
+ id: string;
1850
+ icon?: ReactNode;
1851
+ label?: string;
1852
+ onClick: (edge: GraphEdge, event: MouseEvent<HTMLButtonElement>) => void;
1853
+ hidden?: (edge: GraphEdge) => boolean;
1854
+ }
1855
+
1856
+ /** Imperative API of {@link Diagram}. */
1857
+ interface DiagramRef {
1858
+ /**
1859
+ * Открыть popup и вызвать window.print() на DOM-области диаграммы. Объекты
1860
+ * `customStyles` / `pageSize` / `orientation` мерджатся с тем, что пришло
1861
+ * через prop `printable`.
1862
+ */
1863
+ print: (opts?: PrintOptions) => void;
1864
+ }
1865
+ /**
1866
+ * Per-node renderer. Receives the engine node and returns the React content
1867
+ * placed inside the absolutely-positioned wrapper. If omitted, a default
1868
+ * label (`node.id`) is rendered.
1869
+ */
1870
+ type DiagramNodeRenderer = (node: GraphNode) => ReactNode;
1871
+ /** Selection management mode for the diagram. */
1872
+ type DiagramSelectionMode = 'single' | 'multi' | 'lasso';
1873
+ /**
1874
+ * Argument passed to {@link DiagramProps.onCanvasContextMenu} — combines
1875
+ * world-space and screen-space coordinates so consumers can position a
1876
+ * floating menu without re-projecting.
1877
+ */
1878
+ interface DiagramCanvasContextPoint {
1879
+ /** World-space x (matches `node.transform.x`). */
1880
+ x: number;
1881
+ /** World-space y. */
1882
+ y: number;
1883
+ /** Browser-screen x (`event.clientX`). */
1884
+ screenX: number;
1885
+ /** Browser-screen y (`event.clientY`). */
1886
+ screenY: number;
1887
+ }
1888
+ /**
1889
+ * Argument passed to {@link DiagramProps.onDropNode} when a draggable
1890
+ * HTML5 element is dropped on the canvas. Combines world-space
1891
+ * coordinates (already adjusted for pan / zoom) with the underlying
1892
+ * `DragEvent` so consumers can pull whatever payload they encoded.
1893
+ */
1894
+ interface DiagramDropPoint {
1895
+ /** World-space x where the cursor was released. */
1896
+ x: number;
1897
+ /** World-space y where the cursor was released. */
1898
+ y: number;
1899
+ /** Browser-screen x (`event.clientX`). */
1900
+ screenX: number;
1901
+ /** Browser-screen y (`event.clientY`). */
1902
+ screenY: number;
1903
+ /** The original native `DataTransfer` so the consumer can decode the payload. */
1904
+ dataTransfer: DataTransfer | null;
1905
+ }
1906
+ interface DiagramProps {
1907
+ /** GraphEngine driving the diagram (e.g. from `useGraph()`). */
1908
+ graph: GraphEngine;
1909
+ /**
1910
+ * Snapshot of the graph state (from `useGraph().state`). Required so that
1911
+ * the component re-renders on every commit.
1912
+ */
1913
+ state: GraphState;
1914
+ /** Width of the canvas; defaults to a flexible 100%. */
1915
+ width?: number | string;
1916
+ /** Height of the canvas; defaults to 400. */
1917
+ height?: number | string;
1918
+ /** Optional content renderer per node. */
1919
+ renderNode?: DiagramNodeRenderer;
1920
+ /** Root wrapper className. */
1921
+ className?: string;
1922
+ /** Root wrapper inline style. */
1923
+ style?: CSSProperties;
1924
+ /** Drop the default `sg-diagram-*` class names. */
1925
+ unstyled?: boolean;
1926
+ /**
1927
+ * Enable click-and-drag to move nodes. The handler receives the new
1928
+ * position in the parent's coordinate space and is expected to call
1929
+ * `graph.moveNode(...)` (the default handler does exactly this).
1930
+ *
1931
+ * Set `true` for the default behaviour, `false` (default) to disable,
1932
+ * or pass a custom function for richer drag logic (e.g. snap-to-grid,
1933
+ * permission checks).
1934
+ *
1935
+ * @default false
1936
+ */
1937
+ draggable?: boolean | ((id: NodeId, x: number, y: number) => void);
1938
+ /**
1939
+ * Enable mouse-wheel zoom (`Ctrl + wheel`) and pinch-zoom-style scaling.
1940
+ * The internal canvas is wrapped in a `<g>` / `<div>` whose CSS
1941
+ * transform reflects the current zoom factor.
1942
+ *
1943
+ * @default false
1944
+ */
1945
+ zoomable?: boolean;
1946
+ /**
1947
+ * Enable panning. Plain mouse-wheel scrolls the canvas; the middle
1948
+ * mouse button drags it. `Ctrl + wheel` is reserved for zoom (when
1949
+ * `zoomable` is also on), so the two flags compose cleanly.
1950
+ *
1951
+ * @default false
1952
+ */
1953
+ panable?: boolean;
1954
+ /**
1955
+ * Snap node coordinates to a grid of this size (world units). When set,
1956
+ * `moveNode` is called with rounded `(x, y)` and the wrapper picks up
1957
+ * the `sg-diagram-grid` class so a CSS background pattern renders.
1958
+ *
1959
+ * Pass `0` or `undefined` to disable.
1960
+ */
1961
+ snapToGrid?: number;
1962
+ /**
1963
+ * When `true`, orthogonal edges receive the AABBs of every other node
1964
+ * as obstacles so the A*-based router can avoid them. Off by default to
1965
+ * keep the cheap L-route path the norm; opt in only when the diagram
1966
+ * tends to have crossings worth avoiding.
1967
+ *
1968
+ * Independent of `routing` per edge — edges with `routing !== 'orthogonal'`
1969
+ * ignore this flag.
1970
+ */
1971
+ routeAroundNodes?: boolean;
1972
+ /**
1973
+ * Tuning knobs forwarded to the edge router. `gridSize` / `inflate` /
1974
+ * `maxNodes` only apply to `routing: 'orthogonal'` when
1975
+ * `routeAroundNodes` is on (see `routeOrthogonal` in `@skygraph/core`).
1976
+ *
1977
+ * • `cornerRadius` — radius of rounded corners on orthogonal
1978
+ * edges. Defaults to `8` world units. Pass `0` for sharp
1979
+ * right-angle corners.
1980
+ * • `curvature` — control-handle intensity for `routing: 'bezier'`.
1981
+ * Defaults to React Flow's `0.25`. Range: `0..1`.
1982
+ */
1983
+ routingOptions?: {
1984
+ gridSize?: number;
1985
+ inflate?: number;
1986
+ maxNodes?: number;
1987
+ cornerRadius?: number;
1988
+ curvature?: number;
1989
+ };
1990
+ /**
1991
+ * When `true`, every rendered edge gets an arrow marker on its target
1992
+ * end (matches the visual norm of mainstream diagram libraries).
1993
+ * The marker reuses the edge stroke colour through `currentColor`
1994
+ * so hover / selected styles propagate automatically.
1995
+ *
1996
+ * @default true
1997
+ */
1998
+ edgeArrows?: boolean;
1999
+ /**
2000
+ * Включает поддержку печати через `ref.print()`. Если `true` — без
2001
+ * визуальных изменений; объект `{ fileName }` задаёт имя popup-окна
2002
+ * (используется как title и дефолт для "Save as PDF").
2003
+ *
2004
+ * Сама печать триггерится императивно через `ref.print()`.
2005
+ * @default false
2006
+ */
2007
+ printable?: PrintableProp;
2008
+ /**
2009
+ * Right-click on a node — fired with the original mouse event and the
2010
+ * engine node. If defined, the component calls `event.preventDefault()`
2011
+ * and the browser's native context menu is suppressed. If omitted, the
2012
+ * native menu shows as usual.
2013
+ */
2014
+ onNodeContextMenu?: (event: MouseEvent<HTMLDivElement>, node: GraphNode) => void;
2015
+ /**
2016
+ * Right-click on an edge path. Same suppression contract as
2017
+ * {@link DiagramProps.onNodeContextMenu}.
2018
+ */
2019
+ onEdgeContextMenu?: (event: MouseEvent<SVGPathElement>, edge: GraphEdge) => void;
2020
+ /**
2021
+ * Right-click on the empty canvas (i.e. neither a node nor an edge).
2022
+ * The point combines world and screen coordinates so a floating menu
2023
+ * can be positioned without re-projection.
2024
+ */
2025
+ onCanvasContextMenu?: (event: MouseEvent<HTMLDivElement>, point: DiagramCanvasContextPoint) => void;
2026
+ /**
2027
+ * Mini-toolbar entries shown above a hovered node. The overlay is
2028
+ * rendered in screen-space, so its size stays constant under
2029
+ * pan / zoom. Show / hide use a 200 ms enter delay and 150 ms leave
2030
+ * grace so the cursor can hop from the node to the overlay.
2031
+ */
2032
+ nodeActions?: readonly NodeAction[];
2033
+ /** Same as {@link DiagramProps.nodeActions} but rendered next to a hovered edge. */
2034
+ edgeActions?: readonly EdgeAction[];
2035
+ /**
2036
+ * Controlled selection: array of selected node ids. Pair with
2037
+ * {@link DiagramProps.onSelectionChange}. If left undefined, the
2038
+ * component manages selection internally (uncontrolled).
2039
+ */
2040
+ selection?: readonly NodeId[];
2041
+ /** Initial selection for the uncontrolled mode. */
2042
+ defaultSelection?: readonly NodeId[];
2043
+ /** Fired whenever the selection changes (both controlled and uncontrolled). */
2044
+ onSelectionChange?: (selection: NodeId[]) => void;
2045
+ /**
2046
+ * - `'single'` (default) — legacy behaviour; no multi-select, no lasso.
2047
+ * - `'multi'` — `Ctrl+click` toggles selection; dragging a selected
2048
+ * node moves all selected together.
2049
+ * - `'lasso'` — same as `'multi'` plus a left-button drag on empty
2050
+ * canvas opens a rubber-band rectangle selecting nodes whose AABBs
2051
+ * intersect it.
2052
+ *
2053
+ * Defaults to `'single'` for backwards compatibility — existing drag
2054
+ * code keeps working unchanged.
2055
+ */
2056
+ selectionMode?: DiagramSelectionMode;
2057
+ /**
2058
+ * Fired when an HTML5 drag-and-drop ends on the canvas. The handler
2059
+ * receives world-space coordinates (already adjusted for pan / zoom)
2060
+ * plus the raw `DataTransfer` so the consumer can decode whatever
2061
+ * payload it set on `dragStart`.
2062
+ *
2063
+ * The wrapper automatically wires `onDragOver = preventDefault` so
2064
+ * drop targets work without extra config. Passing `undefined` leaves
2065
+ * the canvas inert.
2066
+ */
2067
+ onDropNode?: (point: DiagramDropPoint) => void;
2068
+ /**
2069
+ * Comma-separated list of MIME types accepted by the canvas. When the
2070
+ * dragged payload doesn't include any of these types, the drop is
2071
+ * ignored (the cursor falls back to "no-drop"). Defaults to
2072
+ * `['application/x-sg-node']` — the convention used by Skygraph
2073
+ * palette items. Pass `'*'` (string) or `null` to accept everything.
2074
+ */
2075
+ dropTypes?: readonly string[] | '*' | null;
2076
+ }
2077
+ /**
2078
+ * Reactive diagram view (forwardRef-обёртка над `DiagramInner`). Обновлять
2079
+ * данные нужно через `graph` / `state`; для печати — `ref.print()`.
2080
+ */
2081
+ declare const Diagram: React$1.ForwardRefExoticComponent<DiagramProps & React$1.RefAttributes<DiagramRef>>;
2082
+
2083
+ /**
2084
+ * One entry in the widget's hover-actions menu (`⋯` button at the
2085
+ * widget's top-right). Each widget may declare its own `actions`; if the
2086
+ * widget omits the field, `DashboardEditor` falls back to a default set
2087
+ * (see `DashboardEditorProps`'s `onWidgetRefresh` / `onWidgetSettings`
2088
+ * / `onWidgetRemove`).
2089
+ */
2090
+ interface WidgetAction {
2091
+ /** Stable id (used as React key + data-action-id). */
2092
+ id: string;
2093
+ /** Visible label. */
2094
+ label: ReactNode;
2095
+ /** Optional icon rendered before the label. */
2096
+ icon?: ReactNode;
2097
+ /**
2098
+ * Click handler. Receives the widget the action is attached to. The
2099
+ * action menu closes automatically before the callback runs.
2100
+ */
2101
+ onClick: (widget: DashboardWidget) => void;
2102
+ /** Visual variant. `danger` paints the row red. @default 'default' */
2103
+ variant?: 'default' | 'danger';
2104
+ /**
2105
+ * When the predicate returns `true`, the action is omitted from the
2106
+ * menu for this widget. Useful for context-sensitive actions
2107
+ * (e.g. hiding `Restore` when the widget isn't maximized).
2108
+ */
2109
+ hidden?: (widget: DashboardWidget) => boolean;
2110
+ }
2111
+ /** A single widget pinned to a CSS-grid cell range. */
2112
+ interface DashboardWidget {
2113
+ /** Stable id (used as React key + data-widget-id). */
2114
+ id: string;
2115
+ /** Display title (rendered in the widget header by default). */
2116
+ title?: ReactNode;
2117
+ /** 1-based column index (`gridColumnStart`). */
2118
+ x: number;
2119
+ /** 1-based row index (`gridRowStart`). */
2120
+ y: number;
2121
+ /** Column span. @default 1 */
2122
+ w?: number;
2123
+ /** Row span. @default 1 */
2124
+ h?: number;
2125
+ /** Widget content. Either `children` or a `render` callback. */
2126
+ children?: ReactNode;
2127
+ /** Optional renderer (alternative to `children`). */
2128
+ render?: () => ReactNode;
2129
+ /** Optional className applied to the widget wrapper. */
2130
+ className?: string;
2131
+ /** Optional inline style for the widget wrapper. */
2132
+ style?: CSSProperties;
2133
+ /**
2134
+ * Optional per-widget hover actions. When omitted, `DashboardEditor`
2135
+ * synthesises a default set (`Refresh`, `Maximize`, `Settings`,
2136
+ * `Remove`) from the editor-level callbacks.
2137
+ *
2138
+ * Pass an empty array to opt out of the actions menu entirely while
2139
+ * still defining the field.
2140
+ */
2141
+ actions?: readonly WidgetAction[];
2142
+ }
2143
+ /** Callback fired when the user right-clicks a widget body. */
2144
+ type DashboardWidgetContextMenuHandler = (event: MouseEvent<HTMLDivElement>, widget: DashboardWidget) => void;
2145
+ /** Callback fired when the user right-clicks the dashboard background. */
2146
+ type DashboardContextMenuHandler = (event: MouseEvent<HTMLDivElement>) => void;
2147
+ /**
2148
+ * Common props shared by `Dashboard` and `DashboardEditor` for the
2149
+ * widget-actions / context-menu / maximize layer. Kept as a separate
2150
+ * type so the editor-only props (drag, resize, layout-change) don't
2151
+ * leak into the read-only `Dashboard`.
2152
+ */
2153
+ interface DashboardCommonProps {
2154
+ /**
2155
+ * Right-click handler for individual widgets. When provided, the
2156
+ * default browser menu is suppressed (`event.preventDefault()`) and
2157
+ * the callback receives the synthetic event + the widget data.
2158
+ *
2159
+ * Mirrors the convention used by `Diagram` for canvas/node menus.
2160
+ */
2161
+ onWidgetContextMenu?: DashboardWidgetContextMenuHandler;
2162
+ /**
2163
+ * Right-click handler for the dashboard background (anywhere outside
2164
+ * a widget). When provided, the default browser menu is suppressed
2165
+ * and the callback receives the synthetic event.
2166
+ */
2167
+ onDashboardContextMenu?: DashboardContextMenuHandler;
2168
+ }
2169
+
2170
+ interface DashboardProps extends DashboardCommonProps {
2171
+ /** Widgets pinned to grid cells. */
2172
+ widgets: readonly DashboardWidget[];
2173
+ /** Total grid columns. @default 12 */
2174
+ columns?: number;
2175
+ /** Row height in pixels (uniform). @default 80 */
2176
+ rowHeight?: number;
2177
+ /** Gap between cells in pixels. @default 16 */
2178
+ gap?: number;
2179
+ /** Drop default `sg-dashboard-*` classes. */
2180
+ unstyled?: boolean;
2181
+ /** Root wrapper className. */
2182
+ className?: string;
2183
+ /** Root wrapper inline style. */
2184
+ style?: CSSProperties;
2185
+ }
2186
+ /**
2187
+ * Minimal static-layout dashboard.
2188
+ * - CSS Grid with `columns` columns and a uniform `rowHeight`.
2189
+ * - Each widget pins to its `(x, y, w, h)` cell range.
2190
+ * - Optional per-widget `actions` menu (`⋯` button on hover).
2191
+ * - Optional `onWidgetContextMenu` / `onDashboardContextMenu` callbacks
2192
+ * follow the same convention as `Diagram`: `preventDefault()` is
2193
+ * only called when the consumer passed a handler.
2194
+ *
2195
+ * Drag / resize / auto-pack live in `DashboardEditor`, not here.
2196
+ */
2197
+ declare function Dashboard({ widgets, columns, rowHeight, gap, unstyled, className, style, onWidgetContextMenu, onDashboardContextMenu, }: DashboardProps): react_jsx_runtime.JSX.Element;
2198
+
2199
+ /**
2200
+ * Patch describing a layout change for one widget. Only the changed fields
2201
+ * are present, so consumers can spread it onto their existing widget state.
2202
+ */
2203
+ type DashboardLayoutPatch = Partial<Pick<DashboardWidget, 'x' | 'y' | 'w' | 'h'>>;
2204
+ /**
2205
+ * Callback signature: receives the full updated widgets array (already
2206
+ * patched with the new `(x, y, w, h)` for the affected widget). Designed
2207
+ * for `onLayoutChange={setWidgets}`.
2208
+ */
2209
+ type DashboardLayoutChange = (next: DashboardWidget[], meta: {
2210
+ widgetId: string;
2211
+ patch: DashboardLayoutPatch;
2212
+ }) => void;
2213
+ interface DashboardEditorProps extends DashboardCommonProps {
2214
+ /** Widgets pinned to grid cells. */
2215
+ widgets: readonly DashboardWidget[];
2216
+ /**
2217
+ * Called whenever a widget is dragged or resized to a new cell. Receives
2218
+ * the full updated widgets array. Skipped when no actual layout change
2219
+ * occurred (drag inside the same cell).
2220
+ */
2221
+ onLayoutChange?: DashboardLayoutChange;
2222
+ /** Total grid columns. @default 12 */
2223
+ columns?: number;
2224
+ /** Row height in pixels (uniform). @default 80 */
2225
+ rowHeight?: number;
2226
+ /** Gap between cells in pixels. @default 16 */
2227
+ gap?: number;
2228
+ /**
2229
+ * When `false`, drag / resize handlers are disabled and the editor renders
2230
+ * read-only (still keeps the resize-handle DOM hidden). @default true
2231
+ */
2232
+ editable?: boolean;
2233
+ /** Drop default `sg-dashboard-*` classes. */
2234
+ unstyled?: boolean;
2235
+ /** Root wrapper className. */
2236
+ className?: string;
2237
+ /** Root wrapper inline style. */
2238
+ style?: CSSProperties;
2239
+ /**
2240
+ * Optional Refresh handler. When provided, the default action set
2241
+ * (used when a widget doesn't declare its own `actions`) gains a
2242
+ * `Refresh` entry that calls this with the widget data.
2243
+ */
2244
+ onWidgetRefresh?: (widget: DashboardWidget) => void;
2245
+ /**
2246
+ * Optional Settings handler. Same default-action wiring as
2247
+ * `onWidgetRefresh`.
2248
+ */
2249
+ onWidgetSettings?: (widget: DashboardWidget) => void;
2250
+ /**
2251
+ * Optional Remove handler. When omitted, the default `Remove` action
2252
+ * removes the widget from the layout via `onLayoutChange` (passing
2253
+ * the same array minus the widget — `meta.patch` is empty in that
2254
+ * case so consumers can detect a removal).
2255
+ */
2256
+ onWidgetRemove?: (widget: DashboardWidget) => void;
2257
+ }
2258
+ /**
2259
+ * Editable variant of `Dashboard` — drag widgets by their header to move
2260
+ * `(x, y)`, drag the bottom-right handle to resize `(w, h)`. Layout snaps
2261
+ * to the underlying CSS grid.
2262
+ *
2263
+ * Implementation notes:
2264
+ * - Pointer events with `window` listeners (no pointer capture, no
2265
+ * wheel-blocking, no React state during drag — we only `onLayoutChange`
2266
+ * when the snapped cell actually changes).
2267
+ * - Cell width is computed from `gridRef.getBoundingClientRect()` at drag
2268
+ * start so responsive containers stay accurate between drags.
2269
+ * - Movement uses `Math.round(delta / cell)` so the widget snaps to the
2270
+ * nearest cell while the pointer is moving.
2271
+ * - Per-widget `actions` (the `⋯` menu) and right-click `onWidgetContextMenu`
2272
+ * work the same way as in the read-only `Dashboard`.
2273
+ */
2274
+ declare function DashboardEditor({ widgets, onLayoutChange, columns, rowHeight, gap, editable, unstyled, className, style, onWidgetContextMenu, onDashboardContextMenu, onWidgetRefresh, onWidgetSettings, onWidgetRemove, }: DashboardEditorProps): react_jsx_runtime.JSX.Element;
2275
+
2276
+ /** A single bar on the chart. `start` / `end` accept Date or epoch ms. */
2277
+ interface GanttTask {
2278
+ /** Stable id (used as React key + `data-task-id`). */
2279
+ id: string;
2280
+ /** Label rendered inside the bar and in the left task list. */
2281
+ name: string;
2282
+ /** Inclusive start of the task. `Date` or epoch milliseconds. */
2283
+ start: Date | number;
2284
+ /** Exclusive end of the task. `Date` or epoch milliseconds. */
2285
+ end: Date | number;
2286
+ /** Completion `0..1`. Renders an inner progress strip when set. */
2287
+ progress?: number;
2288
+ /** Parent task id (for grouping / hierarchy). Reserved for v1+. */
2289
+ parentId?: string;
2290
+ /** Ids of upstream tasks; renders a dependency arrow into this task. */
2291
+ dependencies?: string[];
2292
+ /** Lane id (matches a `GanttResource.id`) — task pinned to that lane. */
2293
+ resourceId?: string;
2294
+ /** Solid fill colour for this bar. Falls back to a token. */
2295
+ color?: string;
2296
+ }
2297
+ /** A horizontal lane (row) used to group tasks vertically. */
2298
+ interface GanttResource {
2299
+ /** Stable id (matched against `GanttTask.resourceId`). */
2300
+ id: string;
2301
+ /** Display label for the left rail. */
2302
+ name: string;
2303
+ }
2304
+ /** Time-axis granularity. Drives the header ticks AND drag/resize snap step. */
2305
+ type GanttScale = 'day' | 'week' | 'month' | 'quarter';
2306
+ /** Inclusive `from` / exclusive `to` time window. Both as `Date`. */
2307
+ interface GanttRange {
2308
+ from: Date;
2309
+ to: Date;
2310
+ }
2311
+ interface GanttProps {
2312
+ /** Tasks rendered as bars. Required. */
2313
+ tasks: readonly GanttTask[];
2314
+ /**
2315
+ * Lanes used for vertical grouping. If omitted, every task is rendered in
2316
+ * its own row in the order they appear in `tasks`.
2317
+ */
2318
+ resources?: readonly GanttResource[];
2319
+ /**
2320
+ * Time-axis granularity. Drives header ticks and the drag/resize snap step.
2321
+ * @default 'day'
2322
+ */
2323
+ scale?: GanttScale;
2324
+ /**
2325
+ * Visible time window. If omitted, derived from the `min(start)` /
2326
+ * `max(end)` of all tasks (with one `scale`-step of padding on each side).
2327
+ */
2328
+ range?: GanttRange;
2329
+ /** Row height in pixels. @default 32 */
2330
+ rowHeight?: number;
2331
+ /** Pixel width of one `scale` step (one day, one week, ...). @default 40 */
2332
+ columnWidth?: number;
2333
+ /** Width of the left rail (task / resource list). @default 200 */
2334
+ sidebarWidth?: number;
2335
+ /**
2336
+ * Fires when a task was moved (drag) or resized. The original task object
2337
+ * is left untouched — consumers should patch their state from the returned
2338
+ * task.
2339
+ */
2340
+ onTaskChange?: (task: GanttTask) => void;
2341
+ /** Enables click-and-drag to move bars along the time axis. @default false */
2342
+ draggable?: boolean;
2343
+ /** Enables drag on the right edge of each bar to extend its `end`. @default false */
2344
+ resizable?: boolean;
2345
+ /** Drop default `sg-gantt-*` classes. @default false */
2346
+ unstyled?: boolean;
2347
+ /** Root wrapper className. */
2348
+ className?: string;
2349
+ /** Root wrapper inline style. */
2350
+ style?: CSSProperties;
2351
+ }
2352
+
2353
+ /**
2354
+ * Gantt chart: tasks-as-bars over a discrete time axis with optional
2355
+ * resource lanes and dependency arrows.
2356
+ *
2357
+ * v1 capabilities:
2358
+ * - `scale` of `day | week | month | quarter` — drives header ticks AND
2359
+ * the drag/resize snap step (1 column = 1 step).
2360
+ * - `draggable` — left-click on a bar moves it horizontally; `start` /
2361
+ * `end` are emitted via `onTaskChange` once per snap.
2362
+ * - `resizable` — drag the right edge of a bar to extend `end` only.
2363
+ * - `dependencies` — orthogonal arrows from upstream task end to dependent
2364
+ * task start, routed via `routeOrthogonal` from `@skygraph/core`.
2365
+ * - `resources` — when provided, every task pinned to a lane via
2366
+ * `resourceId`; otherwise one task per row.
2367
+ *
2368
+ * Out-of-scope (planned for v2): hierarchy collapse, milestones, baselines,
2369
+ * critical-path highlighting, calendar-aware month/quarter widths.
2370
+ */
2371
+ declare function Gantt({ tasks, resources, scale, range, rowHeight, columnWidth, sidebarWidth, onTaskChange, draggable, resizable, unstyled, className, style, }: GanttProps): react_jsx_runtime.JSX.Element;
2372
+
2373
+ /**
2374
+ * Public domain types for `<ResourceCalendar>` — re-shaped from the
2375
+ * `@skygraph/core/calendar` types so the public surface accepts both
2376
+ * `Date` and epoch-`number` for `start` / `end` (mirroring
2377
+ * `<Gantt>`).
2378
+ */
2379
+ interface Resource {
2380
+ id: string;
2381
+ name: string;
2382
+ /** Accent colour rendered alongside the resource label. */
2383
+ color?: string;
2384
+ /** Maximum simultaneous assignments tolerated within one slot. */
2385
+ capacityPerSlot?: number;
2386
+ /** Free-form metadata. The component ignores this. */
2387
+ meta?: unknown;
2388
+ }
2389
+ interface Assignment {
2390
+ id: string;
2391
+ resourceId: string;
2392
+ start: Date | number;
2393
+ end: Date | number;
2394
+ title: string;
2395
+ status?: 'tentative' | 'confirmed' | 'conflict';
2396
+ meta?: unknown;
2397
+ }
2398
+
2399
+ interface ResourceCalendarProps {
2400
+ /** Resources rendered as horizontal lanes. */
2401
+ resources: readonly Resource[];
2402
+ /** Assignments rendered as positioned blocks. */
2403
+ assignments: readonly Assignment[];
2404
+ /** Optional availability rules — fed to the engine. */
2405
+ rules?: readonly CalendarAvailabilityRule[];
2406
+ /**
2407
+ * Time-axis granularity. Drives header ticks AND drag/resize snap.
2408
+ * @default 'week'
2409
+ */
2410
+ scale?: CalendarScale;
2411
+ /**
2412
+ * Visible time window. If omitted, derived from `min(start)` /
2413
+ * `max(end)` of all assignments with one `scale`-step of padding.
2414
+ */
2415
+ range?: {
2416
+ from: Date;
2417
+ to: Date;
2418
+ };
2419
+ /** Pixel width of one `scale` step. @default 120 */
2420
+ columnWidth?: number;
2421
+ /** Lane / row height in pixels. @default 56 */
2422
+ rowHeight?: number;
2423
+ /** Width of the left rail (resource list). @default 200 */
2424
+ sidebarWidth?: number;
2425
+ /** Enables drag-to-move on assignment blocks. @default false */
2426
+ draggable?: boolean;
2427
+ /** Enables drag on left/right edges of an assignment to resize. @default false */
2428
+ resizable?: boolean;
2429
+ /**
2430
+ * Fires after an assignment was moved or resized. The original
2431
+ * object is left untouched — consumers patch their state from the
2432
+ * returned assignment.
2433
+ */
2434
+ onAssignmentChange?: (next: Assignment) => void;
2435
+ /**
2436
+ * Fires after every internal recompute with the freshly detected
2437
+ * `Conflict[]`. Useful for surfacing badge counts / lists outside
2438
+ * the calendar.
2439
+ */
2440
+ onConflict?: (conflicts: CalendarConflict[]) => void;
2441
+ /** Drop default `sg-rcal-*` classes. @default false */
2442
+ unstyled?: boolean;
2443
+ /** Root wrapper className. */
2444
+ className?: string;
2445
+ /** Root wrapper inline style. */
2446
+ style?: CSSProperties;
2447
+ }
2448
+
2449
+ /**
2450
+ * Resource Calendar — shifts / bookings per resource lane with
2451
+ * automatic conflict detection.
2452
+ *
2453
+ * v1 capabilities:
2454
+ * - `scale` of `day | week | month` — drives header ticks AND
2455
+ * drag/resize snap (1 column = 1 step).
2456
+ * - `draggable` — drag a block to move it horizontally; both `start`
2457
+ * and `end` shift by the snapped delta. Lane (resource) is
2458
+ * preserved — vertical lane changes are out of scope for v1.
2459
+ * - `resizable` — drag the left/right edge to resize that side
2460
+ * independently. Minimum width clamped to one `scale` step.
2461
+ * - Conflict overlay — assignments participating in any conflict
2462
+ * get the `sg-rcal-assignment-conflict` modifier (red border /
2463
+ * hatched background). `onConflict` fires after every change with
2464
+ * the freshly detected `Conflict[]`.
2465
+ * - `availability-off` background bands appear on slots that fall
2466
+ * outside the configured `rules`.
2467
+ *
2468
+ * Out-of-scope (planned for v2): cross-lane drag, multi-day all-day
2469
+ * blocks, recurrence, exception dates, calendar-aware month widths.
2470
+ */
2471
+ declare function ResourceCalendar({ resources, assignments, rules, scale, range, columnWidth, rowHeight, sidebarWidth, draggable, resizable, onAssignmentChange, onConflict, unstyled, className, style, }: ResourceCalendarProps): react_jsx_runtime.JSX.Element;
2472
+
2473
+ /** A single event placed on the timeline at a specific date. */
2474
+ interface TimelineEvent {
2475
+ /** Stable id (used as React key + `data-event-id`). */
2476
+ id: string;
2477
+ /** Event date — `Date` or epoch ms. Drives positioning AND grouping. */
2478
+ date: Date | number;
2479
+ /** Marker title (typically a short heading). */
2480
+ title: ReactNode;
2481
+ /** Optional secondary description. Rendered below the title. */
2482
+ description?: ReactNode;
2483
+ /** Optional dot fill colour. */
2484
+ color?: string;
2485
+ }
2486
+ /** Visual orientation of the timeline track. */
2487
+ type TimelineOrientation = 'horizontal' | 'vertical';
2488
+ /** Bucket boundary for the optional `groupBy` divider. */
2489
+ type TimelineGroupBy = 'day' | 'month' | 'year';
2490
+ interface EventTimelineProps {
2491
+ /** Events to render. */
2492
+ events: readonly TimelineEvent[];
2493
+ /**
2494
+ * Track orientation. Horizontal renders left-to-right with markers above
2495
+ * a baseline; vertical renders top-to-bottom (a la VCS commit list).
2496
+ * @default 'vertical'
2497
+ */
2498
+ orientation?: TimelineOrientation;
2499
+ /**
2500
+ * Group consecutive events sharing the same `day` / `month` / `year`
2501
+ * bucket and render a divider between groups. Bucket boundary uses UTC.
2502
+ */
2503
+ groupBy?: TimelineGroupBy;
2504
+ /**
2505
+ * Custom marker renderer. Receives the event and should return the dot
2506
+ * (or any shape) to render in place of the default circle.
2507
+ */
2508
+ renderMarker?: (event: TimelineEvent) => ReactNode;
2509
+ /**
2510
+ * Custom event-content renderer. Receives the event and replaces the
2511
+ * default `title` + `description` block.
2512
+ */
2513
+ renderEvent?: (event: TimelineEvent) => ReactNode;
2514
+ /** Drop default `sg-event-timeline-*` classes. @default false */
2515
+ unstyled?: boolean;
2516
+ /** Root wrapper className. */
2517
+ className?: string;
2518
+ /** Root wrapper inline style. */
2519
+ style?: CSSProperties;
2520
+ }
2521
+
2522
+ /**
2523
+ * Event-driven timeline: renders a sorted list of `TimelineEvent`s with an
2524
+ * optional grouping divider (`day | month | year`) and a horizontal /
2525
+ * vertical orientation.
2526
+ *
2527
+ * Distinct from `Timeline` (the simpler step-based UI primitive in
2528
+ * `components/ui/Timeline.tsx`) — this one is for chronological event
2529
+ * streams where each item has a `Date`.
2530
+ */
2531
+ declare function EventTimeline({ events, orientation, groupBy, renderMarker, renderEvent, unstyled, className, style, }: EventTimelineProps): react_jsx_runtime.JSX.Element;
2532
+
2533
+ /**
2534
+ * Контекст, передаваемый в `onClick` каждой `ChartAction`. Содержит ссылку
2535
+ * на корневой `<svg>` чарта, опциональное имя файла для экспортов и
2536
+ * утилиты сброса brush / переключения легенды (если эти сценарии включены
2537
+ * вызывающей стороной).
2538
+ */
2539
+ interface ChartActionContext {
2540
+ /** Корневой SVG-элемент текущего чарта. */
2541
+ svg: SVGSVGElement;
2542
+ /** Базовое имя файла без расширения (используется print / SVG / PNG). */
2543
+ fileName?: string;
2544
+ /** Сбросить активный brush — определён только если у чарта `brush` включён. */
2545
+ brushReset?: () => void;
2546
+ /** Переключить отображение легенды — userland-сценарий, не определён по умолчанию. */
2547
+ toggleLegend?: () => void;
2548
+ }
2549
+ /**
2550
+ * Декларативное описание одной кнопки в hover-toolbar чарта. UI-аватар
2551
+ * (`icon`) — любой `ReactNode` (обычно inline-SVG 16×16 stroke 1.5).
2552
+ */
2553
+ interface ChartAction {
2554
+ /** Уникальный id (попадает в `data-sg-action`). */
2555
+ id: string;
2556
+ /** Иконка кнопки (рекомендуется inline SVG 16×16, stroke 1.5). */
2557
+ icon: ReactNode;
2558
+ /** Текст для `aria-label` / `title`. */
2559
+ label: string;
2560
+ /** Обработчик клика. Получает контекст с SVG-ссылкой. */
2561
+ onClick: (ctx: ChartActionContext) => void;
2562
+ /** Скрыть кнопку (но оставить в массиве — для условной логики). */
2563
+ hidden?: boolean;
2564
+ }
2565
+ /**
2566
+ * Допустимые значения prop-а `actions`:
2567
+ * - `false` / `undefined` — toolbar не рендерится.
2568
+ * - `true` — рендерится дефолтный набор (print + SVG + PNG + reset brush, если включён).
2569
+ * - массив `ChartAction[]` — кастомный набор.
2570
+ */
2571
+ type ChartActionsProp = boolean | readonly ChartAction[];
2572
+ /**
2573
+ * Возвращает дефолтный набор `ChartAction`-ов для toolbar-а. Используется
2574
+ * чартами, когда `actions=true` (sugar-форма).
2575
+ */
2576
+ declare function defaultChartActions(opts: {
2577
+ /** Передаётся в `printElement` как `fileName`. */
2578
+ fileName?: string;
2579
+ /** Если задан — добавляется кнопка `resetBrush`. */
2580
+ brushReset?: () => void;
2581
+ }): ChartAction[];
2582
+ interface ChartHoverToolbarProps {
2583
+ /** Видимая ли панель сейчас (родитель прокидывает по hover/focus). */
2584
+ visible: boolean;
2585
+ /** Список кнопок. */
2586
+ actions: readonly ChartAction[];
2587
+ /** Базовое имя файла для экспортов / print. */
2588
+ fileName?: string;
2589
+ /** Возвращает текущий SVG-элемент чарта (на момент клика). */
2590
+ getSvg: () => SVGSVGElement | null;
2591
+ /** Сбросить brush (если в чарте он есть). */
2592
+ brushReset?: () => void;
2593
+ /** Переключить легенду — userland решает. */
2594
+ toggleLegend?: () => void;
2595
+ /** Сбросить дефолтные классы `.sg-chart-toolbar*` — headless-режим. */
2596
+ unstyled?: boolean;
2597
+ /** Опциональный `className` для контейнера. */
2598
+ className?: string;
2599
+ /** Опциональный inline-style на контейнере. */
2600
+ style?: CSSProperties;
2601
+ }
2602
+ /**
2603
+ * Floating-панель действий, плавающая поверх чарта в правом верхнем углу.
2604
+ *
2605
+ * Появляется на hover/focus родителя — родитель сам управляет prop-ом
2606
+ * `visible` (через `data-sg-toolbar="visible|hidden"`). CSS-анимация
2607
+ * `opacity 180ms` живёт в `charts.css`. Сама обёртка имеет `pointer-events:
2608
+ * none`, кнопки — `pointer-events: auto`, чтобы не перехватывать события
2609
+ * crosshair / brush на пустом overlay.
2610
+ */
2611
+ declare function ChartHoverToolbar({ visible, actions, fileName, getSvg, brushReset, toggleLegend, unstyled, className, style, }: ChartHoverToolbarProps): react_jsx_runtime.JSX.Element | null;
2612
+ /**
2613
+ * Резолвит prop `actions` (boolean | array) в актуальный массив с учётом
2614
+ * дефолтных кнопок и опциональной кнопки `resetBrush`. Возвращает `null`,
2615
+ * если toolbar в принципе не должен рендериться.
2616
+ */
2617
+ declare function resolveChartActions(actions: ChartActionsProp | undefined, opts: {
2618
+ fileName?: string;
2619
+ brushReset?: () => void;
2620
+ }): readonly ChartAction[] | null;
2621
+
2622
+ /**
2623
+ * Payload для контекстного меню по серии / отдельной точке. Отдаётся в
2624
+ * `onSeriesContextMenu` ровно тогда, когда пользователь правой кнопкой
2625
+ * кликнул по визуальному элементу серии (line-segment, marker, bar, slice,
2626
+ * area-path).
2627
+ */
2628
+ interface ChartSeriesContextMenuPayload {
2629
+ /** `id` исходного `ChartSeries` или `PieChartSlice`. */
2630
+ seriesId: string;
2631
+ /** Индекс серии в массиве `series` (0-based). Для Pie — индекс slice-а. */
2632
+ seriesIndex: number;
2633
+ /** Индекс категории по X (0-based). Не определён для chart-уровня pie. */
2634
+ valueIndex?: number;
2635
+ /** Числовое значение в этой точке (если применимо). */
2636
+ value?: number;
2637
+ }
2638
+ /**
2639
+ * Payload для контекстного меню по чарту в целом (клик правой кнопкой по
2640
+ * пустому месту плот-области, осям, сетке).
2641
+ */
2642
+ interface ChartContextMenuPayload {
2643
+ /** X в CSS-пикселях относительно SVG. */
2644
+ x: number;
2645
+ /** Y в CSS-пикселях относительно SVG. */
2646
+ y: number;
2647
+ /** X в координатах SVG user-space (то же, что и x для не-stretch SVG). */
2648
+ plotX: number;
2649
+ /** Y в координатах SVG user-space. */
2650
+ plotY: number;
2651
+ }
2652
+ /** Сигнатура коллбэка `onSeriesContextMenu`. */
2653
+ type ChartSeriesContextMenuHandler = (event: MouseEvent, payload: ChartSeriesContextMenuPayload) => void;
2654
+ /** Сигнатура коллбэка `onChartContextMenu`. */
2655
+ type ChartContextMenuHandler = (event: MouseEvent, payload: ChartContextMenuPayload) => void;
2656
+ /**
2657
+ * Создаёт `onContextMenu`-обработчик для visual-элемента серии (line-
2658
+ * segment / marker / bar / area-path / pie-slice).
2659
+ *
2660
+ * - Если `handler` не задан — возвращает `undefined` (нативный browser
2661
+ * menu остаётся валидным).
2662
+ * - Иначе вызывает `event.preventDefault()` + `event.stopPropagation()`,
2663
+ * чтобы chart-уровневый handler не сработал и не открылось браузерное
2664
+ * меню.
2665
+ */
2666
+ declare function makeSeriesContextMenuHandler(handler: ChartSeriesContextMenuHandler | undefined, payload: ChartSeriesContextMenuPayload): ((e: MouseEvent) => void) | undefined;
2667
+ /**
2668
+ * Создаёт `onContextMenu`-обработчик для SVG-корня (chart-уровень). Если
2669
+ * не задан — возвращает `undefined`, чтобы НЕ блокировать дефолтное
2670
+ * браузерное меню.
2671
+ */
2672
+ declare function makeChartContextMenuHandler(handler: ChartContextMenuHandler | undefined): ((e: MouseEvent<SVGSVGElement>) => void) | undefined;
2673
+
2674
+ /** A single category along the X axis. */
2675
+ type ChartCategory = string | number;
2676
+ /** Numeric value for a series at a specific category. */
2677
+ type ChartValue = number | null;
2678
+ /** One series — a logical line / bar / pie slice with a label and values. */
2679
+ interface ChartSeries {
2680
+ /** Unique identifier (used for keying React lists and color resolution). */
2681
+ id: string;
2682
+ /** Human-readable label used in legend / tooltip. */
2683
+ label: string;
2684
+ /** Optional explicit colour (CSS value). Defaults to a deterministic palette by index. */
2685
+ color?: string;
2686
+ /**
2687
+ * Per-category values. Index N corresponds to `categories[N]`.
2688
+ * Use `null` to mark a gap (line will be split, bar will be hidden).
2689
+ */
2690
+ values: readonly ChartValue[];
2691
+ }
2692
+ /**
2693
+ * X axis configuration. Off by default — when `xAxis` is omitted no axis
2694
+ * elements are rendered (backward-compat with v0).
2695
+ */
2696
+ interface XAxisOptions {
2697
+ /**
2698
+ * Number of category ticks to render. If omitted or larger than the number
2699
+ * of categories, every category is labelled. Otherwise N evenly-spaced
2700
+ * categories are picked (always including the first and last).
2701
+ */
2702
+ tickCount?: number;
2703
+ /** Format the visible category label. Default: `String(category)`. */
2704
+ tickFormatter?: (category: ChartCategory, index: number) => string;
2705
+ /** Optional axis title rendered below the plot. */
2706
+ label?: string;
2707
+ }
2708
+ /**
2709
+ * Y axis configuration. Off by default — when `yAxis` is omitted no axis
2710
+ * elements are rendered (backward-compat with v0).
2711
+ */
2712
+ interface YAxisOptions {
2713
+ /** Number of evenly-spaced ticks (including endpoints). @default 5 */
2714
+ tickCount?: number;
2715
+ /** Format the visible numeric tick label. Default: short numeric. */
2716
+ tickFormatter?: (value: number) => string;
2717
+ /** Optional axis title rendered to the left of the plot (rotated). */
2718
+ label?: string;
2719
+ /** Render horizontal gridlines at each tick. @default false */
2720
+ gridLines?: boolean;
2721
+ }
2722
+ /**
2723
+ * Animation configuration for chart mount / data transitions.
2724
+ *
2725
+ * - `true` / omitted — enable with default duration (600ms).
2726
+ * - `false` — disable entirely (no animation classes / styles applied).
2727
+ * - `{ duration: ms }` — explicit duration in milliseconds.
2728
+ *
2729
+ * Implementation is pure CSS (no `requestAnimationFrame` loops): we pass the
2730
+ * duration as a `--sg-chart-anim-duration` custom property on the animated
2731
+ * elements and let `@keyframes` in `charts.css` handle the timing.
2732
+ */
2733
+ type ChartAnimation = boolean | {
2734
+ duration?: number;
2735
+ };
2736
+ /** Default animation duration in milliseconds (when `animate` is not given a number). */
2737
+ declare const DEFAULT_CHART_ANIMATION_MS = 600;
2738
+ /** Resolves a `ChartAnimation` value into a normalized `{ enabled, duration }` shape. */
2739
+ declare function resolveChartAnimation(animate: ChartAnimation | undefined): {
2740
+ enabled: boolean;
2741
+ duration: number;
2742
+ };
2743
+ /**
2744
+ * Builds a stable string key from a list of values that re-mounts animated
2745
+ * subtrees only when the data really changes (categories / series). Used as
2746
+ * `key={...}` on animated `<g>` groups so CSS animations re-trigger on data
2747
+ * updates, not on every render.
2748
+ */
2749
+ declare function chartDataKey(parts: readonly unknown[]): string;
2750
+ /** Common shape for chart props. */
2751
+ interface BaseChartProps {
2752
+ /** Categories along the X axis. */
2753
+ categories: readonly ChartCategory[];
2754
+ /** One or more data series. */
2755
+ series: readonly ChartSeries[];
2756
+ /** Width of the chart in CSS units. Defaults to `'100%'`. */
2757
+ width?: number | string;
2758
+ /** Height of the chart in pixels. Defaults to `200`. */
2759
+ height?: number;
2760
+ /** Optional class name on the root SVG. */
2761
+ className?: string;
2762
+ /** Optional inline style on the root SVG. */
2763
+ style?: CSSProperties;
2764
+ /** Drop default `sg-chart-*` classes (headless mode). */
2765
+ unstyled?: boolean;
2766
+ /** Padding around the plot area in pixels (number or [top, right, bottom, left]). */
2767
+ padding?: number | readonly [number, number, number, number];
2768
+ /** Show a small horizontal legend below the SVG. @default false */
2769
+ legend?: boolean;
2770
+ /**
2771
+ * Mount / data-change animation toggle. Pure CSS, no rAF loops.
2772
+ * @default true
2773
+ */
2774
+ animate?: ChartAnimation;
2775
+ /**
2776
+ * Optional X axis configuration. When omitted, no x-axis is rendered
2777
+ * (v0 backward-compat). When provided, ticks / labels / optional title
2778
+ * are drawn inside the SVG via `<ChartAxes>`.
2779
+ */
2780
+ xAxis?: XAxisOptions;
2781
+ /**
2782
+ * Optional Y axis configuration. When omitted, no y-axis is rendered.
2783
+ * Set `gridLines: true` to draw horizontal grid lines across the plot.
2784
+ */
2785
+ yAxis?: YAxisOptions;
2786
+ /**
2787
+ * Включает поддержку `ref.print()`. Сама печать триггерится императивно
2788
+ * через ref. `{ fileName }` задаёт имя popup-окна.
2789
+ * @default false
2790
+ */
2791
+ printable?: PrintableProp;
2792
+ /**
2793
+ * Hover-toolbar в правом верхнем углу чарта с действиями (print, export
2794
+ * SVG/PNG, сброс brush). `true` — дефолтный набор; `ChartAction[]` —
2795
+ * кастомный. По умолчанию выключено.
2796
+ */
2797
+ actions?: ChartActionsProp;
2798
+ /**
2799
+ * Базовое имя файла без расширения для экспортов SVG / PNG / print.
2800
+ * @default 'chart'
2801
+ */
2802
+ fileName?: string;
2803
+ /**
2804
+ * Контекстное меню (правая кнопка) по элементу серии: line-segment,
2805
+ * marker, bar, area-path. Если задано — браузерное меню блокируется
2806
+ * `event.preventDefault()`.
2807
+ */
2808
+ onSeriesContextMenu?: ChartSeriesContextMenuHandler;
2809
+ /**
2810
+ * Контекстное меню (правая кнопка) по плот-области чарта (вне серий).
2811
+ * Если задано — браузерное меню блокируется `event.preventDefault()`.
2812
+ */
2813
+ onChartContextMenu?: ChartContextMenuHandler;
2814
+ }
2815
+ /** Default colour palette — uses tokens so charts re-theme without code changes. */
2816
+ declare const DEFAULT_PALETTE: readonly ["var(--sg-color-primary)", "var(--sg-color-success)", "var(--sg-color-warning)", "var(--sg-color-error)", "var(--sg-blue-4)", "var(--sg-orange-5)", "var(--sg-green-5)", "var(--sg-red-5)"];
2817
+ declare function colorForSeries(series: ChartSeries, index: number): string;
2818
+
2819
+ interface ChartLegendProps {
2820
+ series: readonly ChartSeries[];
2821
+ className?: string;
2822
+ style?: CSSProperties;
2823
+ }
2824
+ /**
2825
+ * Minimal horizontal legend for charts. Renders below the SVG with one
2826
+ * `<span>` per series (colored swatch + label).
2827
+ */
2828
+ declare function ChartLegend({ series, className, style }: ChartLegendProps): react_jsx_runtime.JSX.Element;
2829
+
2830
+ /** Imperative API общая для LineChart / BarChart / AreaChart / PieChart. */
2831
+ interface ChartRef {
2832
+ /**
2833
+ * Открыть popup и вызвать window.print() для DOM-области графика.
2834
+ * `customStyles` / `pageSize` / `orientation` мерджатся с тем, что задано
2835
+ * в prop `printable`.
2836
+ */
2837
+ print: (opts?: PrintOptions) => void;
2838
+ }
2839
+
2840
+ /** One labelled value to display in the crosshair tooltip column. */
2841
+ interface ChartCrosshairPoint {
2842
+ /** Series label (matches `ChartSeries.label`). */
2843
+ label: string;
2844
+ /** Numeric value at the hovered category. */
2845
+ value: number;
2846
+ /** Resolved series colour (CSS value). */
2847
+ color: string;
2848
+ /** Y coordinate (in plot user-space) for the dot marker. */
2849
+ y: number;
2850
+ }
2851
+ interface ChartCrosshairProps {
2852
+ /** X coordinate of the vertical line (plot user-space). */
2853
+ x: number;
2854
+ /** Top-left X of the plot area (used for tooltip horizontal clamping). */
2855
+ plotX: number;
2856
+ /** Top-left Y of the plot area (top of the vertical line). */
2857
+ plotY: number;
2858
+ /** Plot height (length of the vertical line). */
2859
+ plotH: number;
2860
+ /** Plot width (used for tooltip clamping). */
2861
+ plotW: number;
2862
+ /** Hovered category — shown as the tooltip header. */
2863
+ category: ChartCategory;
2864
+ /** Per-series snapshot of value + dot position at the hovered X. */
2865
+ points: readonly ChartCrosshairPoint[];
2866
+ /** Drop the default `sg-chart-crosshair-*` class names. */
2867
+ unstyled?: boolean;
2868
+ /** Optional formatter for numeric values shown in the tooltip. */
2869
+ valueFormatter?: (value: number) => string;
2870
+ }
2871
+ /**
2872
+ * Shared SVG overlay for chart crosshair / hover tooltip.
2873
+ *
2874
+ * Renders a vertical guide line at `x`, a small dot for each non-null series
2875
+ * value at the hovered category, and a tooltip card listing the values. The
2876
+ * tooltip flips to the left of the line when there is not enough space on the
2877
+ * right inside `[plotX, plotX + plotW]`.
2878
+ *
2879
+ * Pure presentational: no state, no listeners — the parent chart owns the
2880
+ * mouse logic and decides when to render this component.
2881
+ */
2882
+ declare function ChartCrosshair({ x, plotX, plotY, plotH, plotW, category, points, unstyled, valueFormatter, }: ChartCrosshairProps): react_jsx_runtime.JSX.Element;
2883
+
2884
+ /** Диапазон выделения, выраженный в индексах категорий (включительно). */
2885
+ interface ChartBrushRange {
2886
+ /** Стартовый индекс. Всегда `<= to`. */
2887
+ from: number;
2888
+ /** Конечный индекс. Всегда `>= from`. */
2889
+ to: number;
2890
+ }
2891
+ /**
2892
+ * Конфиг brushing-prop, который чарты пробрасывают в общий `<ChartBrush>`.
2893
+ * Принимает либо `boolean` (включить uncontrolled), либо объект.
2894
+ */
2895
+ interface ChartBrushConfig {
2896
+ /** Контролируемый диапазон. `null` — диапазон не выбран. */
2897
+ range?: ChartBrushRange | null;
2898
+ /** Стартовый диапазон в uncontrolled-режиме. */
2899
+ defaultRange?: ChartBrushRange | null;
2900
+ /**
2901
+ * Срабатывает на `pointerup` после drag и на `dblclick` (reset → `null`).
2902
+ * `from`/`to` — индексы категорий (целочисленные, `from <= to`).
2903
+ */
2904
+ onRangeChange?: (range: ChartBrushRange | null) => void;
2905
+ /** Цвет заливки выделения. Дефолт — `var(--sg-color-primary)` с прозрачностью. */
2906
+ fill?: string;
2907
+ /** Заблокировать создание / изменение brush — но контролируемый диапазон всё равно отрисуется. */
2908
+ disabled?: boolean;
2909
+ }
2910
+ /** Резолвит `brush` prop в `ChartBrushConfig | null`. */
2911
+ declare function resolveBrushConfig(brush: boolean | ChartBrushConfig | undefined): ChartBrushConfig | null;
2912
+ interface ChartBrushProps {
2913
+ /** Левая граница plot-области в SVG user-space. */
2914
+ plotX: number;
2915
+ /** Верхняя граница plot-области в SVG user-space. */
2916
+ plotY: number;
2917
+ /** Ширина plot-области. */
2918
+ plotW: number;
2919
+ /** Высота plot-области. */
2920
+ plotH: number;
2921
+ /** Количество категорий по X. Используется для маппинга x → index. */
2922
+ categoryCount: number;
2923
+ /** Текущий диапазон выделения (контролируемый). `null` — не выделено. */
2924
+ range: ChartBrushRange | null;
2925
+ /** Срабатывает при каждом завершении выделения / reset. */
2926
+ onRangeChange: (range: ChartBrushRange | null) => void;
2927
+ /** Сбрасывает default-классы `.sg-chart-brush-*`. */
2928
+ unstyled?: boolean;
2929
+ /** Цвет заливки. */
2930
+ fill?: string;
2931
+ /** Полностью выключает интерактив, оставляя только визуал. */
2932
+ disabled?: boolean;
2933
+ }
2934
+ /**
2935
+ * Brushing overlay: drag по plot-области → диапазон в `[from, to]` индексах
2936
+ * категорий. Двойной клик сбрасывает диапазон в `null`.
2937
+ *
2938
+ * Презентационный компонент: владеет временным dragging-state, но финальный
2939
+ * диапазон публикует через `onRangeChange`. Контролируемый `range` приходит
2940
+ * сверху и определяет, что отрисовать.
2941
+ */
2942
+ declare function ChartBrush({ plotX, plotY, plotW, plotH, categoryCount, range, onRangeChange, unstyled, fill, disabled, }: ChartBrushProps): react_jsx_runtime.JSX.Element;
2943
+
2944
+ /**
2945
+ * Crosshair behaviour toggle for {@link LineChart}. When `true`, a vertical
2946
+ * guide line + per-series tooltip appears on hover.
2947
+ */
2948
+ type LineChartCrosshair = boolean | {
2949
+ /** Custom formatter for tooltip numeric values. */
2950
+ valueFormatter?: (value: number) => string;
2951
+ };
2952
+ interface LineChartProps extends BaseChartProps {
2953
+ /** Show small dot markers at each data point. @default true */
2954
+ markers?: boolean;
2955
+ /** Stroke width in pixels. @default 2 */
2956
+ strokeWidth?: number;
2957
+ /**
2958
+ * Hover crosshair with a vertical guide line and per-series value tooltip.
2959
+ * @default false
2960
+ */
2961
+ crosshair?: LineChartCrosshair;
2962
+ /**
2963
+ * Brush для drag-выбора диапазона по X. `true` — uncontrolled с пустым
2964
+ * стартовым значением; объект — `ChartBrushConfig`. См. `ChartBrush`.
2965
+ */
2966
+ brush?: boolean | ChartBrushConfig;
2967
+ }
2968
+ declare const LineChart: React$1.ForwardRefExoticComponent<LineChartProps & React$1.RefAttributes<ChartRef>>;
2969
+
2970
+ interface BarChartProps extends BaseChartProps {
2971
+ /** Gap between groups in [0..1] of category step. @default 0.2 */
2972
+ groupGap?: number;
2973
+ /** Gap between bars within a group in [0..1] of bar slot. @default 0.1 */
2974
+ barGap?: number;
2975
+ /**
2976
+ * Brush для drag-выбора диапазона по X. `true` — uncontrolled с пустым
2977
+ * стартовым значением; объект — `ChartBrushConfig`. См. `ChartBrush`.
2978
+ */
2979
+ brush?: boolean | ChartBrushConfig;
2980
+ }
2981
+ declare const BarChart: React$1.ForwardRefExoticComponent<BarChartProps & React$1.RefAttributes<ChartRef>>;
2982
+
2983
+ interface AreaChartProps extends BaseChartProps {
2984
+ /** Stack series on top of each other (cumulative). @default false */
2985
+ stacked?: boolean;
2986
+ /** Stroke width on the top edge. @default 2 */
2987
+ strokeWidth?: number;
2988
+ /** Fill opacity (0..1). @default 0.25 */
2989
+ fillOpacity?: number;
2990
+ /**
2991
+ * Brush для drag-выбора диапазона по X. `true` — uncontrolled с пустым
2992
+ * стартовым значением; объект — `ChartBrushConfig`. См. `ChartBrush`.
2993
+ */
2994
+ brush?: boolean | ChartBrushConfig;
2995
+ }
2996
+ declare const AreaChart: React$1.ForwardRefExoticComponent<AreaChartProps & React$1.RefAttributes<ChartRef>>;
2997
+
2998
+ interface PieChartSlice {
2999
+ /** Stable id for keying / legend. */
3000
+ id: string;
3001
+ /** Display label (legend / accessible description). */
3002
+ label: string;
3003
+ /** Numeric value. Negative values are clamped to 0. */
3004
+ value: number;
3005
+ /** Optional explicit fill colour. Falls back to default palette by index. */
3006
+ color?: string;
3007
+ }
3008
+ interface PieChartProps {
3009
+ data: readonly PieChartSlice[];
3010
+ /** SVG width. */
3011
+ width?: number | string;
3012
+ /** SVG height. */
3013
+ height?: number | string;
3014
+ /** Inner radius (donut). 0 → solid pie. @default 0 */
3015
+ innerRadius?: number;
3016
+ /** Outer radius. @default 80 */
3017
+ outerRadius?: number;
3018
+ /** Drop default sg-chart classes. */
3019
+ unstyled?: boolean;
3020
+ className?: string;
3021
+ style?: CSSProperties;
3022
+ /**
3023
+ * Mount / data-change animation toggle. When enabled, slices fade-in and
3024
+ * rotate from `-90deg` to `0deg` around the pie centre.
3025
+ * @default true
3026
+ */
3027
+ animate?: ChartAnimation;
3028
+ /**
3029
+ * Включает поддержку `ref.print()`. `{ fileName }` — имя popup-окна.
3030
+ * @default false
3031
+ */
3032
+ printable?: PrintableProp;
3033
+ /**
3034
+ * Hover-toolbar в правом верхнем углу — print + SVG + PNG.
3035
+ */
3036
+ actions?: ChartActionsProp;
3037
+ /** Базовое имя файла для экспортов. @default 'chart' */
3038
+ fileName?: string;
3039
+ /**
3040
+ * Контекстное меню по slice-у (правая кнопка). Payload содержит
3041
+ * `seriesId` (равен `slice.id`), `seriesIndex` и `value`.
3042
+ */
3043
+ onSeriesContextMenu?: ChartSeriesContextMenuHandler;
3044
+ /** Контекстное меню по фону pie chart (вне slice-ов). */
3045
+ onChartContextMenu?: ChartContextMenuHandler;
3046
+ }
3047
+ declare const PieChart: React$1.ForwardRefExoticComponent<PieChartProps & React$1.RefAttributes<ChartRef>>;
3048
+
3049
+ /** Измеренный размер контейнера / SVG-элемента в пикселях. */
3050
+ interface ChartSize {
3051
+ /** Целочисленная ширина контейнера в CSS-пикселях. */
3052
+ width: number;
3053
+ /** Целочисленная высота контейнера в CSS-пикселях. */
3054
+ height: number;
3055
+ }
3056
+ /**
3057
+ * Хук, отслеживающий реальный размер DOM-элемента через `ResizeObserver`.
3058
+ *
3059
+ * Возвращает `{ width, height }` в CSS-пикселях. До первого срабатывания
3060
+ * RO (или в окружениях без `ResizeObserver` — SSR / jsdom) отдаёт
3061
+ * `fallback`. Это безопасно для рендера до mount-а: чарты используют
3062
+ * fallback-размеры (как правило, дефолтные `600 × height`-prop), а после
3063
+ * mount-а — пересчитываются по реальному размеру контейнера.
3064
+ *
3065
+ * Округление результата исключает суб-пиксельные дёрганья при resize-loop
3066
+ * (один пиксель туда-сюда из-за zoom / scrollbar).
3067
+ *
3068
+ * Не реагирует на смену самого `ref` (наблюдает только текущий
3069
+ * `ref.current`); в SkyGraph-чартах ref стабилен на всю жизнь компонента,
3070
+ * поэтому это ok.
3071
+ */
3072
+ declare function useChartSize<T extends Element>(ref: React.RefObject<T | null>, fallback: ChartSize): ChartSize;
3073
+
3074
+ /**
3075
+ * Экспорт SVG-чарта в файл (SVG / PNG) — без runtime-зависимостей.
3076
+ *
3077
+ * Используем штатный `XMLSerializer` + `URL.createObjectURL` + `Image` +
3078
+ * `<canvas>.toBlob`; выгрузка через невидимый `<a download>`. Никакого
3079
+ * `dom-to-image` / `html2canvas` / `canvg` — браузер сам всё умеет.
3080
+ */
3081
+ /** Размер выгружаемого PNG в CSS-пикселях. */
3082
+ interface PngSize {
3083
+ /** Ширина PNG в CSS-пикселях. */
3084
+ width: number;
3085
+ /** Высота PNG в CSS-пикселях. */
3086
+ height: number;
3087
+ }
3088
+ /** Параметры PNG-экспорта. */
3089
+ interface DownloadPngOptions {
3090
+ /** Имя файла без расширения / с `.png`. По умолчанию `chart.png`. */
3091
+ fileName?: string;
3092
+ /**
3093
+ * Множитель плотности пикселей. По умолчанию `window.devicePixelRatio`
3094
+ * (или `2` если `window` нет). Файл получает `width × scale` пикселей,
3095
+ * но визуально — нормальные `width` CSS-пикселей.
3096
+ */
3097
+ scale?: number;
3098
+ /** Цвет фона. По умолчанию `transparent` — экспорт с прозрачным фоном. */
3099
+ background?: string;
3100
+ }
3101
+ /**
3102
+ * Сериализует `<svg>` в строку с inline `width` / `height` и явными
3103
+ * пространствами имён. Принимает оригинальный элемент — не модифицирует
3104
+ * его (работаем с глубокой копией).
3105
+ */
3106
+ declare function serializeSvg(svg: SVGSVGElement, size?: PngSize): string;
3107
+ /** Триггерит загрузку blob-а под именем `fileName` через невидимый `<a>`. */
3108
+ declare function triggerDownload(blob: Blob, fileName: string): void;
3109
+ /** Измеряет рабочий размер SVG: real DOM size → viewBox → fallback. */
3110
+ declare function measureSvg(svg: SVGSVGElement): PngSize;
3111
+ /**
3112
+ * Скачивает текущий SVG-чарт как `.svg`-файл с явными `width` / `height`,
3113
+ * чтобы файл нормально открывался в любом просмотрщике.
3114
+ */
3115
+ declare function downloadSvg(svg: SVGSVGElement, fileName?: string): void;
3116
+ /**
3117
+ * Конвертирует SVG-чарт в PNG через штатный browser-canvas и скачивает
3118
+ * результат. Возвращает `Promise<void>`, который резолвится после клика
3119
+ * `<a download>` или реджектится при сбое декодирования SVG.
3120
+ *
3121
+ * Стратегия:
3122
+ * 1. Сериализуем SVG → object-URL.
3123
+ * 2. Грузим в `Image` (браузер сам декодирует SVG как растр).
3124
+ * 3. Рисуем на `<canvas>` с devicePixelRatio-масштабом → `.toBlob('image/png')`.
3125
+ * 4. Триггерим скачивание через `<a download>`.
3126
+ *
3127
+ * Альтернатива — `OffscreenCanvas`. Не используем: поддержка хуже, в
3128
+ * Safari < 17 нет, для маленьких чартов выигрыша нет. См. отчёт раунда.
3129
+ */
3130
+ declare function downloadSvgAsPng(svg: SVGSVGElement, fileNameOrOpts?: string | DownloadPngOptions): Promise<void>;
3131
+
3132
+ /**
3133
+ * Имена слотов `List`. Полный список и описания — `docs/styling-contract.md` §4.2.
3134
+ */
3135
+ type ListSlot = 'root' | 'header' | 'footer' | 'items' | 'item' | 'empty' | 'pagination';
3136
+ type ListClassNames = SlotClassNames<ListSlot>;
3137
+ type ListStyles = SlotStyles<ListSlot>;
3138
+ /** Props for a generic list with optional pagination, grid layout, and loading state. */
3139
+ interface ListProps<T = any> {
3140
+ /** Items to render. */
3141
+ dataSource: T[];
3142
+ /** Renders one item; `index` reflects order in the current page when paginated. */
3143
+ renderItem: (item: T, index: number) => React__default.ReactNode;
3144
+ /** Content above the list body. */
3145
+ header?: React__default.ReactNode;
3146
+ /** Content below the list body. */
3147
+ footer?: React__default.ReactNode;
3148
+ /**
3149
+ * Wraps the list in a loading state.
3150
+ * @default false
3151
+ */
3152
+ loading?: boolean;
3153
+ /** "Load more" action area below items. */
3154
+ loadMore?: React__default.ReactNode;
3155
+ /** Client pagination config, or `false` to disable. */
3156
+ pagination?: false | {
3157
+ /** Current page (controlled). */
3158
+ current?: number;
3159
+ /** Items per page. */
3160
+ pageSize?: number;
3161
+ /** Total items for the pager; defaults to `dataSource.length`. */
3162
+ total?: number;
3163
+ /** Fired when the page changes. */
3164
+ onChange?: (page: number, pageSize: number) => void;
3165
+ };
3166
+ /** CSS grid layout for items. */
3167
+ grid?: {
3168
+ /** Gap between grid cells in pixels. */
3169
+ gutter?: number;
3170
+ /** Column count in the grid. */
3171
+ column?: number;
3172
+ /** Columns at extra-small breakpoint. */
3173
+ xs?: number;
3174
+ /** Columns at small breakpoint. */
3175
+ sm?: number;
3176
+ /** Columns at medium breakpoint. */
3177
+ md?: number;
3178
+ /** Columns at large breakpoint. */
3179
+ lg?: number;
3180
+ };
3181
+ /**
3182
+ * List density preset.
3183
+ * @default 'default'
3184
+ */
3185
+ size?: 'small' | 'default' | 'large';
3186
+ /**
3187
+ * Shows dividers between items when `true`.
3188
+ * @default true
3189
+ */
3190
+ split?: boolean;
3191
+ /**
3192
+ * Outlines the list container when `true`.
3193
+ * @default false
3194
+ */
3195
+ bordered?: boolean;
3196
+ /** Localized strings for the list chrome. */
3197
+ locale?: {
3198
+ /** Message when `dataSource` is empty. */
3199
+ emptyText?: React__default.ReactNode;
3200
+ };
3201
+ /** Root class name. */
3202
+ className?: string;
3203
+ /** Root inline styles. */
3204
+ style?: React__default.CSSProperties;
3205
+ /** Renders without Skygraph list styles. */
3206
+ unstyled?: boolean;
3207
+ /** Virtualizes rendering for large lists. Fixed item height required. */
3208
+ virtual?: {
3209
+ /** Fixed item height in pixels. */
3210
+ itemHeight: number;
3211
+ /** Fixed container height in pixels. */
3212
+ height: number;
3213
+ /** Extra items above/below viewport. @default 5 */
3214
+ overscan?: number;
3215
+ };
3216
+ /** Enables click-to-select items. */
3217
+ selectable?: boolean;
3218
+ /** Controlled selected item indices. */
3219
+ selectedKeys?: number[];
3220
+ /** Default selected indices. */
3221
+ defaultSelectedKeys?: number[];
3222
+ /** Fires when selection changes. */
3223
+ onSelectionChange?: (keys: number[], items: T[]) => void;
3224
+ /** Multi-select (hold Ctrl/Cmd). @default false */
3225
+ multiSelect?: boolean;
3226
+ /** Enables drag-and-drop reorder. */
3227
+ draggable?: boolean;
3228
+ /** Fires after items are reordered via drag. */
3229
+ onReorder?: (fromIndex: number, toIndex: number) => void;
3230
+ /** Row hover highlight. @default true */
3231
+ hoverable?: boolean;
3232
+ /** Row click handler. */
3233
+ onItemClick?: (item: T, index: number) => void;
3234
+ /** Row class name (static or per-item). */
3235
+ rowClassName?: string | ((item: T, index: number) => string);
3236
+ /** Публичные классы по слотам. См. `docs/styling-contract.md` §4.2. */
3237
+ classNames?: ListClassNames;
3238
+ /** Публичные стили по слотам. См. `docs/styling-contract.md` §4.2. */
3239
+ styles?: ListStyles;
3240
+ }
3241
+ /** Props for `List.Item` row layout. */
3242
+ interface ListItemProps {
3243
+ /** Main cell content. */
3244
+ children?: React__default.ReactNode;
3245
+ /** Inline actions rendered after the main content. */
3246
+ actions?: React__default.ReactNode[];
3247
+ /** Secondary column aligned to the end of the row. */
3248
+ extra?: React__default.ReactNode;
3249
+ /** Class name on the item root. */
3250
+ className?: string;
3251
+ /** Inline styles on the item root. */
3252
+ style?: React__default.CSSProperties;
3253
+ }
3254
+ /** Props for `List.Item.Meta` avatar/title/description block. */
3255
+ interface ListItemMetaProps {
3256
+ /** Leading visual (e.g. avatar). */
3257
+ avatar?: React__default.ReactNode;
3258
+ /** Primary line. */
3259
+ title?: React__default.ReactNode;
3260
+ /** Secondary line under the title. */
3261
+ description?: React__default.ReactNode;
3262
+ }
3263
+
3264
+ declare function ListItemMeta({ avatar, title, description }: ListItemMetaProps): react_jsx_runtime.JSX.Element;
3265
+ declare function ListItemComponent({ children, actions, extra, className, style }: ListItemProps): react_jsx_runtime.JSX.Element;
3266
+ type ListItemType = typeof ListItemComponent & {
3267
+ Meta: typeof ListItemMeta;
3268
+ };
3269
+ declare function ListInner<T = any>({ dataSource, renderItem, header, footer, loading, loadMore, pagination, grid, size, split, bordered, locale, className, style, unstyled, virtual, selectable, selectedKeys: controlledSelectedKeys, defaultSelectedKeys, onSelectionChange, multiSelect, draggable, onReorder, hoverable, onItemClick, rowClassName, classNames: slotCls, styles: slotSty, }: ListProps<T>): react_jsx_runtime.JSX.Element;
3270
+ type ListType = typeof ListInner & {
3271
+ Item: ListItemType;
3272
+ };
3273
+ /**
3274
+ * Renders a vertical or grid list with optional header, footer, pagination, loading,
3275
+ * virtual scroll, selection, and drag-and-drop reorder.
3276
+ * Use `List.Item` and `List.Item.Meta` for structured rows.
3277
+ */
3278
+ declare const List: ListType;
3279
+
3280
+ /** One row in a transfer list. */
3281
+ interface TransferItem {
3282
+ /** Stable unique key. */
3283
+ key: string;
3284
+ /** Primary label text. */
3285
+ title: string;
3286
+ /** Secondary description line. */
3287
+ description?: string;
3288
+ /** Disables selection and move for this item. */
3289
+ disabled?: boolean;
3290
+ }
3291
+ /** Props for the `Transfer` shuttle component. */
3292
+ interface TransferProps {
3293
+ /** Full item list; membership in `targetKeys` determines the right column. */
3294
+ dataSource: TransferItem[];
3295
+ /** Keys currently placed in the target (right) list. */
3296
+ targetKeys: string[];
3297
+ /** Fires after items move left or right. */
3298
+ onChange?: (targetKeys: string[], direction: 'left' | 'right', moveKeys: string[]) => void;
3299
+ /** Controlled selected keys in both lists combined. */
3300
+ selectedKeys?: string[];
3301
+ /** Fires when selection changes in either list. */
3302
+ onSelectChange?: (sourceSelectedKeys: string[], targetSelectedKeys: string[]) => void;
3303
+ /** Titles for source and target column headers. */
3304
+ titles?: [React__default.ReactNode, React__default.ReactNode];
3305
+ /** Custom render for a list row body. */
3306
+ render?: (item: TransferItem) => React__default.ReactNode;
3307
+ /** @default false */
3308
+ showSearch?: boolean;
3309
+ /** Predicate for search filtering; defaults to title substring match. */
3310
+ filterOption?: (inputValue: string, item: TransferItem) => boolean;
3311
+ /** Search input placeholder override. */
3312
+ searchPlaceholder?: string;
3313
+ /** @default true */
3314
+ showSelectAll?: boolean;
3315
+ /** @default false */
3316
+ disabled?: boolean;
3317
+ /** When true, hides the move-to-left control. */
3318
+ oneWay?: boolean;
3319
+ /** Enables client pagination for long lists. */
3320
+ pagination?: boolean | {
3321
+ pageSize?: number;
3322
+ };
3323
+ /** Localized labels for list chrome. */
3324
+ locale?: {
3325
+ /** Singular unit label in counts. */
3326
+ itemUnit?: string;
3327
+ /** Plural unit label in counts. */
3328
+ itemsUnit?: string;
3329
+ /** Default search placeholder. */
3330
+ searchPlaceholder?: string;
3331
+ /** Empty filtered list content. */
3332
+ notFoundContent?: React__default.ReactNode;
3333
+ /** Select-all checkbox label. */
3334
+ selectAll?: string;
3335
+ /** Deselect-all checkbox label. */
3336
+ deselectAll?: string;
3337
+ };
3338
+ /** Root element class name. */
3339
+ className?: string;
3340
+ /** Root element inline style. */
3341
+ style?: React__default.CSSProperties;
3342
+ /** Renders semantic structure without Skygraph list styles. */
3343
+ unstyled?: boolean;
3344
+ /** Footer content for each panel [source, target]. */
3345
+ footer?: [React__default.ReactNode, React__default.ReactNode] | ((props: {
3346
+ direction: 'left' | 'right';
3347
+ }) => React__default.ReactNode);
3348
+ /** Custom operations area between the lists. */
3349
+ operations?: [React__default.ReactNode, React__default.ReactNode];
3350
+ /** Style for operations area. */
3351
+ operationsStyle?: React__default.CSSProperties;
3352
+ /** Enables drag-and-drop reorder within each list. */
3353
+ sortable?: boolean;
3354
+ /** Fires when items are reordered via drag in a list. */
3355
+ onSort?: (direction: 'left' | 'right', keys: string[]) => void;
3356
+ /** Shows item count per list. @default true */
3357
+ showCount?: boolean;
3358
+ /** Called when search value changes in either list. */
3359
+ onSearch?: (direction: 'left' | 'right', value: string) => void;
3360
+ /** Fixed height for the list body. */
3361
+ listHeight?: number;
3362
+ /** Custom class per list. */
3363
+ listClassName?: string | ((direction: 'left' | 'right') => string);
3364
+ }
3365
+ /** Props for one column list inside `Transfer`. */
3366
+ interface TransferListProps {
3367
+ /** Items shown in this column after filtering. */
3368
+ items: TransferItem[];
3369
+ /** Keys selected in this column. */
3370
+ selectedKeys: string[];
3371
+ /** Replaces selection for this column. */
3372
+ onSelect: (keys: string[]) => void;
3373
+ /** Column header title node. */
3374
+ title?: React__default.ReactNode;
3375
+ /** Custom item body render. */
3376
+ render?: (item: TransferItem) => React__default.ReactNode;
3377
+ /** Shows filter input above the list. */
3378
+ showSearch?: boolean;
3379
+ /** Custom search filter predicate. */
3380
+ filterOption?: (inputValue: string, item: TransferItem) => boolean;
3381
+ /** Search input placeholder. */
3382
+ searchPlaceholder?: string;
3383
+ /** @default true */
3384
+ showSelectAll?: boolean;
3385
+ /** Disables all interactions in the list. */
3386
+ disabled?: boolean;
3387
+ /** Client pagination config or boolean to use defaults. */
3388
+ pagination?: boolean | {
3389
+ pageSize?: number;
3390
+ };
3391
+ /** Resolved strings for counts and actions. */
3392
+ locale: Required<TransferLocale>;
3393
+ /** Which transfer side this list represents. */
3394
+ direction: 'left' | 'right';
3395
+ /** Unstyled list rendering. */
3396
+ unstyled?: boolean;
3397
+ /** Footer content. */
3398
+ footer?: React__default.ReactNode;
3399
+ /** Enables drag-and-drop reorder. */
3400
+ sortable?: boolean;
3401
+ /** Fires when items are reordered via drag. */
3402
+ onSort?: (direction: 'left' | 'right', keys: string[]) => void;
3403
+ /** Called when search changes. */
3404
+ onSearch?: (direction: 'left' | 'right', value: string) => void;
3405
+ /** Fixed height for the list body. */
3406
+ listHeight?: number;
3407
+ /** Custom class for the list. */
3408
+ listClassName?: string | ((direction: 'left' | 'right') => string);
3409
+ }
3410
+ /** Optional strings merged into `DEFAULT_TRANSFER_LOCALE`. */
3411
+ interface TransferLocale {
3412
+ /** Singular item unit label. */
3413
+ itemUnit?: string;
3414
+ /** Plural items unit label. */
3415
+ itemsUnit?: string;
3416
+ /** Search field placeholder. */
3417
+ searchPlaceholder?: string;
3418
+ /** Empty state when filter matches nothing. */
3419
+ notFoundContent?: React__default.ReactNode;
3420
+ /** Select-all control label. */
3421
+ selectAll?: string;
3422
+ /** Deselect-all control label. */
3423
+ deselectAll?: string;
3424
+ }
3425
+
3426
+ /**
3427
+ * Two-column shuttle to move items between source and target key sets.
3428
+ * Supports search, pagination, one-way mode, and unstyled rendering.
3429
+ */
3430
+ declare function Transfer({ dataSource, targetKeys, onChange, selectedKeys: controlledSelectedKeys, onSelectChange, titles, render, showSearch, filterOption, searchPlaceholder, showSelectAll, disabled, oneWay, pagination, locale, className, style, unstyled, footer, operations, operationsStyle, sortable, onSort, onSearch, listHeight, listClassName, }: TransferProps): react_jsx_runtime.JSX.Element;
3431
+
3432
+ /**
3433
+ * Single-column checklist with optional search, select-all, pagination, drag-reorder, and footer.
3434
+ * Used as the source and target panes of `Transfer`.
3435
+ */
3436
+ declare function TransferList({ items, selectedKeys, onSelect, title, render, showSearch, filterOption, searchPlaceholder, showSelectAll, disabled, pagination, locale, direction, unstyled, footer, sortable, onSort, onSearch, listHeight, listClassName, }: TransferListProps): react_jsx_runtime.JSX.Element;
3437
+
3438
+ /** One mention candidate in the suggestion list. */
3439
+ interface MentionOption {
3440
+ /** Text inserted after the trigger prefix when the row is chosen. */
3441
+ value: string;
3442
+ /** Optional display string; defaults to value when omitted. */
3443
+ label?: string;
3444
+ }
3445
+ /** Props for a textarea that shows mention suggestions after a prefix. */
3446
+ interface MentionsProps extends BaseComponentProps, InteractiveProps, SizableProps {
3447
+ /** Controlled textarea value. */
3448
+ value?: string;
3449
+ /** Initial value when uncontrolled. */
3450
+ defaultValue?: string;
3451
+ /** Called when the textarea content changes. */
3452
+ onChange?: (value: string) => void;
3453
+ /** Character(s) that start a mention (e.g. @ or #). */
3454
+ prefix?: string | string[];
3455
+ /** Suggestion list filtered by the text after the active prefix. */
3456
+ options?: MentionOption[];
3457
+ /** Vertical position of the suggestion dropdown relative to the field. */
3458
+ placement?: 'top' | 'bottom';
3459
+ /** Called with the current query and matched prefix while typing a mention. */
3460
+ onSearch?: (text: string, prefix: string) => void;
3461
+ /** Called when a suggestion is inserted into the text. */
3462
+ onSelect?: (option: MentionOption, prefix: string) => void;
3463
+ /** Textarea placeholder. */
3464
+ placeholder?: string;
3465
+ /** Visible height of the textarea in rows. */
3466
+ rows?: number;
3467
+ }
3468
+ /**
3469
+ * Textarea with @-style mentions: shows a filtered list after a configured prefix.
3470
+ * Supports keyboard navigation (arrows, Enter, Escape) when the list is open.
3471
+ *
3472
+ * @default defaultValue - `''`
3473
+ * @default prefix - `'@'`
3474
+ * @default options - `[]`
3475
+ * @default placement - `'bottom'`
3476
+ * @default rows - `3`
3477
+ */
3478
+ declare function Mentions({ value, defaultValue, onChange, prefix: prefixConfig, options, placement, onSearch, onSelect, placeholder, rows, disabled: disabledProp, size: sizeProp, className, style, unstyled, }: MentionsProps): react_jsx_runtime.JSX.Element;
3479
+
3480
+ /** Props for class-based enter/leave animation on a single child element. */
3481
+ interface TransitionProps {
3482
+ /** When `true`, runs enter; when `false`, runs leave (and may unmount). */
3483
+ visible: boolean;
3484
+ /** Base class name prefix for default enter/leave classes (e.g. `sg-fade-enter-from`). @default 'sg-fade' */
3485
+ name?: string;
3486
+ /** Animation length in ms before idle phase and after callbacks. @default 200 */
3487
+ duration?: number;
3488
+ /** Custom initial class for the enter frame (with `-enter-active`). */
3489
+ enterFrom?: string;
3490
+ /** Custom final class for the enter-active frame. */
3491
+ enterTo?: string;
3492
+ /** Custom initial class for the leave frame (with `-leave-active`). */
3493
+ leaveFrom?: string;
3494
+ /** Custom final class for the leave-active frame. */
3495
+ leaveTo?: string;
3496
+ /** Fires once the enter transition timer completes. */
3497
+ onAfterEnter?: () => void;
3498
+ /** Fires once the leave transition timer completes. */
3499
+ onAfterLeave?: () => void;
3500
+ /** Single React element whose `className` will be merged with transition classes. */
3501
+ children: React__default.ReactElement<{
3502
+ className?: string;
3503
+ ref?: React__default.Ref<HTMLElement>;
3504
+ }>;
3505
+ /** When `true`, removes the child from the tree after leave; when `false`, keeps it mounted. @default true */
3506
+ unmountOnExit?: boolean;
3507
+ }
3508
+ /**
3509
+ * Clones a single child and toggles CSS classes over `duration` when `visible` changes, optionally unmounting after leave.
3510
+ */
3511
+ declare function Transition({ visible, name, duration, enterFrom, enterTo, leaveFrom, leaveTo, onAfterEnter, onAfterLeave, children, unmountOnExit, }: TransitionProps): React__default.ReactElement<{
3512
+ className?: string;
3513
+ ref?: React__default.Ref<HTMLElement>;
3514
+ }, string | React__default.JSXElementConstructor<any>> | null;
3515
+
3516
+ /** Estimated password strength tier used for the strength meter. */
3517
+ type PasswordStrength = 'weak' | 'medium' | 'strong' | 'very-strong';
3518
+ /** Props for the password input with optional visibility toggle and strength UI. */
3519
+ interface InputPasswordProps extends BaseComponentProps, InteractiveProps, SizableProps {
3520
+ /** Controlled password value. */
3521
+ value?: string;
3522
+ /** Initial value when uncontrolled. */
3523
+ defaultValue?: string;
3524
+ /** Input placeholder text. */
3525
+ placeholder?: string;
3526
+ /** Show a control to reveal or hide the password. @default true */
3527
+ visibilityToggle?: boolean;
3528
+ /** Show a strength bar and label when the field has text. @default false */
3529
+ showStrength?: boolean;
3530
+ /** Custom labels for each {@link PasswordStrength} tier (merged with defaults). */
3531
+ strengthLabels?: Record<PasswordStrength, string>;
3532
+ /** Called when the password text changes. */
3533
+ onChange?: (value: string) => void;
3534
+ /** Called when the input loses focus. */
3535
+ onBlur?: () => void;
3536
+ /** Called when the input gains focus. */
3537
+ onFocus?: () => void;
3538
+ /** Exposes validation state to assistive tech. */
3539
+ 'aria-invalid'?: boolean | 'false' | 'true' | 'grammar' | 'spelling';
3540
+ /** Marks the field as required for assistive tech. */
3541
+ 'aria-required'?: boolean | 'false' | 'true';
3542
+ }
3543
+ /**
3544
+ * Password field with optional show/hide toggle, loading state, and strength indicator.
3545
+ */
3546
+ declare function InputPassword({ value, defaultValue, placeholder, visibilityToggle, showStrength, strengthLabels, size: sizeProp, disabled: disabledProp, loading, onChange, onBlur, onFocus, 'aria-invalid': ariaInvalid, 'aria-required': ariaRequired, className, style, unstyled, }: InputPasswordProps): react_jsx_runtime.JSX.Element;
3547
+
3548
+ /** Props for the search field with optional clear and submit affordances. */
3549
+ interface SearchInputProps extends BaseComponentProps, InteractiveProps, SizableProps {
3550
+ /** Controlled query string. */
3551
+ value?: string;
3552
+ /** Initial query when uncontrolled. */
3553
+ defaultValue?: string;
3554
+ /** Input placeholder. @default 'Search...' */
3555
+ placeholder?: string;
3556
+ /** Show a clear control when there is text and not loading. @default true */
3557
+ allowClear?: boolean;
3558
+ /** Add a submit button; use a string for custom button label. */
3559
+ enterButton?: boolean | string;
3560
+ /** Called when the user submits (Enter or button click). */
3561
+ onSearch?: (value: string) => void;
3562
+ /** Called when the query text changes. */
3563
+ onChange?: (value: string) => void;
3564
+ /** Called when the input loses focus. */
3565
+ onBlur?: () => void;
3566
+ /** Called when the input gains focus. */
3567
+ onFocus?: () => void;
3568
+ }
3569
+ /**
3570
+ * Search box with icon, optional clear button, loading spinner, and optional enter-to-search button.
3571
+ */
3572
+ declare function SearchInput({ value, defaultValue, placeholder, allowClear, enterButton, size: sizeProp, disabled: disabledProp, loading, onSearch, onChange, onBlur, onFocus, className, style, unstyled, }: SearchInputProps): react_jsx_runtime.JSX.Element;
3573
+
3574
+ /** Props for the token/tag chip input. */
3575
+ interface TagInputProps extends BaseComponentProps, InteractiveProps, SizableProps {
3576
+ /** Controlled list of tags. */
3577
+ value?: string[];
3578
+ /** Initial tags when uncontrolled. @default [] */
3579
+ defaultValue?: string[];
3580
+ /** Shown when there are no tags. @default 'Add tag...' */
3581
+ placeholder?: string;
3582
+ /** Maximum number of tags allowed. */
3583
+ maxTags?: number;
3584
+ /** Allow the same tag text more than once. @default false */
3585
+ allowDuplicates?: boolean;
3586
+ /** Show remove controls on tags. @default true */
3587
+ removable?: boolean;
3588
+ /** Visual variant for tag chips. @default 'default' */
3589
+ tagColor?: 'default' | 'success' | 'error' | 'warning' | 'processing';
3590
+ /** Called when the tag list changes. */
3591
+ onChange?: (tags: string[]) => void;
3592
+ /** Called when the text field loses focus (pending text is committed as a tag). */
3593
+ onBlur?: () => void;
3594
+ /** Called when the text field gains focus. */
3595
+ onFocus?: () => void;
3596
+ }
3597
+ /**
3598
+ * Multi-value input where entries become removable tags (Enter/comma, paste, backspace to remove last).
3599
+ */
3600
+ declare function TagInput({ value, defaultValue, placeholder, maxTags, allowDuplicates, removable, tagColor, size: sizeProp, disabled: disabledProp, loading, onChange, onBlur, onFocus, className, style, unstyled, }: TagInputProps): react_jsx_runtime.JSX.Element;
3601
+
3602
+ /** Props for the multi-cell PIN or OTP code input. */
3603
+ interface PinInputProps extends BaseComponentProps, InteractiveProps, SizableProps {
3604
+ /** Number of character cells. @default 6 */
3605
+ length?: number;
3606
+ /** Controlled combined string value (padded/truncated to `length`). */
3607
+ value?: string;
3608
+ /** Initial combined string when uncontrolled. @default '' */
3609
+ defaultValue?: string;
3610
+ /** Use password masking for each cell. @default false */
3611
+ mask?: boolean;
3612
+ /** Allowed character set per cell. @default 'numeric' */
3613
+ type?: 'numeric' | 'alphanumeric';
3614
+ /** Placeholder shown in empty styled cells. @default '○' */
3615
+ placeholder?: string;
3616
+ /** Focus the first cell on mount. @default false */
3617
+ autoFocus?: boolean;
3618
+ /** Fired once all cells are filled (non-space characters). */
3619
+ onComplete?: (value: string) => void;
3620
+ /** Fired on every change with the trimmed combined value. */
3621
+ onChange?: (value: string) => void;
3622
+ /** Accessible name for the input group. @default 'PIN input' */
3623
+ 'aria-label'?: string;
3624
+ }
3625
+ /**
3626
+ * Fixed-length segmented input for PINs or one-time codes, with paste and arrow-key navigation.
3627
+ */
3628
+ declare function PinInput({ length, value, defaultValue, mask, type, placeholder, autoFocus, size: sizeProp, disabled: disabledProp, loading, onComplete, onChange, className, style, unstyled, 'aria-label': ariaLabel, }: PinInputProps): react_jsx_runtime.JSX.Element;
3629
+
3630
+ /** Props for the inline text editor (view vs edit modes). */
3631
+ interface InlineEditProps extends BaseComponentProps, InteractiveProps, SizableProps {
3632
+ /** Controlled text value. */
3633
+ value?: string;
3634
+ /** Initial value when uncontrolled. @default '' */
3635
+ defaultValue?: string;
3636
+ /** Placeholder when the value is empty in view mode. @default 'Click to edit...' */
3637
+ placeholder?: string;
3638
+ /** Whether to show save/cancel controls in edit mode. @default true */
3639
+ showButtons?: boolean;
3640
+ /** Save draft when the input loses focus. @default true */
3641
+ saveOnBlur?: boolean;
3642
+ /** Save draft when Enter is pressed. @default true */
3643
+ saveOnEnter?: boolean;
3644
+ /** Called after a successful save with the new string. */
3645
+ onSave?: (value: string) => void;
3646
+ /** Called when editing is cancelled. */
3647
+ onCancel?: () => void;
3648
+ /** Custom view renderer; receives current value and a function to enter edit mode. */
3649
+ renderView?: (value: string, startEditing: () => void) => React.ReactNode;
3650
+ }
3651
+ /**
3652
+ * Inline field that switches between a read-only view and an editable input.
3653
+ * Supports keyboard shortcuts (Enter to save, Escape to cancel).
3654
+ */
3655
+ declare function InlineEdit({ value, defaultValue, placeholder, showButtons, saveOnBlur, saveOnEnter, size: sizeProp, disabled: disabledProp, loading, onSave, onCancel, renderView, className, style, unstyled, }: InlineEditProps): react_jsx_runtime.JSX.Element;
3656
+
3657
+ /** Props for grouping an input with optional prefix and suffix addons. */
3658
+ interface InputGroupProps extends BaseComponentProps, SizableProps {
3659
+ /** Tight visual spacing between addons and the control. @default true */
3660
+ compact?: boolean;
3661
+ /** Content rendered before the main child (e.g. icon or select). */
3662
+ before?: React__default.ReactNode;
3663
+ /** Content rendered after the main child. */
3664
+ after?: React__default.ReactNode;
3665
+ /** Primary control (typically an input). */
3666
+ children: React__default.ReactNode;
3667
+ }
3668
+ /** Horizontally composes a control with optional leading and trailing slots. */
3669
+ declare function InputGroup({ compact, before, after, size: sizeProp, children, className, style, unstyled, }: InputGroupProps): react_jsx_runtime.JSX.Element;
3670
+
3671
+ export { AreaChart, type AreaChartProps, type Assignment, AutoComplete, type AutoCompleteOption, type AutoCompleteProps, AutoFieldOption, Avatar, type AvatarProps, Badge, type BadgeProps, BarChart, type BarChartProps, type BaseChartProps, BaseComponentProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonProps, Calendar, type CalendarCellInfo, type CalendarEvent, type CalendarHeaderInfo, CalendarLocale, type CalendarProps, Carousel, type CarouselProps, Cascader, type CascaderOption, type CascaderProps, type ChartAction, type ChartActionContext, type ChartActionsProp, type ChartAnimation, ChartBrush, type ChartBrushConfig, type ChartBrushProps, type ChartBrushRange, type ChartCategory, type ChartContextMenuHandler, type ChartContextMenuPayload, ChartCrosshair, type ChartCrosshairPoint, type ChartCrosshairProps, ChartHoverToolbar, type ChartHoverToolbarProps, ChartLegend, type ChartLegendProps, type ChartRef, type ChartSeries, type ChartSeriesContextMenuHandler, type ChartSeriesContextMenuPayload, type ChartSize, type ChartValue, Checkbox, type CheckboxProps, Collapse, type CollapseItem, type CollapseProps, ColorPicker, type ColorPickerProps, ConfigProvider, type ConfigProviderProps, DEFAULT_CHART_ANIMATION_MS, DEFAULT_PALETTE, DEFAULT_PALETTE_ITEMS, Dashboard, type DashboardContextMenuHandler, DashboardEditor, type DashboardEditorProps, type DashboardLayoutChange, type DashboardLayoutPatch, type DashboardProps, type DashboardWidget, type DashboardWidgetContextMenuHandler, DatePicker, type DatePickerProps, type DatePreset, Descriptions, type DescriptionsItem, type DescriptionsProps, Diagram, type DiagramCanvasContextPoint, type EdgeAction as DiagramEdgeAction, type NodeAction as DiagramNodeAction, type DiagramNodeRenderer, type DiagramProps, type DiagramRef, type DiagramSelectionMode, type DownloadPngOptions, Drawer, type DrawerProps, Dropdown, type DropdownItem, type DropdownProps, type EditorAction, type EditorField, type EditorSchema, type EditorState, Empty, type EmptyProps, EventTimeline, type EventTimelineProps, FieldType, Gantt, type GanttProps, type GanttRange, type GanttResource, type GanttScale, type GanttTask, InlineEdit, type InlineEditProps, Input, InputGroup, type InputGroupProps, InputNumber, type InputNumberProps, InputPassword, type InputPasswordProps, type InputProps, InteractiveProps, JSONSchema, LineChart, type LineChartCrosshair, type LineChartProps, List, type ListItemMetaProps, type ListItemProps, type ListProps, type MentionOption, Mentions, type MentionsProps, Menu, type MenuItem, type MenuProps, Modal, type ModalProps, type NotificationConfig, NotificationContainer, type NotificationContainerProps, PALETTE_DATA_TYPE, Pagination, type PaginationProps, type PaletteItem, type PasswordStrength, type PickerMode, PieChart, type PieChartProps, type PieChartSlice, PinInput, type PinInputProps, type PngSize, Popconfirm, type PopconfirmProps, PrintOptions, PrintableProp, Progress, type ProgressProps, RadioGroup, type RadioGroupProps, type RadioOption, RangePicker, type RangePickerProps, Rate, type RateProps, type Resource, ResourceCalendar, type ResourceCalendarProps, Result, type ResultProps, type SchemaEditorStore, SchemaFormEditor, SchemaFormEditorCanvas, type SchemaFormEditorCanvasProps, SchemaFormEditorInspector, type SchemaFormEditorInspectorProps, SchemaFormEditorPalette, type SchemaFormEditorPaletteProps, type SchemaFormEditorProps, SchemaFormEditorSchemaView, type SchemaFormEditorSchemaViewProps, SearchInput, type SearchInputProps, Segmented, type SegmentedProps, Select, type SelectOption, type SelectProps, type SgConfig, SgLocale, type ShowTimeConfig, SizableProps, SizeType, Skeleton, type SkeletonProps, Slider, type SliderProps, Spin, type SpinProps, type StepItem, Steps, type StepsProps, Switch, type SwitchProps, type TabItem, Tabs, type TabsProps, Tag, TagInput, type TagInputProps, type TagProps, Textarea, type TextareaProps, TimePicker, type TimePickerProps, TimeRangePicker, type TimeRangePickerProps, Timeline, type TimelineEvent, type TimelineGroupBy, type TimelineItem, type TimelineOrientation, type TimelineProps, Tooltip, type TooltipProps, Transfer, type TransferItem, TransferList, type TransferListProps, type TransferProps, Transition, type TransitionProps, Upload, type UploadFile, type UploadProps, type UseGraphOptions, type UseGraphReturn, type UseSchemaEditorOptions, type WidgetAction, buildPageRule, buildPrintHtml, chartDataKey, colorForSeries, createEmptyEditorSchema, createFieldFromPaletteType, de_DE, defaultChartActions, downloadSvg, downloadSvgAsPng, editorSchemaToJsonSchema, en_US, es_ES, fr_FR, jsonSchemaToEditorSchema, makeChartContextMenuHandler, makeSeriesContextMenuHandler, measureSvg, notification, printElement, resolveBrushConfig, resolveChartActions, resolveChartAnimation, ru_RU, serializeSvg, triggerDownload, useChartSize, useComputed, useConfig, useGraph, useSchemaEditor, zh_CN };