@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":"useHostlessResourceNavigation.js","sourceRoot":"","sources":["../../../../../src/core/resources/useHostlessResourceNavigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,mDAAmD,EAAE,MAAM,0CAA0C,CAAC;AAE/G,OAAO,EAAE,uBAAuB,EAAE,MAAM,6DAA6D,CAAC;AAmCtG,MAAM,UAAU,6BAA6B;IAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,EAAE,kBAAkB,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAEzD,MAAM,sBAAsB,GAAG,WAAW,CAAC,CAAC,MAA4C,EAAW,EAAE;QACnG,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,0BAA0B,GAAG,EAAE,EAAE,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC;QACtH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,cAAc,GAAG,QAAQ,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,gCAAgC,GAAG;YACvC,GAAG,0BAA0B;YAC7B,CAAC,YAAY,CAAC,EAAE,UAAU;SAC3B,CAAC;QAEF;;;;;;WAMG;QACH,MAAM,aAAa,GAAG,mDAAmD,CAAC;YACxE,cAAc;YACd,UAAU,EAAE,cAAc,CAAC,UAAU,IAAI,EAAE;YAC3C,aAAa,EAAE,qBAAqB,CAAC,IAAI;YACzC,QAAQ;YACR,aAAa,EAAE,IAAI;YACnB,0BAA0B,EAAE,IAAI;YAChC,0BAA0B,EAAE,gCAAgC;YAC5D,oBAAoB,EAAE,qBAAqB,CAAC,yBAAyB,CACnE,gCAAgC,EAChC,QAAQ,CACT;SACF,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,kBAAkB,CAChB,qBAAqB,CAAC,mDAAmD,CAAC;YACxE,YAAY;YACZ,SAAS,EAAE,aAAa;YACxB,0BAA0B,EAAE,gCAAgC;SAC7D,CAAC,EACF,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB,CAAC,IAAI,EAAE,CAC5D,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEnC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAC/E,CAAC","sourcesContent":["/**\n * Navigate to a resource operation from a host that is NOT a resource surface.\n *\n * ## Why this exists\n *\n * Every existing path into a resource READ starts from a resource: `useResourceOperationSurface`\n * takes a `resourceContext`, and a list row already has one to derive the target from. A COMPOSITE\n * VIEW has none — it is `APPLICATION`-scoped by definition — so a canvas, board or dashboard that\n * wants a click to open a record had no framework path at all.\n *\n * The consequence was not that such views did without. It was that they re-implemented the detail\n * pane locally: the application-creation workbench's domain-model graph held its selection in React\n * state and rendered an inline `<aside>`, which meant no URL, no back navigation, no zone semantics\n * and no responsive collapse — a hand-rolled copy of `split` + `SECONDARY` + `onEmpty` at one call\n * site, with none of their behavior (issue #174).\n *\n * So this is deliberately a NAMED SEAM rather than a widening of the barrel. The alternative was to\n * export `frontend-resource.utils` publicly, which would expose a large internal module as API to\n * solve one caller's problem — repository organization as contract, which\n * `package-public-entrypoints.md` forbids.\n *\n * ## What it does NOT do\n *\n * It does not decide WHERE the record opens. That is the navigation layout's job: the transition\n * declared for `READ` in the source zone resolves to push, split or overlay, and a composite view\n * gets the same answer a list would from the same zone. A caller wanting a detail pane declares\n * `READ → SPLIT` in its layout; a caller wanting a full page declares `PUSH`. Nothing here overrides\n * that, which is the entire point — the previous hand-rolled pane WAS the override.\n */\n\nimport { useCallback, useMemo } from 'react';\nimport { CoreResourceOperation, NavigationZoneName } from '@wildo-ai/saas-models';\n\nimport { useResourceRegistry } from './useResourceRegistry';\nimport { frontendResourceUtils, FrontendResourceUtils } from './frontend-resource.utils';\nimport { pickPreferredOperationForCoreSemanticAddressability } from './resource-addressability.frontend.utils';\nimport type { FrontendResourceOperationContext } from './resources.frontend.schemas';\nimport { useNavigationController } from '~wildo-frontend-lib/core/navigation/useNavigationController';\nimport type { NavigationInitiatorContext } from '~wildo-frontend-lib/core/navigation/navigation.schemas';\n\nexport interface HostlessResourceReadNavigationParams {\n /** The resource whose record should open. */\n resourceType: string;\n /** The record's id, as the resource's own identifier field carries it. */\n resourceId: string;\n /**\n * Additional context identifiers to carry (parent scope, filters). Defaults to none — an\n * `APPLICATION`-scoped host has no ambient resource context to inherit, which is exactly what makes\n * it hostless.\n */\n contextResourceIdentifiers?: FrontendResourceOperationContext['contextResourceIdentifiers'];\n /**\n * Which zone the click came from. Defaults to PRIMARY, because a composite view is primary-zone\n * content — and it is the SOURCE zone that decides the transition, so getting this wrong sends the\n * record somewhere the layout did not intend.\n */\n sourceZone?: NavigationInitiatorContext['sourceZone'];\n}\n\nexport interface HostlessResourceNavigation {\n /**\n * Open a resource's preferred ADDRESSABLE read.\n *\n * Returns `false` — without navigating — when the resource is not registered, declares no\n * addressable READ, or the id is empty. Fails closed on purpose: navigating to\n * `/<resource>/undefined` produces an unrenderable detail surface that re-renders in a\n * CPU-pegging loop, which is the failure the equivalent guard in `ResourceLayout_List` exists to\n * prevent. A no-op click is recoverable; that is not.\n */\n navigateToResourceRead: (params: HostlessResourceReadNavigationParams) => boolean;\n}\n\nexport function useHostlessResourceNavigation(): HostlessResourceNavigation {\n const { registry } = useResourceRegistry();\n const { navigateToResource } = useNavigationController();\n\n const navigateToResourceRead = useCallback((params: HostlessResourceReadNavigationParams): boolean => {\n const { resourceType, resourceId, contextResourceIdentifiers = {}, sourceZone = NavigationZoneName.PRIMARY } = params;\n if (!resourceId) {\n return false;\n }\n\n const resourceConfig = registry.resourceConfigurations[resourceType];\n if (!resourceConfig) {\n return false;\n }\n\n const targetContextResourceIdentifiers = {\n ...contextResourceIdentifiers,\n [resourceType]: resourceId,\n };\n\n /*\n * `requireFrontendAddressable: true` with no EMBEDDED fallback, unlike `ResourceLayout_List`.\n * That list can fall back because it HAS a host to render an embedded read inside; a composite\n * view does not, so an EMBEDDED read reached from here would have nowhere to go — and answering\n * `false` is a visible no-op the author can debug, where navigating to a surface that cannot\n * render is not.\n */\n const readOperation = pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig,\n operations: resourceConfig.operations ?? [],\n coreOperation: CoreResourceOperation.READ,\n registry,\n hasResourceId: true,\n requireFrontendAddressable: true,\n contextResourceIdentifiers: targetContextResourceIdentifiers,\n contextualParameters: FrontendResourceUtils.buildContextualParameters(\n targetContextResourceIdentifiers,\n registry,\n ),\n });\n if (!readOperation) {\n return false;\n }\n\n navigateToResource(\n frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType,\n operation: readOperation,\n contextResourceIdentifiers: targetContextResourceIdentifiers,\n }),\n { sourceZone, sourceOperation: CoreResourceOperation.READ },\n );\n return true;\n }, [registry, navigateToResource]);\n\n return useMemo(() => ({ navigateToResourceRead }), [navigateToResourceRead]);\n}\n"]}
1
+ {"version":3,"file":"useHostlessResourceNavigation.js","sourceRoot":"","sources":["../../../../../src/core/resources/useHostlessResourceNavigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AAEpH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EACL,mDAAmD,GAEpD,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6DAA6D,CAAC;AAoCtG,MAAM,UAAU,6BAA6B;IAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,EAAE,kBAAkB,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAEzD,MAAM,sBAAsB,GAAG,WAAW,CAAC,CAAC,MAA4C,EAAW,EAAE;QACnG,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,0BAA0B,GAAG,EAAE,EAAE,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC;QACtH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,cAAc,GAAG,QAAQ,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,gCAAgC,GAAG,qBAAqB,CAAC,oCAAoC,CACjG,0BAA0B,EAC1B,YAAY,EACZ,UAAU,CACX,CAAC;QAEF;;;;;;;;;;;WAWG;QACH,MAAM,aAAa,GAAG,yBAAyB,CAAC,cAAc,EAAE,QAAQ,EAAE,gCAAgC,CAAC,CAAC;QAC5G,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,kBAAkB,CAChB,qBAAqB,CAAC,mDAAmD,CAAC;YACxE,YAAY;YACZ,SAAS,EAAE,aAAa;YACxB,0BAA0B,EAAE,gCAAgC;SAC7D,CAAC,EACF,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB,CAAC,IAAI,EAAE,CAC5D,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEnC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAChC,cAA+E,EAC/E,QAAmE,EACnE,0BAA0F;IAE1F,MAAM,IAAI,GAAG,CAAC,0BAAmC,EAAE,EAAE,CAAC,mDAAmD,CAAC;QACxG,cAAc;QACd,UAAU,EAAE,cAAc,EAAE,UAAU,IAAI,EAAE;QAC5C,aAAa,EAAE,qBAAqB,CAAC,IAAI;QACzC,QAAQ;QACR,aAAa,EAAE,IAAI;QACnB,0BAA0B;QAC1B,0BAA0B;QAC1B,oBAAoB,EAAE,qBAAqB,CAAC,yBAAyB,CAAC,0BAA0B,EAAE,QAAQ,CAAC;KAC5G,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,OAAO,EAAE,uBAAuB,EAAE,OAAO,KAAK,gCAAgC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvH,CAAC","sourcesContent":["/**\n * Navigate to a resource operation from a host that is NOT a resource surface.\n *\n * ## Why this exists\n *\n * Every existing path into a resource READ starts from a resource: `useResourceOperationSurface`\n * takes a `resourceContext`, and a list row already has one to derive the target from. A COMPOSITE\n * VIEW has none — it is `APPLICATION`-scoped by definition — so a canvas, board or dashboard that\n * wants a click to open a record had no framework path at all.\n *\n * The consequence was not that such views did without. It was that they re-implemented the detail\n * pane locally: the application-creation workbench's domain-model graph held its selection in React\n * state and rendered an inline `<aside>`, which meant no URL, no back navigation, no zone semantics\n * and no responsive collapse — a hand-rolled copy of `split` + `SECONDARY` + `onEmpty` at one call\n * site, with none of their behavior (issue #174).\n *\n * So this is deliberately a NAMED SEAM rather than a widening of the barrel. The alternative was to\n * export `frontend-resource.utils` publicly, which would expose a large internal module as API to\n * solve one caller's problem — repository organization as contract, which\n * `package-public-entrypoints.md` forbids.\n *\n * ## What it does NOT do\n *\n * It does not decide WHERE the record opens. That is the navigation layout's job: the transition\n * declared for `READ` in the source zone resolves to push, split or overlay, and a composite view\n * gets the same answer a list would from the same zone. A caller wanting a detail pane declares\n * `READ → SPLIT` in its layout; a caller wanting a full page declares `PUSH`. Nothing here overrides\n * that, which is the entire point — the previous hand-rolled pane WAS the override.\n */\n\nimport { useCallback, useMemo } from 'react';\nimport { CoreResourceOperation, NavigationZoneName, ResourceOperationFrontendSurface } from '@wildo-ai/saas-models';\n\nimport { useResourceRegistry } from './useResourceRegistry';\nimport { frontendResourceUtils, FrontendResourceUtils } from './frontend-resource.utils';\nimport {\n pickPreferredOperationForCoreSemanticAddressability,\n type PickPreferredOperationForAddressabilityParams,\n} from './resource-addressability.frontend.utils';\nimport type { FrontendResourceOperationContext } from './resources.frontend.schemas';\nimport { useNavigationController } from '~wildo-frontend-lib/core/navigation/useNavigationController';\nimport type { NavigationInitiatorContext } from '~wildo-frontend-lib/core/navigation/navigation.schemas';\n\nexport interface HostlessResourceReadNavigationParams {\n /** The resource whose record should open. */\n resourceType: string;\n /** The record's id, as the resource's own identifier field carries it. */\n resourceId: string;\n /**\n * Additional context identifiers to carry (parent scope, filters). Defaults to none — an\n * `APPLICATION`-scoped host has no ambient resource context to inherit, which is exactly what makes\n * it hostless.\n */\n contextResourceIdentifiers?: FrontendResourceOperationContext['contextResourceIdentifiers'];\n /**\n * Which zone the click came from. Defaults to PRIMARY, because a composite view is primary-zone\n * content — and it is the SOURCE zone that decides the transition, so getting this wrong sends the\n * record somewhere the layout did not intend.\n */\n sourceZone?: NavigationInitiatorContext['sourceZone'];\n}\n\nexport interface HostlessResourceNavigation {\n /**\n * Open a resource's preferred ADDRESSABLE read — or, when it has none, its `EMBEDDED` read, which the\n * navigation layer opens as an overlay (an EMBEDDED read never takes over a structural zone).\n *\n * Returns `false` — without navigating — when the resource is not registered, declares neither an\n * addressable nor an EMBEDDED READ, or the id is empty. `API_ONLY` stays refused: headless means no\n * interface. Fails closed on purpose: navigating to `/<resource>/undefined` produces an unrenderable\n * detail surface that re-renders in a CPU-pegging loop, which is the failure the equivalent guard in\n * `ResourceLayout_List` exists to prevent. A no-op click is recoverable; that is not.\n */\n navigateToResourceRead: (params: HostlessResourceReadNavigationParams) => boolean;\n}\n\nexport function useHostlessResourceNavigation(): HostlessResourceNavigation {\n const { registry } = useResourceRegistry();\n const { navigateToResource } = useNavigationController();\n\n const navigateToResourceRead = useCallback((params: HostlessResourceReadNavigationParams): boolean => {\n const { resourceType, resourceId, contextResourceIdentifiers = {}, sourceZone = NavigationZoneName.PRIMARY } = params;\n if (!resourceId) {\n return false;\n }\n\n const resourceConfig = registry.resourceConfigurations[resourceType];\n if (!resourceConfig) {\n return false;\n }\n\n const targetContextResourceIdentifiers = frontendResourceUtils.buildRecordIdentifiersFromCollection(\n contextResourceIdentifiers,\n resourceType,\n resourceId,\n );\n\n /*\n * An ADDRESSABLE read first; failing that, an EMBEDDED one (#2063).\n *\n * This used to stop at the addressable read, on the reasoning that a composite view has no host\n * for an embedded read, so it \"would have nowhere to go\". The navigation layer answers that: an\n * EMBEDDED read navigated into a structural zone is coerced to an OVERLAY\n * (`NavigationPlacementAdjustment.EMBEDDED_COERCED_TO_OVERLAY`), which is exactly how a reference\n * to an aspect row opens it (`resolveFkOverlayTarget` in the reference display emits the same\n * navigation). Without the fallback every workbench aspect row — whose READ is EMBEDDED by design —\n * was unopenable from Home, a card or a `?open=` deep link: the call answered `false`, the caller\n * ignored it, and no request was ever sent.\n */\n const readOperation = pickHostlessReadOperation(resourceConfig, registry, targetContextResourceIdentifiers);\n if (!readOperation) {\n return false;\n }\n\n navigateToResource(\n frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType,\n operation: readOperation,\n contextResourceIdentifiers: targetContextResourceIdentifiers,\n }),\n { sourceZone, sourceOperation: CoreResourceOperation.READ },\n );\n return true;\n }, [registry, navigateToResource]);\n\n return useMemo(() => ({ navigateToResourceRead }), [navigateToResourceRead]);\n}\n\n/**\n * The READ a hostless navigation opens: the preferred addressable one, else an `EMBEDDED` one (opened as\n * an overlay by the navigation layer). `API_ONLY` and every other surface yield `undefined`.\n */\nfunction pickHostlessReadOperation(\n resourceConfig: PickPreferredOperationForAddressabilityParams['resourceConfig'],\n registry: PickPreferredOperationForAddressabilityParams['registry'],\n contextResourceIdentifiers: FrontendResourceOperationContext['contextResourceIdentifiers'],\n) {\n const pick = (requireFrontendAddressable: boolean) => pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig,\n operations: resourceConfig?.operations ?? [],\n coreOperation: CoreResourceOperation.READ,\n registry,\n hasResourceId: true,\n requireFrontendAddressable,\n contextResourceIdentifiers,\n contextualParameters: FrontendResourceUtils.buildContextualParameters(contextResourceIdentifiers, registry),\n });\n const addressable = pick(true);\n if (addressable) return addressable;\n const anyRead = pick(false);\n return anyRead?.operationFrontendConfig?.surface === ResourceOperationFrontendSurface.EMBEDDED ? anyRead : undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useOperationDirectExecution.d.ts","sourceRoot":"","sources":["../../../../../src/core/resources/useOperationDirectExecution.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,iCAAiC;IAChD,oHAAoH;IACpH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,yCAAyC;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,gGAAgG;IAChG,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACvC;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,SAAS,EACT,YAAY,EACZ,cAAc,GACf,EAAE,iCAAiC,GAAG,wBAAwB,CA6Q9D"}
1
+ {"version":3,"file":"useOperationDirectExecution.d.ts","sourceRoot":"","sources":["../../../../../src/core/resources/useOperationDirectExecution.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,iCAAiC;IAChD,oHAAoH;IACpH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,yCAAyC;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,gGAAgG;IAChG,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACvC;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,SAAS,EACT,YAAY,EACZ,cAAc,GACf,EAAE,iCAAiC,GAAG,wBAAwB,CA2R9D"}
@@ -1,12 +1,13 @@
1
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
- import { ResourcesConfig_OperationPathUtils } from '@wildo-ai/saas-models';
1
+ import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
2
+ import { ResourcesConfig_OperationPathUtils, readOperationApprovalPending } from '@wildo-ai/saas-models';
3
+ import { NotificationContext } from '../../core/events/NotificationContext.js';
3
4
  import { FrontendComponentType } from '@wildo-ai/presets-components-models';
4
5
  import { useI18n } from '../../core/i18n/useI18n.js';
5
6
  import { resolveComponentLabel } from '../../core/i18n/component-label-resolution.utils.js';
6
7
  import { useResourceOperationViewContext } from '../../core/resources/ResourceOperationViewContext.js';
7
8
  import { FrontendResourceUtils, frontendResourceUtils } from '../../core/resources/frontend-resource.utils.js';
8
9
  import { useResourceRegistry } from '../../core/resources/useResourceRegistry.js';
9
- import { allowsDirectOperationFallback, MissingRMMRuntimeError, resolveDeclaredUpdateLikeMutationFallbackMode, } from '../../core/resources/rmm/update-like-mutation-fallback.frontend.js';
10
+ import { allowsDirectOperationFallback, MissingRMMRuntimeError, resolveUpdateLikeMutationFallbackMode, } from '../../core/resources/rmm/update-like-mutation-fallback.frontend.js';
10
11
  import { useResourceRMM } from '../../core/resources/rmm/useResourceRMM.js';
11
12
  import { mutationErrorForReport } from '../../core/resources/rmm/mutation-error-report.utils.js';
12
13
  import { ConflictStrategy, MutationPriority, MutationSourceType, MutationType } from '../../core/resources/rmm/types.js';
@@ -55,14 +56,14 @@ export function useOperationDirectExecution({ onSuccess, errorMessage, errorComp
55
56
  * is resolved (the canonical-READ bootstrap below) for both lanes, and the row's RMM is attached when
56
57
  * the row has one.
57
58
  *
58
- * It runs through that RMM when there is one. Without one it runs directly only if the operation
59
- * DECLARED the direct lane (`operationFrontendConfig.updateLikeMutationFallbackMode`), read through the
60
- * same function the form host and `useResourceOperationSurface` read, so the two hosts pick the same lane;
61
- * otherwise it fails closed.
59
+ * It runs through that RMM when there is one. Without one it runs directly only if the operation's lane
60
+ * is the direct one — declared by the operation, or derived because its resource has no field-write
61
+ * route (#1956) — read through the same function the form host and `useResourceOperationSurface` read, so
62
+ * the two hosts pick the same lane; otherwise it fails closed.
62
63
  */
63
64
  const isSingleRowUpdateLike = useMemo(() => isSingleResourceUpdateLikeOperation(operation), [operation]);
64
65
  const acceptsDirectLane = isSingleRowUpdateLike
65
- && allowsDirectOperationFallback(resolveDeclaredUpdateLikeMutationFallbackMode(operation));
66
+ && allowsDirectOperationFallback(resolveUpdateLikeMutationFallbackMode(operation, registry.resourceConfigurations[resourceType]?.operations));
66
67
  const bootstrapContextKey = useMemo(() => JSON.stringify({
67
68
  contextResourceIdentifiers: FrontendResourceUtils.buildContextResourceIdentifiersKey(currentResourceContext.contextResourceIdentifiers ?? {}),
68
69
  parentResourcesRequirements: currentResourceContext.parentResourcesRequirements ?? [],
@@ -109,6 +110,7 @@ export function useOperationDirectExecution({ onSuccess, errorMessage, errorComp
109
110
  parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,
110
111
  contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,
111
112
  resourceSchema: registry.resourceConfigurations[resourceType]?.mainSchema,
113
+ resourceInheritance: registry.resourceConfigurations[resourceType]?.inheritenceSchemaDefinition,
112
114
  enabled: isSingleRowUpdateLike && !!currentResourceId,
113
115
  conflictPolicy: { strategy: ConflictStrategy.ACCEPT_REMOTE },
114
116
  directFallbackAccepted: acceptsDirectLane,
@@ -130,14 +132,27 @@ export function useOperationDirectExecution({ onSuccess, errorMessage, errorComp
130
132
  ? currentResourceContext
131
133
  : { ...currentResourceContext, contextResourceIdentifiers: contextResourceIdentifiersWithResourceId }), [contextResourceIdentifiersWithResourceId, currentResourceContext]);
132
134
  const announceOutcome = useResourceOperationOutcomeEmitter(announcedContext, operation);
135
+ // Read directly, never through the throwing `useNotification()`: this hook must not require a provider.
136
+ const notification = useContext(NotificationContext);
137
+ const notificationRef = useRef(notification);
138
+ notificationRef.current = notification;
133
139
  const handleSuccess = useCallback((result) => {
140
+ // #2288: an operation held for another person's approval changed nothing. Said as waiting, and announced as nothing
141
+ // (the emitter refuses a held answer); the host still moves on, since the request was made.
142
+ if (readOperationApprovalPending(result)) {
143
+ notificationRef.current?.notifyInfo(resolveComponentLabel({
144
+ tComponent,
145
+ componentType: FrontendComponentType.RESOURCES_LAYOUTS_ACTION,
146
+ key: 'operationSentForApproval',
147
+ }));
148
+ }
134
149
  announceOutcome(result);
135
150
  if (onSuccess) {
136
151
  onSuccess(result);
137
152
  return;
138
153
  }
139
154
  goBackWithinZone();
140
- }, [announceOutcome, goBackWithinZone, onSuccess]);
155
+ }, [announceOutcome, goBackWithinZone, onSuccess, tComponent]);
141
156
  const handleError = useCallback((error) => {
142
157
  reportError(error, errorMessage, errorComponent);
143
158
  }, [errorComponent, errorMessage, reportError]);
@@ -224,7 +239,7 @@ export function useOperationDirectExecution({ onSuccess, errorMessage, errorComp
224
239
  if (!mutationResult.success) {
225
240
  throw mutationErrorForReport(mutationResult.error, executionFailedLabel);
226
241
  }
227
- result = mutationResult.responseData;
242
+ result = mutationResult.heldForApproval ?? mutationResult.responseData;
228
243
  }
229
244
  else if (isSingleRowUpdateLike) {
230
245
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"useOperationDirectExecution.js","sourceRoot":"","sources":["../../../../../src/core/resources/useOperationDirectExecution.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport type { FieldMetaEntry } from '@wildo-ai/saas-models';\nimport { ResourcesConfig_OperationPathUtils } from '@wildo-ai/saas-models';\nimport { FrontendComponentType } from '@wildo-ai/presets-components-models';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { resolveComponentLabel } from '~wildo-frontend-lib/core/i18n/component-label-resolution.utils';\nimport { useResourceOperationViewContext } from '~wildo-frontend-lib/core/resources/ResourceOperationViewContext';\nimport { FrontendResourceUtils, frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport {\n allowsDirectOperationFallback,\n MissingRMMRuntimeError,\n resolveDeclaredUpdateLikeMutationFallbackMode,\n} from '~wildo-frontend-lib/core/resources/rmm/update-like-mutation-fallback.frontend';\nimport { useResourceRMM } from '~wildo-frontend-lib/core/resources/rmm/useResourceRMM';\nimport { mutationErrorForReport } from '~wildo-frontend-lib/core/resources/rmm/mutation-error-report.utils';\nimport { ConflictStrategy, MutationPriority, MutationSourceType, MutationType } from '~wildo-frontend-lib/core/resources/rmm/types';\nimport {\n performCanonicalRMMRead,\n resolveCanonicalRMMReadOperationPathKey,\n} from '~wildo-frontend-lib/core/resources/rmm/canonical-read.frontend.utils';\nimport { isSingleResourceUpdateLikeOperation } from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { useResourceOperationOutcomeEmitter } from '~wildo-frontend-lib/core/resources/useResourceOperationOutcomeEmitter';\n\nexport interface UseOperationDirectExecutionParams {\n /** Replaces what happens AFTER a success. The outcome is announced either way. Omitted: go back within the zone. */\n onSuccess?: (result: unknown) => void;\n /** The message a failure is reported under. */\n errorMessage: string;\n /** The component a failure is attributed to in the report. */\n errorComponent: string;\n}\n\nexport interface OperationDirectExecution {\n /**\n * Execute the hosted operation with this exact request body — no form, no validation pass beyond\n * the server's. Resolves once the outcome has been announced (success) or reported (failure).\n * Omitted means \"no body at all\", which is what a zero-input action sends — not an empty object.\n */\n execute: (requestData?: Record<string, unknown>) => Promise<void>;\n /** True while a request is in flight. */\n isExecuting: boolean;\n /**\n * True while an update-like operation with no target id in its context is resolving that id from\n * the canonical READ. Execution must wait for it: the RMM that carries the mutation is keyed on it.\n */\n isBootstrapping: boolean;\n /**\n * The success path itself — announce the outcome, then `onSuccess` or go back. Exposed so a host\n * that ALSO renders a form hands the form this very function, and \"what success means\" has one\n * definition across the form and the form-less paths.\n */\n completeWithSuccess: (result: unknown) => void;\n /** The failure path — reports under `errorMessage` / `errorComponent`. Same reason as above. */\n reportFailure: (error: Error) => void;\n}\n\ntype BootstrappedTargetRow = {\n contextKey: string;\n row: Record<string, unknown>;\n};\n\n/**\n * Execute the NEAREST operation view's operation with a body the caller already has — the form-less\n * half of every operation host.\n *\n * ## Why this is its own hook\n *\n * It began as the zero-input branch of `ResourceLayout_SemanticOperationFallback` (\"Run\" with an\n * empty body), and a DROPDOWN action needs exactly the same thing with a one-field body: the pick is\n * the submission. The alternative — a second copy of the RMM-or-direct decision, the canonical-READ\n * bootstrap and the outcome announcement inside the dropdown — is the shape this package has already\n * paid for once (the bulk selector, spelled two ways). One hook, so a host that executes without a\n * form inherits the whole contract by using it:\n *\n * - **update-like single-resource operations run through the RMM**, never the plain `doOperation`\n * lane, and fail closed with `MissingRMMRuntimeError` rather than writing without it;\n * - **a missing target id is resolved first** from the canonical READ, so a detail-less context (a\n * bulk bar, a singleton) still mutates the right row;\n * - **everything else runs `executeCurrentOperation`**, which merges a bulk selection into the body;\n * - **the outcome is ALWAYS announced**, and `onSuccess` replaces only what happens next.\n *\n * Confirmation is NOT decided here. Each host owns the dialog it shows, because only the host knows\n * whether a person has already acted deliberately (typed a phrase, pressed Submit) or merely picked.\n *\n * Must be called under a `ResourceOperationViewProvider` for the operation being executed — a\n * detached host establishes one (`ResourceOperationDetachedHost`, `ResourceOperationActionDropdown`).\n */\nexport function useOperationDirectExecution({\n onSuccess,\n errorMessage,\n errorComponent,\n}: UseOperationDirectExecutionParams): OperationDirectExecution {\n const {\n resourceContext: currentResourceContext,\n resourceType,\n operation,\n reportError,\n goBackWithinZone,\n executeCurrentOperation,\n } = useResourceOperationViewContext();\n const { doOperation, registry } = useResourceRegistry();\n // `resource` as well as the component: a resource may override the component's words, and the\n // fallback this was extracted from resolved them resource-scoped.\n const { tComponent } = useI18n({ component: FrontendComponentType.RESOURCES_LAYOUTS_ACTION, resource: resourceType });\n const doOperationRef = useRef(doOperation);\n doOperationRef.current = doOperation;\n\n const [isExecuting, setIsExecuting] = useState(false);\n const [isBootstrapping, setIsBootstrapping] = useState(false);\n const [bootstrappedRow, setBootstrappedRow] = useState<BootstrappedTargetRow | null>(null);\n /*\n * A single-row update-like operation addresses ONE row, whichever lane it runs on, so its target id\n * is resolved (the canonical-READ bootstrap below) for both lanes, and the row's RMM is attached when\n * the row has one.\n *\n * It runs through that RMM when there is one. Without one it runs directly only if the operation\n * DECLARED the direct lane (`operationFrontendConfig.updateLikeMutationFallbackMode`), read through the\n * same function the form host and `useResourceOperationSurface` read, so the two hosts pick the same lane;\n * otherwise it fails closed.\n */\n const isSingleRowUpdateLike = useMemo(() => isSingleResourceUpdateLikeOperation(operation), [operation]);\n const acceptsDirectLane = isSingleRowUpdateLike\n && allowsDirectOperationFallback(resolveDeclaredUpdateLikeMutationFallbackMode(operation));\n\n const bootstrapContextKey = useMemo(() => JSON.stringify({\n contextResourceIdentifiers: FrontendResourceUtils.buildContextResourceIdentifiersKey(\n currentResourceContext.contextResourceIdentifiers ?? {},\n ),\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements ?? [],\n }), [\n currentResourceContext.contextResourceIdentifiers,\n currentResourceContext.parentResourcesRequirements,\n ]);\n const routeResourceId = useMemo(() => {\n const identifier = currentResourceContext.contextResourceIdentifiers?.[resourceType];\n if (!identifier) {\n return null;\n }\n return frontendResourceUtils.getResourceId(identifier) ?? null;\n }, [currentResourceContext.contextResourceIdentifiers, resourceType]);\n const currentResourceId = routeResourceId ?? (\n bootstrappedRow?.contextKey === bootstrapContextKey\n && typeof bootstrappedRow.row._id === 'string'\n && bootstrappedRow.row._id.length > 0\n ? bootstrappedRow.row._id\n : null\n );\n const contextResourceIdentifiersWithResourceId = useMemo(() => {\n if (!currentResourceId || currentResourceContext.contextResourceIdentifiers?.[resourceType]) {\n return currentResourceContext.contextResourceIdentifiers;\n }\n\n return {\n ...currentResourceContext.contextResourceIdentifiers,\n [resourceType]: currentResourceId,\n };\n }, [currentResourceContext.contextResourceIdentifiers, currentResourceId, resourceType]);\n const contextualParameters = useMemo(() => {\n return FrontendResourceUtils.buildContextualParameters(\n contextResourceIdentifiersWithResourceId,\n registry,\n );\n }, [contextResourceIdentifiersWithResourceId, registry]);\n const canonicalReadOperationPathKey = useMemo(() => {\n return resolveCanonicalRMMReadOperationPathKey(resourceType, registry, {\n hasResourceId: Boolean(currentResourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters,\n });\n }, [contextResourceIdentifiersWithResourceId, contextualParameters, currentResourceId, registry, resourceType]);\n const { rmm } = useResourceRMM({\n resourceType,\n resourceId: currentResourceId,\n doOperationRef,\n contextualParameters,\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n resourceSchema: registry.resourceConfigurations[resourceType]?.mainSchema,\n enabled: isSingleRowUpdateLike && !!currentResourceId,\n conflictPolicy: { strategy: ConflictStrategy.ACCEPT_REMOTE },\n directFallbackAccepted: acceptsDirectLane,\n });\n\n const executionFailedLabel = useMemo(() => {\n return resolveComponentLabel({\n tComponent,\n componentType: FrontendComponentType.RESOURCES_LAYOUTS_ACTION,\n key: 'executionFailed',\n });\n }, [tComponent]);\n\n /*\n * Announced with the context that carries the RESOLVED row id, not the route's. A context-addressed\n * singleton has no id on its route; the id comes from the canonical READ, and a page showing that row\n * re-reads only when the announcement names it (#1782). The route context named no row, so an action\n * whose result carries no `_id` (a secret's change outcome) announced a change to nobody.\n */\n const announcedContext = useMemo(\n () => (contextResourceIdentifiersWithResourceId === currentResourceContext.contextResourceIdentifiers\n ? currentResourceContext\n : { ...currentResourceContext, contextResourceIdentifiers: contextResourceIdentifiersWithResourceId }),\n [contextResourceIdentifiersWithResourceId, currentResourceContext],\n );\n const announceOutcome = useResourceOperationOutcomeEmitter(announcedContext, operation);\n const handleSuccess = useCallback((result: unknown) => {\n announceOutcome(result);\n if (onSuccess) {\n onSuccess(result);\n return;\n }\n goBackWithinZone();\n }, [announceOutcome, goBackWithinZone, onSuccess]);\n\n const handleError = useCallback((error: Error) => {\n reportError(error, errorMessage, errorComponent);\n }, [errorComponent, errorMessage, reportError]);\n\n useEffect(() => {\n if (!isSingleRowUpdateLike || currentResourceId || !canonicalReadOperationPathKey) {\n return;\n }\n\n let cancelled = false;\n setIsBootstrapping(true);\n void performCanonicalRMMRead({\n doOperation: doOperationRef.current,\n readOperationPathKey: canonicalReadOperationPathKey,\n contextualParameters,\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,\n }).then((row) => {\n if (cancelled) return;\n setBootstrappedRow({\n contextKey: bootstrapContextKey,\n row,\n });\n }).catch((error: unknown) => {\n if (cancelled) return;\n handleError(error instanceof Error ? error : new Error(String(error)));\n }).finally(() => {\n if (!cancelled) {\n setIsBootstrapping(false);\n }\n });\n\n return () => {\n cancelled = true;\n };\n }, [\n bootstrapContextKey,\n canonicalReadOperationPathKey,\n contextualParameters,\n currentResourceContext.parentResourcesRequirements,\n currentResourceId,\n handleError,\n isSingleRowUpdateLike,\n ]);\n\n useEffect(() => {\n if (!rmm || !bootstrappedRow || bootstrappedRow.contextKey !== bootstrapContextKey) {\n return;\n }\n\n if (typeof rmm.getSnapshot === 'function' && rmm.getSnapshot().confirmedData !== null) {\n return;\n }\n\n if (typeof rmm.setInitialState === 'function') {\n const row = bootstrappedRow.row;\n rmm.setInitialState(\n row,\n (row._version as number | undefined) ?? 0,\n row._field_meta as Record<string, FieldMetaEntry> | undefined,\n );\n }\n }, [bootstrapContextKey, bootstrappedRow, rmm]);\n\n const execute = useCallback(async (requestData?: Record<string, unknown>) => {\n setIsExecuting(true);\n try {\n let result: unknown;\n\n if (isSingleRowUpdateLike && (rmm || !acceptsDirectLane)) {\n if (!rmm) {\n throw new MissingRMMRuntimeError({\n surfaceName: 'useOperationDirectExecution',\n resourceType,\n operationIdentifier: String(operation.operationIdentifier),\n });\n }\n\n // No optimistic patch: the body is the OPERATION's input, not a set of resource fields, and a\n // custom operation's input names need not be the row's. The row is read back on success.\n const mutationResult = await rmm.queueMutation({}, {\n type: MutationType.CUSTOM,\n priority: MutationPriority.HIGH,\n source: {\n type: MutationSourceType.CUSTOM,\n subscriberId: `direct-execution:${String(operation.operationIdentifier)}`,\n },\n transportOverride: {\n operationPathKey: ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation),\n contextualParameters,\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,\n requestData: requestData ?? {},\n readBackOnSuccess: true,\n },\n });\n\n if (!mutationResult.success) {\n throw mutationErrorForReport(mutationResult.error, executionFailedLabel);\n }\n\n result = mutationResult.responseData;\n } else if (isSingleRowUpdateLike) {\n /*\n * No RMM and the direct lane declared, still for ONE row: sent with the parameters this hook resolved, which carry the\n * bootstrapped id when the route had none. `executeCurrentOperation` builds its parameters from the\n * route alone, so from a detail-less context (a singleton, a bulk bar) it would address `{id}`\n * unresolved. With no id at all the operation has no row to act on, and says so instead of sending.\n */\n if (!currentResourceId) {\n throw new Error(`${String(operation.operationIdentifier)} on ${resourceType} has no row to act on: no id on the route and none from its canonical READ.`);\n }\n result = await doOperationRef.current(ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation), {\n contextualParameters,\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,\n requestData: requestData ?? {},\n });\n } else {\n result = await executeCurrentOperation(requestData);\n }\n\n handleSuccess(result);\n } catch (error) {\n handleError(error instanceof Error ? error : new Error(executionFailedLabel));\n } finally {\n setIsExecuting(false);\n }\n }, [\n contextualParameters,\n currentResourceContext.parentResourcesRequirements,\n executeCurrentOperation,\n handleError,\n handleSuccess,\n acceptsDirectLane,\n isSingleRowUpdateLike,\n currentResourceId,\n operation,\n resourceType,\n rmm,\n executionFailedLabel,\n ]);\n\n return {\n execute,\n isExecuting,\n isBootstrapping,\n completeWithSuccess: handleSuccess,\n reportFailure: handleError,\n };\n}\n"]}
1
+ {"version":3,"file":"useOperationDirectExecution.js","sourceRoot":"","sources":["../../../../../src/core/resources/useOperationDirectExecution.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport type { FieldMetaEntry } from '@wildo-ai/saas-models';\nimport { ResourcesConfig_OperationPathUtils, readOperationApprovalPending } from '@wildo-ai/saas-models';\nimport { NotificationContext } from '~wildo-frontend-lib/core/events/NotificationContext';\nimport { FrontendComponentType } from '@wildo-ai/presets-components-models';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { resolveComponentLabel } from '~wildo-frontend-lib/core/i18n/component-label-resolution.utils';\nimport { useResourceOperationViewContext } from '~wildo-frontend-lib/core/resources/ResourceOperationViewContext';\nimport { FrontendResourceUtils, frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport {\n allowsDirectOperationFallback,\n MissingRMMRuntimeError,\n resolveUpdateLikeMutationFallbackMode,\n} from '~wildo-frontend-lib/core/resources/rmm/update-like-mutation-fallback.frontend';\nimport { useResourceRMM } from '~wildo-frontend-lib/core/resources/rmm/useResourceRMM';\nimport { mutationErrorForReport } from '~wildo-frontend-lib/core/resources/rmm/mutation-error-report.utils';\nimport { ConflictStrategy, MutationPriority, MutationSourceType, MutationType } from '~wildo-frontend-lib/core/resources/rmm/types';\nimport {\n performCanonicalRMMRead,\n resolveCanonicalRMMReadOperationPathKey,\n} from '~wildo-frontend-lib/core/resources/rmm/canonical-read.frontend.utils';\nimport { isSingleResourceUpdateLikeOperation } from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { useResourceOperationOutcomeEmitter } from '~wildo-frontend-lib/core/resources/useResourceOperationOutcomeEmitter';\n\nexport interface UseOperationDirectExecutionParams {\n /** Replaces what happens AFTER a success. The outcome is announced either way. Omitted: go back within the zone. */\n onSuccess?: (result: unknown) => void;\n /** The message a failure is reported under. */\n errorMessage: string;\n /** The component a failure is attributed to in the report. */\n errorComponent: string;\n}\n\nexport interface OperationDirectExecution {\n /**\n * Execute the hosted operation with this exact request body — no form, no validation pass beyond\n * the server's. Resolves once the outcome has been announced (success) or reported (failure).\n * Omitted means \"no body at all\", which is what a zero-input action sends — not an empty object.\n */\n execute: (requestData?: Record<string, unknown>) => Promise<void>;\n /** True while a request is in flight. */\n isExecuting: boolean;\n /**\n * True while an update-like operation with no target id in its context is resolving that id from\n * the canonical READ. Execution must wait for it: the RMM that carries the mutation is keyed on it.\n */\n isBootstrapping: boolean;\n /**\n * The success path itself — announce the outcome, then `onSuccess` or go back. Exposed so a host\n * that ALSO renders a form hands the form this very function, and \"what success means\" has one\n * definition across the form and the form-less paths.\n */\n completeWithSuccess: (result: unknown) => void;\n /** The failure path — reports under `errorMessage` / `errorComponent`. Same reason as above. */\n reportFailure: (error: Error) => void;\n}\n\ntype BootstrappedTargetRow = {\n contextKey: string;\n row: Record<string, unknown>;\n};\n\n/**\n * Execute the NEAREST operation view's operation with a body the caller already has — the form-less\n * half of every operation host.\n *\n * ## Why this is its own hook\n *\n * It began as the zero-input branch of `ResourceLayout_SemanticOperationFallback` (\"Run\" with an\n * empty body), and a DROPDOWN action needs exactly the same thing with a one-field body: the pick is\n * the submission. The alternative — a second copy of the RMM-or-direct decision, the canonical-READ\n * bootstrap and the outcome announcement inside the dropdown — is the shape this package has already\n * paid for once (the bulk selector, spelled two ways). One hook, so a host that executes without a\n * form inherits the whole contract by using it:\n *\n * - **update-like single-resource operations run through the RMM**, never the plain `doOperation`\n * lane, and fail closed with `MissingRMMRuntimeError` rather than writing without it;\n * - **a missing target id is resolved first** from the canonical READ, so a detail-less context (a\n * bulk bar, a singleton) still mutates the right row;\n * - **everything else runs `executeCurrentOperation`**, which merges a bulk selection into the body;\n * - **the outcome is ALWAYS announced**, and `onSuccess` replaces only what happens next.\n *\n * Confirmation is NOT decided here. Each host owns the dialog it shows, because only the host knows\n * whether a person has already acted deliberately (typed a phrase, pressed Submit) or merely picked.\n *\n * Must be called under a `ResourceOperationViewProvider` for the operation being executed — a\n * detached host establishes one (`ResourceOperationDetachedHost`, `ResourceOperationActionDropdown`).\n */\nexport function useOperationDirectExecution({\n onSuccess,\n errorMessage,\n errorComponent,\n}: UseOperationDirectExecutionParams): OperationDirectExecution {\n const {\n resourceContext: currentResourceContext,\n resourceType,\n operation,\n reportError,\n goBackWithinZone,\n executeCurrentOperation,\n } = useResourceOperationViewContext();\n const { doOperation, registry } = useResourceRegistry();\n // `resource` as well as the component: a resource may override the component's words, and the\n // fallback this was extracted from resolved them resource-scoped.\n const { tComponent } = useI18n({ component: FrontendComponentType.RESOURCES_LAYOUTS_ACTION, resource: resourceType });\n const doOperationRef = useRef(doOperation);\n doOperationRef.current = doOperation;\n\n const [isExecuting, setIsExecuting] = useState(false);\n const [isBootstrapping, setIsBootstrapping] = useState(false);\n const [bootstrappedRow, setBootstrappedRow] = useState<BootstrappedTargetRow | null>(null);\n /*\n * A single-row update-like operation addresses ONE row, whichever lane it runs on, so its target id\n * is resolved (the canonical-READ bootstrap below) for both lanes, and the row's RMM is attached when\n * the row has one.\n *\n * It runs through that RMM when there is one. Without one it runs directly only if the operation's lane\n * is the direct one — declared by the operation, or derived because its resource has no field-write\n * route (#1956) — read through the same function the form host and `useResourceOperationSurface` read, so\n * the two hosts pick the same lane; otherwise it fails closed.\n */\n const isSingleRowUpdateLike = useMemo(() => isSingleResourceUpdateLikeOperation(operation), [operation]);\n const acceptsDirectLane = isSingleRowUpdateLike\n && allowsDirectOperationFallback(resolveUpdateLikeMutationFallbackMode(operation, registry.resourceConfigurations[resourceType]?.operations));\n\n const bootstrapContextKey = useMemo(() => JSON.stringify({\n contextResourceIdentifiers: FrontendResourceUtils.buildContextResourceIdentifiersKey(\n currentResourceContext.contextResourceIdentifiers ?? {},\n ),\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements ?? [],\n }), [\n currentResourceContext.contextResourceIdentifiers,\n currentResourceContext.parentResourcesRequirements,\n ]);\n const routeResourceId = useMemo(() => {\n const identifier = currentResourceContext.contextResourceIdentifiers?.[resourceType];\n if (!identifier) {\n return null;\n }\n return frontendResourceUtils.getResourceId(identifier) ?? null;\n }, [currentResourceContext.contextResourceIdentifiers, resourceType]);\n const currentResourceId = routeResourceId ?? (\n bootstrappedRow?.contextKey === bootstrapContextKey\n && typeof bootstrappedRow.row._id === 'string'\n && bootstrappedRow.row._id.length > 0\n ? bootstrappedRow.row._id\n : null\n );\n const contextResourceIdentifiersWithResourceId = useMemo(() => {\n if (!currentResourceId || currentResourceContext.contextResourceIdentifiers?.[resourceType]) {\n return currentResourceContext.contextResourceIdentifiers;\n }\n\n return {\n ...currentResourceContext.contextResourceIdentifiers,\n [resourceType]: currentResourceId,\n };\n }, [currentResourceContext.contextResourceIdentifiers, currentResourceId, resourceType]);\n const contextualParameters = useMemo(() => {\n return FrontendResourceUtils.buildContextualParameters(\n contextResourceIdentifiersWithResourceId,\n registry,\n );\n }, [contextResourceIdentifiersWithResourceId, registry]);\n const canonicalReadOperationPathKey = useMemo(() => {\n return resolveCanonicalRMMReadOperationPathKey(resourceType, registry, {\n hasResourceId: Boolean(currentResourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters,\n });\n }, [contextResourceIdentifiersWithResourceId, contextualParameters, currentResourceId, registry, resourceType]);\n const { rmm } = useResourceRMM({\n resourceType,\n resourceId: currentResourceId,\n doOperationRef,\n contextualParameters,\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n resourceSchema: registry.resourceConfigurations[resourceType]?.mainSchema,\n resourceInheritance: registry.resourceConfigurations[resourceType]?.inheritenceSchemaDefinition,\n enabled: isSingleRowUpdateLike && !!currentResourceId,\n conflictPolicy: { strategy: ConflictStrategy.ACCEPT_REMOTE },\n directFallbackAccepted: acceptsDirectLane,\n });\n\n const executionFailedLabel = useMemo(() => {\n return resolveComponentLabel({\n tComponent,\n componentType: FrontendComponentType.RESOURCES_LAYOUTS_ACTION,\n key: 'executionFailed',\n });\n }, [tComponent]);\n\n /*\n * Announced with the context that carries the RESOLVED row id, not the route's. A context-addressed\n * singleton has no id on its route; the id comes from the canonical READ, and a page showing that row\n * re-reads only when the announcement names it (#1782). The route context named no row, so an action\n * whose result carries no `_id` (a secret's change outcome) announced a change to nobody.\n */\n const announcedContext = useMemo(\n () => (contextResourceIdentifiersWithResourceId === currentResourceContext.contextResourceIdentifiers\n ? currentResourceContext\n : { ...currentResourceContext, contextResourceIdentifiers: contextResourceIdentifiersWithResourceId }),\n [contextResourceIdentifiersWithResourceId, currentResourceContext],\n );\n const announceOutcome = useResourceOperationOutcomeEmitter(announcedContext, operation);\n // Read directly, never through the throwing `useNotification()`: this hook must not require a provider.\n const notification = useContext(NotificationContext);\n const notificationRef = useRef(notification);\n notificationRef.current = notification;\n const handleSuccess = useCallback((result: unknown) => {\n // #2288: an operation held for another person's approval changed nothing. Said as waiting, and announced as nothing\n // (the emitter refuses a held answer); the host still moves on, since the request was made.\n if (readOperationApprovalPending(result)) {\n notificationRef.current?.notifyInfo(resolveComponentLabel({\n tComponent,\n componentType: FrontendComponentType.RESOURCES_LAYOUTS_ACTION,\n key: 'operationSentForApproval',\n }));\n }\n announceOutcome(result);\n if (onSuccess) {\n onSuccess(result);\n return;\n }\n goBackWithinZone();\n }, [announceOutcome, goBackWithinZone, onSuccess, tComponent]);\n\n const handleError = useCallback((error: Error) => {\n reportError(error, errorMessage, errorComponent);\n }, [errorComponent, errorMessage, reportError]);\n\n useEffect(() => {\n if (!isSingleRowUpdateLike || currentResourceId || !canonicalReadOperationPathKey) {\n return;\n }\n\n let cancelled = false;\n setIsBootstrapping(true);\n void performCanonicalRMMRead({\n doOperation: doOperationRef.current,\n readOperationPathKey: canonicalReadOperationPathKey,\n contextualParameters,\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,\n }).then((row) => {\n if (cancelled) return;\n setBootstrappedRow({\n contextKey: bootstrapContextKey,\n row,\n });\n }).catch((error: unknown) => {\n if (cancelled) return;\n handleError(error instanceof Error ? error : new Error(String(error)));\n }).finally(() => {\n if (!cancelled) {\n setIsBootstrapping(false);\n }\n });\n\n return () => {\n cancelled = true;\n };\n }, [\n bootstrapContextKey,\n canonicalReadOperationPathKey,\n contextualParameters,\n currentResourceContext.parentResourcesRequirements,\n currentResourceId,\n handleError,\n isSingleRowUpdateLike,\n ]);\n\n useEffect(() => {\n if (!rmm || !bootstrappedRow || bootstrappedRow.contextKey !== bootstrapContextKey) {\n return;\n }\n\n if (typeof rmm.getSnapshot === 'function' && rmm.getSnapshot().confirmedData !== null) {\n return;\n }\n\n if (typeof rmm.setInitialState === 'function') {\n const row = bootstrappedRow.row;\n rmm.setInitialState(\n row,\n (row._version as number | undefined) ?? 0,\n row._field_meta as Record<string, FieldMetaEntry> | undefined,\n );\n }\n }, [bootstrapContextKey, bootstrappedRow, rmm]);\n\n const execute = useCallback(async (requestData?: Record<string, unknown>) => {\n setIsExecuting(true);\n try {\n let result: unknown;\n\n if (isSingleRowUpdateLike && (rmm || !acceptsDirectLane)) {\n if (!rmm) {\n throw new MissingRMMRuntimeError({\n surfaceName: 'useOperationDirectExecution',\n resourceType,\n operationIdentifier: String(operation.operationIdentifier),\n });\n }\n\n // No optimistic patch: the body is the OPERATION's input, not a set of resource fields, and a\n // custom operation's input names need not be the row's. The row is read back on success.\n const mutationResult = await rmm.queueMutation({}, {\n type: MutationType.CUSTOM,\n priority: MutationPriority.HIGH,\n source: {\n type: MutationSourceType.CUSTOM,\n subscriberId: `direct-execution:${String(operation.operationIdentifier)}`,\n },\n transportOverride: {\n operationPathKey: ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation),\n contextualParameters,\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,\n requestData: requestData ?? {},\n readBackOnSuccess: true,\n },\n });\n\n if (!mutationResult.success) {\n throw mutationErrorForReport(mutationResult.error, executionFailedLabel);\n }\n\n result = mutationResult.heldForApproval ?? mutationResult.responseData;\n } else if (isSingleRowUpdateLike) {\n /*\n * No RMM and the direct lane declared, still for ONE row: sent with the parameters this hook resolved, which carry the\n * bootstrapped id when the route had none. `executeCurrentOperation` builds its parameters from the\n * route alone, so from a detail-less context (a singleton, a bulk bar) it would address `{id}`\n * unresolved. With no id at all the operation has no row to act on, and says so instead of sending.\n */\n if (!currentResourceId) {\n throw new Error(`${String(operation.operationIdentifier)} on ${resourceType} has no row to act on: no id on the route and none from its canonical READ.`);\n }\n result = await doOperationRef.current(ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation), {\n contextualParameters,\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,\n requestData: requestData ?? {},\n });\n } else {\n result = await executeCurrentOperation(requestData);\n }\n\n handleSuccess(result);\n } catch (error) {\n handleError(error instanceof Error ? error : new Error(executionFailedLabel));\n } finally {\n setIsExecuting(false);\n }\n }, [\n contextualParameters,\n currentResourceContext.parentResourcesRequirements,\n executeCurrentOperation,\n handleError,\n handleSuccess,\n acceptsDirectLane,\n isSingleRowUpdateLike,\n currentResourceId,\n operation,\n resourceType,\n rmm,\n executionFailedLabel,\n ]);\n\n return {\n execute,\n isExecuting,\n isBootstrapping,\n completeWithSuccess: handleSuccess,\n reportFailure: handleError,\n };\n}\n"]}
@@ -0,0 +1,58 @@
1
+ import { type RelationshipRecordReach } from '@wildo-ai/saas-models';
2
+ import type { FrontendResourceConfiguration_Operation, FrontendResourcesRegistry } from '../../core/resources/resources.frontend.schemas';
3
+ /** Where the screen's read stands. */
4
+ export declare enum RecordSharingReadState {
5
+ /** Nothing is asked: the screen is not offered here. */
6
+ IDLE = "idle",
7
+ /** Asked; the answer has not arrived. The screen shows nothing yet, so nothing is offered first and withdrawn after. */
8
+ LOADING = "loading",
9
+ /** The read answered, for the record now on screen. */
10
+ READY = "ready",
11
+ /** The backend does not share records of this resource. The screen shows nothing. */
12
+ NOT_SHAREABLE = "not_shareable",
13
+ /** A read failed. The screen says so and offers nothing. */
14
+ FAILED = "failed"
15
+ }
16
+ /** One of the granting organization's relationships, as the read describes it: who it is, and what its people reach of the record. */
17
+ export interface RecordSharingRelationship extends RelationshipRecordReach {
18
+ readonly relationshipId: string;
19
+ /** The representing organization's name, when the relationship carries it. */
20
+ readonly name?: string;
21
+ }
22
+ export interface RecordSharing {
23
+ readonly readState: RecordSharingReadState;
24
+ /**
25
+ * A change was made and the answer is being read again. The last answer stays shown meanwhile (READY), so the section
26
+ * does not vanish under the person who just acted (#2736 review F2); the screen disables its controls instead.
27
+ */
28
+ readonly refreshing: boolean;
29
+ readonly relationships: readonly RecordSharingRelationship[];
30
+ /** The relationship the record was created through, or `null` when it is the organization's own. */
31
+ readonly viaRelationshipId: string | null;
32
+ /** The relationships the organization shared the record with. */
33
+ readonly sharedWithRelationshipIds: readonly string[];
34
+ /** Every relationship reads every record of this resource by the application's declaration: a share changes nothing. */
35
+ readonly commonToEveryRelationship: boolean;
36
+ /** Share the record with one relationship, then read again. Rejects when the backend refused; it has reported why. */
37
+ readonly share: (relationshipId: string) => Promise<void>;
38
+ /** Withdraw a share, then read again. Rejects when the backend refused; it has reported why. */
39
+ readonly unshare: (relationshipId: string) => Promise<void>;
40
+ }
41
+ /**
42
+ * The relationships resource's default API operation `identifier`, as this frontend registers it; `undefined` when it is
43
+ * not registered, which leaves the screen with nothing to offer rather than a guessed URL.
44
+ */
45
+ export declare function findRelationshipOperation(registry: FrontendResourcesRegistry | undefined, identifier: string): FrontendResourceConfiguration_Operation | undefined;
46
+ /** Whether a rejected read is the backend saying it does not share this resource's records. */
47
+ export declare function isRecordNotShareableRefusal(error: unknown): boolean;
48
+ /**
49
+ * See the module comment. `enabled` is the screen's gate (the resource carries provenance, the viewer administers the
50
+ * granting organization the record belongs to); nothing is asked while it is false.
51
+ */
52
+ export declare function useRecordSharing(input: {
53
+ readonly enabled: boolean;
54
+ readonly organizationId: string | undefined;
55
+ readonly resourceType: string;
56
+ readonly recordId: string | undefined;
57
+ }): RecordSharing;
58
+ //# sourceMappingURL=useRecordSharing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRecordSharing.d.ts","sourceRoot":"","sources":["../../../../../src/core/resources/useRecordSharing.ts"],"names":[],"mappings":"AAuBA,OAAO,EAQL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,uCAAuC,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAOxJ,sCAAsC;AACtC,oBAAY,sBAAsB;IAChC,wDAAwD;IACxD,IAAI,SAAS;IACb,wHAAwH;IACxH,OAAO,YAAY;IACnB,uDAAuD;IACvD,KAAK,UAAU;IACf,qFAAqF;IACrF,aAAa,kBAAkB;IAC/B,4DAA4D;IAC5D,MAAM,WAAW;CAClB;AAED,sIAAsI;AACtI,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC7D,oGAAoG;IACpG,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,iEAAiE;IACjE,QAAQ,CAAC,yBAAyB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtD,wHAAwH;IACxH,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAC5C,sHAAsH;IACtH,QAAQ,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,gGAAgG;IAChG,QAAQ,CAAC,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,yBAAyB,GAAG,SAAS,EAC/C,UAAU,EAAE,MAAM,GACjB,uCAAuC,GAAG,SAAS,CASrD;AA4BD,+FAA+F;AAC/F,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAInE;AAgBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,GAAG,aAAa,CAoIhB"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * One record's sharing with the organization's relationships (#2736), for the administrator of the granting organization.
3
+ *
4
+ * #2722 separated records between an organization's relationships: a record created through one relationship is that
5
+ * relationship's, and the organization's own records reach a representative only as its relationship kind allows. The
6
+ * organization's administrators widen that record by record with `shareRecord` / `unshareRecord` on the relationship.
7
+ *
8
+ * Everything the screen says comes from one administrator-only read, `readRecordSharing`, which answers whose the record
9
+ * is, who it is shared with, and for every live relationship (and any other the record names) what its people reach of
10
+ * the record: whether it confers now, whether its roles reach this record (its role and lent capabilities, and its units
11
+ * for a relationship limited to units), whether it reads the record without a share, and whether a share would let it.
12
+ * The backend decides each with the request path's own predicates and the authorizer's own answer, so the screen never
13
+ * offers a share that changes nothing (a record no relationship can read, a relationship that already reads it, a dormant
14
+ * relationship) and never claims a reach the engine would not grant (#2736 review N1, N2, M1). The
15
+ * provenance and shares are stripped from the record's own response: a representative reading a shared record never
16
+ * learns which other relationships it reaches.
17
+ *
18
+ * A resource the backend will not share at all (a system of record's rows, which have no table to hold a share) answers
19
+ * `RELATIONSHIP_RECORD_NOT_SHAREABLE`: the screen then has nothing to offer and says nothing
20
+ * ({@link RecordSharingReadState.NOT_SHAREABLE}). Any other failure is a read that did not complete and is shown as one.
21
+ * Presentation only: the backend authorizes every call.
22
+ */
23
+ import { useCallback, useContext, useEffect, useRef, useState } from 'react';
24
+ import { CoreResourceType, OrganizationRelationshipErrorCode, OrganizationRelationships_Operations, RelationshipRecordSharingSchema, ResourceOperationVariantType, ResourcesConfig_OperationPathUtils, isWildoBackendError, } from '@wildo-ai/saas-models';
25
+ import { ResourceRegistryContext } from '../../core/resources/ResourceRegistryContext.js';
26
+ import { ScopeUtilsService } from '../../core/scope/scope.utils.frontend.service.js';
27
+ import { FrontendResourceUtils, frontendResourceUtils } from '../../core/resources/frontend-resource.utils.js';
28
+ import { LoggerFrontendService } from '../../core/monitoring/logger.frontend.service.js';
29
+ const logger = LoggerFrontendService.getLogger();
30
+ /** Where the screen's read stands. */
31
+ export var RecordSharingReadState;
32
+ (function (RecordSharingReadState) {
33
+ /** Nothing is asked: the screen is not offered here. */
34
+ RecordSharingReadState["IDLE"] = "idle";
35
+ /** Asked; the answer has not arrived. The screen shows nothing yet, so nothing is offered first and withdrawn after. */
36
+ RecordSharingReadState["LOADING"] = "loading";
37
+ /** The read answered, for the record now on screen. */
38
+ RecordSharingReadState["READY"] = "ready";
39
+ /** The backend does not share records of this resource. The screen shows nothing. */
40
+ RecordSharingReadState["NOT_SHAREABLE"] = "not_shareable";
41
+ /** A read failed. The screen says so and offers nothing. */
42
+ RecordSharingReadState["FAILED"] = "failed";
43
+ })(RecordSharingReadState || (RecordSharingReadState = {}));
44
+ /**
45
+ * The relationships resource's default API operation `identifier`, as this frontend registers it; `undefined` when it is
46
+ * not registered, which leaves the screen with nothing to offer rather than a guessed URL.
47
+ */
48
+ export function findRelationshipOperation(registry, identifier) {
49
+ const operations = registry?.resourceConfigurations[CoreResourceType.ORGANIZATION_RELATIONSHIPS]?.operations;
50
+ return operations?.find((operation) => String(operation.operationIdentifier) === identifier
51
+ && operation.isOperationDefault === true
52
+ && operation.isBulkOperation !== true
53
+ && operation.variantType === ResourceOperationVariantType.API_CALL);
54
+ }
55
+ /**
56
+ * The parameters one relationships call carries: the organization it acts in, and the relationship row for a verb on
57
+ * one. Built by the same scope utility every resource surface of the organization uses.
58
+ */
59
+ function relationshipCallOf(registry, operation, organizationId, relationshipId) {
60
+ const resourceType = CoreResourceType.ORGANIZATION_RELATIONSHIPS;
61
+ const contextResourceIdentifiers = {
62
+ ...ScopeUtilsService.buildResourceOperationContextIdentifiers({
63
+ currentOrganizationId: organizationId,
64
+ primaryScope: registry.resourceConfigurations[resourceType]?.resourcePrimaryScope,
65
+ explicitContextResourceIdentifiers: {},
66
+ }),
67
+ ...(relationshipId ? { [resourceType]: relationshipId } : {}),
68
+ };
69
+ return {
70
+ operationPathKey: ResourcesConfig_OperationPathUtils.buildOperationPathKeyFromOperation(operation),
71
+ contextualParameters: FrontendResourceUtils.buildContextualParameters(contextResourceIdentifiers, registry),
72
+ parentResourcesRequirements: frontendResourceUtils.buildParentResourcesRequirements(resourceType, contextResourceIdentifiers, registry),
73
+ };
74
+ }
75
+ /** Whether a rejected read is the backend saying it does not share this resource's records. */
76
+ export function isRecordNotShareableRefusal(error) {
77
+ const errorLike = error;
78
+ const code = errorLike?.response?.data?.error?.details?.code ?? errorLike?.context?.code;
79
+ return code === OrganizationRelationshipErrorCode.RELATIONSHIP_RECORD_NOT_SHAREABLE;
80
+ }
81
+ const NOTHING_SHARED = {
82
+ relationships: [],
83
+ viaRelationshipId: null,
84
+ sharedWithRelationshipIds: [],
85
+ commonToEveryRelationship: false,
86
+ };
87
+ /**
88
+ * See the module comment. `enabled` is the screen's gate (the resource carries provenance, the viewer administers the
89
+ * granting organization the record belongs to); nothing is asked while it is false.
90
+ */
91
+ export function useRecordSharing(input) {
92
+ // The context itself, so a host rendered outside the registry provider reads "nothing offered" rather than failing.
93
+ const registryContext = useContext(ResourceRegistryContext);
94
+ const registry = registryContext?.registry;
95
+ // The scoped `doOperation` changes identity with every scope change; read the latest through a ref so a settling scope
96
+ // does not cancel and resend the read (the reason `useCurrentOrganizationHoldsUnrevokedScimToken` gives).
97
+ const doOperationRef = useRef(registryContext?.doOperation);
98
+ doOperationRef.current = registryContext?.doOperation;
99
+ const [generation, setGeneration] = useState(0);
100
+ const [readState, setReadState] = useState(RecordSharingReadState.IDLE);
101
+ const [refreshing, setRefreshing] = useState(false);
102
+ const [answer, setAnswer] = useState(NOTHING_SHARED);
103
+ const { enabled, organizationId, resourceType, recordId } = input;
104
+ // The record the answer (or the failure) on hand belongs to. Read during render, so the frame in which the page has
105
+ // moved to another record, before the effect below runs, never shows the previous record's sharing (#2736 review I4).
106
+ const [answeredSubject, setAnsweredSubject] = useState(undefined);
107
+ const currentSubject = enabled && organizationId && recordId ? `${organizationId}|${resourceType}|${recordId}` : undefined;
108
+ // The record whose answer is on screen. A read for the SAME record after a change refreshes it in place; a read for
109
+ // another record starts from nothing; with the render-time check on `answeredSubject`, one record's sharing is never
110
+ // shown as another's, not even for the frame before this effect runs.
111
+ const settledSubjectRef = useRef(undefined);
112
+ useEffect(() => {
113
+ const doOperation = doOperationRef.current;
114
+ const readOperation = findRelationshipOperation(registry, OrganizationRelationships_Operations.READ_RECORD_SHARING);
115
+ if (!enabled || !registry || !doOperation || !organizationId || !recordId || !readOperation) {
116
+ settledSubjectRef.current = undefined;
117
+ setAnsweredSubject(undefined);
118
+ setReadState(RecordSharingReadState.IDLE);
119
+ setRefreshing(false);
120
+ setAnswer(NOTHING_SHARED);
121
+ return undefined;
122
+ }
123
+ let cancelled = false;
124
+ const subject = `${organizationId}|${resourceType}|${recordId}`;
125
+ if (settledSubjectRef.current === subject) {
126
+ setRefreshing(true);
127
+ }
128
+ else {
129
+ settledSubjectRef.current = undefined;
130
+ setRefreshing(false);
131
+ setAnswer(NOTHING_SHARED);
132
+ setReadState(RecordSharingReadState.LOADING);
133
+ }
134
+ void (async () => {
135
+ try {
136
+ const sharingCall = relationshipCallOf(registry, readOperation, organizationId);
137
+ // Silent: a refusal here is answered by the screen itself (hidden, or "could not be read").
138
+ const sharing = RelationshipRecordSharingSchema.parse(await doOperation(sharingCall.operationPathKey, { contextualParameters: sharingCall.contextualParameters, parentResourcesRequirements: sharingCall.parentResourcesRequirements, requestData: { resourceType, recordId } }, { silent: true }));
139
+ if (cancelled)
140
+ return;
141
+ setAnswer({
142
+ relationships: sharing.relationships.map(({ representingOrganizationName, ...relationship }) => ({
143
+ ...relationship,
144
+ ...(representingOrganizationName ? { name: representingOrganizationName } : {}),
145
+ })),
146
+ viaRelationshipId: sharing.viaRelationshipId,
147
+ sharedWithRelationshipIds: sharing.sharedWithRelationshipIds,
148
+ commonToEveryRelationship: sharing.commonToEveryRelationship,
149
+ });
150
+ settledSubjectRef.current = subject;
151
+ setAnsweredSubject(subject);
152
+ setReadState(RecordSharingReadState.READY);
153
+ setRefreshing(false);
154
+ }
155
+ catch (error) {
156
+ if (cancelled)
157
+ return;
158
+ settledSubjectRef.current = undefined;
159
+ setAnsweredSubject(subject);
160
+ setRefreshing(false);
161
+ setAnswer(NOTHING_SHARED);
162
+ if (isRecordNotShareableRefusal(error)) {
163
+ setReadState(RecordSharingReadState.NOT_SHAREABLE);
164
+ return;
165
+ }
166
+ logger.warn('[RecordSharing] The record\'s sharing could not be read', { resourceType, backendError: isWildoBackendError(error) });
167
+ setReadState(RecordSharingReadState.FAILED);
168
+ }
169
+ })();
170
+ return () => { cancelled = true; };
171
+ }, [enabled, registry, organizationId, resourceType, recordId, generation]);
172
+ const change = useCallback(async (identifier, relationshipId) => {
173
+ const doOperation = doOperationRef.current;
174
+ const operation = findRelationshipOperation(registry, identifier);
175
+ if (!registry || !doOperation || !operation || !organizationId || !recordId) {
176
+ throw new Error(`The ${identifier} operation of organization relationships is not available in this frontend.`);
177
+ }
178
+ const call = relationshipCallOf(registry, operation, organizationId, relationshipId);
179
+ // Disabled from the click, not from the next render: the re-read below starts on the following commit, and the
180
+ // controls must not re-enable over the answer the change is about to replace (#2736 review N5).
181
+ setRefreshing(true);
182
+ try {
183
+ // Not silent: a refusal (a relationship no longer active, a record gone) is reported by the request's own handling.
184
+ await doOperation(call.operationPathKey, {
185
+ contextualParameters: call.contextualParameters,
186
+ parentResourcesRequirements: call.parentResourcesRequirements,
187
+ requestData: { resourceType, recordId },
188
+ });
189
+ }
190
+ finally {
191
+ setGeneration((value) => value + 1);
192
+ }
193
+ }, [registry, organizationId, resourceType, recordId]);
194
+ const share = useCallback((relationshipId) => change(OrganizationRelationships_Operations.SHARE_RECORD, relationshipId), [change]);
195
+ const unshare = useCallback((relationshipId) => change(OrganizationRelationships_Operations.UNSHARE_RECORD, relationshipId), [change]);
196
+ // An answer about another record than the one asked now is not shown: the read for this one is on its way.
197
+ if (readState !== RecordSharingReadState.IDLE && readState !== RecordSharingReadState.LOADING && answeredSubject !== currentSubject) {
198
+ return {
199
+ readState: RecordSharingReadState.LOADING,
200
+ refreshing: false,
201
+ relationships: NOTHING_SHARED.relationships,
202
+ viaRelationshipId: NOTHING_SHARED.viaRelationshipId,
203
+ sharedWithRelationshipIds: NOTHING_SHARED.sharedWithRelationshipIds,
204
+ commonToEveryRelationship: NOTHING_SHARED.commonToEveryRelationship,
205
+ share,
206
+ unshare,
207
+ };
208
+ }
209
+ return {
210
+ readState,
211
+ refreshing,
212
+ relationships: answer.relationships,
213
+ viaRelationshipId: answer.viaRelationshipId,
214
+ sharedWithRelationshipIds: answer.sharedWithRelationshipIds,
215
+ commonToEveryRelationship: answer.commonToEveryRelationship,
216
+ share,
217
+ unshare,
218
+ };
219
+ }
220
+ //# sourceMappingURL=useRecordSharing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRecordSharing.js","sourceRoot":"","sources":["../../../../../src/core/resources/useRecordSharing.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * One record's sharing with the organization's relationships (#2736), for the administrator of the granting organization.\n *\n * #2722 separated records between an organization's relationships: a record created through one relationship is that\n * relationship's, and the organization's own records reach a representative only as its relationship kind allows. The\n * organization's administrators widen that record by record with `shareRecord` / `unshareRecord` on the relationship.\n *\n * Everything the screen says comes from one administrator-only read, `readRecordSharing`, which answers whose the record\n * is, who it is shared with, and for every live relationship (and any other the record names) what its people reach of\n * the record: whether it confers now, whether its roles reach this record (its role and lent capabilities, and its units\n * for a relationship limited to units), whether it reads the record without a share, and whether a share would let it.\n * The backend decides each with the request path's own predicates and the authorizer's own answer, so the screen never\n * offers a share that changes nothing (a record no relationship can read, a relationship that already reads it, a dormant\n * relationship) and never claims a reach the engine would not grant (#2736 review N1, N2, M1). The\n * provenance and shares are stripped from the record's own response: a representative reading a shared record never\n * learns which other relationships it reaches.\n *\n * A resource the backend will not share at all (a system of record's rows, which have no table to hold a share) answers\n * `RELATIONSHIP_RECORD_NOT_SHAREABLE`: the screen then has nothing to offer and says nothing\n * ({@link RecordSharingReadState.NOT_SHAREABLE}). Any other failure is a read that did not complete and is shown as one.\n * Presentation only: the backend authorizes every call.\n */\nimport { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport {\n CoreResourceType,\n OrganizationRelationshipErrorCode,\n OrganizationRelationships_Operations,\n RelationshipRecordSharingSchema,\n ResourceOperationVariantType,\n ResourcesConfig_OperationPathUtils,\n isWildoBackendError,\n type RelationshipRecordReach,\n} from '@wildo-ai/saas-models';\nimport { ResourceRegistryContext } from '~wildo-frontend-lib/core/resources/ResourceRegistryContext';\nimport type { FrontendResourceConfiguration_Operation, FrontendResourcesRegistry } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { ScopeUtilsService } from '~wildo-frontend-lib/core/scope/scope.utils.frontend.service';\nimport { FrontendResourceUtils, frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\n\nconst logger: LoggerFrontendService = LoggerFrontendService.getLogger();\n\n/** Where the screen's read stands. */\nexport enum RecordSharingReadState {\n /** Nothing is asked: the screen is not offered here. */\n IDLE = 'idle',\n /** Asked; the answer has not arrived. The screen shows nothing yet, so nothing is offered first and withdrawn after. */\n LOADING = 'loading',\n /** The read answered, for the record now on screen. */\n READY = 'ready',\n /** The backend does not share records of this resource. The screen shows nothing. */\n NOT_SHAREABLE = 'not_shareable',\n /** A read failed. The screen says so and offers nothing. */\n FAILED = 'failed',\n}\n\n/** One of the granting organization's relationships, as the read describes it: who it is, and what its people reach of the record. */\nexport interface RecordSharingRelationship extends RelationshipRecordReach {\n readonly relationshipId: string;\n /** The representing organization's name, when the relationship carries it. */\n readonly name?: string;\n}\n\nexport interface RecordSharing {\n readonly readState: RecordSharingReadState;\n /**\n * A change was made and the answer is being read again. The last answer stays shown meanwhile (READY), so the section\n * does not vanish under the person who just acted (#2736 review F2); the screen disables its controls instead.\n */\n readonly refreshing: boolean;\n readonly relationships: readonly RecordSharingRelationship[];\n /** The relationship the record was created through, or `null` when it is the organization's own. */\n readonly viaRelationshipId: string | null;\n /** The relationships the organization shared the record with. */\n readonly sharedWithRelationshipIds: readonly string[];\n /** Every relationship reads every record of this resource by the application's declaration: a share changes nothing. */\n readonly commonToEveryRelationship: boolean;\n /** Share the record with one relationship, then read again. Rejects when the backend refused; it has reported why. */\n readonly share: (relationshipId: string) => Promise<void>;\n /** Withdraw a share, then read again. Rejects when the backend refused; it has reported why. */\n readonly unshare: (relationshipId: string) => Promise<void>;\n}\n\n/**\n * The relationships resource's default API operation `identifier`, as this frontend registers it; `undefined` when it is\n * not registered, which leaves the screen with nothing to offer rather than a guessed URL.\n */\nexport function findRelationshipOperation(\n registry: FrontendResourcesRegistry | undefined,\n identifier: string,\n): FrontendResourceConfiguration_Operation | undefined {\n const operations = registry?.resourceConfigurations[CoreResourceType.ORGANIZATION_RELATIONSHIPS]?.operations as\n | readonly FrontendResourceConfiguration_Operation[]\n | undefined;\n return operations?.find((operation) =>\n String(operation.operationIdentifier) === identifier\n && operation.isOperationDefault === true\n && operation.isBulkOperation !== true\n && operation.variantType === ResourceOperationVariantType.API_CALL);\n}\n\n/**\n * The parameters one relationships call carries: the organization it acts in, and the relationship row for a verb on\n * one. Built by the same scope utility every resource surface of the organization uses.\n */\nfunction relationshipCallOf(\n registry: FrontendResourcesRegistry,\n operation: FrontendResourceConfiguration_Operation,\n organizationId: string,\n relationshipId?: string,\n): { operationPathKey: string; contextualParameters: Record<string, string | number>; parentResourcesRequirements: ReturnType<typeof frontendResourceUtils.buildParentResourcesRequirements> } {\n const resourceType = CoreResourceType.ORGANIZATION_RELATIONSHIPS;\n const contextResourceIdentifiers = {\n ...ScopeUtilsService.buildResourceOperationContextIdentifiers({\n currentOrganizationId: organizationId,\n primaryScope: registry.resourceConfigurations[resourceType]?.resourcePrimaryScope,\n explicitContextResourceIdentifiers: {},\n }),\n ...(relationshipId ? { [resourceType]: relationshipId } : {}),\n };\n return {\n operationPathKey: ResourcesConfig_OperationPathUtils.buildOperationPathKeyFromOperation(operation),\n contextualParameters: FrontendResourceUtils.buildContextualParameters(contextResourceIdentifiers, registry),\n parentResourcesRequirements: frontendResourceUtils.buildParentResourcesRequirements(resourceType, contextResourceIdentifiers, registry),\n };\n}\n\n/** Whether a rejected read is the backend saying it does not share this resource's records. */\nexport function isRecordNotShareableRefusal(error: unknown): boolean {\n const errorLike = error as { response?: { data?: { error?: { details?: { code?: unknown } } } }; context?: { code?: unknown } } | null | undefined;\n const code = errorLike?.response?.data?.error?.details?.code ?? errorLike?.context?.code;\n return code === OrganizationRelationshipErrorCode.RELATIONSHIP_RECORD_NOT_SHAREABLE;\n}\n\ninterface SharingAnswer {\n readonly relationships: readonly RecordSharingRelationship[];\n readonly viaRelationshipId: string | null;\n readonly sharedWithRelationshipIds: readonly string[];\n readonly commonToEveryRelationship: boolean;\n}\n\nconst NOTHING_SHARED: SharingAnswer = {\n relationships: [],\n viaRelationshipId: null,\n sharedWithRelationshipIds: [],\n commonToEveryRelationship: false,\n};\n\n/**\n * See the module comment. `enabled` is the screen's gate (the resource carries provenance, the viewer administers the\n * granting organization the record belongs to); nothing is asked while it is false.\n */\nexport function useRecordSharing(input: {\n readonly enabled: boolean;\n readonly organizationId: string | undefined;\n readonly resourceType: string;\n readonly recordId: string | undefined;\n}): RecordSharing {\n // The context itself, so a host rendered outside the registry provider reads \"nothing offered\" rather than failing.\n const registryContext = useContext(ResourceRegistryContext);\n const registry = registryContext?.registry;\n // The scoped `doOperation` changes identity with every scope change; read the latest through a ref so a settling scope\n // does not cancel and resend the read (the reason `useCurrentOrganizationHoldsUnrevokedScimToken` gives).\n const doOperationRef = useRef(registryContext?.doOperation);\n doOperationRef.current = registryContext?.doOperation;\n\n const [generation, setGeneration] = useState(0);\n const [readState, setReadState] = useState<RecordSharingReadState>(RecordSharingReadState.IDLE);\n const [refreshing, setRefreshing] = useState(false);\n const [answer, setAnswer] = useState<SharingAnswer>(NOTHING_SHARED);\n const { enabled, organizationId, resourceType, recordId } = input;\n // The record the answer (or the failure) on hand belongs to. Read during render, so the frame in which the page has\n // moved to another record, before the effect below runs, never shows the previous record's sharing (#2736 review I4).\n const [answeredSubject, setAnsweredSubject] = useState<string | undefined>(undefined);\n const currentSubject = enabled && organizationId && recordId ? `${organizationId}|${resourceType}|${recordId}` : undefined;\n // The record whose answer is on screen. A read for the SAME record after a change refreshes it in place; a read for\n // another record starts from nothing; with the render-time check on `answeredSubject`, one record's sharing is never\n // shown as another's, not even for the frame before this effect runs.\n const settledSubjectRef = useRef<string | undefined>(undefined);\n\n useEffect(() => {\n const doOperation = doOperationRef.current;\n const readOperation = findRelationshipOperation(registry, OrganizationRelationships_Operations.READ_RECORD_SHARING);\n if (!enabled || !registry || !doOperation || !organizationId || !recordId || !readOperation) {\n settledSubjectRef.current = undefined;\n setAnsweredSubject(undefined);\n setReadState(RecordSharingReadState.IDLE);\n setRefreshing(false);\n setAnswer(NOTHING_SHARED);\n return undefined;\n }\n let cancelled = false;\n const subject = `${organizationId}|${resourceType}|${recordId}`;\n if (settledSubjectRef.current === subject) {\n setRefreshing(true);\n } else {\n settledSubjectRef.current = undefined;\n setRefreshing(false);\n setAnswer(NOTHING_SHARED);\n setReadState(RecordSharingReadState.LOADING);\n }\n void (async () => {\n try {\n const sharingCall = relationshipCallOf(registry, readOperation, organizationId);\n // Silent: a refusal here is answered by the screen itself (hidden, or \"could not be read\").\n const sharing = RelationshipRecordSharingSchema.parse(await doOperation(\n sharingCall.operationPathKey,\n { contextualParameters: sharingCall.contextualParameters, parentResourcesRequirements: sharingCall.parentResourcesRequirements, requestData: { resourceType, recordId } },\n { silent: true },\n ));\n if (cancelled) return;\n setAnswer({\n relationships: sharing.relationships.map(({ representingOrganizationName, ...relationship }) => ({\n ...relationship,\n ...(representingOrganizationName ? { name: representingOrganizationName } : {}),\n })),\n viaRelationshipId: sharing.viaRelationshipId,\n sharedWithRelationshipIds: sharing.sharedWithRelationshipIds,\n commonToEveryRelationship: sharing.commonToEveryRelationship,\n });\n settledSubjectRef.current = subject;\n setAnsweredSubject(subject);\n setReadState(RecordSharingReadState.READY);\n setRefreshing(false);\n } catch (error: unknown) {\n if (cancelled) return;\n settledSubjectRef.current = undefined;\n setAnsweredSubject(subject);\n setRefreshing(false);\n setAnswer(NOTHING_SHARED);\n if (isRecordNotShareableRefusal(error)) {\n setReadState(RecordSharingReadState.NOT_SHAREABLE);\n return;\n }\n logger.warn('[RecordSharing] The record\\'s sharing could not be read', { resourceType, backendError: isWildoBackendError(error) });\n setReadState(RecordSharingReadState.FAILED);\n }\n })();\n return () => { cancelled = true; };\n }, [enabled, registry, organizationId, resourceType, recordId, generation]);\n\n const change = useCallback(async (identifier: string, relationshipId: string) => {\n const doOperation = doOperationRef.current;\n const operation = findRelationshipOperation(registry, identifier);\n if (!registry || !doOperation || !operation || !organizationId || !recordId) {\n throw new Error(`The ${identifier} operation of organization relationships is not available in this frontend.`);\n }\n const call = relationshipCallOf(registry, operation, organizationId, relationshipId);\n // Disabled from the click, not from the next render: the re-read below starts on the following commit, and the\n // controls must not re-enable over the answer the change is about to replace (#2736 review N5).\n setRefreshing(true);\n try {\n // Not silent: a refusal (a relationship no longer active, a record gone) is reported by the request's own handling.\n await doOperation(call.operationPathKey, {\n contextualParameters: call.contextualParameters,\n parentResourcesRequirements: call.parentResourcesRequirements,\n requestData: { resourceType, recordId },\n });\n } finally {\n setGeneration((value) => value + 1);\n }\n }, [registry, organizationId, resourceType, recordId]);\n\n const share = useCallback((relationshipId: string) => change(OrganizationRelationships_Operations.SHARE_RECORD, relationshipId), [change]);\n const unshare = useCallback((relationshipId: string) => change(OrganizationRelationships_Operations.UNSHARE_RECORD, relationshipId), [change]);\n\n // An answer about another record than the one asked now is not shown: the read for this one is on its way.\n if (readState !== RecordSharingReadState.IDLE && readState !== RecordSharingReadState.LOADING && answeredSubject !== currentSubject) {\n return {\n readState: RecordSharingReadState.LOADING,\n refreshing: false,\n relationships: NOTHING_SHARED.relationships,\n viaRelationshipId: NOTHING_SHARED.viaRelationshipId,\n sharedWithRelationshipIds: NOTHING_SHARED.sharedWithRelationshipIds,\n commonToEveryRelationship: NOTHING_SHARED.commonToEveryRelationship,\n share,\n unshare,\n };\n }\n return {\n readState,\n refreshing,\n relationships: answer.relationships,\n viaRelationshipId: answer.viaRelationshipId,\n sharedWithRelationshipIds: answer.sharedWithRelationshipIds,\n commonToEveryRelationship: answer.commonToEveryRelationship,\n share,\n unshare,\n };\n}\n"]}
@@ -51,7 +51,10 @@ export interface UseResourceLabelsOptions {
51
51
  * which is what `display-text-comes-from-i18n.md` asks for.
52
52
  */
53
53
  fieldPathPrefix?: string;
54
- /** Explicit i18n-key overrides — these take priority over ref-derived defaults */
54
+ /**
55
+ * Overrides that win over the i18n tree. `fields`, `descriptions` and `enums` are TEXT as written. A section or
56
+ * wizard-step entry carries either a key (`titleKey` / `descriptionKey`) or text (`title` / `description`); text wins.
57
+ */
55
58
  overrides?: {
56
59
  fields?: Record<string, string>;
57
60
  /** Explicit description overrides per field name */