@cohesivesystems/presentation-react-shadcn 0.1.0-alpha.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.
- package/LICENSE +55 -0
- package/dist/document-workspace-surface-slot-renderers.d.ts +58 -0
- package/dist/document-workspace-surface-slot-renderers.d.ts.map +1 -0
- package/dist/document-workspace-surface-slot-renderers.js +206 -0
- package/dist/document-workspace-surface-slot-renderers.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/navigation-shell-frame-renderer-registry.d.ts +8 -0
- package/dist/navigation-shell-frame-renderer-registry.d.ts.map +1 -0
- package/dist/navigation-shell-frame-renderer-registry.js +2 -0
- package/dist/navigation-shell-frame-renderer-registry.js.map +1 -0
- package/dist/navigation-shell-slot-renderer-registry.d.ts +9 -0
- package/dist/navigation-shell-slot-renderer-registry.d.ts.map +1 -0
- package/dist/navigation-shell-slot-renderer-registry.js +2 -0
- package/dist/navigation-shell-slot-renderer-registry.js.map +1 -0
- package/dist/page-host-unavailable-renderer.d.ts +10 -0
- package/dist/page-host-unavailable-renderer.d.ts.map +1 -0
- package/dist/page-host-unavailable-renderer.js +27 -0
- package/dist/page-host-unavailable-renderer.js.map +1 -0
- package/dist/presentation-action-group.d.ts +99 -0
- package/dist/presentation-action-group.d.ts.map +1 -0
- package/dist/presentation-action-group.js +214 -0
- package/dist/presentation-action-group.js.map +1 -0
- package/dist/presentation-badge-target-interpreter.d.ts +26 -0
- package/dist/presentation-badge-target-interpreter.d.ts.map +1 -0
- package/dist/presentation-badge-target-interpreter.js +17 -0
- package/dist/presentation-badge-target-interpreter.js.map +1 -0
- package/dist/presentation-component-groups.d.ts +968 -0
- package/dist/presentation-component-groups.d.ts.map +1 -0
- package/dist/presentation-component-groups.js +505 -0
- package/dist/presentation-component-groups.js.map +1 -0
- package/dist/presentation-component-system-diagnostics.d.ts +27 -0
- package/dist/presentation-component-system-diagnostics.d.ts.map +1 -0
- package/dist/presentation-component-system-diagnostics.js +399 -0
- package/dist/presentation-component-system-diagnostics.js.map +1 -0
- package/dist/presentation-component-system.d.ts +31 -0
- package/dist/presentation-component-system.d.ts.map +1 -0
- package/dist/presentation-component-system.js +61 -0
- package/dist/presentation-component-system.js.map +1 -0
- package/dist/presentation-icon-diagnostics.d.ts +12 -0
- package/dist/presentation-icon-diagnostics.d.ts.map +1 -0
- package/dist/presentation-icon-diagnostics.js +17 -0
- package/dist/presentation-icon-diagnostics.js.map +1 -0
- package/dist/presentation-icon-registry.d.ts +28 -0
- package/dist/presentation-icon-registry.d.ts.map +1 -0
- package/dist/presentation-icon-registry.js +80 -0
- package/dist/presentation-icon-registry.js.map +1 -0
- package/dist/presentation-projection-trace-panel.d.ts +10 -0
- package/dist/presentation-projection-trace-panel.d.ts.map +1 -0
- package/dist/presentation-projection-trace-panel.js +48 -0
- package/dist/presentation-projection-trace-panel.js.map +1 -0
- package/dist/presentation-routed-surface-host.d.ts +19 -0
- package/dist/presentation-routed-surface-host.d.ts.map +1 -0
- package/dist/presentation-routed-surface-host.js +12 -0
- package/dist/presentation-routed-surface-host.js.map +1 -0
- package/dist/presentation-shadcn-component-system.d.ts +22 -0
- package/dist/presentation-shadcn-component-system.d.ts.map +1 -0
- package/dist/presentation-shadcn-component-system.js +2 -0
- package/dist/presentation-shadcn-component-system.js.map +1 -0
- package/dist/presentation-standard-renderers.d.ts +168 -0
- package/dist/presentation-standard-renderers.d.ts.map +1 -0
- package/dist/presentation-standard-renderers.js +440 -0
- package/dist/presentation-standard-renderers.js.map +1 -0
- package/dist/presentation-surface-renderer.d.ts +23 -0
- package/dist/presentation-surface-renderer.d.ts.map +1 -0
- package/dist/presentation-surface-renderer.js +119 -0
- package/dist/presentation-surface-renderer.js.map +1 -0
- package/dist/presentation-value-renderers.d.ts +10 -0
- package/dist/presentation-value-renderers.d.ts.map +1 -0
- package/dist/presentation-value-renderers.js +14 -0
- package/dist/presentation-value-renderers.js.map +1 -0
- package/dist/process-task-icons.d.ts +49 -0
- package/dist/process-task-icons.d.ts.map +1 -0
- package/dist/process-task-icons.js +154 -0
- package/dist/process-task-icons.js.map +1 -0
- package/dist/projected-activity-state.d.ts +17 -0
- package/dist/projected-activity-state.d.ts.map +1 -0
- package/dist/projected-activity-state.js +22 -0
- package/dist/projected-activity-state.js.map +1 -0
- package/dist/projected-collection-action-runtime-diagnostics.d.ts +4 -0
- package/dist/projected-collection-action-runtime-diagnostics.d.ts.map +1 -0
- package/dist/projected-collection-action-runtime-diagnostics.js +9 -0
- package/dist/projected-collection-action-runtime-diagnostics.js.map +1 -0
- package/dist/projected-collection-view.d.ts +90 -0
- package/dist/projected-collection-view.d.ts.map +1 -0
- package/dist/projected-collection-view.js +532 -0
- package/dist/projected-collection-view.js.map +1 -0
- package/dist/projected-document-action-status-notices.d.ts +15 -0
- package/dist/projected-document-action-status-notices.d.ts.map +1 -0
- package/dist/projected-document-action-status-notices.js +33 -0
- package/dist/projected-document-action-status-notices.js.map +1 -0
- package/dist/projected-document-badges.d.ts +24 -0
- package/dist/projected-document-badges.d.ts.map +1 -0
- package/dist/projected-document-badges.js +53 -0
- package/dist/projected-document-badges.js.map +1 -0
- package/dist/projected-document-editor-surface.d.ts +46 -0
- package/dist/projected-document-editor-surface.d.ts.map +1 -0
- package/dist/projected-document-editor-surface.js +399 -0
- package/dist/projected-document-editor-surface.js.map +1 -0
- package/dist/projected-document-workspace-notices.d.ts +24 -0
- package/dist/projected-document-workspace-notices.d.ts.map +1 -0
- package/dist/projected-document-workspace-notices.js +14 -0
- package/dist/projected-document-workspace-notices.js.map +1 -0
- package/dist/projected-document-workspace-prompt-child-view-registry.d.ts +25 -0
- package/dist/projected-document-workspace-prompt-child-view-registry.d.ts.map +1 -0
- package/dist/projected-document-workspace-prompt-child-view-registry.js +41 -0
- package/dist/projected-document-workspace-prompt-child-view-registry.js.map +1 -0
- package/dist/projected-document-workspace-prompt-child-view-renderers.d.ts +32 -0
- package/dist/projected-document-workspace-prompt-child-view-renderers.d.ts.map +1 -0
- package/dist/projected-document-workspace-prompt-child-view-renderers.js +77 -0
- package/dist/projected-document-workspace-prompt-child-view-renderers.js.map +1 -0
- package/dist/projected-document-workspace-shell.d.ts +100 -0
- package/dist/projected-document-workspace-shell.d.ts.map +1 -0
- package/dist/projected-document-workspace-shell.js +153 -0
- package/dist/projected-document-workspace-shell.js.map +1 -0
- package/dist/projected-document-workspace.d.ts +39 -0
- package/dist/projected-document-workspace.d.ts.map +1 -0
- package/dist/projected-document-workspace.js +63 -0
- package/dist/projected-document-workspace.js.map +1 -0
- package/dist/projected-field-value-rendering.d.ts +94 -0
- package/dist/projected-field-value-rendering.d.ts.map +1 -0
- package/dist/projected-field-value-rendering.js +377 -0
- package/dist/projected-field-value-rendering.js.map +1 -0
- package/dist/projected-inline-list.d.ts +20 -0
- package/dist/projected-inline-list.d.ts.map +1 -0
- package/dist/projected-inline-list.js +149 -0
- package/dist/projected-inline-list.js.map +1 -0
- package/dist/projected-input-form.d.ts +143 -0
- package/dist/projected-input-form.d.ts.map +1 -0
- package/dist/projected-input-form.js +612 -0
- package/dist/projected-input-form.js.map +1 -0
- package/dist/projected-metric-dashboard.d.ts +26 -0
- package/dist/projected-metric-dashboard.d.ts.map +1 -0
- package/dist/projected-metric-dashboard.js +20 -0
- package/dist/projected-metric-dashboard.js.map +1 -0
- package/dist/projected-metric-strip.d.ts +20 -0
- package/dist/projected-metric-strip.d.ts.map +1 -0
- package/dist/projected-metric-strip.js +131 -0
- package/dist/projected-metric-strip.js.map +1 -0
- package/dist/projected-navigation-shell-view-host.d.ts +34 -0
- package/dist/projected-navigation-shell-view-host.d.ts.map +1 -0
- package/dist/projected-navigation-shell-view-host.js +75 -0
- package/dist/projected-navigation-shell-view-host.js.map +1 -0
- package/dist/projected-navigation-shell.d.ts +33 -0
- package/dist/projected-navigation-shell.d.ts.map +1 -0
- package/dist/projected-navigation-shell.js +112 -0
- package/dist/projected-navigation-shell.js.map +1 -0
- package/dist/projected-presentation-badges.d.ts +34 -0
- package/dist/projected-presentation-badges.d.ts.map +1 -0
- package/dist/projected-presentation-badges.js +22 -0
- package/dist/projected-presentation-badges.js.map +1 -0
- package/dist/projected-presentation-diagnostics.d.ts +10 -0
- package/dist/projected-presentation-diagnostics.d.ts.map +1 -0
- package/dist/projected-presentation-diagnostics.js +40 -0
- package/dist/projected-presentation-diagnostics.js.map +1 -0
- package/dist/projected-presentation-flow-layer.d.ts +33 -0
- package/dist/projected-presentation-flow-layer.d.ts.map +1 -0
- package/dist/projected-presentation-flow-layer.js +71 -0
- package/dist/projected-presentation-flow-layer.js.map +1 -0
- package/dist/projected-process-task-notices.d.ts +37 -0
- package/dist/projected-process-task-notices.d.ts.map +1 -0
- package/dist/projected-process-task-notices.js +225 -0
- package/dist/projected-process-task-notices.js.map +1 -0
- package/dist/projected-prompt-child-view-renderer.d.ts +101 -0
- package/dist/projected-prompt-child-view-renderer.d.ts.map +1 -0
- package/dist/projected-prompt-child-view-renderer.js +442 -0
- package/dist/projected-prompt-child-view-renderer.js.map +1 -0
- package/dist/projected-prompt-document-preview.d.ts +39 -0
- package/dist/projected-prompt-document-preview.d.ts.map +1 -0
- package/dist/projected-prompt-document-preview.js +50 -0
- package/dist/projected-prompt-document-preview.js.map +1 -0
- package/dist/projected-prompt-view.d.ts +35 -0
- package/dist/projected-prompt-view.d.ts.map +1 -0
- package/dist/projected-prompt-view.js +292 -0
- package/dist/projected-prompt-view.js.map +1 -0
- package/dist/projected-query-form.d.ts +56 -0
- package/dist/projected-query-form.d.ts.map +1 -0
- package/dist/projected-query-form.js +100 -0
- package/dist/projected-query-form.js.map +1 -0
- package/dist/projected-record-details.d.ts +20 -0
- package/dist/projected-record-details.d.ts.map +1 -0
- package/dist/projected-record-details.js +60 -0
- package/dist/projected-record-details.js.map +1 -0
- package/dist/projected-routed-surface-runtime.d.ts +86 -0
- package/dist/projected-routed-surface-runtime.d.ts.map +1 -0
- package/dist/projected-routed-surface-runtime.js +332 -0
- package/dist/projected-routed-surface-runtime.js.map +1 -0
- package/dist/projected-tabs-view.d.ts +21 -0
- package/dist/projected-tabs-view.d.ts.map +1 -0
- package/dist/projected-tabs-view.js +140 -0
- package/dist/projected-tabs-view.js.map +1 -0
- package/dist/projected-view-chrome.d.ts +15 -0
- package/dist/projected-view-chrome.d.ts.map +1 -0
- package/dist/projected-view-chrome.js +67 -0
- package/dist/projected-view-chrome.js.map +1 -0
- package/dist/projected-view-surface.d.ts +34 -0
- package/dist/projected-view-surface.d.ts.map +1 -0
- package/dist/projected-view-surface.js +40 -0
- package/dist/projected-view-surface.js.map +1 -0
- package/dist/standard-collection-chrome-slot-renderers.d.ts +26 -0
- package/dist/standard-collection-chrome-slot-renderers.d.ts.map +1 -0
- package/dist/standard-collection-chrome-slot-renderers.js +250 -0
- package/dist/standard-collection-chrome-slot-renderers.js.map +1 -0
- package/dist/standard-view-chrome-slot-renderers.d.ts +57 -0
- package/dist/standard-view-chrome-slot-renderers.d.ts.map +1 -0
- package/dist/standard-view-chrome-slot-renderers.js +614 -0
- package/dist/standard-view-chrome-slot-renderers.js.map +1 -0
- package/package.json +68 -0
- package/src/document-workspace-surface-slot-renderers.tsx +395 -0
- package/src/index.ts +53 -0
- package/src/navigation-shell-frame-renderer-registry.ts +29 -0
- package/src/navigation-shell-slot-renderer-registry.ts +46 -0
- package/src/page-host-unavailable-renderer.tsx +79 -0
- package/src/presentation-action-group.tsx +475 -0
- package/src/presentation-badge-target-interpreter.ts +54 -0
- package/src/presentation-component-groups.ts +2505 -0
- package/src/presentation-component-system-diagnostics.ts +848 -0
- package/src/presentation-component-system.ts +365 -0
- package/src/presentation-icon-diagnostics.ts +53 -0
- package/src/presentation-icon-registry.tsx +181 -0
- package/src/presentation-projection-trace-panel.tsx +140 -0
- package/src/presentation-routed-surface-host.tsx +48 -0
- package/src/presentation-shadcn-component-system.ts +102 -0
- package/src/presentation-standard-renderers.tsx +1290 -0
- package/src/presentation-surface-renderer.tsx +263 -0
- package/src/presentation-value-renderers.tsx +40 -0
- package/src/process-task-icons.tsx +258 -0
- package/src/projected-activity-state.tsx +63 -0
- package/src/projected-collection-action-runtime-diagnostics.ts +22 -0
- package/src/projected-collection-view.tsx +1273 -0
- package/src/projected-document-action-status-notices.tsx +66 -0
- package/src/projected-document-badges.tsx +134 -0
- package/src/projected-document-editor-surface.tsx +808 -0
- package/src/projected-document-workspace-notices.tsx +77 -0
- package/src/projected-document-workspace-prompt-child-view-registry.ts +99 -0
- package/src/projected-document-workspace-prompt-child-view-renderers.tsx +205 -0
- package/src/projected-document-workspace-shell.tsx +427 -0
- package/src/projected-document-workspace.tsx +216 -0
- package/src/projected-field-value-rendering.tsx +704 -0
- package/src/projected-inline-list.tsx +434 -0
- package/src/projected-input-form.tsx +1218 -0
- package/src/projected-metric-dashboard.tsx +106 -0
- package/src/projected-metric-strip.tsx +244 -0
- package/src/projected-navigation-shell-view-host.tsx +177 -0
- package/src/projected-navigation-shell.tsx +219 -0
- package/src/projected-presentation-badges.tsx +95 -0
- package/src/projected-presentation-diagnostics.tsx +120 -0
- package/src/projected-presentation-flow-layer.tsx +186 -0
- package/src/projected-process-task-notices.tsx +501 -0
- package/src/projected-prompt-child-view-renderer.tsx +698 -0
- package/src/projected-prompt-document-preview.tsx +197 -0
- package/src/projected-prompt-view.tsx +592 -0
- package/src/projected-query-form.tsx +286 -0
- package/src/projected-record-details.tsx +133 -0
- package/src/projected-routed-surface-runtime.tsx +713 -0
- package/src/projected-tabs-view.tsx +308 -0
- package/src/projected-view-chrome.tsx +148 -0
- package/src/projected-view-surface.tsx +131 -0
- package/src/standard-collection-chrome-slot-renderers.tsx +391 -0
- package/src/standard-view-chrome-slot-renderers.tsx +1064 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { createElement } from 'react';
|
|
2
|
+
import { mergeProjectedPromptChildViewRendererRegistries, promptChildViewSemanticRoles, } from './projected-prompt-child-view-renderer.js';
|
|
3
|
+
import { ProjectedDocumentWorkspacePromptPreviewProjection, ProjectedJsonDocumentDiffProjection, } from './projected-document-workspace-prompt-child-view-renderers.js';
|
|
4
|
+
import { promptChildViewComponentRoles, } from '@cohesivesystems/presentation-contracts';
|
|
5
|
+
/**
|
|
6
|
+
* Creates the standard prompt child-view registry for document workspaces.
|
|
7
|
+
*
|
|
8
|
+
* The backend declares semantic child views such as JSON document diffs and
|
|
9
|
+
* prompt document previews. This helper binds those roles to reusable
|
|
10
|
+
* document-workspace renderers while leaving the concrete projection render
|
|
11
|
+
* context to the app adapter.
|
|
12
|
+
*/
|
|
13
|
+
export function createProjectedDocumentWorkspacePromptChildViewRegistry({ actionStatuses, createPromptPreviewRenderContext, projectionRenderers, registries = [], renderJsonDocumentDiff, renderPromptDocumentPreview, }) {
|
|
14
|
+
const jsonDocumentDiffRenderer = renderJsonDocumentDiff ?? ((context) => createElement(ProjectedJsonDocumentDiffProjection, {
|
|
15
|
+
componentSystem: context.componentSystem,
|
|
16
|
+
dataSourceResolver: context.dataSourceResolver,
|
|
17
|
+
view: context.view,
|
|
18
|
+
}));
|
|
19
|
+
const promptDocumentPreviewRenderer = renderPromptDocumentPreview ?? ((context) => createElement((ProjectedDocumentWorkspacePromptPreviewProjection), {
|
|
20
|
+
actionStatuses,
|
|
21
|
+
componentSystem: context.componentSystem,
|
|
22
|
+
createProjectionRenderContext: createPromptPreviewRenderContext,
|
|
23
|
+
dataSourceResolver: context.dataSourceResolver,
|
|
24
|
+
designSystem: context.designSystem,
|
|
25
|
+
projectionRenderers,
|
|
26
|
+
promptView: context.promptView,
|
|
27
|
+
view: context.view,
|
|
28
|
+
viewId: context.viewId,
|
|
29
|
+
}));
|
|
30
|
+
return mergeProjectedPromptChildViewRendererRegistries({
|
|
31
|
+
byComponentRole: {
|
|
32
|
+
[promptChildViewComponentRoles.jsonDocumentDiff]: jsonDocumentDiffRenderer,
|
|
33
|
+
[promptChildViewComponentRoles.promptDocumentPreview]: promptDocumentPreviewRenderer,
|
|
34
|
+
},
|
|
35
|
+
bySemanticRole: {
|
|
36
|
+
[promptChildViewSemanticRoles.jsonDocumentDiff]: jsonDocumentDiffRenderer,
|
|
37
|
+
[promptChildViewSemanticRoles.promptDocumentPreview]: promptDocumentPreviewRenderer,
|
|
38
|
+
},
|
|
39
|
+
}, ...registries);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=projected-document-workspace-prompt-child-view-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projected-document-workspace-prompt-child-view-registry.js","sourceRoot":"","sources":["../src/projected-document-workspace-prompt-child-view-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAcrC,OAAO,EACL,+CAA+C,EAC/C,4BAA4B,GAG7B,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,iDAAiD,EACjD,mCAAmC,GAEpC,MAAM,4DAA4D,CAAA;AACnE,OAAO,EACL,6BAA6B,GAC9B,MAAM,yCAAyC,CAAA;AAqBhD;;;;;;;GAOG;AACH,MAAM,UAAU,uDAAuD,CAAW,EAChF,cAAc,EACd,gCAAgC,EAChC,mBAAmB,EACnB,UAAU,GAAG,EAAE,EACf,sBAAsB,EACtB,2BAA2B,GAC8C;IACzE,MAAM,wBAAwB,GAC5B,sBAAsB,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACrC,aAAa,CAAC,mCAAmC,EAAE;QACjD,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC,CAAA;IACP,MAAM,6BAA6B,GACjC,2BAA2B,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1C,aAAa,CAAC,CAAA,iDAA2D,CAAA,EAAE;QACzE,cAAc;QACd,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,6BAA6B,EAAE,gCAAgC;QAC/D,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,mBAAmB;QACnB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC,CAAA;IAEP,OAAO,+CAA+C,CACpD;QACE,eAAe,EAAE;YACf,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,EAAE,wBAAwB;YAC1E,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,EAAE,6BAA6B;SACrF;QACD,cAAc,EAAE;YACd,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,EAAE,wBAAwB;YACzE,CAAC,4BAA4B,CAAC,qBAAqB,CAAC,EAAE,6BAA6B;SACpF;KACF,EACD,GAAG,UAAU,CACd,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { DocumentWorkspaceProjectionRendererRegistry } from '@cohesivesystems/presentation-react';
|
|
2
|
+
import type { PresentationShadcnComponentSystem as PresentationComponentSystem } from './presentation-shadcn-component-system.js';
|
|
3
|
+
import type { PresentationDesignSystem } from '@cohesivesystems/presentation-tailwind';
|
|
4
|
+
import { type PresentationDataSourceResolver, type ProjectedDocumentActionStatusMap, type ProjectedPromptDocumentPreviewData, type ViewDefinition } from '@cohesivesystems/presentation-core';
|
|
5
|
+
export interface ProjectedDocumentWorkspacePromptPreviewRenderContextOptions {
|
|
6
|
+
readonly editorPath: string;
|
|
7
|
+
readonly editorText: string;
|
|
8
|
+
readonly isReadOnly: boolean;
|
|
9
|
+
readonly previewData: ProjectedPromptDocumentPreviewData;
|
|
10
|
+
readonly view: ViewDefinition;
|
|
11
|
+
}
|
|
12
|
+
interface ProjectedJsonDocumentDiffProjectionProps {
|
|
13
|
+
readonly componentSystem: PresentationComponentSystem;
|
|
14
|
+
readonly dataSourceResolver: PresentationDataSourceResolver;
|
|
15
|
+
readonly view: ViewDefinition;
|
|
16
|
+
}
|
|
17
|
+
interface ProjectedDocumentWorkspacePromptPreviewProjectionProps<TContext> {
|
|
18
|
+
readonly actionStatuses: ProjectedDocumentActionStatusMap;
|
|
19
|
+
readonly componentSystem: PresentationComponentSystem;
|
|
20
|
+
readonly createProjectionRenderContext: (context: ProjectedDocumentWorkspacePromptPreviewRenderContextOptions) => TContext;
|
|
21
|
+
readonly dataSourceResolver: PresentationDataSourceResolver;
|
|
22
|
+
readonly designSystem: PresentationDesignSystem;
|
|
23
|
+
readonly projectionRenderers: DocumentWorkspaceProjectionRendererRegistry<TContext, PresentationComponentSystem, PresentationDesignSystem>;
|
|
24
|
+
readonly promptView: ViewDefinition;
|
|
25
|
+
readonly statusRegionId?: string | null;
|
|
26
|
+
readonly view: ViewDefinition;
|
|
27
|
+
readonly viewId: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function ProjectedJsonDocumentDiffProjection({ componentSystem, dataSourceResolver, view, }: ProjectedJsonDocumentDiffProjectionProps): string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
30
|
+
export declare function ProjectedDocumentWorkspacePromptPreviewProjection<TContext>({ actionStatuses, createProjectionRenderContext, componentSystem, dataSourceResolver, designSystem, projectionRenderers, promptView, statusRegionId, view, viewId, }: ProjectedDocumentWorkspacePromptPreviewProjectionProps<TContext>): import("react/jsx-runtime").JSX.Element | null;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=projected-document-workspace-prompt-child-view-renderers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projected-document-workspace-prompt-child-view-renderers.d.ts","sourceRoot":"","sources":["../src/projected-document-workspace-prompt-child-view-renderers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2CAA2C,EAC5C,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EACV,iCAAiC,IAAI,2BAA2B,EACjE,MAAM,wCAAwC,CAAA;AAC/C,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EASL,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,KAAK,cAAc,EACpB,MAAM,oCAAoC,CAAA;AAQ3C,MAAM,WAAW,2DAA2D;IAC1E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,kCAAkC,CAAA;IACxD,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAC9B;AAED,UAAU,wCAAwC;IAChD,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAA;IACrD,QAAQ,CAAC,kBAAkB,EAAE,8BAA8B,CAAA;IAC3D,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAC9B;AAUD,UAAU,sDAAsD,CAAC,QAAQ;IACvE,QAAQ,CAAC,cAAc,EAAE,gCAAgC,CAAA;IACzD,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAA;IACrD,QAAQ,CAAC,6BAA6B,EAAE,CACtC,OAAO,EAAE,2DAA2D,KACjE,QAAQ,CAAA;IACb,QAAQ,CAAC,kBAAkB,EAAE,8BAA8B,CAAA;IAC3D,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAA;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,2CAA2C,CACvE,QAAQ,EACR,2BAA2B,EAC3B,wBAAwB,CACzB,CAAA;IACD,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,mCAAmC,CAAC,EAClD,eAAe,EACf,kBAAkB,EAClB,IAAI,GACL,EAAE,wCAAwC,2WAe1C;AAED,wBAAgB,iDAAiD,CAAC,QAAQ,EAAE,EAC1E,cAAc,EACd,6BAA6B,EAC7B,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,IAAI,EACJ,MAAM,GACP,EAAE,sDAAsD,CAAC,QAAQ,CAAC,kDAyElE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { findPromptDocumentPreviewRegionId, findPromptDocumentPreviewStatusRegionId, getErrorMessage, readObjectProperty, resolvePromptDocumentPreviewPath, resolvePromptDocumentPreviewText, resolvePromptStatusMessages, resolvePromptStatusMessageText, } from '@cohesivesystems/presentation-core';
|
|
3
|
+
import { ProjectedStatusBlock, } from './projected-activity-state.js';
|
|
4
|
+
import { ProjectedPromptDocumentPreview, } from './projected-prompt-document-preview.js';
|
|
5
|
+
export function ProjectedJsonDocumentDiffProjection({ componentSystem, dataSourceResolver, view, }) {
|
|
6
|
+
const state = dataSourceResolver.resolveViewPrimary(view);
|
|
7
|
+
const data = state?.data;
|
|
8
|
+
if (!data || typeof data !== 'object') {
|
|
9
|
+
return _jsx(ProjectedStatusBlock, { label: "JSON diff data is not available." });
|
|
10
|
+
}
|
|
11
|
+
return componentSystem.documentWorkspaces.JsonDocumentDiff({
|
|
12
|
+
error: readString(data, 'error') ?? (state.error ? getErrorMessage(state.error) : null),
|
|
13
|
+
modified: readString(data, 'modified') ?? '',
|
|
14
|
+
original: readString(data, 'original') ?? '',
|
|
15
|
+
path: readString(data, 'path') ?? 'document.json',
|
|
16
|
+
title: readString(data, 'title') ?? view.Name,
|
|
17
|
+
viewId: view.Id,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export function ProjectedDocumentWorkspacePromptPreviewProjection({ actionStatuses, createProjectionRenderContext, componentSystem, dataSourceResolver, designSystem, projectionRenderers, promptView, statusRegionId, view, viewId, }) {
|
|
21
|
+
const previewDefinition = view.PromptDocumentPreview;
|
|
22
|
+
const previewRegionId = findPromptDocumentPreviewRegionId(promptView, view.Id) ?? view.Id;
|
|
23
|
+
const previewMessages = resolvePromptStatusMessages({
|
|
24
|
+
actionStatuses,
|
|
25
|
+
dataSourceResolver,
|
|
26
|
+
region: previewRegionId,
|
|
27
|
+
view: promptView,
|
|
28
|
+
});
|
|
29
|
+
const previewState = resolvePromptDocumentPreviewState({
|
|
30
|
+
dataSourceResolver,
|
|
31
|
+
view,
|
|
32
|
+
});
|
|
33
|
+
const preview = readPromptDocumentPreviewData({
|
|
34
|
+
state: previewState,
|
|
35
|
+
});
|
|
36
|
+
if (!preview) {
|
|
37
|
+
if (previewState?.error) {
|
|
38
|
+
return (_jsx(ProjectedStatusBlock, { label: getErrorMessage(previewState.error), tone: "error" }));
|
|
39
|
+
}
|
|
40
|
+
const pendingMessage = previewMessages[0];
|
|
41
|
+
return pendingMessage ? (_jsx(ProjectedStatusBlock, { label: pendingMessage.label, tone: pendingMessage.tone })) : null;
|
|
42
|
+
}
|
|
43
|
+
const previewError = previewMessages.find((message) => message.tone === 'error')?.label ?? null;
|
|
44
|
+
const resolvedStatusRegionId = statusRegionId ?? findPromptDocumentPreviewStatusRegionId(promptView, view.Id);
|
|
45
|
+
const statusLabel = resolvedStatusRegionId
|
|
46
|
+
? resolvePromptStatusMessageText({
|
|
47
|
+
actionStatuses,
|
|
48
|
+
dataSourceResolver,
|
|
49
|
+
region: resolvedStatusRegionId,
|
|
50
|
+
view: promptView,
|
|
51
|
+
})
|
|
52
|
+
: null;
|
|
53
|
+
const previewText = resolvePromptDocumentPreviewText(previewDefinition, preview);
|
|
54
|
+
const previewRenderContext = createProjectionRenderContext({
|
|
55
|
+
editorPath: resolvePromptDocumentPreviewPath(previewDefinition, preview),
|
|
56
|
+
editorText: previewText,
|
|
57
|
+
isReadOnly: previewDefinition?.IsReadOnly ?? true,
|
|
58
|
+
previewData: preview,
|
|
59
|
+
view,
|
|
60
|
+
});
|
|
61
|
+
return (_jsx(ProjectedPromptDocumentPreview, { componentSystem: componentSystem, designSystem: designSystem, definition: previewDefinition, error: previewError, fallback: _jsx(ProjectedStatusBlock, { label: "Document preview workspace is not available." }), previewData: preview, projectionRenderContext: previewRenderContext, projectionRenderers: projectionRenderers, renderUnavailableProjection: () => (_jsx(ProjectedStatusBlock, { label: "This preview view is not available." })), statusLabel: statusLabel ?? undefined, viewId: viewId }));
|
|
62
|
+
}
|
|
63
|
+
function readPromptDocumentPreviewData({ state, }) {
|
|
64
|
+
return state?.data ?? null;
|
|
65
|
+
}
|
|
66
|
+
function resolvePromptDocumentPreviewState({ dataSourceResolver, view, }) {
|
|
67
|
+
const dataSourceId = view.PromptDocumentPreview?.DataSourceId;
|
|
68
|
+
if (dataSourceId) {
|
|
69
|
+
return dataSourceResolver.resolve(dataSourceId);
|
|
70
|
+
}
|
|
71
|
+
return dataSourceResolver.resolveViewPrimary(view);
|
|
72
|
+
}
|
|
73
|
+
function readString(source, key) {
|
|
74
|
+
const value = readObjectProperty(source, key);
|
|
75
|
+
return typeof value === 'string' ? value : null;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=projected-document-workspace-prompt-child-view-renderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projected-document-workspace-prompt-child-view-renderers.js","sourceRoot":"","sources":["../src/projected-document-workspace-prompt-child-view-renderers.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type PresentationDataSourceResolver, type PresentationDataSourceState, type PresentationDataSourceStateMap, type PresentationModuleDefinition, type ProjectedDocumentActionStatusMap, type DocumentWorkspaceProfileProjection, type ProjectedDocumentKind, type ProjectedDocumentResource } from '@cohesivesystems/presentation-core';
|
|
3
|
+
import { type DocumentWorkspaceProjectionRendererRegistry, type DocumentWorkspaceRuntimeSnapshot, type LocalFlowStateDataSourceState, type PresentationFlowRuntimeRegistrySnapshot } from '@cohesivesystems/presentation-react';
|
|
4
|
+
import type { PresentationActionGroupOptions } from './presentation-action-group.js';
|
|
5
|
+
import type { PresentationShadcnComponentSystem as PresentationComponentSystem } from './presentation-shadcn-component-system.js';
|
|
6
|
+
import type { PresentationDesignSystem } from '@cohesivesystems/presentation-tailwind';
|
|
7
|
+
import { type ProjectedDocumentWorkspaceProps } from './projected-document-workspace.js';
|
|
8
|
+
import { type ProjectedPresentationFlowLayerRenderContext } from './projected-presentation-flow-layer.js';
|
|
9
|
+
import { type PromptDocumentPreviewDataSourceState } from '@cohesivesystems/presentation-core';
|
|
10
|
+
import type { ProjectedPromptChildViewRendererRegistry } from './projected-prompt-child-view-renderer.js';
|
|
11
|
+
import type { PresentationBadgeTargetInterpreterRegistry } from './presentation-badge-target-interpreter.js';
|
|
12
|
+
export type ProjectedJsonDocumentValidation = {
|
|
13
|
+
readonly ok: true;
|
|
14
|
+
readonly value: unknown;
|
|
15
|
+
} | {
|
|
16
|
+
readonly ok: false;
|
|
17
|
+
};
|
|
18
|
+
export interface ProjectedDocumentWorkspaceSummaryValueContext {
|
|
19
|
+
readonly documentKind: ProjectedDocumentKind;
|
|
20
|
+
readonly editorText: string;
|
|
21
|
+
readonly fieldPaths: readonly string[];
|
|
22
|
+
readonly parsedDocument: unknown | undefined;
|
|
23
|
+
readonly validation: ProjectedJsonDocumentValidation;
|
|
24
|
+
}
|
|
25
|
+
export interface UseProjectedDocumentWorkspaceStateOptions<TProjection extends DocumentWorkspaceProfileProjection = DocumentWorkspaceProfileProjection> {
|
|
26
|
+
readonly createSummaryDataSourceValue?: (context: ProjectedDocumentWorkspaceSummaryValueContext) => unknown;
|
|
27
|
+
readonly dataSources: PresentationDataSourceStateMap;
|
|
28
|
+
readonly formatDocument?: (value: unknown) => string;
|
|
29
|
+
readonly projection: TProjection;
|
|
30
|
+
readonly resourceId: string;
|
|
31
|
+
readonly validateDocumentText?: (text: string) => ProjectedJsonDocumentValidation;
|
|
32
|
+
}
|
|
33
|
+
export interface ProjectedDocumentWorkspaceState<TMetadata = unknown> {
|
|
34
|
+
readonly dataSourceResolver: PresentationDataSourceResolver;
|
|
35
|
+
readonly editorPath: string;
|
|
36
|
+
readonly editorText: string;
|
|
37
|
+
readonly isEditorDirty: boolean;
|
|
38
|
+
readonly isMetadataPending: boolean;
|
|
39
|
+
readonly jsonValidation: ProjectedJsonDocumentValidation;
|
|
40
|
+
readonly metadata: TMetadata | undefined;
|
|
41
|
+
readonly metadataError: unknown;
|
|
42
|
+
readonly metadataState: PresentationDataSourceState<TMetadata> | undefined;
|
|
43
|
+
readonly parsedEditorDocument: unknown | undefined;
|
|
44
|
+
readonly persistedEditorText: string;
|
|
45
|
+
readonly projectedDataSources: PresentationDataSourceStateMap;
|
|
46
|
+
readonly resource: ProjectedDocumentResource | undefined;
|
|
47
|
+
readonly resourceKey: string | null;
|
|
48
|
+
readonly resourceState: PresentationDataSourceState<ProjectedDocumentResource> | undefined;
|
|
49
|
+
readonly resetEditorState: () => void;
|
|
50
|
+
readonly setEditorText: (text: string) => void;
|
|
51
|
+
readonly title: string;
|
|
52
|
+
}
|
|
53
|
+
export interface ProjectedDocumentWorkspaceShellProps<TProjectionContext> {
|
|
54
|
+
readonly actionGroupOptions?: PresentationActionGroupOptions<TProjectionContext>;
|
|
55
|
+
readonly actionStatuses?: ProjectedDocumentActionStatusMap;
|
|
56
|
+
readonly actionRegionId?: string;
|
|
57
|
+
readonly childViewRegistry?: ProjectedPromptChildViewRendererRegistry<TProjectionContext>;
|
|
58
|
+
readonly className?: string;
|
|
59
|
+
readonly componentSet?: string;
|
|
60
|
+
readonly componentSystem: PresentationComponentSystem;
|
|
61
|
+
readonly dataSourceResolver: PresentationDataSourceResolver;
|
|
62
|
+
readonly designSystem: PresentationDesignSystem;
|
|
63
|
+
readonly fallbackDescription: string;
|
|
64
|
+
readonly fallbackTitle: string;
|
|
65
|
+
readonly flowRegistry?: PresentationFlowRuntimeRegistrySnapshot;
|
|
66
|
+
readonly headerContent?: ReactNode;
|
|
67
|
+
readonly localFlowState?: LocalFlowStateDataSourceState | null;
|
|
68
|
+
readonly metadataBadgeInterpreters?: PresentationBadgeTargetInterpreterRegistry;
|
|
69
|
+
readonly metadataEntityReferenceRole?: string | null;
|
|
70
|
+
readonly module: PresentationModuleDefinition | null;
|
|
71
|
+
readonly promptDocumentPreviewState?: PromptDocumentPreviewDataSourceState | null;
|
|
72
|
+
readonly projectionRenderContext: TProjectionContext;
|
|
73
|
+
readonly projectionRenderers: DocumentWorkspaceProjectionRendererRegistry<TProjectionContext, PresentationComponentSystem, PresentationDesignSystem>;
|
|
74
|
+
readonly renderDocumentViewState?: (content: ReactNode) => ReactNode;
|
|
75
|
+
readonly renderUnavailableProjection?: (viewId: string) => ReactNode;
|
|
76
|
+
readonly readMetadataBadgeRole?: ProjectedDocumentWorkspaceProps<TProjectionContext>['readMetadataBadgeRole'];
|
|
77
|
+
readonly readMetadataFieldRole?: ProjectedDocumentWorkspaceProps<TProjectionContext>['readMetadataFieldRole'];
|
|
78
|
+
readonly resource: unknown;
|
|
79
|
+
readonly resourceBlockedLabel?: string;
|
|
80
|
+
readonly resourcePendingLabel?: string;
|
|
81
|
+
readonly resourceState?: PresentationDataSourceState | null;
|
|
82
|
+
readonly runtime: DocumentWorkspaceRuntimeSnapshot;
|
|
83
|
+
readonly shouldRenderFlowEntry?: (context: ProjectedPresentationFlowLayerRenderContext) => boolean;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Projects generic document workspace runtime state into the standard document
|
|
87
|
+
* editor surface and prompt layer.
|
|
88
|
+
*
|
|
89
|
+
* Product adapters still provide action runtimes, badge interpreters, prompt
|
|
90
|
+
* child renderers, and projection renderers. This shell owns the reusable
|
|
91
|
+
* mechanics around document resource state, local flow-state data sources, and
|
|
92
|
+
* prompt-preview data sources.
|
|
93
|
+
*/
|
|
94
|
+
export declare function ProjectedDocumentWorkspaceShell<TProjectionContext>({ actionGroupOptions, actionStatuses, actionRegionId, childViewRegistry, className, componentSet, componentSystem, dataSourceResolver, designSystem, fallbackDescription, fallbackTitle, flowRegistry, headerContent, localFlowState, metadataBadgeInterpreters, metadataEntityReferenceRole, module, promptDocumentPreviewState, projectionRenderContext, projectionRenderers, renderDocumentViewState, renderUnavailableProjection, readMetadataBadgeRole, readMetadataFieldRole, resource, resourceBlockedLabel, resourcePendingLabel, resourceState, runtime, shouldRenderFlowEntry, }: ProjectedDocumentWorkspaceShellProps<TProjectionContext>): import("react/jsx-runtime").JSX.Element;
|
|
95
|
+
/**
|
|
96
|
+
* Resolves a projected document resource and derives local editor state for
|
|
97
|
+
* JSON-document workspaces.
|
|
98
|
+
*/
|
|
99
|
+
export declare function useProjectedDocumentWorkspaceState<TMetadata = unknown, TProjection extends DocumentWorkspaceProfileProjection = DocumentWorkspaceProfileProjection>({ createSummaryDataSourceValue, dataSources, formatDocument, projection, resourceId, validateDocumentText, }: UseProjectedDocumentWorkspaceStateOptions<TProjection>): ProjectedDocumentWorkspaceState<TMetadata>;
|
|
100
|
+
//# sourceMappingURL=projected-document-workspace-shell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projected-document-workspace-shell.d.ts","sourceRoot":"","sources":["../src/projected-document-workspace-shell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable react-refresh/only-export-components */
|
|
3
|
+
import { useCallback, useMemo, useState, } from 'react';
|
|
4
|
+
import { createDocumentResourceEditorKey, createPresentationDataSourceResolver, readDocumentResourceDocument, readDocumentResourceTitle, createQueryActivityState, presentationDataSourceAuthorization, presentationDataSourceBindings, } from '@cohesivesystems/presentation-core';
|
|
5
|
+
import { createLocalFlowStateDataSourceBindings, usePresentationDataSources, } from '@cohesivesystems/presentation-react';
|
|
6
|
+
import { ProjectedActivityStateBoundary, ProjectedStatusBlock, } from './projected-activity-state.js';
|
|
7
|
+
import { ProjectedDocumentWorkspace, } from './projected-document-workspace.js';
|
|
8
|
+
import { ProjectedPresentationFlowLayer, } from './projected-presentation-flow-layer.js';
|
|
9
|
+
import { createPromptDocumentPreviewDataSourceBindings, } from '@cohesivesystems/presentation-core';
|
|
10
|
+
const emptyPresentationFlowEntries = [];
|
|
11
|
+
/**
|
|
12
|
+
* Projects generic document workspace runtime state into the standard document
|
|
13
|
+
* editor surface and prompt layer.
|
|
14
|
+
*
|
|
15
|
+
* Product adapters still provide action runtimes, badge interpreters, prompt
|
|
16
|
+
* child renderers, and projection renderers. This shell owns the reusable
|
|
17
|
+
* mechanics around document resource state, local flow-state data sources, and
|
|
18
|
+
* prompt-preview data sources.
|
|
19
|
+
*/
|
|
20
|
+
export function ProjectedDocumentWorkspaceShell({ actionGroupOptions, actionStatuses, actionRegionId, childViewRegistry, className, componentSet, componentSystem, dataSourceResolver, designSystem, fallbackDescription, fallbackTitle, flowRegistry, headerContent, localFlowState, metadataBadgeInterpreters, metadataEntityReferenceRole, module, promptDocumentPreviewState, projectionRenderContext, projectionRenderers, renderDocumentViewState, renderUnavailableProjection = renderDefaultUnavailableProjection, readMetadataBadgeRole, readMetadataFieldRole, resource, resourceBlockedLabel = 'Attach an authenticated context to load this document.', resourcePendingLabel = 'Loading document...', resourceState, runtime, shouldRenderFlowEntry, }) {
|
|
21
|
+
const activeFlowEntries = useMemo(() => flowRegistry?.activeEntries ?? emptyPresentationFlowEntries, [flowRegistry?.activeEntries]);
|
|
22
|
+
const hasRenderableFlowEntries = useMemo(() => activeFlowEntries.some((entry) => {
|
|
23
|
+
if (!entry.view) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return shouldRenderFlowEntry?.({ ...entry, view: entry.view }) !== false;
|
|
27
|
+
}), [activeFlowEntries, shouldRenderFlowEntry]);
|
|
28
|
+
const localFlowStateDataSourceBindings = useMemo(() => createLocalFlowStateDataSourceBindings({
|
|
29
|
+
activeEntries: activeFlowEntries,
|
|
30
|
+
authorization: presentationDataSourceAuthorization.none(),
|
|
31
|
+
module,
|
|
32
|
+
state: localFlowState,
|
|
33
|
+
}), [activeFlowEntries, localFlowState, module]);
|
|
34
|
+
const promptDocumentPreviewDataSourceBindings = useMemo(() => createPromptDocumentPreviewDataSourceBindings({
|
|
35
|
+
activeEntries: activeFlowEntries,
|
|
36
|
+
authorization: presentationDataSourceAuthorization.none(),
|
|
37
|
+
module,
|
|
38
|
+
state: promptDocumentPreviewState,
|
|
39
|
+
}), [activeFlowEntries, module, promptDocumentPreviewState]);
|
|
40
|
+
const localFlowStateDataSources = usePresentationDataSources(localFlowStateDataSourceBindings);
|
|
41
|
+
const promptDocumentPreviewDataSources = usePresentationDataSources(promptDocumentPreviewDataSourceBindings);
|
|
42
|
+
const promptDataSourceResolver = useMemo(() => createPresentationDataSourceResolver({
|
|
43
|
+
...dataSourceResolver.dataSources,
|
|
44
|
+
...localFlowStateDataSources,
|
|
45
|
+
...promptDocumentPreviewDataSources,
|
|
46
|
+
}), [
|
|
47
|
+
dataSourceResolver.dataSources,
|
|
48
|
+
localFlowStateDataSources,
|
|
49
|
+
promptDocumentPreviewDataSources,
|
|
50
|
+
]);
|
|
51
|
+
const renderWorkspaceViewState = renderDocumentViewState ?? ((content) => (_jsx(ProjectedActivityStateBoundary, { componentSystem: componentSystem, state: createQueryActivityState({
|
|
52
|
+
blockedLabel: resourceState?.blockedLabel ?? resourceBlockedLabel,
|
|
53
|
+
error: resourceState?.error,
|
|
54
|
+
isBlocked: Boolean(resourceState?.isBlocked),
|
|
55
|
+
isPending: Boolean(resourceState?.isPending),
|
|
56
|
+
pendingLabel: resourceState?.pendingLabel ?? resourcePendingLabel,
|
|
57
|
+
}), children: content })));
|
|
58
|
+
return (_jsx(ProjectedDocumentWorkspace, { actionGroupOptions: actionGroupOptions, className: className, componentSystem: componentSystem, dataSourceResolver: dataSourceResolver, designSystem: designSystem, fallbackDescription: fallbackDescription, fallbackTitle: fallbackTitle, headerContent: headerContent, metadataBadgeInterpreters: metadataBadgeInterpreters, metadataEntityReferenceRole: metadataEntityReferenceRole, projectionRenderContext: projectionRenderContext, projectionRenderers: projectionRenderers, renderDocumentViewState: renderWorkspaceViewState, renderUnavailableProjection: renderUnavailableProjection, readMetadataBadgeRole: readMetadataBadgeRole, readMetadataFieldRole: readMetadataFieldRole, resource: resource, runtime: runtime, children: flowRegistry && childViewRegistry && hasRenderableFlowEntries ? (_jsx(ProjectedPresentationFlowLayer, { actionGroupOptions: actionGroupOptions, actionStatuses: actionStatuses, actionRegionId: actionRegionId, childViewRegistry: childViewRegistry, componentSet: componentSet, componentSystem: componentSystem, context: projectionRenderContext, dataSourceResolver: promptDataSourceResolver, designSystem: designSystem, flowRegistry: flowRegistry, module: module, shouldRenderEntry: shouldRenderFlowEntry })) : null }));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Resolves a projected document resource and derives local editor state for
|
|
62
|
+
* JSON-document workspaces.
|
|
63
|
+
*/
|
|
64
|
+
export function useProjectedDocumentWorkspaceState({ createSummaryDataSourceValue, dataSources, formatDocument = formatProjectedJsonDocument, projection, resourceId, validateDocumentText = validateProjectedJsonDocument, }) {
|
|
65
|
+
const [editorState, setEditorState] = useState(null);
|
|
66
|
+
const boundDataSourceResolver = useMemo(() => createPresentationDataSourceResolver(dataSources), [dataSources]);
|
|
67
|
+
const resourceState = boundDataSourceResolver.resolve(projection.dataSourceId);
|
|
68
|
+
const metadataState = projection.metadata
|
|
69
|
+
? boundDataSourceResolver.resolve(projection.metadata.dataSourceId)
|
|
70
|
+
: undefined;
|
|
71
|
+
const resource = resourceState?.data;
|
|
72
|
+
const resourceKey = resource ? createDocumentResourceEditorKey(projection, resource) : null;
|
|
73
|
+
const persistedEditorText = resource
|
|
74
|
+
? formatDocument(readDocumentResourceDocument(projection, resource))
|
|
75
|
+
: '';
|
|
76
|
+
const editorText = resource && editorState?.resourceKey === resourceKey
|
|
77
|
+
? editorState.text
|
|
78
|
+
: resource
|
|
79
|
+
? persistedEditorText
|
|
80
|
+
: '';
|
|
81
|
+
const isEditorDirty = Boolean(resource && editorText !== persistedEditorText);
|
|
82
|
+
const jsonValidation = validateDocumentText(editorText);
|
|
83
|
+
const parsedEditorDocument = jsonValidation.ok ? jsonValidation.value : undefined;
|
|
84
|
+
const title = resource ? readDocumentResourceTitle(projection, resource) : projection.label;
|
|
85
|
+
const editorPath = projection.editorPath(resourceId);
|
|
86
|
+
const summaryDataSourceBindings = useMemo(() => resource && projection.summary && createSummaryDataSourceValue
|
|
87
|
+
? [
|
|
88
|
+
presentationDataSourceBindings.localValue({
|
|
89
|
+
authorization: presentationDataSourceAuthorization.none(),
|
|
90
|
+
data: createSummaryDataSourceValue({
|
|
91
|
+
documentKind: projection.documentKind,
|
|
92
|
+
editorText,
|
|
93
|
+
fieldPaths: projection.summary.fieldPaths,
|
|
94
|
+
parsedDocument: parsedEditorDocument,
|
|
95
|
+
validation: jsonValidation,
|
|
96
|
+
}),
|
|
97
|
+
dataSourceId: projection.summary.dataSourceId,
|
|
98
|
+
}),
|
|
99
|
+
]
|
|
100
|
+
: [], [
|
|
101
|
+
createSummaryDataSourceValue,
|
|
102
|
+
editorText,
|
|
103
|
+
jsonValidation,
|
|
104
|
+
parsedEditorDocument,
|
|
105
|
+
projection.documentKind,
|
|
106
|
+
projection.summary,
|
|
107
|
+
resource,
|
|
108
|
+
]);
|
|
109
|
+
const summaryDataSources = usePresentationDataSources(summaryDataSourceBindings);
|
|
110
|
+
const projectedDataSources = useMemo(() => ({ ...dataSources, ...summaryDataSources }), [dataSources, summaryDataSources]);
|
|
111
|
+
const dataSourceResolver = useMemo(() => createPresentationDataSourceResolver(projectedDataSources), [projectedDataSources]);
|
|
112
|
+
const resetEditorState = useCallback(() => setEditorState(null), []);
|
|
113
|
+
const setEditorText = useCallback((text) => {
|
|
114
|
+
if (resourceKey) {
|
|
115
|
+
setEditorState({ resourceKey, text });
|
|
116
|
+
}
|
|
117
|
+
}, [resourceKey]);
|
|
118
|
+
return {
|
|
119
|
+
dataSourceResolver,
|
|
120
|
+
editorPath,
|
|
121
|
+
editorText,
|
|
122
|
+
isEditorDirty,
|
|
123
|
+
isMetadataPending: Boolean(metadataState?.isPending && !metadataState.data),
|
|
124
|
+
jsonValidation,
|
|
125
|
+
metadata: metadataState?.data,
|
|
126
|
+
metadataError: metadataState?.error,
|
|
127
|
+
metadataState,
|
|
128
|
+
parsedEditorDocument,
|
|
129
|
+
persistedEditorText,
|
|
130
|
+
projectedDataSources,
|
|
131
|
+
resource,
|
|
132
|
+
resourceKey,
|
|
133
|
+
resourceState,
|
|
134
|
+
resetEditorState,
|
|
135
|
+
setEditorText,
|
|
136
|
+
title,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function renderDefaultUnavailableProjection() {
|
|
140
|
+
return _jsx(ProjectedStatusBlock, { label: "This document view is not available." });
|
|
141
|
+
}
|
|
142
|
+
function formatProjectedJsonDocument(value) {
|
|
143
|
+
return JSON.stringify(value ?? null, null, 2);
|
|
144
|
+
}
|
|
145
|
+
function validateProjectedJsonDocument(value) {
|
|
146
|
+
try {
|
|
147
|
+
return { ok: true, value: JSON.parse(value) };
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return { ok: false };
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=projected-document-workspace-shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projected-document-workspace-shell.js","sourceRoot":"","sources":["../src/projected-document-workspace-shell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type DocumentWorkspaceProjectionRendererRegistry, type DocumentWorkspaceRuntimeSnapshot } from '@cohesivesystems/presentation-react';
|
|
3
|
+
import { type PresentationDataSourceResolver } from '@cohesivesystems/presentation-core';
|
|
4
|
+
import type { PresentationShadcnComponentSystem as PresentationComponentSystem } from './presentation-shadcn-component-system.js';
|
|
5
|
+
import type { PresentationDesignSystem } from '@cohesivesystems/presentation-tailwind';
|
|
6
|
+
import { type ProjectedDocumentEditorSurfaceProps } from './projected-document-editor-surface.js';
|
|
7
|
+
import type { PresentationBadgeTargetInterpreterRegistry } from './presentation-badge-target-interpreter.js';
|
|
8
|
+
import type { PresentationActionGroupOptions } from './presentation-action-group.js';
|
|
9
|
+
import { type ProjectedMetricValue } from './projected-metric-strip.js';
|
|
10
|
+
export interface ProjectedDocumentWorkspaceProps<TProjectionContext> {
|
|
11
|
+
readonly actionGroupOptions?: PresentationActionGroupOptions<TProjectionContext>;
|
|
12
|
+
readonly children?: ReactNode;
|
|
13
|
+
readonly className?: string;
|
|
14
|
+
readonly componentSystem: PresentationComponentSystem;
|
|
15
|
+
readonly dataSourceResolver: PresentationDataSourceResolver;
|
|
16
|
+
readonly designSystem: PresentationDesignSystem;
|
|
17
|
+
readonly fallbackDescription: string;
|
|
18
|
+
readonly fallbackTitle: string;
|
|
19
|
+
readonly headerContent?: ReactNode;
|
|
20
|
+
readonly metadataBadgeInterpreters?: PresentationBadgeTargetInterpreterRegistry;
|
|
21
|
+
readonly metadataEntityReferenceRole?: string | null;
|
|
22
|
+
readonly metricMessage?: ReactNode;
|
|
23
|
+
readonly metricValues?: Readonly<Record<string, ProjectedMetricValue>>;
|
|
24
|
+
readonly projectionRenderContext: TProjectionContext;
|
|
25
|
+
readonly projectionRenderers: DocumentWorkspaceProjectionRendererRegistry<TProjectionContext, PresentationComponentSystem, PresentationDesignSystem>;
|
|
26
|
+
readonly renderDocumentViewState?: (content: ReactNode) => ReactNode;
|
|
27
|
+
readonly renderUnavailableProjection?: (viewId: string) => ReactNode;
|
|
28
|
+
readonly readMetadataBadgeRole?: ProjectedDocumentEditorSurfaceProps<TProjectionContext>['readMetadataBadgeRole'];
|
|
29
|
+
readonly readMetadataFieldRole?: ProjectedDocumentEditorSurfaceProps<TProjectionContext>['readMetadataFieldRole'];
|
|
30
|
+
readonly resource: unknown;
|
|
31
|
+
readonly runtime: DocumentWorkspaceRuntimeSnapshot;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Projects a semantic document workspace runtime into the standard document
|
|
35
|
+
* editor surface. Route components provide data/actions; this renderer owns
|
|
36
|
+
* view resolution, layout state binding, and projection renderer lookup.
|
|
37
|
+
*/
|
|
38
|
+
export declare function ProjectedDocumentWorkspace<TProjectionContext>({ actionGroupOptions, children, className, componentSystem, dataSourceResolver, designSystem, fallbackDescription, fallbackTitle, headerContent, metadataBadgeInterpreters, metadataEntityReferenceRole, metricMessage: metricMessageOverride, metricValues, projectionRenderContext, projectionRenderers, renderDocumentViewState, renderUnavailableProjection, readMetadataBadgeRole, readMetadataFieldRole, resource, runtime, }: ProjectedDocumentWorkspaceProps<TProjectionContext>): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
//# sourceMappingURL=projected-document-workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projected-document-workspace.d.ts","sourceRoot":"","sources":["../src/projected-document-workspace.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE/C,OAAO,EACL,KAAK,2CAA2C,EAChD,KAAK,gCAAgC,EAGtC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAGL,KAAK,8BAA8B,EAEpC,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,EACV,iCAAiC,IAAI,2BAA2B,EACjE,MAAM,wCAAwC,CAAA;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACtF,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EACV,0CAA0C,EAC3C,MAAM,yCAAyC,CAAA;AAEhD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAA;AACjF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAKpE,MAAM,WAAW,+BAA+B,CAAC,kBAAkB;IACjE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,kBAAkB,CAAC,CAAA;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAA;IACrD,QAAQ,CAAC,kBAAkB,EAAE,8BAA8B,CAAA;IAC3D,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAA;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAA;IAClC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,0CAA0C,CAAA;IAC/E,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAA;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAA;IACtE,QAAQ,CAAC,uBAAuB,EAAE,kBAAkB,CAAA;IACpD,QAAQ,CAAC,mBAAmB,EAAE,2CAA2C,CACvE,kBAAkB,EAClB,2BAA2B,EAC3B,wBAAwB,CACzB,CAAA;IACD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAA;IACpE,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAA;IACpE,QAAQ,CAAC,qBAAqB,CAAC,EAC7B,mCAAmC,CAAC,kBAAkB,CAAC,CAAC,uBAAuB,CAAC,CAAA;IAClF,QAAQ,CAAC,qBAAqB,CAAC,EAC7B,mCAAmC,CAAC,kBAAkB,CAAC,CAAC,uBAAuB,CAAC,CAAA;IAClF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,gCAAgC,CAAA;CACnD;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,kBAAkB,EAAE,EAC7D,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,yBAAyB,EACzB,2BAA2B,EAC3B,aAAa,EAAE,qBAAqB,EACpC,YAAgC,EAChC,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,2BAAgE,EAChE,qBAAqB,EACrB,qBAAqB,EACrB,QAAQ,EACR,OAAO,GACR,EAAE,+BAA+B,CAAC,kBAAkB,CAAC,2CAmErD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { renderDocumentWorkspaceProjection, usePresentationModule, } from '@cohesivesystems/presentation-react';
|
|
4
|
+
import { findDocumentProfileDataSource, documentSummaryStructuralMessageFieldPath, } from '@cohesivesystems/presentation-core';
|
|
5
|
+
import { ProjectedDocumentEditorSurface, } from './projected-document-editor-surface.js';
|
|
6
|
+
import { ProjectedStatusBlock } from './projected-activity-state.js';
|
|
7
|
+
import {} from './projected-metric-strip.js';
|
|
8
|
+
import { documentDataSourceRoles } from '@cohesivesystems/presentation-contracts';
|
|
9
|
+
const emptyMetricValues = {};
|
|
10
|
+
/**
|
|
11
|
+
* Projects a semantic document workspace runtime into the standard document
|
|
12
|
+
* editor surface. Route components provide data/actions; this renderer owns
|
|
13
|
+
* view resolution, layout state binding, and projection renderer lookup.
|
|
14
|
+
*/
|
|
15
|
+
export function ProjectedDocumentWorkspace({ actionGroupOptions, children, className, componentSystem, dataSourceResolver, designSystem, fallbackDescription, fallbackTitle, headerContent, metadataBadgeInterpreters, metadataEntityReferenceRole, metricMessage: metricMessageOverride, metricValues = emptyMetricValues, projectionRenderContext, projectionRenderers, renderDocumentViewState, renderUnavailableProjection = renderDefaultUnavailableProjection, readMetadataBadgeRole, readMetadataFieldRole, resource, runtime, }) {
|
|
16
|
+
const module = usePresentationModule();
|
|
17
|
+
const activeViewId = runtime.activeViewId && runtime.projectionViewIds.includes(runtime.activeViewId)
|
|
18
|
+
? runtime.activeViewId
|
|
19
|
+
: (runtime.projectionViewIds[0] ?? '');
|
|
20
|
+
const metricMessage = metricMessageOverride ??
|
|
21
|
+
renderDocumentSummaryMetricMessage(runtime, dataSourceResolver);
|
|
22
|
+
const projectedMetricValues = useMemo(() => ({
|
|
23
|
+
...createDocumentProfileMetricValues(runtime.documentProfile.MetricSources ?? [], dataSourceResolver),
|
|
24
|
+
...metricValues,
|
|
25
|
+
}), [dataSourceResolver, metricValues, runtime.documentProfile.MetricSources]);
|
|
26
|
+
function renderDocumentView(viewId) {
|
|
27
|
+
return (renderDocumentWorkspaceProjection(runtime, projectionRenderers, projectionRenderContext, viewId, { componentSystem, designSystem, module }) ?? renderUnavailableProjection(viewId));
|
|
28
|
+
}
|
|
29
|
+
return (_jsx(ProjectedDocumentEditorSurface, { actionContext: projectionRenderContext, actionGroupOptions: actionGroupOptions, activeViewId: activeViewId, className: className, componentSystem: componentSystem, dataSourceResolver: dataSourceResolver, designSystem: designSystem, documentViewIds: runtime.projectionViewIds, fallbackDescription: fallbackDescription, fallbackTitle: fallbackTitle, fallbackViewIds: runtime.projectionViewIds, headerContent: headerContent, activeLayoutModeId: runtime.activeLayoutModeId, layout: runtime.layout, metadataBadgeInterpreters: metadataBadgeInterpreters, metadataEntityReferenceRole: metadataEntityReferenceRole, metricMessage: metricMessage, metricValues: projectedMetricValues, onActiveViewIdChange: runtime.setActiveViewId, onLayoutChange: runtime.setLayout, pageViewId: runtime.pageView.Id, projections: runtime.projections, renderDocumentView: renderDocumentView, renderDocumentViewState: renderDocumentViewState, readMetadataBadgeRole: readMetadataBadgeRole, readMetadataFieldRole: readMetadataFieldRole, resource: resource, workspace: runtime.workspace, workspaceLayout: runtime.documentProfile.Layout, children: children }));
|
|
30
|
+
}
|
|
31
|
+
function renderDefaultUnavailableProjection() {
|
|
32
|
+
return _jsx(ProjectedStatusBlock, { label: "This document view is not available." });
|
|
33
|
+
}
|
|
34
|
+
function createDocumentProfileMetricValues(metricSources, dataSourceResolver) {
|
|
35
|
+
return Object.fromEntries(metricSources.flatMap((metricSource) => {
|
|
36
|
+
const value = dataSourceResolver.readPath(metricSource.Source.DataSourceId, metricSource.Source.FieldPath);
|
|
37
|
+
if (value === undefined) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
return [
|
|
41
|
+
[
|
|
42
|
+
metricSource.FieldId,
|
|
43
|
+
{
|
|
44
|
+
value: formatDocumentProfileMetricValue(value),
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
];
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
function formatDocumentProfileMetricValue(value) {
|
|
51
|
+
if (value === null || value === '') {
|
|
52
|
+
return 'none';
|
|
53
|
+
}
|
|
54
|
+
return String(value);
|
|
55
|
+
}
|
|
56
|
+
function renderDocumentSummaryMetricMessage(runtime, dataSourceResolver) {
|
|
57
|
+
const summaryDataSource = findDocumentProfileDataSource(runtime.documentProfile, documentDataSourceRoles.summary);
|
|
58
|
+
const message = summaryDataSource
|
|
59
|
+
? dataSourceResolver.readPath(summaryDataSource.DataSource.DataSourceId, documentSummaryStructuralMessageFieldPath)
|
|
60
|
+
: undefined;
|
|
61
|
+
return typeof message === 'string' && message.length > 0 ? (_jsx("p", { className: "text-xs text-slate-500", children: message })) : null;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=projected-document-workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projected-document-workspace.js","sourceRoot":"","sources":["../src/projected-document-workspace.tsx"],"names":[],"mappings":"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"}
|