@wildo-ai/saas-frontend-lib 1.1.2 → 1.1.4
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.
- package/dist/esm/browser-bootstrap/theme-bootstrap.d.ts.map +1 -1
- package/dist/esm/browser-bootstrap/theme-bootstrap.js.map +1 -1
- package/dist/esm/browser-bootstrap.exports.d.ts.map +1 -1
- package/dist/esm/browser-bootstrap.exports.js.map +1 -1
- package/dist/esm/companion-exports.d.ts +1 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/companion-exports.js +1 -1
- package/dist/esm/companion-exports.js.map +1 -1
- package/dist/esm/companion-runtime-exports.d.ts.map +1 -1
- package/dist/esm/companion-runtime-exports.js.map +1 -1
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.js.map +1 -1
- package/dist/esm/components/actions/action-button.d.ts.map +1 -1
- package/dist/esm/components/actions/action-button.js.map +1 -1
- package/dist/esm/components/actions/button-group.d.ts.map +1 -1
- package/dist/esm/components/actions/button-group.js.map +1 -1
- package/dist/esm/components/actions/button.d.ts.map +1 -1
- package/dist/esm/components/actions/button.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.types.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.types.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-list.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-list.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/code-block.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/code-block.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/image.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/image.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/web-preview.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/web-preview.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/message.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/message.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/prompt-input.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/prompt-input.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/sources.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/sources.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/suggestion.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/suggestion.js.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.d.ts +28 -3
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
- package/dist/esm/components/ai-elements/execution/confirmation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/confirmation.js.map +1 -1
- package/dist/esm/components/ai-elements/execution/queue.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/queue.js.map +1 -1
- package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/task.js.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/connection.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/connection.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/controls.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/controls.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/edge.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/edge.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/panel.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/panel.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/toolbar.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/toolbar.js.map +1 -1
- package/dist/esm/components/ai-elements/meta/agent-wrappers.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/agent-wrappers.js.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.js.map +1 -1
- package/dist/esm/components/ai-elements/meta/model-selector.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/model-selector.js.map +1 -1
- package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/open-in-chat.js.map +1 -1
- package/dist/esm/components/ai-elements/shared/loader.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/loader.js.map +1 -1
- package/dist/esm/components/ai-elements/shared/shimmer.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/shimmer.js.map +1 -1
- package/dist/esm/components/ai-elements/stream/execution-stream.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/stream/execution-stream.js.map +1 -1
- package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/chain-of-thought.js.map +1 -1
- package/dist/esm/components/ai-elements/trace/checkpoint.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/checkpoint.js.map +1 -1
- package/dist/esm/components/ai-elements/trace/inline-citation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/inline-citation.js.map +1 -1
- package/dist/esm/components/ai-elements/trace/plan.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/plan.js.map +1 -1
- package/dist/esm/components/ai-elements/trace/reasoning.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/reasoning.js.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
- package/dist/esm/components/app/AppLayout_ErrorBoundary.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_ErrorBoundary.js.map +1 -1
- package/dist/esm/components/app/AppLayout_ErrorBoundary.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_ErrorBoundary.labels.js.map +1 -1
- package/dist/esm/components/app/AppLayout_Home.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_Home.js.map +1 -1
- package/dist/esm/components/app/AppLayout_Home.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_Home.labels.js.map +1 -1
- package/dist/esm/components/app/AppLayout_MainContainer.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_MainContainer.js.map +1 -1
- package/dist/esm/components/app/AppLayout_NotificationCenter.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_NotificationCenter.js +7 -2
- package/dist/esm/components/app/AppLayout_NotificationCenter.js.map +1 -1
- package/dist/esm/components/app/AppLayout_RouterErrorBoundary.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_RouterErrorBoundary.js.map +1 -1
- package/dist/esm/components/app/AppLayout_RouterErrorBoundary.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_RouterErrorBoundary.labels.js.map +1 -1
- package/dist/esm/components/app/AppPage_Home.d.ts.map +1 -1
- package/dist/esm/components/app/AppPage_Home.js.map +1 -1
- package/dist/esm/components/app/PublicLayout_MainContainer.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_MainContainer.js.map +1 -1
- package/dist/esm/components/app/PublicLayout_StaticContentContainer.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_StaticContentContainer.js.map +1 -1
- package/dist/esm/components/app/PublicLayout_StaticContentContainer.labels.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_StaticContentContainer.labels.js.map +1 -1
- package/dist/esm/components/app/PublicLayout_Terms.labels.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_Terms.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_AuthCallback.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_AuthCallback.js.map +1 -1
- package/dist/esm/components/auth/Auth_AuthCallback.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_AuthCallback.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_ConfirmEmail.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_ConfirmEmail.js.map +1 -1
- package/dist/esm/components/auth/Auth_ConfirmEmail.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_ConfirmEmail.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.js.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.js.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_MagicLinkVerify.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MagicLinkVerify.js.map +1 -1
- package/dist/esm/components/auth/Auth_MagicLinkVerify.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MagicLinkVerify.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.js.map +1 -1
- package/dist/esm/components/auth/Auth_Main.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_MfaChallenge.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MfaChallenge.js.map +1 -1
- package/dist/esm/components/auth/Auth_MfaChallenge.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MfaChallenge.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLoggedOut.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLoggedOut.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLoggedOut.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLoggedOut.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_OneOffSession.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OneOffSession.js.map +1 -1
- package/dist/esm/components/auth/Auth_OneOffSession.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OneOffSession.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.js.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.labels.js.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js.map +1 -1
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Read_SsoSaml.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Read_SsoSaml.js.map +1 -1
- package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js.map +1 -1
- package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js.map +1 -1
- package/dist/esm/components/auth/enrollment/PhoneEnrollmentMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/PhoneEnrollmentMethod.js.map +1 -1
- package/dist/esm/components/auth/enrollment/TotpEnrollmentMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/TotpEnrollmentMethod.js.map +1 -1
- package/dist/esm/components/auth/enrollment/enrollment-method-components.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/enrollment-method-components.js.map +1 -1
- package/dist/esm/components/auth/methods/EmailOtpAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/EmailOtpAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/MagicLinkAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/MagicLinkAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/OrgOidcAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/OrgOidcAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/PasskeyAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/PasskeyAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/PasswordAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/PasswordAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/SmsOtpAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/SmsOtpAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/TotpAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/TotpAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/auth-method-components.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/auth-method-components.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_AuthCallback.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_AuthCallback.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_AuthExchange.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_AuthExchange.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_ConfirmEmail.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_ConfirmEmail.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_EnrollmentRequired.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_EnrollmentRequired.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Invitation.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Invitation.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_MagicLinkVerify.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_MagicLinkVerify.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Main.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_MfaChallenge.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_MfaChallenge.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthConsent.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthConsent.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthLoggedOut.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthLoggedOut.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthLogoutConfirm.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthLogoutConfirm.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OneOffSession.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OneOffSession.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_PasswordLost.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_PasswordLost.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Register.js.map +1 -1
- package/dist/esm/components/auth/utils/AuthSingleFieldFormLayout.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/AuthSingleFieldFormLayout.js.map +1 -1
- package/dist/esm/components/auth/utils/CredentialUsernameAutofillField.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/CredentialUsernameAutofillField.js.map +1 -1
- package/dist/esm/components/auth/utils/LabeledDivider.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/LabeledDivider.js.map +1 -1
- package/dist/esm/components/auth/utils/OAuthProvidersSection.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/OAuthProvidersSection.js.map +1 -1
- package/dist/esm/components/auth/utils/PasswordStrengthIndicator.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js.map +1 -1
- package/dist/esm/components/auth/utils/resolvePasswordViolationsToLabels.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/resolvePasswordViolationsToLabels.js.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
- package/dist/esm/components/data-display/AutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/AutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/DisplayContextKindContext.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayContextKindContext.js.map +1 -1
- package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayField.js +8 -5
- package/dist/esm/components/data-display/DisplayField.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.js +6 -2
- package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js.map +1 -1
- package/dist/esm/components/data-display/DisplayTemplateContext.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayTemplateContext.js.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/SummaryContext.d.ts.map +1 -1
- package/dist/esm/components/data-display/SummaryContext.js.map +1 -1
- package/dist/esm/components/data-display/automatic-displayer.utils.d.ts.map +1 -1
- package/dist/esm/components/data-display/automatic-displayer.utils.js.map +1 -1
- package/dist/esm/components/data-display/avatar.d.ts.map +1 -1
- package/dist/esm/components/data-display/avatar.js.map +1 -1
- package/dist/esm/components/data-display/badge.d.ts.map +1 -1
- package/dist/esm/components/data-display/badge.js.map +1 -1
- package/dist/esm/components/data-display/chart-echarts.d.ts.map +1 -1
- package/dist/esm/components/data-display/chart-echarts.js.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayChromeContext.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayChromeContext.js.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
- package/dist/esm/components/data-display/description-list.d.ts.map +1 -1
- package/dist/esm/components/data-display/description-list.js.map +1 -1
- package/dist/esm/components/data-display/display-field-resolution.utils.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-field-resolution.utils.js.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
- package/dist/esm/components/data-display/display-resource-link-trail.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-resource-link-trail.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-code.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-code.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-date.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-date.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-datetime.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-duration.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-duration.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-enum.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-enum.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-audio.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-audio.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-document.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-image.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-image.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-video.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-video.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-json.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-json.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-money.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-money.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-number.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-number.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-phone.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-phone.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-date.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-date.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-money.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-money.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-number.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-number.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-time.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-time.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-string.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-time.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-time.js.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.d.ts.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.js.map +1 -1
- package/dist/esm/components/data-display/useFileActivation.d.ts.map +1 -1
- package/dist/esm/components/data-display/useFileActivation.js.map +1 -1
- package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/celebration-overlay.js.map +1 -1
- package/dist/esm/components/feedback/danger-zone.d.ts.map +1 -1
- package/dist/esm/components/feedback/danger-zone.js.map +1 -1
- package/dist/esm/components/feedback/empty-display-policy.utils.d.ts.map +1 -1
- package/dist/esm/components/feedback/empty-display-policy.utils.js.map +1 -1
- package/dist/esm/components/feedback/empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/empty-state.js.map +1 -1
- package/dist/esm/components/feedback/error-display.d.ts.map +1 -1
- package/dist/esm/components/feedback/error-display.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-lock-badge.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts +36 -0
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js +29 -0
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -1
- package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-overlay.js.map +1 -1
- package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-spinner.js.map +1 -1
- package/dist/esm/components/feedback/notification-center.d.ts +11 -5
- package/dist/esm/components/feedback/notification-center.d.ts.map +1 -1
- package/dist/esm/components/feedback/notification-center.js +2 -3
- package/dist/esm/components/feedback/notification-center.js.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
- package/dist/esm/components/feedback/progress.d.ts.map +1 -1
- package/dist/esm/components/feedback/progress.js.map +1 -1
- package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/resource-empty-state.js.map +1 -1
- package/dist/esm/components/feedback/skeleton-text.d.ts.map +1 -1
- package/dist/esm/components/feedback/skeleton-text.js.map +1 -1
- package/dist/esm/components/feedback/skeleton.d.ts.map +1 -1
- package/dist/esm/components/feedback/skeleton.js.map +1 -1
- package/dist/esm/components/feedback/toast.d.ts.map +1 -1
- package/dist/esm/components/feedback/toast.js.map +1 -1
- package/dist/esm/components/files/Files_UploadGrantDrop.d.ts +41 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.d.ts.map +1 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.js +207 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.js.map +1 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.d.ts +3 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.d.ts.map +1 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.js +36 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.js.map +1 -0
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.d.ts +8 -0
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.d.ts.map +1 -0
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.js +14 -0
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.js.map +1 -0
- package/dist/esm/components/flows-actors/actor.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/actor.js.map +1 -1
- package/dist/esm/components/flows-actors/actor.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/actor.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.js.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.js +21 -4
- package/dist/esm/components/flows-actors/approval.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.js +5 -0
- package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.js.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.js +1 -1
- package/dist/esm/components/flows-actors/execution-plan.js.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-node-badges.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-node-badges.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-ui.utils.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.js.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.js +1 -1
- package/dist/esm/components/flows-actors/task-memory.js.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.labels.js.map +1 -1
- package/dist/esm/components/form/Form.d.ts.map +1 -1
- package/dist/esm/components/form/Form.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.js +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedForm.js +16 -9
- package/dist/esm/components/form/automated/AutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/AutosaveContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutosaveContext.js.map +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormField.js +9 -2
- package/dist/esm/components/form/automated/FormField.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldComposite.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldComposite.js +8 -6
- package/dist/esm/components/form/automated/FormFieldComposite.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldRecord.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldRecord.js.map +1 -1
- package/dist/esm/components/form/automated/FormTemplateContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormTemplateContext.js.map +1 -1
- package/dist/esm/components/form/automated/GeneratedAssociationRelationshipField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/GeneratedAssociationRelationshipField.js.map +1 -1
- package/dist/esm/components/form/automated/GeneratedReferenceRelationshipField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/GeneratedReferenceRelationshipField.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js +37 -3
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.js.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
- package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.d.ts +12 -0
- package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.d.ts.map +1 -0
- package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.js +26 -0
- package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.js.map +1 -0
- package/dist/esm/components/form/automated/autosave-indicator.d.ts.map +1 -1
- package/dist/esm/components/form/automated/autosave-indicator.js.map +1 -1
- package/dist/esm/components/form/automated/autosave-indicator.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/autosave-indicator.utils.js.map +1 -1
- package/dist/esm/components/form/automated/create-form-default-values.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/create-form-default-values.utils.js.map +1 -1
- package/dist/esm/components/form/automated/form-field-autocomplete.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/form-field-autocomplete.frontend.utils.js.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.helpers.d.ts.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.helpers.js.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.hooks.d.ts +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.hooks.d.ts.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.hooks.js.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.shared.d.ts.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.shared.js.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.utils.js.map +1 -1
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.js.map +1 -1
- package/dist/esm/components/form/chromes/FormChromeContext.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormChromeContext.js.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
- package/dist/esm/components/form/chromes/field.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/field.js.map +1 -1
- package/dist/esm/components/form/chromes/form-primitives.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/form-primitives.js.map +1 -1
- package/dist/esm/components/form/combobox.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.js.map +1 -1
- package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/checkbox.js.map +1 -1
- package/dist/esm/components/form/controls/boolean/switch.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/switch.js.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.js.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/calendar.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/calendar.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datepicker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-range-picker.js.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
- package/dist/esm/components/form/controls/enum/select-multiple.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select-multiple.js.map +1 -1
- package/dist/esm/components/form/controls/enum/select.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select.js.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
- package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/file-upload.js.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.frontend.utils.js.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.js.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
- package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input-group.js.map +1 -1
- package/dist/esm/components/form/controls/input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input.js.map +1 -1
- package/dist/esm/components/form/controls/number/slider.d.ts +1 -1
- package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
- package/dist/esm/components/form/controls/number/slider.js.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.js.map +1 -1
- package/dist/esm/components/form/controls/string/inline-edit-text.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/inline-edit-text.js.map +1 -1
- package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/input-otp.js.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.js.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.labels.js.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.js.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.js.map +1 -1
- package/dist/esm/components/form/feedback/RemoteChangeNotification.d.ts.map +1 -1
- package/dist/esm/components/form/feedback/RemoteChangeNotification.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-bigdecimal.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-bigdecimal.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-bigdecimal.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-boolean.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-boolean.js +4 -2
- package/dist/esm/components/form/fields/form-field-boolean.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-boolean.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-boolean.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-code.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-code.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-code.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-code.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-date.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-date.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-date.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-date.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-datetime.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-datetime.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-datetime.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-datetime.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-enum.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-enum.js +4 -2
- package/dist/esm/components/form/fields/form-field-enum.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-enum.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-enum.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file-provider-constraints.frontend.utils.d.ts +15 -5
- package/dist/esm/components/form/fields/form-field-file-provider-constraints.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file-provider-constraints.frontend.utils.js +21 -18
- package/dist/esm/components/form/fields/form-field-file-provider-constraints.frontend.utils.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.js +139 -2
- package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.js +15 -0
- package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-number.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-number.js +4 -2
- package/dist/esm/components/form/fields/form-field-number.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-number.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-number.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-phone.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-phone.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-phone.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-phone.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-date.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-date.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-date.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-date.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-datetime.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-datetime.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-datetime.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-datetime.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-number.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-number.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-number.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-number.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-time.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-time.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-time.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-time.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.js +7 -2
- package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.labels.js.map +1 -1
- package/dist/esm/components/form/fields/useFormField.d.ts.map +1 -1
- package/dist/esm/components/form/fields/useFormField.js.map +1 -1
- package/dist/esm/components/form/form-context.d.ts.map +1 -1
- package/dist/esm/components/form/form-context.js.map +1 -1
- package/dist/esm/components/form/form-context.utils.d.ts.map +1 -1
- package/dist/esm/components/form/form-context.utils.js.map +1 -1
- package/dist/esm/components/form/form-field-types.d.ts +20 -0
- package/dist/esm/components/form/form-field-types.d.ts.map +1 -1
- package/dist/esm/components/form/form-field-types.js.map +1 -1
- package/dist/esm/components/form/useFormSchemaContext.d.ts.map +1 -1
- package/dist/esm/components/form/useFormSchemaContext.js.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
- package/dist/esm/components/form/validation-errors/form-error-extraction.utils.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/form-error-extraction.utils.js.map +1 -1
- package/dist/esm/components/form/validation-errors/form-validation.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/form-validation.js.map +1 -1
- package/dist/esm/components/form/validation-errors/getFieldError.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/getFieldError.js.map +1 -1
- package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js.map +1 -1
- package/dist/esm/components/form/validation-errors/useFieldUniquenessValidation.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/useFieldUniquenessValidation.js.map +1 -1
- package/dist/esm/components/form/validation-errors/useServerErrorInjection.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/useServerErrorInjection.js.map +1 -1
- package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -1
- package/dist/esm/components/layout/aspect-ratio.js.map +1 -1
- package/dist/esm/components/layout/carousel.d.ts.map +1 -1
- package/dist/esm/components/layout/carousel.js.map +1 -1
- package/dist/esm/components/layout/divider.d.ts.map +1 -1
- package/dist/esm/components/layout/divider.js.map +1 -1
- package/dist/esm/components/layout/resizable.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.js.map +1 -1
- package/dist/esm/components/layout/scroll-area.d.ts.map +1 -1
- package/dist/esm/components/layout/scroll-area.js.map +1 -1
- package/dist/esm/components/layout/separator.d.ts.map +1 -1
- package/dist/esm/components/layout/separator.js.map +1 -1
- package/dist/esm/components/navigation/NavigationItemBadge.d.ts +13 -1
- package/dist/esm/components/navigation/NavigationItemBadge.d.ts.map +1 -1
- package/dist/esm/components/navigation/NavigationItemBadge.js +31 -2
- package/dist/esm/components/navigation/NavigationItemBadge.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_ActivityBar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_ActivityBar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_CommandMenu.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_CommandMenu.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_ControlPanel.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_ControlPanel.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuBar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuBar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuUserOrg.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuUserOrg.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NotificationCenter.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NotificationCenter.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickSwitcher.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickSwitcher.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_Sidebar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_Sidebar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_Toolbar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_Toolbar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.js.map +1 -1
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
- package/dist/esm/components/navigation/app-level/component-props.application-level.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/component-props.application-level.frontend.schemas.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useActivityBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useActivityBarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useControlPanelBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useControlPanelBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.d.ts +5 -2
- package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.js +18 -41
- package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickActionButtonBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickActionButtonBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js +13 -3
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useToolbarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useToolbarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts +23 -5
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js +81 -13
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js.map +1 -1
- package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/navigation/breadcrumb.js.map +1 -1
- package/dist/esm/components/navigation/command.d.ts.map +1 -1
- package/dist/esm/components/navigation/command.js.map +1 -1
- package/dist/esm/components/navigation/menu-bar.d.ts +1 -1
- package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -1
- package/dist/esm/components/navigation/menu-bar.js.map +1 -1
- package/dist/esm/components/navigation/navbar.d.ts.map +1 -1
- package/dist/esm/components/navigation/navbar.js.map +1 -1
- package/dist/esm/components/navigation/sidebar.d.ts.map +1 -1
- package/dist/esm/components/navigation/sidebar.js.map +1 -1
- package/dist/esm/components/overlays/containers/OverlayContainer.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/OverlayContainer.js +36 -9
- package/dist/esm/components/overlays/containers/OverlayContainer.js.map +1 -1
- package/dist/esm/components/overlays/containers/OverlayContainer.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/OverlayContainer.labels.js.map +1 -1
- package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert-dialog.js.map +1 -1
- package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert.js.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.js.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.shared-types.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.shared-types.js.map +1 -1
- package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/drawer.js.map +1 -1
- package/dist/esm/components/overlays/containers/navigation-overlay-container.utils.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/navigation-overlay-container.utils.js.map +1 -1
- package/dist/esm/components/overlays/containers/overlay-container-mode-resolution.utils.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/overlay-container-mode-resolution.utils.js.map +1 -1
- package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/sheet.js.map +1 -1
- package/dist/esm/components/overlays/floating/context-menu.d.ts +1 -1
- package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/context-menu.js.map +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.d.ts +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.js.map +1 -1
- package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/hover-card.js.map +1 -1
- package/dist/esm/components/overlays/floating/menu.shared-types.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/menu.shared-types.js.map +1 -1
- package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/popover.js.map +1 -1
- package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/tooltip.js.map +1 -1
- package/dist/esm/components/progression/ProgressionAchievementBadge.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionAchievementBadge.js.map +1 -1
- package/dist/esm/components/progression/ProgressionAchievementBadge.labels.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionAchievementBadge.labels.js.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.js.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js.map +1 -1
- package/dist/esm/components/resources/CollectionSelectionControls.d.ts.map +1 -1
- package/dist/esm/components/resources/CollectionSelectionControls.js.map +1 -1
- package/dist/esm/components/resources/EphemeralFieldsRevealDialog.d.ts.map +1 -1
- package/dist/esm/components/resources/EphemeralFieldsRevealDialog.js.map +1 -1
- package/dist/esm/components/resources/InlineSearchInput.d.ts.map +1 -1
- package/dist/esm/components/resources/InlineSearchInput.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionBody_Table.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
- package/dist/esm/components/resources/ResourceInPlaceOperationRow.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceInPlaceOperationRow.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +9 -0
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.js +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.js +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_InsertedViews.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_InsertedViews.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List_Table.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Pagination.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Pagination.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Pagination.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Pagination.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read_Expandable.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read_Expandable.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search_Table.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SortControl.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SortControl.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.js +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionPopover.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionPopover.js.map +1 -1
- package/dist/esm/components/resources/ResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOperationSurface.js.map +1 -1
- package/dist/esm/components/resources/ResourceOwnedViewEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOwnedViewEmbeds.js.map +1 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.js.map +1 -1
- package/dist/esm/components/resources/card-action-placement.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/card-action-placement.utils.js.map +1 -1
- package/dist/esm/components/resources/collection-card-layout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/collection-card-layout.utils.js.map +1 -1
- package/dist/esm/components/resources/collection-view-mode.frontend.d.ts.map +1 -1
- package/dist/esm/components/resources/collection-view-mode.frontend.js.map +1 -1
- package/dist/esm/components/resources/component-props.resources-layout.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/components/resources/component-props.resources-layout.frontend.schemas.js.map +1 -1
- package/dist/esm/components/resources/embeds/ComposedChildrenRegistry.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ComposedChildrenRegistry.js.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.js.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceHostContext.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceHostContext.js.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.js.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js.map +1 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js.map +1 -1
- package/dist/esm/components/resources/inserted-resource-view.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/inserted-resource-view.frontend.utils.js.map +1 -1
- package/dist/esm/components/resources/resource-operation-custom-view.contracts.d.ts.map +1 -1
- package/dist/esm/components/resources/resource-operation-custom-view.contracts.js.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayItemTemplate.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayItemTemplate.js.map +1 -1
- package/dist/esm/components/resources/skeleton/DiscriminatorSwitch.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/DiscriminatorSwitch.js.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Divider.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Divider.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FieldScopeContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FieldScopeContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FormErrorSummarySlot.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormErrorSummarySlot.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayoutSlotContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayoutSlotContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Group.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Group.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts +12 -0
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js +13 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.shared.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.shared.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionHostHeadingContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionHostHeadingContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionPresentationContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionPresentationContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SubmitButton.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SubmitButton.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryHeader.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryHeader.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryMeta.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryMeta.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryTitle.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryTitle.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStepFieldsContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStepFieldsContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/section-consolidation.shared.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/section-consolidation.shared.js.map +1 -1
- package/dist/esm/components/resources/skeleton/section-consolidation.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/section-consolidation.utils.js.map +1 -1
- package/dist/esm/components/resources/useInlineSearch.d.ts.map +1 -1
- package/dist/esm/components/resources/useInlineSearch.js.map +1 -1
- package/dist/esm/components/resources/useLongPress.d.ts.map +1 -1
- package/dist/esm/components/resources/useLongPress.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Search.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Search.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/ResourceFieldDisplay_ResourceReference.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/ResourceFieldDisplay_ResourceReference.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/ResourceFieldEdit_ResourceReference.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/ResourceFieldEdit_ResourceReference.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.labels.js.map +1 -1
- package/dist/esm/components/sections/accordion.d.ts.map +1 -1
- package/dist/esm/components/sections/accordion.js.map +1 -1
- package/dist/esm/components/sections/card.d.ts.map +1 -1
- package/dist/esm/components/sections/card.js.map +1 -1
- package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
- package/dist/esm/components/sections/collapsible.js.map +1 -1
- package/dist/esm/components/sections/content-section.d.ts.map +1 -1
- package/dist/esm/components/sections/content-section.js.map +1 -1
- package/dist/esm/components/sections/pagination.d.ts.map +1 -1
- package/dist/esm/components/sections/pagination.js.map +1 -1
- package/dist/esm/components/sections/section-grouping.shared.d.ts.map +1 -1
- package/dist/esm/components/sections/section-grouping.shared.js.map +1 -1
- package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -1
- package/dist/esm/components/sections/stacked-layout.js.map +1 -1
- package/dist/esm/components/sections/stepper.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.js.map +1 -1
- package/dist/esm/components/sections/surface.d.ts.map +1 -1
- package/dist/esm/components/sections/surface.js.map +1 -1
- package/dist/esm/components/sections/table.d.ts.map +1 -1
- package/dist/esm/components/sections/table.js.map +1 -1
- package/dist/esm/components/sections/tabs.d.ts.map +1 -1
- package/dist/esm/components/sections/tabs.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +121 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +386 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +56 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.js +32 -5
- package/dist/esm/components/settings/SettingsHub.js.map +1 -1
- package/dist/esm/components/settings/SettingsHub.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.labels.js.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
- package/dist/esm/components/settings/SettingsSectionNavigationHost.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsSectionNavigationHost.js.map +1 -1
- package/dist/esm/components/typography/heading.d.ts.map +1 -1
- package/dist/esm/components/typography/heading.js.map +1 -1
- package/dist/esm/components/typography/label.d.ts.map +1 -1
- package/dist/esm/components/typography/label.js.map +1 -1
- package/dist/esm/components/typography/link.d.ts.map +1 -1
- package/dist/esm/components/typography/link.js.map +1 -1
- package/dist/esm/components/typography/text.d.ts.map +1 -1
- package/dist/esm/components/typography/text.js.map +1 -1
- package/dist/esm/components/typography/truncated-text.d.ts.map +1 -1
- package/dist/esm/components/typography/truncated-text.js.map +1 -1
- package/dist/esm/components/views/ViewLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/views/ViewLayout_Header.js.map +1 -1
- package/dist/esm/components/views/ViewNotFound.d.ts.map +1 -1
- package/dist/esm/components/views/ViewNotFound.js.map +1 -1
- package/dist/esm/components/views/ViewNotFound.labels.d.ts.map +1 -1
- package/dist/esm/components/views/ViewNotFound.labels.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartEmptyState.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartEmptyState.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartErrorState.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartErrorState.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartLoadingSkeleton.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartLoadingSkeleton.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.labels.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.labels.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.lazy.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.lazy.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartWidget.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartWidget.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartWidget.labels.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartWidget.labels.js.map +1 -1
- package/dist/esm/components/views/chart-view/WildoEChart.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/WildoEChart.js.map +1 -1
- package/dist/esm/components/views/chart-view/chart-export.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-export.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/chart-runtime.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-runtime.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/chart-theme-bridge.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-theme-bridge.js.map +1 -1
- package/dist/esm/components/views/chart-view/chart-view.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-view.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/dev/ChartView.example.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/dev/ChartView.example.js.map +1 -1
- package/dist/esm/components/views/chart-view/echarts-setup.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/echarts-setup.js.map +1 -1
- package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/enum-color-bridge.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builder-utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/funnel.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/funnel.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/gauge.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/gauge.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/heatmap.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/heatmap.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/hierarchical-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/hierarchical-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/parallel.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/parallel.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/pie-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/pie-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/radar.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/radar.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/sankey.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/sankey.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/statistical-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/statistical-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeView.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeView.js.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeViewContext.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeViewContext.js.map +1 -1
- package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js.map +1 -1
- package/dist/esm/components/views/composite-view/useHostRecordDerivedParentContext.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/useHostRecordDerivedParentContext.js.map +1 -1
- package/dist/esm/components/views/execution-view/ExecutionView.d.ts.map +1 -1
- package/dist/esm/components/views/execution-view/ExecutionView.js.map +1 -1
- package/dist/esm/components/views/execution-view/ExecutionView.labels.d.ts.map +1 -1
- package/dist/esm/components/views/execution-view/ExecutionView.labels.js.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js +11 -7
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js.map +1 -1
- package/dist/esm/components/views/full-custom-view/FullCustomView.d.ts.map +1 -1
- package/dist/esm/components/views/full-custom-view/FullCustomView.js.map +1 -1
- package/dist/esm/components/views/onboarding-view/OnboardingView.d.ts.map +1 -1
- package/dist/esm/components/views/onboarding-view/OnboardingView.js +9 -2
- package/dist/esm/components/views/onboarding-view/OnboardingView.js.map +1 -1
- package/dist/esm/components/views/onboarding-view/OnboardingView.labels.d.ts.map +1 -1
- package/dist/esm/components/views/onboarding-view/OnboardingView.labels.js.map +1 -1
- package/dist/esm/components/views/onboarding-view/onboarding-view.utils.d.ts.map +1 -1
- package/dist/esm/components/views/onboarding-view/onboarding-view.utils.js.map +1 -1
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts.map +1 -1
- package/dist/esm/core/app-shell/PortalContainerContext.js.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts +40 -18
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.js +0 -5
- package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
- package/dist/esm/core/app-shell/app-shell.utils.d.ts.map +1 -1
- package/dist/esm/core/app-shell/app-shell.utils.js.map +1 -1
- package/dist/esm/core/app-shell/hosted-components.utils.d.ts.map +1 -1
- package/dist/esm/core/app-shell/hosted-components.utils.js.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.schemas.d.ts +16 -0
- package/dist/esm/core/automated-layout/automated-layout.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.schemas.js +17 -0
- package/dist/esm/core/automated-layout/automated-layout.frontend.schemas.js.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +31 -11
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +34 -25
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts +30 -4
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js +233 -17
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/BillingContext.d.ts +36 -0
- package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingContext.js +1 -0
- package/dist/esm/core/billing/BillingContext.js.map +1 -1
- package/dist/esm/core/billing/BillingErrorNotifier.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingErrorNotifier.js.map +1 -1
- package/dist/esm/core/billing/billing-launcher.d.ts.map +1 -1
- package/dist/esm/core/billing/billing-launcher.js +1 -1
- package/dist/esm/core/billing/billing-launcher.js.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/useBilling.d.ts.map +1 -1
- package/dist/esm/core/billing/useBilling.js.map +1 -1
- package/dist/esm/core/billing/useBillingAction.d.ts.map +1 -1
- package/dist/esm/core/billing/useBillingAction.js.map +1 -1
- package/dist/esm/core/billing/useSafeBillingActionExecutor.d.ts.map +1 -1
- package/dist/esm/core/billing/useSafeBillingActionExecutor.js.map +1 -1
- package/dist/esm/core/branding/useBrandIdentity.d.ts +17 -0
- package/dist/esm/core/branding/useBrandIdentity.d.ts.map +1 -1
- package/dist/esm/core/branding/useBrandIdentity.js +17 -0
- package/dist/esm/core/branding/useBrandIdentity.js.map +1 -1
- package/dist/esm/core/branding/useBrandPresentation.d.ts.map +1 -1
- package/dist/esm/core/branding/useBrandPresentation.js.map +1 -1
- package/dist/esm/core/commons/devices.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/commons/devices.frontend.schemas.js.map +1 -1
- package/dist/esm/core/commons/local-storage.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/commons/local-storage.frontend.schemas.js.map +1 -1
- package/dist/esm/core/commons/window-event.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/commons/window-event.frontend.schemas.js.map +1 -1
- package/dist/esm/core/companion/companion-exports.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/companion/companion-exports.frontend.definitions.js.map +1 -1
- package/dist/esm/core/components-registry/ComponentNotInjected.d.ts.map +1 -1
- package/dist/esm/core/components-registry/ComponentNotInjected.js.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +1 -0
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/component-registry-loader.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/components-registry/component-registry-loader.frontend.service.js.map +1 -1
- package/dist/esm/core/components-registry/component-registry.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/components-registry/component-registry.frontend.schemas.js.map +1 -1
- package/dist/esm/core/components-registry/component-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/components-registry/component-registry.frontend.service.js +4 -1
- package/dist/esm/core/components-registry/component-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.d.ts.map +1 -1
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.js +8 -1
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts +188 -0
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -0
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js +255 -0
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -0
- package/dist/esm/core/components-registry/register-framework-layouts.d.ts.map +1 -1
- package/dist/esm/core/components-registry/register-framework-layouts.js +2 -0
- package/dist/esm/core/components-registry/register-framework-layouts.js.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts +76 -0
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -0
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js +99 -0
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -0
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +15 -5
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +44 -7
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.js +44 -7
- package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +14 -14
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/composite-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/composite-view.schemas.js.map +1 -1
- package/dist/esm/core/config/config-merge-utilities.d.ts.map +1 -1
- package/dist/esm/core/config/config-merge-utilities.js.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.d.ts +0 -49
- package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.js +102 -56
- package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
- package/dist/esm/core/config/execution-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/execution-view.schemas.js.map +1 -1
- package/dist/esm/core/config/flows-actors-view.schemas.d.ts +5 -3
- package/dist/esm/core/config/flows-actors-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/flows-actors-view.schemas.js +2 -2
- package/dist/esm/core/config/flows-actors-view.schemas.js.map +1 -1
- package/dist/esm/core/config/full-custom-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/full-custom-view.schemas.js.map +1 -1
- package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/inserted-view-launcher.schemas.js.map +1 -1
- package/dist/esm/core/config/inserted-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/inserted-view.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +51 -11
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.js +21 -7
- package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/onboarding-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/onboarding-view.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/resource-owned-view-resolution.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/config/resource-owned-view-resolution.frontend.utils.js.map +1 -1
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.js.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +23 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.js +22 -0
- package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/useSettingsHubConfig.d.ts.map +1 -1
- package/dist/esm/core/config/useSettingsHubConfig.js +8 -1
- package/dist/esm/core/config/useSettingsHubConfig.js.map +1 -1
- package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts.map +1 -1
- package/dist/esm/core/config/useVisibleSettingsHubConfig.js.map +1 -1
- package/dist/esm/core/config/verify-feature-references.frontend.d.ts +7 -0
- package/dist/esm/core/config/verify-feature-references.frontend.d.ts.map +1 -1
- package/dist/esm/core/config/verify-feature-references.frontend.js +42 -1
- package/dist/esm/core/config/verify-feature-references.frontend.js.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.js +9 -2
- package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
- package/dist/esm/core/config/verify-settings-hub-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-settings-hub-content.js.map +1 -1
- package/dist/esm/core/config/views-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/views-frontend.schemas.js.map +1 -1
- package/dist/esm/core/enums/common-enum-registry.d.ts.map +1 -1
- package/dist/esm/core/enums/common-enum-registry.js.map +1 -1
- package/dist/esm/core/errors/ErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorBoundary.js.map +1 -1
- package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorContext.js.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.js.map +1 -1
- package/dist/esm/core/errors/error-management.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/errors/error-management.frontend.service.js.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.js.map +1 -1
- package/dist/esm/core/errors/errors.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/errors/errors.frontend.schemas.js.map +1 -1
- package/dist/esm/core/errors/http-error-behavior.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/errors/http-error-behavior.frontend.schemas.js.map +1 -1
- package/dist/esm/core/errors/useError.d.ts.map +1 -1
- package/dist/esm/core/errors/useError.js.map +1 -1
- package/dist/esm/core/errors/withErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/errors/withErrorBoundary.js.map +1 -1
- package/dist/esm/core/events/EventBusContext.d.ts.map +1 -1
- package/dist/esm/core/events/EventBusContext.js.map +1 -1
- package/dist/esm/core/events/NotificationContext.d.ts +6 -5
- package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
- package/dist/esm/core/events/NotificationContext.js +41 -39
- package/dist/esm/core/events/NotificationContext.js.map +1 -1
- package/dist/esm/core/events/event-bus.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/events/event-bus.frontend.service.js.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.d.ts +34 -18
- package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.js +22 -1
- package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
- package/dist/esm/core/events/notification-display-policy.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/notification-display-policy.frontend.schemas.js.map +1 -1
- package/dist/esm/core/events/toast.d.ts.map +1 -1
- package/dist/esm/core/events/toast.js.map +1 -1
- package/dist/esm/core/events/useEventBus.d.ts.map +1 -1
- package/dist/esm/core/events/useEventBus.js.map +1 -1
- package/dist/esm/core/events/useNotification.d.ts.map +1 -1
- package/dist/esm/core/events/useNotification.js.map +1 -1
- package/dist/esm/core/execution/ExecutionDirtyMarkerScopeContext.d.ts.map +1 -1
- package/dist/esm/core/execution/ExecutionDirtyMarkerScopeContext.js.map +1 -1
- package/dist/esm/core/execution/ExecutionRuntimeContext.d.ts.map +1 -1
- package/dist/esm/core/execution/ExecutionRuntimeContext.js.map +1 -1
- package/dist/esm/core/execution/execution-anchor.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-anchor.utils.js.map +1 -1
- package/dist/esm/core/execution/execution-dirty-markers.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-dirty-markers.utils.js.map +1 -1
- package/dist/esm/core/execution/execution-failure-handling.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-failure-handling.utils.js.map +1 -1
- package/dist/esm/core/execution/execution-outcome-emission.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-outcome-emission.utils.js.map +1 -1
- package/dist/esm/core/execution/execution-participation.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-participation.utils.js.map +1 -1
- package/dist/esm/core/execution/useExecution.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecution.js.map +1 -1
- package/dist/esm/core/execution/useExecutionDirtyBridge.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionDirtyBridge.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationDataPrefetch.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationDataPrefetch.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationPrefetch.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationPrefetch.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationContextBuilder.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationContextBuilder.js.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts +77 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js +114 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -0
- package/dist/esm/core/external-providers/frontend-provider-display-label.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/external-providers/frontend-provider-display-label.frontend.utils.js.map +1 -1
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts +33 -15
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js +27 -21
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.d.ts +102 -0
- package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.js +117 -0
- package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.js.map +1 -0
- package/dist/esm/core/features/FeatureGate.d.ts.map +1 -1
- package/dist/esm/core/features/FeatureGate.js +1 -1
- package/dist/esm/core/features/FeatureGate.js.map +1 -1
- package/dist/esm/core/features/FeatureRouteGuard.d.ts.map +1 -1
- package/dist/esm/core/features/FeatureRouteGuard.js +1 -1
- package/dist/esm/core/features/FeatureRouteGuard.js.map +1 -1
- package/dist/esm/core/features/FeaturesContext.d.ts.map +1 -1
- package/dist/esm/core/features/FeaturesContext.js.map +1 -1
- package/dist/esm/core/features/feature-unavailability.frontend.utils.d.ts +7 -0
- package/dist/esm/core/features/feature-unavailability.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/features/feature-unavailability.frontend.utils.js +5 -0
- package/dist/esm/core/features/feature-unavailability.frontend.utils.js.map +1 -1
- package/dist/esm/core/features/useFeatureAvailability.d.ts +2 -0
- package/dist/esm/core/features/useFeatureAvailability.d.ts.map +1 -1
- package/dist/esm/core/features/useFeatureAvailability.js +4 -2
- package/dist/esm/core/features/useFeatureAvailability.js.map +1 -1
- package/dist/esm/core/features/useFeatureGate.d.ts.map +1 -1
- package/dist/esm/core/features/useFeatureGate.js.map +1 -1
- package/dist/esm/core/features/useFeatures.d.ts.map +1 -1
- package/dist/esm/core/features/useFeatures.js.map +1 -1
- package/dist/esm/core/features/useOperationFeatureAvailability.d.ts.map +1 -1
- package/dist/esm/core/features/useOperationFeatureAvailability.js.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +26 -2
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.js +60 -3
- package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
- package/dist/esm/core/flows-actors/useFlowsActors.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/useFlowsActors.js.map +1 -1
- package/dist/esm/core/guidance/GuidanceContext.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceContext.js +2 -2
- package/dist/esm/core/guidance/GuidanceContext.js.map +1 -1
- package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceRenderer.js.map +1 -1
- package/dist/esm/core/guidance/guidance-audience.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/guidance/guidance-audience.frontend.utils.js.map +1 -1
- package/dist/esm/core/guidance/guidance-resource-compiler.shared.utils.d.ts.map +1 -1
- package/dist/esm/core/guidance/guidance-resource-compiler.shared.utils.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBadge.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBadge.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBadge.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBadge.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBanner.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBanner.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBanner.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBanner.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceCard.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceCard.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceCard.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceCard.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceModal.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceModal.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceModal.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceModal.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceSurvey.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceSurvey.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceSurvey.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceSurvey.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTooltip.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTooltip.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTooltip.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTooltip.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTour.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTour.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTour.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTour.labels.js.map +1 -1
- package/dist/esm/core/guidance/useGuidance.d.ts.map +1 -1
- package/dist/esm/core/guidance/useGuidance.js.map +1 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts +29 -0
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts.map +1 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.js +76 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.js.map +1 -1
- package/dist/esm/core/hotkey/HotkeyRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/hotkey/HotkeyRegistryContext.js +44 -8
- package/dist/esm/core/hotkey/HotkeyRegistryContext.js.map +1 -1
- package/dist/esm/core/hotkey/HotkeyShortcutsHelpDialog.d.ts.map +1 -1
- package/dist/esm/core/hotkey/HotkeyShortcutsHelpDialog.js.map +1 -1
- package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.d.ts +53 -1
- package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.js +78 -13
- package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.js.map +1 -1
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.d.ts.map +1 -1
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js.map +1 -1
- package/dist/esm/core/hotkey/useHotkey.d.ts.map +1 -1
- package/dist/esm/core/hotkey/useHotkey.js.map +1 -1
- package/dist/esm/core/i18n/I18nContext.d.ts +32 -0
- package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
- package/dist/esm/core/i18n/I18nContext.js +154 -32
- package/dist/esm/core/i18n/I18nContext.js.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.js.map +1 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts +51 -0
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js +66 -0
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js.map +1 -0
- package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
- package/dist/esm/core/i18n/useI18n.js +22 -2
- package/dist/esm/core/i18n/useI18n.js.map +1 -1
- package/dist/esm/core/icons/IconRegistryBridge.d.ts.map +1 -1
- package/dist/esm/core/icons/IconRegistryBridge.js.map +1 -1
- package/dist/esm/core/icons/IconRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/icons/IconRegistryContext.js.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.definitions.js.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.schemas.js.map +1 -1
- package/dist/esm/core/icons/useIconRegistry.d.ts.map +1 -1
- package/dist/esm/core/icons/useIconRegistry.js.map +1 -1
- package/dist/esm/core/loading/AppLoadingGate.d.ts.map +1 -1
- package/dist/esm/core/loading/AppLoadingGate.js.map +1 -1
- package/dist/esm/core/loading/LoadingBarrier.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingBarrier.js.map +1 -1
- package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingContext.js.map +1 -1
- package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingGate.js +16 -3
- package/dist/esm/core/loading/LoadingGate.js.map +1 -1
- package/dist/esm/core/loading/loading-policy.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/loading/loading-policy.frontend.schemas.js.map +1 -1
- package/dist/esm/core/loading/loading-scope.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/loading/loading-scope.frontend.utils.js.map +1 -1
- package/dist/esm/core/loading/loading-types.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/loading/loading-types.frontend.schemas.js.map +1 -1
- package/dist/esm/core/loading/resolveLoadingPolicy.d.ts.map +1 -1
- package/dist/esm/core/loading/resolveLoadingPolicy.js.map +1 -1
- package/dist/esm/core/loading/useAppLoading.d.ts.map +1 -1
- package/dist/esm/core/loading/useAppLoading.js.map +1 -1
- package/dist/esm/core/loading/useComponentLoading.d.ts.map +1 -1
- package/dist/esm/core/loading/useComponentLoading.js.map +1 -1
- package/dist/esm/core/loading/useEmitLoadingScope.d.ts.map +1 -1
- package/dist/esm/core/loading/useEmitLoadingScope.js.map +1 -1
- package/dist/esm/core/loading/useLoading.d.ts.map +1 -1
- package/dist/esm/core/loading/useLoading.js.map +1 -1
- package/dist/esm/core/mode/AppModeContext.d.ts.map +1 -1
- package/dist/esm/core/mode/AppModeContext.js.map +1 -1
- package/dist/esm/core/mode/section-visibility.d.ts.map +1 -1
- package/dist/esm/core/mode/section-visibility.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/useAnalytics.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/useAnalytics.js.map +1 -1
- package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.d.ts +97 -0
- package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.d.ts.map +1 -0
- package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.js +179 -0
- package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.js.map +1 -0
- package/dist/esm/core/monitoring/logger.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/monitoring/logger.frontend.service.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.js +76 -48
- package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.d.ts +12 -0
- package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.js +24 -0
- package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.js.map +1 -1
- package/dist/esm/core/navigation/hosted-pane.constants.d.ts.map +1 -1
- package/dist/esm/core/navigation/hosted-pane.constants.js.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.d.ts +1 -1
- package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
- package/dist/esm/core/navigation/launcher-runtime-availability.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-runtime-availability.js.map +1 -1
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +14 -5
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js +146 -17
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.d.ts +58 -10
- package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.js +1 -1
- package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.d.ts +2 -2
- package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.js +4 -4
- package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
- package/dist/esm/core/navigation/primary-destination-layout.d.ts.map +1 -1
- package/dist/esm/core/navigation/primary-destination-layout.js.map +1 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +1 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.js.map +1 -1
- package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/useLauncherResolutionContext.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.d.ts +8 -0
- package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.js +26 -6
- package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationState.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationState.js.map +1 -1
- package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
- package/dist/esm/core/navigation/useOverlayTitle.js.map +1 -1
- package/dist/esm/core/navigation/useTransactionAwareSyncRetry.d.ts.map +1 -1
- package/dist/esm/core/navigation/useTransactionAwareSyncRetry.js.map +1 -1
- package/dist/esm/core/navigation/view-title-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/view-title-resolution.js.map +1 -1
- package/dist/esm/core/navigation/zone-content-geometry.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-content-geometry.js.map +1 -1
- package/dist/esm/core/navigation/zone-empty-behavior.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-empty-behavior.js.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.d.ts +26 -0
- package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-visible-entry.js +76 -0
- package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -0
- package/dist/esm/core/requests/api-readiness-checker.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/api-readiness-checker.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts.map +1 -1
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.js.map +1 -1
- package/dist/esm/core/requests/client-instance-id.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/client-instance-id.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/network-backoff.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/requests/network-backoff.frontend.utils.js.map +1 -1
- package/dist/esm/core/requests/offline-replay-policy.frontend.d.ts.map +1 -1
- package/dist/esm/core/requests/offline-replay-policy.frontend.js.map +1 -1
- package/dist/esm/core/requests/request-cancellation.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/requests/request-cancellation.frontend.utils.js.map +1 -1
- package/dist/esm/core/requests/websockets/ConnectionStatusNotifier.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/ConnectionStatusNotifier.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.js +32 -19
- package/dist/esm/core/requests/websockets/useNotificationBadges.js.map +1 -1
- package/dist/esm/core/requests/websockets/useResourceRoom.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useResourceRoom.js.map +1 -1
- package/dist/esm/core/requests/websockets/useWebSocket.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useWebSocket.js.map +1 -1
- package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +146 -2
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +108 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts +3 -2
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +57 -4
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +6 -0
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js +1 -0
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/ResourceOperationViewContext.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceOperationViewContext.js.map +1 -1
- package/dist/esm/core/resources/ResourceOperationViewProvider.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceOperationViewProvider.js.map +1 -1
- package/dist/esm/core/resources/ResourceReadCacheBridge.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceReadCacheBridge.js +130 -37
- package/dist/esm/core/resources/ResourceReadCacheBridge.js.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.js.map +1 -1
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.d.ts.map +1 -1
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.js.map +1 -1
- package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/collection-export-url.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/ephemeral-fields.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/ephemeral-fields.utils.js.map +1 -1
- package/dist/esm/core/resources/file-serve-url.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/file-serve-url.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
- package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts.map +1 -1
- package/dist/esm/core/resources/hooks/useOperationEnabled.js.map +1 -1
- package/dist/esm/core/resources/in-place/InPlaceOperationContext.d.ts.map +1 -1
- package/dist/esm/core/resources/in-place/InPlaceOperationContext.js.map +1 -1
- package/dist/esm/core/resources/operation-initiator-satisfaction.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-initiator-satisfaction.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/relationship-quick-create.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-addressability.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-operation-view.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-operation-view.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-path.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-path.frontend.schemas.js.map +1 -1
- package/dist/esm/core/resources/resource-read-cache.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-read-cache.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.js.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistry.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistry.js.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistryContext.js.map +1 -1
- package/dist/esm/core/resources/rmm/RMMWebSocketBridge.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/RMMWebSocketBridge.js.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/canonical-read.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/canonical-read.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/rmm/field-path.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/field-path.utils.js.map +1 -1
- package/dist/esm/core/resources/rmm/rmm-constants.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/rmm-constants.js.map +1 -1
- package/dist/esm/core/resources/rmm/rmm-noop-snapshot.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/rmm-noop-snapshot.js.map +1 -1
- package/dist/esm/core/resources/rmm/types.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/types.js.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
- package/dist/esm/core/resources/rmm/useListInvalidation.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useListInvalidation.js.map +1 -1
- package/dist/esm/core/resources/rmm/useRMMEventHandler.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useRMMEventHandler.js.map +1 -1
- package/dist/esm/core/resources/rmm/useRMMSnapshot.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useRMMSnapshot.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
- package/dist/esm/core/resources/useAuthedFileObjectUrl.frontend.hook.d.ts.map +1 -1
- package/dist/esm/core/resources/useAuthedFileObjectUrl.frontend.hook.js.map +1 -1
- package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts.map +1 -1
- package/dist/esm/core/resources/useHostlessResourceNavigation.js.map +1 -1
- package/dist/esm/core/resources/useOperationEnabled.d.ts.map +1 -1
- package/dist/esm/core/resources/useOperationEnabled.js.map +1 -1
- package/dist/esm/core/resources/useResourceLabels.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceLabels.js +20 -14
- package/dist/esm/core/resources/useResourceLabels.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/resources/useResourceRegistry.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceRegistry.js.map +1 -1
- package/dist/esm/core/resources/useResourceSelection.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceSelection.js.map +1 -1
- package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js.map +1 -1
- package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
- package/dist/esm/core/runtime/AppRouter.js +2 -1
- package/dist/esm/core/runtime/AppRouter.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts +9 -0
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.js +1 -0
- package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
- package/dist/esm/core/runtime/app-config-overrides.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/app-config-overrides.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/env-variable-loader.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/runtime/env-variable-loader.frontend.service.js.map +1 -1
- package/dist/esm/core/runtime/frontend-companion-resource-inputs.d.ts.map +1 -1
- package/dist/esm/core/runtime/frontend-companion-resource-inputs.js.map +1 -1
- package/dist/esm/core/runtime/routes.frontend.definitions.d.ts +6 -0
- package/dist/esm/core/runtime/routes.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/routes.frontend.definitions.js +7 -0
- package/dist/esm/core/runtime/routes.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/runtime.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/runtime/runtime.frontend.schemas.js.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts +38 -0
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js +92 -3
- package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
- package/dist/esm/core/runtime/useApplication.d.ts.map +1 -1
- package/dist/esm/core/runtime/useApplication.js.map +1 -1
- package/dist/esm/core/scope/AppScopeContext.d.ts.map +1 -1
- package/dist/esm/core/scope/AppScopeContext.js.map +1 -1
- package/dist/esm/core/scope/scope.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/scope/scope.frontend.schemas.js.map +1 -1
- package/dist/esm/core/scope/scope.utils.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/scope/scope.utils.frontend.service.js.map +1 -1
- package/dist/esm/core/scope/useAppScope.d.ts.map +1 -1
- package/dist/esm/core/scope/useAppScope.js.map +1 -1
- package/dist/esm/core/security/AnonymousSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AnonymousSessionContext.js.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.js +97 -13
- package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
- package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/auth-redirect.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/auth-session.utils.d.ts.map +1 -1
- package/dist/esm/core/security/auth-session.utils.js.map +1 -1
- package/dist/esm/core/security/cross-frontend-handoff.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/security/cross-frontend-handoff.frontend.service.js.map +1 -1
- package/dist/esm/core/security/jwt.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/jwt.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/security.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/security/security.frontend.schemas.js.map +1 -1
- package/dist/esm/core/security/session-token-storage.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/security/session-token-storage.frontend.service.js.map +1 -1
- package/dist/esm/core/security/useAuthSession.d.ts.map +1 -1
- package/dist/esm/core/security/useAuthSession.js.map +1 -1
- package/dist/esm/core/security/useResolvedAuthConfig.d.ts.map +1 -1
- package/dist/esm/core/security/useResolvedAuthConfig.js.map +1 -1
- package/dist/esm/core/security/useStepUpAuth.d.ts.map +1 -1
- package/dist/esm/core/security/useStepUpAuth.js.map +1 -1
- package/dist/esm/core/security/useUserOrgs.d.ts.map +1 -1
- package/dist/esm/core/security/useUserOrgs.js.map +1 -1
- package/dist/esm/core/ui/SurfaceErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/ui/SurfaceErrorBoundary.js.map +1 -1
- package/dist/esm/core/ui/SurfacePolicyContext.d.ts.map +1 -1
- package/dist/esm/core/ui/SurfacePolicyContext.js.map +1 -1
- package/dist/esm/core/ui/TypographyScopeContext.d.ts.map +1 -1
- package/dist/esm/core/ui/TypographyScopeContext.js.map +1 -1
- package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
- package/dist/esm/core/ui/UIContext.js.map +1 -1
- package/dist/esm/core/ui/chart-style-defaults.d.ts.map +1 -1
- package/dist/esm/core/ui/chart-style-defaults.js.map +1 -1
- package/dist/esm/core/ui/cn.d.ts.map +1 -1
- package/dist/esm/core/ui/cn.js.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.js.map +1 -1
- package/dist/esm/core/ui/design-token-class-groups.d.ts.map +1 -1
- package/dist/esm/core/ui/design-token-class-groups.js.map +1 -1
- package/dist/esm/core/ui/design-token-config.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/design-token-config.utils.js.map +1 -1
- package/dist/esm/core/ui/design-token.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/design-token.utils.js.map +1 -1
- package/dist/esm/core/ui/material-runtime.d.ts.map +1 -1
- package/dist/esm/core/ui/material-runtime.js.map +1 -1
- package/dist/esm/core/ui/surface-a11y.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/surface-a11y.utils.js.map +1 -1
- package/dist/esm/core/ui/theme-preference-storage.shared.d.ts.map +1 -1
- package/dist/esm/core/ui/theme-preference-storage.shared.js.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts +7 -2
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.js.map +1 -1
- package/dist/esm/core/ui/useThemePreferenceControl.d.ts.map +1 -1
- package/dist/esm/core/ui/useThemePreferenceControl.js.map +1 -1
- package/dist/esm/core/ui/useUI.d.ts.map +1 -1
- package/dist/esm/core/ui/useUI.js.map +1 -1
- package/dist/esm/index.d.ts +7 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +20 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tailwind/index.d.ts.map +1 -1
- package/dist/esm/tailwind/index.js.map +1 -1
- package/dist/esm/testing/mock-builders.d.ts.map +1 -1
- package/dist/esm/testing/mock-builders.js +2 -0
- package/dist/esm/testing/mock-builders.js.map +1 -1
- package/dist/esm/testing/mock-factory.d.ts.map +1 -1
- package/dist/esm/testing/mock-factory.js.map +1 -1
- package/dist/esm/testing/rmm-helpers.d.ts.map +1 -1
- package/dist/esm/testing/rmm-helpers.js.map +1 -1
- package/dist/esm/testing/test-providers.d.ts.map +1 -1
- package/dist/esm/testing/test-providers.js.map +1 -1
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/testing.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +6 -5
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts +0 -21
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-plan-change-preview.js +0 -12
- package/dist/esm/components/billing/billing-plan-change-preview.js.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.d.ts +0 -12
- package/dist/esm/components/billing/billing-promotion-code-input.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.js +0 -11
- package/dist/esm/components/billing/billing-promotion-code-input.js.map +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, 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} 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, 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 useOptionalResourceFormActions,\n type ResourceFormActionsValue,\n} from './ResourceFormActionsContext';\nimport { 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 { generateDefaultFormTemplate } from '~wildo-frontend-lib/core/automated-layout/default-layout-generator.frontend.utils';\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 { useOptionalAutosave } from '~wildo-frontend-lib/components/form/automated/AutosaveContext';\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 { 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 isSingleResourceUpdateLikeOperation,\n isUpdateLikeCoreOperation,\n mergeBulkSelectionIntoRequestData,\n pickPreferredOperationForCoreSemantic,\n resolveEffectiveCoreOperation,\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 { 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';\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 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';\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. Defaults to\n * `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// COMPONENT\n// =============================================================================\n\n/**\n * Host-owned form actions footer. `ResourceAutomatedForm` appends its\n * operation-aware submit row (+ optional draft-save button) after the layout\n * template; this lays them out as a right-aligned footer row (`justify-end`)\n * with a horizontal gap, so the submit action reads as a proper form footer\n * instead of a bare button flushed to the inline-start edge. Wraps on narrow\n * widths. Renders nothing when no host actions are present (standalone\n * `FormLayout` usage owns its own `<SubmitButton>`).\n *\n * `mt-section` is owned HERE, deliberately: the footer's top gap used to be\n * delegated to `AutomatedForm`'s `space-y-section` on the `<form>` element, but\n * `Form` wraps ALL children in one `display: contents` fieldset (the disabled\n * cascade carrier), so the form has exactly one direct child and every\n * `space-y-*` on it is structurally inert (`> * + *` never reaches\n * grandchildren). The footer therefore rendered flush against the template's\n * last row on every resource form (2026-08-19). The footer is the seam's only\n * consumer, so it carries the margin itself instead of reworking the Form\n * layout contract.\n */\nfunction HostFormActionsFooter(): React.JSX.Element | null {\n const actions = useOptionalResourceFormActions();\n if (!actions) return null;\n return (\n <div className=\"mt-section flex flex-col gap-element\">\n {/* Submission-level notice (e.g. version conflict) sits directly above the\n submit row so the user reads it where the action happens. */}\n {actions.submissionNotice}\n <div className=\"flex flex-wrap items-center justify-end gap-element\">\n {actions.cancelButton}\n {actions.draftSaveButton}\n {actions.submitButton}\n </div>\n </div>\n );\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 = UpdateLikeMutationFallbackMode.RMM_REQUIRED,\n}: ResourceAutomatedFormProps): React.JSX.Element | null {\n // Contexts\n const { doOperation, registry } = useResourceRegistry();\n const { emit } = useEventBus();\n const { tComponent, isReady } = useI18n({\n component: FrontendComponentType.RESOURCES_LAYOUTS_CREATE,\n });\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 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 const [fetchError, setFetchError] = useState<WildoError_Frontend | 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 }\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 // Resolve explicit edit template from layout config\n const explicitEditTemplate = resourceConfig?.frontendConfiguration?.layout?.edit;\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 // 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 });\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`); this `basePath`\n // is used to build BACKEND API endpoints (the `validate-field` route), so it\n // must carry the API prefix — same reason as the upload endpoint below.\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 return `${resourceApiBase.apiBaseUrl}${resourceApiBase.basePath}/validate-field`;\n }, [resourceApiBase, resourceConfig]);\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 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 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 setFetchError(wildoError);\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 if (mutationResult.error?.type === MutationErrorType.VALIDATION) {\n onErrorRef.current?.(new Error(mutationResult.error.message ?? 'Validation failed'));\n return;\n }\n throw new Error(mutationResult.error?.message ?? '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 }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: typeof result === 'object' && result !== null ? result as Record<string, unknown> : undefined,\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 errorCustomMessageReference: (error as { customMessageReference?: string })?.customMessageReference,\n errorHttpStatus: (error as { httpStatus?: number })?.httpStatus,\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 const requestData = mergeRequestDataWithBulkSelection({ [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 const requestData = mergeRequestDataWithBulkSelection(sanitizedData);\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?.(new Error(mutationResult.error.message ?? 'Section save validation failed'));\n return;\n }\n throw new Error(mutationResult.error?.message ?? '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 }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: typeof result === 'object' && result !== null ? result as Record<string, unknown> : undefined,\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 errorCustomMessageReference: (error as { customMessageReference?: string })?.customMessageReference,\n },\n });\n }\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n contextFieldValues,\n contextualParameters,\n hiddenFieldNames,\n mergeRequestDataWithBulkSelection,\n resourceContext,\n resourceType,\n rmm,\n ]);\n\n // Autosave config for the provider\n const autosaveProviderConfig: AutosaveConfig = useMemo(() => ({\n enabled: autosaveConfig?.enabled ?? false,\n defaultTrigger: autosaveConfig?.defaultTrigger ?? AutosaveTrigger.DEBOUNCE,\n debounceMs: autosaveConfig?.debounceMs ?? 500,\n savedStateDurationMs: 2000,\n }), [autosaveConfig]);\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 new Error(mutationResult.error?.message ?? '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 }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: typeof result === 'object' && result !== null ? result as Record<string, unknown> : undefined,\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 errorCustomMessageReference: (error as { customMessageReference?: string })?.customMessageReference,\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 new Error(mutationResult.error?.message ?? '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 }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: typeof result === 'object' && result !== null ? result as Record<string, unknown> : undefined,\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 errorCustomMessageReference: (error as { customMessageReference?: string })?.customMessageReference,\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 const criticalConfirmationPhrase = useMemo(() => {\n // Humanise the operation identifier (e.g. `reset_to_defaults` → \"Reset to\n // defaults\"), matching the action-bar phrase for custom operations.\n const opId = String(operation.operationIdentifier);\n return opId.charAt(0).toUpperCase() + opId.slice(1).replace(/_/g, ' ').toLowerCase();\n }, [operation.operationIdentifier]);\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 const labelKey = getDefaultSubmitLabelKey(effectiveCoreOperation ?? operationIdentifier);\n const label = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, labelKey);\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, 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 const formActionsValue = useMemo((): ResourceFormActionsValue => ({\n submitButton: resolvedSubmitButton,\n draftSaveButton,\n cancelButton,\n submissionNotice: conflictNotice,\n }), [resolvedSubmitButton, draftSaveButton, cancelButton, conflictNotice]);\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 const ResourceFormTemplate: React.FC = () => (\n <>\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]);\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 // Type-safe access to error context - use type assertion to help TypeScript\n const errorContext: Record<string, any> | undefined = (fetchError as WildoError_Frontend).context;\n const customMessageReference: string = (fetchError as WildoError_Frontend).customMessageReference;\n const errorMessage = (errorContext && typeof errorContext === 'object' && 'originalErrorMessage' in errorContext\n ? (errorContext.originalErrorMessage as string | undefined)\n : undefined) || customMessageReference;\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 <p className=\"text-sm text-destructive/80 mt-item-xs\">{errorMessage}</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 now owns the \"wait for fetched\n // defaults\" state. Avoid early returns here so the hook graph stays stable\n // between the initial loading render and the later loaded render.\n // UPDATE-like: defaults come from the fetched record (LoadingGate gates the\n // mount until ready). CREATE: use the synchronous discriminator seed so RHF\n // initializes with it on the very 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={criticalConfirmationPhrase}\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 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 onSectionSave={handleSectionSave}\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 React, { useEffect, 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} 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 useOptionalResourceFormActions,\n type ResourceFormActionsValue,\n} from './ResourceFormActionsContext';\nimport { 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 { generateDefaultFormTemplate } from '~wildo-frontend-lib/core/automated-layout/default-layout-generator.frontend.utils';\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 { 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 { 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 isSingleResourceUpdateLikeOperation,\n isUpdateLikeCoreOperation,\n mergeBulkSelectionIntoRequestData,\n pickPreferredOperationForCoreSemantic,\n resolveEffectiveCoreOperation,\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 { 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';\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 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';\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. Defaults to\n * `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// COMPONENT\n// =============================================================================\n\n/**\n * Host-owned form actions footer. `ResourceAutomatedForm` appends its\n * operation-aware submit row (+ optional draft-save button) after the layout\n * template; this lays them out as a right-aligned footer row (`justify-end`)\n * with a horizontal gap, so the submit action reads as a proper form footer\n * instead of a bare button flushed to the inline-start edge. Wraps on narrow\n * widths. Renders nothing when no host actions are present (standalone\n * `FormLayout` usage owns its own `<SubmitButton>`).\n *\n * `mt-section` is owned HERE, deliberately: the footer's top gap used to be\n * delegated to `AutomatedForm`'s `space-y-section` on the `<form>` element, but\n * `Form` wraps ALL children in one `display: contents` fieldset (the disabled\n * cascade carrier), so the form has exactly one direct child and every\n * `space-y-*` on it is structurally inert (`> * + *` never reaches\n * grandchildren). The footer therefore rendered flush against the template's\n * last row on every resource form (2026-08-19). The footer is the seam's only\n * consumer, so it carries the margin itself instead of reworking the Form\n * layout contract.\n */\nfunction HostFormActionsFooter(): React.JSX.Element | null {\n const actions = useOptionalResourceFormActions();\n if (!actions) return null;\n return (\n <div className=\"mt-section flex flex-col gap-element\">\n {/* Submission-level notice (e.g. version conflict) sits directly above the\n submit row so the user reads it where the action happens. */}\n {actions.submissionNotice}\n <div className=\"flex flex-wrap items-center justify-end gap-element\">\n {actions.cancelButton}\n {actions.draftSaveButton}\n {actions.submitButton}\n </div>\n </div>\n );\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 = UpdateLikeMutationFallbackMode.RMM_REQUIRED,\n}: ResourceAutomatedFormProps): React.JSX.Element | null {\n // Contexts\n const { doOperation, registry } = useResourceRegistry();\n const { emit } = useEventBus();\n const { tComponent, isReady } = useI18n({\n component: FrontendComponentType.RESOURCES_LAYOUTS_CREATE,\n });\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 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 const [fetchError, setFetchError] = useState<WildoError_Frontend | 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 }\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 // Resolve explicit edit template from layout config\n const explicitEditTemplate = resourceConfig?.frontendConfiguration?.layout?.edit;\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 // 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 });\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`); this `basePath`\n // is used to build BACKEND API endpoints (the `validate-field` route), so it\n // must carry the API prefix — same reason as the upload endpoint below.\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 return `${resourceApiBase.apiBaseUrl}${resourceApiBase.basePath}/validate-field`;\n }, [resourceApiBase, resourceConfig]);\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 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 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 setFetchError(wildoError);\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 if (mutationResult.error?.type === MutationErrorType.VALIDATION) {\n onErrorRef.current?.(new Error(mutationResult.error.message ?? 'Validation failed'));\n return;\n }\n throw new Error(mutationResult.error?.message ?? '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 }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: typeof result === 'object' && result !== null ? result as Record<string, unknown> : undefined,\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 errorCustomMessageReference: (error as { customMessageReference?: string })?.customMessageReference,\n errorHttpStatus: (error as { httpStatus?: number })?.httpStatus,\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 const requestData = mergeRequestDataWithBulkSelection({ [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 const requestData = mergeRequestDataWithBulkSelection(sanitizedData);\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?.(new Error(mutationResult.error.message ?? 'Section save validation failed'));\n return;\n }\n throw new Error(mutationResult.error?.message ?? '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 }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: typeof result === 'object' && result !== null ? result as Record<string, unknown> : undefined,\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 errorCustomMessageReference: (error as { customMessageReference?: string })?.customMessageReference,\n },\n });\n }\n }, [\n assertRMMAvailableForDefaultUpdateLikeMutation,\n currentOperationTransportOverride,\n contextFieldValues,\n contextualParameters,\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 new Error(mutationResult.error?.message ?? '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 }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: typeof result === 'object' && result !== null ? result as Record<string, unknown> : undefined,\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 errorCustomMessageReference: (error as { customMessageReference?: string })?.customMessageReference,\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 new Error(mutationResult.error?.message ?? '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 }),\n parentResourcesRequirements: resourceContext.parentResourcesRequirements || [],\n resultSummary: typeof result === 'object' && result !== null ? result as Record<string, unknown> : undefined,\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 errorCustomMessageReference: (error as { customMessageReference?: string })?.customMessageReference,\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 const criticalConfirmationPhrase = useMemo(() => {\n // Humanise the operation identifier (e.g. `reset_to_defaults` → \"Reset to\n // defaults\"), matching the action-bar phrase for custom operations.\n const opId = String(operation.operationIdentifier);\n return opId.charAt(0).toUpperCase() + opId.slice(1).replace(/_/g, ' ').toLowerCase();\n }, [operation.operationIdentifier]);\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 const labelKey = getDefaultSubmitLabelKey(effectiveCoreOperation ?? operationIdentifier);\n const label = tComponent(FrontendComponentType.RESOURCES_LAYOUTS_CREATE, labelKey);\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, 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 const formActionsValue = useMemo((): ResourceFormActionsValue => ({\n submitButton: resolvedSubmitButton,\n draftSaveButton,\n cancelButton,\n submissionNotice: conflictNotice,\n }), [resolvedSubmitButton, draftSaveButton, cancelButton, conflictNotice]);\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 const ResourceFormTemplate: React.FC = () => (\n <>\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]);\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 // Type-safe access to error context - use type assertion to help TypeScript\n const errorContext: Record<string, any> | undefined = (fetchError as WildoError_Frontend).context;\n const customMessageReference: string = (fetchError as WildoError_Frontend).customMessageReference;\n const errorMessage = (errorContext && typeof errorContext === 'object' && 'originalErrorMessage' in errorContext\n ? (errorContext.originalErrorMessage as string | undefined)\n : undefined) || customMessageReference;\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 <p className=\"text-sm text-destructive/80 mt-item-xs\">{errorMessage}</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 now owns the \"wait for fetched\n // defaults\" state. Avoid early returns here so the hook graph stays stable\n // between the initial loading render and the later loaded render.\n // UPDATE-like: defaults come from the fetched record (LoadingGate gates the\n // mount until ready). CREATE: use the synchronous discriminator seed so RHF\n // initializes with it on the very 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={criticalConfirmationPhrase}\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 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 onSectionSave={handleSectionSave}\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"]}
|