@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,86 @@
1
+ import { type NavigationTarget, type ActionDefinition, type ActionResultStateWriteDefinition, type PresentationDataSourceBindingProjectionRegistry, type PresentationActionResultStateValues, type PresentationDataSourceTargetInterpretation, type PresentationCollectionPaginationRequestMap, type PresentationModuleDefinition, type PresentationNavigationRuntime, type PresentationPaginationBinding, type PresentationPaginationRuntime, type PresentationPaginationState, type PresentationProjectionDiagnostic, type PresentationQueryFormStateMap, type PresentationSurface, type ViewDefinition } from '@cohesivesystems/presentation-core';
2
+ import type { PresentationShadcnComponentSystem as PresentationComponentSystem } from './presentation-shadcn-component-system.js';
3
+ import { type PresentationQueryFormStateAdapterRegistry, type PresentationRendererRegistry, type RouteParameterValues } from '@cohesivesystems/presentation-react';
4
+ import type { PresentationDesignSystem } from '@cohesivesystems/presentation-tailwind';
5
+ export interface ProjectedRoutedSurfaceRouteContext {
6
+ readonly collectionPagination?: Readonly<Record<string, PresentationPaginationRuntime>>;
7
+ readonly queryFormRuntimes?: Readonly<Record<string, unknown>>;
8
+ readonly routeParameters?: RouteParameterValues;
9
+ }
10
+ export type ProjectedRoutedSurfacePaginationRequestMap = PresentationCollectionPaginationRequestMap;
11
+ export interface ProjectedRoutedSurfaceRuntimeProps<TContext = ProjectedRoutedSurfaceRouteContext> {
12
+ readonly className?: string;
13
+ readonly componentSet?: string;
14
+ readonly componentSystem: PresentationComponentSystem;
15
+ readonly createCollectionPaginationBindings?: (context: ProjectedRoutedSurfaceCollectionPaginationBindingContext) => readonly PresentationPaginationBinding[];
16
+ readonly createDataSourceBindingRegistry: (context: ProjectedRoutedSurfaceRuntimeContext<TContext>) => PresentationDataSourceBindingProjectionRegistry;
17
+ readonly createPaginationRequests?: (bindings: readonly PresentationPaginationBinding[], states: Readonly<Record<string, PresentationPaginationState>>) => ProjectedRoutedSurfacePaginationRequestMap;
18
+ readonly createRendererRegistry: (context: ProjectedRoutedSurfaceRendererRegistryContext<TContext>) => PresentationRendererRegistry<TContext>;
19
+ readonly createRouteContext?: (context: ProjectedRoutedSurfaceRuntimeContext<TContext>) => TContext;
20
+ readonly dataSourceTargetInterpretation: PresentationDataSourceTargetInterpretation;
21
+ /** Fallback collection page size used when the presentation IR has no default. */
22
+ readonly defaultCollectionPageSize?: number;
23
+ readonly designSystem: PresentationDesignSystem;
24
+ readonly navigationTarget: NavigationTarget;
25
+ readonly projectCollectionPaginationDiagnostics?: (context: ProjectedRoutedSurfaceCollectionPaginationDiagnosticsContext) => readonly PresentationProjectionDiagnostic[];
26
+ readonly queryFormStateAdapterRegistry: PresentationQueryFormStateAdapterRegistry;
27
+ readonly resolveContentClassName?: (context: ProjectedRoutedSurfaceRuntimeContext<TContext>) => string | undefined;
28
+ readonly routeParameters: RouteParameterValues;
29
+ }
30
+ export interface ProjectedRoutedSurfaceCollectionPaginationBindingContext {
31
+ readonly componentSystem: PresentationComponentSystem;
32
+ readonly dataSourceIds: readonly string[];
33
+ /** Fallback collection page size used when the presentation IR has no default. */
34
+ readonly defaultPageSize?: number;
35
+ readonly designSystem: PresentationDesignSystem;
36
+ readonly module: PresentationModuleDefinition | null;
37
+ readonly views: readonly ViewDefinition[];
38
+ }
39
+ export interface ProjectedRoutedSurfaceCollectionPaginationDiagnosticsContext {
40
+ readonly bindings: readonly PresentationPaginationBinding[];
41
+ readonly componentSystem: PresentationComponentSystem;
42
+ readonly designSystem: PresentationDesignSystem;
43
+ readonly module: PresentationModuleDefinition | null;
44
+ readonly sourceId: string;
45
+ readonly views: readonly ViewDefinition[];
46
+ }
47
+ export interface ProjectedRoutedSurfaceRuntimeContext<TContext = ProjectedRoutedSurfaceRouteContext> {
48
+ readonly actionResultState: ProjectedRoutedSurfaceActionResultStateRuntime;
49
+ readonly collectionPagination: Readonly<Record<string, PresentationPaginationRuntime>>;
50
+ readonly collectionPaginationBindings: readonly PresentationPaginationBinding[];
51
+ readonly collectionPaginationStates: Readonly<Record<string, PresentationPaginationState>>;
52
+ readonly componentSystem: PresentationComponentSystem;
53
+ readonly dataSourceIds: readonly string[];
54
+ readonly designSystem: PresentationDesignSystem;
55
+ readonly module: PresentationModuleDefinition | null;
56
+ readonly navigationRuntime: PresentationNavigationRuntime;
57
+ readonly navigationTarget: NavigationTarget;
58
+ readonly paginationRequestsByDataSourceId: ProjectedRoutedSurfacePaginationRequestMap;
59
+ readonly queryFormRuntimes: Readonly<Record<string, unknown>>;
60
+ readonly queryFormStates: PresentationQueryFormStateMap;
61
+ readonly routeContext?: TContext;
62
+ readonly routeParameters: RouteParameterValues;
63
+ readonly surface: PresentationSurface | null;
64
+ readonly surfaceViews: readonly ViewDefinition[];
65
+ }
66
+ export interface ProjectedRoutedSurfaceActionResultStateRuntime {
67
+ readonly applyActionResult: (action: Pick<ActionDefinition, 'Result'> | null | undefined, result: unknown) => void;
68
+ readonly applyStateWrites: (writes: readonly ActionResultStateWriteDefinition[] | null | undefined, result: unknown) => void;
69
+ readonly values: PresentationActionResultStateValues;
70
+ }
71
+ export interface ProjectedRoutedSurfaceRendererRegistryContext<TContext = ProjectedRoutedSurfaceRouteContext> extends ProjectedRoutedSurfaceRuntimeContext<TContext> {
72
+ readonly routeContext: TContext;
73
+ }
74
+ /**
75
+ * Standard React runtime for a routed semantic presentation surface.
76
+ *
77
+ * The backend presentation module declares the route target, surface tree,
78
+ * query forms, and data sources. This runtime handles the target-independent
79
+ * mechanics of projecting those constructs into React state, URL state,
80
+ * pagination windows, data-source bindings, and diagnostics. Product code
81
+ * supplies target interpretations for auth, concrete data execution, and
82
+ * renderer registries.
83
+ */
84
+ export declare function ProjectedRoutedSurfaceRuntime<TContext = ProjectedRoutedSurfaceRouteContext>({ className, componentSet, componentSystem, createCollectionPaginationBindings, createDataSourceBindingRegistry, createPaginationRequests, createRendererRegistry, createRouteContext, dataSourceTargetInterpretation, defaultCollectionPageSize, designSystem, navigationTarget, projectCollectionPaginationDiagnostics, queryFormStateAdapterRegistry, resolveContentClassName, routeParameters, }: ProjectedRoutedSurfaceRuntimeProps<TContext>): import("react/jsx-runtime").JSX.Element;
85
+ export declare function createProjectedRoutedSurfacePaginationRequests(bindings: readonly PresentationPaginationBinding[], states: Readonly<Record<string, PresentationPaginationState>>): ProjectedRoutedSurfacePaginationRequestMap;
86
+ //# sourceMappingURL=projected-routed-surface-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-routed-surface-runtime.d.ts","sourceRoot":"","sources":["../src/projected-routed-surface-runtime.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,332 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useMemo, useState } from 'react';
3
+ import { useLocation, useNavigate } from 'react-router';
4
+ import { applyPresentationPaginationToRequest, applyPresentationActionResultPolicyStateWrites, applyPresentationActionResultStateWrites, createInitialPresentationPaginationState, createNextPresentationPaginationState, projectPresentationDataSourceBindings, createPresentationCollectionPaginationBindings, createPresentationPaginationSearch, createPreviousPresentationPaginationState, defaultPresentationComponentSet, getPresentationPaginationPageIndex, getPresentationSurfaceDataSourceIds, getPresentationSurfaceViewTree, normalizePresentationPaginationState, projectPresentationCollectionPaginationDiagnostics, projectPresentationDataSourceCoverageDiagnostics, readPresentationPaginationStateFromSearch, resolvePresentationSurface, } from '@cohesivesystems/presentation-core';
5
+ import { createPresentationQueryFormRuntime, resolvePresentationQueryFormStateAdapters, usePresentationModule, usePresentationNavigationRuntime, usePresentationQueryFormStateEntries, usePresentationQueryFormStateMap, useRegisterPresentationProjectionDiagnostics, } from '@cohesivesystems/presentation-react';
6
+ import { projectPresentationRoutedSurfaceLayoutDiagnostics, resolvePresentationRoutedSurfaceLayout, } from '@cohesivesystems/presentation-tailwind';
7
+ import { PresentationRoutedSurfaceHost, } from './presentation-routed-surface-host.js';
8
+ /**
9
+ * Standard React runtime for a routed semantic presentation surface.
10
+ *
11
+ * The backend presentation module declares the route target, surface tree,
12
+ * query forms, and data sources. This runtime handles the target-independent
13
+ * mechanics of projecting those constructs into React state, URL state,
14
+ * pagination windows, data-source bindings, and diagnostics. Product code
15
+ * supplies target interpretations for auth, concrete data execution, and
16
+ * renderer registries.
17
+ */
18
+ export function ProjectedRoutedSurfaceRuntime({ className, componentSet = defaultPresentationComponentSet, componentSystem, createCollectionPaginationBindings = createPresentationCollectionPaginationBindings, createDataSourceBindingRegistry, createPaginationRequests = createProjectedRoutedSurfacePaginationRequests, createRendererRegistry, createRouteContext, dataSourceTargetInterpretation, defaultCollectionPageSize, designSystem, navigationTarget, projectCollectionPaginationDiagnostics = projectPresentationCollectionPaginationDiagnostics, queryFormStateAdapterRegistry, resolveContentClassName, routeParameters, }) {
19
+ const navigationRuntime = usePresentationNavigationRuntime();
20
+ const module = usePresentationModule();
21
+ const location = useLocation();
22
+ const navigate = useNavigate();
23
+ const queryFormStates = usePresentationQueryFormStateMap();
24
+ const queryFormStateEntries = usePresentationQueryFormStateEntries();
25
+ const [actionResultStateValues, setActionResultStateValues] = useState({});
26
+ const applyActionResult = useCallback((action, result) => {
27
+ setActionResultStateValues((current) => applyPresentationActionResultPolicyStateWrites({
28
+ policy: action?.Result,
29
+ result,
30
+ state: current,
31
+ }));
32
+ }, []);
33
+ const applyStateWrites = useCallback((writes, result) => {
34
+ setActionResultStateValues((current) => applyPresentationActionResultStateWrites({
35
+ result,
36
+ state: current,
37
+ writes,
38
+ }));
39
+ }, []);
40
+ const actionResultState = useMemo(() => ({
41
+ applyActionResult,
42
+ applyStateWrites,
43
+ values: actionResultStateValues,
44
+ }), [
45
+ actionResultStateValues,
46
+ applyActionResult,
47
+ applyStateWrites,
48
+ ]);
49
+ const queryFormStateAdapters = useMemo(() => resolvePresentationQueryFormStateAdapters(module, queryFormStateAdapterRegistry), [module, queryFormStateAdapterRegistry]);
50
+ const surface = useMemo(() => module ? resolvePresentationSurface(module, navigationTarget) : null, [module, navigationTarget]);
51
+ const dataSourceIds = useMemo(() => getPresentationSurfaceDataSourceIds(module, surface), [module, surface]);
52
+ const surfaceViews = useMemo(() => getPresentationSurfaceViewTree(module, surface), [module, surface]);
53
+ const collectionPaginationBindings = useMemo(() => createCollectionPaginationBindings({
54
+ componentSystem,
55
+ dataSourceIds,
56
+ defaultPageSize: defaultCollectionPageSize,
57
+ designSystem,
58
+ module,
59
+ views: surfaceViews,
60
+ }), [
61
+ createCollectionPaginationBindings,
62
+ componentSystem,
63
+ dataSourceIds,
64
+ defaultCollectionPageSize,
65
+ designSystem,
66
+ module,
67
+ surfaceViews,
68
+ ]);
69
+ const collectionPaginationStates = useMemo(() => Object.fromEntries(collectionPaginationBindings.map((binding) => [
70
+ binding.dataSourceId,
71
+ readPresentationPaginationStateFromSearch(location.search, binding),
72
+ ])), [collectionPaginationBindings, location.search]);
73
+ const paginationRequestsByDataSourceId = useMemo(() => createPaginationRequests(collectionPaginationBindings, collectionPaginationStates), [
74
+ collectionPaginationBindings,
75
+ collectionPaginationStates,
76
+ createPaginationRequests,
77
+ ]);
78
+ const commitRoutedSurfaceSearch = useCallback((search, options = {}) => {
79
+ const normalizedSearch = search
80
+ ? search.startsWith('?')
81
+ ? search
82
+ : `?${search}`
83
+ : '';
84
+ const nextHref = `${location.pathname}${normalizedSearch}${location.hash}`;
85
+ const currentHref = `${location.pathname}${location.search}${location.hash}`;
86
+ if (nextHref !== currentHref) {
87
+ void navigate(nextHref, {
88
+ flushSync: true,
89
+ replace: options.replace ?? false,
90
+ });
91
+ }
92
+ }, [
93
+ location.hash,
94
+ location.pathname,
95
+ location.search,
96
+ navigate,
97
+ ]);
98
+ const commitCollectionPagination = useCallback((binding, nextState, options = {}) => {
99
+ const search = createPresentationPaginationSearch(location.search, binding, normalizePresentationPaginationState(nextState));
100
+ commitRoutedSurfaceSearch(search, options);
101
+ }, [
102
+ commitRoutedSurfaceSearch,
103
+ location.search,
104
+ ]);
105
+ const queryFormRuntimes = useMemo(() => createQueryFormRuntimes({
106
+ adapters: queryFormStateAdapters,
107
+ collectionPaginationBindings,
108
+ commitRoutedSurfaceSearch,
109
+ entries: queryFormStateEntries,
110
+ locationSearch: location.search,
111
+ module,
112
+ }), [
113
+ collectionPaginationBindings,
114
+ commitRoutedSurfaceSearch,
115
+ location.search,
116
+ module,
117
+ queryFormStateAdapters,
118
+ queryFormStateEntries,
119
+ ]);
120
+ const collectionPagination = useMemo(() => Object.fromEntries(collectionPaginationBindings.map((binding) => {
121
+ const state = collectionPaginationStates[binding.dataSourceId] ??
122
+ createInitialPresentationPaginationState(binding);
123
+ const pageIndex = getPresentationPaginationPageIndex(state);
124
+ return [
125
+ binding.dataSourceId,
126
+ {
127
+ binding,
128
+ canGoPreviousPage: pageIndex > 0,
129
+ dataSourceId: binding.dataSourceId,
130
+ goToFirstPage: () => commitCollectionPagination(binding, createInitialPresentationPaginationState(binding)),
131
+ goToNextPage: (response) => commitCollectionPagination(binding, createNextPresentationPaginationState(binding, state, response)),
132
+ goToPreviousPage: () => commitCollectionPagination(binding, createPreviousPresentationPaginationState(state)),
133
+ pageIndex,
134
+ pageSize: state.pageSize,
135
+ state,
136
+ },
137
+ ];
138
+ })), [
139
+ collectionPaginationBindings,
140
+ collectionPaginationStates,
141
+ commitCollectionPagination,
142
+ ]);
143
+ const runtimeContext = useMemo(() => ({
144
+ actionResultState,
145
+ collectionPagination,
146
+ collectionPaginationBindings,
147
+ collectionPaginationStates,
148
+ componentSystem,
149
+ dataSourceIds,
150
+ designSystem,
151
+ module,
152
+ navigationRuntime,
153
+ navigationTarget,
154
+ paginationRequestsByDataSourceId,
155
+ queryFormRuntimes,
156
+ queryFormStates,
157
+ routeParameters,
158
+ surface,
159
+ surfaceViews,
160
+ }), [
161
+ actionResultState,
162
+ collectionPagination,
163
+ collectionPaginationBindings,
164
+ collectionPaginationStates,
165
+ componentSystem,
166
+ dataSourceIds,
167
+ designSystem,
168
+ module,
169
+ navigationRuntime,
170
+ navigationTarget,
171
+ paginationRequestsByDataSourceId,
172
+ queryFormRuntimes,
173
+ queryFormStates,
174
+ routeParameters,
175
+ surface,
176
+ surfaceViews,
177
+ ]);
178
+ const routeContext = useMemo(() => createRouteContext?.(runtimeContext) ??
179
+ {
180
+ collectionPagination,
181
+ queryFormRuntimes,
182
+ routeParameters,
183
+ }, [
184
+ collectionPagination,
185
+ createRouteContext,
186
+ queryFormRuntimes,
187
+ routeParameters,
188
+ runtimeContext,
189
+ ]);
190
+ const runtimeContextWithRouteContext = useMemo(() => ({
191
+ ...runtimeContext,
192
+ routeContext,
193
+ }), [routeContext, runtimeContext]);
194
+ const dataSourceBindingRegistry = useMemo(() => createDataSourceBindingRegistry(runtimeContextWithRouteContext), [createDataSourceBindingRegistry, runtimeContextWithRouteContext]);
195
+ const bindings = useMemo(() => projectPresentationDataSourceBindings({
196
+ context: {
197
+ queryFormStates,
198
+ routeParameters,
199
+ workspaceId: surface?.workspaceRef?.WorkspaceId ?? null,
200
+ },
201
+ dataSourceIds,
202
+ module,
203
+ registry: dataSourceBindingRegistry,
204
+ }), [
205
+ dataSourceBindingRegistry,
206
+ dataSourceIds,
207
+ module,
208
+ queryFormStates,
209
+ routeParameters,
210
+ surface,
211
+ ]);
212
+ const dataSourceDiagnosticsSourceId = `routed-surface-data-sources:${navigationTarget.route.Id}`;
213
+ const dataSourceCoverageDiagnostics = useMemo(() => projectPresentationDataSourceCoverageDiagnostics({
214
+ bindings,
215
+ dataSourceIds,
216
+ module,
217
+ routeParameters,
218
+ sourceId: dataSourceDiagnosticsSourceId,
219
+ targetInterpretation: dataSourceTargetInterpretation,
220
+ }), [
221
+ bindings,
222
+ dataSourceDiagnosticsSourceId,
223
+ dataSourceIds,
224
+ dataSourceTargetInterpretation,
225
+ module,
226
+ routeParameters,
227
+ ]);
228
+ useRegisterPresentationProjectionDiagnostics(dataSourceDiagnosticsSourceId, dataSourceCoverageDiagnostics);
229
+ const paginationDiagnosticsSourceId = `routed-surface-collection-pagination:${navigationTarget.route.Id}`;
230
+ const collectionPaginationDiagnostics = useMemo(() => projectCollectionPaginationDiagnostics?.({
231
+ bindings: collectionPaginationBindings,
232
+ componentSystem,
233
+ designSystem,
234
+ module,
235
+ sourceId: paginationDiagnosticsSourceId,
236
+ views: surfaceViews,
237
+ }) ?? [], [
238
+ collectionPaginationBindings,
239
+ componentSystem,
240
+ designSystem,
241
+ module,
242
+ paginationDiagnosticsSourceId,
243
+ projectCollectionPaginationDiagnostics,
244
+ surfaceViews,
245
+ ]);
246
+ useRegisterPresentationProjectionDiagnostics(paginationDiagnosticsSourceId, collectionPaginationDiagnostics);
247
+ const layoutDiagnosticsSourceId = `routed-surface-layout:${navigationTarget.route.Id}`;
248
+ const routedSurfaceLayoutDiagnostics = useMemo(() => projectPresentationRoutedSurfaceLayoutDiagnostics({
249
+ designSystem,
250
+ sourceId: layoutDiagnosticsSourceId,
251
+ surface,
252
+ }), [
253
+ designSystem,
254
+ layoutDiagnosticsSourceId,
255
+ surface,
256
+ ]);
257
+ useRegisterPresentationProjectionDiagnostics(layoutDiagnosticsSourceId, routedSurfaceLayoutDiagnostics);
258
+ const rendererRegistry = useMemo(() => createRendererRegistry(runtimeContextWithRouteContext), [createRendererRegistry, runtimeContextWithRouteContext]);
259
+ const routedSurfaceLayout = useMemo(() => resolvePresentationRoutedSurfaceLayout({ designSystem, surface }), [designSystem, surface]);
260
+ const contentClassName = useMemo(() => resolveContentClassName?.(runtimeContextWithRouteContext) ??
261
+ routedSurfaceLayout.contentClassName, [resolveContentClassName, routedSurfaceLayout, runtimeContextWithRouteContext]);
262
+ return (_jsx(PresentationRoutedSurfaceHost, { bindings: bindings, className: className ?? routedSurfaceLayout.className, componentSet: componentSet, contentClassName: contentClassName, context: routeContext, rendererRegistry: rendererRegistry, surface: surface }));
263
+ }
264
+ export function createProjectedRoutedSurfacePaginationRequests(bindings, states) {
265
+ return Object.fromEntries(bindings.map((binding) => [
266
+ binding.dataSourceId,
267
+ applyPresentationPaginationToRequest({}, binding, states[binding.dataSourceId]),
268
+ ]));
269
+ }
270
+ function createQueryFormRuntimes({ adapters, collectionPaginationBindings, commitRoutedSurfaceSearch, entries, locationSearch, module, }) {
271
+ return Object.fromEntries(adapters.flatMap((adapter) => {
272
+ const entry = entries[adapter.queryFormId];
273
+ if (!entry?.queryForm) {
274
+ return [];
275
+ }
276
+ const queryForm = entry.queryForm;
277
+ const runtime = createPresentationQueryFormRuntime({
278
+ applyValue: ({ choiceValuesByFieldId, value }) => {
279
+ entry.setAppliedValue(value);
280
+ const resetSearch = createQueryFormPaginationResetSearch(locationSearch, queryForm, collectionPaginationBindings);
281
+ const nextSearch = adapter.createAppliedSearch?.({
282
+ choiceValuesByFieldId,
283
+ inputForm: entry.inputForm,
284
+ module,
285
+ queryForm,
286
+ search: resetSearch,
287
+ value,
288
+ }) ?? resetSearch;
289
+ commitRoutedSurfaceSearch(nextSearch);
290
+ },
291
+ createDefaultValue: ({ choiceValuesByFieldId }) => adapter.createDefaultValue({
292
+ choiceValuesByFieldId,
293
+ inputForm: entry.inputForm,
294
+ module,
295
+ queryForm,
296
+ search: locationSearch,
297
+ }),
298
+ normalizeValue: adapter.normalizeValue
299
+ ? ({ choiceValuesByFieldId, value }) => adapter.normalizeValue?.({
300
+ choiceValuesByFieldId,
301
+ inputForm: entry.inputForm,
302
+ module,
303
+ queryForm,
304
+ search: locationSearch,
305
+ value,
306
+ }) ?? value
307
+ : undefined,
308
+ queryForm,
309
+ setDraftValue: entry.setDraftValue,
310
+ value: coerceObjectValue(entry.draftValue),
311
+ });
312
+ return runtime ? [[queryForm.Id, runtime]] : [];
313
+ }));
314
+ }
315
+ function createQueryFormPaginationResetSearch(search, queryForm, paginationBindings) {
316
+ const targetDataSourceIds = getQueryFormTargetDataSourceIds(queryForm);
317
+ return paginationBindings.reduce((nextSearch, binding) => targetDataSourceIds.has(binding.dataSourceId)
318
+ ? createPresentationPaginationSearch(nextSearch, binding, createInitialPresentationPaginationState(binding))
319
+ : nextSearch, search);
320
+ }
321
+ function getQueryFormTargetDataSourceIds(queryForm) {
322
+ const state = queryForm.Target.State;
323
+ return new Set([
324
+ state.AppliedDataSourceId,
325
+ state.ResultDataSourceId,
326
+ ...state.SynchronizedDataSourceIds,
327
+ ].filter((dataSourceId) => Boolean(dataSourceId)));
328
+ }
329
+ function coerceObjectValue(value) {
330
+ return value && typeof value === 'object' ? value : {};
331
+ }
332
+ //# sourceMappingURL=projected-routed-surface-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-routed-surface-runtime.js","sourceRoot":"","sources":["../src/projected-routed-surface-runtime.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type ViewDefinition, type ViewRegionDefinition } from '@cohesivesystems/presentation-core';
3
+ import type { PresentationShadcnComponentSystem as PresentationComponentSystem } from './presentation-shadcn-component-system.js';
4
+ import type { ProjectedViewSurfaceChromeSlotRenderer } from './projected-view-surface.js';
5
+ export interface ProjectedTabsViewProps {
6
+ readonly chromeAfterContentClassName?: string;
7
+ readonly chromeBeforeContentClassName?: string;
8
+ readonly chromeFooterClassName?: string;
9
+ readonly chromeHeaderClassName?: string;
10
+ readonly className?: string;
11
+ readonly componentSystem: PresentationComponentSystem;
12
+ readonly defaultRegionId?: string;
13
+ readonly fallbackRegions?: readonly ViewRegionDefinition[];
14
+ readonly iconByRegionId?: Readonly<Record<string, ReactNode>>;
15
+ readonly renderChromeSlot?: ProjectedViewSurfaceChromeSlotRenderer;
16
+ readonly renderView: (viewId: string) => ReactNode;
17
+ readonly view?: ViewDefinition | null;
18
+ readonly viewId: string;
19
+ }
20
+ export declare function ProjectedTabsView({ chromeAfterContentClassName, chromeBeforeContentClassName, chromeFooterClassName, chromeHeaderClassName, className, componentSystem, defaultRegionId, fallbackRegions, iconByRegionId, renderChromeSlot, renderView, view: viewOverride, viewId, }: ProjectedTabsViewProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
21
+ //# sourceMappingURL=projected-tabs-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-tabs-view.d.ts","sourceRoot":"","sources":["../src/projected-tabs-view.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE9E,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAC1B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,EACV,iCAAiC,IAAI,2BAA2B,EACjE,MAAM,wCAAwC,CAAA;AAe/C,OAAO,KAAK,EACV,sCAAsC,EACvC,MAAM,0BAA0B,CAAA;AAOjC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAA;IAC7C,QAAQ,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAA;IAC9C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IACvC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAA;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAA;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IAC7D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sCAAsC,CAAA;IAClE,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAA;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,IAAI,EAAE,YAAY,EAClB,MAAM,GACP,EAAE,sBAAsB,2UA+JxB"}
@@ -0,0 +1,140 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment, useEffect, useMemo, useState } from 'react';
3
+ import { findPresentationView, getRegionViewIds, isViewChromeSlotKind, } from '@cohesivesystems/presentation-core';
4
+ import { renderPresentationIcon, } from './presentation-icon-registry.js';
5
+ import { projectPresentationIconDiagnostics, } from './presentation-icon-diagnostics.js';
6
+ import { usePresentationModule, useRegisterPresentationProjectionDiagnostics, } from '@cohesivesystems/presentation-react';
7
+ import { ProjectedStatusBlock } from './projected-activity-state.js';
8
+ import { ProjectedViewChrome, } from './projected-view-chrome.js';
9
+ import { viewChromeSlotKinds, viewChromeSlotPlacements, viewRegionKinds, } from '@cohesivesystems/presentation-contracts';
10
+ export function ProjectedTabsView({ chromeAfterContentClassName, chromeBeforeContentClassName, chromeFooterClassName, chromeHeaderClassName, className, componentSystem, defaultRegionId, fallbackRegions, iconByRegionId, renderChromeSlot, renderView, view: viewOverride, viewId, }) {
11
+ const module = usePresentationModule();
12
+ const view = viewOverride ?? findPresentationView(module, viewId);
13
+ const tabRegions = useMemo(() => getTabRegions(view, fallbackRegions), [fallbackRegions, view]);
14
+ const iconDiagnosticSource = `projected-tabs-view-icons:${view?.Id ?? viewId}`;
15
+ const iconDiagnostics = useMemo(() => projectPresentationIconDiagnostics({
16
+ icons: resolveTabRegionIconSubjects(tabRegions),
17
+ module,
18
+ source: iconDiagnosticSource,
19
+ surfaceId: view?.Id ?? viewId,
20
+ surfaceName: view?.Name,
21
+ }), [
22
+ iconDiagnosticSource,
23
+ module,
24
+ tabRegions,
25
+ view?.Id,
26
+ view?.Name,
27
+ viewId,
28
+ ]);
29
+ useRegisterPresentationProjectionDiagnostics(iconDiagnosticSource, iconDiagnostics);
30
+ const defaultValue = defaultRegionId ??
31
+ view?.State?.find((state) => state.Type === 'region-id')?.DefaultValue ??
32
+ tabRegions[0]?.Id;
33
+ const [requestedActiveRegionId, setActiveRegionId] = useState(defaultValue ?? '');
34
+ const activeRegionId = tabRegions.some((region) => region.Id === requestedActiveRegionId)
35
+ ? requestedActiveRegionId
36
+ : defaultValue ?? '';
37
+ const [visitedRegionIds, setVisitedRegionIds] = useState(() => new Set(activeRegionId ? [activeRegionId] : []));
38
+ useEffect(() => {
39
+ if (!activeRegionId) {
40
+ return;
41
+ }
42
+ setVisitedRegionIds((current) => {
43
+ if (current.has(activeRegionId)) {
44
+ return current;
45
+ }
46
+ return new Set([...current, activeRegionId]);
47
+ });
48
+ }, [activeRegionId]);
49
+ if (!module && tabRegions.length === 0) {
50
+ return _jsx(ProjectedStatusBlock, { label: "Presentation module is not available." });
51
+ }
52
+ if (!view && tabRegions.length === 0) {
53
+ return _jsx(ProjectedStatusBlock, { label: `Presentation view '${viewId}' is not available.` });
54
+ }
55
+ if (!defaultValue || tabRegions.length === 0) {
56
+ return _jsx(ProjectedStatusBlock, { label: `Presentation view '${view?.Name ?? view?.Id ?? viewId}' has no tabs.` });
57
+ }
58
+ const renderTabsChromeSlot = (slot, chromeView) => {
59
+ if (isViewChromeSlotKind(slot, viewChromeSlotKinds.viewSwitch)) {
60
+ return renderTabsList({
61
+ activeRegionId: activeRegionId || defaultValue,
62
+ componentSystem,
63
+ iconByRegionId,
64
+ module,
65
+ tabRegions,
66
+ viewId: view?.Id ?? viewId,
67
+ });
68
+ }
69
+ return renderChromeSlot?.(slot, chromeView) ?? null;
70
+ };
71
+ const hasTabSwitchChrome = hasTabSwitchChromeSlot(view);
72
+ return componentSystem.tabs.TabsLayout({
73
+ className,
74
+ onValueChange: setActiveRegionId,
75
+ value: activeRegionId || defaultValue,
76
+ viewId: view?.Id ?? viewId,
77
+ children: (_jsxs(_Fragment, { children: [_jsx(ProjectedViewChrome, { className: chromeHeaderClassName, componentSystem: componentSystem, placement: viewChromeSlotPlacements.header, renderSlot: (slot) => renderTabsChromeSlot(slot, view), view: view }), hasTabSwitchChrome ? null : renderTabsList({
78
+ activeRegionId: activeRegionId || defaultValue,
79
+ componentSystem,
80
+ iconByRegionId,
81
+ module,
82
+ tabRegions,
83
+ viewId: view?.Id ?? viewId,
84
+ }), _jsx(ProjectedViewChrome, { className: chromeBeforeContentClassName, componentSystem: componentSystem, placement: viewChromeSlotPlacements.beforeContent, renderSlot: (slot) => renderTabsChromeSlot(slot, view), view: view }), tabRegions.map((region) => {
85
+ const viewIds = getRegionViewIds(region);
86
+ const shouldRenderRegion = region.Id === activeRegionId || visitedRegionIds.has(region.Id);
87
+ return (_jsx(Fragment, { children: componentSystem.tabs.TabsPanel({
88
+ region,
89
+ value: region.Id,
90
+ viewId: view?.Id ?? viewId,
91
+ children: (_jsx(_Fragment, { children: shouldRenderRegion
92
+ ? viewIds.map((childViewId) => (_jsx("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden", children: renderView(childViewId) }, childViewId)))
93
+ : null })),
94
+ }) }, region.Id));
95
+ }), _jsx(ProjectedViewChrome, { className: chromeAfterContentClassName, componentSystem: componentSystem, placement: viewChromeSlotPlacements.afterContent, renderSlot: (slot) => renderTabsChromeSlot(slot, view), view: view }), _jsx(ProjectedViewChrome, { className: chromeFooterClassName, componentSystem: componentSystem, placement: viewChromeSlotPlacements.footer, renderSlot: (slot) => renderTabsChromeSlot(slot, view), view: view })] })),
96
+ });
97
+ }
98
+ function renderTabsList({ activeRegionId, componentSystem, iconByRegionId, module, tabRegions, viewId, }) {
99
+ return componentSystem.tabs.TabsList({
100
+ viewId,
101
+ children: tabRegions.map((region) => (_jsx(Fragment, { children: componentSystem.tabs.TabsTrigger({
102
+ isActive: activeRegionId === region.Id,
103
+ region,
104
+ value: region.Id,
105
+ viewId,
106
+ children: (_jsxs(_Fragment, { children: [iconByRegionId?.[region.Id] ?? renderPresentationIcon({
107
+ className: 'size-3.5',
108
+ icon: region.Icon,
109
+ module,
110
+ }), region.Name ?? region.Id] })),
111
+ }) }, region.Id))),
112
+ });
113
+ }
114
+ function resolveTabRegionIconSubjects(tabRegions) {
115
+ return tabRegions.flatMap((region) => {
116
+ if (!region.Icon) {
117
+ return [];
118
+ }
119
+ return [{
120
+ details: {
121
+ regionId: region.Id,
122
+ },
123
+ icon: region.Icon,
124
+ id: region.Id,
125
+ kind: 'tab-region-icon',
126
+ label: region.Name,
127
+ }];
128
+ });
129
+ }
130
+ function getTabRegions(view, fallbackRegions) {
131
+ const regions = view?.Regions ?? fallbackRegions ?? [];
132
+ return (regions.filter((region) => hasRegionKind(region.Kind, 'Tab', 6) && getRegionViewIds(region).length > 0));
133
+ }
134
+ function hasRegionKind(value, name, numericValue) {
135
+ return value === name || value === numericValue || value === viewRegionKinds.tab;
136
+ }
137
+ function hasTabSwitchChromeSlot(view) {
138
+ return view?.Chrome?.Slots.some((slot) => isViewChromeSlotKind(slot, viewChromeSlotKinds.viewSwitch)) ?? false;
139
+ }
140
+ //# sourceMappingURL=projected-tabs-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-tabs-view.js","sourceRoot":"","sources":["../src/projected-tabs-view.tsx"],"names":[],"mappings":"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"}