@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.
Files changed (262) hide show
  1. package/LICENSE +55 -0
  2. package/dist/document-workspace-surface-slot-renderers.d.ts +58 -0
  3. package/dist/document-workspace-surface-slot-renderers.d.ts.map +1 -0
  4. package/dist/document-workspace-surface-slot-renderers.js +206 -0
  5. package/dist/document-workspace-surface-slot-renderers.js.map +1 -0
  6. package/dist/index.d.ts +53 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +53 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/navigation-shell-frame-renderer-registry.d.ts +8 -0
  11. package/dist/navigation-shell-frame-renderer-registry.d.ts.map +1 -0
  12. package/dist/navigation-shell-frame-renderer-registry.js +2 -0
  13. package/dist/navigation-shell-frame-renderer-registry.js.map +1 -0
  14. package/dist/navigation-shell-slot-renderer-registry.d.ts +9 -0
  15. package/dist/navigation-shell-slot-renderer-registry.d.ts.map +1 -0
  16. package/dist/navigation-shell-slot-renderer-registry.js +2 -0
  17. package/dist/navigation-shell-slot-renderer-registry.js.map +1 -0
  18. package/dist/page-host-unavailable-renderer.d.ts +10 -0
  19. package/dist/page-host-unavailable-renderer.d.ts.map +1 -0
  20. package/dist/page-host-unavailable-renderer.js +27 -0
  21. package/dist/page-host-unavailable-renderer.js.map +1 -0
  22. package/dist/presentation-action-group.d.ts +99 -0
  23. package/dist/presentation-action-group.d.ts.map +1 -0
  24. package/dist/presentation-action-group.js +214 -0
  25. package/dist/presentation-action-group.js.map +1 -0
  26. package/dist/presentation-badge-target-interpreter.d.ts +26 -0
  27. package/dist/presentation-badge-target-interpreter.d.ts.map +1 -0
  28. package/dist/presentation-badge-target-interpreter.js +17 -0
  29. package/dist/presentation-badge-target-interpreter.js.map +1 -0
  30. package/dist/presentation-component-groups.d.ts +968 -0
  31. package/dist/presentation-component-groups.d.ts.map +1 -0
  32. package/dist/presentation-component-groups.js +505 -0
  33. package/dist/presentation-component-groups.js.map +1 -0
  34. package/dist/presentation-component-system-diagnostics.d.ts +27 -0
  35. package/dist/presentation-component-system-diagnostics.d.ts.map +1 -0
  36. package/dist/presentation-component-system-diagnostics.js +399 -0
  37. package/dist/presentation-component-system-diagnostics.js.map +1 -0
  38. package/dist/presentation-component-system.d.ts +31 -0
  39. package/dist/presentation-component-system.d.ts.map +1 -0
  40. package/dist/presentation-component-system.js +61 -0
  41. package/dist/presentation-component-system.js.map +1 -0
  42. package/dist/presentation-icon-diagnostics.d.ts +12 -0
  43. package/dist/presentation-icon-diagnostics.d.ts.map +1 -0
  44. package/dist/presentation-icon-diagnostics.js +17 -0
  45. package/dist/presentation-icon-diagnostics.js.map +1 -0
  46. package/dist/presentation-icon-registry.d.ts +28 -0
  47. package/dist/presentation-icon-registry.d.ts.map +1 -0
  48. package/dist/presentation-icon-registry.js +80 -0
  49. package/dist/presentation-icon-registry.js.map +1 -0
  50. package/dist/presentation-projection-trace-panel.d.ts +10 -0
  51. package/dist/presentation-projection-trace-panel.d.ts.map +1 -0
  52. package/dist/presentation-projection-trace-panel.js +48 -0
  53. package/dist/presentation-projection-trace-panel.js.map +1 -0
  54. package/dist/presentation-routed-surface-host.d.ts +19 -0
  55. package/dist/presentation-routed-surface-host.d.ts.map +1 -0
  56. package/dist/presentation-routed-surface-host.js +12 -0
  57. package/dist/presentation-routed-surface-host.js.map +1 -0
  58. package/dist/presentation-shadcn-component-system.d.ts +22 -0
  59. package/dist/presentation-shadcn-component-system.d.ts.map +1 -0
  60. package/dist/presentation-shadcn-component-system.js +2 -0
  61. package/dist/presentation-shadcn-component-system.js.map +1 -0
  62. package/dist/presentation-standard-renderers.d.ts +168 -0
  63. package/dist/presentation-standard-renderers.d.ts.map +1 -0
  64. package/dist/presentation-standard-renderers.js +440 -0
  65. package/dist/presentation-standard-renderers.js.map +1 -0
  66. package/dist/presentation-surface-renderer.d.ts +23 -0
  67. package/dist/presentation-surface-renderer.d.ts.map +1 -0
  68. package/dist/presentation-surface-renderer.js +119 -0
  69. package/dist/presentation-surface-renderer.js.map +1 -0
  70. package/dist/presentation-value-renderers.d.ts +10 -0
  71. package/dist/presentation-value-renderers.d.ts.map +1 -0
  72. package/dist/presentation-value-renderers.js +14 -0
  73. package/dist/presentation-value-renderers.js.map +1 -0
  74. package/dist/process-task-icons.d.ts +49 -0
  75. package/dist/process-task-icons.d.ts.map +1 -0
  76. package/dist/process-task-icons.js +154 -0
  77. package/dist/process-task-icons.js.map +1 -0
  78. package/dist/projected-activity-state.d.ts +17 -0
  79. package/dist/projected-activity-state.d.ts.map +1 -0
  80. package/dist/projected-activity-state.js +22 -0
  81. package/dist/projected-activity-state.js.map +1 -0
  82. package/dist/projected-collection-action-runtime-diagnostics.d.ts +4 -0
  83. package/dist/projected-collection-action-runtime-diagnostics.d.ts.map +1 -0
  84. package/dist/projected-collection-action-runtime-diagnostics.js +9 -0
  85. package/dist/projected-collection-action-runtime-diagnostics.js.map +1 -0
  86. package/dist/projected-collection-view.d.ts +90 -0
  87. package/dist/projected-collection-view.d.ts.map +1 -0
  88. package/dist/projected-collection-view.js +532 -0
  89. package/dist/projected-collection-view.js.map +1 -0
  90. package/dist/projected-document-action-status-notices.d.ts +15 -0
  91. package/dist/projected-document-action-status-notices.d.ts.map +1 -0
  92. package/dist/projected-document-action-status-notices.js +33 -0
  93. package/dist/projected-document-action-status-notices.js.map +1 -0
  94. package/dist/projected-document-badges.d.ts +24 -0
  95. package/dist/projected-document-badges.d.ts.map +1 -0
  96. package/dist/projected-document-badges.js +53 -0
  97. package/dist/projected-document-badges.js.map +1 -0
  98. package/dist/projected-document-editor-surface.d.ts +46 -0
  99. package/dist/projected-document-editor-surface.d.ts.map +1 -0
  100. package/dist/projected-document-editor-surface.js +399 -0
  101. package/dist/projected-document-editor-surface.js.map +1 -0
  102. package/dist/projected-document-workspace-notices.d.ts +24 -0
  103. package/dist/projected-document-workspace-notices.d.ts.map +1 -0
  104. package/dist/projected-document-workspace-notices.js +14 -0
  105. package/dist/projected-document-workspace-notices.js.map +1 -0
  106. package/dist/projected-document-workspace-prompt-child-view-registry.d.ts +25 -0
  107. package/dist/projected-document-workspace-prompt-child-view-registry.d.ts.map +1 -0
  108. package/dist/projected-document-workspace-prompt-child-view-registry.js +41 -0
  109. package/dist/projected-document-workspace-prompt-child-view-registry.js.map +1 -0
  110. package/dist/projected-document-workspace-prompt-child-view-renderers.d.ts +32 -0
  111. package/dist/projected-document-workspace-prompt-child-view-renderers.d.ts.map +1 -0
  112. package/dist/projected-document-workspace-prompt-child-view-renderers.js +77 -0
  113. package/dist/projected-document-workspace-prompt-child-view-renderers.js.map +1 -0
  114. package/dist/projected-document-workspace-shell.d.ts +100 -0
  115. package/dist/projected-document-workspace-shell.d.ts.map +1 -0
  116. package/dist/projected-document-workspace-shell.js +153 -0
  117. package/dist/projected-document-workspace-shell.js.map +1 -0
  118. package/dist/projected-document-workspace.d.ts +39 -0
  119. package/dist/projected-document-workspace.d.ts.map +1 -0
  120. package/dist/projected-document-workspace.js +63 -0
  121. package/dist/projected-document-workspace.js.map +1 -0
  122. package/dist/projected-field-value-rendering.d.ts +94 -0
  123. package/dist/projected-field-value-rendering.d.ts.map +1 -0
  124. package/dist/projected-field-value-rendering.js +377 -0
  125. package/dist/projected-field-value-rendering.js.map +1 -0
  126. package/dist/projected-inline-list.d.ts +20 -0
  127. package/dist/projected-inline-list.d.ts.map +1 -0
  128. package/dist/projected-inline-list.js +149 -0
  129. package/dist/projected-inline-list.js.map +1 -0
  130. package/dist/projected-input-form.d.ts +143 -0
  131. package/dist/projected-input-form.d.ts.map +1 -0
  132. package/dist/projected-input-form.js +612 -0
  133. package/dist/projected-input-form.js.map +1 -0
  134. package/dist/projected-metric-dashboard.d.ts +26 -0
  135. package/dist/projected-metric-dashboard.d.ts.map +1 -0
  136. package/dist/projected-metric-dashboard.js +20 -0
  137. package/dist/projected-metric-dashboard.js.map +1 -0
  138. package/dist/projected-metric-strip.d.ts +20 -0
  139. package/dist/projected-metric-strip.d.ts.map +1 -0
  140. package/dist/projected-metric-strip.js +131 -0
  141. package/dist/projected-metric-strip.js.map +1 -0
  142. package/dist/projected-navigation-shell-view-host.d.ts +34 -0
  143. package/dist/projected-navigation-shell-view-host.d.ts.map +1 -0
  144. package/dist/projected-navigation-shell-view-host.js +75 -0
  145. package/dist/projected-navigation-shell-view-host.js.map +1 -0
  146. package/dist/projected-navigation-shell.d.ts +33 -0
  147. package/dist/projected-navigation-shell.d.ts.map +1 -0
  148. package/dist/projected-navigation-shell.js +112 -0
  149. package/dist/projected-navigation-shell.js.map +1 -0
  150. package/dist/projected-presentation-badges.d.ts +34 -0
  151. package/dist/projected-presentation-badges.d.ts.map +1 -0
  152. package/dist/projected-presentation-badges.js +22 -0
  153. package/dist/projected-presentation-badges.js.map +1 -0
  154. package/dist/projected-presentation-diagnostics.d.ts +10 -0
  155. package/dist/projected-presentation-diagnostics.d.ts.map +1 -0
  156. package/dist/projected-presentation-diagnostics.js +40 -0
  157. package/dist/projected-presentation-diagnostics.js.map +1 -0
  158. package/dist/projected-presentation-flow-layer.d.ts +33 -0
  159. package/dist/projected-presentation-flow-layer.d.ts.map +1 -0
  160. package/dist/projected-presentation-flow-layer.js +71 -0
  161. package/dist/projected-presentation-flow-layer.js.map +1 -0
  162. package/dist/projected-process-task-notices.d.ts +37 -0
  163. package/dist/projected-process-task-notices.d.ts.map +1 -0
  164. package/dist/projected-process-task-notices.js +225 -0
  165. package/dist/projected-process-task-notices.js.map +1 -0
  166. package/dist/projected-prompt-child-view-renderer.d.ts +101 -0
  167. package/dist/projected-prompt-child-view-renderer.d.ts.map +1 -0
  168. package/dist/projected-prompt-child-view-renderer.js +442 -0
  169. package/dist/projected-prompt-child-view-renderer.js.map +1 -0
  170. package/dist/projected-prompt-document-preview.d.ts +39 -0
  171. package/dist/projected-prompt-document-preview.d.ts.map +1 -0
  172. package/dist/projected-prompt-document-preview.js +50 -0
  173. package/dist/projected-prompt-document-preview.js.map +1 -0
  174. package/dist/projected-prompt-view.d.ts +35 -0
  175. package/dist/projected-prompt-view.d.ts.map +1 -0
  176. package/dist/projected-prompt-view.js +292 -0
  177. package/dist/projected-prompt-view.js.map +1 -0
  178. package/dist/projected-query-form.d.ts +56 -0
  179. package/dist/projected-query-form.d.ts.map +1 -0
  180. package/dist/projected-query-form.js +100 -0
  181. package/dist/projected-query-form.js.map +1 -0
  182. package/dist/projected-record-details.d.ts +20 -0
  183. package/dist/projected-record-details.d.ts.map +1 -0
  184. package/dist/projected-record-details.js +60 -0
  185. package/dist/projected-record-details.js.map +1 -0
  186. package/dist/projected-routed-surface-runtime.d.ts +86 -0
  187. package/dist/projected-routed-surface-runtime.d.ts.map +1 -0
  188. package/dist/projected-routed-surface-runtime.js +332 -0
  189. package/dist/projected-routed-surface-runtime.js.map +1 -0
  190. package/dist/projected-tabs-view.d.ts +21 -0
  191. package/dist/projected-tabs-view.d.ts.map +1 -0
  192. package/dist/projected-tabs-view.js +140 -0
  193. package/dist/projected-tabs-view.js.map +1 -0
  194. package/dist/projected-view-chrome.d.ts +15 -0
  195. package/dist/projected-view-chrome.d.ts.map +1 -0
  196. package/dist/projected-view-chrome.js +67 -0
  197. package/dist/projected-view-chrome.js.map +1 -0
  198. package/dist/projected-view-surface.d.ts +34 -0
  199. package/dist/projected-view-surface.d.ts.map +1 -0
  200. package/dist/projected-view-surface.js +40 -0
  201. package/dist/projected-view-surface.js.map +1 -0
  202. package/dist/standard-collection-chrome-slot-renderers.d.ts +26 -0
  203. package/dist/standard-collection-chrome-slot-renderers.d.ts.map +1 -0
  204. package/dist/standard-collection-chrome-slot-renderers.js +250 -0
  205. package/dist/standard-collection-chrome-slot-renderers.js.map +1 -0
  206. package/dist/standard-view-chrome-slot-renderers.d.ts +57 -0
  207. package/dist/standard-view-chrome-slot-renderers.d.ts.map +1 -0
  208. package/dist/standard-view-chrome-slot-renderers.js +614 -0
  209. package/dist/standard-view-chrome-slot-renderers.js.map +1 -0
  210. package/package.json +68 -0
  211. package/src/document-workspace-surface-slot-renderers.tsx +395 -0
  212. package/src/index.ts +53 -0
  213. package/src/navigation-shell-frame-renderer-registry.ts +29 -0
  214. package/src/navigation-shell-slot-renderer-registry.ts +46 -0
  215. package/src/page-host-unavailable-renderer.tsx +79 -0
  216. package/src/presentation-action-group.tsx +475 -0
  217. package/src/presentation-badge-target-interpreter.ts +54 -0
  218. package/src/presentation-component-groups.ts +2505 -0
  219. package/src/presentation-component-system-diagnostics.ts +848 -0
  220. package/src/presentation-component-system.ts +365 -0
  221. package/src/presentation-icon-diagnostics.ts +53 -0
  222. package/src/presentation-icon-registry.tsx +181 -0
  223. package/src/presentation-projection-trace-panel.tsx +140 -0
  224. package/src/presentation-routed-surface-host.tsx +48 -0
  225. package/src/presentation-shadcn-component-system.ts +102 -0
  226. package/src/presentation-standard-renderers.tsx +1290 -0
  227. package/src/presentation-surface-renderer.tsx +263 -0
  228. package/src/presentation-value-renderers.tsx +40 -0
  229. package/src/process-task-icons.tsx +258 -0
  230. package/src/projected-activity-state.tsx +63 -0
  231. package/src/projected-collection-action-runtime-diagnostics.ts +22 -0
  232. package/src/projected-collection-view.tsx +1273 -0
  233. package/src/projected-document-action-status-notices.tsx +66 -0
  234. package/src/projected-document-badges.tsx +134 -0
  235. package/src/projected-document-editor-surface.tsx +808 -0
  236. package/src/projected-document-workspace-notices.tsx +77 -0
  237. package/src/projected-document-workspace-prompt-child-view-registry.ts +99 -0
  238. package/src/projected-document-workspace-prompt-child-view-renderers.tsx +205 -0
  239. package/src/projected-document-workspace-shell.tsx +427 -0
  240. package/src/projected-document-workspace.tsx +216 -0
  241. package/src/projected-field-value-rendering.tsx +704 -0
  242. package/src/projected-inline-list.tsx +434 -0
  243. package/src/projected-input-form.tsx +1218 -0
  244. package/src/projected-metric-dashboard.tsx +106 -0
  245. package/src/projected-metric-strip.tsx +244 -0
  246. package/src/projected-navigation-shell-view-host.tsx +177 -0
  247. package/src/projected-navigation-shell.tsx +219 -0
  248. package/src/projected-presentation-badges.tsx +95 -0
  249. package/src/projected-presentation-diagnostics.tsx +120 -0
  250. package/src/projected-presentation-flow-layer.tsx +186 -0
  251. package/src/projected-process-task-notices.tsx +501 -0
  252. package/src/projected-prompt-child-view-renderer.tsx +698 -0
  253. package/src/projected-prompt-document-preview.tsx +197 -0
  254. package/src/projected-prompt-view.tsx +592 -0
  255. package/src/projected-query-form.tsx +286 -0
  256. package/src/projected-record-details.tsx +133 -0
  257. package/src/projected-routed-surface-runtime.tsx +713 -0
  258. package/src/projected-tabs-view.tsx +308 -0
  259. package/src/projected-view-chrome.tsx +148 -0
  260. package/src/projected-view-surface.tsx +131 -0
  261. package/src/standard-collection-chrome-slot-renderers.tsx +391 -0
  262. package/src/standard-view-chrome-slot-renderers.tsx +1064 -0
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ const severityRank = {
3
+ info: 0,
4
+ warning: 1,
5
+ error: 2,
6
+ };
7
+ /** Renders projection TODOs emitted by frontend interpreters. */
8
+ export function ProjectedPresentationDiagnostics({ diagnostics, emptyLabel, minSeverity = 'warning', title = 'Projection diagnostics', }) {
9
+ const visibleDiagnostics = diagnostics.filter((diagnostic) => severityRank[diagnostic.severity] >= severityRank[minSeverity]);
10
+ if (visibleDiagnostics.length === 0) {
11
+ return emptyLabel ? (_jsx("p", { className: "rounded-md border border-slate-950/10 bg-slate-50 px-3 py-2 text-sm text-slate-500", children: emptyLabel })) : null;
12
+ }
13
+ const hasError = visibleDiagnostics.some((diagnostic) => diagnostic.severity === 'error');
14
+ const hasWarning = visibleDiagnostics.some((diagnostic) => diagnostic.severity === 'warning');
15
+ return (_jsxs("section", { className: getDiagnosticsPanelClassName({ hasError, hasWarning }), children: [title ? _jsx("div", { className: "font-medium", children: title }) : null, _jsx("ul", { className: "mt-1 grid gap-1", children: visibleDiagnostics.map((diagnostic) => (_jsxs("li", { className: "grid gap-0.5", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-1", children: [_jsx("span", { className: getDiagnosticSeverityClassName(diagnostic.severity), children: formatDiagnosticSeverity(diagnostic.severity) }), diagnostic.category ? (_jsx("span", { className: "rounded bg-white/70 px-1.5 py-0.5 text-[0.65rem] font-medium uppercase tracking-wide opacity-80", children: diagnostic.category })) : null, diagnostic.interpretation ? (_jsx("span", { className: "rounded bg-white/70 px-1.5 py-0.5 text-[0.65rem] font-medium uppercase tracking-wide opacity-80", children: diagnostic.interpretation.status })) : null, _jsx("span", { children: diagnostic.message })] }), _jsxs("span", { className: "break-all font-mono text-[0.7rem] opacity-75", children: [diagnostic.source, diagnostic.interpretation
16
+ ? ` - target:${diagnostic.interpretation.target}`
17
+ : '', diagnostic.subject ? ` - ${diagnostic.subject.kind}:${diagnostic.subject.id}` : ''] }), diagnostic.suggestedNextStep ? (_jsx("span", { className: "text-[0.72rem] opacity-85", children: diagnostic.suggestedNextStep })) : null] }, `${diagnostic.source}:${diagnostic.id}`))) })] }));
18
+ }
19
+ function getDiagnosticsPanelClassName({ hasError, hasWarning, }) {
20
+ if (hasError) {
21
+ return 'rounded-md border border-red-300/70 bg-red-50 px-3 py-2 text-sm text-red-900';
22
+ }
23
+ if (hasWarning) {
24
+ return 'rounded-md border border-amber-300/70 bg-amber-50 px-3 py-2 text-sm text-amber-950';
25
+ }
26
+ return 'rounded-md border border-sky-200/80 bg-sky-50 px-3 py-2 text-sm text-sky-950';
27
+ }
28
+ function getDiagnosticSeverityClassName(severity) {
29
+ if (severity === 'error') {
30
+ return 'rounded bg-red-100 px-1.5 py-0.5 text-[0.65rem] font-medium uppercase tracking-wide text-red-700';
31
+ }
32
+ if (severity === 'warning') {
33
+ return 'rounded bg-amber-100 px-1.5 py-0.5 text-[0.65rem] font-medium uppercase tracking-wide text-amber-800';
34
+ }
35
+ return 'rounded bg-sky-100 px-1.5 py-0.5 text-[0.65rem] font-medium uppercase tracking-wide text-sky-700';
36
+ }
37
+ function formatDiagnosticSeverity(severity) {
38
+ return severity === 'warning' ? 'warn' : severity;
39
+ }
40
+ //# sourceMappingURL=projected-presentation-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-presentation-diagnostics.js","sourceRoot":"","sources":["../src/projected-presentation-diagnostics.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { PresentationDataSourceResolver, PresentationModuleDefinition, ViewChromeSlotDefinition, ViewDefinition } from '@cohesivesystems/presentation-core';
3
+ import type { PresentationShadcnComponentSystem as PresentationComponentSystem } from './presentation-shadcn-component-system.js';
4
+ import type { PresentationDesignSystem } from '@cohesivesystems/presentation-tailwind';
5
+ import type { PresentationActionGroupOptions } from './presentation-action-group.js';
6
+ import type { ProjectedDocumentActionStatusMap } from '@cohesivesystems/presentation-core';
7
+ import type { PresentationFlowRuntimeEntry, PresentationFlowRuntimeRegistrySnapshot } from '@cohesivesystems/presentation-react';
8
+ import { type ProjectedPromptChildViewRendererRegistry } from './projected-prompt-child-view-renderer.js';
9
+ export interface ProjectedPresentationFlowLayerProps<TContext> {
10
+ readonly actionGroupOptions?: PresentationActionGroupOptions<TContext>;
11
+ readonly actionStatuses?: ProjectedDocumentActionStatusMap;
12
+ readonly actionRegionId?: string;
13
+ readonly childViewRegistry: ProjectedPromptChildViewRendererRegistry<TContext>;
14
+ readonly componentSet?: string;
15
+ readonly componentSystem: PresentationComponentSystem;
16
+ readonly context: TContext;
17
+ readonly dataSourceResolver: PresentationDataSourceResolver;
18
+ readonly designSystem: PresentationDesignSystem;
19
+ readonly flowRegistry: PresentationFlowRuntimeRegistrySnapshot;
20
+ readonly module: PresentationModuleDefinition | null;
21
+ readonly renderChromeSlot?: (context: ProjectedPresentationFlowLayerChromeSlotRenderContext<TContext>) => ReactNode;
22
+ readonly shouldRenderEntry?: (context: ProjectedPresentationFlowLayerRenderContext) => boolean;
23
+ }
24
+ export interface ProjectedPresentationFlowLayerRenderContext extends Omit<PresentationFlowRuntimeEntry, 'view'> {
25
+ readonly view: ViewDefinition;
26
+ }
27
+ export interface ProjectedPresentationFlowLayerChromeSlotRenderContext<TContext> extends ProjectedPresentationFlowLayerRenderContext {
28
+ readonly context: TContext;
29
+ readonly dataSourceResolver: PresentationDataSourceResolver;
30
+ readonly slot: ViewChromeSlotDefinition;
31
+ }
32
+ export declare function ProjectedPresentationFlowLayer<TContext>({ actionGroupOptions, actionStatuses, actionRegionId, childViewRegistry, componentSet, componentSystem, context, dataSourceResolver, designSystem, flowRegistry, module, renderChromeSlot, shouldRenderEntry, }: ProjectedPresentationFlowLayerProps<TContext>): import("react/jsx-runtime").JSX.Element | null;
33
+ //# sourceMappingURL=projected-presentation-flow-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-presentation-flow-layer.d.ts","sourceRoot":"","sources":["../src/projected-presentation-flow-layer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE/C,OAAO,KAAK,EACV,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,cAAc,EACf,MAAM,oCAAoC,CAAA;AAI3C,OAAO,KAAK,EACV,iCAAiC,IAAI,2BAA2B,EACjE,MAAM,wCAAwC,CAAA;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACtF,OAAO,KAAK,EACV,8BAA8B,EAC/B,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EACV,gCAAgC,EACjC,MAAM,oCAAoC,CAAA;AAO3C,OAAO,KAAK,EACV,4BAA4B,EAC5B,uCAAuC,EACxC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAGL,KAAK,wCAAwC,EAC9C,MAAM,wCAAwC,CAAA;AAM/C,MAAM,WAAW,mCAAmC,CAAC,QAAQ;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,QAAQ,CAAC,CAAA;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,gCAAgC,CAAA;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,iBAAiB,EAAE,wCAAwC,CAAC,QAAQ,CAAC,CAAA;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAA;IACrD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,8BAA8B,CAAA;IAC3D,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAA;IAC/C,QAAQ,CAAC,YAAY,EAAE,uCAAuC,CAAA;IAC9D,QAAQ,CAAC,MAAM,EAAE,4BAA4B,GAAG,IAAI,CAAA;IACpD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAC1B,OAAO,EAAE,qDAAqD,CAAC,QAAQ,CAAC,KACrE,SAAS,CAAA;IACd,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAC3B,OAAO,EAAE,2CAA2C,KACjD,OAAO,CAAA;CACb;AAED,MAAM,WAAW,2CACf,SAAQ,IAAI,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,qDAAqD,CAAC,QAAQ,CAC7E,SAAQ,2CAA2C;IACnD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,8BAA8B,CAAA;IAC3D,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAA;CACxC;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,EACvD,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,OAAO,EACP,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,gBAAgB,EAChB,iBAAiB,GAClB,EAAE,mCAAmC,CAAC,QAAQ,CAAC,kDAkG/C"}
@@ -0,0 +1,71 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import { createPresentationTestAttributes, } from '@cohesivesystems/presentation-core';
4
+ import { renderStandardViewChromeSlot, } from './standard-view-chrome-slot-renderers.js';
5
+ import { createProjectedPromptChildViewRenderer, projectPromptChildViewRendererDiagnostics, } from './projected-prompt-child-view-renderer.js';
6
+ import { ProjectedPromptView } from './projected-prompt-view.js';
7
+ import { useRegisterPresentationProjectionDiagnostics, } from '@cohesivesystems/presentation-react';
8
+ export function ProjectedPresentationFlowLayer({ actionGroupOptions, actionStatuses, actionRegionId, childViewRegistry, componentSet, componentSystem, context, dataSourceResolver, designSystem, flowRegistry, module, renderChromeSlot, shouldRenderEntry, }) {
9
+ const promptChildViewRendererDiagnostics = useMemo(() => module
10
+ ? flowRegistry.activeEntries.flatMap((entry) => entry.view
11
+ ? projectPromptChildViewRendererDiagnostics({
12
+ componentSet,
13
+ module,
14
+ promptView: entry.view,
15
+ registry: childViewRegistry,
16
+ sourceId: 'presentation-flow.prompt-child-view-renderers',
17
+ })
18
+ : [])
19
+ : [], [childViewRegistry, componentSet, flowRegistry.activeEntries, module]);
20
+ useRegisterPresentationProjectionDiagnostics('presentation-flow.prompt-child-view-renderers', promptChildViewRendererDiagnostics);
21
+ if (!module) {
22
+ return null;
23
+ }
24
+ return (_jsx(_Fragment, { children: flowRegistry.activeEntries.map((entry) => {
25
+ if (!entry.view) {
26
+ return null;
27
+ }
28
+ const promptView = entry.view;
29
+ const renderContext = {
30
+ ...entry,
31
+ view: promptView,
32
+ };
33
+ if (shouldRenderEntry?.(renderContext) === false) {
34
+ return null;
35
+ }
36
+ const renderPromptChildView = createProjectedPromptChildViewRenderer({
37
+ componentSet,
38
+ componentSystem,
39
+ context,
40
+ dataSourceResolver,
41
+ designSystem,
42
+ module,
43
+ promptView,
44
+ registry: childViewRegistry,
45
+ });
46
+ const renderPromptChromeSlot = (slot, view) => renderChromeSlot?.({
47
+ ...renderContext,
48
+ context,
49
+ dataSourceResolver,
50
+ slot,
51
+ }) ?? renderStandardViewChromeSlot({
52
+ actionContext: context,
53
+ actionGroupOptions,
54
+ actionStatuses,
55
+ componentSystem,
56
+ dataSourceResolver,
57
+ designSystem,
58
+ module,
59
+ resource: dataSourceResolver.resolveViewPrimary(view ?? promptView)?.data,
60
+ slot,
61
+ view: view ?? promptView,
62
+ workspaceView: view ?? promptView,
63
+ });
64
+ return (_jsx("div", { ...createPresentationTestAttributes({
65
+ flowId: entry.flow.Id,
66
+ flowStateId: entry.state.Id,
67
+ viewId: promptView.Id,
68
+ }), children: _jsx(ProjectedPromptView, { actionGroupOptions: actionGroupOptions, actionRegionId: actionRegionId, componentSystem: componentSystem, context: context, dataSourceResolver: dataSourceResolver, designSystem: designSystem, module: module, renderChromeSlot: renderPromptChromeSlot, renderView: renderPromptChildView, view: promptView }) }, entry.flow.Id));
69
+ }) }));
70
+ }
71
+ //# sourceMappingURL=projected-presentation-flow-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-presentation-flow-layer.js","sourceRoot":"","sources":["../src/projected-presentation-flow-layer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { DocumentProcessTaskNoticeDefinition, DocumentProfileProjection, ProcessTask, ProcessTaskSelector, ProcessTaskSelectorDefinition } from '@cohesivesystems/presentation-core';
3
+ import type { PresentationDesignSystem } from '@cohesivesystems/presentation-tailwind';
4
+ import type { PresentationShadcnComponentSystem as PresentationComponentSystem } from './presentation-shadcn-component-system.js';
5
+ export interface ProjectedProcessTaskNoticeRenderContext {
6
+ readonly notice: DocumentProcessTaskNoticeDefinition;
7
+ readonly selector: ProcessTaskSelector;
8
+ readonly selectorDefinition: ProcessTaskSelectorDefinition;
9
+ readonly task: ProcessTask;
10
+ }
11
+ export type ProjectedProcessTaskNoticeRenderer = (context: ProjectedProcessTaskNoticeRenderContext) => ReactNode;
12
+ export interface ProjectedProcessTaskNoticesProps<TContext> {
13
+ readonly className?: string;
14
+ readonly componentSystem: PresentationComponentSystem;
15
+ readonly context: TContext;
16
+ readonly designSystem: PresentationDesignSystem;
17
+ readonly findActiveTask: (selector: ProcessTaskSelector) => ProcessTask | null;
18
+ readonly profile: Pick<DocumentProfileProjection, 'ProcessTaskNotices' | 'ProcessTaskSelectors'> | null;
19
+ readonly projectSelector: (selector: ProcessTaskSelectorDefinition | null | undefined, context: TContext) => ProcessTaskSelector | null;
20
+ readonly region?: string;
21
+ readonly renderNotice?: ProjectedProcessTaskNoticeRenderer;
22
+ }
23
+ /**
24
+ * Projects document-profile process task notices into concrete task notice UI.
25
+ *
26
+ * The profile declares which notices exist and which selector supplies each
27
+ * task. The host only provides the runtime document context, process-task
28
+ * lookup service, and renderer for a resolved task notice.
29
+ */
30
+ export declare function ProjectedProcessTaskNotices<TContext>({ className, componentSystem, context, designSystem, findActiveTask, profile, projectSelector, region, renderNotice, }: ProjectedProcessTaskNoticesProps<TContext>): import("react/jsx-runtime").JSX.Element | null;
31
+ export declare function ProjectedProcessTaskNotice({ componentSystem, designSystem, notice, task, }: {
32
+ readonly componentSystem: PresentationComponentSystem;
33
+ readonly designSystem: PresentationDesignSystem;
34
+ readonly notice?: DocumentProcessTaskNoticeDefinition | null;
35
+ readonly task: ProcessTask;
36
+ }): ReactNode;
37
+ //# sourceMappingURL=projected-process-task-notices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-process-task-notices.d.ts","sourceRoot":"","sources":["../src/projected-process-task-notices.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAWzD,OAAO,KAAK,EAEV,mCAAmC,EAGnC,yBAAyB,EAEzB,WAAW,EACX,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,oCAAoC,CAAA;AAM3C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACtF,OAAO,KAAK,EACV,iCAAiC,IAAI,2BAA2B,EACjE,MAAM,wCAAwC,CAAA;AAY/C,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,MAAM,EAAE,mCAAmC,CAAA;IACpD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;IACtC,QAAQ,CAAC,kBAAkB,EAAE,6BAA6B,CAAA;IAC1D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAC3B;AAED,MAAM,MAAM,kCAAkC,GAAG,CAC/C,OAAO,EAAE,uCAAuC,KAC7C,SAAS,CAAA;AAEd,MAAM,WAAW,gCAAgC,CAAC,QAAQ;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAA;IACrD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAA;IAC/C,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,WAAW,GAAG,IAAI,CAAA;IAC9E,QAAQ,CAAC,OAAO,EAAE,IAAI,CACpB,yBAAyB,EACzB,oBAAoB,GAAG,sBAAsB,CAC9C,GAAG,IAAI,CAAA;IACR,QAAQ,CAAC,eAAe,EAAE,CACxB,QAAQ,EAAE,6BAA6B,GAAG,IAAI,GAAG,SAAS,EAC1D,OAAO,EAAE,QAAQ,KACd,mBAAmB,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,kCAAkC,CAAA;CAC3D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,EACpD,SAAS,EACT,eAAe,EACf,OAAO,EACP,YAAY,EACZ,cAAc,EACd,OAAO,EACP,eAAe,EACf,MAAM,EACN,YAAY,GACb,EAAE,gCAAgC,CAAC,QAAQ,CAAC,kDA6B5C;AAED,wBAAgB,0BAA0B,CAAC,EACzC,eAAe,EACf,YAAY,EACZ,MAAM,EACN,IAAI,GACL,EAAE;IACD,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAA;IACrD,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAA;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,mCAAmC,GAAG,IAAI,CAAA;IAC5D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAC3B,aAkDA"}
@@ -0,0 +1,225 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment, useMemo } from 'react';
3
+ import { findPresentationAction, findPresentationField, resolvePresentationContent, resolvePresentationFieldValueTone, } from '@cohesivesystems/presentation-core';
4
+ import { projectPresentationIconDiagnostics, } from './presentation-icon-diagnostics.js';
5
+ import { usePresentationModule, usePresentationNavigationRuntime, useRegisterPresentationProjectionDiagnostics, } from '@cohesivesystems/presentation-react';
6
+ import { renderProcessIcon, renderProjectedProcessStatusIcon, renderProcessStatusIcon, resolveProcessTaskNoticeIconSubjects, processIconIds, } from './process-task-icons.js';
7
+ import { documentProcessTaskNoticeActionTargetKinds, } from '@cohesivesystems/presentation-contracts';
8
+ /**
9
+ * Projects document-profile process task notices into concrete task notice UI.
10
+ *
11
+ * The profile declares which notices exist and which selector supplies each
12
+ * task. The host only provides the runtime document context, process-task
13
+ * lookup service, and renderer for a resolved task notice.
14
+ */
15
+ export function ProjectedProcessTaskNotices({ className, componentSystem, context, designSystem, findActiveTask, profile, projectSelector, region, renderNotice, }) {
16
+ const notices = resolveProcessTaskNoticeRenderContexts({
17
+ context,
18
+ findActiveTask,
19
+ profile,
20
+ projectSelector,
21
+ region,
22
+ });
23
+ if (notices.length === 0) {
24
+ return null;
25
+ }
26
+ const rootClassName = className ? `grid gap-2 ${className}` : 'grid gap-2';
27
+ return (_jsx("div", { className: rootClassName, children: notices.map((notice) => (_jsx(Fragment, { children: renderNotice?.(notice) ?? (_jsx(ProjectedProcessTaskNotice, { componentSystem: componentSystem, designSystem: designSystem, notice: notice.notice, task: notice.task })) }, notice.notice.Id))) }));
28
+ }
29
+ export function ProjectedProcessTaskNotice({ componentSystem, designSystem, notice, task, }) {
30
+ const module = usePresentationModule();
31
+ const statusField = useMemo(() => resolveProcessTaskNoticeStatusField(module, notice), [
32
+ module,
33
+ notice,
34
+ ]);
35
+ const iconDiagnostics = useMemo(() => projectPresentationIconDiagnostics({
36
+ icons: resolveProcessTaskNoticeIconSubjects(task, statusField, notice),
37
+ module,
38
+ source: `projected-process-task-notice-icons:${task.id}`,
39
+ surfaceId: task.id,
40
+ surfaceName: task.title,
41
+ }), [
42
+ module,
43
+ notice,
44
+ statusField,
45
+ task,
46
+ ]);
47
+ useRegisterPresentationProjectionDiagnostics(`projected-process-task-notice-icons:${task.id}`, iconDiagnostics);
48
+ const content = resolveProcessTaskNoticeContent(notice, task);
49
+ return componentSystem.processes.ProcessTaskNotice({
50
+ actions: (_jsx(ProjectedProcessTaskActionButtons, { componentSystem: componentSystem, module: module, notice: notice, task: task })),
51
+ className: resolveProcessTaskNoticeClassName({ designSystem, statusField, task }),
52
+ description: content.description,
53
+ icon: (_jsx(ProjectedProcessTaskStatusIcon, { module: module, statusField: statusField, task: task })),
54
+ title: content.title,
55
+ });
56
+ }
57
+ function resolveProcessTaskNoticeClassName({ designSystem, statusField, task, }) {
58
+ const projectedTone = statusField
59
+ ? resolvePresentationFieldValueTone(statusField, task.status)
60
+ : null;
61
+ const toneClassName = projectedTone
62
+ ? designSystem.classNames.statusNotice.tone({ tone: projectedTone })
63
+ : getNoticeToneClass(task);
64
+ return cn('rounded-lg border px-4 py-3 text-sm', toneClassName);
65
+ }
66
+ function resolveProcessTaskNoticeContent(notice, task) {
67
+ const content = resolvePresentationContent(notice?.Content, task);
68
+ const title = content.title ?? task.title;
69
+ const description = content.description ?? content.subtitle ??
70
+ `${task.statusLabel}. Process ${task.id}.`;
71
+ return {
72
+ description,
73
+ title,
74
+ };
75
+ }
76
+ function resolveProcessTaskNoticeRenderContexts({ context, findActiveTask, profile, projectSelector, region, }) {
77
+ return getRegionProcessTaskNotices(profile, region).flatMap((notice) => {
78
+ const selectorDefinition = findProcessTaskSelectorDefinition(profile, notice.ProcessTaskSelectorId);
79
+ const selector = projectSelector(selectorDefinition, context);
80
+ const task = selector ? findActiveTask(selector) : null;
81
+ return task && selector && selectorDefinition
82
+ ? [{
83
+ notice,
84
+ selector,
85
+ selectorDefinition,
86
+ task,
87
+ }]
88
+ : [];
89
+ });
90
+ }
91
+ function getRegionProcessTaskNotices(profile, region) {
92
+ return profile?.ProcessTaskNotices?.filter((notice) => !region || notice.Region === region) ?? [];
93
+ }
94
+ function findProcessTaskSelectorDefinition(profile, selectorId) {
95
+ return profile?.ProcessTaskSelectors?.find((selector) => selector.Id === selectorId) ?? null;
96
+ }
97
+ function ProjectedProcessTaskStatusIcon({ module, statusField, task, }) {
98
+ const className = task.lifecycleStatus === 'pending' || task.lifecycleStatus === 'running'
99
+ ? 'mt-0.5 size-4 shrink-0 animate-spin'
100
+ : 'mt-0.5 size-4 shrink-0';
101
+ if (statusField) {
102
+ return renderProjectedProcessStatusIcon({
103
+ className,
104
+ field: statusField,
105
+ module,
106
+ value: task.status,
107
+ });
108
+ }
109
+ return renderProcessStatusIcon({
110
+ className,
111
+ module,
112
+ status: task.lifecycleStatus,
113
+ });
114
+ }
115
+ function resolveProcessTaskNoticeStatusField(module, notice) {
116
+ return notice?.StatusFieldId
117
+ ? findPresentationField(module, notice.StatusFieldId)
118
+ : null;
119
+ }
120
+ function ProjectedProcessTaskActionButtons({ componentSystem, module, notice, task, }) {
121
+ const actions = notice?.Actions ?? [];
122
+ if (actions.length > 0) {
123
+ return (_jsx(_Fragment, { children: actions.map((action) => (_jsx(ProjectedProcessTaskActionButton, { action: action, componentSystem: componentSystem, module: module, task: task }, action.Placement.ActionId))) }));
124
+ }
125
+ return (_jsx(LegacyProcessTaskActionButton, { componentSystem: componentSystem, module: module, task: task }));
126
+ }
127
+ function ProjectedProcessTaskActionButton({ action, componentSystem, module, task, }) {
128
+ const { navigateHref } = usePresentationNavigationRuntime();
129
+ const ActionButton = componentSystem.actions.ActionButton;
130
+ const href = resolveProcessTaskNoticeActionHref(action, task);
131
+ if (!href) {
132
+ return null;
133
+ }
134
+ const placement = action.Placement;
135
+ const actionDefinition = findPresentationAction(module, placement.ActionId);
136
+ const label = placement.Label ?? actionDefinition?.Name ?? placement.ActionId;
137
+ const icon = placement.Icon
138
+ ? renderProcessIcon({
139
+ className: 'size-4',
140
+ fallbackIcon: 'chevron-right',
141
+ icon: placement.Icon,
142
+ module,
143
+ })
144
+ : null;
145
+ const iconOnly = isIconOnlyActionPlacement(placement);
146
+ return (_jsxs(ActionButton, { "aria-label": iconOnly ? label : undefined, onClick: () => navigateHref(href), size: iconOnly ? 'icon-sm' : 'sm', type: "button", variant: resolveProcessTaskNoticeActionVariant(placement), children: [icon, iconOnly ? null : label] }));
147
+ }
148
+ function LegacyProcessTaskActionButton({ componentSystem, module, task, }) {
149
+ const { navigateHref } = usePresentationNavigationRuntime();
150
+ const ActionButton = componentSystem.actions.ActionButton;
151
+ const targetHref = task.detailsHref ?? task.targetHref ?? task.sourceHref;
152
+ if (!targetHref) {
153
+ return null;
154
+ }
155
+ return (_jsx(ActionButton, { "aria-label": "Open process details", onClick: () => navigateHref(targetHref), size: "icon-sm", type: "button", variant: "ghost", children: renderProcessIcon({
156
+ className: 'size-4',
157
+ fallbackIcon: 'chevron-right',
158
+ icon: processIconIds.noticeOpenDetails,
159
+ module,
160
+ }) }));
161
+ }
162
+ function resolveProcessTaskNoticeActionHref(action, task) {
163
+ const targetPreference = action.TargetPreference.length > 0
164
+ ? action.TargetPreference
165
+ : [
166
+ documentProcessTaskNoticeActionTargetKinds.details,
167
+ documentProcessTaskNoticeActionTargetKinds.target,
168
+ documentProcessTaskNoticeActionTargetKinds.source,
169
+ ];
170
+ for (const target of targetPreference) {
171
+ const href = readProcessTaskNoticeActionTargetHref(target, task);
172
+ if (href) {
173
+ return href;
174
+ }
175
+ }
176
+ return null;
177
+ }
178
+ function readProcessTaskNoticeActionTargetHref(target, task) {
179
+ if (matchesNoticeActionTarget(target, documentProcessTaskNoticeActionTargetKinds.details, 'Details')) {
180
+ return task.detailsHref ?? null;
181
+ }
182
+ if (matchesNoticeActionTarget(target, documentProcessTaskNoticeActionTargetKinds.target, 'Target')) {
183
+ return task.targetHref ?? null;
184
+ }
185
+ if (matchesNoticeActionTarget(target, documentProcessTaskNoticeActionTargetKinds.source, 'Source')) {
186
+ return task.sourceHref ?? null;
187
+ }
188
+ return null;
189
+ }
190
+ function matchesNoticeActionTarget(value, numericValue, label) {
191
+ return value === numericValue ||
192
+ String(value) === String(numericValue) ||
193
+ value?.toString().toLocaleLowerCase() === label.toLocaleLowerCase();
194
+ }
195
+ function isIconOnlyActionPlacement(placement) {
196
+ return placement.Intent?.toLocaleLowerCase() === 'icon';
197
+ }
198
+ function resolveProcessTaskNoticeActionVariant(placement) {
199
+ const intent = placement.Intent?.toLocaleLowerCase();
200
+ if (intent === 'primary') {
201
+ return 'default';
202
+ }
203
+ if (intent === 'ghost' || intent === 'icon') {
204
+ return 'ghost';
205
+ }
206
+ return 'outline';
207
+ }
208
+ function getNoticeToneClass(task) {
209
+ switch (task.lifecycleStatus) {
210
+ case 'success':
211
+ return 'border-teal-300/50 bg-teal-50 text-teal-800';
212
+ case 'error':
213
+ return 'border-red-300/60 bg-red-50 text-red-800';
214
+ case 'waiting':
215
+ case 'paused':
216
+ return 'border-amber-300/50 bg-amber-50 text-amber-900';
217
+ case 'pending':
218
+ case 'running':
219
+ return 'border-sky-300/50 bg-sky-50 text-sky-800';
220
+ }
221
+ }
222
+ function cn(...values) {
223
+ return values.filter(Boolean).join(' ');
224
+ }
225
+ //# sourceMappingURL=projected-process-task-notices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-process-task-notices.js","sourceRoot":"","sources":["../src/projected-process-task-notices.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type PresentationBindingDefinition, type PresentationModuleDefinition, type PresentationProjectionDiagnostic, type PresentationDataSourceResolver, type ViewDefinition } from '@cohesivesystems/presentation-core';
3
+ import type { PresentationShadcnComponentSystem as PresentationComponentSystem } from './presentation-shadcn-component-system.js';
4
+ import type { PresentationDesignSystem } from '@cohesivesystems/presentation-tailwind';
5
+ export interface ProjectedPromptChildViewRenderContext<TContext> {
6
+ readonly componentKey: string | null;
7
+ readonly componentRole: string | null;
8
+ readonly componentSystem: PresentationComponentSystem;
9
+ readonly context: TContext;
10
+ readonly dataSourceResolver: PresentationDataSourceResolver;
11
+ readonly designSystem: PresentationDesignSystem;
12
+ readonly module: PresentationModuleDefinition;
13
+ readonly promptView: ViewDefinition;
14
+ readonly renderView: (viewId: string) => ReactNode;
15
+ readonly resolutionSource: ProjectedPromptChildViewRendererResolutionSource | null;
16
+ readonly view: ViewDefinition;
17
+ readonly viewId: string;
18
+ }
19
+ /**
20
+ * Renders one child view declared inside a prompt region. Returning undefined
21
+ * lets a later fallback renderer handle the view.
22
+ */
23
+ export type ProjectedPromptChildViewRenderer<TContext> = (context: ProjectedPromptChildViewRenderContext<TContext>) => ReactNode | undefined;
24
+ /**
25
+ * Semantic roles that prompt child views can expose through view contracts.
26
+ * These roles are target-independent; frontend registries attach local React
27
+ * interpretations to them.
28
+ */
29
+ export declare const promptChildViewSemanticRoles: {
30
+ readonly jsonDocumentDiff: "json-document-diff";
31
+ readonly promptDocumentPreview: "prompt-document-preview";
32
+ };
33
+ /**
34
+ * Prompt-scoped renderer registry. Resolution prefers semantic roles and view
35
+ * kinds before component-key and view-id escape hatches.
36
+ */
37
+ export interface ProjectedPromptChildViewRendererRegistry<TContext> {
38
+ readonly byComponentRole?: Readonly<Record<string, ProjectedPromptChildViewRenderer<TContext>>>;
39
+ readonly byComponentKey?: Readonly<Record<string, ProjectedPromptChildViewRenderer<TContext>>>;
40
+ readonly bySemanticRole?: Readonly<Record<string, ProjectedPromptChildViewRenderer<TContext>>>;
41
+ readonly byViewId?: Readonly<Record<string, ProjectedPromptChildViewRenderer<TContext>>>;
42
+ readonly byViewKind?: Readonly<Record<string, ProjectedPromptChildViewRenderer<TContext>>>;
43
+ readonly fallback?: ProjectedPromptChildViewRenderer<TContext>;
44
+ }
45
+ export interface ProjectedPromptUnknownChildViewRenderContext<TContext> {
46
+ readonly componentKey: string | null;
47
+ readonly componentRole: string | null;
48
+ readonly context: TContext;
49
+ readonly dataSourceResolver: PresentationDataSourceResolver;
50
+ readonly module: PresentationModuleDefinition;
51
+ readonly promptView: ViewDefinition;
52
+ readonly reason: 'missing-renderer' | 'missing-view';
53
+ readonly resolutionSource: ProjectedPromptChildViewRendererResolutionSource | null;
54
+ readonly semanticRole: string | null;
55
+ readonly view: ViewDefinition | null;
56
+ readonly viewId: string;
57
+ }
58
+ export type ProjectedPromptUnknownChildViewRenderer<TContext> = (context: ProjectedPromptUnknownChildViewRenderContext<TContext>) => ReactNode;
59
+ /**
60
+ * Builds a recursive child-view renderer for projected prompt bodies. Flow
61
+ * hosts can supply a small registry for form views, preview views, or richer
62
+ * document panels while ProjectedPromptView keeps owning region traversal.
63
+ */
64
+ export interface CreateProjectedPromptChildViewRendererOptions<TContext> {
65
+ readonly componentSet?: string;
66
+ readonly componentSystem: PresentationComponentSystem;
67
+ readonly context: TContext;
68
+ readonly dataSourceResolver: PresentationDataSourceResolver;
69
+ readonly designSystem: PresentationDesignSystem;
70
+ readonly module: PresentationModuleDefinition;
71
+ readonly promptView: ViewDefinition;
72
+ readonly registry: ProjectedPromptChildViewRendererRegistry<TContext>;
73
+ readonly renderUnknownView?: ProjectedPromptUnknownChildViewRenderer<TContext>;
74
+ }
75
+ export type ProjectedPromptChildViewRendererResolutionSource = 'component-key' | 'component-role' | 'fallback' | 'semantic-role' | 'view-id' | 'view-kind';
76
+ export interface ProjectedPromptChildViewRendererResolution<TContext> {
77
+ readonly componentKey: string | null;
78
+ readonly componentRole: string | null;
79
+ readonly renderer: ProjectedPromptChildViewRenderer<TContext> | null;
80
+ readonly resolutionSource: ProjectedPromptChildViewRendererResolutionSource | null;
81
+ readonly semanticRole: string;
82
+ readonly targetBinding: PresentationBindingDefinition | null;
83
+ }
84
+ export interface ProjectPromptChildViewRendererDiagnosticsOptions<TContext> {
85
+ readonly componentSet?: string;
86
+ readonly module: PresentationModuleDefinition;
87
+ readonly promptView: ViewDefinition;
88
+ readonly registry: ProjectedPromptChildViewRendererRegistry<TContext>;
89
+ readonly sourceId?: string;
90
+ }
91
+ export declare function createProjectedPromptChildViewRenderer<TContext>({ componentSet, componentSystem, context, dataSourceResolver, designSystem, module, promptView, registry, renderUnknownView, }: CreateProjectedPromptChildViewRendererOptions<TContext>): (viewId: string) => ReactNode;
92
+ export declare function mergeProjectedPromptChildViewRendererRegistries<TContext>(...registries: readonly ProjectedPromptChildViewRendererRegistry<TContext>[]): ProjectedPromptChildViewRendererRegistry<TContext>;
93
+ export declare function resolvePromptChildViewRenderer<TContext>({ componentSet, module, registry, view, }: {
94
+ readonly componentSet: string;
95
+ readonly module: PresentationModuleDefinition;
96
+ readonly registry: ProjectedPromptChildViewRendererRegistry<TContext>;
97
+ readonly view: ViewDefinition;
98
+ }): ProjectedPromptChildViewRendererResolution<TContext>;
99
+ export declare function projectPromptChildViewRendererDiagnostics<TContext>({ componentSet, module, promptView, registry, sourceId, }: ProjectPromptChildViewRendererDiagnosticsOptions<TContext>): readonly PresentationProjectionDiagnostic[];
100
+ export declare function getPromptChildViewSemanticRole(view: ViewDefinition): string;
101
+ //# sourceMappingURL=projected-prompt-child-view-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-prompt-child-view-renderer.d.ts","sourceRoot":"","sources":["../src/projected-prompt-child-view-renderer.tsx"],"names":[],"mappings":"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"}