@cohesivesystems/presentation-core 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 (447) hide show
  1. package/LICENSE +55 -0
  2. package/dist/api-scope-request.d.ts +43 -0
  3. package/dist/api-scope-request.d.ts.map +1 -0
  4. package/dist/api-scope-request.js +96 -0
  5. package/dist/api-scope-request.js.map +1 -0
  6. package/dist/collection-chrome-icons.d.ts +18 -0
  7. package/dist/collection-chrome-icons.d.ts.map +1 -0
  8. package/dist/collection-chrome-icons.js +57 -0
  9. package/dist/collection-chrome-icons.js.map +1 -0
  10. package/dist/collection-chrome-runtime.d.ts +25 -0
  11. package/dist/collection-chrome-runtime.d.ts.map +1 -0
  12. package/dist/collection-chrome-runtime.js +72 -0
  13. package/dist/collection-chrome-runtime.js.map +1 -0
  14. package/dist/collection-chrome-slot-renderer-registry.d.ts +110 -0
  15. package/dist/collection-chrome-slot-renderer-registry.d.ts.map +1 -0
  16. package/dist/collection-chrome-slot-renderer-registry.js +136 -0
  17. package/dist/collection-chrome-slot-renderer-registry.js.map +1 -0
  18. package/dist/collection-selection-state.d.ts +18 -0
  19. package/dist/collection-selection-state.d.ts.map +1 -0
  20. package/dist/collection-selection-state.js +2 -0
  21. package/dist/collection-selection-state.js.map +1 -0
  22. package/dist/data-source-projection.d.ts +475 -0
  23. package/dist/data-source-projection.d.ts.map +1 -0
  24. package/dist/data-source-projection.js +880 -0
  25. package/dist/data-source-projection.js.map +1 -0
  26. package/dist/data-source-query-lowering.d.ts +35 -0
  27. package/dist/data-source-query-lowering.d.ts.map +1 -0
  28. package/dist/data-source-query-lowering.js +104 -0
  29. package/dist/data-source-query-lowering.js.map +1 -0
  30. package/dist/date-time-filter-model.d.ts +20 -0
  31. package/dist/date-time-filter-model.d.ts.map +1 -0
  32. package/dist/date-time-filter-model.js +115 -0
  33. package/dist/date-time-filter-model.js.map +1 -0
  34. package/dist/document-badge-icons.d.ts +4 -0
  35. package/dist/document-badge-icons.d.ts.map +1 -0
  36. package/dist/document-badge-icons.js +4 -0
  37. package/dist/document-badge-icons.js.map +1 -0
  38. package/dist/document-module.d.ts +268 -0
  39. package/dist/document-module.d.ts.map +1 -0
  40. package/dist/document-module.js +347 -0
  41. package/dist/document-module.js.map +1 -0
  42. package/dist/document-summary-model.d.ts +2 -0
  43. package/dist/document-summary-model.d.ts.map +1 -0
  44. package/dist/document-summary-model.js +2 -0
  45. package/dist/document-summary-model.js.map +1 -0
  46. package/dist/document-workspace-chrome-projection.d.ts +18 -0
  47. package/dist/document-workspace-chrome-projection.d.ts.map +1 -0
  48. package/dist/document-workspace-chrome-projection.js +35 -0
  49. package/dist/document-workspace-chrome-projection.js.map +1 -0
  50. package/dist/document-workspace-surface-slots.d.ts +75 -0
  51. package/dist/document-workspace-surface-slots.d.ts.map +1 -0
  52. package/dist/document-workspace-surface-slots.js +268 -0
  53. package/dist/document-workspace-surface-slots.js.map +1 -0
  54. package/dist/endpoint-executor.d.ts +62 -0
  55. package/dist/endpoint-executor.d.ts.map +1 -0
  56. package/dist/endpoint-executor.js +35 -0
  57. package/dist/endpoint-executor.js.map +1 -0
  58. package/dist/field-display-resolution.d.ts +5 -0
  59. package/dist/field-display-resolution.d.ts.map +1 -0
  60. package/dist/field-display-resolution.js +50 -0
  61. package/dist/field-display-resolution.js.map +1 -0
  62. package/dist/index.d.ts +90 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +89 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/module.d.ts +48 -0
  67. package/dist/module.d.ts.map +1 -0
  68. package/dist/module.js +108 -0
  69. package/dist/module.js.map +1 -0
  70. package/dist/navigation-shell-frame-renderer-registry.d.ts +12 -0
  71. package/dist/navigation-shell-frame-renderer-registry.d.ts.map +1 -0
  72. package/dist/navigation-shell-frame-renderer-registry.js +29 -0
  73. package/dist/navigation-shell-frame-renderer-registry.js.map +1 -0
  74. package/dist/navigation-shell-layout-runtime.d.ts +29 -0
  75. package/dist/navigation-shell-layout-runtime.d.ts.map +1 -0
  76. package/dist/navigation-shell-layout-runtime.js +50 -0
  77. package/dist/navigation-shell-layout-runtime.js.map +1 -0
  78. package/dist/navigation-shell-region-component-registry.d.ts +96 -0
  79. package/dist/navigation-shell-region-component-registry.d.ts.map +1 -0
  80. package/dist/navigation-shell-region-component-registry.js +108 -0
  81. package/dist/navigation-shell-region-component-registry.js.map +1 -0
  82. package/dist/navigation-shell-runtime.d.ts +48 -0
  83. package/dist/navigation-shell-runtime.d.ts.map +1 -0
  84. package/dist/navigation-shell-runtime.js +457 -0
  85. package/dist/navigation-shell-runtime.js.map +1 -0
  86. package/dist/navigation-shell-slot-renderer-registry.d.ts +15 -0
  87. package/dist/navigation-shell-slot-renderer-registry.d.ts.map +1 -0
  88. package/dist/navigation-shell-slot-renderer-registry.js +48 -0
  89. package/dist/navigation-shell-slot-renderer-registry.js.map +1 -0
  90. package/dist/navigation.d.ts +84 -0
  91. package/dist/navigation.d.ts.map +1 -0
  92. package/dist/navigation.js +167 -0
  93. package/dist/navigation.js.map +1 -0
  94. package/dist/object-path.d.ts +23 -0
  95. package/dist/object-path.d.ts.map +1 -0
  96. package/dist/object-path.js +63 -0
  97. package/dist/object-path.js.map +1 -0
  98. package/dist/page-host-renderer-registry.d.ts +119 -0
  99. package/dist/page-host-renderer-registry.d.ts.map +1 -0
  100. package/dist/page-host-renderer-registry.js +305 -0
  101. package/dist/page-host-renderer-registry.js.map +1 -0
  102. package/dist/presentation-action-endpoint-request-projection.d.ts +23 -0
  103. package/dist/presentation-action-endpoint-request-projection.d.ts.map +1 -0
  104. package/dist/presentation-action-endpoint-request-projection.js +117 -0
  105. package/dist/presentation-action-endpoint-request-projection.js.map +1 -0
  106. package/dist/presentation-action-endpoint.d.ts +24 -0
  107. package/dist/presentation-action-endpoint.d.ts.map +1 -0
  108. package/dist/presentation-action-endpoint.js +56 -0
  109. package/dist/presentation-action-endpoint.js.map +1 -0
  110. package/dist/presentation-action-icons.d.ts +4 -0
  111. package/dist/presentation-action-icons.d.ts.map +1 -0
  112. package/dist/presentation-action-icons.js +4 -0
  113. package/dist/presentation-action-icons.js.map +1 -0
  114. package/dist/presentation-action-result-state.d.ts +48 -0
  115. package/dist/presentation-action-result-state.d.ts.map +1 -0
  116. package/dist/presentation-action-result-state.js +109 -0
  117. package/dist/presentation-action-result-state.js.map +1 -0
  118. package/dist/presentation-action-runtime-binding.d.ts +48 -0
  119. package/dist/presentation-action-runtime-binding.d.ts.map +1 -0
  120. package/dist/presentation-action-runtime-binding.js +52 -0
  121. package/dist/presentation-action-runtime-binding.js.map +1 -0
  122. package/dist/presentation-action-runtime-diagnostics.d.ts +18 -0
  123. package/dist/presentation-action-runtime-diagnostics.d.ts.map +1 -0
  124. package/dist/presentation-action-runtime-diagnostics.js +69 -0
  125. package/dist/presentation-action-runtime-diagnostics.js.map +1 -0
  126. package/dist/presentation-action-runtime-labels.d.ts +15 -0
  127. package/dist/presentation-action-runtime-labels.d.ts.map +1 -0
  128. package/dist/presentation-action-runtime-labels.js +28 -0
  129. package/dist/presentation-action-runtime-labels.js.map +1 -0
  130. package/dist/presentation-action-runtime-projection.d.ts +17 -0
  131. package/dist/presentation-action-runtime-projection.d.ts.map +1 -0
  132. package/dist/presentation-action-runtime-projection.js +31 -0
  133. package/dist/presentation-action-runtime-projection.js.map +1 -0
  134. package/dist/presentation-badge-resolution.d.ts +8 -0
  135. package/dist/presentation-badge-resolution.d.ts.map +1 -0
  136. package/dist/presentation-badge-resolution.js +73 -0
  137. package/dist/presentation-badge-resolution.js.map +1 -0
  138. package/dist/presentation-collection-pagination.d.ts +32 -0
  139. package/dist/presentation-collection-pagination.d.ts.map +1 -0
  140. package/dist/presentation-collection-pagination.js +275 -0
  141. package/dist/presentation-collection-pagination.js.map +1 -0
  142. package/dist/presentation-content-diagnostics.d.ts +17 -0
  143. package/dist/presentation-content-diagnostics.d.ts.map +1 -0
  144. package/dist/presentation-content-diagnostics.js +61 -0
  145. package/dist/presentation-content-diagnostics.js.map +1 -0
  146. package/dist/presentation-content-resolution.d.ts +9 -0
  147. package/dist/presentation-content-resolution.d.ts.map +1 -0
  148. package/dist/presentation-content-resolution.js +19 -0
  149. package/dist/presentation-content-resolution.js.map +1 -0
  150. package/dist/presentation-data-source-binding-model.d.ts +81 -0
  151. package/dist/presentation-data-source-binding-model.d.ts.map +1 -0
  152. package/dist/presentation-data-source-binding-model.js +56 -0
  153. package/dist/presentation-data-source-binding-model.js.map +1 -0
  154. package/dist/presentation-data-source-runtime.d.ts +62 -0
  155. package/dist/presentation-data-source-runtime.d.ts.map +1 -0
  156. package/dist/presentation-data-source-runtime.js +80 -0
  157. package/dist/presentation-data-source-runtime.js.map +1 -0
  158. package/dist/presentation-design-intent-diagnostics.d.ts +25 -0
  159. package/dist/presentation-design-intent-diagnostics.d.ts.map +1 -0
  160. package/dist/presentation-design-intent-diagnostics.js +55 -0
  161. package/dist/presentation-design-intent-diagnostics.js.map +1 -0
  162. package/dist/presentation-icon-diagnostics.d.ts +45 -0
  163. package/dist/presentation-icon-diagnostics.d.ts.map +1 -0
  164. package/dist/presentation-icon-diagnostics.js +235 -0
  165. package/dist/presentation-icon-diagnostics.js.map +1 -0
  166. package/dist/presentation-icon-registry.d.ts +36 -0
  167. package/dist/presentation-icon-registry.d.ts.map +1 -0
  168. package/dist/presentation-icon-registry.js +81 -0
  169. package/dist/presentation-icon-registry.js.map +1 -0
  170. package/dist/presentation-navigation-action-runtime-bindings.d.ts +13 -0
  171. package/dist/presentation-navigation-action-runtime-bindings.d.ts.map +1 -0
  172. package/dist/presentation-navigation-action-runtime-bindings.js +29 -0
  173. package/dist/presentation-navigation-action-runtime-bindings.js.map +1 -0
  174. package/dist/presentation-pagination.d.ts +98 -0
  175. package/dist/presentation-pagination.d.ts.map +1 -0
  176. package/dist/presentation-pagination.js +427 -0
  177. package/dist/presentation-pagination.js.map +1 -0
  178. package/dist/presentation-projection-coverage.d.ts +38 -0
  179. package/dist/presentation-projection-coverage.d.ts.map +1 -0
  180. package/dist/presentation-projection-coverage.js +2429 -0
  181. package/dist/presentation-projection-coverage.js.map +1 -0
  182. package/dist/presentation-projection-diagnostics.d.ts +33 -0
  183. package/dist/presentation-projection-diagnostics.d.ts.map +1 -0
  184. package/dist/presentation-projection-diagnostics.js +17 -0
  185. package/dist/presentation-projection-diagnostics.js.map +1 -0
  186. package/dist/presentation-projection-trace.d.ts +97 -0
  187. package/dist/presentation-projection-trace.d.ts.map +1 -0
  188. package/dist/presentation-projection-trace.js +110 -0
  189. package/dist/presentation-projection-trace.js.map +1 -0
  190. package/dist/presentation-query-form-state.d.ts +15 -0
  191. package/dist/presentation-query-form-state.d.ts.map +1 -0
  192. package/dist/presentation-query-form-state.js +20 -0
  193. package/dist/presentation-query-form-state.js.map +1 -0
  194. package/dist/presentation-renderer-registry.d.ts +86 -0
  195. package/dist/presentation-renderer-registry.d.ts.map +1 -0
  196. package/dist/presentation-renderer-registry.js +108 -0
  197. package/dist/presentation-renderer-registry.js.map +1 -0
  198. package/dist/presentation-semantics.d.ts +288 -0
  199. package/dist/presentation-semantics.d.ts.map +1 -0
  200. package/dist/presentation-semantics.js +560 -0
  201. package/dist/presentation-semantics.js.map +1 -0
  202. package/dist/presentation-standards.d.ts +8 -0
  203. package/dist/presentation-standards.d.ts.map +1 -0
  204. package/dist/presentation-standards.js +9 -0
  205. package/dist/presentation-standards.js.map +1 -0
  206. package/dist/presentation-test-selectors.d.ts +146 -0
  207. package/dist/presentation-test-selectors.d.ts.map +1 -0
  208. package/dist/presentation-test-selectors.js +113 -0
  209. package/dist/presentation-test-selectors.js.map +1 -0
  210. package/dist/presentation-value-formatting.d.ts +12 -0
  211. package/dist/presentation-value-formatting.d.ts.map +1 -0
  212. package/dist/presentation-value-formatting.js +33 -0
  213. package/dist/presentation-value-formatting.js.map +1 -0
  214. package/dist/presentation-value-resolution.d.ts +7 -0
  215. package/dist/presentation-value-resolution.d.ts.map +1 -0
  216. package/dist/presentation-value-resolution.js +69 -0
  217. package/dist/presentation-value-resolution.js.map +1 -0
  218. package/dist/presentation-view-tree.d.ts +6 -0
  219. package/dist/presentation-view-tree.d.ts.map +1 -0
  220. package/dist/presentation-view-tree.js +15 -0
  221. package/dist/presentation-view-tree.js.map +1 -0
  222. package/dist/process-task-model.d.ts +80 -0
  223. package/dist/process-task-model.d.ts.map +1 -0
  224. package/dist/process-task-model.js +52 -0
  225. package/dist/process-task-model.js.map +1 -0
  226. package/dist/process-task-projection.d.ts +46 -0
  227. package/dist/process-task-projection.d.ts.map +1 -0
  228. package/dist/process-task-projection.js +233 -0
  229. package/dist/process-task-projection.js.map +1 -0
  230. package/dist/projected-action-status-projection.d.ts +18 -0
  231. package/dist/projected-action-status-projection.d.ts.map +1 -0
  232. package/dist/projected-action-status-projection.js +19 -0
  233. package/dist/projected-action-status-projection.js.map +1 -0
  234. package/dist/projected-activity-state-model.d.ts +22 -0
  235. package/dist/projected-activity-state-model.d.ts.map +1 -0
  236. package/dist/projected-activity-state-model.js +87 -0
  237. package/dist/projected-activity-state-model.js.map +1 -0
  238. package/dist/projected-collection-action-runtime-bindings.d.ts +12 -0
  239. package/dist/projected-collection-action-runtime-bindings.d.ts.map +1 -0
  240. package/dist/projected-collection-action-runtime-bindings.js +37 -0
  241. package/dist/projected-collection-action-runtime-bindings.js.map +1 -0
  242. package/dist/projected-collection-action-runtime-diagnostics.d.ts +23 -0
  243. package/dist/projected-collection-action-runtime-diagnostics.d.ts.map +1 -0
  244. package/dist/projected-collection-action-runtime-diagnostics.js +168 -0
  245. package/dist/projected-collection-action-runtime-diagnostics.js.map +1 -0
  246. package/dist/projected-collection-runtime.d.ts +475 -0
  247. package/dist/projected-collection-runtime.d.ts.map +1 -0
  248. package/dist/projected-collection-runtime.js +832 -0
  249. package/dist/projected-collection-runtime.js.map +1 -0
  250. package/dist/projected-document-action-diagnostics.d.ts +16 -0
  251. package/dist/projected-document-action-diagnostics.d.ts.map +1 -0
  252. package/dist/projected-document-action-diagnostics.js +113 -0
  253. package/dist/projected-document-action-diagnostics.js.map +1 -0
  254. package/dist/projected-document-action-enablements.d.ts +25 -0
  255. package/dist/projected-document-action-enablements.d.ts.map +1 -0
  256. package/dist/projected-document-action-enablements.js +38 -0
  257. package/dist/projected-document-action-enablements.js.map +1 -0
  258. package/dist/projected-document-action-projection.d.ts +45 -0
  259. package/dist/projected-document-action-projection.d.ts.map +1 -0
  260. package/dist/projected-document-action-projection.js +201 -0
  261. package/dist/projected-document-action-projection.js.map +1 -0
  262. package/dist/projected-document-action-runtime-profile-diagnostics.d.ts +16 -0
  263. package/dist/projected-document-action-runtime-profile-diagnostics.d.ts.map +1 -0
  264. package/dist/projected-document-action-runtime-profile-diagnostics.js +168 -0
  265. package/dist/projected-document-action-runtime-profile-diagnostics.js.map +1 -0
  266. package/dist/projected-document-action-runtime-profile.d.ts +64 -0
  267. package/dist/projected-document-action-runtime-profile.d.ts.map +1 -0
  268. package/dist/projected-document-action-runtime-profile.js +33 -0
  269. package/dist/projected-document-action-runtime-profile.js.map +1 -0
  270. package/dist/projected-document-action-status-notice-diagnostics.d.ts +10 -0
  271. package/dist/projected-document-action-status-notice-diagnostics.d.ts.map +1 -0
  272. package/dist/projected-document-action-status-notice-diagnostics.js +64 -0
  273. package/dist/projected-document-action-status-notice-diagnostics.js.map +1 -0
  274. package/dist/projected-document-badge-formatting.d.ts +2 -0
  275. package/dist/projected-document-badge-formatting.d.ts.map +1 -0
  276. package/dist/projected-document-badge-formatting.js +7 -0
  277. package/dist/projected-document-badge-formatting.js.map +1 -0
  278. package/dist/projected-document-editor-model.d.ts +4 -0
  279. package/dist/projected-document-editor-model.d.ts.map +1 -0
  280. package/dist/projected-document-editor-model.js +2 -0
  281. package/dist/projected-document-editor-model.js.map +1 -0
  282. package/dist/projected-document-field-navigation.d.ts +72 -0
  283. package/dist/projected-document-field-navigation.d.ts.map +1 -0
  284. package/dist/projected-document-field-navigation.js +143 -0
  285. package/dist/projected-document-field-navigation.js.map +1 -0
  286. package/dist/projected-document-field-semantics.d.ts +5 -0
  287. package/dist/projected-document-field-semantics.d.ts.map +1 -0
  288. package/dist/projected-document-field-semantics.js +16 -0
  289. package/dist/projected-document-field-semantics.js.map +1 -0
  290. package/dist/projected-document-workspace-data-source-bindings.d.ts +69 -0
  291. package/dist/projected-document-workspace-data-source-bindings.d.ts.map +1 -0
  292. package/dist/projected-document-workspace-data-source-bindings.js +81 -0
  293. package/dist/projected-document-workspace-data-source-bindings.js.map +1 -0
  294. package/dist/projected-document-workspace-notice-diagnostics.d.ts +12 -0
  295. package/dist/projected-document-workspace-notice-diagnostics.d.ts.map +1 -0
  296. package/dist/projected-document-workspace-notice-diagnostics.js +13 -0
  297. package/dist/projected-document-workspace-notice-diagnostics.js.map +1 -0
  298. package/dist/projected-input-form-runtime.d.ts +62 -0
  299. package/dist/projected-input-form-runtime.d.ts.map +1 -0
  300. package/dist/projected-input-form-runtime.js +2 -0
  301. package/dist/projected-input-form-runtime.js.map +1 -0
  302. package/dist/projected-process-task-notice-diagnostics.d.ts +13 -0
  303. package/dist/projected-process-task-notice-diagnostics.d.ts.map +1 -0
  304. package/dist/projected-process-task-notice-diagnostics.js +170 -0
  305. package/dist/projected-process-task-notice-diagnostics.js.map +1 -0
  306. package/dist/projected-query-form-runtime.d.ts +46 -0
  307. package/dist/projected-query-form-runtime.d.ts.map +1 -0
  308. package/dist/projected-query-form-runtime.js +2 -0
  309. package/dist/projected-query-form-runtime.js.map +1 -0
  310. package/dist/prompt-document-preview-projection.d.ts +46 -0
  311. package/dist/prompt-document-preview-projection.d.ts.map +1 -0
  312. package/dist/prompt-document-preview-projection.js +173 -0
  313. package/dist/prompt-document-preview-projection.js.map +1 -0
  314. package/dist/prompt-icons.d.ts +4 -0
  315. package/dist/prompt-icons.d.ts.map +1 -0
  316. package/dist/prompt-icons.js +4 -0
  317. package/dist/prompt-icons.js.map +1 -0
  318. package/dist/prompt-status-message-resolution.d.ts +18 -0
  319. package/dist/prompt-status-message-resolution.d.ts.map +1 -0
  320. package/dist/prompt-status-message-resolution.js +83 -0
  321. package/dist/prompt-status-message-resolution.js.map +1 -0
  322. package/dist/query-form-lowering.d.ts +16 -0
  323. package/dist/query-form-lowering.d.ts.map +1 -0
  324. package/dist/query-form-lowering.js +38 -0
  325. package/dist/query-form-lowering.js.map +1 -0
  326. package/dist/query-form-url-state.d.ts +44 -0
  327. package/dist/query-form-url-state.d.ts.map +1 -0
  328. package/dist/query-form-url-state.js +197 -0
  329. package/dist/query-form-url-state.js.map +1 -0
  330. package/dist/query-offset-page.d.ts +13 -0
  331. package/dist/query-offset-page.d.ts.map +1 -0
  332. package/dist/query-offset-page.js +24 -0
  333. package/dist/query-offset-page.js.map +1 -0
  334. package/dist/relation-query-input-form-target.d.ts +10 -0
  335. package/dist/relation-query-input-form-target.d.ts.map +1 -0
  336. package/dist/relation-query-input-form-target.js +30 -0
  337. package/dist/relation-query-input-form-target.js.map +1 -0
  338. package/dist/scope-selection.d.ts +94 -0
  339. package/dist/scope-selection.d.ts.map +1 -0
  340. package/dist/scope-selection.js +95 -0
  341. package/dist/scope-selection.js.map +1 -0
  342. package/dist/target-bindings.d.ts +39 -0
  343. package/dist/target-bindings.d.ts.map +1 -0
  344. package/dist/target-bindings.js +40 -0
  345. package/dist/target-bindings.js.map +1 -0
  346. package/dist/view-chrome-content-diagnostics.d.ts +8 -0
  347. package/dist/view-chrome-content-diagnostics.d.ts.map +1 -0
  348. package/dist/view-chrome-content-diagnostics.js +84 -0
  349. package/dist/view-chrome-content-diagnostics.js.map +1 -0
  350. package/dist/view-chrome-icons.d.ts +12 -0
  351. package/dist/view-chrome-icons.d.ts.map +1 -0
  352. package/dist/view-chrome-icons.js +50 -0
  353. package/dist/view-chrome-icons.js.map +1 -0
  354. package/dist/view-chrome-slot-renderer-registry.d.ts +19 -0
  355. package/dist/view-chrome-slot-renderer-registry.d.ts.map +1 -0
  356. package/dist/view-chrome-slot-renderer-registry.js +62 -0
  357. package/dist/view-chrome-slot-renderer-registry.js.map +1 -0
  358. package/package.json +53 -0
  359. package/src/api-scope-request.ts +186 -0
  360. package/src/collection-chrome-icons.ts +89 -0
  361. package/src/collection-chrome-runtime.ts +151 -0
  362. package/src/collection-chrome-slot-renderer-registry.ts +227 -0
  363. package/src/collection-selection-state.ts +32 -0
  364. package/src/data-source-projection.ts +2149 -0
  365. package/src/data-source-query-lowering.ts +217 -0
  366. package/src/date-time-filter-model.ts +156 -0
  367. package/src/document-badge-icons.ts +3 -0
  368. package/src/document-module.ts +741 -0
  369. package/src/document-summary-model.ts +1 -0
  370. package/src/document-workspace-chrome-projection.ts +62 -0
  371. package/src/document-workspace-surface-slots.ts +458 -0
  372. package/src/endpoint-executor.ts +122 -0
  373. package/src/field-display-resolution.ts +99 -0
  374. package/src/index.ts +104 -0
  375. package/src/module.ts +281 -0
  376. package/src/navigation-shell-frame-renderer-registry.ts +65 -0
  377. package/src/navigation-shell-layout-runtime.ts +124 -0
  378. package/src/navigation-shell-region-component-registry.ts +242 -0
  379. package/src/navigation-shell-runtime.ts +579 -0
  380. package/src/navigation-shell-slot-renderer-registry.ts +94 -0
  381. package/src/navigation.ts +364 -0
  382. package/src/object-path.ts +99 -0
  383. package/src/page-host-renderer-registry.ts +615 -0
  384. package/src/presentation-action-endpoint-request-projection.ts +223 -0
  385. package/src/presentation-action-endpoint.ts +130 -0
  386. package/src/presentation-action-icons.ts +3 -0
  387. package/src/presentation-action-result-state.ts +189 -0
  388. package/src/presentation-action-runtime-binding.ts +177 -0
  389. package/src/presentation-action-runtime-diagnostics.ts +120 -0
  390. package/src/presentation-action-runtime-labels.ts +57 -0
  391. package/src/presentation-action-runtime-projection.ts +67 -0
  392. package/src/presentation-badge-resolution.ts +138 -0
  393. package/src/presentation-collection-pagination.ts +436 -0
  394. package/src/presentation-content-diagnostics.ts +121 -0
  395. package/src/presentation-content-resolution.ts +46 -0
  396. package/src/presentation-data-source-binding-model.ts +140 -0
  397. package/src/presentation-data-source-runtime.ts +190 -0
  398. package/src/presentation-design-intent-diagnostics.ts +104 -0
  399. package/src/presentation-icon-diagnostics.ts +368 -0
  400. package/src/presentation-icon-registry.ts +181 -0
  401. package/src/presentation-navigation-action-runtime-bindings.ts +54 -0
  402. package/src/presentation-pagination.ts +694 -0
  403. package/src/presentation-projection-coverage.ts +3257 -0
  404. package/src/presentation-projection-diagnostics.ts +71 -0
  405. package/src/presentation-projection-trace.ts +293 -0
  406. package/src/presentation-query-form-state.ts +54 -0
  407. package/src/presentation-renderer-registry.ts +269 -0
  408. package/src/presentation-semantics.ts +1028 -0
  409. package/src/presentation-standards.ts +14 -0
  410. package/src/presentation-test-selectors.ts +312 -0
  411. package/src/presentation-value-formatting.ts +65 -0
  412. package/src/presentation-value-resolution.ts +100 -0
  413. package/src/presentation-view-tree.ts +33 -0
  414. package/src/process-task-model.ts +158 -0
  415. package/src/process-task-projection.ts +398 -0
  416. package/src/projected-action-status-projection.ts +43 -0
  417. package/src/projected-activity-state-model.ts +123 -0
  418. package/src/projected-collection-action-runtime-bindings.ts +76 -0
  419. package/src/projected-collection-action-runtime-diagnostics.ts +289 -0
  420. package/src/projected-collection-runtime.ts +1772 -0
  421. package/src/projected-document-action-diagnostics.ts +196 -0
  422. package/src/projected-document-action-enablements.ts +99 -0
  423. package/src/projected-document-action-projection.ts +464 -0
  424. package/src/projected-document-action-runtime-profile-diagnostics.ts +250 -0
  425. package/src/projected-document-action-runtime-profile.ts +133 -0
  426. package/src/projected-document-action-status-notice-diagnostics.ts +116 -0
  427. package/src/projected-document-badge-formatting.ts +7 -0
  428. package/src/projected-document-editor-model.ts +7 -0
  429. package/src/projected-document-field-navigation.ts +300 -0
  430. package/src/projected-document-field-semantics.ts +27 -0
  431. package/src/projected-document-workspace-data-source-bindings.ts +182 -0
  432. package/src/projected-document-workspace-notice-diagnostics.ts +41 -0
  433. package/src/projected-input-form-runtime.ts +86 -0
  434. package/src/projected-process-task-notice-diagnostics.ts +283 -0
  435. package/src/projected-query-form-runtime.ts +62 -0
  436. package/src/prompt-document-preview-projection.ts +345 -0
  437. package/src/prompt-icons.ts +3 -0
  438. package/src/prompt-status-message-resolution.ts +158 -0
  439. package/src/query-form-lowering.ts +77 -0
  440. package/src/query-form-url-state.ts +346 -0
  441. package/src/query-offset-page.ts +50 -0
  442. package/src/relation-query-input-form-target.ts +61 -0
  443. package/src/scope-selection.ts +201 -0
  444. package/src/target-bindings.ts +123 -0
  445. package/src/view-chrome-content-diagnostics.ts +139 -0
  446. package/src/view-chrome-icons.ts +81 -0
  447. package/src/view-chrome-slot-renderer-registry.ts +128 -0
@@ -0,0 +1,182 @@
1
+ import {
2
+ projectDocumentProfileDataSourceBindings,
3
+ type DocumentWorkspaceProfileProjection,
4
+ } from './document-module'
5
+ import type { PresentationModuleDefinition } from './module'
6
+ import {
7
+ createApiEndpointTanStackQueryDataSourceBindingProjectionRegistry,
8
+ type PresentationDataSourceApiEndpointFactoryContext,
9
+ type PresentationDataSourceEndpointExecutor,
10
+ type PresentationDataSourceTargetInterpretation,
11
+ } from './data-source-projection'
12
+ import {
13
+ type PresentationDataSourceAuthorizationRequirement,
14
+ type PresentationDataSourceBinding,
15
+ } from './presentation-data-source-binding-model'
16
+ import {
17
+ documentDataSourceRoles,
18
+ type DocumentDataSourceRole,
19
+ } from '@cohesivesystems/presentation-contracts'
20
+
21
+ const defaultDocumentWorkspaceDataSourceRoles = [
22
+ documentDataSourceRoles.resource,
23
+ documentDataSourceRoles.metadata,
24
+ ] as const
25
+ const emptyQueryKeyParts = [] as const
26
+
27
+ /**
28
+ * Runtime subset required to decide which profile-scoped data sources are
29
+ * active for the current document workspace projection.
30
+ */
31
+ export interface DocumentWorkspaceDataSourceRuntimeState {
32
+ readonly activeLayoutModeId: string
33
+ readonly activeProjectionId: string | null
34
+ readonly activeViewId: string | null
35
+ readonly projectionViewIds: readonly string[]
36
+ }
37
+
38
+ /** Context used to create stable cache keys for document workspace data sources. */
39
+ export interface DocumentWorkspaceDataSourceQueryKeyContext {
40
+ readonly dataSourceId: string
41
+ readonly queryKeyParts: readonly unknown[]
42
+ readonly resourceId: string
43
+ readonly routeParameters: Readonly<Record<string, string | null | undefined>>
44
+ }
45
+
46
+ /** Creates a cache key for a projected document workspace data source. */
47
+ export type DocumentWorkspaceDataSourceQueryKeyFactory = (
48
+ context: DocumentWorkspaceDataSourceQueryKeyContext,
49
+ ) => readonly unknown[]
50
+
51
+ /** Options for projecting a document profile's load-time data sources. */
52
+ export interface ProjectDocumentWorkspaceDataSourceBindingsOptions {
53
+ /** Authorization applied to API-backed document workspace data sources when no target interpretation supplies it. */
54
+ readonly authorization?: PresentationDataSourceAuthorizationRequirement
55
+ /** Cache-key factory supplied by the app/runtime cache domain. */
56
+ readonly createQueryKey?: DocumentWorkspaceDataSourceQueryKeyFactory
57
+ /** Concrete endpoint executor for API-backed presentation data sources when no target interpretation supplies it. */
58
+ readonly executeEndpoint?: PresentationDataSourceEndpointExecutor
59
+ /** Optional app-level enablement predicate layered over route-parameter checks. */
60
+ readonly isEnabled?: (context: PresentationDataSourceApiEndpointFactoryContext) => boolean
61
+ /** Presentation module containing canonical data-source definitions. */
62
+ readonly module: PresentationModuleDefinition | null
63
+ /** Projected document workspace profile whose data sources should be bound. */
64
+ readonly projection: Pick<DocumentWorkspaceProfileProjection, 'dataSourceId' | 'profile'>
65
+ /** Additional cache-key parts, such as auth or tenant scope. */
66
+ readonly queryKeyParts?: readonly unknown[]
67
+ /** Concrete document resource id from the current route. */
68
+ readonly resourceId: string
69
+ /** Route parameter name used by document resource endpoints. */
70
+ readonly resourceRouteParameterName?: string
71
+ /** Data-source roles to bind; defaults to resource and metadata. */
72
+ readonly roles?: readonly DocumentDataSourceRole[]
73
+ /** Current document workspace runtime state used for activation policies. */
74
+ readonly runtime: DocumentWorkspaceDataSourceRuntimeState
75
+ /** Target-level interpretation for data-source execution and authorization semantics. */
76
+ readonly targetInterpretation?: PresentationDataSourceTargetInterpretation
77
+ }
78
+
79
+ /** Result of projecting document workspace data-source bindings. */
80
+ export interface ProjectDocumentWorkspaceDataSourceBindingsResult {
81
+ readonly bindings: readonly PresentationDataSourceBinding[]
82
+ readonly resourceQueryKey: readonly unknown[]
83
+ }
84
+
85
+ /**
86
+ * Projects a document workspace profile's load-time data sources to concrete
87
+ * frontend bindings.
88
+ *
89
+ * The backend declares which data sources exist and when they are active. This
90
+ * helper contributes the reusable document-workspace interpretation: route
91
+ * parameter wiring, active-view activation, API endpoint binding, cache-key
92
+ * creation, and primary resource query-key exposure for downstream mutations.
93
+ */
94
+ export function projectDocumentWorkspaceDataSourceBindings({
95
+ authorization,
96
+ createQueryKey = createDocumentWorkspaceDataSourceQueryKey,
97
+ executeEndpoint,
98
+ isEnabled,
99
+ module,
100
+ projection,
101
+ queryKeyParts = emptyQueryKeyParts,
102
+ resourceId,
103
+ resourceRouteParameterName = 'id',
104
+ roles = defaultDocumentWorkspaceDataSourceRoles,
105
+ runtime,
106
+ targetInterpretation,
107
+ }: ProjectDocumentWorkspaceDataSourceBindingsOptions): ProjectDocumentWorkspaceDataSourceBindingsResult {
108
+ const routeParameters = {
109
+ [resourceRouteParameterName]: resourceId,
110
+ } satisfies Readonly<Record<string, string>>
111
+ const registry = createApiEndpointTanStackQueryDataSourceBindingProjectionRegistry({
112
+ createQueryKey: ({ dataSource, routeParameters }) =>
113
+ createQueryKey({
114
+ dataSourceId: dataSource.Id,
115
+ queryKeyParts,
116
+ resourceId,
117
+ routeParameters,
118
+ }),
119
+ defaultAuthorization: authorization && !targetInterpretation
120
+ ? () => authorization
121
+ : undefined,
122
+ executeEndpoint,
123
+ isEnabled: createDocumentWorkspaceDataSourceEnabledPredicate(resourceId, isEnabled),
124
+ pendingLabel: ({ dataSource }) =>
125
+ dataSource.Id === projection.dataSourceId
126
+ ? 'Loading document...'
127
+ : `Loading ${dataSource.Name.toLocaleLowerCase()}...`,
128
+ retry: false,
129
+ targetInterpretation,
130
+ })
131
+
132
+ return {
133
+ bindings: projectDocumentProfileDataSourceBindings({
134
+ activation: {
135
+ activeLayoutModeId: runtime.activeLayoutModeId,
136
+ activeProjectionId: runtime.activeProjectionId,
137
+ activeViewId: resolveActiveDocumentViewId(runtime),
138
+ routeParameters,
139
+ },
140
+ context: {
141
+ routeParameters,
142
+ queryKeyParts,
143
+ },
144
+ module,
145
+ profile: projection.profile,
146
+ registry,
147
+ roles,
148
+ }),
149
+ resourceQueryKey: createQueryKey({
150
+ dataSourceId: projection.dataSourceId,
151
+ queryKeyParts,
152
+ resourceId,
153
+ routeParameters,
154
+ }),
155
+ }
156
+ }
157
+
158
+ /** Default cache key for document workspace data sources when an app does not supply one. */
159
+ export function createDocumentWorkspaceDataSourceQueryKey({
160
+ dataSourceId,
161
+ queryKeyParts,
162
+ resourceId,
163
+ }: DocumentWorkspaceDataSourceQueryKeyContext) {
164
+ return ['document-workspace', dataSourceId, resourceId, ...queryKeyParts] as const
165
+ }
166
+
167
+ function createDocumentWorkspaceDataSourceEnabledPredicate(
168
+ resourceId: string,
169
+ isEnabled: ProjectDocumentWorkspaceDataSourceBindingsOptions['isEnabled'],
170
+ ) {
171
+ if (resourceId.length === 0) {
172
+ return () => false
173
+ }
174
+
175
+ return isEnabled
176
+ }
177
+
178
+ function resolveActiveDocumentViewId(runtime: DocumentWorkspaceDataSourceRuntimeState) {
179
+ return runtime.activeViewId && runtime.projectionViewIds.includes(runtime.activeViewId)
180
+ ? runtime.activeViewId
181
+ : (runtime.projectionViewIds[0] ?? '')
182
+ }
@@ -0,0 +1,41 @@
1
+ import type { DocumentProfileProjection } from './document-module'
2
+ import type {
3
+ PresentationModuleDefinition,
4
+ ProcessTaskSelectorDefinition,
5
+ } from './module'
6
+ import {
7
+ projectDocumentActionStatusNoticeDiagnostics,
8
+ } from './projected-document-action-status-notice-diagnostics'
9
+ import {
10
+ projectProcessTaskNoticeDiagnostics,
11
+ } from './projected-process-task-notice-diagnostics'
12
+ import type {
13
+ ProcessTaskSelector,
14
+ } from './process-task-model'
15
+
16
+ export interface ProjectDocumentWorkspaceNoticeDiagnosticsOptions<TContext> {
17
+ readonly context: TContext
18
+ readonly module: Pick<PresentationModuleDefinition, 'Actions' | 'Fields'> | null
19
+ readonly profile: Pick<
20
+ DocumentProfileProjection,
21
+ 'ActionStatusNotices' | 'ProcessTaskNotices' | 'ProcessTaskSelectors'
22
+ > | null
23
+ readonly projectSelector: (
24
+ selector: ProcessTaskSelectorDefinition | null | undefined,
25
+ context: TContext,
26
+ ) => ProcessTaskSelector | null
27
+ readonly region?: string
28
+ }
29
+
30
+ export function projectDocumentWorkspaceNoticeDiagnostics<TContext>(
31
+ options: ProjectDocumentWorkspaceNoticeDiagnosticsOptions<TContext>,
32
+ ) {
33
+ return [
34
+ ...projectDocumentActionStatusNoticeDiagnostics({
35
+ module: options.module,
36
+ profile: options.profile,
37
+ region: options.region,
38
+ }),
39
+ ...projectProcessTaskNoticeDiagnostics(options),
40
+ ]
41
+ }
@@ -0,0 +1,86 @@
1
+ import type {
2
+ ActionDefinition,
3
+ ActionPlacementDefinition,
4
+ DataSourceQueryDefinition,
5
+ InputFormDefinition,
6
+ QueryFormDefinition,
7
+ } from './module'
8
+
9
+ /**
10
+ * Caller-owned state and commands used by a projected input form.
11
+ *
12
+ * The form renderer owns generic control projection. The host owns how a placed
13
+ * action interprets the current draft value for a query, transition, process,
14
+ * endpoint request, enrichment request, or local state update.
15
+ *
16
+ * @typeParam TValue - Shape of the caller-owned form state object.
17
+ */
18
+ export interface ProjectedInputFormRuntime<TValue extends object = object> {
19
+ /** Invokes a form action against the current draft value. */
20
+ readonly invokeAction: (context: ProjectedInputFormActionContext<TValue>) => void
21
+
22
+ /** Updates the caller-owned form value, preserving React set-state semantics. */
23
+ readonly setValue: (
24
+ update: TValue | ((current: TValue) => TValue),
25
+ context?: ProjectedInputFormValueChangeContext<TValue>,
26
+ ) => void
27
+
28
+ /** Current caller-owned form value. */
29
+ readonly value: TValue
30
+ }
31
+
32
+ /**
33
+ * Target interpretation attached to the projected input form.
34
+ */
35
+ export interface ProjectedInputFormTargetContext {
36
+ /** Optional relation-query field metadata used when a query form specializes this input form. */
37
+ readonly queryDefinition?: DataSourceQueryDefinition | null
38
+
39
+ /** Optional query-form specialization over this input form. */
40
+ readonly queryForm?: QueryFormDefinition | null
41
+
42
+ /** Shared or target state id affected by the input form. */
43
+ readonly stateId: string
44
+ }
45
+
46
+ /**
47
+ * Semantic and runtime state passed to input-form action handlers.
48
+ *
49
+ * @typeParam TValue - Shape of the caller-owned form state object.
50
+ */
51
+ export interface ProjectedInputFormActionContext<TValue extends object = object> {
52
+ /** Presentation action resolved from the action placement, when available. */
53
+ readonly action: ActionDefinition | null
54
+
55
+ /** Available choice values for each input-form field id at the time of action. */
56
+ readonly choiceValuesByFieldId: Readonly<Record<string, readonly string[]>>
57
+
58
+ /** Input form that declares groups, fields, and action placements. */
59
+ readonly inputForm: InputFormDefinition
60
+
61
+ /** Action placement selected by the user. */
62
+ readonly placement: ActionPlacementDefinition
63
+
64
+ /** Target interpretation attached to this form instance. */
65
+ readonly target: ProjectedInputFormTargetContext
66
+
67
+ /** Current caller-owned form value. */
68
+ readonly value: TValue
69
+ }
70
+
71
+ /**
72
+ * Semantic context supplied when a field changes the caller-owned form value.
73
+ */
74
+ export interface ProjectedInputFormValueChangeContext<TValue extends object = object> {
75
+ /** Available choice values for each input-form field id at the time of change. */
76
+ readonly choiceValuesByFieldId: Readonly<Record<string, readonly string[]>>
77
+
78
+ /** Input form that declares groups, fields, and action placements. */
79
+ readonly inputForm: InputFormDefinition
80
+
81
+ /** Target interpretation attached to this form instance. */
82
+ readonly target: ProjectedInputFormTargetContext
83
+
84
+ /** Current caller-owned form value before the field update is applied. */
85
+ readonly value: TValue
86
+ }
@@ -0,0 +1,283 @@
1
+ import type { DocumentProfileProjection } from './document-module'
2
+ import {
3
+ findPresentationAction,
4
+ findPresentationField,
5
+ } from './module'
6
+ import type {
7
+ DocumentProcessTaskNoticeDefinition,
8
+ FieldPresentationDefinition,
9
+ PresentationModuleDefinition,
10
+ ProcessTaskSelectorDefinition,
11
+ } from './module'
12
+ import type {
13
+ PresentationProjectionDiagnostic,
14
+ } from './presentation-projection-diagnostics'
15
+ import {
16
+ projectPresentationContentDiagnostics,
17
+ } from './presentation-content-diagnostics'
18
+ import type {
19
+ ProcessTaskSelector,
20
+ } from './process-task-model'
21
+
22
+ export interface ProjectProcessTaskNoticeDiagnosticsOptions<TContext> {
23
+ readonly context: TContext
24
+ readonly module: Pick<PresentationModuleDefinition, 'Actions' | 'Fields'> | null
25
+ readonly profile: Pick<
26
+ DocumentProfileProjection,
27
+ 'ProcessTaskNotices' | 'ProcessTaskSelectors'
28
+ > | null
29
+ readonly projectSelector: (
30
+ selector: ProcessTaskSelectorDefinition | null | undefined,
31
+ context: TContext,
32
+ ) => ProcessTaskSelector | null
33
+ readonly region?: string
34
+ }
35
+
36
+ export function projectProcessTaskNoticeDiagnostics<TContext>({
37
+ context,
38
+ module,
39
+ profile,
40
+ projectSelector,
41
+ region,
42
+ }: ProjectProcessTaskNoticeDiagnosticsOptions<TContext>): readonly PresentationProjectionDiagnostic[] {
43
+ return getRegionProcessTaskNotices(profile, region).flatMap((notice) => {
44
+ const diagnostics: PresentationProjectionDiagnostic[] = [
45
+ ...projectProcessTaskNoticeContentDiagnostics(notice),
46
+ ...projectProcessTaskNoticeStatusFieldDiagnostics(module, notice),
47
+ ...projectProcessTaskNoticeActionDiagnostics(module, notice),
48
+ ]
49
+ const selectorDefinition = findProcessTaskSelectorDefinition(
50
+ profile,
51
+ notice.ProcessTaskSelectorId,
52
+ )
53
+ if (!selectorDefinition) {
54
+ diagnostics.push(
55
+ createProcessTaskNoticeDiagnostic({
56
+ message:
57
+ `Process task notice '${notice.Name}' references selector ` +
58
+ `'${notice.ProcessTaskSelectorId}', but the document profile does not define it.`,
59
+ notice,
60
+ reason: 'missing-selector',
61
+ severity: 'error',
62
+ }),
63
+ )
64
+ return diagnostics
65
+ }
66
+
67
+ const selector = projectSelector(selectorDefinition, context)
68
+ if (!selector) {
69
+ diagnostics.push(
70
+ createProcessTaskNoticeDiagnostic({
71
+ message:
72
+ `Process task notice '${notice.Name}' uses selector ` +
73
+ `'${selectorDefinition.Name}', but this frontend context cannot project it.`,
74
+ notice,
75
+ reason: 'unprojectable-selector',
76
+ severity: 'warning',
77
+ }),
78
+ )
79
+ return diagnostics
80
+ }
81
+
82
+ return diagnostics
83
+ })
84
+ }
85
+
86
+ function projectProcessTaskNoticeContentDiagnostics(
87
+ notice: DocumentProcessTaskNoticeDefinition,
88
+ ): readonly PresentationProjectionDiagnostic[] {
89
+ return projectPresentationContentDiagnostics({
90
+ content: notice.Content,
91
+ contentFallbackDescription: 'local process title and status text fallback semantics',
92
+ descriptionFallbackDescription: 'local process status text fallback semantics',
93
+ details: createProcessTaskNoticeDiagnosticDetails(notice),
94
+ diagnosticIdPrefix: `process-task-notice.${notice.Id}.content`,
95
+ requireDescription: true,
96
+ requireTitle: true,
97
+ source: 'document-workspace-notice-projection',
98
+ subject: createProcessTaskNoticeDiagnosticSubject(notice),
99
+ surfaceLabel: `Process task notice '${notice.Name}'`,
100
+ titleFallbackDescription: 'the local process task title',
101
+ })
102
+ }
103
+
104
+ function projectProcessTaskNoticeActionDiagnostics(
105
+ module: Pick<PresentationModuleDefinition, 'Actions'> | null,
106
+ notice: DocumentProcessTaskNoticeDefinition,
107
+ ): readonly PresentationProjectionDiagnostic[] {
108
+ if (notice.Actions.length === 0) {
109
+ return [
110
+ createProcessTaskNoticeDiagnostic({
111
+ message:
112
+ `Process task notice '${notice.Name}' does not declare actions; ` +
113
+ 'the frontend will use local process detail navigation fallback semantics.',
114
+ notice,
115
+ reason: 'missing-actions',
116
+ severity: 'warning',
117
+ }),
118
+ ]
119
+ }
120
+
121
+ return notice.Actions.flatMap((action) => {
122
+ const diagnostics: PresentationProjectionDiagnostic[] = []
123
+
124
+ if (!findPresentationAction(module, action.Placement.ActionId)) {
125
+ diagnostics.push(
126
+ createProcessTaskNoticeDiagnostic({
127
+ message:
128
+ `Process task notice '${notice.Name}' references action ` +
129
+ `'${action.Placement.ActionId}', but the presentation module does not define it.`,
130
+ notice,
131
+ reason: `missing-action.${action.Placement.ActionId}`,
132
+ severity: 'warning',
133
+ }),
134
+ )
135
+ }
136
+
137
+ if (!action.Placement.Icon) {
138
+ diagnostics.push(
139
+ createProcessTaskNoticeDiagnostic({
140
+ message:
141
+ `Process task notice '${notice.Name}' action '${action.Placement.ActionId}' ` +
142
+ 'does not declare an icon.',
143
+ notice,
144
+ reason: `missing-action-icon.${action.Placement.ActionId}`,
145
+ severity: 'warning',
146
+ }),
147
+ )
148
+ }
149
+
150
+ if (action.TargetPreference.length === 0) {
151
+ diagnostics.push(
152
+ createProcessTaskNoticeDiagnostic({
153
+ message:
154
+ `Process task notice '${notice.Name}' action '${action.Placement.ActionId}' ` +
155
+ 'does not declare process-task link target preferences.',
156
+ notice,
157
+ reason: `missing-action-targets.${action.Placement.ActionId}`,
158
+ severity: 'warning',
159
+ }),
160
+ )
161
+ }
162
+
163
+ return diagnostics
164
+ })
165
+ }
166
+
167
+ function projectProcessTaskNoticeStatusFieldDiagnostics(
168
+ module: Pick<PresentationModuleDefinition, 'Fields'> | null,
169
+ notice: DocumentProcessTaskNoticeDefinition,
170
+ ): readonly PresentationProjectionDiagnostic[] {
171
+ if (!notice.StatusFieldId) {
172
+ return [
173
+ createProcessTaskNoticeDiagnostic({
174
+ message:
175
+ `Process task notice '${notice.Name}' does not declare a status field; ` +
176
+ 'the frontend will use local process status icon and tone fallback semantics.',
177
+ notice,
178
+ reason: 'missing-status-field',
179
+ severity: 'warning',
180
+ }),
181
+ ]
182
+ }
183
+
184
+ const field = findPresentationField<FieldPresentationDefinition>(module, notice.StatusFieldId)
185
+ if (!field) {
186
+ return [
187
+ createProcessTaskNoticeDiagnostic({
188
+ message:
189
+ `Process task notice '${notice.Name}' references status field ` +
190
+ `'${notice.StatusFieldId}', but the presentation module does not define it.`,
191
+ notice,
192
+ reason: 'missing-status-field-definition',
193
+ severity: 'warning',
194
+ }),
195
+ ]
196
+ }
197
+
198
+ const diagnostics: PresentationProjectionDiagnostic[] = []
199
+
200
+ if ((field.Display?.ValueIcons?.length ?? 0) === 0) {
201
+ diagnostics.push(
202
+ createProcessTaskNoticeDiagnostic({
203
+ message:
204
+ `Process task notice '${notice.Name}' uses status field '${notice.StatusFieldId}', ` +
205
+ 'but that field does not declare value icons; the frontend will use local fallback semantics.',
206
+ notice,
207
+ reason: 'status-field-without-value-icons',
208
+ severity: 'warning',
209
+ }),
210
+ )
211
+ }
212
+
213
+ if ((field.Display?.ValueTones?.length ?? 0) === 0) {
214
+ diagnostics.push(
215
+ createProcessTaskNoticeDiagnostic({
216
+ message:
217
+ `Process task notice '${notice.Name}' uses status field '${notice.StatusFieldId}', ` +
218
+ 'but that field does not declare value tones; the frontend will use local fallback semantics.',
219
+ notice,
220
+ reason: 'status-field-without-value-tones',
221
+ severity: 'warning',
222
+ }),
223
+ )
224
+ }
225
+
226
+ return diagnostics
227
+ }
228
+
229
+ function getRegionProcessTaskNotices(
230
+ profile: Pick<DocumentProfileProjection, 'ProcessTaskNotices'> | null,
231
+ region?: string,
232
+ ) {
233
+ return profile?.ProcessTaskNotices?.filter((notice) => !region || notice.Region === region) ?? []
234
+ }
235
+
236
+ function findProcessTaskSelectorDefinition(
237
+ profile: Pick<DocumentProfileProjection, 'ProcessTaskSelectors'> | null,
238
+ selectorId: string,
239
+ ) {
240
+ return profile?.ProcessTaskSelectors?.find((selector) => selector.Id === selectorId) ?? null
241
+ }
242
+
243
+ function createProcessTaskNoticeDiagnostic({
244
+ message,
245
+ notice,
246
+ reason,
247
+ severity,
248
+ }: {
249
+ readonly message: string
250
+ readonly notice: DocumentProcessTaskNoticeDefinition
251
+ readonly reason: string
252
+ readonly severity: PresentationProjectionDiagnostic['severity']
253
+ }): PresentationProjectionDiagnostic {
254
+ return {
255
+ details: createProcessTaskNoticeDiagnosticDetails(notice),
256
+ id: `process-task-notice.${notice.Id}.${reason}`,
257
+ message,
258
+ severity,
259
+ source: 'document-workspace-notice-projection',
260
+ subject: createProcessTaskNoticeDiagnosticSubject(notice),
261
+ }
262
+ }
263
+
264
+ function createProcessTaskNoticeDiagnosticDetails(
265
+ notice: DocumentProcessTaskNoticeDefinition,
266
+ ) {
267
+ return {
268
+ noticeId: notice.Id,
269
+ processTaskSelectorId: notice.ProcessTaskSelectorId,
270
+ region: notice.Region,
271
+ statusFieldId: notice.StatusFieldId,
272
+ }
273
+ }
274
+
275
+ function createProcessTaskNoticeDiagnosticSubject(
276
+ notice: DocumentProcessTaskNoticeDefinition,
277
+ ) {
278
+ return {
279
+ id: notice.Id,
280
+ kind: 'document-process-task-notice',
281
+ name: notice.Name,
282
+ }
283
+ }
@@ -0,0 +1,62 @@
1
+ import type {
2
+ InputFormDefinition,
3
+ QueryFormDefinition,
4
+ } from './module'
5
+
6
+ /**
7
+ * Caller-owned state and commands used by a projected relation-query form.
8
+ *
9
+ * Query forms specialize generic input-form projection while preserving a
10
+ * compact apply/reset contract for hosts that own query state.
11
+ *
12
+ * @typeParam TValue - Shape of the caller-owned query state object.
13
+ */
14
+ export interface ProjectedQueryFormRuntime<TValue extends object = object> {
15
+ /** Applies the current form value to the host query or data-source layer. */
16
+ readonly apply: (context: ProjectedQueryFormActionContext<TValue>) => void
17
+
18
+ /** Resets the caller-owned form value according to host policy. */
19
+ readonly reset: (context: ProjectedQueryFormActionContext<TValue>) => void
20
+
21
+ /** Updates the caller-owned form value, preserving React set-state semantics. */
22
+ readonly setValue: (
23
+ update: TValue | ((current: TValue) => TValue),
24
+ context?: ProjectedQueryFormValueChangeContext<TValue>,
25
+ ) => void
26
+
27
+ /** Current caller-owned form value. */
28
+ readonly value: TValue
29
+ }
30
+
31
+ /**
32
+ * Semantic and runtime state passed to apply/reset handlers for a projected
33
+ * query form.
34
+ *
35
+ * @typeParam TValue - Shape of the caller-owned query state object.
36
+ */
37
+ export interface ProjectedQueryFormActionContext<TValue extends object = object> {
38
+ /** Available choice values for each input-form field id at the time of action. */
39
+ readonly choiceValuesByFieldId: Readonly<Record<string, readonly string[]>>
40
+
41
+ /** Input form that declares groups, fields, and action placements. */
42
+ readonly inputForm: InputFormDefinition
43
+
44
+ /** Query-form binding that connects the input form to a state target. */
45
+ readonly queryForm: QueryFormDefinition
46
+
47
+ /** Shared or target state id affected by the query form. */
48
+ readonly stateId: string
49
+
50
+ /** Current caller-owned form value. */
51
+ readonly value: TValue
52
+ }
53
+
54
+ /**
55
+ * Semantic context supplied when a query-form field changes the draft value.
56
+ *
57
+ * Hosts use this to interpret the query form's execution policy, for example
58
+ * applying live query forms as field values change while leaving manual query
59
+ * forms in draft state until an action is invoked.
60
+ */
61
+ export type ProjectedQueryFormValueChangeContext<TValue extends object = object> =
62
+ ProjectedQueryFormActionContext<TValue>