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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1566) hide show
  1. package/dist/esm/companion-exports.d.ts +2 -1
  2. package/dist/esm/companion-exports.d.ts.map +1 -1
  3. package/dist/esm/companion-exports.js +2 -1
  4. package/dist/esm/companion-exports.js.map +1 -1
  5. package/dist/esm/components/actions/action-bar.d.ts +45 -1
  6. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  7. package/dist/esm/components/actions/action-bar.js +84 -0
  8. package/dist/esm/components/actions/action-bar.js.map +1 -1
  9. package/dist/esm/components/actions/button.d.ts +22 -0
  10. package/dist/esm/components/actions/button.d.ts.map +1 -1
  11. package/dist/esm/components/actions/button.js +45 -0
  12. package/dist/esm/components/actions/button.js.map +1 -1
  13. package/dist/esm/components/ai-elements/chat/conversation-thread.d.ts +109 -0
  14. package/dist/esm/components/ai-elements/chat/conversation-thread.d.ts.map +1 -0
  15. package/dist/esm/components/ai-elements/chat/conversation-thread.js +22 -0
  16. package/dist/esm/components/ai-elements/chat/conversation-thread.js.map +1 -0
  17. package/dist/esm/components/ai-elements/decision/approval.d.ts +103 -7
  18. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  19. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  20. package/dist/esm/components/ai-elements/execution/tool.d.ts +6 -0
  21. package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
  22. package/dist/esm/components/ai-elements/execution/tool.js.map +1 -1
  23. package/dist/esm/components/ai-elements/graph/canvas.d.ts +60 -1
  24. package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
  25. package/dist/esm/components/ai-elements/graph/canvas.js +26 -0
  26. package/dist/esm/components/ai-elements/graph/canvas.js.map +1 -1
  27. package/dist/esm/components/ai-elements/graph/node.d.ts +39 -4
  28. package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
  29. package/dist/esm/components/ai-elements/graph/node.js +18 -0
  30. package/dist/esm/components/ai-elements/graph/node.js.map +1 -1
  31. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts +6 -0
  32. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
  33. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +29 -8
  34. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
  35. package/dist/esm/components/app/AppLayout_DecisionInbox.d.ts +17 -0
  36. package/dist/esm/components/app/AppLayout_DecisionInbox.d.ts.map +1 -0
  37. package/dist/esm/components/app/AppLayout_DecisionInbox.js +24 -0
  38. package/dist/esm/components/app/AppLayout_DecisionInbox.js.map +1 -0
  39. package/dist/esm/components/app/AppLayout_MainContainer.d.ts.map +1 -1
  40. package/dist/esm/components/app/AppLayout_MainContainer.js +3 -0
  41. package/dist/esm/components/app/AppLayout_MainContainer.js.map +1 -1
  42. package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts +18 -0
  43. package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts.map +1 -0
  44. package/dist/esm/components/app/PublicLayout_LegalNotice.js +8 -0
  45. package/dist/esm/components/app/PublicLayout_LegalNotice.js.map +1 -0
  46. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts +3 -0
  47. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts.map +1 -0
  48. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js +38 -0
  49. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js.map +1 -0
  50. package/dist/esm/components/auth/Auth_ChatIdentityLink.d.ts +15 -0
  51. package/dist/esm/components/auth/Auth_ChatIdentityLink.d.ts.map +1 -0
  52. package/dist/esm/components/auth/Auth_ChatIdentityLink.js +219 -0
  53. package/dist/esm/components/auth/Auth_ChatIdentityLink.js.map +1 -0
  54. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.d.ts +3 -0
  55. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.d.ts.map +1 -0
  56. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.js +49 -0
  57. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.js.map +1 -0
  58. package/dist/esm/components/auth/Auth_Invitation.d.ts.map +1 -1
  59. package/dist/esm/components/auth/Auth_Invitation.js +3 -2
  60. package/dist/esm/components/auth/Auth_Invitation.js.map +1 -1
  61. package/dist/esm/components/auth/Auth_Invitation.labels.js +2 -2
  62. package/dist/esm/components/auth/Auth_Invitation.labels.js.map +1 -1
  63. package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
  64. package/dist/esm/components/auth/Auth_Main.js +40 -7
  65. package/dist/esm/components/auth/Auth_Main.js.map +1 -1
  66. package/dist/esm/components/auth/Auth_Main.labels.d.ts.map +1 -1
  67. package/dist/esm/components/auth/Auth_Main.labels.js +9 -0
  68. package/dist/esm/components/auth/Auth_Main.labels.js.map +1 -1
  69. package/dist/esm/components/auth/Auth_OAuthConsent.d.ts.map +1 -1
  70. package/dist/esm/components/auth/Auth_OAuthConsent.js +3 -2
  71. package/dist/esm/components/auth/Auth_OAuthConsent.js.map +1 -1
  72. package/dist/esm/components/auth/Auth_PasswordLost.labels.js +2 -2
  73. package/dist/esm/components/auth/Auth_PasswordLost.labels.js.map +1 -1
  74. package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
  75. package/dist/esm/components/auth/Auth_Register.js +8 -1
  76. package/dist/esm/components/auth/Auth_Register.js.map +1 -1
  77. package/dist/esm/components/auth/Auth_Register.labels.js +2 -2
  78. package/dist/esm/components/auth/Auth_Register.labels.js.map +1 -1
  79. package/dist/esm/components/auth/StepUpAuthDialog.d.ts +1 -1
  80. package/dist/esm/components/auth/StepUpAuthDialog.js +3 -3
  81. package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
  82. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
  83. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js +94 -6
  84. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
  85. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
  86. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js +21 -1
  87. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
  88. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.d.ts.map +1 -1
  89. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js +16 -13
  90. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js.map +1 -1
  91. package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js +3 -3
  92. package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js.map +1 -1
  93. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.d.ts.map +1 -1
  94. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js +1 -1
  95. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js.map +1 -1
  96. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts +1 -1
  97. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts.map +1 -1
  98. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js +3 -4
  99. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js.map +1 -1
  100. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.d.ts +11 -0
  101. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.d.ts.map +1 -0
  102. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.js +25 -0
  103. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.js.map +1 -0
  104. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.d.ts +39 -0
  105. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.d.ts.map +1 -0
  106. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.js +45 -0
  107. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.js.map +1 -0
  108. package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js +1 -1
  109. package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js.map +1 -1
  110. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.d.ts.map +1 -1
  111. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js +2 -1
  112. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js.map +1 -1
  113. package/dist/esm/components/data-display/AutomaticDisplayer.d.ts.map +1 -1
  114. package/dist/esm/components/data-display/AutomaticDisplayer.js +21 -35
  115. package/dist/esm/components/data-display/AutomaticDisplayer.js.map +1 -1
  116. package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
  117. package/dist/esm/components/data-display/DisplayField.js +98 -70
  118. package/dist/esm/components/data-display/DisplayField.js.map +1 -1
  119. package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
  120. package/dist/esm/components/data-display/DisplayFieldEditable.js +48 -8
  121. package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
  122. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +3 -1
  123. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
  124. package/dist/esm/components/data-display/DisplayFieldEditableArray.js +30 -4
  125. package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
  126. package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
  127. package/dist/esm/components/data-display/DisplayFieldReadOnly.js +2 -2
  128. package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
  129. package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts +1 -1
  130. package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
  131. package/dist/esm/components/data-display/DisplayValueDispatcher.js +45 -94
  132. package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
  133. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
  134. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js +14 -8
  135. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
  136. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +41 -3
  137. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
  138. package/dist/esm/components/data-display/ResourceSummaryDisplayer.js +49 -5
  139. package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
  140. package/dist/esm/components/data-display/SummaryContext.d.ts +2 -2
  141. package/dist/esm/components/data-display/SummaryContext.js.map +1 -1
  142. package/dist/esm/components/data-display/automatic-displayer.utils.d.ts +22 -1
  143. package/dist/esm/components/data-display/automatic-displayer.utils.d.ts.map +1 -1
  144. package/dist/esm/components/data-display/automatic-displayer.utils.js +29 -0
  145. package/dist/esm/components/data-display/automatic-displayer.utils.js.map +1 -1
  146. package/dist/esm/components/data-display/badge.d.ts +9 -0
  147. package/dist/esm/components/data-display/badge.d.ts.map +1 -1
  148. package/dist/esm/components/data-display/badge.js.map +1 -1
  149. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +14 -2
  150. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
  151. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +42 -12
  152. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
  153. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.d.ts +10 -0
  154. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.d.ts.map +1 -0
  155. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.js +18 -0
  156. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.js.map +1 -0
  157. package/dist/esm/components/data-display/chromes/field-tile-boundaries.d.ts +38 -0
  158. package/dist/esm/components/data-display/chromes/field-tile-boundaries.d.ts.map +1 -0
  159. package/dist/esm/components/data-display/chromes/field-tile-boundaries.js +30 -0
  160. package/dist/esm/components/data-display/chromes/field-tile-boundaries.js.map +1 -0
  161. package/dist/esm/components/data-display/chromes/field-tiles.utils.d.ts +22 -0
  162. package/dist/esm/components/data-display/chromes/field-tiles.utils.d.ts.map +1 -0
  163. package/dist/esm/components/data-display/chromes/field-tiles.utils.js +52 -0
  164. package/dist/esm/components/data-display/chromes/field-tiles.utils.js.map +1 -0
  165. package/dist/esm/components/data-display/display-field-resolved-props.d.ts +4 -0
  166. package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
  167. package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
  168. package/dist/esm/components/data-display/display-layout-template.utils.d.ts +18 -0
  169. package/dist/esm/components/data-display/display-layout-template.utils.d.ts.map +1 -0
  170. package/dist/esm/components/data-display/display-layout-template.utils.js +18 -0
  171. package/dist/esm/components/data-display/display-layout-template.utils.js.map +1 -0
  172. package/dist/esm/components/data-display/display-value-emptiness.utils.d.ts +44 -0
  173. package/dist/esm/components/data-display/display-value-emptiness.utils.d.ts.map +1 -0
  174. package/dist/esm/components/data-display/display-value-emptiness.utils.js +61 -0
  175. package/dist/esm/components/data-display/display-value-emptiness.utils.js.map +1 -0
  176. package/dist/esm/components/data-display/empty-value-mark.d.ts +31 -0
  177. package/dist/esm/components/data-display/empty-value-mark.d.ts.map +1 -0
  178. package/dist/esm/components/data-display/empty-value-mark.js +49 -0
  179. package/dist/esm/components/data-display/empty-value-mark.js.map +1 -0
  180. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +3 -2
  181. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -1
  182. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +4 -4
  183. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -1
  184. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +6 -3
  185. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -1
  186. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +22 -12
  187. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -1
  188. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +2 -2
  189. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -1
  190. package/dist/esm/components/data-display/reference-display-target.d.ts +98 -0
  191. package/dist/esm/components/data-display/reference-display-target.d.ts.map +1 -0
  192. package/dist/esm/components/data-display/reference-display-target.js +154 -0
  193. package/dist/esm/components/data-display/reference-display-target.js.map +1 -0
  194. package/dist/esm/components/data-display/summary-value-naming.context.d.ts +15 -0
  195. package/dist/esm/components/data-display/summary-value-naming.context.d.ts.map +1 -0
  196. package/dist/esm/components/data-display/summary-value-naming.context.js +18 -0
  197. package/dist/esm/components/data-display/summary-value-naming.context.js.map +1 -0
  198. package/dist/esm/components/data-display/tone-marker.d.ts +38 -0
  199. package/dist/esm/components/data-display/tone-marker.d.ts.map +1 -0
  200. package/dist/esm/components/data-display/tone-marker.js +56 -0
  201. package/dist/esm/components/data-display/tone-marker.js.map +1 -0
  202. package/dist/esm/components/data-display/useFileActivation.d.ts.map +1 -1
  203. package/dist/esm/components/data-display/useFileActivation.js +2 -9
  204. package/dist/esm/components/data-display/useFileActivation.js.map +1 -1
  205. package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
  206. package/dist/esm/components/feedback/features/feature-limit-indicator.js +12 -4
  207. package/dist/esm/components/feedback/features/feature-limit-indicator.js.map +1 -1
  208. package/dist/esm/components/feedback/operations-confirm-critical.d.ts +8 -0
  209. package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
  210. package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
  211. package/dist/esm/components/files/Files_UploadGrantDrop.d.ts +0 -5
  212. package/dist/esm/components/files/Files_UploadGrantDrop.d.ts.map +1 -1
  213. package/dist/esm/components/files/Files_UploadGrantDrop.js +5 -17
  214. package/dist/esm/components/files/Files_UploadGrantDrop.js.map +1 -1
  215. package/dist/esm/components/flows-actors/actor.d.ts +21 -4
  216. package/dist/esm/components/flows-actors/actor.d.ts.map +1 -1
  217. package/dist/esm/components/flows-actors/actor.js +114 -192
  218. package/dist/esm/components/flows-actors/actor.js.map +1 -1
  219. package/dist/esm/components/flows-actors/actor.labels.d.ts.map +1 -1
  220. package/dist/esm/components/flows-actors/actor.labels.js +5 -10
  221. package/dist/esm/components/flows-actors/actor.labels.js.map +1 -1
  222. package/dist/esm/components/flows-actors/agent-config.labels.js +1 -1
  223. package/dist/esm/components/flows-actors/agent-config.labels.js.map +1 -1
  224. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.d.ts.map +1 -1
  225. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js +1 -0
  226. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js.map +1 -1
  227. package/dist/esm/components/flows-actors/approval.d.ts +26 -16
  228. package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
  229. package/dist/esm/components/flows-actors/approval.js +208 -70
  230. package/dist/esm/components/flows-actors/approval.js.map +1 -1
  231. package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
  232. package/dist/esm/components/flows-actors/approval.labels.js +67 -22
  233. package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
  234. package/dist/esm/components/flows-actors/artifact-browser.labels.js +1 -1
  235. package/dist/esm/components/flows-actors/artifact-browser.labels.js.map +1 -1
  236. package/dist/esm/components/flows-actors/execution-plan.d.ts +19 -7
  237. package/dist/esm/components/flows-actors/execution-plan.d.ts.map +1 -1
  238. package/dist/esm/components/flows-actors/execution-plan.js +55 -41
  239. package/dist/esm/components/flows-actors/execution-plan.js.map +1 -1
  240. package/dist/esm/components/flows-actors/execution-plan.labels.d.ts.map +1 -1
  241. package/dist/esm/components/flows-actors/execution-plan.labels.js +25 -8
  242. package/dist/esm/components/flows-actors/execution-plan.labels.js.map +1 -1
  243. package/dist/esm/components/flows-actors/execution-usage.d.ts +69 -0
  244. package/dist/esm/components/flows-actors/execution-usage.d.ts.map +1 -0
  245. package/dist/esm/components/flows-actors/execution-usage.js +189 -0
  246. package/dist/esm/components/flows-actors/execution-usage.js.map +1 -0
  247. package/dist/esm/components/flows-actors/execution-usage.labels.d.ts +3 -0
  248. package/dist/esm/components/flows-actors/execution-usage.labels.d.ts.map +1 -0
  249. package/dist/esm/components/flows-actors/execution-usage.labels.js +27 -0
  250. package/dist/esm/components/flows-actors/execution-usage.labels.js.map +1 -0
  251. package/dist/esm/components/flows-actors/flow-execution.d.ts +23 -6
  252. package/dist/esm/components/flows-actors/flow-execution.d.ts.map +1 -1
  253. package/dist/esm/components/flows-actors/flow-execution.js +56 -208
  254. package/dist/esm/components/flows-actors/flow-execution.js.map +1 -1
  255. package/dist/esm/components/flows-actors/flow-execution.labels.d.ts.map +1 -1
  256. package/dist/esm/components/flows-actors/flow-execution.labels.js +3 -10
  257. package/dist/esm/components/flows-actors/flow-execution.labels.js.map +1 -1
  258. package/dist/esm/components/flows-actors/flow-node-badges.d.ts +54 -21
  259. package/dist/esm/components/flows-actors/flow-node-badges.d.ts.map +1 -1
  260. package/dist/esm/components/flows-actors/flow-node-badges.js +80 -6
  261. package/dist/esm/components/flows-actors/flow-node-badges.js.map +1 -1
  262. package/dist/esm/components/flows-actors/flow-node.labels.d.ts.map +1 -1
  263. package/dist/esm/components/flows-actors/flow-node.labels.js +0 -8
  264. package/dist/esm/components/flows-actors/flow-node.labels.js.map +1 -1
  265. package/dist/esm/components/flows-actors/flow-step-visuals.d.ts +31 -0
  266. package/dist/esm/components/flows-actors/flow-step-visuals.d.ts.map +1 -0
  267. package/dist/esm/components/flows-actors/flow-step-visuals.js +98 -0
  268. package/dist/esm/components/flows-actors/flow-step-visuals.js.map +1 -0
  269. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts +18 -19
  270. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts.map +1 -1
  271. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js +18 -19
  272. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js.map +1 -1
  273. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts +27 -42
  274. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts.map +1 -1
  275. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js +28 -43
  276. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js.map +1 -1
  277. package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts +15 -10
  278. package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts.map +1 -1
  279. package/dist/esm/components/flows-actors/flows-actors-ui.utils.js +16 -42
  280. package/dist/esm/components/flows-actors/flows-actors-ui.utils.js.map +1 -1
  281. package/dist/esm/components/flows-actors/graph-viewer.d.ts +112 -0
  282. package/dist/esm/components/flows-actors/graph-viewer.d.ts.map +1 -0
  283. package/dist/esm/components/flows-actors/graph-viewer.js +431 -0
  284. package/dist/esm/components/flows-actors/graph-viewer.js.map +1 -0
  285. package/dist/esm/components/flows-actors/graph-viewer.labels.d.ts +3 -0
  286. package/dist/esm/components/flows-actors/graph-viewer.labels.d.ts.map +1 -0
  287. package/dist/esm/components/flows-actors/graph-viewer.labels.js +67 -0
  288. package/dist/esm/components/flows-actors/graph-viewer.labels.js.map +1 -0
  289. package/dist/esm/components/flows-actors/graph-viewer.models.d.ts +16 -0
  290. package/dist/esm/components/flows-actors/graph-viewer.models.d.ts.map +1 -0
  291. package/dist/esm/components/flows-actors/graph-viewer.models.js +18 -0
  292. package/dist/esm/components/flows-actors/graph-viewer.models.js.map +1 -0
  293. package/dist/esm/components/flows-actors/human-decision-form.d.ts +57 -0
  294. package/dist/esm/components/flows-actors/human-decision-form.d.ts.map +1 -0
  295. package/dist/esm/components/flows-actors/human-decision-form.js +128 -0
  296. package/dist/esm/components/flows-actors/human-decision-form.js.map +1 -0
  297. package/dist/esm/components/flows-actors/system-catalog.d.ts +6 -1
  298. package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
  299. package/dist/esm/components/flows-actors/system-catalog.js +22 -20
  300. package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
  301. package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
  302. package/dist/esm/components/flows-actors/system-catalog.labels.js +3 -2
  303. package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
  304. package/dist/esm/components/flows-actors/task-detail.d.ts +17 -3
  305. package/dist/esm/components/flows-actors/task-detail.d.ts.map +1 -1
  306. package/dist/esm/components/flows-actors/task-detail.js +32 -25
  307. package/dist/esm/components/flows-actors/task-detail.js.map +1 -1
  308. package/dist/esm/components/flows-actors/task-memory.d.ts.map +1 -1
  309. package/dist/esm/components/flows-actors/task-memory.js +3 -2
  310. package/dist/esm/components/flows-actors/task-memory.js.map +1 -1
  311. package/dist/esm/components/form/Form.d.ts +2 -0
  312. package/dist/esm/components/form/Form.d.ts.map +1 -1
  313. package/dist/esm/components/form/Form.js +4 -0
  314. package/dist/esm/components/form/Form.js.map +1 -1
  315. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +16 -1
  316. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
  317. package/dist/esm/components/form/automated/AutomatedArrayField.js +101 -21
  318. package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
  319. package/dist/esm/components/form/automated/AutomatedForm.d.ts +19 -2
  320. package/dist/esm/components/form/automated/AutomatedForm.d.ts.map +1 -1
  321. package/dist/esm/components/form/automated/AutomatedForm.js +40 -6
  322. package/dist/esm/components/form/automated/AutomatedForm.js.map +1 -1
  323. package/dist/esm/components/form/automated/AutosaveContext.d.ts +22 -1
  324. package/dist/esm/components/form/automated/AutosaveContext.d.ts.map +1 -1
  325. package/dist/esm/components/form/automated/AutosaveContext.js +53 -0
  326. package/dist/esm/components/form/automated/AutosaveContext.js.map +1 -1
  327. package/dist/esm/components/form/automated/FormField.d.ts +1 -1
  328. package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
  329. package/dist/esm/components/form/automated/FormField.js +127 -53
  330. package/dist/esm/components/form/automated/FormField.js.map +1 -1
  331. package/dist/esm/components/form/automated/FormFieldComposite.d.ts.map +1 -1
  332. package/dist/esm/components/form/automated/FormFieldComposite.js +12 -10
  333. package/dist/esm/components/form/automated/FormFieldComposite.js.map +1 -1
  334. package/dist/esm/components/form/automated/FormFieldRecord.d.ts.map +1 -1
  335. package/dist/esm/components/form/automated/FormFieldRecord.js +16 -7
  336. package/dist/esm/components/form/automated/FormFieldRecord.js.map +1 -1
  337. package/dist/esm/components/form/automated/FormTemplateContext.d.ts +27 -0
  338. package/dist/esm/components/form/automated/FormTemplateContext.d.ts.map +1 -1
  339. package/dist/esm/components/form/automated/FormTemplateContext.js +0 -48
  340. package/dist/esm/components/form/automated/FormTemplateContext.js.map +1 -1
  341. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +4 -3
  342. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
  343. package/dist/esm/components/form/automated/ResourceAutomatedForm.js +616 -149
  344. package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
  345. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +105 -5
  346. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
  347. package/dist/esm/components/form/automated/automated-form-submit.utils.js +225 -6
  348. package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
  349. package/dist/esm/components/form/automated/bulk-field-clear-context.d.ts +59 -0
  350. package/dist/esm/components/form/automated/bulk-field-clear-context.d.ts.map +1 -0
  351. package/dist/esm/components/form/automated/bulk-field-clear-context.js +77 -0
  352. package/dist/esm/components/form/automated/bulk-field-clear-context.js.map +1 -0
  353. package/dist/esm/components/form/automated/generated-relationship-field.hooks.d.ts +1 -1
  354. package/dist/esm/components/form/automated/unplaced-request-fields.context.d.ts +19 -0
  355. package/dist/esm/components/form/automated/unplaced-request-fields.context.d.ts.map +1 -0
  356. package/dist/esm/components/form/automated/unplaced-request-fields.context.js +13 -0
  357. package/dist/esm/components/form/automated/unplaced-request-fields.context.js.map +1 -0
  358. package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts +7 -0
  359. package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts.map +1 -1
  360. package/dist/esm/components/form/automated/useArrayItemAutosaveField.js +10 -2
  361. package/dist/esm/components/form/automated/useArrayItemAutosaveField.js.map +1 -1
  362. package/dist/esm/components/form/automated/useReferenceRecordLabels.d.ts +16 -0
  363. package/dist/esm/components/form/automated/useReferenceRecordLabels.d.ts.map +1 -0
  364. package/dist/esm/components/form/automated/useReferenceRecordLabels.js +66 -0
  365. package/dist/esm/components/form/automated/useReferenceRecordLabels.js.map +1 -0
  366. package/dist/esm/components/form/automated/useRequestFieldOffer.d.ts +18 -0
  367. package/dist/esm/components/form/automated/useRequestFieldOffer.d.ts.map +1 -0
  368. package/dist/esm/components/form/automated/useRequestFieldOffer.js +107 -0
  369. package/dist/esm/components/form/automated/useRequestFieldOffer.js.map +1 -0
  370. package/dist/esm/components/form/chromes/FormFieldChrome.d.ts +7 -1
  371. package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
  372. package/dist/esm/components/form/chromes/FormFieldChrome.js +6 -3
  373. package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
  374. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts +11 -0
  375. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
  376. package/dist/esm/components/form/controls/date-time/date-range-picker.js.map +1 -1
  377. package/dist/esm/components/form/controls/date-time/datepicker.d.ts +21 -0
  378. package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
  379. package/dist/esm/components/form/controls/date-time/datepicker.js.map +1 -1
  380. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts +9 -0
  381. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
  382. package/dist/esm/components/form/controls/date-time/datetime-picker.js.map +1 -1
  383. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts +9 -0
  384. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
  385. package/dist/esm/components/form/controls/date-time/datetime-range-picker.js.map +1 -1
  386. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts +1 -0
  387. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
  388. package/dist/esm/components/form/controls/date-time/time-range-picker.js.map +1 -1
  389. package/dist/esm/components/form/controls/enum/radio.d.ts +10 -0
  390. package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
  391. package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
  392. package/dist/esm/components/form/controls/enum/toggle-group.d.ts +14 -10
  393. package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
  394. package/dist/esm/components/form/controls/enum/toggle-group.js +14 -6
  395. package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
  396. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
  397. package/dist/esm/components/form/controls/form-field-checkbox-group.js +7 -3
  398. package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
  399. package/dist/esm/components/form/controls/string/chips-input.d.ts +65 -0
  400. package/dist/esm/components/form/controls/string/chips-input.d.ts.map +1 -0
  401. package/dist/esm/components/form/controls/string/chips-input.js +9 -0
  402. package/dist/esm/components/form/controls/string/chips-input.js.map +1 -0
  403. package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
  404. package/dist/esm/components/form/fields/form-field-address.js +7 -5
  405. package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
  406. package/dist/esm/components/form/fields/form-field-address.labels.js +1 -1
  407. package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
  408. package/dist/esm/components/form/fields/form-field-bigdecimal.js +2 -2
  409. package/dist/esm/components/form/fields/form-field-bigdecimal.js.map +1 -1
  410. package/dist/esm/components/form/fields/form-field-boolean.js +2 -2
  411. package/dist/esm/components/form/fields/form-field-boolean.js.map +1 -1
  412. package/dist/esm/components/form/fields/form-field-code.labels.js +1 -1
  413. package/dist/esm/components/form/fields/form-field-code.labels.js.map +1 -1
  414. package/dist/esm/components/form/fields/form-field-date.d.ts.map +1 -1
  415. package/dist/esm/components/form/fields/form-field-date.js +16 -11
  416. package/dist/esm/components/form/fields/form-field-date.js.map +1 -1
  417. package/dist/esm/components/form/fields/form-field-datetime.d.ts.map +1 -1
  418. package/dist/esm/components/form/fields/form-field-datetime.js +10 -5
  419. package/dist/esm/components/form/fields/form-field-datetime.js.map +1 -1
  420. package/dist/esm/components/form/fields/form-field-duration.d.ts.map +1 -1
  421. package/dist/esm/components/form/fields/form-field-duration.js +5 -7
  422. package/dist/esm/components/form/fields/form-field-duration.js.map +1 -1
  423. package/dist/esm/components/form/fields/form-field-duration.labels.d.ts.map +1 -1
  424. package/dist/esm/components/form/fields/form-field-duration.labels.js +8 -2
  425. package/dist/esm/components/form/fields/form-field-duration.labels.js.map +1 -1
  426. package/dist/esm/components/form/fields/form-field-enum.d.ts.map +1 -1
  427. package/dist/esm/components/form/fields/form-field-enum.js +31 -31
  428. package/dist/esm/components/form/fields/form-field-enum.js.map +1 -1
  429. package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
  430. package/dist/esm/components/form/fields/form-field-file.js +13 -12
  431. package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
  432. package/dist/esm/components/form/fields/form-field-file.labels.js +6 -6
  433. package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
  434. package/dist/esm/components/form/fields/form-field-money.d.ts.map +1 -1
  435. package/dist/esm/components/form/fields/form-field-money.js +5 -4
  436. package/dist/esm/components/form/fields/form-field-money.js.map +1 -1
  437. package/dist/esm/components/form/fields/form-field-money.labels.d.ts.map +1 -1
  438. package/dist/esm/components/form/fields/form-field-money.labels.js +8 -2
  439. package/dist/esm/components/form/fields/form-field-money.labels.js.map +1 -1
  440. package/dist/esm/components/form/fields/form-field-number.js +2 -2
  441. package/dist/esm/components/form/fields/form-field-number.js.map +1 -1
  442. package/dist/esm/components/form/fields/form-field-range-bigdecimal.js +2 -2
  443. package/dist/esm/components/form/fields/form-field-range-bigdecimal.js.map +1 -1
  444. package/dist/esm/components/form/fields/form-field-range-date.d.ts.map +1 -1
  445. package/dist/esm/components/form/fields/form-field-range-date.js +7 -2
  446. package/dist/esm/components/form/fields/form-field-range-date.js.map +1 -1
  447. package/dist/esm/components/form/fields/form-field-range-datetime.d.ts.map +1 -1
  448. package/dist/esm/components/form/fields/form-field-range-datetime.js +5 -2
  449. package/dist/esm/components/form/fields/form-field-range-datetime.js.map +1 -1
  450. package/dist/esm/components/form/fields/form-field-range-money.d.ts.map +1 -1
  451. package/dist/esm/components/form/fields/form-field-range-money.js +6 -19
  452. package/dist/esm/components/form/fields/form-field-range-money.js.map +1 -1
  453. package/dist/esm/components/form/fields/form-field-range-money.labels.d.ts.map +1 -1
  454. package/dist/esm/components/form/fields/form-field-range-money.labels.js +8 -2
  455. package/dist/esm/components/form/fields/form-field-range-money.labels.js.map +1 -1
  456. package/dist/esm/components/form/fields/form-field-range-number.js +2 -2
  457. package/dist/esm/components/form/fields/form-field-range-number.js.map +1 -1
  458. package/dist/esm/components/form/fields/form-field-range-time.js +2 -2
  459. package/dist/esm/components/form/fields/form-field-range-time.js.map +1 -1
  460. package/dist/esm/components/form/fields/form-field-resource-reference.d.ts +56 -0
  461. package/dist/esm/components/form/fields/form-field-resource-reference.d.ts.map +1 -0
  462. package/dist/esm/components/form/fields/form-field-resource-reference.js +51 -0
  463. package/dist/esm/components/form/fields/form-field-resource-reference.js.map +1 -0
  464. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +36 -6
  465. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -1
  466. package/dist/esm/components/form/fields/form-field-string-organization-role.js +30 -11
  467. package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -1
  468. package/dist/esm/components/form/fields/form-field-string.d.ts +5 -0
  469. package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
  470. package/dist/esm/components/form/fields/form-field-string.js +9 -7
  471. package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
  472. package/dist/esm/components/form/fields/form-field-time.d.ts.map +1 -1
  473. package/dist/esm/components/form/fields/form-field-time.js +6 -3
  474. package/dist/esm/components/form/fields/form-field-time.js.map +1 -1
  475. package/dist/esm/components/form/fields/themed-native-select.d.ts +29 -0
  476. package/dist/esm/components/form/fields/themed-native-select.d.ts.map +1 -0
  477. package/dist/esm/components/form/fields/themed-native-select.js +36 -0
  478. package/dist/esm/components/form/fields/themed-native-select.js.map +1 -0
  479. package/dist/esm/components/form/form-context.d.ts +11 -0
  480. package/dist/esm/components/form/form-context.d.ts.map +1 -1
  481. package/dist/esm/components/form/form-context.js +11 -0
  482. package/dist/esm/components/form/form-context.js.map +1 -1
  483. package/dist/esm/components/form/form-context.utils.d.ts +2 -0
  484. package/dist/esm/components/form/form-context.utils.d.ts.map +1 -1
  485. package/dist/esm/components/form/form-context.utils.js +6 -2
  486. package/dist/esm/components/form/form-context.utils.js.map +1 -1
  487. package/dist/esm/components/form/validation-errors/FormErrorSummary.d.ts.map +1 -1
  488. package/dist/esm/components/form/validation-errors/FormErrorSummary.js +17 -15
  489. package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
  490. package/dist/esm/components/form/validation-errors/field-reveal.d.ts +41 -0
  491. package/dist/esm/components/form/validation-errors/field-reveal.d.ts.map +1 -0
  492. package/dist/esm/components/form/validation-errors/field-reveal.js +108 -0
  493. package/dist/esm/components/form/validation-errors/field-reveal.js.map +1 -0
  494. package/dist/esm/components/form/validation-errors/form-level-error-recheck.d.ts +3 -0
  495. package/dist/esm/components/form/validation-errors/form-level-error-recheck.d.ts.map +1 -0
  496. package/dist/esm/components/form/validation-errors/form-level-error-recheck.js +37 -0
  497. package/dist/esm/components/form/validation-errors/form-level-error-recheck.js.map +1 -0
  498. package/dist/esm/components/form/validation-errors/getFieldError.d.ts +6 -0
  499. package/dist/esm/components/form/validation-errors/getFieldError.d.ts.map +1 -1
  500. package/dist/esm/components/form/validation-errors/getFieldError.js +9 -2
  501. package/dist/esm/components/form/validation-errors/getFieldError.js.map +1 -1
  502. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts +8 -1
  503. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts.map +1 -1
  504. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js +46 -3
  505. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js.map +1 -1
  506. package/dist/esm/components/form/validation-errors/useServerErrorInjection.d.ts.map +1 -1
  507. package/dist/esm/components/form/validation-errors/useServerErrorInjection.js +8 -3
  508. package/dist/esm/components/form/validation-errors/useServerErrorInjection.js.map +1 -1
  509. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.d.ts +32 -0
  510. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.d.ts.map +1 -0
  511. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.js +60 -0
  512. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.js.map +1 -0
  513. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +10 -0
  514. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
  515. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +12 -3
  516. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
  517. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts +7 -0
  518. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts.map +1 -1
  519. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.js.map +1 -1
  520. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts +6 -0
  521. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts.map +1 -1
  522. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.js.map +1 -1
  523. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.d.ts.map +1 -1
  524. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +11 -28
  525. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
  526. package/dist/esm/components/navigation/app-level/engine-launcher-entries.d.ts +46 -0
  527. package/dist/esm/components/navigation/app-level/engine-launcher-entries.d.ts.map +1 -0
  528. package/dist/esm/components/navigation/app-level/engine-launcher-entries.js +165 -0
  529. package/dist/esm/components/navigation/app-level/engine-launcher-entries.js.map +1 -0
  530. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
  531. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +8 -3
  532. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
  533. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
  534. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js +41 -20
  535. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
  536. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts +1 -2
  537. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts.map +1 -1
  538. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js +1 -15
  539. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js.map +1 -1
  540. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.d.ts +32 -0
  541. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.d.ts.map +1 -0
  542. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.js +91 -0
  543. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.js.map +1 -0
  544. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.d.ts.map +1 -1
  545. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js +3 -1
  546. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js.map +1 -1
  547. package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts +18 -1
  548. package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
  549. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +66 -9
  550. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
  551. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts +15 -10
  552. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts.map +1 -1
  553. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js +89 -12
  554. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js.map +1 -1
  555. package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js +2 -2
  556. package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js.map +1 -1
  557. package/dist/esm/components/resources/CollectionSelectAllCheckbox.d.ts +39 -0
  558. package/dist/esm/components/resources/CollectionSelectAllCheckbox.d.ts.map +1 -0
  559. package/dist/esm/components/resources/CollectionSelectAllCheckbox.js +21 -0
  560. package/dist/esm/components/resources/CollectionSelectAllCheckbox.js.map +1 -0
  561. package/dist/esm/components/resources/CollectionSelectionControls.d.ts +4 -3
  562. package/dist/esm/components/resources/CollectionSelectionControls.d.ts.map +1 -1
  563. package/dist/esm/components/resources/CollectionSelectionControls.js.map +1 -1
  564. package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts +7 -2
  565. package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts.map +1 -1
  566. package/dist/esm/components/resources/ResourceCollectionBody_Table.js +38 -14
  567. package/dist/esm/components/resources/ResourceCollectionBody_Table.js.map +1 -1
  568. package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts +4 -4
  569. package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts.map +1 -1
  570. package/dist/esm/components/resources/ResourceCollectionFilterPresets.js +20 -13
  571. package/dist/esm/components/resources/ResourceCollectionFilterPresets.js.map +1 -1
  572. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts +4 -3
  573. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
  574. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +40 -6
  575. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
  576. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +65 -23
  577. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
  578. package/dist/esm/components/resources/ResourceCollectionToolbar.js +73 -10
  579. package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
  580. package/dist/esm/components/resources/ResourceLayout_Action.labels.d.ts.map +1 -1
  581. package/dist/esm/components/resources/ResourceLayout_Action.labels.js +5 -0
  582. package/dist/esm/components/resources/ResourceLayout_Action.labels.js.map +1 -1
  583. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts +18 -0
  584. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
  585. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +57 -48
  586. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
  587. package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts +1 -1
  588. package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts.map +1 -1
  589. package/dist/esm/components/resources/ResourceLayout_CollectionActions.js +1 -1
  590. package/dist/esm/components/resources/ResourceLayout_CollectionActions.js.map +1 -1
  591. package/dist/esm/components/resources/ResourceLayout_ContainerNested.d.ts.map +1 -1
  592. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +7 -1
  593. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
  594. package/dist/esm/components/resources/ResourceLayout_Create.d.ts.map +1 -1
  595. package/dist/esm/components/resources/ResourceLayout_Create.js +3 -4
  596. package/dist/esm/components/resources/ResourceLayout_Create.js.map +1 -1
  597. package/dist/esm/components/resources/ResourceLayout_Create.labels.d.ts.map +1 -1
  598. package/dist/esm/components/resources/ResourceLayout_Create.labels.js +10 -0
  599. package/dist/esm/components/resources/ResourceLayout_Create.labels.js.map +1 -1
  600. package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts +5 -3
  601. package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts.map +1 -1
  602. package/dist/esm/components/resources/ResourceLayout_DangerZone.js +4 -3
  603. package/dist/esm/components/resources/ResourceLayout_DangerZone.js.map +1 -1
  604. package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts +8 -1
  605. package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts.map +1 -1
  606. package/dist/esm/components/resources/ResourceLayout_FilterChips.js +83 -11
  607. package/dist/esm/components/resources/ResourceLayout_FilterChips.js.map +1 -1
  608. package/dist/esm/components/resources/ResourceLayout_Filters.labels.js +1 -1
  609. package/dist/esm/components/resources/ResourceLayout_Filters.labels.js.map +1 -1
  610. package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts +5 -8
  611. package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts.map +1 -1
  612. package/dist/esm/components/resources/ResourceLayout_FiltersControl.js +68 -19
  613. package/dist/esm/components/resources/ResourceLayout_FiltersControl.js.map +1 -1
  614. package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
  615. package/dist/esm/components/resources/ResourceLayout_Header.js +150 -44
  616. package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
  617. package/dist/esm/components/resources/ResourceLayout_InsertedViews.d.ts.map +1 -1
  618. package/dist/esm/components/resources/ResourceLayout_InsertedViews.js +62 -40
  619. package/dist/esm/components/resources/ResourceLayout_InsertedViews.js.map +1 -1
  620. package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
  621. package/dist/esm/components/resources/ResourceLayout_List.js +68 -70
  622. package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
  623. package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
  624. package/dist/esm/components/resources/ResourceLayout_List.labels.js +4 -10
  625. package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
  626. package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts +8 -9
  627. package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts.map +1 -1
  628. package/dist/esm/components/resources/ResourceLayout_OperationBulk.js +67 -25
  629. package/dist/esm/components/resources/ResourceLayout_OperationBulk.js.map +1 -1
  630. package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js +8 -8
  631. package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js.map +1 -1
  632. package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts +8 -2
  633. package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts.map +1 -1
  634. package/dist/esm/components/resources/ResourceLayout_OperationsItems.js +12 -7
  635. package/dist/esm/components/resources/ResourceLayout_OperationsItems.js.map +1 -1
  636. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.d.ts.map +1 -1
  637. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js +11 -6
  638. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js.map +1 -1
  639. package/dist/esm/components/resources/ResourceLayout_Read.d.ts +2 -0
  640. package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
  641. package/dist/esm/components/resources/ResourceLayout_Read.js +23 -5
  642. package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
  643. package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
  644. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +5 -3
  645. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
  646. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
  647. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js +18 -7
  648. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
  649. package/dist/esm/components/resources/ResourceLayout_RecordSharing.d.ts +56 -0
  650. package/dist/esm/components/resources/ResourceLayout_RecordSharing.d.ts.map +1 -0
  651. package/dist/esm/components/resources/ResourceLayout_RecordSharing.js +184 -0
  652. package/dist/esm/components/resources/ResourceLayout_RecordSharing.js.map +1 -0
  653. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.d.ts +3 -0
  654. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.d.ts.map +1 -0
  655. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.js +106 -0
  656. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.js.map +1 -0
  657. package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
  658. package/dist/esm/components/resources/ResourceLayout_Search.js +55 -42
  659. package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
  660. package/dist/esm/components/resources/ResourceLayout_Search.labels.d.ts.map +1 -1
  661. package/dist/esm/components/resources/ResourceLayout_Search.labels.js +0 -6
  662. package/dist/esm/components/resources/ResourceLayout_Search.labels.js.map +1 -1
  663. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts +8 -0
  664. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
  665. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +2 -3
  666. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
  667. package/dist/esm/components/resources/ResourceLayout_SortControl.d.ts.map +1 -1
  668. package/dist/esm/components/resources/ResourceLayout_SortControl.js +3 -2
  669. package/dist/esm/components/resources/ResourceLayout_SortControl.js.map +1 -1
  670. package/dist/esm/components/resources/ResourceListItemRenderer.d.ts +29 -5
  671. package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
  672. package/dist/esm/components/resources/ResourceListItemRenderer.js +123 -41
  673. package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
  674. package/dist/esm/components/resources/ResourceViewModeToggle.d.ts +6 -1
  675. package/dist/esm/components/resources/ResourceViewModeToggle.d.ts.map +1 -1
  676. package/dist/esm/components/resources/ResourceViewModeToggle.js +9 -7
  677. package/dist/esm/components/resources/ResourceViewModeToggle.js.map +1 -1
  678. package/dist/esm/components/resources/collection-card-layout.utils.d.ts +37 -15
  679. package/dist/esm/components/resources/collection-card-layout.utils.d.ts.map +1 -1
  680. package/dist/esm/components/resources/collection-card-layout.utils.js +37 -15
  681. package/dist/esm/components/resources/collection-card-layout.utils.js.map +1 -1
  682. package/dist/esm/components/resources/collection-selection-bar-density.d.ts +113 -0
  683. package/dist/esm/components/resources/collection-selection-bar-density.d.ts.map +1 -0
  684. package/dist/esm/components/resources/collection-selection-bar-density.js +175 -0
  685. package/dist/esm/components/resources/collection-selection-bar-density.js.map +1 -0
  686. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts +2 -1
  687. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts.map +1 -1
  688. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.js.map +1 -1
  689. package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
  690. package/dist/esm/components/resources/embeds/RelatedResourceSections.js +14 -2
  691. package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
  692. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +61 -1
  693. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
  694. package/dist/esm/components/resources/embeds/ResourceEmbeds.js +151 -15
  695. package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
  696. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts +11 -0
  697. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts.map +1 -1
  698. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js +13 -0
  699. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js.map +1 -1
  700. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts +24 -1
  701. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts.map +1 -1
  702. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js +47 -3
  703. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js.map +1 -1
  704. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.d.ts +35 -0
  705. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.d.ts.map +1 -0
  706. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.js +36 -0
  707. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.js.map +1 -0
  708. package/dist/esm/components/resources/resource-header-geometry.d.ts +19 -0
  709. package/dist/esm/components/resources/resource-header-geometry.d.ts.map +1 -0
  710. package/dist/esm/components/resources/resource-header-geometry.js +19 -0
  711. package/dist/esm/components/resources/resource-header-geometry.js.map +1 -0
  712. package/dist/esm/components/resources/resourceLayout.utils.d.ts +28 -2
  713. package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
  714. package/dist/esm/components/resources/resourceLayout.utils.js +45 -12
  715. package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
  716. package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
  717. package/dist/esm/components/resources/skeleton/ArrayField.js +10 -0
  718. package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
  719. package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts +20 -4
  720. package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts.map +1 -1
  721. package/dist/esm/components/resources/skeleton/DisplayLayout.js +19 -2
  722. package/dist/esm/components/resources/skeleton/DisplayLayout.js.map +1 -1
  723. package/dist/esm/components/resources/skeleton/FieldTiles.d.ts +48 -0
  724. package/dist/esm/components/resources/skeleton/FieldTiles.d.ts.map +1 -0
  725. package/dist/esm/components/resources/skeleton/FieldTiles.js +51 -0
  726. package/dist/esm/components/resources/skeleton/FieldTiles.js.map +1 -0
  727. package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
  728. package/dist/esm/components/resources/skeleton/FormLayout.js +2 -1
  729. package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
  730. package/dist/esm/components/resources/skeleton/Group.d.ts.map +1 -1
  731. package/dist/esm/components/resources/skeleton/Group.js +5 -2
  732. package/dist/esm/components/resources/skeleton/Group.js.map +1 -1
  733. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts +77 -14
  734. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts.map +1 -1
  735. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js +98 -25
  736. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js.map +1 -1
  737. package/dist/esm/components/resources/skeleton/Section.d.ts +7 -0
  738. package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
  739. package/dist/esm/components/resources/skeleton/Section.js +9 -3
  740. package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
  741. package/dist/esm/components/resources/skeleton/SummaryLayout.d.ts +3 -3
  742. package/dist/esm/components/resources/skeleton/SummaryLayout.js +3 -3
  743. package/dist/esm/components/resources/skeleton/SummaryLayout.js.map +1 -1
  744. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +7 -5
  745. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
  746. package/dist/esm/components/resources/skeleton/WizardLayout.js +176 -65
  747. package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
  748. package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts +9 -1
  749. package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts.map +1 -1
  750. package/dist/esm/components/resources/skeleton/WizardLayoutContext.js +7 -0
  751. package/dist/esm/components/resources/skeleton/WizardLayoutContext.js.map +1 -1
  752. package/dist/esm/components/resources/skeleton/WizardStep.d.ts +1 -1
  753. package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
  754. package/dist/esm/components/resources/skeleton/WizardStep.js +9 -5
  755. package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
  756. package/dist/esm/components/resources/skeleton/section-consolidation.utils.d.ts.map +1 -1
  757. package/dist/esm/components/resources/skeleton/section-consolidation.utils.js +31 -2
  758. package/dist/esm/components/resources/skeleton/section-consolidation.utils.js.map +1 -1
  759. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
  760. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js +176 -61
  761. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
  762. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.d.ts.map +1 -1
  763. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js +14 -7
  764. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js.map +1 -1
  765. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.d.ts.map +1 -1
  766. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js +18 -1
  767. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js.map +1 -1
  768. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +8 -0
  769. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
  770. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js +3 -0
  771. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
  772. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
  773. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js +48 -17
  774. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
  775. package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
  776. package/dist/esm/components/sections/ContentSectionContainer.js +226 -74
  777. package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
  778. package/dist/esm/components/sections/ContentSectionContainer.labels.d.ts.map +1 -1
  779. package/dist/esm/components/sections/ContentSectionContainer.labels.js +2 -3
  780. package/dist/esm/components/sections/ContentSectionContainer.labels.js.map +1 -1
  781. package/dist/esm/components/sections/content-section.d.ts +2 -2
  782. package/dist/esm/components/sections/content-section.js.map +1 -1
  783. package/dist/esm/components/sections/section-grouping.shared.d.ts +19 -0
  784. package/dist/esm/components/sections/section-grouping.shared.d.ts.map +1 -1
  785. package/dist/esm/components/sections/section-grouping.shared.js +24 -0
  786. package/dist/esm/components/sections/section-grouping.shared.js.map +1 -1
  787. package/dist/esm/components/sections/section-legend-voice.context.d.ts +19 -0
  788. package/dist/esm/components/sections/section-legend-voice.context.d.ts.map +1 -0
  789. package/dist/esm/components/sections/section-legend-voice.context.js +21 -0
  790. package/dist/esm/components/sections/section-legend-voice.context.js.map +1 -0
  791. package/dist/esm/components/sections/section-legend-voice.d.ts +41 -0
  792. package/dist/esm/components/sections/section-legend-voice.d.ts.map +1 -0
  793. package/dist/esm/components/sections/section-legend-voice.js +67 -0
  794. package/dist/esm/components/sections/section-legend-voice.js.map +1 -0
  795. package/dist/esm/components/sections/stepper.d.ts +14 -0
  796. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  797. package/dist/esm/components/sections/stepper.js.map +1 -1
  798. package/dist/esm/components/sections/surface.d.ts.map +1 -1
  799. package/dist/esm/components/sections/surface.js +10 -2
  800. package/dist/esm/components/sections/surface.js.map +1 -1
  801. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.d.ts +39 -0
  802. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.d.ts.map +1 -0
  803. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.js +187 -0
  804. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.js.map +1 -0
  805. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.d.ts +3 -0
  806. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.d.ts.map +1 -0
  807. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.js +34 -0
  808. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.js.map +1 -0
  809. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +1 -1
  810. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +1 -1
  811. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -1
  812. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +8 -8
  813. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -1
  814. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.d.ts +43 -0
  815. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.d.ts.map +1 -0
  816. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.js +142 -0
  817. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.js.map +1 -0
  818. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.d.ts +3 -0
  819. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.d.ts.map +1 -0
  820. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.js +62 -0
  821. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.js.map +1 -0
  822. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +25 -8
  823. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
  824. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +275 -71
  825. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
  826. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
  827. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +91 -14
  828. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
  829. package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts +13 -8
  830. package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
  831. package/dist/esm/components/settings/AppPage_InvitationsSettings.js +95 -23
  832. package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
  833. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
  834. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js +25 -2
  835. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
  836. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.d.ts +67 -0
  837. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.d.ts.map +1 -0
  838. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.js +177 -0
  839. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.js.map +1 -0
  840. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.d.ts +3 -0
  841. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.d.ts.map +1 -0
  842. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.js +45 -0
  843. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.js.map +1 -0
  844. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.d.ts +35 -0
  845. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.d.ts.map +1 -0
  846. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.js +137 -0
  847. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.js.map +1 -0
  848. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.d.ts +3 -0
  849. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.d.ts.map +1 -0
  850. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.js +38 -0
  851. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.js.map +1 -0
  852. package/dist/esm/components/settings/SettingsHub.d.ts +3 -3
  853. package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
  854. package/dist/esm/components/settings/SettingsHub.js +98 -48
  855. package/dist/esm/components/settings/SettingsHub.js.map +1 -1
  856. package/dist/esm/components/settings/SettingsHub.labels.d.ts.map +1 -1
  857. package/dist/esm/components/settings/SettingsHub.labels.js +2 -0
  858. package/dist/esm/components/settings/SettingsHub.labels.js.map +1 -1
  859. package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
  860. package/dist/esm/components/settings/SettingsResourceOperationPanel.js +21 -1
  861. package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
  862. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +24 -5
  863. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -1
  864. package/dist/esm/components/settings/useOwnerProviderConnections.js +67 -9
  865. package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -1
  866. package/dist/esm/components/views/chart-view/ChartView.js +3 -3
  867. package/dist/esm/components/views/chart-view/ChartView.js.map +1 -1
  868. package/dist/esm/components/views/chart-view/chart-export.utils.d.ts.map +1 -1
  869. package/dist/esm/components/views/chart-view/chart-export.utils.js +2 -9
  870. package/dist/esm/components/views/chart-view/chart-export.utils.js.map +1 -1
  871. package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts +1 -0
  872. package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts.map +1 -1
  873. package/dist/esm/components/views/chart-view/enum-color-bridge.js +10 -1
  874. package/dist/esm/components/views/chart-view/enum-color-bridge.js.map +1 -1
  875. package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts +8 -6
  876. package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts.map +1 -1
  877. package/dist/esm/components/views/chart-view/option-builder/builder-utils.js +10 -8
  878. package/dist/esm/components/views/chart-view/option-builder/builder-utils.js.map +1 -1
  879. package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js +2 -2
  880. package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js.map +1 -1
  881. package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js +1 -1
  882. package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js.map +1 -1
  883. package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js +1 -1
  884. package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js.map +1 -1
  885. package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js +1 -1
  886. package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js.map +1 -1
  887. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts +6 -0
  888. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts.map +1 -1
  889. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.js.map +1 -1
  890. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts +3 -1
  891. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts.map +1 -1
  892. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js +4 -1
  893. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js.map +1 -1
  894. package/dist/esm/components/views/composite-view/CompositeLayout.d.ts +0 -1
  895. package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
  896. package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
  897. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.d.ts.map +1 -1
  898. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js +24 -1
  899. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js.map +1 -1
  900. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.d.ts +29 -0
  901. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.d.ts.map +1 -0
  902. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.js +104 -0
  903. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.js.map +1 -0
  904. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts +16 -5
  905. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts.map +1 -1
  906. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js +219 -230
  907. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js.map +1 -1
  908. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts +5 -0
  909. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts.map +1 -1
  910. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js +15 -13
  911. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js.map +1 -1
  912. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.d.ts +13 -0
  913. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.d.ts.map +1 -0
  914. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.js +44 -0
  915. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.js.map +1 -0
  916. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -1
  917. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +6 -2
  918. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -1
  919. package/dist/esm/core/app-shell/app-shell.schemas.d.ts +64 -9
  920. package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
  921. package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
  922. package/dist/esm/core/app-shell/hosted-components.utils.d.ts +11 -1
  923. package/dist/esm/core/app-shell/hosted-components.utils.d.ts.map +1 -1
  924. package/dist/esm/core/app-shell/hosted-components.utils.js +25 -0
  925. package/dist/esm/core/app-shell/hosted-components.utils.js.map +1 -1
  926. package/dist/esm/core/app-shell/shell-layout.d.ts +138 -0
  927. package/dist/esm/core/app-shell/shell-layout.d.ts.map +1 -0
  928. package/dist/esm/core/app-shell/shell-layout.js +143 -0
  929. package/dist/esm/core/app-shell/shell-layout.js.map +1 -0
  930. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.d.ts +13 -0
  931. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.d.ts.map +1 -0
  932. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.js +49 -0
  933. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.js.map +1 -0
  934. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.d.ts +95 -0
  935. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.d.ts.map +1 -0
  936. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.js +316 -0
  937. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.js.map +1 -0
  938. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.d.ts +217 -0
  939. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.d.ts.map +1 -0
  940. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.js +197 -0
  941. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.js.map +1 -0
  942. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.d.ts +46 -0
  943. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.d.ts.map +1 -0
  944. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.js +139 -0
  945. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.js.map +1 -0
  946. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.d.ts +108 -0
  947. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.d.ts.map +1 -0
  948. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.js +423 -0
  949. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.js.map +1 -0
  950. package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
  951. package/dist/esm/core/app-shell/useAppShellLayout.js +6 -1
  952. package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
  953. package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
  954. package/dist/esm/core/app-shell/usePublicShellLayout.js +11 -4
  955. package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
  956. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +18 -1
  957. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
  958. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +26 -4
  959. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
  960. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.d.ts.map +1 -1
  961. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js +3 -22
  962. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js.map +1 -1
  963. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts +19 -3
  964. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts.map +1 -1
  965. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js +100 -13
  966. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js.map +1 -1
  967. package/dist/esm/core/automated-layout/summary-value-naming.utils.d.ts +67 -0
  968. package/dist/esm/core/automated-layout/summary-value-naming.utils.d.ts.map +1 -0
  969. package/dist/esm/core/automated-layout/summary-value-naming.utils.js +100 -0
  970. package/dist/esm/core/automated-layout/summary-value-naming.utils.js.map +1 -0
  971. package/dist/esm/core/billing/BillingContext.d.ts +0 -17
  972. package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
  973. package/dist/esm/core/billing/BillingContext.js +6 -1
  974. package/dist/esm/core/billing/BillingContext.js.map +1 -1
  975. package/dist/esm/core/branding/OrganizationBrandingPublisher.d.ts +2 -0
  976. package/dist/esm/core/branding/OrganizationBrandingPublisher.d.ts.map +1 -0
  977. package/dist/esm/core/branding/OrganizationBrandingPublisher.js +78 -0
  978. package/dist/esm/core/branding/OrganizationBrandingPublisher.js.map +1 -0
  979. package/dist/esm/core/branding/useBrandIdentity.d.ts +21 -0
  980. package/dist/esm/core/branding/useBrandIdentity.d.ts.map +1 -1
  981. package/dist/esm/core/branding/useBrandIdentity.js +31 -5
  982. package/dist/esm/core/branding/useBrandIdentity.js.map +1 -1
  983. package/dist/esm/core/branding/useBrandPresentation.d.ts +5 -0
  984. package/dist/esm/core/branding/useBrandPresentation.d.ts.map +1 -1
  985. package/dist/esm/core/branding/useBrandPresentation.js +1 -0
  986. package/dist/esm/core/branding/useBrandPresentation.js.map +1 -1
  987. package/dist/esm/core/branding/useDisplayableImageUrl.d.ts +4 -0
  988. package/dist/esm/core/branding/useDisplayableImageUrl.d.ts.map +1 -0
  989. package/dist/esm/core/branding/useDisplayableImageUrl.js +66 -0
  990. package/dist/esm/core/branding/useDisplayableImageUrl.js.map +1 -0
  991. package/dist/esm/core/branding/useOrganizationDocumentTitle.d.ts +2 -0
  992. package/dist/esm/core/branding/useOrganizationDocumentTitle.d.ts.map +1 -0
  993. package/dist/esm/core/branding/useOrganizationDocumentTitle.js +23 -0
  994. package/dist/esm/core/branding/useOrganizationDocumentTitle.js.map +1 -0
  995. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.d.ts +16 -0
  996. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.d.ts.map +1 -0
  997. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.js +35 -0
  998. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.js.map +1 -0
  999. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
  1000. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +8 -0
  1001. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
  1002. package/dist/esm/core/components-registry/component-resolver.frontend.helper.d.ts.map +1 -1
  1003. package/dist/esm/core/components-registry/component-resolver.frontend.helper.js +34 -5
  1004. package/dist/esm/core/components-registry/component-resolver.frontend.helper.js.map +1 -1
  1005. package/dist/esm/core/components-registry/register-framework-layouts.d.ts.map +1 -1
  1006. package/dist/esm/core/components-registry/register-framework-layouts.js +4 -0
  1007. package/dist/esm/core/components-registry/register-framework-layouts.js.map +1 -1
  1008. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +36 -0
  1009. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
  1010. package/dist/esm/core/config/app-configuration-frontend.schemas.js +29 -2
  1011. package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
  1012. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +10 -16
  1013. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
  1014. package/dist/esm/core/config/app-level-components.frontend.schemas.js +10 -16
  1015. package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
  1016. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +12 -8
  1017. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts.map +1 -1
  1018. package/dist/esm/core/config/chart-view.frontend.schemas.js +10 -0
  1019. package/dist/esm/core/config/chart-view.frontend.schemas.js.map +1 -1
  1020. package/dist/esm/core/config/composite-view.schemas.d.ts +2 -2
  1021. package/dist/esm/core/config/config-merge-utilities.d.ts +31 -3
  1022. package/dist/esm/core/config/config-merge-utilities.d.ts.map +1 -1
  1023. package/dist/esm/core/config/config-merge-utilities.js +61 -7
  1024. package/dist/esm/core/config/config-merge-utilities.js.map +1 -1
  1025. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.d.ts +83 -0
  1026. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.d.ts.map +1 -0
  1027. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.js +100 -0
  1028. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.js.map +1 -0
  1029. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.d.ts +69 -0
  1030. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.d.ts.map +1 -0
  1031. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.js +65 -0
  1032. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.js.map +1 -0
  1033. package/dist/esm/core/config/engine-settings-destinations.d.ts +13 -1
  1034. package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
  1035. package/dist/esm/core/config/engine-settings-destinations.js +588 -155
  1036. package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
  1037. package/dist/esm/core/config/execution-view.schemas.d.ts +17 -3
  1038. package/dist/esm/core/config/execution-view.schemas.d.ts.map +1 -1
  1039. package/dist/esm/core/config/execution-view.schemas.js +1 -1
  1040. package/dist/esm/core/config/execution-view.schemas.js.map +1 -1
  1041. package/dist/esm/core/config/flows-actors-view.schemas.d.ts +12 -2
  1042. package/dist/esm/core/config/flows-actors-view.schemas.d.ts.map +1 -1
  1043. package/dist/esm/core/config/flows-actors-view.schemas.js +13 -1
  1044. package/dist/esm/core/config/flows-actors-view.schemas.js.map +1 -1
  1045. package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts +12 -11
  1046. package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts.map +1 -1
  1047. package/dist/esm/core/config/inserted-view-launcher.schemas.js +14 -13
  1048. package/dist/esm/core/config/inserted-view-launcher.schemas.js.map +1 -1
  1049. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +77 -27
  1050. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
  1051. package/dist/esm/core/config/launcher-items.frontend.schemas.js +18 -13
  1052. package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
  1053. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.d.ts +79 -0
  1054. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.d.ts.map +1 -0
  1055. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.js +95 -0
  1056. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.js.map +1 -0
  1057. package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts +19 -7
  1058. package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts.map +1 -1
  1059. package/dist/esm/core/config/settings-hub-gating.frontend.utils.js +45 -10
  1060. package/dist/esm/core/config/settings-hub-gating.frontend.utils.js.map +1 -1
  1061. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts +2 -2
  1062. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts.map +1 -1
  1063. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js +38 -5
  1064. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js.map +1 -1
  1065. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +94 -10
  1066. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
  1067. package/dist/esm/core/config/settings-hub.frontend.schemas.js +40 -3
  1068. package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
  1069. package/dist/esm/core/config/useSettingsHubConfig.d.ts.map +1 -1
  1070. package/dist/esm/core/config/useSettingsHubConfig.js +4 -1
  1071. package/dist/esm/core/config/useSettingsHubConfig.js.map +1 -1
  1072. package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts +2 -2
  1073. package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts.map +1 -1
  1074. package/dist/esm/core/config/useVisibleSettingsHubConfig.js +7 -8
  1075. package/dist/esm/core/config/useVisibleSettingsHubConfig.js.map +1 -1
  1076. package/dist/esm/core/config/verify-launcher-content.d.ts +16 -2
  1077. package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
  1078. package/dist/esm/core/config/verify-launcher-content.js +64 -4
  1079. package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
  1080. package/dist/esm/core/config/verify-settings-hub-content.d.ts +4 -0
  1081. package/dist/esm/core/config/verify-settings-hub-content.d.ts.map +1 -1
  1082. package/dist/esm/core/config/verify-settings-hub-content.js +34 -0
  1083. package/dist/esm/core/config/verify-settings-hub-content.js.map +1 -1
  1084. package/dist/esm/core/enums/common-enum-registry.d.ts +16 -23
  1085. package/dist/esm/core/enums/common-enum-registry.d.ts.map +1 -1
  1086. package/dist/esm/core/enums/common-enum-registry.js +26 -29
  1087. package/dist/esm/core/enums/common-enum-registry.js.map +1 -1
  1088. package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
  1089. package/dist/esm/core/errors/GlobalErrorHandler.js +71 -9
  1090. package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
  1091. package/dist/esm/core/errors/error-management.frontend.service.d.ts +0 -4
  1092. package/dist/esm/core/errors/error-management.frontend.service.d.ts.map +1 -1
  1093. package/dist/esm/core/errors/error-management.frontend.service.js +5 -8
  1094. package/dist/esm/core/errors/error-management.frontend.service.js.map +1 -1
  1095. package/dist/esm/core/errors/errors.frontend.schemas.d.ts +21 -10
  1096. package/dist/esm/core/errors/errors.frontend.schemas.d.ts.map +1 -1
  1097. package/dist/esm/core/errors/errors.frontend.schemas.js.map +1 -1
  1098. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts +35 -0
  1099. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts.map +1 -1
  1100. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +44 -5
  1101. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
  1102. package/dist/esm/core/events/EventBusContext.js.map +1 -1
  1103. package/dist/esm/core/events/NotificationContext.d.ts +13 -1
  1104. package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
  1105. package/dist/esm/core/events/NotificationContext.js +89 -22
  1106. package/dist/esm/core/events/NotificationContext.js.map +1 -1
  1107. package/dist/esm/core/events/events.frontend.schemas.d.ts +68 -4
  1108. package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
  1109. package/dist/esm/core/events/events.frontend.schemas.js +67 -3
  1110. package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
  1111. package/dist/esm/core/events/useNotificationPreferenceKinds.d.ts +9 -0
  1112. package/dist/esm/core/events/useNotificationPreferenceKinds.d.ts.map +1 -0
  1113. package/dist/esm/core/events/useNotificationPreferenceKinds.js +50 -0
  1114. package/dist/esm/core/events/useNotificationPreferenceKinds.js.map +1 -0
  1115. package/dist/esm/core/execution/useExecution.js +1 -1
  1116. package/dist/esm/core/execution/useExecution.js.map +1 -1
  1117. package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
  1118. package/dist/esm/core/execution/useExecutionParticipationRMM.js +4 -0
  1119. package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
  1120. package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
  1121. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +3 -3
  1122. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
  1123. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.d.ts +52 -0
  1124. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.d.ts.map +1 -0
  1125. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.js +88 -0
  1126. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.js.map +1 -0
  1127. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts +20 -2
  1128. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts.map +1 -1
  1129. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js +18 -1
  1130. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js.map +1 -1
  1131. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +7 -5
  1132. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -1
  1133. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +9 -6
  1134. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -1
  1135. package/dist/esm/core/features/FeaturesContext.d.ts +9 -1
  1136. package/dist/esm/core/features/FeaturesContext.d.ts.map +1 -1
  1137. package/dist/esm/core/features/FeaturesContext.js +38 -12
  1138. package/dist/esm/core/features/FeaturesContext.js.map +1 -1
  1139. package/dist/esm/core/features/useOperationFeatureAvailability.d.ts.map +1 -1
  1140. package/dist/esm/core/features/useOperationFeatureAvailability.js +4 -0
  1141. package/dist/esm/core/features/useOperationFeatureAvailability.js.map +1 -1
  1142. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +90 -33
  1143. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
  1144. package/dist/esm/core/flows-actors/FlowsActorsContext.js +153 -100
  1145. package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
  1146. package/dist/esm/core/flows-actors/conversation-history.model.d.ts +41 -0
  1147. package/dist/esm/core/flows-actors/conversation-history.model.d.ts.map +1 -0
  1148. package/dist/esm/core/flows-actors/conversation-history.model.js +65 -0
  1149. package/dist/esm/core/flows-actors/conversation-history.model.js.map +1 -0
  1150. package/dist/esm/core/flows-actors/conversation-thread.model.d.ts +144 -0
  1151. package/dist/esm/core/flows-actors/conversation-thread.model.d.ts.map +1 -0
  1152. package/dist/esm/core/flows-actors/conversation-thread.model.js +315 -0
  1153. package/dist/esm/core/flows-actors/conversation-thread.model.js.map +1 -0
  1154. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.d.ts +29 -0
  1155. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.d.ts.map +1 -0
  1156. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.js +67 -0
  1157. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.js.map +1 -0
  1158. package/dist/esm/core/flows-actors/graph-view.layout.d.ts +77 -0
  1159. package/dist/esm/core/flows-actors/graph-view.layout.d.ts.map +1 -0
  1160. package/dist/esm/core/flows-actors/graph-view.layout.js +169 -0
  1161. package/dist/esm/core/flows-actors/graph-view.layout.js.map +1 -0
  1162. package/dist/esm/core/flows-actors/graph-view.model.d.ts +245 -0
  1163. package/dist/esm/core/flows-actors/graph-view.model.d.ts.map +1 -0
  1164. package/dist/esm/core/flows-actors/graph-view.model.js +414 -0
  1165. package/dist/esm/core/flows-actors/graph-view.model.js.map +1 -0
  1166. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.d.ts +12 -0
  1167. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.d.ts.map +1 -0
  1168. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.js +20 -0
  1169. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.js.map +1 -0
  1170. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +36 -11
  1171. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -1
  1172. package/dist/esm/core/flows-actors/usePendingDecisions.js +114 -29
  1173. package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -1
  1174. package/dist/esm/core/guidance/GuidanceContext.d.ts.map +1 -1
  1175. package/dist/esm/core/guidance/GuidanceContext.js +1 -2
  1176. package/dist/esm/core/guidance/GuidanceContext.js.map +1 -1
  1177. package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js +2 -2
  1178. package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js.map +1 -1
  1179. package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts +3 -9
  1180. package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts.map +1 -1
  1181. package/dist/esm/core/hotkey/DefaultHotkeyHandler.js +3 -15
  1182. package/dist/esm/core/hotkey/DefaultHotkeyHandler.js.map +1 -1
  1183. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.d.ts +2 -2
  1184. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js +2 -2
  1185. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js.map +1 -1
  1186. package/dist/esm/core/i18n/I18nContext.d.ts +52 -3
  1187. package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
  1188. package/dist/esm/core/i18n/I18nContext.js +80 -7
  1189. package/dist/esm/core/i18n/I18nContext.js.map +1 -1
  1190. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts +82 -1
  1191. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts.map +1 -1
  1192. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js +121 -6
  1193. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js.map +1 -1
  1194. package/dist/esm/core/i18n/useI18n.d.ts +3 -1
  1195. package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
  1196. package/dist/esm/core/i18n/useI18n.js +3 -1
  1197. package/dist/esm/core/i18n/useI18n.js.map +1 -1
  1198. package/dist/esm/core/icons/IconRegistryBridge.d.ts +38 -4
  1199. package/dist/esm/core/icons/IconRegistryBridge.d.ts.map +1 -1
  1200. package/dist/esm/core/icons/IconRegistryBridge.js +103 -63
  1201. package/dist/esm/core/icons/IconRegistryBridge.js.map +1 -1
  1202. package/dist/esm/core/icons/IconRegistryContext.d.ts.map +1 -1
  1203. package/dist/esm/core/icons/IconRegistryContext.js +41 -0
  1204. package/dist/esm/core/icons/IconRegistryContext.js.map +1 -1
  1205. package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts +44 -0
  1206. package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts.map +1 -1
  1207. package/dist/esm/core/icons/icon-registry.frontend.schemas.js +46 -0
  1208. package/dist/esm/core/icons/icon-registry.frontend.schemas.js.map +1 -1
  1209. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +2 -2
  1210. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
  1211. package/dist/esm/core/navigation/NavigationContentAreas.d.ts +64 -20
  1212. package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
  1213. package/dist/esm/core/navigation/NavigationContentAreas.js +82 -51
  1214. package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
  1215. package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
  1216. package/dist/esm/core/navigation/NavigationContext.js +130 -23
  1217. package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
  1218. package/dist/esm/core/navigation/NavigationRequestBridge.d.ts +4 -0
  1219. package/dist/esm/core/navigation/NavigationRequestBridge.d.ts.map +1 -1
  1220. package/dist/esm/core/navigation/NavigationRequestBridge.js +17 -1
  1221. package/dist/esm/core/navigation/NavigationRequestBridge.js.map +1 -1
  1222. package/dist/esm/core/navigation/ZoneChromeContext.d.ts +80 -0
  1223. package/dist/esm/core/navigation/ZoneChromeContext.d.ts.map +1 -0
  1224. package/dist/esm/core/navigation/ZoneChromeContext.js +130 -0
  1225. package/dist/esm/core/navigation/ZoneChromeContext.js.map +1 -0
  1226. package/dist/esm/core/navigation/launcher-resolution.d.ts +102 -2
  1227. package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
  1228. package/dist/esm/core/navigation/launcher-resolution.js +194 -9
  1229. package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
  1230. package/dist/esm/core/navigation/launcher-runtime-availability.d.ts +35 -5
  1231. package/dist/esm/core/navigation/launcher-runtime-availability.d.ts.map +1 -1
  1232. package/dist/esm/core/navigation/launcher-runtime-availability.js +147 -18
  1233. package/dist/esm/core/navigation/launcher-runtime-availability.js.map +1 -1
  1234. package/dist/esm/core/navigation/navigation-cascade.d.ts +44 -14
  1235. package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -1
  1236. package/dist/esm/core/navigation/navigation-cascade.js +87 -19
  1237. package/dist/esm/core/navigation/navigation-cascade.js.map +1 -1
  1238. package/dist/esm/core/navigation/navigation-commit.d.ts +45 -0
  1239. package/dist/esm/core/navigation/navigation-commit.d.ts.map +1 -0
  1240. package/dist/esm/core/navigation/navigation-commit.js +68 -0
  1241. package/dist/esm/core/navigation/navigation-commit.js.map +1 -0
  1242. package/dist/esm/core/navigation/navigation-controller-internals.d.ts +54 -3
  1243. package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -1
  1244. package/dist/esm/core/navigation/navigation-controller-internals.js +91 -3
  1245. package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -1
  1246. package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +3 -3
  1247. package/dist/esm/core/navigation/navigation-policy-resolver.service.js +3 -3
  1248. package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
  1249. package/dist/esm/core/navigation/navigation.utils.d.ts +95 -22
  1250. package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
  1251. package/dist/esm/core/navigation/navigation.utils.js +190 -63
  1252. package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
  1253. package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts +8 -0
  1254. package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts.map +1 -0
  1255. package/dist/esm/core/navigation/sidebar-resource-browser-operation.js +27 -0
  1256. package/dist/esm/core/navigation/sidebar-resource-browser-operation.js.map +1 -0
  1257. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.d.ts +64 -0
  1258. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.d.ts.map +1 -0
  1259. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.js +212 -0
  1260. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.js.map +1 -0
  1261. package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts +1 -1
  1262. package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts.map +1 -1
  1263. package/dist/esm/core/navigation/useLauncherResolutionContext.js +17 -2
  1264. package/dist/esm/core/navigation/useLauncherResolutionContext.js.map +1 -1
  1265. package/dist/esm/core/navigation/useNavigationController.d.ts +1 -0
  1266. package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
  1267. package/dist/esm/core/navigation/useNavigationController.js +51 -67
  1268. package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
  1269. package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -1
  1270. package/dist/esm/core/navigation/useNavigationRouterSync.js +17 -1
  1271. package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -1
  1272. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.d.ts +17 -0
  1273. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.d.ts.map +1 -0
  1274. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.js +32 -0
  1275. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.js.map +1 -0
  1276. package/dist/esm/core/navigation/zone-collapse.d.ts +2 -1
  1277. package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -1
  1278. package/dist/esm/core/navigation/zone-collapse.js +2 -1
  1279. package/dist/esm/core/navigation/zone-collapse.js.map +1 -1
  1280. package/dist/esm/core/navigation/zone-entry-organization.d.ts +34 -0
  1281. package/dist/esm/core/navigation/zone-entry-organization.d.ts.map +1 -0
  1282. package/dist/esm/core/navigation/zone-entry-organization.js +77 -0
  1283. package/dist/esm/core/navigation/zone-entry-organization.js.map +1 -0
  1284. package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts +15 -0
  1285. package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts.map +1 -1
  1286. package/dist/esm/core/requests/auth-refresh-resilience.frontend.js +24 -0
  1287. package/dist/esm/core/requests/auth-refresh-resilience.frontend.js.map +1 -1
  1288. package/dist/esm/core/requests/automatic-resend-safety.frontend.d.ts +74 -0
  1289. package/dist/esm/core/requests/automatic-resend-safety.frontend.d.ts.map +1 -0
  1290. package/dist/esm/core/requests/automatic-resend-safety.frontend.js +52 -0
  1291. package/dist/esm/core/requests/automatic-resend-safety.frontend.js.map +1 -0
  1292. package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
  1293. package/dist/esm/core/requests/websockets/WebSocketContext.js +31 -0
  1294. package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
  1295. package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
  1296. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js +2 -0
  1297. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
  1298. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +162 -98
  1299. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
  1300. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +283 -157
  1301. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
  1302. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts +9 -13
  1303. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
  1304. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +45 -97
  1305. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
  1306. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +25 -5
  1307. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
  1308. package/dist/esm/core/requests/wildo-http-client.frontend.service.js +56 -11
  1309. package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
  1310. package/dist/esm/core/resources/ScopedResourceRegistryProvider.d.ts.map +1 -1
  1311. package/dist/esm/core/resources/ScopedResourceRegistryProvider.js +1 -2
  1312. package/dist/esm/core/resources/ScopedResourceRegistryProvider.js.map +1 -1
  1313. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.d.ts +14 -0
  1314. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.d.ts.map +1 -0
  1315. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.js +29 -0
  1316. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.js.map +1 -0
  1317. package/dist/esm/core/resources/caller-identity-record.frontend.utils.d.ts +23 -0
  1318. package/dist/esm/core/resources/caller-identity-record.frontend.utils.d.ts.map +1 -0
  1319. package/dist/esm/core/resources/caller-identity-record.frontend.utils.js +26 -0
  1320. package/dist/esm/core/resources/caller-identity-record.frontend.utils.js.map +1 -0
  1321. package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts +1 -1
  1322. package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts.map +1 -1
  1323. package/dist/esm/core/resources/collection-export-url.frontend.utils.js +34 -16
  1324. package/dist/esm/core/resources/collection-export-url.frontend.utils.js.map +1 -1
  1325. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts +54 -11
  1326. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts.map +1 -1
  1327. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js +131 -63
  1328. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js.map +1 -1
  1329. package/dist/esm/core/resources/date-filter-window.frontend.utils.d.ts +58 -0
  1330. package/dist/esm/core/resources/date-filter-window.frontend.utils.d.ts.map +1 -0
  1331. package/dist/esm/core/resources/date-filter-window.frontend.utils.js +70 -0
  1332. package/dist/esm/core/resources/date-filter-window.frontend.utils.js.map +1 -0
  1333. package/dist/esm/core/resources/frontend-resource.utils.d.ts +146 -7
  1334. package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
  1335. package/dist/esm/core/resources/frontend-resource.utils.js +194 -22
  1336. package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
  1337. package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts +18 -4
  1338. package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts.map +1 -1
  1339. package/dist/esm/core/resources/hooks/useOperationEnabled.js +26 -6
  1340. package/dist/esm/core/resources/hooks/useOperationEnabled.js.map +1 -1
  1341. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +95 -2
  1342. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
  1343. package/dist/esm/core/resources/operation-semantics.frontend.utils.js +126 -13
  1344. package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
  1345. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.d.ts +45 -0
  1346. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.d.ts.map +1 -0
  1347. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.js +46 -0
  1348. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.js.map +1 -0
  1349. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.d.ts +46 -0
  1350. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.d.ts.map +1 -0
  1351. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.js +86 -0
  1352. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.js.map +1 -0
  1353. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.d.ts.map +1 -1
  1354. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js +5 -1
  1355. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js.map +1 -1
  1356. package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts +28 -1
  1357. package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts.map +1 -1
  1358. package/dist/esm/core/resources/resource-addressability.frontend.utils.js +43 -3
  1359. package/dist/esm/core/resources/resource-addressability.frontend.utils.js.map +1 -1
  1360. package/dist/esm/core/resources/resource-discriminators.frontend.utils.d.ts +26 -0
  1361. package/dist/esm/core/resources/resource-discriminators.frontend.utils.d.ts.map +1 -0
  1362. package/dist/esm/core/resources/resource-discriminators.frontend.utils.js +37 -0
  1363. package/dist/esm/core/resources/resource-discriminators.frontend.utils.js.map +1 -0
  1364. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +40 -8
  1365. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
  1366. package/dist/esm/core/resources/resources-repository.frontend.service.js +333 -73
  1367. package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
  1368. package/dist/esm/core/resources/resources.frontend.schemas.d.ts +175 -65
  1369. package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
  1370. package/dist/esm/core/resources/resources.frontend.schemas.js +245 -75
  1371. package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
  1372. package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts +9 -1
  1373. package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts.map +1 -1
  1374. package/dist/esm/core/resources/rmm/HttpTransportAdapter.js +57 -22
  1375. package/dist/esm/core/resources/rmm/HttpTransportAdapter.js.map +1 -1
  1376. package/dist/esm/core/resources/rmm/RMMRegistry.d.ts.map +1 -1
  1377. package/dist/esm/core/resources/rmm/RMMRegistry.js +1 -0
  1378. package/dist/esm/core/resources/rmm/RMMRegistry.js.map +1 -1
  1379. package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts +3 -0
  1380. package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
  1381. package/dist/esm/core/resources/rmm/ResourceMutationManager.js +94 -35
  1382. package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
  1383. package/dist/esm/core/resources/rmm/types.d.ts +58 -6
  1384. package/dist/esm/core/resources/rmm/types.d.ts.map +1 -1
  1385. package/dist/esm/core/resources/rmm/types.js +17 -0
  1386. package/dist/esm/core/resources/rmm/types.js.map +1 -1
  1387. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +43 -6
  1388. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
  1389. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js +49 -6
  1390. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
  1391. package/dist/esm/core/resources/rmm/useResourceMutationManager.d.ts.map +1 -1
  1392. package/dist/esm/core/resources/rmm/useResourceMutationManager.js +2 -0
  1393. package/dist/esm/core/resources/rmm/useResourceMutationManager.js.map +1 -1
  1394. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +2 -0
  1395. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
  1396. package/dist/esm/core/resources/rmm/useResourceRMM.js +10 -3
  1397. package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
  1398. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.d.ts +22 -0
  1399. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.d.ts.map +1 -0
  1400. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.js +31 -0
  1401. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.js.map +1 -0
  1402. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.d.ts +36 -0
  1403. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.d.ts.map +1 -0
  1404. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.js +88 -0
  1405. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.js.map +1 -0
  1406. package/dist/esm/core/resources/useBulkJobProgress.d.ts +6 -0
  1407. package/dist/esm/core/resources/useBulkJobProgress.d.ts.map +1 -1
  1408. package/dist/esm/core/resources/useBulkJobProgress.js +1 -0
  1409. package/dist/esm/core/resources/useBulkJobProgress.js.map +1 -1
  1410. package/dist/esm/core/resources/useCollectionFilterPresetScope.d.ts +14 -0
  1411. package/dist/esm/core/resources/useCollectionFilterPresetScope.d.ts.map +1 -0
  1412. package/dist/esm/core/resources/useCollectionFilterPresetScope.js +29 -0
  1413. package/dist/esm/core/resources/useCollectionFilterPresetScope.js.map +1 -0
  1414. package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts +7 -6
  1415. package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts.map +1 -1
  1416. package/dist/esm/core/resources/useHostlessResourceNavigation.js +35 -21
  1417. package/dist/esm/core/resources/useHostlessResourceNavigation.js.map +1 -1
  1418. package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -1
  1419. package/dist/esm/core/resources/useOperationDirectExecution.js +25 -10
  1420. package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -1
  1421. package/dist/esm/core/resources/useRecordSharing.d.ts +58 -0
  1422. package/dist/esm/core/resources/useRecordSharing.d.ts.map +1 -0
  1423. package/dist/esm/core/resources/useRecordSharing.js +220 -0
  1424. package/dist/esm/core/resources/useRecordSharing.js.map +1 -0
  1425. package/dist/esm/core/resources/useResourceLabels.d.ts +4 -1
  1426. package/dist/esm/core/resources/useResourceLabels.d.ts.map +1 -1
  1427. package/dist/esm/core/resources/useResourceLabels.js +31 -32
  1428. package/dist/esm/core/resources/useResourceLabels.js.map +1 -1
  1429. package/dist/esm/core/resources/useResourceOperationActions.d.ts +23 -4
  1430. package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
  1431. package/dist/esm/core/resources/useResourceOperationActions.js +219 -51
  1432. package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
  1433. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts +10 -1
  1434. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts.map +1 -1
  1435. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js +7 -2
  1436. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js.map +1 -1
  1437. package/dist/esm/core/resources/useResourceOperationSurface.d.ts +5 -5
  1438. package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
  1439. package/dist/esm/core/resources/useResourceOperationSurface.js +5 -4
  1440. package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
  1441. package/dist/esm/core/resources/useResourceSelection.d.ts +6 -0
  1442. package/dist/esm/core/resources/useResourceSelection.d.ts.map +1 -1
  1443. package/dist/esm/core/resources/useResourceSelection.js.map +1 -1
  1444. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts +47 -0
  1445. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts.map +1 -1
  1446. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js +117 -4
  1447. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js.map +1 -1
  1448. package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
  1449. package/dist/esm/core/runtime/AppRouter.js +5 -2
  1450. package/dist/esm/core/runtime/AppRouter.js.map +1 -1
  1451. package/dist/esm/core/runtime/ApplicationMainContext.d.ts +10 -1
  1452. package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
  1453. package/dist/esm/core/runtime/ApplicationMainContext.js +17 -2
  1454. package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
  1455. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +5 -0
  1456. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
  1457. package/dist/esm/core/runtime/domain-module.frontend.definitions.js +4 -2
  1458. package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
  1459. package/dist/esm/core/runtime/routes.frontend.definitions.d.ts +19 -3
  1460. package/dist/esm/core/runtime/routes.frontend.definitions.d.ts.map +1 -1
  1461. package/dist/esm/core/runtime/routes.frontend.definitions.js +23 -7
  1462. package/dist/esm/core/runtime/routes.frontend.definitions.js.map +1 -1
  1463. package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
  1464. package/dist/esm/core/runtime/start-application.frontend.service.js +3 -1
  1465. package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
  1466. package/dist/esm/core/scope/AppScopeContext.d.ts +7 -2
  1467. package/dist/esm/core/scope/AppScopeContext.d.ts.map +1 -1
  1468. package/dist/esm/core/scope/AppScopeContext.js +56 -10
  1469. package/dist/esm/core/scope/AppScopeContext.js.map +1 -1
  1470. package/dist/esm/core/security/ApplicationRoleTablesContext.d.ts +23 -0
  1471. package/dist/esm/core/security/ApplicationRoleTablesContext.d.ts.map +1 -0
  1472. package/dist/esm/core/security/ApplicationRoleTablesContext.js +27 -0
  1473. package/dist/esm/core/security/ApplicationRoleTablesContext.js.map +1 -0
  1474. package/dist/esm/core/security/AuthSessionContext.d.ts +26 -8
  1475. package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
  1476. package/dist/esm/core/security/AuthSessionContext.js +81 -17
  1477. package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
  1478. package/dist/esm/core/security/RouteOrganizationDecisionContext.d.ts +13 -0
  1479. package/dist/esm/core/security/RouteOrganizationDecisionContext.d.ts.map +1 -0
  1480. package/dist/esm/core/security/RouteOrganizationDecisionContext.js +12 -0
  1481. package/dist/esm/core/security/RouteOrganizationDecisionContext.js.map +1 -0
  1482. package/dist/esm/core/security/StepUpAuthContext.js +5 -5
  1483. package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
  1484. package/dist/esm/core/security/UserOrgsContext.d.ts +13 -0
  1485. package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
  1486. package/dist/esm/core/security/UserOrgsContext.js +272 -103
  1487. package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
  1488. package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts +1 -0
  1489. package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts.map +1 -1
  1490. package/dist/esm/core/security/auth-redirect.frontend.utils.js +3 -2
  1491. package/dist/esm/core/security/auth-redirect.frontend.utils.js.map +1 -1
  1492. package/dist/esm/core/security/effective-permissions.frontend.utils.d.ts +43 -0
  1493. package/dist/esm/core/security/effective-permissions.frontend.utils.d.ts.map +1 -0
  1494. package/dist/esm/core/security/effective-permissions.frontend.utils.js +73 -0
  1495. package/dist/esm/core/security/effective-permissions.frontend.utils.js.map +1 -0
  1496. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +175 -5
  1497. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
  1498. package/dist/esm/core/security/route-organization-access.frontend.utils.js +147 -6
  1499. package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
  1500. package/dist/esm/core/security/security.frontend.schemas.d.ts +17 -5
  1501. package/dist/esm/core/security/security.frontend.schemas.d.ts.map +1 -1
  1502. package/dist/esm/core/security/security.frontend.schemas.js +0 -5
  1503. package/dist/esm/core/security/security.frontend.schemas.js.map +1 -1
  1504. package/dist/esm/core/security/useApplicationRoleTables.d.ts +3 -0
  1505. package/dist/esm/core/security/useApplicationRoleTables.d.ts.map +1 -0
  1506. package/dist/esm/core/security/useApplicationRoleTables.js +11 -0
  1507. package/dist/esm/core/security/useApplicationRoleTables.js.map +1 -0
  1508. package/dist/esm/core/security/useRouteOrganizationAccess.d.ts +9 -0
  1509. package/dist/esm/core/security/useRouteOrganizationAccess.d.ts.map +1 -1
  1510. package/dist/esm/core/security/useRouteOrganizationAccess.js +31 -10
  1511. package/dist/esm/core/security/useRouteOrganizationAccess.js.map +1 -1
  1512. package/dist/esm/core/security/useRouteOrganizationFollow.d.ts +24 -0
  1513. package/dist/esm/core/security/useRouteOrganizationFollow.d.ts.map +1 -0
  1514. package/dist/esm/core/security/useRouteOrganizationFollow.js +76 -0
  1515. package/dist/esm/core/security/useRouteOrganizationFollow.js.map +1 -0
  1516. package/dist/esm/core/ui/UIContext.d.ts +25 -2
  1517. package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
  1518. package/dist/esm/core/ui/UIContext.js +49 -37
  1519. package/dist/esm/core/ui/UIContext.js.map +1 -1
  1520. package/dist/esm/core/ui/design-token.utils.d.ts +0 -11
  1521. package/dist/esm/core/ui/design-token.utils.d.ts.map +1 -1
  1522. package/dist/esm/core/ui/design-token.utils.js +51 -83
  1523. package/dist/esm/core/ui/design-token.utils.js.map +1 -1
  1524. package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
  1525. package/dist/esm/core/ui/themes/default.theme.js +151 -59
  1526. package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
  1527. package/dist/esm/core/ui/themes/focus-indicator.d.ts +221 -0
  1528. package/dist/esm/core/ui/themes/focus-indicator.d.ts.map +1 -0
  1529. package/dist/esm/core/ui/themes/focus-indicator.js +229 -0
  1530. package/dist/esm/core/ui/themes/focus-indicator.js.map +1 -0
  1531. package/dist/esm/core/ui/ui.frontend.schemas.d.ts +7 -0
  1532. package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
  1533. package/dist/esm/core/ui/useThemePreferenceControl.d.ts.map +1 -1
  1534. package/dist/esm/core/ui/useThemePreferenceControl.js +1 -2
  1535. package/dist/esm/core/ui/useThemePreferenceControl.js.map +1 -1
  1536. package/dist/esm/index.d.ts +34 -0
  1537. package/dist/esm/index.d.ts.map +1 -1
  1538. package/dist/esm/index.js +45 -7
  1539. package/dist/esm/index.js.map +1 -1
  1540. package/dist/esm/tailwind/index.d.ts.map +1 -1
  1541. package/dist/esm/tailwind/index.js +3 -0
  1542. package/dist/esm/tailwind/index.js.map +1 -1
  1543. package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -1
  1544. package/dist/esm/testing/app-shell-placement-coverage.js +6 -2
  1545. package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -1
  1546. package/dist/esm/testing/mock-builders.d.ts +13 -1
  1547. package/dist/esm/testing/mock-builders.d.ts.map +1 -1
  1548. package/dist/esm/testing/mock-builders.js +35 -1
  1549. package/dist/esm/testing/mock-builders.js.map +1 -1
  1550. package/dist/esm/testing/rmm-helpers.d.ts +5 -3
  1551. package/dist/esm/testing/rmm-helpers.d.ts.map +1 -1
  1552. package/dist/esm/testing/rmm-helpers.js +3 -0
  1553. package/dist/esm/testing/rmm-helpers.js.map +1 -1
  1554. package/dist/esm/testing/test-providers.d.ts.map +1 -1
  1555. package/dist/esm/testing/test-providers.js +3 -0
  1556. package/dist/esm/testing/test-providers.js.map +1 -1
  1557. package/package.json +7 -6
  1558. package/dist/esm/components/flows-actors/flow-node.d.ts +0 -28
  1559. package/dist/esm/components/flows-actors/flow-node.d.ts.map +0 -1
  1560. package/dist/esm/components/flows-actors/flow-node.js +0 -115
  1561. package/dist/esm/components/flows-actors/flow-node.js.map +0 -1
  1562. package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts +0 -30
  1563. package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts.map +0 -1
  1564. package/dist/esm/components/resources/CollectionSelectionHeaderRail.js +0 -17
  1565. package/dist/esm/components/resources/CollectionSelectionHeaderRail.js.map +0 -1
  1566. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceAutomatedForm.js","sourceRoot":"","sources":["../../../../../../src/components/form/automated/ResourceAutomatedForm.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * ResourceAutomatedForm Component\n *\n * A fully autonomous form component that derives all configuration from a\n * FrontendResourceOperationContext. It automatically:\n * - Uses the operation's requestDto (or mainSchema) as the form schema\n * - Resolves labels from i18n based on resource type and operation\n * - Fetches current data for UPDATE operations\n * - Submits data via the resource registry's doOperation\n * - Handles success notifications based on operation configuration\n * - Determines wizard mode from frontEndApplication configuration\n */\n\n\nimport React, { useEffect, useLayoutEffect, useMemo, useState, useCallback, useRef } from 'react';\nimport { DefaultValues, FieldErrors, useFormContext } from 'react-hook-form';\nimport { z } from 'zod';\n\nimport {\n CoreResourceOperation,\n CoreUserNotificationChannel,\n CoreUserNotificationTarget,\n RelationshipNature,\n ResourceRelationshipBulkAction,\n ResourcesConfig_OperationPathUtils,\n ResourceOperationVariantType,\n ErrorCustomMessageReference,\n ErrorType,\n WildoError_Frontend,\n UserNotificationDefinition,\n UserNotificationLevel,\n ResourcesConfigOperationsUrlsBuilderUtils,\n Resources_SharedUtils,\n ResourceOperationRiskLevel,\n MAIN_API_BASE_PATH,\n BULK_OPERATION_HOST_SUPPLIED_FIELDS,\n} from '@wildo-ai/saas-models';\nimport type { FieldMetaEntry } from '@wildo-ai/saas-models';\nimport { OperationsConfirmCritical } from '~wildo-frontend-lib/components/feedback/operations-confirm-critical';\nimport type { FrontendResourceConfiguration_Operation } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { Button, ButtonVariants_Variant } from '~wildo-frontend-lib/components/actions/button';\nimport {\n AlertDialog,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogCancel,\n AlertDialogAction,\n} from '~wildo-frontend-lib/components/overlays/containers/alert-dialog';\nimport { prepareFormSchema, getFieldUIEditConfig, type FormSchemaOperationType, type DraftableConfigParams, AutosaveTrigger, ValidationMode } from '@wildo-ai/zod-decorators';\nimport {\n FrontendComponentType,\n type AutomatedFormLabels,\n} from '@wildo-ai/presets-components-models';\nimport type { NavigationZone } from '~wildo-frontend-lib/core/navigation/navigation.schemas';\n\nimport { AutomatedForm } from './AutomatedForm';\nimport { useOptionalFormTemplateContext } from './FormTemplateContext';\nimport {\n ResourceFormActionsProvider,\n HostFormActionsFooter,\n type ResourceFormActionsValue,\n} from './ResourceFormActionsContext';\nimport { carryStoredSiblingsIntoPartialWrites, formOffersSectionSave, pickSubmissionDataPaths, sanitizeAutomatedFormSubmissionData, shouldOmitClearedFieldsForOperation } from './automated-form-submit.utils';\nimport { resolveCreateFormInitialValues } from './create-form-default-values.utils';\nimport { AutomatedLayoutFrontendUtils } from '~wildo-frontend-lib/core/automated-layout/automated-layout.frontend.utils';\nimport { extractSchemaFieldList, generateDefaultFormTemplate } from '~wildo-frontend-lib/core/automated-layout/default-layout-generator.frontend.utils';\nimport { FormField } from './FormField';\nimport { TemplatePlacedFieldsContext, useTemplatePlacedFieldsRegistry } from './TemplatePlacedFieldsContext';\nimport { responsiveMaxWidthToCssValue } from '../../sections/surface';\nimport { type FormMethods } from '~wildo-frontend-lib/components/form/Form';\nimport { AutosaveProvider, type AutosaveConfig, type AutosaveSaveHandler, type AutosaveProviderLabels } from '~wildo-frontend-lib/components/form/automated/AutosaveContext';\nimport { deriveAutosaveEnabledFromFields } from '~wildo-frontend-lib/components/form/automated/autosave-derivation.frontend.utils';\nimport { useOptionalAutosave } from '~wildo-frontend-lib/components/form/automated/AutosaveContext';\nimport { mutationErrorForReport } from '~wildo-frontend-lib/core/resources/rmm/mutation-error-report.utils';\nimport { extractServerValidationErrors } from '~wildo-frontend-lib/components/form/validation-errors/form-error-extraction.utils';\nimport { collectErroredFieldPaths, scrollAndFocusFirstErroredField } from '~wildo-frontend-lib/components/form/validation-errors/scroll-to-first-error.utils';\nimport { extractErrorInfo } from '~wildo-frontend-lib/core/errors/errors.frontend.schemas';\nimport { useUserFacingErrorMessage } from '~wildo-frontend-lib/core/errors/useUserFacingErrorMessage';\nimport { useServerErrorInjection } from '~wildo-frontend-lib/components/form/validation-errors/useServerErrorInjection';\nimport { FrontendResourceOperationContext } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\nimport type { FormOperationType } from '~wildo-frontend-lib/core/automated-layout/automated-layout.frontend.schemas';\n\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport {\n isLiteralCoreResourceOperation,\n isSingleResourceUpdateLikeOperation,\n isUpdateLikeCoreOperation,\n mergeBulkSelectionIntoRequestData,\n pickPreferredOperationForCoreSemantic,\n resolveEffectiveCoreOperation,\n toOperationResultSummary,\n} from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { pickPreferredOperationForCoreSemanticAddressability } from '~wildo-frontend-lib/core/resources/resource-addressability.frontend.utils';\nimport { useOperationEnabled } from '~wildo-frontend-lib/core/resources/hooks/useOperationEnabled';\nimport { frontendResourceUtils, FrontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport {\n resolveRelationshipWriteSurface,\n type RelationshipWriteSurfaceDescriptor,\n} from '~wildo-frontend-lib/core/resources/relationship-surface-runtime.frontend.utils';\nimport { useEventBus } from '~wildo-frontend-lib/core/events/useEventBus';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { resolveOperationDisplayTitle } from '~wildo-frontend-lib/core/i18n/operation-title-resolution.utils';\nimport { LoadingGate } from '~wildo-frontend-lib/core/loading/LoadingGate';\nimport { ErrorBuilderFrontend } from '~wildo-frontend-lib/core/errors/errors-builder.frontend.services';\nimport { FrontendEvents } from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport { isForeignKey, isUnique, getZodObjectShape, type FileFieldEndpoints } from '@wildo-ai/zod-decorators';\nimport { envLoader } from '~wildo-frontend-lib/core/runtime/env-variable-loader.frontend.service';\nimport { NavigationUtils } from '~wildo-frontend-lib/core/navigation/navigation.utils';\nimport { buildValidateFieldUrl } from '~wildo-frontend-lib/components/form/validation-errors/validate-field-url.frontend';\n\nimport {\n MutationPriority,\n MutationType,\n MutationSourceType,\n MutationErrorType,\n RMMEventType,\n ConflictStrategy,\n ConflictReason,\n MutationCancelledError,\n type MutationError,\n} from '~wildo-frontend-lib/core/resources/rmm/types';\nimport { useResourceRMM } from '~wildo-frontend-lib/core/resources/rmm/useResourceRMM';\nimport { useExecutionDirtyBridge } from '~wildo-frontend-lib/core/execution/useExecutionDirtyBridge';\nimport {\n performCanonicalRMMRead,\n resolveCanonicalRMMReadOperation,\n resolveCanonicalRMMReadOperationPathKey,\n} from '~wildo-frontend-lib/core/resources/rmm/canonical-read.frontend.utils';\nimport {\n allowsDirectOperationFallback,\n MissingRMMRuntimeError,\n resolveDeclaredUpdateLikeMutationFallbackMode,\n type UpdateLikeMutationFallbackMode,\n} from '~wildo-frontend-lib/core/resources/rmm/update-like-mutation-fallback.frontend';\nimport { RemoteChangeNotification } from '~wildo-frontend-lib/components/form/feedback/RemoteChangeNotification';\nimport {\n emitQuickCreateCompleted,\n resolveQuickCreateCreatedResourceId,\n} from '~wildo-frontend-lib/core/resources/relationship-quick-create.frontend.utils';\nimport {\n normalizeContextResourceIdentifiersForOutcome,\n normalizeContextResourceIdentifiersForTransport,\n} from '~wildo-frontend-lib/core/resources/context-resource-identifiers.frontend.utils';\nimport { GeneratedAssociationRelationshipField } from './GeneratedAssociationRelationshipField';\nimport { GeneratedReferenceRelationshipField } from './GeneratedReferenceRelationshipField';\nimport { buildInlineUpdateRequestData } from '~wildo-frontend-lib/components/data-display/display-field-resolution.utils';\nimport { describeResourceErrorForNotification } from '~wildo-frontend-lib/components/form/validation-errors/resource-error-notification-context.utils';\n\n\nconst logger = LoggerFrontendService.getLogger();\nconst logDebug = logger.debugByType('ResourceAutomatedForm');\nlogger.setDebugTypeLogging('ResourceAutomatedForm', false);\n\n/**\n * Effective draft configuration after merging prop-provided config with resource-level config.\n * Extends DraftableConfigParams with runtime properties (from props).\n */\ninterface EffectiveDraftConfig extends Partial<DraftableConfigParams> {\n enabled: boolean;\n isDraft?: boolean;\n onSaveDraft?: (data: Record<string, unknown>) => Promise<unknown>;\n onPublish?: (data: Record<string, unknown>) => Promise<unknown>;\n saveDraftLabel?: string;\n publishLabel?: string;\n}\n\nfunction readPathValue(value: unknown, path: string): unknown {\n const normalizedPath = path.replace(/\\[(\\d+)\\]/g, '.$1');\n return normalizedPath\n .split('.')\n .filter(Boolean)\n .reduce<unknown>((currentValue, segment) => {\n if (currentValue === null || currentValue === undefined || typeof currentValue !== 'object') {\n return undefined;\n }\n return (currentValue as Record<string, unknown>)[segment];\n }, value);\n}\n\n\n// =============================================================================\n// VALIDATION HELPERS\n// =============================================================================\n\n/**\n * Validates fileId format (MongoDB ObjectId or UUID)\n *\n * Supports both:\n * - MongoDB ObjectId: 24 hexadecimal characters\n * - PostgreSQL UUID: 36 characters with dashes (8-4-4-4-12)\n *\n * @param fileId - The fileId to validate\n * @returns true if valid, false otherwise\n */\nconst validateFileId = (fileId: string): boolean => {\n if (!fileId || typeof fileId !== 'string') {\n return false;\n }\n return Resources_SharedUtils.isValidResourceId(fileId.trim());\n};\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport interface ResourceAutomatedFormProps {\n /** The resource operation context containing all operation details */\n resourceContext: FrontendResourceOperationContext;\n\n /** Callback when form submission succeeds */\n onSuccess?: (data: any) => void;\n\n /** Callback when form submission fails */\n onError?: (error: Error) => void;\n\n /**\n * Cancel affordance (audit D5). When provided, the host-owned actions footer\n * renders a secondary \"Cancel\" button (before the submit button) that invokes\n * this callback. Overlay hosts (`ResourceLayout_Create` / `_Update` /\n * `_SemanticOperationFallback` in the OVERLAY zone) pass `closeOverlay` here\n * so Cancel closes the modal through the exact same path as the top-right X.\n * Omitted → no Cancel button (standalone full-page forms keep their current\n * single-primary footer).\n */\n onCancel?: () => void;\n\n /** Whether the form is disabled */\n disabled?: boolean;\n\n /** Additional CSS classes */\n className?: string;\n\n /** Override labels (merged with auto-resolved labels) */\n labelsOverride?: Partial<AutomatedFormLabels>;\n\n /** Show error summary at top of form */\n showErrorSummary?: boolean;\n\n /** Override the form-wide validation mode (default: ON_BLUR). Field-level decorators take priority. */\n validationMode?: ValidationMode;\n\n\n /**\n * Depth for nested FK/composite population (default: 1).\n * Controls how deeply nested resources should be populated.\n * @future For composite form support with recursive ResourceAutomatedForm rendering.\n */\n depth?: number;\n\n /**\n * Internal flag indicating this is a nested form.\n * When true, the form should not wrap itself in additional navigation/header.\n * @internal\n */\n _isNested?: boolean;\n\n /**\n * P7: Autosave configuration for field-level saves.\n * When enabled, individual fields will save automatically based on their decorator config.\n * Requires the resource to support PATCH operations.\n */\n autosaveConfig?: {\n /** Enable autosave for this form */\n enabled: boolean;\n /** Default trigger for fields without explicit config (DEBOUNCE or BLUR) */\n defaultTrigger?: AutosaveTrigger;\n /** Debounce delay in milliseconds (default: 500) */\n debounceMs?: number;\n };\n\n /**\n * P8: Draft mode configuration for saving incomplete forms.\n * When enabled, shows \"Save as Draft\" and \"Publish\" buttons.\n * Draft saves use relaxed validation (isDraftRelaxed fields become optional).\n */\n draftConfig?: {\n /** Enable draft mode for this form */\n enabled: boolean;\n /** Current draft status (for initial state) */\n isDraft?: boolean;\n /**\n * Caller-owned weaker-guarantee override for draft save.\n *\n * Providing this hook bypasses the default RMM-backed draft mutation path.\n * The caller becomes responsible for any queueing, conflict handling,\n * canonical read-back, and coherence guarantees they still need.\n */\n onSaveDraft?: (data: any) => Promise<unknown>;\n /**\n * Caller-owned weaker-guarantee override for publish.\n *\n * Providing this hook bypasses the default RMM-backed publish mutation path.\n * The caller becomes responsible for any queueing, conflict handling,\n * canonical read-back, and coherence guarantees they still need.\n */\n onPublish?: (data: any) => Promise<unknown>;\n /** Label key for \"Save as Draft\" button (i18n) */\n saveDraftLabel?: string;\n /** Label key for \"Publish\" button (i18n) */\n publishLabel?: string;\n };\n\n /**\n * P9: Caller-owned weaker-guarantee override for saving individual sections.\n *\n * When provided, this bypasses the default RMM-backed section-save path. The\n * caller becomes responsible for any queueing, conflict handling, canonical\n * read-back, and coherence guarantees they still need. If not provided and a\n * section is saveable, the component uses the default UPDATE-like section-save\n * flow for the registered section fields.\n */\n onSectionSave?: (\n sectionRef: string,\n fieldNames: string[],\n data: Record<string, unknown>\n ) => void | Promise<void>;\n\n /**\n * Override/merge default values (e.g. from DISCOVER_ENDPOINTS for SAML metadata import).\n * For CREATE, used as initial values. For UPDATE, merged with fetched data.\n */\n defaultValuesOverride?: DefaultValues<any>;\n /** Current navigation zone for quick-create-aware field controls */\n navigationZone?: NavigationZone;\n /**\n * Controls whether default update-like form mutations may downgrade to direct\n * `doOperation()` behavior when RMM is unavailable. Omitted, it is the lane the\n * operation declared (`operationFrontendConfig.updateLikeMutationFallbackMode`),\n * which is `RMM_REQUIRED` unless the operation said otherwise.\n *\n * When the form stays on the single-resource RMM-backed lane, version-\n * conflict resets can surface authoritative conflict details if the backend\n * emits nested `versionConflict` payloads. Explicit direct fallback and true\n * bulk direct lanes are weaker-guarantee paths and must not be treated as if\n * they guarantee the same conflict-detail contract.\n */\n updateLikeMutationFallbackMode?: UpdateLikeMutationFallbackMode;\n}\n\n\n\n\n/**\n * Frontend notification configuration extracted from operation\n */\ninterface FrontendNotificationConfig {\n identifier: string;\n level: UserNotificationLevel;\n}\n\ninterface ConflictBannerState {\n discardedFields: string[];\n conflictingFields: string[];\n reason: ConflictReason;\n conflictDetails?: MutationError['conflictDetails'];\n}\n\n/**\n * Get the frontend notification configuration if configured for the current user.\n *\n * Extracts both the notification identifier (for i18n) and the level (for toast type).\n * Looks for FRONT_END_SUCCESS channel notifications targeting USER_SELF.\n */\nfunction getFrontendNotification(\n operation: FrontendResourceConfiguration_Operation\n): FrontendNotificationConfig | null {\n // Type assertion: All FrontendResourceConfiguration_Operation variants extend ResourceConfiguration_Operation_Base\n // which includes userNotifications: UserNotificationDefinition[]\n const operationWithNotifications = operation as unknown as { userNotifications?: UserNotificationDefinition[] };\n const userNotifications: UserNotificationDefinition[] = operationWithNotifications.userNotifications || [];\n\n // Find a FRONT_END_SUCCESS notification targeting USER_SELF\n const frontendNotification = userNotifications.find(\n (n: UserNotificationDefinition) => {\n const channel: string = n.channel;\n const target: string = n.target;\n return channel === CoreUserNotificationChannel.FRONT_END_SUCCESS &&\n target === CoreUserNotificationTarget.USER_SELF;\n }\n );\n\n if (!frontendNotification) {\n return null;\n }\n\n return {\n identifier: frontendNotification.identifier,\n level: frontendNotification.level || UserNotificationLevel.SUCCESS,\n };\n}\n\n/**\n * Get the i18n key for the default submit button based on operation type.\n */\nfunction getDefaultSubmitLabelKey(operationIdentifier: string): string {\n switch (operationIdentifier) {\n case CoreResourceOperation.CREATE:\n return 'create';\n case CoreResourceOperation.UPDATE:\n case CoreResourceOperation.UPDATE_MANY:\n return 'saveChanges';\n case CoreResourceOperation.DELETE:\n return 'delete';\n default:\n return 'submit';\n }\n}\n\nfunction isConflictMutationFailure(result: { success: boolean; error?: MutationError }): boolean {\n return !result.success && result.error?.type === MutationErrorType.CONFLICT;\n}\n\n/**\n * Determine if operation requires fetching existing data (e.g., UPDATE).\n */\nfunction shouldFetchExistingData(operation: any): boolean {\n const effectiveOperation = resolveEffectiveCoreOperation(\n operation.operationIdentifier,\n operation.resourceOperationLike,\n );\n\n return effectiveOperation === CoreResourceOperation.READ\n || isSingleResourceUpdateLikeOperation(operation);\n}\n\n/**\n * Whether a resource's authored `layout.edit` template can render THIS operation's form.\n *\n * The template is authored against the resource's OWN fields: it places `<FormField name=\"…\">` slots and lets\n * the operation's schema decide what shows (a slot whose field the schema lacks renders nothing). That serves\n * the core create and edit forms, and a custom action whose request is made of resource fields — `change_status`\n * posts `status`, `setAutonomousAgents` posts `autonomousAgentRefs`, and the template's own control for that\n * field (its allowed values, its edit mode) is what the action should show.\n *\n * It cannot serve a custom action whose request carries a field the resource does not have: no slot names it,\n * so the field is never rendered, while every slot the template does have is empty. Measured on Wonder Todos,\n * \"Reset to defaults\" (`groups`) showed the preferences template's four section cards, all empty, and nothing\n * could be reset. Such an action gets the form generated from its own request.\n *\n * Core operations keep the template unconditionally, as before: their request is derived from the resource,\n * and a field their template leaves out is the author's decision. For a custom action, a resource field\n * the template has no slot for is appended after it (`AuthoredTemplateWithUnplacedRequestFields`).\n */\nfunction resolveAuthoredEditTemplateForOperation<Template>(\n template: Template | undefined,\n operationIdentifier: unknown,\n requestShape: Record<string, z.ZodTypeAny> | undefined,\n resourceSchema: z.ZodTypeAny | undefined,\n): Template | undefined {\n if (!template || isLiteralCoreResourceOperation(operationIdentifier)) return template;\n const requestFields = requestShape ? Object.keys(requestShape) : [];\n const resourceShape = resourceSchema ? AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(resourceSchema) : undefined;\n if (requestFields.length === 0 || !resourceShape) return undefined;\n return requestFields.every((field) => Object.prototype.hasOwnProperty.call(resourceShape, field)) ? template : undefined;\n}\n\n/**\n * An authored template rendered for a custom operation, followed by the request fields it does not place.\n *\n * The template keeps the operation because every request field is a resource field — a field it COULD\n * place. One it does not would otherwise have no control at all, and the operation would submit without\n * the person being able to set it. Which fields are placed is reported by the template's own slots and\n * sections (`TemplatePlacedFieldsContext`); the set is read once, after the template's first layout pass,\n * so an appended field is never retracted (retracting a mounted control would unregister its value). The\n * appended fields follow the generated form's rules: context-supplied and hidden fields are left out, and\n * each `FormField` applies its own conditions and generated overrides. They render outside the registry,\n * so they cannot count themselves as placed.\n *\n * Known limit, where the field is appended as well: a control a custom component renders with its own\n * `useController` (never seen); a `FormField` a custom component renders internally, or one reached through\n * a render-prop function, when it is not mounted as the form opens. Everything a `FormField`,\n * `FormFieldArray` or `ArrayField` names in the template's JSX under its `FormLayout` or a `Section` is\n * seen, mounted or not (`collectPlacedFieldPaths`). Placement is per top-level field.\n */\nfunction AuthoredTemplateWithUnplacedRequestFields({\n Template,\n requestFieldNames,\n}: {\n Template: React.ComponentType;\n requestFieldNames: readonly string[];\n}): React.JSX.Element {\n const registry = useTemplatePlacedFieldsRegistry();\n const formTemplateContext = useOptionalFormTemplateContext();\n const [unplacedFieldNames, setUnplacedFieldNames] = useState<string[] | null>(null);\n useLayoutEffect(() => {\n const placed = registry.placedFields();\n // Left out as the generated form leaves them out: supplied by context, or hidden — unless the field\n // has a generated override (a relationship field reshaped here), which the generated form keeps.\n const overrides = formTemplateContext?.generatedFieldOverrides ?? {};\n const leftOut = new Set(\n [...Object.keys(formTemplateContext?.contextFieldValues ?? {}), ...(formTemplateContext?.hiddenFieldNames ?? [])]\n .filter((name) => !overrides[name]),\n );\n setUnplacedFieldNames(requestFieldNames.filter((name) => !placed.has(name) && !leftOut.has(name)));\n // Read ONCE, deliberately: see the component's JSDoc.\n }, []);\n return (\n <>\n <TemplatePlacedFieldsContext.Provider value={registry}>\n <Template />\n </TemplatePlacedFieldsContext.Provider>\n {unplacedFieldNames && unplacedFieldNames.length > 0 && (\n <div\n // A section's seam above it (the template's own layout stacks sections at `space-y-section`, and\n // this block sits outside it), capped at the reading measure like a template's default FormLayout.\n className=\"mr-auto mt-section w-full space-y-field\"\n style={{ maxInlineSize: responsiveMaxWidthToCssValue('measure') }}\n data-guidance-unplaced-request-fields=\"\"\n >\n {unplacedFieldNames.map((name) => <FormField key={name} name={name} />)}\n </div>\n )}\n </>\n );\n}\n\n// =============================================================================\n// COMPONENT\n// =============================================================================\n\nexport function ResourceAutomatedForm({\n resourceContext,\n onSuccess,\n onError,\n onCancel,\n disabled = false,\n className,\n labelsOverride,\n showErrorSummary = true,\n validationMode,\n autosaveConfig,\n draftConfig,\n onSectionSave: onSectionSaveProp,\n defaultValuesOverride,\n navigationZone,\n updateLikeMutationFallbackMode: callerUpdateLikeMutationFallbackMode,\n}: ResourceAutomatedFormProps): React.JSX.Element | null {\n // Contexts\n const { doOperation, registry } = useResourceRegistry();\n const { emit } = useEventBus();\n const { tComponent, tResourceOperation, isReady } = useI18n({\n component: FrontendComponentType.RESOURCES_LAYOUTS_CREATE,\n resource: resourceContext.resourceType,\n });\n // Stable identity, so the data-fetch effect may call it without listing it.\n const toUserFacingErrorMessage = useUserFacingErrorMessage();\n\n // Refs for stable function references (avoid infinite loops in useEffect)\n const doOperationRef = useRef(doOperation);\n const emitRef = useRef(emit);\n const onErrorRef = useRef(onError);\n const onSuccessRef = useRef(onSuccess);\n\n // Ref to store autosave cancel function (set by AutosaveProvider wrapper)\n const cancelPendingAutosavesRef = useRef<(() => void) | null>(null);\n\n // Ref for section save callback\n const onSectionSaveRef = useRef(onSectionSaveProp);\n\n // Keep refs updated\n doOperationRef.current = doOperation;\n emitRef.current = emit;\n onErrorRef.current = onError;\n onSuccessRef.current = onSuccess;\n onSectionSaveRef.current = onSectionSaveProp;\n\n // Error builder (memoized to prevent recreation)\n const errorBuilder = useMemo(() => new ErrorBuilderFrontend(), []);\n\n // Extract from resource context\n const { resourceType, operation, contextResourceIdentifiers } = resourceContext;\n const updateLikeMutationFallbackMode = callerUpdateLikeMutationFallbackMode ?? resolveDeclaredUpdateLikeMutationFallbackMode(operation);\n const operationIdentifier = String(operation.operationIdentifier);\n const effectiveCoreOperation = resolveEffectiveCoreOperation(\n operationIdentifier,\n operation.resourceOperationLike ? String(operation.resourceOperationLike) : undefined,\n );\n\n // Derive operationType and operationLike for decorator-based field filtering\n // operationType is the actual operation being performed (create, update, or custom)\n // operationLike is for custom operations that behave like core operations (e.g., 'rotate' behaves like 'update')\n const operationType: FormOperationType = operationIdentifier;\n const operationLike: FormOperationType | undefined = operation.resourceOperationLike\n ? String(operation.resourceOperationLike) as FormOperationType\n : undefined;\n const effectiveFormOperationType = operationLike ?? operationType;\n\n // ONE authority for \"may a cleared field be dropped from this payload?\", shared by every\n // submission boundary this component owns. It previously called the sanitiser twice WITHOUT this\n // decision while `AutomatedForm`'s own wrappers passed it, so the same surface either stripped or\n // shipped a `null` depending on which wrapper happened to run.\n const omitClearedFieldsForSubmission = shouldOmitClearedFieldsForOperation(\n effectiveCoreOperation,\n effectiveFormOperationType,\n );\n\n // State\n const [hasLoadedOnce, setHasLoadedOnce] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isSavingDraft, setIsSavingDraft] = useState(false);\n const [defaultValues, setDefaultValues] = useState<DefaultValues<any> | undefined>(undefined);\n /**\n * Which load supplied `defaultValues` — the fetch key of the record read, or the create seed — and the\n * key the rendered form is mounted under.\n *\n * The form reads its defaults ONCE, when it mounts (`useForm`), and never again. So a form that mounted\n * before its record arrived kept the empty defaults it mounted with, and the record reached it only as a\n * prop nothing reads. Measured 2026-09-28 on the preferences edit: the record held email on, time zone\n * UTC, …, the form's props carried them, and every control showed off / \"Select…\". Keying the form by\n * the load that supplied its defaults makes each load mount a form that starts from them.\n */\n const [defaultValuesSource, setDefaultValuesSource] = useState<string>('none');\n /**\n * A failed load of the record the form edits. `wildoError` is the classified failure (context carries the\n * original message, stack and HTTP facts for inspection); `message` is the ONLY text the alert renders,\n * resolved from the caught error at catch time. The alert used to render `context.originalErrorMessage`,\n * which for a backend rejection is the i18n reference (`not_found`, `authorization`) (#1160).\n */\n const [fetchError, setFetchError] = useState<{ wildoError: WildoError_Frontend; message: string } | null>(null);\n // Store form methods for setting server errors on individual fields\n const formMethodsRef = useRef<FormMethods | null>(null);\n const { initAutoClearing, injectServerErrors, clearServerErrors } = useServerErrorInjection(formMethodsRef);\n // State for pending publish data (waiting for confirmation dialog)\n const [pendingPublish, setPendingPublish] = useState<any>(null);\n // Holds the validated form data of a CRITICAL submit awaiting typed double-validation.\n const [pendingCriticalSubmit, setPendingCriticalSubmit] = useState<any>(null);\n // Track current draft status\n const [isDraft, setIsDraft] = useState(draftConfig?.isDraft ?? false);\n\n // Conflict banner (persists until user acknowledges)\n const [conflictBanner, setConflictBanner] = useState<ConflictBannerState | null>(null);\n\n // Remote update indicator (auto-dismisses after 3s)\n const [remoteUpdateIndicator, setRemoteUpdateIndicator] = useState<{\n changedFields: string[];\n initiatorUserId: string;\n } | null>(null);\n const remoteUpdateTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Get the form schema from the operation\n const formSchema = useMemo(() => {\n // requestDto is pre-computed by the factory (Phase 2.1)\n const schema = operation.requestDto;\n if (!schema) {\n logger.error(`[ResourceAutomatedForm] No requestDto found for operation ${operationIdentifier} on resource ${resourceType}`);\n return schema;\n }\n\n /*\n * A BULK action's selector is not a form input, so it is not in the form's schema.\n *\n * The bulk twin's request is the single-row request plus `_ids`, required and non-empty. The\n * collection fills it — `mergeBulkSelectionIntoRequestData` adds the selection at EXECUTION —\n * but the form validates BEFORE execution, against the whole request. So the resolver refused\n * every submit on a required `_ids` that no template places and no field renders: an error\n * with nowhere to appear. Measured on the Wonder Todos bulk \"Change status\": status chosen,\n * Save changes pressed, no request sent and nothing on screen.\n *\n * Not panel-specific. The dialog host uses this same form, so a bulk action that asks for\n * anything has been unable to submit from either host; only zero-input bulk actions, which\n * execute without a form, ever reached the backend.\n *\n * Omitted rather than defaulted: a default would put a fake selection in the form's values,\n * and the merge at execution is the one place that knows the real one.\n */\n if (operation.isBulkOperation === true && schema instanceof z.ZodObject) {\n // Both selectors, not only `_ids`: leaving `_match` in rendered it as three empty inputs\n // (Match / Filters / Search) whose empty value was submitted as the selection (#2035 run).\n const hostSuppliedKeys = BULK_OPERATION_HOST_SUPPLIED_FIELDS\n .filter((field) => field in (schema.shape as Record<string, unknown>));\n if (hostSuppliedKeys.length > 0) {\n return schema.omit(Object.fromEntries(hostSuppliedKeys.map((field) => [field, true])) as Record<string, true>);\n }\n }\n return schema;\n }, [operation, operationIdentifier, resourceType]);\n\n // Get resource configuration for frontendConfiguration\n const resourceConfig = useMemo(() => {\n return registry.resourceConfigurations[resourceType];\n }, [registry, resourceType]);\n\n // Get frontEndApplication config for current app type\n const feAppConfig = useMemo(() => {\n return operation.operationFrontendConfig;\n }, [operation]);\n\n // Resolve layout refs for i18n label resolution\n const layoutRefs = resourceConfig?.frontendConfiguration?.layout?.refs;\n\n\n // Resolve the resource-declared default chrome mode for the EDIT context.\n //\n // `ResourceLayoutConfig.defaultChromeMode` documents a per-context cascade\n // (`{primitive}UI.{context}.chromeMode ?? layout.defaultChromeMode.{context}\n // ?? system-default`) with three slots: display, summary, edit. The display\n // and summary legs are wired by `ResourceAutomaticDisplayer`\n // (`defaultChromeMode.display`) and `ResourceSummaryDisplayer`\n // (`defaultChromeMode.summary`) respectively. The edit leg was never threaded\n // here, so an authored `defaultChromeMode: { edit: EditChromeMode.SETTINGS_ROW }`\n // was silently dropped: edit fields fell straight through to the\n // surface-policy / STACKED system default. We thread it into\n // `AutomatedForm.chromeMode`, which seeds `FormChromeProvider` as the\n // form-level slot of the cascade — section-level `<Section chromeMode>` and\n // field-level `{primitive}UI.edit.chromeMode` still override it. Applies to\n // both explicit `layout.edit` templates and the generated edit layout.\n const defaultEditChromeMode = resourceConfig?.frontendConfiguration?.layout?.defaultChromeMode?.edit;\n\n // Extract inheritanceConfig from resource configuration for discriminated union support\n const inheritanceConfig = useMemo(() => {\n // Access inheritenceSchemaDefinition from resource config (note the typo in the property name is intentional - matches existing API)\n const inheritenceDef = (resourceConfig as any)?.inheritenceSchemaDefinition;\n if (!inheritenceDef) return undefined;\n\n // Transform to InheritanceSchemaDefinition format expected by AutomatedForm\n return {\n discriminatorField: inheritenceDef.discriminatorField,\n withoutInheritanceDiscriminatorFieldValues: inheritenceDef.withoutInheritanceDiscriminatorFieldValues,\n inheritedSchemas: inheritenceDef.inheritedSchemas,\n };\n }, [resourceConfig]);\n\n const formFieldShape = useMemo(() => {\n if (!formSchema) {\n return undefined;\n }\n\n return AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(formSchema);\n }, [formSchema]);\n\n // Resolve explicit edit template from layout config — for the operations it can serve\n // (`resolveAuthoredEditTemplateForOperation`).\n const explicitEditTemplate = useMemo(\n () => resolveAuthoredEditTemplateForOperation(\n resourceConfig?.frontendConfiguration?.layout?.edit,\n operation.operationIdentifier,\n formFieldShape,\n resourceConfig?.mainSchema,\n ),\n [resourceConfig, operation.operationIdentifier, formFieldShape],\n );\n\n // Extract draft config from resource-level configuration\n const resourceDraftConfig = resourceConfig?.frontendConfiguration?.draftableConfig;\n\n // Merge resource-level draft config with prop-provided config (props take precedence)\n const effectiveDraftConfig = useMemo<EffectiveDraftConfig | undefined>(() => {\n if (!resourceDraftConfig && !draftConfig) return undefined;\n\n // If only prop config provided, use it\n if (!resourceDraftConfig && draftConfig) {\n return draftConfig;\n }\n\n // If only resource config provided, enable draft mode with resource values\n if (resourceDraftConfig && !draftConfig) {\n return {\n enabled: true,\n isDraft: false,\n discriminator: resourceDraftConfig.discriminator,\n draftValue: resourceDraftConfig.draftValue,\n publishedValue: resourceDraftConfig.publishedValue,\n requireConfirmationToPublish: resourceDraftConfig.requireConfirmationToPublish,\n };\n }\n\n // Merge both, with props taking precedence\n return {\n ...resourceDraftConfig,\n ...draftConfig,\n enabled: draftConfig?.enabled ?? !!resourceDraftConfig,\n };\n }, [resourceDraftConfig, draftConfig]);\n\n // Sync isDraft state when effectiveDraftConfig changes\n useEffect(() => {\n if (effectiveDraftConfig?.isDraft !== undefined) {\n setIsDraft(effectiveDraftConfig.isDraft);\n }\n }, [effectiveDraftConfig?.isDraft]);\n\n // Build a stable key from contextResourceIdentifiers for memoization\n const contextResourceIdentifiersKey = useMemo(() => {\n return FrontendResourceUtils.buildContextResourceIdentifiersKey(contextResourceIdentifiers);\n }, [contextResourceIdentifiers]);\n\n // Build contextual parameters for API calls\n const contextualParameters = useMemo(() => {\n return FrontendResourceUtils.buildContextualParameters(contextResourceIdentifiers, registry);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [contextResourceIdentifiersKey, registry]);\n\n // Compute context field values - fields from the navigation context that should be\n // hidden from the form and auto-populated on submit\n const contextFieldValues = useMemo(() => {\n if (!formFieldShape) {\n return {};\n }\n\n const semanticContextFieldValues = FrontendResourceUtils.resolveSemanticContextFieldValues({\n resourceType,\n parentResourcesRequirements: resourceContext.parentResourcesRequirements,\n contextResourceIdentifiers,\n contextualParameters,\n registry,\n });\n\n const values: Record<string, unknown> = {};\n for (const [fieldName, fieldValue] of Object.entries(semanticContextFieldValues)) {\n if (formFieldShape[fieldName]) {\n values[fieldName] = fieldValue;\n }\n }\n\n return values;\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key for contextualParameters\n }, [contextResourceIdentifiersKey, contextualParameters, formFieldShape, registry, resourceContext.parentResourcesRequirements, resourceType]);\n\n const relationshipWriteSurfacesByFieldName = useMemo<Record<string, RelationshipWriteSurfaceDescriptor>>(() => {\n if (!formFieldShape) {\n return {};\n }\n\n const writeSurfaces: Record<string, RelationshipWriteSurfaceDescriptor> = {};\n\n for (const fieldName of Object.keys(formFieldShape)) {\n const writeSurface = resolveRelationshipWriteSurface({\n resourceType,\n fieldName,\n operationType: effectiveFormOperationType,\n registry,\n });\n if (writeSurface) {\n writeSurfaces[fieldName] = writeSurface;\n }\n }\n\n return writeSurfaces;\n }, [effectiveFormOperationType, formFieldShape, registry, resourceType]);\n const resourceOperations = resourceConfig?.operations ?? [];\n\n // Resource-aware hidden-field derivation stays here on purpose.\n // `AutomatedForm` only consumes these names as opaque infrastructure input.\n const hiddenFieldNames = useMemo(() => {\n if (!formFieldShape) {\n return [];\n }\n\n const hiddenNames: string[] = [];\n\n for (const writeSurface of Object.values(relationshipWriteSurfacesByFieldName)) {\n const relationshipField = writeSurface.rootFieldName;\n const findOperation = (action: ResourceRelationshipBulkAction) =>\n resourceOperations.find((candidate) =>\n candidate.isBulkOperation === true\n && String(candidate.operationIdentifier) === Resources_SharedUtils.buildRelationshipBulkOperationIdentifier(\n action,\n relationshipField,\n ),\n );\n\n const hasBusinessFacingEditor = (() => {\n if (\n writeSurface.semantics.nature === RelationshipNature.COMPOSITION\n && writeSurface.nestedMutationConfig\n ) {\n return true;\n }\n\n if (writeSurface.semantics.nature === RelationshipNature.REFERENCE) {\n const foreignKeyFieldName = writeSurface.foreignKeyIdentity?.fieldIdentifier;\n const foreignKeySchema = foreignKeyFieldName ? formFieldShape[foreignKeyFieldName] : undefined;\n const hasVisibleSiblingForeignKeyField = Boolean(\n foreignKeySchema\n && isForeignKey(foreignKeySchema)\n && !Object.prototype.hasOwnProperty.call(contextFieldValues, foreignKeyFieldName ?? ''),\n );\n\n return hasVisibleSiblingForeignKeyField || Boolean(findOperation(ResourceRelationshipBulkAction.SET));\n }\n\n if (writeSurface.semantics.nature === RelationshipNature.ASSOCIATION) {\n return Boolean(findOperation(ResourceRelationshipBulkAction.REPLACE));\n }\n\n return false;\n })();\n\n if (!hasBusinessFacingEditor) {\n if (envLoader.isDevelopment()) {\n logger.warn('[ResourceAutomatedForm] Keeping relationship root visible because no business-facing editor is available', {\n resourceType,\n operationType: effectiveFormOperationType,\n fieldName: relationshipField,\n relationshipNature: writeSurface.semantics.nature,\n hasNestedMutationConfig: Boolean(writeSurface.nestedMutationConfig),\n });\n }\n continue;\n }\n\n hiddenNames.push(relationshipField);\n }\n\n return hiddenNames;\n }, [\n contextFieldValues,\n effectiveFormOperationType,\n formFieldShape,\n relationshipWriteSurfacesByFieldName,\n resourceOperations,\n resourceType,\n ]);\n\n // Build operation path key from the operation object on context\n const operationPathKey = useMemo(() => {\n return ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation);\n }, [operation]);\n\n // =============================================================================\n // RMM (Registry-based, UPDATE-like operations only)\n // =============================================================================\n\n const isUpdateLikeOperation = useMemo(() => {\n return isSingleResourceUpdateLikeOperation(operation);\n }, [operation]);\n\n const resourceId = useMemo(() => {\n const contextId = contextResourceIdentifiers[resourceType];\n if (contextId) {\n return typeof contextId === 'string' ? contextId : contextId.resourceId;\n }\n\n const loadedId = defaultValues && typeof defaultValues === 'object'\n ? (defaultValues as Record<string, unknown>)._id\n : undefined;\n return typeof loadedId === 'string' && loadedId.length > 0 ? loadedId : null;\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [contextResourceIdentifiersKey, defaultValues, resourceType]);\n\n const parentResourcesRequirementsKey = useMemo(() => {\n return JSON.stringify(resourceContext.parentResourcesRequirements ?? []);\n }, [resourceContext.parentResourcesRequirements]);\n\n const contextResourceIdentifiersWithResourceId = useMemo(() => {\n if (!resourceId || contextResourceIdentifiers[resourceType]) {\n return contextResourceIdentifiers;\n }\n\n return {\n ...contextResourceIdentifiers,\n [resourceType]: resourceId,\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [contextResourceIdentifiersKey, resourceId, resourceType]);\n\n const contextualParametersWithResourceId = useMemo(() => {\n const resourceFieldIdentifier = resourceConfig?.resourceFieldIdentifier;\n if (!resourceId || !resourceFieldIdentifier) {\n return contextualParameters;\n }\n\n if (String(contextualParameters[resourceFieldIdentifier] ?? '') === resourceId) {\n return contextualParameters;\n }\n\n return {\n ...contextualParameters,\n [resourceFieldIdentifier]: resourceId,\n };\n }, [contextualParameters, resourceConfig?.resourceFieldIdentifier, resourceId]);\n\n const currentOperationPathKey = useMemo(() => {\n if (\n !isUpdateLikeOperation\n || effectiveCoreOperation !== CoreResourceOperation.UPDATE\n || operation.operationIdentifier !== CoreResourceOperation.UPDATE\n || !resourceConfig\n ) {\n return operationPathKey;\n }\n\n const addressableOperation = pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig,\n operations: resourceOperations,\n coreOperation: CoreResourceOperation.UPDATE,\n registry,\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters: contextualParametersWithResourceId,\n });\n\n return addressableOperation\n ? ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(addressableOperation)\n : operationPathKey;\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [\n contextResourceIdentifiersKey,\n contextResourceIdentifiersWithResourceId,\n contextualParametersWithResourceId,\n effectiveCoreOperation,\n isUpdateLikeOperation,\n operation.operationIdentifier,\n operationPathKey,\n registry,\n resourceConfig,\n resourceId,\n resourceOperations,\n ]);\n\n const currentOperationTransportOverride = useMemo(() => {\n const requiresAuthoritativeReadBack = isUpdateLikeOperation\n && effectiveCoreOperation === CoreResourceOperation.UPDATE\n && operationIdentifier !== CoreResourceOperation.UPDATE;\n\n return {\n operationPathKey: currentOperationPathKey,\n contextualParameters: contextualParametersWithResourceId,\n parentResourcesRequirements: resourceContext.parentResourcesRequirements,\n ...(requiresAuthoritativeReadBack ? { readBackOnSuccess: true } : {}),\n };\n }, [\n contextualParametersWithResourceId,\n currentOperationPathKey,\n effectiveCoreOperation,\n isUpdateLikeOperation,\n operationIdentifier,\n resourceContext.parentResourcesRequirements,\n ]);\n const mergeRequestDataWithBulkSelection = useCallback((requestData?: Record<string, unknown>) => {\n return mergeBulkSelectionIntoRequestData({\n operation,\n requestData,\n additionalContext: resourceContext.additionalContext,\n });\n }, [operation, resourceContext.additionalContext]);\n\n const {\n rmm,\n rmmSnapshot,\n canonicalReadOperationPathKey: rmmCanonicalReadOperationPathKey,\n } = useResourceRMM({\n resourceType,\n resourceId,\n doOperationRef,\n contextualParameters: contextualParametersWithResourceId,\n parentResourcesRequirements: resourceContext.parentResourcesRequirements as unknown[] | undefined,\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n resourceSchema: resourceConfig?.mainSchema,\n enabled: isUpdateLikeOperation && !!resourceId,\n conflictPolicy: { strategy: ConflictStrategy.ACCEPT_REMOTE },\n directFallbackAccepted: allowsDirectOperationFallback(updateLikeMutationFallbackMode),\n });\n\n // Slice F — execution-shell dirty-state publisher.\n //\n // Bridge the RMM's `hasUnsavedChanges` signal into the execution-shell\n // dirty-state aggregator whenever this form is mounted inside an\n // `ExecutionRuntimeProvider`. The bridge is a no-op outside an execution\n // shell, so the call is safe for every other mounting context (resource\n // layouts, composite views, custom views, etc.).\n //\n // Marker id is content-derived (`rmm:${resourceType}:${resourceId || ''}`)\n // so re-marks are idempotent across form re-mounts triggered by embed\n // open/replace cycles. Scope is inferred from\n // `ExecutionDirtyMarkerScopeContext` (set to `EMBEDDED_CONTENT` by the\n // shell's embed slot; defaults to `CUSTOM` otherwise — informative,\n // cleared on unmount). When `rmm` is null (CREATE flow, fallback mode,\n // or no eligible UPDATE operation), `hasUnsavedChanges` stays `false`\n // and the bridge does nothing.\n useExecutionDirtyBridge({\n markerId: `rmm:${resourceType}:${resourceId ?? ''}`,\n isDirty: !!rmm && rmmSnapshot.hasUnsavedChanges,\n });\n // Wrapper-level forms only acquire an RMM when the surface can address one\n // stable resource id on an UPDATE-like lane. ACCEPT_REMOTE keeps the form on\n // the same conflict semantics as the rest of the registry-backed runtime:\n // non-CRDT overlap resets the form to authoritative server truth.\n const allowsDirectUpdateLikeMutationFallback = useMemo(() => {\n return allowsDirectOperationFallback(updateLikeMutationFallbackMode);\n }, [updateLikeMutationFallbackMode]);\n const requiresRMMForDefaultUpdateLikeMutation = isUpdateLikeOperation && !allowsDirectUpdateLikeMutationFallback;\n\n const assertRMMAvailableForDefaultUpdateLikeMutation = useCallback((surfaceName: string) => {\n if (requiresRMMForDefaultUpdateLikeMutation && !rmm) {\n throw new MissingRMMRuntimeError({\n surfaceName,\n resourceType,\n operationIdentifier,\n });\n }\n }, [operationIdentifier, requiresRMMForDefaultUpdateLikeMutation, resourceType, rmm]);\n\n useEffect(() => {\n if (!requiresRMMForDefaultUpdateLikeMutation || rmm || !envLoader.isDevelopment()) {\n return;\n }\n\n logger.warn('[ResourceAutomatedForm] Default update-like mutation path is mounted without RMM. The surface will fail closed unless it explicitly opts into UpdateLikeMutationFallbackMode.DIRECT_OPERATION_FALLBACK.', {\n resourceType,\n operationIdentifier,\n hasResourceId: resourceId !== null,\n updateLikeMutationFallbackMode,\n });\n }, [\n operationIdentifier,\n requiresRMMForDefaultUpdateLikeMutation,\n resourceId,\n resourceType,\n rmm,\n updateLikeMutationFallbackMode,\n ]);\n\n // Resource-aware generated replacements also stay at the wrapper layer so the\n // generic form runtime does not decide relationship semantics on its own.\n // Together with hiddenFieldNames above, this gives relationship roots one\n // explicit policy: hide the raw infrastructure field only when a business-\n // facing replacement control exists for the same mutation surface.\n const generatedFieldOverrides = useMemo<Record<string, React.ReactNode>>(() => {\n if (!resourceConfig || !isUpdateLikeOperation || !resourceId || !formFieldShape) {\n return {};\n }\n\n const overrides: Record<string, React.ReactNode> = {};\n\n for (const [fieldName, writeSurface] of Object.entries(relationshipWriteSurfacesByFieldName)) {\n const relationshipField = writeSurface.rootFieldName;\n const findOperation = (action: ResourceRelationshipBulkAction) =>\n resourceOperations.find((operation) =>\n operation.isBulkOperation === true &&\n String(operation.operationIdentifier) === Resources_SharedUtils.buildRelationshipBulkOperationIdentifier(\n action,\n relationshipField,\n ),\n );\n\n if (writeSurface.semantics.nature === RelationshipNature.REFERENCE) {\n const foreignKeyFieldName = writeSurface.foreignKeyIdentity?.fieldIdentifier;\n if (!foreignKeyFieldName) {\n continue;\n }\n\n const foreignKeySchema = formFieldShape[foreignKeyFieldName];\n const isVisibleSiblingForeignKeyField = Boolean(\n foreignKeySchema &&\n isForeignKey(foreignKeySchema) &&\n !Object.prototype.hasOwnProperty.call(contextFieldValues, foreignKeyFieldName),\n );\n\n if (isVisibleSiblingForeignKeyField) {\n continue;\n }\n\n const setOperation = findOperation(ResourceRelationshipBulkAction.SET);\n const clearOperation = findOperation(ResourceRelationshipBulkAction.CLEAR);\n\n if (!setOperation) {\n if (envLoader.isDevelopment()) {\n logger.warn('[ResourceAutomatedForm] Skipping reference override because generated bulk set operation is unavailable', {\n resourceType,\n fieldName,\n foreignKeyFieldName,\n });\n }\n continue;\n }\n\n overrides[fieldName] = (\n <GeneratedReferenceRelationshipField\n writeSurface={writeSurface}\n setOperation={setOperation}\n clearOperation={clearOperation}\n rmm={rmm}\n allowDirectOperationFallback={allowsDirectUpdateLikeMutationFallback}\n />\n );\n continue;\n }\n\n if (writeSurface.semantics.nature === RelationshipNature.ASSOCIATION) {\n const replaceOperation = findOperation(ResourceRelationshipBulkAction.REPLACE);\n const initialRelationshipValue = defaultValues\n ? readPathValue(defaultValues, fieldName)\n : undefined;\n const hasHydratedInitialValue = Boolean(\n defaultValues &&\n typeof defaultValues === 'object' &&\n Object.prototype.hasOwnProperty.call(defaultValues as Record<string, unknown>, fieldName),\n );\n\n if (!replaceOperation) {\n if (envLoader.isDevelopment()) {\n logger.warn('[ResourceAutomatedForm] Skipping association override because generated bulk replace operation is unavailable', {\n resourceType,\n fieldName,\n });\n }\n continue;\n }\n\n overrides[fieldName] = (\n <GeneratedAssociationRelationshipField\n writeSurface={writeSurface}\n replaceOperation={replaceOperation}\n initialRelationshipValue={initialRelationshipValue}\n hasHydratedInitialValue={hasHydratedInitialValue}\n rmm={rmm}\n allowDirectOperationFallback={allowsDirectUpdateLikeMutationFallback}\n />\n );\n }\n }\n\n return overrides;\n }, [\n contextFieldValues,\n defaultValues,\n effectiveFormOperationType,\n formFieldShape,\n isUpdateLikeOperation,\n registry,\n resourceConfig,\n resourceId,\n resourceOperations,\n resourceType,\n relationshipWriteSurfacesByFieldName,\n rmm,\n allowsDirectUpdateLikeMutationFallback,\n ]);\n\n // This is the wrapper's single RMM subscription seam. All authoritative\n // mutation/read-back/remote-reset outcomes are translated here into form\n // state updates, server validation injection, transient remote-update UI, and\n // the persistent conflict banner.\n useEffect(() => {\n if (!rmm || !rmmSnapshot?.lastEvent) return;\n const event = rmmSnapshot.lastEvent;\n\n switch (event.type) {\n case RMMEventType.MUTATION_RESULT: {\n const { result } = event;\n if (result.success && result.savedFields) {\n if (formMethodsRef.current) {\n for (const field of result.savedFields) {\n formMethodsRef.current.setValue(field, readPathValue(rmmSnapshot.confirmedData, field), {\n shouldDirty: false,\n shouldValidate: false,\n });\n }\n }\n }\n if (!result.success && result.error?.type === MutationErrorType.VALIDATION) {\n if (result.error.validationErrors) {\n const syntheticError = {\n httpStatus: result.error.status ?? 400,\n validationErrors: result.error.validationErrors,\n };\n const serverValidation = extractServerValidationErrors(syntheticError);\n if (serverValidation) {\n injectServerErrors(serverValidation.validationErrors);\n }\n }\n }\n break;\n }\n\n case RMMEventType.REMOTE_UPDATE: {\n if (formMethodsRef.current) {\n for (const field of event.changedFields) {\n const currentDirty = formMethodsRef.current.getFieldState(field).isDirty;\n if (!currentDirty) {\n formMethodsRef.current.setValue(field, readPathValue(rmmSnapshot.confirmedData, field), {\n shouldDirty: false,\n shouldValidate: false,\n });\n }\n }\n }\n setRemoteUpdateIndicator({\n changedFields: event.changedFields,\n initiatorUserId: event.initiatorUserId,\n });\n if (remoteUpdateTimerRef.current) clearTimeout(remoteUpdateTimerRef.current);\n remoteUpdateTimerRef.current = setTimeout(() => {\n setRemoteUpdateIndicator(null);\n remoteUpdateTimerRef.current = null;\n }, 3000);\n break;\n }\n\n case RMMEventType.CONFLICT_RESET: {\n if (formMethodsRef.current) {\n formMethodsRef.current.reset(event.currentData);\n }\n clearServerErrors();\n setConflictBanner({\n discardedFields: event.discardedFields,\n conflictingFields: event.conflictDetails?.conflictingFields ?? event.discardedFields,\n reason: event.reason,\n conflictDetails: event.conflictDetails,\n });\n break;\n }\n\n case RMMEventType.RESOURCE_DELETED: {\n logDebug('RMM resource deleted event', { reason: event.reason });\n break;\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- react only to new events\n }, [rmmSnapshot?.lastEvent?.id]);\n\n useEffect(() => {\n return () => {\n if (remoteUpdateTimerRef.current) {\n clearTimeout(remoteUpdateTimerRef.current);\n remoteUpdateTimerRef.current = null;\n }\n };\n }, []);\n\n const handleAcknowledgeConflict = useCallback(() => {\n rmm?.acknowledgeConflict();\n setConflictBanner(null);\n }, [rmm]);\n\n // Build labels for AutomatedForm\n const labels = useMemo<AutomatedFormLabels>(() => {\n const resourceContextLabels: AutomatedFormLabels = {\n resourceContext: {\n resourceType,\n operationId: operationIdentifier,\n },\n };\n\n // Merge with overrides\n return {\n ...resourceContextLabels,\n ...labelsOverride,\n // Override navigation if provided\n navigation: {\n ...resourceContextLabels.navigation,\n ...labelsOverride?.navigation,\n },\n };\n }, [resourceType, operationIdentifier, labelsOverride]);\n\n // =============================================================================\n // SHARED BASE PATH (used by fileUploadContext & validateFieldUrl)\n // =============================================================================\n\n /**\n * Compute the routed API base identity for this resource.\n * Uses CREATE operation URL resolution so file uploads and validate-field routes\n * stay aligned with the same FK-aware contextual parameter contract as normal\n * resource operations.\n */\n const resourceApiBase = useMemo(() => {\n const isCreateOperation = effectiveCoreOperation === CoreResourceOperation.CREATE;\n const isUpdateOperation = isSingleResourceUpdateLikeOperation(operation);\n\n if (!isCreateOperation && !isUpdateOperation) {\n return null;\n }\n\n try {\n const primaryResourceId = isUpdateOperation\n ? resourceId ?? frontendResourceUtils.getPrimaryResourceIdentifier(resourceContext)\n : frontendResourceUtils.getPrimaryResourceIdentifier(resourceContext);\n const apiBaseUrl = envLoader.getApiUrl();\n if (!resourceConfig?.resourceFieldIdentifier) {\n throw FrontendResourceUtils.buildConfigurationError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_FIELD_IDENTIFIER_NOT_FOUND,\n { resourceType: resourceContext.resourceType, component: 'ResourceAutomatedForm' }\n );\n }\n const resourceFieldIdentifier = resourceConfig.resourceFieldIdentifier as string;\n const contextualParameters = { ...contextualParametersWithResourceId };\n if (isUpdateOperation && primaryResourceId) {\n contextualParameters[resourceFieldIdentifier] = primaryResourceId;\n }\n\n const routeBearingMutationOperation = (\n operation.variantType === ResourceOperationVariantType.API_CALL\n || operation.variantType === ResourceOperationVariantType.API_CALL_WITH_CALLBACK\n )\n ? operation\n : resourceConfig && isUpdateOperation\n ? pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig,\n operations: resourceConfig.operations ?? [],\n coreOperation: CoreResourceOperation.UPDATE,\n registry,\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters: contextualParametersWithResourceId,\n })\n : resourceConfig\n ? pickPreferredOperationForCoreSemantic(\n resourceConfig.operations ?? [],\n CoreResourceOperation.CREATE,\n )\n : undefined;\n\n let basePath: string | undefined;\n\n if (routeBearingMutationOperation) {\n const routePaths = ResourcesConfigOperationsUrlsBuilderUtils.buildOperationFrontendRoutePaths(\n resourceConfig!,\n routeBearingMutationOperation,\n registry.allResourceFieldIdentifiers\n );\n\n if (routePaths.length > 0) {\n const routePath = frontendResourceUtils.selectMatchingRoutePath(\n routePaths,\n contextResourceIdentifiersWithResourceId,\n resourceConfig.resourceIdentifier,\n resourceFieldIdentifier,\n resourceContext.parentResourcesRequirements,\n );\n // Frontend route paths omit `MAIN_API_BASE_PATH` (`/api/v1`), so this carries the prefix.\n // NOTE it no longer serves `validate-field` (#1238): that route is mounted on the CREATE\n // operation's initiator-info URL and must not carry a route segment such as `/create`.\n // The upload endpoint below builds its own URL from `apiBaseUrl` + contextual parameters.\n basePath = `${MAIN_API_BASE_PATH}${routePath.url}`;\n basePath = NavigationUtils.resolveUrlPath(basePath, contextualParameters);\n\n if (basePath && NavigationUtils.hasUnresolvedPlaceholders(basePath)) {\n logger.warn('[ResourceAutomatedForm] Unresolved placeholders in routed API basePath; disabling route-derived helpers', {\n basePath,\n resourceType,\n operationIdentifier,\n });\n basePath = undefined;\n }\n }\n }\n\n if (!basePath) {\n return null;\n }\n\n return {\n apiBaseUrl,\n basePath,\n contextualParameters,\n primaryResourceId,\n resourceFieldIdentifier,\n };\n } catch (error) {\n logger.error('[ResourceAutomatedForm] Error computing resource API base:', error);\n return null;\n }\n }, [\n contextResourceIdentifiersWithResourceId,\n contextualParametersWithResourceId,\n effectiveCoreOperation,\n operation,\n registry,\n resourceConfig,\n resourceContext,\n resourceId,\n resourceType,\n ]);\n\n // Generate file upload context for file fields\n // Detects file fields in schema and builds resource-integrated upload endpoints\n // Decision 7.1: Use ResourcesConfigOperationsUrlsBuilderUtils for proper nested resource path building\n const fileUploadContext = useMemo<Record<string, FileFieldEndpoints>>(() => {\n if (!formSchema || !resourceApiBase || !resourceConfig?.resourceFieldIdentifier) return {};\n\n const context: Record<string, FileFieldEndpoints> = {};\n const isUpdateOperation = isSingleResourceUpdateLikeOperation(operation);\n const { apiBaseUrl, contextualParameters } = resourceApiBase;\n\n try {\n const uploadOperation = (\n operation.variantType === ResourceOperationVariantType.API_CALL\n || operation.variantType === ResourceOperationVariantType.API_CALL_WITH_CALLBACK\n )\n ? operation\n : isUpdateOperation\n ? pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig,\n operations: resourceConfig.operations ?? [],\n coreOperation: CoreResourceOperation.UPDATE,\n registry,\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters: contextualParametersWithResourceId,\n })\n : pickPreferredOperationForCoreSemantic(\n resourceConfig.operations ?? [],\n CoreResourceOperation.CREATE,\n );\n if (!uploadOperation) {\n return context;\n }\n\n const uploadRoutePaths = ResourcesConfigOperationsUrlsBuilderUtils.buildOperationFrontendRoutePaths(\n resourceConfig,\n uploadOperation,\n registry.allResourceFieldIdentifiers,\n );\n if (uploadRoutePaths.length === 0) {\n return context;\n }\n\n const routePath = frontendResourceUtils.selectMatchingRoutePath(\n uploadRoutePaths,\n contextResourceIdentifiersWithResourceId,\n resourceConfig.resourceIdentifier,\n resourceConfig.resourceFieldIdentifier,\n resourceContext.parentResourcesRequirements,\n );\n const filesBasePath = `${apiBaseUrl}/api/v1/files`;\n const fileFieldPaths = AutomatedLayoutFrontendUtils.collectUploadableFileFieldPaths(formSchema);\n\n for (const fieldName of fileFieldPaths) {\n const uploadRoute = ResourcesConfigOperationsUrlsBuilderUtils.buildFileUploadRouteForOperation({\n operationRouteUrl: routePath.url,\n operationParameters: routePath.parameters,\n targetResourceType: resourceType,\n targetResourceFieldIdentifier: resourceConfig.resourceFieldIdentifier,\n fieldName,\n requiresTargetResourceId: isUpdateOperation,\n isFrontend: true,\n });\n const resolvedUploadPath = NavigationUtils.resolveUrlPath(\n uploadRoute.url,\n contextualParameters,\n );\n\n if (NavigationUtils.hasUnresolvedPlaceholders(resolvedUploadPath)) {\n logger.warn('[ResourceAutomatedForm] Unresolved placeholders in file upload path, skipping endpoint', {\n fieldName,\n uploadPath: resolvedUploadPath,\n });\n continue;\n }\n\n // `resolvedUploadPath` comes from `buildOperationFrontendRoutePaths`, which\n // builds React-Router APP paths and deliberately OMITS `MAIN_API_BASE_PATH`\n // (`/api/v1`) — see the `!isFrontend ? [MAIN_API_BASE_PATH] : []` seam in the\n // URL builder. The backend registers the upload route off the API route\n // (`initiatorInfo.url`, WITH `/api/v1`), so the endpoint must carry the same\n // prefix or every resource-integrated upload 404s (the segment naming already\n // matches — both sides use the same parent-combination builder). This mirrors\n // the metadata endpoint above, which hardcodes `/api/v1/files`.\n const uploadEndpoint = `${apiBaseUrl}${MAIN_API_BASE_PATH}${resolvedUploadPath}`;\n\n context[fieldName] = {\n upload: uploadEndpoint,\n override: isUpdateOperation ? uploadEndpoint : undefined,\n getMetadata: filesBasePath,\n // UPDATE remove must clear the field locally and let the later save own unlinking.\n delete: isUpdateOperation ? undefined : filesBasePath,\n };\n }\n } catch (error) {\n logger.error('[ResourceAutomatedForm] Error generating file upload context:', error);\n }\n\n return context;\n }, [\n contextResourceIdentifiersWithResourceId,\n formSchema,\n operation,\n parentResourcesRequirementsKey,\n resourceApiBase,\n resourceConfig,\n resourceType,\n ]);\n\n // =============================================================================\n // SERVER-SIDE FIELD VALIDATION CONTEXT\n // =============================================================================\n\n /**\n * Build the validate-field URL for server-side field pre-validation.\n * Only computed when the resource's mainSchema has fields that require\n * server-side validation (currently: isUnique; extensible to FK existence,\n * external API checks, custom validators, etc.).\n *\n * The URL follows the same base path as the CREATE operation + \"/validate-field\".\n * The backend handler dispatches to the appropriate validation strategy\n * based on the field's decorators.\n */\n const validateFieldUrl = useMemo<string | undefined>(() => {\n if (!resourceApiBase || !resourceConfig) return undefined;\n\n // Check if the resource's main schema has any fields requiring server validation.\n // Use the mainSchema (not requestDto) because decorators live on the main entity schema.\n //\n // Currently checks: isUnique()\n // When new server-validated decorators are added (e.g., isExternallyValidated),\n // add them to this check to enable the validate-field URL for those resources.\n const mainSchema = resourceConfig.mainSchema;\n if (!mainSchema) return undefined;\n\n const shape = getZodObjectShape(mainSchema);\n const hasServerValidatedFields = Object.values(shape).some(fieldSchema =>\n isUnique(fieldSchema)\n // Future: || isExternallyValidated(fieldSchema)\n // Future: || isServerValidated(fieldSchema)\n );\n if (!hasServerValidatedFields) return undefined;\n\n /*\n * Built from the CREATE operation's INITIATOR INFO, not from `resourceApiBase.basePath` (#1238).\n *\n * `basePath` is the FRONTEND ROUTE of the create surface, so on a create form it carries the\n * `/create` segment and the request went to `…/todo-lists/create/validate-field` — a path the\n * backend does not serve. It answered 404, and `useFieldUniquenessValidation` treats a failed\n * check as \"no conflict found\", so the whole early-warning affordance was dead on every create\n * form with nothing to see: a 404 and a genuinely free value are indistinguishable to the person.\n *\n * The backend mounts this route on `createOperation.initiatorInfos[].url`\n * (`validate-field-handler.backend.service.ts`, \"Register routes for each parent combination\"),\n * which is the API collection URL and has no route segment beyond the resource. Selecting the\n * initiator here puts both sides on ONE authority instead of two descriptions of the same path —\n * and `selectOperationUrlInitiatorInfo`'s own contract is that its algorithm \"must stay in sync\n * with backend URL generation\", which is precisely the question being asked.\n *\n * The CREATE operation is used even on an UPDATE form, deliberately: the backend registers this\n * route from the CREATE operation alone and authorizes it with CREATE rights, because field\n * validation is a create-surface helper. An update form reaches the same path and passes\n * `excludeId`.\n */\n const createOperation = pickPreferredOperationForCoreSemantic(\n resourceConfig.operations ?? [],\n CoreResourceOperation.CREATE,\n );\n const initiatorInfo = createOperation?.initiatorInfos?.length\n ? FrontendResourceUtils.selectOperationUrlInitiatorInfo({\n initiatorInfos: createOperation.initiatorInfos,\n contextualParameters: resourceApiBase.contextualParameters,\n targetResourceType: resourceConfig.resourceIdentifier,\n targetDefaultFieldIdentifier: resourceApiBase.resourceFieldIdentifier,\n parentResourcesRequirements: resourceContext.parentResourcesRequirements,\n })\n : undefined;\n if (!initiatorInfo) return undefined;\n\n const composed = buildValidateFieldUrl({\n apiBaseUrl: resourceApiBase.apiBaseUrl,\n initiatorInfo,\n contextualParameters: resourceApiBase.contextualParameters,\n });\n if (!composed) {\n logger.warn('[ResourceAutomatedForm] validate-field URL has unresolved parameters; blur-time validation disabled', {\n initiatorUrl: initiatorInfo.url,\n resourceType,\n });\n }\n return composed;\n }, [resourceApiBase, resourceConfig, resourceContext.parentResourcesRequirements, resourceType]);\n\n /**\n * Resource ID for UPDATE operations.\n * Passed as excludeId to the validate-field endpoint so server-side validation\n * strategies can exclude the current resource from checks (e.g., uniqueness\n * validation shouldn't conflict with the resource's own values during UPDATE).\n */\n const primaryResourceId = useMemo<string | undefined>(() => {\n return resourceId ?? frontendResourceUtils.getPrimaryResourceIdentifier(resourceContext) ?? undefined;\n }, [resourceContext, resourceId]);\n const canonicalReadOperation = useMemo(() => {\n if (rmm) {\n return undefined;\n }\n\n return resolveCanonicalRMMReadOperation(resourceType, registry, {\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters: contextualParametersWithResourceId,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [contextResourceIdentifiersKey, contextResourceIdentifiersWithResourceId, contextualParametersWithResourceId, registry, resourceId, resourceType, rmm]);\n\n const canonicalReadOperationPathKey = useMemo(() => {\n if (rmm) {\n return rmmCanonicalReadOperationPathKey;\n }\n\n return canonicalReadOperation\n ? ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(canonicalReadOperation)\n : resolveCanonicalRMMReadOperationPathKey(resourceType, registry, {\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters: contextualParametersWithResourceId,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [canonicalReadOperation, contextResourceIdentifiersKey, contextResourceIdentifiersWithResourceId, contextualParametersWithResourceId, registry, resourceId, resourceType, rmm, rmmCanonicalReadOperationPathKey]);\n\n // Determine if we need to fetch existing data\n const needsFetch = useMemo(() => shouldFetchExistingData(operation), [operation]);\n const lastExistingDataFetchKeyRef = useRef<string | null>(null);\n\n // ── EA: post-load operation-availability guard ─────────────────────────────\n // The action bar / display gate only guards navigations IT initiates; a\n // deep-link, bookmark, or a tab left open while the record changed can still\n // land directly on an operation's form. This host is the one place that loads\n // the record (for UPDATE-like ops), so it is the correct layer to re-check\n // `enabledCondition` against the REAL object and render an \"unavailable\" state\n // instead of a form the backend would reject on submit. Armed only for\n // operations that act on an existing resource (`needsFetch`) once the record\n // has loaded; CREATE (no object) and the loading window are skipped, so the\n // hook returns `isEnabled: true` and never trips the guard for them.\n const operationAvailability = useOperationEnabled({\n operation,\n currentObject: needsFetch ? (defaultValues as Record<string, unknown> | undefined) : undefined,\n resourceType,\n enabled: needsFetch && hasLoadedOnce && !fetchError,\n });\n\n // CREATE-only synchronous default-value seed.\n //\n // Two jobs (see `resolveCreateFormInitialValues` for the full rationale):\n // 1. For a `createSchemaFamily` resource the form validates against a\n // `z.discriminatedUnion`, which dispatches on the RAW discriminator value\n // BEFORE any variant `.default()` is applied. When the discriminator field\n // is not rendered by the layout (e.g. Wonder Todos `todos.recurringType`),\n // it would stay `undefined` and every create would fail with\n // `{ <discriminator>: \"Invalid input\" }` — the POST never fires.\n // 2. Audit D3: every field with a declared schema `.default()` is seeded so\n // the create form DISPLAYS the values the backend will apply (a `status`\n // defaulting to `pending` no longer renders an empty \"Select...\").\n // It MUST be synchronous: `Form`/`useForm` consume `defaultValues` only at\n // initialization and never reset, so an effect-set seed would arrive after the\n // first mount and never reach RHF.\n // Computed only for CREATE; UPDATE-like operations take their defaults from the\n // fetched record. Default-free non-discriminated resources resolve to `undefined`.\n const createSeededDefaultValues = useMemo<DefaultValues<any> | undefined>(() => {\n if (needsFetch) return undefined;\n return resolveCreateFormInitialValues({\n formFieldShape,\n inheritanceConfig,\n defaultValuesOverride: defaultValuesOverride as Record<string, unknown> | undefined,\n }) as DefaultValues<any> | undefined;\n }, [needsFetch, formFieldShape, inheritanceConfig, defaultValuesOverride]);\n\n // Fetch existing data for UPDATE-like operations\n // Use refs to avoid infinite loops from unstable function references\n useEffect(() => {\n if (!needsFetch) {\n // CREATE path. The discriminated-union discriminator default is seeded\n // SYNCHRONOUSLY via `createSeededDefaultValues` / `effectiveDefaultValues`\n // (Form.tsx reads `defaultValues` only at useForm init and never resets, so\n // an async/effect-set seed would arrive after mount and never reach RHF —\n // the discriminator would stay undefined and the resolver would reject the\n // submit with \"Invalid input\"). Here we keep the prior contract.\n setDefaultValues(defaultValuesOverride ?? undefined);\n setDefaultValuesSource('create');\n setHasLoadedOnce(true);\n return;\n }\n\n const existingDataFetchKey = JSON.stringify({\n canonicalReadOperationPathKey,\n contextResourceIdentifiersKey,\n parentResourcesRequirementsKey,\n });\n\n if (hasLoadedOnce && lastExistingDataFetchKeyRef.current === existingDataFetchKey) {\n if (\n rmm\n && defaultValues\n && typeof rmm.getSnapshot === 'function'\n && rmm.getSnapshot().confirmedData === null\n && typeof rmm.setInitialState === 'function'\n ) {\n const dataRecord = defaultValues as Record<string, unknown>;\n rmm.setInitialState(\n dataRecord,\n (dataRecord._version as number) ?? 0,\n dataRecord._field_meta as Record<string, FieldMetaEntry> | undefined,\n );\n }\n return;\n }\n\n let cancelled = false;\n\n const fetchData = async () => {\n setFetchError(null);\n\n try {\n if (!canonicalReadOperationPathKey) {\n throw new Error('No addressable canonical READ operation is available for this resource form context.');\n }\n\n const data = await performCanonicalRMMRead({\n doOperation: doOperationRef.current,\n readOperationPathKey: canonicalReadOperationPathKey,\n contextualParameters: contextualParametersWithResourceId,\n parentResourcesRequirements: resourceContext.parentResourcesRequirements,\n });\n\n if (cancelled) return;\n\n const dataRecord = data as Record<string, unknown>;\n if (rmm) {\n rmm.setInitialState(\n dataRecord,\n (dataRecord._version as number) ?? 0,\n dataRecord._field_meta as Record<string, FieldMetaEntry> | undefined,\n );\n }\n\n setDefaultValues(\n defaultValuesOverride\n ? { ...dataRecord, ...defaultValuesOverride }\n : (data as DefaultValues<any>)\n );\n lastExistingDataFetchKeyRef.current = existingDataFetchKey;\n setDefaultValuesSource(existingDataFetchKey);\n setHasLoadedOnce(true);\n } catch (error) {\n if (cancelled) return;\n\n // Create WildoError_Frontend for READ operation failure\n const originalError = error instanceof Error ? error : new Error(String(error));\n\n // E-5: route through extractErrorInfo so structured WildoError_Backend\n // payloads (with customMessageReference + context) are preferred over\n // best-effort plain `error.code` / `error.context` access.\n const errorInfo = extractErrorInfo(error);\n const wildoError = errorBuilder.buildWildoError_Frontend(\n ErrorType.NOT_FOUND,\n {\n customMessageReference: ErrorCustomMessageReference.FRONTEND_FORM_READ_OPERATION_NOT_AVAILABLE,\n operationPathKey: canonicalReadOperationPathKey,\n context: {\n resourceType,\n operationIdentifier,\n originalErrorMessage: originalError.message,\n originalErrorStack: originalError.stack,\n httpCode: errorInfo.code,\n httpContext: errorInfo.context,\n },\n }\n );\n\n // Resolved from the CAUGHT error, not from `wildoError`: the synthesized reference would hide the real\n // cause (a permission refusal, a network failure) behind a generic \"not available\".\n setFetchError({ wildoError, message: toUserFacingErrorMessage(error) });\n onErrorRef.current?.(originalError);\n }\n };\n\n fetchData();\n\n return () => {\n cancelled = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using refs for unstable functions; `rmm` so seed runs when RMM becomes available\n }, [needsFetch, canonicalReadOperationPathKey, resourceType, contextResourceIdentifiersKey, contextualParametersWithResourceId, parentResourcesRequirementsKey, errorBuilder, operationIdentifier, defaultValuesOverride, rmm, hasLoadedOnce, defaultValues]);\n\n // Handle form submission - use refs to avoid stale closures and dependency issues\n const handleSubmit = useCallback(async (data: any) => {\n // Cancel any pending autosaves before full form submit to prevent race conditions\n cancelPendingAutosavesRef.current?.();\n\n setIsSubmitting(true);\n // Clear previous server errors before new submission\n clearServerErrors();\n\n logDebug('handleSubmit: starting', { operationPathKey, dataKeys: Object.keys(data || {}) });\n\n try {\n let result: unknown;\n\n // RMM path: queue full submit (cancelPendingAutosavesRef already called rmm.cancelPendingMutations())\n if (rmm) {\n const mutationResult = await rmm.queueMutation(data, {\n type: MutationType.SUBMIT,\n priority: MutationPriority.HIGH,\n source: { type: MutationSourceType.FORM, subscriberId: 'submit' },\n transportOverride: currentOperationTransportOverride,\n });\n\n if (!mutationResult.success) {\n if (isConflictMutationFailure(mutationResult)) {\n return;\n }\n /*\n * Report the transport failure ITSELF (`error.cause`), not a fresh `Error` rebuilt from its message.\n * The caught error carries the backend's `wildoError` — its reference and type — and a new `Error`\n * dropped both: a save the server refused for a stated reason (`409\n * organization_unit_directory_managed`) reached the person as \"Unexpected error\", classified as an\n * uncaught exception (#1447). The rebuilt `Error` stays only as the fallback for a failure with no\n * transport error behind it.\n */\n if (mutationResult.error?.type === MutationErrorType.VALIDATION) {\n onErrorRef.current?.(mutationErrorForReport(mutationResult.error, 'Validation failed'));\n return;\n }\n throw mutationErrorForReport(mutationResult.error, 'Submit failed');\n }\n\n result = mutationResult.responseData;\n } else {\n assertRMMAvailableForDefaultUpdateLikeMutation('ResourceAutomatedForm submit');\n result = await doOperationRef.current(\n currentOperationTransportOverride.operationPathKey,\n {\n contextualParameters: currentOperationTransportOverride.contextualParameters,\n requestData: mergeRequestDataWithBulkSelection(data),\n parentResourcesRequirements: currentOperationTransportOverride.parentResourcesRequirements,\n },\n // `silent`: this form owns the user-facing failure UX (the catch below\n // emits NOTIFY_RESOURCE_ERROR + injects inline field errors). Suppress the\n // GLOBAL error toast so a failed create/direct-mutation shows ONE toast,\n // matching the RMM update path (HttpTransportAdapter also passes silent).\n // Side-effects (auth-logout on 401, redirect, dedup) still run — `silent`\n // now suppresses only the global display, not the ERROR_OCCURED event.\n { silent: true },\n );\n }\n\n logDebug('handleSubmit: success', { operationPathKey });\n\n // Emit success notification event if configured\n const frontendNotification = getFrontendNotification(operation);\n if (frontendNotification) {\n const eventType = frontendNotification.level === UserNotificationLevel.WARNING\n ? FrontendEvents.NOTIFY_RESOURCE_WARNING\n : frontendNotification.level === UserNotificationLevel.ERROR\n ? FrontendEvents.NOTIFY_RESOURCE_ERROR\n : frontendNotification.level === UserNotificationLevel.INFO\n ? FrontendEvents.NOTIFY_RESOURCE_INFO\n : FrontendEvents.NOTIFY_RESOURCE_SUCCESS;\n\n emitRef.current(eventType, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForOutcome({\n contextResourceIdentifiers: resourceContext.contextResourceIdentifiers,\n resourceType,\n result,\n isBulkOperation: resourceContext.operation?.isBulkOperation === true,\n }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: toOperationResultSummary(result),\n additionalContext: {\n ...resourceContext.additionalContext,\n notificationIdentifier: frontendNotification.identifier,\n notificationLevel: frontendNotification.level,\n result,\n },\n });\n }\n\n const quickCreateRequest = resourceContext.additionalContext?.quickCreateRequest as { requestId?: string } | undefined;\n if (quickCreateRequest?.requestId && effectiveCoreOperation === CoreResourceOperation.CREATE) {\n const createdResourceId = resolveQuickCreateCreatedResourceId({\n result,\n resourceType,\n registry,\n });\n if (createdResourceId) {\n emitQuickCreateCompleted({\n emit: emitRef.current,\n requestId: quickCreateRequest.requestId,\n resourceType,\n resourceId: createdResourceId,\n data: typeof result === 'object' && result !== null && !Array.isArray(result)\n ? result as Record<string, unknown>\n : undefined,\n });\n }\n }\n\n onSuccessRef.current?.(result);\n } catch (error) {\n if (error instanceof MutationCancelledError) {\n return;\n }\n\n const err = error instanceof Error ? error : new Error(String(error));\n\n logDebug('handleSubmit: error caught', { message: err.message, operationPathKey });\n\n // Extract server-side validation errors (400/409 with field-level errors)\n const serverValidation = extractServerValidationErrors(error);\n\n if (serverValidation) {\n logDebug('handleSubmit: server validation errors detected', {\n httpStatus: serverValidation.httpStatus,\n fields: Object.keys(serverValidation.validationErrors),\n });\n injectServerErrors(serverValidation.validationErrors);\n } else {\n logDebug('handleSubmit: general error (not validation)', { message: err.message });\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_ERROR, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForTransport(\n resourceContext.contextResourceIdentifiers,\n ),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n additionalContext: {\n ...resourceContext.additionalContext,\n error: err.message,\n // Carry the backend error reference + status so the notification layer\n // can resolve a localized human message (tErrorMessage) instead of\n // falling back to the operation title. See NotificationContext.resolveMessage.\n ...describeResourceErrorForNotification(error),\n },\n });\n }\n\n onErrorRef.current?.(err);\n } finally {\n setIsSubmitting(false);\n }\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n mergeRequestDataWithBulkSelection,\n operationPathKey,\n contextualParameters,\n operation,\n resourceContext,\n rmm,\n ]);\n\n // Handle validation errors (client-side, from RHF)\n const handleError = (errors: FieldErrors) => {\n logDebug('handleError: client-side validation failed', {\n errorCount: Object.keys(errors).length,\n fields: Object.keys(errors),\n });\n logger.warn('[ResourceAutomatedForm] Form validation errors', errors);\n // Audit D4: on a failed submit the errors render inline but the viewport\n // stays at the submit button — scroll the first errored field (DOM order)\n // into view and focus it. Server-side validation gets the same treatment\n // inside `injectServerErrors` (the single injection seam).\n scrollAndFocusFirstErroredField(collectErroredFieldPaths(errors));\n };\n\n // When defaultValuesOverride changes (e.g. after DISCOVER), reset form with merged values\n useEffect(() => {\n if (!defaultValuesOverride || !formMethodsRef.current) return;\n const merged = defaultValues\n ? { ...(defaultValues as Record<string, unknown>), ...defaultValuesOverride }\n : defaultValuesOverride;\n formMethodsRef.current.reset(merged);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- only run when override changes\n }, [defaultValuesOverride]);\n\n // Callback to receive form methods from AutomatedForm\n const handleFormReady = useCallback((formMethods: FormMethods) => {\n formMethodsRef.current = formMethods;\n initAutoClearing(formMethods);\n // When defaultValuesOverride is set (e.g. from DISCOVER), reset form with merged values\n if (defaultValuesOverride) {\n const merged = defaultValues\n ? { ...(defaultValues as Record<string, unknown>), ...defaultValuesOverride }\n : defaultValuesOverride;\n formMethods.reset(merged);\n }\n }, [initAutoClearing, defaultValuesOverride]);\n\n const validateAutosaveField = useCallback(async (fieldName: string): Promise<boolean> => {\n if (!formMethodsRef.current) {\n logDebug('validateAutosaveField: form methods unavailable, failing closed', { fieldName });\n return false;\n }\n return formMethodsRef.current.trigger(fieldName as any);\n }, []);\n\n // Autosave handler - saves a single field via PATCH\n // Uses abortSignal for proper cancellation handling\n const handleAutosave: AutosaveSaveHandler = useCallback(async (fieldName, value, abortSignal) => {\n assertRMMAvailableForDefaultUpdateLikeMutation('ResourceAutomatedForm autosave');\n\n // Helper to check abort and throw if aborted\n const checkAborted = () => {\n if (abortSignal.aborted) {\n throw new DOMException('Autosave aborted', 'AbortError');\n }\n };\n\n // Check if already aborted before starting\n checkAborted();\n\n // A composite child autosaves under its dotted path (`address.city`). This handler supplies the\n // RMM's `transportOverride.requestData`, which the RMM sends as given, so the body must already be\n // in the resource's own shape: the WHOLE top-level field with the edit written into it. A flat\n // dotted key is dropped by the strict UPDATE parse with a 200, and a bare nested fragment would\n // erase the siblings, because an UPDATE replaces a nested object (#1395). The stored parent comes\n // from the RMM's confirmed state, the last thing the server said; without an RMM, from the form.\n const storedRecord = (rmm?.getSnapshot().confirmedData ?? formMethodsRef.current?.getValues() ?? null) as Record<string, unknown> | null;\n const requestData = mergeRequestDataWithBulkSelection(buildInlineUpdateRequestData(storedRecord, fieldName, value));\n\n // Check abort again after shaping the request payload.\n checkAborted();\n\n const operationPromise = rmm\n ? rmm.queueMutation(\n { [fieldName]: value },\n {\n type: MutationType.AUTOSAVE,\n priority: MutationPriority.LOW,\n transportOverride: {\n ...currentOperationTransportOverride,\n requestData,\n },\n },\n ).then((mutationResult) => {\n if (!mutationResult.success) {\n throw mutationResult.error ?? new Error('Autosave failed');\n }\n })\n : doOperationRef.current(currentOperationTransportOverride.operationPathKey, {\n contextualParameters: currentOperationTransportOverride.contextualParameters,\n requestData,\n parentResourcesRequirements: currentOperationTransportOverride.parentResourcesRequirements,\n }, {\n signal: abortSignal,\n silent: true, // Don't show global error notifications for autosave\n });\n\n // Note: The Promise.race workaround below is kept as a fallback\n // in case the abort signal propagation through doOperation fails.\n // The native signal support (above) should handle most cases.\n\n // Create abort promise that rejects when signal is aborted\n const abortPromise = new Promise<never>((_, reject) => {\n if (abortSignal.aborted) {\n reject(new DOMException('Autosave aborted', 'AbortError'));\n return;\n }\n\n const abortHandler = () => {\n reject(new DOMException('Autosave aborted', 'AbortError'));\n };\n\n abortSignal.addEventListener('abort', abortHandler, { once: true });\n\n // Clean up listener when operation completes\n operationPromise.finally(() => {\n abortSignal.removeEventListener('abort', abortHandler);\n });\n });\n\n // Race between operation and abort - abort wins if signal triggers\n await Promise.race([operationPromise, abortPromise]);\n\n // Final abort check after operation completes\n checkAborted();\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n mergeRequestDataWithBulkSelection,\n rmm,\n ]);\n\n // Section save handler - saves a subset of fields via PATCH\n const handleSectionSave = useCallback(async (\n sectionRef: string,\n fieldNames: string[],\n data: Record<string, unknown>\n ) => {\n if (fieldNames.length === 0) {\n if (envLoader.isDevelopment()) {\n logger.warn('[ResourceAutomatedForm] Skipping section save because no fields were registered for the section.', {\n resourceType,\n sectionRef,\n });\n }\n return;\n }\n\n const sectionScopedData = fieldNames.length > 0\n ? pickSubmissionDataPaths(data, fieldNames)\n : data;\n const sanitizedData = sanitizeAutomatedFormSubmissionData(sectionScopedData, {\n hiddenFieldNames,\n contextFieldValues,\n omitClearedFields: omitClearedFieldsForSubmission,\n schema: formSchema,\n });\n\n // If a custom callback is provided, use it\n if (onSectionSaveRef.current) {\n await onSectionSaveRef.current(sectionRef, fieldNames, sanitizedData);\n return;\n }\n\n try {\n let result: unknown;\n // A section may hold only SOME of a composite's children, and an UPDATE replaces the nested\n // object whole — so the body carries the stored siblings of every partially-written parent\n // (#1410). Stored = the RMM's confirmed state, or on the direct lane the record the form loaded.\n const storedRecord = (rmm ? rmm.getSnapshot().confirmedData : defaultValues) as Record<string, unknown> | null | undefined;\n const requestData = mergeRequestDataWithBulkSelection(\n carryStoredSiblingsIntoPartialWrites(sanitizedData, fieldNames, storedRecord),\n );\n if (rmm) {\n const mutationResult = await rmm.queueMutation(sanitizedData, {\n type: MutationType.SECTION,\n priority: MutationPriority.NORMAL,\n source: { type: MutationSourceType.FORM, subscriberId: `section:${sectionRef}` },\n transportOverride: {\n ...currentOperationTransportOverride,\n requestData,\n },\n });\n\n if (!mutationResult.success) {\n if (isConflictMutationFailure(mutationResult)) {\n return;\n }\n if (mutationResult.error?.type === MutationErrorType.VALIDATION) {\n onErrorRef.current?.(mutationErrorForReport(mutationResult.error, 'Section save validation failed'));\n return;\n }\n throw mutationErrorForReport(mutationResult.error, 'Section save failed');\n }\n\n result = mutationResult.responseData;\n } else {\n assertRMMAvailableForDefaultUpdateLikeMutation('ResourceAutomatedForm section save');\n result = await doOperationRef.current(\n currentOperationTransportOverride.operationPathKey,\n {\n contextualParameters: currentOperationTransportOverride.contextualParameters,\n requestData,\n parentResourcesRequirements: currentOperationTransportOverride.parentResourcesRequirements,\n },\n // silent: form owns the failure UX (catch emits NOTIFY_RESOURCE_ERROR);\n // suppress the duplicate global toast. See handleSubmit for rationale.\n { silent: true },\n );\n }\n\n // Emit success event for the section save\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_SUCCESS, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForOutcome({\n contextResourceIdentifiers: resourceContext.contextResourceIdentifiers,\n resourceType,\n result,\n isBulkOperation: resourceContext.operation?.isBulkOperation === true,\n }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: toOperationResultSummary(result),\n additionalContext: {\n ...resourceContext.additionalContext,\n sectionRef,\n fieldNames,\n notificationIdentifier: 'section_saved',\n notificationLevel: UserNotificationLevel.SUCCESS,\n },\n });\n onSuccessRef.current?.(result);\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n onErrorRef.current?.(err);\n // Resource layer owns the failure UX: emit ONE resource error toast (the\n // doOperation above is `silent`, so the global toast is suppressed). We do\n // NOT re-throw: the sole consumer (`Section.tsx` save button) has no catch and\n // no success/failure branching, so a throw would surface ONLY as an unhandled\n // promise rejection → a generic global toast. This keeps section-save aligned\n // with handleSubmit/draft/publish (single, resource-aware toast).\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_ERROR, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForTransport(\n resourceContext.contextResourceIdentifiers,\n ),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n additionalContext: {\n ...resourceContext.additionalContext,\n sectionRef,\n error: err.message,\n ...describeResourceErrorForNotification(error),\n },\n });\n }\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n contextFieldValues,\n contextualParameters,\n defaultValues,\n hiddenFieldNames,\n mergeRequestDataWithBulkSelection,\n resourceContext,\n resourceType,\n rmm,\n ]);\n\n // Autosave config for the provider\n /**\n * DERIVED when the caller passes none: a field that declares `edit.autosave` autosaves, and\n * nothing else changes.\n *\n * Until 2026-09-08 `edit.autosave` was inert on every generated form (#449). The provider mounts\n * only when a caller passes `autosaveConfig`, and no engine layout and neither dogfood application\n * passed one — so the decorator was authored, typed and read by `FormField`, which then resolved a\n * null context every time. The only live provider anywhere was the read-side inline array editor.\n *\n * **Why no layout could simply turn it on, which is the part worth knowing.** An undeclared field\n * does not opt out: `resolveAutosaveTrigger` returns the CONTEXT DEFAULT for a field with no\n * config, and that default was `DEBOUNCE`. So enabling the provider for the one field that asked\n * made every OTHER field in the form autosave too — turning a field-level declaration into a\n * form-wide behaviour change. That is a much larger promise than the decorator makes, and it is\n * the reason this stayed off rather than an oversight.\n *\n * So the derivation passes `defaultTrigger: NONE`. Undeclared fields resolve to NONE, which\n * `triggerSave` skips outright, and only a declaring field saves. A form where no field declares\n * autosave never mounts the provider at all, so **no application changes behaviour unless a field\n * asked for it** — which is what makes this safe to enable by default rather than a product\n * decision about writing data differently.\n *\n * UPDATE only. Autosave PATCHes an existing row; on a CREATE there is nothing to patch, and a\n * per-field save before the record exists is a different feature (drafts) with its own surface.\n *\n * An explicit caller-supplied `autosaveConfig` still wins, unchanged — including its own\n * `defaultTrigger`, so a caller that genuinely wants form-wide autosave can still ask for it.\n */\n const derivedAutosaveEnabled = useMemo(\n // `effectiveFormOperationType`, not `operationType`: a CUSTOM operation declaring\n // `resourceOperationLike: UPDATE` (a `rotate`, say) edits an existing row and autosaves on the\n // same terms. That variable is the one the rest of the form filters fields by.\n () => autosaveConfig === undefined && deriveAutosaveEnabledFromFields(formFieldShape, effectiveFormOperationType),\n [autosaveConfig, effectiveFormOperationType, formFieldShape],\n );\n\n const autosaveProviderConfig: AutosaveConfig = useMemo(() => ({\n enabled: autosaveConfig?.enabled ?? derivedAutosaveEnabled,\n defaultTrigger: autosaveConfig?.defaultTrigger ?? (derivedAutosaveEnabled ? AutosaveTrigger.NONE : AutosaveTrigger.DEBOUNCE),\n debounceMs: autosaveConfig?.debounceMs ?? 500,\n savedStateDurationMs: 2000,\n }), [autosaveConfig, derivedAutosaveEnabled]);\n\n // Draft-relaxed schema for draft saves (makes isDraftRelaxed fields optional)\n const draftSchema = useMemo(() => {\n if (!formSchema || !effectiveDraftConfig?.enabled) return null;\n try {\n // Map operationType to FormSchemaOperationType (CREATE/UPDATE/READ)\n const formOperationType: FormSchemaOperationType =\n operationType === CoreResourceOperation.CREATE ? 'CREATE' :\n isUpdateLikeCoreOperation(operationType as CoreResourceOperation) ? 'UPDATE' : 'CREATE';\n const formOperationLike: FormSchemaOperationType | undefined =\n operationLike === CoreResourceOperation.CREATE ? 'CREATE' :\n (operationLike && isUpdateLikeCoreOperation(operationLike as CoreResourceOperation)) ? 'UPDATE' :\n operationLike === CoreResourceOperation.READ ? 'READ' : undefined;\n\n return prepareFormSchema(formSchema as any, {\n operationType: formOperationType,\n operationLike: formOperationLike,\n isDraftMode: true,\n });\n } catch {\n // If schema preparation fails, fall back to null (no draft support)\n return null;\n }\n }, [formSchema, effectiveDraftConfig?.enabled, operationType, operationLike]);\n\n // Handle saving as draft\n const handleSaveDraft = useCallback(async (data: any) => {\n if (!effectiveDraftConfig?.enabled) return;\n\n cancelPendingAutosavesRef.current?.();\n setIsSavingDraft(true);\n clearServerErrors();\n\n try {\n let result: unknown;\n let shouldEmitFrameworkSuccess = true;\n if (effectiveDraftConfig?.onSaveDraft) {\n result = await effectiveDraftConfig.onSaveDraft(data);\n shouldEmitFrameworkSuccess = result !== undefined;\n } else {\n const discriminator = effectiveDraftConfig?.discriminator || '_isDraft';\n const draftValue = effectiveDraftConfig?.draftValue ?? true;\n const draftData = { ...data, [discriminator]: draftValue };\n\n if (rmm) {\n const mutationResult = await rmm.queueMutation(draftData, {\n type: MutationType.DRAFT,\n priority: MutationPriority.HIGH,\n source: { type: MutationSourceType.FORM, subscriberId: 'draft' },\n transportOverride: {\n ...currentOperationTransportOverride,\n requestData: draftData,\n },\n });\n if (!mutationResult.success) {\n if (isConflictMutationFailure(mutationResult)) {\n return;\n }\n throw mutationErrorForReport(mutationResult.error, 'Draft save failed');\n }\n result = mutationResult.responseData;\n } else {\n assertRMMAvailableForDefaultUpdateLikeMutation('ResourceAutomatedForm draft save');\n result = await doOperationRef.current(\n currentOperationTransportOverride.operationPathKey,\n {\n contextualParameters: currentOperationTransportOverride.contextualParameters,\n requestData: mergeRequestDataWithBulkSelection(draftData),\n parentResourcesRequirements: currentOperationTransportOverride.parentResourcesRequirements,\n },\n // silent: form owns the failure UX (catch emits NOTIFY_RESOURCE_ERROR).\n { silent: true },\n );\n }\n }\n\n setIsDraft(true);\n\n if (shouldEmitFrameworkSuccess) {\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_SUCCESS, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForOutcome({\n contextResourceIdentifiers: resourceContext.contextResourceIdentifiers,\n resourceType,\n result,\n isBulkOperation: resourceContext.operation?.isBulkOperation === true,\n }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: toOperationResultSummary(result),\n additionalContext: {\n ...resourceContext.additionalContext,\n notificationIdentifier: 'draftSaved',\n },\n });\n\n onSuccessRef.current?.(result);\n }\n } catch (error) {\n if (error instanceof MutationCancelledError) {\n return;\n }\n\n const serverValidation = extractServerValidationErrors(error);\n\n if (serverValidation) {\n injectServerErrors(serverValidation.validationErrors);\n } else {\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_ERROR, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForTransport(\n resourceContext.contextResourceIdentifiers,\n ),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n additionalContext: {\n ...resourceContext.additionalContext,\n notificationIdentifier: 'draftSaveFailed',\n // Fallback if the 'draftSaveFailed' label is absent: resolveMessage then\n // degrades to the localized backend error rather than the generic default.\n ...describeResourceErrorForNotification(error),\n },\n });\n }\n onErrorRef.current?.(error as Error);\n } finally {\n setIsSavingDraft(false);\n }\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n effectiveDraftConfig,\n mergeRequestDataWithBulkSelection,\n resourceContext,\n resourceType,\n injectServerErrors,\n rmm,\n ]);\n\n // Handle publishing (full validation, called after confirmation if needed)\n const executePublish = useCallback(async (data: any) => {\n if (!effectiveDraftConfig?.enabled) return;\n\n cancelPendingAutosavesRef.current?.();\n setIsSubmitting(true);\n clearServerErrors();\n\n try {\n let result: unknown;\n let shouldEmitFrameworkSuccess = true;\n if (effectiveDraftConfig?.onPublish) {\n result = await effectiveDraftConfig.onPublish(data);\n shouldEmitFrameworkSuccess = result !== undefined;\n } else {\n const discriminator = effectiveDraftConfig?.discriminator || '_isDraft';\n const publishedValue = effectiveDraftConfig?.publishedValue ?? false;\n const publishData = { ...data, [discriminator]: publishedValue };\n\n if (rmm) {\n const mutationResult = await rmm.queueMutation(publishData, {\n type: MutationType.PUBLISH,\n priority: MutationPriority.HIGH,\n source: { type: MutationSourceType.FORM, subscriberId: 'publish' },\n transportOverride: {\n ...currentOperationTransportOverride,\n requestData: publishData,\n },\n });\n if (!mutationResult.success) {\n if (isConflictMutationFailure(mutationResult)) {\n return;\n }\n throw mutationErrorForReport(mutationResult.error, 'Publish failed');\n }\n result = mutationResult.responseData;\n } else {\n assertRMMAvailableForDefaultUpdateLikeMutation('ResourceAutomatedForm publish');\n result = await doOperationRef.current(\n currentOperationTransportOverride.operationPathKey,\n {\n contextualParameters: currentOperationTransportOverride.contextualParameters,\n requestData: mergeRequestDataWithBulkSelection(publishData),\n parentResourcesRequirements: currentOperationTransportOverride.parentResourcesRequirements,\n },\n // silent: form owns the failure UX (catch emits NOTIFY_RESOURCE_ERROR).\n { silent: true },\n );\n }\n }\n\n setIsDraft(false);\n\n if (shouldEmitFrameworkSuccess) {\n const frontendNotification = getFrontendNotification(operation);\n if (frontendNotification) {\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_SUCCESS, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForOutcome({\n contextResourceIdentifiers: resourceContext.contextResourceIdentifiers,\n resourceType,\n result,\n isBulkOperation: resourceContext.operation?.isBulkOperation === true,\n }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: toOperationResultSummary(result),\n additionalContext: {\n ...resourceContext.additionalContext,\n notificationIdentifier: frontendNotification.identifier,\n },\n });\n }\n\n onSuccessRef.current?.(result);\n }\n } catch (error) {\n if (error instanceof MutationCancelledError) {\n return;\n }\n\n const serverValidation = extractServerValidationErrors(error);\n\n if (serverValidation) {\n injectServerErrors(serverValidation.validationErrors);\n } else {\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_ERROR, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForTransport(\n resourceContext.contextResourceIdentifiers,\n ),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n additionalContext: {\n ...resourceContext.additionalContext,\n notificationIdentifier: 'publishFailed',\n // Fallback if the 'publishFailed' label is absent: resolveMessage then\n // degrades to the localized backend error rather than the generic default.\n ...describeResourceErrorForNotification(error),\n },\n });\n }\n onErrorRef.current?.(error as Error);\n } finally {\n setIsSubmitting(false);\n }\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n effectiveDraftConfig,\n mergeRequestDataWithBulkSelection,\n resourceContext,\n resourceType,\n operation,\n injectServerErrors,\n rmm,\n ]);\n\n // Public handlePublish that checks for confirmation requirement\n const handlePublish = useCallback(async (data: any) => {\n if (!effectiveDraftConfig?.enabled) return;\n\n // Check if confirmation is required\n const requireConfirmation = effectiveDraftConfig?.requireConfirmationToPublish;\n if (requireConfirmation) {\n // Store data and show confirmation dialog\n setPendingPublish(data);\n return;\n }\n\n // No confirmation needed, execute directly\n await executePublish(data);\n }, [effectiveDraftConfig, executePublish]);\n\n // Handler for confirmation dialog confirm action\n const handleConfirmPublish = useCallback(async () => {\n if (!pendingPublish) return;\n\n await executePublish(pendingPublish);\n setPendingPublish(null);\n }, [pendingPublish, executePublish]);\n\n // Handler for confirmation dialog cancel action\n const handleCancelPublish = useCallback(() => {\n setPendingPublish(null);\n }, []);\n\n // ── CRITICAL \"double validation\" on form submit ──────────────────────────\n // A CRITICAL operation reached through a form (e.g. a reset-with-flags) must\n // require the same typed double-validation the action bar applies to\n // direct-execute CRITICAL ops: the submit is held until the user types the\n // action label in the confirm dialog. This is the form-submit twin of the\n // confirm-dialog gate in `useResourceOperationActions`.\n const isCriticalOperation = operation.riskLevel === ResourceOperationRiskLevel.CRITICAL;\n // The operation's own name, resolved exactly as the action bar names it — so the phrase to type, and a\n // named action's submit button, are the label the person clicked.\n const operationDisplayTitle = useMemo(\n () => resolveOperationDisplayTitle(tResourceOperation, resourceType, String(operation.operationIdentifier)),\n [tResourceOperation, resourceType, operation.operationIdentifier],\n );\n\n const handleSubmitWithCriticalGuard = useCallback((data: any) => {\n if (isCriticalOperation) {\n setPendingCriticalSubmit(data);\n return;\n }\n void handleSubmit(data);\n }, [isCriticalOperation, handleSubmit]);\n\n const handleConfirmCriticalSubmit = useCallback(() => {\n const data = pendingCriticalSubmit;\n setPendingCriticalSubmit(null);\n if (data !== null) void handleSubmit(data);\n }, [pendingCriticalSubmit, handleSubmit]);\n\n const handleCancelCriticalSubmit = useCallback(() => {\n setPendingCriticalSubmit(null);\n }, []);\n\n // Build default submit button if not provided\n // When draft mode is enabled, show \"Save as Draft\" and \"Publish\" buttons\n const resolvedSubmitButton = useMemo((): React.ReactNode => {\n // A named action submits under its own name (\"Reset to defaults\", \"Change status\"), the words the\n // person clicked to open it. Only the core operations use the generic words: an update-like action\n // resolves to UPDATE, and its button used to read \"Save changes\", which says nothing about what it does.\n const label = isLiteralCoreResourceOperation(operationIdentifier)\n ? tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, getDefaultSubmitLabelKey(effectiveCoreOperation ?? operationIdentifier))\n : operationDisplayTitle;\n const submittingLabel = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'submitting');\n\n if (effectiveDraftConfig?.enabled && draftSchema) {\n const publishLabel = effectiveDraftConfig?.publishLabel\n ? tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, effectiveDraftConfig.publishLabel)\n : tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'publish');\n const publishingLabel = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'publishing');\n\n return (\n <Button type=\"submit\" disabled={isSubmitting || isSavingDraft || disabled}>\n {isSubmitting ? publishingLabel : publishLabel}\n </Button>\n );\n }\n\n return (\n <Button type=\"submit\" disabled={isSubmitting || disabled}>\n {isSubmitting ? submittingLabel : label}\n </Button>\n );\n }, [effectiveCoreOperation, operationIdentifier, operationDisplayTitle, isSubmitting, isSavingDraft, disabled, tComponent, effectiveDraftConfig, draftSchema]);\n\n // Secondary Cancel button (audit D5) — rendered only when the host supplies\n // `onCancel` (overlay-hosted forms pass the same close path as the X button).\n // `type=\"button\"` so it can never trigger the surrounding form's submit.\n const cancelButton = useMemo((): React.ReactNode => {\n if (!onCancel) return null;\n const cancelLabel = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'cancel');\n return (\n <Button type=\"button\" variant={ButtonVariants_Variant.OUTLINE} disabled={isSubmitting || isSavingDraft} onClick={onCancel}>\n {cancelLabel}\n </Button>\n );\n }, [onCancel, isSubmitting, isSavingDraft, tComponent]);\n\n const draftSaveButton = useMemo((): React.ReactNode => {\n if (!effectiveDraftConfig?.enabled || !draftSchema) return null;\n\n const saveDraftLabel = effectiveDraftConfig?.saveDraftLabel\n ? tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, effectiveDraftConfig.saveDraftLabel)\n : tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'saveAsDraft');\n const savingDraftLabel = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'savingDraft');\n\n return (\n <DraftSaveButton\n draftSchema={draftSchema}\n omitClearedFields={omitClearedFieldsForSubmission}\n submissionSchema={formSchema}\n onSaveDraft={handleSaveDraft}\n disabled={isSavingDraft || isSubmitting || disabled}\n isSavingDraft={isSavingDraft}\n label={saveDraftLabel}\n savingLabel={savingDraftLabel}\n />\n );\n }, [effectiveDraftConfig, draftSchema, handleSaveDraft, isSavingDraft, isSubmitting, disabled, tComponent]);\n\n /**\n * Context value for injecting resource-level form actions (submit button, draft button)\n * into the generated template. The template wrapper reads from this context so that\n * reactive state (isSubmitting, isSavingDraft) triggers re-renders without remounting\n * the template component tree.\n */\n // i18n labels for conflict banner (reason-differentiated copy). Computed here,\n // BEFORE the `if (!isReady) return null` gate below, so the `useMemo` hooks that\n // depend on it never sit after an early return (stable hook order).\n const conflictLabels = conflictBanner ? {\n title: tComponent(\n FrontendComponentType.RESOURCES_LAYOUTS_CREATE,\n conflictBanner.reason === ConflictReason.VERSION_CONFLICT ? 'conflictTitleVersion' : 'conflictTitleRemote',\n ),\n message: tComponent(\n FrontendComponentType.RESOURCES_LAYOUTS_CREATE,\n conflictBanner.reason === ConflictReason.VERSION_CONFLICT ? 'conflictMessageVersion' : 'conflictMessageRemote',\n ),\n acknowledgeButton: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'conflictAcknowledge'),\n currentValue: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'conflictCurrentValue'),\n submittedValue: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'conflictSubmittedValue'),\n emptyValue: tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD, 'noValue'),\n } : undefined;\n\n // The version-conflict banner is a SUBMISSION outcome → rendered in the actions\n // footer (above the submit row) via `submissionNotice`, not at the top of the form.\n const conflictNotice = useMemo<React.ReactNode>(() => {\n if (!conflictBanner || !conflictLabels) return null;\n return (\n <RemoteChangeNotification\n type=\"conflict\"\n discardedFields={conflictBanner.discardedFields}\n conflictDetails={conflictBanner.conflictDetails}\n labels={conflictLabels}\n onDismiss={handleAcknowledgeConflict}\n />\n );\n }, [conflictBanner, conflictLabels, handleAcknowledgeConflict]);\n\n // How many templates hold the footer (see `ResourceFormActionsValue.claimFooter`). A count, not a flag, so a\n // remount that claims before the previous instance released cannot leave the footer shown twice or not at all.\n const [footerClaimCount, setFooterClaimCount] = useState(0);\n const claimFooter = useCallback(() => {\n setFooterClaimCount((count) => count + 1);\n return () => setFooterClaimCount((count) => count - 1);\n }, []);\n\n const formActionsValue = useMemo((): ResourceFormActionsValue => ({\n submitButton: resolvedSubmitButton,\n draftSaveButton,\n cancelButton,\n submissionNotice: conflictNotice,\n claimFooter,\n footerClaimed: footerClaimCount > 0,\n }), [resolvedSubmitButton, draftSaveButton, cancelButton, conflictNotice, claimFooter, footerClaimCount]);\n\n const loadingOperationIdentifier = useMemo(() => {\n if (!needsFetch) {\n return undefined;\n }\n\n return String(\n canonicalReadOperation?.operationIdentifier\n ?? FrontendResourceUtils.resolveSingleResourceReadOperation(resourceType, registry)?.operationIdentifier\n ?? CoreResourceOperation.READ,\n );\n }, [canonicalReadOperation, needsFetch, resourceType, registry]);\n\n // LoadingGate scopes for data fetch (UPDATE-like operations only)\n const loadingScopes = useMemo(() => {\n if (!needsFetch || !loadingOperationIdentifier) return [];\n return [{ resourceType, operation: loadingOperationIdentifier }];\n }, [needsFetch, resourceType, loadingOperationIdentifier]);\n\n const i18nKeys = useMemo(() => [\n `components.${FrontendComponentType.RESOURCES_LAYOUTS_CREATE}`,\n ], []);\n\n const readiness = useMemo(() => {\n if (!needsFetch) return [];\n return [{ id: 'form-data', isReady: hasLoadedOnce }];\n }, [needsFetch, hasLoadedOnce]);\n\n const autosaveLabels = useMemo<AutosaveProviderLabels>(() => ({\n errorNetwork: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'autosaveErrorNetwork'),\n errorValidation: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'autosaveErrorValidation'),\n errorGeneric: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'autosaveErrorGeneric'),\n errorConflict: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'autosaveErrorConflict'),\n errorResourceDeleted: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'autosaveErrorResourceDeleted'),\n }), [tComponent]);\n\n // Generate a default form layout template. Memoized on schema + config\n // to ensure stable component identity (prevents form tree remount / state loss).\n // The wrapper appends resource-level actions (submit + draft buttons) by\n // reading from ResourceFormActionsContext, so the template identity stays\n // stable while the reactive button content updates via context.\n const layoutTemplate = useMemo(() => {\n if (!formSchema) {\n return null;\n }\n\n if (explicitEditTemplate) {\n const ExplicitTemplate = explicitEditTemplate;\n // A custom operation keeps the template only because its request is made of resource fields; a\n // field the template leaves out would still have no control, so it is appended. A core operation's\n // template is the author's complete decision, and is rendered as authored.\n const requestFieldNames = isLiteralCoreResourceOperation(operation.operationIdentifier)\n ? null\n : extractSchemaFieldList(formSchema, inheritanceConfig?.discriminatorField).map((field) => field.name);\n const ResourceFormTemplate: React.FC = () => (\n <>\n {requestFieldNames\n ? <AuthoredTemplateWithUnplacedRequestFields Template={ExplicitTemplate} requestFieldNames={requestFieldNames} />\n : <ExplicitTemplate />}\n <HostFormActionsFooter />\n </>\n );\n ResourceFormTemplate.displayName = 'ResourceFormTemplate(explicit)';\n return ResourceFormTemplate;\n }\n\n const BaseTemplate = generateDefaultFormTemplate(formSchema, {\n inheritanceConfig,\n includeSubmitButton: false,\n includeErrorSummary: showErrorSummary,\n });\n\n const ResourceFormTemplate: React.FC = () => (\n <>\n <BaseTemplate />\n <HostFormActionsFooter />\n </>\n );\n ResourceFormTemplate.displayName = 'ResourceFormTemplate';\n return ResourceFormTemplate;\n }, [explicitEditTemplate, formSchema, inheritanceConfig, showErrorSummary, operation.operationIdentifier]);\n\n if (!isReady) return null;\n\n // Error state if fetch failed\n if (fetchError) {\n const errorTitle = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'failedToLoadData');\n\n return (\n <div className={className}>\n <div className=\"p-card bg-destructive/10 border border-destructive rounded-lg\" role=\"alert\">\n <p className=\"text-destructive font-medium\">{errorTitle}</p>\n {/* Localized text only — never `context.originalErrorMessage` or the raw reference (#1160). */}\n <p className=\"text-sm text-destructive/80 mt-item-xs\">{fetchError.message}</p>\n </div>\n </div>\n );\n }\n\n // EA: the operation is no longer available for THIS record (its\n // `enabledCondition` is unmet now that the real object is loaded — e.g. a\n // deep-link to `change_status` on an already-completed todo). Render a neutral\n // unavailable notice instead of a form the backend would reject. Only fires\n // for existing-resource ops after load and after async evaluation settles.\n if (needsFetch && hasLoadedOnce && !operationAvailability.isLoading && !operationAvailability.isEnabled) {\n const unavailableTitle = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'operationUnavailableTitle');\n const unavailableMessage = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'operationUnavailableMessage');\n return (\n <div className={className}>\n <div className=\"p-card bg-muted/50 border border-border rounded-lg\" role=\"status\">\n <p className=\"font-medium text-foreground\">{unavailableTitle}</p>\n <p className=\"text-sm text-muted-foreground mt-item-xs\">{unavailableMessage}</p>\n </div>\n </div>\n );\n }\n\n // For UPDATE operations, LoadingGate readiness owns the \"wait for fetched\n // defaults\" PRESENTATION. Avoid early returns here so the hook graph stays\n // stable between the initial loading render and the later loaded render.\n // UPDATE-like: defaults come from the fetched record. LoadingGate does NOT\n // hold the form back until then — it keeps its children mounted under its\n // overlay — and RHF reads defaults only at mount, so the form is keyed by\n // `defaultValuesSource` and remounts once the record arrives. CREATE: use the\n // synchronous discriminator seed so RHF initializes with it on the very\n // first render (see createSeededDefaultValues).\n const effectiveDefaultValues = needsFetch\n ? (defaultValues ?? defaultValuesOverride)\n : (createSeededDefaultValues ?? defaultValuesOverride);\n\n // Guard against missing schema\n if (!formSchema) {\n const configErrorTitle = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'configurationError');\n const noSchemaMsg = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'noSchemaFound', {\n operation: operationIdentifier,\n resource: resourceType,\n });\n\n return (\n <div className={className}>\n <div className=\"p-card bg-destructive/10 border border-destructive rounded-lg\" role=\"alert\">\n <p className=\"text-destructive font-medium\">{configErrorTitle}</p>\n <p className=\"text-sm text-destructive/80 mt-item-xs\">{noSchemaMsg}</p>\n </div>\n </div>\n );\n }\n\n // i18n labels for confirmation dialog\n const confirmPublishTitle = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'confirmPublishTitle');\n const confirmPublishMessage = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'confirmPublishMessage');\n const confirmPublishCancel = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'cancel');\n const confirmPublishConfirm = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'publish');\n\n // i18n labels for remote update indicator\n const remoteUpdateLabels = remoteUpdateIndicator ? {\n message: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'remoteUpdateMessage'),\n dismissAriaLabel: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'dismiss'),\n } : undefined;\n\n // Form content that may or may not be wrapped with AutosaveProvider\n const formContent = (\n <LoadingGate i18nKeys={i18nKeys} loadingScopes={loadingScopes} readiness={readiness}>\n <div className={className}>\n {/* Confirmation dialog for publishing */}\n <AlertDialog open={!!pendingPublish} onOpenChange={(open) => !open && handleCancelPublish()}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{confirmPublishTitle}</AlertDialogTitle>\n <AlertDialogDescription>{confirmPublishMessage}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel onClick={handleCancelPublish}>{confirmPublishCancel}</AlertDialogCancel>\n <AlertDialogAction onClick={handleConfirmPublish}>{confirmPublishConfirm}</AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n\n {/* CRITICAL double-validation: hold the submit until the user types the action label. */}\n {pendingCriticalSubmit !== null && (\n <OperationsConfirmCritical\n open\n onOpenChange={(open) => { if (!open) handleCancelCriticalSubmit(); }}\n cancelCallback={handleCancelCriticalSubmit}\n validationCallback={handleConfirmCriticalSubmit}\n requireTypedConfirmation\n confirmationPhrase={operationDisplayTitle}\n />\n )}\n\n {/* The conflict banner now renders in the actions footer (near Submit) via\n `formActionsValue.submissionNotice` — a submission outcome belongs next to\n the button that produced it. Only the ambient remote-update indicator stays\n at the top of the form. */}\n {remoteUpdateIndicator && remoteUpdateLabels && (\n <RemoteChangeNotification\n type=\"remote-update\"\n changedFields={remoteUpdateIndicator.changedFields}\n labels={remoteUpdateLabels}\n onDismiss={() => setRemoteUpdateIndicator(null)}\n />\n )}\n <ResourceFormActionsProvider value={formActionsValue}>\n <AutomatedForm\n key={defaultValuesSource}\n schema={formSchema}\n defaultValues={effectiveDefaultValues}\n onSubmit={effectiveDraftConfig?.enabled && draftSchema ? handlePublish : handleSubmitWithCriticalGuard}\n onError={handleError}\n validationMode={validationMode}\n disabled={disabled || isSubmitting}\n labels={labels}\n layoutRefs={layoutRefs}\n operationRef={operationIdentifier}\n operationType={operationType}\n operationLike={operationLike}\n coreOperation={effectiveCoreOperation}\n fileUploadContext={fileUploadContext}\n contextFieldValues={contextFieldValues}\n hiddenFieldNames={hiddenFieldNames}\n generatedFieldOverrides={generatedFieldOverrides}\n inheritanceConfig={inheritanceConfig}\n // No section Save on a form whose record does not exist yet (see `formOffersSectionSave`).\n onSectionSave={\n formOffersSectionSave({\n createsRecord: effectiveCoreOperation === CoreResourceOperation.CREATE,\n hasCallerSectionHandler: onSectionSaveProp !== undefined,\n })\n ? handleSectionSave\n : undefined\n }\n onFormReady={handleFormReady}\n validateFieldUrl={validateFieldUrl}\n resourceId={primaryResourceId}\n contextResourceIdentifiers={contextResourceIdentifiersWithResourceId}\n parentResourcesRequirements={resourceContext.parentResourcesRequirements}\n navigationZone={navigationZone}\n chromeMode={defaultEditChromeMode}\n layoutTemplate={layoutTemplate}\n />\n </ResourceFormActionsProvider>\n </div>\n </LoadingGate>\n );\n\n // Wrap with AutosaveProvider if autosave is enabled\n if (autosaveProviderConfig.enabled) {\n return (\n <AutosaveProvider\n labels={autosaveLabels}\n validateField={validateAutosaveField}\n onSave={handleAutosave}\n rmm={rmm ?? undefined}\n config={autosaveProviderConfig}\n >\n <AutosaveCancelBridge cancelRef={cancelPendingAutosavesRef} />\n {formContent}\n </AutosaveProvider>\n );\n }\n\n return formContent;\n}\n\n/**\n * P7: Bridge component to connect autosave cancel function to parent ref.\n * This allows handleSubmit (defined outside AutosaveProvider) to cancel pending autosaves.\n */\nfunction AutosaveCancelBridge({ cancelRef }: { cancelRef: React.MutableRefObject<(() => void) | null> }): null {\n const autosaveContext = useOptionalAutosave();\n\n React.useEffect(() => {\n if (autosaveContext) {\n cancelRef.current = autosaveContext.cancelAllPending;\n }\n return () => {\n cancelRef.current = null;\n };\n }, [autosaveContext, cancelRef]);\n\n return null;\n}\n\n/**\n * P8: Draft save button component that uses form context to validate with draft schema.\n * Must be rendered inside FormProvider to access form methods.\n */\ninterface DraftSaveButtonProps {\n draftSchema: z.ZodTypeAny;\n onSaveDraft: (data: any) => Promise<void>;\n disabled: boolean;\n isSavingDraft: boolean;\n label: string;\n savingLabel: string;\n /**\n * Whether a cleared (`null`) key may be dropped from the draft payload. Passed in rather than\n * re-derived so this button and every other submission boundary on the surface share ONE answer.\n */\n omitClearedFields: boolean;\n /** The form's schema, used only to tell an authored-null value from the cleared sentinel. */\n submissionSchema: z.ZodTypeAny;\n}\n\nfunction DraftSaveButton({\n draftSchema,\n onSaveDraft,\n disabled,\n isSavingDraft,\n label,\n savingLabel,\n omitClearedFields,\n submissionSchema,\n}: DraftSaveButtonProps): React.JSX.Element {\n const formContext = useFormContext();\n const formTemplateContext = useOptionalFormTemplateContext();\n\n const handleClick = useCallback(async () => {\n if (!formContext) return;\n\n const values = formContext.getValues();\n\n // Validate against the raw RHF snapshot first so draft validation stays\n // aligned with the normal submit path. Hidden framework-only fields are\n // pruned only at the payload boundary afterward.\n const result = draftSchema.safeParse(values);\n\n if (result.success) {\n const sanitizedValues = sanitizeAutomatedFormSubmissionData(\n result.data as Record<string, unknown>,\n {\n hiddenFieldNames: formTemplateContext?.hiddenFieldNames,\n contextFieldValues: formTemplateContext?.contextFieldValues,\n omitClearedFields,\n schema: submissionSchema,\n },\n );\n\n // Clear any existing errors and save\n formContext.clearErrors();\n await onSaveDraft(sanitizedValues);\n } else {\n const zodError = result.error;\n const erroredPaths: string[] = [];\n zodError.issues.forEach((issue) => {\n const fieldPath = issue.path.join('.');\n if (fieldPath) {\n formContext.setError(fieldPath as any, {\n type: issue.code,\n message: issue.message,\n });\n erroredPaths.push(fieldPath);\n }\n });\n // Audit D4 — same treatment as every other submit-like failure: this\n // draft-validation path sets field errors DIRECTLY (not through\n // `injectServerErrors`), so it carries its own scroll-to-first-error.\n scrollAndFocusFirstErroredField(erroredPaths);\n }\n }, [formContext, formTemplateContext?.contextFieldValues, formTemplateContext?.hiddenFieldNames, draftSchema, onSaveDraft]);\n\n return (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.OUTLINE}\n disabled={disabled}\n onClick={handleClick}\n >\n {isSavingDraft ? savingLabel : label}\n </Button>\n );\n}\n\n"]}
1
+ {"version":3,"file":"ResourceAutomatedForm.js","sourceRoot":"","sources":["../../../../../../src/components/form/automated/ResourceAutomatedForm.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * ResourceAutomatedForm Component\n *\n * A fully autonomous form component that derives all configuration from a\n * FrontendResourceOperationContext. It automatically:\n * - Uses the operation's requestDto (or mainSchema) as the form schema\n * - Resolves labels from i18n based on resource type and operation\n * - Fetches current data for UPDATE operations\n * - Submits data via the resource registry's doOperation\n * - Handles success notifications based on operation configuration\n * - Determines wizard mode from frontEndApplication configuration\n */\n\n\nimport isEqual from 'lodash/isEqual.js';\nimport React, { useContext, useEffect, useLayoutEffect, useMemo, useState, useCallback, useRef } from 'react';\nimport { NotificationContext } from '~wildo-frontend-lib/core/events/NotificationContext';\nimport { DefaultValues, FieldErrors, useFormContext } from 'react-hook-form';\nimport { z } from 'zod';\n\nimport {\n CoreResourceOperation,\n CoreUserNotificationChannel,\n CoreUserNotificationTarget,\n RelationshipNature,\n ResourceRelationshipBulkAction,\n ResourcesConfig_OperationPathUtils,\n ResourceOperationVariantType,\n ErrorCustomMessageReference,\n ErrorType,\n WildoError_Frontend,\n UserNotificationDefinition,\n UserNotificationLevel,\n ResourcesConfigOperationsUrlsBuilderUtils,\n Resources_SharedUtils,\n ResourceOperationRiskLevel,\n isIrreversibleOperation,\n MAIN_API_BASE_PATH,\n BULK_OPERATION_HOST_SUPPLIED_FIELDS,\n resourceInheritanceVariantSchemas,\n readOperationApprovalPending,\n READ_THROUGH_ORGANIZATION_UNIT_FIELD_NAME,\n CoreResourceType,\n} from '@wildo-ai/saas-models';\nimport type { FieldMetaEntry } from '@wildo-ai/saas-models';\nimport { OperationsConfirmCritical } from '~wildo-frontend-lib/components/feedback/operations-confirm-critical';\nimport { isReadThroughOrganizationUnitFieldInert, readThroughCreateOrganizationUnitCandidates } from '~wildo-frontend-lib/core/resources/read-through-organization-unit.frontend.utils';\nimport { useReferenceRecordLabels } from '~wildo-frontend-lib/components/form/automated/useReferenceRecordLabels';\nimport type { AllowedFieldValues } from '~wildo-frontend-lib/components/form/automated/FormTemplateContext';\nimport { UserOrgsContext } from '~wildo-frontend-lib/core/security/UserOrgsContext';\nimport type { FrontendResourceConfiguration_Operation } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { Button, ButtonVariants_Variant } from '~wildo-frontend-lib/components/actions/button';\nimport {\n AlertDialog,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogCancel,\n AlertDialogAction,\n} from '~wildo-frontend-lib/components/overlays/containers/alert-dialog';\nimport { prepareFormSchema, getFieldUIEditConfig, type FormSchemaOperationType, type DraftableConfigParams, AutosaveTrigger, ValidationMode } from '@wildo-ai/zod-decorators';\nimport {\n FrontendComponentType,\n type AutomatedFormLabels,\n} from '@wildo-ai/presets-components-models';\nimport type { NavigationZone } from '~wildo-frontend-lib/core/navigation/navigation.schemas';\n\nimport { AutomatedForm } from './AutomatedForm';\nimport { useOptionalFormTemplateContext } from './FormTemplateContext';\nimport {\n ResourceFormActionsProvider,\n HostFormActionsFooter,\n type ResourceFormActionsValue,\n} from './ResourceFormActionsContext';\nimport { FORM_LEVEL_ERROR_PATH } from '../form-context';\nimport { bulkClearsWithin, bulkUpdatePatch, bulkWriteUnits, carryStoredSiblingsIntoPartialWrites, formOffersSectionSave, pickSubmissionDataPaths, resolveBulkFieldClear, sanitizeAutomatedFormSubmissionData, shouldOmitClearedFieldsForOperation, withPathValue, BulkFieldClearKind, type BulkFieldClear } from './automated-form-submit.utils';\nimport { BulkFieldClearContext, type BulkFieldClearing } from './bulk-field-clear-context';\nimport { carryStoredDiscriminators, resolveDiscriminatorFieldNames } from '~wildo-frontend-lib/core/resources/resource-discriminators.frontend.utils';\nimport { resolveCreateFormInitialValues } from './create-form-default-values.utils';\nimport { AutomatedLayoutFrontendUtils } from '~wildo-frontend-lib/core/automated-layout/automated-layout.frontend.utils';\nimport { extractSchemaFieldList, generateDefaultFormTemplate } from '~wildo-frontend-lib/core/automated-layout/default-layout-generator.frontend.utils';\nimport { FormField } from './FormField';\nimport { TemplatePlacedFieldsContext, useTemplatePlacedFieldsRegistry } from './TemplatePlacedFieldsContext';\nimport { responsiveMaxWidthToCssValue } from '../../sections/surface';\nimport { type FormMethods } from '~wildo-frontend-lib/components/form/Form';\nimport { AutosaveProvider, type AutosaveConfig, type AutosaveSaveHandler, type AutosaveProviderLabels } from '~wildo-frontend-lib/components/form/automated/AutosaveContext';\nimport { deriveAutosaveEnabledFromFields } from '~wildo-frontend-lib/components/form/automated/autosave-derivation.frontend.utils';\nimport { useOptionalAutosave } from '~wildo-frontend-lib/components/form/automated/AutosaveContext';\nimport { mutationErrorForReport } from '~wildo-frontend-lib/core/resources/rmm/mutation-error-report.utils';\nimport { extractServerValidationErrors } from '~wildo-frontend-lib/components/form/validation-errors/form-error-extraction.utils';\nimport { collectErroredFieldPaths, scrollAndFocusFirstErroredField } from '~wildo-frontend-lib/components/form/validation-errors/scroll-to-first-error.utils';\nimport { zodIssuesToFieldErrors } from '~wildo-frontend-lib/components/form/validation-errors/zod-issue-resolver';\nimport { UnplacedRequestFieldsContext } from './unplaced-request-fields.context';\nimport { extractErrorInfo } from '~wildo-frontend-lib/core/errors/errors.frontend.schemas';\nimport { useUserFacingErrorMessage } from '~wildo-frontend-lib/core/errors/useUserFacingErrorMessage';\nimport { useServerErrorInjection } from '~wildo-frontend-lib/components/form/validation-errors/useServerErrorInjection';\nimport { FrontendResourceOperationContext } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\nimport type { FormOperationType } from '~wildo-frontend-lib/core/automated-layout/automated-layout.frontend.schemas';\n\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport {\n isLiteralCoreResourceOperation,\n isRiskyResourceOperation,\n isSingleResourceUpdateLikeOperation,\n isUpdateLikeCoreOperation,\n mergeBulkSelectionIntoRequestData,\n pickPreferredOperationForCoreSemantic,\n readBulkOperationSelectionCount,\n resolveEffectiveCoreOperation,\n toOperationResultSummary,\n} from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { pickPreferredOperationForCoreSemanticAddressability } from '~wildo-frontend-lib/core/resources/resource-addressability.frontend.utils';\nimport { useOperationEnabled } from '~wildo-frontend-lib/core/resources/hooks/useOperationEnabled';\nimport { frontendResourceUtils, FrontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport {\n resolveRelationshipWriteSurface,\n type RelationshipWriteSurfaceDescriptor,\n} from '~wildo-frontend-lib/core/resources/relationship-surface-runtime.frontend.utils';\nimport { useEventBus } from '~wildo-frontend-lib/core/events/useEventBus';\nimport { useResourceOperationOutcomeEmitter } from '~wildo-frontend-lib/core/resources/useResourceOperationOutcomeEmitter';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { resolveOperationDisplayTitle } from '~wildo-frontend-lib/core/i18n/operation-title-resolution.utils';\nimport { LoadingGate } from '~wildo-frontend-lib/core/loading/LoadingGate';\nimport { ErrorBuilderFrontend } from '~wildo-frontend-lib/core/errors/errors-builder.frontend.services';\nimport { FrontendEvents } from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport { isForeignKey, isUnique, lastActionRecordFieldNames, withOptionalNestedChildren, type FileFieldEndpoints } from '@wildo-ai/zod-decorators';\nimport { envLoader } from '~wildo-frontend-lib/core/runtime/env-variable-loader.frontend.service';\nimport { NavigationUtils } from '~wildo-frontend-lib/core/navigation/navigation.utils';\nimport { buildValidateFieldUrl } from '~wildo-frontend-lib/components/form/validation-errors/validate-field-url.frontend';\n\nimport {\n MutationPriority,\n MutationType,\n MutationSourceType,\n MutationErrorType,\n RMMEventType,\n ConflictStrategy,\n ConflictReason,\n MutationCancelledError,\n type MutationError,\n} from '~wildo-frontend-lib/core/resources/rmm/types';\nimport { useResourceRMM } from '~wildo-frontend-lib/core/resources/rmm/useResourceRMM';\nimport { useExecutionDirtyBridge } from '~wildo-frontend-lib/core/execution/useExecutionDirtyBridge';\nimport {\n performCanonicalRMMRead,\n resolveCanonicalRMMReadOperation,\n resolveCanonicalRMMReadOperationPathKey,\n} from '~wildo-frontend-lib/core/resources/rmm/canonical-read.frontend.utils';\nimport {\n allowsDirectOperationFallback,\n MissingRMMRuntimeError,\n resolveUpdateLikeMutationFallbackMode,\n type UpdateLikeMutationFallbackMode,\n} from '~wildo-frontend-lib/core/resources/rmm/update-like-mutation-fallback.frontend';\nimport { RemoteChangeNotification } from '~wildo-frontend-lib/components/form/feedback/RemoteChangeNotification';\nimport {\n emitQuickCreateCompleted,\n resolveQuickCreateCreatedResourceId,\n} from '~wildo-frontend-lib/core/resources/relationship-quick-create.frontend.utils';\nimport {\n normalizeContextResourceIdentifiersForOutcome,\n normalizeContextResourceIdentifiersForTransport,\n} from '~wildo-frontend-lib/core/resources/context-resource-identifiers.frontend.utils';\nimport { GeneratedAssociationRelationshipField } from './GeneratedAssociationRelationshipField';\nimport { GeneratedReferenceRelationshipField } from './GeneratedReferenceRelationshipField';\nimport { buildInlineUpdateRequestData } from '~wildo-frontend-lib/components/data-display/display-field-resolution.utils';\nimport { describeResourceErrorForNotification } from '~wildo-frontend-lib/components/form/validation-errors/resource-error-notification-context.utils';\n\n\nconst logger = LoggerFrontendService.getLogger();\nconst logDebug = logger.debugByType('ResourceAutomatedForm');\nlogger.setDebugTypeLogging('ResourceAutomatedForm', false);\n\n/**\n * Effective draft configuration after merging prop-provided config with resource-level config.\n * Extends DraftableConfigParams with runtime properties (from props).\n */\ninterface EffectiveDraftConfig extends Partial<DraftableConfigParams> {\n enabled: boolean;\n isDraft?: boolean;\n onSaveDraft?: (data: Record<string, unknown>) => Promise<unknown>;\n onPublish?: (data: Record<string, unknown>) => Promise<unknown>;\n saveDraftLabel?: string;\n publishLabel?: string;\n}\n\nfunction readPathValue(value: unknown, path: string): unknown {\n const normalizedPath = path.replace(/\\[(\\d+)\\]/g, '.$1');\n return normalizedPath\n .split('.')\n .filter(Boolean)\n .reduce<unknown>((currentValue, segment) => {\n if (currentValue === null || currentValue === undefined || typeof currentValue !== 'object') {\n return undefined;\n }\n return (currentValue as Record<string, unknown>)[segment];\n }, value);\n}\n\n/**\n * A section's values keyed by FIELD PATH (`address.city`), the shape the RMM queues a partial write in: it builds the\n * request body from these when the mutation is sent, and reports exactly these paths as saved. A field the payload\n * boundary removed (hidden, owned by the context) has no value here and is not sent.\n */\nfunction sectionFieldsByPath(data: Record<string, unknown>, fieldNames: readonly string[]): Record<string, unknown> {\n const normalize = (path: string): string => path.replace(/\\[(\\d+)\\]/g, '.$1');\n const normalizedNames = fieldNames.map(normalize);\n const fields: Record<string, unknown> = {};\n for (const name of fieldNames) {\n // A path under another registered path (an array's item leaf, when the array itself is registered) is already\n // carried whole by its ancestor; writing it again would be a second, redundant write of the same value.\n const normalized = normalize(name);\n if (normalizedNames.some((other) => other !== normalized && normalized.startsWith(`${other}.`))) continue;\n const value = readPathValue(data, name);\n if (value !== undefined) fields[name] = value;\n }\n return fields;\n}\n\n/**\n * Whether a field still holds the value a save sent. An emptied field may have been sent as `null` (the cleared\n * sentinel) while the form holds `''` or nothing, so the three empties are one value here.\n */\nfunction isSameFormValue(current: unknown, sent: unknown): boolean {\n const isEmpty = (value: unknown): boolean => value === undefined || value === null || value === '';\n if (isEmpty(current) || isEmpty(sent)) return isEmpty(current) && isEmpty(sent);\n return isEqual(current, sent);\n}\n\n/** Whether a failed mutation's validation error names fields, so it can be shown at them rather than in a toast. */\nfunction mutationErrorNamesFields(error: { status?: number; validationErrors?: unknown }): boolean {\n if (!error.validationErrors) return false;\n return extractServerValidationErrors({ httpStatus: error.status ?? 400, validationErrors: error.validationErrors }) !== null;\n}\n\n\n// =============================================================================\n// VALIDATION HELPERS\n// =============================================================================\n\n/**\n * Validates fileId format (MongoDB ObjectId or UUID)\n *\n * Supports both:\n * - MongoDB ObjectId: 24 hexadecimal characters\n * - PostgreSQL UUID: 36 characters with dashes (8-4-4-4-12)\n *\n * @param fileId - The fileId to validate\n * @returns true if valid, false otherwise\n */\nconst validateFileId = (fileId: string): boolean => {\n if (!fileId || typeof fileId !== 'string') {\n return false;\n }\n return Resources_SharedUtils.isValidResourceId(fileId.trim());\n};\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport interface ResourceAutomatedFormProps {\n /** The resource operation context containing all operation details */\n resourceContext: FrontendResourceOperationContext;\n\n /** Callback when form submission succeeds */\n onSuccess?: (data: any) => void;\n\n /** Callback when form submission fails */\n onError?: (error: Error) => void;\n\n /**\n * Cancel affordance (audit D5). When provided, the host-owned actions footer\n * renders a secondary \"Cancel\" button (before the submit button) that invokes\n * this callback. Overlay hosts (`ResourceLayout_Create` / `_Update` /\n * `_SemanticOperationFallback` in the OVERLAY zone) pass `closeOverlay` here\n * so Cancel closes the modal through the exact same path as the top-right X.\n * Omitted → no Cancel button (standalone full-page forms keep their current\n * single-primary footer).\n */\n onCancel?: () => void;\n\n /** Whether the form is disabled */\n disabled?: boolean;\n\n /** Additional CSS classes */\n className?: string;\n\n /** Override labels (merged with auto-resolved labels) */\n labelsOverride?: Partial<AutomatedFormLabels>;\n\n /** Show error summary at top of form */\n showErrorSummary?: boolean;\n\n /** Override the form-wide validation mode (default: ON_BLUR). Field-level decorators take priority. */\n validationMode?: ValidationMode;\n\n\n /**\n * Depth for nested FK/composite population (default: 1).\n * Controls how deeply nested resources should be populated.\n * @future For composite form support with recursive ResourceAutomatedForm rendering.\n */\n depth?: number;\n\n /**\n * Internal flag indicating this is a nested form.\n * When true, the form should not wrap itself in additional navigation/header.\n * @internal\n */\n _isNested?: boolean;\n\n /**\n * P7: Autosave configuration for field-level saves.\n * When enabled, individual fields will save automatically based on their decorator config.\n * Requires the resource to support PATCH operations.\n */\n autosaveConfig?: {\n /** Enable autosave for this form */\n enabled: boolean;\n /** Default trigger for fields without explicit config (DEBOUNCE or BLUR) */\n defaultTrigger?: AutosaveTrigger;\n /** Debounce delay in milliseconds (default: 500) */\n debounceMs?: number;\n };\n\n /**\n * P8: Draft mode configuration for saving incomplete forms.\n * When enabled, shows \"Save as Draft\" and \"Publish\" buttons.\n * Draft saves use relaxed validation (isDraftRelaxed fields become optional).\n */\n draftConfig?: {\n /** Enable draft mode for this form */\n enabled: boolean;\n /** Current draft status (for initial state) */\n isDraft?: boolean;\n /**\n * Caller-owned weaker-guarantee override for draft save.\n *\n * Providing this hook bypasses the default RMM-backed draft mutation path.\n * The caller becomes responsible for any queueing, conflict handling,\n * canonical read-back, and coherence guarantees they still need.\n */\n onSaveDraft?: (data: any) => Promise<unknown>;\n /**\n * Caller-owned weaker-guarantee override for publish.\n *\n * Providing this hook bypasses the default RMM-backed publish mutation path.\n * The caller becomes responsible for any queueing, conflict handling,\n * canonical read-back, and coherence guarantees they still need.\n */\n onPublish?: (data: any) => Promise<unknown>;\n /** Label key for \"Save as Draft\" button (i18n) */\n saveDraftLabel?: string;\n /** Label key for \"Publish\" button (i18n) */\n publishLabel?: string;\n };\n\n /**\n * P9: Caller-owned weaker-guarantee override for saving individual sections.\n *\n * When provided, this bypasses the default RMM-backed section-save path. The\n * caller becomes responsible for any queueing, conflict handling, canonical\n * read-back, and coherence guarantees they still need. If not provided and a\n * section is saveable, the component uses the default UPDATE-like section-save\n * flow for the registered section fields.\n */\n onSectionSave?: (\n sectionRef: string,\n fieldNames: string[],\n data: Record<string, unknown>\n ) => void | Promise<void>;\n\n /**\n * Override/merge default values (e.g. from DISCOVER_ENDPOINTS for SAML metadata import).\n * For CREATE, used as initial values. For UPDATE, merged with fetched data.\n */\n defaultValuesOverride?: DefaultValues<any>;\n /** Current navigation zone for quick-create-aware field controls */\n navigationZone?: NavigationZone;\n /**\n * Controls whether default update-like form mutations may downgrade to direct\n * `doOperation()` behavior when RMM is unavailable. Omitted, it is\n * `resolveUpdateLikeMutationFallbackMode`'s answer: the lane the operation declared\n * (`operationFrontendConfig.updateLikeMutationFallbackMode`), else the direct lane when the\n * resource registers no field-write route (#1956), else `RMM_REQUIRED`.\n *\n * When the form stays on the single-resource RMM-backed lane, version-\n * conflict resets can surface authoritative conflict details if the backend\n * emits nested `versionConflict` payloads. Explicit direct fallback and true\n * bulk direct lanes are weaker-guarantee paths and must not be treated as if\n * they guarantee the same conflict-detail contract.\n */\n updateLikeMutationFallbackMode?: UpdateLikeMutationFallbackMode;\n}\n\n\n\n\n/**\n * Frontend notification configuration extracted from operation\n */\ninterface FrontendNotificationConfig {\n identifier: string;\n level: UserNotificationLevel;\n}\n\ninterface ConflictBannerState {\n discardedFields: string[];\n conflictingFields: string[];\n reason: ConflictReason;\n conflictDetails?: MutationError['conflictDetails'];\n}\n\n/**\n * Get the frontend notification configuration if configured for the current user.\n *\n * Extracts both the notification identifier (for i18n) and the level (for toast type).\n * Looks for FRONT_END_SUCCESS channel notifications targeting USER_SELF.\n */\nfunction getFrontendNotification(\n operation: FrontendResourceConfiguration_Operation\n): FrontendNotificationConfig | null {\n // Type assertion: All FrontendResourceConfiguration_Operation variants extend ResourceConfiguration_Operation_Base\n // which includes userNotifications: UserNotificationDefinition[]\n const operationWithNotifications = operation as unknown as { userNotifications?: UserNotificationDefinition[] };\n const userNotifications: UserNotificationDefinition[] = operationWithNotifications.userNotifications || [];\n\n // Find a FRONT_END_SUCCESS notification targeting USER_SELF\n const frontendNotification = userNotifications.find(\n (n: UserNotificationDefinition) => {\n const channel: string = n.channel;\n const target: string = n.target;\n return channel === CoreUserNotificationChannel.FRONT_END_SUCCESS &&\n target === CoreUserNotificationTarget.USER_SELF;\n }\n );\n\n if (!frontendNotification) {\n return null;\n }\n\n return {\n identifier: frontendNotification.identifier,\n level: frontendNotification.level || UserNotificationLevel.SUCCESS,\n };\n}\n\n/**\n * Get the i18n key for the default submit button based on operation type.\n */\nfunction getDefaultSubmitLabelKey(operationIdentifier: string): string {\n switch (operationIdentifier) {\n case CoreResourceOperation.CREATE:\n return 'create';\n case CoreResourceOperation.UPDATE:\n case CoreResourceOperation.UPDATE_MANY:\n return 'saveChanges';\n case CoreResourceOperation.DELETE:\n return 'delete';\n default:\n return 'submit';\n }\n}\n\nfunction isConflictMutationFailure(result: { success: boolean; error?: MutationError }): boolean {\n return !result.success && result.error?.type === MutationErrorType.CONFLICT;\n}\n\n/**\n * Determine if operation requires fetching existing data (e.g., UPDATE).\n */\nfunction shouldFetchExistingData(operation: any): boolean {\n const effectiveOperation = resolveEffectiveCoreOperation(\n operation.operationIdentifier,\n operation.resourceOperationLike,\n );\n\n return effectiveOperation === CoreResourceOperation.READ\n || isSingleResourceUpdateLikeOperation(operation);\n}\n\n/**\n * Whether a resource's authored `layout.edit` template can render THIS operation's form.\n *\n * The template is authored against the resource's OWN fields: it places `<FormField name=\"…\">` slots and lets\n * the operation's schema decide what shows (a slot whose field the schema lacks renders nothing). That serves\n * the core create and edit forms, and a custom action whose request is made of resource fields — `change_status`\n * posts `status`, `setAutonomousAgents` posts `autonomousAgentRefs`, and the template's own control for that\n * field (its allowed values, its edit mode) is what the action should show.\n *\n * It cannot serve a custom action whose request carries a field the resource does not have: no slot names it,\n * so the field is never rendered, while every slot the template does have is empty. Measured on Wonder Todos,\n * \"Reset to defaults\" (`groups`) showed the preferences template's four section cards, all empty, and nothing\n * could be reset. Such an action gets the form generated from its own request.\n *\n * Core operations keep the template unconditionally, as before: their request is derived from the resource,\n * and a field their template leaves out is the author's decision. For a custom action, a resource field\n * the template has no slot for is appended after it (`AuthoredTemplateWithUnplacedRequestFields`).\n */\nfunction resolveAuthoredEditTemplateForOperation<Template>(\n template: Template | undefined,\n operationIdentifier: unknown,\n requestShape: Record<string, z.ZodTypeAny> | undefined,\n resourceSchema: z.ZodTypeAny | undefined,\n): Template | undefined {\n if (!template || isLiteralCoreResourceOperation(operationIdentifier)) return template;\n const requestFields = requestShape ? Object.keys(requestShape) : [];\n const resourceShape = resourceSchema ? AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(resourceSchema) : undefined;\n if (requestFields.length === 0 || !resourceShape) return undefined;\n return requestFields.every((field) => Object.prototype.hasOwnProperty.call(resourceShape, field)) ? template : undefined;\n}\n\n/**\n * An authored template rendered for a custom operation, followed by the request fields it does not place.\n *\n * The template keeps the operation because every request field is a resource field — a field it COULD\n * place. One it does not would otherwise have no control at all, and the operation would submit without\n * the person being able to set it. Which fields are placed is reported by the template's own slots and\n * sections (`TemplatePlacedFieldsContext`); the set is read once, after the template's first layout pass,\n * so an appended field is never retracted (retracting a mounted control would unregister its value). The\n * appended fields follow the generated form's rules: context-supplied and hidden fields are left out, and\n * each `FormField` applies its own conditions and generated overrides. They render outside the registry,\n * so they cannot count themselves as placed.\n *\n * Known limit, where the field is appended as well: a control a custom component renders with its own\n * `useController` (never seen); a `FormField` a custom component renders internally, or one reached through\n * a render-prop function, when it is not mounted as the form opens. Everything a `FormField`,\n * `FormFieldArray` or `ArrayField` names in the template's JSX under its `FormLayout` or a `Section` is\n * seen, mounted or not (`collectPlacedFieldPaths`). Placement is per top-level field.\n *\n * A layout inside the template may claim the fields and show them itself (`UnplacedRequestFieldsContext`): a wizard\n * renders them in its last step, where appending them after it put them below its navigation, outside every step.\n */\nfunction AuthoredTemplateWithUnplacedRequestFields({\n Template,\n requestFieldNames,\n}: {\n Template: React.ComponentType;\n requestFieldNames: readonly string[];\n}): React.JSX.Element {\n const registry = useTemplatePlacedFieldsRegistry();\n const formTemplateContext = useOptionalFormTemplateContext();\n const [unplacedFieldNames, setUnplacedFieldNames] = useState<string[] | null>(null);\n useLayoutEffect(() => {\n const placed = registry.placedFields();\n // Left out as the generated form leaves them out: supplied by context, or hidden — unless the field\n // has a generated override (a relationship field reshaped here), which the generated form keeps.\n const overrides = formTemplateContext?.generatedFieldOverrides ?? {};\n const leftOut = new Set(\n [...Object.keys(formTemplateContext?.contextFieldValues ?? {}), ...(formTemplateContext?.hiddenFieldNames ?? [])]\n .filter((name) => !overrides[name]),\n );\n setUnplacedFieldNames(requestFieldNames.filter((name) => !placed.has(name) && !leftOut.has(name)));\n // Read ONCE, deliberately: see the component's JSDoc.\n }, []);\n const [claims, setClaims] = useState(0);\n const claim = useCallback(() => {\n setClaims((count) => count + 1);\n return () => setClaims((count) => count - 1);\n }, []);\n const hasUnplaced = !!unplacedFieldNames && unplacedFieldNames.length > 0;\n const unplacedContext = useMemo(() => ({\n content: hasUnplaced\n ? (\n <div className=\"flex flex-col gap-field\" data-guidance-unplaced-request-fields=\"\">\n {unplacedFieldNames!.map((name) => <FormField key={name} name={name} />)}\n </div>\n )\n : null,\n claim,\n }), [claim, hasUnplaced, unplacedFieldNames]);\n return (\n <>\n <TemplatePlacedFieldsContext.Provider value={registry}>\n <UnplacedRequestFieldsContext.Provider value={unplacedContext}>\n <Template />\n </UnplacedRequestFieldsContext.Provider>\n </TemplatePlacedFieldsContext.Provider>\n {hasUnplaced && claims === 0 && (\n <div\n // A section's seam above it (the template's own layout stacks sections at `space-y-section`, and\n // this block sits outside it), capped at the reading measure like a template's default FormLayout.\n className=\"mr-auto mt-section w-full space-y-field\"\n style={{ maxInlineSize: responsiveMaxWidthToCssValue('measure') }}\n data-guidance-unplaced-request-fields=\"\"\n >\n {unplacedFieldNames!.map((name) => <FormField key={name} name={name} />)}\n </div>\n )}\n </>\n );\n}\n\n// =============================================================================\n// COMPONENT\n// =============================================================================\n\nexport function ResourceAutomatedForm({\n resourceContext,\n onSuccess,\n onError,\n onCancel,\n disabled = false,\n className,\n labelsOverride,\n showErrorSummary = true,\n validationMode,\n autosaveConfig,\n draftConfig,\n onSectionSave: onSectionSaveProp,\n defaultValuesOverride,\n navigationZone,\n updateLikeMutationFallbackMode: callerUpdateLikeMutationFallbackMode,\n}: ResourceAutomatedFormProps): React.JSX.Element | null {\n // Contexts\n const { doOperation, registry } = useResourceRegistry();\n const { emit } = useEventBus();\n const { tComponent, tResourceOperation, isReady } = useI18n({\n component: FrontendComponentType.RESOURCES_LAYOUTS_CREATE,\n resource: resourceContext.resourceType,\n });\n // Stable identity, so the data-fetch effect may call it without listing it.\n const toUserFacingErrorMessage = useUserFacingErrorMessage();\n\n // Refs for stable function references (avoid infinite loops in useEffect)\n const doOperationRef = useRef(doOperation);\n const emitRef = useRef(emit);\n const onErrorRef = useRef(onError);\n const onSuccessRef = useRef(onSuccess);\n\n // Ref to store autosave cancel function (set by AutosaveProvider wrapper)\n const cancelPendingAutosavesRef = useRef<(() => void) | null>(null);\n\n // Ref for section save callback\n const onSectionSaveRef = useRef(onSectionSaveProp);\n\n // Keep refs updated\n doOperationRef.current = doOperation;\n emitRef.current = emit;\n onErrorRef.current = onError;\n onSuccessRef.current = onSuccess;\n onSectionSaveRef.current = onSectionSaveProp;\n\n // Error builder (memoized to prevent recreation)\n const errorBuilder = useMemo(() => new ErrorBuilderFrontend(), []);\n\n // Extract from resource context\n const { resourceType, operation, contextResourceIdentifiers } = resourceContext;\n // A section's own Save announces its write here, since it calls no host `onSuccess` (which would navigate or close).\n const announceOutcome = useResourceOperationOutcomeEmitter(resourceContext, operation);\n /*\n * #2288: a write held for another person's approval changed nothing. Told as WAITING, never as saved: no success\n * notice, no field marked saved, no outcome announced (the emitter refuses a held answer too). Read from the context so\n * the form never hard-requires a NotificationProvider. Answers whether the write was held, so each save path stops.\n */\n const notification = useContext(NotificationContext);\n const notificationRef = useRef(notification);\n notificationRef.current = notification;\n const tellHeldForApproval = useCallback((result: unknown): boolean => {\n if (!readOperationApprovalPending(result)) return false;\n notificationRef.current?.notifyInfo(tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'operationSentForApproval'));\n return true;\n }, [tComponent]);\n const updateLikeMutationFallbackMode = callerUpdateLikeMutationFallbackMode\n ?? resolveUpdateLikeMutationFallbackMode(operation, registry.resourceConfigurations[resourceType]?.operations);\n const operationIdentifier = String(operation.operationIdentifier);\n const effectiveCoreOperation = resolveEffectiveCoreOperation(\n operationIdentifier,\n operation.resourceOperationLike ? String(operation.resourceOperationLike) : undefined,\n );\n\n // Derive operationType and operationLike for decorator-based field filtering\n // operationType is the actual operation being performed (create, update, or custom)\n // operationLike is for custom operations that behave like core operations (e.g., 'rotate' behaves like 'update')\n const operationType: FormOperationType = operationIdentifier;\n const operationLike: FormOperationType | undefined = operation.resourceOperationLike\n ? String(operation.resourceOperationLike) as FormOperationType\n : undefined;\n const effectiveFormOperationType = operationLike ?? operationType;\n\n // ONE authority for \"may a cleared field be dropped from this payload?\", shared by every\n // submission boundary this component owns. It previously called the sanitiser twice WITHOUT this\n // decision while `AutomatedForm`'s own wrappers passed it, so the same surface either stripped or\n // shipped a `null` depending on which wrapper happened to run.\n const omitClearedFieldsForSubmission = shouldOmitClearedFieldsForOperation(\n effectiveCoreOperation,\n effectiveFormOperationType,\n );\n\n // State\n const [hasLoadedOnce, setHasLoadedOnce] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isSavingDraft, setIsSavingDraft] = useState(false);\n const [defaultValues, setDefaultValues] = useState<DefaultValues<any> | undefined>(undefined);\n /**\n * Which load supplied `defaultValues` — the fetch key of the record read, or the create seed — and the\n * key the rendered form is mounted under.\n *\n * The form reads its defaults ONCE, when it mounts (`useForm`), and never again. So a form that mounted\n * before its record arrived kept the empty defaults it mounted with, and the record reached it only as a\n * prop nothing reads. Measured 2026-09-28 on the preferences edit: the record held email on, time zone\n * UTC, …, the form's props carried them, and every control showed off / \"Select…\". Keying the form by\n * the load that supplied its defaults makes each load mount a form that starts from them.\n */\n const [defaultValuesSource, setDefaultValuesSource] = useState<string>('none');\n /**\n * A failed load of the record the form edits. `wildoError` is the classified failure (context carries the\n * original message, stack and HTTP facts for inspection); `message` is the ONLY text the alert renders,\n * resolved from the caught error at catch time. The alert used to render `context.originalErrorMessage`,\n * which for a backend rejection is the i18n reference (`not_found`, `authorization`) (#1160).\n */\n const [fetchError, setFetchError] = useState<{ wildoError: WildoError_Frontend; message: string } | null>(null);\n // Store form methods for setting server errors on individual fields\n const formMethodsRef = useRef<FormMethods | null>(null);\n const { initAutoClearing, injectServerErrors, clearServerErrors } = useServerErrorInjection(formMethodsRef);\n // State for pending publish data (waiting for confirmation dialog)\n const [pendingPublish, setPendingPublish] = useState<any>(null);\n // Holds the validated form data of a HIGH/CRITICAL submit awaiting its confirmation (typed, for CRITICAL).\n const [pendingRiskySubmit, setPendingRiskySubmit] = useState<any>(null);\n // Track current draft status\n const [isDraft, setIsDraft] = useState(draftConfig?.isDraft ?? false);\n\n // Conflict banner (persists until user acknowledges)\n const [conflictBanner, setConflictBanner] = useState<ConflictBannerState | null>(null);\n\n // Remote update indicator (auto-dismisses after 3s)\n const [remoteUpdateIndicator, setRemoteUpdateIndicator] = useState<{\n changedFields: string[];\n initiatorUserId: string;\n } | null>(null);\n const remoteUpdateTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Get the form schema from the operation\n const formSchema = useMemo(() => {\n // requestDto is pre-computed by the factory (Phase 2.1)\n const schema = operation.requestDto;\n if (!schema) {\n logger.error(`[ResourceAutomatedForm] No requestDto found for operation ${operationIdentifier} on resource ${resourceType}`);\n return schema;\n }\n\n /*\n * A BULK action's selector is not a form input, so it is not in the form's schema.\n *\n * The bulk twin's request is the single-row request plus `_ids`, required and non-empty. The\n * collection fills it — `mergeBulkSelectionIntoRequestData` adds the selection at EXECUTION —\n * but the form validates BEFORE execution, against the whole request. So the resolver refused\n * every submit on a required `_ids` that no template places and no field renders: an error\n * with nowhere to appear. Measured on the Wonder Todos bulk \"Change status\": status chosen,\n * Save changes pressed, no request sent and nothing on screen.\n *\n * Not panel-specific. The dialog host uses this same form, so a bulk action that asks for\n * anything has been unable to submit from either host; only zero-input bulk actions, which\n * execute without a form, ever reached the backend.\n *\n * Omitted rather than defaulted: a default would put a fake selection in the form's values,\n * and the merge at execution is the one place that knows the real one.\n */\n if (operation.isBulkOperation === true && schema instanceof z.ZodObject) {\n // Both selectors, not only `_ids`: leaving `_match` in rendered it as three empty inputs\n // (Match / Filters / Search) whose empty value was submitted as the selection (#2035 run).\n const hostSuppliedKeys = BULK_OPERATION_HOST_SUPPLIED_FIELDS\n .filter((field) => field in (schema.shape as Record<string, unknown>));\n const withoutSelectors = hostSuppliedKeys.length > 0\n ? schema.omit(Object.fromEntries(hostSuppliedKeys.map((field) => [field, true])) as Record<string, true>)\n : schema;\n /*\n * A BULK UPDATE writes a nested object child by child, only the children the person changed (#2581), so a child\n * its object requires is not required of the form: requiring it made the person fill every required sibling to\n * change one, and those were then written to every selected row. The server validates each child written, and\n * builds a whole object only for a row that has none.\n */\n return isUpdateLikeCoreOperation(effectiveCoreOperation) ? withOptionalNestedChildren(withoutSelectors) : withoutSelectors;\n }\n return schema;\n }, [effectiveCoreOperation, operation, operationIdentifier, resourceType]);\n\n // Get resource configuration for frontendConfiguration\n const resourceConfig = useMemo(() => {\n return registry.resourceConfigurations[resourceType];\n }, [registry, resourceType]);\n\n // The fields that select a polymorphic record's variant, read from the RESOURCE schema as inline edit does, so a\n // request DTO that omits them still gets them in a partial write (`carryStoredDiscriminators`).\n const discriminatorFieldNames = useMemo(\n () => resolveDiscriminatorFieldNames(resourceConfig?.mainSchema as z.ZodTypeAny | undefined),\n [resourceConfig],\n );\n\n /*\n * What an ACTION's form starts from when it acts on an existing record (#2192).\n *\n * An update-like form starts from the record it acts on, and that is right: \"Set disclosure\" opens on the current\n * disclosure, \"Set agents\" on the agents admitted now, so a person who submits without reading changes nothing they\n * did not touch. It is wrong for a row field that holds what the LAST action said about itself\n * (`.isLastActionRecord()` — the reason given for a decision). A verb whose request names that field opened with the\n * previous decision's words already typed in: \"Suspend\" prefilled with the reason an acceptance was given, which a\n * person who submits without reading records as the reason for the suspension. So those fields are left out of\n * EVERY seed taken from a record — the mount, the override resets and the version-conflict reset — unless the host\n * supplied them itself (`defaultValuesOverride` is the host's explicit choice).\n *\n * Only custom verbs are filtered. A READ shows the record as it is, and the literal `update` edits the row's own\n * fields, so a marked field it exposes is edited from its current value. The loaded record (`defaultValues`) still\n * feeds the availability guard and the stored-state comparison, which ask about the record, not about what the\n * person is about to type.\n */\n const lastActionRecordFields = useMemo(() => {\n if (effectiveCoreOperation === CoreResourceOperation.READ || operationIdentifier === CoreResourceOperation.UPDATE) {\n return new Set<string>();\n }\n // Every schema a row can have (#2455): a variant's last-action field is not seeded from the record either.\n return new Set([resourceConfig?.mainSchema, ...resourceInheritanceVariantSchemas(resourceConfig?.inheritenceSchemaDefinition as never)]\n .flatMap((rowSchema) => [...lastActionRecordFieldNames(rowSchema as z.ZodTypeAny | undefined)]));\n }, [effectiveCoreOperation, operationIdentifier, resourceConfig]);\n const seedFromRecord = useCallback((record: Record<string, unknown>, applyHostOverride = true): Record<string, unknown> => {\n const override = (defaultValuesOverride ?? {}) as Record<string, unknown>;\n const seed = applyHostOverride ? { ...record, ...override } : { ...record };\n for (const fieldName of lastActionRecordFields) {\n if (!Object.prototype.hasOwnProperty.call(override, fieldName)) delete seed[fieldName];\n }\n return seed;\n }, [defaultValuesOverride, lastActionRecordFields]);\n\n // Get frontEndApplication config for current app type\n const feAppConfig = useMemo(() => {\n return operation.operationFrontendConfig;\n }, [operation]);\n\n // Resolve layout refs for i18n label resolution\n const layoutRefs = resourceConfig?.frontendConfiguration?.layout?.refs;\n\n\n // Resolve the resource-declared default chrome mode for the EDIT context.\n //\n // `ResourceLayoutConfig.defaultChromeMode` documents a per-context cascade\n // (`{primitive}UI.{context}.chromeMode ?? layout.defaultChromeMode.{context}\n // ?? system-default`) with three slots: display, summary, edit. The display\n // and summary legs are wired by `ResourceAutomaticDisplayer`\n // (`defaultChromeMode.display`) and `ResourceSummaryDisplayer`\n // (`defaultChromeMode.summary`) respectively. The edit leg was never threaded\n // here, so an authored `defaultChromeMode: { edit: EditChromeMode.SETTINGS_ROW }`\n // was silently dropped: edit fields fell straight through to the\n // surface-policy / STACKED system default. We thread it into\n // `AutomatedForm.chromeMode`, which seeds `FormChromeProvider` as the\n // form-level slot of the cascade — section-level `<Section chromeMode>` and\n // field-level `{primitive}UI.edit.chromeMode` still override it. Applies to\n // both explicit `layout.edit` templates and the generated edit layout.\n const defaultEditChromeMode = resourceConfig?.frontendConfiguration?.layout?.defaultChromeMode?.edit;\n\n // Extract inheritanceConfig from resource configuration for discriminated union support\n const inheritanceConfig = useMemo(() => {\n // Access inheritenceSchemaDefinition from resource config (note the typo in the property name is intentional - matches existing API)\n const inheritenceDef = (resourceConfig as any)?.inheritenceSchemaDefinition;\n if (!inheritenceDef) return undefined;\n\n // Transform to InheritanceSchemaDefinition format expected by AutomatedForm\n return {\n discriminatorField: inheritenceDef.discriminatorField,\n withoutInheritanceDiscriminatorFieldValues: inheritenceDef.withoutInheritanceDiscriminatorFieldValues,\n inheritedSchemas: inheritenceDef.inheritedSchemas,\n };\n }, [resourceConfig]);\n\n const formFieldShape = useMemo(() => {\n if (!formSchema) {\n return undefined;\n }\n\n return AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(formSchema);\n }, [formSchema]);\n\n // Resolve explicit edit template from layout config — for the operations it can serve\n // (`resolveAuthoredEditTemplateForOperation`).\n const explicitEditTemplate = useMemo(\n () => resolveAuthoredEditTemplateForOperation(\n resourceConfig?.frontendConfiguration?.layout?.edit,\n operation.operationIdentifier,\n formFieldShape,\n // Every field some row can hold (#2455), so a custom operation writing a variant field keeps the template.\n resourceConfig?.inheritenceSchemaDefinition\n ? z.object(FrontendResourceUtils.resolveFieldShapeOfAnyVariant(resourceConfig) ?? {})\n : resourceConfig?.mainSchema,\n ),\n [resourceConfig, operation.operationIdentifier, formFieldShape],\n );\n\n // Extract draft config from resource-level configuration\n const resourceDraftConfig = resourceConfig?.frontendConfiguration?.draftableConfig;\n\n // Merge resource-level draft config with prop-provided config (props take precedence)\n const effectiveDraftConfig = useMemo<EffectiveDraftConfig | undefined>(() => {\n if (!resourceDraftConfig && !draftConfig) return undefined;\n\n // If only prop config provided, use it\n if (!resourceDraftConfig && draftConfig) {\n return draftConfig;\n }\n\n // If only resource config provided, enable draft mode with resource values\n if (resourceDraftConfig && !draftConfig) {\n return {\n enabled: true,\n isDraft: false,\n discriminator: resourceDraftConfig.discriminator,\n draftValue: resourceDraftConfig.draftValue,\n publishedValue: resourceDraftConfig.publishedValue,\n requireConfirmationToPublish: resourceDraftConfig.requireConfirmationToPublish,\n };\n }\n\n // Merge both, with props taking precedence\n return {\n ...resourceDraftConfig,\n ...draftConfig,\n enabled: draftConfig?.enabled ?? !!resourceDraftConfig,\n };\n }, [resourceDraftConfig, draftConfig]);\n\n // Sync isDraft state when effectiveDraftConfig changes\n useEffect(() => {\n if (effectiveDraftConfig?.isDraft !== undefined) {\n setIsDraft(effectiveDraftConfig.isDraft);\n }\n }, [effectiveDraftConfig?.isDraft]);\n\n // Build a stable key from contextResourceIdentifiers for memoization\n const contextResourceIdentifiersKey = useMemo(() => {\n return FrontendResourceUtils.buildContextResourceIdentifiersKey(contextResourceIdentifiers);\n }, [contextResourceIdentifiers]);\n\n // Build contextual parameters for API calls\n const contextualParameters = useMemo(() => {\n return FrontendResourceUtils.buildContextualParameters(contextResourceIdentifiers, registry);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [contextResourceIdentifiersKey, registry]);\n\n // Compute context field values - fields from the navigation context that should be\n // hidden from the form and auto-populated on submit\n const contextFieldValues = useMemo(() => {\n if (!formFieldShape) {\n return {};\n }\n\n const semanticContextFieldValues = FrontendResourceUtils.resolveSemanticContextFieldValues({\n resourceType,\n parentResourcesRequirements: resourceContext.parentResourcesRequirements,\n contextResourceIdentifiers,\n contextualParameters,\n registry,\n });\n\n const values: Record<string, unknown> = {};\n for (const [fieldName, fieldValue] of Object.entries(semanticContextFieldValues)) {\n if (formFieldShape[fieldName]) {\n values[fieldName] = fieldValue;\n }\n }\n\n return values;\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key for contextualParameters\n }, [contextResourceIdentifiersKey, contextualParameters, formFieldShape, registry, resourceContext.parentResourcesRequirements, resourceType]);\n\n const relationshipWriteSurfacesByFieldName = useMemo<Record<string, RelationshipWriteSurfaceDescriptor>>(() => {\n if (!formFieldShape) {\n return {};\n }\n\n const writeSurfaces: Record<string, RelationshipWriteSurfaceDescriptor> = {};\n\n for (const fieldName of Object.keys(formFieldShape)) {\n const writeSurface = resolveRelationshipWriteSurface({\n resourceType,\n fieldName,\n operationType: effectiveFormOperationType,\n registry,\n });\n if (writeSurface) {\n writeSurfaces[fieldName] = writeSurface;\n }\n }\n\n return writeSurfaces;\n }, [effectiveFormOperationType, formFieldShape, registry, resourceType]);\n const resourceOperations = resourceConfig?.operations ?? [];\n\n // The backend's organization-unit narrowing, as the session's access profile serves it (#2939). Read tolerantly: a form\n // rendered outside a session provider has none, and keeps every field.\n const accessProfile = useContext(UserOrgsContext)?.permissions?.accessProfile;\n const organizationUnitNarrowing = accessProfile?.organizationUnitNarrowing;\n\n // #2943: on a create, the organization units this caller may name, as the backend's placement answered in advance —\n // offered as a choice of those units instead of a picker over every unit. `undefined` keeps the picker.\n const createOrganizationUnitCandidates = useMemo(() => (effectiveCoreOperation === CoreResourceOperation.CREATE\n ? readThroughCreateOrganizationUnitCandidates({\n resourceType,\n resourceConfiguration: resourceConfig,\n formFieldShape,\n readThroughCreateOrganizationUnits: accessProfile?.readThroughCreateOrganizationUnits,\n })\n : undefined), [accessProfile?.readThroughCreateOrganizationUnits, effectiveCoreOperation, formFieldShape, resourceConfig, resourceType]);\n const createOrganizationUnitLabels = useReferenceRecordLabels({\n resourceType: CoreResourceType.ORGANIZATION_UNITS,\n ids: createOrganizationUnitCandidates,\n hostContextualParameters: contextualParameters as Record<string, string>,\n });\n const allowedValuesByField = useMemo<Record<string, AllowedFieldValues> | undefined>(() => (createOrganizationUnitCandidates\n ? { [READ_THROUGH_ORGANIZATION_UNIT_FIELD_NAME]: { values: createOrganizationUnitCandidates, labels: createOrganizationUnitLabels } }\n : undefined), [createOrganizationUnitCandidates, createOrganizationUnitLabels]);\n\n // Resource-aware hidden-field derivation stays here on purpose.\n // `AutomatedForm` only consumes these names as opaque infrastructure input.\n const hiddenFieldNames = useMemo(() => {\n if (!formFieldShape) {\n return [];\n }\n\n const hiddenNames: string[] = [];\n\n for (const writeSurface of Object.values(relationshipWriteSurfacesByFieldName)) {\n const relationshipField = writeSurface.rootFieldName;\n const findOperation = (action: ResourceRelationshipBulkAction) =>\n resourceOperations.find((candidate) =>\n candidate.isBulkOperation === true\n && String(candidate.operationIdentifier) === Resources_SharedUtils.buildRelationshipBulkOperationIdentifier(\n action,\n relationshipField,\n ),\n );\n\n const hasBusinessFacingEditor = (() => {\n if (\n writeSurface.semantics.nature === RelationshipNature.COMPOSITION\n && writeSurface.nestedMutationConfig\n ) {\n return true;\n }\n\n if (writeSurface.semantics.nature === RelationshipNature.REFERENCE) {\n const foreignKeyFieldName = writeSurface.foreignKeyIdentity?.fieldIdentifier;\n const foreignKeySchema = foreignKeyFieldName ? formFieldShape[foreignKeyFieldName] : undefined;\n const hasVisibleSiblingForeignKeyField = Boolean(\n foreignKeySchema\n && isForeignKey(foreignKeySchema)\n && !Object.prototype.hasOwnProperty.call(contextFieldValues, foreignKeyFieldName ?? ''),\n );\n\n return hasVisibleSiblingForeignKeyField || Boolean(findOperation(ResourceRelationshipBulkAction.SET));\n }\n\n if (writeSurface.semantics.nature === RelationshipNature.ASSOCIATION) {\n return Boolean(findOperation(ResourceRelationshipBulkAction.REPLACE));\n }\n\n return false;\n })();\n\n if (!hasBusinessFacingEditor) {\n if (envLoader.isDevelopment()) {\n logger.warn('[ResourceAutomatedForm] Keeping relationship root visible because no business-facing editor is available', {\n resourceType,\n operationType: effectiveFormOperationType,\n fieldName: relationshipField,\n relationshipNature: writeSurface.semantics.nature,\n hasNestedMutationConfig: Boolean(writeSurface.nestedMutationConfig),\n });\n }\n continue;\n }\n\n hiddenNames.push(relationshipField);\n }\n\n // A read-through resource's organization unit, where this deployment's system of record is not partitioned (#2939).\n if (isReadThroughOrganizationUnitFieldInert({ resourceType, resourceConfiguration: resourceConfig, formFieldShape, organizationUnitNarrowing })) {\n hiddenNames.push(READ_THROUGH_ORGANIZATION_UNIT_FIELD_NAME);\n }\n\n return hiddenNames;\n }, [\n contextFieldValues,\n effectiveFormOperationType,\n formFieldShape,\n organizationUnitNarrowing,\n relationshipWriteSurfacesByFieldName,\n resourceConfig,\n resourceOperations,\n resourceType,\n ]);\n\n // Build operation path key from the operation object on context\n const operationPathKey = useMemo(() => {\n return ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation);\n }, [operation]);\n\n // =============================================================================\n // RMM (Registry-based, UPDATE-like operations only)\n // =============================================================================\n\n const isUpdateLikeOperation = useMemo(() => {\n return isSingleResourceUpdateLikeOperation(operation);\n }, [operation]);\n\n const resourceId = useMemo(() => {\n // Only an operation that addresses ONE record has an id in its context; on a CREATE (or a collection or bulk\n // operation) the own-type slot holds at most ambient scope and must not become this form's record id.\n const contextId = frontendResourceUtils.getAddressedRecordId({ resourceType, operation, contextResourceIdentifiers });\n if (contextId) {\n return contextId;\n }\n\n const loadedId = defaultValues && typeof defaultValues === 'object'\n ? (defaultValues as Record<string, unknown>)._id\n : undefined;\n return typeof loadedId === 'string' && loadedId.length > 0 ? loadedId : null;\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [contextResourceIdentifiersKey, defaultValues, resourceType, operation]);\n\n const parentResourcesRequirementsKey = useMemo(() => {\n return JSON.stringify(resourceContext.parentResourcesRequirements ?? []);\n }, [resourceContext.parentResourcesRequirements]);\n\n const contextResourceIdentifiersWithResourceId = useMemo(() => {\n if (!resourceId || contextResourceIdentifiers[resourceType]) {\n return contextResourceIdentifiers;\n }\n\n return {\n ...contextResourceIdentifiers,\n [resourceType]: resourceId,\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [contextResourceIdentifiersKey, resourceId, resourceType]);\n\n const contextualParametersWithResourceId = useMemo(() => {\n const resourceFieldIdentifier = resourceConfig?.resourceFieldIdentifier;\n if (!resourceId || !resourceFieldIdentifier) {\n return contextualParameters;\n }\n\n if (String(contextualParameters[resourceFieldIdentifier] ?? '') === resourceId) {\n return contextualParameters;\n }\n\n return {\n ...contextualParameters,\n [resourceFieldIdentifier]: resourceId,\n };\n }, [contextualParameters, resourceConfig?.resourceFieldIdentifier, resourceId]);\n\n const currentOperationPathKey = useMemo(() => {\n if (\n !isUpdateLikeOperation\n || effectiveCoreOperation !== CoreResourceOperation.UPDATE\n || operation.operationIdentifier !== CoreResourceOperation.UPDATE\n || !resourceConfig\n ) {\n return operationPathKey;\n }\n\n const addressableOperation = pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig,\n operations: resourceOperations,\n coreOperation: CoreResourceOperation.UPDATE,\n registry,\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters: contextualParametersWithResourceId,\n });\n\n return addressableOperation\n ? ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(addressableOperation)\n : operationPathKey;\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [\n contextResourceIdentifiersKey,\n contextResourceIdentifiersWithResourceId,\n contextualParametersWithResourceId,\n effectiveCoreOperation,\n isUpdateLikeOperation,\n operation.operationIdentifier,\n operationPathKey,\n registry,\n resourceConfig,\n resourceId,\n resourceOperations,\n ]);\n\n const currentOperationTransportOverride = useMemo(() => {\n const requiresAuthoritativeReadBack = isUpdateLikeOperation\n && effectiveCoreOperation === CoreResourceOperation.UPDATE\n && operationIdentifier !== CoreResourceOperation.UPDATE;\n\n return {\n operationPathKey: currentOperationPathKey,\n contextualParameters: contextualParametersWithResourceId,\n parentResourcesRequirements: resourceContext.parentResourcesRequirements,\n ...(requiresAuthoritativeReadBack ? { readBackOnSuccess: true } : {}),\n };\n }, [\n contextualParametersWithResourceId,\n currentOperationPathKey,\n effectiveCoreOperation,\n isUpdateLikeOperation,\n operationIdentifier,\n resourceContext.parentResourcesRequirements,\n ]);\n const mergeRequestDataWithBulkSelection = useCallback((requestData?: Record<string, unknown>) => {\n return mergeBulkSelectionIntoRequestData({\n operation,\n requestData,\n additionalContext: resourceContext.additionalContext,\n });\n }, [operation, resourceContext.additionalContext]);\n\n const {\n rmm,\n rmmSnapshot,\n canonicalReadOperationPathKey: rmmCanonicalReadOperationPathKey,\n } = useResourceRMM({\n resourceType,\n resourceId,\n doOperationRef,\n contextualParameters: contextualParametersWithResourceId,\n parentResourcesRequirements: resourceContext.parentResourcesRequirements as unknown[] | undefined,\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n resourceSchema: resourceConfig?.mainSchema,\n resourceInheritance: resourceConfig?.inheritenceSchemaDefinition,\n enabled: isUpdateLikeOperation && !!resourceId,\n conflictPolicy: { strategy: ConflictStrategy.ACCEPT_REMOTE },\n directFallbackAccepted: allowsDirectOperationFallback(updateLikeMutationFallbackMode),\n });\n\n // Slice F — execution-shell dirty-state publisher.\n //\n // Bridge the RMM's `hasUnsavedChanges` signal into the execution-shell\n // dirty-state aggregator whenever this form is mounted inside an\n // `ExecutionRuntimeProvider`. The bridge is a no-op outside an execution\n // shell, so the call is safe for every other mounting context (resource\n // layouts, composite views, custom views, etc.).\n //\n // Marker id is content-derived (`rmm:${resourceType}:${resourceId || ''}`)\n // so re-marks are idempotent across form re-mounts triggered by embed\n // open/replace cycles. Scope is inferred from\n // `ExecutionDirtyMarkerScopeContext` (set to `EMBEDDED_CONTENT` by the\n // shell's embed slot; defaults to `CUSTOM` otherwise — informative,\n // cleared on unmount). When `rmm` is null (CREATE flow, fallback mode,\n // or no eligible UPDATE operation), `hasUnsavedChanges` stays `false`\n // and the bridge does nothing.\n useExecutionDirtyBridge({\n markerId: `rmm:${resourceType}:${resourceId ?? ''}`,\n isDirty: !!rmm && rmmSnapshot.hasUnsavedChanges,\n });\n // Wrapper-level forms only acquire an RMM when the surface can address one\n // stable resource id on an UPDATE-like lane. ACCEPT_REMOTE keeps the form on\n // the same conflict semantics as the rest of the registry-backed runtime:\n // non-CRDT overlap resets the form to authoritative server truth.\n const allowsDirectUpdateLikeMutationFallback = useMemo(() => {\n return allowsDirectOperationFallback(updateLikeMutationFallbackMode);\n }, [updateLikeMutationFallbackMode]);\n const requiresRMMForDefaultUpdateLikeMutation = isUpdateLikeOperation && !allowsDirectUpdateLikeMutationFallback;\n\n const assertRMMAvailableForDefaultUpdateLikeMutation = useCallback((surfaceName: string) => {\n if (requiresRMMForDefaultUpdateLikeMutation && !rmm) {\n throw new MissingRMMRuntimeError({\n surfaceName,\n resourceType,\n operationIdentifier,\n });\n }\n }, [operationIdentifier, requiresRMMForDefaultUpdateLikeMutation, resourceType, rmm]);\n\n useEffect(() => {\n if (!requiresRMMForDefaultUpdateLikeMutation || rmm || !envLoader.isDevelopment()) {\n return;\n }\n\n logger.warn('[ResourceAutomatedForm] Default update-like mutation path is mounted without RMM. The surface will fail closed unless it explicitly opts into UpdateLikeMutationFallbackMode.DIRECT_OPERATION_FALLBACK.', {\n resourceType,\n operationIdentifier,\n hasResourceId: resourceId !== null,\n updateLikeMutationFallbackMode,\n });\n }, [\n operationIdentifier,\n requiresRMMForDefaultUpdateLikeMutation,\n resourceId,\n resourceType,\n rmm,\n updateLikeMutationFallbackMode,\n ]);\n\n // Resource-aware generated replacements also stay at the wrapper layer so the\n // generic form runtime does not decide relationship semantics on its own.\n // Together with hiddenFieldNames above, this gives relationship roots one\n // explicit policy: hide the raw infrastructure field only when a business-\n // facing replacement control exists for the same mutation surface.\n const generatedFieldOverrides = useMemo<Record<string, React.ReactNode>>(() => {\n if (!resourceConfig || !isUpdateLikeOperation || !resourceId || !formFieldShape) {\n return {};\n }\n\n const overrides: Record<string, React.ReactNode> = {};\n\n for (const [fieldName, writeSurface] of Object.entries(relationshipWriteSurfacesByFieldName)) {\n const relationshipField = writeSurface.rootFieldName;\n const findOperation = (action: ResourceRelationshipBulkAction) =>\n resourceOperations.find((operation) =>\n operation.isBulkOperation === true &&\n String(operation.operationIdentifier) === Resources_SharedUtils.buildRelationshipBulkOperationIdentifier(\n action,\n relationshipField,\n ),\n );\n\n if (writeSurface.semantics.nature === RelationshipNature.REFERENCE) {\n const foreignKeyFieldName = writeSurface.foreignKeyIdentity?.fieldIdentifier;\n if (!foreignKeyFieldName) {\n continue;\n }\n\n const foreignKeySchema = formFieldShape[foreignKeyFieldName];\n const isVisibleSiblingForeignKeyField = Boolean(\n foreignKeySchema &&\n isForeignKey(foreignKeySchema) &&\n !Object.prototype.hasOwnProperty.call(contextFieldValues, foreignKeyFieldName),\n );\n\n if (isVisibleSiblingForeignKeyField) {\n continue;\n }\n\n const setOperation = findOperation(ResourceRelationshipBulkAction.SET);\n const clearOperation = findOperation(ResourceRelationshipBulkAction.CLEAR);\n\n if (!setOperation) {\n if (envLoader.isDevelopment()) {\n logger.warn('[ResourceAutomatedForm] Skipping reference override because generated bulk set operation is unavailable', {\n resourceType,\n fieldName,\n foreignKeyFieldName,\n });\n }\n continue;\n }\n\n overrides[fieldName] = (\n <GeneratedReferenceRelationshipField\n writeSurface={writeSurface}\n setOperation={setOperation}\n clearOperation={clearOperation}\n rmm={rmm}\n allowDirectOperationFallback={allowsDirectUpdateLikeMutationFallback}\n />\n );\n continue;\n }\n\n if (writeSurface.semantics.nature === RelationshipNature.ASSOCIATION) {\n const replaceOperation = findOperation(ResourceRelationshipBulkAction.REPLACE);\n const initialRelationshipValue = defaultValues\n ? readPathValue(defaultValues, fieldName)\n : undefined;\n const hasHydratedInitialValue = Boolean(\n defaultValues &&\n typeof defaultValues === 'object' &&\n Object.prototype.hasOwnProperty.call(defaultValues as Record<string, unknown>, fieldName),\n );\n\n if (!replaceOperation) {\n if (envLoader.isDevelopment()) {\n logger.warn('[ResourceAutomatedForm] Skipping association override because generated bulk replace operation is unavailable', {\n resourceType,\n fieldName,\n });\n }\n continue;\n }\n\n overrides[fieldName] = (\n <GeneratedAssociationRelationshipField\n writeSurface={writeSurface}\n replaceOperation={replaceOperation}\n initialRelationshipValue={initialRelationshipValue}\n hasHydratedInitialValue={hasHydratedInitialValue}\n rmm={rmm}\n allowDirectOperationFallback={allowsDirectUpdateLikeMutationFallback}\n />\n );\n }\n }\n\n return overrides;\n }, [\n contextFieldValues,\n defaultValues,\n effectiveFormOperationType,\n formFieldShape,\n isUpdateLikeOperation,\n registry,\n resourceConfig,\n resourceId,\n resourceOperations,\n resourceType,\n relationshipWriteSurfacesByFieldName,\n rmm,\n allowsDirectUpdateLikeMutationFallback,\n ]);\n\n /**\n * Marks saved fields SAVED: each takes the stored value, and stops being dirty.\n *\n * The write-back used `setValue(…, { shouldDirty: false })`, which writes the value but leaves a field that was\n * already dirty dirty, so after a section save or an autosave the form still reported unsaved changes for fields\n * the server had just stored. `resetField` with the stored value as the field's new default is how React Hook Form\n * says \"this is the saved value\". It also clears the field's error, which the save has made obsolete, and keeps it\n * touched. A field that is not registered (a conditional field hidden right now) has no state to reset, so its value\n * is written with `setValue` first.\n *\n * A field the person changed while the save was on its way is left alone: it holds a newer value than the one saved,\n * and writing the stored value back erased what they had typed since (an autosave of \"abc\" landing while the field\n * read \"abcd\" turned it back into \"abc\"). It stays unsaved, so its own save marks it.\n *\n * @param storedRecord the record as stored after the save; a field it does not carry keeps the value the form holds.\n * @param sentValues the values the save sent, by field path, when known.\n */\n const markFieldsSaved = useCallback((fieldNames: readonly string[], storedRecord: unknown, sentValues?: Record<string, unknown>) => {\n const form = formMethodsRef.current;\n if (!form) return;\n for (const field of fieldNames) {\n if (sentValues && Object.prototype.hasOwnProperty.call(sentValues, field) && !isSameFormValue(form.getValues(field), sentValues[field])) continue;\n const stored = readPathValue(storedRecord, field);\n const value = stored !== undefined ? stored : form.getValues(field);\n form.setValue(field, value, { shouldDirty: false, shouldValidate: false });\n form.resetField(field, { defaultValue: value, keepTouched: true });\n }\n }, []);\n\n // This is the wrapper's single RMM subscription seam. All authoritative\n // mutation/read-back/remote-reset outcomes are translated here into form\n // state updates, server validation injection, transient remote-update UI, and\n // the persistent conflict banner.\n useEffect(() => {\n if (!rmm || !rmmSnapshot?.lastEvent) return;\n const event = rmmSnapshot.lastEvent;\n\n switch (event.type) {\n case RMMEventType.MUTATION_RESULT: {\n const { result } = event;\n if (result.success && result.savedFields) {\n markFieldsSaved(result.savedFields, rmmSnapshot.confirmedData, result.savedValues);\n }\n if (!result.success && result.error?.type === MutationErrorType.VALIDATION) {\n if (result.error.validationErrors) {\n const syntheticError = {\n httpStatus: result.error.status ?? 400,\n validationErrors: result.error.validationErrors,\n };\n const serverValidation = extractServerValidationErrors(syntheticError);\n if (serverValidation) {\n injectServerErrors(serverValidation.validationErrors);\n }\n }\n }\n break;\n }\n\n case RMMEventType.REMOTE_UPDATE: {\n if (formMethodsRef.current) {\n for (const field of event.changedFields) {\n const currentDirty = formMethodsRef.current.getFieldState(field).isDirty;\n if (!currentDirty) {\n formMethodsRef.current.setValue(field, readPathValue(rmmSnapshot.confirmedData, field), {\n shouldDirty: false,\n shouldValidate: false,\n });\n }\n }\n }\n setRemoteUpdateIndicator({\n changedFields: event.changedFields,\n initiatorUserId: event.initiatorUserId,\n });\n if (remoteUpdateTimerRef.current) clearTimeout(remoteUpdateTimerRef.current);\n remoteUpdateTimerRef.current = setTimeout(() => {\n setRemoteUpdateIndicator(null);\n remoteUpdateTimerRef.current = null;\n }, 3000);\n break;\n }\n\n case RMMEventType.CONFLICT_RESET: {\n if (formMethodsRef.current) {\n // The server's record after a conflict: still a record, so the same seed rule applies (#2192). The host's\n // prefill is NOT re-applied: after a conflict the server's values are the ones the person must see.\n formMethodsRef.current.reset(seedFromRecord(event.currentData as Record<string, unknown>, false));\n }\n clearServerErrors();\n setConflictBanner({\n discardedFields: event.discardedFields,\n conflictingFields: event.conflictDetails?.conflictingFields ?? event.discardedFields,\n reason: event.reason,\n conflictDetails: event.conflictDetails,\n });\n break;\n }\n\n case RMMEventType.RESOURCE_DELETED: {\n logDebug('RMM resource deleted event', { reason: event.reason });\n break;\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- react only to new events\n }, [rmmSnapshot?.lastEvent?.id]);\n\n useEffect(() => {\n return () => {\n if (remoteUpdateTimerRef.current) {\n clearTimeout(remoteUpdateTimerRef.current);\n remoteUpdateTimerRef.current = null;\n }\n };\n }, []);\n\n const handleAcknowledgeConflict = useCallback(() => {\n rmm?.acknowledgeConflict();\n setConflictBanner(null);\n }, [rmm]);\n\n // Build labels for AutomatedForm\n const labels = useMemo<AutomatedFormLabels>(() => {\n const resourceContextLabels: AutomatedFormLabels = {\n resourceContext: {\n resourceType,\n operationId: operationIdentifier,\n },\n };\n\n // Merge with overrides\n return {\n ...resourceContextLabels,\n ...labelsOverride,\n // Override navigation if provided\n navigation: {\n ...resourceContextLabels.navigation,\n ...labelsOverride?.navigation,\n },\n };\n }, [resourceType, operationIdentifier, labelsOverride]);\n\n // =============================================================================\n // SHARED BASE PATH (used by fileUploadContext & validateFieldUrl)\n // =============================================================================\n\n /**\n * Compute the routed API base identity for this resource.\n * Uses CREATE operation URL resolution so file uploads and validate-field routes\n * stay aligned with the same FK-aware contextual parameter contract as normal\n * resource operations.\n */\n const resourceApiBase = useMemo(() => {\n const isCreateOperation = effectiveCoreOperation === CoreResourceOperation.CREATE;\n const isUpdateOperation = isSingleResourceUpdateLikeOperation(operation);\n\n if (!isCreateOperation && !isUpdateOperation) {\n return null;\n }\n\n try {\n // An UPDATE's own route segment is the record it edits — the addressed record (`resourceId`), never a\n // second read of the own-type slot. A CREATE has none: its slot holds at most ambient scope (#2143 review).\n const updatedRecordId = isUpdateOperation ? resourceId : null;\n const apiBaseUrl = envLoader.getApiUrl();\n if (!resourceConfig?.resourceFieldIdentifier) {\n throw FrontendResourceUtils.buildConfigurationError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_FIELD_IDENTIFIER_NOT_FOUND,\n { resourceType: resourceContext.resourceType, component: 'ResourceAutomatedForm' }\n );\n }\n const resourceFieldIdentifier = resourceConfig.resourceFieldIdentifier as string;\n const contextualParameters = { ...contextualParametersWithResourceId };\n if (updatedRecordId) {\n contextualParameters[resourceFieldIdentifier] = updatedRecordId;\n }\n\n const routeBearingMutationOperation = (\n operation.variantType === ResourceOperationVariantType.API_CALL\n )\n ? operation\n : resourceConfig && isUpdateOperation\n ? pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig,\n operations: resourceConfig.operations ?? [],\n coreOperation: CoreResourceOperation.UPDATE,\n registry,\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters: contextualParametersWithResourceId,\n })\n : resourceConfig\n ? pickPreferredOperationForCoreSemantic(\n resourceConfig.operations ?? [],\n CoreResourceOperation.CREATE,\n )\n : undefined;\n\n let basePath: string | undefined;\n\n if (routeBearingMutationOperation) {\n const routePaths = ResourcesConfigOperationsUrlsBuilderUtils.buildOperationFrontendRoutePaths(\n resourceConfig!,\n routeBearingMutationOperation,\n registry.allResourceFieldIdentifiers\n );\n\n if (routePaths.length > 0) {\n const routePath = frontendResourceUtils.selectMatchingRoutePath(\n routePaths,\n contextResourceIdentifiersWithResourceId,\n resourceConfig.resourceIdentifier,\n resourceFieldIdentifier,\n resourceContext.parentResourcesRequirements,\n );\n // Frontend route paths omit `MAIN_API_BASE_PATH` (`/api/v1`), so this carries the prefix.\n // NOTE it no longer serves `validate-field` (#1238): that route is mounted on the CREATE\n // operation's initiator-info URL and must not carry a route segment such as `/create`.\n // The upload endpoint below builds its own URL from `apiBaseUrl` + contextual parameters.\n basePath = `${MAIN_API_BASE_PATH}${routePath.url}`;\n basePath = NavigationUtils.resolveUrlPath(basePath, contextualParameters);\n\n if (basePath && NavigationUtils.hasUnresolvedPlaceholders(basePath)) {\n logger.warn('[ResourceAutomatedForm] Unresolved placeholders in routed API basePath; disabling route-derived helpers', {\n basePath,\n resourceType,\n operationIdentifier,\n });\n basePath = undefined;\n }\n }\n }\n\n if (!basePath) {\n return null;\n }\n\n return {\n apiBaseUrl,\n basePath,\n contextualParameters,\n resourceFieldIdentifier,\n };\n } catch (error) {\n logger.error('[ResourceAutomatedForm] Error computing resource API base:', error);\n return null;\n }\n }, [\n contextResourceIdentifiersWithResourceId,\n contextualParametersWithResourceId,\n effectiveCoreOperation,\n operation,\n registry,\n resourceConfig,\n resourceContext,\n resourceId,\n resourceType,\n ]);\n\n // Generate file upload context for file fields\n // Detects file fields in schema and builds resource-integrated upload endpoints\n // Decision 7.1: Use ResourcesConfigOperationsUrlsBuilderUtils for proper nested resource path building\n const fileUploadContext = useMemo<Record<string, FileFieldEndpoints>>(() => {\n if (!formSchema || !resourceApiBase || !resourceConfig?.resourceFieldIdentifier) return {};\n\n const context: Record<string, FileFieldEndpoints> = {};\n const isUpdateOperation = isSingleResourceUpdateLikeOperation(operation);\n const { apiBaseUrl, contextualParameters } = resourceApiBase;\n\n try {\n const uploadOperation = (\n operation.variantType === ResourceOperationVariantType.API_CALL\n )\n ? operation\n : isUpdateOperation\n ? pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig,\n operations: resourceConfig.operations ?? [],\n coreOperation: CoreResourceOperation.UPDATE,\n registry,\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters: contextualParametersWithResourceId,\n })\n : pickPreferredOperationForCoreSemantic(\n resourceConfig.operations ?? [],\n CoreResourceOperation.CREATE,\n );\n if (!uploadOperation) {\n return context;\n }\n\n const uploadRoutePaths = ResourcesConfigOperationsUrlsBuilderUtils.buildOperationFrontendRoutePaths(\n resourceConfig,\n uploadOperation,\n registry.allResourceFieldIdentifiers,\n );\n if (uploadRoutePaths.length === 0) {\n return context;\n }\n\n const routePath = frontendResourceUtils.selectMatchingRoutePath(\n uploadRoutePaths,\n contextResourceIdentifiersWithResourceId,\n resourceConfig.resourceIdentifier,\n resourceConfig.resourceFieldIdentifier,\n resourceContext.parentResourcesRequirements,\n );\n const filesBasePath = `${apiBaseUrl}/api/v1/files`;\n const fileFieldPaths = AutomatedLayoutFrontendUtils.collectUploadableFileFieldPaths(formSchema);\n\n for (const fieldName of fileFieldPaths) {\n const uploadRoute = ResourcesConfigOperationsUrlsBuilderUtils.buildFileUploadRouteForOperation({\n operationRouteUrl: routePath.url,\n operationParameters: routePath.parameters,\n targetResourceType: resourceType,\n targetResourceFieldIdentifier: resourceConfig.resourceFieldIdentifier,\n fieldName,\n requiresTargetResourceId: isUpdateOperation,\n isFrontend: true,\n });\n const resolvedUploadPath = NavigationUtils.resolveUrlPath(\n uploadRoute.url,\n contextualParameters,\n );\n\n if (NavigationUtils.hasUnresolvedPlaceholders(resolvedUploadPath)) {\n logger.warn('[ResourceAutomatedForm] Unresolved placeholders in file upload path, skipping endpoint', {\n fieldName,\n uploadPath: resolvedUploadPath,\n });\n continue;\n }\n\n // `resolvedUploadPath` comes from `buildOperationFrontendRoutePaths`, which\n // builds React-Router APP paths and deliberately OMITS `MAIN_API_BASE_PATH`\n // (`/api/v1`) — see the `!isFrontend ? [MAIN_API_BASE_PATH] : []` seam in the\n // URL builder. The backend registers the upload route off the API route\n // (`initiatorInfo.url`, WITH `/api/v1`), so the endpoint must carry the same\n // prefix or every resource-integrated upload 404s (the segment naming already\n // matches — both sides use the same parent-combination builder). This mirrors\n // the metadata endpoint above, which hardcodes `/api/v1/files`.\n const uploadEndpoint = `${apiBaseUrl}${MAIN_API_BASE_PATH}${resolvedUploadPath}`;\n\n context[fieldName] = {\n upload: uploadEndpoint,\n override: isUpdateOperation ? uploadEndpoint : undefined,\n getMetadata: filesBasePath,\n // UPDATE remove must clear the field locally and let the later save own unlinking.\n delete: isUpdateOperation ? undefined : filesBasePath,\n };\n }\n } catch (error) {\n logger.error('[ResourceAutomatedForm] Error generating file upload context:', error);\n }\n\n return context;\n }, [\n contextResourceIdentifiersWithResourceId,\n formSchema,\n operation,\n parentResourcesRequirementsKey,\n resourceApiBase,\n resourceConfig,\n resourceType,\n ]);\n\n // =============================================================================\n // SERVER-SIDE FIELD VALIDATION CONTEXT\n // =============================================================================\n\n /**\n * Build the validate-field URL for server-side field pre-validation.\n * Only computed when the resource's mainSchema has fields that require\n * server-side validation (currently: isUnique; extensible to FK existence,\n * external API checks, custom validators, etc.).\n *\n * The URL follows the same base path as the CREATE operation + \"/validate-field\".\n * The backend handler dispatches to the appropriate validation strategy\n * based on the field's decorators.\n */\n const validateFieldUrl = useMemo<string | undefined>(() => {\n if (!resourceApiBase || !resourceConfig) return undefined;\n\n // Check if the resource's main schema has any fields requiring server validation.\n // Use the mainSchema (not requestDto) because decorators live on the main entity schema.\n //\n // Currently checks: isUnique()\n // When new server-validated decorators are added (e.g., isExternallyValidated),\n // add them to this check to enable the validate-field URL for those resources.\n // Every field some row can hold (#2455): a unique field only a variant declares warns early too (its backend route\n // exists since #2434).\n const shape = FrontendResourceUtils.resolveFieldShapeOfAnyVariant(resourceConfig);\n if (!shape) return undefined;\n const hasServerValidatedFields = Object.values(shape).some(fieldSchema =>\n isUnique(fieldSchema)\n // Future: || isExternallyValidated(fieldSchema)\n // Future: || isServerValidated(fieldSchema)\n );\n if (!hasServerValidatedFields) return undefined;\n\n /*\n * Built from the CREATE operation's INITIATOR INFO, not from `resourceApiBase.basePath` (#1238).\n *\n * `basePath` is the FRONTEND ROUTE of the create surface, so on a create form it carries the\n * `/create` segment and the request went to `…/todo-lists/create/validate-field` — a path the\n * backend does not serve. It answered 404, and `useFieldUniquenessValidation` treats a failed\n * check as \"no conflict found\", so the whole early-warning affordance was dead on every create\n * form with nothing to see: a 404 and a genuinely free value are indistinguishable to the person.\n *\n * The backend mounts this route on `createOperation.initiatorInfos[].url`\n * (`validate-field-handler.backend.service.ts`, \"Register routes for each parent combination\"),\n * which is the API collection URL and has no route segment beyond the resource. Selecting the\n * initiator here puts both sides on ONE authority instead of two descriptions of the same path —\n * and `selectOperationUrlInitiatorInfo`'s own contract is that its algorithm \"must stay in sync\n * with backend URL generation\", which is precisely the question being asked.\n *\n * The CREATE operation is used even on an UPDATE form, deliberately: the backend registers this\n * route from the CREATE operation alone and authorizes it with CREATE rights, because field\n * validation is a create-surface helper. An update form reaches the same path and passes\n * `excludeId`.\n */\n const createOperation = pickPreferredOperationForCoreSemantic(\n resourceConfig.operations ?? [],\n CoreResourceOperation.CREATE,\n );\n const initiatorInfo = createOperation?.initiatorInfos?.length\n ? FrontendResourceUtils.selectOperationUrlInitiatorInfo({\n initiatorInfos: createOperation.initiatorInfos,\n contextualParameters: resourceApiBase.contextualParameters,\n targetResourceType: resourceConfig.resourceIdentifier,\n targetDefaultFieldIdentifier: resourceApiBase.resourceFieldIdentifier,\n parentResourcesRequirements: resourceContext.parentResourcesRequirements,\n })\n : undefined;\n if (!initiatorInfo) return undefined;\n\n const composed = buildValidateFieldUrl({\n apiBaseUrl: resourceApiBase.apiBaseUrl,\n initiatorInfo,\n contextualParameters: resourceApiBase.contextualParameters,\n });\n if (!composed) {\n logger.warn('[ResourceAutomatedForm] validate-field URL has unresolved parameters; blur-time validation disabled', {\n initiatorUrl: initiatorInfo.url,\n resourceType,\n });\n }\n return composed;\n }, [resourceApiBase, resourceConfig, resourceContext.parentResourcesRequirements, resourceType]);\n\n /**\n * The form's record id, as the form PUBLISHES it to its fields (the form context's `resourceId`): the\n * uniqueness check's `excludeId`, a reference field's host record, quick-create's source record.\n *\n * It is the addressed record (`resourceId` above, through `getAddressedRecordId`) and nothing else. It used to\n * fall back to `getPrimaryResourceIdentifier`, which reads the own-type slot whatever the operation: on a\n * CREATE that slot holds at most ambient scope — the quick-switcher's selection, or the host record a\n * same-type quick-create was opened from — and every field saw it as the record being created (#2143 review).\n * For a record operation the fallback read the same slot `resourceId` already read, so it added nothing.\n */\n const primaryResourceId = useMemo<string | undefined>(() => resourceId ?? undefined, [resourceId]);\n const canonicalReadOperation = useMemo(() => {\n if (rmm) {\n return undefined;\n }\n\n return resolveCanonicalRMMReadOperation(resourceType, registry, {\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters: contextualParametersWithResourceId,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [contextResourceIdentifiersKey, contextResourceIdentifiersWithResourceId, contextualParametersWithResourceId, registry, resourceId, resourceType, rmm]);\n\n const canonicalReadOperationPathKey = useMemo(() => {\n if (rmm) {\n return rmmCanonicalReadOperationPathKey;\n }\n\n return canonicalReadOperation\n ? ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(canonicalReadOperation)\n : resolveCanonicalRMMReadOperationPathKey(resourceType, registry, {\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: contextResourceIdentifiersWithResourceId,\n contextualParameters: contextualParametersWithResourceId,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using stable key instead of object reference\n }, [canonicalReadOperation, contextResourceIdentifiersKey, contextResourceIdentifiersWithResourceId, contextualParametersWithResourceId, registry, resourceId, resourceType, rmm, rmmCanonicalReadOperationPathKey]);\n\n // Determine if we need to fetch existing data\n const needsFetch = useMemo(() => shouldFetchExistingData(operation), [operation]);\n const lastExistingDataFetchKeyRef = useRef<string | null>(null);\n\n // ── EA: post-load operation-availability guard ─────────────────────────────\n // The action bar / display gate only guards navigations IT initiates; a\n // deep-link, bookmark, or a tab left open while the record changed can still\n // land directly on an operation's form. This host is the one place that loads\n // the record (for UPDATE-like ops), so it is the correct layer to re-check\n // `enabledCondition` against the REAL object and render an \"unavailable\" state\n // instead of a form the backend would reject on submit. Armed only for\n // operations that act on an existing resource (`needsFetch`) once the record\n // has loaded; CREATE (no object) and the loading window are skipped, so the\n // hook returns `isEnabled: true` and never trips the guard for them.\n const operationAvailability = useOperationEnabled({\n operation,\n currentObject: needsFetch ? (defaultValues as Record<string, unknown> | undefined) : undefined,\n resourceType,\n enabled: needsFetch && hasLoadedOnce && !fetchError,\n });\n\n const recordSeededDefaultValues = useMemo(\n () => (defaultValues ? seedFromRecord(defaultValues as Record<string, unknown>) as DefaultValues<any> : defaultValues),\n [defaultValues, seedFromRecord],\n );\n\n // CREATE-only synchronous default-value seed.\n //\n // Two jobs (see `resolveCreateFormInitialValues` for the full rationale):\n // 1. For a `createSchemaFamily` resource the form validates against a\n // `z.discriminatedUnion`, which dispatches on the RAW discriminator value\n // BEFORE any variant `.default()` is applied. When the discriminator field\n // is not rendered by the layout (e.g. Wonder Todos `todos.recurringType`),\n // it would stay `undefined` and every create would fail with\n // `{ <discriminator>: \"Invalid input\" }` — the POST never fires.\n // 2. Audit D3: every field with a declared schema `.default()` is seeded so\n // the create form DISPLAYS the values the backend will apply (a `status`\n // defaulting to `pending` no longer renders an empty \"Select...\").\n // It MUST be synchronous: `Form`/`useForm` consume `defaultValues` only at\n // initialization and never reset, so an effect-set seed would arrive after the\n // first mount and never reach RHF.\n // Computed only for CREATE; UPDATE-like operations take their defaults from the\n // fetched record. Default-free non-discriminated resources resolve to `undefined`.\n /*\n * A BULK update form writes what the person SETS, each nested child by its dotted path (`bulkUpdatePatch`, #2581). It\n * starts EMPTY, as bulk editors do (Jira's bulk edit, Salesforce's mass update): no selected row's value can be shown\n * (each has its own), and a schema default shown in its place could then never be written, since a field still\n * holding what the form showed is not a change. A host's own prefill (`defaultValuesOverride`) is its explicit\n * choice, so it is shown AND counts as set.\n */\n const writesBulkPatch = operation.isBulkOperation === true && isUpdateLikeCoreOperation(effectiveCoreOperation);\n const createSeededDefaultValues = useMemo<DefaultValues<any> | undefined>(() => {\n if (needsFetch) return undefined;\n if (writesBulkPatch) return defaultValuesOverride as DefaultValues<any> | undefined;\n return resolveCreateFormInitialValues({\n formFieldShape,\n inheritanceConfig,\n defaultValuesOverride: defaultValuesOverride as Record<string, unknown> | undefined,\n }) as DefaultValues<any> | undefined;\n }, [needsFetch, formFieldShape, inheritanceConfig, defaultValuesOverride, writesBulkPatch]);\n\n // Compared against NOTHING: the form starts empty, so every value it holds was set (by the person, or by the host's\n // prefill), and a field holding only what an untouched control holds is not written (`bulkUpdatePatch`).\n const toBulkPatch = useCallback((\n values: Record<string, unknown>,\n writtenAsHeld: readonly string[],\n clears: Readonly<Record<string, unknown>> = {},\n ) => bulkUpdatePatch({\n values,\n seed: undefined,\n schema: formSchema,\n writtenAsHeld,\n variantFields: discriminatorFieldNames,\n clears,\n }), [discriminatorFieldNames, formSchema]);\n\n /*\n * The person's explicit \"clear on every selected record\" choices (#2620), by field path, each the value\n * `resolveBulkFieldClear` chose. A ref beside the state: each write reads the clears it carries when it builds its body,\n * and the autosave a choosing click triggers runs before React re-renders. A clear leaves once a write carried it\n * (`consumeBulkClears`), so a value the person sets afterwards is never cleared again by a later write.\n */\n const [bulkClears, setBulkClears] = useState<Record<string, unknown>>({});\n const bulkClearsRef = useRef<Record<string, unknown>>(bulkClears);\n const bulkSelectionCount = readBulkOperationSelectionCount(resourceContext.additionalContext);\n const bulkClearFor = useMemo(() => {\n const decided = new Map<string, BulkFieldClear | undefined>();\n return (fieldName: string): BulkFieldClear | undefined => {\n if (!writesBulkPatch) return undefined;\n if (!decided.has(fieldName)) {\n decided.set(fieldName, resolveBulkFieldClear(fieldName, operation.requestDto, formSchema, discriminatorFieldNames));\n }\n return decided.get(fieldName);\n };\n }, [discriminatorFieldNames, formSchema, operation.requestDto, writesBulkPatch]);\n const setBulkFieldCleared = useCallback((fieldName: string, cleared: boolean) => {\n const clear = cleared ? bulkClearFor(fieldName) : undefined;\n if (cleared && !clear) return;\n const next = { ...bulkClearsRef.current };\n if (clear) next[fieldName] = clear.value;\n else delete next[fieldName];\n bulkClearsRef.current = next;\n setBulkClears(next);\n if (!clear) return;\n /*\n * The control then holds what the clear writes, never what the person typed and chose to drop (an autosave validates\n * it). A list holds `[]`: a field array resyncs only from an array, so `undefined` left its rows on screen after an\n * undo while the form held none. A switch holds `false`. A value holds nothing, which every scalar control renders\n * empty and the bulk form's schema accepts on a relaxed child, where `null` would not parse.\n */\n const held = clear.kind === BulkFieldClearKind.EMPTY ? [] : clear.kind === BulkFieldClearKind.TURN_OFF ? false : undefined;\n formMethodsRef.current?.setValue(fieldName, held, { shouldDirty: true });\n // An error raised by the dropped value no longer describes the field.\n formMethodsRef.current?.clearErrors(fieldName);\n }, [bulkClearFor]);\n /*\n * The fields whose clear affordance is on screen, counted (a remount of the same field mounts before it unmounts). A\n * write carries only their clears (`liveBulkClears`): a field hidden after its clear was chosen leaves the form's values,\n * as the form does not submit an unmounted field, so its clear leaves the write too.\n */\n const mountedBulkClearFieldsRef = useRef(new Map<string, number>());\n const registerBulkClearField = useCallback((fieldName: string) => {\n const mounted = mountedBulkClearFieldsRef.current;\n mounted.set(fieldName, (mounted.get(fieldName) ?? 0) + 1);\n return () => {\n const remaining = (mounted.get(fieldName) ?? 1) - 1;\n if (remaining > 0) mounted.set(fieldName, remaining);\n else mounted.delete(fieldName);\n };\n }, []);\n // The choices belong to ONE operation's form: a host that hands this instance another operation (hosts do not key it)\n // must not carry a clear chosen for the first into the second's write.\n const bulkClearsOperationKeyRef = useRef(currentOperationPathKey);\n useEffect(() => {\n if (bulkClearsOperationKeyRef.current === currentOperationPathKey) return;\n bulkClearsOperationKeyRef.current = currentOperationPathKey;\n if (Object.keys(bulkClearsRef.current).length === 0) return;\n bulkClearsRef.current = {};\n setBulkClears({});\n }, [currentOperationPathKey]);\n const liveBulkClears = useCallback((): Record<string, unknown> => Object.fromEntries(\n Object.entries(bulkClearsRef.current).filter(([fieldName]) => mountedBulkClearFieldsRef.current.has(fieldName)),\n ), []);\n const consumeBulkClears = useCallback((written: Readonly<Record<string, unknown>>) => {\n const paths = Object.keys(written);\n if (paths.length === 0) return;\n const next = { ...bulkClearsRef.current };\n for (const path of paths) delete next[path];\n bulkClearsRef.current = next;\n setBulkClears(next);\n }, []);\n const bulkFieldClearing = useMemo<BulkFieldClearing | null>(() => (writesBulkPatch\n ? {\n selectionCount: bulkSelectionCount,\n clearFor: bulkClearFor,\n isCleared: (fieldName: string) => Object.hasOwn(bulkClears, fieldName),\n setCleared: setBulkFieldCleared,\n registerField: registerBulkClearField,\n }\n : null), [bulkClearFor, bulkClears, bulkSelectionCount, registerBulkClearField, setBulkFieldCleared, writesBulkPatch]);\n\n // Fetch existing data for UPDATE-like operations\n // Use refs to avoid infinite loops from unstable function references\n useEffect(() => {\n if (!needsFetch) {\n // CREATE path. The discriminated-union discriminator default is seeded\n // SYNCHRONOUSLY via `createSeededDefaultValues` / `effectiveDefaultValues`\n // (Form.tsx reads `defaultValues` only at useForm init and never resets, so\n // an async/effect-set seed would arrive after mount and never reach RHF —\n // the discriminator would stay undefined and the resolver would reject the\n // submit with \"Invalid input\"). Here we keep the prior contract.\n setDefaultValues(defaultValuesOverride ?? undefined);\n setDefaultValuesSource('create');\n setHasLoadedOnce(true);\n return;\n }\n\n const existingDataFetchKey = JSON.stringify({\n canonicalReadOperationPathKey,\n contextResourceIdentifiersKey,\n parentResourcesRequirementsKey,\n });\n\n if (hasLoadedOnce && lastExistingDataFetchKeyRef.current === existingDataFetchKey) {\n if (\n rmm\n && defaultValues\n && typeof rmm.getSnapshot === 'function'\n && rmm.getSnapshot().confirmedData === null\n && typeof rmm.setInitialState === 'function'\n ) {\n const dataRecord = defaultValues as Record<string, unknown>;\n rmm.setInitialState(\n dataRecord,\n (dataRecord._version as number) ?? 0,\n dataRecord._field_meta as Record<string, FieldMetaEntry> | undefined,\n );\n }\n return;\n }\n\n let cancelled = false;\n\n const fetchData = async () => {\n setFetchError(null);\n\n try {\n if (!canonicalReadOperationPathKey) {\n throw new Error('No addressable canonical READ operation is available for this resource form context.');\n }\n\n const data = await performCanonicalRMMRead({\n doOperation: doOperationRef.current,\n readOperationPathKey: canonicalReadOperationPathKey,\n contextualParameters: contextualParametersWithResourceId,\n parentResourcesRequirements: resourceContext.parentResourcesRequirements,\n });\n\n if (cancelled) return;\n\n const dataRecord = data as Record<string, unknown>;\n if (rmm) {\n rmm.setInitialState(\n dataRecord,\n (dataRecord._version as number) ?? 0,\n dataRecord._field_meta as Record<string, FieldMetaEntry> | undefined,\n );\n }\n\n setDefaultValues(\n defaultValuesOverride\n ? { ...dataRecord, ...defaultValuesOverride }\n : (data as DefaultValues<any>)\n );\n lastExistingDataFetchKeyRef.current = existingDataFetchKey;\n setDefaultValuesSource(existingDataFetchKey);\n setHasLoadedOnce(true);\n } catch (error) {\n if (cancelled) return;\n\n // Create WildoError_Frontend for READ operation failure\n const originalError = error instanceof Error ? error : new Error(String(error));\n\n // E-5: route through extractErrorInfo so structured WildoError_Backend\n // payloads (with customMessageReference + context) are preferred over\n // best-effort plain `error.code` / `error.context` access.\n const errorInfo = extractErrorInfo(error);\n const wildoError = errorBuilder.buildWildoError_Frontend(\n ErrorType.NOT_FOUND,\n {\n customMessageReference: ErrorCustomMessageReference.FRONTEND_FORM_READ_OPERATION_NOT_AVAILABLE,\n operationPathKey: canonicalReadOperationPathKey,\n context: {\n resourceType,\n operationIdentifier,\n originalErrorMessage: originalError.message,\n originalErrorStack: originalError.stack,\n httpCode: errorInfo.code,\n httpContext: errorInfo.context,\n },\n }\n );\n\n // Resolved from the CAUGHT error, not from `wildoError`: the synthesized reference would hide the real\n // cause (a permission refusal, a network failure) behind a generic \"not available\".\n setFetchError({ wildoError, message: toUserFacingErrorMessage(error) });\n onErrorRef.current?.(originalError);\n }\n };\n\n fetchData();\n\n return () => {\n cancelled = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- using refs for unstable functions; `rmm` so seed runs when RMM becomes available\n }, [needsFetch, canonicalReadOperationPathKey, resourceType, contextResourceIdentifiersKey, contextualParametersWithResourceId, parentResourcesRequirementsKey, errorBuilder, operationIdentifier, defaultValuesOverride, rmm, hasLoadedOnce, defaultValues]);\n\n // Handle form submission - use refs to avoid stale closures and dependency issues\n const handleSubmit = useCallback(async (data: any) => {\n // Cancel any pending autosaves before full form submit to prevent race conditions\n cancelPendingAutosavesRef.current?.();\n\n setIsSubmitting(true);\n // Clear previous server errors before new submission\n clearServerErrors();\n\n logDebug('handleSubmit: starting', { operationPathKey, dataKeys: Object.keys(data || {}) });\n\n try {\n let result: unknown;\n\n // RMM path: queue full submit (cancelPendingAutosavesRef already called rmm.cancelPendingMutations())\n if (rmm) {\n const mutationResult = await rmm.queueMutation(data, {\n type: MutationType.SUBMIT,\n priority: MutationPriority.HIGH,\n source: { type: MutationSourceType.FORM, subscriberId: 'submit' },\n transportOverride: currentOperationTransportOverride,\n });\n\n if (!mutationResult.success) {\n if (isConflictMutationFailure(mutationResult)) {\n return;\n }\n /*\n * Report the transport failure ITSELF (`error.cause`), not a fresh `Error` rebuilt from its message.\n * The caught error carries the backend's `wildoError` — its reference and type — and a new `Error`\n * dropped both: a save the server refused for a stated reason (`409\n * organization_unit_directory_managed`) reached the person as \"Unexpected error\", classified as an\n * uncaught exception (#1447). The rebuilt `Error` stays only as the fallback for a failure with no\n * transport error behind it.\n */\n if (mutationResult.error?.type === MutationErrorType.VALIDATION) {\n onErrorRef.current?.(mutationErrorForReport(mutationResult.error, 'Validation failed'));\n return;\n }\n throw mutationErrorForReport(mutationResult.error, 'Submit failed');\n }\n\n result = mutationResult.heldForApproval ?? mutationResult.responseData;\n } else {\n assertRMMAvailableForDefaultUpdateLikeMutation('ResourceAutomatedForm submit');\n const contextFieldNames = Object.keys(contextFieldValues);\n // Every explicit clear: the main submit writes the whole form (#2620).\n const sentBulkClears = writesBulkPatch ? liveBulkClears() : {};\n const requestBody = writesBulkPatch ? toBulkPatch(data, contextFieldNames, sentBulkClears) : data;\n /*\n * A literal bulk UPDATE that sets nothing would write nothing but a new version and `updatedAt` on every selected\n * row (and a stale-version refusal for anyone editing one) while reporting success. Its meaning IS its patch, so\n * an empty one is said, not sent. A VERB (an update-like custom operation) still runs on an empty patch: the verb\n * itself is what the person asked for, and its own logic may be all it writes.\n */\n const isLiteralUpdate = operationIdentifier === CoreResourceOperation.UPDATE || operationIdentifier === CoreResourceOperation.UPDATE_MANY;\n if (writesBulkPatch && isLiteralUpdate && Object.keys(requestBody).every((key) => contextFieldNames.includes(key))) {\n injectServerErrors({ [FORM_LEVEL_ERROR_PATH]: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'bulkNothingToChange') });\n return;\n }\n result = await doOperationRef.current(\n currentOperationTransportOverride.operationPathKey,\n {\n contextualParameters: currentOperationTransportOverride.contextualParameters,\n requestData: mergeRequestDataWithBulkSelection(requestBody),\n parentResourcesRequirements: currentOperationTransportOverride.parentResourcesRequirements,\n },\n // `silent`: this form owns the user-facing failure UX (the catch below\n // emits NOTIFY_RESOURCE_ERROR + injects inline field errors). Suppress the\n // GLOBAL error toast so a failed create/direct-mutation shows ONE toast,\n // matching the RMM update path (HttpTransportAdapter also passes silent).\n // Side-effects (auth-logout on 401, redirect, dedup) still run — `silent`\n // now suppresses only the global display, not the ERROR_OCCURED event.\n { silent: true },\n );\n consumeBulkClears(sentBulkClears);\n }\n\n logDebug('handleSubmit: success', { operationPathKey });\n\n if (tellHeldForApproval(result)) {\n // The request was made: the host moves on (a create goes back, as it does for an answer naming no record).\n onSuccessRef.current?.(result);\n return;\n }\n\n // Emit success notification event if configured\n const frontendNotification = getFrontendNotification(operation);\n if (frontendNotification) {\n const eventType = frontendNotification.level === UserNotificationLevel.WARNING\n ? FrontendEvents.NOTIFY_RESOURCE_WARNING\n : frontendNotification.level === UserNotificationLevel.ERROR\n ? FrontendEvents.NOTIFY_RESOURCE_ERROR\n : frontendNotification.level === UserNotificationLevel.INFO\n ? FrontendEvents.NOTIFY_RESOURCE_INFO\n : FrontendEvents.NOTIFY_RESOURCE_SUCCESS;\n\n emitRef.current(eventType, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForOutcome({\n contextResourceIdentifiers: resourceContext.contextResourceIdentifiers,\n resourceType,\n result,\n isBulkOperation: resourceContext.operation?.isBulkOperation === true,\n }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: toOperationResultSummary(result),\n additionalContext: {\n ...resourceContext.additionalContext,\n notificationIdentifier: frontendNotification.identifier,\n notificationLevel: frontendNotification.level,\n result,\n },\n });\n }\n\n const quickCreateRequest = resourceContext.additionalContext?.quickCreateRequest as { requestId?: string } | undefined;\n if (quickCreateRequest?.requestId && effectiveCoreOperation === CoreResourceOperation.CREATE) {\n const createdResourceId = resolveQuickCreateCreatedResourceId({\n result,\n resourceType,\n registry,\n });\n if (createdResourceId) {\n emitQuickCreateCompleted({\n emit: emitRef.current,\n requestId: quickCreateRequest.requestId,\n resourceType,\n resourceId: createdResourceId,\n data: typeof result === 'object' && result !== null && !Array.isArray(result)\n ? result as Record<string, unknown>\n : undefined,\n });\n }\n }\n\n onSuccessRef.current?.(result);\n } catch (error) {\n if (error instanceof MutationCancelledError) {\n return;\n }\n\n const err = error instanceof Error ? error : new Error(String(error));\n\n logDebug('handleSubmit: error caught', { message: err.message, operationPathKey });\n\n // Extract server-side validation errors (400/409 with field-level errors)\n const serverValidation = extractServerValidationErrors(error);\n\n if (serverValidation) {\n logDebug('handleSubmit: server validation errors detected', {\n httpStatus: serverValidation.httpStatus,\n fields: Object.keys(serverValidation.validationErrors),\n });\n injectServerErrors(serverValidation.validationErrors);\n } else {\n logDebug('handleSubmit: general error (not validation)', { message: err.message });\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_ERROR, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForTransport(\n resourceContext.contextResourceIdentifiers,\n ),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n additionalContext: {\n ...resourceContext.additionalContext,\n error: err.message,\n // Carry the backend error reference + status so the notification layer\n // can resolve a localized human message (tErrorMessage) instead of\n // falling back to the operation title. See NotificationContext.resolveMessage.\n ...describeResourceErrorForNotification(error),\n },\n });\n }\n\n onErrorRef.current?.(err);\n } finally {\n setIsSubmitting(false);\n }\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n contextFieldValues,\n currentOperationTransportOverride,\n injectServerErrors,\n mergeRequestDataWithBulkSelection,\n operationIdentifier,\n operationPathKey,\n contextualParameters,\n operation,\n resourceContext,\n rmm,\n tComponent,\n toBulkPatch,\n consumeBulkClears,\n liveBulkClears,\n writesBulkPatch,\n ]);\n\n // Handle validation errors (client-side, from RHF)\n const handleError = (errors: FieldErrors) => {\n logDebug('handleError: client-side validation failed', {\n errorCount: Object.keys(errors).length,\n fields: Object.keys(errors),\n });\n logger.warn('[ResourceAutomatedForm] Form validation errors', errors);\n // Audit D4: on a failed submit the errors render inline but the viewport\n // stays at the submit button — scroll the first errored field (DOM order)\n // into view and focus it. Server-side validation gets the same treatment\n // inside `injectServerErrors` (the single injection seam).\n scrollAndFocusFirstErroredField(collectErroredFieldPaths(errors));\n };\n\n // When defaultValuesOverride changes (e.g. after DISCOVER), reset form with merged values\n useEffect(() => {\n if (!defaultValuesOverride || !formMethodsRef.current) return;\n const merged = defaultValues\n ? seedFromRecord(defaultValues as Record<string, unknown>)\n : defaultValuesOverride;\n formMethodsRef.current.reset(merged);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- only run when override changes\n }, [defaultValuesOverride]);\n\n // Callback to receive form methods from AutomatedForm\n const handleFormReady = useCallback((formMethods: FormMethods) => {\n formMethodsRef.current = formMethods;\n initAutoClearing(formMethods);\n // When defaultValuesOverride is set (e.g. from DISCOVER), reset form with merged values\n if (defaultValuesOverride) {\n const merged = defaultValues\n ? seedFromRecord(defaultValues as Record<string, unknown>)\n : defaultValuesOverride;\n formMethods.reset(merged);\n }\n }, [initAutoClearing, defaultValuesOverride]);\n\n const validateAutosaveField = useCallback(async (fieldName: string): Promise<boolean> => {\n if (!formMethodsRef.current) {\n logDebug('validateAutosaveField: form methods unavailable, failing closed', { fieldName });\n return false;\n }\n return formMethodsRef.current.trigger(fieldName as any);\n }, []);\n\n // Autosave handler - saves a single field via PATCH\n // Uses abortSignal for proper cancellation handling\n const handleAutosave: AutosaveSaveHandler = useCallback(async (fieldName, value, abortSignal) => {\n assertRMMAvailableForDefaultUpdateLikeMutation('ResourceAutomatedForm autosave');\n\n // Helper to check abort and throw if aborted\n const checkAborted = () => {\n if (abortSignal.aborted) {\n throw new DOMException('Autosave aborted', 'AbortError');\n }\n };\n\n // Check if already aborted before starting\n checkAborted();\n\n /*\n * A composite child autosaves under its dotted path (`address.city`), and the body must be in the resource's own\n * shape: the WHOLE top-level field with the edit written into it. A flat dotted key is dropped by the strict\n * UPDATE parse with a 200, and a bare nested fragment would erase the siblings, because an UPDATE replaces a\n * nested object (#1395).\n *\n * On the RMM lane the RMM builds that body itself when it SENDS the mutation (`buildWireRequestData`), onto the\n * record as confirmed at that moment. This handler used to build it here, at QUEUE time, and hand it over as\n * `transportOverride.requestData`, which the RMM sends as given: an autosave queued behind an in-flight save of a\n * sibling (`address.street`) then re-sent the sibling's old value, and passed the version check. Only the direct\n * lane, which sends at once, builds the body here, from the record the form loaded.\n *\n * Both send the record's stored discriminator, which a polymorphic resource's partial UPDATE needs: the RMM adds the\n * one it has confirmed when it sends, and the direct lane adds the one the form loaded.\n *\n * A BULK update has no record to build onto (each selected row has its own): it writes the field by its path, a\n * nested child as `contact.city` (#2581), and nothing when the field holds what the form was seeded with.\n */\n // The explicit clears this field's write covers (#2620): a clear chosen on the field autosaves as its other changes do.\n const sentBulkClears = !rmm && writesBulkPatch ? bulkClearsWithin(liveBulkClears(), bulkWriteUnits([fieldName], formSchema)) : {};\n const bulkAutosavePatch = !rmm && writesBulkPatch\n ? toBulkPatch(\n pickSubmissionDataPaths(\n // The value this autosave validated, over the form's full values (a path into an array writes the array).\n withPathValue((formMethodsRef.current?.getValues() ?? {}) as Record<string, unknown>, fieldName, value),\n bulkWriteUnits([fieldName], formSchema),\n ),\n [],\n sentBulkClears,\n )\n : undefined;\n if (bulkAutosavePatch && Object.keys(bulkAutosavePatch).length === 0) return;\n const operationPromise = rmm\n ? rmm.queueMutation(\n // The RMM adds the stored discriminator when it sends (`resource-discriminators.frontend.utils.ts`).\n { [fieldName]: value },\n {\n type: MutationType.AUTOSAVE,\n priority: MutationPriority.LOW,\n transportOverride: currentOperationTransportOverride,\n },\n ).then((mutationResult) => {\n if (!mutationResult.success) {\n throw mutationResult.error ?? new Error('Autosave failed');\n }\n })\n : doOperationRef.current(currentOperationTransportOverride.operationPathKey, {\n contextualParameters: currentOperationTransportOverride.contextualParameters,\n requestData: mergeRequestDataWithBulkSelection(bulkAutosavePatch ?? carryStoredDiscriminators(\n buildInlineUpdateRequestData((formMethodsRef.current?.getValues() ?? null) as Record<string, unknown> | null, fieldName, value),\n discriminatorFieldNames,\n defaultValues as Record<string, unknown> | null | undefined,\n )),\n parentResourcesRequirements: currentOperationTransportOverride.parentResourcesRequirements,\n }, {\n signal: abortSignal,\n silent: true, // Don't show global error notifications for autosave\n });\n\n // Note: The Promise.race workaround below is kept as a fallback\n // in case the abort signal propagation through doOperation fails.\n // The native signal support (above) should handle most cases.\n\n // Create abort promise that rejects when signal is aborted\n const abortPromise = new Promise<never>((_, reject) => {\n if (abortSignal.aborted) {\n reject(new DOMException('Autosave aborted', 'AbortError'));\n return;\n }\n\n const abortHandler = () => {\n reject(new DOMException('Autosave aborted', 'AbortError'));\n };\n\n abortSignal.addEventListener('abort', abortHandler, { once: true });\n\n // Clean up listener when operation completes\n operationPromise.finally(() => {\n abortSignal.removeEventListener('abort', abortHandler);\n });\n });\n\n // Race between operation and abort - abort wins if signal triggers\n await Promise.race([operationPromise, abortPromise]);\n\n // Final abort check after operation completes\n checkAborted();\n consumeBulkClears(sentBulkClears);\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n defaultValues,\n discriminatorFieldNames,\n formSchema,\n mergeRequestDataWithBulkSelection,\n rmm,\n toBulkPatch,\n consumeBulkClears,\n liveBulkClears,\n writesBulkPatch,\n ]);\n\n /**\n * Saves the fields ONE section registered, and owns the whole outcome of that save.\n *\n * ## It is not the operation completing\n *\n * A host's `onSuccess` / `onError` mean \"the record is saved (or refused): announce it and move on\", and\n * `ResourceLayout_Update` navigates to the record. A section save called them too, so saving one section of a\n * multi-section form took the person off the page with the other sections unsaved, and announced the save twice.\n * Neither is called here: the form announces the section's outcome itself, once, and stays.\n *\n * ## Queued by field path, built when sent\n *\n * The RMM queues a partial write by FIELD PATH (`address.city`), as autosave does, and builds the request body when\n * it SENDS the mutation (`buildWireRequestData`), onto the record as it is confirmed at that moment. The section\n * used to queue a nested object with a body frozen at queue time, which went wrong twice: the body carried the\n * stored siblings of every nested parent as they were when the save was QUEUED, so a mutation confirmed in between\n * (an autosave of `address.street`) was overwritten by the older value and still passed the version check; and the\n * RMM reported the top-level key (`address`) as saved, so the write-back replaced the whole object from the server\n * and erased unsaved edits to its other children in another section.\n *\n * ## Failures\n *\n * A field-level refusal is shown at its fields (`injectServerErrors`, through the RMM event seam or directly on the\n * direct lane), with no toast. A refusal that names no field, and any other failure, raise ONE resource error\n * toast. A save cancelled on purpose (the main submit superseded it) says nothing. A caller-supplied handler that\n * throws is reported the same way instead of escaping as an unhandled rejection.\n */\n const handleSectionSave = useCallback(async (\n sectionRef: string,\n fieldNames: string[],\n data: Record<string, unknown>\n ) => {\n if (fieldNames.length === 0) {\n if (envLoader.isDevelopment()) {\n logger.warn('[ResourceAutomatedForm] Skipping section save because no fields were registered for the section.', {\n resourceType,\n sectionRef,\n });\n }\n return;\n }\n\n const sanitizedData = sanitizeAutomatedFormSubmissionData(pickSubmissionDataPaths(data, fieldNames), {\n hiddenFieldNames,\n contextFieldValues,\n omitClearedFields: omitClearedFieldsForSubmission,\n schema: formSchema,\n });\n\n try {\n // A caller-supplied handler owns the save (P9), but not an escaping rejection.\n if (onSectionSaveRef.current) {\n await onSectionSaveRef.current(sectionRef, fieldNames, sanitizedData);\n return;\n }\n\n let result: unknown;\n if (rmm) {\n // The RMM lane is single-record (`useResourceRMM` is enabled only with a `resourceId`), so there is no bulk\n // selection to merge into the body here; a bulk update takes the direct lane below.\n // The RMM adds the stored discriminator when it sends (`resource-discriminators.frontend.utils.ts`).\n const mutationResult = await rmm.queueMutation(sectionFieldsByPath(sanitizedData, fieldNames), {\n type: MutationType.SECTION,\n priority: MutationPriority.NORMAL,\n source: { type: MutationSourceType.FORM, subscriberId: `section:${sectionRef}` },\n transportOverride: currentOperationTransportOverride,\n });\n\n if (!mutationResult.success) {\n if (isConflictMutationFailure(mutationResult)) {\n return;\n }\n if (mutationResult.error?.type === MutationErrorType.VALIDATION && mutationErrorNamesFields(mutationResult.error)) {\n // Shown at the fields by the RMM event seam below.\n return;\n }\n throw mutationErrorForReport(mutationResult.error, 'Section save failed');\n }\n\n result = mutationResult.heldForApproval ?? mutationResult.responseData;\n } else {\n assertRMMAvailableForDefaultUpdateLikeMutation('ResourceAutomatedForm section save');\n let requestData: Record<string, unknown>;\n let sentBulkClears: Record<string, unknown> = {};\n if (writesBulkPatch) {\n // A BULK update has no stored siblings to carry (each selected row has its own): it writes each nested child\n // by its path, and only what the person changed (#2581). A path into an array or a value type is written as\n // that whole value, read from the form's full values (`bulkWriteUnits`).\n const contextFieldNames = Object.keys(contextFieldValues);\n // The explicit clears this section's fields carry (#2620); a clear on another section waits for its own save.\n sentBulkClears = bulkClearsWithin(liveBulkClears(), bulkWriteUnits(fieldNames, formSchema));\n // The full values carry each path whole, except a request field the operation offers (#2744 review N3): that one\n // takes what the form's offer filter let through (`data`), so a value the operation does not offer is not sent.\n const fullValues = { ...((formMethodsRef.current?.getValues() ?? data) as Record<string, unknown>) };\n for (const offeredField of Object.keys(operation.requestFieldOffers ?? {})) {\n if (offeredField in data) fullValues[offeredField] = (data as Record<string, unknown>)[offeredField];\n else delete fullValues[offeredField];\n }\n const patch = toBulkPatch(\n sanitizeAutomatedFormSubmissionData(\n pickSubmissionDataPaths(fullValues, bulkWriteUnits(fieldNames, formSchema)),\n { hiddenFieldNames, contextFieldValues, omitClearedFields: omitClearedFieldsForSubmission, schema: formSchema },\n ),\n contextFieldNames,\n sentBulkClears,\n );\n // Nothing set in the section: as for the main submit, a literal update says so instead of sending a write that\n // would only bump every row, while a VERB still runs (the verb is what was asked).\n const isLiteralUpdate = operationIdentifier === CoreResourceOperation.UPDATE || operationIdentifier === CoreResourceOperation.UPDATE_MANY;\n if (isLiteralUpdate && Object.keys(patch).every((key) => contextFieldNames.includes(key))) {\n injectServerErrors({ [FORM_LEVEL_ERROR_PATH]: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'bulkNothingToChange') });\n return;\n }\n requestData = mergeRequestDataWithBulkSelection(patch);\n } else {\n // A section may hold only SOME of a composite's children, and an UPDATE replaces the nested object whole, so\n // the body carries the stored siblings of every partially-written parent (#1410): here, the record the form\n // loaded. Sent at once, so it cannot go stale in a queue.\n const storedRecord = defaultValues as Record<string, unknown> | null | undefined;\n requestData = mergeRequestDataWithBulkSelection(carryStoredDiscriminators(\n carryStoredSiblingsIntoPartialWrites(sanitizedData, fieldNames, storedRecord),\n discriminatorFieldNames,\n storedRecord,\n ));\n }\n result = await doOperationRef.current(\n currentOperationTransportOverride.operationPathKey,\n {\n contextualParameters: currentOperationTransportOverride.contextualParameters,\n requestData,\n parentResourcesRequirements: currentOperationTransportOverride.parentResourcesRequirements,\n },\n // silent: the form owns the failure UX (the catch below), so the global toast is suppressed.\n { silent: true },\n );\n // No RMM event will write the saved values back, so the form marks them saved itself — unless nothing was saved.\n if (!readOperationApprovalPending(result)) markFieldsSaved(fieldNames, result, Object.fromEntries(fieldNames.map((field) => [field, readPathValue(sanitizedData, field)])));\n consumeBulkClears(sentBulkClears);\n }\n\n if (tellHeldForApproval(result)) return;\n // The rest of the screen hears about the write (a display of the row re-reads it, a listing refreshes, a\n // background run is recorded), as after the main submit. Announced as PARTIAL: the form stays open over the same\n // records, so nothing reads it as the operation being done.\n announceOutcome(result, { partialWrite: true });\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_SUCCESS, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForOutcome({\n contextResourceIdentifiers: resourceContext.contextResourceIdentifiers,\n resourceType,\n result,\n isBulkOperation: resourceContext.operation?.isBulkOperation === true,\n }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: toOperationResultSummary(result),\n additionalContext: {\n ...resourceContext.additionalContext,\n sectionRef,\n fieldNames,\n notificationIdentifier: 'section_saved',\n notificationLevel: UserNotificationLevel.SUCCESS,\n },\n });\n } catch (error) {\n if (error instanceof MutationCancelledError) {\n return;\n }\n const serverValidation = extractServerValidationErrors(error);\n if (serverValidation) {\n injectServerErrors(serverValidation.validationErrors);\n return;\n }\n const err = error instanceof Error ? error : new Error(String(error));\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_ERROR, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForTransport(\n resourceContext.contextResourceIdentifiers,\n ),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n additionalContext: {\n ...resourceContext.additionalContext,\n sectionRef,\n error: err.message,\n ...describeResourceErrorForNotification(error),\n },\n });\n }\n }, [\n announceOutcome,\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n contextFieldValues,\n defaultValues,\n discriminatorFieldNames,\n formSchema,\n hiddenFieldNames,\n injectServerErrors,\n markFieldsSaved,\n mergeRequestDataWithBulkSelection,\n omitClearedFieldsForSubmission,\n operationIdentifier,\n resourceContext,\n resourceType,\n rmm,\n tComponent,\n toBulkPatch,\n consumeBulkClears,\n liveBulkClears,\n writesBulkPatch,\n ]);\n\n // Autosave config for the provider\n /**\n * DERIVED when the caller passes none: a field that declares `edit.autosave` autosaves, and\n * nothing else changes.\n *\n * Until 2026-09-08 `edit.autosave` was inert on every generated form (#449). The provider mounts\n * only when a caller passes `autosaveConfig`, and no engine layout and neither dogfood application\n * passed one — so the decorator was authored, typed and read by `FormField`, which then resolved a\n * null context every time. The only live provider anywhere was the read-side inline array editor.\n *\n * **Why no layout could simply turn it on, which is the part worth knowing.** An undeclared field\n * does not opt out: `resolveAutosaveTrigger` returns the CONTEXT DEFAULT for a field with no\n * config, and that default was `DEBOUNCE`. So enabling the provider for the one field that asked\n * made every OTHER field in the form autosave too — turning a field-level declaration into a\n * form-wide behaviour change. That is a much larger promise than the decorator makes, and it is\n * the reason this stayed off rather than an oversight.\n *\n * So the derivation passes `defaultTrigger: NONE`. Undeclared fields resolve to NONE, which\n * `triggerSave` skips outright, and only a declaring field saves. A form where no field declares\n * autosave never mounts the provider at all, so **no application changes behaviour unless a field\n * asked for it** — which is what makes this safe to enable by default rather than a product\n * decision about writing data differently.\n *\n * UPDATE only. Autosave PATCHes an existing row; on a CREATE there is nothing to patch, and a\n * per-field save before the record exists is a different feature (drafts) with its own surface.\n *\n * An explicit caller-supplied `autosaveConfig` still wins, unchanged — including its own\n * `defaultTrigger`, so a caller that genuinely wants form-wide autosave can still ask for it — but only where the\n * form writes fields of records that EXIST (the same rule as a section's Save). Elsewhere it is dropped: with no\n * record, autosave's direct lane sent the form's own operation, so on a create form every autosaved field CREATED a\n * record, and on a verb that is not update-like it ran the action once per field.\n */\n const derivedAutosaveEnabled = useMemo(\n // `effectiveFormOperationType`, not `operationType`: a CUSTOM operation declaring\n // `resourceOperationLike: UPDATE` (a `rotate`, say) edits an existing row and autosaves on the\n // same terms. That variable is the one the rest of the form filters fields by.\n () => autosaveConfig === undefined && deriveAutosaveEnabledFromFields(formFieldShape, effectiveFormOperationType),\n [autosaveConfig, effectiveFormOperationType, formFieldShape],\n );\n\n // #2288: an operation held for approval never autosaves: each debounced field would file its own request for an\n // approver to answer. The person saves deliberately, and the whole change is one request.\n const autosaveWritesRecordFields = isUpdateLikeCoreOperation(effectiveCoreOperation) && operation.requiresApproval === undefined;\n const autosaveRequestedHere = autosaveConfig?.enabled === true;\n useEffect(() => {\n if (!autosaveRequestedHere || autosaveWritesRecordFields || !envLoader.isDevelopment()) return;\n logger.warn('[ResourceAutomatedForm] autosaveConfig is ignored: autosave saves fields of records that exist, and this form creates one or runs an action.', {\n resourceType,\n operationIdentifier,\n });\n }, [autosaveWritesRecordFields, autosaveRequestedHere, operationIdentifier, resourceType]);\n const autosaveProviderConfig: AutosaveConfig = useMemo(() => ({\n enabled: autosaveWritesRecordFields && (autosaveConfig?.enabled ?? derivedAutosaveEnabled),\n defaultTrigger: autosaveConfig?.defaultTrigger ?? (derivedAutosaveEnabled ? AutosaveTrigger.NONE : AutosaveTrigger.DEBOUNCE),\n debounceMs: autosaveConfig?.debounceMs ?? 500,\n savedStateDurationMs: 2000,\n }), [autosaveConfig, autosaveWritesRecordFields, derivedAutosaveEnabled]);\n\n // Draft-relaxed schema for draft saves (makes isDraftRelaxed fields optional)\n const draftSchema = useMemo(() => {\n if (!formSchema || !effectiveDraftConfig?.enabled) return null;\n try {\n // Map operationType to FormSchemaOperationType (CREATE/UPDATE/READ)\n const formOperationType: FormSchemaOperationType =\n operationType === CoreResourceOperation.CREATE ? 'CREATE' :\n isUpdateLikeCoreOperation(operationType as CoreResourceOperation) ? 'UPDATE' : 'CREATE';\n const formOperationLike: FormSchemaOperationType | undefined =\n operationLike === CoreResourceOperation.CREATE ? 'CREATE' :\n (operationLike && isUpdateLikeCoreOperation(operationLike as CoreResourceOperation)) ? 'UPDATE' :\n operationLike === CoreResourceOperation.READ ? 'READ' : undefined;\n\n return prepareFormSchema(formSchema as any, {\n operationType: formOperationType,\n operationLike: formOperationLike,\n isDraftMode: true,\n });\n } catch {\n // If schema preparation fails, fall back to null (no draft support)\n return null;\n }\n }, [formSchema, effectiveDraftConfig?.enabled, operationType, operationLike]);\n\n // Handle saving as draft\n const handleSaveDraft = useCallback(async (data: any) => {\n if (!effectiveDraftConfig?.enabled) return;\n\n cancelPendingAutosavesRef.current?.();\n setIsSavingDraft(true);\n clearServerErrors();\n\n try {\n let result: unknown;\n let shouldEmitFrameworkSuccess = true;\n if (effectiveDraftConfig?.onSaveDraft) {\n result = await effectiveDraftConfig.onSaveDraft(data);\n shouldEmitFrameworkSuccess = result !== undefined;\n } else {\n const discriminator = effectiveDraftConfig?.discriminator || '_isDraft';\n const draftValue = effectiveDraftConfig?.draftValue ?? true;\n const draftData = { ...data, [discriminator]: draftValue };\n\n if (rmm) {\n const mutationResult = await rmm.queueMutation(draftData, {\n type: MutationType.DRAFT,\n priority: MutationPriority.HIGH,\n source: { type: MutationSourceType.FORM, subscriberId: 'draft' },\n transportOverride: {\n ...currentOperationTransportOverride,\n requestData: draftData,\n },\n });\n if (!mutationResult.success) {\n if (isConflictMutationFailure(mutationResult)) {\n return;\n }\n throw mutationErrorForReport(mutationResult.error, 'Draft save failed');\n }\n result = mutationResult.heldForApproval ?? mutationResult.responseData;\n } else {\n assertRMMAvailableForDefaultUpdateLikeMutation('ResourceAutomatedForm draft save');\n result = await doOperationRef.current(\n currentOperationTransportOverride.operationPathKey,\n {\n contextualParameters: currentOperationTransportOverride.contextualParameters,\n requestData: mergeRequestDataWithBulkSelection(draftData),\n parentResourcesRequirements: currentOperationTransportOverride.parentResourcesRequirements,\n },\n // silent: form owns the failure UX (catch emits NOTIFY_RESOURCE_ERROR).\n { silent: true },\n );\n }\n }\n\n if (tellHeldForApproval(result)) {\n onSuccessRef.current?.(result);\n return;\n }\n setIsDraft(true);\n\n if (shouldEmitFrameworkSuccess) {\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_SUCCESS, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForOutcome({\n contextResourceIdentifiers: resourceContext.contextResourceIdentifiers,\n resourceType,\n result,\n isBulkOperation: resourceContext.operation?.isBulkOperation === true,\n }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: toOperationResultSummary(result),\n additionalContext: {\n ...resourceContext.additionalContext,\n notificationIdentifier: 'draftSaved',\n },\n });\n\n onSuccessRef.current?.(result);\n }\n } catch (error) {\n if (error instanceof MutationCancelledError) {\n return;\n }\n\n const serverValidation = extractServerValidationErrors(error);\n\n if (serverValidation) {\n injectServerErrors(serverValidation.validationErrors);\n } else {\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_ERROR, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForTransport(\n resourceContext.contextResourceIdentifiers,\n ),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n additionalContext: {\n ...resourceContext.additionalContext,\n notificationIdentifier: 'draftSaveFailed',\n // Fallback if the 'draftSaveFailed' label is absent: resolveMessage then\n // degrades to the localized backend error rather than the generic default.\n ...describeResourceErrorForNotification(error),\n },\n });\n }\n onErrorRef.current?.(error as Error);\n } finally {\n setIsSavingDraft(false);\n }\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n effectiveDraftConfig,\n mergeRequestDataWithBulkSelection,\n resourceContext,\n resourceType,\n injectServerErrors,\n rmm,\n ]);\n\n // Handle publishing (full validation, called after confirmation if needed)\n const executePublish = useCallback(async (data: any) => {\n if (!effectiveDraftConfig?.enabled) return;\n\n cancelPendingAutosavesRef.current?.();\n setIsSubmitting(true);\n clearServerErrors();\n\n try {\n let result: unknown;\n let shouldEmitFrameworkSuccess = true;\n if (effectiveDraftConfig?.onPublish) {\n result = await effectiveDraftConfig.onPublish(data);\n shouldEmitFrameworkSuccess = result !== undefined;\n } else {\n const discriminator = effectiveDraftConfig?.discriminator || '_isDraft';\n const publishedValue = effectiveDraftConfig?.publishedValue ?? false;\n const publishData = { ...data, [discriminator]: publishedValue };\n\n if (rmm) {\n const mutationResult = await rmm.queueMutation(publishData, {\n type: MutationType.PUBLISH,\n priority: MutationPriority.HIGH,\n source: { type: MutationSourceType.FORM, subscriberId: 'publish' },\n transportOverride: {\n ...currentOperationTransportOverride,\n requestData: publishData,\n },\n });\n if (!mutationResult.success) {\n if (isConflictMutationFailure(mutationResult)) {\n return;\n }\n throw mutationErrorForReport(mutationResult.error, 'Publish failed');\n }\n result = mutationResult.heldForApproval ?? mutationResult.responseData;\n } else {\n assertRMMAvailableForDefaultUpdateLikeMutation('ResourceAutomatedForm publish');\n result = await doOperationRef.current(\n currentOperationTransportOverride.operationPathKey,\n {\n contextualParameters: currentOperationTransportOverride.contextualParameters,\n requestData: mergeRequestDataWithBulkSelection(publishData),\n parentResourcesRequirements: currentOperationTransportOverride.parentResourcesRequirements,\n },\n // silent: form owns the failure UX (catch emits NOTIFY_RESOURCE_ERROR).\n { silent: true },\n );\n }\n }\n\n if (tellHeldForApproval(result)) {\n onSuccessRef.current?.(result);\n return;\n }\n setIsDraft(false);\n\n if (shouldEmitFrameworkSuccess) {\n const frontendNotification = getFrontendNotification(operation);\n if (frontendNotification) {\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_SUCCESS, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForOutcome({\n contextResourceIdentifiers: resourceContext.contextResourceIdentifiers,\n resourceType,\n result,\n isBulkOperation: resourceContext.operation?.isBulkOperation === true,\n }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: toOperationResultSummary(result),\n additionalContext: {\n ...resourceContext.additionalContext,\n notificationIdentifier: frontendNotification.identifier,\n },\n });\n }\n\n onSuccessRef.current?.(result);\n }\n } catch (error) {\n if (error instanceof MutationCancelledError) {\n return;\n }\n\n const serverValidation = extractServerValidationErrors(error);\n\n if (serverValidation) {\n injectServerErrors(serverValidation.validationErrors);\n } else {\n emitRef.current(FrontendEvents.NOTIFY_RESOURCE_ERROR, {\n ...resourceContext,\n contextResourceIdentifiers: normalizeContextResourceIdentifiersForTransport(\n resourceContext.contextResourceIdentifiers,\n ),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n additionalContext: {\n ...resourceContext.additionalContext,\n notificationIdentifier: 'publishFailed',\n // Fallback if the 'publishFailed' label is absent: resolveMessage then\n // degrades to the localized backend error rather than the generic default.\n ...describeResourceErrorForNotification(error),\n },\n });\n }\n onErrorRef.current?.(error as Error);\n } finally {\n setIsSubmitting(false);\n }\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n effectiveDraftConfig,\n mergeRequestDataWithBulkSelection,\n resourceContext,\n resourceType,\n operation,\n injectServerErrors,\n rmm,\n ]);\n\n // Public handlePublish that checks for confirmation requirement\n const handlePublish = useCallback(async (data: any) => {\n if (!effectiveDraftConfig?.enabled) return;\n\n // Check if confirmation is required\n const requireConfirmation = effectiveDraftConfig?.requireConfirmationToPublish;\n if (requireConfirmation) {\n // Store data and show confirmation dialog\n setPendingPublish(data);\n return;\n }\n\n // No confirmation needed, execute directly\n await executePublish(data);\n }, [effectiveDraftConfig, executePublish]);\n\n // Handler for confirmation dialog confirm action\n const handleConfirmPublish = useCallback(async () => {\n if (!pendingPublish) return;\n\n await executePublish(pendingPublish);\n setPendingPublish(null);\n }, [pendingPublish, executePublish]);\n\n // Handler for confirmation dialog cancel action\n const handleCancelPublish = useCallback(() => {\n setPendingPublish(null);\n }, []);\n\n // ── Risk confirmation on form submit (#2261) ─────────────────────────────\n // An operation whose risk level asks for a confirmation (`isRiskyResourceOperation`: HIGH and\n // CRITICAL) asks for it whether it executes from the action ladder or from this form. The action\n // ladder confirms only the operations it executes DIRECTLY; one that collects input is handed to\n // this form instead, so this is where its confirmation must live. It used to gate CRITICAL alone, so\n // every HIGH verb with a request form — revoking an invitation, with its optional reason — was sent\n // the moment Submit was pressed. HIGH gets the plain confirm the ladder gives it, CRITICAL the typed\n // double-validation. Both submit lanes go through it: the ordinary submit and a draft's publish.\n const requiresSubmitConfirmation = isRiskyResourceOperation(operation.riskLevel);\n const requiresTypedSubmitConfirmation = operation.riskLevel === ResourceOperationRiskLevel.CRITICAL;\n // The consequence line, as the action ladder states it: \"cannot be undone\" only when that is true\n // (the confirm's generic line says exactly that), and no line at all for an action that can be undone.\n const riskySubmitConsequence = isIrreversibleOperation(operation) ? undefined : null;\n // The operation's own words, when it authors them (`resources.<r>.operations.<op>.description`, declared by\n // `hasDescription`): the same words the danger zone shows beside the action, stated BEFORE the consequence\n // line rather than instead of it. Deactivating your own account is reversible, but not by you, and only that\n // sentence says so. `tResourceOperation` answers '' for a description nobody authored.\n const operationOwnDescription = tResourceOperation(resourceType, String(operation.operationIdentifier), 'description') || undefined;\n // The operation's own name, resolved exactly as the action bar names it — so the phrase to type, and a\n // named action's submit button, are the label the person clicked.\n const operationDisplayTitle = useMemo(\n () => resolveOperationDisplayTitle(tResourceOperation, resourceType, String(operation.operationIdentifier)),\n [tResourceOperation, resourceType, operation.operationIdentifier],\n );\n\n // The submit this form performs once any confirmation is given: a draft-enabled form publishes, every\n // other form submits.\n const isDraftPublishLane = Boolean(effectiveDraftConfig?.enabled && draftSchema);\n const performConfirmedSubmit = useCallback((data: any) => {\n if (isDraftPublishLane) void handlePublish(data);\n else void handleSubmit(data);\n }, [isDraftPublishLane, handlePublish, handleSubmit]);\n\n const handleSubmitWithRiskConfirmation = useCallback((data: any) => {\n if (requiresSubmitConfirmation) {\n setPendingRiskySubmit(data);\n return;\n }\n performConfirmedSubmit(data);\n }, [requiresSubmitConfirmation, performConfirmedSubmit]);\n\n const handleConfirmRiskySubmit = useCallback(() => {\n const data = pendingRiskySubmit;\n setPendingRiskySubmit(null);\n if (data !== null) performConfirmedSubmit(data);\n }, [pendingRiskySubmit, performConfirmedSubmit]);\n\n const handleCancelRiskySubmit = useCallback(() => {\n setPendingRiskySubmit(null);\n }, []);\n\n // Build default submit button if not provided\n // When draft mode is enabled, show \"Save as Draft\" and \"Publish\" buttons\n const resolvedSubmitButton = useMemo((): React.ReactNode => {\n // A named action submits under its own name (\"Reset to defaults\", \"Change status\"), the words the\n // person clicked to open it. Only the core operations use the generic words: an update-like action\n // resolves to UPDATE, and its button used to read \"Save changes\", which says nothing about what it does.\n const label = isLiteralCoreResourceOperation(operationIdentifier)\n ? tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, getDefaultSubmitLabelKey(effectiveCoreOperation ?? operationIdentifier))\n : operationDisplayTitle;\n const submittingLabel = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'submitting');\n\n if (effectiveDraftConfig?.enabled && draftSchema) {\n const publishLabel = effectiveDraftConfig?.publishLabel\n ? tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, effectiveDraftConfig.publishLabel)\n : tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'publish');\n const publishingLabel = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'publishing');\n\n return (\n <Button type=\"submit\" disabled={isSubmitting || isSavingDraft || disabled}>\n {isSubmitting ? publishingLabel : publishLabel}\n </Button>\n );\n }\n\n return (\n <Button type=\"submit\" disabled={isSubmitting || disabled}>\n {isSubmitting ? submittingLabel : label}\n </Button>\n );\n }, [effectiveCoreOperation, operationIdentifier, operationDisplayTitle, isSubmitting, isSavingDraft, disabled, tComponent, effectiveDraftConfig, draftSchema]);\n\n // Secondary Cancel button (audit D5) — rendered only when the host supplies\n // `onCancel` (overlay-hosted forms pass the same close path as the X button).\n // `type=\"button\"` so it can never trigger the surrounding form's submit.\n const cancelButton = useMemo((): React.ReactNode => {\n if (!onCancel) return null;\n const cancelLabel = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'cancel');\n return (\n <Button type=\"button\" variant={ButtonVariants_Variant.OUTLINE} disabled={isSubmitting || isSavingDraft} onClick={onCancel}>\n {cancelLabel}\n </Button>\n );\n }, [onCancel, isSubmitting, isSavingDraft, tComponent]);\n\n const draftSaveButton = useMemo((): React.ReactNode => {\n if (!effectiveDraftConfig?.enabled || !draftSchema) return null;\n\n const saveDraftLabel = effectiveDraftConfig?.saveDraftLabel\n ? tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, effectiveDraftConfig.saveDraftLabel)\n : tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'saveAsDraft');\n const savingDraftLabel = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'savingDraft');\n\n return (\n <DraftSaveButton\n draftSchema={draftSchema}\n omitClearedFields={omitClearedFieldsForSubmission}\n submissionSchema={formSchema}\n onSaveDraft={handleSaveDraft}\n disabled={isSavingDraft || isSubmitting || disabled}\n isSavingDraft={isSavingDraft}\n label={saveDraftLabel}\n savingLabel={savingDraftLabel}\n />\n );\n }, [effectiveDraftConfig, draftSchema, handleSaveDraft, isSavingDraft, isSubmitting, disabled, tComponent]);\n\n /**\n * Context value for injecting resource-level form actions (submit button, draft button)\n * into the generated template. The template wrapper reads from this context so that\n * reactive state (isSubmitting, isSavingDraft) triggers re-renders without remounting\n * the template component tree.\n */\n // i18n labels for conflict banner (reason-differentiated copy). Computed here,\n // BEFORE the `if (!isReady) return null` gate below, so the `useMemo` hooks that\n // depend on it never sit after an early return (stable hook order).\n const conflictLabels = conflictBanner ? {\n title: tComponent(\n FrontendComponentType.RESOURCES_LAYOUTS_CREATE,\n conflictBanner.reason === ConflictReason.VERSION_CONFLICT ? 'conflictTitleVersion' : 'conflictTitleRemote',\n ),\n message: tComponent(\n FrontendComponentType.RESOURCES_LAYOUTS_CREATE,\n conflictBanner.reason === ConflictReason.VERSION_CONFLICT ? 'conflictMessageVersion' : 'conflictMessageRemote',\n ),\n acknowledgeButton: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'conflictAcknowledge'),\n currentValue: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'conflictCurrentValue'),\n submittedValue: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'conflictSubmittedValue'),\n emptyValue: tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD, 'noValue'),\n } : undefined;\n\n // The version-conflict banner is a SUBMISSION outcome → rendered in the actions\n // footer (above the submit row) via `submissionNotice`, not at the top of the form.\n const conflictNotice = useMemo<React.ReactNode>(() => {\n if (!conflictBanner || !conflictLabels) return null;\n return (\n <RemoteChangeNotification\n type=\"conflict\"\n discardedFields={conflictBanner.discardedFields}\n conflictDetails={conflictBanner.conflictDetails}\n labels={conflictLabels}\n onDismiss={handleAcknowledgeConflict}\n />\n );\n }, [conflictBanner, conflictLabels, handleAcknowledgeConflict]);\n\n // How many templates hold the footer (see `ResourceFormActionsValue.claimFooter`). A count, not a flag, so a\n // remount that claims before the previous instance released cannot leave the footer shown twice or not at all.\n const [footerClaimCount, setFooterClaimCount] = useState(0);\n const claimFooter = useCallback(() => {\n setFooterClaimCount((count) => count + 1);\n return () => setFooterClaimCount((count) => count - 1);\n }, []);\n\n const formActionsValue = useMemo((): ResourceFormActionsValue => ({\n submitButton: resolvedSubmitButton,\n draftSaveButton,\n cancelButton,\n submissionNotice: conflictNotice,\n claimFooter,\n footerClaimed: footerClaimCount > 0,\n }), [resolvedSubmitButton, draftSaveButton, cancelButton, conflictNotice, claimFooter, footerClaimCount]);\n\n const loadingOperationIdentifier = useMemo(() => {\n if (!needsFetch) {\n return undefined;\n }\n\n return String(\n canonicalReadOperation?.operationIdentifier\n ?? FrontendResourceUtils.resolveSingleResourceReadOperation(resourceType, registry)?.operationIdentifier\n ?? CoreResourceOperation.READ,\n );\n }, [canonicalReadOperation, needsFetch, resourceType, registry]);\n\n // LoadingGate scopes for data fetch (UPDATE-like operations only)\n const loadingScopes = useMemo(() => {\n if (!needsFetch || !loadingOperationIdentifier) return [];\n return [{ resourceType, operation: loadingOperationIdentifier }];\n }, [needsFetch, resourceType, loadingOperationIdentifier]);\n\n const i18nKeys = useMemo(() => [\n `components.${FrontendComponentType.RESOURCES_LAYOUTS_CREATE}`,\n ], []);\n\n const readiness = useMemo(() => {\n if (!needsFetch) return [];\n return [{ id: 'form-data', isReady: hasLoadedOnce }];\n }, [needsFetch, hasLoadedOnce]);\n\n const autosaveLabels = useMemo<AutosaveProviderLabels>(() => ({\n errorNetwork: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'autosaveErrorNetwork'),\n errorValidation: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'autosaveErrorValidation'),\n errorGeneric: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'autosaveErrorGeneric'),\n errorConflict: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'autosaveErrorConflict'),\n errorResourceDeleted: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'autosaveErrorResourceDeleted'),\n }), [tComponent]);\n\n // Generate a default form layout template. Memoized on schema + config\n // to ensure stable component identity (prevents form tree remount / state loss).\n // The wrapper appends resource-level actions (submit + draft buttons) by\n // reading from ResourceFormActionsContext, so the template identity stays\n // stable while the reactive button content updates via context.\n const layoutTemplate = useMemo(() => {\n if (!formSchema) {\n return null;\n }\n\n if (explicitEditTemplate) {\n const ExplicitTemplate = explicitEditTemplate;\n // A custom operation keeps the template only because its request is made of resource fields; a\n // field the template leaves out would still have no control, so it is appended. A core operation's\n // template is the author's complete decision, and is rendered as authored.\n const requestFieldNames = isLiteralCoreResourceOperation(operation.operationIdentifier)\n ? null\n : extractSchemaFieldList(formSchema, inheritanceConfig?.discriminatorField).map((field) => field.name);\n const ResourceFormTemplate: React.FC = () => (\n <>\n {requestFieldNames\n ? <AuthoredTemplateWithUnplacedRequestFields Template={ExplicitTemplate} requestFieldNames={requestFieldNames} />\n : <ExplicitTemplate />}\n <HostFormActionsFooter />\n </>\n );\n ResourceFormTemplate.displayName = 'ResourceFormTemplate(explicit)';\n return ResourceFormTemplate;\n }\n\n const BaseTemplate = generateDefaultFormTemplate(formSchema, {\n inheritanceConfig,\n includeSubmitButton: false,\n includeErrorSummary: showErrorSummary,\n });\n\n const ResourceFormTemplate: React.FC = () => (\n <>\n <BaseTemplate />\n <HostFormActionsFooter />\n </>\n );\n ResourceFormTemplate.displayName = 'ResourceFormTemplate';\n return ResourceFormTemplate;\n }, [explicitEditTemplate, formSchema, inheritanceConfig, showErrorSummary, operation.operationIdentifier]);\n\n if (!isReady) return null;\n\n // Error state if fetch failed\n if (fetchError) {\n const errorTitle = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'failedToLoadData');\n\n return (\n <div className={className}>\n <div className=\"p-card bg-destructive/10 border border-destructive rounded-lg\" role=\"alert\">\n <p className=\"text-destructive font-medium\">{errorTitle}</p>\n {/* Localized text only — never `context.originalErrorMessage` or the raw reference (#1160). */}\n <p className=\"text-sm text-destructive/80 mt-item-xs\">{fetchError.message}</p>\n </div>\n </div>\n );\n }\n\n // EA: the operation is no longer available for THIS record (its\n // `enabledCondition` is unmet now that the real object is loaded — e.g. a\n // deep-link to `change_status` on an already-completed todo). Render a neutral\n // unavailable notice instead of a form the backend would reject. Only fires\n // for existing-resource ops after load and after async evaluation settles.\n if (needsFetch && hasLoadedOnce && !operationAvailability.isLoading && !operationAvailability.isEnabled) {\n const unavailableTitle = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'operationUnavailableTitle');\n const unavailableMessage = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'operationUnavailableMessage');\n return (\n <div className={className}>\n <div className=\"p-card bg-muted/50 border border-border rounded-lg\" role=\"status\">\n <p className=\"font-medium text-foreground\">{unavailableTitle}</p>\n <p className=\"text-sm text-muted-foreground mt-item-xs\">{unavailableMessage}</p>\n </div>\n </div>\n );\n }\n\n // For UPDATE operations, LoadingGate readiness owns the \"wait for fetched\n // defaults\" PRESENTATION. Avoid early returns here so the hook graph stays\n // stable between the initial loading render and the later loaded render.\n // UPDATE-like: defaults come from the fetched record. LoadingGate does NOT\n // hold the form back until then — it keeps its children mounted under its\n // overlay — and RHF reads defaults only at mount, so the form is keyed by\n // `defaultValuesSource` and remounts once the record arrives. CREATE: use the\n // synchronous discriminator seed so RHF initializes with it on the very\n // first render (see createSeededDefaultValues).\n const effectiveDefaultValues = needsFetch\n ? (recordSeededDefaultValues ?? defaultValuesOverride)\n : (createSeededDefaultValues ?? defaultValuesOverride);\n\n // Guard against missing schema\n if (!formSchema) {\n const configErrorTitle = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'configurationError');\n const noSchemaMsg = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'noSchemaFound', {\n operation: operationIdentifier,\n resource: resourceType,\n });\n\n return (\n <div className={className}>\n <div className=\"p-card bg-destructive/10 border border-destructive rounded-lg\" role=\"alert\">\n <p className=\"text-destructive font-medium\">{configErrorTitle}</p>\n <p className=\"text-sm text-destructive/80 mt-item-xs\">{noSchemaMsg}</p>\n </div>\n </div>\n );\n }\n\n // i18n labels for confirmation dialog\n const confirmPublishTitle = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'confirmPublishTitle');\n const confirmPublishMessage = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'confirmPublishMessage');\n const confirmPublishCancel = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'cancel');\n const confirmPublishConfirm = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'publish');\n\n // i18n labels for remote update indicator\n const remoteUpdateLabels = remoteUpdateIndicator ? {\n message: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'remoteUpdateMessage'),\n dismissAriaLabel: tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, 'dismiss'),\n } : undefined;\n\n // Form content that may or may not be wrapped with AutosaveProvider\n const formContent = (\n <LoadingGate i18nKeys={i18nKeys} loadingScopes={loadingScopes} readiness={readiness}>\n <div className={className}>\n {/* Confirmation dialog for publishing */}\n <AlertDialog open={!!pendingPublish} onOpenChange={(open) => !open && handleCancelPublish()}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{confirmPublishTitle}</AlertDialogTitle>\n <AlertDialogDescription>{confirmPublishMessage}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel onClick={handleCancelPublish}>{confirmPublishCancel}</AlertDialogCancel>\n <AlertDialogAction onClick={handleConfirmPublish}>{confirmPublishConfirm}</AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n\n {/* HIGH/CRITICAL: hold the submit until it is confirmed (CRITICAL: by typing the action label). */}\n {pendingRiskySubmit !== null && (\n <OperationsConfirmCritical\n open\n onOpenChange={(open) => { if (!open) handleCancelRiskySubmit(); }}\n cancelCallback={handleCancelRiskySubmit}\n validationCallback={handleConfirmRiskySubmit}\n label={operationDisplayTitle}\n confirmLabel={operationDisplayTitle}\n description={riskySubmitConsequence}\n detail={operationOwnDescription}\n requireTypedConfirmation={requiresTypedSubmitConfirmation}\n confirmationPhrase={requiresTypedSubmitConfirmation ? operationDisplayTitle : ''}\n />\n )}\n\n {/* The conflict banner now renders in the actions footer (near Submit) via\n `formActionsValue.submissionNotice` — a submission outcome belongs next to\n the button that produced it. Only the ambient remote-update indicator stays\n at the top of the form. */}\n {remoteUpdateIndicator && remoteUpdateLabels && (\n <RemoteChangeNotification\n type=\"remote-update\"\n changedFields={remoteUpdateIndicator.changedFields}\n labels={remoteUpdateLabels}\n onDismiss={() => setRemoteUpdateIndicator(null)}\n />\n )}\n <BulkFieldClearContext.Provider value={bulkFieldClearing}>\n <ResourceFormActionsProvider value={formActionsValue}>\n <AutomatedForm\n key={defaultValuesSource}\n schema={formSchema}\n defaultValues={effectiveDefaultValues}\n onSubmit={handleSubmitWithRiskConfirmation}\n onError={handleError}\n validationMode={validationMode}\n disabled={disabled || isSubmitting}\n labels={labels}\n layoutRefs={layoutRefs}\n operationRef={operationIdentifier}\n operationType={operationType}\n operationLike={operationLike}\n coreOperation={effectiveCoreOperation}\n fileUploadContext={fileUploadContext}\n contextFieldValues={contextFieldValues}\n hiddenFieldNames={hiddenFieldNames}\n generatedFieldOverrides={generatedFieldOverrides}\n allowedValuesByField={allowedValuesByField}\n // #2744: what each request field offers, judged against the row an operation on a record acts on.\n requestFieldOffers={operation.requestFieldOffers}\n requestFieldOfferRecord={needsFetch ? (defaultValues as Record<string, unknown> | undefined) : undefined}\n inheritanceConfig={inheritanceConfig}\n // A section Save only where the form writes fields of records that exist (see `formOffersSectionSave`).\n onSectionSave={\n formOffersSectionSave({\n writesRecordFields: isUpdateLikeCoreOperation(effectiveCoreOperation),\n hasCallerSectionHandler: onSectionSaveProp !== undefined,\n })\n ? handleSectionSave\n : undefined\n }\n onFormReady={handleFormReady}\n // Closing the tab or reloading with unsaved edits asks first: a form that edits or creates a record holds\n // work only the page has. Saved fields stop being dirty (`markFieldsSaved`), so a saved form does not ask.\n warnOnUnsavedChanges\n validateFieldUrl={validateFieldUrl}\n resourceId={primaryResourceId}\n contextResourceIdentifiers={contextResourceIdentifiersWithResourceId}\n parentResourcesRequirements={resourceContext.parentResourcesRequirements}\n navigationZone={navigationZone}\n chromeMode={defaultEditChromeMode}\n layoutTemplate={layoutTemplate}\n />\n </ResourceFormActionsProvider>\n </BulkFieldClearContext.Provider>\n </div>\n </LoadingGate>\n );\n\n // Wrap with AutosaveProvider if autosave is enabled\n if (autosaveProviderConfig.enabled) {\n return (\n <AutosaveProvider\n labels={autosaveLabels}\n validateField={validateAutosaveField}\n onSave={handleAutosave}\n rmm={rmm ?? undefined}\n config={autosaveProviderConfig}\n >\n <AutosaveCancelBridge cancelRef={cancelPendingAutosavesRef} />\n {formContent}\n </AutosaveProvider>\n );\n }\n\n return formContent;\n}\n\n/**\n * P7: Bridge component to connect autosave cancel function to parent ref.\n * This allows handleSubmit (defined outside AutosaveProvider) to cancel pending autosaves.\n */\nfunction AutosaveCancelBridge({ cancelRef }: { cancelRef: React.MutableRefObject<(() => void) | null> }): null {\n const autosaveContext = useOptionalAutosave();\n\n React.useEffect(() => {\n if (autosaveContext) {\n cancelRef.current = autosaveContext.cancelAllPending;\n }\n return () => {\n cancelRef.current = null;\n };\n }, [autosaveContext, cancelRef]);\n\n return null;\n}\n\n/**\n * P8: Draft save button component that uses form context to validate with draft schema.\n * Must be rendered inside FormProvider to access form methods.\n */\ninterface DraftSaveButtonProps {\n draftSchema: z.ZodTypeAny;\n onSaveDraft: (data: any) => Promise<void>;\n disabled: boolean;\n isSavingDraft: boolean;\n label: string;\n savingLabel: string;\n /**\n * Whether a cleared (`null`) key may be dropped from the draft payload. Passed in rather than\n * re-derived so this button and every other submission boundary on the surface share ONE answer.\n */\n omitClearedFields: boolean;\n /** The form's schema, used only to tell an authored-null value from the cleared sentinel. */\n submissionSchema: z.ZodTypeAny;\n}\n\nfunction DraftSaveButton({\n draftSchema,\n onSaveDraft,\n disabled,\n isSavingDraft,\n label,\n savingLabel,\n omitClearedFields,\n submissionSchema,\n}: DraftSaveButtonProps): React.JSX.Element {\n const formContext = useFormContext();\n const formTemplateContext = useOptionalFormTemplateContext();\n\n const handleClick = useCallback(async () => {\n if (!formContext) return;\n\n const values = formContext.getValues();\n\n // Validate against the raw RHF snapshot first so draft validation stays\n // aligned with the normal submit path. Hidden framework-only fields are\n // pruned only at the payload boundary afterward.\n const result = draftSchema.safeParse(values);\n\n if (result.success) {\n const sanitizedValues = sanitizeAutomatedFormSubmissionData(\n result.data as Record<string, unknown>,\n {\n hiddenFieldNames: formTemplateContext?.hiddenFieldNames,\n contextFieldValues: formTemplateContext?.contextFieldValues,\n omitClearedFields,\n schema: submissionSchema,\n },\n );\n\n // Clear any existing errors and save\n formContext.clearErrors();\n await onSaveDraft(sanitizedValues);\n } else {\n // Reported exactly as the submit's resolver reports them: with the issue's parameters (so the message translates\n // with its numbers), and with a rule on the whole object under the form-level key instead of being dropped, which\n // left a draft that failed only on such a rule with no error anywhere and no save.\n const fieldErrors = zodIssuesToFieldErrors(result.error.issues);\n const erroredPaths = Object.keys(fieldErrors);\n for (const [fieldPath, fieldError] of Object.entries(fieldErrors)) {\n formContext.setError(fieldPath as any, fieldError);\n }\n // Audit D4 — same treatment as every other submit-like failure: this\n // draft-validation path sets field errors DIRECTLY (not through\n // `injectServerErrors`), so it carries its own scroll-to-first-error.\n scrollAndFocusFirstErroredField(erroredPaths);\n }\n }, [formContext, formTemplateContext?.contextFieldValues, formTemplateContext?.hiddenFieldNames, draftSchema, onSaveDraft]);\n\n return (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.OUTLINE}\n disabled={disabled}\n onClick={handleClick}\n >\n {isSavingDraft ? savingLabel : label}\n </Button>\n );\n}\n\n"]}