@k2b/ui 0.1.0-rc.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +77 -312
  2. package/dist/types/actions/Button.d.ts +38 -0
  3. package/dist/types/actions/ContextMenu.d.ts +17 -0
  4. package/dist/types/actions/CopyButton.d.ts +20 -0
  5. package/dist/types/actions/Disclosure.d.ts +15 -0
  6. package/dist/types/actions/Dropdown.d.ts +100 -0
  7. package/dist/types/actions/FilterChip.d.ts +27 -0
  8. package/dist/types/actions/RemoveButton.d.ts +7 -0
  9. package/dist/types/actions/SegmentedControl.d.ts +20 -0
  10. package/dist/types/actions/SplitButton.d.ts +13 -0
  11. package/dist/types/actions/SpotlightSearch.d.ts +25 -0
  12. package/dist/types/actions/Tabs.d.ts +27 -0
  13. package/dist/types/actions/Toolbar.d.ts +23 -0
  14. package/dist/types/actions/index.d.ts +24 -0
  15. package/dist/types/chat/ChatComposer.d.ts +57 -0
  16. package/dist/types/chat/ChatPrimitives.d.ts +48 -0
  17. package/dist/types/chat/ChatRoot.d.ts +7 -0
  18. package/dist/types/chat/ChatTimeline.d.ts +52 -0
  19. package/dist/types/chat/chat-behavior.d.ts +29 -0
  20. package/dist/types/chat/index.d.ts +21 -0
  21. package/dist/types/chat/types.d.ts +62 -0
  22. package/dist/types/content/Calendar.d.ts +115 -0
  23. package/dist/types/content/Chart.d.ts +90 -0
  24. package/dist/types/content/CodeDisplay.d.ts +11 -0
  25. package/dist/types/content/DataTable.d.ts +113 -0
  26. package/dist/types/content/Docs.d.ts +52 -0
  27. package/dist/types/content/FileBrowser.d.ts +40 -0
  28. package/dist/types/content/FileTree.d.ts +29 -0
  29. package/dist/types/content/FileView.d.ts +59 -0
  30. package/dist/types/content/Lightbox.d.ts +16 -0
  31. package/dist/types/content/LogEntriesTable.d.ts +14 -0
  32. package/dist/types/content/MarkdownView.d.ts +46 -0
  33. package/dist/types/content/Pagination.d.ts +10 -0
  34. package/dist/types/content/PdfPreview.d.ts +11 -0
  35. package/dist/types/content/RangePicker.d.ts +29 -0
  36. package/dist/types/content/StructuredDataPreview.d.ts +20 -0
  37. package/dist/types/content/calendar-event-layout.d.ts +16 -0
  38. package/dist/types/content/calendar-pointer.d.ts +22 -0
  39. package/dist/types/content/chart-map-viewport.d.ts +5 -0
  40. package/dist/types/content/chart-state-timeline.d.ts +42 -0
  41. package/dist/types/content/code-highlight.d.ts +14 -0
  42. package/dist/types/content/file-tree.d.ts +41 -0
  43. package/dist/types/content/file-view-preview.d.ts +22 -0
  44. package/dist/types/content/index.d.ts +26 -0
  45. package/dist/types/feedback/InlineGuidance.d.ts +10 -0
  46. package/dist/types/feedback/Tooltip.d.ts +18 -0
  47. package/dist/types/feedback/dialog-core.d.ts +19 -0
  48. package/dist/types/feedback/index.d.ts +10 -0
  49. package/dist/types/feedback/prompts.d.ts +164 -0
  50. package/dist/types/feedback/toast.d.ts +25 -0
  51. package/dist/types/feedback/tooltip-position.d.ts +2 -0
  52. package/dist/types/index.d.ts +10 -0
  53. package/dist/types/inputs/AutocompleteEditor.d.ts +21 -0
  54. package/dist/types/inputs/AutocompleteSelect.d.ts +30 -0
  55. package/dist/types/inputs/Checkbox.d.ts +9 -0
  56. package/dist/types/inputs/CheckboxCard.d.ts +9 -0
  57. package/dist/types/inputs/ChoiceGroups.d.ts +13 -0
  58. package/dist/types/inputs/ChoiceInputs.d.ts +24 -0
  59. package/dist/types/inputs/Combobox.d.ts +18 -0
  60. package/dist/types/inputs/DatePicker.d.ts +31 -0
  61. package/dist/types/inputs/FileInputs.d.ts +31 -0
  62. package/dist/types/inputs/MultiSelectInput.d.ts +41 -0
  63. package/dist/types/inputs/NumberInput.d.ts +24 -0
  64. package/dist/types/inputs/Select.d.ts +50 -0
  65. package/dist/types/inputs/SelectChip.d.ts +25 -0
  66. package/dist/types/inputs/SpecialInputs.d.ts +21 -0
  67. package/dist/types/inputs/Switch.d.ts +7 -0
  68. package/dist/types/inputs/TagEditor.d.ts +35 -0
  69. package/dist/types/inputs/TagsInput.d.ts +11 -0
  70. package/dist/types/inputs/TemplateEditor.d.ts +28 -0
  71. package/dist/types/inputs/TextInput.d.ts +26 -0
  72. package/dist/types/inputs/choice.d.ts +32 -0
  73. package/dist/types/inputs/completion/behaviors.d.ts +13 -0
  74. package/dist/types/inputs/completion/engine.d.ts +54 -0
  75. package/dist/types/inputs/completion/index.d.ts +3 -0
  76. package/dist/types/inputs/completion/overlay.d.ts +11 -0
  77. package/dist/types/inputs/date-picker.d.ts +42 -0
  78. package/dist/types/inputs/editor-dom.d.ts +6 -0
  79. package/dist/types/inputs/field-contract.d.ts +24 -0
  80. package/dist/types/inputs/icon-options.d.ts +37 -0
  81. package/dist/types/inputs/image-crop.d.ts +44 -0
  82. package/dist/types/inputs/index.d.ts +45 -0
  83. package/dist/types/inputs/markdown/MarkdownEditor.d.ts +25 -0
  84. package/dist/types/inputs/markdown/Toolbar.d.ts +9 -0
  85. package/dist/types/inputs/markdown/actions.d.ts +8 -0
  86. package/dist/types/inputs/markdown/active-formats.d.ts +1 -0
  87. package/dist/types/inputs/markdown/behaviors.d.ts +3 -0
  88. package/dist/types/inputs/markdown/code-zone.d.ts +1 -0
  89. package/dist/types/internal/color.d.ts +4 -0
  90. package/dist/types/internal/field.d.ts +27 -0
  91. package/dist/types/internal/portal.d.ts +1 -0
  92. package/dist/types/intl/Format.d.ts +84 -0
  93. package/dist/types/intl/index.d.ts +4 -0
  94. package/dist/types/intl/locale.d.ts +42 -0
  95. package/dist/types/intl/messages.d.ts +375 -0
  96. package/dist/types/layout/AppOverview.d.ts +29 -0
  97. package/dist/types/layout/AppWorkspace.d.ts +254 -0
  98. package/dist/types/layout/DataPanel.d.ts +16 -0
  99. package/dist/types/layout/DetailPanel.d.ts +89 -0
  100. package/dist/types/layout/Discussion.d.ts +52 -0
  101. package/dist/types/layout/FloatingWindow.d.ts +19 -0
  102. package/dist/types/layout/PanelDialog.d.ts +72 -0
  103. package/dist/types/layout/PanelHeader.d.ts +10 -0
  104. package/dist/types/layout/Panes.d.ts +48 -0
  105. package/dist/types/layout/ScrollArea.d.ts +8 -0
  106. package/dist/types/layout/Settings.d.ts +72 -0
  107. package/dist/types/layout/SettingsCollection.d.ts +41 -0
  108. package/dist/types/layout/SettingsModal.d.ts +39 -0
  109. package/dist/types/layout/app-workspace-controller.d.ts +7 -0
  110. package/dist/types/layout/app-workspace-state.d.ts +57 -0
  111. package/dist/types/layout/floating-window-geometry.d.ts +11 -0
  112. package/dist/types/layout/index.d.ts +32 -0
  113. package/dist/types/layout/panes-layout.d.ts +63 -0
  114. package/dist/types/layout/stable-id.d.ts +3 -0
  115. package/dist/types/semantics.d.ts +4 -0
  116. package/dist/types/surfaces/Avatar.d.ts +14 -0
  117. package/dist/types/surfaces/DescriptionList.d.ts +17 -0
  118. package/dist/types/surfaces/LinkCard.d.ts +11 -0
  119. package/dist/types/surfaces/NotFoundState.d.ts +15 -0
  120. package/dist/types/surfaces/NoticeCard.d.ts +39 -0
  121. package/dist/types/surfaces/Paper.d.ts +13 -0
  122. package/dist/types/surfaces/Placeholder.d.ts +17 -0
  123. package/dist/types/surfaces/ProgressBar.d.ts +13 -0
  124. package/dist/types/surfaces/StatCell.d.ts +22 -0
  125. package/dist/types/surfaces/StatGrid.d.ts +21 -0
  126. package/dist/types/surfaces/StatusBadge.d.ts +12 -0
  127. package/dist/types/surfaces/Tag.d.ts +16 -0
  128. package/dist/types/surfaces/index.d.ts +24 -0
  129. package/dist/types/widgets/Widget.d.ts +12 -0
  130. package/dist/types/widgets/WidgetHero.d.ts +11 -0
  131. package/dist/types/widgets/WidgetList.d.ts +17 -0
  132. package/dist/types/widgets/WidgetPills.d.ts +14 -0
  133. package/dist/types/widgets/WidgetStat.d.ts +17 -0
  134. package/dist/types/widgets/WidgetStatus.d.ts +12 -0
  135. package/dist/types/widgets/index.d.ts +6 -0
  136. package/package.json +1 -1
@@ -0,0 +1,375 @@
1
+ declare const uiMessages: import("@k2b/stdlib").Catalog<{
2
+ actions: string;
3
+ add: string;
4
+ addTag: string;
5
+ addImage: string;
6
+ attachments: string;
7
+ assistant: string;
8
+ avatarLabel: ({ name }: {
9
+ name: string;
10
+ }) => string;
11
+ all: string;
12
+ calendar: string;
13
+ clear: string;
14
+ clearDate: string;
15
+ clearSelection: string;
16
+ chooseOption: string;
17
+ close: string;
18
+ closeDialog: string;
19
+ copied: string;
20
+ copy: string;
21
+ closeLightbox: string;
22
+ couldNotLoadData: string;
23
+ datePicker: string;
24
+ dataTable: string;
25
+ datePresets: string;
26
+ decreaseValue: string;
27
+ download: string;
28
+ downloadAsZip: string;
29
+ downloadImage: string;
30
+ dropFiles: string;
31
+ dropToUpload: string;
32
+ dropdownMenu: string;
33
+ durationPresets: string;
34
+ filterOptions: string;
35
+ fileTypeNotAccepted: string;
36
+ imageLightbox: string;
37
+ imageNavigation: string;
38
+ increaseValue: string;
39
+ loading: string;
40
+ hidePassword: string;
41
+ noColumns: string;
42
+ noData: string;
43
+ noRecords: string;
44
+ noTagsYet: string;
45
+ noResultsFound: string;
46
+ nextImage: string;
47
+ noOptions: string;
48
+ optionsCouldNotLoad: string;
49
+ noResults: string;
50
+ nothingHere: string;
51
+ nothingToShow: string;
52
+ no: string;
53
+ options: string;
54
+ pagination: string;
55
+ pageOf: ({ page, total }: {
56
+ page: number;
57
+ total: number;
58
+ }) => string;
59
+ pickDate: string;
60
+ previousImage: string;
61
+ previousMonth: string;
62
+ previousPage: string;
63
+ previousYear: string;
64
+ nextMonth: string;
65
+ nextPage: string;
66
+ nextYear: string;
67
+ goToPage: ({ page }: {
68
+ page: number;
69
+ }) => string;
70
+ retry: string;
71
+ reset: string;
72
+ required: string;
73
+ rename: string;
74
+ delete: string;
75
+ remove: string;
76
+ removeTag: string;
77
+ search: string;
78
+ searchLabel: string;
79
+ spotlightNoResults: string;
80
+ searchFailed: string;
81
+ searchResults: string;
82
+ save: string;
83
+ saveShortcut: string;
84
+ sectionsLabel: ({ title }: {
85
+ title: string;
86
+ }) => string;
87
+ searchOptions: string;
88
+ select: string;
89
+ selectMatchingOption: string;
90
+ selectOption: string;
91
+ suggestions: string;
92
+ suggestionsCouldNotLoad: string;
93
+ showPassword: string;
94
+ time: string;
95
+ timeLabel: ({ label }: {
96
+ label: string;
97
+ }) => string;
98
+ completionSuggestions: string;
99
+ contextMenu: string;
100
+ unknownUser: string;
101
+ uploading: string;
102
+ chooseFile: string;
103
+ chooseFiles: string;
104
+ chooseMatchingFile: string;
105
+ checkingOptions: string;
106
+ checkingOptionsLoading: string;
107
+ noMatchingOption: string;
108
+ noOptionsFound: string;
109
+ typeToSearch: string;
110
+ showGridView: string;
111
+ showListView: string;
112
+ start: string;
113
+ end: string;
114
+ addFileFolderUpload: string;
115
+ addPane: string;
116
+ addToChat: string;
117
+ attachFiles: string;
118
+ addGuidance: string;
119
+ calendarView: string;
120
+ openDate: ({ label }: {
121
+ label: string;
122
+ }) => string;
123
+ createEventOn: ({ label }: {
124
+ label: string;
125
+ }) => string;
126
+ hiddenOverlappingEvents: ({ count }: {
127
+ count: number;
128
+ }) => string;
129
+ today: string;
130
+ day: string;
131
+ week: string;
132
+ weekShort: string;
133
+ month: string;
134
+ year: string;
135
+ allDay: string;
136
+ noEvents: string;
137
+ previous: string;
138
+ next: string;
139
+ moveEvent: string;
140
+ resizeEvent: string;
141
+ cancel: string;
142
+ chat: string;
143
+ chooseModel: string;
144
+ closeWindow: string;
145
+ code: string;
146
+ codeLabel: ({ title }: {
147
+ title: string;
148
+ }) => string;
149
+ column: ({ number }: {
150
+ number: number;
151
+ }) => string;
152
+ commands: string;
153
+ dropFilesToAttach: string;
154
+ conversation: string;
155
+ conversationMessages: ({ label }: {
156
+ label: string;
157
+ }) => string;
158
+ dialogTabs: string;
159
+ files: string;
160
+ chooseFileToPreview: string;
161
+ change: string;
162
+ changeImage: string;
163
+ cropArea: string;
164
+ cropPreview: string;
165
+ discardChanges: string;
166
+ discardUnsavedFile: string;
167
+ downloadFailed: string;
168
+ failedLoadFiles: string;
169
+ failedLoadImage: string;
170
+ folderEmpty: string;
171
+ folderSelected: string;
172
+ newFile: string;
173
+ newFileName: string;
174
+ newFolder: string;
175
+ newFolderName: string;
176
+ fileActions: string;
177
+ actionsFor: ({ name }: {
178
+ name: string;
179
+ }) => string;
180
+ fileSaved: string;
181
+ pickFileFromTree: string;
182
+ imageProcessingFailed: string;
183
+ preparingImage: string;
184
+ processingImage: string;
185
+ removeImage: string;
186
+ rotateRight: string;
187
+ selectedImage: string;
188
+ selectFile: string;
189
+ spaceEmpty: string;
190
+ uploadFiles: string;
191
+ filterIcons: string;
192
+ loadEarlier: string;
193
+ loadingConversation: string;
194
+ loadingFiles: string;
195
+ loadingMessages: string;
196
+ failed: string;
197
+ generating: string;
198
+ loadOlderMessages: string;
199
+ loadingOlderMessages: string;
200
+ couldNotLoadOlderMessages: string;
201
+ couldNotLoadEarlierMessages: string;
202
+ couldNotPostMessage: string;
203
+ message: string;
204
+ messageActions: string;
205
+ messageComposer: string;
206
+ messageInput: string;
207
+ confirmation: string;
208
+ confirm: string;
209
+ dialog: string;
210
+ discard: string;
211
+ error: string;
212
+ form: string;
213
+ filterActions: string;
214
+ info: string;
215
+ interactiveLineChart: string;
216
+ interactiveMap: string;
217
+ interactiveTimeline: string;
218
+ ok: string;
219
+ success: string;
220
+ model: string;
221
+ input: string;
222
+ output: string;
223
+ loopTotal: string;
224
+ remaining: string;
225
+ notConfigured: string;
226
+ unknown: string;
227
+ system: string;
228
+ tool: string;
229
+ user: string;
230
+ useColor: string;
231
+ useTransparent: string;
232
+ series: string;
233
+ waiting: string;
234
+ templateEditorPlaceholder: string;
235
+ templatePreview: string;
236
+ lastRequestContext: string;
237
+ contextWindowUsed: string;
238
+ contextUsageUnavailable: string;
239
+ contextUsageUnavailableWithWindow: ({ window }: {
240
+ window: string;
241
+ }) => string;
242
+ tokensUsed: ({ total }: {
243
+ total: string;
244
+ }) => string;
245
+ tokensUsedPercent: ({ total, percent }: {
246
+ total: string;
247
+ percent: number;
248
+ }) => string;
249
+ moveDown: string;
250
+ moveUp: string;
251
+ moveNamedDown: ({ label }: {
252
+ label: string;
253
+ }) => string;
254
+ moveNamedUp: ({ label }: {
255
+ label: string;
256
+ }) => string;
257
+ rowAction: string;
258
+ addToNamed: ({ name }: {
259
+ name: string;
260
+ }) => string;
261
+ insertBeforeNamed: ({ name }: {
262
+ name: string;
263
+ }) => string;
264
+ insertAtEnd: string;
265
+ addPaneSide: ({ side, name }: {
266
+ side: "left" | "right" | "top" | "bottom";
267
+ name: string;
268
+ }) => string;
269
+ discardUnsavedChanges: string;
270
+ unsavedChangesTitle: string;
271
+ tagName: string;
272
+ name: string;
273
+ color: string;
274
+ tagCouldNotBeSaved: string;
275
+ tagActionFailed: string;
276
+ tagsPlaceholder: string;
277
+ tagsAdded: ({ tags }: {
278
+ tags: string;
279
+ }) => string;
280
+ tagsRemoved: ({ tags }: {
281
+ tags: string;
282
+ }) => string;
283
+ noFiles: string;
284
+ noLogEntries: string;
285
+ noPreview: string;
286
+ openPreview: string;
287
+ paneTabs: string;
288
+ paneWorkspace: string;
289
+ pdfPreview: string;
290
+ pdfPreviewHttpError: ({ status }: {
291
+ status: number;
292
+ }) => string;
293
+ pickIcon: string;
294
+ postMessage: string;
295
+ preview: string;
296
+ previewPdf: string;
297
+ renderPdfPreview: string;
298
+ queueMessage: string;
299
+ queueing: string;
300
+ sending: string;
301
+ steering: string;
302
+ writeMessage: string;
303
+ openInNewTab: ({ name }: {
304
+ name: string;
305
+ }) => string;
306
+ closeNamed: ({ name }: {
307
+ name: string;
308
+ }) => string;
309
+ goToImage: ({ index }: {
310
+ index: number;
311
+ }) => string;
312
+ pinDigit: ({ index, total }: {
313
+ index: number;
314
+ total: number;
315
+ }) => string;
316
+ removeNamed: ({ name }: {
317
+ name: string;
318
+ }) => string;
319
+ resizeCrop: ({ handle }: {
320
+ handle: string;
321
+ }) => string;
322
+ range: string;
323
+ resizePanes: string;
324
+ resetMapView: string;
325
+ resetTimelineView: string;
326
+ retryOlderMessages: string;
327
+ saveChanges: string;
328
+ saving: string;
329
+ sendMessage: string;
330
+ startConversation: string;
331
+ steerResponse: string;
332
+ stopResponse: string;
333
+ stopping: string;
334
+ unsaved: string;
335
+ unsavedChangeLabel: ({ count }: {
336
+ count: number;
337
+ }) => string;
338
+ noUnsavedChanges: string;
339
+ moveWindow: ({ title }: {
340
+ title: string;
341
+ }) => string;
342
+ resizeWindow: string;
343
+ window: string;
344
+ zoomIn: string;
345
+ zoomOut: string;
346
+ binaryFile: string;
347
+ boldShortcut: string;
348
+ bulletListShortcut: string;
349
+ heading1Shortcut: string;
350
+ heading2Shortcut: string;
351
+ heading3Shortcut: string;
352
+ inlineCodeShortcut: string;
353
+ italicShortcut: string;
354
+ linkShortcut: string;
355
+ markdownFormatting: string;
356
+ numberedListShortcut: string;
357
+ quote: string;
358
+ delimitedFileEmpty: string;
359
+ edit: string;
360
+ emptyFile: string;
361
+ failedLoadFile: string;
362
+ noInlinePreview: string;
363
+ previewLimited: string;
364
+ textEditor: string;
365
+ audioUnsupported: string;
366
+ videoUnsupported: string;
367
+ yes: string;
368
+ }>;
369
+ export type UiMessages = ReturnType<(typeof uiMessages)["resolve"]>["t"];
370
+ /** Generic component chrome owned by @k2b/ui, resolved from the inherited render locale. */
371
+ export declare const useUiMessages: () => (() => UiMessages);
372
+ /** Browser-only imperative UI (for example prompts) inherits the document locale. */
373
+ export declare const resolveUiMessages: (locale?: string) => UiMessages;
374
+ export declare const checkUiMessages: () => import("@k2b/stdlib").CatalogIssue[];
375
+ export {};
@@ -0,0 +1,29 @@
1
+ import { type JSX } from "solid-js";
2
+ export type AppOverviewProps = {
3
+ title: string;
4
+ subtitle?: string;
5
+ icon: string;
6
+ class?: string;
7
+ children: JSX.Element;
8
+ };
9
+ export type AppOverviewPanelProps = {
10
+ title: string;
11
+ description?: JSX.Element;
12
+ toolbar?: JSX.Element;
13
+ class?: string;
14
+ children: JSX.Element;
15
+ };
16
+ export type AppOverviewEmptyStateProps = {
17
+ title: string;
18
+ description?: JSX.Element;
19
+ icon?: string;
20
+ class?: string;
21
+ children?: JSX.Element;
22
+ };
23
+ type AppOverviewComponent = ((props: AppOverviewProps) => JSX.Element) & {
24
+ Main: (props: AppOverviewPanelProps) => JSX.Element;
25
+ Aside: (props: AppOverviewPanelProps) => JSX.Element;
26
+ EmptyState: (props: AppOverviewEmptyStateProps) => JSX.Element;
27
+ };
28
+ declare const AppOverview: AppOverviewComponent;
29
+ export default AppOverview;
@@ -0,0 +1,254 @@
1
+ import { type LinkNavigateEvent, type NavigationScrollMode } from "@k2b/ssr/nav";
2
+ import { type JSX } from "solid-js";
3
+ import { type AppWorkspaceLayoutState } from "./app-workspace-state";
4
+ export type AppWorkspaceProps = {
5
+ children: JSX.Element;
6
+ class?: string;
7
+ resizable?: boolean;
8
+ /**
9
+ * Restores a persisted layout when the workspace mounts. Persistence itself
10
+ * stays app-owned — the package reads and writes nothing on its own — but
11
+ * the resize handles work without it.
12
+ */
13
+ layoutState?: () => AppWorkspaceLayoutState | null | undefined;
14
+ /** Called with the full layout whenever a resize settles. Persist it here. */
15
+ onLayoutChange?: (state: AppWorkspaceLayoutState) => void;
16
+ /**
17
+ * Opt out of the built-in controller. Only needed when the application calls
18
+ * `installAppWorkspaceController` itself — installing twice would double up
19
+ * every listener.
20
+ */
21
+ controller?: false;
22
+ };
23
+ export type AppWorkspaceLayoutStateProviderProps = {
24
+ children: JSX.Element;
25
+ state: AppWorkspaceLayoutState | null | undefined;
26
+ };
27
+ export type AppWorkspaceContentProps = {
28
+ children: JSX.Element;
29
+ class?: string;
30
+ };
31
+ export type AppWorkspaceMainProps = {
32
+ children: JSX.Element;
33
+ class?: string;
34
+ mobilePane?: string;
35
+ scroll?: boolean;
36
+ scrollPreserveKey?: string | false;
37
+ "aria-busy"?: boolean | "true" | "false";
38
+ };
39
+ export type AppWorkspaceMainPaneProps = {
40
+ id: string;
41
+ label: string;
42
+ surface?: "default" | "navigation";
43
+ open?: boolean;
44
+ resizable?: boolean;
45
+ resizeShadow?: boolean;
46
+ defaultSize?: number;
47
+ minSize?: number;
48
+ maxSize?: number;
49
+ class?: string;
50
+ scroll?: boolean;
51
+ children: JSX.Element;
52
+ };
53
+ export type AppWorkspaceDetailWidth = "sm" | "md" | "lg" | "xl";
54
+ export type AppWorkspaceDetailProps = {
55
+ children: JSX.Element;
56
+ open: boolean;
57
+ id: string;
58
+ class?: string;
59
+ width?: AppWorkspaceDetailWidth;
60
+ viewTransitionName?: string;
61
+ resizable?: boolean;
62
+ minWidth?: number;
63
+ maxWidth?: number;
64
+ };
65
+ export type AppWorkspaceBottomDrawerHeight = "sm" | "md" | "lg";
66
+ export type AppWorkspaceBottomDrawerProps = {
67
+ children: JSX.Element;
68
+ open: boolean;
69
+ id: string;
70
+ class?: string;
71
+ height?: AppWorkspaceBottomDrawerHeight;
72
+ minHeight?: number;
73
+ maxHeight?: number;
74
+ viewTransitionName?: string;
75
+ resizable?: boolean;
76
+ };
77
+ export type AppWorkspaceSidebarProps = {
78
+ children: JSX.Element;
79
+ class?: string;
80
+ resizable?: boolean;
81
+ resizeShadow?: boolean;
82
+ collapsible?: boolean;
83
+ defaultSize?: number;
84
+ minSize?: number;
85
+ maxSize?: number;
86
+ };
87
+ export type AppWorkspaceSidebarMobileTriggerProps = {
88
+ label: string;
89
+ };
90
+ export type AppWorkspaceSidebarMobileProps = {
91
+ children: JSX.Element;
92
+ };
93
+ export type AppWorkspaceSidebarMobileItemsProps = {
94
+ children: JSX.Element;
95
+ scrollPreserveKey?: string | false;
96
+ };
97
+ export type AppWorkspaceSidebarVisibility = "always" | "expanded" | "collapsed";
98
+ export type AppWorkspaceSidebarAccessoryVisibility = "always" | "hover";
99
+ export type AppWorkspaceSidebarBodyProps = {
100
+ children: JSX.Element;
101
+ class?: string;
102
+ scrollPreserveKey?: string | false;
103
+ sidebarMode?: AppWorkspaceSidebarVisibility;
104
+ };
105
+ export type AppWorkspaceSidebarSectionProps = AppWorkspaceSidebarBodyProps & {
106
+ title?: string;
107
+ actions?: JSX.Element;
108
+ };
109
+ export type AppWorkspaceSidebarItemTone = "default" | "success" | "danger";
110
+ export type AppWorkspaceSidebarIconActionTone = "default" | "success" | "danger";
111
+ export type AppWorkspaceSidebarItemProps = {
112
+ children: JSX.Element;
113
+ href?: string;
114
+ /** Document navigation by default; opt into enhanced navigation only when the owning island applies the target state. */
115
+ navigation?: "enhanced" | "document";
116
+ replace?: boolean;
117
+ scroll?: NavigationScrollMode;
118
+ onNavigate?: (event: LinkNavigateEvent) => void | Promise<void>;
119
+ onClick?: (event: MouseEvent) => void;
120
+ active?: boolean;
121
+ activeClass?: string;
122
+ disabled?: boolean;
123
+ icon?: string;
124
+ meta?: JSX.Element;
125
+ metaVisibility?: AppWorkspaceSidebarAccessoryVisibility;
126
+ actions?: JSX.Element;
127
+ tone?: AppWorkspaceSidebarItemTone;
128
+ title?: string;
129
+ viewTransitionName?: string;
130
+ class?: string;
131
+ depth?: number;
132
+ actionIcon?: string;
133
+ actionLabel?: string;
134
+ onActionClick?: (event: MouseEvent) => void;
135
+ data?: Record<string, string | number | boolean | null | undefined>;
136
+ sidebarMode?: AppWorkspaceSidebarVisibility;
137
+ };
138
+ export type AppWorkspaceSidebarIconGridProps = AppWorkspaceSidebarBodyProps & {
139
+ title?: string;
140
+ columns?: 2 | 3;
141
+ };
142
+ export type AppWorkspaceSidebarIconActionProps = {
143
+ href?: string | null;
144
+ /** Document navigation by default; opt into enhanced navigation only when the owning island applies the target state. */
145
+ navigation?: "enhanced" | "document";
146
+ replace?: boolean;
147
+ scroll?: NavigationScrollMode;
148
+ onNavigate?: (event: LinkNavigateEvent) => void | Promise<void>;
149
+ icon: string;
150
+ label: string;
151
+ active?: boolean;
152
+ disabled?: boolean;
153
+ tone?: AppWorkspaceSidebarIconActionTone;
154
+ viewTransitionName?: string;
155
+ onClick?: (event: MouseEvent) => void;
156
+ sidebarMode?: AppWorkspaceSidebarVisibility;
157
+ };
158
+ export type AppWorkspaceSidebarItemIconProps = {
159
+ icon?: string;
160
+ children?: JSX.Element;
161
+ };
162
+ export type AppWorkspaceSidebarItemLabelProps = {
163
+ children: JSX.Element;
164
+ marquee?: boolean;
165
+ };
166
+ export type AppWorkspaceSidebarItemMetaProps = {
167
+ children: JSX.Element;
168
+ visibility?: AppWorkspaceSidebarAccessoryVisibility;
169
+ };
170
+ export type AppWorkspaceSidebarItemActionProps = {
171
+ icon?: string;
172
+ label: string;
173
+ /** Hide the action on fine pointers until the row is hovered or keyboard-focused. */
174
+ visibility?: AppWorkspaceSidebarAccessoryVisibility;
175
+ href?: string;
176
+ navigation?: "enhanced" | "document";
177
+ onSelect?: (event: MouseEvent) => void;
178
+ children?: JSX.Element;
179
+ };
180
+ export type AppWorkspaceSidebarItemActionsProps = {
181
+ children: JSX.Element;
182
+ visibility?: AppWorkspaceSidebarAccessoryVisibility;
183
+ };
184
+ export type AppWorkspaceNavTreeProps = {
185
+ children: JSX.Element;
186
+ ariaLabel: string;
187
+ selectedId?: string | null;
188
+ expandedIds?: readonly string[];
189
+ defaultExpandedIds?: readonly string[];
190
+ onSelectedIdChange?: (id: string) => void;
191
+ onExpandedIdsChange?: (ids: readonly string[]) => void;
192
+ indented?: boolean;
193
+ class?: string;
194
+ };
195
+ export type AppWorkspaceNavTreeItemProps = {
196
+ id: string;
197
+ label: JSX.Element;
198
+ children?: JSX.Element;
199
+ href?: string;
200
+ /** Document navigation by default; opt into enhanced navigation only when the owning island applies the target state. */
201
+ navigation?: "enhanced" | "document";
202
+ replace?: boolean;
203
+ scroll?: NavigationScrollMode;
204
+ onNavigate?: (event: LinkNavigateEvent) => void | Promise<void>;
205
+ onSelect?: (event: MouseEvent) => void;
206
+ disabled?: boolean;
207
+ icon?: string;
208
+ /** Replaces `icon` while this branch is expanded and makes the icon the disclosure target. */
209
+ expandedIcon?: string;
210
+ meta?: JSX.Element;
211
+ metaVisibility?: AppWorkspaceSidebarAccessoryVisibility;
212
+ actions?: JSX.Element;
213
+ tone?: AppWorkspaceSidebarItemTone;
214
+ title?: string;
215
+ viewTransitionName?: string;
216
+ class?: string;
217
+ onDragEnter?: JSX.EventHandlerUnion<HTMLDivElement, DragEvent>;
218
+ onDragOver?: JSX.EventHandlerUnion<HTMLDivElement, DragEvent>;
219
+ onDragLeave?: JSX.EventHandlerUnion<HTMLDivElement, DragEvent>;
220
+ onDrop?: JSX.EventHandlerUnion<HTMLDivElement, DragEvent>;
221
+ };
222
+ type AppWorkspaceNavTreeComponent = ((props: AppWorkspaceNavTreeProps) => JSX.Element) & {
223
+ Item: (props: AppWorkspaceNavTreeItemProps) => JSX.Element;
224
+ };
225
+ type AppWorkspaceComponent = ((props: AppWorkspaceProps) => JSX.Element) & {
226
+ LayoutStateProvider: (props: AppWorkspaceLayoutStateProviderProps) => JSX.Element;
227
+ Content: (props: AppWorkspaceContentProps) => JSX.Element;
228
+ Main: (props: AppWorkspaceMainProps) => JSX.Element;
229
+ MainPane: (props: AppWorkspaceMainPaneProps) => JSX.Element;
230
+ Detail: (props: AppWorkspaceDetailProps) => JSX.Element;
231
+ BottomDrawer: (props: AppWorkspaceBottomDrawerProps) => JSX.Element;
232
+ Sidebar: (props: AppWorkspaceSidebarProps) => JSX.Element;
233
+ SidebarMobileTrigger: (props: AppWorkspaceSidebarMobileTriggerProps) => JSX.Element;
234
+ SidebarMobile: (props: AppWorkspaceSidebarMobileProps) => JSX.Element;
235
+ SidebarMobileItems: (props: AppWorkspaceSidebarMobileItemsProps) => JSX.Element;
236
+ SidebarMobileBody: (props: AppWorkspaceSidebarBodyProps) => JSX.Element;
237
+ SidebarDesktop: (props: {
238
+ children: JSX.Element;
239
+ }) => JSX.Element;
240
+ SidebarSection: (props: AppWorkspaceSidebarSectionProps) => JSX.Element;
241
+ SidebarBody: (props: AppWorkspaceSidebarBodyProps) => JSX.Element;
242
+ SidebarFooter: (props: AppWorkspaceSidebarBodyProps) => JSX.Element;
243
+ SidebarItem: (props: AppWorkspaceSidebarItemProps) => JSX.Element;
244
+ SidebarItemIcon: (props: AppWorkspaceSidebarItemIconProps) => JSX.Element;
245
+ SidebarItemLabel: (props: AppWorkspaceSidebarItemLabelProps) => JSX.Element;
246
+ SidebarItemMeta: (props: AppWorkspaceSidebarItemMetaProps) => JSX.Element;
247
+ SidebarItemAction: (props: AppWorkspaceSidebarItemActionProps) => JSX.Element;
248
+ SidebarItemActions: (props: AppWorkspaceSidebarItemActionsProps) => JSX.Element;
249
+ NavTree: AppWorkspaceNavTreeComponent;
250
+ SidebarIconGrid: (props: AppWorkspaceSidebarIconGridProps) => JSX.Element;
251
+ SidebarIconAction: (props: AppWorkspaceSidebarIconActionProps) => JSX.Element;
252
+ };
253
+ declare const AppWorkspace: AppWorkspaceComponent;
254
+ export default AppWorkspace;
@@ -0,0 +1,16 @@
1
+ import { type JSX } from "solid-js";
2
+ export type DataPanelProps = {
3
+ title: JSX.Element;
4
+ subtitle?: JSX.Element;
5
+ actions?: JSX.Element;
6
+ search?: JSX.Element;
7
+ filters?: JSX.Element;
8
+ children?: JSX.Element;
9
+ error?: string | null;
10
+ empty?: JSX.Element;
11
+ isEmpty?: boolean;
12
+ footer?: JSX.Element;
13
+ as?: "h1" | "h2";
14
+ class?: string;
15
+ };
16
+ export declare function DataPanel(props: DataPanelProps): JSX.Element;