@wildo-ai/saas-frontend-lib 1.1.9 → 1.1.11

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 (1566) hide show
  1. package/dist/esm/companion-exports.d.ts +2 -1
  2. package/dist/esm/companion-exports.d.ts.map +1 -1
  3. package/dist/esm/companion-exports.js +2 -1
  4. package/dist/esm/companion-exports.js.map +1 -1
  5. package/dist/esm/components/actions/action-bar.d.ts +45 -1
  6. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  7. package/dist/esm/components/actions/action-bar.js +84 -0
  8. package/dist/esm/components/actions/action-bar.js.map +1 -1
  9. package/dist/esm/components/actions/button.d.ts +22 -0
  10. package/dist/esm/components/actions/button.d.ts.map +1 -1
  11. package/dist/esm/components/actions/button.js +45 -0
  12. package/dist/esm/components/actions/button.js.map +1 -1
  13. package/dist/esm/components/ai-elements/chat/conversation-thread.d.ts +109 -0
  14. package/dist/esm/components/ai-elements/chat/conversation-thread.d.ts.map +1 -0
  15. package/dist/esm/components/ai-elements/chat/conversation-thread.js +22 -0
  16. package/dist/esm/components/ai-elements/chat/conversation-thread.js.map +1 -0
  17. package/dist/esm/components/ai-elements/decision/approval.d.ts +103 -7
  18. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  19. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  20. package/dist/esm/components/ai-elements/execution/tool.d.ts +6 -0
  21. package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
  22. package/dist/esm/components/ai-elements/execution/tool.js.map +1 -1
  23. package/dist/esm/components/ai-elements/graph/canvas.d.ts +60 -1
  24. package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
  25. package/dist/esm/components/ai-elements/graph/canvas.js +26 -0
  26. package/dist/esm/components/ai-elements/graph/canvas.js.map +1 -1
  27. package/dist/esm/components/ai-elements/graph/node.d.ts +39 -4
  28. package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
  29. package/dist/esm/components/ai-elements/graph/node.js +18 -0
  30. package/dist/esm/components/ai-elements/graph/node.js.map +1 -1
  31. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts +6 -0
  32. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
  33. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +29 -8
  34. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
  35. package/dist/esm/components/app/AppLayout_DecisionInbox.d.ts +17 -0
  36. package/dist/esm/components/app/AppLayout_DecisionInbox.d.ts.map +1 -0
  37. package/dist/esm/components/app/AppLayout_DecisionInbox.js +24 -0
  38. package/dist/esm/components/app/AppLayout_DecisionInbox.js.map +1 -0
  39. package/dist/esm/components/app/AppLayout_MainContainer.d.ts.map +1 -1
  40. package/dist/esm/components/app/AppLayout_MainContainer.js +3 -0
  41. package/dist/esm/components/app/AppLayout_MainContainer.js.map +1 -1
  42. package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts +18 -0
  43. package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts.map +1 -0
  44. package/dist/esm/components/app/PublicLayout_LegalNotice.js +8 -0
  45. package/dist/esm/components/app/PublicLayout_LegalNotice.js.map +1 -0
  46. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts +3 -0
  47. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts.map +1 -0
  48. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js +38 -0
  49. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js.map +1 -0
  50. package/dist/esm/components/auth/Auth_ChatIdentityLink.d.ts +15 -0
  51. package/dist/esm/components/auth/Auth_ChatIdentityLink.d.ts.map +1 -0
  52. package/dist/esm/components/auth/Auth_ChatIdentityLink.js +219 -0
  53. package/dist/esm/components/auth/Auth_ChatIdentityLink.js.map +1 -0
  54. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.d.ts +3 -0
  55. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.d.ts.map +1 -0
  56. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.js +49 -0
  57. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.js.map +1 -0
  58. package/dist/esm/components/auth/Auth_Invitation.d.ts.map +1 -1
  59. package/dist/esm/components/auth/Auth_Invitation.js +3 -2
  60. package/dist/esm/components/auth/Auth_Invitation.js.map +1 -1
  61. package/dist/esm/components/auth/Auth_Invitation.labels.js +2 -2
  62. package/dist/esm/components/auth/Auth_Invitation.labels.js.map +1 -1
  63. package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
  64. package/dist/esm/components/auth/Auth_Main.js +40 -7
  65. package/dist/esm/components/auth/Auth_Main.js.map +1 -1
  66. package/dist/esm/components/auth/Auth_Main.labels.d.ts.map +1 -1
  67. package/dist/esm/components/auth/Auth_Main.labels.js +9 -0
  68. package/dist/esm/components/auth/Auth_Main.labels.js.map +1 -1
  69. package/dist/esm/components/auth/Auth_OAuthConsent.d.ts.map +1 -1
  70. package/dist/esm/components/auth/Auth_OAuthConsent.js +3 -2
  71. package/dist/esm/components/auth/Auth_OAuthConsent.js.map +1 -1
  72. package/dist/esm/components/auth/Auth_PasswordLost.labels.js +2 -2
  73. package/dist/esm/components/auth/Auth_PasswordLost.labels.js.map +1 -1
  74. package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
  75. package/dist/esm/components/auth/Auth_Register.js +8 -1
  76. package/dist/esm/components/auth/Auth_Register.js.map +1 -1
  77. package/dist/esm/components/auth/Auth_Register.labels.js +2 -2
  78. package/dist/esm/components/auth/Auth_Register.labels.js.map +1 -1
  79. package/dist/esm/components/auth/StepUpAuthDialog.d.ts +1 -1
  80. package/dist/esm/components/auth/StepUpAuthDialog.js +3 -3
  81. package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
  82. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
  83. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js +94 -6
  84. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
  85. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
  86. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js +21 -1
  87. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
  88. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.d.ts.map +1 -1
  89. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js +16 -13
  90. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js.map +1 -1
  91. package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js +3 -3
  92. package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js.map +1 -1
  93. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.d.ts.map +1 -1
  94. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js +1 -1
  95. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js.map +1 -1
  96. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts +1 -1
  97. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts.map +1 -1
  98. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js +3 -4
  99. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js.map +1 -1
  100. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.d.ts +11 -0
  101. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.d.ts.map +1 -0
  102. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.js +25 -0
  103. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.js.map +1 -0
  104. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.d.ts +39 -0
  105. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.d.ts.map +1 -0
  106. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.js +45 -0
  107. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.js.map +1 -0
  108. package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js +1 -1
  109. package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js.map +1 -1
  110. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.d.ts.map +1 -1
  111. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js +2 -1
  112. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js.map +1 -1
  113. package/dist/esm/components/data-display/AutomaticDisplayer.d.ts.map +1 -1
  114. package/dist/esm/components/data-display/AutomaticDisplayer.js +21 -35
  115. package/dist/esm/components/data-display/AutomaticDisplayer.js.map +1 -1
  116. package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
  117. package/dist/esm/components/data-display/DisplayField.js +98 -70
  118. package/dist/esm/components/data-display/DisplayField.js.map +1 -1
  119. package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
  120. package/dist/esm/components/data-display/DisplayFieldEditable.js +48 -8
  121. package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
  122. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +3 -1
  123. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
  124. package/dist/esm/components/data-display/DisplayFieldEditableArray.js +30 -4
  125. package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
  126. package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
  127. package/dist/esm/components/data-display/DisplayFieldReadOnly.js +2 -2
  128. package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
  129. package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts +1 -1
  130. package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
  131. package/dist/esm/components/data-display/DisplayValueDispatcher.js +45 -94
  132. package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
  133. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
  134. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js +14 -8
  135. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
  136. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +41 -3
  137. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
  138. package/dist/esm/components/data-display/ResourceSummaryDisplayer.js +49 -5
  139. package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
  140. package/dist/esm/components/data-display/SummaryContext.d.ts +2 -2
  141. package/dist/esm/components/data-display/SummaryContext.js.map +1 -1
  142. package/dist/esm/components/data-display/automatic-displayer.utils.d.ts +22 -1
  143. package/dist/esm/components/data-display/automatic-displayer.utils.d.ts.map +1 -1
  144. package/dist/esm/components/data-display/automatic-displayer.utils.js +29 -0
  145. package/dist/esm/components/data-display/automatic-displayer.utils.js.map +1 -1
  146. package/dist/esm/components/data-display/badge.d.ts +9 -0
  147. package/dist/esm/components/data-display/badge.d.ts.map +1 -1
  148. package/dist/esm/components/data-display/badge.js.map +1 -1
  149. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +14 -2
  150. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
  151. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +42 -12
  152. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
  153. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.d.ts +10 -0
  154. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.d.ts.map +1 -0
  155. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.js +18 -0
  156. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.js.map +1 -0
  157. package/dist/esm/components/data-display/chromes/field-tile-boundaries.d.ts +38 -0
  158. package/dist/esm/components/data-display/chromes/field-tile-boundaries.d.ts.map +1 -0
  159. package/dist/esm/components/data-display/chromes/field-tile-boundaries.js +30 -0
  160. package/dist/esm/components/data-display/chromes/field-tile-boundaries.js.map +1 -0
  161. package/dist/esm/components/data-display/chromes/field-tiles.utils.d.ts +22 -0
  162. package/dist/esm/components/data-display/chromes/field-tiles.utils.d.ts.map +1 -0
  163. package/dist/esm/components/data-display/chromes/field-tiles.utils.js +52 -0
  164. package/dist/esm/components/data-display/chromes/field-tiles.utils.js.map +1 -0
  165. package/dist/esm/components/data-display/display-field-resolved-props.d.ts +4 -0
  166. package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
  167. package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
  168. package/dist/esm/components/data-display/display-layout-template.utils.d.ts +18 -0
  169. package/dist/esm/components/data-display/display-layout-template.utils.d.ts.map +1 -0
  170. package/dist/esm/components/data-display/display-layout-template.utils.js +18 -0
  171. package/dist/esm/components/data-display/display-layout-template.utils.js.map +1 -0
  172. package/dist/esm/components/data-display/display-value-emptiness.utils.d.ts +44 -0
  173. package/dist/esm/components/data-display/display-value-emptiness.utils.d.ts.map +1 -0
  174. package/dist/esm/components/data-display/display-value-emptiness.utils.js +61 -0
  175. package/dist/esm/components/data-display/display-value-emptiness.utils.js.map +1 -0
  176. package/dist/esm/components/data-display/empty-value-mark.d.ts +31 -0
  177. package/dist/esm/components/data-display/empty-value-mark.d.ts.map +1 -0
  178. package/dist/esm/components/data-display/empty-value-mark.js +49 -0
  179. package/dist/esm/components/data-display/empty-value-mark.js.map +1 -0
  180. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +3 -2
  181. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -1
  182. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +4 -4
  183. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -1
  184. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +6 -3
  185. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -1
  186. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +22 -12
  187. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -1
  188. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +2 -2
  189. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -1
  190. package/dist/esm/components/data-display/reference-display-target.d.ts +98 -0
  191. package/dist/esm/components/data-display/reference-display-target.d.ts.map +1 -0
  192. package/dist/esm/components/data-display/reference-display-target.js +154 -0
  193. package/dist/esm/components/data-display/reference-display-target.js.map +1 -0
  194. package/dist/esm/components/data-display/summary-value-naming.context.d.ts +15 -0
  195. package/dist/esm/components/data-display/summary-value-naming.context.d.ts.map +1 -0
  196. package/dist/esm/components/data-display/summary-value-naming.context.js +18 -0
  197. package/dist/esm/components/data-display/summary-value-naming.context.js.map +1 -0
  198. package/dist/esm/components/data-display/tone-marker.d.ts +38 -0
  199. package/dist/esm/components/data-display/tone-marker.d.ts.map +1 -0
  200. package/dist/esm/components/data-display/tone-marker.js +56 -0
  201. package/dist/esm/components/data-display/tone-marker.js.map +1 -0
  202. package/dist/esm/components/data-display/useFileActivation.d.ts.map +1 -1
  203. package/dist/esm/components/data-display/useFileActivation.js +2 -9
  204. package/dist/esm/components/data-display/useFileActivation.js.map +1 -1
  205. package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
  206. package/dist/esm/components/feedback/features/feature-limit-indicator.js +12 -4
  207. package/dist/esm/components/feedback/features/feature-limit-indicator.js.map +1 -1
  208. package/dist/esm/components/feedback/operations-confirm-critical.d.ts +8 -0
  209. package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
  210. package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
  211. package/dist/esm/components/files/Files_UploadGrantDrop.d.ts +0 -5
  212. package/dist/esm/components/files/Files_UploadGrantDrop.d.ts.map +1 -1
  213. package/dist/esm/components/files/Files_UploadGrantDrop.js +5 -17
  214. package/dist/esm/components/files/Files_UploadGrantDrop.js.map +1 -1
  215. package/dist/esm/components/flows-actors/actor.d.ts +21 -4
  216. package/dist/esm/components/flows-actors/actor.d.ts.map +1 -1
  217. package/dist/esm/components/flows-actors/actor.js +114 -192
  218. package/dist/esm/components/flows-actors/actor.js.map +1 -1
  219. package/dist/esm/components/flows-actors/actor.labels.d.ts.map +1 -1
  220. package/dist/esm/components/flows-actors/actor.labels.js +5 -10
  221. package/dist/esm/components/flows-actors/actor.labels.js.map +1 -1
  222. package/dist/esm/components/flows-actors/agent-config.labels.js +1 -1
  223. package/dist/esm/components/flows-actors/agent-config.labels.js.map +1 -1
  224. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.d.ts.map +1 -1
  225. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js +1 -0
  226. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js.map +1 -1
  227. package/dist/esm/components/flows-actors/approval.d.ts +26 -16
  228. package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
  229. package/dist/esm/components/flows-actors/approval.js +208 -70
  230. package/dist/esm/components/flows-actors/approval.js.map +1 -1
  231. package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
  232. package/dist/esm/components/flows-actors/approval.labels.js +67 -22
  233. package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
  234. package/dist/esm/components/flows-actors/artifact-browser.labels.js +1 -1
  235. package/dist/esm/components/flows-actors/artifact-browser.labels.js.map +1 -1
  236. package/dist/esm/components/flows-actors/execution-plan.d.ts +19 -7
  237. package/dist/esm/components/flows-actors/execution-plan.d.ts.map +1 -1
  238. package/dist/esm/components/flows-actors/execution-plan.js +55 -41
  239. package/dist/esm/components/flows-actors/execution-plan.js.map +1 -1
  240. package/dist/esm/components/flows-actors/execution-plan.labels.d.ts.map +1 -1
  241. package/dist/esm/components/flows-actors/execution-plan.labels.js +25 -8
  242. package/dist/esm/components/flows-actors/execution-plan.labels.js.map +1 -1
  243. package/dist/esm/components/flows-actors/execution-usage.d.ts +69 -0
  244. package/dist/esm/components/flows-actors/execution-usage.d.ts.map +1 -0
  245. package/dist/esm/components/flows-actors/execution-usage.js +189 -0
  246. package/dist/esm/components/flows-actors/execution-usage.js.map +1 -0
  247. package/dist/esm/components/flows-actors/execution-usage.labels.d.ts +3 -0
  248. package/dist/esm/components/flows-actors/execution-usage.labels.d.ts.map +1 -0
  249. package/dist/esm/components/flows-actors/execution-usage.labels.js +27 -0
  250. package/dist/esm/components/flows-actors/execution-usage.labels.js.map +1 -0
  251. package/dist/esm/components/flows-actors/flow-execution.d.ts +23 -6
  252. package/dist/esm/components/flows-actors/flow-execution.d.ts.map +1 -1
  253. package/dist/esm/components/flows-actors/flow-execution.js +56 -208
  254. package/dist/esm/components/flows-actors/flow-execution.js.map +1 -1
  255. package/dist/esm/components/flows-actors/flow-execution.labels.d.ts.map +1 -1
  256. package/dist/esm/components/flows-actors/flow-execution.labels.js +3 -10
  257. package/dist/esm/components/flows-actors/flow-execution.labels.js.map +1 -1
  258. package/dist/esm/components/flows-actors/flow-node-badges.d.ts +54 -21
  259. package/dist/esm/components/flows-actors/flow-node-badges.d.ts.map +1 -1
  260. package/dist/esm/components/flows-actors/flow-node-badges.js +80 -6
  261. package/dist/esm/components/flows-actors/flow-node-badges.js.map +1 -1
  262. package/dist/esm/components/flows-actors/flow-node.labels.d.ts.map +1 -1
  263. package/dist/esm/components/flows-actors/flow-node.labels.js +0 -8
  264. package/dist/esm/components/flows-actors/flow-node.labels.js.map +1 -1
  265. package/dist/esm/components/flows-actors/flow-step-visuals.d.ts +31 -0
  266. package/dist/esm/components/flows-actors/flow-step-visuals.d.ts.map +1 -0
  267. package/dist/esm/components/flows-actors/flow-step-visuals.js +98 -0
  268. package/dist/esm/components/flows-actors/flow-step-visuals.js.map +1 -0
  269. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts +18 -19
  270. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts.map +1 -1
  271. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js +18 -19
  272. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js.map +1 -1
  273. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts +27 -42
  274. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts.map +1 -1
  275. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js +28 -43
  276. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js.map +1 -1
  277. package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts +15 -10
  278. package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts.map +1 -1
  279. package/dist/esm/components/flows-actors/flows-actors-ui.utils.js +16 -42
  280. package/dist/esm/components/flows-actors/flows-actors-ui.utils.js.map +1 -1
  281. package/dist/esm/components/flows-actors/graph-viewer.d.ts +112 -0
  282. package/dist/esm/components/flows-actors/graph-viewer.d.ts.map +1 -0
  283. package/dist/esm/components/flows-actors/graph-viewer.js +431 -0
  284. package/dist/esm/components/flows-actors/graph-viewer.js.map +1 -0
  285. package/dist/esm/components/flows-actors/graph-viewer.labels.d.ts +3 -0
  286. package/dist/esm/components/flows-actors/graph-viewer.labels.d.ts.map +1 -0
  287. package/dist/esm/components/flows-actors/graph-viewer.labels.js +67 -0
  288. package/dist/esm/components/flows-actors/graph-viewer.labels.js.map +1 -0
  289. package/dist/esm/components/flows-actors/graph-viewer.models.d.ts +16 -0
  290. package/dist/esm/components/flows-actors/graph-viewer.models.d.ts.map +1 -0
  291. package/dist/esm/components/flows-actors/graph-viewer.models.js +18 -0
  292. package/dist/esm/components/flows-actors/graph-viewer.models.js.map +1 -0
  293. package/dist/esm/components/flows-actors/human-decision-form.d.ts +57 -0
  294. package/dist/esm/components/flows-actors/human-decision-form.d.ts.map +1 -0
  295. package/dist/esm/components/flows-actors/human-decision-form.js +128 -0
  296. package/dist/esm/components/flows-actors/human-decision-form.js.map +1 -0
  297. package/dist/esm/components/flows-actors/system-catalog.d.ts +6 -1
  298. package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
  299. package/dist/esm/components/flows-actors/system-catalog.js +22 -20
  300. package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
  301. package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
  302. package/dist/esm/components/flows-actors/system-catalog.labels.js +3 -2
  303. package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
  304. package/dist/esm/components/flows-actors/task-detail.d.ts +17 -3
  305. package/dist/esm/components/flows-actors/task-detail.d.ts.map +1 -1
  306. package/dist/esm/components/flows-actors/task-detail.js +32 -25
  307. package/dist/esm/components/flows-actors/task-detail.js.map +1 -1
  308. package/dist/esm/components/flows-actors/task-memory.d.ts.map +1 -1
  309. package/dist/esm/components/flows-actors/task-memory.js +3 -2
  310. package/dist/esm/components/flows-actors/task-memory.js.map +1 -1
  311. package/dist/esm/components/form/Form.d.ts +2 -0
  312. package/dist/esm/components/form/Form.d.ts.map +1 -1
  313. package/dist/esm/components/form/Form.js +4 -0
  314. package/dist/esm/components/form/Form.js.map +1 -1
  315. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +16 -1
  316. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
  317. package/dist/esm/components/form/automated/AutomatedArrayField.js +101 -21
  318. package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
  319. package/dist/esm/components/form/automated/AutomatedForm.d.ts +19 -2
  320. package/dist/esm/components/form/automated/AutomatedForm.d.ts.map +1 -1
  321. package/dist/esm/components/form/automated/AutomatedForm.js +40 -6
  322. package/dist/esm/components/form/automated/AutomatedForm.js.map +1 -1
  323. package/dist/esm/components/form/automated/AutosaveContext.d.ts +22 -1
  324. package/dist/esm/components/form/automated/AutosaveContext.d.ts.map +1 -1
  325. package/dist/esm/components/form/automated/AutosaveContext.js +53 -0
  326. package/dist/esm/components/form/automated/AutosaveContext.js.map +1 -1
  327. package/dist/esm/components/form/automated/FormField.d.ts +1 -1
  328. package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
  329. package/dist/esm/components/form/automated/FormField.js +127 -53
  330. package/dist/esm/components/form/automated/FormField.js.map +1 -1
  331. package/dist/esm/components/form/automated/FormFieldComposite.d.ts.map +1 -1
  332. package/dist/esm/components/form/automated/FormFieldComposite.js +12 -10
  333. package/dist/esm/components/form/automated/FormFieldComposite.js.map +1 -1
  334. package/dist/esm/components/form/automated/FormFieldRecord.d.ts.map +1 -1
  335. package/dist/esm/components/form/automated/FormFieldRecord.js +16 -7
  336. package/dist/esm/components/form/automated/FormFieldRecord.js.map +1 -1
  337. package/dist/esm/components/form/automated/FormTemplateContext.d.ts +27 -0
  338. package/dist/esm/components/form/automated/FormTemplateContext.d.ts.map +1 -1
  339. package/dist/esm/components/form/automated/FormTemplateContext.js +0 -48
  340. package/dist/esm/components/form/automated/FormTemplateContext.js.map +1 -1
  341. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +4 -3
  342. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
  343. package/dist/esm/components/form/automated/ResourceAutomatedForm.js +616 -149
  344. package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
  345. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +105 -5
  346. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
  347. package/dist/esm/components/form/automated/automated-form-submit.utils.js +225 -6
  348. package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
  349. package/dist/esm/components/form/automated/bulk-field-clear-context.d.ts +59 -0
  350. package/dist/esm/components/form/automated/bulk-field-clear-context.d.ts.map +1 -0
  351. package/dist/esm/components/form/automated/bulk-field-clear-context.js +77 -0
  352. package/dist/esm/components/form/automated/bulk-field-clear-context.js.map +1 -0
  353. package/dist/esm/components/form/automated/generated-relationship-field.hooks.d.ts +1 -1
  354. package/dist/esm/components/form/automated/unplaced-request-fields.context.d.ts +19 -0
  355. package/dist/esm/components/form/automated/unplaced-request-fields.context.d.ts.map +1 -0
  356. package/dist/esm/components/form/automated/unplaced-request-fields.context.js +13 -0
  357. package/dist/esm/components/form/automated/unplaced-request-fields.context.js.map +1 -0
  358. package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts +7 -0
  359. package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts.map +1 -1
  360. package/dist/esm/components/form/automated/useArrayItemAutosaveField.js +10 -2
  361. package/dist/esm/components/form/automated/useArrayItemAutosaveField.js.map +1 -1
  362. package/dist/esm/components/form/automated/useReferenceRecordLabels.d.ts +16 -0
  363. package/dist/esm/components/form/automated/useReferenceRecordLabels.d.ts.map +1 -0
  364. package/dist/esm/components/form/automated/useReferenceRecordLabels.js +66 -0
  365. package/dist/esm/components/form/automated/useReferenceRecordLabels.js.map +1 -0
  366. package/dist/esm/components/form/automated/useRequestFieldOffer.d.ts +18 -0
  367. package/dist/esm/components/form/automated/useRequestFieldOffer.d.ts.map +1 -0
  368. package/dist/esm/components/form/automated/useRequestFieldOffer.js +107 -0
  369. package/dist/esm/components/form/automated/useRequestFieldOffer.js.map +1 -0
  370. package/dist/esm/components/form/chromes/FormFieldChrome.d.ts +7 -1
  371. package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
  372. package/dist/esm/components/form/chromes/FormFieldChrome.js +6 -3
  373. package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
  374. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts +11 -0
  375. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
  376. package/dist/esm/components/form/controls/date-time/date-range-picker.js.map +1 -1
  377. package/dist/esm/components/form/controls/date-time/datepicker.d.ts +21 -0
  378. package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
  379. package/dist/esm/components/form/controls/date-time/datepicker.js.map +1 -1
  380. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts +9 -0
  381. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
  382. package/dist/esm/components/form/controls/date-time/datetime-picker.js.map +1 -1
  383. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts +9 -0
  384. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
  385. package/dist/esm/components/form/controls/date-time/datetime-range-picker.js.map +1 -1
  386. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts +1 -0
  387. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
  388. package/dist/esm/components/form/controls/date-time/time-range-picker.js.map +1 -1
  389. package/dist/esm/components/form/controls/enum/radio.d.ts +10 -0
  390. package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
  391. package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
  392. package/dist/esm/components/form/controls/enum/toggle-group.d.ts +14 -10
  393. package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
  394. package/dist/esm/components/form/controls/enum/toggle-group.js +14 -6
  395. package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
  396. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
  397. package/dist/esm/components/form/controls/form-field-checkbox-group.js +7 -3
  398. package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
  399. package/dist/esm/components/form/controls/string/chips-input.d.ts +65 -0
  400. package/dist/esm/components/form/controls/string/chips-input.d.ts.map +1 -0
  401. package/dist/esm/components/form/controls/string/chips-input.js +9 -0
  402. package/dist/esm/components/form/controls/string/chips-input.js.map +1 -0
  403. package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
  404. package/dist/esm/components/form/fields/form-field-address.js +7 -5
  405. package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
  406. package/dist/esm/components/form/fields/form-field-address.labels.js +1 -1
  407. package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
  408. package/dist/esm/components/form/fields/form-field-bigdecimal.js +2 -2
  409. package/dist/esm/components/form/fields/form-field-bigdecimal.js.map +1 -1
  410. package/dist/esm/components/form/fields/form-field-boolean.js +2 -2
  411. package/dist/esm/components/form/fields/form-field-boolean.js.map +1 -1
  412. package/dist/esm/components/form/fields/form-field-code.labels.js +1 -1
  413. package/dist/esm/components/form/fields/form-field-code.labels.js.map +1 -1
  414. package/dist/esm/components/form/fields/form-field-date.d.ts.map +1 -1
  415. package/dist/esm/components/form/fields/form-field-date.js +16 -11
  416. package/dist/esm/components/form/fields/form-field-date.js.map +1 -1
  417. package/dist/esm/components/form/fields/form-field-datetime.d.ts.map +1 -1
  418. package/dist/esm/components/form/fields/form-field-datetime.js +10 -5
  419. package/dist/esm/components/form/fields/form-field-datetime.js.map +1 -1
  420. package/dist/esm/components/form/fields/form-field-duration.d.ts.map +1 -1
  421. package/dist/esm/components/form/fields/form-field-duration.js +5 -7
  422. package/dist/esm/components/form/fields/form-field-duration.js.map +1 -1
  423. package/dist/esm/components/form/fields/form-field-duration.labels.d.ts.map +1 -1
  424. package/dist/esm/components/form/fields/form-field-duration.labels.js +8 -2
  425. package/dist/esm/components/form/fields/form-field-duration.labels.js.map +1 -1
  426. package/dist/esm/components/form/fields/form-field-enum.d.ts.map +1 -1
  427. package/dist/esm/components/form/fields/form-field-enum.js +31 -31
  428. package/dist/esm/components/form/fields/form-field-enum.js.map +1 -1
  429. package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
  430. package/dist/esm/components/form/fields/form-field-file.js +13 -12
  431. package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
  432. package/dist/esm/components/form/fields/form-field-file.labels.js +6 -6
  433. package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
  434. package/dist/esm/components/form/fields/form-field-money.d.ts.map +1 -1
  435. package/dist/esm/components/form/fields/form-field-money.js +5 -4
  436. package/dist/esm/components/form/fields/form-field-money.js.map +1 -1
  437. package/dist/esm/components/form/fields/form-field-money.labels.d.ts.map +1 -1
  438. package/dist/esm/components/form/fields/form-field-money.labels.js +8 -2
  439. package/dist/esm/components/form/fields/form-field-money.labels.js.map +1 -1
  440. package/dist/esm/components/form/fields/form-field-number.js +2 -2
  441. package/dist/esm/components/form/fields/form-field-number.js.map +1 -1
  442. package/dist/esm/components/form/fields/form-field-range-bigdecimal.js +2 -2
  443. package/dist/esm/components/form/fields/form-field-range-bigdecimal.js.map +1 -1
  444. package/dist/esm/components/form/fields/form-field-range-date.d.ts.map +1 -1
  445. package/dist/esm/components/form/fields/form-field-range-date.js +7 -2
  446. package/dist/esm/components/form/fields/form-field-range-date.js.map +1 -1
  447. package/dist/esm/components/form/fields/form-field-range-datetime.d.ts.map +1 -1
  448. package/dist/esm/components/form/fields/form-field-range-datetime.js +5 -2
  449. package/dist/esm/components/form/fields/form-field-range-datetime.js.map +1 -1
  450. package/dist/esm/components/form/fields/form-field-range-money.d.ts.map +1 -1
  451. package/dist/esm/components/form/fields/form-field-range-money.js +6 -19
  452. package/dist/esm/components/form/fields/form-field-range-money.js.map +1 -1
  453. package/dist/esm/components/form/fields/form-field-range-money.labels.d.ts.map +1 -1
  454. package/dist/esm/components/form/fields/form-field-range-money.labels.js +8 -2
  455. package/dist/esm/components/form/fields/form-field-range-money.labels.js.map +1 -1
  456. package/dist/esm/components/form/fields/form-field-range-number.js +2 -2
  457. package/dist/esm/components/form/fields/form-field-range-number.js.map +1 -1
  458. package/dist/esm/components/form/fields/form-field-range-time.js +2 -2
  459. package/dist/esm/components/form/fields/form-field-range-time.js.map +1 -1
  460. package/dist/esm/components/form/fields/form-field-resource-reference.d.ts +56 -0
  461. package/dist/esm/components/form/fields/form-field-resource-reference.d.ts.map +1 -0
  462. package/dist/esm/components/form/fields/form-field-resource-reference.js +51 -0
  463. package/dist/esm/components/form/fields/form-field-resource-reference.js.map +1 -0
  464. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +36 -6
  465. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -1
  466. package/dist/esm/components/form/fields/form-field-string-organization-role.js +30 -11
  467. package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -1
  468. package/dist/esm/components/form/fields/form-field-string.d.ts +5 -0
  469. package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
  470. package/dist/esm/components/form/fields/form-field-string.js +9 -7
  471. package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
  472. package/dist/esm/components/form/fields/form-field-time.d.ts.map +1 -1
  473. package/dist/esm/components/form/fields/form-field-time.js +6 -3
  474. package/dist/esm/components/form/fields/form-field-time.js.map +1 -1
  475. package/dist/esm/components/form/fields/themed-native-select.d.ts +29 -0
  476. package/dist/esm/components/form/fields/themed-native-select.d.ts.map +1 -0
  477. package/dist/esm/components/form/fields/themed-native-select.js +36 -0
  478. package/dist/esm/components/form/fields/themed-native-select.js.map +1 -0
  479. package/dist/esm/components/form/form-context.d.ts +11 -0
  480. package/dist/esm/components/form/form-context.d.ts.map +1 -1
  481. package/dist/esm/components/form/form-context.js +11 -0
  482. package/dist/esm/components/form/form-context.js.map +1 -1
  483. package/dist/esm/components/form/form-context.utils.d.ts +2 -0
  484. package/dist/esm/components/form/form-context.utils.d.ts.map +1 -1
  485. package/dist/esm/components/form/form-context.utils.js +6 -2
  486. package/dist/esm/components/form/form-context.utils.js.map +1 -1
  487. package/dist/esm/components/form/validation-errors/FormErrorSummary.d.ts.map +1 -1
  488. package/dist/esm/components/form/validation-errors/FormErrorSummary.js +17 -15
  489. package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
  490. package/dist/esm/components/form/validation-errors/field-reveal.d.ts +41 -0
  491. package/dist/esm/components/form/validation-errors/field-reveal.d.ts.map +1 -0
  492. package/dist/esm/components/form/validation-errors/field-reveal.js +108 -0
  493. package/dist/esm/components/form/validation-errors/field-reveal.js.map +1 -0
  494. package/dist/esm/components/form/validation-errors/form-level-error-recheck.d.ts +3 -0
  495. package/dist/esm/components/form/validation-errors/form-level-error-recheck.d.ts.map +1 -0
  496. package/dist/esm/components/form/validation-errors/form-level-error-recheck.js +37 -0
  497. package/dist/esm/components/form/validation-errors/form-level-error-recheck.js.map +1 -0
  498. package/dist/esm/components/form/validation-errors/getFieldError.d.ts +6 -0
  499. package/dist/esm/components/form/validation-errors/getFieldError.d.ts.map +1 -1
  500. package/dist/esm/components/form/validation-errors/getFieldError.js +9 -2
  501. package/dist/esm/components/form/validation-errors/getFieldError.js.map +1 -1
  502. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts +8 -1
  503. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts.map +1 -1
  504. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js +46 -3
  505. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js.map +1 -1
  506. package/dist/esm/components/form/validation-errors/useServerErrorInjection.d.ts.map +1 -1
  507. package/dist/esm/components/form/validation-errors/useServerErrorInjection.js +8 -3
  508. package/dist/esm/components/form/validation-errors/useServerErrorInjection.js.map +1 -1
  509. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.d.ts +32 -0
  510. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.d.ts.map +1 -0
  511. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.js +60 -0
  512. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.js.map +1 -0
  513. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +10 -0
  514. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
  515. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +12 -3
  516. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
  517. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts +7 -0
  518. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts.map +1 -1
  519. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.js.map +1 -1
  520. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts +6 -0
  521. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts.map +1 -1
  522. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.js.map +1 -1
  523. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.d.ts.map +1 -1
  524. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +11 -28
  525. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
  526. package/dist/esm/components/navigation/app-level/engine-launcher-entries.d.ts +46 -0
  527. package/dist/esm/components/navigation/app-level/engine-launcher-entries.d.ts.map +1 -0
  528. package/dist/esm/components/navigation/app-level/engine-launcher-entries.js +165 -0
  529. package/dist/esm/components/navigation/app-level/engine-launcher-entries.js.map +1 -0
  530. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
  531. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +8 -3
  532. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
  533. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
  534. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js +41 -20
  535. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
  536. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts +1 -2
  537. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts.map +1 -1
  538. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js +1 -15
  539. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js.map +1 -1
  540. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.d.ts +32 -0
  541. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.d.ts.map +1 -0
  542. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.js +91 -0
  543. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.js.map +1 -0
  544. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.d.ts.map +1 -1
  545. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js +3 -1
  546. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js.map +1 -1
  547. package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts +18 -1
  548. package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
  549. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +66 -9
  550. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
  551. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts +15 -10
  552. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts.map +1 -1
  553. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js +89 -12
  554. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js.map +1 -1
  555. package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js +2 -2
  556. package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js.map +1 -1
  557. package/dist/esm/components/resources/CollectionSelectAllCheckbox.d.ts +39 -0
  558. package/dist/esm/components/resources/CollectionSelectAllCheckbox.d.ts.map +1 -0
  559. package/dist/esm/components/resources/CollectionSelectAllCheckbox.js +21 -0
  560. package/dist/esm/components/resources/CollectionSelectAllCheckbox.js.map +1 -0
  561. package/dist/esm/components/resources/CollectionSelectionControls.d.ts +4 -3
  562. package/dist/esm/components/resources/CollectionSelectionControls.d.ts.map +1 -1
  563. package/dist/esm/components/resources/CollectionSelectionControls.js.map +1 -1
  564. package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts +7 -2
  565. package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts.map +1 -1
  566. package/dist/esm/components/resources/ResourceCollectionBody_Table.js +38 -14
  567. package/dist/esm/components/resources/ResourceCollectionBody_Table.js.map +1 -1
  568. package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts +4 -4
  569. package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts.map +1 -1
  570. package/dist/esm/components/resources/ResourceCollectionFilterPresets.js +20 -13
  571. package/dist/esm/components/resources/ResourceCollectionFilterPresets.js.map +1 -1
  572. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts +4 -3
  573. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
  574. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +40 -6
  575. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
  576. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +65 -23
  577. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
  578. package/dist/esm/components/resources/ResourceCollectionToolbar.js +73 -10
  579. package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
  580. package/dist/esm/components/resources/ResourceLayout_Action.labels.d.ts.map +1 -1
  581. package/dist/esm/components/resources/ResourceLayout_Action.labels.js +5 -0
  582. package/dist/esm/components/resources/ResourceLayout_Action.labels.js.map +1 -1
  583. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts +18 -0
  584. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
  585. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +57 -48
  586. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
  587. package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts +1 -1
  588. package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts.map +1 -1
  589. package/dist/esm/components/resources/ResourceLayout_CollectionActions.js +1 -1
  590. package/dist/esm/components/resources/ResourceLayout_CollectionActions.js.map +1 -1
  591. package/dist/esm/components/resources/ResourceLayout_ContainerNested.d.ts.map +1 -1
  592. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +7 -1
  593. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
  594. package/dist/esm/components/resources/ResourceLayout_Create.d.ts.map +1 -1
  595. package/dist/esm/components/resources/ResourceLayout_Create.js +3 -4
  596. package/dist/esm/components/resources/ResourceLayout_Create.js.map +1 -1
  597. package/dist/esm/components/resources/ResourceLayout_Create.labels.d.ts.map +1 -1
  598. package/dist/esm/components/resources/ResourceLayout_Create.labels.js +10 -0
  599. package/dist/esm/components/resources/ResourceLayout_Create.labels.js.map +1 -1
  600. package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts +5 -3
  601. package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts.map +1 -1
  602. package/dist/esm/components/resources/ResourceLayout_DangerZone.js +4 -3
  603. package/dist/esm/components/resources/ResourceLayout_DangerZone.js.map +1 -1
  604. package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts +8 -1
  605. package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts.map +1 -1
  606. package/dist/esm/components/resources/ResourceLayout_FilterChips.js +83 -11
  607. package/dist/esm/components/resources/ResourceLayout_FilterChips.js.map +1 -1
  608. package/dist/esm/components/resources/ResourceLayout_Filters.labels.js +1 -1
  609. package/dist/esm/components/resources/ResourceLayout_Filters.labels.js.map +1 -1
  610. package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts +5 -8
  611. package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts.map +1 -1
  612. package/dist/esm/components/resources/ResourceLayout_FiltersControl.js +68 -19
  613. package/dist/esm/components/resources/ResourceLayout_FiltersControl.js.map +1 -1
  614. package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
  615. package/dist/esm/components/resources/ResourceLayout_Header.js +150 -44
  616. package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
  617. package/dist/esm/components/resources/ResourceLayout_InsertedViews.d.ts.map +1 -1
  618. package/dist/esm/components/resources/ResourceLayout_InsertedViews.js +62 -40
  619. package/dist/esm/components/resources/ResourceLayout_InsertedViews.js.map +1 -1
  620. package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
  621. package/dist/esm/components/resources/ResourceLayout_List.js +68 -70
  622. package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
  623. package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
  624. package/dist/esm/components/resources/ResourceLayout_List.labels.js +4 -10
  625. package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
  626. package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts +8 -9
  627. package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts.map +1 -1
  628. package/dist/esm/components/resources/ResourceLayout_OperationBulk.js +67 -25
  629. package/dist/esm/components/resources/ResourceLayout_OperationBulk.js.map +1 -1
  630. package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js +8 -8
  631. package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js.map +1 -1
  632. package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts +8 -2
  633. package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts.map +1 -1
  634. package/dist/esm/components/resources/ResourceLayout_OperationsItems.js +12 -7
  635. package/dist/esm/components/resources/ResourceLayout_OperationsItems.js.map +1 -1
  636. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.d.ts.map +1 -1
  637. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js +11 -6
  638. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js.map +1 -1
  639. package/dist/esm/components/resources/ResourceLayout_Read.d.ts +2 -0
  640. package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
  641. package/dist/esm/components/resources/ResourceLayout_Read.js +23 -5
  642. package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
  643. package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
  644. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +5 -3
  645. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
  646. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
  647. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js +18 -7
  648. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
  649. package/dist/esm/components/resources/ResourceLayout_RecordSharing.d.ts +56 -0
  650. package/dist/esm/components/resources/ResourceLayout_RecordSharing.d.ts.map +1 -0
  651. package/dist/esm/components/resources/ResourceLayout_RecordSharing.js +184 -0
  652. package/dist/esm/components/resources/ResourceLayout_RecordSharing.js.map +1 -0
  653. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.d.ts +3 -0
  654. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.d.ts.map +1 -0
  655. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.js +106 -0
  656. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.js.map +1 -0
  657. package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
  658. package/dist/esm/components/resources/ResourceLayout_Search.js +55 -42
  659. package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
  660. package/dist/esm/components/resources/ResourceLayout_Search.labels.d.ts.map +1 -1
  661. package/dist/esm/components/resources/ResourceLayout_Search.labels.js +0 -6
  662. package/dist/esm/components/resources/ResourceLayout_Search.labels.js.map +1 -1
  663. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts +8 -0
  664. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
  665. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +2 -3
  666. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
  667. package/dist/esm/components/resources/ResourceLayout_SortControl.d.ts.map +1 -1
  668. package/dist/esm/components/resources/ResourceLayout_SortControl.js +3 -2
  669. package/dist/esm/components/resources/ResourceLayout_SortControl.js.map +1 -1
  670. package/dist/esm/components/resources/ResourceListItemRenderer.d.ts +29 -5
  671. package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
  672. package/dist/esm/components/resources/ResourceListItemRenderer.js +123 -41
  673. package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
  674. package/dist/esm/components/resources/ResourceViewModeToggle.d.ts +6 -1
  675. package/dist/esm/components/resources/ResourceViewModeToggle.d.ts.map +1 -1
  676. package/dist/esm/components/resources/ResourceViewModeToggle.js +9 -7
  677. package/dist/esm/components/resources/ResourceViewModeToggle.js.map +1 -1
  678. package/dist/esm/components/resources/collection-card-layout.utils.d.ts +37 -15
  679. package/dist/esm/components/resources/collection-card-layout.utils.d.ts.map +1 -1
  680. package/dist/esm/components/resources/collection-card-layout.utils.js +37 -15
  681. package/dist/esm/components/resources/collection-card-layout.utils.js.map +1 -1
  682. package/dist/esm/components/resources/collection-selection-bar-density.d.ts +113 -0
  683. package/dist/esm/components/resources/collection-selection-bar-density.d.ts.map +1 -0
  684. package/dist/esm/components/resources/collection-selection-bar-density.js +175 -0
  685. package/dist/esm/components/resources/collection-selection-bar-density.js.map +1 -0
  686. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts +2 -1
  687. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts.map +1 -1
  688. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.js.map +1 -1
  689. package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
  690. package/dist/esm/components/resources/embeds/RelatedResourceSections.js +14 -2
  691. package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
  692. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +61 -1
  693. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
  694. package/dist/esm/components/resources/embeds/ResourceEmbeds.js +151 -15
  695. package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
  696. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts +11 -0
  697. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts.map +1 -1
  698. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js +13 -0
  699. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js.map +1 -1
  700. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts +24 -1
  701. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts.map +1 -1
  702. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js +47 -3
  703. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js.map +1 -1
  704. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.d.ts +35 -0
  705. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.d.ts.map +1 -0
  706. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.js +36 -0
  707. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.js.map +1 -0
  708. package/dist/esm/components/resources/resource-header-geometry.d.ts +19 -0
  709. package/dist/esm/components/resources/resource-header-geometry.d.ts.map +1 -0
  710. package/dist/esm/components/resources/resource-header-geometry.js +19 -0
  711. package/dist/esm/components/resources/resource-header-geometry.js.map +1 -0
  712. package/dist/esm/components/resources/resourceLayout.utils.d.ts +28 -2
  713. package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
  714. package/dist/esm/components/resources/resourceLayout.utils.js +45 -12
  715. package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
  716. package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
  717. package/dist/esm/components/resources/skeleton/ArrayField.js +10 -0
  718. package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
  719. package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts +20 -4
  720. package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts.map +1 -1
  721. package/dist/esm/components/resources/skeleton/DisplayLayout.js +19 -2
  722. package/dist/esm/components/resources/skeleton/DisplayLayout.js.map +1 -1
  723. package/dist/esm/components/resources/skeleton/FieldTiles.d.ts +48 -0
  724. package/dist/esm/components/resources/skeleton/FieldTiles.d.ts.map +1 -0
  725. package/dist/esm/components/resources/skeleton/FieldTiles.js +51 -0
  726. package/dist/esm/components/resources/skeleton/FieldTiles.js.map +1 -0
  727. package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
  728. package/dist/esm/components/resources/skeleton/FormLayout.js +2 -1
  729. package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
  730. package/dist/esm/components/resources/skeleton/Group.d.ts.map +1 -1
  731. package/dist/esm/components/resources/skeleton/Group.js +5 -2
  732. package/dist/esm/components/resources/skeleton/Group.js.map +1 -1
  733. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts +77 -14
  734. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts.map +1 -1
  735. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js +98 -25
  736. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js.map +1 -1
  737. package/dist/esm/components/resources/skeleton/Section.d.ts +7 -0
  738. package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
  739. package/dist/esm/components/resources/skeleton/Section.js +9 -3
  740. package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
  741. package/dist/esm/components/resources/skeleton/SummaryLayout.d.ts +3 -3
  742. package/dist/esm/components/resources/skeleton/SummaryLayout.js +3 -3
  743. package/dist/esm/components/resources/skeleton/SummaryLayout.js.map +1 -1
  744. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +7 -5
  745. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
  746. package/dist/esm/components/resources/skeleton/WizardLayout.js +176 -65
  747. package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
  748. package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts +9 -1
  749. package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts.map +1 -1
  750. package/dist/esm/components/resources/skeleton/WizardLayoutContext.js +7 -0
  751. package/dist/esm/components/resources/skeleton/WizardLayoutContext.js.map +1 -1
  752. package/dist/esm/components/resources/skeleton/WizardStep.d.ts +1 -1
  753. package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
  754. package/dist/esm/components/resources/skeleton/WizardStep.js +9 -5
  755. package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
  756. package/dist/esm/components/resources/skeleton/section-consolidation.utils.d.ts.map +1 -1
  757. package/dist/esm/components/resources/skeleton/section-consolidation.utils.js +31 -2
  758. package/dist/esm/components/resources/skeleton/section-consolidation.utils.js.map +1 -1
  759. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
  760. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js +176 -61
  761. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
  762. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.d.ts.map +1 -1
  763. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js +14 -7
  764. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js.map +1 -1
  765. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.d.ts.map +1 -1
  766. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js +18 -1
  767. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js.map +1 -1
  768. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +8 -0
  769. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
  770. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js +3 -0
  771. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
  772. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
  773. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js +48 -17
  774. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
  775. package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
  776. package/dist/esm/components/sections/ContentSectionContainer.js +226 -74
  777. package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
  778. package/dist/esm/components/sections/ContentSectionContainer.labels.d.ts.map +1 -1
  779. package/dist/esm/components/sections/ContentSectionContainer.labels.js +2 -3
  780. package/dist/esm/components/sections/ContentSectionContainer.labels.js.map +1 -1
  781. package/dist/esm/components/sections/content-section.d.ts +2 -2
  782. package/dist/esm/components/sections/content-section.js.map +1 -1
  783. package/dist/esm/components/sections/section-grouping.shared.d.ts +19 -0
  784. package/dist/esm/components/sections/section-grouping.shared.d.ts.map +1 -1
  785. package/dist/esm/components/sections/section-grouping.shared.js +24 -0
  786. package/dist/esm/components/sections/section-grouping.shared.js.map +1 -1
  787. package/dist/esm/components/sections/section-legend-voice.context.d.ts +19 -0
  788. package/dist/esm/components/sections/section-legend-voice.context.d.ts.map +1 -0
  789. package/dist/esm/components/sections/section-legend-voice.context.js +21 -0
  790. package/dist/esm/components/sections/section-legend-voice.context.js.map +1 -0
  791. package/dist/esm/components/sections/section-legend-voice.d.ts +41 -0
  792. package/dist/esm/components/sections/section-legend-voice.d.ts.map +1 -0
  793. package/dist/esm/components/sections/section-legend-voice.js +67 -0
  794. package/dist/esm/components/sections/section-legend-voice.js.map +1 -0
  795. package/dist/esm/components/sections/stepper.d.ts +14 -0
  796. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  797. package/dist/esm/components/sections/stepper.js.map +1 -1
  798. package/dist/esm/components/sections/surface.d.ts.map +1 -1
  799. package/dist/esm/components/sections/surface.js +10 -2
  800. package/dist/esm/components/sections/surface.js.map +1 -1
  801. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.d.ts +39 -0
  802. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.d.ts.map +1 -0
  803. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.js +187 -0
  804. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.js.map +1 -0
  805. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.d.ts +3 -0
  806. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.d.ts.map +1 -0
  807. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.js +34 -0
  808. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.js.map +1 -0
  809. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +1 -1
  810. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +1 -1
  811. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -1
  812. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +8 -8
  813. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -1
  814. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.d.ts +43 -0
  815. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.d.ts.map +1 -0
  816. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.js +142 -0
  817. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.js.map +1 -0
  818. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.d.ts +3 -0
  819. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.d.ts.map +1 -0
  820. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.js +62 -0
  821. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.js.map +1 -0
  822. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +25 -8
  823. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
  824. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +275 -71
  825. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
  826. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
  827. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +91 -14
  828. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
  829. package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts +13 -8
  830. package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
  831. package/dist/esm/components/settings/AppPage_InvitationsSettings.js +95 -23
  832. package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
  833. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
  834. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js +25 -2
  835. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
  836. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.d.ts +67 -0
  837. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.d.ts.map +1 -0
  838. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.js +177 -0
  839. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.js.map +1 -0
  840. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.d.ts +3 -0
  841. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.d.ts.map +1 -0
  842. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.js +45 -0
  843. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.js.map +1 -0
  844. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.d.ts +35 -0
  845. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.d.ts.map +1 -0
  846. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.js +137 -0
  847. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.js.map +1 -0
  848. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.d.ts +3 -0
  849. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.d.ts.map +1 -0
  850. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.js +38 -0
  851. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.js.map +1 -0
  852. package/dist/esm/components/settings/SettingsHub.d.ts +3 -3
  853. package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
  854. package/dist/esm/components/settings/SettingsHub.js +98 -48
  855. package/dist/esm/components/settings/SettingsHub.js.map +1 -1
  856. package/dist/esm/components/settings/SettingsHub.labels.d.ts.map +1 -1
  857. package/dist/esm/components/settings/SettingsHub.labels.js +2 -0
  858. package/dist/esm/components/settings/SettingsHub.labels.js.map +1 -1
  859. package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
  860. package/dist/esm/components/settings/SettingsResourceOperationPanel.js +21 -1
  861. package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
  862. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +24 -5
  863. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -1
  864. package/dist/esm/components/settings/useOwnerProviderConnections.js +67 -9
  865. package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -1
  866. package/dist/esm/components/views/chart-view/ChartView.js +3 -3
  867. package/dist/esm/components/views/chart-view/ChartView.js.map +1 -1
  868. package/dist/esm/components/views/chart-view/chart-export.utils.d.ts.map +1 -1
  869. package/dist/esm/components/views/chart-view/chart-export.utils.js +2 -9
  870. package/dist/esm/components/views/chart-view/chart-export.utils.js.map +1 -1
  871. package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts +1 -0
  872. package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts.map +1 -1
  873. package/dist/esm/components/views/chart-view/enum-color-bridge.js +10 -1
  874. package/dist/esm/components/views/chart-view/enum-color-bridge.js.map +1 -1
  875. package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts +8 -6
  876. package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts.map +1 -1
  877. package/dist/esm/components/views/chart-view/option-builder/builder-utils.js +10 -8
  878. package/dist/esm/components/views/chart-view/option-builder/builder-utils.js.map +1 -1
  879. package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js +2 -2
  880. package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js.map +1 -1
  881. package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js +1 -1
  882. package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js.map +1 -1
  883. package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js +1 -1
  884. package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js.map +1 -1
  885. package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js +1 -1
  886. package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js.map +1 -1
  887. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts +6 -0
  888. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts.map +1 -1
  889. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.js.map +1 -1
  890. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts +3 -1
  891. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts.map +1 -1
  892. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js +4 -1
  893. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js.map +1 -1
  894. package/dist/esm/components/views/composite-view/CompositeLayout.d.ts +0 -1
  895. package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
  896. package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
  897. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.d.ts.map +1 -1
  898. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js +24 -1
  899. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js.map +1 -1
  900. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.d.ts +29 -0
  901. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.d.ts.map +1 -0
  902. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.js +104 -0
  903. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.js.map +1 -0
  904. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts +16 -5
  905. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts.map +1 -1
  906. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js +219 -230
  907. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js.map +1 -1
  908. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts +5 -0
  909. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts.map +1 -1
  910. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js +15 -13
  911. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js.map +1 -1
  912. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.d.ts +13 -0
  913. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.d.ts.map +1 -0
  914. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.js +44 -0
  915. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.js.map +1 -0
  916. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -1
  917. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +6 -2
  918. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -1
  919. package/dist/esm/core/app-shell/app-shell.schemas.d.ts +64 -9
  920. package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
  921. package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
  922. package/dist/esm/core/app-shell/hosted-components.utils.d.ts +11 -1
  923. package/dist/esm/core/app-shell/hosted-components.utils.d.ts.map +1 -1
  924. package/dist/esm/core/app-shell/hosted-components.utils.js +25 -0
  925. package/dist/esm/core/app-shell/hosted-components.utils.js.map +1 -1
  926. package/dist/esm/core/app-shell/shell-layout.d.ts +138 -0
  927. package/dist/esm/core/app-shell/shell-layout.d.ts.map +1 -0
  928. package/dist/esm/core/app-shell/shell-layout.js +143 -0
  929. package/dist/esm/core/app-shell/shell-layout.js.map +1 -0
  930. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.d.ts +13 -0
  931. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.d.ts.map +1 -0
  932. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.js +49 -0
  933. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.js.map +1 -0
  934. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.d.ts +95 -0
  935. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.d.ts.map +1 -0
  936. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.js +316 -0
  937. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.js.map +1 -0
  938. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.d.ts +217 -0
  939. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.d.ts.map +1 -0
  940. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.js +197 -0
  941. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.js.map +1 -0
  942. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.d.ts +46 -0
  943. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.d.ts.map +1 -0
  944. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.js +139 -0
  945. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.js.map +1 -0
  946. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.d.ts +108 -0
  947. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.d.ts.map +1 -0
  948. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.js +423 -0
  949. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.js.map +1 -0
  950. package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
  951. package/dist/esm/core/app-shell/useAppShellLayout.js +6 -1
  952. package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
  953. package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
  954. package/dist/esm/core/app-shell/usePublicShellLayout.js +11 -4
  955. package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
  956. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +18 -1
  957. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
  958. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +26 -4
  959. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
  960. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.d.ts.map +1 -1
  961. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js +3 -22
  962. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js.map +1 -1
  963. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts +19 -3
  964. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts.map +1 -1
  965. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js +100 -13
  966. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js.map +1 -1
  967. package/dist/esm/core/automated-layout/summary-value-naming.utils.d.ts +67 -0
  968. package/dist/esm/core/automated-layout/summary-value-naming.utils.d.ts.map +1 -0
  969. package/dist/esm/core/automated-layout/summary-value-naming.utils.js +100 -0
  970. package/dist/esm/core/automated-layout/summary-value-naming.utils.js.map +1 -0
  971. package/dist/esm/core/billing/BillingContext.d.ts +0 -17
  972. package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
  973. package/dist/esm/core/billing/BillingContext.js +6 -1
  974. package/dist/esm/core/billing/BillingContext.js.map +1 -1
  975. package/dist/esm/core/branding/OrganizationBrandingPublisher.d.ts +2 -0
  976. package/dist/esm/core/branding/OrganizationBrandingPublisher.d.ts.map +1 -0
  977. package/dist/esm/core/branding/OrganizationBrandingPublisher.js +78 -0
  978. package/dist/esm/core/branding/OrganizationBrandingPublisher.js.map +1 -0
  979. package/dist/esm/core/branding/useBrandIdentity.d.ts +21 -0
  980. package/dist/esm/core/branding/useBrandIdentity.d.ts.map +1 -1
  981. package/dist/esm/core/branding/useBrandIdentity.js +31 -5
  982. package/dist/esm/core/branding/useBrandIdentity.js.map +1 -1
  983. package/dist/esm/core/branding/useBrandPresentation.d.ts +5 -0
  984. package/dist/esm/core/branding/useBrandPresentation.d.ts.map +1 -1
  985. package/dist/esm/core/branding/useBrandPresentation.js +1 -0
  986. package/dist/esm/core/branding/useBrandPresentation.js.map +1 -1
  987. package/dist/esm/core/branding/useDisplayableImageUrl.d.ts +4 -0
  988. package/dist/esm/core/branding/useDisplayableImageUrl.d.ts.map +1 -0
  989. package/dist/esm/core/branding/useDisplayableImageUrl.js +66 -0
  990. package/dist/esm/core/branding/useDisplayableImageUrl.js.map +1 -0
  991. package/dist/esm/core/branding/useOrganizationDocumentTitle.d.ts +2 -0
  992. package/dist/esm/core/branding/useOrganizationDocumentTitle.d.ts.map +1 -0
  993. package/dist/esm/core/branding/useOrganizationDocumentTitle.js +23 -0
  994. package/dist/esm/core/branding/useOrganizationDocumentTitle.js.map +1 -0
  995. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.d.ts +16 -0
  996. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.d.ts.map +1 -0
  997. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.js +35 -0
  998. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.js.map +1 -0
  999. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
  1000. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +8 -0
  1001. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
  1002. package/dist/esm/core/components-registry/component-resolver.frontend.helper.d.ts.map +1 -1
  1003. package/dist/esm/core/components-registry/component-resolver.frontend.helper.js +34 -5
  1004. package/dist/esm/core/components-registry/component-resolver.frontend.helper.js.map +1 -1
  1005. package/dist/esm/core/components-registry/register-framework-layouts.d.ts.map +1 -1
  1006. package/dist/esm/core/components-registry/register-framework-layouts.js +4 -0
  1007. package/dist/esm/core/components-registry/register-framework-layouts.js.map +1 -1
  1008. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +36 -0
  1009. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
  1010. package/dist/esm/core/config/app-configuration-frontend.schemas.js +29 -2
  1011. package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
  1012. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +10 -16
  1013. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
  1014. package/dist/esm/core/config/app-level-components.frontend.schemas.js +10 -16
  1015. package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
  1016. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +12 -8
  1017. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts.map +1 -1
  1018. package/dist/esm/core/config/chart-view.frontend.schemas.js +10 -0
  1019. package/dist/esm/core/config/chart-view.frontend.schemas.js.map +1 -1
  1020. package/dist/esm/core/config/composite-view.schemas.d.ts +2 -2
  1021. package/dist/esm/core/config/config-merge-utilities.d.ts +31 -3
  1022. package/dist/esm/core/config/config-merge-utilities.d.ts.map +1 -1
  1023. package/dist/esm/core/config/config-merge-utilities.js +61 -7
  1024. package/dist/esm/core/config/config-merge-utilities.js.map +1 -1
  1025. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.d.ts +83 -0
  1026. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.d.ts.map +1 -0
  1027. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.js +100 -0
  1028. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.js.map +1 -0
  1029. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.d.ts +69 -0
  1030. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.d.ts.map +1 -0
  1031. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.js +65 -0
  1032. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.js.map +1 -0
  1033. package/dist/esm/core/config/engine-settings-destinations.d.ts +13 -1
  1034. package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
  1035. package/dist/esm/core/config/engine-settings-destinations.js +588 -155
  1036. package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
  1037. package/dist/esm/core/config/execution-view.schemas.d.ts +17 -3
  1038. package/dist/esm/core/config/execution-view.schemas.d.ts.map +1 -1
  1039. package/dist/esm/core/config/execution-view.schemas.js +1 -1
  1040. package/dist/esm/core/config/execution-view.schemas.js.map +1 -1
  1041. package/dist/esm/core/config/flows-actors-view.schemas.d.ts +12 -2
  1042. package/dist/esm/core/config/flows-actors-view.schemas.d.ts.map +1 -1
  1043. package/dist/esm/core/config/flows-actors-view.schemas.js +13 -1
  1044. package/dist/esm/core/config/flows-actors-view.schemas.js.map +1 -1
  1045. package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts +12 -11
  1046. package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts.map +1 -1
  1047. package/dist/esm/core/config/inserted-view-launcher.schemas.js +14 -13
  1048. package/dist/esm/core/config/inserted-view-launcher.schemas.js.map +1 -1
  1049. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +77 -27
  1050. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
  1051. package/dist/esm/core/config/launcher-items.frontend.schemas.js +18 -13
  1052. package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
  1053. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.d.ts +79 -0
  1054. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.d.ts.map +1 -0
  1055. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.js +95 -0
  1056. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.js.map +1 -0
  1057. package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts +19 -7
  1058. package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts.map +1 -1
  1059. package/dist/esm/core/config/settings-hub-gating.frontend.utils.js +45 -10
  1060. package/dist/esm/core/config/settings-hub-gating.frontend.utils.js.map +1 -1
  1061. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts +2 -2
  1062. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts.map +1 -1
  1063. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js +38 -5
  1064. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js.map +1 -1
  1065. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +94 -10
  1066. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
  1067. package/dist/esm/core/config/settings-hub.frontend.schemas.js +40 -3
  1068. package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
  1069. package/dist/esm/core/config/useSettingsHubConfig.d.ts.map +1 -1
  1070. package/dist/esm/core/config/useSettingsHubConfig.js +4 -1
  1071. package/dist/esm/core/config/useSettingsHubConfig.js.map +1 -1
  1072. package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts +2 -2
  1073. package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts.map +1 -1
  1074. package/dist/esm/core/config/useVisibleSettingsHubConfig.js +7 -8
  1075. package/dist/esm/core/config/useVisibleSettingsHubConfig.js.map +1 -1
  1076. package/dist/esm/core/config/verify-launcher-content.d.ts +16 -2
  1077. package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
  1078. package/dist/esm/core/config/verify-launcher-content.js +64 -4
  1079. package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
  1080. package/dist/esm/core/config/verify-settings-hub-content.d.ts +4 -0
  1081. package/dist/esm/core/config/verify-settings-hub-content.d.ts.map +1 -1
  1082. package/dist/esm/core/config/verify-settings-hub-content.js +34 -0
  1083. package/dist/esm/core/config/verify-settings-hub-content.js.map +1 -1
  1084. package/dist/esm/core/enums/common-enum-registry.d.ts +16 -23
  1085. package/dist/esm/core/enums/common-enum-registry.d.ts.map +1 -1
  1086. package/dist/esm/core/enums/common-enum-registry.js +26 -29
  1087. package/dist/esm/core/enums/common-enum-registry.js.map +1 -1
  1088. package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
  1089. package/dist/esm/core/errors/GlobalErrorHandler.js +71 -9
  1090. package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
  1091. package/dist/esm/core/errors/error-management.frontend.service.d.ts +0 -4
  1092. package/dist/esm/core/errors/error-management.frontend.service.d.ts.map +1 -1
  1093. package/dist/esm/core/errors/error-management.frontend.service.js +5 -8
  1094. package/dist/esm/core/errors/error-management.frontend.service.js.map +1 -1
  1095. package/dist/esm/core/errors/errors.frontend.schemas.d.ts +21 -10
  1096. package/dist/esm/core/errors/errors.frontend.schemas.d.ts.map +1 -1
  1097. package/dist/esm/core/errors/errors.frontend.schemas.js.map +1 -1
  1098. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts +35 -0
  1099. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts.map +1 -1
  1100. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +44 -5
  1101. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
  1102. package/dist/esm/core/events/EventBusContext.js.map +1 -1
  1103. package/dist/esm/core/events/NotificationContext.d.ts +13 -1
  1104. package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
  1105. package/dist/esm/core/events/NotificationContext.js +89 -22
  1106. package/dist/esm/core/events/NotificationContext.js.map +1 -1
  1107. package/dist/esm/core/events/events.frontend.schemas.d.ts +68 -4
  1108. package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
  1109. package/dist/esm/core/events/events.frontend.schemas.js +67 -3
  1110. package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
  1111. package/dist/esm/core/events/useNotificationPreferenceKinds.d.ts +9 -0
  1112. package/dist/esm/core/events/useNotificationPreferenceKinds.d.ts.map +1 -0
  1113. package/dist/esm/core/events/useNotificationPreferenceKinds.js +50 -0
  1114. package/dist/esm/core/events/useNotificationPreferenceKinds.js.map +1 -0
  1115. package/dist/esm/core/execution/useExecution.js +1 -1
  1116. package/dist/esm/core/execution/useExecution.js.map +1 -1
  1117. package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
  1118. package/dist/esm/core/execution/useExecutionParticipationRMM.js +4 -0
  1119. package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
  1120. package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
  1121. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +3 -3
  1122. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
  1123. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.d.ts +52 -0
  1124. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.d.ts.map +1 -0
  1125. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.js +88 -0
  1126. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.js.map +1 -0
  1127. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts +20 -2
  1128. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts.map +1 -1
  1129. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js +18 -1
  1130. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js.map +1 -1
  1131. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +7 -5
  1132. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -1
  1133. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +9 -6
  1134. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -1
  1135. package/dist/esm/core/features/FeaturesContext.d.ts +9 -1
  1136. package/dist/esm/core/features/FeaturesContext.d.ts.map +1 -1
  1137. package/dist/esm/core/features/FeaturesContext.js +38 -12
  1138. package/dist/esm/core/features/FeaturesContext.js.map +1 -1
  1139. package/dist/esm/core/features/useOperationFeatureAvailability.d.ts.map +1 -1
  1140. package/dist/esm/core/features/useOperationFeatureAvailability.js +4 -0
  1141. package/dist/esm/core/features/useOperationFeatureAvailability.js.map +1 -1
  1142. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +90 -33
  1143. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
  1144. package/dist/esm/core/flows-actors/FlowsActorsContext.js +153 -100
  1145. package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
  1146. package/dist/esm/core/flows-actors/conversation-history.model.d.ts +41 -0
  1147. package/dist/esm/core/flows-actors/conversation-history.model.d.ts.map +1 -0
  1148. package/dist/esm/core/flows-actors/conversation-history.model.js +65 -0
  1149. package/dist/esm/core/flows-actors/conversation-history.model.js.map +1 -0
  1150. package/dist/esm/core/flows-actors/conversation-thread.model.d.ts +144 -0
  1151. package/dist/esm/core/flows-actors/conversation-thread.model.d.ts.map +1 -0
  1152. package/dist/esm/core/flows-actors/conversation-thread.model.js +315 -0
  1153. package/dist/esm/core/flows-actors/conversation-thread.model.js.map +1 -0
  1154. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.d.ts +29 -0
  1155. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.d.ts.map +1 -0
  1156. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.js +67 -0
  1157. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.js.map +1 -0
  1158. package/dist/esm/core/flows-actors/graph-view.layout.d.ts +77 -0
  1159. package/dist/esm/core/flows-actors/graph-view.layout.d.ts.map +1 -0
  1160. package/dist/esm/core/flows-actors/graph-view.layout.js +169 -0
  1161. package/dist/esm/core/flows-actors/graph-view.layout.js.map +1 -0
  1162. package/dist/esm/core/flows-actors/graph-view.model.d.ts +245 -0
  1163. package/dist/esm/core/flows-actors/graph-view.model.d.ts.map +1 -0
  1164. package/dist/esm/core/flows-actors/graph-view.model.js +414 -0
  1165. package/dist/esm/core/flows-actors/graph-view.model.js.map +1 -0
  1166. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.d.ts +12 -0
  1167. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.d.ts.map +1 -0
  1168. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.js +20 -0
  1169. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.js.map +1 -0
  1170. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +36 -11
  1171. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -1
  1172. package/dist/esm/core/flows-actors/usePendingDecisions.js +114 -29
  1173. package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -1
  1174. package/dist/esm/core/guidance/GuidanceContext.d.ts.map +1 -1
  1175. package/dist/esm/core/guidance/GuidanceContext.js +1 -2
  1176. package/dist/esm/core/guidance/GuidanceContext.js.map +1 -1
  1177. package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js +2 -2
  1178. package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js.map +1 -1
  1179. package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts +3 -9
  1180. package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts.map +1 -1
  1181. package/dist/esm/core/hotkey/DefaultHotkeyHandler.js +3 -15
  1182. package/dist/esm/core/hotkey/DefaultHotkeyHandler.js.map +1 -1
  1183. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.d.ts +2 -2
  1184. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js +2 -2
  1185. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js.map +1 -1
  1186. package/dist/esm/core/i18n/I18nContext.d.ts +52 -3
  1187. package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
  1188. package/dist/esm/core/i18n/I18nContext.js +80 -7
  1189. package/dist/esm/core/i18n/I18nContext.js.map +1 -1
  1190. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts +82 -1
  1191. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts.map +1 -1
  1192. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js +121 -6
  1193. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js.map +1 -1
  1194. package/dist/esm/core/i18n/useI18n.d.ts +3 -1
  1195. package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
  1196. package/dist/esm/core/i18n/useI18n.js +3 -1
  1197. package/dist/esm/core/i18n/useI18n.js.map +1 -1
  1198. package/dist/esm/core/icons/IconRegistryBridge.d.ts +38 -4
  1199. package/dist/esm/core/icons/IconRegistryBridge.d.ts.map +1 -1
  1200. package/dist/esm/core/icons/IconRegistryBridge.js +103 -63
  1201. package/dist/esm/core/icons/IconRegistryBridge.js.map +1 -1
  1202. package/dist/esm/core/icons/IconRegistryContext.d.ts.map +1 -1
  1203. package/dist/esm/core/icons/IconRegistryContext.js +41 -0
  1204. package/dist/esm/core/icons/IconRegistryContext.js.map +1 -1
  1205. package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts +44 -0
  1206. package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts.map +1 -1
  1207. package/dist/esm/core/icons/icon-registry.frontend.schemas.js +46 -0
  1208. package/dist/esm/core/icons/icon-registry.frontend.schemas.js.map +1 -1
  1209. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +2 -2
  1210. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
  1211. package/dist/esm/core/navigation/NavigationContentAreas.d.ts +64 -20
  1212. package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
  1213. package/dist/esm/core/navigation/NavigationContentAreas.js +82 -51
  1214. package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
  1215. package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
  1216. package/dist/esm/core/navigation/NavigationContext.js +130 -23
  1217. package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
  1218. package/dist/esm/core/navigation/NavigationRequestBridge.d.ts +4 -0
  1219. package/dist/esm/core/navigation/NavigationRequestBridge.d.ts.map +1 -1
  1220. package/dist/esm/core/navigation/NavigationRequestBridge.js +17 -1
  1221. package/dist/esm/core/navigation/NavigationRequestBridge.js.map +1 -1
  1222. package/dist/esm/core/navigation/ZoneChromeContext.d.ts +80 -0
  1223. package/dist/esm/core/navigation/ZoneChromeContext.d.ts.map +1 -0
  1224. package/dist/esm/core/navigation/ZoneChromeContext.js +130 -0
  1225. package/dist/esm/core/navigation/ZoneChromeContext.js.map +1 -0
  1226. package/dist/esm/core/navigation/launcher-resolution.d.ts +102 -2
  1227. package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
  1228. package/dist/esm/core/navigation/launcher-resolution.js +194 -9
  1229. package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
  1230. package/dist/esm/core/navigation/launcher-runtime-availability.d.ts +35 -5
  1231. package/dist/esm/core/navigation/launcher-runtime-availability.d.ts.map +1 -1
  1232. package/dist/esm/core/navigation/launcher-runtime-availability.js +147 -18
  1233. package/dist/esm/core/navigation/launcher-runtime-availability.js.map +1 -1
  1234. package/dist/esm/core/navigation/navigation-cascade.d.ts +44 -14
  1235. package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -1
  1236. package/dist/esm/core/navigation/navigation-cascade.js +87 -19
  1237. package/dist/esm/core/navigation/navigation-cascade.js.map +1 -1
  1238. package/dist/esm/core/navigation/navigation-commit.d.ts +45 -0
  1239. package/dist/esm/core/navigation/navigation-commit.d.ts.map +1 -0
  1240. package/dist/esm/core/navigation/navigation-commit.js +68 -0
  1241. package/dist/esm/core/navigation/navigation-commit.js.map +1 -0
  1242. package/dist/esm/core/navigation/navigation-controller-internals.d.ts +54 -3
  1243. package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -1
  1244. package/dist/esm/core/navigation/navigation-controller-internals.js +91 -3
  1245. package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -1
  1246. package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +3 -3
  1247. package/dist/esm/core/navigation/navigation-policy-resolver.service.js +3 -3
  1248. package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
  1249. package/dist/esm/core/navigation/navigation.utils.d.ts +95 -22
  1250. package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
  1251. package/dist/esm/core/navigation/navigation.utils.js +190 -63
  1252. package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
  1253. package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts +8 -0
  1254. package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts.map +1 -0
  1255. package/dist/esm/core/navigation/sidebar-resource-browser-operation.js +27 -0
  1256. package/dist/esm/core/navigation/sidebar-resource-browser-operation.js.map +1 -0
  1257. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.d.ts +64 -0
  1258. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.d.ts.map +1 -0
  1259. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.js +212 -0
  1260. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.js.map +1 -0
  1261. package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts +1 -1
  1262. package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts.map +1 -1
  1263. package/dist/esm/core/navigation/useLauncherResolutionContext.js +17 -2
  1264. package/dist/esm/core/navigation/useLauncherResolutionContext.js.map +1 -1
  1265. package/dist/esm/core/navigation/useNavigationController.d.ts +1 -0
  1266. package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
  1267. package/dist/esm/core/navigation/useNavigationController.js +51 -67
  1268. package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
  1269. package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -1
  1270. package/dist/esm/core/navigation/useNavigationRouterSync.js +17 -1
  1271. package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -1
  1272. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.d.ts +17 -0
  1273. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.d.ts.map +1 -0
  1274. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.js +32 -0
  1275. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.js.map +1 -0
  1276. package/dist/esm/core/navigation/zone-collapse.d.ts +2 -1
  1277. package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -1
  1278. package/dist/esm/core/navigation/zone-collapse.js +2 -1
  1279. package/dist/esm/core/navigation/zone-collapse.js.map +1 -1
  1280. package/dist/esm/core/navigation/zone-entry-organization.d.ts +34 -0
  1281. package/dist/esm/core/navigation/zone-entry-organization.d.ts.map +1 -0
  1282. package/dist/esm/core/navigation/zone-entry-organization.js +77 -0
  1283. package/dist/esm/core/navigation/zone-entry-organization.js.map +1 -0
  1284. package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts +15 -0
  1285. package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts.map +1 -1
  1286. package/dist/esm/core/requests/auth-refresh-resilience.frontend.js +24 -0
  1287. package/dist/esm/core/requests/auth-refresh-resilience.frontend.js.map +1 -1
  1288. package/dist/esm/core/requests/automatic-resend-safety.frontend.d.ts +74 -0
  1289. package/dist/esm/core/requests/automatic-resend-safety.frontend.d.ts.map +1 -0
  1290. package/dist/esm/core/requests/automatic-resend-safety.frontend.js +52 -0
  1291. package/dist/esm/core/requests/automatic-resend-safety.frontend.js.map +1 -0
  1292. package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
  1293. package/dist/esm/core/requests/websockets/WebSocketContext.js +31 -0
  1294. package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
  1295. package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
  1296. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js +2 -0
  1297. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
  1298. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +162 -98
  1299. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
  1300. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +283 -157
  1301. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
  1302. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts +9 -13
  1303. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
  1304. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +45 -97
  1305. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
  1306. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +25 -5
  1307. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
  1308. package/dist/esm/core/requests/wildo-http-client.frontend.service.js +56 -11
  1309. package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
  1310. package/dist/esm/core/resources/ScopedResourceRegistryProvider.d.ts.map +1 -1
  1311. package/dist/esm/core/resources/ScopedResourceRegistryProvider.js +1 -2
  1312. package/dist/esm/core/resources/ScopedResourceRegistryProvider.js.map +1 -1
  1313. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.d.ts +14 -0
  1314. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.d.ts.map +1 -0
  1315. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.js +29 -0
  1316. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.js.map +1 -0
  1317. package/dist/esm/core/resources/caller-identity-record.frontend.utils.d.ts +23 -0
  1318. package/dist/esm/core/resources/caller-identity-record.frontend.utils.d.ts.map +1 -0
  1319. package/dist/esm/core/resources/caller-identity-record.frontend.utils.js +26 -0
  1320. package/dist/esm/core/resources/caller-identity-record.frontend.utils.js.map +1 -0
  1321. package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts +1 -1
  1322. package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts.map +1 -1
  1323. package/dist/esm/core/resources/collection-export-url.frontend.utils.js +34 -16
  1324. package/dist/esm/core/resources/collection-export-url.frontend.utils.js.map +1 -1
  1325. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts +54 -11
  1326. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts.map +1 -1
  1327. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js +131 -63
  1328. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js.map +1 -1
  1329. package/dist/esm/core/resources/date-filter-window.frontend.utils.d.ts +58 -0
  1330. package/dist/esm/core/resources/date-filter-window.frontend.utils.d.ts.map +1 -0
  1331. package/dist/esm/core/resources/date-filter-window.frontend.utils.js +70 -0
  1332. package/dist/esm/core/resources/date-filter-window.frontend.utils.js.map +1 -0
  1333. package/dist/esm/core/resources/frontend-resource.utils.d.ts +146 -7
  1334. package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
  1335. package/dist/esm/core/resources/frontend-resource.utils.js +194 -22
  1336. package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
  1337. package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts +18 -4
  1338. package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts.map +1 -1
  1339. package/dist/esm/core/resources/hooks/useOperationEnabled.js +26 -6
  1340. package/dist/esm/core/resources/hooks/useOperationEnabled.js.map +1 -1
  1341. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +95 -2
  1342. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
  1343. package/dist/esm/core/resources/operation-semantics.frontend.utils.js +126 -13
  1344. package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
  1345. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.d.ts +45 -0
  1346. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.d.ts.map +1 -0
  1347. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.js +46 -0
  1348. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.js.map +1 -0
  1349. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.d.ts +46 -0
  1350. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.d.ts.map +1 -0
  1351. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.js +86 -0
  1352. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.js.map +1 -0
  1353. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.d.ts.map +1 -1
  1354. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js +5 -1
  1355. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js.map +1 -1
  1356. package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts +28 -1
  1357. package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts.map +1 -1
  1358. package/dist/esm/core/resources/resource-addressability.frontend.utils.js +43 -3
  1359. package/dist/esm/core/resources/resource-addressability.frontend.utils.js.map +1 -1
  1360. package/dist/esm/core/resources/resource-discriminators.frontend.utils.d.ts +26 -0
  1361. package/dist/esm/core/resources/resource-discriminators.frontend.utils.d.ts.map +1 -0
  1362. package/dist/esm/core/resources/resource-discriminators.frontend.utils.js +37 -0
  1363. package/dist/esm/core/resources/resource-discriminators.frontend.utils.js.map +1 -0
  1364. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +40 -8
  1365. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
  1366. package/dist/esm/core/resources/resources-repository.frontend.service.js +333 -73
  1367. package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
  1368. package/dist/esm/core/resources/resources.frontend.schemas.d.ts +175 -65
  1369. package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
  1370. package/dist/esm/core/resources/resources.frontend.schemas.js +245 -75
  1371. package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
  1372. package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts +9 -1
  1373. package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts.map +1 -1
  1374. package/dist/esm/core/resources/rmm/HttpTransportAdapter.js +57 -22
  1375. package/dist/esm/core/resources/rmm/HttpTransportAdapter.js.map +1 -1
  1376. package/dist/esm/core/resources/rmm/RMMRegistry.d.ts.map +1 -1
  1377. package/dist/esm/core/resources/rmm/RMMRegistry.js +1 -0
  1378. package/dist/esm/core/resources/rmm/RMMRegistry.js.map +1 -1
  1379. package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts +3 -0
  1380. package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
  1381. package/dist/esm/core/resources/rmm/ResourceMutationManager.js +94 -35
  1382. package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
  1383. package/dist/esm/core/resources/rmm/types.d.ts +58 -6
  1384. package/dist/esm/core/resources/rmm/types.d.ts.map +1 -1
  1385. package/dist/esm/core/resources/rmm/types.js +17 -0
  1386. package/dist/esm/core/resources/rmm/types.js.map +1 -1
  1387. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +43 -6
  1388. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
  1389. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js +49 -6
  1390. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
  1391. package/dist/esm/core/resources/rmm/useResourceMutationManager.d.ts.map +1 -1
  1392. package/dist/esm/core/resources/rmm/useResourceMutationManager.js +2 -0
  1393. package/dist/esm/core/resources/rmm/useResourceMutationManager.js.map +1 -1
  1394. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +2 -0
  1395. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
  1396. package/dist/esm/core/resources/rmm/useResourceRMM.js +10 -3
  1397. package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
  1398. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.d.ts +22 -0
  1399. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.d.ts.map +1 -0
  1400. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.js +31 -0
  1401. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.js.map +1 -0
  1402. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.d.ts +36 -0
  1403. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.d.ts.map +1 -0
  1404. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.js +88 -0
  1405. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.js.map +1 -0
  1406. package/dist/esm/core/resources/useBulkJobProgress.d.ts +6 -0
  1407. package/dist/esm/core/resources/useBulkJobProgress.d.ts.map +1 -1
  1408. package/dist/esm/core/resources/useBulkJobProgress.js +1 -0
  1409. package/dist/esm/core/resources/useBulkJobProgress.js.map +1 -1
  1410. package/dist/esm/core/resources/useCollectionFilterPresetScope.d.ts +14 -0
  1411. package/dist/esm/core/resources/useCollectionFilterPresetScope.d.ts.map +1 -0
  1412. package/dist/esm/core/resources/useCollectionFilterPresetScope.js +29 -0
  1413. package/dist/esm/core/resources/useCollectionFilterPresetScope.js.map +1 -0
  1414. package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts +7 -6
  1415. package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts.map +1 -1
  1416. package/dist/esm/core/resources/useHostlessResourceNavigation.js +35 -21
  1417. package/dist/esm/core/resources/useHostlessResourceNavigation.js.map +1 -1
  1418. package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -1
  1419. package/dist/esm/core/resources/useOperationDirectExecution.js +25 -10
  1420. package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -1
  1421. package/dist/esm/core/resources/useRecordSharing.d.ts +58 -0
  1422. package/dist/esm/core/resources/useRecordSharing.d.ts.map +1 -0
  1423. package/dist/esm/core/resources/useRecordSharing.js +220 -0
  1424. package/dist/esm/core/resources/useRecordSharing.js.map +1 -0
  1425. package/dist/esm/core/resources/useResourceLabels.d.ts +4 -1
  1426. package/dist/esm/core/resources/useResourceLabels.d.ts.map +1 -1
  1427. package/dist/esm/core/resources/useResourceLabels.js +31 -32
  1428. package/dist/esm/core/resources/useResourceLabels.js.map +1 -1
  1429. package/dist/esm/core/resources/useResourceOperationActions.d.ts +23 -4
  1430. package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
  1431. package/dist/esm/core/resources/useResourceOperationActions.js +219 -51
  1432. package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
  1433. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts +10 -1
  1434. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts.map +1 -1
  1435. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js +7 -2
  1436. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js.map +1 -1
  1437. package/dist/esm/core/resources/useResourceOperationSurface.d.ts +5 -5
  1438. package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
  1439. package/dist/esm/core/resources/useResourceOperationSurface.js +5 -4
  1440. package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
  1441. package/dist/esm/core/resources/useResourceSelection.d.ts +6 -0
  1442. package/dist/esm/core/resources/useResourceSelection.d.ts.map +1 -1
  1443. package/dist/esm/core/resources/useResourceSelection.js.map +1 -1
  1444. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts +47 -0
  1445. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts.map +1 -1
  1446. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js +117 -4
  1447. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js.map +1 -1
  1448. package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
  1449. package/dist/esm/core/runtime/AppRouter.js +5 -2
  1450. package/dist/esm/core/runtime/AppRouter.js.map +1 -1
  1451. package/dist/esm/core/runtime/ApplicationMainContext.d.ts +10 -1
  1452. package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
  1453. package/dist/esm/core/runtime/ApplicationMainContext.js +17 -2
  1454. package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
  1455. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +5 -0
  1456. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
  1457. package/dist/esm/core/runtime/domain-module.frontend.definitions.js +4 -2
  1458. package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
  1459. package/dist/esm/core/runtime/routes.frontend.definitions.d.ts +19 -3
  1460. package/dist/esm/core/runtime/routes.frontend.definitions.d.ts.map +1 -1
  1461. package/dist/esm/core/runtime/routes.frontend.definitions.js +23 -7
  1462. package/dist/esm/core/runtime/routes.frontend.definitions.js.map +1 -1
  1463. package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
  1464. package/dist/esm/core/runtime/start-application.frontend.service.js +3 -1
  1465. package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
  1466. package/dist/esm/core/scope/AppScopeContext.d.ts +7 -2
  1467. package/dist/esm/core/scope/AppScopeContext.d.ts.map +1 -1
  1468. package/dist/esm/core/scope/AppScopeContext.js +56 -10
  1469. package/dist/esm/core/scope/AppScopeContext.js.map +1 -1
  1470. package/dist/esm/core/security/ApplicationRoleTablesContext.d.ts +23 -0
  1471. package/dist/esm/core/security/ApplicationRoleTablesContext.d.ts.map +1 -0
  1472. package/dist/esm/core/security/ApplicationRoleTablesContext.js +27 -0
  1473. package/dist/esm/core/security/ApplicationRoleTablesContext.js.map +1 -0
  1474. package/dist/esm/core/security/AuthSessionContext.d.ts +26 -8
  1475. package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
  1476. package/dist/esm/core/security/AuthSessionContext.js +81 -17
  1477. package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
  1478. package/dist/esm/core/security/RouteOrganizationDecisionContext.d.ts +13 -0
  1479. package/dist/esm/core/security/RouteOrganizationDecisionContext.d.ts.map +1 -0
  1480. package/dist/esm/core/security/RouteOrganizationDecisionContext.js +12 -0
  1481. package/dist/esm/core/security/RouteOrganizationDecisionContext.js.map +1 -0
  1482. package/dist/esm/core/security/StepUpAuthContext.js +5 -5
  1483. package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
  1484. package/dist/esm/core/security/UserOrgsContext.d.ts +13 -0
  1485. package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
  1486. package/dist/esm/core/security/UserOrgsContext.js +272 -103
  1487. package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
  1488. package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts +1 -0
  1489. package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts.map +1 -1
  1490. package/dist/esm/core/security/auth-redirect.frontend.utils.js +3 -2
  1491. package/dist/esm/core/security/auth-redirect.frontend.utils.js.map +1 -1
  1492. package/dist/esm/core/security/effective-permissions.frontend.utils.d.ts +43 -0
  1493. package/dist/esm/core/security/effective-permissions.frontend.utils.d.ts.map +1 -0
  1494. package/dist/esm/core/security/effective-permissions.frontend.utils.js +73 -0
  1495. package/dist/esm/core/security/effective-permissions.frontend.utils.js.map +1 -0
  1496. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +175 -5
  1497. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
  1498. package/dist/esm/core/security/route-organization-access.frontend.utils.js +147 -6
  1499. package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
  1500. package/dist/esm/core/security/security.frontend.schemas.d.ts +17 -5
  1501. package/dist/esm/core/security/security.frontend.schemas.d.ts.map +1 -1
  1502. package/dist/esm/core/security/security.frontend.schemas.js +0 -5
  1503. package/dist/esm/core/security/security.frontend.schemas.js.map +1 -1
  1504. package/dist/esm/core/security/useApplicationRoleTables.d.ts +3 -0
  1505. package/dist/esm/core/security/useApplicationRoleTables.d.ts.map +1 -0
  1506. package/dist/esm/core/security/useApplicationRoleTables.js +11 -0
  1507. package/dist/esm/core/security/useApplicationRoleTables.js.map +1 -0
  1508. package/dist/esm/core/security/useRouteOrganizationAccess.d.ts +9 -0
  1509. package/dist/esm/core/security/useRouteOrganizationAccess.d.ts.map +1 -1
  1510. package/dist/esm/core/security/useRouteOrganizationAccess.js +31 -10
  1511. package/dist/esm/core/security/useRouteOrganizationAccess.js.map +1 -1
  1512. package/dist/esm/core/security/useRouteOrganizationFollow.d.ts +24 -0
  1513. package/dist/esm/core/security/useRouteOrganizationFollow.d.ts.map +1 -0
  1514. package/dist/esm/core/security/useRouteOrganizationFollow.js +76 -0
  1515. package/dist/esm/core/security/useRouteOrganizationFollow.js.map +1 -0
  1516. package/dist/esm/core/ui/UIContext.d.ts +25 -2
  1517. package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
  1518. package/dist/esm/core/ui/UIContext.js +49 -37
  1519. package/dist/esm/core/ui/UIContext.js.map +1 -1
  1520. package/dist/esm/core/ui/design-token.utils.d.ts +0 -11
  1521. package/dist/esm/core/ui/design-token.utils.d.ts.map +1 -1
  1522. package/dist/esm/core/ui/design-token.utils.js +51 -83
  1523. package/dist/esm/core/ui/design-token.utils.js.map +1 -1
  1524. package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
  1525. package/dist/esm/core/ui/themes/default.theme.js +151 -59
  1526. package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
  1527. package/dist/esm/core/ui/themes/focus-indicator.d.ts +221 -0
  1528. package/dist/esm/core/ui/themes/focus-indicator.d.ts.map +1 -0
  1529. package/dist/esm/core/ui/themes/focus-indicator.js +229 -0
  1530. package/dist/esm/core/ui/themes/focus-indicator.js.map +1 -0
  1531. package/dist/esm/core/ui/ui.frontend.schemas.d.ts +7 -0
  1532. package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
  1533. package/dist/esm/core/ui/useThemePreferenceControl.d.ts.map +1 -1
  1534. package/dist/esm/core/ui/useThemePreferenceControl.js +1 -2
  1535. package/dist/esm/core/ui/useThemePreferenceControl.js.map +1 -1
  1536. package/dist/esm/index.d.ts +34 -0
  1537. package/dist/esm/index.d.ts.map +1 -1
  1538. package/dist/esm/index.js +45 -7
  1539. package/dist/esm/index.js.map +1 -1
  1540. package/dist/esm/tailwind/index.d.ts.map +1 -1
  1541. package/dist/esm/tailwind/index.js +3 -0
  1542. package/dist/esm/tailwind/index.js.map +1 -1
  1543. package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -1
  1544. package/dist/esm/testing/app-shell-placement-coverage.js +6 -2
  1545. package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -1
  1546. package/dist/esm/testing/mock-builders.d.ts +13 -1
  1547. package/dist/esm/testing/mock-builders.d.ts.map +1 -1
  1548. package/dist/esm/testing/mock-builders.js +35 -1
  1549. package/dist/esm/testing/mock-builders.js.map +1 -1
  1550. package/dist/esm/testing/rmm-helpers.d.ts +5 -3
  1551. package/dist/esm/testing/rmm-helpers.d.ts.map +1 -1
  1552. package/dist/esm/testing/rmm-helpers.js +3 -0
  1553. package/dist/esm/testing/rmm-helpers.js.map +1 -1
  1554. package/dist/esm/testing/test-providers.d.ts.map +1 -1
  1555. package/dist/esm/testing/test-providers.js +3 -0
  1556. package/dist/esm/testing/test-providers.js.map +1 -1
  1557. package/package.json +7 -6
  1558. package/dist/esm/components/flows-actors/flow-node.d.ts +0 -28
  1559. package/dist/esm/components/flows-actors/flow-node.d.ts.map +0 -1
  1560. package/dist/esm/components/flows-actors/flow-node.js +0 -115
  1561. package/dist/esm/components/flows-actors/flow-node.js.map +0 -1
  1562. package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts +0 -30
  1563. package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts.map +0 -1
  1564. package/dist/esm/components/resources/CollectionSelectionHeaderRail.js +0 -17
  1565. package/dist/esm/components/resources/CollectionSelectionHeaderRail.js.map +0 -1
  1566. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"launcher-runtime-availability.js","sourceRoot":"","sources":["../../../../../src/core/navigation/launcher-runtime-availability.ts"],"names":[],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\nimport type { AppScopeValue } from '~wildo-frontend-lib/core/scope/scope.frontend.schemas';\nimport { useAppModeSafe } from '~wildo-frontend-lib/core/mode/AppModeContext';\nimport { useAppScopeSafe } from '~wildo-frontend-lib/core/scope/useAppScope';\nimport { useUserOrgs } from '~wildo-frontend-lib/core/security/useUserOrgs';\nimport { useFeatures } from '~wildo-frontend-lib/core/features/useFeatures';\nimport { useBillingSafe } from '~wildo-frontend-lib/core/billing/useBilling';\nimport { CoreFeature } from '@wildo-ai/saas-models';\nimport {\n SidebarSectionContentKind,\n type AppModeDefinition,\n type CommandMenuCommand,\n type ControlPanelItem,\n type HotkeyBinding,\n type LauncherRuntimeAvailabilityConfig,\n type MenubarLauncherItem,\n type QuickActionItem,\n type SidebarItem,\n type SidebarSection,\n type SidebarSection_NavigationList,\n type ToolbarItem,\n} from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\n\nexport interface LauncherRuntimeAvailabilityContext {\n activeMode: string | null;\n availableModes: AppModeDefinition[];\n allScopeValues: Record<string, AppScopeValue>;\n userRoles: string[];\n resolvedFeatures: string[];\n runtimeCapabilities: Record<string, boolean>;\n}\n\n/**\n * Centralized runtime signals used by declarative launcher availability.\n *\n * v1 only evaluates `runtimeCapabilities`, but the broader context is exposed so\n * the same hook can remain the single source of truth when future launcher\n * slices need more runtime information.\n */\nexport function useLauncherRuntimeAvailabilityContext(): LauncherRuntimeAvailabilityContext {\n const appMode = useAppModeSafe();\n const appScope = useAppScopeSafe();\n const { permissions } = useUserOrgs();\n const { resolvedFeatures, isFeatureOffered } = useFeatures();\n const billing = useBillingSafe();\n\n // Enterprise-config features (SSO / SCIM / SIEM / webhooks) are gated by the\n // framework FEATURE system, along the correct axis. This capability is the\n // app-shell SURVIVAL filter (`requiredCapabilities`) — false → the item is\n // removed entirely — so it must answer \"does this app OFFER feature X?\", NOT\n // \"is the current org ENTITLED to it?\". Using `isFeatureOffered` (entitled OR\n // reachable via an upgrade/add-on) means a billing-on org whose plan lacks the\n // feature still SURVIVES the filter and the section can render an upgrade/add-on\n // prompt via {@link FeatureGate} + `unavailabilityPolicy`, instead of vanishing.\n // Billing off → offered == entitled, so behaviour is unchanged there. Entitlement\n // itself is enforced at render time (FeatureGate) and by the backend FeatureGate.\n const ssoEnabled = isFeatureOffered(CoreFeature.SINGLE_SIGN_ON);\n const scimEnabled = isFeatureOffered(CoreFeature.DIRECTORY_PROVISIONING);\n const siemEnabled = isFeatureOffered(CoreFeature.SECURITY_EVENT_EXPORT);\n const webhooksEnabled = isFeatureOffered(CoreFeature.M2M_WEBHOOK_DELIVERY);\n\n return useMemo(() => ({\n activeMode: appMode?.activeMode ?? null,\n availableModes: appMode?.availableModes ?? [],\n allScopeValues: appScope?.allScopeValues ?? {},\n userRoles: permissions?.appLevel ?? [],\n resolvedFeatures: resolvedFeatures?.features ?? [],\n runtimeCapabilities: {\n billingEnabled: Boolean(billing?.isEnabled),\n ssoEnabled,\n scimEnabled,\n siemEnabled,\n webhooksEnabled,\n },\n }), [\n appMode?.activeMode,\n appMode?.availableModes,\n appScope?.allScopeValues,\n permissions?.appLevel,\n resolvedFeatures?.features,\n billing?.isEnabled,\n ssoEnabled,\n scimEnabled,\n siemEnabled,\n webhooksEnabled,\n ]);\n}\n\n/**\n * v1 runtime availability is intentionally capability-only.\n *\n * `requiredFeatures` remains the canonical plan/subscription gate later in the\n * launcher resolution + surface rendering pipeline.\n */\nexport function isLauncherRuntimeAvailabilitySatisfied(\n config: LauncherRuntimeAvailabilityConfig | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): boolean {\n if (!config?.requiredCapabilities?.length) return true;\n\n return config.requiredCapabilities.every(capability => Boolean(context.runtimeCapabilities[capability]));\n}\n\nfunction filterSidebarItemsByRuntimeAvailability(\n items: SidebarItem[],\n context: LauncherRuntimeAvailabilityContext,\n): SidebarItem[] {\n return items.flatMap(item => {\n if (!isLauncherRuntimeAvailabilitySatisfied(item.runtimeAvailability, context)) {\n return [];\n }\n\n if (!item.children?.length) {\n return [item];\n }\n\n return [{\n ...item,\n children: filterSidebarItemsByRuntimeAvailability(item.children, context),\n }];\n });\n}\n\nfunction filterNavigationListSectionByRuntimeAvailability(\n section: SidebarSection_NavigationList,\n context: LauncherRuntimeAvailabilityContext,\n): SidebarSection_NavigationList {\n return {\n ...section,\n children: filterSidebarItemsByRuntimeAvailability(section.children, context),\n };\n}\n\nexport function filterSidebarSectionsByRuntimeAvailability(\n sections: SidebarSection[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): SidebarSection[] | undefined {\n if (!sections?.length) return sections;\n\n const filteredSections: SidebarSection[] = [];\n\n for (const section of sections) {\n if (!isLauncherRuntimeAvailabilitySatisfied(section.runtimeAvailability, context)) {\n continue;\n }\n\n if (section.contentKind === SidebarSectionContentKind.NAVIGATION_LIST) {\n filteredSections.push(filterNavigationListSectionByRuntimeAvailability(section, context));\n continue;\n }\n\n filteredSections.push(section);\n }\n\n return filteredSections;\n}\n\nexport function filterCommandMenuCommandsByRuntimeAvailability(\n commands: CommandMenuCommand[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): CommandMenuCommand[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(commands, context);\n}\n\ntype RuntimeAvailabilityFlatLauncherItem = {\n runtimeAvailability?: LauncherRuntimeAvailabilityConfig;\n};\n\nexport function filterFlatLauncherItemsByRuntimeAvailability<T extends RuntimeAvailabilityFlatLauncherItem>(\n items: T[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): T[] | undefined {\n if (!items?.length) return items;\n\n return items.filter(item =>\n isLauncherRuntimeAvailabilitySatisfied(item.runtimeAvailability, context),\n );\n}\n\nexport function filterQuickActionItemsByRuntimeAvailability(\n items: QuickActionItem[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): QuickActionItem[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(items, context);\n}\n\nexport function filterToolbarItemsByRuntimeAvailability(\n items: ToolbarItem[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): ToolbarItem[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(items, context);\n}\n\nexport function filterControlPanelItemsByRuntimeAvailability(\n items: ControlPanelItem[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): ControlPanelItem[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(items, context);\n}\n\nexport function filterHotkeyBindingsByRuntimeAvailability(\n bindings: HotkeyBinding[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): HotkeyBinding[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(bindings, context);\n}\n\nexport function filterMenubarItemsByRuntimeAvailability(\n items: MenubarLauncherItem[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): MenubarLauncherItem[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(items, context);\n}\n"]}
1
+ {"version":3,"file":"launcher-runtime-availability.js","sourceRoot":"","sources":["../../../../../src/core/navigation/launcher-runtime-availability.ts"],"names":[],"mappings":"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","sourcesContent":["import { useContext, useMemo } from 'react';\nimport type { AppScopeValue } from '~wildo-frontend-lib/core/scope/scope.frontend.schemas';\nimport { useAppModeSafe } from '~wildo-frontend-lib/core/mode/AppModeContext';\nimport { useAppScopeSafe } from '~wildo-frontend-lib/core/scope/useAppScope';\nimport { UserOrgsContext } from '~wildo-frontend-lib/core/security/UserOrgsContext';\nimport { useApplicationRoleTables } from '~wildo-frontend-lib/core/security/useApplicationRoleTables';\nimport { FeaturesContext } from '~wildo-frontend-lib/core/features/FeaturesContext';\nimport { useBillingSafe } from '~wildo-frontend-lib/core/billing/useBilling';\nimport { ApplicationContext } from '~wildo-frontend-lib/core/runtime/ApplicationContext.shared';\nimport {\n deriveRelationshipShapeCapabilities,\n deriveRelationshipSideCapabilities,\n type RelationshipShapeCapability,\n type RelationshipSideCapability,\n type RelationshipCapabilityInput,\n} from '~wildo-frontend-lib/core/config/relationship-side-capabilities.frontend.utils';\nimport {\n deriveDirectoryProvisioningCapabilities,\n isUnrevokedScimTokenProbeNeeded,\n} from '~wildo-frontend-lib/core/config/directory-provisioning-capabilities.frontend.utils';\nimport { PROFESSIONAL_QUALIFICATIONS_DECLARED_CAPABILITY } from '~wildo-frontend-lib/core/config/engine-settings-destinations';\nimport { deriveDecisionInboxCapabilities } from '~wildo-frontend-lib/core/config/decision-inbox-capability.frontend.utils';\nimport { useCurrentOrganizationHoldsUnrevokedScimToken } from './useCurrentOrganizationHoldsUnrevokedScimToken';\nimport { CoreFeature, isOrganizationTypeDirectoryProvisioned } from '@wildo-ai/saas-models';\nimport { type LauncherEffectiveRoles, viewerHoldsOneOfRoles } from './launcher-resolution';\nimport {\n SidebarSectionContentKind,\n type AppModeDefinition,\n type CommandMenuCommand,\n type ControlPanelItem,\n type HotkeyBinding,\n type LauncherRuntimeAvailabilityConfig,\n type MenubarLauncherItem,\n type QuickActionItem,\n type SidebarItem,\n type SidebarSection,\n type SidebarSection_NavigationList,\n type ToolbarItem,\n} from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\n\nexport interface LauncherRuntimeAvailabilityContext {\n activeMode: string | null;\n availableModes: AppModeDefinition[];\n allScopeValues: Record<string, AppScopeValue>;\n effectiveRoles: LauncherEffectiveRoles;\n resolvedFeatures: string[];\n runtimeCapabilities: Record<string, boolean>;\n}\n\n/**\n * Centralized runtime signals used by declarative launcher availability.\n *\n * The filter evaluates `runtimeCapabilities` and `effectiveRoles`; the broader context is exposed so the same hook\n * stays the single source of truth when future launcher slices need more runtime information.\n */\n/**\n * The viewer's roles, the ONE place they are derived for the shell's visibility checks (#2376): their application\n * roles, their roles in the CURRENT organization, and the application's role tables to expand them against.\n *\n * Read from the session context without the throwing `useUserOrgs`, so a surface outside the session provider gets a\n * viewer who holds no role. Roles not loaded yet are empty too (see `LauncherEffectiveRoles`): a role-gated entry\n * appears once they arrive, never offered first and withdrawn after.\n */\nexport function useViewerEffectiveRoles(): LauncherEffectiveRoles {\n return useViewerEffectiveRolesInOrganization(undefined);\n}\n\n/**\n * The viewer's roles as they stand IN ONE ORGANIZATION (#2473): the same derivation as {@link useViewerEffectiveRoles},\n * with the organization roles read for `organizationId` instead of the current organization.\n *\n * For a decision about a record of another tenant. A platform operator who opened a tenant through the directory holds\n * no role in that tenant, whatever they hold in their own current organization, and offering them a write on the\n * strength of their own organization's roles would offer an edit the backend refuses (and records as an attempted\n * crossing). `undefined` means the current organization.\n */\nexport function useViewerEffectiveRolesInOrganization(organizationId: string | undefined): LauncherEffectiveRoles {\n const permissions = useContext(UserOrgsContext)?.permissions ?? null;\n const currentOrganizationId = useAppScopeSafe()?.currentOrganizationId ?? null;\n const roleTables = useApplicationRoleTables();\n const scopeOrganizationId = organizationId ?? currentOrganizationId;\n return useMemo(() => ({\n applicationRoles: permissions?.appLevel ?? [],\n organizationRoles: (scopeOrganizationId && permissions?.organizations?.[scopeOrganizationId]) || [],\n roleTables,\n organizationId: scopeOrganizationId,\n accessProfile: permissions?.accessProfile ?? null,\n }), [permissions, scopeOrganizationId, roleTables]);\n}\n\n/**\n * Which sides of which relationship kinds the CURRENT organization's type can take (#1597, #2722), as the runtime\n * capabilities the relationship settings and forms require. Read from the declaration\n * (`appConfig.organizationRelationships` and `appConfig.organizationTypes`), the organizations the session has loaded,\n * and the current organization; `false` everywhere until all are known. Read without the throwing hooks, so a surface\n * outside the providers is offered neither side.\n */\nfunction useRelationshipCapabilityInput(): RelationshipCapabilityInput {\n const appConfig = useContext(ApplicationContext)?.appConfig;\n const organizationRelationships = appConfig?.organizationRelationships;\n const organizationTypes = appConfig?.organizationTypes as RelationshipCapabilityInput['organizationTypes'];\n const organizations = useContext(UserOrgsContext)?.organizations;\n const currentOrganizationId = useAppScopeSafe()?.currentOrganizationId ?? null;\n return useMemo(\n () => ({ organizationRelationships, organizationTypes, organizations, currentOrganizationId }),\n [organizationRelationships, organizationTypes, organizations, currentOrganizationId],\n );\n}\n\nexport function useRelationshipSideCapabilities(): Record<RelationshipSideCapability, boolean> {\n const input = useRelationshipCapabilityInput();\n return useMemo(() => deriveRelationshipSideCapabilities(input), [input]);\n}\n\n/** Where the operator stands in the kinds the current organization takes a side in (#2618, #2722), as runtime capabilities. */\nexport function useRelationshipShapeCapabilities(): Record<RelationshipShapeCapability, boolean> {\n const input = useRelationshipCapabilityInput();\n return useMemo(() => deriveRelationshipShapeCapabilities(input), [input]);\n}\n\n/** The CURRENT organization's declared type, from the organizations the session has loaded; `undefined` until known. */\nfunction useCurrentOrganizationType(): string | undefined {\n const organizations = useContext(UserOrgsContext)?.organizations;\n const currentOrganizationId = useAppScopeSafe()?.currentOrganizationId ?? null;\n return useMemo(() => {\n if (!currentOrganizationId) return undefined;\n const type = organizations?.find((organization) => organization._id === currentOrganizationId)?.type;\n return typeof type === 'string' && type.length > 0 ? type : undefined;\n }, [organizations, currentOrganizationId]);\n}\n\n/**\n * Whether a directory may provision the CURRENT organization (#2613): its declared type says `scimProvisioning`, by\n * the one rule the SCIM API, token generation and the directory-managed check also read. `false` until the declaration,\n * the organizations and the current organization are known, so SCIM settings never appear first and vanish after.\n */\nexport function useCurrentOrganizationDirectoryProvisioned(): boolean {\n const organizationTypes = useContext(ApplicationContext)?.appConfig?.organizationTypes;\n const currentType = useCurrentOrganizationType();\n return useMemo(\n () => isOrganizationTypeDirectoryProvisioned(organizationTypes as never, currentType),\n [organizationTypes, currentType],\n );\n}\n\n/** Outside the features provider nothing is offered. Module-level, so the memo below sees one identity. */\nconst offersNoFeature = (_featureId: string): boolean => false;\n\nexport function useLauncherRuntimeAvailabilityContext(): LauncherRuntimeAvailabilityContext {\n const appMode = useAppModeSafe();\n const appScope = useAppScopeSafe();\n const effectiveRoles = useViewerEffectiveRoles();\n // Read without the throwing `useFeatures`, like the roles above: a surface outside the features provider (a resource\n // action bar in an isolated host, a test) gets a shell that offers no feature rather than a crash. Inside the\n // application every reader sits under the provider, so nothing there changes.\n const features = useContext(FeaturesContext);\n const resolvedFeatures = features?.resolvedFeatures;\n const isFeatureOffered = features?.isFeatureOffered ?? offersNoFeature;\n const billing = useBillingSafe();\n\n // Enterprise-config features (SSO / SCIM / SIEM / webhooks) are gated by the\n // framework FEATURE system, along the correct axis. This capability is the\n // app-shell SURVIVAL filter (`requiredCapabilities`) — false → the item is\n // removed entirely — so it must answer \"does this app OFFER feature X?\", NOT\n // \"is the current org ENTITLED to it?\". Using `isFeatureOffered` (entitled OR\n // reachable via an upgrade/add-on) means a billing-on org whose plan lacks the\n // feature still SURVIVES the filter and the section can render an upgrade/add-on\n // prompt via {@link FeatureGate} + `unavailabilityPolicy`, instead of vanishing.\n // Billing off → offered == entitled, so behaviour is unchanged there. Entitlement\n // itself is enforced at render time (FeatureGate) and by the backend FeatureGate.\n const ssoEnabled = isFeatureOffered(CoreFeature.SINGLE_SIGN_ON);\n // SCIM also needs the current organization's TYPE to admit a directory (#2613): the feature can be offered while the\n // type says no, and then the settings would mint a token the SCIM API refuses. Where the type says no but the\n // organization still holds an unrevoked token, the settings stay reachable with that token's Revoke and nothing else\n // (#2649); whether it holds one is the one capability the shell has to ask the server.\n const directoryProvisioningOffered = isFeatureOffered(CoreFeature.DIRECTORY_PROVISIONING);\n const currentOrganizationType = useCurrentOrganizationType();\n const currentOrganizationDirectoryProvisioned = useCurrentOrganizationDirectoryProvisioned();\n const holdsUnrevokedScimToken = useCurrentOrganizationHoldsUnrevokedScimToken(\n isUnrevokedScimTokenProbeNeeded({\n featureOffered: directoryProvisioningOffered,\n organizationTypeKnown: currentOrganizationType !== undefined,\n organizationTypeDirectoryProvisioned: currentOrganizationDirectoryProvisioned,\n }),\n effectiveRoles,\n );\n const directoryProvisioningCapabilities = useMemo(\n () => deriveDirectoryProvisioningCapabilities({\n featureOffered: directoryProvisioningOffered,\n organizationTypeDirectoryProvisioned: currentOrganizationDirectoryProvisioned,\n holdsUnrevokedToken: holdsUnrevokedScimToken,\n }),\n [directoryProvisioningOffered, currentOrganizationDirectoryProvisioned, holdsUnrevokedScimToken],\n );\n const siemEnabled = isFeatureOffered(CoreFeature.SECURITY_EVENT_EXPORT);\n const webhooksEnabled = isFeatureOffered(CoreFeature.M2M_WEBHOOK_DELIVERY);\n\n // Which side of an organization relationship the CURRENT organization's type can take (#1597): read from the\n // declaration, so a representing organization is not offered a granting organization's register and a granting\n // organization is not offered a representing organization's list of the organizations it represents.\n const relationshipSides = useRelationshipSideCapabilities();\n // Which form the relationship verbs take in this application's shape (#2618): the operator asked without a name, or\n // the other organization named.\n const relationshipShape = useRelationshipShapeCapabilities();\n // Who is offered the decision inbox (#2577): a holder of an answering role in ANY organization entry the server reads\n // an answerer from, not only in the current organization. Read without the throwing `useApplication`.\n const decisionInboxOffer = useContext(ApplicationContext)?.appConfig?.decisionInbox;\n // Whether the application declares any professional qualification kind (#2967): the qualifications settings need one.\n const professionalQualificationsDeclared = Object.keys(useContext(ApplicationContext)?.appConfig?.professionalQualificationKinds ?? {}).length > 0;\n const decisionInbox = useMemo(\n () => deriveDecisionInboxCapabilities({ offer: decisionInboxOffer, effectiveRoles }),\n [decisionInboxOffer, effectiveRoles],\n );\n\n return useMemo(() => ({\n activeMode: appMode?.activeMode ?? null,\n availableModes: appMode?.availableModes ?? [],\n allScopeValues: appScope?.allScopeValues ?? {},\n effectiveRoles,\n resolvedFeatures: resolvedFeatures?.features ?? [],\n runtimeCapabilities: {\n billingEnabled: Boolean(billing?.isEnabled),\n ssoEnabled,\n ...directoryProvisioningCapabilities,\n siemEnabled,\n webhooksEnabled,\n ...relationshipSides,\n ...relationshipShape,\n ...decisionInbox,\n [PROFESSIONAL_QUALIFICATIONS_DECLARED_CAPABILITY]: professionalQualificationsDeclared,\n },\n }), [\n appMode?.activeMode,\n appMode?.availableModes,\n appScope?.allScopeValues,\n effectiveRoles,\n resolvedFeatures?.features,\n billing?.isEnabled,\n ssoEnabled,\n directoryProvisioningCapabilities,\n siemEnabled,\n webhooksEnabled,\n relationshipSides,\n relationshipShape,\n decisionInbox,\n professionalQualificationsDeclared,\n ]);\n}\n\n/**\n * Whether a launcher item (or a Settings Hub section) survives the app-shell filtering pass: every required runtime\n * capability is on, and the viewer holds one of its `requiredRoles` (#2376).\n *\n * `requiredFeatures` remains the canonical plan/subscription gate later in the\n * launcher resolution + surface rendering pipeline.\n */\nexport function isLauncherRuntimeAvailabilitySatisfied(\n config: LauncherRuntimeAvailabilityConfig | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): boolean {\n const capabilitiesOn = (config?.requiredCapabilities ?? []).every(capability => Boolean(context.runtimeCapabilities[capability]));\n return capabilitiesOn && viewerHoldsOneOfRoles(config?.requiredRoles, context.effectiveRoles);\n}\n\nfunction filterSidebarItemsByRuntimeAvailability(\n items: SidebarItem[],\n context: LauncherRuntimeAvailabilityContext,\n): SidebarItem[] {\n return items.flatMap(item => {\n if (!isLauncherRuntimeAvailabilitySatisfied(item.runtimeAvailability, context)) {\n return [];\n }\n\n if (!item.children?.length) {\n return [item];\n }\n\n return [{\n ...item,\n children: filterSidebarItemsByRuntimeAvailability(item.children, context),\n }];\n });\n}\n\nfunction filterNavigationListSectionByRuntimeAvailability(\n section: SidebarSection_NavigationList,\n context: LauncherRuntimeAvailabilityContext,\n): SidebarSection_NavigationList {\n return {\n ...section,\n children: filterSidebarItemsByRuntimeAvailability(section.children, context),\n };\n}\n\nexport function filterSidebarSectionsByRuntimeAvailability(\n sections: SidebarSection[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): SidebarSection[] | undefined {\n if (!sections?.length) return sections;\n\n const filteredSections: SidebarSection[] = [];\n\n for (const section of sections) {\n if (!isLauncherRuntimeAvailabilitySatisfied(section.runtimeAvailability, context)) {\n continue;\n }\n\n if (section.contentKind === SidebarSectionContentKind.NAVIGATION_LIST) {\n filteredSections.push(filterNavigationListSectionByRuntimeAvailability(section, context));\n continue;\n }\n\n filteredSections.push(section);\n }\n\n return filteredSections;\n}\n\nexport function filterCommandMenuCommandsByRuntimeAvailability(\n commands: CommandMenuCommand[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): CommandMenuCommand[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(commands, context);\n}\n\ntype RuntimeAvailabilityFlatLauncherItem = {\n runtimeAvailability?: LauncherRuntimeAvailabilityConfig;\n};\n\nexport function filterFlatLauncherItemsByRuntimeAvailability<T extends RuntimeAvailabilityFlatLauncherItem>(\n items: T[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): T[] | undefined {\n if (!items?.length) return items;\n\n return items.filter(item =>\n isLauncherRuntimeAvailabilitySatisfied(item.runtimeAvailability, context),\n );\n}\n\nexport function filterQuickActionItemsByRuntimeAvailability(\n items: QuickActionItem[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): QuickActionItem[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(items, context);\n}\n\nexport function filterToolbarItemsByRuntimeAvailability(\n items: ToolbarItem[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): ToolbarItem[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(items, context);\n}\n\nexport function filterControlPanelItemsByRuntimeAvailability(\n items: ControlPanelItem[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): ControlPanelItem[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(items, context);\n}\n\nexport function filterHotkeyBindingsByRuntimeAvailability(\n bindings: HotkeyBinding[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): HotkeyBinding[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(bindings, context);\n}\n\nexport function filterMenubarItemsByRuntimeAvailability(\n items: MenubarLauncherItem[] | undefined,\n context: LauncherRuntimeAvailabilityContext,\n): MenubarLauncherItem[] | undefined {\n return filterFlatLauncherItemsByRuntimeAvailability(items, context);\n}\n"]}
@@ -2,9 +2,10 @@
2
2
  * The CASCADING ORCHESTRATOR: what fills the zones a reader did not click.
3
3
  *
4
4
  * Two functions, one concern. When content lands in an adjacent zone, the zones ABOVE it must show
5
- * the ancestors that content belongs to, or the reader sees a record with no context beside it —
6
- * `cascadeAncestorZones` for a record with a parent chain, `cascadeSiblingListIntoPrimary` for a FLAT
7
- * resource whose detail was split out of primary (#203).
5
+ * the context that content belongs to, or the reader sees a record with nothing beside it.
6
+ * `cascadeAncestorZones` places a record's ANCESTORS. `cascadeSiblingListIntoPrimary` places a record's
7
+ * OWN collection in PRIMARY, in two roles: beside a FLAT resource's detail split out of primary (#203),
8
+ * and in place of an ancestor that PRIMARY cannot hold (#2115, see the PRIMARY rule in the cascade).
8
9
  *
9
10
  * Split out of `useNavigationController.ts` on 2026-09-25. It is the ONE piece both halves of that
10
11
  * module used — the controller cascades after a click, the router-sync hooks cascade after a deep
@@ -15,21 +16,22 @@ import { NavigationZoneState, NavigationContent, NavigationContentType } from '.
15
16
  import { NavigationZoneName } from '@wildo-ai/saas-models';
16
17
  import type { FrontendResource_ParentResourceRequirement } from '../../core/resources/resource-path.frontend.schemas';
17
18
  import type { FrontendResourcesRegistry } from '../../core/resources/resources.frontend.schemas';
19
+ import { NavigationSource } from './navigation.schemas';
18
20
  /**
19
- * Auto-populate ancestor zones when navigating to SECONDARY or COMPANION.
21
+ * Put a record's OWN collection into PRIMARY, in the record's parent context.
20
22
  *
21
- * When a resource is placed in SECONDARY or COMPANION, its ancestor resources
22
- * should be visible in the zones above it. This function checks which
23
- * ancestor zones are empty and populates them with the appropriate content.
23
+ * Two callers, one shape — the list-detail pairing, which the zone-dependency cleanup keeps (a pane
24
+ * beside a collection of its own type):
24
25
  *
25
- * Rules:
26
- * - Only cascades for resource operations (not views)
27
- * - Only populates EMPTY zones (never overwrites user-navigated content)
28
- * - Uses `parentResourcesRequirements` to determine ancestor chain
29
- * - Stops at primary scope ancestors (org/user level)
30
- * - Maximum 2 ancestor zones (PRIMARY + SECONDARY for a COMPANION target)
26
+ * - `useRouterSync`, for a FLAT resource whose detail was restored into SECONDARY (#203) — or, at a width
27
+ * where that pane is collapsed, pushed into PRIMARY on top of this list;
28
+ * - `cascadeAncestorZones`, in place of an ancestor PRIMARY cannot hold — a collection of another
29
+ * type, or none at all (#2115).
30
+ *
31
+ * It places nothing when the resource has no configuration or no addressable LIST: PRIMARY then stays
32
+ * empty and renders the route's Outlet. That is the one remaining way to show a record twice, and it
33
+ * needs a resource whose records are reachable while its collection is not.
31
34
  */
32
- /** Put a flat resource's LIST into PRIMARY beside a detail restored into SECONDARY (#203). */
33
35
  export declare function cascadeSiblingListIntoPrimary(params: {
34
36
  resourceType: string;
35
37
  contextResourceIdentifiers: Record<string, string>;
@@ -37,7 +39,35 @@ export declare function cascadeSiblingListIntoPrimary(params: {
37
39
  registry: FrontendResourcesRegistry;
38
40
  emit: (event: string, payload: any) => void;
39
41
  getZoneState: (zone: NavigationZoneName) => NavigationZoneState;
42
+ /**
43
+ * Provenance stamped on the emitted event — `URL_SYNC` by default, `CONTROLLER` from the ancestor
44
+ * cascade, which stamps its own ancestor placements the same way on both paths. Recorded for
45
+ * diagnostics (the navigation log); nothing branches on it.
46
+ */
47
+ navigationSource?: NavigationSource;
48
+ /**
49
+ * Replace what PRIMARY holds instead of leaving it alone. The ancestor cascade passes its own
50
+ * `overwriteExisting` here: a URL-first rebuild REPLACES the ancestor zones so they match the URL, and
51
+ * this placement stands in for an ancestor, so it must replace too. Without it, stale primary content
52
+ * would survive a rebuild that every other ancestor placement overwrites.
53
+ */
54
+ replaceExisting?: boolean;
40
55
  }): void;
56
+ /**
57
+ * Auto-populate ancestor zones when navigating to SECONDARY or COMPANION.
58
+ *
59
+ * When a resource is placed in SECONDARY or COMPANION, its ancestor resources
60
+ * should be visible in the zones above it.
61
+ *
62
+ * Rules:
63
+ * - Only cascades for resource operations (not views)
64
+ * - Populates EMPTY zones only — unless `overwriteExisting` (URL-first reconstruction), which replaces
65
+ * them so the visible stack matches the authoritative browser URL
66
+ * - Uses `parentResourcesRequirements` to determine ancestor chain
67
+ * - Stops at primary scope ancestors (org/user level)
68
+ * - Maximum 2 ancestor zones (PRIMARY + SECONDARY for a COMPANION target)
69
+ * - PRIMARY never receives a collection of another type than the pane below it (see the rule in the loop)
70
+ */
41
71
  export declare function cascadeAncestorZones(targetContent: NavigationContent & {
42
72
  contentType: NavigationContentType.RESOURCE_OPERATION;
43
73
  }, resolvedZone: NavigationZoneName, registry: FrontendResourcesRegistry, contextIdentifiers: Record<string, string>, emit: (event: string, payload: any) => void, routerNavigate: ReturnType<typeof useNavigate> | null, getZoneState: (zone: NavigationZoneName) => NavigationZoneState, options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-cascade.d.ts","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation-cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,mEAAmE,CAAC;AACpI,OAAO,KAAK,EACV,yBAAyB,EAC1B,MAAM,+DAA+D,CAAC;AAgBvE;;;;;;;;;;;;;GAaG;AACH,8FAA8F;AAC9F,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,2BAA2B,EAAE,0CAA0C,EAAE,CAAC;IAC1E,QAAQ,EAAE,yBAAyB,CAAC;IACpC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,mBAAmB,CAAC;CACjE,GAAG,IAAI,CA+DP;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,iBAAiB,GAAG;IAAE,WAAW,EAAE,qBAAqB,CAAC,kBAAkB,CAAA;CAAE,EAC5F,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,yBAAyB,EACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1C,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,EAC3C,cAAc,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,EACrD,YAAY,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,mBAAmB,EAC/D,OAAO,CAAC,EAAE;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GACA,IAAI,CA0JN"}
1
+ {"version":3,"file":"navigation-cascade.d.ts","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation-cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,mEAAmE,CAAC;AACpI,OAAO,KAAK,EACV,yBAAyB,EAC1B,MAAM,+DAA+D,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAexD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,2BAA2B,EAAE,0CAA0C,EAAE,CAAC;IAC1E,QAAQ,EAAE,yBAAyB,CAAC;IACpC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,mBAAmB,CAAC;IAChE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,IAAI,CAiEP;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,iBAAiB,GAAG;IAAE,WAAW,EAAE,qBAAqB,CAAC,kBAAkB,CAAA;CAAE,EAC5F,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,yBAAyB,EACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1C,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,EAC3C,cAAc,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,EACrD,YAAY,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,mBAAmB,EAC/D,OAAO,CAAC,EAAE;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GACA,IAAI,CA4MN"}
@@ -2,9 +2,10 @@
2
2
  * The CASCADING ORCHESTRATOR: what fills the zones a reader did not click.
3
3
  *
4
4
  * Two functions, one concern. When content lands in an adjacent zone, the zones ABOVE it must show
5
- * the ancestors that content belongs to, or the reader sees a record with no context beside it —
6
- * `cascadeAncestorZones` for a record with a parent chain, `cascadeSiblingListIntoPrimary` for a FLAT
7
- * resource whose detail was split out of primary (#203).
5
+ * the context that content belongs to, or the reader sees a record with nothing beside it.
6
+ * `cascadeAncestorZones` places a record's ANCESTORS. `cascadeSiblingListIntoPrimary` places a record's
7
+ * OWN collection in PRIMARY, in two roles: beside a FLAT resource's detail split out of primary (#203),
8
+ * and in place of an ancestor that PRIMARY cannot hold (#2115, see the PRIMARY rule in the cascade).
8
9
  *
9
10
  * Split out of `useNavigationController.ts` on 2026-09-25. It is the ONE piece both halves of that
10
11
  * module used — the controller cascades after a click, the router-sync hooks cascade after a deep
@@ -23,23 +24,23 @@ import { logDebug, resourceOperationOwnsBrowserUrl, updateBrowserUrl } from './n
23
24
  // Cascading Orchestrator
24
25
  // ================================
25
26
  /**
26
- * Auto-populate ancestor zones when navigating to SECONDARY or COMPANION.
27
+ * Put a record's OWN collection into PRIMARY, in the record's parent context.
27
28
  *
28
- * When a resource is placed in SECONDARY or COMPANION, its ancestor resources
29
- * should be visible in the zones above it. This function checks which
30
- * ancestor zones are empty and populates them with the appropriate content.
29
+ * Two callers, one shape — the list-detail pairing, which the zone-dependency cleanup keeps (a pane
30
+ * beside a collection of its own type):
31
31
  *
32
- * Rules:
33
- * - Only cascades for resource operations (not views)
34
- * - Only populates EMPTY zones (never overwrites user-navigated content)
35
- * - Uses `parentResourcesRequirements` to determine ancestor chain
36
- * - Stops at primary scope ancestors (org/user level)
37
- * - Maximum 2 ancestor zones (PRIMARY + SECONDARY for a COMPANION target)
32
+ * - `useRouterSync`, for a FLAT resource whose detail was restored into SECONDARY (#203) — or, at a width
33
+ * where that pane is collapsed, pushed into PRIMARY on top of this list;
34
+ * - `cascadeAncestorZones`, in place of an ancestor PRIMARY cannot hold — a collection of another
35
+ * type, or none at all (#2115).
36
+ *
37
+ * It places nothing when the resource has no configuration or no addressable LIST: PRIMARY then stays
38
+ * empty and renders the route's Outlet. That is the one remaining way to show a record twice, and it
39
+ * needs a resource whose records are reachable while its collection is not.
38
40
  */
39
- /** Put a flat resource's LIST into PRIMARY beside a detail restored into SECONDARY (#203). */
40
41
  export function cascadeSiblingListIntoPrimary(params) {
41
42
  const { resourceType, contextResourceIdentifiers, parentResourcesRequirements, registry, emit, getZoneState } = params;
42
- if (getZoneState(NavigationZoneName.PRIMARY).stack.length > 0)
43
+ if (!params.replaceExisting && getZoneState(NavigationZoneName.PRIMARY).stack.length > 0)
43
44
  return;
44
45
  const resourceConfig = registry.resourceConfigurations?.[resourceType];
45
46
  if (!resourceConfig)
@@ -50,8 +51,10 @@ export function cascadeSiblingListIntoPrimary(params) {
50
51
  * The DEFAULT addressable LIST, picked WITHOUT the context-addressability check.
51
52
  * `pickPreferredOperationForCoreSemanticAddressability` asks "reachable given the PARENT context",
52
53
  * which a flat STANDALONE resource can never satisfy — it answers false for an operation that is
53
- * plainly addressable and reachable from the sidebar. `allowBulk` is required too: a LIST addresses
54
- * a COLLECTION and the semantic filter drops bulk operations by default.
54
+ * plainly addressable and reachable from the sidebar. For a NESTED resource (the #2115 role) the
55
+ * parent ids it needs are in `contextResourceIdentifiers`, and the URL below is resolved from them.
56
+ * `allowBulk` is required too: a LIST addresses a COLLECTION and the semantic filter drops bulk
57
+ * operations by default.
55
58
  */
56
59
  const listOperation = pickPreferredOperationForCoreSemantic(getOperationsForCoreSemantic(resourceConfig.operations ?? [], CoreResourceOperation.LIST, { allowBulk: true })
57
60
  .filter((candidate) => isOperationAddressable(candidate.operationFrontendConfig)), CoreResourceOperation.LIST, { allowBulk: true });
@@ -85,10 +88,25 @@ export function cascadeSiblingListIntoPrimary(params) {
85
88
  ...(listUrl ? { urlPath: listUrl } : {}),
86
89
  stackEntryId: NavigationUtils.generateStackEntryId(),
87
90
  initiator: { sourceZone: NavigationZoneName.PRIMARY },
88
- navigationSource: NavigationSource.URL_SYNC,
91
+ navigationSource: params.navigationSource ?? NavigationSource.URL_SYNC,
89
92
  transition: NavigationTransition.REPLACE,
90
93
  });
91
94
  }
95
+ /**
96
+ * Auto-populate ancestor zones when navigating to SECONDARY or COMPANION.
97
+ *
98
+ * When a resource is placed in SECONDARY or COMPANION, its ancestor resources
99
+ * should be visible in the zones above it.
100
+ *
101
+ * Rules:
102
+ * - Only cascades for resource operations (not views)
103
+ * - Populates EMPTY zones only — unless `overwriteExisting` (URL-first reconstruction), which replaces
104
+ * them so the visible stack matches the authoritative browser URL
105
+ * - Uses `parentResourcesRequirements` to determine ancestor chain
106
+ * - Stops at primary scope ancestors (org/user level)
107
+ * - Maximum 2 ancestor zones (PRIMARY + SECONDARY for a COMPANION target)
108
+ * - PRIMARY never receives a collection of another type than the pane below it (see the rule in the loop)
109
+ */
92
110
  export function cascadeAncestorZones(targetContent, resolvedZone, registry, contextIdentifiers, emit, routerNavigate, getZoneState, options) {
93
111
  const parentRequirements = targetContent.resourceContext.parentResourcesRequirements;
94
112
  if (!parentRequirements || parentRequirements.length === 0)
@@ -157,7 +175,12 @@ export function cascadeAncestorZones(targetContent, resolvedZone, registry, cont
157
175
  ancestorContextIdentifiers[contextKey] = id;
158
176
  }
159
177
  }
160
- const ancestorSelfId = contextIdentifiers[ancestorResourceType];
178
+ // The ancestor's own id. Its FOREIGN-KEY slot names it whenever the context carries one; the TYPE slot does
179
+ // only for an ancestor of another type. For a self-referencing ancestor (the target's own type) the type slot
180
+ // is the TARGET's own id — a self-referencing parent lives in its foreign-key slot (#2143) — so reading it
181
+ // there placed the record as its own parent (a BACKWARD self-relationship cascades the parent's READ).
182
+ const ancestorSelfId = (ancestor.foreignKeyField ? contextIdentifiers[ancestor.foreignKeyField] : undefined)
183
+ ?? (ancestorResourceType !== targetResourceType ? contextIdentifiers[ancestorResourceType] : undefined);
161
184
  const ancestorSelectionContextIdentifiers = ancestorSelfId
162
185
  ? {
163
186
  ...ancestorContextIdentifiers,
@@ -169,6 +192,51 @@ export function cascadeAncestorZones(targetContent, resolvedZone, registry, cont
169
192
  contextResourceIdentifiers: ancestorSelectionContextIdentifiers,
170
193
  contextualParameters: FrontendResourceUtils.buildContextualParameters(ancestorSelectionContextIdentifiers, registry),
171
194
  });
195
+ /*
196
+ * PRIMARY is what the zone-dependency cleanup measures SECONDARY against (`NavigationContext`, its top
197
+ * entry only; COMPANION is kept when it belongs to PRIMARY's record or to the SECONDARY record beside
198
+ * it). A collection in PRIMARY keeps the pane below it only when it holds that pane's OWN type — the
199
+ * list-detail pairing. A collection of another type (the parent's, when the parent's record has no page
200
+ * of its own) clears the very pane this cascade is placing it for (#2115). An EMPTY primary is no answer
201
+ * either: it renders the route's Outlet, which is the same record a second time.
202
+ *
203
+ * So the cascade never PLACES such a collection in PRIMARY: it places the pane below's own collection
204
+ * instead, in that pane's parent context. (It does not police what a reader put there by clicking.) In
205
+ * SECONDARY (the middle of a three-pane chain) a parent's collection clears nothing — the companion is
206
+ * still kept by the record in PRIMARY — and the resolver's fallback stands.
207
+ *
208
+ * On the click path this placement writes no browser URL, unlike an ancestor placement below: the URL
209
+ * stays the record's. A deep link writes none either way.
210
+ *
211
+ * What this cannot rescue, stated rather than hidden: a pane below whose collection is not addressable
212
+ * (or that has no configuration). Nothing is placed, PRIMARY stays empty, and it renders the route's
213
+ * Outlet — the record twice (`cascadeSiblingListIntoPrimary`).
214
+ */
215
+ const placesForeignCollectionInPrimary = zone === NavigationZoneName.PRIMARY
216
+ && (!opConfig || (NavigationUtils.isCollectionOperationContext({ operation: opConfig }) && ancestorResourceType !== childType));
217
+ if (placesForeignCollectionInPrimary) {
218
+ // The pane below's parent chain is everything up to and including this ancestor (root → leaf). For the
219
+ // nearest ancestor that is the record's whole chain.
220
+ const childParentRequirements = parentRequirements.slice(0, ancestorIndex + 1);
221
+ const childContextIdentifiers = {};
222
+ for (const req of childParentRequirements) {
223
+ const contextKey = req.foreignKeyField ?? req.resourceType;
224
+ const id = contextIdentifiers[contextKey] ?? contextIdentifiers[req.resourceType];
225
+ if (id)
226
+ childContextIdentifiers[contextKey] = id;
227
+ }
228
+ cascadeSiblingListIntoPrimary({
229
+ resourceType: childType,
230
+ contextResourceIdentifiers: childContextIdentifiers,
231
+ parentResourcesRequirements: childParentRequirements,
232
+ registry,
233
+ emit,
234
+ getZoneState,
235
+ navigationSource: NavigationSource.CONTROLLER,
236
+ replaceExisting: !!options?.overwriteExisting,
237
+ });
238
+ continue;
239
+ }
172
240
  if (!opConfig)
173
241
  continue;
174
242
  const ancestorOp = resolveEffectiveCoreOperationFromOperation(opConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-cascade.js","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation-cascade.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The CASCADING ORCHESTRATOR: what fills the zones a reader did not click.\n *\n * Two functions, one concern. When content lands in an adjacent zone, the zones ABOVE it must show\n * the ancestors that content belongs to, or the reader sees a record with no context beside it —\n * `cascadeAncestorZones` for a record with a parent chain, `cascadeSiblingListIntoPrimary` for a FLAT\n * resource whose detail was split out of primary (#203).\n *\n * Split out of `useNavigationController.ts` on 2026-09-25. It is the ONE piece both halves of that\n * module used — the controller cascades after a click, the router-sync hooks cascade after a deep\n * link — which is why it is its own module rather than living with either.\n */\n\nimport {\n useNavigate,\n} from 'react-router-dom';\nimport {\n FrontendEvents,\n} from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport {\n NavigationZoneState,\n NavigationContent,\n NavigationContentType,\n} from './navigation.schemas';\nimport {\n NavigationTransition,\n NavigationZoneName,\n CoreResourceOperation,\n} from '@wildo-ai/saas-models';\nimport type { FrontendResource_ParentResourceRequirement } from '~wildo-frontend-lib/core/resources/resource-path.frontend.schemas';\nimport type {\n FrontendResourcesRegistry,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { NavigationSource } from './navigation.schemas';\nimport { NavigationUtils } from './navigation.utils';\nimport { FrontendResourceUtils, frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { isOperationAddressable } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport {\n resolveEffectiveCoreOperationFromOperation,\n getOperationsForCoreSemantic,\n pickPreferredOperationForCoreSemantic,\n} from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\n\nimport { logDebug, resourceOperationOwnsBrowserUrl, updateBrowserUrl } from './navigation-controller-internals';\n// ================================\n// Cascading Orchestrator\n// ================================\n\n/**\n * Auto-populate ancestor zones when navigating to SECONDARY or COMPANION.\n *\n * When a resource is placed in SECONDARY or COMPANION, its ancestor resources\n * should be visible in the zones above it. This function checks which\n * ancestor zones are empty and populates them with the appropriate content.\n *\n * Rules:\n * - Only cascades for resource operations (not views)\n * - Only populates EMPTY zones (never overwrites user-navigated content)\n * - Uses `parentResourcesRequirements` to determine ancestor chain\n * - Stops at primary scope ancestors (org/user level)\n * - Maximum 2 ancestor zones (PRIMARY + SECONDARY for a COMPANION target)\n */\n/** Put a flat resource's LIST into PRIMARY beside a detail restored into SECONDARY (#203). */\nexport function cascadeSiblingListIntoPrimary(params: {\n resourceType: string;\n contextResourceIdentifiers: Record<string, string>;\n parentResourcesRequirements: FrontendResource_ParentResourceRequirement[];\n registry: FrontendResourcesRegistry;\n emit: (event: string, payload: any) => void;\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState;\n}): void {\n const { resourceType, contextResourceIdentifiers, parentResourcesRequirements, registry, emit, getZoneState } = params;\n if (getZoneState(NavigationZoneName.PRIMARY).stack.length > 0) return;\n\n const resourceConfig = registry.resourceConfigurations?.[resourceType];\n if (!resourceConfig) return;\n\n const listContextIdentifiers = { ...contextResourceIdentifiers };\n delete listContextIdentifiers[resourceType];\n\n /*\n * The DEFAULT addressable LIST, picked WITHOUT the context-addressability check.\n * `pickPreferredOperationForCoreSemanticAddressability` asks \"reachable given the PARENT context\",\n * which a flat STANDALONE resource can never satisfy — it answers false for an operation that is\n * plainly addressable and reachable from the sidebar. `allowBulk` is required too: a LIST addresses\n * a COLLECTION and the semantic filter drops bulk operations by default.\n */\n const listOperation = pickPreferredOperationForCoreSemantic(\n getOperationsForCoreSemantic(resourceConfig.operations ?? [], CoreResourceOperation.LIST, { allowBulk: true })\n .filter((candidate) => isOperationAddressable(candidate.operationFrontendConfig)),\n CoreResourceOperation.LIST,\n { allowBulk: true },\n );\n if (!listOperation) return;\n\n /*\n * The list's OWN address, which is not the same thing as writing the browser URL.\n *\n * This entry was placed address-less under the note \"the browser URL belongs to the DETAIL in\n * secondary\" — true of who WRITES the URL, and wrong as a reason to leave `urlPath` empty. An\n * entry's `urlPath` is its ADDRESS, read by everything that asks what a zone holds: `goBack`,\n * `dismissZone`, `findStructuralRouteOwner`, `zoneOwnsBrowserUrl`. Nothing here writes the\n * browser URL — this is an emit, and the controller's write lives in `navigate()`.\n *\n * Measured on the workbench, 2026-09-25: with the list address-less, `resolveZoneDismissUrl`\n * found no primary address, wrote nothing, and the pane CLOSED while the URL still named it — so\n * the next reload reopened it. `goBack` from the last pane had the identical hole, which predates\n * the dismiss control and is fixed by the same line.\n */\n const listUrl = NavigationUtils.resolveResourceUrl(\n resourceConfig as never,\n listOperation as never,\n listContextIdentifiers,\n registry.allResourceFieldIdentifiers,\n parentResourcesRequirements as never,\n )?.resolvedUrl;\n\n emit(FrontendEvents.NAVIGATION_REPLACE, {\n zone: NavigationZoneName.PRIMARY,\n content: {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType, operation: listOperation,\n contextResourceIdentifiers: listContextIdentifiers,\n parentResourcesRequirements,\n }),\n },\n ...(listUrl ? { urlPath: listUrl } : {}),\n stackEntryId: NavigationUtils.generateStackEntryId(),\n initiator: { sourceZone: NavigationZoneName.PRIMARY },\n navigationSource: NavigationSource.URL_SYNC,\n transition: NavigationTransition.REPLACE,\n });\n}\n\nexport function cascadeAncestorZones(\n targetContent: NavigationContent & { contentType: NavigationContentType.RESOURCE_OPERATION },\n resolvedZone: NavigationZoneName,\n registry: FrontendResourcesRegistry,\n contextIdentifiers: Record<string, string>,\n emit: (event: string, payload: any) => void,\n routerNavigate: ReturnType<typeof useNavigate> | null,\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState,\n options?: {\n overwriteExisting?: boolean;\n },\n): void {\n const parentRequirements = targetContent.resourceContext.parentResourcesRequirements as FrontendResource_ParentResourceRequirement[];\n if (!parentRequirements || parentRequirements.length === 0) return;\n\n // Determine which zones need population.\n // Order matters: zonesToPopulate[i] maps to ancestors[i] (nearest parent first).\n // For COMPANION target: nearest parent → SECONDARY (adjacent), furthest → PRIMARY (root).\n // This maintains the master-detail-detail convention: PRIMARY=broadest, COMPANION=most specific.\n const zonesToPopulate: NavigationZoneName[] = [];\n if (resolvedZone === NavigationZoneName.SECONDARY) {\n zonesToPopulate.push(NavigationZoneName.PRIMARY);\n } else if (resolvedZone === NavigationZoneName.COMPANION) {\n zonesToPopulate.push(NavigationZoneName.SECONDARY, NavigationZoneName.PRIMARY);\n }\n\n if (zonesToPopulate.length === 0) return;\n\n // parentResourcesRequirements is ordered root → leaf (closest ancestor last).\n // Reverse to process nearest parent first — nearest maps to adjacent zone.\n const ancestors = [...parentRequirements].reverse();\n\n const targetResourceType = targetContent.resourceContext.resourceType;\n\n for (let i = 0; i < zonesToPopulate.length && i < ancestors.length; i++) {\n const zone = zonesToPopulate[i];\n const ancestor = ancestors[i];\n\n // Skip primary scope ancestors (org, user) — these don't get a zone\n if (ancestor.isPrimaryScope) continue;\n\n // Controller-driven cascade keeps existing user context intact, but URL-first\n // reconstruction is allowed to replace ancestor zones so the visible stack\n // matches the authoritative browser URL again.\n const zoneState = getZoneState(zone);\n if (!options?.overwriteExisting && zoneState.stack.length > 0) continue;\n\n // Get ancestor resource config\n const ancestorResourceType = ancestor.resourceType;\n const ancestorConfig = registry.resourceConfigurations?.[ancestorResourceType];\n if (!ancestorConfig) continue;\n\n // Find relationship between ancestor and target (or intermediate child)\n const childType = ancestor.childResourceType\n ?? (i === 0 ? targetResourceType : ancestors[i - 1].resourceType);\n const relationship = NavigationUtils.findRelationshipBetween(\n ancestorResourceType, childType, registry, ancestor.foreignKeyField\n );\n\n // Build parent requirements for the ancestor itself:\n // The ancestor's parents are those ABOVE it in the chain (root → leaf ordering).\n // Using slice(0, index) ensures we only include entries before the ancestor,\n // not entries below it (which are its children/grandchildren, not parents).\n // Previously used filter(req => req.resourceType !== ancestorResourceType) which\n // incorrectly kept descendants as parents for non-adjacent ancestors (Bug #1).\n // `ancestors` is reversed (nearest parent first) but `parentRequirements`\n // stays root → leaf, so convert back by position instead of looking up by\n // resource type. Position-based slicing is what keeps repeated/self-ref\n // parent types from collapsing onto the first matching entry.\n const ancestorIndex = parentRequirements.length - 1 - i;\n const ancestorParentReqs = ancestorIndex > 0\n ? parentRequirements.slice(0, ancestorIndex)\n : [];\n\n // Build ancestor resource context\n const ancestorContextIdentifiers: Record<string, string> = {};\n for (const req of ancestorParentReqs) {\n const contextKey = req.foreignKeyField ?? req.resourceType;\n // Prefer the FK-keyed slot when present. Same-type parent chains store the\n // parent id under the FK field so the resource-type key can continue to\n // represent the current record.\n const id = contextIdentifiers[contextKey] ?? contextIdentifiers[req.resourceType];\n if (id) {\n ancestorContextIdentifiers[contextKey] = id;\n }\n }\n const ancestorSelfId = contextIdentifiers[ancestorResourceType];\n const ancestorSelectionContextIdentifiers = ancestorSelfId\n ? {\n ...ancestorContextIdentifiers,\n [ancestorResourceType]: ancestorSelfId,\n }\n : ancestorContextIdentifiers;\n\n const opConfig = NavigationUtils.resolveAncestorOperationConfig(\n relationship,\n ancestorConfig as any,\n {\n registry,\n contextResourceIdentifiers: ancestorSelectionContextIdentifiers,\n contextualParameters: FrontendResourceUtils.buildContextualParameters(\n ancestorSelectionContextIdentifiers,\n registry,\n ),\n },\n );\n if (!opConfig) continue;\n const ancestorOp = resolveEffectiveCoreOperationFromOperation(opConfig);\n if (ancestorSelfId && ancestorOp === CoreResourceOperation.READ) {\n ancestorContextIdentifiers[ancestorResourceType] = ancestorSelfId;\n }\n\n const ancestorResourceContext = frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType: ancestorResourceType,\n operation: opConfig,\n contextResourceIdentifiers: ancestorContextIdentifiers,\n parentResourcesRequirements: ancestorParentReqs,\n });\n\n const ancestorContent: NavigationContent = {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: ancestorResourceContext,\n };\n\n // Resolve URL for ancestor — only when the ancestor operation actually\n // owns a browser URL (declared ADDRESSABLE). Same surface gate as the main\n // navigate() path: an EMBEDDED ancestor read must not stamp an unroutable\n // URL onto the revealed zone entry or the browser.\n let ancestorUrl: string | undefined;\n if (resourceOperationOwnsBrowserUrl(opConfig)) {\n const resolved = NavigationUtils.resolveResourceUrl(\n ancestorConfig as any,\n opConfig as any,\n ancestorContextIdentifiers,\n registry.allResourceFieldIdentifiers,\n ancestorParentReqs as any,\n );\n if (resolved?.resolvedUrl) {\n ancestorUrl = resolved.resolvedUrl;\n }\n }\n\n const stackEntryId = NavigationUtils.generateStackEntryId();\n logDebug('cascadeAncestorZones: populating ancestor zone', {\n zone,\n ancestorResourceType,\n ancestorOp,\n ancestorUrl,\n });\n emit(FrontendEvents.NAVIGATION_REPLACE, {\n zone,\n content: ancestorContent,\n urlPath: ancestorUrl,\n stackEntryId,\n initiator: { sourceZone: zone },\n navigationSource: NavigationSource.CONTROLLER,\n transition: NavigationTransition.REPLACE,\n });\n\n // Update URL only for PRIMARY zone ancestor (the URL bar shows PRIMARY)\n // Skip URL update when routerNavigate is null (reverse cascade from URL sync)\n if (zone === NavigationZoneName.PRIMARY && ancestorUrl && routerNavigate) {\n updateBrowserUrl(routerNavigate, ancestorUrl, true);\n }\n }\n}"]}
1
+ {"version":3,"file":"navigation-cascade.js","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation-cascade.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The CASCADING ORCHESTRATOR: what fills the zones a reader did not click.\n *\n * Two functions, one concern. When content lands in an adjacent zone, the zones ABOVE it must show\n * the context that content belongs to, or the reader sees a record with nothing beside it.\n * `cascadeAncestorZones` places a record's ANCESTORS. `cascadeSiblingListIntoPrimary` places a record's\n * OWN collection in PRIMARY, in two roles: beside a FLAT resource's detail split out of primary (#203),\n * and in place of an ancestor that PRIMARY cannot hold (#2115, see the PRIMARY rule in the cascade).\n *\n * Split out of `useNavigationController.ts` on 2026-09-25. It is the ONE piece both halves of that\n * module used — the controller cascades after a click, the router-sync hooks cascade after a deep\n * link — which is why it is its own module rather than living with either.\n */\n\nimport {\n useNavigate,\n} from 'react-router-dom';\nimport {\n FrontendEvents,\n} from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport {\n NavigationZoneState,\n NavigationContent,\n NavigationContentType,\n} from './navigation.schemas';\nimport {\n NavigationTransition,\n NavigationZoneName,\n CoreResourceOperation,\n} from '@wildo-ai/saas-models';\nimport type { FrontendResource_ParentResourceRequirement } from '~wildo-frontend-lib/core/resources/resource-path.frontend.schemas';\nimport type {\n FrontendResourcesRegistry,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { NavigationSource } from './navigation.schemas';\nimport { NavigationUtils } from './navigation.utils';\nimport { FrontendResourceUtils, frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { isOperationAddressable } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport {\n resolveEffectiveCoreOperationFromOperation,\n getOperationsForCoreSemantic,\n pickPreferredOperationForCoreSemantic,\n} from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\n\nimport { logDebug, resourceOperationOwnsBrowserUrl, updateBrowserUrl } from './navigation-controller-internals';\n// ================================\n// Cascading Orchestrator\n// ================================\n\n/**\n * Put a record's OWN collection into PRIMARY, in the record's parent context.\n *\n * Two callers, one shape — the list-detail pairing, which the zone-dependency cleanup keeps (a pane\n * beside a collection of its own type):\n *\n * - `useRouterSync`, for a FLAT resource whose detail was restored into SECONDARY (#203) — or, at a width\n * where that pane is collapsed, pushed into PRIMARY on top of this list;\n * - `cascadeAncestorZones`, in place of an ancestor PRIMARY cannot hold — a collection of another\n * type, or none at all (#2115).\n *\n * It places nothing when the resource has no configuration or no addressable LIST: PRIMARY then stays\n * empty and renders the route's Outlet. That is the one remaining way to show a record twice, and it\n * needs a resource whose records are reachable while its collection is not.\n */\nexport function cascadeSiblingListIntoPrimary(params: {\n resourceType: string;\n contextResourceIdentifiers: Record<string, string>;\n parentResourcesRequirements: FrontendResource_ParentResourceRequirement[];\n registry: FrontendResourcesRegistry;\n emit: (event: string, payload: any) => void;\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState;\n /**\n * Provenance stamped on the emitted event — `URL_SYNC` by default, `CONTROLLER` from the ancestor\n * cascade, which stamps its own ancestor placements the same way on both paths. Recorded for\n * diagnostics (the navigation log); nothing branches on it.\n */\n navigationSource?: NavigationSource;\n /**\n * Replace what PRIMARY holds instead of leaving it alone. The ancestor cascade passes its own\n * `overwriteExisting` here: a URL-first rebuild REPLACES the ancestor zones so they match the URL, and\n * this placement stands in for an ancestor, so it must replace too. Without it, stale primary content\n * would survive a rebuild that every other ancestor placement overwrites.\n */\n replaceExisting?: boolean;\n}): void {\n const { resourceType, contextResourceIdentifiers, parentResourcesRequirements, registry, emit, getZoneState } = params;\n if (!params.replaceExisting && getZoneState(NavigationZoneName.PRIMARY).stack.length > 0) return;\n\n const resourceConfig = registry.resourceConfigurations?.[resourceType];\n if (!resourceConfig) return;\n\n const listContextIdentifiers = { ...contextResourceIdentifiers };\n delete listContextIdentifiers[resourceType];\n\n /*\n * The DEFAULT addressable LIST, picked WITHOUT the context-addressability check.\n * `pickPreferredOperationForCoreSemanticAddressability` asks \"reachable given the PARENT context\",\n * which a flat STANDALONE resource can never satisfy — it answers false for an operation that is\n * plainly addressable and reachable from the sidebar. For a NESTED resource (the #2115 role) the\n * parent ids it needs are in `contextResourceIdentifiers`, and the URL below is resolved from them.\n * `allowBulk` is required too: a LIST addresses a COLLECTION and the semantic filter drops bulk\n * operations by default.\n */\n const listOperation = pickPreferredOperationForCoreSemantic(\n getOperationsForCoreSemantic(resourceConfig.operations ?? [], CoreResourceOperation.LIST, { allowBulk: true })\n .filter((candidate) => isOperationAddressable(candidate.operationFrontendConfig)),\n CoreResourceOperation.LIST,\n { allowBulk: true },\n );\n if (!listOperation) return;\n\n /*\n * The list's OWN address, which is not the same thing as writing the browser URL.\n *\n * This entry was placed address-less under the note \"the browser URL belongs to the DETAIL in\n * secondary\" — true of who WRITES the URL, and wrong as a reason to leave `urlPath` empty. An\n * entry's `urlPath` is its ADDRESS, read by everything that asks what a zone holds: `goBack`,\n * `dismissZone`, `findStructuralRouteOwner`, `zoneOwnsBrowserUrl`. Nothing here writes the\n * browser URL — this is an emit, and the controller's write lives in `navigate()`.\n *\n * Measured on the workbench, 2026-09-25: with the list address-less, `resolveZoneDismissUrl`\n * found no primary address, wrote nothing, and the pane CLOSED while the URL still named it — so\n * the next reload reopened it. `goBack` from the last pane had the identical hole, which predates\n * the dismiss control and is fixed by the same line.\n */\n const listUrl = NavigationUtils.resolveResourceUrl(\n resourceConfig as never,\n listOperation as never,\n listContextIdentifiers,\n registry.allResourceFieldIdentifiers,\n parentResourcesRequirements as never,\n )?.resolvedUrl;\n\n emit(FrontendEvents.NAVIGATION_REPLACE, {\n zone: NavigationZoneName.PRIMARY,\n content: {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType, operation: listOperation,\n contextResourceIdentifiers: listContextIdentifiers,\n parentResourcesRequirements,\n }),\n },\n ...(listUrl ? { urlPath: listUrl } : {}),\n stackEntryId: NavigationUtils.generateStackEntryId(),\n initiator: { sourceZone: NavigationZoneName.PRIMARY },\n navigationSource: params.navigationSource ?? NavigationSource.URL_SYNC,\n transition: NavigationTransition.REPLACE,\n });\n}\n\n/**\n * Auto-populate ancestor zones when navigating to SECONDARY or COMPANION.\n *\n * When a resource is placed in SECONDARY or COMPANION, its ancestor resources\n * should be visible in the zones above it.\n *\n * Rules:\n * - Only cascades for resource operations (not views)\n * - Populates EMPTY zones only — unless `overwriteExisting` (URL-first reconstruction), which replaces\n * them so the visible stack matches the authoritative browser URL\n * - Uses `parentResourcesRequirements` to determine ancestor chain\n * - Stops at primary scope ancestors (org/user level)\n * - Maximum 2 ancestor zones (PRIMARY + SECONDARY for a COMPANION target)\n * - PRIMARY never receives a collection of another type than the pane below it (see the rule in the loop)\n */\nexport function cascadeAncestorZones(\n targetContent: NavigationContent & { contentType: NavigationContentType.RESOURCE_OPERATION },\n resolvedZone: NavigationZoneName,\n registry: FrontendResourcesRegistry,\n contextIdentifiers: Record<string, string>,\n emit: (event: string, payload: any) => void,\n routerNavigate: ReturnType<typeof useNavigate> | null,\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState,\n options?: {\n overwriteExisting?: boolean;\n },\n): void {\n const parentRequirements = targetContent.resourceContext.parentResourcesRequirements as FrontendResource_ParentResourceRequirement[];\n if (!parentRequirements || parentRequirements.length === 0) return;\n\n // Determine which zones need population.\n // Order matters: zonesToPopulate[i] maps to ancestors[i] (nearest parent first).\n // For COMPANION target: nearest parent → SECONDARY (adjacent), furthest → PRIMARY (root).\n // This maintains the master-detail-detail convention: PRIMARY=broadest, COMPANION=most specific.\n const zonesToPopulate: NavigationZoneName[] = [];\n if (resolvedZone === NavigationZoneName.SECONDARY) {\n zonesToPopulate.push(NavigationZoneName.PRIMARY);\n } else if (resolvedZone === NavigationZoneName.COMPANION) {\n zonesToPopulate.push(NavigationZoneName.SECONDARY, NavigationZoneName.PRIMARY);\n }\n\n if (zonesToPopulate.length === 0) return;\n\n // parentResourcesRequirements is ordered root → leaf (closest ancestor last).\n // Reverse to process nearest parent first — nearest maps to adjacent zone.\n const ancestors = [...parentRequirements].reverse();\n\n const targetResourceType = targetContent.resourceContext.resourceType;\n\n for (let i = 0; i < zonesToPopulate.length && i < ancestors.length; i++) {\n const zone = zonesToPopulate[i];\n const ancestor = ancestors[i];\n\n // Skip primary scope ancestors (org, user) — these don't get a zone\n if (ancestor.isPrimaryScope) continue;\n\n // Controller-driven cascade keeps existing user context intact, but URL-first\n // reconstruction is allowed to replace ancestor zones so the visible stack\n // matches the authoritative browser URL again.\n const zoneState = getZoneState(zone);\n if (!options?.overwriteExisting && zoneState.stack.length > 0) continue;\n\n // Get ancestor resource config\n const ancestorResourceType = ancestor.resourceType;\n const ancestorConfig = registry.resourceConfigurations?.[ancestorResourceType];\n if (!ancestorConfig) continue;\n\n // Find relationship between ancestor and target (or intermediate child)\n const childType = ancestor.childResourceType\n ?? (i === 0 ? targetResourceType : ancestors[i - 1].resourceType);\n const relationship = NavigationUtils.findRelationshipBetween(\n ancestorResourceType, childType, registry, ancestor.foreignKeyField\n );\n\n // Build parent requirements for the ancestor itself:\n // The ancestor's parents are those ABOVE it in the chain (root → leaf ordering).\n // Using slice(0, index) ensures we only include entries before the ancestor,\n // not entries below it (which are its children/grandchildren, not parents).\n // Previously used filter(req => req.resourceType !== ancestorResourceType) which\n // incorrectly kept descendants as parents for non-adjacent ancestors (Bug #1).\n // `ancestors` is reversed (nearest parent first) but `parentRequirements`\n // stays root → leaf, so convert back by position instead of looking up by\n // resource type. Position-based slicing is what keeps repeated/self-ref\n // parent types from collapsing onto the first matching entry.\n const ancestorIndex = parentRequirements.length - 1 - i;\n const ancestorParentReqs = ancestorIndex > 0\n ? parentRequirements.slice(0, ancestorIndex)\n : [];\n\n // Build ancestor resource context\n const ancestorContextIdentifiers: Record<string, string> = {};\n for (const req of ancestorParentReqs) {\n const contextKey = req.foreignKeyField ?? req.resourceType;\n // Prefer the FK-keyed slot when present. Same-type parent chains store the\n // parent id under the FK field so the resource-type key can continue to\n // represent the current record.\n const id = contextIdentifiers[contextKey] ?? contextIdentifiers[req.resourceType];\n if (id) {\n ancestorContextIdentifiers[contextKey] = id;\n }\n }\n // The ancestor's own id. Its FOREIGN-KEY slot names it whenever the context carries one; the TYPE slot does\n // only for an ancestor of another type. For a self-referencing ancestor (the target's own type) the type slot\n // is the TARGET's own id — a self-referencing parent lives in its foreign-key slot (#2143) — so reading it\n // there placed the record as its own parent (a BACKWARD self-relationship cascades the parent's READ).\n const ancestorSelfId = (ancestor.foreignKeyField ? contextIdentifiers[ancestor.foreignKeyField] : undefined)\n ?? (ancestorResourceType !== targetResourceType ? contextIdentifiers[ancestorResourceType] : undefined);\n const ancestorSelectionContextIdentifiers = ancestorSelfId\n ? {\n ...ancestorContextIdentifiers,\n [ancestorResourceType]: ancestorSelfId,\n }\n : ancestorContextIdentifiers;\n\n const opConfig = NavigationUtils.resolveAncestorOperationConfig(\n relationship,\n ancestorConfig as any,\n {\n registry,\n contextResourceIdentifiers: ancestorSelectionContextIdentifiers,\n contextualParameters: FrontendResourceUtils.buildContextualParameters(\n ancestorSelectionContextIdentifiers,\n registry,\n ),\n },\n );\n\n /*\n * PRIMARY is what the zone-dependency cleanup measures SECONDARY against (`NavigationContext`, its top\n * entry only; COMPANION is kept when it belongs to PRIMARY's record or to the SECONDARY record beside\n * it). A collection in PRIMARY keeps the pane below it only when it holds that pane's OWN type — the\n * list-detail pairing. A collection of another type (the parent's, when the parent's record has no page\n * of its own) clears the very pane this cascade is placing it for (#2115). An EMPTY primary is no answer\n * either: it renders the route's Outlet, which is the same record a second time.\n *\n * So the cascade never PLACES such a collection in PRIMARY: it places the pane below's own collection\n * instead, in that pane's parent context. (It does not police what a reader put there by clicking.) In\n * SECONDARY (the middle of a three-pane chain) a parent's collection clears nothing — the companion is\n * still kept by the record in PRIMARY — and the resolver's fallback stands.\n *\n * On the click path this placement writes no browser URL, unlike an ancestor placement below: the URL\n * stays the record's. A deep link writes none either way.\n *\n * What this cannot rescue, stated rather than hidden: a pane below whose collection is not addressable\n * (or that has no configuration). Nothing is placed, PRIMARY stays empty, and it renders the route's\n * Outlet — the record twice (`cascadeSiblingListIntoPrimary`).\n */\n const placesForeignCollectionInPrimary = zone === NavigationZoneName.PRIMARY\n && (!opConfig || (NavigationUtils.isCollectionOperationContext({ operation: opConfig }) && ancestorResourceType !== childType));\n if (placesForeignCollectionInPrimary) {\n // The pane below's parent chain is everything up to and including this ancestor (root → leaf). For the\n // nearest ancestor that is the record's whole chain.\n const childParentRequirements = parentRequirements.slice(0, ancestorIndex + 1);\n const childContextIdentifiers: Record<string, string> = {};\n for (const req of childParentRequirements) {\n const contextKey = req.foreignKeyField ?? req.resourceType;\n const id = contextIdentifiers[contextKey] ?? contextIdentifiers[req.resourceType];\n if (id) childContextIdentifiers[contextKey] = id;\n }\n cascadeSiblingListIntoPrimary({\n resourceType: childType,\n contextResourceIdentifiers: childContextIdentifiers,\n parentResourcesRequirements: childParentRequirements,\n registry,\n emit,\n getZoneState,\n navigationSource: NavigationSource.CONTROLLER,\n replaceExisting: !!options?.overwriteExisting,\n });\n continue;\n }\n if (!opConfig) continue;\n const ancestorOp = resolveEffectiveCoreOperationFromOperation(opConfig);\n if (ancestorSelfId && ancestorOp === CoreResourceOperation.READ) {\n ancestorContextIdentifiers[ancestorResourceType] = ancestorSelfId;\n }\n\n const ancestorResourceContext = frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType: ancestorResourceType,\n operation: opConfig,\n contextResourceIdentifiers: ancestorContextIdentifiers,\n parentResourcesRequirements: ancestorParentReqs,\n });\n\n const ancestorContent: NavigationContent = {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: ancestorResourceContext,\n };\n\n // Resolve URL for ancestor — only when the ancestor operation actually\n // owns a browser URL (declared ADDRESSABLE). Same surface gate as the main\n // navigate() path: an EMBEDDED ancestor read must not stamp an unroutable\n // URL onto the revealed zone entry or the browser.\n let ancestorUrl: string | undefined;\n if (resourceOperationOwnsBrowserUrl(opConfig)) {\n const resolved = NavigationUtils.resolveResourceUrl(\n ancestorConfig as any,\n opConfig as any,\n ancestorContextIdentifiers,\n registry.allResourceFieldIdentifiers,\n ancestorParentReqs as any,\n );\n if (resolved?.resolvedUrl) {\n ancestorUrl = resolved.resolvedUrl;\n }\n }\n\n const stackEntryId = NavigationUtils.generateStackEntryId();\n logDebug('cascadeAncestorZones: populating ancestor zone', {\n zone,\n ancestorResourceType,\n ancestorOp,\n ancestorUrl,\n });\n emit(FrontendEvents.NAVIGATION_REPLACE, {\n zone,\n content: ancestorContent,\n urlPath: ancestorUrl,\n stackEntryId,\n initiator: { sourceZone: zone },\n navigationSource: NavigationSource.CONTROLLER,\n transition: NavigationTransition.REPLACE,\n });\n\n // Update URL only for PRIMARY zone ancestor (the URL bar shows PRIMARY)\n // Skip URL update when routerNavigate is null (reverse cascade from URL sync)\n if (zone === NavigationZoneName.PRIMARY && ancestorUrl && routerNavigate) {\n updateBrowserUrl(routerNavigate, ancestorUrl, true);\n }\n }\n}"]}
@@ -0,0 +1,45 @@
1
+ import type { NavigationZone } from './navigation.schemas';
2
+ /**
3
+ * The moment a navigation COMMITS: the controller has resolved where content goes and now emits the zone-state event and
4
+ * updates the browser URL, in one synchronous step. Everything before it (resolution, access checks, context loading) is
5
+ * asynchronous; this step is not, which is what lets a layout animate BETWEEN the state before and the state after.
6
+ *
7
+ * A layout may install ONE wrapper around that step (#2055): the animated 2D layouts' view-transition arrival calls
8
+ * `document.startViewTransition(() => flushSync(commit))`, so the browser captures the screen before the commit and
9
+ * after it, and morphs the pressed row into the pane that opened. With no wrapper installed, the commit simply runs.
10
+ *
11
+ * Why here and not on the router: React Router's own `viewTransition` option wraps the ROUTER's state update, and the
12
+ * panes do not follow the router. They follow the zone state this controller emits BEFORE it touches the URL, so a
13
+ * router-side transition would capture a screen that has already changed.
14
+ */
15
+ /** Where the committing navigation sends its content. */
16
+ export interface NavigationCommitTarget {
17
+ /** The zone that receives the content. */
18
+ zone: NavigationZone;
19
+ }
20
+ /**
21
+ * Runs `commit` EXACTLY ONCE — now, or within the browser's next frame. A view transition runs its update in the frame
22
+ * after it captured the screen, so a wrapper may defer the commit that long, never longer; it must never skip it or run
23
+ * it twice. The navigation has already been decided, and the URL and the zones must not disagree.
24
+ */
25
+ export type NavigationCommitWrapper = (commit: () => void, target: NavigationCommitTarget) => void;
26
+ /**
27
+ * How long a wrapper may hold a commit before it runs anyway. A view transition calls its update within a frame, and
28
+ * also when it is skipped (a hidden tab, another transition); this only catches a wrapper that forgot.
29
+ */
30
+ export declare const NAVIGATION_COMMIT_MAX_DEFERRAL_MS = 400;
31
+ /**
32
+ * Installs the wrapper every navigation commit runs through, and returns the function that removes it. One at a time: an
33
+ * application has one shell layout, so a second install replaces the first, and removing a wrapper that has since been
34
+ * replaced leaves the newer one in place.
35
+ */
36
+ export declare function installNavigationCommitWrapper(wrapper: NavigationCommitWrapper): () => void;
37
+ /**
38
+ * Lands a commit a wrapper is still holding, at once. Called before ANY change to the zone state is applied
39
+ * (`NavigationContext` applies every navigation event through it), so nothing — a later navigation's clean break, a
40
+ * dismiss, a back, the router reconciling a URL — can land before an earlier commit and then be undone by it.
41
+ */
42
+ export declare function flushHeldNavigationCommit(): void;
43
+ /** Runs a navigation's commit through the installed wrapper, or directly when none is installed. */
44
+ export declare function runNavigationCommit(commit: () => void, target: NavigationCommitTarget): void;
45
+ //# sourceMappingURL=navigation-commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-commit.d.ts","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;;GAYG;AAEH,yDAAyD;AACzD,MAAM,WAAW,sBAAsB;IACrC,0CAA0C;IAC1C,IAAI,EAAE,cAAc,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAEnG;;;GAGG;AACH,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAMrD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,IAAI,CAK3F;AAQD;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CA4B5F"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * How long a wrapper may hold a commit before it runs anyway. A view transition calls its update within a frame, and
3
+ * also when it is skipped (a hidden tab, another transition); this only catches a wrapper that forgot.
4
+ */
5
+ export const NAVIGATION_COMMIT_MAX_DEFERRAL_MS = 400;
6
+ let installedWrapper = null;
7
+ /** The commit a wrapper is holding, if any: a newer navigation runs it first, so two navigations never swap order. */
8
+ let heldCommit = null;
9
+ /**
10
+ * Installs the wrapper every navigation commit runs through, and returns the function that removes it. One at a time: an
11
+ * application has one shell layout, so a second install replaces the first, and removing a wrapper that has since been
12
+ * replaced leaves the newer one in place.
13
+ */
14
+ export function installNavigationCommitWrapper(wrapper) {
15
+ installedWrapper = wrapper;
16
+ return () => {
17
+ if (installedWrapper === wrapper)
18
+ installedWrapper = null;
19
+ };
20
+ }
21
+ /*
22
+ * Two residuals are accepted, both inside the hold (one frame; 400 ms at worst): a controller method that READS the zones
23
+ * before emitting (a dismiss of a pane not yet landed) sees them before the held commit, and a browser Back pressed in
24
+ * that frame lets the held commit push its URL after the popstate — the zones end right, and router sync re-applies the
25
+ * URL. Neither can be reached by a reader acting on what is on screen, since the held pane is not on screen yet.
26
+ */
27
+ /**
28
+ * Lands a commit a wrapper is still holding, at once. Called before ANY change to the zone state is applied
29
+ * (`NavigationContext` applies every navigation event through it), so nothing — a later navigation's clean break, a
30
+ * dismiss, a back, the router reconciling a URL — can land before an earlier commit and then be undone by it.
31
+ */
32
+ export function flushHeldNavigationCommit() {
33
+ heldCommit?.();
34
+ }
35
+ /** Runs a navigation's commit through the installed wrapper, or directly when none is installed. */
36
+ export function runNavigationCommit(commit, target) {
37
+ // An earlier commit still held by a wrapper lands first: the later navigation must win.
38
+ flushHeldNavigationCommit();
39
+ const wrapper = installedWrapper;
40
+ if (!wrapper) {
41
+ commit();
42
+ return;
43
+ }
44
+ let committed = false;
45
+ let safety;
46
+ const once = () => {
47
+ if (committed)
48
+ return;
49
+ committed = true;
50
+ if (heldCommit === once)
51
+ heldCommit = null;
52
+ clearTimeout(safety);
53
+ commit();
54
+ };
55
+ try {
56
+ wrapper(once, target);
57
+ }
58
+ catch (error) {
59
+ // A wrapper that threw must not lose the navigation.
60
+ once();
61
+ throw error;
62
+ }
63
+ if (!committed) {
64
+ heldCommit = once;
65
+ safety = setTimeout(once, NAVIGATION_COMMIT_MAX_DEFERRAL_MS);
66
+ }
67
+ }
68
+ //# sourceMappingURL=navigation-commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-commit.js","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation-commit.ts"],"names":[],"mappings":"AA6BA;;;GAGG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,CAAC;AAErD,IAAI,gBAAgB,GAAmC,IAAI,CAAC;AAC5D,sHAAsH;AACtH,IAAI,UAAU,GAAwB,IAAI,CAAC;AAE3C;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAgC;IAC7E,gBAAgB,GAAG,OAAO,CAAC;IAC3B,OAAO,GAAG,EAAE;QACV,IAAI,gBAAgB,KAAK,OAAO;YAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACvC,UAAU,EAAE,EAAE,CAAC;AACjB,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,mBAAmB,CAAC,MAAkB,EAAE,MAA8B;IACpF,wFAAwF;IACxF,yBAAyB,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IACD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,MAAiD,CAAC;IACtD,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,IAAI,SAAS;YAAE,OAAO;QACtB,SAAS,GAAG,IAAI,CAAC;QACjB,IAAI,UAAU,KAAK,IAAI;YAAE,UAAU,GAAG,IAAI,CAAC;QAC3C,YAAY,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;IACF,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qDAAqD;QACrD,IAAI,EAAE,CAAC;QACP,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC","sourcesContent":["import type { NavigationZone } from './navigation.schemas';\n\n/**\n * The moment a navigation COMMITS: the controller has resolved where content goes and now emits the zone-state event and\n * updates the browser URL, in one synchronous step. Everything before it (resolution, access checks, context loading) is\n * asynchronous; this step is not, which is what lets a layout animate BETWEEN the state before and the state after.\n *\n * A layout may install ONE wrapper around that step (#2055): the animated 2D layouts' view-transition arrival calls\n * `document.startViewTransition(() => flushSync(commit))`, so the browser captures the screen before the commit and\n * after it, and morphs the pressed row into the pane that opened. With no wrapper installed, the commit simply runs.\n *\n * Why here and not on the router: React Router's own `viewTransition` option wraps the ROUTER's state update, and the\n * panes do not follow the router. They follow the zone state this controller emits BEFORE it touches the URL, so a\n * router-side transition would capture a screen that has already changed.\n */\n\n/** Where the committing navigation sends its content. */\nexport interface NavigationCommitTarget {\n /** The zone that receives the content. */\n zone: NavigationZone;\n}\n\n/**\n * Runs `commit` EXACTLY ONCE — now, or within the browser's next frame. A view transition runs its update in the frame\n * after it captured the screen, so a wrapper may defer the commit that long, never longer; it must never skip it or run\n * it twice. The navigation has already been decided, and the URL and the zones must not disagree.\n */\nexport type NavigationCommitWrapper = (commit: () => void, target: NavigationCommitTarget) => void;\n\n/**\n * How long a wrapper may hold a commit before it runs anyway. A view transition calls its update within a frame, and\n * also when it is skipped (a hidden tab, another transition); this only catches a wrapper that forgot.\n */\nexport const NAVIGATION_COMMIT_MAX_DEFERRAL_MS = 400;\n\nlet installedWrapper: NavigationCommitWrapper | null = null;\n/** The commit a wrapper is holding, if any: a newer navigation runs it first, so two navigations never swap order. */\nlet heldCommit: (() => void) | null = null;\n\n/**\n * Installs the wrapper every navigation commit runs through, and returns the function that removes it. One at a time: an\n * application has one shell layout, so a second install replaces the first, and removing a wrapper that has since been\n * replaced leaves the newer one in place.\n */\nexport function installNavigationCommitWrapper(wrapper: NavigationCommitWrapper): () => void {\n installedWrapper = wrapper;\n return () => {\n if (installedWrapper === wrapper) installedWrapper = null;\n };\n}\n\n/*\n * Two residuals are accepted, both inside the hold (one frame; 400 ms at worst): a controller method that READS the zones\n * before emitting (a dismiss of a pane not yet landed) sees them before the held commit, and a browser Back pressed in\n * that frame lets the held commit push its URL after the popstate — the zones end right, and router sync re-applies the\n * URL. Neither can be reached by a reader acting on what is on screen, since the held pane is not on screen yet.\n */\n/**\n * Lands a commit a wrapper is still holding, at once. Called before ANY change to the zone state is applied\n * (`NavigationContext` applies every navigation event through it), so nothing — a later navigation's clean break, a\n * dismiss, a back, the router reconciling a URL — can land before an earlier commit and then be undone by it.\n */\nexport function flushHeldNavigationCommit(): void {\n heldCommit?.();\n}\n\n/** Runs a navigation's commit through the installed wrapper, or directly when none is installed. */\nexport function runNavigationCommit(commit: () => void, target: NavigationCommitTarget): void {\n // An earlier commit still held by a wrapper lands first: the later navigation must win.\n flushHeldNavigationCommit();\n const wrapper = installedWrapper;\n if (!wrapper) {\n commit();\n return;\n }\n let committed = false;\n let safety: ReturnType<typeof setTimeout> | undefined;\n const once = (): void => {\n if (committed) return;\n committed = true;\n if (heldCommit === once) heldCommit = null;\n clearTimeout(safety);\n commit();\n };\n try {\n wrapper(once, target);\n } catch (error) {\n // A wrapper that threw must not lose the navigation.\n once();\n throw error;\n }\n if (!committed) {\n heldCommit = once;\n safety = setTimeout(once, NAVIGATION_COMMIT_MAX_DEFERRAL_MS);\n }\n}\n"]}