@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
@@ -7,7 +7,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
7
7
  * Responsibilities:
8
8
  * - Receives the merged FeatureConfiguration (core + custom) from app initialization
9
9
  * - Builds a definitions map for fast lookup
10
- * - Fetches resolved features from backend API: GET /api/v1/features/resolved
10
+ * - Fetches resolved features from backend API: GET /api/v1/features/resolved, FOR the organization the
11
+ * person is currently in (`?organizationId=`, see `fetchResolvedFeatures`)
11
12
  * - Caches resolved features in context state
12
13
  * - Invalidates on WebSocket events (FEATURES_CHANGED, BILLING_STATUS_CHANGED, etc.)
13
14
  * - Exposes raw resolved features + definitions + unavailability policy
@@ -53,10 +54,13 @@ export const FeaturesContext = createContext(undefined);
53
54
  export function FeaturesProvider({ featureConfiguration, children }) {
54
55
  // ── State ──
55
56
  const [resolvedFeaturesResponse, setResolvedFeaturesResponse] = useState(null);
57
+ const [resolvedForOrganizationId, setResolvedForOrganizationId] = useState(null);
56
58
  const [isLoading, setIsLoading] = useState(true);
57
59
  const [error, setError] = useState(null);
58
60
  // ── Refs for stable callbacks ──
59
- const fetchInFlightRef = useRef(false);
61
+ // Sequence of the most recent fetch. Only the LATEST fetch may write state: an answer for an organization the
62
+ // person has since left must never land over the answer for the one they are in (see `fetchResolvedFeatures`).
63
+ const latestFetchSequenceRef = useRef(0);
60
64
  const mountedRef = useRef(true);
61
65
  const debounceTimerRef = useRef(null);
62
66
  // ── Auth — features are user-scoped, only fetch when authenticated ──
@@ -96,21 +100,42 @@ export function FeaturesProvider({ featureConfiguration, children }) {
96
100
  };
97
101
  }, [resolvedFeaturesResponse]);
98
102
  const clearResolvedFeatures = useCallback(() => {
103
+ // Supersede any fetch still in flight, so an answer for the session that just ended cannot land after it.
104
+ latestFetchSequenceRef.current += 1;
99
105
  setResolvedFeaturesResponse(null);
106
+ setResolvedForOrganizationId(null);
100
107
  setError(null);
101
108
  setIsLoading(false);
102
109
  }, []);
103
110
  // ── Fetch resolved features from backend ──
111
+ /**
112
+ * Ask the backend which features the person has IN THE ORGANIZATION THEY ARE IN (#2061).
113
+ *
114
+ * `/features/resolved` is a manual route: no organization in its URL, so the backend resolves one from the
115
+ * `organizationId` query parameter, checked against the caller's memberships, and otherwise infers it ONLY
116
+ * when the caller belongs to exactly one organization (`resolveManualControllerOrganizationId`). Before this
117
+ * the request carried none, so a member of several organizations — an administrator, typically — was answered
118
+ * for no organization at all: `["M2M_WEBHOOK_DELIVERY"]` instead of a set holding `SINGLE_SIGN_ON`,
119
+ * `DIRECTORY_PROVISIONING` and `SECURITY_EVENT_EXPORT`. The launcher's availability is derived from this set,
120
+ * so the organization's SSO, SCIM and SIEM settings disappeared from its own settings rail.
121
+ *
122
+ * At application scope (no current organization) the parameter is omitted on purpose: that is a genuine
123
+ * question about no organization, and the backend's single-membership inference is the right answer to it.
124
+ *
125
+ * The latest fetch wins, by sequence. The previous guard SKIPPED a fetch while another was in flight, so the
126
+ * organization arriving shortly after sign-in — the common order — was dropped and the stale answer kept.
127
+ * Identical concurrent requests are still one network call: the HTTP client shares identical in-flight GETs.
128
+ */
104
129
  const fetchResolvedFeatures = useCallback(async () => {
105
- if (fetchInFlightRef.current)
106
- return;
107
- fetchInFlightRef.current = true;
130
+ const sequence = ++latestFetchSequenceRef.current;
131
+ const isLatest = () => mountedRef.current && sequence === latestFetchSequenceRef.current;
108
132
  try {
109
- logDebug('Fetching resolved features from backend');
133
+ logDebug('Fetching resolved features from backend', { organizationId: currentOrganizationId });
110
134
  const httpClient = getManualCallsHttpClient();
111
- const response = await httpClient.get(FEATURES_API_URL);
112
- if (mountedRef.current) {
135
+ const response = await httpClient.get(FEATURES_API_URL, currentOrganizationId ? { params: { organizationId: currentOrganizationId } } : undefined);
136
+ if (isLatest()) {
113
137
  setResolvedFeaturesResponse(response);
138
+ setResolvedForOrganizationId(currentOrganizationId ?? null);
114
139
  setError(null);
115
140
  logDebug('Resolved features fetched', {
116
141
  featureCount: response.features.length,
@@ -120,18 +145,17 @@ export function FeaturesProvider({ featureConfiguration, children }) {
120
145
  }
121
146
  }
122
147
  catch (err) {
123
- if (mountedRef.current) {
148
+ if (isLatest()) {
124
149
  setError(err instanceof Error ? err : new Error(err?.message ?? 'Failed to fetch features'));
125
150
  logDebug('Failed to fetch resolved features', { error: err?.message });
126
151
  }
127
152
  }
128
153
  finally {
129
- if (mountedRef.current) {
154
+ if (isLatest()) {
130
155
  setIsLoading(false);
131
156
  }
132
- fetchInFlightRef.current = false;
133
157
  }
134
- }, []);
158
+ }, [currentOrganizationId]);
135
159
  // ── Fetch when authenticated (and refetch on auth change) ──
136
160
  useEffect(() => {
137
161
  mountedRef.current = true;
@@ -234,6 +258,7 @@ export function FeaturesProvider({ featureConfiguration, children }) {
234
258
  const contextValue = useMemo(() => ({
235
259
  resolvedFeatures,
236
260
  resolvedFeaturesResponse,
261
+ resolvedForOrganizationId,
237
262
  featureDefinitions,
238
263
  unavailabilityPolicy,
239
264
  isFeatureEnabled,
@@ -247,6 +272,7 @@ export function FeaturesProvider({ featureConfiguration, children }) {
247
272
  }), [
248
273
  resolvedFeatures,
249
274
  resolvedFeaturesResponse,
275
+ resolvedForOrganizationId,
250
276
  featureDefinitions,
251
277
  unavailabilityPolicy,
252
278
  isFeatureEnabled,
@@ -1 +1 @@
1
- {"version":3,"file":"FeaturesContext.js","sourceRoot":"","sources":["../../../../../src/core/features/FeaturesContext.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * FeaturesContext\n *\n * Central context for feature gating on the frontend.\n *\n * Responsibilities:\n * - Receives the merged FeatureConfiguration (core + custom) from app initialization\n * - Builds a definitions map for fast lookup\n * - Fetches resolved features from backend API: GET /api/v1/features/resolved\n * - Caches resolved features in context state\n * - Invalidates on WebSocket events (FEATURES_CHANGED, BILLING_STATUS_CHANGED, etc.)\n * - Exposes raw resolved features + definitions + unavailability policy\n *\n * Frontend limit checking is ADVISORY — backend gate is authoritative.\n * Stale usage data means the frontend might allow a click that the backend rejects\n * (which is acceptable — the error is caught and displayed).\n */\n\nimport React, { createContext, useContext, useEffect, useState, useCallback, useMemo, useRef } from 'react';\nimport {\n CoreResourceType,\n CoreWebSocketEvent,\n FEATURES_UNLIMITED,\n MAIN_API_BASE_PATH,\n type FeatureConfiguration,\n type FeatureDefinition,\n type ResolvedFeaturesResponse,\n type ResolvedFeaturesWithUsage,\n} from '@wildo-ai/saas-models';\nimport { useWebSocket } from '~wildo-frontend-lib/core/requests/websockets/useWebSocket';\nimport { EventBusContext } from '~wildo-frontend-lib/core/events/EventBusContext';\nimport { FrontendEvents } from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport { useResourceReachability } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { useAuthSession } from '~wildo-frontend-lib/core/security/useAuthSession';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\nimport { getManualCallsHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\nimport { useAppScopeSafe } from '~wildo-frontend-lib/core/scope/useAppScope';\n\n// ================================\n// Logger\n// ================================\n\nconst featuresLogger: LoggerFrontendService = LoggerFrontendService.getLogger();\nconst logDebug: (message: string, context?: Record<string, unknown>) => void = featuresLogger.debugByType('FeaturesContext');\nfeaturesLogger.setDebugTypeLogging('FeaturesContext', false);\n\n// ================================\n// Constants\n// ================================\n\nconst FEATURES_API_URL = `${MAIN_API_BASE_PATH}/features/resolved`;\n\n/** WebSocket events that trigger a refetch of resolved features */\nconst INVALIDATION_EVENTS = [\n CoreWebSocketEvent.BILLING_STATUS_CHANGED,\n CoreWebSocketEvent.BILLING_SUBSCRIPTION_UPDATED,\n CoreWebSocketEvent.BILLING_ACCOUNT_CHANGED,\n CoreWebSocketEvent.BILLING_FEATURES_UPDATED,\n] as const;\n\n// ================================\n// Context Type\n// ================================\n\nexport interface FeaturesContextType {\n // ── Resolved features from backend ──\n /** Raw resolved features with usage data (from backend API) */\n resolvedFeatures: ResolvedFeaturesWithUsage;\n /** Full response including upgrade options */\n resolvedFeaturesResponse: ResolvedFeaturesResponse | null;\n\n // ── Feature definitions (from configuration) ──\n /** Feature definitions map (built from featureConfiguration.definitions) */\n featureDefinitions: Map<string, FeatureDefinition>;\n\n // ── Policy ──\n /** The unavailability policy (from featureConfiguration.unavailabilityPolicy) */\n unavailabilityPolicy: FeatureConfiguration['unavailabilityPolicy'];\n\n // ── Convenience accessors ──\n /** Check if a boolean feature is ENTITLED for the current scope (plan/profile). */\n isFeatureEnabled: (featureId: string) => boolean;\n /**\n * Check if the app OFFERS a feature for the current scope — entitled now, or\n * reachable via an upgrade/add-on. Plan-independent survival signal, distinct\n * from `isFeatureEnabled` (entitlement). See the impl for the two-axis rationale.\n */\n isFeatureOffered: (featureId: string) => boolean;\n /** Get a limit value (FEATURES_UNLIMITED = unlimited). Returns undefined if feature not found. */\n getLimit: (featureId: string) => number | undefined;\n /** Get current usage for a limit feature. undefined if no usage data. */\n getCurrentUsage: (featureId: string) => number | undefined;\n /** Get remaining capacity (limit - current). undefined if unlimited or no counting. */\n getRemainingCapacity: (featureId: string) => number | undefined;\n\n // ── State ──\n isLoading: boolean;\n error: Error | null;\n\n // ── Actions ──\n /** Force refetch of resolved features (e.g., after a mutation on a counted resource) */\n refetch: () => void;\n}\n\n// ── Default empty state ──\nconst EMPTY_RESOLVED: ResolvedFeaturesWithUsage = {\n features: [],\n limits: {},\n currentUsage: {},\n};\n\nexport const FeaturesContext: React.Context<FeaturesContextType | undefined> = createContext<FeaturesContextType | undefined>(undefined);\n\n// ================================\n// Provider\n// ================================\n\ninterface FeaturesProviderProps {\n /** Merged FeatureConfiguration (core + custom) — passed from app initialization */\n featureConfiguration: FeatureConfiguration;\n children: React.ReactNode;\n}\n\nexport function FeaturesProvider({ featureConfiguration, children }: FeaturesProviderProps): React.ReactElement {\n // ── State ──\n const [resolvedFeaturesResponse, setResolvedFeaturesResponse] = useState<ResolvedFeaturesResponse | null>(null);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n const [error, setError] = useState<Error | null>(null);\n\n // ── Refs for stable callbacks ──\n const fetchInFlightRef = useRef<boolean>(false);\n const mountedRef = useRef<boolean>(true);\n const debounceTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // ── Auth — features are user-scoped, only fetch when authenticated ──\n const { isAuthenticated } = useAuthSession();\n // Fetch only when this consumer can REACH the features route: configured-and-authenticated is half\n // the answer (#1069, the #268 rule). The resolved features are derived from the per-user ledger, so\n // a consumer whose registry excludes it — the application-creation workbench — has no route to ask.\n const featuresReachable = useResourceReachability(CoreResourceType.USER_FEATURES);\n const authenticated = isAuthenticated() && featuresReachable;\n const appScope = useAppScopeSafe();\n const currentOrganizationId = appScope?.currentOrganizationId ?? null;\n\n // ── WebSocket ──\n const { on } = useWebSocket();\n\n // ── Frontend event bus (preference changes) ──\n // Read from the context directly: `useEventBus().bus` is typed as the React context object, not the bus.\n const bus = useContext(EventBusContext);\n const errorRef = useRef<Error | null>(null);\n\n // ── Build definitions map from configuration ──\n const featureDefinitions = useMemo(() => {\n const map = new Map<string, FeatureDefinition>();\n for (const def of featureConfiguration.definitions) {\n map.set(def.identifier, def);\n }\n logDebug('Feature definitions map built', { count: map.size });\n return map;\n }, [featureConfiguration.definitions]);\n\n // ── Unavailability policy ──\n const unavailabilityPolicy = useMemo(\n () => featureConfiguration.unavailabilityPolicy,\n [featureConfiguration.unavailabilityPolicy],\n );\n\n // ── Derived resolved features ──\n const resolvedFeatures: ResolvedFeaturesWithUsage = useMemo(() => {\n if (!resolvedFeaturesResponse) return EMPTY_RESOLVED;\n return {\n features: resolvedFeaturesResponse.features,\n limits: resolvedFeaturesResponse.limits,\n currentUsage: resolvedFeaturesResponse.currentUsage,\n };\n }, [resolvedFeaturesResponse]);\n\n const clearResolvedFeatures = useCallback(() => {\n setResolvedFeaturesResponse(null);\n setError(null);\n setIsLoading(false);\n }, []);\n\n // ── Fetch resolved features from backend ──\n const fetchResolvedFeatures = useCallback(async () => {\n if (fetchInFlightRef.current) return;\n fetchInFlightRef.current = true;\n\n try {\n logDebug('Fetching resolved features from backend');\n const httpClient = getManualCallsHttpClient();\n const response = await httpClient.get<ResolvedFeaturesResponse>(FEATURES_API_URL);\n\n if (mountedRef.current) {\n setResolvedFeaturesResponse(response);\n setError(null);\n logDebug('Resolved features fetched', {\n featureCount: response.features.length,\n limitCount: Object.keys(response.limits).length,\n usageCount: Object.keys(response.currentUsage).length,\n });\n }\n } catch (err: any) {\n if (mountedRef.current) {\n setError(err instanceof Error ? err : new Error(err?.message ?? 'Failed to fetch features'));\n logDebug('Failed to fetch resolved features', { error: err?.message });\n }\n } finally {\n if (mountedRef.current) {\n setIsLoading(false);\n }\n fetchInFlightRef.current = false;\n }\n }, []);\n\n // ── Fetch when authenticated (and refetch on auth change) ──\n useEffect(() => {\n mountedRef.current = true;\n if (authenticated) {\n setIsLoading(true);\n fetchResolvedFeatures();\n } else {\n clearResolvedFeatures();\n }\n return () => {\n mountedRef.current = false;\n };\n }, [authenticated, currentOrganizationId, fetchResolvedFeatures, clearResolvedFeatures]);\n\n useEffect(() => {\n errorRef.current = error;\n }, [error]);\n\n // ── Retry a FAILED fetch when the person's preferences change (#534) ──\n // A declared service consent requirement refuses this read until the person grants it, so the fetch that ran at\n // sign-in can fail — and while the organization stays the same nothing else would retry it, leaving features\n // unresolved until a reload. A preferences change is how a consent decision reaches the rest of the application,\n // so it retries a failed fetch. Only a failed one: a theme or language change does not invalidate a good set.\n useEffect(() => {\n if (!authenticated) return;\n return bus.on(FrontendEvents.USER_PREFERENCES_CHANGED, () => {\n if (errorRef.current) fetchResolvedFeatures();\n });\n }, [authenticated, bus, fetchResolvedFeatures]);\n\n // ── WebSocket invalidation (debounced to coalesce rapid events) ──\n useEffect(() => {\n if (!authenticated) return;\n\n const unsubscribers: Array<() => void> = [];\n\n const debouncedRefetch = () => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current);\n }\n debounceTimerRef.current = setTimeout(() => {\n debounceTimerRef.current = null;\n fetchResolvedFeatures();\n }, 300);\n };\n\n for (const event of INVALIDATION_EVENTS) {\n const unsub = on(event, () => {\n logDebug('WebSocket invalidation event received, scheduling refetch', { event });\n debouncedRefetch();\n });\n unsubscribers.push(unsub);\n }\n\n return () => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current);\n }\n for (const unsub of unsubscribers) {\n unsub();\n }\n };\n }, [authenticated, on, fetchResolvedFeatures]);\n\n // ── Derived features set for O(1) lookups ──\n const resolvedFeaturesSet = useMemo(\n () => new Set(resolvedFeatures.features),\n [resolvedFeatures.features],\n );\n\n // ── Convenience accessors ──\n const isFeatureEnabled = useCallback(\n (featureId: string): boolean => {\n return resolvedFeaturesSet.has(featureId);\n },\n [resolvedFeaturesSet],\n );\n\n const isFeatureOffered = useCallback(\n (featureId: string): boolean => {\n // \"Offered\" = the app makes this feature available for the current scope,\n // INDEPENDENT of whether the current plan/profile currently ENTITLES it:\n // - entitled now (in `resolvedFeatures`), OR\n // - not entitled but reachable via an upgrade/add-on the backend surfaced\n // in `upgradeOptions`.\n // This is the plan-independent \"does this app offer feature X\" axis, distinct\n // from `isFeatureEnabled` (the entitlement axis). Consumers gate SURVIVAL\n // (should the surface exist at all) on `isFeatureOffered`, then render the\n // entitlement state via {@link FeatureGate} (content vs upgrade/add-on prompt).\n // Billing OFF → `upgradeOptions` is empty, so offered == entitled (no\n // \"offered-but-locked\" state exists without a plan to upgrade to). Billing ON\n // → `upgradeOptions` carries the sellable-but-not-yet-owned features.\n if (resolvedFeaturesSet.has(featureId)) return true;\n return Boolean(resolvedFeaturesResponse?.upgradeOptions?.[featureId]);\n },\n [resolvedFeaturesSet, resolvedFeaturesResponse],\n );\n\n const getLimit = useCallback(\n (featureId: string): number | undefined => {\n return resolvedFeatures.limits[featureId];\n },\n [resolvedFeatures.limits],\n );\n\n const getCurrentUsage = useCallback(\n (featureId: string): number | undefined => {\n return resolvedFeatures.currentUsage[featureId];\n },\n [resolvedFeatures.currentUsage],\n );\n\n const getRemainingCapacity = useCallback(\n (featureId: string): number | undefined => {\n const limit = resolvedFeatures.limits[featureId];\n if (limit === undefined) return undefined;\n if (limit === FEATURES_UNLIMITED) return undefined; // unlimited → no meaningful remaining\n const usage = resolvedFeatures.currentUsage[featureId] ?? 0;\n return Math.max(0, limit - usage);\n },\n [resolvedFeatures.limits, resolvedFeatures.currentUsage],\n );\n\n // ── Context value (memoized for stable reference) ──\n const contextValue: FeaturesContextType = useMemo(\n () => ({\n resolvedFeatures,\n resolvedFeaturesResponse,\n featureDefinitions,\n unavailabilityPolicy,\n isFeatureEnabled,\n isFeatureOffered,\n getLimit,\n getCurrentUsage,\n getRemainingCapacity,\n isLoading,\n error,\n refetch: fetchResolvedFeatures,\n }),\n [\n resolvedFeatures,\n resolvedFeaturesResponse,\n featureDefinitions,\n unavailabilityPolicy,\n isFeatureEnabled,\n isFeatureOffered,\n getLimit,\n getCurrentUsage,\n getRemainingCapacity,\n isLoading,\n error,\n fetchResolvedFeatures,\n ],\n );\n\n return (\n <FeaturesContext.Provider value={contextValue}>\n {children}\n </FeaturesContext.Provider>\n );\n}\n\n// Note: useFeatures hook is in a separate file (useFeatures.ts) for React Fast Refresh compatibility.\n"]}
1
+ {"version":3,"file":"FeaturesContext.js","sourceRoot":"","sources":["../../../../../src/core/features/FeaturesContext.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC5G,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAKnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mFAAmF,CAAC;AAC7H,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAE7E,mCAAmC;AACnC,SAAS;AACT,mCAAmC;AAEnC,MAAM,cAAc,GAA0B,qBAAqB,CAAC,SAAS,EAAE,CAAC;AAChF,MAAM,QAAQ,GAAiE,cAAc,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC7H,cAAc,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAE7D,mCAAmC;AACnC,YAAY;AACZ,mCAAmC;AAEnC,MAAM,gBAAgB,GAAG,GAAG,kBAAkB,oBAAoB,CAAC;AAEnE,mEAAmE;AACnE,MAAM,mBAAmB,GAAG;IAC1B,kBAAkB,CAAC,sBAAsB;IACzC,kBAAkB,CAAC,4BAA4B;IAC/C,kBAAkB,CAAC,uBAAuB;IAC1C,kBAAkB,CAAC,wBAAwB;CACnC,CAAC;AAqDX,4BAA4B;AAC5B,MAAM,cAAc,GAA8B;IAChD,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAmD,aAAa,CAAkC,SAAS,CAAC,CAAC;AAYzI,MAAM,UAAU,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,QAAQ,EAAyB;IACxF,cAAc;IACd,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,CAAC,GAAG,QAAQ,CAAkC,IAAI,CAAC,CAAC;IAChH,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,kCAAkC;IAClC,8GAA8G;IAC9G,+GAA+G;IAC/G,MAAM,sBAAsB,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,CAAU,IAAI,CAAC,CAAC;IACzC,MAAM,gBAAgB,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IAE5E,uEAAuE;IACvE,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,EAAE,CAAC;IAC7C,mGAAmG;IACnG,oGAAoG;IACpG,oGAAoG;IACpG,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG,eAAe,EAAE,IAAI,iBAAiB,CAAC;IAC7D,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,qBAAqB,GAAG,QAAQ,EAAE,qBAAqB,IAAI,IAAI,CAAC;IAEtE,kBAAkB;IAClB,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAE9B,gDAAgD;IAChD,yGAAyG;IACzG,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAe,IAAI,CAAC,CAAC;IAE5C,iDAAiD;IACjD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,MAAM,GAAG,GAAG,IAAI,GAAG,EAA6B,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,oBAAoB,CAAC,WAAW,EAAE,CAAC;YACnD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,QAAQ,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;IAEvC,8BAA8B;IAC9B,MAAM,oBAAoB,GAAG,OAAO,CAClC,GAAG,EAAE,CAAC,oBAAoB,CAAC,oBAAoB,EAC/C,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAC5C,CAAC;IAEF,kCAAkC;IAClC,MAAM,gBAAgB,GAA8B,OAAO,CAAC,GAAG,EAAE;QAC/D,IAAI,CAAC,wBAAwB;YAAE,OAAO,cAAc,CAAC;QACrD,OAAO;YACL,QAAQ,EAAE,wBAAwB,CAAC,QAAQ;YAC3C,MAAM,EAAE,wBAAwB,CAAC,MAAM;YACvC,YAAY,EAAE,wBAAwB,CAAC,YAAY;SACpD,CAAC;IACJ,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE/B,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7C,0GAA0G;QAC1G,sBAAsB,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAClC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,6CAA6C;IAC7C;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,qBAAqB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACnD,MAAM,QAAQ,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAY,EAAE,CAAC,UAAU,CAAC,OAAO,IAAI,QAAQ,KAAK,sBAAsB,CAAC,OAAO,CAAC;QAElG,IAAI,CAAC;YACH,QAAQ,CAAC,yCAAyC,EAAE,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAC/F,MAAM,UAAU,GAAG,wBAAwB,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,CACnC,gBAAgB,EAChB,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAC1F,CAAC;YAEF,IAAI,QAAQ,EAAE,EAAE,CAAC;gBACf,2BAA2B,CAAC,QAAQ,CAAC,CAAC;gBACtC,4BAA4B,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC;gBAC5D,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,QAAQ,CAAC,2BAA2B,EAAE;oBACpC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;oBACtC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM;oBAC/C,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM;iBACtD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,QAAQ,EAAE,EAAE,CAAC;gBACf,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,IAAI,0BAA0B,CAAC,CAAC,CAAC;gBAC7F,QAAQ,CAAC,mCAAmC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,QAAQ,EAAE,EAAE,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B,8DAA8D;IAC9D,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,IAAI,aAAa,EAAE,CAAC;YAClB,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,qBAAqB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,qBAAqB,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEzF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAC3B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,yEAAyE;IACzE,gHAAgH;IAChH,6GAA6G;IAC7G,iHAAiH;IACjH,8GAA8G;IAC9G,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,OAAO,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAC1D,IAAI,QAAQ,CAAC,OAAO;gBAAE,qBAAqB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEhD,oEAAoE;IACpE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3B,MAAM,aAAa,GAAsB,EAAE,CAAC;QAE5C,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC5B,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC7B,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;YACD,gBAAgB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACzC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAChC,qBAAqB,EAAE,CAAC;YAC1B,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC3B,QAAQ,CAAC,2DAA2D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjF,gBAAgB,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC7B,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAClC,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAE/C,8CAA8C;IAC9C,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACxC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAC5B,CAAC;IAEF,8BAA8B;IAC9B,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,SAAiB,EAAW,EAAE;QAC7B,OAAO,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,EACD,CAAC,mBAAmB,CAAC,CACtB,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,SAAiB,EAAW,EAAE;QAC7B,0EAA0E;QAC1E,yEAAyE;QACzE,8CAA8C;QAC9C,2EAA2E;QAC3E,0BAA0B;QAC1B,8EAA8E;QAC9E,0EAA0E;QAC1E,2EAA2E;QAC3E,gFAAgF;QAChF,sEAAsE;QACtE,8EAA8E;QAC9E,sEAAsE;QACtE,IAAI,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO,OAAO,CAAC,wBAAwB,EAAE,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,CAAC,EACD,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAChD,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,SAAiB,EAAsB,EAAE;QACxC,OAAO,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,EACD,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAC1B,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,SAAiB,EAAsB,EAAE;QACxC,OAAO,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAChC,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CACtC,CAAC,SAAiB,EAAsB,EAAE;QACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,KAAK,KAAK,kBAAkB;YAAE,OAAO,SAAS,CAAC,CAAC,sCAAsC;QAC1F,MAAM,KAAK,GAAG,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC,EACD,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CACzD,CAAC;IAEF,sDAAsD;IACtD,MAAM,YAAY,GAAwB,OAAO,CAC/C,GAAG,EAAE,CAAC,CAAC;QACL,gBAAgB;QAChB,wBAAwB;QACxB,yBAAyB;QACzB,kBAAkB;QAClB,oBAAoB;QACpB,gBAAgB;QAChB,gBAAgB;QAChB,QAAQ;QACR,eAAe;QACf,oBAAoB;QACpB,SAAS;QACT,KAAK;QACL,OAAO,EAAE,qBAAqB;KAC/B,CAAC,EACF;QACE,gBAAgB;QAChB,wBAAwB;QACxB,yBAAyB;QACzB,kBAAkB;QAClB,oBAAoB;QACpB,gBAAgB;QAChB,gBAAgB;QAChB,QAAQ;QACR,eAAe;QACf,oBAAoB;QACpB,SAAS;QACT,KAAK;QACL,qBAAqB;KACtB,CACF,CAAC;IAEF,OAAO,CACL,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC1C,QAAQ,GACgB,CAC5B,CAAC;AACJ,CAAC","sourcesContent":["/**\n * FeaturesContext\n *\n * Central context for feature gating on the frontend.\n *\n * Responsibilities:\n * - Receives the merged FeatureConfiguration (core + custom) from app initialization\n * - Builds a definitions map for fast lookup\n * - Fetches resolved features from backend API: GET /api/v1/features/resolved, FOR the organization the\n * person is currently in (`?organizationId=`, see `fetchResolvedFeatures`)\n * - Caches resolved features in context state\n * - Invalidates on WebSocket events (FEATURES_CHANGED, BILLING_STATUS_CHANGED, etc.)\n * - Exposes raw resolved features + definitions + unavailability policy\n *\n * Frontend limit checking is ADVISORY — backend gate is authoritative.\n * Stale usage data means the frontend might allow a click that the backend rejects\n * (which is acceptable — the error is caught and displayed).\n */\n\nimport React, { createContext, useContext, useEffect, useState, useCallback, useMemo, useRef } from 'react';\nimport {\n CoreResourceType,\n CoreWebSocketEvent,\n FEATURES_UNLIMITED,\n MAIN_API_BASE_PATH,\n type FeatureConfiguration,\n type FeatureDefinition,\n type ResolvedFeaturesResponse,\n type ResolvedFeaturesWithUsage,\n} from '@wildo-ai/saas-models';\nimport { useWebSocket } from '~wildo-frontend-lib/core/requests/websockets/useWebSocket';\nimport { EventBusContext } from '~wildo-frontend-lib/core/events/EventBusContext';\nimport { FrontendEvents } from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport { useResourceReachability } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { useAuthSession } from '~wildo-frontend-lib/core/security/useAuthSession';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\nimport { getManualCallsHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\nimport { useAppScopeSafe } from '~wildo-frontend-lib/core/scope/useAppScope';\n\n// ================================\n// Logger\n// ================================\n\nconst featuresLogger: LoggerFrontendService = LoggerFrontendService.getLogger();\nconst logDebug: (message: string, context?: Record<string, unknown>) => void = featuresLogger.debugByType('FeaturesContext');\nfeaturesLogger.setDebugTypeLogging('FeaturesContext', false);\n\n// ================================\n// Constants\n// ================================\n\nconst FEATURES_API_URL = `${MAIN_API_BASE_PATH}/features/resolved`;\n\n/** WebSocket events that trigger a refetch of resolved features */\nconst INVALIDATION_EVENTS = [\n CoreWebSocketEvent.BILLING_STATUS_CHANGED,\n CoreWebSocketEvent.BILLING_SUBSCRIPTION_UPDATED,\n CoreWebSocketEvent.BILLING_ACCOUNT_CHANGED,\n CoreWebSocketEvent.BILLING_FEATURES_UPDATED,\n] as const;\n\n// ================================\n// Context Type\n// ================================\n\nexport interface FeaturesContextType {\n // ── Resolved features from backend ──\n /** Raw resolved features with usage data (from backend API) */\n resolvedFeatures: ResolvedFeaturesWithUsage;\n /** Full response including upgrade options */\n resolvedFeaturesResponse: ResolvedFeaturesResponse | null;\n /**\n * The organization the CURRENT response was resolved for, `null` for one resolved at application scope or none yet\n * (#2464 review L1). The response is kept across an organization switch until the next one lands, so features do not\n * flicker; a surface showing a number ABOUT one organization (usage beside a limit) compares this, not the current\n * organization, or it shows the previous organization's numbers for one fetch.\n */\n resolvedForOrganizationId: string | null;\n\n // ── Feature definitions (from configuration) ──\n /** Feature definitions map (built from featureConfiguration.definitions) */\n featureDefinitions: Map<string, FeatureDefinition>;\n\n // ── Policy ──\n /** The unavailability policy (from featureConfiguration.unavailabilityPolicy) */\n unavailabilityPolicy: FeatureConfiguration['unavailabilityPolicy'];\n\n // ── Convenience accessors ──\n /** Check if a boolean feature is ENTITLED for the current scope (plan/profile). */\n isFeatureEnabled: (featureId: string) => boolean;\n /**\n * Check if the app OFFERS a feature for the current scope — entitled now, or\n * reachable via an upgrade/add-on. Plan-independent survival signal, distinct\n * from `isFeatureEnabled` (entitlement). See the impl for the two-axis rationale.\n */\n isFeatureOffered: (featureId: string) => boolean;\n /** Get a limit value (FEATURES_UNLIMITED = unlimited). Returns undefined if feature not found. */\n getLimit: (featureId: string) => number | undefined;\n /** Get current usage for a limit feature. undefined if no usage data. */\n getCurrentUsage: (featureId: string) => number | undefined;\n /** Get remaining capacity (limit - current). undefined if unlimited or no counting. */\n getRemainingCapacity: (featureId: string) => number | undefined;\n\n // ── State ──\n isLoading: boolean;\n error: Error | null;\n\n // ── Actions ──\n /** Force refetch of resolved features (e.g., after a mutation on a counted resource) */\n refetch: () => void;\n}\n\n// ── Default empty state ──\nconst EMPTY_RESOLVED: ResolvedFeaturesWithUsage = {\n features: [],\n limits: {},\n currentUsage: {},\n};\n\nexport const FeaturesContext: React.Context<FeaturesContextType | undefined> = createContext<FeaturesContextType | undefined>(undefined);\n\n// ================================\n// Provider\n// ================================\n\ninterface FeaturesProviderProps {\n /** Merged FeatureConfiguration (core + custom) — passed from app initialization */\n featureConfiguration: FeatureConfiguration;\n children: React.ReactNode;\n}\n\nexport function FeaturesProvider({ featureConfiguration, children }: FeaturesProviderProps): React.ReactElement {\n // ── State ──\n const [resolvedFeaturesResponse, setResolvedFeaturesResponse] = useState<ResolvedFeaturesResponse | null>(null);\n const [resolvedForOrganizationId, setResolvedForOrganizationId] = useState<string | null>(null);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n const [error, setError] = useState<Error | null>(null);\n\n // ── Refs for stable callbacks ──\n // Sequence of the most recent fetch. Only the LATEST fetch may write state: an answer for an organization the\n // person has since left must never land over the answer for the one they are in (see `fetchResolvedFeatures`).\n const latestFetchSequenceRef = useRef<number>(0);\n const mountedRef = useRef<boolean>(true);\n const debounceTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // ── Auth — features are user-scoped, only fetch when authenticated ──\n const { isAuthenticated } = useAuthSession();\n // Fetch only when this consumer can REACH the features route: configured-and-authenticated is half\n // the answer (#1069, the #268 rule). The resolved features are derived from the per-user ledger, so\n // a consumer whose registry excludes it — the application-creation workbench — has no route to ask.\n const featuresReachable = useResourceReachability(CoreResourceType.USER_FEATURES);\n const authenticated = isAuthenticated() && featuresReachable;\n const appScope = useAppScopeSafe();\n const currentOrganizationId = appScope?.currentOrganizationId ?? null;\n\n // ── WebSocket ──\n const { on } = useWebSocket();\n\n // ── Frontend event bus (preference changes) ──\n // Read from the context directly: `useEventBus().bus` is typed as the React context object, not the bus.\n const bus = useContext(EventBusContext);\n const errorRef = useRef<Error | null>(null);\n\n // ── Build definitions map from configuration ──\n const featureDefinitions = useMemo(() => {\n const map = new Map<string, FeatureDefinition>();\n for (const def of featureConfiguration.definitions) {\n map.set(def.identifier, def);\n }\n logDebug('Feature definitions map built', { count: map.size });\n return map;\n }, [featureConfiguration.definitions]);\n\n // ── Unavailability policy ──\n const unavailabilityPolicy = useMemo(\n () => featureConfiguration.unavailabilityPolicy,\n [featureConfiguration.unavailabilityPolicy],\n );\n\n // ── Derived resolved features ──\n const resolvedFeatures: ResolvedFeaturesWithUsage = useMemo(() => {\n if (!resolvedFeaturesResponse) return EMPTY_RESOLVED;\n return {\n features: resolvedFeaturesResponse.features,\n limits: resolvedFeaturesResponse.limits,\n currentUsage: resolvedFeaturesResponse.currentUsage,\n };\n }, [resolvedFeaturesResponse]);\n\n const clearResolvedFeatures = useCallback(() => {\n // Supersede any fetch still in flight, so an answer for the session that just ended cannot land after it.\n latestFetchSequenceRef.current += 1;\n setResolvedFeaturesResponse(null);\n setResolvedForOrganizationId(null);\n setError(null);\n setIsLoading(false);\n }, []);\n\n // ── Fetch resolved features from backend ──\n /**\n * Ask the backend which features the person has IN THE ORGANIZATION THEY ARE IN (#2061).\n *\n * `/features/resolved` is a manual route: no organization in its URL, so the backend resolves one from the\n * `organizationId` query parameter, checked against the caller's memberships, and otherwise infers it ONLY\n * when the caller belongs to exactly one organization (`resolveManualControllerOrganizationId`). Before this\n * the request carried none, so a member of several organizations — an administrator, typically — was answered\n * for no organization at all: `[\"M2M_WEBHOOK_DELIVERY\"]` instead of a set holding `SINGLE_SIGN_ON`,\n * `DIRECTORY_PROVISIONING` and `SECURITY_EVENT_EXPORT`. The launcher's availability is derived from this set,\n * so the organization's SSO, SCIM and SIEM settings disappeared from its own settings rail.\n *\n * At application scope (no current organization) the parameter is omitted on purpose: that is a genuine\n * question about no organization, and the backend's single-membership inference is the right answer to it.\n *\n * The latest fetch wins, by sequence. The previous guard SKIPPED a fetch while another was in flight, so the\n * organization arriving shortly after sign-in — the common order — was dropped and the stale answer kept.\n * Identical concurrent requests are still one network call: the HTTP client shares identical in-flight GETs.\n */\n const fetchResolvedFeatures = useCallback(async () => {\n const sequence = ++latestFetchSequenceRef.current;\n const isLatest = (): boolean => mountedRef.current && sequence === latestFetchSequenceRef.current;\n\n try {\n logDebug('Fetching resolved features from backend', { organizationId: currentOrganizationId });\n const httpClient = getManualCallsHttpClient();\n const response = await httpClient.get<ResolvedFeaturesResponse>(\n FEATURES_API_URL,\n currentOrganizationId ? { params: { organizationId: currentOrganizationId } } : undefined,\n );\n\n if (isLatest()) {\n setResolvedFeaturesResponse(response);\n setResolvedForOrganizationId(currentOrganizationId ?? null);\n setError(null);\n logDebug('Resolved features fetched', {\n featureCount: response.features.length,\n limitCount: Object.keys(response.limits).length,\n usageCount: Object.keys(response.currentUsage).length,\n });\n }\n } catch (err: any) {\n if (isLatest()) {\n setError(err instanceof Error ? err : new Error(err?.message ?? 'Failed to fetch features'));\n logDebug('Failed to fetch resolved features', { error: err?.message });\n }\n } finally {\n if (isLatest()) {\n setIsLoading(false);\n }\n }\n }, [currentOrganizationId]);\n\n // ── Fetch when authenticated (and refetch on auth change) ──\n useEffect(() => {\n mountedRef.current = true;\n if (authenticated) {\n setIsLoading(true);\n fetchResolvedFeatures();\n } else {\n clearResolvedFeatures();\n }\n return () => {\n mountedRef.current = false;\n };\n }, [authenticated, currentOrganizationId, fetchResolvedFeatures, clearResolvedFeatures]);\n\n useEffect(() => {\n errorRef.current = error;\n }, [error]);\n\n // ── Retry a FAILED fetch when the person's preferences change (#534) ──\n // A declared service consent requirement refuses this read until the person grants it, so the fetch that ran at\n // sign-in can fail — and while the organization stays the same nothing else would retry it, leaving features\n // unresolved until a reload. A preferences change is how a consent decision reaches the rest of the application,\n // so it retries a failed fetch. Only a failed one: a theme or language change does not invalidate a good set.\n useEffect(() => {\n if (!authenticated) return;\n return bus.on(FrontendEvents.USER_PREFERENCES_CHANGED, () => {\n if (errorRef.current) fetchResolvedFeatures();\n });\n }, [authenticated, bus, fetchResolvedFeatures]);\n\n // ── WebSocket invalidation (debounced to coalesce rapid events) ──\n useEffect(() => {\n if (!authenticated) return;\n\n const unsubscribers: Array<() => void> = [];\n\n const debouncedRefetch = () => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current);\n }\n debounceTimerRef.current = setTimeout(() => {\n debounceTimerRef.current = null;\n fetchResolvedFeatures();\n }, 300);\n };\n\n for (const event of INVALIDATION_EVENTS) {\n const unsub = on(event, () => {\n logDebug('WebSocket invalidation event received, scheduling refetch', { event });\n debouncedRefetch();\n });\n unsubscribers.push(unsub);\n }\n\n return () => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current);\n }\n for (const unsub of unsubscribers) {\n unsub();\n }\n };\n }, [authenticated, on, fetchResolvedFeatures]);\n\n // ── Derived features set for O(1) lookups ──\n const resolvedFeaturesSet = useMemo(\n () => new Set(resolvedFeatures.features),\n [resolvedFeatures.features],\n );\n\n // ── Convenience accessors ──\n const isFeatureEnabled = useCallback(\n (featureId: string): boolean => {\n return resolvedFeaturesSet.has(featureId);\n },\n [resolvedFeaturesSet],\n );\n\n const isFeatureOffered = useCallback(\n (featureId: string): boolean => {\n // \"Offered\" = the app makes this feature available for the current scope,\n // INDEPENDENT of whether the current plan/profile currently ENTITLES it:\n // - entitled now (in `resolvedFeatures`), OR\n // - not entitled but reachable via an upgrade/add-on the backend surfaced\n // in `upgradeOptions`.\n // This is the plan-independent \"does this app offer feature X\" axis, distinct\n // from `isFeatureEnabled` (the entitlement axis). Consumers gate SURVIVAL\n // (should the surface exist at all) on `isFeatureOffered`, then render the\n // entitlement state via {@link FeatureGate} (content vs upgrade/add-on prompt).\n // Billing OFF → `upgradeOptions` is empty, so offered == entitled (no\n // \"offered-but-locked\" state exists without a plan to upgrade to). Billing ON\n // → `upgradeOptions` carries the sellable-but-not-yet-owned features.\n if (resolvedFeaturesSet.has(featureId)) return true;\n return Boolean(resolvedFeaturesResponse?.upgradeOptions?.[featureId]);\n },\n [resolvedFeaturesSet, resolvedFeaturesResponse],\n );\n\n const getLimit = useCallback(\n (featureId: string): number | undefined => {\n return resolvedFeatures.limits[featureId];\n },\n [resolvedFeatures.limits],\n );\n\n const getCurrentUsage = useCallback(\n (featureId: string): number | undefined => {\n return resolvedFeatures.currentUsage[featureId];\n },\n [resolvedFeatures.currentUsage],\n );\n\n const getRemainingCapacity = useCallback(\n (featureId: string): number | undefined => {\n const limit = resolvedFeatures.limits[featureId];\n if (limit === undefined) return undefined;\n if (limit === FEATURES_UNLIMITED) return undefined; // unlimited → no meaningful remaining\n const usage = resolvedFeatures.currentUsage[featureId] ?? 0;\n return Math.max(0, limit - usage);\n },\n [resolvedFeatures.limits, resolvedFeatures.currentUsage],\n );\n\n // ── Context value (memoized for stable reference) ──\n const contextValue: FeaturesContextType = useMemo(\n () => ({\n resolvedFeatures,\n resolvedFeaturesResponse,\n resolvedForOrganizationId,\n featureDefinitions,\n unavailabilityPolicy,\n isFeatureEnabled,\n isFeatureOffered,\n getLimit,\n getCurrentUsage,\n getRemainingCapacity,\n isLoading,\n error,\n refetch: fetchResolvedFeatures,\n }),\n [\n resolvedFeatures,\n resolvedFeaturesResponse,\n resolvedForOrganizationId,\n featureDefinitions,\n unavailabilityPolicy,\n isFeatureEnabled,\n isFeatureOffered,\n getLimit,\n getCurrentUsage,\n getRemainingCapacity,\n isLoading,\n error,\n fetchResolvedFeatures,\n ],\n );\n\n return (\n <FeaturesContext.Provider value={contextValue}>\n {children}\n </FeaturesContext.Provider>\n );\n}\n\n// Note: useFeatures hook is in a separate file (useFeatures.ts) for React Fast Refresh compatibility.\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useOperationFeatureAvailability.d.ts","sourceRoot":"","sources":["../../../../../src/core/features/useOperationFeatureAvailability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAML,KAAK,sBAAsB,EAE3B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,+DAA+D,CAAC;AAC7H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AASpE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAMD;;;GAGG;AACH,MAAM,WAAW,0CAA0C;IACzD,gBAAgB,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAC/G,wBAAwB,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,YAAY,EAAE,oBAAoB,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9G,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnD,oBAAoB,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAC7E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,uCAAuC,GAAG,IAAI,GAAG,SAAS,EACrE,GAAG,EAAE,0CAA0C,GAC9C,mBAAmB,GAAG,SAAS,CAyIjC;AAMD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,uCAAuC,GAAG,IAAI,GAAG,SAAS,GACpE,mBAAmB,GAAG,SAAS,CA8CjC"}
1
+ {"version":3,"file":"useOperationFeatureAvailability.d.ts","sourceRoot":"","sources":["../../../../../src/core/features/useOperationFeatureAvailability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAML,KAAK,sBAAsB,EAE3B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,+DAA+D,CAAC;AAC7H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AASpE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAMD;;;GAGG;AACH,MAAM,WAAW,0CAA0C;IACzD,gBAAgB,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAC/G,wBAAwB,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,YAAY,EAAE,oBAAoB,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9G,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnD,oBAAoB,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAC7E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,uCAAuC,GAAG,IAAI,GAAG,SAAS,EACrE,GAAG,EAAE,0CAA0C,GAC9C,mBAAmB,GAAG,SAAS,CA4IjC;AAMD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,uCAAuC,GAAG,IAAI,GAAG,SAAS,GACpE,mBAAmB,GAAG,SAAS,CA8CjC"}
@@ -40,6 +40,10 @@ export function resolveOperationFeatureAvailability(operation, ctx) {
40
40
  const normalized = Array.isArray(raw)
41
41
  ? { features: raw, mode: 'OR' }
42
42
  : raw;
43
+ // A conditional requirement depends on the request body, which does not exist until the form is submitted, so it
44
+ // never makes an action unavailable here: the backend gate decides when the request arrives (`appliesWhen`).
45
+ if (normalized.appliesWhen)
46
+ return undefined;
43
47
  const { resolvedFeatures, resolvedFeaturesResponse, featureDefinitions, unavailabilityPolicy, userRoles, billingEnabled, } = ctx;
44
48
  const resolvedSet = new Set(resolvedFeatures.features);
45
49
  // ── Phase 1: Boolean features ──
@@ -1 +1 @@
1
- {"version":3,"file":"useOperationFeatureAvailability.js","sourceRoot":"","sources":["../../../../../src/core/features/useOperationFeatureAvailability.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * useOperationFeatureAvailability Hook\n * \n * Resolves feature availability for an operation's `requiredFeatures` config.\n * Evaluates both boolean features (OR/AND mode) and limit checks.\n * \n * For boolean features:\n * - OR mode: any single enabled feature is enough\n * - AND mode: all features must be enabled\n * \n * For limit features:\n * - CREATE operations: checks currentUsage + 1 <= limit\n * - CREATE_MANY: checks currentUsage < limit (conservative — backend does exact check)\n * - Other operations: increment = 0, so limits are not checked\n * \n * Returns the \"worst\" availability result (boolean failure takes precedence over limit failure).\n */\n\nimport { useMemo } from 'react';\nimport {\n FEATURES_UNLIMITED,\n FeatureValueType,\n FeatureUnavailabilityBehavior,\n FeatureUnavailabilityReason,\n CoreResourceOperation,\n type RequiredFeaturesConfig,\n type RequiredFeaturesFullConfig,\n type FeatureUpgradeOption,\n type FeatureDefinition,\n} from '@wildo-ai/saas-models';\nimport type { FrontendResourceConfiguration_Operation } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { useFeatures } from './useFeatures';\nimport { useUserOrgs } from '~wildo-frontend-lib/core/security/useUserOrgs';\nimport type { FeatureAvailability } from './useFeatureAvailability';\nimport { useBillingSafe } from '~wildo-frontend-lib/core/billing/useBilling';\nimport { useAppScopeSafe } from '~wildo-frontend-lib/core/scope/useAppScope';\nimport {\n buildFeaturePolicyRoles,\n resolveFeatureUnavailabilityBehavior,\n} from './feature-unavailability.frontend.utils';\n\n// Re-export the FeatureAvailability type for convenience\nexport type { FeatureAvailability };\n\n/**\n * Minimal operation-like shape accepted by resolveOperationFeatureAvailability.\n * Used to wrap view-level requiredFeatures or standalone feature checks\n * without needing the full FrontendResourceConfiguration_Operation type.\n * \n * Cast to FrontendResourceConfiguration_Operation when calling resolveOperationFeatureAvailability:\n * `viewCheckable as RequiredFeaturesCheckable as FrontendResourceConfiguration_Operation`\n */\nexport interface RequiredFeaturesCheckable {\n requiredFeatures: RequiredFeaturesConfig;\n operationIdentifier: string;\n}\n\n// ================================\n// Pure Resolution Function (for batch + hook use)\n// ================================\n\n/**\n * Parameters for the pure resolution function.\n * Contains all the context needed to resolve feature availability without hooks.\n */\nexport interface ResolveOperationFeatureAvailabilityContext {\n resolvedFeatures: { features: string[]; limits: Record<string, number>; currentUsage: Record<string, number> };\n resolvedFeaturesResponse: { upgradeOptions: Record<string, { availableVia: FeatureUpgradeOption[] }> } | null;\n featureDefinitions: Map<string, FeatureDefinition>;\n unavailabilityPolicy: ReturnType<typeof useFeatures>['unavailabilityPolicy'];\n userRoles: string[];\n billingEnabled: boolean;\n}\n\n/**\n * Pure function to resolve feature availability for an operation's requiredFeatures.\n * Can be called from hooks (via useMemo) or from batch evaluation effects.\n * \n * @param operation - The frontend resource operation configuration\n * @param ctx - Resolution context (resolved features, definitions, policy, roles)\n * @returns FeatureAvailability — undefined if no requiredFeatures on the operation\n */\nexport function resolveOperationFeatureAvailability(\n operation: FrontendResourceConfiguration_Operation | null | undefined,\n ctx: ResolveOperationFeatureAvailabilityContext,\n): FeatureAvailability | undefined {\n if (!operation) return undefined;\n\n // Normalize requiredFeatures (may be string[] or RequiredFeaturesFullConfig)\n const raw = operation.requiredFeatures;\n if (!raw) return undefined;\n\n const normalized: RequiredFeaturesFullConfig = Array.isArray(raw)\n ? { features: raw, mode: 'OR' }\n : raw;\n\n const {\n resolvedFeatures,\n resolvedFeaturesResponse,\n featureDefinitions,\n unavailabilityPolicy,\n userRoles,\n billingEnabled,\n } = ctx;\n const resolvedSet = new Set(resolvedFeatures.features);\n\n // ── Phase 1: Boolean features ──\n if (normalized.features && normalized.features.length > 0) {\n const mode = normalized.mode ?? 'OR';\n\n if (mode === 'OR') {\n // OR: at least one boolean feature must be enabled\n const booleanFeatures = normalized.features.filter(fId => {\n const def = featureDefinitions.get(fId);\n return !def || def.valueType === FeatureValueType.BOOLEAN;\n });\n\n const anyEnabled = booleanFeatures.some(fId => resolvedSet.has(fId));\n if (booleanFeatures.length > 0 && !anyEnabled) {\n const missingFeatures = booleanFeatures.filter(fId => !resolvedSet.has(fId));\n const firstMissing = featureDefinitions.get(missingFeatures[0]);\n const reason = FeatureUnavailabilityReason.FEATURE_NOT_ENABLED;\n const { behavior } = resolveFeatureUnavailabilityBehavior({\n reason,\n featureDef: firstMissing,\n policy: unavailabilityPolicy,\n userRoles,\n billingEnabled,\n });\n const upgradeOptions = resolvedFeaturesResponse?.upgradeOptions?.[missingFeatures[0]]?.availableVia;\n\n return {\n isAvailable: false,\n reason,\n behavior,\n missingFeatures,\n upgradeOptions,\n suggestedProductRef: firstMissing?.unavailability?.suggestedProductRef,\n };\n }\n } else {\n // AND: all boolean features must be enabled\n for (const featureId of normalized.features) {\n const def = featureDefinitions.get(featureId);\n if (def && def.valueType !== FeatureValueType.BOOLEAN) continue;\n\n if (!resolvedSet.has(featureId)) {\n const reason = FeatureUnavailabilityReason.FEATURE_NOT_ENABLED;\n const { behavior } = resolveFeatureUnavailabilityBehavior({\n reason,\n featureDef: def,\n policy: unavailabilityPolicy,\n userRoles,\n billingEnabled,\n });\n const upgradeOptions = resolvedFeaturesResponse?.upgradeOptions?.[featureId]?.availableVia;\n\n return {\n isAvailable: false,\n reason,\n behavior,\n missingFeatures: [featureId],\n upgradeOptions,\n suggestedProductRef: def?.unavailability?.suggestedProductRef,\n };\n }\n }\n }\n }\n\n // ── Phase 2: Limit checks ──\n if (normalized.limitChecks && normalized.limitChecks.length > 0) {\n const operationId = operation.operationIdentifier as string;\n\n for (const check of normalized.limitChecks) {\n const limit = resolvedFeatures.limits[check.featureId];\n\n // No limit or unlimited → pass\n if (limit === undefined || limit === FEATURES_UNLIMITED) continue;\n\n const currentUsage = resolvedFeatures.currentUsage[check.featureId] ?? 0;\n\n // Infer increment (frontend-side: same logic as backend, conservative for CREATE_MANY)\n let increment: number;\n if (check.increment !== undefined) {\n increment = check.increment;\n } else if (operationId === CoreResourceOperation.CREATE) {\n increment = 1;\n } else if (operationId === CoreResourceOperation.CREATE_MANY) {\n increment = 1; // Conservative — backend does exact check\n } else {\n increment = 0;\n }\n\n if (increment === 0) continue;\n\n if (currentUsage + increment > limit) {\n const reason = FeatureUnavailabilityReason.LIMIT_EXCEEDED;\n const featureDef = featureDefinitions.get(check.featureId);\n const { behavior } = resolveFeatureUnavailabilityBehavior({\n reason,\n featureDef,\n policy: unavailabilityPolicy,\n userRoles,\n billingEnabled,\n });\n const upgradeOptions = resolvedFeaturesResponse?.upgradeOptions?.[check.featureId]?.availableVia;\n\n return {\n isAvailable: false,\n reason,\n behavior,\n limitInfo: { featureId: check.featureId, current: currentUsage, limit },\n upgradeOptions,\n suggestedProductRef: featureDef?.unavailability?.suggestedProductRef,\n };\n }\n }\n }\n\n // All checks passed\n return { isAvailable: true, behavior: FeatureUnavailabilityBehavior.DISABLE };\n}\n\n// ================================\n// Hook (convenience wrapper over pure function)\n// ================================\n\n/**\n * Resolve feature availability for an operation's requiredFeatures.\n * \n * @param operation - The frontend resource operation configuration\n * @returns FeatureAvailability — undefined if no requiredFeatures on the operation\n */\nexport function useOperationFeatureAvailability(\n operation: FrontendResourceConfiguration_Operation | null | undefined,\n): FeatureAvailability | undefined {\n const {\n resolvedFeatures,\n resolvedFeaturesResponse,\n featureDefinitions,\n unavailabilityPolicy,\n isLoading,\n } = useFeatures();\n\n const { permissions } = useUserOrgs();\n const billing = useBillingSafe();\n const appScope = useAppScopeSafe();\n\n return useMemo((): FeatureAvailability | undefined => {\n // While loading, treat as available (optimistic — prevents flash of locked UI)\n if (isLoading) {\n return operation?.requiredFeatures\n ? { isAvailable: true, behavior: FeatureUnavailabilityBehavior.DISABLE }\n : undefined;\n }\n\n // Build user roles for policy resolution\n const userRoles = buildFeaturePolicyRoles(\n permissions,\n appScope?.currentOrganizationId ?? null,\n );\n\n return resolveOperationFeatureAvailability(operation, {\n resolvedFeatures,\n resolvedFeaturesResponse,\n featureDefinitions,\n unavailabilityPolicy,\n userRoles,\n billingEnabled: billing?.isEnabled ?? false,\n });\n }, [\n operation,\n isLoading,\n resolvedFeatures,\n resolvedFeaturesResponse,\n featureDefinitions,\n unavailabilityPolicy,\n permissions,\n appScope?.currentOrganizationId,\n billing?.isEnabled,\n ]);\n}\n"]}
1
+ {"version":3,"file":"useOperationFeatureAvailability.js","sourceRoot":"","sources":["../../../../../src/core/features/useOperationFeatureAvailability.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * useOperationFeatureAvailability Hook\n * \n * Resolves feature availability for an operation's `requiredFeatures` config.\n * Evaluates both boolean features (OR/AND mode) and limit checks.\n * \n * For boolean features:\n * - OR mode: any single enabled feature is enough\n * - AND mode: all features must be enabled\n * \n * For limit features:\n * - CREATE operations: checks currentUsage + 1 <= limit\n * - CREATE_MANY: checks currentUsage < limit (conservative — backend does exact check)\n * - Other operations: increment = 0, so limits are not checked\n * \n * Returns the \"worst\" availability result (boolean failure takes precedence over limit failure).\n */\n\nimport { useMemo } from 'react';\nimport {\n FEATURES_UNLIMITED,\n FeatureValueType,\n FeatureUnavailabilityBehavior,\n FeatureUnavailabilityReason,\n CoreResourceOperation,\n type RequiredFeaturesConfig,\n type RequiredFeaturesFullConfig,\n type FeatureUpgradeOption,\n type FeatureDefinition,\n} from '@wildo-ai/saas-models';\nimport type { FrontendResourceConfiguration_Operation } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { useFeatures } from './useFeatures';\nimport { useUserOrgs } from '~wildo-frontend-lib/core/security/useUserOrgs';\nimport type { FeatureAvailability } from './useFeatureAvailability';\nimport { useBillingSafe } from '~wildo-frontend-lib/core/billing/useBilling';\nimport { useAppScopeSafe } from '~wildo-frontend-lib/core/scope/useAppScope';\nimport {\n buildFeaturePolicyRoles,\n resolveFeatureUnavailabilityBehavior,\n} from './feature-unavailability.frontend.utils';\n\n// Re-export the FeatureAvailability type for convenience\nexport type { FeatureAvailability };\n\n/**\n * Minimal operation-like shape accepted by resolveOperationFeatureAvailability.\n * Used to wrap view-level requiredFeatures or standalone feature checks\n * without needing the full FrontendResourceConfiguration_Operation type.\n * \n * Cast to FrontendResourceConfiguration_Operation when calling resolveOperationFeatureAvailability:\n * `viewCheckable as RequiredFeaturesCheckable as FrontendResourceConfiguration_Operation`\n */\nexport interface RequiredFeaturesCheckable {\n requiredFeatures: RequiredFeaturesConfig;\n operationIdentifier: string;\n}\n\n// ================================\n// Pure Resolution Function (for batch + hook use)\n// ================================\n\n/**\n * Parameters for the pure resolution function.\n * Contains all the context needed to resolve feature availability without hooks.\n */\nexport interface ResolveOperationFeatureAvailabilityContext {\n resolvedFeatures: { features: string[]; limits: Record<string, number>; currentUsage: Record<string, number> };\n resolvedFeaturesResponse: { upgradeOptions: Record<string, { availableVia: FeatureUpgradeOption[] }> } | null;\n featureDefinitions: Map<string, FeatureDefinition>;\n unavailabilityPolicy: ReturnType<typeof useFeatures>['unavailabilityPolicy'];\n userRoles: string[];\n billingEnabled: boolean;\n}\n\n/**\n * Pure function to resolve feature availability for an operation's requiredFeatures.\n * Can be called from hooks (via useMemo) or from batch evaluation effects.\n * \n * @param operation - The frontend resource operation configuration\n * @param ctx - Resolution context (resolved features, definitions, policy, roles)\n * @returns FeatureAvailability — undefined if no requiredFeatures on the operation\n */\nexport function resolveOperationFeatureAvailability(\n operation: FrontendResourceConfiguration_Operation | null | undefined,\n ctx: ResolveOperationFeatureAvailabilityContext,\n): FeatureAvailability | undefined {\n if (!operation) return undefined;\n\n // Normalize requiredFeatures (may be string[] or RequiredFeaturesFullConfig)\n const raw = operation.requiredFeatures;\n if (!raw) return undefined;\n\n const normalized: RequiredFeaturesFullConfig = Array.isArray(raw)\n ? { features: raw, mode: 'OR' }\n : raw;\n // A conditional requirement depends on the request body, which does not exist until the form is submitted, so it\n // never makes an action unavailable here: the backend gate decides when the request arrives (`appliesWhen`).\n if (normalized.appliesWhen) return undefined;\n\n const {\n resolvedFeatures,\n resolvedFeaturesResponse,\n featureDefinitions,\n unavailabilityPolicy,\n userRoles,\n billingEnabled,\n } = ctx;\n const resolvedSet = new Set(resolvedFeatures.features);\n\n // ── Phase 1: Boolean features ──\n if (normalized.features && normalized.features.length > 0) {\n const mode = normalized.mode ?? 'OR';\n\n if (mode === 'OR') {\n // OR: at least one boolean feature must be enabled\n const booleanFeatures = normalized.features.filter(fId => {\n const def = featureDefinitions.get(fId);\n return !def || def.valueType === FeatureValueType.BOOLEAN;\n });\n\n const anyEnabled = booleanFeatures.some(fId => resolvedSet.has(fId));\n if (booleanFeatures.length > 0 && !anyEnabled) {\n const missingFeatures = booleanFeatures.filter(fId => !resolvedSet.has(fId));\n const firstMissing = featureDefinitions.get(missingFeatures[0]);\n const reason = FeatureUnavailabilityReason.FEATURE_NOT_ENABLED;\n const { behavior } = resolveFeatureUnavailabilityBehavior({\n reason,\n featureDef: firstMissing,\n policy: unavailabilityPolicy,\n userRoles,\n billingEnabled,\n });\n const upgradeOptions = resolvedFeaturesResponse?.upgradeOptions?.[missingFeatures[0]]?.availableVia;\n\n return {\n isAvailable: false,\n reason,\n behavior,\n missingFeatures,\n upgradeOptions,\n suggestedProductRef: firstMissing?.unavailability?.suggestedProductRef,\n };\n }\n } else {\n // AND: all boolean features must be enabled\n for (const featureId of normalized.features) {\n const def = featureDefinitions.get(featureId);\n if (def && def.valueType !== FeatureValueType.BOOLEAN) continue;\n\n if (!resolvedSet.has(featureId)) {\n const reason = FeatureUnavailabilityReason.FEATURE_NOT_ENABLED;\n const { behavior } = resolveFeatureUnavailabilityBehavior({\n reason,\n featureDef: def,\n policy: unavailabilityPolicy,\n userRoles,\n billingEnabled,\n });\n const upgradeOptions = resolvedFeaturesResponse?.upgradeOptions?.[featureId]?.availableVia;\n\n return {\n isAvailable: false,\n reason,\n behavior,\n missingFeatures: [featureId],\n upgradeOptions,\n suggestedProductRef: def?.unavailability?.suggestedProductRef,\n };\n }\n }\n }\n }\n\n // ── Phase 2: Limit checks ──\n if (normalized.limitChecks && normalized.limitChecks.length > 0) {\n const operationId = operation.operationIdentifier as string;\n\n for (const check of normalized.limitChecks) {\n const limit = resolvedFeatures.limits[check.featureId];\n\n // No limit or unlimited → pass\n if (limit === undefined || limit === FEATURES_UNLIMITED) continue;\n\n const currentUsage = resolvedFeatures.currentUsage[check.featureId] ?? 0;\n\n // Infer increment (frontend-side: same logic as backend, conservative for CREATE_MANY)\n let increment: number;\n if (check.increment !== undefined) {\n increment = check.increment;\n } else if (operationId === CoreResourceOperation.CREATE) {\n increment = 1;\n } else if (operationId === CoreResourceOperation.CREATE_MANY) {\n increment = 1; // Conservative — backend does exact check\n } else {\n increment = 0;\n }\n\n if (increment === 0) continue;\n\n if (currentUsage + increment > limit) {\n const reason = FeatureUnavailabilityReason.LIMIT_EXCEEDED;\n const featureDef = featureDefinitions.get(check.featureId);\n const { behavior } = resolveFeatureUnavailabilityBehavior({\n reason,\n featureDef,\n policy: unavailabilityPolicy,\n userRoles,\n billingEnabled,\n });\n const upgradeOptions = resolvedFeaturesResponse?.upgradeOptions?.[check.featureId]?.availableVia;\n\n return {\n isAvailable: false,\n reason,\n behavior,\n limitInfo: { featureId: check.featureId, current: currentUsage, limit },\n upgradeOptions,\n suggestedProductRef: featureDef?.unavailability?.suggestedProductRef,\n };\n }\n }\n }\n\n // All checks passed\n return { isAvailable: true, behavior: FeatureUnavailabilityBehavior.DISABLE };\n}\n\n// ================================\n// Hook (convenience wrapper over pure function)\n// ================================\n\n/**\n * Resolve feature availability for an operation's requiredFeatures.\n * \n * @param operation - The frontend resource operation configuration\n * @returns FeatureAvailability — undefined if no requiredFeatures on the operation\n */\nexport function useOperationFeatureAvailability(\n operation: FrontendResourceConfiguration_Operation | null | undefined,\n): FeatureAvailability | undefined {\n const {\n resolvedFeatures,\n resolvedFeaturesResponse,\n featureDefinitions,\n unavailabilityPolicy,\n isLoading,\n } = useFeatures();\n\n const { permissions } = useUserOrgs();\n const billing = useBillingSafe();\n const appScope = useAppScopeSafe();\n\n return useMemo((): FeatureAvailability | undefined => {\n // While loading, treat as available (optimistic — prevents flash of locked UI)\n if (isLoading) {\n return operation?.requiredFeatures\n ? { isAvailable: true, behavior: FeatureUnavailabilityBehavior.DISABLE }\n : undefined;\n }\n\n // Build user roles for policy resolution\n const userRoles = buildFeaturePolicyRoles(\n permissions,\n appScope?.currentOrganizationId ?? null,\n );\n\n return resolveOperationFeatureAvailability(operation, {\n resolvedFeatures,\n resolvedFeaturesResponse,\n featureDefinitions,\n unavailabilityPolicy,\n userRoles,\n billingEnabled: billing?.isEnabled ?? false,\n });\n }, [\n operation,\n isLoading,\n resolvedFeatures,\n resolvedFeaturesResponse,\n featureDefinitions,\n unavailabilityPolicy,\n permissions,\n appScope?.currentOrganizationId,\n billing?.isEnabled,\n ]);\n}\n"]}
@@ -1,8 +1,13 @@
1
1
  import React, { ReactNode } from 'react';
2
- import { FlowActorSystem_FrontendInfo, type FlowsActors_AutonomousAgent_FrontendInfo, type FlowsActors_ConversationHistoryResponse, type WS_FlowsActorsApprovalModificationRefusal, type HumanDecision_RouteKind, type WorkUnitRef } from '@wildo-ai/saas-models';
2
+ import { FlowActorSystem_FrontendInfo, type FlowsActors_AutonomousAgent_FrontendInfo, type FlowsActors_ChatAgent_FrontendInfo, type FlowsActors_ConversationHistoryResponse, type WS_FlowsActorsApprovalModificationRefusal, type WS_FlowsActorsTurnUsage, FlowsActors_Status, type FlowsActors_MessageContentType, type HumanDecision_RouteKind, type HumanDecision_Presentation, type HumanDecision_Request, type HumanDecision_AnswerValue, type WorkUnitRef, type ResourceOperationRiskLevel } from '@wildo-ai/saas-models';
3
3
  import type { SerializableZodSchema } from '@wildo-ai/zod-decorators';
4
4
  /**
5
- * FlowsActors Execution Status
5
+ * How a turn stands in THIS CLIENT — its view of a turn, which is not the server's run status.
6
+ *
7
+ * Kept distinct on purpose (#2524): the client knows states the server never holds — STARTING (the start is sent and
8
+ * not yet acknowledged), and an ERROR it detects itself when the socket drops — and the server knows states the
9
+ * client never shows (READY, ABORTED). The WIRE speaks the server's vocabulary (`FlowsActors_Status` on
10
+ * `FLOWS_ACTORS_COMPLETED`), and {@link turnStatusFromServer} is the ONE place that reads it into this one.
6
11
  */
7
12
  export declare enum FlowsActorsExecutionStatus {
8
13
  IDLE = "idle",
@@ -10,8 +15,12 @@ export declare enum FlowsActorsExecutionStatus {
10
15
  RUNNING = "running",
11
16
  AWAITING_APPROVAL = "awaiting_approval",
12
17
  COMPLETED = "completed",
18
+ /** The person stopped the turn (#2524). Not an error: nothing failed, and the turn's thread continues. */
19
+ CANCELLED = "cancelled",
13
20
  ERROR = "error"
14
21
  }
22
+ /** Read a server run status into the client's turn status — the one mapping (#2524). */
23
+ export declare function turnStatusFromServer(status: FlowsActors_Status): FlowsActorsExecutionStatus;
15
24
  /**
16
25
  * Active Execution State
17
26
  */
@@ -19,10 +28,9 @@ export interface FlowsActorsExecution {
19
28
  executionId: string;
20
29
  systemRef: string;
21
30
  status: FlowsActorsExecutionStatus;
22
- progress?: number;
23
- currentStep?: string;
24
31
  messages: Array<{
25
- type: 'text' | 'markdown' | 'progress' | 'data';
32
+ /** The message vocabulary's VALUE (`FlowsActors_MessageContentType`), the wire's `messageType`. */
33
+ type: `${FlowsActors_MessageContentType}`;
26
34
  content: string;
27
35
  data?: Record<string, unknown>;
28
36
  timestamp: Date;
@@ -35,20 +43,19 @@ export interface FlowsActorsExecution {
35
43
  messageId?: string;
36
44
  }>;
37
45
  /**
38
- * The decision a paused turn is waiting on.
39
- *
40
- * `riskLevel` and `requiredRoles` are OPTIONAL because nothing populates them: they belong to
41
- * `WS_FlowsActorsApprovalRequestPayload`, a payload no code has ever emitted. What the server
42
- * actually announces is `WS_FlowsActorsApprovalAnnouncementData`, carried in the `data` bag of a
43
- * PROGRESS message — tool name, tool arguments, timing, and the isolation axis (#528). Typing
44
- * them as required would let a surface render a risk claim nothing declared.
46
+ * The decision a paused turn is waiting on, read from `WS_FlowsActorsApprovalAnnouncementData` — carried in the `data`
47
+ * bag of a PROGRESS message: tool name, tool arguments, timing, the isolation axis (#528), and the risk the call's
48
+ * approval gate declares (#2526).
45
49
  */
46
50
  pendingApproval?: {
47
51
  approvalId: string;
48
52
  actionDescription: string;
49
- riskLevel?: 'low' | 'medium' | 'high' | 'critical';
53
+ /**
54
+ * The risk the call's approval gate DECLARES (`humanApproval.riskLevel`), as the decision's inbox card carries it
55
+ * (#2526). Absent when the gate declares none; a surface then shows no risk claim, because nothing declared one.
56
+ */
57
+ riskLevel?: ResourceOperationRiskLevel;
50
58
  expiresAt?: Date;
51
- requiredRoles?: string[];
52
59
  /** The tool call being gated, and its arguments — the structured thing being approved. */
53
60
  toolName?: string;
54
61
  toolArgs?: Record<string, unknown>;
@@ -69,6 +76,13 @@ export interface FlowsActorsExecution {
69
76
  modificationRefusal?: WS_FlowsActorsApprovalModificationRefusal;
70
77
  /** The arguments the approver submitted in that refused edit, so the editor reopens on them (#587). */
71
78
  rejectedToolArgs?: Record<string, unknown>;
79
+ /**
80
+ * What the server built for the person to read (#2903): the arguments as strings it already projected, which the card
81
+ * renders verbatim. Absent on a turn paused before decisions were routed.
82
+ */
83
+ presentation?: HumanDecision_Presentation;
84
+ /** The presentation's id, echoed on the answer: the server refuses an answer that does not name what it was given on. */
85
+ presentationId?: string;
72
86
  requestedAt?: Date;
73
87
  /**
74
88
  * The decision's one id (#1594), ECHOED back on the answer. The server addresses the decision by
@@ -91,6 +105,11 @@ export interface FlowsActorsExecution {
91
105
  * screen, and the card says the reason was not one the application offers. Cleared by the next answer.
92
106
  */
93
107
  reasonCodeRefused?: boolean;
108
+ /**
109
+ * The QUESTION, when the paused call is the agent asking its person (#2720): its questions, its two answers and the
110
+ * form they are asked through. Answered with `answerQuestion`, never approved.
111
+ */
112
+ question?: HumanDecision_Request;
94
113
  };
95
114
  /** Set when the last error is recoverable (UI can offer a retry action) */
96
115
  recoverable?: boolean;
@@ -106,8 +125,9 @@ export interface FlowsActorsExecution {
106
125
  approval: NonNullable<FlowsActorsExecution['pendingApproval']>;
107
126
  submittedToolArgs?: Record<string, unknown>;
108
127
  };
109
- result?: Record<string, unknown>;
110
128
  duration?: number;
129
+ /** The tokens the turn spent — present only for a person who may read model cost (#2524). */
130
+ usage?: WS_FlowsActorsTurnUsage;
111
131
  errorCode?: string;
112
132
  }
113
133
  /**
@@ -123,15 +143,26 @@ export interface FlowsActorsContextType {
123
143
  */
124
144
  autonomousAgents: FlowsActors_AutonomousAgent_FrontendInfo[];
125
145
  /**
126
- * Ask for {@link autonomousAgents} to be loaded, whatever else this application renders.
146
+ * The chat agents the application declares (#2665), in declaration order — the closed set an organization's chat
147
+ * setting may name. Empty until the first fetch settles, and when the application declares none.
148
+ */
149
+ chatAgents: FlowsActors_ChatAgent_FrontendInfo[];
150
+ /**
151
+ * The chat connections an organization may choose an agent for (#2665): the application's providers enabled here
152
+ * with a chat endpoint (`slack`, `microsoft-teams-bot`). Empty until the first fetch settles, and when there is none.
153
+ */
154
+ chatConnectionRefs: string[];
155
+ /**
156
+ * Ask for the agent declarations — {@link autonomousAgents}, {@link chatAgents} and {@link chatConnectionRefs} — to be
157
+ * loaded, whatever else this application renders.
127
158
  *
128
159
  * The provider bootstraps `/flows-actors/frontend-info` only when the application configures a flows/actors
129
- * VIEW (pinned: an application with no chat surface makes no such request). An autonomous agent needs no view —
130
- * it runs unattended — so a surface that needs the declared agents (the OAuth client binding form, #1812) calls
131
- * this instead. It fetches once per sign-in, and does nothing when a fetch already ran or cannot run yet
132
- * (signed out, no backend endpoint, no http client). Idempotent, so call it from an effect.
160
+ * VIEW (pinned: an application with no chat surface makes no such request). Neither an autonomous agent nor a chat
161
+ * agent needs a view, so a surface that needs the declarations (the OAuth client binding form, #1812; the chat
162
+ * settings form, #2665) calls this instead. It fetches once per sign-in, and does nothing when a fetch already ran or
163
+ * cannot run yet (signed out, no backend endpoint, no http client). Idempotent, so call it from an effect.
133
164
  */
134
- requestAutonomousAgents: () => void;
165
+ requestAgentDeclarations: () => void;
135
166
  /** Loading state */
136
167
  isLoading: boolean;
137
168
  /** Error state */
@@ -147,8 +178,14 @@ export interface FlowsActorsContextType {
147
178
  * so the model calls it makes are attributed to that case. Read when the thread OPENS; a later turn keeps the
148
179
  * thread's case. The server admits it only if the caller can read that row.
149
180
  */
150
- startExecution: (systemRef: string, initialInput?: Record<string, unknown>, existingExecutionId?: string, extraContextResourceIdentifiers?: Record<string, string>, options?: {
181
+ startExecution: (systemRef: string, initialInput?: Record<string, unknown>, existingExecutionId?: string, extraContextResourceIdentifiers?: Record<string, string>,
182
+ /**
183
+ * `messageId`: the id the person's message is stored under (#2525 review N1). A page drawing the message before the
184
+ * record holds it mints one, and recognises the stored message by it.
185
+ */
186
+ options?: {
151
187
  caseRef?: WorkUnitRef;
188
+ messageId?: string;
152
189
  }) => string | null;
153
190
  /** Respond to an approval request (fire-and-forget via WebSocket) */
154
191
  /**
@@ -158,6 +195,21 @@ export interface FlowsActorsContextType {
158
195
  */
159
196
  /** `reasonCode` is one of the approval's `reasonCodes` (#1921), given when the approver changes or rejects the call. */
160
197
  respondToApproval: (executionId: string, approvalId: string, approved: boolean, comment?: string, modifiedToolArgs?: Record<string, unknown>, reasonCode?: string) => void;
198
+ /**
199
+ * Answer the paused turn's QUESTION (#2720): the option chosen and, when it sends answers, one value per question as
200
+ * its JSON (what `HumanDecisionForm` reads). The server checks the values with the question's own form and refuses
201
+ * through `FLOWS_ACTORS_ERROR` with the question left pending.
202
+ */
203
+ answerQuestion: (executionId: string, optionRef: string, values: readonly {
204
+ ref: string;
205
+ value: HumanDecision_AnswerValue;
206
+ }[], comment?: string) => void;
207
+ /**
208
+ * Stop the person's own running turn (#2524). The server ends it CANCELLED, keeping what it had produced, and the
209
+ * turn settles on `FLOWS_ACTORS_COMPLETED` like any other — nothing is settled here, so a stop that races the turn's
210
+ * own end cannot leave the two disagreeing.
211
+ */
212
+ cancelExecution: (executionId: string) => void;
161
213
  /** Remove a completed/errored execution from state */
162
214
  clearExecution: (executionId: string) => void;
163
215
  /** Get execution by ID (reads from ref; consume `executions` to re-render on changes) */
@@ -167,18 +219,23 @@ export interface FlowsActorsContextType {
167
219
  /** Refresh systems from backend */
168
220
  refreshSystems: () => Promise<void>;
169
221
  /**
170
- * Fetch the caller's OWN persisted conversation history for a system (chat
171
- * threads), most recent last. Server-authoritative (the executions resource,
172
- * USER_SELF-scoped to the caller) — this is what repopulates the discussions
173
- * sidebar + transcripts on a fresh page load. Returns `[]` when the backend has
174
- * no flows-actors history surface (feature absent).
175
- */
176
- /**
177
- * The caller's own threads for a system. With `contextResourceIdentifiers`, only the threads
178
- * opened in that context — the same identifiers passed to `startExecution`, canonicalised the
179
- * same way — which is how a surface hosting one system for several subjects keeps them apart.
222
+ * The caller's OWN persisted threads for a system, server-authoritative (the executions resource, USER_SELF-scoped to
223
+ * the caller): what repopulates the discussion list and the transcripts on a fresh page load. With
224
+ * `contextResourceIdentifiers`, only the threads opened in that context — the same identifiers passed to
225
+ * `startExecution`, canonicalised the same way — which is how a surface hosting one system for several subjects keeps
226
+ * them apart.
227
+ *
228
+ * Reads a PAGE (#2528): the newest threads, or with `before` (the oldest `createdAt` a host already holds) the ones
229
+ * before it, inclusive — so a host keeps each `executionId` once. `hasOlder` says whether another page remains.
230
+ *
231
+ * Resolves an empty page when there are none, or when the backend has no flows-actors history surface (feature
232
+ * absent), and `undefined` when the read FAILED (#2525 review M4). The two must not look alike: a host re-reads after
233
+ * every turn, and treating a failure as "no threads" emptied its discussion list and transcript — under the very
234
+ * outage that had just ended the turn. Keep the last good list on `undefined`.
180
235
  */
181
- fetchConversationHistory: (systemRef: string, contextResourceIdentifiers?: Record<string, string>) => Promise<FlowsActors_ConversationHistoryResponse['executions']>;
236
+ fetchConversationHistory: (systemRef: string, contextResourceIdentifiers?: Record<string, string>, page?: {
237
+ readonly before?: string;
238
+ }) => Promise<FlowsActors_ConversationHistoryResponse | undefined>;
182
239
  /**
183
240
  * Delete ONE of the caller's own persisted conversations (a discussion). Runs
184
241
  * under the caller's auth, so the executions resource's USER_SELF owner filter
@@ -1 +1 @@
1
- {"version":3,"file":"FlowsActorsContext.d.ts","sourceRoot":"","sources":["../../../../../src/core/flows-actors/FlowsActorsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA2B,SAAS,EAA2C,MAAM,OAAO,CAAC;AAC3G,OAAO,EACL,4BAA4B,EAE5B,KAAK,wCAAwC,EAK7C,KAAK,uCAAuC,EAQ5C,KAAK,yCAAyC,EAM9C,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAwDtE;;GAEG;AACH,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,iBAAiB,sBAAsB;IACvC,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AA+BD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,0BAA0B,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;QAChD,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,SAAS,EAAE,IAAI,CAAC;QAChB;;;;;WAKG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;QACnD,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,0FAA0F;QAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC;;;WAGG;QACH,eAAe,CAAC,EAAE,qBAAqB,CAAC;QACxC;;;;;;;;WAQG;QACH,mBAAmB,CAAC,EAAE,yCAAyC,CAAC;QAChE,uGAAuG;QACvG,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,WAAW,CAAC,EAAE,IAAI,CAAC;QACnB;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;;WAIG;QACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;QACpC;;;WAGG;QACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAChC;;;WAGG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE;QACjB,QAAQ,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7C,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,OAAO,EAAE,4BAA4B,EAAE,CAAC;IAExC;;;;OAIG;IACH,gBAAgB,EAAE,wCAAwC,EAAE,CAAC;IAE7D;;;;;;;;OAQG;IACH,uBAAuB,EAAE,MAAM,IAAI,CAAC;IAEpC,oBAAoB;IACpB,SAAS,EAAE,OAAO,CAAC;IAEnB,kBAAkB;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,wBAAwB;IACxB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAE9C,uFAAuF;IACvF;;;;;;;OAOG;IACH,cAAc,EAAE,CACd,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,mBAAmB,CAAC,EAAE,MAAM,EAC5B,+BAA+B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACxD,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,WAAW,CAAA;KAAE,KAChC,MAAM,GAAG,IAAI,CAAC;IAEnB,qEAAqE;IACrE;;;;OAIG;IACH,wHAAwH;IACxH,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3K,sDAAsD;IACtD,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9C,yFAAyF;IACzF,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,oBAAoB,GAAG,SAAS,CAAC;IAExE,wBAAwB;IACxB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,4BAA4B,GAAG,SAAS,CAAC;IAE3E,mCAAmC;IACnC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;;;;;OAMG;IACH;;;;OAIG;IACH,wBAAwB,EAAE,CACxB,SAAS,EAAE,MAAM,EACjB,0BAA0B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAChD,OAAO,CAAC,uCAAuC,CAAC,YAAY,CAAC,CAAC,CAAC;IAEpE;;;;OAIG;IACH,kBAAkB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAgE,CAAC;AAElJ;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAgqBjE,CAAC"}
1
+ {"version":3,"file":"FlowsActorsContext.d.ts","sourceRoot":"","sources":["../../../../../src/core/flows-actors/FlowsActorsContext.tsx"],"names":[],"mappings":"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"}