@wildo-ai/saas-frontend-lib 1.1.5 → 1.1.6

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 (777) hide show
  1. package/dist/esm/components/actions/action-bar.d.ts +15 -0
  2. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  3. package/dist/esm/components/actions/action-bar.js +15 -0
  4. package/dist/esm/components/actions/action-bar.js.map +1 -1
  5. package/dist/esm/components/ai-elements/decision/approval.d.ts +97 -7
  6. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  7. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  8. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
  9. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +8 -3
  10. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
  11. package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
  12. package/dist/esm/components/auth/Auth_EnrollmentRequired.js +5 -1
  13. package/dist/esm/components/auth/Auth_EnrollmentRequired.js.map +1 -1
  14. package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
  15. package/dist/esm/components/auth/Auth_Main.js +1 -4
  16. package/dist/esm/components/auth/Auth_Main.js.map +1 -1
  17. package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
  18. package/dist/esm/components/auth/Auth_Register.js +1 -3
  19. package/dist/esm/components/auth/Auth_Register.js.map +1 -1
  20. package/dist/esm/components/auth/StepUpAuthDialog.d.ts +7 -0
  21. package/dist/esm/components/auth/StepUpAuthDialog.d.ts.map +1 -1
  22. package/dist/esm/components/auth/StepUpAuthDialog.js +13 -7
  23. package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
  24. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
  25. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js +32 -33
  26. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
  27. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
  28. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js +18 -20
  29. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
  30. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
  31. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js +2 -3
  32. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js.map +1 -1
  33. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts +13 -16
  34. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts.map +1 -1
  35. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js +18 -15
  36. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js.map +1 -1
  37. package/dist/esm/components/billing/billing-invoice-history.js +2 -2
  38. package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
  39. package/dist/esm/components/billing/billing-portal-link.js +2 -2
  40. package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
  41. package/dist/esm/components/billing/billing-pricing-table.d.ts +33 -1
  42. package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
  43. package/dist/esm/components/billing/billing-pricing-table.js +34 -5
  44. package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
  45. package/dist/esm/components/billing/billing-subscription-status.js +2 -2
  46. package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
  47. package/dist/esm/components/billing/billing-usage-dashboard.d.ts +2 -0
  48. package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
  49. package/dist/esm/components/billing/billing-usage-dashboard.js +1 -0
  50. package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
  51. package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
  52. package/dist/esm/components/data-display/DisplayField.js +15 -1
  53. package/dist/esm/components/data-display/DisplayField.js.map +1 -1
  54. package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
  55. package/dist/esm/components/data-display/DisplayFieldArray.js +11 -0
  56. package/dist/esm/components/data-display/DisplayFieldArray.js.map +1 -1
  57. package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
  58. package/dist/esm/components/data-display/DisplayFieldEditable.js +2 -2
  59. package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
  60. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +12 -2
  61. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
  62. package/dist/esm/components/data-display/DisplayFieldEditableArray.js +3 -2
  63. package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
  64. package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
  65. package/dist/esm/components/data-display/DisplayFieldReadOnly.js +2 -2
  66. package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
  67. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
  68. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js +8 -2
  69. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js.map +1 -1
  70. package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
  71. package/dist/esm/components/data-display/DisplayValueDispatcher.js +18 -4
  72. package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
  73. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
  74. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js +61 -3
  75. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
  76. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +7 -5
  77. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
  78. package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
  79. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +11 -1
  80. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
  81. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +36 -11
  82. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
  83. package/dist/esm/components/data-display/display-field-resolved-props.d.ts +6 -0
  84. package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
  85. package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
  86. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +23 -0
  87. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -0
  88. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +35 -0
  89. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -0
  90. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +47 -0
  91. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -0
  92. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +124 -0
  93. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -0
  94. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts +8 -0
  95. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts.map +1 -0
  96. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +46 -0
  97. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -0
  98. package/dist/esm/components/feedback/resource-empty-state.d.ts +21 -8
  99. package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
  100. package/dist/esm/components/feedback/resource-empty-state.js +56 -26
  101. package/dist/esm/components/feedback/resource-empty-state.js.map +1 -1
  102. package/dist/esm/components/flows-actors/approval.d.ts +29 -7
  103. package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
  104. package/dist/esm/components/flows-actors/approval.js +231 -101
  105. package/dist/esm/components/flows-actors/approval.js.map +1 -1
  106. package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
  107. package/dist/esm/components/flows-actors/approval.labels.js +57 -0
  108. package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
  109. package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
  110. package/dist/esm/components/flows-actors/system-catalog.js +4 -4
  111. package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
  112. package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
  113. package/dist/esm/components/flows-actors/system-catalog.labels.js +0 -5
  114. package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
  115. package/dist/esm/components/form/Form.d.ts +2 -2
  116. package/dist/esm/components/form/Form.js +2 -2
  117. package/dist/esm/components/form/Form.js.map +1 -1
  118. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +28 -3
  119. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
  120. package/dist/esm/components/form/automated/AutomatedArrayField.js +43 -14
  121. package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
  122. package/dist/esm/components/form/automated/FormField.d.ts +3 -0
  123. package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
  124. package/dist/esm/components/form/automated/FormField.js +60 -21
  125. package/dist/esm/components/form/automated/FormField.js.map +1 -1
  126. package/dist/esm/components/form/automated/FormFieldArray.d.ts +6 -3
  127. package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
  128. package/dist/esm/components/form/automated/FormFieldArray.js +3 -2
  129. package/dist/esm/components/form/automated/FormFieldArray.js.map +1 -1
  130. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +5 -4
  131. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
  132. package/dist/esm/components/form/automated/ResourceAutomatedForm.js +148 -55
  133. package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
  134. package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts +30 -0
  135. package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts.map +1 -1
  136. package/dist/esm/components/form/automated/ResourceFormActionsContext.js +30 -1
  137. package/dist/esm/components/form/automated/ResourceFormActionsContext.js.map +1 -1
  138. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts +79 -0
  139. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts.map +1 -0
  140. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js +203 -0
  141. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js.map +1 -0
  142. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +12 -0
  143. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
  144. package/dist/esm/components/form/automated/automated-form-submit.utils.js +11 -0
  145. package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
  146. package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
  147. package/dist/esm/components/form/chromes/FormFieldChrome.js +2 -2
  148. package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
  149. package/dist/esm/components/form/combobox.d.ts +7 -0
  150. package/dist/esm/components/form/combobox.d.ts.map +1 -1
  151. package/dist/esm/components/form/combobox.js.map +1 -1
  152. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
  153. package/dist/esm/components/form/controls/form-field-checkbox-group.js +13 -0
  154. package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
  155. package/dist/esm/components/form/fields/form-field-address.d.ts +58 -0
  156. package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
  157. package/dist/esm/components/form/fields/form-field-address.js +34 -6
  158. package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
  159. package/dist/esm/components/form/fields/form-field-address.labels.d.ts.map +1 -1
  160. package/dist/esm/components/form/fields/form-field-address.labels.js +60 -1
  161. package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
  162. package/dist/esm/components/form/fields/form-field-file.d.ts +0 -12
  163. package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
  164. package/dist/esm/components/form/fields/form-field-file.js +34 -13
  165. package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
  166. package/dist/esm/components/form/fields/form-field-file.labels.d.ts.map +1 -1
  167. package/dist/esm/components/form/fields/form-field-file.labels.js +46 -0
  168. package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
  169. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +73 -0
  170. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -0
  171. package/dist/esm/components/form/fields/form-field-string-organization-role.js +64 -0
  172. package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -0
  173. package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
  174. package/dist/esm/components/form/fields/form-field-string.js +8 -1
  175. package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
  176. package/dist/esm/components/form/fields/form-field-string.labels.d.ts.map +1 -1
  177. package/dist/esm/components/form/fields/form-field-string.labels.js +4 -0
  178. package/dist/esm/components/form/fields/form-field-string.labels.js.map +1 -1
  179. package/dist/esm/components/form/validation-errors/FormErrorSummary.js +1 -1
  180. package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
  181. package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts +31 -0
  182. package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts.map +1 -0
  183. package/dist/esm/components/form/validation-errors/resolver-error-nesting.js +81 -0
  184. package/dist/esm/components/form/validation-errors/resolver-error-nesting.js.map +1 -0
  185. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts +14 -1
  186. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts.map +1 -1
  187. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js +14 -0
  188. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js.map +1 -1
  189. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +22 -0
  190. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
  191. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +1 -22
  192. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
  193. package/dist/esm/components/layout/resizable.d.ts +11 -0
  194. package/dist/esm/components/layout/resizable.d.ts.map +1 -1
  195. package/dist/esm/components/layout/resizable.js.map +1 -1
  196. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts +11 -1
  197. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts.map +1 -1
  198. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js +15 -3
  199. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js.map +1 -1
  200. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts +2 -2
  201. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts.map +1 -1
  202. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.js.map +1 -1
  203. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts +2 -2
  204. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js +2 -2
  205. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js.map +1 -1
  206. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +18 -20
  207. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
  208. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
  209. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +7 -1
  210. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
  211. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
  212. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js +4 -1
  213. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js.map +1 -1
  214. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
  215. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js +18 -2
  216. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
  217. package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
  218. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +82 -10
  219. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
  220. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts +2 -2
  221. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
  222. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js.map +1 -1
  223. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
  224. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +8 -1
  225. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
  226. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +8 -2
  227. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
  228. package/dist/esm/components/resources/ResourceCollectionToolbar.js +6 -2
  229. package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
  230. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
  231. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +31 -16
  232. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
  233. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.d.ts.map +1 -1
  234. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js +23 -8
  235. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js.map +1 -1
  236. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +2 -2
  237. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
  238. package/dist/esm/components/resources/ResourceLayout_Header.d.ts +13 -0
  239. package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
  240. package/dist/esm/components/resources/ResourceLayout_Header.js +55 -28
  241. package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
  242. package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
  243. package/dist/esm/components/resources/ResourceLayout_List.js +41 -20
  244. package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
  245. package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
  246. package/dist/esm/components/resources/ResourceLayout_List.labels.js +1 -2
  247. package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
  248. package/dist/esm/components/resources/ResourceLayout_Read.d.ts +9 -4
  249. package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
  250. package/dist/esm/components/resources/ResourceLayout_Read.js +30 -11
  251. package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
  252. package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
  253. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +4 -2
  254. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
  255. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
  256. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js +6 -2
  257. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
  258. package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
  259. package/dist/esm/components/resources/ResourceLayout_Search.js +30 -14
  260. package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
  261. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
  262. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +14 -198
  263. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
  264. package/dist/esm/components/resources/ResourceLayout_Update.d.ts +2 -2
  265. package/dist/esm/components/resources/ResourceLayout_Update.js +2 -2
  266. package/dist/esm/components/resources/ResourceLayout_Update.js.map +1 -1
  267. package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
  268. package/dist/esm/components/resources/ResourceListItemRenderer.js +69 -39
  269. package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
  270. package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts +32 -0
  271. package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts.map +1 -0
  272. package/dist/esm/components/resources/ResourceOperationActionDropdown.js +130 -0
  273. package/dist/esm/components/resources/ResourceOperationActionDropdown.js.map +1 -0
  274. package/dist/esm/components/resources/collection-create-placement.utils.d.ts +32 -0
  275. package/dist/esm/components/resources/collection-create-placement.utils.d.ts.map +1 -0
  276. package/dist/esm/components/resources/collection-create-placement.utils.js +37 -0
  277. package/dist/esm/components/resources/collection-create-placement.utils.js.map +1 -0
  278. package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
  279. package/dist/esm/components/resources/embeds/RelatedResourcePreview.js +5 -1
  280. package/dist/esm/components/resources/embeds/RelatedResourcePreview.js.map +1 -1
  281. package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts +8 -1
  282. package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
  283. package/dist/esm/components/resources/embeds/RelatedResourceSections.js +49 -2
  284. package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
  285. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +22 -0
  286. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
  287. package/dist/esm/components/resources/embeds/ResourceEmbeds.js +85 -2
  288. package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
  289. package/dist/esm/components/resources/resourceLayout.utils.d.ts +14 -0
  290. package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
  291. package/dist/esm/components/resources/resourceLayout.utils.js +22 -0
  292. package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
  293. package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
  294. package/dist/esm/components/resources/skeleton/ArrayField.js +3 -0
  295. package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
  296. package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
  297. package/dist/esm/components/resources/skeleton/FormLayout.js +33 -1
  298. package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
  299. package/dist/esm/components/resources/skeleton/ObjectScope.d.ts.map +1 -1
  300. package/dist/esm/components/resources/skeleton/ObjectScope.js +3 -0
  301. package/dist/esm/components/resources/skeleton/ObjectScope.js.map +1 -1
  302. package/dist/esm/components/resources/skeleton/Section.d.ts +12 -0
  303. package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
  304. package/dist/esm/components/resources/skeleton/Section.js +28 -2
  305. package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
  306. package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts +70 -0
  307. package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts.map +1 -1
  308. package/dist/esm/components/resources/skeleton/SectionFieldsContext.js +157 -1
  309. package/dist/esm/components/resources/skeleton/SectionFieldsContext.js.map +1 -1
  310. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +6 -0
  311. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
  312. package/dist/esm/components/resources/skeleton/WizardLayout.js +13 -2
  313. package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
  314. package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
  315. package/dist/esm/components/resources/skeleton/WizardStep.js +2 -1
  316. package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
  317. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
  318. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js +61 -15
  319. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
  320. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +24 -2
  321. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
  322. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js +69 -1
  323. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
  324. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
  325. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js +18 -19
  326. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
  327. package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
  328. package/dist/esm/components/sections/ContentSectionContainer.js +5 -4
  329. package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
  330. package/dist/esm/components/sections/stepper.d.ts +5 -0
  331. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  332. package/dist/esm/components/sections/stepper.js.map +1 -1
  333. package/dist/esm/components/sections/surface.d.ts.map +1 -1
  334. package/dist/esm/components/sections/surface.js +12 -3
  335. package/dist/esm/components/sections/surface.js.map +1 -1
  336. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +43 -0
  337. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts.map +1 -0
  338. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +129 -0
  339. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -0
  340. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts +3 -0
  341. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts.map +1 -0
  342. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +34 -0
  343. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -0
  344. package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
  345. package/dist/esm/components/settings/AppPage_AppearanceSettings.js +9 -11
  346. package/dist/esm/components/settings/AppPage_AppearanceSettings.js.map +1 -1
  347. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
  348. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js +3 -2
  349. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js.map +1 -1
  350. package/dist/esm/components/settings/AppPage_BillingSettings.d.ts +4 -2
  351. package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
  352. package/dist/esm/components/settings/AppPage_BillingSettings.js +21 -3
  353. package/dist/esm/components/settings/AppPage_BillingSettings.js.map +1 -1
  354. package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
  355. package/dist/esm/components/settings/AppPage_BillingSettings.labels.js +5 -10
  356. package/dist/esm/components/settings/AppPage_BillingSettings.labels.js.map +1 -1
  357. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +58 -0
  358. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
  359. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +243 -40
  360. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
  361. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
  362. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +67 -6
  363. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
  364. package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
  365. package/dist/esm/components/settings/AppPage_InvitationsSettings.js +19 -11
  366. package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
  367. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
  368. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js +4 -2
  369. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
  370. package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
  371. package/dist/esm/components/settings/SettingsHub.js +3 -0
  372. package/dist/esm/components/settings/SettingsHub.js.map +1 -1
  373. package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
  374. package/dist/esm/components/settings/SettingsResourceOperationPanel.js +16 -1
  375. package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
  376. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +59 -0
  377. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -0
  378. package/dist/esm/components/settings/useOwnerProviderConnections.js +136 -0
  379. package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -0
  380. package/dist/esm/components/views/chart-view/chart-view.utils.d.ts +5 -0
  381. package/dist/esm/components/views/chart-view/chart-view.utils.d.ts.map +1 -1
  382. package/dist/esm/components/views/chart-view/chart-view.utils.js +5 -0
  383. package/dist/esm/components/views/chart-view/chart-view.utils.js.map +1 -1
  384. package/dist/esm/components/views/chart-view/useResourceChartData.d.ts +50 -0
  385. package/dist/esm/components/views/chart-view/useResourceChartData.d.ts.map +1 -0
  386. package/dist/esm/components/views/chart-view/useResourceChartData.js +72 -0
  387. package/dist/esm/components/views/chart-view/useResourceChartData.js.map +1 -0
  388. package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
  389. package/dist/esm/components/views/composite-view/CompositeLayout.js +2 -1
  390. package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
  391. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts +86 -0
  392. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -0
  393. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +187 -0
  394. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -0
  395. package/dist/esm/core/app-shell/PortalContainerContext.d.ts +5 -2
  396. package/dist/esm/core/app-shell/PortalContainerContext.d.ts.map +1 -1
  397. package/dist/esm/core/app-shell/PortalContainerContext.js +5 -2
  398. package/dist/esm/core/app-shell/PortalContainerContext.js.map +1 -1
  399. package/dist/esm/core/app-shell/app-shell.schemas.d.ts +18 -9
  400. package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
  401. package/dist/esm/core/app-shell/app-shell.schemas.js +1 -0
  402. package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
  403. package/dist/esm/core/app-shell/useAppShellLayout.d.ts +10 -0
  404. package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
  405. package/dist/esm/core/app-shell/useAppShellLayout.js +28 -5
  406. package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
  407. package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
  408. package/dist/esm/core/app-shell/usePublicShellLayout.js +38 -0
  409. package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
  410. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +15 -1
  411. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
  412. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +47 -13
  413. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
  414. package/dist/esm/core/billing/BillingContext.d.ts +25 -2
  415. package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
  416. package/dist/esm/core/billing/BillingContext.js +16 -25
  417. package/dist/esm/core/billing/BillingContext.js.map +1 -1
  418. package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts +11 -3
  419. package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
  420. package/dist/esm/core/billing/billing-provider-display.frontend.utils.js +14 -8
  421. package/dist/esm/core/billing/billing-provider-display.frontend.utils.js.map +1 -1
  422. package/dist/esm/core/billing/useBillingPlanChange.d.ts.map +1 -1
  423. package/dist/esm/core/billing/useBillingPlanChange.js +2 -0
  424. package/dist/esm/core/billing/useBillingPlanChange.js.map +1 -1
  425. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
  426. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +1 -0
  427. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
  428. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts +29 -229
  429. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -1
  430. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js +29 -327
  431. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -1
  432. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts +17 -27
  433. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -1
  434. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js +28 -48
  435. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -1
  436. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +21 -11
  437. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
  438. package/dist/esm/core/config/app-configuration-frontend.schemas.js +4 -4
  439. package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
  440. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +17 -0
  441. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
  442. package/dist/esm/core/config/app-level-components.frontend.schemas.js +17 -0
  443. package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
  444. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +10 -10
  445. package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
  446. package/dist/esm/core/config/engine-settings-destinations.js +221 -6
  447. package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
  448. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +8 -0
  449. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
  450. package/dist/esm/core/config/launcher-items.frontend.schemas.js +1 -0
  451. package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
  452. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +10 -1
  453. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
  454. package/dist/esm/core/config/settings-hub.frontend.schemas.js +9 -0
  455. package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
  456. package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
  457. package/dist/esm/core/config/verify-launcher-content.js +30 -19
  458. package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
  459. package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
  460. package/dist/esm/core/errors/ErrorContext.js +9 -1
  461. package/dist/esm/core/errors/ErrorContext.js.map +1 -1
  462. package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
  463. package/dist/esm/core/errors/GlobalErrorHandler.js +5 -4
  464. package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
  465. package/dist/esm/core/errors/RouterErrorBoundary.js +1 -1
  466. package/dist/esm/core/errors/RouterErrorBoundary.js.map +1 -1
  467. package/dist/esm/core/errors/errors-builder.frontend.services.d.ts +2 -2
  468. package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
  469. package/dist/esm/core/errors/errors-builder.frontend.services.js +4 -4
  470. package/dist/esm/core/errors/errors-builder.frontend.services.js.map +1 -1
  471. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +1 -1
  472. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
  473. package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
  474. package/dist/esm/core/events/NotificationContext.js +23 -5
  475. package/dist/esm/core/events/NotificationContext.js.map +1 -1
  476. package/dist/esm/core/events/events.frontend.schemas.d.ts +110 -43
  477. package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
  478. package/dist/esm/core/events/events.frontend.schemas.js +89 -15
  479. package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
  480. package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts +2 -0
  481. package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
  482. package/dist/esm/core/execution/useExecutionParticipationRMM.js +2 -1
  483. package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
  484. package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts +1 -1
  485. package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
  486. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +5 -2
  487. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
  488. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts +63 -0
  489. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts.map +1 -0
  490. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js +131 -0
  491. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js.map +1 -0
  492. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts +61 -0
  493. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts.map +1 -0
  494. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js +178 -0
  495. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js.map +1 -0
  496. package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts +52 -0
  497. package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts.map +1 -0
  498. package/dist/esm/core/external-providers/ProviderAddressLookupHost.js +144 -0
  499. package/dist/esm/core/external-providers/ProviderAddressLookupHost.js.map +1 -0
  500. package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts +22 -1
  501. package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -1
  502. package/dist/esm/core/external-providers/ProviderFilePickerHost.js +23 -3
  503. package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -1
  504. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts +55 -0
  505. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts.map +1 -0
  506. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js +65 -0
  507. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js.map +1 -0
  508. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +63 -0
  509. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -0
  510. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +100 -0
  511. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -0
  512. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +45 -7
  513. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
  514. package/dist/esm/core/flows-actors/FlowsActorsContext.js +112 -28
  515. package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
  516. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +32 -0
  517. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -0
  518. package/dist/esm/core/flows-actors/usePendingDecisions.js +91 -0
  519. package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -0
  520. package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
  521. package/dist/esm/core/guidance/GuidanceRenderer.js +3 -2
  522. package/dist/esm/core/guidance/GuidanceRenderer.js.map +1 -1
  523. package/dist/esm/core/i18n/I18nContext.d.ts +22 -8
  524. package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
  525. package/dist/esm/core/i18n/I18nContext.js +21 -9
  526. package/dist/esm/core/i18n/I18nContext.js.map +1 -1
  527. package/dist/esm/core/i18n/component-label-resolution.utils.d.ts +5 -3
  528. package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
  529. package/dist/esm/core/i18n/component-label-resolution.utils.js +5 -3
  530. package/dist/esm/core/i18n/component-label-resolution.utils.js.map +1 -1
  531. package/dist/esm/core/i18n/useI18n.d.ts +2 -1
  532. package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
  533. package/dist/esm/core/i18n/useI18n.js +2 -1
  534. package/dist/esm/core/i18n/useI18n.js.map +1 -1
  535. package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
  536. package/dist/esm/core/loading/LoadingContext.js +7 -1
  537. package/dist/esm/core/loading/LoadingContext.js.map +1 -1
  538. package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
  539. package/dist/esm/core/loading/LoadingGate.js +19 -1
  540. package/dist/esm/core/loading/LoadingGate.js.map +1 -1
  541. package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts +15 -2
  542. package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
  543. package/dist/esm/core/monitoring/analytics/AnalyticsContext.js +183 -20
  544. package/dist/esm/core/monitoring/analytics/AnalyticsContext.js.map +1 -1
  545. package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js +2 -2
  546. package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js.map +1 -1
  547. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts +7 -15
  548. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts.map +1 -1
  549. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js +8 -26
  550. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js.map +1 -1
  551. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts +12 -3
  552. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts.map +1 -1
  553. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js +3 -2
  554. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js.map +1 -1
  555. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts +42 -0
  556. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
  557. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +89 -5
  558. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
  559. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts +2 -0
  560. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
  561. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js +2 -0
  562. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js.map +1 -1
  563. package/dist/esm/core/navigation/NavigationContentAreas.d.ts +78 -0
  564. package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
  565. package/dist/esm/core/navigation/NavigationContentAreas.js +264 -16
  566. package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
  567. package/dist/esm/core/navigation/NavigationContext.d.ts +8 -0
  568. package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
  569. package/dist/esm/core/navigation/NavigationContext.js +137 -30
  570. package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
  571. package/dist/esm/core/navigation/launcher-resolution.d.ts +2 -0
  572. package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
  573. package/dist/esm/core/navigation/launcher-resolution.js +1 -0
  574. package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
  575. package/dist/esm/core/navigation/navigation-cascade.d.ts +46 -0
  576. package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -0
  577. package/dist/esm/core/navigation/navigation-cascade.js +222 -0
  578. package/dist/esm/core/navigation/navigation-cascade.js.map +1 -0
  579. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.d.ts.map +1 -1
  580. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js +21 -2
  581. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js.map +1 -1
  582. package/dist/esm/core/navigation/navigation-controller-internals.d.ts +71 -0
  583. package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -0
  584. package/dist/esm/core/navigation/navigation-controller-internals.js +84 -0
  585. package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -0
  586. package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +86 -2
  587. package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
  588. package/dist/esm/core/navigation/navigation-policy-resolver.service.js +242 -124
  589. package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
  590. package/dist/esm/core/navigation/navigation.schemas.d.ts +170 -8
  591. package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
  592. package/dist/esm/core/navigation/navigation.schemas.js +121 -2
  593. package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
  594. package/dist/esm/core/navigation/navigation.utils.d.ts +102 -6
  595. package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
  596. package/dist/esm/core/navigation/navigation.utils.js +283 -34
  597. package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
  598. package/dist/esm/core/navigation/useIsStackEntryActive.d.ts +0 -10
  599. package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +0 -1
  600. package/dist/esm/core/navigation/useIsStackEntryActive.js.map +0 -1
  601. package/dist/esm/core/navigation/useNavigationController.d.ts +28 -157
  602. package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
  603. package/dist/esm/core/navigation/useNavigationController.js +211 -1189
  604. package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
  605. package/dist/esm/core/navigation/useNavigationRouterSync.d.ts +174 -0
  606. package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -0
  607. package/dist/esm/core/navigation/useNavigationRouterSync.js +977 -0
  608. package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -0
  609. package/dist/esm/core/navigation/useOverlayTitle.d.ts +13 -1
  610. package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
  611. package/dist/esm/core/navigation/useOverlayTitle.js +15 -10
  612. package/dist/esm/core/navigation/useOverlayTitle.js.map +1 -1
  613. package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts +43 -0
  614. package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts.map +1 -0
  615. package/dist/esm/core/navigation/useResponsiveZoneMigration.js +44 -0
  616. package/dist/esm/core/navigation/useResponsiveZoneMigration.js.map +1 -0
  617. package/dist/esm/core/navigation/zone-collapse-migration.d.ts +83 -0
  618. package/dist/esm/core/navigation/zone-collapse-migration.d.ts.map +1 -0
  619. package/dist/esm/core/navigation/zone-collapse-migration.js +116 -0
  620. package/dist/esm/core/navigation/zone-collapse-migration.js.map +1 -0
  621. package/dist/esm/core/navigation/zone-collapse.d.ts +51 -0
  622. package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -0
  623. package/dist/esm/core/navigation/zone-collapse.js +59 -0
  624. package/dist/esm/core/navigation/zone-collapse.js.map +1 -0
  625. package/dist/esm/core/navigation/zone-emphasis.d.ts +3 -0
  626. package/dist/esm/core/navigation/zone-emphasis.d.ts.map +1 -1
  627. package/dist/esm/core/navigation/zone-emphasis.js +26 -4
  628. package/dist/esm/core/navigation/zone-emphasis.js.map +1 -1
  629. package/dist/esm/core/navigation/zone-visible-entry.d.ts +22 -0
  630. package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -1
  631. package/dist/esm/core/navigation/zone-visible-entry.js +25 -0
  632. package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -1
  633. package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
  634. package/dist/esm/core/requests/websockets/WebSocketContext.js +53 -18
  635. package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
  636. package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
  637. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js +3 -1
  638. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
  639. package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts +22 -0
  640. package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
  641. package/dist/esm/core/requests/websockets/useNotificationBadges.js +72 -3
  642. package/dist/esm/core/requests/websockets/useNotificationBadges.js.map +1 -1
  643. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts +28 -0
  644. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts.map +1 -0
  645. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js +86 -0
  646. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js.map +1 -0
  647. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +38 -3
  648. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
  649. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +57 -2
  650. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
  651. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
  652. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +4 -2
  653. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
  654. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +30 -1
  655. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
  656. package/dist/esm/core/requests/wildo-http-client.frontend.service.js +47 -4
  657. package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
  658. package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
  659. package/dist/esm/core/resources/ResourceRegistryContext.js +22 -1
  660. package/dist/esm/core/resources/ResourceRegistryContext.js.map +1 -1
  661. package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js +1 -1
  662. package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js.map +1 -1
  663. package/dist/esm/core/resources/frontend-resource.utils.d.ts +22 -1
  664. package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
  665. package/dist/esm/core/resources/frontend-resource.utils.js +25 -2
  666. package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
  667. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +113 -13
  668. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
  669. package/dist/esm/core/resources/operation-semantics.frontend.utils.js +173 -20
  670. package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
  671. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts +11 -0
  672. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
  673. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js +7 -0
  674. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js.map +1 -1
  675. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts +3 -2
  676. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts.map +1 -1
  677. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js +13 -5
  678. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js.map +1 -1
  679. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +6 -0
  680. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
  681. package/dist/esm/core/resources/resources-repository.frontend.service.js +90 -1
  682. package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
  683. package/dist/esm/core/resources/resources.frontend.schemas.d.ts +139 -16
  684. package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
  685. package/dist/esm/core/resources/resources.frontend.schemas.js +110 -11
  686. package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
  687. package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
  688. package/dist/esm/core/resources/rmm/ResourceMutationManager.js +3 -1
  689. package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
  690. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +10 -0
  691. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
  692. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js +8 -0
  693. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
  694. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +7 -0
  695. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
  696. package/dist/esm/core/resources/rmm/useResourceRMM.js +9 -2
  697. package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
  698. package/dist/esm/core/resources/useOperationDirectExecution.d.ts +59 -0
  699. package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -0
  700. package/dist/esm/core/resources/useOperationDirectExecution.js +278 -0
  701. package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -0
  702. package/dist/esm/core/resources/useResourceOperationActions.d.ts +1 -1
  703. package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
  704. package/dist/esm/core/resources/useResourceOperationActions.js +69 -22
  705. package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
  706. package/dist/esm/core/resources/useResourceOperationSurface.d.ts +8 -6
  707. package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
  708. package/dist/esm/core/resources/useResourceOperationSurface.js +3 -2
  709. package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
  710. package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
  711. package/dist/esm/core/runtime/AppRouter.js +23 -2
  712. package/dist/esm/core/runtime/AppRouter.js.map +1 -1
  713. package/dist/esm/core/runtime/ApplicationContext.shared.d.ts +4 -2
  714. package/dist/esm/core/runtime/ApplicationContext.shared.d.ts.map +1 -1
  715. package/dist/esm/core/runtime/ApplicationContext.shared.js.map +1 -1
  716. package/dist/esm/core/runtime/ApplicationMainContext.d.ts +12 -2
  717. package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
  718. package/dist/esm/core/runtime/ApplicationMainContext.js +5 -2
  719. package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
  720. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +25 -1
  721. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
  722. package/dist/esm/core/runtime/domain-module.frontend.definitions.js +37 -1
  723. package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
  724. package/dist/esm/core/runtime/start-application.frontend.service.d.ts +21 -2
  725. package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
  726. package/dist/esm/core/runtime/start-application.frontend.service.js +51 -4
  727. package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
  728. package/dist/esm/core/security/AuthSessionContext.d.ts +11 -0
  729. package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
  730. package/dist/esm/core/security/AuthSessionContext.js +70 -22
  731. package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
  732. package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
  733. package/dist/esm/core/security/StepUpAuthContext.js +10 -2
  734. package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
  735. package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
  736. package/dist/esm/core/security/UserOrgsContext.js +72 -8
  737. package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
  738. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +7 -0
  739. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
  740. package/dist/esm/core/security/route-organization-access.frontend.utils.js +8 -2
  741. package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
  742. package/dist/esm/core/security/useGrantedConsentPurposes.d.ts +30 -0
  743. package/dist/esm/core/security/useGrantedConsentPurposes.d.ts.map +1 -0
  744. package/dist/esm/core/security/useGrantedConsentPurposes.js +38 -0
  745. package/dist/esm/core/security/useGrantedConsentPurposes.js.map +1 -0
  746. package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
  747. package/dist/esm/core/ui/UIContext.js +10 -6
  748. package/dist/esm/core/ui/UIContext.js.map +1 -1
  749. package/dist/esm/core/ui/color-conversion.utils.d.ts +20 -0
  750. package/dist/esm/core/ui/color-conversion.utils.d.ts.map +1 -1
  751. package/dist/esm/core/ui/color-conversion.utils.js +39 -5
  752. package/dist/esm/core/ui/color-conversion.utils.js.map +1 -1
  753. package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
  754. package/dist/esm/core/ui/themes/default.theme.js +22 -2
  755. package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
  756. package/dist/esm/core/ui/ui.frontend.schemas.d.ts +6 -6
  757. package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
  758. package/dist/esm/core/ui/ui.frontend.schemas.js +3 -3
  759. package/dist/esm/core/ui/ui.frontend.schemas.js.map +1 -1
  760. package/dist/esm/index.d.ts +10 -1
  761. package/dist/esm/index.d.ts.map +1 -1
  762. package/dist/esm/index.js +19 -1
  763. package/dist/esm/index.js.map +1 -1
  764. package/dist/esm/testing/app-shell-placement-coverage.d.ts +43 -0
  765. package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -0
  766. package/dist/esm/testing/app-shell-placement-coverage.js +114 -0
  767. package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -0
  768. package/dist/esm/testing/mock-builders.d.ts.map +1 -1
  769. package/dist/esm/testing/mock-builders.js +5 -0
  770. package/dist/esm/testing/mock-builders.js.map +1 -1
  771. package/dist/esm/testing.d.ts +1 -0
  772. package/dist/esm/testing.d.ts.map +1 -1
  773. package/dist/esm/testing.js +1 -0
  774. package/dist/esm/testing.js.map +1 -1
  775. package/package.json +9 -7
  776. package/dist/esm/core/navigation/useIsStackEntryActive.js +0 -15
  777. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -1,3 +1,4 @@
1
+ import { z } from 'zod';
1
2
  import { CoreResourceOperation, ResourceOperationFrontendSurface, NavigationTransition } from '@wildo-ai/saas-models';
2
3
  import { ResourceOperationActionPresentation, ResourceOperationActionScope } from '../../core/resources/resources.frontend.schemas';
3
4
  export interface ResourceOperationSemanticsLike {
@@ -8,6 +9,8 @@ export interface ResourceOperationSemanticsLike {
8
9
  isOperationDefault?: boolean;
9
10
  isBulkOperation?: boolean;
10
11
  variantKey?: unknown;
12
+ /** Read only by the DROPDOWN rule: a pick that executes cannot also be a deliberate, confirmed act. */
13
+ riskLevel?: unknown;
11
14
  /**
12
15
  * The subset of `ResourceOperationFrontendConfig` this module's decisions read.
13
16
  *
@@ -28,16 +31,48 @@ export interface ResourceOperationSemanticsLike {
28
31
  };
29
32
  }
30
33
  export declare const BULK_OPERATION_SELECTION_IDS_CONTEXT_KEY = "bulkOperationSelectionIds";
34
+ /**
35
+ * The operation-context key carrying a CROSS-PAGE selection ("select all N matching") to whatever host
36
+ * presents a bulk action's form — the sibling of {@link BULK_OPERATION_SELECTION_IDS_CONTEXT_KEY}.
37
+ *
38
+ * A form-bearing bulk action (one that asks for a value, like "Change status") is executed by the
39
+ * form host, which adds the selection through {@link mergeBulkSelectionIntoRequestData}. That merge
40
+ * read only the id key, so a cross-page selection never reached it and the request went out with no
41
+ * selection but the form's own empty `_match` (#1461, #2035 run 2026-09-30).
42
+ */
43
+ export declare const BULK_OPERATION_MATCH_SELECTION_CONTEXT_KEY = "bulkOperationMatchSelection";
31
44
  export declare const RESOURCE_OPERATION_EXECUTED_DISCRIMINATOR_CONTEXT_KEY = "resourceOperationExecutedDiscriminator";
32
45
  export type ResourceOperationLayoutKind = 'create' | 'list' | 'read' | 'update' | 'search' | 'action';
33
46
  export declare function isLiteralCoreResourceOperation(operationIdentifier: unknown): operationIdentifier is CoreResourceOperation;
34
47
  export declare function resolveEffectiveCoreOperation(operationIdentifier: unknown, resourceOperationLike?: unknown): CoreResourceOperation | undefined;
35
48
  export declare function resolveEffectiveCoreOperationFromOperation(operation: ResourceOperationSemanticsLike): CoreResourceOperation | undefined;
36
49
  export declare function matchesResourceOperationSemantic(operation: ResourceOperationSemanticsLike, coreOperation: CoreResourceOperation): boolean;
50
+ /**
51
+ * The operation whose generated TITLE names a surface that shows `operationIdentifier` — the page header and
52
+ * the overlay (dialog, sheet, tab) title alike, which must agree.
53
+ *
54
+ * The core EDIT surface is titled like the record's own page. UPDATE's title is generated as the name of an
55
+ * ACTION, a button word ("Update preferences", "Save changes"), while READ's is generated as a HEADING naming
56
+ * the surface ("Preferences"). An edit page headed by a verb names the button below it rather than the thing
57
+ * being edited, and the form's own save button already says the verb. So when the resource has a READ, the
58
+ * core UPDATE — including its polymorphic variants, which keep the `update` identifier — takes READ's title.
59
+ *
60
+ * Keyed on the literal identifier, NOT on the effective core semantics: a custom operation that BEHAVES like
61
+ * an update (`claimDomain`, `reset_to_defaults`) is a named action, and its own title is the only word that
62
+ * says which action the surface performs. A resource with no READ keeps UPDATE's title, the only word it has.
63
+ */
64
+ export declare function resolveSurfaceTitleOperationIdentifier(operationIdentifier: unknown, resourceOperations: ReadonlyArray<{
65
+ operationIdentifier: unknown;
66
+ }> | undefined): string;
37
67
  export declare function isUpdateLikeCoreOperation(coreOperation: CoreResourceOperation | undefined): boolean;
38
68
  export declare function isSingleResourceUpdateLikeOperation(operation: ResourceOperationSemanticsLike): boolean;
39
69
  export declare function shouldEmitResourceRefreshAfterDirectOperation(operation: ResourceOperationSemanticsLike): boolean;
40
70
  export declare function readBulkOperationSelectionIds(additionalContext?: Record<string, unknown>): string[] | undefined;
71
+ /** The cross-page selection an operation context carries, when "select all N matching" was chosen. */
72
+ export declare function readBulkOperationMatchSelection(additionalContext?: Record<string, unknown>): {
73
+ filters?: Record<string, unknown>;
74
+ search?: string;
75
+ } | undefined;
41
76
  export declare function readResourceOperationExecutedDiscriminator(additionalContext?: Record<string, unknown>): string | undefined;
42
77
  /**
43
78
  * Build the wire selector a bulk operation uses to name the rows it targets.
@@ -84,7 +119,7 @@ export declare function mergeBulkSelectionIntoRequestData(params: {
84
119
  export declare function isSemanticCustomResourceOperation(operation: ResourceOperationSemanticsLike): boolean;
85
120
  export declare function isGeneratedFileRegenerateOperation(operation: ResourceOperationSemanticsLike): boolean;
86
121
  /**
87
- * Is this the CSV/JSON export companion of a LIST/SEARCH operation?
122
+ * Is this the file-export companion of a LIST/SEARCH operation?
88
123
  *
89
124
  * Identity comes from the generated-operation metadata, with the prefixed identifier as the fallback
90
125
  * for any surface that receives a thinned operation object — the same two-source shape
@@ -175,7 +210,7 @@ export declare const ACTION_MODAL_FIELD_CEILING = 6;
175
210
  * an overlay.
176
211
  *
177
212
  * Two, and the reasoning is the one this axis's `POPOVER` member already states: the anchored panel
178
- * is the single-input idiom ("assign to…", "change status to…", "snooze until…"), and it earns its
213
+ * is the small-input idiom ("snooze until…", "reject with a reason…"), and it earns its
179
214
  * place by keeping the row the user is acting on visible. A third control starts wanting the room a
180
215
  * dialog has, and the panel stops being cheaper than one.
181
216
  *
@@ -203,13 +238,67 @@ export declare function hasEmptyResourceOperationRequestBody(requestDto: unknown
203
238
  * from one surface and open an empty form on another.
204
239
  */
205
240
  export declare function operationCollectsNoCallerInput(operation: ResourceOperationSemanticsLike): boolean;
241
+ /**
242
+ * Does this risk level ask for a confirmation before the operation runs?
243
+ *
244
+ * HIGH and CRITICAL do (a plain confirm, and a typed one); LOW and MEDIUM execute on click. The one
245
+ * definition the action ladder's confirm dialog and the DROPDOWN rule both read, so "risky enough to
246
+ * confirm" and "too risky to execute on a pick" cannot come to mean two different sets.
247
+ */
248
+ export declare function isRiskyResourceOperation(riskLevel: unknown): boolean;
249
+ /**
250
+ * The kind of domain a DROPDOWN lists — the two a person can pick from without typing a value.
251
+ *
252
+ * Two members because the lists are genuinely different things: an enum's values are CLOSED and
253
+ * known up front, so they are listed whole; a reference's candidates are records on the server, so
254
+ * they are SEARCHED as you type and scoped like the form's picker. A boolean is deliberately absent —
255
+ * a two-item menu for yes/no is a worse control than the toggle it would replace.
256
+ */
257
+ export declare enum ResourceOperationChoiceDomain {
258
+ /** A closed enum — every value listed, labelled as the form labels it. */
259
+ ENUM = "enum",
260
+ /** A foreign key — the referenced records, searched server-side. */
261
+ REFERENCE = "reference"
262
+ }
263
+ /** The single field a DROPDOWN presents, and which kind of list it needs. */
264
+ export interface ResourceOperationDropdownChoice {
265
+ /** The request field the pick is written to. */
266
+ fieldName: string;
267
+ /** That field's schema as the request DTO declares it (decorators intact). */
268
+ fieldSchema: z.ZodTypeAny;
269
+ domain: ResourceOperationChoiceDomain;
270
+ }
271
+ /**
272
+ * The one choice field this operation's input consists of, or `undefined` when its input is
273
+ * anything else.
274
+ *
275
+ * Qualifies only when, after the keys the host supplies itself (a bulk twin's `_ids`), EXACTLY ONE
276
+ * field remains and it is a single enum or a single foreign key. An array is refused: picking one
277
+ * item of a multi-pick and executing is not what the field asks for.
278
+ *
279
+ * Reads the schema structurally, like every other rule in this module, so the answer cannot
280
+ * disagree with the form the same operation would otherwise render.
281
+ */
282
+ export declare function resolveResourceOperationDropdownChoice(operation: ResourceOperationSemanticsLike): ResourceOperationDropdownChoice | undefined;
283
+ /**
284
+ * Can this operation honestly present as a DROPDOWN — one choice field, one row, and no confirmation
285
+ * owed?
286
+ *
287
+ * All three are correctness constraints, not taste. Without a single choice field there is no list to
288
+ * show. A pick executes immediately, so an operation whose risk level asks for a confirmation would
289
+ * lose it. And a BULK twin writes every selected row: one stray pick in a menu would rewrite them all
290
+ * with no second step, which is the one place "the pick is the submission" is the wrong promise. Each
291
+ * of those keeps the anchored FORM, which has an explicit Submit.
292
+ */
293
+ export declare function operationCanPresentAsDropdown(operation: ResourceOperationSemanticsLike): boolean;
206
294
  /**
207
295
  * HOW does this action collect its input?
208
296
  *
209
297
  * The single answer for every action surface. An explicitly authored
210
- * {@link ResourceOperationActionPresentation} is returned untouched — the author has answered the
211
- * question and the framework does not second-guess them. Everything below is the DERIVATION for the
212
- * (overwhelmingly common) case where nothing was authored.
298
+ * {@link ResourceOperationActionPresentation} is returned as authored — the author has answered the
299
+ * question and the framework does not second-guess their TASTE — with ONE correctness exception: a
300
+ * DROPDOWN the operation cannot honestly be resolves to POPOVER (see below). Everything else is the
301
+ * DERIVATION for the (overwhelmingly common) case where nothing was authored.
213
302
  *
214
303
  * The derivation is ordered by how strong the evidence is, not by convenience:
215
304
  *
@@ -225,14 +314,24 @@ export declare function operationCollectsNoCallerInput(operation: ResourceOperat
225
314
  * a second mechanism, not a vocabulary.
226
315
  * 4. **No caller input ⇒ DIRECT.** No `requestDto` at all, an explicit `z.object({})`, or a bulk
227
316
  * body holding only the selector the host fills ({@link operationCollectsNoCallerInput}).
228
- * 5. **One or two simple inputs ⇒ POPOVER.** An anchored panel beside the button that asked for
317
+ * 5. **One choice from an enum or a reference, and no confirmation owed ⇒ DROPDOWN.** The pick is
318
+ * the submission, so the list of values IS the whole input ({@link operationCanPresentAsDropdown}).
319
+ * 6. **One or two simple inputs ⇒ POPOVER.** An anchored panel beside the button that asked for
229
320
  * them, so the row being acted on stays visible.
230
- * 6. **Input that fits an overlay ⇒ MODAL.**
231
- * 7. **Everything else ⇒ PAGE.** Files, nested writes, large field sets — and the honest fallback
321
+ * 7. **Input that fits an overlay ⇒ MODAL.**
322
+ * 8. **Everything else ⇒ PAGE.** Files, nested writes, large field sets — and the honest fallback
232
323
  * for a `requestDto` this code cannot introspect (a thinned projection), because refusing to
233
324
  * guess returns the behaviour the operation had before.
234
325
  *
235
- * ## Why step 5 is DERIVED, when it used to be authored-only
326
+ * ## An authored DROPDOWN that cannot be one resolves to POPOVER
327
+ *
328
+ * The only authored answer this function overrides, and for the same reason the click handler
329
+ * refuses a non-navigating presentation on a zero-input update-like action: honouring it would be
330
+ * wrong, not merely ugly. A DROPDOWN over two fields has no list to show, and one over a CRITICAL
331
+ * operation would execute without the typed confirmation every other surface demands. POPOVER is the
332
+ * nearest honest answer — the same anchored panel, holding the form with its Submit.
333
+ *
334
+ * ## Why step 6 is DERIVED, when it used to be authored-only
236
335
  *
237
336
  * This function returned `MODAL` for every small input and left `POPOVER` to authors, on the
238
337
  * reasoning that an anchored panel is a claim about the surrounding context — that the trigger is
@@ -243,9 +342,10 @@ export declare function operationCollectsNoCallerInput(operation: ResourceOperat
243
342
  * already degrades when it cannot: an item collapsed into the overflow menu or nested in a subgroup
244
343
  * takes its `onClick`, which `resolveActionPresentationTransition` maps to an OVERLAY — the same
245
344
  * chrome `MODAL` would have produced. So the cost of deriving the panel is zero where it cannot be
246
- * drawn, and the cost of NOT deriving it was that every one-field action in every application —
247
- * "change status to…", "assign to…" — covered the list it was acting on with a dialog, and the only
248
- * way out was to author the axis per operation.
345
+ * drawn, and the cost of NOT deriving it was that every small action in every application —
346
+ * "snooze until…", "reject with a reason…" — covered the list it was acting on with a dialog, and the
347
+ * only way out was to author the axis per operation. (The one-CHOICE actions — "change status to…",
348
+ * "assign to…" — have since moved one step earlier, to DROPDOWN.)
249
349
  *
250
350
  * `INLINE` stays authored-only, and the asymmetry is the point: its claim is about the ELEMENT (the
251
351
  * thing being acted on is a row that can transform in place), and its degrade target is an overlay
@@ -256,7 +356,7 @@ export declare function resolveResourceOperationActionPresentation(operation: Re
256
356
  /**
257
357
  * Does this presentation reach the NAVIGATION layer, or does the action layer own it end to end?
258
358
  *
259
- * `MODAL` and `PAGE` are destinations. `DIRECT`, `POPOVER` and `INLINE` are not: nothing is pushed,
359
+ * `MODAL` and `PAGE` are destinations. `DIRECT`, `POPOVER`, `DROPDOWN` and `INLINE` are not: nothing is pushed,
260
360
  * no zone changes, and there is nothing for a back button to pop — routing them through navigation
261
361
  * would mint zone entries for chrome that does not live in a zone.
262
362
  *
@@ -1 +1 @@
1
- {"version":3,"file":"operation-semantics.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/resources/operation-semantics.frontend.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation-semantics.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/resources/operation-semantics.frontend.utils.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,18 @@
1
1
  import { z } from 'zod';
2
- import { isFileSchema, unwrapSchema } from '@wildo-ai/zod-decorators';
3
- import { BULK_OPERATION_MATCH_FIELD, BULK_OPERATION_SELECTOR_FIELD, COLLECTION_OPERATIONS_WITHOUT_IDS, CoreResourceOperation, ResourceGeneratedOperationKind, ResourceOperationVariantType, ResourceOperationFrontendSurface, NavigationTransition, Resources_SharedUtils, } from '@wildo-ai/saas-models';
2
+ import { FieldSchemaType, getSchemaType, isFileSchema, isForeignKeyField, unwrapSchema } from '@wildo-ai/zod-decorators';
3
+ import { BULK_OPERATION_HOST_SUPPLIED_FIELDS, BULK_OPERATION_MATCH_FIELD, BULK_OPERATION_SELECTOR_FIELD, COLLECTION_OPERATIONS_WITHOUT_IDS, CoreResourceOperation, ResourceGeneratedOperationKind, ResourceOperationVariantType, ResourceOperationFrontendSurface, ResourceOperationRiskLevel, NavigationTransition, Resources_SharedUtils, } from '@wildo-ai/saas-models';
4
4
  import { isCollectionScopedOperation, ResourceOperationActionPresentation, ResourceOperationActionScope, } from '../../core/resources/resources.frontend.schemas.js';
5
5
  export const BULK_OPERATION_SELECTION_IDS_CONTEXT_KEY = 'bulkOperationSelectionIds';
6
+ /**
7
+ * The operation-context key carrying a CROSS-PAGE selection ("select all N matching") to whatever host
8
+ * presents a bulk action's form — the sibling of {@link BULK_OPERATION_SELECTION_IDS_CONTEXT_KEY}.
9
+ *
10
+ * A form-bearing bulk action (one that asks for a value, like "Change status") is executed by the
11
+ * form host, which adds the selection through {@link mergeBulkSelectionIntoRequestData}. That merge
12
+ * read only the id key, so a cross-page selection never reached it and the request went out with no
13
+ * selection but the form's own empty `_match` (#1461, #2035 run 2026-09-30).
14
+ */
15
+ export const BULK_OPERATION_MATCH_SELECTION_CONTEXT_KEY = 'bulkOperationMatchSelection';
6
16
  export const RESOURCE_OPERATION_EXECUTED_DISCRIMINATOR_CONTEXT_KEY = 'resourceOperationExecutedDiscriminator';
7
17
  export function isLiteralCoreResourceOperation(operationIdentifier) {
8
18
  return Object.values(CoreResourceOperation).includes(operationIdentifier);
@@ -22,6 +32,27 @@ export function resolveEffectiveCoreOperationFromOperation(operation) {
22
32
  export function matchesResourceOperationSemantic(operation, coreOperation) {
23
33
  return resolveEffectiveCoreOperationFromOperation(operation) === coreOperation;
24
34
  }
35
+ /**
36
+ * The operation whose generated TITLE names a surface that shows `operationIdentifier` — the page header and
37
+ * the overlay (dialog, sheet, tab) title alike, which must agree.
38
+ *
39
+ * The core EDIT surface is titled like the record's own page. UPDATE's title is generated as the name of an
40
+ * ACTION, a button word ("Update preferences", "Save changes"), while READ's is generated as a HEADING naming
41
+ * the surface ("Preferences"). An edit page headed by a verb names the button below it rather than the thing
42
+ * being edited, and the form's own save button already says the verb. So when the resource has a READ, the
43
+ * core UPDATE — including its polymorphic variants, which keep the `update` identifier — takes READ's title.
44
+ *
45
+ * Keyed on the literal identifier, NOT on the effective core semantics: a custom operation that BEHAVES like
46
+ * an update (`claimDomain`, `reset_to_defaults`) is a named action, and its own title is the only word that
47
+ * says which action the surface performs. A resource with no READ keeps UPDATE's title, the only word it has.
48
+ */
49
+ export function resolveSurfaceTitleOperationIdentifier(operationIdentifier, resourceOperations) {
50
+ if (operationIdentifier === CoreResourceOperation.UPDATE
51
+ && resourceOperations?.some((candidate) => candidate.operationIdentifier === CoreResourceOperation.READ)) {
52
+ return CoreResourceOperation.READ;
53
+ }
54
+ return String(operationIdentifier);
55
+ }
25
56
  export function isUpdateLikeCoreOperation(coreOperation) {
26
57
  return coreOperation === CoreResourceOperation.UPDATE
27
58
  || coreOperation === CoreResourceOperation.UPDATE_MANY;
@@ -55,6 +86,20 @@ export function readBulkOperationSelectionIds(additionalContext) {
55
86
  const ids = value.filter((candidate) => typeof candidate === 'string');
56
87
  return ids.length > 0 ? ids : undefined;
57
88
  }
89
+ /** The cross-page selection an operation context carries, when "select all N matching" was chosen. */
90
+ export function readBulkOperationMatchSelection(additionalContext) {
91
+ const value = additionalContext?.[BULK_OPERATION_MATCH_SELECTION_CONTEXT_KEY];
92
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
93
+ return undefined;
94
+ }
95
+ const candidate = value;
96
+ return {
97
+ ...(candidate.filters && typeof candidate.filters === 'object' && !Array.isArray(candidate.filters)
98
+ ? { filters: candidate.filters }
99
+ : {}),
100
+ ...(typeof candidate.search === 'string' && candidate.search !== '' ? { search: candidate.search } : {}),
101
+ };
102
+ }
58
103
  export function readResourceOperationExecutedDiscriminator(additionalContext) {
59
104
  const value = additionalContext?.[RESOURCE_OPERATION_EXECUTED_DISCRIMINATOR_CONTEXT_KEY];
60
105
  return typeof value === 'string' && value.length > 0 ? value : undefined;
@@ -107,12 +152,22 @@ export function mergeBulkSelectionIntoRequestData(params) {
107
152
  if (params.operation.isBulkOperation !== true) {
108
153
  return params.requestData;
109
154
  }
155
+ // The selector is the COLLECTION's to write, never the form's. Whatever the form's values carry
156
+ // under a selector key is dropped first, so an empty `_match: {}` a form happened to hold can never
157
+ // stand in for — or sit beside — the selection the person actually made.
158
+ const formValues = params.requestData
159
+ ? Object.fromEntries(Object.entries(params.requestData).filter(([key]) => !BULK_OPERATION_HOST_SUPPLIED_FIELDS.includes(key)))
160
+ : undefined;
161
+ const match = readBulkOperationMatchSelection(params.additionalContext);
162
+ if (match) {
163
+ return { ...(formValues ?? {}), ...buildBulkOperationMatchPayload(match) };
164
+ }
110
165
  const ids = readBulkOperationSelectionIds(params.additionalContext);
111
166
  if (!ids || ids.length === 0) {
112
- return params.requestData;
167
+ return formValues;
113
168
  }
114
169
  return {
115
- ...(params.requestData ?? {}),
170
+ ...(formValues ?? {}),
116
171
  ...buildBulkOperationSelectorPayload(ids),
117
172
  };
118
173
  }
@@ -127,7 +182,7 @@ export function isGeneratedFileRegenerateOperation(operation) {
127
182
  && resolveEffectiveCoreOperationFromOperation(operation) === CoreResourceOperation.UPDATE);
128
183
  }
129
184
  /**
130
- * Is this the CSV/JSON export companion of a LIST/SEARCH operation?
185
+ * Is this the file-export companion of a LIST/SEARCH operation?
131
186
  *
132
187
  * Identity comes from the generated-operation metadata, with the prefixed identifier as the fallback
133
188
  * for any surface that receives a thinned operation object — the same two-source shape
@@ -275,7 +330,7 @@ export const ACTION_MODAL_FIELD_CEILING = 6;
275
330
  * an overlay.
276
331
  *
277
332
  * Two, and the reasoning is the one this axis's `POPOVER` member already states: the anchored panel
278
- * is the single-input idiom ("assign to…", "change status to…", "snooze until…"), and it earns its
333
+ * is the small-input idiom ("snooze until…", "reject with a reason…"), and it earns its
279
334
  * place by keeping the row the user is acting on visible. A third control starts wanting the room a
280
335
  * dialog has, and the panel stops being cheaper than one.
281
336
  *
@@ -324,11 +379,12 @@ function requestBodyFitsAnAnchoredPanel(requestDto, suppliedKeys) {
324
379
  * to a dialog, while the SAME action on one row got the panel. The ladder has to count what the
325
380
  * person will actually see.
326
381
  *
327
- * Named from `BULK_OPERATION_SELECTOR_FIELD`, the one source both halves of the wire read, so the
328
- * key this skips and the key the request builder writes cannot drift apart.
382
+ * Named from `BULK_OPERATION_HOST_SUPPLIED_FIELDS` — both selectors, `_ids` and the cross-page
383
+ * `_match` — the one list the form's omission and the execution merge also read, so the keys this
384
+ * skips and the keys the request builder writes cannot drift apart.
329
385
  */
330
386
  function resolveHostSuppliedRequestKeys(operation) {
331
- return operation.isBulkOperation === true ? new Set([BULK_OPERATION_SELECTOR_FIELD]) : new Set();
387
+ return operation.isBulkOperation === true ? new Set(BULK_OPERATION_HOST_SUPPLIED_FIELDS) : new Set();
332
388
  }
333
389
  /**
334
390
  * The field count of a request body every one of whose fields can be drawn without a page, or
@@ -396,13 +452,89 @@ export function operationCollectsNoCallerInput(operation) {
396
452
  const suppliedKeys = resolveHostSuppliedRequestKeys(operation);
397
453
  return Object.keys(operation.requestDto.shape).every((fieldName) => suppliedKeys.has(fieldName));
398
454
  }
455
+ /**
456
+ * Does this risk level ask for a confirmation before the operation runs?
457
+ *
458
+ * HIGH and CRITICAL do (a plain confirm, and a typed one); LOW and MEDIUM execute on click. The one
459
+ * definition the action ladder's confirm dialog and the DROPDOWN rule both read, so "risky enough to
460
+ * confirm" and "too risky to execute on a pick" cannot come to mean two different sets.
461
+ */
462
+ export function isRiskyResourceOperation(riskLevel) {
463
+ return riskLevel === ResourceOperationRiskLevel.HIGH || riskLevel === ResourceOperationRiskLevel.CRITICAL;
464
+ }
465
+ /**
466
+ * The kind of domain a DROPDOWN lists — the two a person can pick from without typing a value.
467
+ *
468
+ * Two members because the lists are genuinely different things: an enum's values are CLOSED and
469
+ * known up front, so they are listed whole; a reference's candidates are records on the server, so
470
+ * they are SEARCHED as you type and scoped like the form's picker. A boolean is deliberately absent —
471
+ * a two-item menu for yes/no is a worse control than the toggle it would replace.
472
+ */
473
+ export var ResourceOperationChoiceDomain;
474
+ (function (ResourceOperationChoiceDomain) {
475
+ /** A closed enum — every value listed, labelled as the form labels it. */
476
+ ResourceOperationChoiceDomain["ENUM"] = "enum";
477
+ /** A foreign key — the referenced records, searched server-side. */
478
+ ResourceOperationChoiceDomain["REFERENCE"] = "reference";
479
+ })(ResourceOperationChoiceDomain || (ResourceOperationChoiceDomain = {}));
480
+ /**
481
+ * The one choice field this operation's input consists of, or `undefined` when its input is
482
+ * anything else.
483
+ *
484
+ * Qualifies only when, after the keys the host supplies itself (a bulk twin's `_ids`), EXACTLY ONE
485
+ * field remains and it is a single enum or a single foreign key. An array is refused: picking one
486
+ * item of a multi-pick and executing is not what the field asks for.
487
+ *
488
+ * Reads the schema structurally, like every other rule in this module, so the answer cannot
489
+ * disagree with the form the same operation would otherwise render.
490
+ */
491
+ export function resolveResourceOperationDropdownChoice(operation) {
492
+ const requestDto = operation.requestDto;
493
+ if (!(requestDto instanceof z.ZodObject)) {
494
+ return undefined;
495
+ }
496
+ const suppliedKeys = resolveHostSuppliedRequestKeys(operation);
497
+ const shape = requestDto.shape;
498
+ const fieldNames = Object.keys(shape).filter((fieldName) => !suppliedKeys.has(fieldName));
499
+ if (fieldNames.length !== 1) {
500
+ return undefined;
501
+ }
502
+ const fieldName = fieldNames[0];
503
+ const fieldSchema = shape[fieldName];
504
+ if (unwrapSchema(fieldSchema) instanceof z.ZodArray) {
505
+ return undefined;
506
+ }
507
+ if (isForeignKeyField(fieldSchema)) {
508
+ return { fieldName, fieldSchema, domain: ResourceOperationChoiceDomain.REFERENCE };
509
+ }
510
+ if (getSchemaType(fieldSchema) === FieldSchemaType.ENUM) {
511
+ return { fieldName, fieldSchema, domain: ResourceOperationChoiceDomain.ENUM };
512
+ }
513
+ return undefined;
514
+ }
515
+ /**
516
+ * Can this operation honestly present as a DROPDOWN — one choice field, one row, and no confirmation
517
+ * owed?
518
+ *
519
+ * All three are correctness constraints, not taste. Without a single choice field there is no list to
520
+ * show. A pick executes immediately, so an operation whose risk level asks for a confirmation would
521
+ * lose it. And a BULK twin writes every selected row: one stray pick in a menu would rewrite them all
522
+ * with no second step, which is the one place "the pick is the submission" is the wrong promise. Each
523
+ * of those keeps the anchored FORM, which has an explicit Submit.
524
+ */
525
+ export function operationCanPresentAsDropdown(operation) {
526
+ return operation.isBulkOperation !== true
527
+ && !isRiskyResourceOperation(operation.riskLevel)
528
+ && resolveResourceOperationDropdownChoice(operation) !== undefined;
529
+ }
399
530
  /**
400
531
  * HOW does this action collect its input?
401
532
  *
402
533
  * The single answer for every action surface. An explicitly authored
403
- * {@link ResourceOperationActionPresentation} is returned untouched — the author has answered the
404
- * question and the framework does not second-guess them. Everything below is the DERIVATION for the
405
- * (overwhelmingly common) case where nothing was authored.
534
+ * {@link ResourceOperationActionPresentation} is returned as authored — the author has answered the
535
+ * question and the framework does not second-guess their TASTE — with ONE correctness exception: a
536
+ * DROPDOWN the operation cannot honestly be resolves to POPOVER (see below). Everything else is the
537
+ * DERIVATION for the (overwhelmingly common) case where nothing was authored.
406
538
  *
407
539
  * The derivation is ordered by how strong the evidence is, not by convenience:
408
540
  *
@@ -418,14 +550,24 @@ export function operationCollectsNoCallerInput(operation) {
418
550
  * a second mechanism, not a vocabulary.
419
551
  * 4. **No caller input ⇒ DIRECT.** No `requestDto` at all, an explicit `z.object({})`, or a bulk
420
552
  * body holding only the selector the host fills ({@link operationCollectsNoCallerInput}).
421
- * 5. **One or two simple inputs ⇒ POPOVER.** An anchored panel beside the button that asked for
553
+ * 5. **One choice from an enum or a reference, and no confirmation owed ⇒ DROPDOWN.** The pick is
554
+ * the submission, so the list of values IS the whole input ({@link operationCanPresentAsDropdown}).
555
+ * 6. **One or two simple inputs ⇒ POPOVER.** An anchored panel beside the button that asked for
422
556
  * them, so the row being acted on stays visible.
423
- * 6. **Input that fits an overlay ⇒ MODAL.**
424
- * 7. **Everything else ⇒ PAGE.** Files, nested writes, large field sets — and the honest fallback
557
+ * 7. **Input that fits an overlay ⇒ MODAL.**
558
+ * 8. **Everything else ⇒ PAGE.** Files, nested writes, large field sets — and the honest fallback
425
559
  * for a `requestDto` this code cannot introspect (a thinned projection), because refusing to
426
560
  * guess returns the behaviour the operation had before.
427
561
  *
428
- * ## Why step 5 is DERIVED, when it used to be authored-only
562
+ * ## An authored DROPDOWN that cannot be one resolves to POPOVER
563
+ *
564
+ * The only authored answer this function overrides, and for the same reason the click handler
565
+ * refuses a non-navigating presentation on a zero-input update-like action: honouring it would be
566
+ * wrong, not merely ugly. A DROPDOWN over two fields has no list to show, and one over a CRITICAL
567
+ * operation would execute without the typed confirmation every other surface demands. POPOVER is the
568
+ * nearest honest answer — the same anchored panel, holding the form with its Submit.
569
+ *
570
+ * ## Why step 6 is DERIVED, when it used to be authored-only
429
571
  *
430
572
  * This function returned `MODAL` for every small input and left `POPOVER` to authors, on the
431
573
  * reasoning that an anchored panel is a claim about the surrounding context — that the trigger is
@@ -436,9 +578,10 @@ export function operationCollectsNoCallerInput(operation) {
436
578
  * already degrades when it cannot: an item collapsed into the overflow menu or nested in a subgroup
437
579
  * takes its `onClick`, which `resolveActionPresentationTransition` maps to an OVERLAY — the same
438
580
  * chrome `MODAL` would have produced. So the cost of deriving the panel is zero where it cannot be
439
- * drawn, and the cost of NOT deriving it was that every one-field action in every application —
440
- * "change status to…", "assign to…" — covered the list it was acting on with a dialog, and the only
441
- * way out was to author the axis per operation.
581
+ * drawn, and the cost of NOT deriving it was that every small action in every application —
582
+ * "snooze until…", "reject with a reason…" — covered the list it was acting on with a dialog, and the
583
+ * only way out was to author the axis per operation. (The one-CHOICE actions — "change status to…",
584
+ * "assign to…" — have since moved one step earlier, to DROPDOWN.)
442
585
  *
443
586
  * `INLINE` stays authored-only, and the asymmetry is the point: its claim is about the ELEMENT (the
444
587
  * thing being acted on is a row that can transform in place), and its degrade target is an overlay
@@ -448,6 +591,10 @@ export function operationCollectsNoCallerInput(operation) {
448
591
  export function resolveResourceOperationActionPresentation(operation) {
449
592
  const config = operation.operationFrontendConfig;
450
593
  if (config?.actionPresentation) {
594
+ if (config.actionPresentation === ResourceOperationActionPresentation.DROPDOWN
595
+ && !operationCanPresentAsDropdown(operation)) {
596
+ return ResourceOperationActionPresentation.POPOVER;
597
+ }
451
598
  return config.actionPresentation;
452
599
  }
453
600
  if (config?.surface === ResourceOperationFrontendSurface.ADDRESSABLE) {
@@ -482,6 +629,9 @@ export function resolveResourceOperationActionPresentation(operation) {
482
629
  if (operationCollectsNoCallerInput(operation)) {
483
630
  return ResourceOperationActionPresentation.DIRECT;
484
631
  }
632
+ if (operationCanPresentAsDropdown(operation)) {
633
+ return ResourceOperationActionPresentation.DROPDOWN;
634
+ }
485
635
  const suppliedKeys = resolveHostSuppliedRequestKeys(operation);
486
636
  if (requestBodyFitsAnAnchoredPanel(operation.requestDto, suppliedKeys)) {
487
637
  return ResourceOperationActionPresentation.POPOVER;
@@ -493,7 +643,7 @@ export function resolveResourceOperationActionPresentation(operation) {
493
643
  /**
494
644
  * Does this presentation reach the NAVIGATION layer, or does the action layer own it end to end?
495
645
  *
496
- * `MODAL` and `PAGE` are destinations. `DIRECT`, `POPOVER` and `INLINE` are not: nothing is pushed,
646
+ * `MODAL` and `PAGE` are destinations. `DIRECT`, `POPOVER`, `DROPDOWN` and `INLINE` are not: nothing is pushed,
497
647
  * no zone changes, and there is nothing for a back button to pop — routing them through navigation
498
648
  * would mint zone entries for chrome that does not live in a zone.
499
649
  *
@@ -529,6 +679,9 @@ export function resolveActionPresentationTransition(presentation) {
529
679
  switch (presentation) {
530
680
  case ResourceOperationActionPresentation.MODAL:
531
681
  case ResourceOperationActionPresentation.POPOVER:
682
+ // A DROPDOWN degrades exactly like the popover it shares a host with: where nothing can anchor
683
+ // the list, the same single field is collected by the overlay form.
684
+ case ResourceOperationActionPresentation.DROPDOWN:
532
685
  return NavigationTransition.OVERLAY;
533
686
  case ResourceOperationActionPresentation.INLINE:
534
687
  // The DEGRADE target, like `POPOVER`'s above. An in-place host only exists inside a collection;