@workbench-kit/shell-react 0.0.2-prototype.0.2.10

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 (105) hide show
  1. package/README.md +98 -0
  2. package/package.json +51 -0
  3. package/src/chat/ai-mock-proposals.ts +39 -0
  4. package/src/chat/command-input.ts +52 -0
  5. package/src/chat/command-policy.ts +54 -0
  6. package/src/chat/command-surface.tsx +155 -0
  7. package/src/chat/use-chat-command-proposals.ts +194 -0
  8. package/src/chat/view-data.ts +20 -0
  9. package/src/chat/view.tsx +220 -0
  10. package/src/commands/inspector-surface.tsx +46 -0
  11. package/src/commands/use-command-descriptors.ts +41 -0
  12. package/src/commands/use-context-key-revision.ts +18 -0
  13. package/src/commands/view-data.ts +17 -0
  14. package/src/commands/view.tsx +43 -0
  15. package/src/devtools/WorkbenchDevtoolsPanel.tsx +124 -0
  16. package/src/devtools/WorkbenchDevtoolsShell.tsx +17 -0
  17. package/src/devtools/index.ts +11 -0
  18. package/src/devtools/use-workbench-devtools-snapshot.ts +84 -0
  19. package/src/devtools/workbench-devtools-snapshot.ts +140 -0
  20. package/src/devtools/workbench-devtools.css +82 -0
  21. package/src/editor/area-dnd.ts +69 -0
  22. package/src/editor/area-model.ts +71 -0
  23. package/src/editor/area.css +454 -0
  24. package/src/editor/area.tsx +676 -0
  25. package/src/editor/host-surface.tsx +691 -0
  26. package/src/editor/markdown-document-view-data.ts +16 -0
  27. package/src/editor/pane-visibility.ts +130 -0
  28. package/src/editor/resource.ts +36 -0
  29. package/src/editor/state-storage.ts +182 -0
  30. package/src/editor/tab-context-menu.ts +118 -0
  31. package/src/editor/use-editor.ts +138 -0
  32. package/src/editor/view-providers.tsx +504 -0
  33. package/src/editor/workspace-file-availability.ts +15 -0
  34. package/src/editor/workspace-reconcile.tsx +31 -0
  35. package/src/explorer/context-menu.ts +114 -0
  36. package/src/explorer/create-command-workspace-explorer-port.ts +86 -0
  37. package/src/explorer/reveal.ts +112 -0
  38. package/src/explorer/search-view-data.ts +15 -0
  39. package/src/explorer/search-view.tsx +65 -0
  40. package/src/explorer/use-active-workspace-path.ts +15 -0
  41. package/src/explorer/view-data.ts +58 -0
  42. package/src/explorer/view.tsx +227 -0
  43. package/src/extensions/context-menu.ts +52 -0
  44. package/src/extensions/management-model.ts +313 -0
  45. package/src/extensions/use-extension-management.ts +241 -0
  46. package/src/extensions/view-data.ts +19 -0
  47. package/src/extensions/view.tsx +63 -0
  48. package/src/field-remap/chrome-labels.ts +74 -0
  49. package/src/field-remap/convert-note-editor.tsx +206 -0
  50. package/src/field-remap/convert-palette.tsx +126 -0
  51. package/src/field-remap/demo.tsx +105 -0
  52. package/src/field-remap/detail-panel.tsx +659 -0
  53. package/src/field-remap/editor-surface.tsx +36 -0
  54. package/src/field-remap/flow-adapter.ts +838 -0
  55. package/src/field-remap/flow-ops.ts +442 -0
  56. package/src/field-remap/flow.tsx +948 -0
  57. package/src/field-remap/graph.tsx +559 -0
  58. package/src/field-remap/index.ts +88 -0
  59. package/src/field-remap/io-class-browse.tsx +145 -0
  60. package/src/field-remap/jsonata-transform.ts +166 -0
  61. package/src/field-remap/panel.tsx +466 -0
  62. package/src/field-remap/samples.ts +507 -0
  63. package/src/field-remap/shape-io-editor.tsx +170 -0
  64. package/src/field-remap/table-mapping-adapter.ts +59 -0
  65. package/src/field-remap/transform-options-editor.tsx +312 -0
  66. package/src/field-remap/tree.tsx +404 -0
  67. package/src/field-remap/view-data.ts +16 -0
  68. package/src/field-remap/view.css +1367 -0
  69. package/src/field-remap/view.tsx +86 -0
  70. package/src/index.ts +294 -0
  71. package/src/jdw/document-view-data.ts +31 -0
  72. package/src/jdw/json-form-source-patch.ts +323 -0
  73. package/src/jdw/lab-view-data.ts +25 -0
  74. package/src/jdw/lab-view.css +21 -0
  75. package/src/jdw/lab-view.tsx +79 -0
  76. package/src/jdw/widget-form-view.tsx +68 -0
  77. package/src/jdw/widget-preview-view.tsx +54 -0
  78. package/src/management/keybinding-overrides-storage.ts +49 -0
  79. package/src/management/keybinding-settings.tsx +16 -0
  80. package/src/management/palette-commands.ts +38 -0
  81. package/src/management/preference-settings-storage.ts +50 -0
  82. package/src/management/settings-ids.ts +12 -0
  83. package/src/management/settings.tsx +96 -0
  84. package/src/management/use-command-management.ts +191 -0
  85. package/src/management/use-keybinding-management.ts +130 -0
  86. package/src/shell/model.tsx +149 -0
  87. package/src/shell/provider.tsx +606 -0
  88. package/src/shell/secondary-actions.tsx +59 -0
  89. package/src/shell/settings-constants.ts +9 -0
  90. package/src/shell/settings.tsx +599 -0
  91. package/src/shell/shell.tsx +680 -0
  92. package/src/shell/titlebar-layout-controls.tsx +4 -0
  93. package/src/shell/view-host.tsx +212 -0
  94. package/src/workbench/appearance-storage.ts +107 -0
  95. package/src/workbench/command-host.tsx +243 -0
  96. package/src/workbench/command-palette.ts +208 -0
  97. package/src/workbench/keybinding-bridge.ts +54 -0
  98. package/src/workbench/layout-storage.ts +134 -0
  99. package/src/workbench/profile-modal.tsx +118 -0
  100. package/src/workbench/shell-command-registration.ts +58 -0
  101. package/src/workbench/startup-gate.tsx +136 -0
  102. package/src/workbench/status-sections.ts +43 -0
  103. package/src/workbench/use-persisted-appearance.ts +33 -0
  104. package/src/workbench/user-commands.ts +46 -0
  105. package/src/workbench/workspace-view-state.ts +35 -0
@@ -0,0 +1,86 @@
1
+ import type { JSX } from 'react';
2
+ import { WorkbenchActionSidebar } from '@workbench-kit/react/layout';
3
+
4
+ import './view.css';
5
+
6
+ import {
7
+ FIELD_REMAP_SAMPLES,
8
+ resolveFieldRemapSampleId,
9
+ type FieldRemapSampleId,
10
+ } from './samples.js';
11
+ import {
12
+ isSampleFieldRemapViewRenderData,
13
+ SAMPLE_FIELD_REMAP_VIEW_RENDER_KIND,
14
+ type SampleFieldRemapViewRenderData,
15
+ } from './view-data.js';
16
+ import { useActiveEditorTab, useEditorService } from '../editor/use-editor.js';
17
+
18
+ export type { SampleFieldRemapViewRenderData };
19
+ export { isSampleFieldRemapViewRenderData, SAMPLE_FIELD_REMAP_VIEW_RENDER_KIND };
20
+
21
+ const FIELD_REMAP_URI_PREFIX = 'workbench://field-remap/' as const;
22
+
23
+ export function buildFieldRemapEditorUri(sampleId: FieldRemapSampleId | string): string {
24
+ return `${FIELD_REMAP_URI_PREFIX}${encodeURIComponent(sampleId)}`;
25
+ }
26
+
27
+ export function parseFieldRemapEditorSampleId(resourceUri: string): FieldRemapSampleId | undefined {
28
+ if (!resourceUri.startsWith(FIELD_REMAP_URI_PREFIX)) {
29
+ return undefined;
30
+ }
31
+ const encodedId = resourceUri.slice(FIELD_REMAP_URI_PREFIX.length);
32
+ if (!encodedId) {
33
+ return undefined;
34
+ }
35
+ try {
36
+ return resolveFieldRemapSampleId(decodeURIComponent(encodedId));
37
+ } catch {
38
+ return undefined;
39
+ }
40
+ }
41
+
42
+ export interface SampleFieldRemapViewProps {
43
+ readonly className?: string | undefined;
44
+ }
45
+
46
+ /** Sidebar: catalog of field-remap / table-mapping samples. */
47
+ export function SampleFieldRemapView({ className }: SampleFieldRemapViewProps = {}): JSX.Element {
48
+ const editorService = useEditorService();
49
+ const activeTab = useActiveEditorTab();
50
+ const activeSampleId = activeTab
51
+ ? parseFieldRemapEditorSampleId(activeTab.resourceUri)
52
+ : undefined;
53
+
54
+ return (
55
+ <WorkbenchActionSidebar
56
+ className={['workbench-field-remap-view', className].filter(Boolean).join(' ')}
57
+ data-testid="field-remap-view"
58
+ items={FIELD_REMAP_SAMPLES.map((sample) => ({
59
+ description: sample.description,
60
+ icon: <i aria-hidden="true" className="codicon codicon-type-hierarchy" />,
61
+ id: sample.id,
62
+ label: sample.title,
63
+ selected: activeSampleId === sample.id,
64
+ testId: `field-remap-open-${sample.id}`,
65
+ title: `Open ${sample.title}`,
66
+ }))}
67
+ listProps={{
68
+ 'aria-label': 'Field remap samples',
69
+ className: 'workbench-field-remap-view__list',
70
+ }}
71
+ onSelect={(item) => {
72
+ const sample = FIELD_REMAP_SAMPLES.find((entry) => entry.id === item.id);
73
+ if (!sample) {
74
+ return;
75
+ }
76
+ editorService.openEditor({
77
+ icon: 'codicon-type-hierarchy',
78
+ pinned: true,
79
+ preview: false,
80
+ resourceUri: buildFieldRemapEditorUri(sample.id),
81
+ title: sample.title,
82
+ });
83
+ }}
84
+ />
85
+ );
86
+ }
package/src/index.ts ADDED
@@ -0,0 +1,294 @@
1
+ export const WORKBENCH_KIT_WORKBENCH_REACT_VERSION = '0.0.0' as const;
2
+
3
+ export {
4
+ WorkbenchProvider,
5
+ useWorkbench,
6
+ type WorkbenchContextValue,
7
+ type WorkbenchStorageAdapter,
8
+ type WorkbenchWorkspaceHostPort,
9
+ } from './shell/provider.js';
10
+ export {
11
+ WorkbenchDevtoolsPanel,
12
+ WorkbenchDevtoolsShell,
13
+ useWorkbenchDevtoolsSnapshot,
14
+ type WorkbenchDevtoolsShellProps,
15
+ type WorkbenchDevtoolsSnapshot,
16
+ } from './devtools/index.js';
17
+ export {
18
+ DEFAULT_WORKBENCH_EDITOR_STATE_STORAGE_KEY,
19
+ isWorkbenchEditorStatePersistenceAvailable,
20
+ readPersistedEditorState,
21
+ writePersistedEditorState,
22
+ } from './editor/state-storage.js';
23
+ export {
24
+ DEFAULT_WORKBENCH_KEYBINDING_STORAGE_KEY,
25
+ isWorkbenchKeybindingPersistenceAvailable,
26
+ readPersistedKeybindingOverrides,
27
+ writePersistedKeybindingOverrides,
28
+ } from './management/keybinding-overrides-storage.js';
29
+ export {
30
+ DEFAULT_WORKBENCH_LOCAL_PREFERENCE_STORAGE_KEY,
31
+ isWorkbenchLocalPreferencePersistenceAvailable,
32
+ readPersistedLocalPreferences,
33
+ writePersistedLocalPreferences,
34
+ } from './management/preference-settings-storage.js';
35
+ export {
36
+ DEFAULT_WORKBENCH_LAYOUT_STORAGE_KEY,
37
+ isWorkbenchLayoutPersistenceAvailable,
38
+ readPersistedWorkbenchLayout,
39
+ resolvePersistedWorkbenchLayout,
40
+ writePersistedWorkbenchLayout,
41
+ } from './workbench/layout-storage.js';
42
+ export {
43
+ DEFAULT_WORKBENCH_APPEARANCE,
44
+ DEFAULT_WORKBENCH_APPEARANCE_STORAGE_KEY,
45
+ isWorkbenchAppearancePersistenceAvailable,
46
+ readPersistedWorkbenchAppearance,
47
+ writePersistedWorkbenchAppearance,
48
+ type WorkbenchAppearanceSettings,
49
+ } from './workbench/appearance-storage.js';
50
+ export {
51
+ usePersistedWorkbenchAppearance,
52
+ type UsePersistedWorkbenchAppearanceOptions,
53
+ } from './workbench/use-persisted-appearance.js';
54
+ export {
55
+ createWorkspaceResourceStatusItems,
56
+ mergeWorkbenchStatusSections,
57
+ type WorkspaceResourceStatusItemsInput,
58
+ } from './workbench/status-sections.js';
59
+ export { EditorArea, type EditorAreaProps, type EditorViewMode } from './editor/area.js';
60
+ export {
61
+ DEFAULT_EDITOR_DOCUMENT_VIEW_PROVIDERS,
62
+ EditorDocumentViewProviderRegistry,
63
+ JDW_PREVIEW_PROVIDER_ID,
64
+ JDW_WIDGET_FORM_PROVIDER_ID,
65
+ JSON_FORM_PROVIDER,
66
+ JSON_FORM_PROVIDER_ID,
67
+ MARKDOWN_PREVIEW_PROVIDER_ID,
68
+ createEditorDocumentViewProviderRegistry,
69
+ resolveEditorDocumentViewProvider,
70
+ resolveEditorDocumentViews,
71
+ type CreateEditorDocumentViewProviderRegistryOptions,
72
+ type EditorDocumentContext,
73
+ type EditorDocumentViewKind,
74
+ type EditorDocumentViewProvider,
75
+ type EditorDocumentViewRenderContext,
76
+ type ResolvedEditorDocumentViews,
77
+ } from './editor/view-providers.js';
78
+ export {
79
+ BUILTIN_EDITOR_MARKDOWN_PREVIEW_RENDER_KIND,
80
+ isBuiltinEditorMarkdownPreviewRenderData,
81
+ type BuiltinEditorMarkdownPreviewRenderData,
82
+ } from './editor/markdown-document-view-data.js';
83
+ export { SampleJdwLabView, type SampleJdwLabViewProps } from './jdw/lab-view.js';
84
+ export { JdwWidgetFormView, type JdwWidgetFormViewProps } from './jdw/widget-form-view.js';
85
+ export { JdwWidgetPreviewView, type JdwWidgetPreviewViewProps } from './jdw/widget-preview-view.js';
86
+ export {
87
+ isSampleJdwLabViewRenderData,
88
+ SAMPLE_JDW_LAB_VIEW_RENDER_KIND,
89
+ type SampleJdwLabViewRenderData,
90
+ } from './jdw/lab-view-data.js';
91
+ export {
92
+ isSampleJdwWidgetFormRenderData,
93
+ isSampleJdwWidgetPreviewRenderData,
94
+ SAMPLE_JDW_WIDGET_FORM_RENDER_KIND,
95
+ SAMPLE_JDW_WIDGET_PREVIEW_RENDER_KIND,
96
+ type SampleJdwWidgetFormRenderData,
97
+ type SampleJdwWidgetPreviewRenderData,
98
+ } from './jdw/document-view-data.js';
99
+ export { SampleFieldRemapDemo, type SampleFieldRemapDemoProps } from './field-remap/demo.js';
100
+ export { FieldRemapPanel, type FieldRemapPanelProps } from './field-remap/panel.js';
101
+ export {
102
+ FieldRemapFlowMapper,
103
+ type FieldRemapFlowActions,
104
+ type FieldRemapFlowMapperProps,
105
+ } from './field-remap/flow.js';
106
+ export {
107
+ defaultFieldRemapChromeLabels,
108
+ fieldRemapChromeLabelKeys,
109
+ resolveFieldRemapChromeLabels,
110
+ type FieldRemapChromeLabels,
111
+ type FieldRemapTranslate,
112
+ } from './field-remap/chrome-labels.js';
113
+ export {
114
+ FieldRemapDetailPanel,
115
+ type FieldRemapDetailPanelProps,
116
+ } from './field-remap/detail-panel.js';
117
+ export {
118
+ FieldRemapConvertPalette,
119
+ type FieldRemapConvertPaletteProps,
120
+ } from './field-remap/convert-palette.js';
121
+ export {
122
+ ConvertNoteEditor,
123
+ type ConvertNoteEditorProps,
124
+ } from './field-remap/convert-note-editor.js';
125
+ export {
126
+ FieldRemapIoClassBrowse,
127
+ resolveFieldRemapIoChrome,
128
+ type FieldRemapIoChrome,
129
+ type FieldRemapIoClassBrowseProps,
130
+ } from './field-remap/io-class-browse.js';
131
+ export {
132
+ FieldRemapShapeIoEditor,
133
+ ingestSourceShape,
134
+ ingestTargetShape,
135
+ type FieldRemapShapeIoEditorProps,
136
+ type FieldRemapShapeRole,
137
+ } from './field-remap/shape-io-editor.js';
138
+ export {
139
+ TransformOptionsEditor,
140
+ type TransformOptionsEditorProps,
141
+ } from './field-remap/transform-options-editor.js';
142
+ export {
143
+ addTransformStepToEdge,
144
+ bindDraftSource,
145
+ bindDraftTarget,
146
+ bindOperatorInput,
147
+ bindOperatorOutput,
148
+ canEditListContext,
149
+ createCombineOperator,
150
+ createDraftTransform,
151
+ createSplitOperator,
152
+ edgePortTypes,
153
+ enableListContextOnEdge,
154
+ finalizeDraftTransform,
155
+ listCompatibleTransforms,
156
+ removeItemEdgeFromParent,
157
+ removeMappingOperator,
158
+ removeOperatorInput,
159
+ removeOperatorOutput,
160
+ removeTransformStepFromEdge,
161
+ replaceTransformStepOptionsOnEdge,
162
+ setItemEdgesOnEdge,
163
+ setTransformStepIdOnEdge,
164
+ updateMappingEdge,
165
+ updateMappingOperator,
166
+ upsertItemEdgeOnParent,
167
+ type FieldRemapDraftTransform,
168
+ type FieldRemapSelection,
169
+ } from './field-remap/flow-ops.js';
170
+ export {
171
+ DEFAULT_JSONATA_MAX_EXPRESSION_LENGTH,
172
+ DEFAULT_JSONATA_TIMEOUT_MS,
173
+ JSONATA_TRANSFORM_ID,
174
+ JsonataTransformTimeoutError,
175
+ createJsonataValueTransform,
176
+ jsonataValueTransform,
177
+ type CreateJsonataValueTransformOptions,
178
+ type JsonataTransformErrorPolicy,
179
+ } from './field-remap/jsonata-transform.js';
180
+ export {
181
+ FIELD_REMAP_SAMPLES,
182
+ getFieldRemapSample,
183
+ isFieldRemapSampleId,
184
+ resolveFieldRemapSampleId,
185
+ type FieldRemapSampleDefinition,
186
+ type FieldRemapSampleId,
187
+ } from './field-remap/samples.js';
188
+ export {
189
+ SampleFieldRemapView,
190
+ buildFieldRemapEditorUri,
191
+ parseFieldRemapEditorSampleId,
192
+ type SampleFieldRemapViewProps,
193
+ } from './field-remap/view.js';
194
+ export {
195
+ isSampleFieldRemapViewRenderData,
196
+ SAMPLE_FIELD_REMAP_VIEW_RENDER_KIND,
197
+ type SampleFieldRemapViewRenderData,
198
+ } from './field-remap/view-data.js';
199
+ export {
200
+ FieldRemapEditorSurface,
201
+ type FieldRemapEditorSurfaceId,
202
+ type FieldRemapEditorSurfaceProps,
203
+ } from './field-remap/editor-surface.js';
204
+ export {
205
+ WorkbenchShell,
206
+ type WorkbenchLocaleOption,
207
+ type WorkbenchShellProps,
208
+ type WorkbenchThemeOption,
209
+ } from './shell/shell.js';
210
+ export {
211
+ getWorkbenchCommandPaletteShortcutLabel,
212
+ getWorkbenchQuickAccessShortcutLabel,
213
+ WORKBENCH_COMMAND_PALETTE_SHORTCUT,
214
+ WORKBENCH_QUICK_ACCESS_SHORTCUT,
215
+ buildWorkbenchPaletteCommands,
216
+ matchesWorkbenchCommandPaletteShortcut,
217
+ matchesWorkbenchQuickAccessShortcut,
218
+ mergeWorkbenchCommandDescriptors,
219
+ resolveShellCommandActivities,
220
+ } from './workbench/command-palette.js';
221
+ export { WorkbenchCommandHost, type WorkbenchCommandHostProps } from './workbench/command-host.js';
222
+ export { WorkbenchStartupGate, type WorkbenchStartupGateProps } from './workbench/startup-gate.js';
223
+ export {
224
+ normalizeKeybindingKeyFromEvent,
225
+ resolveExtensionKeybindingCommand,
226
+ } from './workbench/keybinding-bridge.js';
227
+ export {
228
+ parseWorkbenchChatCommandInput,
229
+ type WorkbenchChatCommandInputParseResult,
230
+ } from './chat/command-input.js';
231
+ export {
232
+ useWorkbenchChatCommandSurface,
233
+ type WorkbenchChatCommandRunResult,
234
+ type WorkbenchChatCommandSurfaceOptions,
235
+ } from './chat/command-surface.js';
236
+ export { useWorkbenchCommandDescriptors } from './commands/use-command-descriptors.js';
237
+ export {
238
+ executeWorkbenchUserCommandAction,
239
+ registerWorkbenchUserCommands,
240
+ } from './workbench/user-commands.js';
241
+ export {
242
+ createWorkbenchHostThemeRegistration,
243
+ HOST_WORKBENCH_THEME_EXTENSION_ID,
244
+ registerHostWorkbenchThemes,
245
+ registerWorkbenchTheme,
246
+ REQUIRED_THEME_TOKEN_KEYS,
247
+ type RegisterWorkbenchThemeOptions,
248
+ type WorkbenchHostThemeMode,
249
+ type WorkbenchHostThemeRegistration,
250
+ } from '@workbench-kit/workbench-core';
251
+ export {
252
+ useActiveEditorTab,
253
+ useEditorDocumentViewProviders,
254
+ useEditorHost,
255
+ useEditorService,
256
+ useEditorState,
257
+ } from './editor/use-editor.js';
258
+ export {
259
+ isWorkspaceResourceService,
260
+ useWorkspaceResourceState,
261
+ } from './workbench/workspace-view-state.js';
262
+ export {
263
+ MANAGE_ACCOUNTS_COMMAND_ID,
264
+ MANAGE_COMMANDS_COMMAND_ID,
265
+ MANAGE_EXTENSIONS_COMMAND_ID,
266
+ MANAGE_KEYBINDINGS_COMMAND_ID,
267
+ WORKBENCH_ACCOUNTS_SETTINGS_CATEGORY_ID,
268
+ WORKBENCH_COMMANDS_SETTINGS_CATEGORY_ID,
269
+ WORKBENCH_EXTENSIONS_SETTINGS_CATEGORY_ID,
270
+ WORKBENCH_KEYBINDINGS_SETTINGS_CATEGORY_ID,
271
+ } from './management/settings-ids.js';
272
+ export { createWorkbenchManagementPaletteCommands } from './management/palette-commands.js';
273
+ export {
274
+ WorkbenchAccountManagementSettings,
275
+ WorkbenchCommandManagementSettings,
276
+ WorkbenchExtensionManagementSettings,
277
+ WorkbenchKeybindingManagementSettings,
278
+ type WorkbenchAccountManagementInput,
279
+ } from './management/settings.js';
280
+ export {
281
+ WORKBENCH_PROFILE_ACTIVITY_ITEM_ID,
282
+ WORKBENCH_ACCOUNT_ACTIVITY_ITEM_ID,
283
+ WORKBENCH_SETTINGS_ACTIVITY_ITEM_ID,
284
+ createWorkbenchSecondaryActivityItems,
285
+ getWorkbenchSecondaryActivityRoute,
286
+ type WorkbenchSecondaryActivityItemsInput,
287
+ type WorkbenchSecondaryActivityRoute,
288
+ } from './shell/secondary-actions.js';
289
+ export {
290
+ WorkbenchProfileModal,
291
+ type WorkbenchProfileDetail,
292
+ type WorkbenchProfileInput,
293
+ type WorkbenchProfileModalProps,
294
+ } from './workbench/profile-modal.js';
@@ -0,0 +1,31 @@
1
+ export const SAMPLE_JDW_WIDGET_FORM_RENDER_KIND = 'workbench-kit.samples.jdw.widget-form' as const;
2
+ export const SAMPLE_JDW_WIDGET_PREVIEW_RENDER_KIND =
3
+ 'workbench-kit.samples.jdw.widget-preview' as const;
4
+
5
+ export interface SampleJdwWidgetFormRenderData {
6
+ readonly kind: typeof SAMPLE_JDW_WIDGET_FORM_RENDER_KIND;
7
+ }
8
+
9
+ export interface SampleJdwWidgetPreviewRenderData {
10
+ readonly kind: typeof SAMPLE_JDW_WIDGET_PREVIEW_RENDER_KIND;
11
+ }
12
+
13
+ export function isSampleJdwWidgetFormRenderData(
14
+ value: unknown,
15
+ ): value is SampleJdwWidgetFormRenderData {
16
+ return (
17
+ typeof value === 'object' &&
18
+ value !== null &&
19
+ (value as { kind?: unknown }).kind === SAMPLE_JDW_WIDGET_FORM_RENDER_KIND
20
+ );
21
+ }
22
+
23
+ export function isSampleJdwWidgetPreviewRenderData(
24
+ value: unknown,
25
+ ): value is SampleJdwWidgetPreviewRenderData {
26
+ return (
27
+ typeof value === 'object' &&
28
+ value !== null &&
29
+ (value as { kind?: unknown }).kind === SAMPLE_JDW_WIDGET_PREVIEW_RENDER_KIND
30
+ );
31
+ }