@vobs/ui 0.3.0 → 1.1.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 (212) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +60 -0
  3. package/package.json +52 -110
  4. package/src/activity-rail.ts +125 -0
  5. package/src/alert.ts +65 -0
  6. package/src/assets/icons/alert-circle.svg +1 -0
  7. package/src/assets/icons/alert-triangle.svg +1 -0
  8. package/src/assets/icons/alert.d27e24.svg +1 -0
  9. package/src/assets/icons/alert.svg +1 -0
  10. package/src/assets/icons/apple.svg +1 -0
  11. package/src/assets/icons/arrow-down.svg +1 -0
  12. package/src/assets/icons/arrow-expand.svg +1 -0
  13. package/src/assets/icons/arrow-left.svg +1 -0
  14. package/src/assets/icons/arrow-minimize.svg +1 -0
  15. package/src/assets/icons/arrow-right-to-line.svg +1 -0
  16. package/src/assets/icons/arrow-right.svg +1 -0
  17. package/src/assets/icons/arrow-up-right.svg +1 -0
  18. package/src/assets/icons/arrow-up.0c0c0d.svg +1 -0
  19. package/src/assets/icons/arrow-up.svg +1 -0
  20. package/src/assets/icons/at.svg +1 -0
  21. package/src/assets/icons/atom.0c0c0d.svg +1 -0
  22. package/src/assets/icons/atom.svg +1 -0
  23. package/src/assets/icons/bar.svg +1 -0
  24. package/src/assets/icons/bell.svg +1 -0
  25. package/src/assets/icons/box.svg +1 -0
  26. package/src/assets/icons/bug.svg +1 -0
  27. package/src/assets/icons/calendar.svg +1 -0
  28. package/src/assets/icons/check-circle.33c192.svg +1 -0
  29. package/src/assets/icons/check-circle.svg +1 -0
  30. package/src/assets/icons/check.d1d3db.svg +1 -0
  31. package/src/assets/icons/check.svg +1 -0
  32. package/src/assets/icons/chevron-down.svg +1 -0
  33. package/src/assets/icons/chevron-right.svg +1 -0
  34. package/src/assets/icons/chevron-up.svg +1 -0
  35. package/src/assets/icons/circle.svg +1 -0
  36. package/src/assets/icons/clock.svg +1 -0
  37. package/src/assets/icons/cmd.svg +1 -0
  38. package/src/assets/icons/code.svg +1 -0
  39. package/src/assets/icons/columns.svg +1 -0
  40. package/src/assets/icons/copy.svg +1 -0
  41. package/src/assets/icons/cpu.svg +1 -0
  42. package/src/assets/icons/dashboard.0c0c0d.svg +1 -0
  43. package/src/assets/icons/dashboard.svg +1 -0
  44. package/src/assets/icons/dollar.svg +1 -0
  45. package/src/assets/icons/download.svg +1 -0
  46. package/src/assets/icons/edit.svg +1 -0
  47. package/src/assets/icons/extensions.svg +1 -0
  48. package/src/assets/icons/external.svg +1 -0
  49. package/src/assets/icons/eye.svg +1 -0
  50. package/src/assets/icons/file-text.svg +1 -0
  51. package/src/assets/icons/file.svg +1 -0
  52. package/src/assets/icons/files.svg +1 -0
  53. package/src/assets/icons/filter.svg +1 -0
  54. package/src/assets/icons/folder.svg +1 -0
  55. package/src/assets/icons/gear.svg +1 -0
  56. package/src/assets/icons/git.svg +1 -0
  57. package/src/assets/icons/github.svg +1 -0
  58. package/src/assets/icons/globe.svg +1 -0
  59. package/src/assets/icons/grid-2x2.svg +1 -0
  60. package/src/assets/icons/hash.svg +1 -0
  61. package/src/assets/icons/heart.svg +1 -0
  62. package/src/assets/icons/help.svg +1 -0
  63. package/src/assets/icons/home.svg +1 -0
  64. package/src/assets/icons/image.svg +1 -0
  65. package/src/assets/icons/info-circle.svg +1 -0
  66. package/src/assets/icons/info-square.svg +1 -0
  67. package/src/assets/icons/info.387bff.svg +1 -0
  68. package/src/assets/icons/info.svg +1 -0
  69. package/src/assets/icons/key.svg +1 -0
  70. package/src/assets/icons/layers.svg +1 -0
  71. package/src/assets/icons/layout.svg +1 -0
  72. package/src/assets/icons/link.svg +1 -0
  73. package/src/assets/icons/list.svg +1 -0
  74. package/src/assets/icons/lock.svg +1 -0
  75. package/src/assets/icons/log-out.svg +1 -0
  76. package/src/assets/icons/logo.svg +1 -0
  77. package/src/assets/icons/mail.svg +1 -0
  78. package/src/assets/icons/menu.svg +1 -0
  79. package/src/assets/icons/message-circle.svg +1 -0
  80. package/src/assets/icons/message-plus.svg +1 -0
  81. package/src/assets/icons/message-square.svg +1 -0
  82. package/src/assets/icons/mic.svg +1 -0
  83. package/src/assets/icons/minus.svg +1 -0
  84. package/src/assets/icons/moon.svg +1 -0
  85. package/src/assets/icons/more-h.svg +1 -0
  86. package/src/assets/icons/mouse.svg +1 -0
  87. package/src/assets/icons/palette.svg +1 -0
  88. package/src/assets/icons/panel-bottom.svg +1 -0
  89. package/src/assets/icons/pause.svg +1 -0
  90. package/src/assets/icons/play.svg +1 -0
  91. package/src/assets/icons/plug.svg +1 -0
  92. package/src/assets/icons/plus.0c0c0d.svg +1 -0
  93. package/src/assets/icons/plus.svg +1 -0
  94. package/src/assets/icons/refresh.svg +1 -0
  95. package/src/assets/icons/ruler.svg +1 -0
  96. package/src/assets/icons/scroll-text.svg +1 -0
  97. package/src/assets/icons/search-menu.svg +1 -0
  98. package/src/assets/icons/search.svg +1 -0
  99. package/src/assets/icons/send.0c0c0d.svg +1 -0
  100. package/src/assets/icons/send.svg +1 -0
  101. package/src/assets/icons/settings.0c0c0d.svg +1 -0
  102. package/src/assets/icons/settings.svg +1 -0
  103. package/src/assets/icons/shield.svg +1 -0
  104. package/src/assets/icons/sidebar-left.svg +1 -0
  105. package/src/assets/icons/sidebar-right.svg +1 -0
  106. package/src/assets/icons/sliders.svg +1 -0
  107. package/src/assets/icons/sparkles.32f08c.svg +1 -0
  108. package/src/assets/icons/sparkles.svg +1 -0
  109. package/src/assets/icons/square.svg +1 -0
  110. package/src/assets/icons/star.svg +1 -0
  111. package/src/assets/icons/sun.svg +1 -0
  112. package/src/assets/icons/terminal.svg +1 -0
  113. package/src/assets/icons/trash.svg +1 -0
  114. package/src/assets/icons/trending-down.svg +1 -0
  115. package/src/assets/icons/trending-up.svg +1 -0
  116. package/src/assets/icons/type.svg +1 -0
  117. package/src/assets/icons/upload.svg +1 -0
  118. package/src/assets/icons/user-circle.svg +1 -0
  119. package/src/assets/icons/user.svg +1 -0
  120. package/src/assets/icons/users.svg +1 -0
  121. package/src/assets/icons/wrench.svg +1 -0
  122. package/src/assets/icons/x-circle.svg +1 -0
  123. package/src/assets/icons/x.svg +1 -0
  124. package/src/assets/icons/zap.0c0c0d.svg +1 -0
  125. package/src/assets/icons/zap.svg +1 -0
  126. package/src/avatar.ts +64 -0
  127. package/src/button.ts +88 -0
  128. package/src/card.ts +59 -0
  129. package/src/chat-composer.ts +156 -0
  130. package/src/dialog.ts +127 -0
  131. package/src/drawer.ts +131 -0
  132. package/src/editor-tabs.ts +184 -0
  133. package/src/file-tree.ts +214 -0
  134. package/src/forms.ts +270 -0
  135. package/src/icon.ts +118 -0
  136. package/src/icons.js +165 -0
  137. package/src/index.test.ts +213 -0
  138. package/src/index.ts +94 -0
  139. package/src/kbd.ts +72 -0
  140. package/src/menu.ts +119 -0
  141. package/src/nav-list.ts +157 -0
  142. package/src/overlay.test.ts +66 -0
  143. package/src/overlay.ts +205 -0
  144. package/src/page-header.ts +97 -0
  145. package/src/pagination.ts +163 -0
  146. package/src/second-batch.test.ts +205 -0
  147. package/src/stat-card.ts +92 -0
  148. package/src/status-bar.ts +108 -0
  149. package/src/styles/base.css +240 -0
  150. package/src/styles/components.css +1234 -0
  151. package/{dist → src/styles}/styles.css +2 -0
  152. package/src/styles/toast.css +57 -0
  153. package/src/styles/tokens.css +438 -0
  154. package/src/styles/vui.css +47 -0
  155. package/src/table.ts +191 -0
  156. package/src/tabs.ts +100 -0
  157. package/src/tag.ts +33 -0
  158. package/src/third-batch.test.ts +137 -0
  159. package/src/toast.test.ts +55 -0
  160. package/src/toast.ts +79 -0
  161. package/src/types.ts +25 -0
  162. package/src/utils.ts +221 -0
  163. package/src/workbench-titlebar.ts +137 -0
  164. package/dist/app-shell-dom.d.ts +0 -30
  165. package/dist/app-shell-dom.js +0 -913
  166. package/dist/app-shell.d.ts +0 -235
  167. package/dist/app-shell.js +0 -415
  168. package/dist/base.css +0 -51
  169. package/dist/calendar-picker.d.ts +0 -45
  170. package/dist/calendar-picker.js +0 -217
  171. package/dist/calendar.d.ts +0 -95
  172. package/dist/calendar.js +0 -194
  173. package/dist/complex-inputs.d.ts +0 -300
  174. package/dist/complex-inputs.js +0 -866
  175. package/dist/components.css +0 -4756
  176. package/dist/data-display.d.ts +0 -1094
  177. package/dist/data-display.js +0 -2341
  178. package/dist/dialog.d.ts +0 -26
  179. package/dist/dialog.js +0 -94
  180. package/dist/feedback.d.ts +0 -88
  181. package/dist/feedback.js +0 -281
  182. package/dist/forms.d.ts +0 -378
  183. package/dist/forms.js +0 -1019
  184. package/dist/icons-config.d.ts +0 -25
  185. package/dist/icons-config.js +0 -14
  186. package/dist/icons.d.ts +0 -41
  187. package/dist/icons.js +0 -185
  188. package/dist/index.d.ts +0 -31
  189. package/dist/index.js +0 -40
  190. package/dist/locale/en-US.d.ts +0 -31
  191. package/dist/locale/en-US.js +0 -20
  192. package/dist/locale/zh-CN.d.ts +0 -31
  193. package/dist/locale/zh-CN.js +0 -20
  194. package/dist/navigation.d.ts +0 -609
  195. package/dist/navigation.js +0 -1707
  196. package/dist/overlay.d.ts +0 -308
  197. package/dist/overlay.js +0 -974
  198. package/dist/page-state.d.ts +0 -23
  199. package/dist/page-state.js +0 -96
  200. package/dist/primitives.d.ts +0 -268
  201. package/dist/primitives.js +0 -764
  202. package/dist/theme-data.d.ts +0 -394
  203. package/dist/theme-data.js +0 -417
  204. package/dist/theme.d.ts +0 -97
  205. package/dist/theme.js +0 -301
  206. package/dist/tokens.css +0 -570
  207. package/dist/tree.d.ts +0 -144
  208. package/dist/tree.js +0 -475
  209. package/dist/virtual-list.d.ts +0 -190
  210. package/dist/virtual-list.js +0 -538
  211. package/dist/workbench.d.ts +0 -136
  212. package/dist/workbench.js +0 -156
@@ -1,1094 +0,0 @@
1
- /** @license MIT
2
- * Copyright (c) 2026 vobsjs
3
- * @vobs/ui
4
- */
5
- import { type UiAttributes, type UiButtonVariant, type UiControlSize, type UiDomPlan } from './primitives.js';
6
- export type BadgeTone = 'brand' | 'neutral' | 'success' | 'warning' | 'error';
7
- export type TagTone = 'brand' | 'danger' | 'neutral' | 'success' | 'warning';
8
- export type TagVariant = 'chip' | 'tag';
9
- export type NoteTone = 'error' | 'info' | 'success' | 'warning';
10
- export type PanelTone = 'default' | 'elevated' | 'subtle';
11
- export type ProgressStatus = 'idle' | 'success' | 'warning' | 'error';
12
- export type TypographyVariant = 'body' | 'body-sm' | 'caption' | 'code' | 'heading-lg' | 'heading-md' | 'heading-sm' | 'link' | 'muted';
13
- export type TypographyRichContentSource = 'markdown' | 'rich-text';
14
- export type TypographyRichContentDensity = 'comfortable' | 'compact';
15
- export type TypographyRichContentState = 'empty' | 'ready';
16
- export type TypographyRichContentBlockKind = 'code' | 'heading' | 'list' | 'paragraph' | 'quote' | 'table';
17
- export type DividerOrientation = 'horizontal' | 'vertical';
18
- export type DividerSectionHeadingLevel = 2 | 3 | 4;
19
- export type DividerSectionHeadingState = 'current' | 'idle';
20
- export type ShortcutPlatform = 'generic' | 'linux' | 'macos' | 'windows';
21
- export type ShortcutDisplayState = 'aliased' | 'empty' | 'ready';
22
- export type NoteRichContentKind = 'callout' | 'note';
23
- export type NoteRichContentState = 'empty' | 'ready';
24
- export type NoteRichContentControlState = 'disabled' | 'hidden' | 'ready';
25
- export type PanelCardKind = 'card' | 'panel';
26
- export type PanelCardMediaState = 'empty' | 'ready';
27
- export type PanelCardMediaPlacement = 'start' | 'top';
28
- export type PanelCardActionState = 'disabled' | 'hidden' | 'ready';
29
- export type PanelCardSelectionState = 'idle' | 'selected';
30
- export type ListGroupedState = 'empty' | 'grouped' | 'partial' | 'plain';
31
- export type ListGroupSelectionState = 'all' | 'empty' | 'none' | 'partial';
32
- export type ListItemActionState = 'disabled' | 'hidden' | 'ready';
33
- export type CarouselState = 'empty' | 'ready';
34
- export type CarouselPlaybackState = 'paused' | 'playing';
35
- export type CarouselNavigationState = 'disabled' | 'ready';
36
- export type AvatarSize = 'lg' | 'md' | 'sm';
37
- export type AvatarStatus = 'away' | 'busy' | 'offline' | 'online';
38
- export type AvatarImageState = 'empty' | 'error' | 'fallback' | 'loaded' | 'loading';
39
- export type AvatarPresenceSource = 'manual' | 'realtime' | 'sync' | 'unknown';
40
- export type AvatarCacheState = 'hit' | 'miss' | 'stale' | 'unbound';
41
- export type PaginationItemKind = 'ellipsis' | 'page';
42
- export type ListSelectionMode = 'multiple' | 'none' | 'single';
43
- export type TableDensity = 'comfortable' | 'compact';
44
- export type TableSortDirection = 'ascending' | 'descending' | 'none';
45
- export type TableToolbarDataMode = 'local' | 'remote';
46
- export type TableColumnPreferenceState = 'customized' | 'default' | 'empty';
47
- export type TableToolbarState = 'empty' | 'filtered' | 'loading' | 'ready' | 'selected';
48
- export type TableCellRenderKind = 'action' | 'custom' | 'number' | 'status' | 'text';
49
- export type TableCellState = 'disabled' | 'error' | 'interactive' | 'loading' | 'readonly';
50
- export type TableBatchActionState = 'available' | 'disabled' | 'hidden' | 'pending';
51
- export type TableSelectionSummaryState = 'all' | 'empty' | 'partial';
52
- export type DataToolbarActionTone = 'danger' | 'primary' | 'secondary';
53
- export type DataToolbarDensity = 'comfortable' | 'compact';
54
- export type FilterChipTone = 'brand' | 'danger' | 'neutral' | 'success' | 'warning';
55
- export type SplitWorkspaceAreaRole = 'auxiliary' | 'inspector' | 'primary' | 'secondary';
56
- export type SplitWorkspaceTabletFallback = 'collapse' | 'drawer' | 'keep' | 'master-detail' | 'stack' | 'tabs';
57
- export type ResultStatus = 'empty' | 'error' | 'info' | 'success' | 'warning';
58
- export type StatTrendDirection = 'down' | 'flat' | 'up';
59
- export type LoadingOverlayMode = 'blocking' | 'inline';
60
- export interface TableColumn {
61
- readonly id: string;
62
- readonly label?: string;
63
- readonly align?: 'center' | 'end' | 'start';
64
- readonly width?: string;
65
- readonly minWidth?: string;
66
- readonly sticky?: 'end' | 'start';
67
- readonly sortable?: boolean;
68
- readonly sortDirection?: TableSortDirection;
69
- readonly hidden?: boolean;
70
- }
71
- export interface TableRow {
72
- readonly id: string;
73
- readonly selected?: boolean;
74
- readonly checked?: boolean;
75
- readonly disabled?: boolean;
76
- readonly expanded?: boolean;
77
- }
78
- export interface TablePlans {
79
- readonly root: UiDomPlan<'table'>;
80
- readonly caption: UiDomPlan<'caption'> | undefined;
81
- readonly selectionHeader: UiDomPlan<'th'> | undefined;
82
- readonly headers: readonly UiDomPlan<'th'>[];
83
- readonly rows: readonly UiDomPlan<'tr'>[];
84
- readonly selectionCells: readonly UiDomPlan<'td'>[];
85
- readonly cells: readonly UiDomPlan<'td'>[];
86
- }
87
- export interface TablePlanOptions {
88
- readonly id?: string;
89
- readonly columns: readonly TableColumn[];
90
- readonly rows: readonly TableRow[];
91
- readonly captionId?: string;
92
- readonly selectable?: boolean;
93
- readonly density?: TableDensity;
94
- readonly stickyHeader?: boolean;
95
- readonly className?: string;
96
- readonly attrs?: UiAttributes;
97
- }
98
- export interface FilterChipItem {
99
- readonly id: string;
100
- readonly label: string;
101
- readonly value?: string;
102
- readonly active?: boolean;
103
- readonly removable?: boolean;
104
- readonly disabled?: boolean;
105
- readonly tone?: FilterChipTone;
106
- }
107
- export interface FilterBarPlanOptions {
108
- readonly id?: string;
109
- readonly filters: readonly FilterChipItem[];
110
- readonly label?: string;
111
- readonly density?: DataToolbarDensity;
112
- readonly clearLabel?: string;
113
- readonly className?: string;
114
- readonly attrs?: UiAttributes;
115
- }
116
- export interface FilterBarPlans {
117
- readonly root: UiDomPlan<'div'>;
118
- readonly chips: readonly UiDomPlan<'button'>[];
119
- readonly clear: UiDomPlan<'button'> | undefined;
120
- }
121
- export interface DataToolbarAction {
122
- readonly id: string;
123
- readonly label: string;
124
- readonly tone?: DataToolbarActionTone;
125
- readonly disabled?: boolean;
126
- readonly pressed?: boolean;
127
- }
128
- export interface DataToolbarPlanOptions {
129
- readonly id?: string;
130
- readonly searchValue?: string;
131
- readonly searchPlaceholder?: string;
132
- readonly searchLabel?: string;
133
- readonly filters?: readonly FilterChipItem[];
134
- readonly actions?: readonly DataToolbarAction[];
135
- readonly totalCount?: number;
136
- readonly filteredCount?: number;
137
- readonly selectedCount?: number;
138
- readonly density?: DataToolbarDensity;
139
- readonly className?: string;
140
- readonly attrs?: UiAttributes;
141
- }
142
- export interface DataToolbarPlans {
143
- readonly root: UiDomPlan<'div'>;
144
- readonly search: UiDomPlan<'input'> | undefined;
145
- readonly filterBar: FilterBarPlans;
146
- readonly summary: UiDomPlan<'output'>;
147
- readonly actions: readonly UiDomPlan<'button'>[];
148
- }
149
- export interface TableToolbarStateContractOptions {
150
- readonly mode?: TableToolbarDataMode;
151
- readonly query?: string;
152
- readonly filters?: readonly FilterChipItem[];
153
- readonly sortColumnId?: string;
154
- readonly sortDirection?: TableSortDirection;
155
- readonly selectedIds?: ReadonlySet<string> | readonly string[];
156
- readonly totalCount?: number;
157
- readonly filteredCount?: number;
158
- readonly loading?: boolean;
159
- }
160
- export interface TableToolbarStateContract {
161
- readonly mode: TableToolbarDataMode;
162
- readonly state: TableToolbarState;
163
- readonly query: string;
164
- readonly activeFilterIds: readonly string[];
165
- readonly activeFilterCount: number;
166
- readonly sortColumnId: string;
167
- readonly sortDirection: TableSortDirection;
168
- readonly selectedIds: readonly string[];
169
- readonly selectedCount: number;
170
- readonly totalCount: number | undefined;
171
- readonly filteredCount: number | undefined;
172
- readonly summary: string;
173
- readonly attrs: UiAttributes;
174
- }
175
- export interface TableColumnPreferenceStateContractOptions {
176
- readonly columns: readonly TableColumn[];
177
- readonly visibleIds?: readonly string[];
178
- readonly hiddenIds?: readonly string[];
179
- readonly orderIds?: readonly string[];
180
- readonly stickyStartIds?: readonly string[];
181
- readonly stickyEndIds?: readonly string[];
182
- readonly density?: TableDensity;
183
- readonly defaultDensity?: TableDensity;
184
- }
185
- export interface TableColumnPreferenceColumnContract {
186
- readonly id: string;
187
- readonly label: string;
188
- readonly visible: boolean;
189
- readonly order: number;
190
- readonly sticky: 'end' | 'start' | undefined;
191
- readonly attrs: UiAttributes;
192
- }
193
- export interface TableColumnPreferenceStateContract {
194
- readonly state: TableColumnPreferenceState;
195
- readonly density: TableDensity;
196
- readonly columnCount: number;
197
- readonly visibleCount: number;
198
- readonly hiddenCount: number;
199
- readonly orderedIds: readonly string[];
200
- readonly visibleIds: readonly string[];
201
- readonly hiddenIds: readonly string[];
202
- readonly stickyStartIds: readonly string[];
203
- readonly stickyEndIds: readonly string[];
204
- readonly columns: readonly TableColumn[];
205
- readonly columnContracts: readonly TableColumnPreferenceColumnContract[];
206
- readonly attrs: UiAttributes;
207
- }
208
- export interface TableCellStateContractOptions {
209
- readonly rowId: string;
210
- readonly columnId: string;
211
- readonly kind?: TableCellRenderKind;
212
- readonly intent?: string;
213
- readonly value?: number | string;
214
- readonly label?: string;
215
- readonly tone?: BadgeTone;
216
- readonly interactive?: boolean;
217
- readonly disabled?: boolean;
218
- readonly loading?: boolean;
219
- readonly error?: boolean;
220
- readonly truncate?: boolean;
221
- readonly describedBy?: string;
222
- readonly attrs?: UiAttributes;
223
- }
224
- export interface TableCellStateContract {
225
- readonly rowId: string;
226
- readonly columnId: string;
227
- readonly kind: TableCellRenderKind;
228
- readonly state: TableCellState;
229
- readonly intent: string;
230
- readonly attrs: UiAttributes;
231
- }
232
- export interface TableBatchActionItem {
233
- readonly id: string;
234
- readonly label: string;
235
- readonly tone?: DataToolbarActionTone;
236
- readonly requiresSelection?: boolean;
237
- readonly disabled?: boolean;
238
- readonly hidden?: boolean;
239
- readonly pending?: boolean;
240
- readonly reason?: string;
241
- }
242
- export interface TableBatchActionContract {
243
- readonly id: string;
244
- readonly label: string;
245
- readonly state: TableBatchActionState;
246
- readonly reason: string;
247
- readonly attrs: UiAttributes;
248
- }
249
- export interface TableBatchActionStateContractOptions {
250
- readonly selectedIds?: ReadonlySet<string> | readonly string[];
251
- readonly totalCount?: number;
252
- readonly eligibleCount?: number;
253
- readonly actions?: readonly TableBatchActionItem[];
254
- }
255
- export interface TableBatchActionStateContract {
256
- readonly selectionState: TableSelectionSummaryState;
257
- readonly selectedIds: readonly string[];
258
- readonly selectedCount: number;
259
- readonly totalCount: number | undefined;
260
- readonly eligibleCount: number | undefined;
261
- readonly selectionSummary: string;
262
- readonly actionContracts: readonly TableBatchActionContract[];
263
- readonly availableActionIds: readonly string[];
264
- readonly disabledActionIds: readonly string[];
265
- readonly pendingActionIds: readonly string[];
266
- readonly hiddenActionIds: readonly string[];
267
- readonly attrs: UiAttributes;
268
- }
269
- export interface EmptyPlanOptions {
270
- readonly id?: string;
271
- readonly label?: string;
272
- readonly status?: ResultStatus;
273
- readonly titleId?: string;
274
- readonly descriptionId?: string;
275
- readonly action?: DataDisplayAction;
276
- readonly icon?: boolean;
277
- readonly className?: string;
278
- readonly attrs?: UiAttributes;
279
- }
280
- export interface EmptyPlans {
281
- readonly root: UiDomPlan<'div'>;
282
- readonly icon?: UiDomPlan<'span'>;
283
- readonly title?: UiDomPlan<'strong'>;
284
- readonly description?: UiDomPlan<'p'>;
285
- readonly actionButton?: UiDomPlan<'button'>;
286
- }
287
- export interface ResultPlanOptions {
288
- readonly id?: string;
289
- readonly status?: ResultStatus;
290
- readonly titleId?: string;
291
- readonly descriptionId?: string;
292
- readonly action?: DataDisplayAction;
293
- readonly closeLabel?: string;
294
- readonly icon?: boolean;
295
- readonly className?: string;
296
- readonly attrs?: UiAttributes;
297
- }
298
- export interface ResultPlans {
299
- readonly root: UiDomPlan<'section'>;
300
- readonly icon?: UiDomPlan<'span'>;
301
- readonly title?: UiDomPlan<'h3'>;
302
- readonly description?: UiDomPlan<'p'>;
303
- readonly actionButton?: UiDomPlan<'button'>;
304
- readonly closeButton?: UiDomPlan<'button'>;
305
- }
306
- export interface BadgePlanOptions {
307
- readonly tone?: BadgeTone;
308
- readonly label?: string;
309
- readonly className?: string;
310
- readonly attrs?: UiAttributes;
311
- }
312
- export type BadgeCountOverflowState = 'count' | 'dot' | 'empty' | 'overflow';
313
- export interface BadgeCountOverflowContractOptions {
314
- readonly count?: number;
315
- readonly max?: number;
316
- readonly dot?: boolean;
317
- readonly label?: string;
318
- }
319
- export interface BadgeCountOverflowContract {
320
- readonly state: BadgeCountOverflowState;
321
- readonly count: number;
322
- readonly max: number;
323
- readonly displayValue: string;
324
- readonly overflow: boolean;
325
- readonly dot: boolean;
326
- readonly attrs: UiAttributes;
327
- }
328
- export interface TagPlanOptions {
329
- readonly id?: string;
330
- readonly label: string;
331
- readonly value?: string;
332
- readonly tone?: TagTone;
333
- readonly variant?: TagVariant;
334
- readonly selected?: boolean;
335
- readonly removable?: boolean;
336
- readonly disabled?: boolean;
337
- readonly icon?: boolean;
338
- readonly count?: number;
339
- readonly className?: string;
340
- readonly attrs?: UiAttributes;
341
- }
342
- export interface TagPlans {
343
- readonly root: UiDomPlan<'button' | 'span'>;
344
- readonly icon?: UiDomPlan<'span'>;
345
- readonly label: UiDomPlan<'span'>;
346
- readonly value?: UiDomPlan<'span'>;
347
- readonly count?: UiDomPlan<'span'>;
348
- readonly removeButton?: UiDomPlan<'button'>;
349
- }
350
- export interface DataDisplayAction {
351
- readonly id: string;
352
- readonly label: string;
353
- readonly disabled?: boolean;
354
- readonly tone?: 'danger' | 'default' | 'primary';
355
- }
356
- export interface NotePlanOptions {
357
- readonly id?: string;
358
- readonly tone?: NoteTone;
359
- readonly titleId?: string;
360
- readonly descriptionId?: string;
361
- readonly action?: DataDisplayAction;
362
- readonly closeLabel?: string;
363
- readonly icon?: boolean;
364
- readonly className?: string;
365
- readonly attrs?: UiAttributes;
366
- }
367
- export interface NotePlans {
368
- readonly root: UiDomPlan<'aside'>;
369
- readonly icon?: UiDomPlan<'span'>;
370
- readonly content: UiDomPlan<'div'>;
371
- readonly title?: UiDomPlan<'strong'>;
372
- readonly description?: UiDomPlan<'p'>;
373
- readonly actionButton?: UiDomPlan<'button'>;
374
- readonly closeButton?: UiDomPlan<'button'>;
375
- }
376
- export interface NoteRichContentStateContractOptions {
377
- readonly kind: NoteRichContentKind;
378
- readonly density?: TypographyRichContentDensity;
379
- readonly blocks?: readonly TypographyRichContentBlock[];
380
- readonly actionId?: string;
381
- readonly actionDisabled?: boolean;
382
- readonly closeAvailable?: boolean;
383
- readonly closeDisabled?: boolean;
384
- }
385
- export interface NoteRichContentBlockContract extends TypographyRichContentBlock {
386
- readonly attrs: UiAttributes;
387
- }
388
- export interface NoteRichContentStateContract {
389
- readonly kind: NoteRichContentKind;
390
- readonly density: TypographyRichContentDensity;
391
- readonly state: NoteRichContentState;
392
- readonly actionState: NoteRichContentControlState;
393
- readonly closeState: NoteRichContentControlState;
394
- readonly blockCount: number;
395
- readonly blockIds: readonly string[];
396
- readonly blocks: readonly NoteRichContentBlockContract[];
397
- readonly attrs: UiAttributes;
398
- readonly contentAttrs: UiAttributes;
399
- readonly actionAttrs: UiAttributes;
400
- readonly closeAttrs: UiAttributes;
401
- }
402
- export interface PanelPlanOptions {
403
- readonly id?: string;
404
- readonly titleId?: string;
405
- readonly descriptionId?: string;
406
- readonly tone?: PanelTone;
407
- readonly interactive?: boolean;
408
- readonly selected?: boolean;
409
- readonly actions?: readonly DataDisplayAction[];
410
- readonly className?: string;
411
- readonly attrs?: UiAttributes;
412
- }
413
- export interface PanelPlans {
414
- readonly root: UiDomPlan<'article' | 'section'>;
415
- readonly header?: UiDomPlan<'header'>;
416
- readonly title?: UiDomPlan<'h3'>;
417
- readonly description?: UiDomPlan<'p'>;
418
- readonly body: UiDomPlan<'div'>;
419
- readonly footer?: UiDomPlan<'footer'>;
420
- readonly actions: readonly UiDomPlan<'button'>[];
421
- }
422
- export interface PanelCardMediaActionStateContractOptions {
423
- readonly kind: PanelCardKind;
424
- readonly mediaId?: string;
425
- readonly mediaLabel?: string;
426
- readonly mediaPlacement?: PanelCardMediaPlacement;
427
- readonly actions?: readonly DataDisplayAction[];
428
- readonly hiddenActionIds?: readonly string[];
429
- readonly selected?: boolean;
430
- readonly selectedEmphasis?: boolean;
431
- }
432
- export interface PanelCardActionContract {
433
- readonly id: string;
434
- readonly state: PanelCardActionState;
435
- readonly attrs: UiAttributes;
436
- }
437
- export interface PanelCardMediaActionStateContract {
438
- readonly kind: PanelCardKind;
439
- readonly mediaState: PanelCardMediaState;
440
- readonly mediaPlacement: PanelCardMediaPlacement;
441
- readonly selectionState: PanelCardSelectionState;
442
- readonly selectedEmphasis: boolean;
443
- readonly actionCount: number;
444
- readonly readyActionIds: readonly string[];
445
- readonly disabledActionIds: readonly string[];
446
- readonly hiddenActionIds: readonly string[];
447
- readonly attrs: UiAttributes;
448
- readonly mediaAttrs: UiAttributes;
449
- readonly actionContracts: readonly PanelCardActionContract[];
450
- }
451
- export interface PageHeaderPlanOptions {
452
- readonly id?: string;
453
- readonly titleId: string;
454
- readonly subtitleId?: string;
455
- readonly breadcrumbLabel?: string;
456
- readonly actions?: readonly DataDisplayAction[];
457
- readonly tabsId?: string;
458
- readonly density?: DataToolbarDensity;
459
- readonly className?: string;
460
- readonly attrs?: UiAttributes;
461
- }
462
- export interface PageHeaderPlans {
463
- readonly root: UiDomPlan<'header'>;
464
- readonly breadcrumbSlot?: UiDomPlan<'nav'>;
465
- readonly content: UiDomPlan<'div'>;
466
- readonly title: UiDomPlan<'h1'>;
467
- readonly subtitle?: UiDomPlan<'p'>;
468
- readonly actionsSlot?: UiDomPlan<'div'>;
469
- readonly actions: readonly UiDomPlan<'button'>[];
470
- readonly tabsSlot?: UiDomPlan<'div'>;
471
- }
472
- export interface StatCardPlanOptions {
473
- readonly id?: string;
474
- readonly titleId: string;
475
- readonly descriptionId?: string;
476
- readonly value?: string | number;
477
- readonly unit?: string;
478
- readonly trend?: string;
479
- readonly trendDirection?: StatTrendDirection;
480
- readonly tone?: BadgeTone;
481
- readonly loading?: boolean;
482
- readonly action?: DataDisplayAction;
483
- readonly className?: string;
484
- readonly attrs?: UiAttributes;
485
- }
486
- export interface StatCardPlans {
487
- readonly root: UiDomPlan<'article'>;
488
- readonly header: UiDomPlan<'header'>;
489
- readonly title: UiDomPlan<'h3'>;
490
- readonly value: UiDomPlan<'output'>;
491
- readonly unit?: UiDomPlan<'span'>;
492
- readonly trend?: UiDomPlan<'span'>;
493
- readonly description?: UiDomPlan<'p'>;
494
- readonly actionButton?: UiDomPlan<'button'>;
495
- }
496
- export interface TablePanelPlanOptions extends Omit<TablePlanOptions, 'attrs' | 'className' | 'id'> {
497
- readonly id?: string;
498
- readonly titleId?: string;
499
- readonly descriptionId?: string;
500
- readonly toolbarLabel?: string;
501
- readonly actions?: readonly DataDisplayAction[];
502
- readonly loading?: boolean;
503
- readonly empty?: EmptyPlanOptions | boolean;
504
- readonly className?: string;
505
- readonly attrs?: UiAttributes;
506
- readonly tableAttrs?: UiAttributes;
507
- }
508
- export interface TablePanelPlans {
509
- readonly root: UiDomPlan<'section'>;
510
- readonly header?: UiDomPlan<'header'>;
511
- readonly title?: UiDomPlan<'h3'>;
512
- readonly description?: UiDomPlan<'p'>;
513
- readonly toolbarSlot?: UiDomPlan<'div'>;
514
- readonly actions: readonly UiDomPlan<'button'>[];
515
- readonly body: UiDomPlan<'div'>;
516
- readonly scroller: UiDomPlan<'div'>;
517
- readonly table: TablePlans;
518
- readonly empty?: UiDomPlan<'div'>;
519
- }
520
- export interface SkeletonScreenPlanOptions {
521
- readonly id?: string;
522
- readonly label?: string;
523
- readonly rows?: number;
524
- readonly density?: DataToolbarDensity;
525
- readonly animated?: boolean;
526
- readonly className?: string;
527
- readonly attrs?: UiAttributes;
528
- }
529
- export interface SkeletonScreenPlans {
530
- readonly root: UiDomPlan<'section'>;
531
- readonly rows: readonly UiDomPlan<'span'>[];
532
- }
533
- export interface SpinOverlayPlanOptions {
534
- readonly id?: string;
535
- readonly label?: string;
536
- readonly mode?: LoadingOverlayMode;
537
- readonly open?: boolean;
538
- readonly targetId?: string;
539
- readonly className?: string;
540
- readonly attrs?: UiAttributes;
541
- }
542
- export interface SpinOverlayPlans {
543
- readonly root: UiDomPlan<'div'>;
544
- readonly spinner: UiDomPlan<'span'>;
545
- }
546
- export interface ButtonLoadingPlanOptions {
547
- readonly id?: string;
548
- readonly label: string;
549
- readonly loading?: boolean;
550
- readonly disabled?: boolean;
551
- readonly variant?: UiButtonVariant;
552
- readonly size?: UiControlSize;
553
- readonly className?: string;
554
- readonly attrs?: UiAttributes;
555
- }
556
- export interface ButtonLoadingPlans {
557
- readonly root: UiDomPlan<'button'>;
558
- readonly indicator?: UiDomPlan<'span'>;
559
- readonly label: UiDomPlan<'span'>;
560
- }
561
- export interface TypographyPlanOptions {
562
- readonly id?: string;
563
- readonly variant?: TypographyVariant;
564
- readonly as?: 'a' | 'code' | 'h1' | 'h2' | 'h3' | 'p' | 'span';
565
- readonly label?: string;
566
- readonly href?: string;
567
- readonly truncate?: boolean;
568
- readonly className?: string;
569
- readonly attrs?: UiAttributes;
570
- }
571
- export interface TypographyRichContentBlock {
572
- readonly id: string;
573
- readonly kind: TypographyRichContentBlockKind;
574
- }
575
- export interface TypographyRichContentStateContractOptions {
576
- readonly source?: TypographyRichContentSource;
577
- readonly density?: TypographyRichContentDensity;
578
- readonly label?: string;
579
- readonly blocks?: readonly TypographyRichContentBlock[];
580
- }
581
- export interface TypographyRichContentBlockContract extends TypographyRichContentBlock {
582
- readonly attrs: UiAttributes;
583
- }
584
- export interface TypographyRichContentStateContract {
585
- readonly source: TypographyRichContentSource;
586
- readonly density: TypographyRichContentDensity;
587
- readonly state: TypographyRichContentState;
588
- readonly blockCount: number;
589
- readonly headingCount: number;
590
- readonly blockIds: readonly string[];
591
- readonly blocks: readonly TypographyRichContentBlockContract[];
592
- readonly attrs: UiAttributes;
593
- }
594
- export interface DividerPlanOptions {
595
- readonly id?: string;
596
- readonly orientation?: DividerOrientation;
597
- readonly inset?: boolean | 'end' | 'start';
598
- readonly label?: string;
599
- readonly labelId?: string;
600
- readonly className?: string;
601
- readonly attrs?: UiAttributes;
602
- }
603
- export interface DividerPlans {
604
- readonly root: UiDomPlan<'div'>;
605
- readonly label?: UiDomPlan<'span'>;
606
- }
607
- export interface DividerSectionHeadingStateContractOptions {
608
- readonly headingId: string;
609
- readonly sectionId: string;
610
- readonly level?: DividerSectionHeadingLevel;
611
- readonly descriptionId?: string;
612
- readonly current?: boolean;
613
- }
614
- export interface DividerSectionHeadingStateContract {
615
- readonly state: DividerSectionHeadingState;
616
- readonly headingId: string;
617
- readonly sectionId: string;
618
- readonly level: DividerSectionHeadingLevel;
619
- readonly attrs: UiAttributes;
620
- readonly headingAttrs: UiAttributes;
621
- readonly sectionAttrs: UiAttributes;
622
- }
623
- export interface AvatarPlanOptions {
624
- readonly id?: string;
625
- readonly name: string;
626
- readonly src?: string;
627
- readonly alt?: string;
628
- readonly initials?: string;
629
- readonly size?: AvatarSize;
630
- readonly status?: AvatarStatus;
631
- readonly className?: string;
632
- readonly attrs?: UiAttributes;
633
- }
634
- export interface AvatarPlans {
635
- readonly root: UiDomPlan<'span'>;
636
- readonly image?: UiDomPlan<'img'>;
637
- readonly fallback: UiDomPlan<'span'>;
638
- readonly status?: UiDomPlan<'span'>;
639
- }
640
- export interface AvatarGroupPlanOptions {
641
- readonly id?: string;
642
- readonly avatars: readonly AvatarPlanOptions[];
643
- readonly maxVisible?: number;
644
- readonly size?: AvatarSize;
645
- readonly label?: string;
646
- readonly className?: string;
647
- readonly attrs?: UiAttributes;
648
- }
649
- export interface AvatarGroupPlans {
650
- readonly root: UiDomPlan<'div'>;
651
- readonly avatars: readonly AvatarPlans[];
652
- readonly overflow?: UiDomPlan<'span'>;
653
- }
654
- export interface AvatarImagePresenceStateContractOptions {
655
- readonly name: string;
656
- readonly src?: string;
657
- readonly imageState?: AvatarImageState;
658
- readonly imageError?: string;
659
- readonly status?: AvatarStatus;
660
- readonly presenceSource?: AvatarPresenceSource;
661
- readonly presenceUpdatedAt?: string;
662
- readonly cacheKey?: string;
663
- readonly cacheState?: AvatarCacheState;
664
- readonly cachedAt?: string;
665
- readonly fallbackInitials?: string;
666
- }
667
- export interface AvatarImagePresenceStateContract {
668
- readonly imageState: AvatarImageState;
669
- readonly presenceSource: AvatarPresenceSource;
670
- readonly cacheState: AvatarCacheState;
671
- readonly fallbackInitials: string;
672
- readonly attrs: UiAttributes;
673
- }
674
- export interface KbdPlanOptions {
675
- readonly key: string;
676
- readonly label?: string;
677
- readonly className?: string;
678
- readonly attrs?: UiAttributes;
679
- }
680
- export interface ShortcutPlanOptions {
681
- readonly keys: readonly string[];
682
- readonly label?: string;
683
- readonly className?: string;
684
- readonly attrs?: UiAttributes;
685
- }
686
- export interface ShortcutPlans {
687
- readonly root: UiDomPlan<'span'>;
688
- readonly keys: readonly UiDomPlan<'kbd'>[];
689
- readonly separators: readonly UiDomPlan<'span'>[];
690
- }
691
- export interface ShortcutDisplayStateContractOptions {
692
- readonly keys: readonly string[];
693
- readonly platform?: ShortcutPlatform;
694
- readonly modifierAliases?: Readonly<Record<string, string>>;
695
- readonly label?: string;
696
- }
697
- export interface ShortcutDisplayKeyContract {
698
- readonly key: string;
699
- readonly displayKey: string;
700
- readonly aliased: boolean;
701
- readonly attrs: UiAttributes;
702
- }
703
- export interface ShortcutDisplayStateContract {
704
- readonly platform: ShortcutPlatform;
705
- readonly state: ShortcutDisplayState;
706
- readonly keys: readonly string[];
707
- readonly displayKeys: readonly string[];
708
- readonly aliasedKeys: readonly string[];
709
- readonly label: string;
710
- readonly keyContracts: readonly ShortcutDisplayKeyContract[];
711
- readonly attrs: UiAttributes;
712
- }
713
- export interface PaginationPlanOptions {
714
- readonly id?: string;
715
- readonly page: number;
716
- readonly pageCount?: number;
717
- readonly pageSize?: number;
718
- readonly totalItems?: number;
719
- readonly siblingCount?: number;
720
- readonly boundaryCount?: number;
721
- readonly label?: string;
722
- readonly previousLabel?: string;
723
- readonly nextLabel?: string;
724
- readonly pageLabel?: (page: number) => string;
725
- readonly summary?: string;
726
- readonly className?: string;
727
- readonly attrs?: UiAttributes;
728
- }
729
- export interface PaginationItem {
730
- readonly kind: PaginationItemKind;
731
- readonly page?: number;
732
- readonly current?: boolean;
733
- }
734
- export interface PaginationPlans {
735
- readonly root: UiDomPlan<'nav'>;
736
- readonly list: UiDomPlan<'ol'>;
737
- readonly previous: UiDomPlan<'button'>;
738
- readonly pages: readonly UiDomPlan<'button' | 'span'>[];
739
- readonly next: UiDomPlan<'button'>;
740
- readonly summary: UiDomPlan<'output'>;
741
- readonly model: PaginationModel;
742
- }
743
- export interface PaginationModel {
744
- readonly rootId: string;
745
- readonly rootClassName: string;
746
- readonly page: number;
747
- readonly pageCount: number;
748
- readonly totalItems: number;
749
- readonly previousClassName: string;
750
- readonly previousLabel: string;
751
- readonly previousPage: number;
752
- readonly previousDisabled: boolean;
753
- readonly listClassName: string;
754
- readonly pages: readonly PaginationItemModel[];
755
- readonly nextClassName: string;
756
- readonly nextLabel: string;
757
- readonly nextPage: number;
758
- readonly nextDisabled: boolean;
759
- readonly summaryClassName: string;
760
- readonly summary: string;
761
- }
762
- export interface PaginationItemModel {
763
- readonly id: string;
764
- readonly className: string;
765
- readonly kind: PaginationItemKind;
766
- readonly page: number;
767
- readonly state: 'current' | 'idle' | 'ellipsis';
768
- readonly current: 'page' | undefined;
769
- readonly label: string;
770
- }
771
- export interface ListItemPlanOptions {
772
- readonly id: string;
773
- readonly label?: string;
774
- readonly description?: string;
775
- readonly meta?: string;
776
- readonly icon?: boolean;
777
- readonly selected?: boolean;
778
- readonly disabled?: boolean;
779
- readonly actionLabel?: string;
780
- }
781
- export interface ListPlanOptions {
782
- readonly id?: string;
783
- readonly items: readonly ListItemPlanOptions[];
784
- readonly ordered?: boolean;
785
- readonly selectionMode?: ListSelectionMode;
786
- readonly density?: DataToolbarDensity;
787
- readonly label?: string;
788
- readonly className?: string;
789
- readonly attrs?: UiAttributes;
790
- }
791
- export interface ListPlans {
792
- readonly root: UiDomPlan<'ol' | 'ul'>;
793
- readonly items: readonly UiDomPlan<'li'>[];
794
- readonly icons: readonly (UiDomPlan<'span'> | undefined)[];
795
- readonly labels: readonly UiDomPlan<'span'>[];
796
- readonly descriptions: readonly (UiDomPlan<'p'> | undefined)[];
797
- readonly metas: readonly (UiDomPlan<'span'> | undefined)[];
798
- readonly actions: readonly (UiDomPlan<'button'> | undefined)[];
799
- }
800
- export interface ListGroupStateContractOptions {
801
- readonly id: string;
802
- readonly headingId: string;
803
- readonly label: string;
804
- readonly itemIds: readonly string[];
805
- }
806
- export interface ListGroupedItemActionStateContractOptions {
807
- readonly items: readonly ListItemPlanOptions[];
808
- readonly groups?: readonly ListGroupStateContractOptions[];
809
- readonly actionDisabledIds?: readonly string[];
810
- readonly actionHiddenIds?: readonly string[];
811
- }
812
- export interface ListGroupStateContract {
813
- readonly id: string;
814
- readonly label: string;
815
- readonly itemIds: readonly string[];
816
- readonly itemCount: number;
817
- readonly selectedCount: number;
818
- readonly selectionState: ListGroupSelectionState;
819
- readonly attrs: UiAttributes;
820
- readonly headingAttrs: UiAttributes;
821
- }
822
- export interface ListGroupedItemActionContract {
823
- readonly id: string;
824
- readonly groupId: string;
825
- readonly actionState: ListItemActionState;
826
- readonly attrs: UiAttributes;
827
- readonly actionAttrs: UiAttributes;
828
- }
829
- export interface ListGroupedItemActionStateContract {
830
- readonly state: ListGroupedState;
831
- readonly itemCount: number;
832
- readonly groupCount: number;
833
- readonly groupedItemCount: number;
834
- readonly actionCount: number;
835
- readonly groupIds: readonly string[];
836
- readonly readyActionIds: readonly string[];
837
- readonly disabledActionIds: readonly string[];
838
- readonly hiddenActionIds: readonly string[];
839
- readonly attrs: UiAttributes;
840
- readonly groups: readonly ListGroupStateContract[];
841
- readonly items: readonly ListGroupedItemActionContract[];
842
- }
843
- export interface CarouselSlidePlanOptions {
844
- readonly id: string;
845
- readonly label: string;
846
- }
847
- export interface CarouselPlanOptions {
848
- readonly id?: string;
849
- readonly label: string;
850
- readonly slides: readonly CarouselSlidePlanOptions[];
851
- readonly currentSlideId?: string;
852
- readonly playback?: CarouselPlaybackState;
853
- readonly previousLabel?: string;
854
- readonly nextLabel?: string;
855
- readonly playLabel?: string;
856
- readonly pauseLabel?: string;
857
- readonly className?: string;
858
- readonly attrs?: UiAttributes;
859
- }
860
- export interface CarouselPlans {
861
- readonly state: CarouselState;
862
- readonly playbackState: CarouselPlaybackState;
863
- readonly currentSlideId: string;
864
- readonly currentSlidePosition: number;
865
- readonly slideCount: number;
866
- readonly root: UiDomPlan<'section'>;
867
- readonly viewport: UiDomPlan<'div'>;
868
- readonly track: UiDomPlan<'div'>;
869
- readonly slides: readonly UiDomPlan<'article'>[];
870
- readonly controls: UiDomPlan<'div'>;
871
- readonly previous: UiDomPlan<'button'>;
872
- readonly next: UiDomPlan<'button'>;
873
- readonly playback: UiDomPlan<'button'>;
874
- readonly indicators: UiDomPlan<'div'>;
875
- readonly indicatorButtons: readonly UiDomPlan<'button'>[];
876
- }
877
- export interface ProgressPlanOptions {
878
- readonly value: number;
879
- readonly max?: number;
880
- readonly status?: ProgressStatus;
881
- readonly label?: string;
882
- readonly className?: string;
883
- readonly attrs?: UiAttributes;
884
- }
885
- export interface SplitWorkspaceArea {
886
- readonly id: string;
887
- readonly role: SplitWorkspaceAreaRole;
888
- readonly minWidth?: string;
889
- readonly fallback?: SplitWorkspaceTabletFallback;
890
- }
891
- export interface SplitWorkspacePlans {
892
- readonly root: UiDomPlan<'section'>;
893
- readonly areas: readonly UiDomPlan<'section'>[];
894
- }
895
- export interface SplitWorkspacePlanOptions {
896
- readonly id?: string;
897
- readonly areas: readonly SplitWorkspaceArea[];
898
- readonly tabletFallback?: SplitWorkspaceTabletFallback;
899
- readonly className?: string;
900
- readonly attrs?: UiAttributes;
901
- }
902
- export declare function createTablePlans(options: TablePlanOptions): TablePlans;
903
- export declare function getNextTableSortDirection(current: TableSortDirection | undefined, cycle?: 'binary' | 'tri-state'): TableSortDirection;
904
- export declare function toggleTableRowSelection(selectedIds: ReadonlySet<string>, rowId: string, multiselect?: boolean): ReadonlySet<string>;
905
- export declare function createTableToolbarStateContract(options?: TableToolbarStateContractOptions): TableToolbarStateContract;
906
- export declare function createTableColumnPreferenceStateContract(options: TableColumnPreferenceStateContractOptions): TableColumnPreferenceStateContract;
907
- export declare function createTableCellStateContract(options: TableCellStateContractOptions): TableCellStateContract;
908
- export declare function createTableBatchActionStateContract(options?: TableBatchActionStateContractOptions): TableBatchActionStateContract;
909
- export declare function createFilterBarPlans(options: FilterBarPlanOptions): FilterBarPlans;
910
- export declare function createDataToolbarPlans(options?: DataToolbarPlanOptions): DataToolbarPlans;
911
- export declare function formatDataToolbarSummary(options: Pick<DataToolbarPlanOptions, 'filteredCount' | 'selectedCount' | 'totalCount'>): string;
912
- export declare function createEmptyPlan(options?: EmptyPlanOptions): UiDomPlan<'div'>;
913
- export declare function createEmptyPlans(options?: EmptyPlanOptions): EmptyPlans;
914
- export declare function createResultPlans(options?: ResultPlanOptions): ResultPlans;
915
- export declare function createBadgePlan(options?: BadgePlanOptions): UiDomPlan<'span'>;
916
- export declare function createBadgeCountOverflowContract(options?: BadgeCountOverflowContractOptions): BadgeCountOverflowContract;
917
- export declare function createTagPlans(options: TagPlanOptions): TagPlans;
918
- export declare function createChipPlans(options: Omit<TagPlanOptions, 'variant'>): TagPlans;
919
- export declare function createNotePlans(options?: NotePlanOptions): NotePlans;
920
- export declare function createCalloutPlans(options?: NotePlanOptions): NotePlans;
921
- export declare function createNoteRichContentStateContract(options: NoteRichContentStateContractOptions): NoteRichContentStateContract;
922
- export declare function createPanelPlans(options?: PanelPlanOptions): PanelPlans;
923
- export declare function createCardPlans(options?: PanelPlanOptions): PanelPlans;
924
- export declare function createPanelCardMediaActionStateContract(options: PanelCardMediaActionStateContractOptions): PanelCardMediaActionStateContract;
925
- export declare function createPageHeaderPlans(options: PageHeaderPlanOptions): PageHeaderPlans;
926
- export declare function createStatCardPlans(options: StatCardPlanOptions): StatCardPlans;
927
- export declare function createTablePanelPlans(options: TablePanelPlanOptions): TablePanelPlans;
928
- export declare function createProgressPlan(options: ProgressPlanOptions): UiDomPlan<'div'>;
929
- export declare function createTypographyPlan(options?: TypographyPlanOptions): UiDomPlan<'a' | 'code' | 'h1' | 'h2' | 'h3' | 'p' | 'span'>;
930
- export declare function createTypographyRichContentStateContract(options?: TypographyRichContentStateContractOptions): TypographyRichContentStateContract;
931
- export declare function createDividerPlans(options?: DividerPlanOptions): DividerPlans;
932
- export declare function createDividerSectionHeadingStateContract(options: DividerSectionHeadingStateContractOptions): DividerSectionHeadingStateContract;
933
- export declare function createAvatarPlans(options: AvatarPlanOptions): AvatarPlans;
934
- export declare function createAvatarGroupPlans(options: AvatarGroupPlanOptions): AvatarGroupPlans;
935
- export declare function createAvatarImagePresenceStateContract(options: AvatarImagePresenceStateContractOptions): AvatarImagePresenceStateContract;
936
- export declare function createKbdPlan(options: KbdPlanOptions): UiDomPlan<'kbd'>;
937
- export declare function createShortcutPlans(options: ShortcutPlanOptions): ShortcutPlans;
938
- export declare function createShortcutDisplayStateContract(options: ShortcutDisplayStateContractOptions): ShortcutDisplayStateContract;
939
- export declare function createPaginationPlans(options: PaginationPlanOptions): PaginationPlans;
940
- export declare function createPaginationItems(options: Pick<PaginationPlanOptions, 'boundaryCount' | 'page' | 'pageCount' | 'siblingCount'>): readonly PaginationItem[];
941
- export declare function formatPaginationSummary(options: Pick<PaginationPlanOptions, 'page' | 'pageCount' | 'pageSize' | 'totalItems'>): string;
942
- export declare function createListPlans(options: ListPlanOptions): ListPlans;
943
- export declare function createListGroupedItemActionStateContract(options: ListGroupedItemActionStateContractOptions): ListGroupedItemActionStateContract;
944
- export declare function createCarouselPlans(options: CarouselPlanOptions): CarouselPlans;
945
- export declare function createSplitWorkspacePlans(options: SplitWorkspacePlanOptions): SplitWorkspacePlans;
946
- export declare function createSkeletonScreenPlans(options?: SkeletonScreenPlanOptions): SkeletonScreenPlans;
947
- export declare function createSpinOverlayPlans(options?: SpinOverlayPlanOptions): SpinOverlayPlans;
948
- export declare function createButtonLoadingPlans(options: ButtonLoadingPlanOptions): ButtonLoadingPlans;
949
- /**
950
- * Descriptions plans — read-only info display on detail pages (dl/dt/dd semantics).
951
- * Spec source: common enterprise-backend component set (no UIStyle spec, this is an out-of-spec component).
952
- */
953
- export type DescriptionsLayout = 'horizontal' | 'vertical';
954
- export interface DescriptionsItemInput {
955
- readonly id: string;
956
- readonly label: string;
957
- /** Value (carried via data-value, filled at render time). */
958
- readonly value?: string;
959
- /** Column span (column layout). */
960
- readonly span?: number;
961
- }
962
- export interface DescriptionsItemPlan {
963
- readonly itemId: string;
964
- readonly label: UiDomPlan<'dt'>;
965
- readonly value: UiDomPlan<'dd'>;
966
- }
967
- export interface DescriptionsPlans {
968
- readonly root: UiDomPlan<'dl'>;
969
- readonly items: readonly DescriptionsItemPlan[];
970
- }
971
- export interface DescriptionsPlanOptions {
972
- readonly id: string;
973
- readonly items: readonly DescriptionsItemInput[];
974
- readonly layout?: DescriptionsLayout;
975
- readonly bordered?: boolean;
976
- readonly column?: number;
977
- readonly className?: string;
978
- readonly attrs?: UiAttributes;
979
- }
980
- export declare function createDescriptionsPlans(options: DescriptionsPlanOptions): DescriptionsPlans;
981
- /**
982
- * Timeline plans — history/process records (ul/li semantics + node states).
983
- * Spec source: common enterprise-backend component set (no UIStyle spec, this is an out-of-spec component).
984
- */
985
- export type TimelineItemState = 'default' | 'error' | 'success' | 'warning';
986
- export interface TimelineItemInput {
987
- readonly id: string;
988
- readonly title: string;
989
- readonly description?: string;
990
- readonly time?: string;
991
- readonly state?: TimelineItemState;
992
- }
993
- export interface TimelineItemPlan {
994
- readonly itemId: string;
995
- /** Derived state (data-state). */
996
- readonly state: TimelineItemState;
997
- readonly title: UiDomPlan<'div'>;
998
- readonly description: UiDomPlan<'div'>;
999
- readonly time: UiDomPlan<'div'>;
1000
- }
1001
- export interface TimelinePlans {
1002
- readonly root: UiDomPlan<'ul'>;
1003
- readonly items: readonly TimelineItemPlan[];
1004
- }
1005
- export interface TimelinePlanOptions {
1006
- readonly id: string;
1007
- readonly items: readonly TimelineItemInput[];
1008
- readonly className?: string;
1009
- readonly attrs?: UiAttributes;
1010
- }
1011
- export declare function createTimelinePlans(options: TimelinePlanOptions): TimelinePlans;
1012
- /**
1013
- * Image plans — image display + optional zoom preview (overlay + close + caption).
1014
- * Spec source: common enterprise-backend component set (avatar/product image/screenshot viewing).
1015
- */
1016
- export interface ImagePlans {
1017
- readonly root: UiDomPlan<'figure'>;
1018
- readonly image: UiDomPlan<'img'>;
1019
- /** Zoom-preview overlay (present when preview=true, hidden by default). */
1020
- readonly overlay: UiDomPlan<'div'>;
1021
- readonly close: UiDomPlan<'button'>;
1022
- readonly caption: UiDomPlan<'figcaption'>;
1023
- }
1024
- export interface ImagePlanOptions {
1025
- readonly id: string;
1026
- readonly src?: string;
1027
- readonly alt?: string;
1028
- readonly caption?: string;
1029
- /** Whether the image can be clicked to open the zoom preview (default false). */
1030
- readonly preview?: boolean;
1031
- readonly className?: string;
1032
- readonly attrs?: UiAttributes;
1033
- }
1034
- export declare function createImagePlans(options: ImagePlanOptions): ImagePlans;
1035
- /**
1036
- * Back Top plans — fixed-position back-to-top button.
1037
- * Spec source: common enterprise-backend component set (long lists/long pages).
1038
- */
1039
- export interface BackTopPlans {
1040
- readonly root: UiDomPlan<'button'>;
1041
- }
1042
- export interface BackTopPlanOptions {
1043
- readonly id: string;
1044
- /** Visibility (default false; the app controls the scroll threshold). */
1045
- readonly visible?: boolean;
1046
- readonly disabled?: boolean;
1047
- readonly className?: string;
1048
- readonly attrs?: UiAttributes;
1049
- }
1050
- export declare function createBackTopPlans(options: BackTopPlanOptions): BackTopPlans;
1051
- /**
1052
- * Text highlight (Highlight) — search/filter hit marking.
1053
- * Core is a pure splitter function (no DOM dependency, testable): splits text into plain/highlight segments by query;
1054
- * the app wraps highlighted segments in <mark class="kui-highlight"> at render time.
1055
- * Spec source: common enterprise-backend component set (search-result keyword location).
1056
- */
1057
- export interface HighlightSegment {
1058
- readonly text: string;
1059
- readonly highlighted: boolean;
1060
- }
1061
- /**
1062
- * Splits text into highlight/plain segments by query.
1063
- * - Case-insensitive; supports multiple keywords (array); empty query/text returns a single plain segment.
1064
- * - Overlapping hits are resolved by the earliest position (no nesting).
1065
- */
1066
- export declare function splitHighlightSegments(text: string, query: string | readonly string[]): readonly HighlightSegment[];
1067
- /** Highlight-mark plan (used by the app for highlighted segments at render time). */
1068
- export declare function createHighlightMark(text: string, id?: string): UiDomPlan<'mark'>;
1069
- /**
1070
- * Code Block plans — structure + language marker + copy button + optional line numbers.
1071
- * Syntax highlighting is not built in (heavy engines go through the adapter-shiki path) — plans provide a data-language marker and a code container.
1072
- * Spec source: common enterprise-backend component set (docs/work-order code display).
1073
- */
1074
- export interface CodeBlockPlans {
1075
- readonly root: UiDomPlan<'figure'>;
1076
- readonly header: UiDomPlan<'div'>;
1077
- readonly language: UiDomPlan<'span'>;
1078
- readonly copy: UiDomPlan<'button'>;
1079
- /** Code content container (data-code carries the source; apps/adapters render highlighted HTML). */
1080
- readonly code: UiDomPlan<'pre'>;
1081
- /** Line-numbers container (present when showLineNumbers=true; numbers are rendered by the app). */
1082
- readonly lineNumbers?: UiDomPlan<'div'>;
1083
- }
1084
- export interface CodeBlockPlanOptions {
1085
- readonly id: string;
1086
- readonly code?: string;
1087
- /** Language identifier ('ts'/'css'/...), used for the label and highlighting-engine selection. */
1088
- readonly language?: string;
1089
- readonly showLineNumbers?: boolean;
1090
- readonly copyable?: boolean;
1091
- readonly className?: string;
1092
- readonly attrs?: UiAttributes;
1093
- }
1094
- export declare function createCodeBlockPlans(options: CodeBlockPlanOptions): CodeBlockPlans;