@k2b/ui 0.1.0-rc.0 → 0.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.
- package/dist/types/actions/Button.d.ts +38 -0
- package/dist/types/actions/ContextMenu.d.ts +17 -0
- package/dist/types/actions/CopyButton.d.ts +20 -0
- package/dist/types/actions/Disclosure.d.ts +15 -0
- package/dist/types/actions/Dropdown.d.ts +100 -0
- package/dist/types/actions/FilterChip.d.ts +27 -0
- package/dist/types/actions/RemoveButton.d.ts +7 -0
- package/dist/types/actions/SegmentedControl.d.ts +20 -0
- package/dist/types/actions/SplitButton.d.ts +13 -0
- package/dist/types/actions/SpotlightSearch.d.ts +25 -0
- package/dist/types/actions/Tabs.d.ts +27 -0
- package/dist/types/actions/Toolbar.d.ts +23 -0
- package/dist/types/actions/index.d.ts +24 -0
- package/dist/types/chat/ChatComposer.d.ts +57 -0
- package/dist/types/chat/ChatPrimitives.d.ts +48 -0
- package/dist/types/chat/ChatRoot.d.ts +7 -0
- package/dist/types/chat/ChatTimeline.d.ts +52 -0
- package/dist/types/chat/chat-behavior.d.ts +29 -0
- package/dist/types/chat/index.d.ts +21 -0
- package/dist/types/chat/types.d.ts +62 -0
- package/dist/types/content/Calendar.d.ts +115 -0
- package/dist/types/content/Chart.d.ts +90 -0
- package/dist/types/content/CodeDisplay.d.ts +11 -0
- package/dist/types/content/DataTable.d.ts +113 -0
- package/dist/types/content/Docs.d.ts +52 -0
- package/dist/types/content/FileBrowser.d.ts +40 -0
- package/dist/types/content/FileTree.d.ts +29 -0
- package/dist/types/content/FileView.d.ts +59 -0
- package/dist/types/content/Lightbox.d.ts +16 -0
- package/dist/types/content/LogEntriesTable.d.ts +14 -0
- package/dist/types/content/MarkdownView.d.ts +46 -0
- package/dist/types/content/Pagination.d.ts +10 -0
- package/dist/types/content/PdfPreview.d.ts +11 -0
- package/dist/types/content/RangePicker.d.ts +29 -0
- package/dist/types/content/StructuredDataPreview.d.ts +20 -0
- package/dist/types/content/calendar-event-layout.d.ts +16 -0
- package/dist/types/content/calendar-pointer.d.ts +22 -0
- package/dist/types/content/chart-map-viewport.d.ts +5 -0
- package/dist/types/content/chart-state-timeline.d.ts +42 -0
- package/dist/types/content/code-highlight.d.ts +14 -0
- package/dist/types/content/file-tree.d.ts +41 -0
- package/dist/types/content/file-view-preview.d.ts +22 -0
- package/dist/types/content/index.d.ts +26 -0
- package/dist/types/feedback/InlineGuidance.d.ts +10 -0
- package/dist/types/feedback/Tooltip.d.ts +18 -0
- package/dist/types/feedback/dialog-core.d.ts +19 -0
- package/dist/types/feedback/index.d.ts +10 -0
- package/dist/types/feedback/prompts.d.ts +164 -0
- package/dist/types/feedback/toast.d.ts +25 -0
- package/dist/types/feedback/tooltip-position.d.ts +2 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/inputs/AutocompleteEditor.d.ts +21 -0
- package/dist/types/inputs/AutocompleteSelect.d.ts +30 -0
- package/dist/types/inputs/Checkbox.d.ts +9 -0
- package/dist/types/inputs/CheckboxCard.d.ts +9 -0
- package/dist/types/inputs/ChoiceGroups.d.ts +13 -0
- package/dist/types/inputs/ChoiceInputs.d.ts +24 -0
- package/dist/types/inputs/Combobox.d.ts +18 -0
- package/dist/types/inputs/DatePicker.d.ts +31 -0
- package/dist/types/inputs/FileInputs.d.ts +31 -0
- package/dist/types/inputs/MultiSelectInput.d.ts +41 -0
- package/dist/types/inputs/NumberInput.d.ts +24 -0
- package/dist/types/inputs/Select.d.ts +50 -0
- package/dist/types/inputs/SelectChip.d.ts +25 -0
- package/dist/types/inputs/SpecialInputs.d.ts +21 -0
- package/dist/types/inputs/Switch.d.ts +7 -0
- package/dist/types/inputs/TagEditor.d.ts +35 -0
- package/dist/types/inputs/TagsInput.d.ts +11 -0
- package/dist/types/inputs/TemplateEditor.d.ts +28 -0
- package/dist/types/inputs/TextInput.d.ts +26 -0
- package/dist/types/inputs/choice.d.ts +32 -0
- package/dist/types/inputs/completion/behaviors.d.ts +13 -0
- package/dist/types/inputs/completion/engine.d.ts +54 -0
- package/dist/types/inputs/completion/index.d.ts +3 -0
- package/dist/types/inputs/completion/overlay.d.ts +11 -0
- package/dist/types/inputs/date-picker.d.ts +42 -0
- package/dist/types/inputs/editor-dom.d.ts +6 -0
- package/dist/types/inputs/field-contract.d.ts +24 -0
- package/dist/types/inputs/icon-options.d.ts +37 -0
- package/dist/types/inputs/image-crop.d.ts +44 -0
- package/dist/types/inputs/index.d.ts +45 -0
- package/dist/types/inputs/markdown/MarkdownEditor.d.ts +25 -0
- package/dist/types/inputs/markdown/Toolbar.d.ts +9 -0
- package/dist/types/inputs/markdown/actions.d.ts +8 -0
- package/dist/types/inputs/markdown/active-formats.d.ts +1 -0
- package/dist/types/inputs/markdown/behaviors.d.ts +3 -0
- package/dist/types/inputs/markdown/code-zone.d.ts +1 -0
- package/dist/types/internal/color.d.ts +4 -0
- package/dist/types/internal/field.d.ts +27 -0
- package/dist/types/internal/portal.d.ts +1 -0
- package/dist/types/intl/Format.d.ts +84 -0
- package/dist/types/intl/index.d.ts +4 -0
- package/dist/types/intl/locale.d.ts +42 -0
- package/dist/types/intl/messages.d.ts +375 -0
- package/dist/types/layout/AppOverview.d.ts +29 -0
- package/dist/types/layout/AppWorkspace.d.ts +254 -0
- package/dist/types/layout/DataPanel.d.ts +16 -0
- package/dist/types/layout/DetailPanel.d.ts +89 -0
- package/dist/types/layout/Discussion.d.ts +52 -0
- package/dist/types/layout/FloatingWindow.d.ts +19 -0
- package/dist/types/layout/PanelDialog.d.ts +72 -0
- package/dist/types/layout/PanelHeader.d.ts +10 -0
- package/dist/types/layout/Panes.d.ts +48 -0
- package/dist/types/layout/ScrollArea.d.ts +8 -0
- package/dist/types/layout/Settings.d.ts +72 -0
- package/dist/types/layout/SettingsCollection.d.ts +41 -0
- package/dist/types/layout/SettingsModal.d.ts +39 -0
- package/dist/types/layout/app-workspace-controller.d.ts +7 -0
- package/dist/types/layout/app-workspace-state.d.ts +57 -0
- package/dist/types/layout/floating-window-geometry.d.ts +11 -0
- package/dist/types/layout/index.d.ts +32 -0
- package/dist/types/layout/panes-layout.d.ts +63 -0
- package/dist/types/layout/stable-id.d.ts +3 -0
- package/dist/types/semantics.d.ts +4 -0
- package/dist/types/surfaces/Avatar.d.ts +14 -0
- package/dist/types/surfaces/DescriptionList.d.ts +17 -0
- package/dist/types/surfaces/LinkCard.d.ts +11 -0
- package/dist/types/surfaces/NotFoundState.d.ts +15 -0
- package/dist/types/surfaces/NoticeCard.d.ts +39 -0
- package/dist/types/surfaces/Paper.d.ts +13 -0
- package/dist/types/surfaces/Placeholder.d.ts +17 -0
- package/dist/types/surfaces/ProgressBar.d.ts +13 -0
- package/dist/types/surfaces/StatCell.d.ts +22 -0
- package/dist/types/surfaces/StatGrid.d.ts +21 -0
- package/dist/types/surfaces/StatusBadge.d.ts +12 -0
- package/dist/types/surfaces/Tag.d.ts +16 -0
- package/dist/types/surfaces/index.d.ts +24 -0
- package/dist/types/widgets/Widget.d.ts +12 -0
- package/dist/types/widgets/WidgetHero.d.ts +11 -0
- package/dist/types/widgets/WidgetList.d.ts +17 -0
- package/dist/types/widgets/WidgetPills.d.ts +14 -0
- package/dist/types/widgets/WidgetStat.d.ts +17 -0
- package/dist/types/widgets/WidgetStatus.d.ts +12 -0
- package/dist/types/widgets/index.d.ts +6 -0
- package/package.json +1 -1
|
@@ -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;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import { type ButtonLinkProps, type ButtonProps } from "../actions/Button";
|
|
3
|
+
import { type DropdownItem } from "../actions/Dropdown";
|
|
4
|
+
export type DetailPanelProps = {
|
|
5
|
+
children: JSX.Element;
|
|
6
|
+
class?: string;
|
|
7
|
+
};
|
|
8
|
+
type DetailPanelHeaderBaseProps = {
|
|
9
|
+
title: JSX.Element;
|
|
10
|
+
subtitle?: JSX.Element;
|
|
11
|
+
meta?: JSX.Element;
|
|
12
|
+
actions?: JSX.Element;
|
|
13
|
+
primaryActions?: JSX.Element;
|
|
14
|
+
class?: string;
|
|
15
|
+
};
|
|
16
|
+
export type DetailPanelHeaderProps = DetailPanelHeaderBaseProps & ({
|
|
17
|
+
leading?: JSX.Element;
|
|
18
|
+
icon?: never;
|
|
19
|
+
} | {
|
|
20
|
+
leading?: never;
|
|
21
|
+
icon?: string;
|
|
22
|
+
});
|
|
23
|
+
export type DetailPanelBodyProps = {
|
|
24
|
+
children: JSX.Element;
|
|
25
|
+
scrollPreserveKey?: string;
|
|
26
|
+
class?: string;
|
|
27
|
+
};
|
|
28
|
+
export type DetailPanelSummaryProps = {
|
|
29
|
+
title: JSX.Element;
|
|
30
|
+
children: JSX.Element;
|
|
31
|
+
actions?: JSX.Element;
|
|
32
|
+
class?: string;
|
|
33
|
+
};
|
|
34
|
+
export type DetailPanelGroupProps = {
|
|
35
|
+
children: JSX.Element;
|
|
36
|
+
label?: string;
|
|
37
|
+
class?: string;
|
|
38
|
+
};
|
|
39
|
+
export type DetailPanelTone = "accent" | "neutral" | "success" | "warning" | "danger";
|
|
40
|
+
type DetailPanelSectionBaseProps = {
|
|
41
|
+
title: JSX.Element;
|
|
42
|
+
icon?: string;
|
|
43
|
+
tone?: DetailPanelTone;
|
|
44
|
+
description?: JSX.Element;
|
|
45
|
+
meta?: JSX.Element;
|
|
46
|
+
class?: string;
|
|
47
|
+
};
|
|
48
|
+
type DetailPanelActionBaseProps = {
|
|
49
|
+
title: JSX.Element;
|
|
50
|
+
description?: JSX.Element;
|
|
51
|
+
leading?: JSX.Element;
|
|
52
|
+
trailing?: JSX.Element;
|
|
53
|
+
class?: string;
|
|
54
|
+
};
|
|
55
|
+
type DetailPanelActionMenuProps = {
|
|
56
|
+
menuItems?: never;
|
|
57
|
+
menuLabel?: never;
|
|
58
|
+
} | {
|
|
59
|
+
menuItems: readonly DropdownItem[];
|
|
60
|
+
menuLabel: string;
|
|
61
|
+
};
|
|
62
|
+
export type DetailPanelActionLinkProps = DetailPanelActionBaseProps & DetailPanelActionMenuProps & Omit<ButtonLinkProps, "children" | "class" | "size" | "title" | "variant"> & {
|
|
63
|
+
href: string;
|
|
64
|
+
};
|
|
65
|
+
export type DetailPanelActionButtonProps = DetailPanelActionBaseProps & DetailPanelActionMenuProps & Omit<ButtonProps, "children" | "class" | "size" | "title" | "variant"> & {
|
|
66
|
+
href?: never;
|
|
67
|
+
};
|
|
68
|
+
export type DetailPanelActionProps = DetailPanelActionLinkProps | DetailPanelActionButtonProps;
|
|
69
|
+
export type DetailPanelSectionProps = DetailPanelSectionBaseProps & ({
|
|
70
|
+
children?: JSX.Element;
|
|
71
|
+
actions?: JSX.Element;
|
|
72
|
+
collapsible?: false;
|
|
73
|
+
defaultOpen?: never;
|
|
74
|
+
} | {
|
|
75
|
+
children: JSX.Element;
|
|
76
|
+
actions?: never;
|
|
77
|
+
collapsible: true;
|
|
78
|
+
defaultOpen?: boolean;
|
|
79
|
+
});
|
|
80
|
+
type DetailPanelComponent = ((props: DetailPanelProps) => JSX.Element) & {
|
|
81
|
+
Header: (props: DetailPanelHeaderProps) => JSX.Element;
|
|
82
|
+
Body: (props: DetailPanelBodyProps) => JSX.Element;
|
|
83
|
+
Summary: (props: DetailPanelSummaryProps) => JSX.Element;
|
|
84
|
+
Group: (props: DetailPanelGroupProps) => JSX.Element;
|
|
85
|
+
Section: (props: DetailPanelSectionProps) => JSX.Element;
|
|
86
|
+
Action: (props: DetailPanelActionProps) => JSX.Element;
|
|
87
|
+
};
|
|
88
|
+
declare const DetailPanel: DetailPanelComponent;
|
|
89
|
+
export default DetailPanel;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
export type DiscussionProps = Omit<JSX.HTMLAttributes<HTMLElement>, "children" | "class"> & {
|
|
3
|
+
label: JSX.Element;
|
|
4
|
+
children: JSX.Element;
|
|
5
|
+
icon?: string | false;
|
|
6
|
+
count?: number;
|
|
7
|
+
actions?: JSX.Element;
|
|
8
|
+
as?: "h2" | "h3";
|
|
9
|
+
surface?: "default" | "bare";
|
|
10
|
+
class?: string;
|
|
11
|
+
};
|
|
12
|
+
export type DiscussionComposerProps = Omit<JSX.FormHTMLAttributes<HTMLFormElement>, "children" | "class" | "onSubmit"> & {
|
|
13
|
+
label: string;
|
|
14
|
+
onSubmit: (message: string) => boolean | void | Promise<boolean | void>;
|
|
15
|
+
initialValue?: string;
|
|
16
|
+
placeholder?: string;
|
|
17
|
+
submitLabel?: string;
|
|
18
|
+
cancelLabel?: string;
|
|
19
|
+
onCancel?: () => void;
|
|
20
|
+
lines?: number;
|
|
21
|
+
class?: string;
|
|
22
|
+
};
|
|
23
|
+
export type DiscussionListProps = {
|
|
24
|
+
children?: JSX.Element;
|
|
25
|
+
loading?: boolean;
|
|
26
|
+
loadingLabel?: string;
|
|
27
|
+
error?: string | null;
|
|
28
|
+
onRetry?: () => void | Promise<void>;
|
|
29
|
+
hasMore?: boolean;
|
|
30
|
+
loadingMore?: boolean;
|
|
31
|
+
loadMoreLabel?: string;
|
|
32
|
+
onLoadMore?: () => boolean | void | Promise<boolean | void>;
|
|
33
|
+
class?: string;
|
|
34
|
+
};
|
|
35
|
+
export type DiscussionItemProps = Omit<JSX.LiHTMLAttributes<HTMLLIElement>, "children" | "class"> & {
|
|
36
|
+
author: JSX.Element;
|
|
37
|
+
children: JSX.Element;
|
|
38
|
+
avatar?: JSX.Element;
|
|
39
|
+
timestamp?: JSX.Element;
|
|
40
|
+
meta?: JSX.Element;
|
|
41
|
+
replyContext?: JSX.Element;
|
|
42
|
+
actions?: JSX.Element;
|
|
43
|
+
actionVisibility?: "always" | "progressive";
|
|
44
|
+
class?: string;
|
|
45
|
+
};
|
|
46
|
+
type DiscussionComponent = ((props: DiscussionProps) => JSX.Element) & {
|
|
47
|
+
Composer: (props: DiscussionComposerProps) => JSX.Element;
|
|
48
|
+
List: (props: DiscussionListProps) => JSX.Element;
|
|
49
|
+
Item: (props: DiscussionItemProps) => JSX.Element;
|
|
50
|
+
};
|
|
51
|
+
declare const Discussion: DiscussionComponent;
|
|
52
|
+
export default Discussion;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
export { type FloatingWindowRect, fitFloatingWindowRect } from "./floating-window-geometry";
|
|
3
|
+
export type FloatingWindowProps = {
|
|
4
|
+
title: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
children: JSX.Element;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
initialWidth?: number;
|
|
9
|
+
initialHeight?: number;
|
|
10
|
+
minWidth?: number;
|
|
11
|
+
minHeight?: number;
|
|
12
|
+
accent?: string;
|
|
13
|
+
class?: string;
|
|
14
|
+
resolveScope?: () => HTMLElement | null | undefined;
|
|
15
|
+
};
|
|
16
|
+
export type OpenFloatingWindowOptions = Omit<FloatingWindowProps, "children" | "onClose">;
|
|
17
|
+
export type FloatingWindowClose = () => void;
|
|
18
|
+
export default function FloatingWindow(props: FloatingWindowProps): JSX.Element;
|
|
19
|
+
export declare const openFloatingWindow: (view: (close: FloatingWindowClose) => JSX.Element, options: OpenFloatingWindowOptions) => FloatingWindowClose;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
export type PanelDialogSurface = "contained" | "floating";
|
|
3
|
+
export type PanelDialogProps = {
|
|
4
|
+
children: JSX.Element;
|
|
5
|
+
surface?: PanelDialogSurface;
|
|
6
|
+
};
|
|
7
|
+
export type PanelDialogHeaderProps = {
|
|
8
|
+
title: JSX.Element;
|
|
9
|
+
subtitle?: JSX.Element;
|
|
10
|
+
icon?: string;
|
|
11
|
+
actions?: JSX.Element;
|
|
12
|
+
close?: () => void;
|
|
13
|
+
closeDisabled?: boolean;
|
|
14
|
+
closeLabel?: string;
|
|
15
|
+
};
|
|
16
|
+
export type PanelDialogBodyProps = {
|
|
17
|
+
children: JSX.Element;
|
|
18
|
+
scrollPreserveKey?: string;
|
|
19
|
+
};
|
|
20
|
+
export type PanelDialogFooterProps = {
|
|
21
|
+
children: JSX.Element;
|
|
22
|
+
};
|
|
23
|
+
export type PanelDialogSectionProps = {
|
|
24
|
+
title: JSX.Element;
|
|
25
|
+
subtitle?: JSX.Element;
|
|
26
|
+
icon?: string;
|
|
27
|
+
actions?: JSX.Element;
|
|
28
|
+
children: JSX.Element;
|
|
29
|
+
};
|
|
30
|
+
export type PanelDialogTabOption<T extends string = string> = {
|
|
31
|
+
value: T;
|
|
32
|
+
label: JSX.Element;
|
|
33
|
+
icon?: string;
|
|
34
|
+
disabled?: boolean;
|
|
35
|
+
};
|
|
36
|
+
export type PanelDialogTabsProps<T extends string = string> = {
|
|
37
|
+
options: readonly PanelDialogTabOption<T>[];
|
|
38
|
+
value: T | (() => T);
|
|
39
|
+
onValueChange: (value: T) => void;
|
|
40
|
+
ariaLabel?: string;
|
|
41
|
+
label?: string;
|
|
42
|
+
};
|
|
43
|
+
type PanelDialogComponent = ((props: PanelDialogProps) => JSX.Element) & {
|
|
44
|
+
Header: (props: PanelDialogHeaderProps) => JSX.Element;
|
|
45
|
+
Body: (props: PanelDialogBodyProps) => JSX.Element;
|
|
46
|
+
Footer: (props: PanelDialogFooterProps) => JSX.Element;
|
|
47
|
+
Section: (props: PanelDialogSectionProps) => JSX.Element;
|
|
48
|
+
Tabs: <T extends string>(props: PanelDialogTabsProps<T>) => JSX.Element;
|
|
49
|
+
};
|
|
50
|
+
export declare const panelDialogPanelClass = "k2b-dialog k2b-panel-dialog-frame is-standard";
|
|
51
|
+
export declare const panelDialogOptions: {
|
|
52
|
+
panelClassName: string;
|
|
53
|
+
contentClassName: string;
|
|
54
|
+
};
|
|
55
|
+
export declare const panelDialogWidePanelClass = "k2b-dialog k2b-panel-dialog-frame is-wide";
|
|
56
|
+
export declare const panelDialogWideOptions: {
|
|
57
|
+
panelClassName: string;
|
|
58
|
+
contentClassName: string;
|
|
59
|
+
};
|
|
60
|
+
export declare const panelDialogFixedPanelClass = "k2b-dialog k2b-panel-dialog-frame is-fixed";
|
|
61
|
+
export declare const panelDialogFixedOptions: {
|
|
62
|
+
panelClassName: string;
|
|
63
|
+
contentClassName: string;
|
|
64
|
+
};
|
|
65
|
+
export declare const panelDialogWorkspacePanelClass = "k2b-dialog k2b-panel-dialog-frame is-workspace";
|
|
66
|
+
export declare const panelDialogWorkspaceOptions: {
|
|
67
|
+
panelClassName: string;
|
|
68
|
+
contentClassName: string;
|
|
69
|
+
};
|
|
70
|
+
export declare const confirmDiscardIfDirty: (dirty: boolean | (() => boolean)) => Promise<boolean>;
|
|
71
|
+
declare const PanelDialog: PanelDialogComponent;
|
|
72
|
+
export default PanelDialog;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
export type PanelHeaderProps = {
|
|
3
|
+
title: JSX.Element;
|
|
4
|
+
subtitle?: JSX.Element;
|
|
5
|
+
actions?: JSX.Element;
|
|
6
|
+
as?: "h1" | "h2" | "h3";
|
|
7
|
+
size?: "sm" | "md";
|
|
8
|
+
class?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function PanelHeader(props: PanelHeaderProps): JSX.Element;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type DndDroppableSnapshot } from "@k2b/stdlib/solid";
|
|
2
|
+
import { type JSX } from "solid-js";
|
|
3
|
+
import { type PanesDropTarget, type PanesLayout } from "./panes-layout";
|
|
4
|
+
export type PanesItem = {
|
|
5
|
+
id: string;
|
|
6
|
+
title: string;
|
|
7
|
+
icon?: string;
|
|
8
|
+
render: () => JSX.Element;
|
|
9
|
+
onClose?: () => void;
|
|
10
|
+
};
|
|
11
|
+
export type PanesProps = {
|
|
12
|
+
layout: PanesLayout;
|
|
13
|
+
onLayoutChange: (layout: PanesLayout) => void;
|
|
14
|
+
items: readonly PanesItem[];
|
|
15
|
+
movable?: boolean;
|
|
16
|
+
resizable?: boolean;
|
|
17
|
+
split?: false | "horizontal" | "vertical" | "both";
|
|
18
|
+
onAddItem?: (targetItemId: string | null) => void;
|
|
19
|
+
ariaLabel?: string;
|
|
20
|
+
class?: string;
|
|
21
|
+
};
|
|
22
|
+
type DropMeta = {
|
|
23
|
+
target: PanesDropTarget;
|
|
24
|
+
label: string;
|
|
25
|
+
};
|
|
26
|
+
type IndexedPanesDropTargets = {
|
|
27
|
+
tabs: ReadonlyMap<string | null, PanesDropTarget>;
|
|
28
|
+
body: readonly PanesDropTarget[];
|
|
29
|
+
};
|
|
30
|
+
type PanesSeparatorGeometry = {
|
|
31
|
+
coordinate: number;
|
|
32
|
+
crossStart: number;
|
|
33
|
+
crossEnd: number;
|
|
34
|
+
};
|
|
35
|
+
export declare const resolvePanesResizeSnap: (coordinate: number, source: PanesSeparatorGeometry, candidates: readonly PanesSeparatorGeometry[], options?: {
|
|
36
|
+
activeCoordinate?: number | null;
|
|
37
|
+
previousCoordinate?: number;
|
|
38
|
+
}) => {
|
|
39
|
+
coordinate: number;
|
|
40
|
+
snappedTo: number | null;
|
|
41
|
+
};
|
|
42
|
+
export declare const indexPanesDropTargets: (targets: readonly PanesDropTarget[]) => ReadonlyMap<string, IndexedPanesDropTargets>;
|
|
43
|
+
export declare const pointerHitsPanesDropTarget: (entry: Pick<DndDroppableSnapshot<DropMeta>, "containsPointer" | "meta" | "rect"> & Partial<Pick<DndDroppableSnapshot<DropMeta>, "element">>, pointer: {
|
|
44
|
+
x: number;
|
|
45
|
+
y: number;
|
|
46
|
+
}, hitElement?: Element | null) => boolean;
|
|
47
|
+
export default function Panes(props: PanesProps): JSX.Element;
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
export type ScrollAreaProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children" | "class"> & {
|
|
3
|
+
children: JSX.Element;
|
|
4
|
+
scrollPreserveKey?: string | false;
|
|
5
|
+
class?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function ScrollArea(props: ScrollAreaProps): JSX.Element;
|
|
8
|
+
export default ScrollArea;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import { type ButtonVariant } from "../actions/Button";
|
|
3
|
+
import type { MaybeAccessor } from "../inputs/field-contract";
|
|
4
|
+
export type SettingsPageProps = {
|
|
5
|
+
title: JSX.Element;
|
|
6
|
+
subtitle?: JSX.Element;
|
|
7
|
+
icon?: string;
|
|
8
|
+
actions?: JSX.Element;
|
|
9
|
+
children: JSX.Element;
|
|
10
|
+
footer?: JSX.Element;
|
|
11
|
+
scrollPreserveKey?: string;
|
|
12
|
+
class?: string;
|
|
13
|
+
style?: JSX.CSSProperties | string;
|
|
14
|
+
};
|
|
15
|
+
export declare function SettingsPage(props: SettingsPageProps): JSX.Element;
|
|
16
|
+
export type SettingsSectionProps = {
|
|
17
|
+
title: JSX.Element;
|
|
18
|
+
subtitle?: JSX.Element;
|
|
19
|
+
icon?: string;
|
|
20
|
+
actions?: JSX.Element;
|
|
21
|
+
children: JSX.Element;
|
|
22
|
+
class?: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* A full-page settings group. Dialogs keep using PanelDialog.Section; this
|
|
26
|
+
* component owns the quieter, observability-style paper used on admin pages.
|
|
27
|
+
*/
|
|
28
|
+
export declare function SettingsSection(props: SettingsSectionProps): JSX.Element;
|
|
29
|
+
export type SettingsGroupProps = {
|
|
30
|
+
title: JSX.Element;
|
|
31
|
+
description?: JSX.Element;
|
|
32
|
+
children: JSX.Element;
|
|
33
|
+
class?: string;
|
|
34
|
+
};
|
|
35
|
+
export type SettingsGroupActionProps = {
|
|
36
|
+
children: JSX.Element;
|
|
37
|
+
};
|
|
38
|
+
type SettingsGroupComponent = ((props: SettingsGroupProps) => JSX.Element) & {
|
|
39
|
+
Action: (props: SettingsGroupActionProps) => JSX.Element;
|
|
40
|
+
};
|
|
41
|
+
export declare const SettingsGroup: SettingsGroupComponent;
|
|
42
|
+
export declare const sameSettingValue: (left: unknown, right: unknown) => boolean;
|
|
43
|
+
export declare const readSettingsError: (response: Response, fallback: string) => Promise<{
|
|
44
|
+
message: string;
|
|
45
|
+
fields: Record<string, string>;
|
|
46
|
+
}>;
|
|
47
|
+
export type SettingsFieldProps = {
|
|
48
|
+
label: string;
|
|
49
|
+
description: string;
|
|
50
|
+
error: MaybeAccessor<string | undefined>;
|
|
51
|
+
changed?: MaybeAccessor<boolean>;
|
|
52
|
+
children: JSX.Element | ((control: SettingsFieldControlProps) => JSX.Element);
|
|
53
|
+
class?: string;
|
|
54
|
+
};
|
|
55
|
+
export type SettingsFieldControlProps = {
|
|
56
|
+
describedBy: () => string;
|
|
57
|
+
};
|
|
58
|
+
export declare function SettingsField(props: SettingsFieldProps): JSX.Element;
|
|
59
|
+
export type SettingsSaveBarProps = {
|
|
60
|
+
changeCount: MaybeAccessor<number>;
|
|
61
|
+
loading: MaybeAccessor<boolean>;
|
|
62
|
+
saveDisabled?: MaybeAccessor<boolean>;
|
|
63
|
+
onDiscard: () => void;
|
|
64
|
+
onSave: () => void;
|
|
65
|
+
saveLabel?: string;
|
|
66
|
+
saveVariant?: ButtonVariant;
|
|
67
|
+
class?: string;
|
|
68
|
+
};
|
|
69
|
+
export declare function SettingsSaveBar(props: SettingsSaveBarProps): JSX.Element;
|
|
70
|
+
export type SettingsPanelFooterProps = SettingsSaveBarProps;
|
|
71
|
+
export declare function SettingsPanelFooter(props: SettingsPanelFooterProps): JSX.Element;
|
|
72
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
export type SettingsCollectionProps = {
|
|
3
|
+
title: JSX.Element;
|
|
4
|
+
description?: JSX.Element;
|
|
5
|
+
empty?: JSX.Element;
|
|
6
|
+
children?: JSX.Element;
|
|
7
|
+
class?: string;
|
|
8
|
+
};
|
|
9
|
+
export type SettingsCollectionActionProps = {
|
|
10
|
+
children: JSX.Element;
|
|
11
|
+
};
|
|
12
|
+
export type SettingsCollectionItemProps = {
|
|
13
|
+
title: JSX.Element;
|
|
14
|
+
description?: JSX.Element;
|
|
15
|
+
icon?: JSX.Element;
|
|
16
|
+
children?: JSX.Element;
|
|
17
|
+
};
|
|
18
|
+
export type SettingsCollectionItemStatusProps = {
|
|
19
|
+
children: JSX.Element;
|
|
20
|
+
};
|
|
21
|
+
export type SettingsCollectionItemActionsProps = {
|
|
22
|
+
children: JSX.Element;
|
|
23
|
+
};
|
|
24
|
+
export type SettingsCollectionItemReorderProps = {
|
|
25
|
+
label: string;
|
|
26
|
+
index: number;
|
|
27
|
+
count: number;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
onMove: (direction: -1 | 1) => void;
|
|
30
|
+
};
|
|
31
|
+
type SettingsCollectionItemComponent = ((props: SettingsCollectionItemProps) => JSX.Element) & {
|
|
32
|
+
Status: (props: SettingsCollectionItemStatusProps) => JSX.Element;
|
|
33
|
+
Actions: (props: SettingsCollectionItemActionsProps) => JSX.Element;
|
|
34
|
+
Reorder: (props: SettingsCollectionItemReorderProps) => JSX.Element;
|
|
35
|
+
};
|
|
36
|
+
type SettingsCollectionComponent = ((props: SettingsCollectionProps) => JSX.Element) & {
|
|
37
|
+
Action: (props: SettingsCollectionActionProps) => JSX.Element;
|
|
38
|
+
Item: SettingsCollectionItemComponent;
|
|
39
|
+
};
|
|
40
|
+
declare const SettingsCollection: SettingsCollectionComponent;
|
|
41
|
+
export default SettingsCollection;
|