@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":"resources.frontend.schemas.js","sourceRoot":"","sources":["../../../../../src/core/resources/resources.frontend.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { RESPONSIVE_MAX_WIDTH_VALUES } from '@wildo-ai/presets-components-models';\nimport type React from 'react';\nimport { z } from \"zod\";\nimport type { EnumLikeType, IconLike, AutosaveFieldParams, ValidationMode, ResponsiveAware, EditChromeMode, DisplayChromeMode, DraftableConfigParams } from '@wildo-ai/zod-decorators';\nimport { getZodObjectShape } from '@wildo-ai/zod-decorators';\nimport type { ButtonVariants_Variant } from '~wildo-frontend-lib/components/actions/button';\nimport type { QuickSwitcherScopeField } from '~wildo-frontend-lib/core/config/app-configuration-frontend.schemas';\nimport {\n ResourceParentResourceRequirement,\n ResourcePrimaryScope,\n ResourceRelationship,\n ResourceTranspositionPolicy,\n CoreResourceOperation,\n ResourceOperationDisplayMode,\n ResourceOperationFrontendSurface,\n ResourceFieldIdentifier,\n ResourceType,\n ResourceTypeSchema,\n ResourceConfiguration_Operation_ApiCall,\n ResourceConfiguration_Operation_ApiCallWithCallback,\n ResourceConfiguration_ResourceRelationships,\n ResourceConfiguration_InheritanceSchemaDefinition,\n TourStepPlacement,\n NavigationZoneName,\n OverlayAppearance,\n SplitAppearance,\n TransitionConfigSchema,\n ZoneEmptyBehavior,\n viewportDiscriminatedSchema,\n computePolymorphicVariantSchemas,\n} from '@wildo-ai/saas-models';\nimport type {\n ResourceConfiguration,\n ResourceConfiguration_InitializationFactory,\n ValidOperationKeys,\n RelationshipDisplayInParentNavigation,\n RelationshipDisplayInChildView,\n} from '@wildo-ai/saas-models';\nimport type { InsertedChartDeclaration } from '~wildo-frontend-lib/core/config/chart-view.frontend.schemas';\nimport type {\n InsertedExecutionDeclaration,\n ResourceExecutionViewsConfig,\n} from '~wildo-frontend-lib/core/config/execution-view.schemas';\nimport type {\n OnboardingElementType,\n GuidanceRenderMode,\n GuidanceFlowScope,\n GuidanceAudience,\n NotificationBadgeDefinition,\n UserNotificationDefinition,\n SubtreeMap,\n ManyToManyScopeJunctionMap,\n} from '@wildo-ai/saas-models';\nimport { ViewportBreakpoint, DisplayDirection } from '@wildo-ai/zod-decorators';\nimport type {\n CorePresetNames,\n ActionLabelDisplayMode,\n} from '@wildo-ai/presets-components-models';\nimport {\n VerticalPlacement,\n HorizontalPlacement,\n} from '@wildo-ai/presets-components-models';\nimport type {\n CompositeViewComponentProps,\n InsertedCompositeDeclaration,\n ResourceCompositeViewAuthoringConfig,\n} from '../config/composite-view.schemas';\n\n\n\n// ================================================================================================\n// Types transferred from saas-models/config/frontend/navigation.shared.schemas.ts\n// NavigationOperationOverrideSchema only — the rest of navigation stays in saas-models.\n// ================================================================================================\n\n/**\n * @wildo_source:part:start saas.frontend.navigation.operation-override facet:layer:frontend facet:family:navigation-config\n *\n * Per-operation navigation chrome: transition, overlay/split appearance, source zone.\n *\n * **How to use:** attach fragments of this shape under\n * `ResourceOperationFrontendConfig.navigationOverrides` in `resourceUIBehavior()`.\n * Each override applies when navigating **from** the configured zone/viewport into\n * this operation. Prefer mirroring a sibling resource that already matches the\n * product’s overlay vs split behavior.\n */\nexport const NavigationOperationOverrideSchema = z.object({\n transition: TransitionConfigSchema,\n appearance: viewportDiscriminatedSchema(z.union([\n z.enum(OverlayAppearance),\n z.enum(SplitAppearance),\n ])).optional(),\n fromZone: z.union([z.enum(NavigationZoneName), z.literal('appLevel')]).optional(),\n viewport: z.enum(ViewportBreakpoint).optional(),\n /**\n * Behaviour of the OVERLAY this override resolves to — whether the page behind stays interactive,\n * whether touching it dismisses, whether it is dimmed. Ignored for non-overlay transitions.\n *\n * These three were already declared on `OverlayContainerConfig` with documented defaults and read by\n * nothing; they are honoured now, and this is the channel that lets a NAVIGATION-driven overlay set\n * them. Declared per operation because it describes the CONTENT: an application legitimately has a\n * create dialog that blocks everything and a detail sheet beside a live canvas that blocks nothing.\n */\n overlayBehavior: z.object({\n modal: z.boolean().optional(),\n closeOnOutsideClick: z.boolean().optional(),\n showBackdrop: z.boolean().optional(),\n }).optional(),\n});\nexport type NavigationOperationOverride = z.infer<typeof NavigationOperationOverrideSchema>;\n/** @wildo_source:part:end saas.frontend.navigation.operation-override */\n\n\n// ================================================================================================\n// Types transferred from saas-models/resources/resource-frontend.shared.schemas.ts\n// Strictly identical signatures — canonical home is now saas-frontend-lib.\n// ================================================================================================\n\n// --------------------------------\n// App Scope Field Types\n// --------------------------------\n\n/**\n * Runtime-resolved scope field definition.\n *\n * Extends the config-declared `QuickSwitcherScopeField` (from top-level\n * `appScope.fields`) with properties resolved at initialization time from the\n * resource registry.\n *\n * Created by AppScopeContext from the `appScope.fields` configuration.\n */\nexport interface AppScopeFieldDefinition extends QuickSwitcherScopeField {\n /** Resolved from the resource configuration at initialization */\n resourcePrimaryScope: ResourcePrimaryScope;\n}\n\n\n// --------------------------------\n// Frontend Resource Path Schemas\n// Defined in resource-path.frontend.schemas.ts (import here only — no re-export).\n// --------------------------------\n\nimport { FrontendResourceOperationPathSchema } from './resource-path.frontend.schemas';\nimport type { FrontendResourceOperationPath, FrontendResource_ParentResourceRequirement } from './resource-path.frontend.schemas';\n\n\n// --------------------------------\n// Frontend-Specific Operation Types\n// --------------------------------\n\n/**\n * Resolved operation row the **frontend registry** stores: same structural operation\n * config as `@wildo-ai/saas-models` (API_CALL / callback variants) plus optional\n * `operationFrontendConfig` from the app preset.\n *\n * **How to use:** app authors normally do **not** construct this type by hand —\n * `buildFrontendResourceConfigurations()` merges backend `ResourceConfiguration`\n * with `ResourceUIBehavior`. Use it when typing hooks/components that receive the\n * merged registry (e.g. operation context, launcher resolution).\n */\ntype FrontendResourceOperation_Base = {\n /**\n * Frontend UI behavior config for this operation, carrying its `surface`\n * ({@link ResourceOperationFrontendSurface}). After `buildFrontendResourceConfigurations`\n * runs, EVERY operation has a resolved config: preset-surfaced operations get\n * their authored config; everything else resolves to `{ surface: API_ONLY }`\n * (headless) from the operation's `defaultFrontendPosture` or the default.\n * The field stays optional only for the pre-resolution / partial-mock case —\n * read the surface via `isOperationAddressable()` / `isOperationHeadless()`,\n * never by testing presence.\n */\n operationFrontendConfig?: ResourceOperationFrontendConfig;\n}\n\nexport type FrontendResourceConfiguration_Operation<\n TCustomOperationEnum extends EnumLikeType | undefined = any,\n TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = (\n | ResourceConfiguration_Operation_ApiCall<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>\n | ResourceConfiguration_Operation_ApiCallWithCallback<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>\n) & FrontendResourceOperation_Base;\n\n/**\n * Full **merged** resource row in the frontend registry: backend fields (scope, schema,\n * relationships, operations) plus optional `frontendConfiguration` (labels, layout,\n * views map, guidance, …) derived from the app’s `ResourceUIBehavior` preset.\n *\n * **How to use:** read-only shape at runtime and in typed frontend services. Authoring\n * happens in `*.resources-config.ts` + `*.ui-behavior.tsx`, not by filling this object\n * manually.\n */\nexport type FrontendResourceConfiguration<\n TCustomOperationEnum extends EnumLikeType | undefined = any,\n TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = {\n isDisabled: boolean;\n resourcePrimaryScope: ResourcePrimaryScope;\n resourceIdentifier: ResourceType;\n resourceFieldIdentifier: ResourceFieldIdentifier;\n coreOperations: TCoreOperationEnum[];\n customOperation?: TCustomOperationEnum;\n mainSchema: TMainSchema;\n resourceRelationships: ResourceConfiguration_ResourceRelationships;\n inheritenceSchemaDefinition?: ResourceConfiguration_InheritanceSchemaDefinition<EnumLikeType, TMainSchema>;\n frontendConfiguration?: ResourceUIBehaviorResourceLevelConfig<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>;\n isSystemResource: boolean;\n /**\n * Mirrors `ResourceConfiguration.primaryKeyIdentifiesInitiator` from `@wildo-ai/saas-models`.\n * `buildFrontendResourceConfigurations` spreads the backend config onto every frontend\n * registry entry, so this is always populated at runtime; it must stay declared here too\n * so shared `saas-models` utils typed against `AnyResourceConfiguration` (e.g.\n * `ResourcesConfigOperationsUrlsBuilderUtils`) accept a frontend registry entry.\n */\n primaryKeyIdentifiesInitiator: boolean;\n isAnonymizable: boolean;\n transpositionPolicy: ResourceTranspositionPolicy;\n operations: FrontendResourceConfiguration_Operation<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>[];\n}\n\nexport type AnyFrontendResourceConfiguration = FrontendResourceConfiguration<any, any, any>;\n\n/**\n * Application **frontend** resource registry built at startup (field-id maps, relationships,\n * notification defs, subtree map, and per-resource `FrontendResourceConfiguration`).\n *\n * **How to use:** consume via React context / services (`ResourcesRepository`, routing,\n * layout hosts). Authors extend it indirectly by registering presets and module wiring —\n * not by mutating this object ad hoc.\n */\nexport type FrontendResourcesRegistry = {\n allResourceFieldIdentifiers: Record<string, string>;\n fieldIdentifierToResourceType: Record<string, ResourceType>;\n /**\n * Scope-required reference-search junctions, keyed by `${target}|${scope}`.\n * Drives the inference-based people-picker: a FK targeting `T` from a resource\n * scoped by `S`, where `T ↔ S` is an M:N via junction `J`, searches `T` scoped\n * to the caller's current `S` through `J`. Mirrors the backend registry.\n *\n * OPTIONAL: the real registry builder always populates it, but partial test\n * registries omit it — consumers (e.g. `useResourceSearch`) treat an absent map\n * as \"no junction scoping\" (plain target search).\n */\n manyToManyScopeJunctions?: ManyToManyScopeJunctionMap;\n notificationBadgeDefinitions: NotificationBadgeDefinition[];\n additionalUserNotificationDefinitions: UserNotificationDefinition[];\n resourceRelationships: ResourceRelationship[];\n resourceConfigurations: {\n [key: ResourceType]: AnyFrontendResourceConfiguration;\n };\n subtreeMap: SubtreeMap;\n}\n\n\n// ================================================================================================\n// Original resources.frontend.schemas.ts content\n// ================================================================================================\n\n/**\n * Everything the framework knows about the **current resource operation** while rendering\n * a layout host (read/update/list/custom view, nested child, etc.).\n *\n * **How to use:** custom templates and views receive compatible props via framework\n * hooks; use `contextResourceIdentifiers` for parent/child route params and FK scope.\n * `operation` is the merged backend operation + `operationFrontendConfig` — prefer it\n * over guessing URLs or variant keys. `parentResourcesRequirements` repeats path\n * requirements from routing for hosts that must validate scope before fetch.\n */\nexport interface FrontendResourceOperationContext extends FrontendResourceOperationPath {\n /** Current operation being executed */\n resourceType: string;\n\n /** The operation configuration - properly typed */\n operation: FrontendResourceConfiguration_Operation;\n\n /** Resource context map: ResourceType -> resourceId | {fieldIdentifier, resourceId} */\n contextResourceIdentifiers: Record<string,\n | string\n | { fieldIdentifier: string; resourceId: string; }\n >;\n\n /** Additional context data that can be passed */\n additionalContext?: Record<string, unknown>;\n\n /** Parent resource requirements - explicitly included from FrontendResourceOperationPath */\n parentResourcesRequirements: FrontendResource_ParentResourceRequirement[];\n}\n\n/** ──────────────────────────────────────────────────────────────\n * Internal Schemas (concrete, for method access)\n * ────────────────────────────────────────────────────────────── */\n\nexport const FrontendResourceOperationContextSchema = FrontendResourceOperationPathSchema.extend({\n // operation is typed as z.any() in schema — the FrontendResourceOperationContext interface\n // provides proper typing (FrontendResourceConfiguration_Operation) for compile-time consumers\n operation: z.any(),\n contextResourceIdentifiers: z.record(z.string(), z.union([\n z.string(),\n z.object({\n fieldIdentifier: z.string(),\n resourceId: z.string()\n })\n ])),\n additionalContext: z.record(z.string(), z.unknown()).optional(),\n});\n\n\n/**\n * Frontend-native resource configuration types.\n *\n * Defines the complete frontend configuration for resources and their operations,\n * independent of app type. This replaces the legacy per-app discriminated\n * `ResourceOperationFrontendConfig`.\n *\n * The resource-level fields (labels, sections, views, empty state, guidance) are\n * written to `FrontendResourceConfiguration.frontendConfiguration` during registry\n * build. The `views` sub-field provides per-operation frontend config — giving\n * a single, self-contained definition of how each resource appears and behaves in\n * a given frontend application.\n *\n * **How to use (authoring):** in app code, build a `ResourceUIBehavior` map with\n * `resourceUIBehavior(factory, schema, callback)` and merge presets; the framework\n * compiles that into `FrontendResourceConfiguration` entries. The types below\n * (`ResourceUIBehavior_EmptyState`, `ResourceLayoutConfig`, …) are the pieces you\n * pass inside that callback’s return value.\n */\n\n\n\n// ── Resource frontend config sub-types ──────────────────────────────\n\n/** Secondary action type for empty state (link to URL vs guidance flow). */\nexport enum ResourceFrontend_EmptyStateSecondaryActionType {\n LINK = 'link',\n GUIDANCE = 'guidance',\n}\n\n/** Trigger type for resource-level guidance flows. */\nexport enum ResourceFrontend_GuidanceFlowTriggerType {\n FIRST_VISIT = 'FIRST_VISIT',\n MANUAL = 'MANUAL',\n DELAYED = 'DELAYED',\n EVENT = 'EVENT',\n}\n\n/**\n * Empty state configuration for list/table views when no items exist.\n * Labels (title, description, primaryActionLabel) come from i18n.\n *\n * @example\n * ```\n * emptyState: {\n * icon: 'inbox',\n * primaryAction: CoreResourceOperation.CREATE,\n * secondaryAction: { type: ResourceFrontend_EmptyStateSecondaryActionType.LINK, target: 'https://docs.example.com/projects' },\n * }\n * ```\n */\nexport interface ResourceUIBehavior_EmptyState {\n /** Icon ref from the icon registry. If not provided, uses a default empty-state icon. */\n icon?: string;\n /**\n * Operation ref for the primary CTA (e.g., `CoreResourceOperation.CREATE`).\n * If not provided, auto-detects CREATE from available operations.\n * Set to `false` to explicitly disable the primary action button.\n */\n primaryAction?: string | false;\n /** Secondary action — link to docs, guidance flow, or external URL. */\n secondaryAction?: {\n type: ResourceFrontend_EmptyStateSecondaryActionType;\n target: string;\n };\n}\n/**\n * Single guidance element within a resource-level guidance flow.\n * Maps to an OnboardingElement during compilation.\n */\nexport interface ResourceFrontend_GuidanceElement {\n type: OnboardingElementType;\n ref: string;\n targetField?: string;\n targetSelector?: string;\n placement?: TourStepPlacement;\n actionRef?: string;\n steps?: Array<{ ref: string; targetField?: string; targetSelector?: string; placement?: TourStepPlacement }>;\n questions?: Array<{ id: string; type: string; required?: boolean; options?: Array<{ ref: string; value?: string }> }>;\n}\n\n/**\n * Resource-level guidance flow declaration.\n * Compiled into a standard `GuidanceFlowDefinition` by the guidance-resource-compiler.\n */\nexport interface ResourceUIBehavior_GuidanceFlow {\n ref: string;\n bindToOperation: string;\n renderMode: GuidanceRenderMode;\n trigger: {\n type: ResourceFrontend_GuidanceFlowTriggerType;\n delayMs?: number;\n eventName?: string;\n };\n scope?: GuidanceFlowScope;\n audience?: GuidanceAudience;\n priority?: number;\n elements: ResourceFrontend_GuidanceElement[];\n}\n\n// ── Operation key ───────────────────────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.frontend.operation-key-and-resource-config-like facet:layer:frontend facet:family:resource-ui\n *\n * Key identifying a resource operation in the frontend preset.\n *\n * - `string` — default operation (e.g., `CoreResourceOperation.READ`)\n * - `readonly [string, string]` — non-default variant: `[operationIdentifier, variantKey]`\n * (e.g., `[CoreResourceOperation.READ, 'admin']`)\n *\n * The same extracted span also includes `FRONTEND_SCHEMA_KEY`, `ObjectShape`,\n * `ResourceConfigLike`, and `TypedOperationKey` — the schema bridge and typed\n * operation keys used by `resourceUIBehavior()` inference.\n */\nexport type OperationKey = string | readonly [string, string];\n\n\n// ── Schema bridge key ───────────────────────────────────────────────\n\n/**\n * Symbol key used internally by `resourceUIBehavior()` to attach the schema\n * reference to the config object, and by `buildFrontendResourceConfigurations()`\n * to extract it. Using a Symbol prevents collision with user-defined properties\n * and is invisible in Object.keys()/JSON serialization.\n */\nexport const FRONTEND_SCHEMA_KEY: unique symbol = Symbol('frontendSchema');\n\n\n// ── Typed helper types ──────────────────────────────────────────────\n\n/** Extracts the typed shape from a ZodObject, falls back to Record for non-objects. */\nexport type ObjectShape<T extends z.ZodTypeAny> =\n T extends z.ZodObject<infer S> ? S : Record<string, z.ZodTypeAny>;\n\n/**\n * Accepts both factory functions and configuration instances for type inference.\n * Used by `resourceUIBehavior()` to infer generics from either form.\n */\nexport type ResourceConfigLike<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = ResourceConfiguration<TCustomOp, TCoreOp, TSchema>\n | ResourceConfiguration_InitializationFactory<TCustomOp, TCoreOp, TSchema>;\n\n/**\n * Typed operation key — extends `ValidOperationKeys` with variant tuple support.\n * When both generics default to `any`, collapses to `any` — backward compatible\n * with untyped `OperationKey` usage.\n */\nexport type TypedOperationKey<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n> = ValidOperationKeys<TCustomOp, TCoreOp> | readonly [ValidOperationKeys<TCustomOp, TCoreOp>, string];\n/** @wildo_source:part:end saas.frontend.operation-key-and-resource-config-like */\n\n// ── Operation-level frontend config ─────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.frontend.resource-operation-frontend-config facet:layer:frontend facet:family:resource-ui\n *\n * How a resource collection renders its items (cards vs table). A FRONTEND\n * presentation vocabulary — authored on a LIST/SEARCH operation's\n * `collectionDisplayConfig` (below) in the resource UI behavior, NEVER on the\n * shared resources-config operation: the backend has no notion of cards-vs-table.\n * The string values are the persisted view-mode keys, so a stored user choice\n * reads straight across.\n *\n * @example\n * // resource UI behavior `views` entry:\n * [Op.LIST, { collectionDisplayConfig: { displayMode: CollectionDisplayMode.TABLE, userSwitchableDisplayMode: true } }]\n */\nexport enum CollectionDisplayMode {\n /** Stacked cards — one row per item via `ResourceListItemRenderer`. */\n CARDS = 'cards',\n /** Dense table — one column per summary field via the table body. */\n TABLE = 'table',\n}\n\n/**\n * How CARDS-mode items are arranged. Orthogonal to {@link CollectionDisplayMode}\n * (this only shapes the CARDS body; TABLE ignores it). LIST and GRID are kept as\n * DISTINCT layouts, not a `columns: 1` collapse — a list is bordered rows sharing\n * one container (`divide-y`), a grid is separated card cells in N responsive\n * columns.\n */\nexport enum CardLayoutStyle {\n /** Bordered rows in a single shared container (the classic stacked list). */\n LIST = 'list',\n /** Separated card cells laid out in an N-column responsive grid. */\n GRID = 'grid',\n}\n/** @wildo_source:part:end saas.frontend.resource-operation-frontend-config */\n\n/**\n * @wildo_source:part:start saas.frontend.resource-operation-frontend-config facet:layer:frontend facet:family:resource-ui\n *\n * Frontend configuration for a single resource operation.\n *\n * Controls how the operation is surfaced in the frontend:\n * - `surface` — the operation's frontend surface: `ADDRESSABLE` (routable page),\n * `EMBEDDED` (non-addressable view rendered within a host: overlay, composite, or\n * nested), or `API_ONLY` (headless — no interface, callable as an API). See\n * `ResourceOperationFrontendSurface`.\n * - `customView` — direct UIBehavior-owned React component override for authored custom operation views.\n * Use the exported operation-family component types (`ResourceReadCustomViewComponent`,\n * `ResourceListCustomViewComponent`, etc.) plus the matching\n * `useReadOperationSurface()` / `useListOperationSurface()` helpers when you\n * want a strongly truthful custom host for a specific layout family.\n * - `displayPresetOverride` — layout preset override for the operation's UI\n * - `navigationOverrides` — per-operation navigation transition overrides\n * - `displayPriority` — visual ordering in ActionBar/operation lists (lower = higher priority)\n * - `iconOverride` — per-operation icon ref (overrides resource-level icon in navigation items)\n * - `collectionDisplayConfig` — for LIST/SEARCH collection operations: the default\n * cards-vs-table body (`displayMode`) and whether the user may toggle it\n * (`userSwitchableDisplayMode`, persisted per resource type); the CARDS\n * arrangement (`cardLayout` — LIST vs N-column GRID); where each card's action\n * buttons sit (`cardActionPlacement` — 2-axis anchor + orientation); and\n * whether items are selectable for bulk actions (`selectable`). Pure frontend\n * presentation; the backend never reads it.\n *\n * **Resource-owned inserted views are NOT configured here.** Composite, chart,\n * and execution views declared on the resource UI behavior surface themselves\n * into their targeted operation host directly, via their own canonical fields:\n * `compositeViews[*].operationLike` / `chartViews[*].operationLike` (single)\n * and `executionViews[*].surfaceInOperations` (list). The layout consumer\n * (`ResourceLayout_InsertedViews`) reads those declarations and filters them\n * by the current operation at render time — there is no operation-level\n * view-ref list to author or compile.\n *\n * **Historical note (search hit):** earlier versions of this schema exposed an\n * `additionalViews: ResourceViewRef[]` (and before that `additionalViewLinks:\n * string[]`) operation-level field that authored which resource-owned views\n * surfaced in this operation. That field was removed in the\n * `resource-owned-view-surfacing-contract.md` workstream because it duplicated\n * the per-view declaration sites (`compositeViews`, `chartViews`,\n * `executionViews`) and could silently disagree with them. If you are looking\n * for `additionalViews` because a doc, comment, prompt, or downstream code\n * still references it, the answer is: declare the surface on the view itself\n * (use `operationLike` for composite/chart, `surfaceInOperations` for\n * execution), do not re-introduce an operation-level seam.\n */\n/**\n * How an operation's ACTION (its action-bar button) is surfaced in this application.\n *\n * A per-app, **display-only** axis — backend authorization is unaffected, roles\n * remain the only security authority, so this never makes an operation reachable\n * that wasn't already; it only governs the button.\n */\nexport enum ActionVisibility {\n /** Always shown; rendered DISABLED when its `enabledCondition` is unmet. The default. */\n ALWAYS = 'always',\n /**\n * Never shown — this app declares the operation's action off for this surface.\n *\n * Invariant: do NOT pair with a visible (addressable) view for the same operation.\n * The action is the entry point to the view, so a visible view whose action is\n * hidden is contradictory — there is no way to reach it. Hiding the action removes\n * the operation, and the path to any view it has, from this app's UI.\n */\n HIDDEN = 'hidden',\n /**\n * Shown ONLY when its `enabledCondition` is met; HIDDEN (not disabled) otherwise.\n *\n * For state-conditional operations whose disabled state is just noise — e.g.\n * organization `ACTIVATE` appears on a suspended org but vanishes on an active one,\n * rather than sitting there greyed out.\n */\n WHEN_AVAILABLE = 'when_available',\n}\n\n/**\n * Where an operation's ACTION sits in the action bar for this application.\n *\n * A per-app, **display-only** layout axis, orthogonal to authorization. When\n * omitted, placement is DERIVED from the operation's `riskLevel`: HIGH/CRITICAL\n * operations default to `DANGER_ZONE`, everything else to `PRIMARY`. Set it\n * explicitly to override that default — e.g. tuck a non-risky-but-rare action\n * into the danger zone, or keep a CRITICAL action inline in a dedicated admin\n * tool. The same axis drives the bulk action bar, since both are built from the\n * same operation pipeline.\n */\nexport enum ActionPlacement {\n /** Inline in the main action group. The default for low/medium-risk operations. */\n PRIMARY = 'primary',\n /**\n * Segregated into a trailing \"danger zone\" group, fenced off by a separator,\n * after every PRIMARY action. The default for HIGH/CRITICAL-risk operations\n * (destructive deletes, lifecycle suspends).\n */\n DANGER_ZONE = 'danger_zone',\n}\n\n/**\n * HOW an operation's action collects its input and shows its result — the chrome the user meets\n * when they click the button.\n *\n * ## Why this axis exists\n *\n * Until this axis, one rule decided the answer for every custom operation:\n * *has a `requestDto` ⇒ navigate*. So an action asking for a single reason string got the same\n * full-page treatment as a multi-step wizard, and the only way out was to author\n * `navigationOverrides` — per operation, in terms of a zone, a transition verb and an appearance.\n * Three concepts to answer one question.\n *\n * This is that one question. It is a **display-only** axis: backend authorization is untouched and\n * `roles` remain the only security authority, exactly like its siblings {@link ActionVisibility},\n * {@link ActionPlacement} and {@link ResourceOperationActionScope}.\n *\n * ## It is an ALIAS, not a parallel mechanism\n *\n * `MODAL` and `PAGE` do not render anything themselves — they resolve to the navigation transitions\n * that already exist (`OVERLAY`, and the ordinary chain), so there is one runtime mechanism and one\n * set of zone/appearance/URL semantics. `DIRECT`, `POPOVER` and `INLINE` never enter navigation at\n * all, because none of them is a destination: nothing is pushed, no zone changes, and there is\n * nothing for a back button to pop. `INLINE` is hosted by the collection the element belongs to —\n * see `InPlaceOperationContext` for why that is not the navigation layer's job.\n *\n * Consequently an explicit `navigationOverrides` entry still WINS over a presentation authored here\n * (it is the more specific instrument, and it is checked first in the resolution chain). Author this\n * axis to say what KIND of chrome the action wants; author `navigationOverrides` when you need to\n * name the zone, the appearance or the viewport yourself.\n *\n * ## When omitted\n *\n * It is DERIVED from the operation — see `resolveResourceOperationActionPresentation()`. An\n * operation that asks for nothing executes directly; a small field set opens a modal; input the\n * framework cannot fit in an overlay (files, nested writes, a large field set) keeps the page it\n * has always had. An operation whose `surface` is `ADDRESSABLE` always keeps its page: the author\n * has already said it is a deep-linkable destination.\n */\nexport enum ResourceOperationActionPresentation {\n /**\n * Execute on click, with no form at all — the confirmation dialog for a risky operation is the\n * only thing between the click and the request.\n *\n * Only meaningful for an operation that needs no caller input. Declaring it on an operation that\n * DOES have required request fields would send an empty body, so the resolver refuses to derive it\n * there and an author who declares it anyway gets the operation's fields dropped — check\n * `requestDto` before reaching for this.\n */\n DIRECT = 'direct',\n /**\n * A small form anchored to the button that opened it, dismissed by clicking away.\n *\n * The single-input idiom (\"assign to…\", \"snooze until…\"). Transient by construction: no URL, no\n * history entry, nothing to deep-link. Use it when the surrounding context is the point — the user\n * is reading the row they are acting on and must not lose sight of it.\n */\n POPOVER = 'popover',\n /**\n * The element being acted on transforms in place to collect the input, leaving its neighbours\n * visible — the row becomes the form rather than being covered by one.\n *\n * Use it when the surrounding rows are the point: the user is comparing, and an overlay would hide\n * the very thing that made them act on this row.\n *\n * **Transient, like {@link POPOVER}, and for the same reason.** Nothing is pushed, no URL changes,\n * and a reload returns the list to rest. An inline row-edit is a momentary state of a listing, not\n * a place — which is also why no admin framework deep-links one, and why anything that SHOULD be\n * linkable, reloadable or reachable by a back button wants {@link PAGE}.\n *\n * **It requires a collection.** The host is provided by the list the element belongs to\n * (`InPlaceOperationProvider`); the same action rendered on a detail page, in a danger zone or in a\n * picker has no row to transform and degrades to an overlay rather than becoming a dead button.\n *\n * Note it does NOT resolve to `NavigationTransition.INPLACE`. Element-level hosting uses none of\n * what the navigation layer offers — no zone, no stack entry, no appearance — and routing it there\n * is exactly why that transition has never done what its own docstring promises. See\n * `InPlaceOperationContext`.\n */\n INLINE = 'inline',\n /**\n * An overlay above the layout — the workhorse for \"a handful of fields\", and the default the\n * derivation reaches for.\n *\n * Resolves to {@link NavigationTransition.OVERLAY}. The concrete appearance (dialog / sheet /\n * drawer / panel) stays the app's decision, resolved from its navigation layout exactly as any\n * other overlay: this axis says \"an overlay\", not \"a dialog specifically\". Author\n * `navigationOverrides` when you need to name one.\n */\n MODAL = 'modal',\n /**\n * A routable page, resolved through the ordinary navigation chain (zone transitions, viewport\n * overrides, the framework `PUSH` fallback) — i.e. exactly the behaviour every parameterised\n * action had before this axis existed.\n *\n * The right answer for complex or multi-step input, and for anything a user should be able to\n * link to, reload, or reach with a back button.\n */\n PAGE = 'page',\n}\n\n/**\n * Does an operation's action target a SINGLE resource instance, or the WHOLE\n * collection in the current scope?\n *\n * A per-app **surfacing** axis, orthogonal to authorization. Most actions are\n * `ITEM` (edit / delete / retry one row) and render in the per-row and detail\n * action bars. A `COLLECTION` action operates on every row in scope at once\n * (e.g. \"retry all failed deliveries\", \"purge the queue\"): it renders ONCE in\n * the list's collection-action surface (the toolbar), never per row, and\n * confirms + executes in place rather than opening a per-row form.\n *\n * For a `COLLECTION` action to have a callable route, its operation must borrow\n * a COLLECTION verb via `resourceOperationLike` (`UPDATE_MANY` / `DELETE_MANY` /\n * `CREATE_MANY`) — an entity verb (`UPDATE` / `DELETE`) generates a route with a\n * `:id` segment the scope-level surface has no single row to fill.\n */\nexport enum ResourceOperationActionScope {\n /** Targets one resource instance — the per-row / detail action bars. The default when omitted. */\n ITEM = 'item',\n /** Targets the whole collection in scope — rendered once in the list's collection-action surface. */\n COLLECTION = 'collection',\n}\n\n/**\n * What happens to an operation's action when its `enabledCondition` is currently\n * unmet — the per-view default for actions that don't declare an explicit\n * `actionVisibility`. An explicit per-operation `actionVisibility` always wins\n * over this policy; feature-gated unavailability keeps its own\n * `FeatureUnavailabilityBehavior` (upgrade/prompt) and is never hidden by this.\n *\n * - `HIDE` — drop the action entirely while unavailable (as if it declared\n * `ActionVisibility.WHEN_AVAILABLE`). The framework default for BOTH views: a\n * greyed, non-actionable button is noise wherever it sits, and hiding it also\n * collapses mutually-exclusive state pairs (e.g. \"Set as recurring\" / \"Set as\n * one time\") down to the one that currently applies.\n * - `SHOW_DISABLED` — render the action greyed/disabled (the classic behavior).\n * Opt in per view when the disabled action + its reason tooltip is genuinely\n * informative and you want it always present.\n */\nexport enum DisabledActionHandling {\n SHOW_DISABLED = 'show_disabled',\n HIDE = 'hide',\n}\n\n/**\n * Per-view action-surfacing (disclosure) policy — how many actions stay visible\n * and how unavailable ones are treated, for ONE {@link ResourceOperationDisplayMode}.\n */\nexport interface ResourceActionDisclosureConfig {\n /**\n * How many PRIMARY actions render as direct buttons before the remainder\n * collapse into the `…` overflow menu. Omitted inherits the framework default\n * for the view ({@link DEFAULT_ACTION_DISCLOSURE}): 3 for SUMMARY, unlimited\n * for DETAIL. `0` pushes every action into the menu.\n */\n maxPrimaryActions?: number;\n /**\n * Default handling for actions disabled by an unmet `enabledCondition` — see\n * {@link DisabledActionHandling}. Omitted inherits the framework default,\n * which is `HIDE` for both views (set `SHOW_DISABLED` here to keep disabled\n * actions greyed-but-present for a view).\n */\n disabledActionHandling?: DisabledActionHandling;\n}\n\n/** Fully-resolved disclosure policy (no optional fields) for one view. */\nexport interface ResolvedActionDisclosure {\n /** `undefined` = unlimited (no overflow cap). */\n maxPrimaryActions: number | undefined;\n disabledActionHandling: DisabledActionHandling;\n}\n\n/**\n * Framework defaults per view. Both views HIDE actions disabled by an unmet\n * `enabledCondition` — an inapplicable, greyed button is noise everywhere, so\n * the bar only ever shows actions the user can actually take right now. They\n * differ on the overflow cap: SUMMARY (dense list/table rows) shows at most 3\n * direct actions before the `…` menu; DETAIL (roomy read view) is uncapped.\n * A resource that WANTS the informative greyed-with-reason affordance opts into\n * `SHOW_DISABLED` per view via `layout.actionDisclosure`.\n */\nexport const DEFAULT_ACTION_DISCLOSURE: Record<ResourceOperationDisplayMode, ResolvedActionDisclosure> = {\n [ResourceOperationDisplayMode.SUMMARY]: {\n maxPrimaryActions: 3,\n disabledActionHandling: DisabledActionHandling.HIDE,\n },\n [ResourceOperationDisplayMode.DETAIL]: {\n maxPrimaryActions: undefined,\n disabledActionHandling: DisabledActionHandling.HIDE,\n },\n};\n\n/**\n * Resolve the effective disclosure policy for a view: per-resource override\n * (`layout.actionDisclosure[view]`) layered over the framework default. Used by\n * both the action-building hook (disabled handling) and the operations-items\n * host (overflow cap).\n */\nexport function resolveActionDisclosure(\n displayMode: ResourceOperationDisplayMode,\n disclosure: Partial<Record<ResourceOperationDisplayMode, ResourceActionDisclosureConfig>> | undefined,\n): ResolvedActionDisclosure {\n const base = DEFAULT_ACTION_DISCLOSURE[displayMode] ?? DEFAULT_ACTION_DISCLOSURE[ResourceOperationDisplayMode.DETAIL];\n const override = disclosure?.[displayMode];\n return {\n maxPrimaryActions: override?.maxPrimaryActions ?? base.maxPrimaryActions,\n disabledActionHandling: override?.disabledActionHandling ?? base.disabledActionHandling,\n };\n}\n\n/**\n * 2-axis card action-button placement. Single source of truth for the config\n * field AND the `card-action-placement.utils` resolver (which imports the\n * `CardActionPlacement` type inferred from this schema, so the two can never\n * drift). `MIDDLE × MIDDLE` is rejected — dead-center overlaps the card content.\n */\nexport const CardActionPlacementSchema = z.object({\n vertical: z.enum(VerticalPlacement),\n horizontal: z.enum(HorizontalPlacement),\n orientation: z.enum(DisplayDirection).optional(),\n}).refine(\n (p) => !(p.vertical === VerticalPlacement.MIDDLE && p.horizontal === HorizontalPlacement.MIDDLE),\n { message: 'cardActionPlacement cannot be MIDDLE × MIDDLE (dead-center overlaps card content); choose an edge or corner.' },\n);\n\n/** Authored 2-axis card action placement — inferred from {@link CardActionPlacementSchema}. */\nexport type CardActionPlacement = z.infer<typeof CardActionPlacementSchema>;\n\n/**\n * Who paints the identity GLYPH on this operation's page header.\n *\n * The header band renders the resource's registry icon beside the identity line by default. A\n * `layout.header` template that composes its own record-linked glyph (a per-row kind icon, a\n * per-family symbol) would otherwise sit BESIDE the resource icon — two glyphs naming one thing.\n *\n * Declared at the OPERATION layer rather than detected from the template, deliberately: the\n * resource icon renders before the template mounts, so detection could only suppress it after the\n * fact — a glyph that flashes and vanishes on every load. Mirrors\n * `SummaryTitlePlacement.TEMPLATE_OWNED`, the same contract one surface over: ceding a\n * framework-owned element to the template is a declaration, not an inference.\n */\nexport enum HeaderIconPlacement {\n /** The framework renders the resource's registry icon (default). */\n AUTO = 'auto',\n /** The header template owns the glyph; the framework renders none. */\n TEMPLATE_OWNED = 'template_owned',\n}\n\nexport const ResourceOperationFrontendConfigSchema = z.object({\n /**\n * The operation's frontend **surface** — see {@link ResourceOperationFrontendSurface}.\n * `ADDRESSABLE` (routable page) and `EMBEDDED` (non-addressable view rendered within\n * a host — overlay/composite/nested) both have a view + action button; `API_ONLY` is\n * headless (no view, no button). The view fields below (`actionVisibility`,\n * `customView`, `iconOverride`, layout, …) apply only to `ADDRESSABLE`/`EMBEDDED`; a\n * build-time check rejects them on `API_ONLY`.\n * Replaces the former `isAddressable` boolean — read via `isOperationAddressable()`.\n */\n surface: z.enum(ResourceOperationFrontendSurface),\n /** Who paints the page header's identity glyph — see {@link HeaderIconPlacement}. Omitted = AUTO. */\n headerIconPlacement: z.enum(HeaderIconPlacement).optional(),\n /**\n * How this operation's action is surfaced — see {@link ActionVisibility}. Omitted\n * (the common case) behaves as `ALWAYS`.\n */\n actionVisibility: z.enum(ActionVisibility).optional(),\n /**\n * Where this operation's action sits in the bar — see {@link ActionPlacement}.\n * Omitted derives from `riskLevel` (HIGH/CRITICAL → danger zone, else primary).\n */\n actionPlacement: z.enum(ActionPlacement).optional(),\n /**\n * Visual button variant (colour) for this operation's action — a\n * `ButtonVariants_Variant` (e.g. `DESTRUCTIVE`, `GHOST`, `ACCENT`). Omitted\n * derives from `riskLevel` (HIGH/CRITICAL → destructive/red, else ghost). Typed\n * on the interface below; the Zod field stays `z.any()` because the enum lives\n * in a component module a schema must not pull at runtime (same as `iconOverride`).\n */\n actionVariant: z.any().optional(),\n /**\n * Does this action target one row or the whole collection — see\n * {@link ResourceOperationActionScope}. Omitted behaves as `ITEM`. A\n * `COLLECTION` action renders once in the list's collection-action surface\n * (never per row) and confirms + executes in place; pair it with a COLLECTION\n * `resourceOperationLike` (`*_MANY`) so its generated route carries no `:id`.\n */\n actionScope: z.enum(ResourceOperationActionScope).optional(),\n /**\n * For an `ITEM` action whose backend addresses the target row by a field in\n * the REQUEST BODY (not the URL id), the request-DTO field name to fill with\n * the clicked row's id. When set, clicking the action executes IN PLACE —\n * sending `{ [rowTargetRequestField]: <rowId> }` — instead of opening a form:\n * e.g. a per-row \"Retry\" whose handler reads `{ entryId }` from the body. (The\n * row id still rides the URL path too, which the handler may ignore.)\n */\n rowTargetRequestField: z.string().optional(),\n /**\n * HOW this action collects its input — see {@link ResourceOperationActionPresentation}.\n * Omitted derives from the operation (`resolveResourceOperationActionPresentation`): no input\n * executes directly, a small field set opens a modal, complex input keeps its page.\n *\n * Display-only. An explicit `navigationOverrides` entry is the more specific instrument and wins\n * over whatever this resolves to.\n */\n actionPresentation: z.enum(ResourceOperationActionPresentation).optional(),\n customView: z.any().optional(),\n displayPresetOverride: z.object({\n resourceLayoutPresetKey: z.string().optional(),\n }).optional(),\n navigationOverrides: z.array(NavigationOperationOverrideSchema).optional(),\n displayPriority: z.number().optional(),\n iconOverride: z.any().optional(),\n collectionDisplayConfig: z.object({\n displayMode: z.enum(CollectionDisplayMode).optional(),\n userSwitchableDisplayMode: z.boolean().optional(),\n /**\n * Promote ONE enum filter field to a prominent quick-filter tab strip\n * rendered above the collection toolbar (\"All · <value> · <value> …\" —\n * the Stripe/Ignisign webhook-dashboard idiom, e.g. All/Delivered/Failed).\n *\n * The named field MUST be an enum member of the operation's backend\n * `filterFields` — the tabs write into the SAME filter state as the\n * filters panel (selecting a tab filters server-side), and the field is\n * removed from the panel/chips so there is never a second competing\n * control for it. Unknown / non-enum field names degrade gracefully\n * (no tab strip, field stays in the panel). Tab labels reuse the enum\n * value i18n (`tResourceFieldEnumValue`).\n */\n quickFilterField: z.string().optional(),\n /**\n * Group CARDS-mode rows into day buckets by this date field, rendering a\n * date heading between groups (activity-feed idiom for log-like\n * collections, e.g. webhook deliveries by day). Purely presentational:\n * grouping applies to the fetched page in its server order — pair it\n * with a default sort on the same field so buckets are contiguous.\n * Ignored in TABLE mode (column sorting owns the ordering there). Rows\n * whose field value is missing/unparsable render in a trailing bucket\n * without a date heading rather than being dropped.\n */\n temporalGroupField: z.string().optional(),\n /**\n * Group CARDS-mode rows into buckets by this ENUM field, rendering the\n * enum value's own label as a heading between groups.\n *\n * Sibling of {@link temporalGroupField}, and deliberately NOT the same\n * algorithm. Temporal grouping ADJACENT-MERGES in server order, because\n * dates are open-ended and a page can legitimately revisit one. An enum is\n * a CLOSED, ORDERED vocabulary, so its buckets are emitted in the enum's\n * DECLARATION ORDER regardless of the order rows arrived in — the\n * declaration is the authority for \"which concern comes first\", and a\n * server sort cannot express it without a second, drifting copy of that\n * order. Rows are therefore collected across the whole fetched page rather\n * than merged adjacently, and no sort needs pairing with it.\n *\n * Headings resolve through `tResourceFieldEnumValue` — the SAME source the\n * filters panel and the promoted quick-filter tabs use, so a bucket\n * heading and its tab can never disagree.\n *\n * Ignored in TABLE mode (column sorting owns the ordering there). Rows\n * whose value is absent, or outside the vocabulary, render in a trailing\n * bucket with no heading rather than being dropped — the same fail-open\n * the temporal grouping makes.\n */\n enumGroupField: z.string().optional(),\n /**\n * CARDS-mode arrangement — a single-column bordered LIST (default) or an\n * N-column responsive GRID. See {@link CardLayoutStyle}. `columns` (1–6) is\n * the TARGET maximum; the grid steps DOWN to fewer columns as the grid's own\n * available WIDTH narrows (an intrinsic `auto-fill minmax` track spec — so a\n * grid embedded in a narrow pane collapses even on a wide viewport, with no\n * media breakpoint). Authors give one N; the framework handles the rest.\n * Ignored in TABLE mode.\n *\n * @example\n * cardLayout: { style: CardLayoutStyle.GRID, columns: 3 }\n */\n cardLayout: z.discriminatedUnion('style', [\n z.object({ style: z.literal(CardLayoutStyle.LIST) }),\n z.object({\n style: z.literal(CardLayoutStyle.GRID),\n columns: z.number().int().min(1).max(6),\n }),\n ]).optional(),\n /**\n * Where each card's per-item action buttons sit, as a 2-axis anchor:\n * `vertical` ({@link VerticalPlacement} TOP/MIDDLE/BOTTOM) × `horizontal`\n * ({@link HorizontalPlacement} START/MIDDLE/END, RTL-aware). `orientation`\n * ({@link DisplayDirection}) lays the button set out as a row (HORIZONTAL,\n * default) or a vertical stack (VERTICAL). Omitted → the classic\n * MIDDLE × END horizontal row.\n *\n * `MIDDLE × MIDDLE` is rejected (dead-center overlaps the card content and\n * has no sensible meaning).\n *\n * @example\n * cardActionPlacement: { vertical: VerticalPlacement.TOP, horizontal: HorizontalPlacement.END }\n */\n cardActionPlacement: CardActionPlacementSchema.optional(),\n /**\n * Enable per-item SELECTION (checkboxes on cards / a select column in the\n * table) and the resulting BULK ACTION bar. Explicit opt-in per view. The\n * bar surfaces only operations declared `isBulkOperation` — a `selectable`\n * view with no bulk operations shows checkboxes that drive an empty bar, so\n * pair it with at least one bulk operation. Selection state is shared across\n * the cards↔table toggle (it does not reset when switching modes).\n */\n selectable: z.boolean().optional(),\n }).optional(),\n /**\n * Opt this operation into a generated per-operation description label\n * (`resources.{res}.operations.{op}.description`, read via `tResourceOperation`).\n * Default off — most operations need no description (making it mandatory for\n * every operation is far too verbose). Surfaces that show one (e.g. the danger\n * zone) fall back to risk-based copy when this is unset. Mirrors how fields opt\n * into a description via the `.describe()` decorator.\n */\n hasDescription: z.boolean().optional(),\n /**\n * What happens to an ADJACENT zone (secondary / companion) this operation\n * splits into, once that zone's last content is dismissed — overriding the\n * zone's own `onEmpty` while this operation occupies primary.\n *\n * The zone-level `ZoneConfig.onEmpty` is one value for every destination that\n * splits into that zone, and destinations legitimately disagree: a LIST wants\n * the detail pane to stay put (`EMPTY_STATE`) so the layout does not reflow\n * while a reviewer steps through rows, while a CANVAS wants its width back\n * (`COLLAPSE`) the moment nothing is selected. Both share one secondary zone,\n * so without this override one of them is always wrong.\n *\n * Declared on the SOURCE operation — the one occupying primary — not on the\n * operation that lands in the pane: it answers \"what should MY layout do when\n * the detail closes\", which is a property of the surface being returned to.\n *\n * Omitted (the common case) defers to the zone, which itself defaults to\n * `ZoneEmptyBehavior.COLLAPSE`. Resolution order is destination → zone →\n * COLLAPSE; see `resolveZoneEmptyBehavior`.\n */\n adjacentZoneOnEmpty: z.enum(ZoneEmptyBehavior).optional(),\n /**\n * How wide this destination's content may grow in the zone, in the framework's shared width\n * vocabulary — the SAME `ResponsiveMaxWidth` a Surface, a `DisplayLayout` and a `FormLayout` use.\n *\n * Omitted (the common case) is `'content'`: capped and centred at `var(--content-max-width, 80rem)`,\n * right for a form, a list or a detail page and wrong only for content whose value IS the space it\n * occupies — a board, a wide table, a canvas — which declare `'none'`.\n */\n zoneContentMaxWidth: z.enum(RESPONSIVE_MAX_WIDTH_VALUES).optional(),\n /**\n * Whether this destination's content fills the zone's HEIGHT as well.\n *\n * `true` makes the zone's content boundary a definite-height flex column, so this view's root may use\n * `flex-1 min-h-0` and resolve against something real. Without it a canvas has no intrinsic height\n * and collapses to zero — which is why one had to hand-roll `h-[70vh]`, sizing against the WINDOW\n * rather than the container it sits in. PRIMARY only: an adjacent zone scrolls, so a filling child\n * and a scrolling parent contradict each other.\n *\n * Separate from the width above ON PURPOSE — see `zone-content-geometry.ts` for why the enum that\n * fused them could not express a capped width with a definite height.\n */\n zoneContentFillsHeight: z.boolean().optional(),\n});\n\n/**\n * TypeScript interface for `ResourceOperationFrontendConfigSchema`.\n * `iconOverride`, `customView`, and `actionVariant` are typed with their real\n * React/enum values even though the Zod schema uses `z.any()` — Zod cannot\n * validate function types, and `actionVariant`'s enum lives in a component\n * module the schema must not import at runtime.\n */\nexport type ResourceOperationFrontendConfig = Omit<z.infer<typeof ResourceOperationFrontendConfigSchema>, 'iconOverride' | 'customView' | 'actionVariant'> & {\n iconOverride?: IconLike;\n customView?: React.ComponentType;\n actionVariant?: ButtonVariants_Variant;\n};\n/** @wildo_source:part:end saas.frontend.resource-operation-frontend-config */\n\n/**\n * Is this operation's frontend surface URL-addressable (a routable page)?\n *\n * The canonical replacement for the former `isAddressable` boolean field — read\n * `surface` rather than storing addressability, so the three surfaces stay a\n * single source of truth. Safe on `undefined` (an operation whose frontend\n * config has not been resolved yet is treated as not addressable).\n */\nexport function isOperationAddressable(\n config?: Pick<ResourceOperationFrontendConfig, 'surface'>,\n): boolean {\n return config?.surface === ResourceOperationFrontendSurface.ADDRESSABLE;\n}\n\n/**\n * Is this operation headless — callable as an API with no rendered interface\n * (no page, no overlay, no action button)? See {@link ResourceOperationFrontendSurface.API_ONLY}.\n */\nexport function isOperationHeadless(\n config?: Pick<ResourceOperationFrontendConfig, 'surface'>,\n): boolean {\n return config?.surface === ResourceOperationFrontendSurface.API_ONLY;\n}\n\n/**\n * Does this operation's action target the whole collection in scope, rather than\n * a single row? See {@link ResourceOperationActionScope}. Safe on `undefined`\n * (treated as `ITEM`). Collection-scoped actions render ONLY in the list's\n * collection-action surface (the toolbar) and are excluded from the per-row,\n * detail, danger-zone, and bulk bars.\n */\nexport function isCollectionScopedOperation(\n config?: Pick<ResourceOperationFrontendConfig, 'actionScope'>,\n): boolean {\n return config?.actionScope === ResourceOperationActionScope.COLLECTION;\n}\n\n/**\n * Resource-owned **composite** templates keyed by view ref (authoring form).\n *\n * **How to use:** set `compositeViews` on `ResourceUIBehaviorConfig` to\n * `ResourceCompositeViewAuthoringConfig` objects. Each composite renders\n * inside exactly one resource operation host, declared via\n * {@link ResourceCompositeViewAuthoringConfig.operationLike} (defaulting to\n * `CoreResourceOperation.READ`). Prefer `executionViews` / `chartViews` for\n * those families instead of overloading composites.\n *\n * Note: this type is **distinct** from `AppCompositeViewsConfig`. Only\n * resource composites carry `operationLike`, because app-level composites have\n * no resource operation host to surface into.\n */\nexport type ResourceCompositeViewsConfig = Record<string, ResourceCompositeViewAuthoringConfig>;\n\n\n// ── Resource-level label function params ────────────────────────────\n\n/**\n * Parameters passed to `getFrontendResourceLabel` functions.\n *\n * Generic `TMainSchema` defaults to `z.ZodAny` — presets and records use the\n * default (giving `currentObject: any`), while app-level configs can narrow it\n * to a concrete schema for type-safe field access.\n */\nexport type ResourceUIBehaviorLabelParams<TMainSchema extends z.ZodTypeAny = z.ZodAny> = {\n currentObject: z.infer<TMainSchema>;\n objectContext: any;\n initiatorUserContext?: any;\n t: (toTranslate: string, params?: Record<string, any>) => string;\n};\n\n// ── Layout system types (Phase 5) ───────────────────────────────────\n\n/** @wildo_source:part:start saas.frontend.resource-layout-templates facet:layer:frontend facet:family:resource-ui */\n/**\n * Static manifest of structural refs used in JSX templates.\n * Readable by the companion without JSX/AST parsing.\n *\n * Produces i18n keys:\n * - `resources.{type}.sections.{ref}.title`\n * - `resources.{type}.sections.{ref}.description`\n * - `resources.{type}.wizardSteps.{ref}.title`\n * - `resources.{type}.wizardSteps.{ref}.description`\n * - `resources.{type}.groups.{ref}.title`\n */\nexport interface LayoutRefManifest {\n /** Section names used in `<Section name=\"...\">` components. */\n sections?: string[];\n /** Wizard step names used in `<WizardStep name=\"...\">` components. */\n wizardSteps?: string[];\n /** Group names used in `<Group name=\"...\">` components. */\n groups?: string[];\n}\n\n/**\n * Layout template — a React component rendered inside the appropriate provider stack.\n *\n * - Edit context: rendered inside `<Form>` providers. Use `useFormTemplateContext()` for\n * labels/schema/operation and `useWatch()` for field-reactive branching.\n * - Display context: rendered inside `<DisplayTemplateProvider>` by `AutomaticDisplayer`.\n * Use `useDisplayTemplateContext()` for `data`, `isLoading`, `schema`, labels, and breakpoint.\n * - Summary context: same as display, rendered by `ResourceSummaryDisplayer` with\n * `disableInlineEdit={true}` and compact chrome (INLINE default).\n */\nexport type LayoutTemplate = React.ComponentType;\n\n/**\n * Resource layout configuration — template-based layout for forms and displays.\n *\n * Templates use skeleton components (`<FormField>`, `<Section>`,\n * `<WizardLayout>`, `<DisplayField>`, etc.) with Tailwind CSS for positioning.\n * Conditional visibility is handled with `useWatch()` and standard React conditionals.\n *\n * When no template is provided for a context, the framework generates a\n * default flat template at runtime from the schema.\n *\n * **How to use:** set `layout: { refs, edit, display, summary }` on the object returned\n * from `resourceUIBehavior()`. Every `<Section name=\"…\">`, `<WizardStep name=\"…\">`, and\n * `<Group name=\"…\">` in those templates should appear under `refs` for i18n and\n * companion validation. Omit `edit` / `display` / `summary` individually to keep the\n * auto-generated default for that context only.\n */\nexport interface ResourceLayoutConfig {\n\n /**\n * Companion-readable manifest of all structural names used in templates.\n * Required for i18n label generation.\n * Dev-time validation cross-checks manifest names against template `name` props.\n */\n refs?: LayoutRefManifest;\n\n /**\n * Default chrome mode for fields in each context.\n * Used when a field's `{primitive}UI.{context}.chromeMode` is not set.\n * Renderers read: `{primitive}UI.{context}.chromeMode ?? layout.defaultChromeMode.{context} ?? system-default`\n */\n defaultChromeMode?: {\n /** Default chrome for display context. */\n display?: ResponsiveAware<DisplayChromeMode>;\n /** Default chrome for summary context. */\n summary?: ResponsiveAware<DisplayChromeMode>;\n /** Default chrome for edit context. */\n edit?: ResponsiveAware<EditChromeMode>;\n };\n\n /**\n * Per-view override for how this resource's action buttons render their\n * label, keyed by {@link ResourceOperationDisplayMode} (`SUMMARY` = list/table\n * rows & cards, `DETAIL` = full read view). Overrides the app-wide theme\n * default (`ComponentStyleTheme.actionLabelDisplayMode`). Omit a key to\n * inherit the app default for that view.\n *\n * Precedence: `layout.actionLabelDisplayMode[view]` → app theme default → `TOOLTIP`.\n *\n * @example\n * // Dense list rows stay icon-only; the full detail view spells actions out.\n * actionLabelDisplayMode: {\n * [ResourceOperationDisplayMode.SUMMARY]: ActionLabelDisplayMode.TOOLTIP,\n * [ResourceOperationDisplayMode.DETAIL]: ActionLabelDisplayMode.INLINE,\n * }\n */\n actionLabelDisplayMode?: Partial<Record<ResourceOperationDisplayMode, ActionLabelDisplayMode>>;\n\n /**\n * Per-view action-surfacing (disclosure) policy — see {@link ResourceActionDisclosureConfig}.\n * Controls how many actions stay visible before overflow (`maxPrimaryActions`)\n * and whether actions disabled by an unmet `enabledCondition` are hidden or\n * greyed (`disabledActionHandling`), keyed by {@link ResourceOperationDisplayMode}.\n * Omit a view (or a field) to inherit the framework default\n * ({@link DEFAULT_ACTION_DISCLOSURE}): SUMMARY = { max 3, hide-disabled },\n * DETAIL = { unlimited, hide-disabled }.\n *\n * @example\n * // A busy list keeps just one action inline; the detail view spells them all out.\n * actionDisclosure: {\n * [ResourceOperationDisplayMode.SUMMARY]: { maxPrimaryActions: 1 },\n * }\n */\n actionDisclosure?: Partial<Record<ResourceOperationDisplayMode, ResourceActionDisclosureConfig>>;\n\n /**\n * Edit layout template — a `React.ComponentType` rendered inside `<Form>` providers.\n * The component is instantiated as `<EditTemplate />` and has access to\n * `useFormTemplateContext()` for labels/schema/operation and `useWatch()` for reactivity.\n * For operation-specific branching, read `operationType` from `FormTemplateContext`.\n * Standard `<FormField name=\"...\">` slots automatically honor upstream\n * generated replacements (for example relationship-backed fields reshaped by\n * `ResourceAutomatedForm`). When a generated override exists, that replacement\n * node owns its own chrome and ignores extra `FormField`-style props passed at\n * the template slot.\n */\n edit?: LayoutTemplate;\n\n /**\n * Display layout template — rendered for read-only detail views.\n * The component is instantiated inside `<DisplayTemplateProvider>` and has access to\n * `useDisplayTemplateContext()` for `data`, `isLoading`, `variant`, labels, and breakpoint.\n */\n display?: LayoutTemplate;\n\n /**\n * Header layout template — the record's IDENTITY LINE in the READ page header.\n *\n * The header band is framework-owned chrome (back button, breadcrumb, resource\n * icon, action cluster) wrapped around one middle region: the record's name.\n * Authoring this template cedes that middle region to the resource, so state\n * that belongs ON the identity line — a status badge, a visibility marker, an\n * accent swatch — sits beside the name instead of in a labelled strip below it.\n *\n * Rendered inside a display-template provider over the loaded record, so\n * `<DisplayField name=\"…\">` and `useDisplayTemplateContext()` work exactly as\n * they do in `display` / `summary`. Inline editing is off (the header shows\n * state, it does not edit it) and chrome defaults to `INLINE` so fields render\n * bare, without their labels.\n *\n * **Place `<ResourceHeaderTitle />` yourself.** The header stops rendering its\n * own title once this template exists, so a template that omits the element\n * produces a page with no record name (a dev warning names the resource).\n *\n * Distinct from `summary` on purpose: a card/FK-popover summary answers \"how\n * does this record identify itself in a LIST\", and commonly carries fields a\n * page header should not repeat. Both surfaces compose the same way; neither\n * inherits the other's body.\n *\n * @example\n * // Accent dot before the name, status badge after it, \"Public\" only when true:\n * header: () => {\n * const { data, fieldLabels } = useDisplayTemplateContext();\n * return (\n * <>\n * {Boolean(data?.color) && <ColorDot value={String(data.color)} />}\n * <ResourceHeaderTitle />\n * <DisplayField name=\"status\" hideLabel className=\"w-auto\" />\n * {Boolean(data?.isPublic) && <Badge>{fieldLabels.isPublic}</Badge>}\n * </>\n * );\n * }\n */\n header?: LayoutTemplate;\n\n /**\n * Summary layout template — rendered for cards, list items, FK references.\n * Typically a compact single-line or small card layout.\n * The component is instantiated inside `<DisplayTemplateProvider>` by `ResourceSummaryDisplayer`,\n * with `disableInlineEdit={true}` and chrome defaulting to `DisplayChromeMode.INLINE`.\n * Use `useDisplayTemplateContext()` for reactive data access.\n *\n * **The title is part of the template flow.** Wrap the body in `<SummaryLayout>`;\n * by default (`titlePlacement={AUTO}`) it renders the resource's primary label\n * (`<SummaryTitle />`) at the top, then your fields below — the classic\n * title-above-body card. To put something on the title's line (a status badge),\n * switch to `titlePlacement={TEMPLATE_OWNED}` and place `<SummaryTitle />`\n * yourself, typically inside a `<SummaryHeader>`:\n *\n * @example\n * // Title above a couple of fields (title rendered automatically):\n * summary: () => (\n * <SummaryLayout>\n * <DisplayField name=\"createdAt\" />\n * </SummaryLayout>\n * )\n *\n * @example\n * // Status badge inline with the title:\n * summary: () => (\n * <SummaryLayout titlePlacement={SummaryTitlePlacement.TEMPLATE_OWNED}>\n * <SummaryHeader>\n * <SummaryTitle />\n * <DisplayField name=\"status\" hideLabel />\n * </SummaryHeader>\n * <DisplayField name=\"createdAt\" />\n * </SummaryLayout>\n * )\n */\n summary?: LayoutTemplate;\n\n}\n/** @wildo_source:part:end saas.frontend.resource-layout-templates */\n\n\n// ── Relationship display overrides ──────────────────────────────────\n\n/**\n * Per-relationship display override declared on the **owning resource's** preset.\n *\n * Each entry targets a specific relationship by `target` resource type (and\n * optionally `foreignKeyField` for disambiguation when multiple relationships\n * exist to the same type). The `inParentNavigation` /\n * `inChildView` sub-objects are shallow-merged onto the relationship's shared\n * `display` config during registry build — frontend values win over shared defaults.\n *\n * **Ownership principle**: each resource configures its own view:\n * - `inParentNavigation` → \"how does navigation from **my view** to this child behave?\"\n * - `inChildView` → \"how does the parent reference appear **in my view** when I'm the child?\"\n *\n * @example\n * ```ts\n * relationshipOverrides: [\n * // I'm parent of TASKS — make Tasks appear as accordion in MY view\n * { target: ResourceType.TASKS,\n * // I'm child of USERS (FK: assignedToUserId) — show user as badge in MY view\n * { target: ResourceType.USERS, foreignKeyField: 'assignedToUserId',\n * inChildView: { parentDisplay: ParentDisplay.BADGE } },\n * ]\n * ```\n */\nexport interface RelationshipDisplayOverride {\n /** Related resource type to match against. */\n target: string;\n /**\n * FK field name for disambiguation when multiple relationships exist to the\n * same `target` type. Matches against both explicit `rel.foreignKeyField` and\n * implied FK from `allResourceFieldIdentifiers`.\n */\n foreignKeyField?: string;\n /** Override for how children appear in THIS resource's view (when I'm parent). */\n /** Override for how navigation from THIS resource's view to the child behaves. */\n inParentNavigation?: Partial<RelationshipDisplayInParentNavigation>;\n /** Override for how parent reference appears in THIS resource's view (when I'm child). */\n inChildView?: Partial<RelationshipDisplayInChildView>;\n}\n\n\n// ── Resource-level frontend config ──────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.frontend.resource-ui-behavior-config facet:layer:frontend facet:family:resource-ui\n *\n * Complete frontend configuration for a single resource within an application.\n *\n * Canonical frontend resource configuration type. Contains resource-level settings\n * (labels, sections, views, empty state, guidance) plus per-operation frontend config.\n *\n * Generic `TMainSchema` defaults to `z.ZodAny`. Presets and `ResourceUIBehavior`\n * records use the default; app-level configs can narrow it to a concrete schema\n * for type-safe `getFrontendResourceLabel` callbacks.\n *\n * This is the canonical frontend type — it is self-contained and does not\n * reference or depend on backend resource configuration factories.\n *\n * UI views use a `Map` keyed by `OperationKey`:\n * - `string` key for default operations\n * - `[operationId, variantKey]` tuple for non-default variants\n *\n * @example\n * ```\n * const orgConfig: ResourceUIBehaviorConfig<any, any, typeof OrgSchema> = {\n * getFrontendResourceLabel: ({ currentObject }) => currentObject.name, // type-safe\n * views: new Map([\n * [CoreResourceOperation.CREATE, notAddressable()],\n * [CoreResourceOperation.LIST, addressable()],\n * ]),\n * };\n *\n * // Input form (via resourceUIBehavior callback) uses array-of-tuples:\n * // views: [\n * // [CoreResourceOperation.CREATE, notAddressable()],\n * // [CoreResourceOperation.LIST, addressable()],\n * // ],\n * ```\n */\nexport type ResourceUIBehaviorConfig<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = {\n\n // ── Resource Icon ──────────────────────────────────────────────\n\n /**\n * Resource-level icon — React component (e.g., Lucide) or string\n * (StandardIconReference). Registered into `IconRegistry.resources`\n * during `buildFrontendResourceConfigurations()`.\n */\n icon?: IconLike;\n\n\n // ── Field Addons ───────────────────────────────────────────────\n\n /**\n * Per-field decorator overrides for the resource's `mainSchema`.\n *\n * Keys are field names of `TMainSchema`; values are decorated Zod schemas\n * from the same shape (e.g., `shape.status.enumUI({ ... })`).\n *\n * The merge happens at **module evaluation time** — calling `.enumUI()`\n * on a shape field mutates its metadata in place via `applySingleDecorator`\n * merge semantics. Schema-level decorators are preserved, addon decorators\n * overlay. No explicit runtime consumption is needed; the `fields`\n * field exists primarily for type safety (`keyof z.infer<TMainSchema>`)\n * and as a declaration container.\n *\n * @example\n * ```ts\n * fields: {\n * status: shape.status.enumUI({\n * values: { pending: { color: 'secondary' }, completed: { color: 'success' } },\n * }),\n * }\n * ```\n */\n fields?: {\n [K in keyof ObjectShape<TMainSchema>]?: ObjectShape<TMainSchema>[K];\n };\n\n\n // ── Form Defaults ──────────────────────────────────────────────\n\n /**\n * Resource-level default validation mode for form fields.\n * Individual fields can override via `{primitive}UI({ edit: { validationMode } })`.\n * Falls back to framework default (`ON_BLUR`) when not set.\n */\n defaultValidationMode?: ValidationMode;\n\n /**\n * Resource-level default autosave config for form fields.\n * Individual fields can override via `{primitive}UI({ edit: { autosave } })`.\n * When not set, autosave is disabled unless explicitly configured per-field.\n */\n defaultAutosave?: AutosaveFieldParams | true;\n\n\n // ── Draft Mode ─────────────────────────────────────────────────\n\n /**\n * Resource-level draft mode configuration.\n * Defines how draft/publish discrimination works — which field acts as\n * discriminator, what values mean \"draft\" vs \"published\", and whether\n * publishing requires confirmation.\n *\n * Consumed by `ResourceAutomatedForm` to enable Save-as-Draft / Publish\n * buttons and relaxed validation for draft saves.\n */\n draftableConfig?: DraftableConfigParams;\n\n\n // ── Layout ──────────────────────────────────────────────────────\n\n /**\n * Template-based layout configuration. Resources needing sections, wizard steps,\n * or custom layouts provide explicit JSX templates using skeleton components\n * (`<Section>`, `<FormField>`, `<WizardLayout>`, etc.).\n *\n * @see ResourceLayoutConfig\n */\n layout?: ResourceLayoutConfig;\n\n\n // ── Label ──────────────────────────────────────────────────────\n\n /**\n * Label generation for resource instances in the frontend.\n *\n * Can be either:\n * - `string[]` — array of field paths to concatenate (each entry is a field\n * name on the summary record, including any server-resolved virtual field\n * such as a `forwardedLabel`, e.g. `['instanceLabel']`).\n * - `(params: ResourceUIBehaviorLabelParams) => string` — a function\n *\n * Used by `ResourceListItemRenderer` (rows) and `ResourceLayout_Header` (titles).\n */\n getFrontendResourceLabel?: string[] | ((params: ResourceUIBehaviorLabelParams<TMainSchema>) => string);\n\n\n // ── Views ──────────────────────────────────────────────────────\n\n /** Resource-owned composite templates declared inline on the resource UI behavior. */\n compositeViews?: ResourceCompositeViewsConfig;\n\n /** Resource-owned execution surfaces declared inline on the resource UI behavior. */\n executionViews?: ResourceExecutionViewsConfig;\n\n /** Resource-owned inserted chart declarations for this resource. */\n chartViews?: InsertedChartDeclaration[];\n\n\n // ── Empty State ────────────────────────────────────────────────\n\n /**\n * Empty state configuration for list/table views when no items exist.\n * Labels (title, description, primaryActionLabel) come from i18n.\n */\n emptyState?: ResourceUIBehavior_EmptyState;\n\n\n // ── Guidance ───────────────────────────────────────────────────\n\n /**\n * Resource-level guidance flow declarations.\n * Compiled into standard `GuidanceFlowDefinition` objects by the guidance compiler.\n */\n guidance?: ResourceUIBehavior_GuidanceFlow[];\n\n\n // ── Relationship Display Overrides ───────────────────────────────\n\n /**\n * Per-relationship display overrides for this resource.\n *\n * Allows the frontend preset to override how relationships are displayed\n * without modifying the shared `display` config on the relationship itself.\n * Consumed at build time by `resolveRelationshipDisplayOverrides()` and\n * stripped from `frontendConfiguration` before storage.\n *\n * @see RelationshipDisplayOverride\n */\n relationshipOverrides?: RelationshipDisplayOverride[];\n\n\n // ── UI Views ───────────────────────────────────────────────────\n\n /**\n * Per-operation frontend configuration — which operations have a UI view\n * and how they appear (addressability, launchers, overrides).\n *\n * Keyed by `TypedOperationKey`:\n * - `string` — default operation (e.g., `CoreResourceOperation.READ`)\n * - `[operationId, variantKey]` — non-default variant\n *\n * When typed via `resourceUIBehavior()`, operation keys are validated\n * at compile time against the resource's valid operations.\n */\n views: Map<TypedOperationKey<TCustomOp, TCoreOp>, ResourceOperationFrontendConfig>;\n};\n/** @wildo_source:part:end saas.frontend.resource-ui-behavior-config */\n\n/**\n * Resource-level UI behavior configuration — the subset of `ResourceUIBehaviorConfig`\n * that describes the resource itself (labels, sections, views, empty state, guidance),\n * excluding `views` (lives on individual operation entries),\n * `relationshipOverrides` (consumed at build time, not stored at runtime).\n *\n * Resource-owned composite/execution authoring maps are compiled into inserted\n * runtime declarations before storage.\n *\n * This is what gets written to `FrontendResourceConfiguration.frontendConfiguration`\n * during preset-driven registry build.\n */\nexport type ResourceUIBehaviorResourceLevelConfig<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = Omit<ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TMainSchema>, 'views' | 'relationshipOverrides' | 'compositeViews' | 'executionViews'> & {\n compositeViews?: InsertedCompositeDeclaration[];\n executionViews?: InsertedExecutionDeclaration[];\n};\n\n// ── Preset type ─────────────────────────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.frontend.resource-ui-behavior-preset-map facet:layer:frontend facet:family:resource-ui\n *\n * Complete frontend resource configuration preset for an application.\n *\n * Maps resource types to their full frontend configuration — including\n * resource-level settings (labels, sections, views, empty state, guidance)\n * and operation-level settings (addressability, launchers, overrides).\n *\n * Each application provides its own preset defining exactly which resources\n * and operations it exposes and how they appear in the UI.\n *\n * When authoring presets, use `resourceUIBehavior()` which accepts views\n * as an array of tuples (for contextual typing) and converts to Map internally.\n *\n * @example\n * ```\n * const preset: ResourceUIBehavior = {\n * [CoreResourceType.ORGANIZATIONS]: resourceUIBehavior(factory, Schema, ({ schema, schemaShape, opsVariantResolver }) => ({\n * getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n * views: [\n * [CoreResourceOperation.CREATE, notAddressable()],\n * [CoreResourceOperation.READ, notAddressable()],\n * ],\n * })),\n * };\n * ```\n */\nexport type ResourceUIBehavior = Record<string, ResourceUIBehaviorConfig>;\n/** @wildo_source:part:end saas.frontend.resource-ui-behavior-preset-map */\n\n// ── Polymorphic frontend declaration ────────────────────────────────\n\n/**\n * A single variant within a polymorphic frontend declaration.\n * Maps a parent resource type (the discriminator) to the concrete resource type it produces.\n *\n * Mirrors the backend's `PolymorphicResolvedVariant` — stripped of schema-level\n * concerns, keeping only the routing information the frontend needs.\n */\nexport interface PolymorphicFrontendVariant {\n /** Parent resource type — the polymorphic discriminator (e.g., `CoreResourceType.ORGANIZATIONS`) */\n parentResourceType: string;\n /** Concrete resource type for this variant (e.g., `CoreResourceType.ORGANIZATION_BILLING_ACCOUNTS`) */\n resourceType: string;\n}\n\n/**\n * Frontend polymorphic declaration — lightweight equivalent of the backend's\n * `PolymorphicSchemaDeclaration`.\n *\n * Contains the variant mapping (discriminator → concrete resource type) without\n * any Zod schema coupling. Used by `createPolymorphicFrontendPreset()` to generate\n * per-variant preset entries.\n *\n * Declarations are typically defined per resource family (billing accounts,\n * subscriptions, SSO config, etc.) and mirror the backend's\n * `BILLING_SCOPE_VARIANTS` / `AUTH_SCOPE_VARIANTS` grouping.\n *\n * @example\n * ```ts\n * const BILLING_ACCOUNTS: PolymorphicFrontendDeclaration = {\n * variants: [\n * { parentResourceType: CoreResourceType.ORGANIZATIONS, resourceType: CoreResourceType.ORGANIZATION_BILLING_ACCOUNTS },\n * { parentResourceType: CoreResourceType.USERS, resourceType: CoreResourceType.USER_BILLING_ACCOUNTS },\n * ],\n * };\n * ```\n */\nexport interface PolymorphicFrontendDeclaration {\n variants: PolymorphicFrontendVariant[];\n}\n\n\n// ── Polymorphic preset config ───────────────────────────────────────\n\n/**\n * Resource frontend config with optional per-variant overrides.\n *\n * Mirrors the backend's `PolymorphicResourceConfig` + `polymorphicRole` pattern:\n * - Shared fields apply to all scope variants as the default\n * - `variantOverrides` keyed by `parentResourceType` (the discriminator)\n * allow per-variant differentiation — just like `polymorphicRole` resolves\n * different roles per parent resource type\n *\n * Override resolution (same as backend `polymorphicRole`):\n * - If a variant's `parentResourceType` is in `variantOverrides`, the override\n * **replaces** the corresponding shared fields (not merged)\n * - If not present, the shared config is used as-is (fallback)\n * - `views` in an override fully replaces the shared views Map\n * (use an empty `new Map()` to make a variant invisible in the preset)\n */\nexport type PolymorphicResourceUIBehaviorConfig<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = Omit<ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TMainSchema>, 'views'> & {\n /**\n * Per-operation frontend config — array-of-tuples form (converted to Map internally).\n * Same semantics as `ResourceUIBehaviorConfig.views` but using arrays for\n * TypeScript contextual typing compatibility.\n */\n views: OperationEntries<TCustomOp, TCoreOp>;\n /**\n * Per-variant overrides, keyed by `parentResourceType` (the polymorphic discriminator).\n *\n * Like backend `polymorphicRole`, provides variant-specific configuration.\n * Each override **replaces** the corresponding shared field — `views`\n * is a full replacement, not a merge. If `views` is omitted in the\n * override, the shared views apply.\n *\n * Pass an empty array `[]` for `views` to exclude a variant from\n * surfacing in the preset (variant still exists in the declaration, but\n * has no frontend operations).\n */\n variantOverrides?: Record<string, Partial<Omit<ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TMainSchema>, 'views'>> & { views?: OperationEntries<TCustomOp, TCoreOp> }>;\n };\n\n/**\n * Return type of the `polymorphicResourceUIBehavior()` callback overload.\n * Same structure as `PolymorphicResourceUIBehaviorConfig` — the callback form\n * provides `{ schema, schemaShape, opsVariantResolver }` for the same typed control as `resourceUIBehavior()`:\n * operation keys in `views` and `variantOverrides` are validated at compile time.\n */\nexport type PolymorphicResourceUIBehaviorConfigResult<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = PolymorphicResourceUIBehaviorConfig<TCustomOp, TCoreOp, TMainSchema>;\n\n// ── Polymorphic preset factory ──────────────────────────────────────\n\n/**\n * Creates frontend preset entries for all scope variants of a polymorphic resource.\n *\n * Mirrors the backend `createPolymorphicResourceConfigurations` pattern:\n * takes a polymorphic declaration (discriminator → concrete resource types) and\n * a shared config with optional per-variant overrides, producing a\n * `ResourceUIBehavior` partial that can be spread into the main preset.\n *\n * Resolution per variant (same semantics as backend `polymorphicRole` → `roles`):\n * 1. If `variantOverrides[parentResourceType]` exists → override fields **replace**\n * corresponding shared fields (views is a full replacement, not merge)\n * 2. If no override → shared config used as-is (fallback)\n *\n * The declaration must always contain ALL variants of the polymorphic resource.\n * Use `variantOverrides` with an empty `views: []` to exclude a variant\n * from a specific preset (the variant is declared but has no frontend presence).\n *\n * @param declaration - Polymorphic frontend declaration with ALL variant mappings\n * @param config - Shared config (default) with optional `variantOverrides` per discriminator\n * @returns Partial `ResourceUIBehavior` with one entry per variant\n *\n * @example\n * ```ts\n * // Main app: org scope gets full ops, app scope excluded\n * ...createPolymorphicFrontendPreset({\n * variants: [\n * { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_SSO_CONFIG },\n * { parentResourceType: R.APPLICATION, resourceType: R.APPLICATION_SSO_CONFIG },\n * ],\n * }, {\n * views: [\n * [Op.READ, addressable()],\n * [CustomOperations.RUN_DIAGNOSTIC, notAddressable()],\n * ],\n * variantOverrides: {\n * [R.APPLICATION]: { views: [] },\n * },\n * }),\n *\n * // Admin app: app scope gets full ops, org scope read-only\n * ...createPolymorphicFrontendPreset({\n * variants: [\n * { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_SSO_CONFIG },\n * { parentResourceType: R.APPLICATION, resourceType: R.APPLICATION_SSO_CONFIG },\n * ],\n * }, {\n * views: [\n * [Op.READ, addressable()],\n * [CustomOperations.RUN_DIAGNOSTIC, notAddressable()],\n * ],\n * variantOverrides: {\n * [R.ORGANIZATIONS]: {\n * views: [\n * [Op.READ, notAddressable()],\n * [Op.LIST, notAddressable()],\n * ],\n * },\n * },\n * }),\n * ```\n */\nexport function createPolymorphicFrontendPreset(\n declaration: PolymorphicFrontendDeclaration,\n config: PolymorphicResourceUIBehaviorConfig,\n): ResourceUIBehavior {\n const schema = (config as any)[FRONTEND_SCHEMA_KEY];\n const { variantOverrides, views: sharedViewsEntries, ...sharedRest } = config;\n const sharedViews = new Map(sharedViewsEntries);\n const sharedConfig = { ...sharedRest, views: sharedViews } as ResourceUIBehaviorConfig;\n\n // Compute per-variant FK-renamed schemas. The author passes ONE base\n // schema to `polymorphicResourceUIBehavior(decl, factory, baseSchema, ...)`,\n // but the runtime polymorphic factory renames `polymorphicVariants`-marked\n // FK fields per variant (e.g. `billingAccountId` →\n // `organizationBillingAccountId` for the ORGANIZATIONS variant). If we\n // attach the un-renamed base schema as `FRONTEND_SCHEMA_KEY` on every\n // variant, `buildFrontendResourceConfigurations` later replaces the\n // renamed `mainSchema` with the un-renamed base — and the FK→parent\n // resolution check throws because the base's `billingAccountId` doesn't\n // resolve to a unique parent. Mirror the factory's rename at this seam\n // so per-variant `FRONTEND_SCHEMA_KEY` matches the per-variant\n // `mainSchema` keys.\n const variantSchemas =\n schema !== undefined && (schema as z.ZodTypeAny)?._zod?.def?.type === 'object'\n ? computePolymorphicVariantSchemas(\n schema as z.ZodObject<z.ZodRawShape>,\n declaration.variants,\n )\n : null;\n\n if (schema !== undefined) {\n (sharedConfig as any)[FRONTEND_SCHEMA_KEY] = schema;\n }\n const result: ResourceUIBehavior = {};\n\n for (const variant of declaration.variants) {\n const override = variantOverrides?.[variant.parentResourceType];\n // Use the per-variant renamed schema when available; fall back to the\n // shared base schema for declarations whose fields have no\n // `polymorphicVariants` metadata (rename map is empty → identity).\n const variantSchema =\n variantSchemas?.get(variant.parentResourceType) ?? schema;\n\n if (override) {\n const { views: overrideViewsEntries, ...overrideRest } = override;\n const concreteConfig = {\n ...sharedConfig,\n ...overrideRest,\n views: overrideViewsEntries ? new Map(overrideViewsEntries) : sharedViews,\n };\n if (variantSchema !== undefined) {\n (concreteConfig as any)[FRONTEND_SCHEMA_KEY] = variantSchema;\n }\n result[variant.resourceType] = concreteConfig;\n } else if (variantSchemas && variantSchema !== schema) {\n // Distinct per-variant schema: clone sharedConfig so each variant\n // keeps its own FRONTEND_SCHEMA_KEY rather than sharing the base.\n const concreteConfig = { ...sharedConfig, views: sharedViews } as ResourceUIBehaviorConfig;\n (concreteConfig as any)[FRONTEND_SCHEMA_KEY] = variantSchema;\n result[variant.resourceType] = concreteConfig;\n } else {\n result[variant.resourceType] = sharedConfig;\n }\n }\n\n return result;\n}\n\n\n// ── Utility types for extracting generics from ResourceConfiguration ────────\n\n/**\n * Infers the custom operation enum from a resource factory or config type.\n *\n * **How to use:** in generic helpers that wrap `resourceUIBehavior(yourFactory, …)`\n * so `TypedOperationKey` and `views` tuples stay aligned without repeating type params.\n */\nexport type ExtractCustomOp<T> =\n T extends ResourceConfiguration<infer C, any, any> ? C :\n T extends ResourceConfiguration_InitializationFactory<infer C, any, any> ? C :\n never;\n\n/** Same as {@link ExtractCustomOp} for the **core** operations subset on the resource. */\nexport type ExtractCoreOp<T> =\n T extends ResourceConfiguration<any, infer O, any> ? O :\n T extends ResourceConfiguration_InitializationFactory<any, infer O, any> ? O :\n never;\n\n/** Same as {@link ExtractCustomOp} for the resource **main Zod schema** type. */\nexport type ExtractSchema<T> =\n T extends ResourceConfiguration<any, any, infer S> ? S :\n T extends ResourceConfiguration_InitializationFactory<any, any, infer S> ? S :\n never;\n\n\n// ── Standalone variant helper ───────────────────────────────────────────────\n\n/**\n * Creates a typed operation variant tuple `[operationKey, variantKey]`.\n * Preserves the literal operation key for `TypedOperationKey` assignability.\n *\n * **How to use:** in `views: [ … ]` when the operation key must stay a narrow literal\n * (custom enum member or core op). Equivalent to `opsVariantResolver(op, key)` but\n * useful in static arrays outside the callback.\n */\nexport function variant<TOp extends string>(\n op: TOp, variantKey: string,\n): readonly [TOp, string] {\n return [op, variantKey] as const;\n}\n\n\n// ── Operation entries (input form) ───────────────────────────────────────────\n\n/**\n * Array-of-tuples form for specifying operations in input contexts\n * (`resourceUIBehavior` callback, `polymorphicResourceUIBehavior` config).\n *\n * TypeScript's `new Map([...])` doesn't pick up contextual typing for\n * heterogeneous key types, so input types use arrays — the factory functions\n * convert to `Map` at the boundary. Each entry's key is individually checked\n * against `TypedOperationKey<TCustomOp, TCoreOp>` via contextual typing.\n */\nexport type OperationEntries<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n> = [TypedOperationKey<TCustomOp, TCoreOp>, ResourceOperationFrontendConfig][];\n\n\n// ── Callback parameter type for resourceUIBehavior / polymorphicResourceUIBehavior ─\n\n/**\n * Callback argument bag for `resourceUIBehavior()` / `polymorphicResourceUIBehavior()`.\n *\n * **How to use:** prefer `schemaShape.fieldName` for per-field `.enumUI()` / `.stringUI()`\n * overrides; use `schema` when applying decorators on the root object; use\n * `opsVariantResolver(CoreResourceOperation.READ, 'summary')` (or `variant()`) so\n * non-default variant keys type-check against valid operations.\n */\nexport type ResourceUIBehaviorCallbackParams<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = {\n schema: TSchema;\n schemaShape: ObjectShape<TSchema>;\n opsVariantResolver: <TOp extends ValidOperationKeys<TCustomOp, TCoreOp>>(\n op: TOp, variantKey: string,\n ) => readonly [TOp, string];\n};\n\n\n// ── Callback return type for resourceUIBehavior ─────────────────────────────\n\n/**\n * Return type of the `resourceUIBehavior()` callback — overrides `views`\n * to accept an array of tuples (instead of Map) for ergonomic authoring.\n * The `resourceUIBehavior()` function converts the array to a Map.\n *\n * `schemaOverride` is applied during callback execution as a side effect and\n * stripped from the returned config. Must appear BEFORE `fields` in the\n * object literal to ensure schema-level defaults are set before field-level overrides.\n */\nexport type ResourceUIBehaviorConfigResult<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = Omit<ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>, 'views'> & {\n views: OperationEntries<TCustomOp, TCoreOp>;\n schemaOverride?: TSchema;\n};\n\n\n// ── Typed resource UI behavior factory ──────────────────────────────────────\n\n/**\n * Creates a typed `ResourceUIBehaviorConfig` entry for a given resource.\n *\n * All generics are inferred from the `_factory` argument — no explicit type\n * parameters needed. The callback receives `{ schema, schemaShape, opsVariantResolver }`:\n * - `schema` — the Zod schema (for schema-level mutations like `.stringUI()`, `.enumUI()`, etc.)\n * - `schemaShape` — the typed shape object (for per-field decorator overrides with autocomplete)\n * - `opsVariantResolver` — typed variant tuple helper constrained to valid operation keys\n *\n * The `_factory` parameter is for **type inference only** and is never called at runtime.\n *\n * @example\n * ```ts\n * [R.TODOS]: resourceUIBehavior(\n * todos_ResourceConfiguration_InitializationFactory,\n * Todos_Schema,\n * ({ schema, schemaShape, opsVariantResolver }) => ({\n * icon: CheckSquare,\n * fields: {\n * status: schemaShape.status.enumUI({\n * values: { completed: { color: 'success', icon: CheckCircle } },\n * }),\n * },\n * views: [\n * [CoreResourceOperation.LIST, addressable()],\n * [opsVariantResolver(CoreResourceOperation.CREATE, 'quick-add'), notAddressable()],\n * ],\n * }),\n * ),\n * ```\n */\nexport function resourceUIBehavior<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n schema: TSchema,\n configFactory: (\n params: ResourceUIBehaviorCallbackParams<TCustomOp, TCoreOp, TSchema>,\n ) => ResourceUIBehaviorConfigResult<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehaviorConfig {\n const schemaShape = (\n schema && 'shape' in schema\n ? (schema as unknown as z.ZodObject<any>).shape\n : getZodObjectShape(schema)\n ) as ObjectShape<TSchema>;\n\n const opsVariantResolver = <TOp extends string>(op: TOp, variantKey: string) =>\n [op, variantKey] as readonly [TOp, string];\n\n const { schemaOverride: _, views: viewsEntries, ...config } =\n configFactory({ schema, schemaShape, opsVariantResolver: opsVariantResolver as any });\n\n (config as any)[FRONTEND_SCHEMA_KEY] = schema;\n\n return {\n ...config,\n views: new Map(viewsEntries),\n } as unknown as ResourceUIBehaviorConfig;\n}\n\n\n// ── Derived resource UI behavior factory ────────────────────────────────────\n\n/**\n * Callback parameter type for `resourceUIBehaviorFrom()`.\n * Extends the standard callback params with a `base` reference to the resolved base config.\n */\nexport type ResourceUIBehaviorFromCallbackParams<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = ResourceUIBehaviorCallbackParams<TCustomOp, TCoreOp, TSchema> & {\n /** The resolved base config — use to reference existing values when composing overrides. */\n base: ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>;\n};\n\n/**\n * Return type of the `resourceUIBehaviorFrom()` callback — everything is optional.\n *\n * Merge semantics applied by `resourceUIBehaviorFrom`:\n * - `views` — **replaced** (the primary differentiator between main/admin)\n * - `layout` — **shallow-merged** (`{ ...base.layout, ...override.layout }`)\n * - `fields` — **shallow-merged** (base fields preserved, overrides overlay per-key)\n * - `compositeViews` — **shallow-merged** by ref (`{ ...base.compositeViews, ...override.compositeViews }`)\n * - `executionViews` — **shallow-merged** by ref (`{ ...base.executionViews, ...override.executionViews }`)\n * - Scalars (`icon`, `emptyState`, `getFrontendResourceLabel`, etc.) — **replaced** if provided\n */\nexport type ResourceUIBehaviorFromResult<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = Partial<Omit<ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>, 'views'>> & {\n views?: OperationEntries<TCustomOp, TCoreOp>;\n};\n\n/**\n * Derives a new `ResourceUIBehaviorConfig` from an existing base, overriding only\n * the specified properties. Eliminates duplication between main and admin presets\n * where the majority of the config (icon, fields, layout, labels) is identical\n * and only `views` (and occasionally `variantOverrides`) differ.\n *\n * The `_factory` parameter is for **type inference only** — same as `resourceUIBehavior()`.\n * The schema is extracted from the base config via `FRONTEND_SCHEMA_KEY`, so it does not\n * need to be passed again.\n *\n * For resources that are completely identical between main and admin, skip this function\n * entirely and forward the config directly: `[R.PRODUCTS]: main[R.PRODUCTS]!`\n *\n * @param _factory - Any factory from the resource — for type inference only (never called)\n * @param base - The resolved base `ResourceUIBehaviorConfig` (from main presets)\n * @param overrideFn - Callback returning only the properties to override\n *\n * @example\n * ```ts\n * // Admin promotions — same icon/fields/layout, different views\n * [R.PROMOTIONS]: resourceUIBehaviorFrom(\n * promotionsFactory,\n * main[R.PROMOTIONS]!,\n * ({ opsVariantResolver }) => ({\n * views: [\n * [Promotion_Operations.DEACTIVATE, notAddressable()],\n * ],\n * })\n * ),\n * ```\n */\nexport function resourceUIBehaviorFrom<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n base: ResourceUIBehaviorConfig,\n overrideFn: (\n params: ResourceUIBehaviorFromCallbackParams<TCustomOp, TCoreOp, TSchema>,\n ) => ResourceUIBehaviorFromResult<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehaviorConfig {\n const schema = (base as any)[FRONTEND_SCHEMA_KEY] as TSchema;\n const schemaShape = (\n schema && 'shape' in schema\n ? (schema as unknown as z.ZodObject<any>).shape\n : getZodObjectShape(schema)\n ) as ObjectShape<TSchema>;\n const opsVariantResolver = <TOp extends string>(op: TOp, variantKey: string) =>\n [op, variantKey] as readonly [TOp, string];\n\n const {\n views: overrideViews,\n layout: overrideLayout,\n fields: overrideFields,\n compositeViews: overrideCompositeViews,\n executionViews: overrideExecutionViews,\n ...overrideRest\n } =\n overrideFn({\n schema,\n schemaShape,\n opsVariantResolver: opsVariantResolver as any,\n base: base as unknown as ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>,\n });\n\n return {\n ...base,\n ...overrideRest,\n ...(overrideLayout !== undefined && {\n layout: { ...base.layout, ...overrideLayout },\n }),\n ...(overrideFields !== undefined && {\n fields: { ...base.fields, ...overrideFields },\n }),\n ...(overrideCompositeViews !== undefined && {\n compositeViews: { ...base.compositeViews, ...overrideCompositeViews },\n }),\n ...(overrideExecutionViews !== undefined && {\n executionViews: { ...base.executionViews, ...overrideExecutionViews },\n }),\n views: overrideViews ? new Map(overrideViews) : base.views,\n } as unknown as ResourceUIBehaviorConfig;\n}\n\n\n// ── Derived polymorphic resource UI behavior factory ─────────────────────────\n\n/**\n * Return type of the `polymorphicResourceUIBehaviorFrom()` callback — everything is optional.\n * Same merge semantics as `resourceUIBehaviorFrom()`, plus `variantOverrides` is shallow-merged\n * per parent key (inner overrides replace, not merge).\n */\nexport type PolymorphicResourceUIBehaviorFromResult<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = Partial<Omit<PolymorphicResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>, 'views'>> & {\n views?: OperationEntries<TCustomOp, TCoreOp>;\n};\n\n/**\n * Derives a polymorphic preset from an existing base, overriding only the specified\n * properties. Works like `resourceUIBehaviorFrom()` but for polymorphic resources\n * produced by `polymorphicResourceUIBehavior()`.\n *\n * The base entries are the already-spread `Partial<ResourceUIBehavior>` from the main\n * preset. Internally, the first variant's config is used as the shared base — the\n * callback receives it as `base` and returns only what changes.\n *\n * @param declaration - Same polymorphic declaration used in the main preset\n * @param _factory - Any single factory from the polymorphic map — for type inference only\n * @param baseEntries - The spread result from the main preset (keyed by concrete resource type)\n * @param overrideFn - Callback returning only the properties to override\n *\n * @example\n * ```ts\n * // Admin SIEM — same icon/layout/fields, different variantOverrides\n * ...polymorphicResourceUIBehaviorFrom(\n * SIEM_EXPORT_DECLARATION,\n * siemFactory,\n * main,\n * ({ opsVariantResolver }) => ({\n * variantOverrides: {\n * [R.ORGANIZATIONS]: {\n * views: [[Op.READ, notAddressable()]],\n * },\n * },\n * })\n * ),\n * ```\n */\nexport function polymorphicResourceUIBehaviorFrom<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n declaration: PolymorphicFrontendDeclaration,\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n baseEntries: Partial<ResourceUIBehavior>,\n overrideFn: (\n params: ResourceUIBehaviorFromCallbackParams<TCustomOp, TCoreOp, TSchema>,\n ) => PolymorphicResourceUIBehaviorFromResult<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehavior {\n const firstVariantType = declaration.variants[0]?.resourceType;\n const baseConfig = firstVariantType ? baseEntries[firstVariantType] : undefined;\n if (!baseConfig) {\n throw new Error(\n `polymorphicResourceUIBehaviorFrom: no base config found for first variant \"${firstVariantType}\"`,\n );\n }\n\n const schema = (baseConfig as any)[FRONTEND_SCHEMA_KEY] as TSchema;\n const schemaShape = (\n schema && 'shape' in schema\n ? (schema as unknown as z.ZodObject<any>).shape\n : getZodObjectShape(schema)\n ) as ObjectShape<TSchema>;\n const opsVariantResolver = <TOp extends string>(op: TOp, variantKey: string) =>\n [op, variantKey] as readonly [TOp, string];\n\n const {\n views: overrideViews,\n layout: overrideLayout,\n fields: overrideFields,\n compositeViews: overrideCompositeViews,\n executionViews: overrideExecutionViews,\n variantOverrides: overrideVariantOverrides,\n ...overrideRest\n } = overrideFn({\n schema,\n schemaShape,\n opsVariantResolver: opsVariantResolver as any,\n base: baseConfig as unknown as ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>,\n });\n\n const mergedPolyConfig: PolymorphicResourceUIBehaviorConfig = {\n ...baseConfig,\n ...overrideRest,\n ...(overrideLayout !== undefined && {\n layout: { ...baseConfig.layout, ...overrideLayout },\n }),\n ...(overrideFields !== undefined && {\n fields: { ...baseConfig.fields, ...overrideFields },\n }),\n ...(overrideCompositeViews !== undefined && {\n compositeViews: { ...baseConfig.compositeViews, ...overrideCompositeViews },\n }),\n ...(overrideExecutionViews !== undefined && {\n executionViews: { ...baseConfig.executionViews, ...overrideExecutionViews },\n }),\n views: overrideViews ?? [...baseConfig.views.entries()],\n ...(overrideVariantOverrides !== undefined && {\n variantOverrides: overrideVariantOverrides,\n }),\n } as unknown as PolymorphicResourceUIBehaviorConfig;\n\n return createPolymorphicFrontendPreset(declaration, mergedPolyConfig);\n}\n\n\n// ── Typed polymorphic UI behavior factory ───────────────────────────────────\n\n/**\n * Creates a typed polymorphic UI behavior preset — wraps `createPolymorphicFrontendPreset()`\n * with type inference from a factory or configuration.\n *\n * For resources built with `createFamilySchema` (discriminated unions), the factory\n * provides the generic context for `fields` typing and operation key validation.\n *\n * **Two overloads** — use the callback form for the same typed control as `resourceUIBehavior()`:\n * - Callback: `(declaration, factory, schema, ({ schema, schemaShape, opsVariantResolver }) => config)` — operation keys\n * in `views` and `variantOverrides` are validated at compile time via the `opsVariantResolver` helper.\n * - Object: `(declaration, factory, config)` — config object; typing may be weaker for array literals.\n *\n * @param declaration - Polymorphic frontend declaration with variant mappings\n * @param _factory - Any single factory from the polymorphic map — for type inference only\n * @param schemaOrConfig - Base schema (for callback form) or config object (for object form)\n * @param configFactory - Callback form only: receives { schema, schemaShape, opsVariantResolver } like resourceUIBehavior\n */\nexport function polymorphicResourceUIBehavior<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n declaration: PolymorphicFrontendDeclaration,\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n schema: TSchema,\n configFactory: (\n params: ResourceUIBehaviorCallbackParams<TCustomOp, TCoreOp, TSchema>,\n ) => PolymorphicResourceUIBehaviorConfigResult<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehavior;\n\n\nexport function polymorphicResourceUIBehavior<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n declaration: PolymorphicFrontendDeclaration,\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n config: PolymorphicResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehavior;\n\n\nexport function polymorphicResourceUIBehavior<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n declaration: PolymorphicFrontendDeclaration,\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n schemaOrConfig: TSchema | PolymorphicResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>,\n configFactory?: (\n params: ResourceUIBehaviorCallbackParams<TCustomOp, TCoreOp, TSchema>,\n ) => PolymorphicResourceUIBehaviorConfigResult<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehavior {\n const config = configFactory\n ? (() => {\n const schema = schemaOrConfig as TSchema;\n const schemaShape = (\n schema && 'shape' in schema\n ? (schema as unknown as z.ZodObject<any>).shape\n : getZodObjectShape(schema)\n ) as ObjectShape<TSchema>;\n const opsVariantResolver = <TOp extends string>(op: TOp, variantKey: string) =>\n [op, variantKey] as readonly [TOp, string];\n const config = configFactory({ schema, schemaShape, opsVariantResolver: opsVariantResolver as any });\n (config as any)[FRONTEND_SCHEMA_KEY] = schema;\n return config;\n })()\n : (schemaOrConfig as PolymorphicResourceUIBehaviorConfig);\n\n return createPolymorphicFrontendPreset(declaration, config as PolymorphicResourceUIBehaviorConfig);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resources.frontend.schemas.js","sourceRoot":"","sources":["../../../../src/core/resources/resources.frontend.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { RESPONSIVE_MAX_WIDTH_VALUES } from '@wildo-ai/presets-components-models';\nimport type React from 'react';\nimport { z } from \"zod\";\nimport type { EnumLikeType, IconLike, AutosaveFieldParams, ValidationMode, ResponsiveAware, EditChromeMode, DisplayChromeMode, DraftableConfigParams } from '@wildo-ai/zod-decorators';\nimport { getZodObjectShape } from '@wildo-ai/zod-decorators';\nimport type { ButtonVariants_Variant } from '~wildo-frontend-lib/components/actions/button';\nimport type { QuickSwitcherScopeField } from '~wildo-frontend-lib/core/config/app-configuration-frontend.schemas';\nimport {\n ResourceParentResourceRequirement,\n ResourcePrimaryScope,\n ResourceRelationship,\n ResourceTranspositionPolicy,\n CoreResourceOperation,\n ResourceOperationDisplayMode,\n ResourceOperationFrontendSurface,\n ResourceFieldIdentifier,\n ResourceType,\n ResourceTypeSchema,\n ResourceConfiguration_Operation_ApiCall,\n ResourceConfiguration_Operation_ApiCallWithCallback,\n ResourceConfiguration_ResourceRelationships,\n ResourceConfiguration_InheritanceSchemaDefinition,\n TourStepPlacement,\n NavigationZoneName,\n OverlayAppearance,\n SplitAppearance,\n TransitionConfigSchema,\n ZoneEmptyBehavior,\n viewportDiscriminatedSchema,\n computePolymorphicVariantSchemas,\n} from '@wildo-ai/saas-models';\nimport type {\n ResourceConfiguration,\n ResourceConfiguration_InitializationFactory,\n ValidOperationKeys,\n RelationshipDisplayInParentNavigation,\n RelationshipDisplayInChildView,\n} from '@wildo-ai/saas-models';\nimport type { InsertedChartDeclaration } from '~wildo-frontend-lib/core/config/chart-view.frontend.schemas';\nimport type {\n InsertedExecutionDeclaration,\n ResourceExecutionViewsConfig,\n} from '~wildo-frontend-lib/core/config/execution-view.schemas';\nimport type {\n OnboardingElementType,\n GuidanceRenderMode,\n GuidanceFlowScope,\n GuidanceAudience,\n NotificationBadgeDefinition,\n UserNotificationDefinition,\n SubtreeMap,\n ManyToManyScopeJunctionMap,\n} from '@wildo-ai/saas-models';\nimport { ViewportBreakpoint, DisplayDirection } from '@wildo-ai/zod-decorators';\nimport type {\n CorePresetNames,\n ActionLabelDisplayMode,\n} from '@wildo-ai/presets-components-models';\nimport {\n VerticalPlacement,\n HorizontalPlacement,\n} from '@wildo-ai/presets-components-models';\nimport type {\n CompositeViewComponentProps,\n InsertedCompositeDeclaration,\n ResourceCompositeViewAuthoringConfig,\n} from '../config/composite-view.schemas';\n\n\n\n// ================================================================================================\n// Types transferred from saas-models/config/frontend/navigation.shared.schemas.ts\n// NavigationOperationOverrideSchema only — the rest of navigation stays in saas-models.\n// ================================================================================================\n\n/**\n * @wildo_source:part:start saas.frontend.navigation.operation-override facet:layer:frontend facet:family:navigation-config\n *\n * Per-operation navigation chrome: transition, overlay/split appearance, source zone.\n *\n * **How to use:** attach fragments of this shape under\n * `ResourceOperationFrontendConfig.navigationOverrides` in `resourceUIBehavior()`.\n * Each override applies when navigating **from** the configured zone/viewport into\n * this operation. Prefer mirroring a sibling resource that already matches the\n * product’s overlay vs split behavior.\n */\nexport const NavigationOperationOverrideSchema = z.object({\n transition: TransitionConfigSchema,\n appearance: viewportDiscriminatedSchema(z.union([\n z.enum(OverlayAppearance),\n z.enum(SplitAppearance),\n ])).optional(),\n fromZone: z.union([z.enum(NavigationZoneName), z.literal('appLevel')]).optional(),\n viewport: z.enum(ViewportBreakpoint).optional(),\n /**\n * Behaviour of the OVERLAY this override resolves to — whether the page behind stays interactive,\n * whether touching it dismisses, whether it is dimmed. Ignored for non-overlay transitions.\n *\n * These three were already declared on `OverlayContainerConfig` with documented defaults and read by\n * nothing; they are honoured now, and this is the channel that lets a NAVIGATION-driven overlay set\n * them. Declared per operation because it describes the CONTENT: an application legitimately has a\n * create dialog that blocks everything and a detail sheet beside a live canvas that blocks nothing.\n */\n overlayBehavior: z.object({\n modal: z.boolean().optional(),\n closeOnOutsideClick: z.boolean().optional(),\n showBackdrop: z.boolean().optional(),\n }).optional(),\n});\nexport type NavigationOperationOverride = z.infer<typeof NavigationOperationOverrideSchema>;\n/** @wildo_source:part:end saas.frontend.navigation.operation-override */\n\n\n// ================================================================================================\n// Types transferred from saas-models/resources/resource-frontend.shared.schemas.ts\n// Strictly identical signatures — canonical home is now saas-frontend-lib.\n// ================================================================================================\n\n// --------------------------------\n// App Scope Field Types\n// --------------------------------\n\n/**\n * Runtime-resolved scope field definition.\n *\n * Extends the config-declared `QuickSwitcherScopeField` (from top-level\n * `appScope.fields`) with properties resolved at initialization time from the\n * resource registry.\n *\n * Created by AppScopeContext from the `appScope.fields` configuration.\n */\nexport interface AppScopeFieldDefinition extends QuickSwitcherScopeField {\n /** Resolved from the resource configuration at initialization */\n resourcePrimaryScope: ResourcePrimaryScope;\n}\n\n\n// --------------------------------\n// Frontend Resource Path Schemas\n// Defined in resource-path.frontend.schemas.ts (import here only — no re-export).\n// --------------------------------\n\nimport { FrontendResourceOperationPathSchema } from './resource-path.frontend.schemas';\nimport type { FrontendResourceOperationPath, FrontendResource_ParentResourceRequirement } from './resource-path.frontend.schemas';\n\n\n// --------------------------------\n// Frontend-Specific Operation Types\n// --------------------------------\n\n/**\n * Resolved operation row the **frontend registry** stores: same structural operation\n * config as `@wildo-ai/saas-models` (API_CALL / callback variants) plus optional\n * `operationFrontendConfig` from the app preset.\n *\n * **How to use:** app authors normally do **not** construct this type by hand —\n * `buildFrontendResourceConfigurations()` merges backend `ResourceConfiguration`\n * with `ResourceUIBehavior`. Use it when typing hooks/components that receive the\n * merged registry (e.g. operation context, launcher resolution).\n */\ntype FrontendResourceOperation_Base = {\n /**\n * Frontend UI behavior config for this operation, carrying its `surface`\n * ({@link ResourceOperationFrontendSurface}). After `buildFrontendResourceConfigurations`\n * runs, EVERY operation has a resolved config: preset-surfaced operations get\n * their authored config; everything else resolves to `{ surface: API_ONLY }`\n * (headless) from the operation's `defaultFrontendPosture` or the default.\n * The field stays optional only for the pre-resolution / partial-mock case —\n * read the surface via `isOperationAddressable()` / `isOperationHeadless()`,\n * never by testing presence.\n */\n operationFrontendConfig?: ResourceOperationFrontendConfig;\n}\n\nexport type FrontendResourceConfiguration_Operation<\n TCustomOperationEnum extends EnumLikeType | undefined = any,\n TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = (\n | ResourceConfiguration_Operation_ApiCall<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>\n | ResourceConfiguration_Operation_ApiCallWithCallback<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>\n) & FrontendResourceOperation_Base;\n\n/**\n * Full **merged** resource row in the frontend registry: backend fields (scope, schema,\n * relationships, operations) plus optional `frontendConfiguration` (labels, layout,\n * views map, guidance, …) derived from the app’s `ResourceUIBehavior` preset.\n *\n * **How to use:** read-only shape at runtime and in typed frontend services. Authoring\n * happens in `*.resources-config.ts` + `*.ui-behavior.tsx`, not by filling this object\n * manually.\n */\nexport type FrontendResourceConfiguration<\n TCustomOperationEnum extends EnumLikeType | undefined = any,\n TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = {\n isDisabled: boolean;\n resourcePrimaryScope: ResourcePrimaryScope;\n resourceIdentifier: ResourceType;\n resourceFieldIdentifier: ResourceFieldIdentifier;\n coreOperations: TCoreOperationEnum[];\n customOperation?: TCustomOperationEnum;\n mainSchema: TMainSchema;\n resourceRelationships: ResourceConfiguration_ResourceRelationships;\n inheritenceSchemaDefinition?: ResourceConfiguration_InheritanceSchemaDefinition<EnumLikeType, TMainSchema>;\n frontendConfiguration?: ResourceUIBehaviorResourceLevelConfig<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>;\n isSystemResource: boolean;\n /**\n * Mirrors `ResourceConfiguration.primaryKeyIdentifiesInitiator` from `@wildo-ai/saas-models`.\n * `buildFrontendResourceConfigurations` spreads the backend config onto every frontend\n * registry entry, so this is always populated at runtime; it must stay declared here too\n * so shared `saas-models` utils typed against `AnyResourceConfiguration` (e.g.\n * `ResourcesConfigOperationsUrlsBuilderUtils`) accept a frontend registry entry.\n */\n primaryKeyIdentifiesInitiator: boolean;\n isAnonymizable: boolean;\n transpositionPolicy: ResourceTranspositionPolicy;\n operations: FrontendResourceConfiguration_Operation<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>[];\n}\n\nexport type AnyFrontendResourceConfiguration = FrontendResourceConfiguration<any, any, any>;\n\n/**\n * Application **frontend** resource registry built at startup (field-id maps, relationships,\n * notification defs, subtree map, and per-resource `FrontendResourceConfiguration`).\n *\n * **How to use:** consume via React context / services (`ResourcesRepository`, routing,\n * layout hosts). Authors extend it indirectly by registering presets and module wiring —\n * not by mutating this object ad hoc.\n */\nexport type FrontendResourcesRegistry = {\n allResourceFieldIdentifiers: Record<string, string>;\n fieldIdentifierToResourceType: Record<string, ResourceType>;\n /**\n * Scope-required reference-search junctions, keyed by `${target}|${scope}`.\n * Drives the inference-based people-picker: a FK targeting `T` from a resource\n * scoped by `S`, where `T ↔ S` is an M:N via junction `J`, searches `T` scoped\n * to the caller's current `S` through `J`. Mirrors the backend registry.\n *\n * OPTIONAL: the real registry builder always populates it, but partial test\n * registries omit it — consumers (e.g. `useResourceSearch`) treat an absent map\n * as \"no junction scoping\" (plain target search).\n */\n manyToManyScopeJunctions?: ManyToManyScopeJunctionMap;\n notificationBadgeDefinitions: NotificationBadgeDefinition[];\n additionalUserNotificationDefinitions: UserNotificationDefinition[];\n resourceRelationships: ResourceRelationship[];\n resourceConfigurations: {\n [key: ResourceType]: AnyFrontendResourceConfiguration;\n };\n subtreeMap: SubtreeMap;\n}\n\n\n// ================================================================================================\n// Original resources.frontend.schemas.ts content\n// ================================================================================================\n\n/**\n * Everything the framework knows about the **current resource operation** while rendering\n * a layout host (read/update/list/custom view, nested child, etc.).\n *\n * **How to use:** custom templates and views receive compatible props via framework\n * hooks; use `contextResourceIdentifiers` for parent/child route params and FK scope.\n * `operation` is the merged backend operation + `operationFrontendConfig` — prefer it\n * over guessing URLs or variant keys. `parentResourcesRequirements` repeats path\n * requirements from routing for hosts that must validate scope before fetch.\n */\nexport interface FrontendResourceOperationContext extends FrontendResourceOperationPath {\n /** Current operation being executed */\n resourceType: string;\n\n /** The operation configuration - properly typed */\n operation: FrontendResourceConfiguration_Operation;\n\n /** Resource context map: ResourceType -> resourceId | {fieldIdentifier, resourceId} */\n contextResourceIdentifiers: Record<string,\n | string\n | { fieldIdentifier: string; resourceId: string; }\n >;\n\n /** Additional context data that can be passed */\n additionalContext?: Record<string, unknown>;\n\n /** Parent resource requirements - explicitly included from FrontendResourceOperationPath */\n parentResourcesRequirements: FrontendResource_ParentResourceRequirement[];\n}\n\n/** ──────────────────────────────────────────────────────────────\n * Internal Schemas (concrete, for method access)\n * ────────────────────────────────────────────────────────────── */\n\nexport const FrontendResourceOperationContextSchema = FrontendResourceOperationPathSchema.extend({\n // operation is typed as z.any() in schema — the FrontendResourceOperationContext interface\n // provides proper typing (FrontendResourceConfiguration_Operation) for compile-time consumers\n operation: z.any(),\n contextResourceIdentifiers: z.record(z.string(), z.union([\n z.string(),\n z.object({\n fieldIdentifier: z.string(),\n resourceId: z.string()\n })\n ])),\n additionalContext: z.record(z.string(), z.unknown()).optional(),\n});\n\n\n/**\n * Frontend-native resource configuration types.\n *\n * Defines the complete frontend configuration for resources and their operations,\n * independent of app type. This replaces the legacy per-app discriminated\n * `ResourceOperationFrontendConfig`.\n *\n * The resource-level fields (labels, sections, views, empty state, guidance) are\n * written to `FrontendResourceConfiguration.frontendConfiguration` during registry\n * build. The `views` sub-field provides per-operation frontend config — giving\n * a single, self-contained definition of how each resource appears and behaves in\n * a given frontend application.\n *\n * **How to use (authoring):** in app code, build a `ResourceUIBehavior` map with\n * `resourceUIBehavior(factory, schema, callback)` and merge presets; the framework\n * compiles that into `FrontendResourceConfiguration` entries. The types below\n * (`ResourceUIBehavior_EmptyState`, `ResourceLayoutConfig`, …) are the pieces you\n * pass inside that callback’s return value.\n */\n\n\n\n// ── Resource frontend config sub-types ──────────────────────────────\n\n/** Secondary action type for empty state (link to URL vs guidance flow). */\nexport enum ResourceFrontend_EmptyStateSecondaryActionType {\n LINK = 'link',\n GUIDANCE = 'guidance',\n}\n\n/** Trigger type for resource-level guidance flows. */\nexport enum ResourceFrontend_GuidanceFlowTriggerType {\n FIRST_VISIT = 'FIRST_VISIT',\n MANUAL = 'MANUAL',\n DELAYED = 'DELAYED',\n EVENT = 'EVENT',\n}\n\n/**\n * Empty state configuration for list/table views when no items exist.\n * Labels (title, description, primaryActionLabel) come from i18n.\n *\n * @example\n * ```\n * emptyState: {\n * icon: 'inbox',\n * primaryAction: CoreResourceOperation.CREATE,\n * secondaryAction: { type: ResourceFrontend_EmptyStateSecondaryActionType.LINK, target: 'https://docs.example.com/projects' },\n * }\n * ```\n */\nexport interface ResourceUIBehavior_EmptyState {\n /** Icon ref from the icon registry. If not provided, uses a default empty-state icon. */\n icon?: string;\n /**\n * Operation ref for the primary CTA (e.g., `CoreResourceOperation.CREATE`).\n * If not provided, auto-detects CREATE from available operations.\n * Set to `false` to explicitly disable the primary action button.\n */\n primaryAction?: string | false;\n /** Secondary action — link to docs, guidance flow, or external URL. */\n secondaryAction?: {\n type: ResourceFrontend_EmptyStateSecondaryActionType;\n target: string;\n };\n}\n/**\n * Single guidance element within a resource-level guidance flow.\n * Maps to an OnboardingElement during compilation.\n */\nexport interface ResourceFrontend_GuidanceElement {\n type: OnboardingElementType;\n ref: string;\n targetField?: string;\n targetSelector?: string;\n placement?: TourStepPlacement;\n actionRef?: string;\n steps?: Array<{ ref: string; targetField?: string; targetSelector?: string; placement?: TourStepPlacement }>;\n questions?: Array<{ id: string; type: string; required?: boolean; options?: Array<{ ref: string; value?: string }> }>;\n}\n\n/**\n * Resource-level guidance flow declaration.\n * Compiled into a standard `GuidanceFlowDefinition` by the guidance-resource-compiler.\n */\nexport interface ResourceUIBehavior_GuidanceFlow {\n ref: string;\n bindToOperation: string;\n renderMode: GuidanceRenderMode;\n trigger: {\n type: ResourceFrontend_GuidanceFlowTriggerType;\n delayMs?: number;\n eventName?: string;\n };\n scope?: GuidanceFlowScope;\n audience?: GuidanceAudience;\n priority?: number;\n elements: ResourceFrontend_GuidanceElement[];\n}\n\n// ── Operation key ───────────────────────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.frontend.operation-key-and-resource-config-like facet:layer:frontend facet:family:resource-ui\n *\n * Key identifying a resource operation in the frontend preset.\n *\n * - `string` — default operation (e.g., `CoreResourceOperation.READ`)\n * - `readonly [string, string]` — non-default variant: `[operationIdentifier, variantKey]`\n * (e.g., `[CoreResourceOperation.READ, 'admin']`)\n *\n * The same extracted span also includes `FRONTEND_SCHEMA_KEY`, `ObjectShape`,\n * `ResourceConfigLike`, and `TypedOperationKey` — the schema bridge and typed\n * operation keys used by `resourceUIBehavior()` inference.\n */\nexport type OperationKey = string | readonly [string, string];\n\n\n// ── Schema bridge key ───────────────────────────────────────────────\n\n/**\n * Symbol key used internally by `resourceUIBehavior()` to attach the schema\n * reference to the config object, and by `buildFrontendResourceConfigurations()`\n * to extract it. Using a Symbol prevents collision with user-defined properties\n * and is invisible in Object.keys()/JSON serialization.\n */\nexport const FRONTEND_SCHEMA_KEY: unique symbol = Symbol('frontendSchema');\n\n\n// ── Typed helper types ──────────────────────────────────────────────\n\n/** Extracts the typed shape from a ZodObject, falls back to Record for non-objects. */\nexport type ObjectShape<T extends z.ZodTypeAny> =\n T extends z.ZodObject<infer S> ? S : Record<string, z.ZodTypeAny>;\n\n/**\n * Accepts both factory functions and configuration instances for type inference.\n * Used by `resourceUIBehavior()` to infer generics from either form.\n */\nexport type ResourceConfigLike<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = ResourceConfiguration<TCustomOp, TCoreOp, TSchema>\n | ResourceConfiguration_InitializationFactory<TCustomOp, TCoreOp, TSchema>;\n\n/**\n * Typed operation key — extends `ValidOperationKeys` with variant tuple support.\n * When both generics default to `any`, collapses to `any` — backward compatible\n * with untyped `OperationKey` usage.\n */\nexport type TypedOperationKey<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n> = ValidOperationKeys<TCustomOp, TCoreOp> | readonly [ValidOperationKeys<TCustomOp, TCoreOp>, string];\n/** @wildo_source:part:end saas.frontend.operation-key-and-resource-config-like */\n\n// ── Operation-level frontend config ─────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.frontend.resource-operation-frontend-config facet:layer:frontend facet:family:resource-ui\n *\n * How a resource collection renders its items (cards vs table). A FRONTEND\n * presentation vocabulary — authored on a LIST/SEARCH operation's\n * `collectionDisplayConfig` (below) in the resource UI behavior, NEVER on the\n * shared resources-config operation: the backend has no notion of cards-vs-table.\n * The string values are the persisted view-mode keys, so a stored user choice\n * reads straight across.\n *\n * @example\n * // resource UI behavior `views` entry:\n * [Op.LIST, { collectionDisplayConfig: { displayMode: CollectionDisplayMode.TABLE, userSwitchableDisplayMode: true } }]\n */\nexport enum CollectionDisplayMode {\n /** Stacked cards — one row per item via `ResourceListItemRenderer`. */\n CARDS = 'cards',\n /** Dense table — one column per summary field via the table body. */\n TABLE = 'table',\n}\n\n/**\n * How CARDS-mode items are arranged. Orthogonal to {@link CollectionDisplayMode}\n * (this only shapes the CARDS body; TABLE ignores it). LIST and GRID are kept as\n * DISTINCT layouts, not a `columns: 1` collapse — a list is bordered rows sharing\n * one container (`divide-y`), a grid is separated card cells in N responsive\n * columns.\n */\nexport enum CardLayoutStyle {\n /** Bordered rows in a single shared container (the classic stacked list). */\n LIST = 'list',\n /** Separated card cells laid out in an N-column responsive grid. */\n GRID = 'grid',\n}\n/** @wildo_source:part:end saas.frontend.resource-operation-frontend-config */\n\n/**\n * @wildo_source:part:start saas.frontend.resource-operation-frontend-config facet:layer:frontend facet:family:resource-ui\n *\n * Frontend configuration for a single resource operation.\n *\n * Controls how the operation is surfaced in the frontend:\n * - `surface` — the operation's frontend surface: `ADDRESSABLE` (routable page),\n * `EMBEDDED` (non-addressable view rendered within a host: overlay, composite, or\n * nested), or `API_ONLY` (headless — no interface, callable as an API). See\n * `ResourceOperationFrontendSurface`.\n * - `customView` — direct UIBehavior-owned React component override for authored custom operation views.\n * Use the exported operation-family component types (`ResourceReadCustomViewComponent`,\n * `ResourceListCustomViewComponent`, etc.) plus the matching\n * `useReadOperationSurface()` / `useListOperationSurface()` helpers when you\n * want a strongly truthful custom host for a specific layout family.\n * - `displayPresetOverride` — layout preset override for the operation's UI\n * - `navigationOverrides` — per-operation navigation transition overrides\n * - `displayPriority` — visual ordering in ActionBar/operation lists (lower = higher priority)\n * - `iconOverride` — per-operation icon ref (overrides resource-level icon in navigation items)\n * - `collectionDisplayConfig` — for LIST/SEARCH collection operations: the default\n * cards-vs-table body (`displayMode`) and whether the user may toggle it\n * (`userSwitchableDisplayMode`, persisted per resource type); the CARDS\n * arrangement (`cardLayout` — LIST vs N-column GRID); where each card's action\n * buttons sit (`cardActionPlacement` — 2-axis anchor + orientation); and\n * whether items are selectable for bulk actions (`selectable`). Pure frontend\n * presentation; the backend never reads it.\n *\n * **Resource-owned inserted views are NOT configured here.** Composite, chart,\n * and execution views declared on the resource UI behavior surface themselves\n * into their targeted operation host directly, via their own canonical fields:\n * `compositeViews[*].operationLike` / `chartViews[*].operationLike` (single)\n * and `executionViews[*].surfaceInOperations` (list). The layout consumer\n * (`ResourceLayout_InsertedViews`) reads those declarations and filters them\n * by the current operation at render time — there is no operation-level\n * view-ref list to author or compile.\n *\n * **Historical note (search hit):** earlier versions of this schema exposed an\n * `additionalViews: ResourceViewRef[]` (and before that `additionalViewLinks:\n * string[]`) operation-level field that authored which resource-owned views\n * surfaced in this operation. That field was removed in the\n * `resource-owned-view-surfacing-contract.md` workstream because it duplicated\n * the per-view declaration sites (`compositeViews`, `chartViews`,\n * `executionViews`) and could silently disagree with them. If you are looking\n * for `additionalViews` because a doc, comment, prompt, or downstream code\n * still references it, the answer is: declare the surface on the view itself\n * (use `operationLike` for composite/chart, `surfaceInOperations` for\n * execution), do not re-introduce an operation-level seam.\n */\n/**\n * How an operation's ACTION (its action-bar button) is surfaced in this application.\n *\n * A per-app, **display-only** axis — backend authorization is unaffected, roles\n * remain the only security authority, so this never makes an operation reachable\n * that wasn't already; it only governs the button.\n */\nexport enum ActionVisibility {\n /** Always shown; rendered DISABLED when its `enabledCondition` is unmet. The default. */\n ALWAYS = 'always',\n /**\n * Never shown — this app declares the operation's action off for this surface.\n *\n * Invariant: do NOT pair with a visible (addressable) view for the same operation.\n * The action is the entry point to the view, so a visible view whose action is\n * hidden is contradictory — there is no way to reach it. Hiding the action removes\n * the operation, and the path to any view it has, from this app's UI.\n */\n HIDDEN = 'hidden',\n /**\n * Shown ONLY when its `enabledCondition` is met; HIDDEN (not disabled) otherwise.\n *\n * For state-conditional operations whose disabled state is just noise — e.g.\n * organization `ACTIVATE` appears on a suspended org but vanishes on an active one,\n * rather than sitting there greyed out.\n */\n WHEN_AVAILABLE = 'when_available',\n}\n\n/**\n * Where an operation's ACTION sits in the action bar for this application.\n *\n * A per-app, **display-only** layout axis, orthogonal to authorization. When\n * omitted, placement is DERIVED from the operation's `riskLevel`: HIGH/CRITICAL\n * operations default to `DANGER_ZONE`, everything else to `PRIMARY`. Set it\n * explicitly to override that default — e.g. tuck a non-risky-but-rare action\n * into the danger zone, or keep a CRITICAL action inline in a dedicated admin\n * tool. The same axis drives the bulk action bar, since both are built from the\n * same operation pipeline.\n */\nexport enum ActionPlacement {\n /** Inline in the main action group. The default for low/medium-risk operations. */\n PRIMARY = 'primary',\n /**\n * Segregated into a trailing \"danger zone\" group, fenced off by a separator,\n * after every PRIMARY action. The default for HIGH/CRITICAL-risk operations\n * (destructive deletes, lifecycle suspends).\n */\n DANGER_ZONE = 'danger_zone',\n}\n\n/**\n * HOW an operation's action collects its input and shows its result — the chrome the user meets\n * when they click the button.\n *\n * ## Why this axis exists\n *\n * Until this axis, one rule decided the answer for every custom operation:\n * *has a `requestDto` ⇒ navigate*. So an action asking for a single reason string got the same\n * full-page treatment as a multi-step wizard, and the only way out was to author\n * `navigationOverrides` — per operation, in terms of a zone, a transition verb and an appearance.\n * Three concepts to answer one question.\n *\n * This is that one question. It is a **display-only** axis: backend authorization is untouched and\n * `roles` remain the only security authority, exactly like its siblings {@link ActionVisibility},\n * {@link ActionPlacement} and {@link ResourceOperationActionScope}.\n *\n * ## It is an ALIAS, not a parallel mechanism\n *\n * `MODAL` and `PAGE` do not render anything themselves — they resolve to the navigation transitions\n * that already exist (`OVERLAY`, and the ordinary chain), so there is one runtime mechanism and one\n * set of zone/appearance/URL semantics. `DIRECT`, `POPOVER` and `INLINE` never enter navigation at\n * all, because none of them is a destination: nothing is pushed, no zone changes, and there is\n * nothing for a back button to pop. `INLINE` is hosted by the collection the element belongs to —\n * see `InPlaceOperationContext` for why that is not the navigation layer's job.\n *\n * Consequently an explicit `navigationOverrides` entry still WINS over a presentation authored here\n * (it is the more specific instrument, and it is checked first in the resolution chain). Author this\n * axis to say what KIND of chrome the action wants; author `navigationOverrides` when you need to\n * name the zone, the appearance or the viewport yourself.\n *\n * ## When omitted\n *\n * It is DERIVED from the operation — see `resolveResourceOperationActionPresentation()`. An\n * operation that asks for nothing executes directly; a small field set opens a modal; input the\n * framework cannot fit in an overlay (files, nested writes, a large field set) keeps the page it\n * has always had. An operation whose `surface` is `ADDRESSABLE` always keeps its page: the author\n * has already said it is a deep-linkable destination.\n */\nexport enum ResourceOperationActionPresentation {\n /**\n * Execute on click, with no form at all — the confirmation dialog for a risky operation is the\n * only thing between the click and the request.\n *\n * Only meaningful for an operation that needs no caller input. Declaring it on an operation that\n * DOES have required request fields would send an empty body, so the resolver refuses to derive it\n * there and an author who declares it anyway gets the operation's fields dropped — check\n * `requestDto` before reaching for this.\n */\n DIRECT = 'direct',\n /**\n * A small form anchored to the button that opened it, dismissed by clicking away.\n *\n * The single-input idiom (\"assign to…\", \"snooze until…\"). Transient by construction: no URL, no\n * history entry, nothing to deep-link. Use it when the surrounding context is the point — the user\n * is reading the row they are acting on and must not lose sight of it.\n */\n POPOVER = 'popover',\n /**\n * The element being acted on transforms in place to collect the input, leaving its neighbours\n * visible — the row becomes the form rather than being covered by one.\n *\n * Use it when the surrounding rows are the point: the user is comparing, and an overlay would hide\n * the very thing that made them act on this row.\n *\n * **Transient, like {@link POPOVER}, and for the same reason.** Nothing is pushed, no URL changes,\n * and a reload returns the list to rest. An inline row-edit is a momentary state of a listing, not\n * a place — which is also why no admin framework deep-links one, and why anything that SHOULD be\n * linkable, reloadable or reachable by a back button wants {@link PAGE}.\n *\n * **It requires a collection.** The host is provided by the list the element belongs to\n * (`InPlaceOperationProvider`); the same action rendered on a detail page, in a danger zone or in a\n * picker has no row to transform and degrades to an overlay rather than becoming a dead button.\n *\n * Note it does NOT resolve to `NavigationTransition.INPLACE`. Element-level hosting uses none of\n * what the navigation layer offers — no zone, no stack entry, no appearance — and routing it there\n * is exactly why that transition has never done what its own docstring promises. See\n * `InPlaceOperationContext`.\n */\n INLINE = 'inline',\n /**\n * An overlay above the layout — the workhorse for \"a handful of fields\", and the default the\n * derivation reaches for.\n *\n * Resolves to {@link NavigationTransition.OVERLAY}. The concrete appearance (dialog / sheet /\n * drawer / panel) stays the app's decision, resolved from its navigation layout exactly as any\n * other overlay: this axis says \"an overlay\", not \"a dialog specifically\". Author\n * `navigationOverrides` when you need to name one.\n */\n MODAL = 'modal',\n /**\n * A routable page, resolved through the ordinary navigation chain (zone transitions, viewport\n * overrides, the framework `PUSH` fallback) — i.e. exactly the behaviour every parameterised\n * action had before this axis existed.\n *\n * The right answer for complex or multi-step input, and for anything a user should be able to\n * link to, reload, or reach with a back button.\n */\n PAGE = 'page',\n}\n\n/**\n * Does an operation's action target a SINGLE resource instance, or the WHOLE\n * collection in the current scope?\n *\n * A per-app **surfacing** axis, orthogonal to authorization. Most actions are\n * `ITEM` (edit / delete / retry one row) and render in the per-row and detail\n * action bars. A `COLLECTION` action operates on every row in scope at once\n * (e.g. \"retry all failed deliveries\", \"purge the queue\"): it renders ONCE in\n * the list's collection-action surface (the toolbar), never per row, and\n * confirms + executes in place rather than opening a per-row form.\n *\n * For a `COLLECTION` action to have a callable route, its operation must borrow\n * a COLLECTION verb via `resourceOperationLike` (`UPDATE_MANY` / `DELETE_MANY` /\n * `CREATE_MANY`) — an entity verb (`UPDATE` / `DELETE`) generates a route with a\n * `:id` segment the scope-level surface has no single row to fill.\n */\nexport enum ResourceOperationActionScope {\n /** Targets one resource instance — the per-row / detail action bars. The default when omitted. */\n ITEM = 'item',\n /** Targets the whole collection in scope — rendered once in the list's collection-action surface. */\n COLLECTION = 'collection',\n}\n\n/**\n * What happens to an operation's action when its `enabledCondition` is currently\n * unmet — the per-view default for actions that don't declare an explicit\n * `actionVisibility`. An explicit per-operation `actionVisibility` always wins\n * over this policy; feature-gated unavailability keeps its own\n * `FeatureUnavailabilityBehavior` (upgrade/prompt) and is never hidden by this.\n *\n * - `HIDE` — drop the action entirely while unavailable (as if it declared\n * `ActionVisibility.WHEN_AVAILABLE`). The framework default for BOTH views: a\n * greyed, non-actionable button is noise wherever it sits, and hiding it also\n * collapses mutually-exclusive state pairs (e.g. \"Set as recurring\" / \"Set as\n * one time\") down to the one that currently applies.\n * - `SHOW_DISABLED` — render the action greyed/disabled (the classic behavior).\n * Opt in per view when the disabled action + its reason tooltip is genuinely\n * informative and you want it always present.\n */\nexport enum DisabledActionHandling {\n SHOW_DISABLED = 'show_disabled',\n HIDE = 'hide',\n}\n\n/**\n * Per-view action-surfacing (disclosure) policy — how many actions stay visible\n * and how unavailable ones are treated, for ONE {@link ResourceOperationDisplayMode}.\n */\nexport interface ResourceActionDisclosureConfig {\n /**\n * How many PRIMARY actions render as direct buttons before the remainder\n * collapse into the `…` overflow menu. Omitted inherits the framework default\n * for the view ({@link DEFAULT_ACTION_DISCLOSURE}): 3 for SUMMARY, unlimited\n * for DETAIL. `0` pushes every action into the menu.\n */\n maxPrimaryActions?: number;\n /**\n * Default handling for actions disabled by an unmet `enabledCondition` — see\n * {@link DisabledActionHandling}. Omitted inherits the framework default,\n * which is `HIDE` for both views (set `SHOW_DISABLED` here to keep disabled\n * actions greyed-but-present for a view).\n */\n disabledActionHandling?: DisabledActionHandling;\n}\n\n/** Fully-resolved disclosure policy (no optional fields) for one view. */\nexport interface ResolvedActionDisclosure {\n /** `undefined` = unlimited (no overflow cap). */\n maxPrimaryActions: number | undefined;\n disabledActionHandling: DisabledActionHandling;\n}\n\n/**\n * Framework defaults per view. Both views HIDE actions disabled by an unmet\n * `enabledCondition` — an inapplicable, greyed button is noise everywhere, so\n * the bar only ever shows actions the user can actually take right now. They\n * differ on the overflow cap: SUMMARY (dense list/table rows) shows at most 3\n * direct actions before the `…` menu; DETAIL (roomy read view) is uncapped.\n * A resource that WANTS the informative greyed-with-reason affordance opts into\n * `SHOW_DISABLED` per view via `layout.actionDisclosure`.\n */\nexport const DEFAULT_ACTION_DISCLOSURE: Record<ResourceOperationDisplayMode, ResolvedActionDisclosure> = {\n [ResourceOperationDisplayMode.SUMMARY]: {\n maxPrimaryActions: 3,\n disabledActionHandling: DisabledActionHandling.HIDE,\n },\n [ResourceOperationDisplayMode.DETAIL]: {\n maxPrimaryActions: undefined,\n disabledActionHandling: DisabledActionHandling.HIDE,\n },\n};\n\n/**\n * Resolve the effective disclosure policy for a view: per-resource override\n * (`layout.actionDisclosure[view]`) layered over the framework default. Used by\n * both the action-building hook (disabled handling) and the operations-items\n * host (overflow cap).\n */\nexport function resolveActionDisclosure(\n displayMode: ResourceOperationDisplayMode,\n disclosure: Partial<Record<ResourceOperationDisplayMode, ResourceActionDisclosureConfig>> | undefined,\n): ResolvedActionDisclosure {\n const base = DEFAULT_ACTION_DISCLOSURE[displayMode] ?? DEFAULT_ACTION_DISCLOSURE[ResourceOperationDisplayMode.DETAIL];\n const override = disclosure?.[displayMode];\n return {\n maxPrimaryActions: override?.maxPrimaryActions ?? base.maxPrimaryActions,\n disabledActionHandling: override?.disabledActionHandling ?? base.disabledActionHandling,\n };\n}\n\n/**\n * 2-axis card action-button placement. Single source of truth for the config\n * field AND the `card-action-placement.utils` resolver (which imports the\n * `CardActionPlacement` type inferred from this schema, so the two can never\n * drift). `MIDDLE × MIDDLE` is rejected — dead-center overlaps the card content.\n */\nexport const CardActionPlacementSchema = z.object({\n vertical: z.enum(VerticalPlacement),\n horizontal: z.enum(HorizontalPlacement),\n orientation: z.enum(DisplayDirection).optional(),\n}).refine(\n (p) => !(p.vertical === VerticalPlacement.MIDDLE && p.horizontal === HorizontalPlacement.MIDDLE),\n { message: 'cardActionPlacement cannot be MIDDLE × MIDDLE (dead-center overlaps card content); choose an edge or corner.' },\n);\n\n/** Authored 2-axis card action placement — inferred from {@link CardActionPlacementSchema}. */\nexport type CardActionPlacement = z.infer<typeof CardActionPlacementSchema>;\n\n/**\n * Who paints the identity GLYPH on this operation's page header.\n *\n * The header band renders the resource's registry icon beside the identity line by default. A\n * `layout.header` template that composes its own record-linked glyph (a per-row kind icon, a\n * per-family symbol) would otherwise sit BESIDE the resource icon — two glyphs naming one thing.\n *\n * Declared at the OPERATION layer rather than detected from the template, deliberately: the\n * resource icon renders before the template mounts, so detection could only suppress it after the\n * fact — a glyph that flashes and vanishes on every load. Mirrors\n * `SummaryTitlePlacement.TEMPLATE_OWNED`, the same contract one surface over: ceding a\n * framework-owned element to the template is a declaration, not an inference.\n */\nexport enum HeaderIconPlacement {\n /** The framework renders the resource's registry icon (default). */\n AUTO = 'auto',\n /** The header template owns the glyph; the framework renders none. */\n TEMPLATE_OWNED = 'template_owned',\n}\n\nexport const ResourceOperationFrontendConfigSchema = z.object({\n /**\n * The operation's frontend **surface** — see {@link ResourceOperationFrontendSurface}.\n * `ADDRESSABLE` (routable page) and `EMBEDDED` (non-addressable view rendered within\n * a host — overlay/composite/nested) both have a view + action button; `API_ONLY` is\n * headless (no view, no button). The view fields below (`actionVisibility`,\n * `customView`, `iconOverride`, layout, …) apply only to `ADDRESSABLE`/`EMBEDDED`; a\n * build-time check rejects them on `API_ONLY`.\n * Replaces the former `isAddressable` boolean — read via `isOperationAddressable()`.\n */\n surface: z.enum(ResourceOperationFrontendSurface),\n /** Who paints the page header's identity glyph — see {@link HeaderIconPlacement}. Omitted = AUTO. */\n headerIconPlacement: z.enum(HeaderIconPlacement).optional(),\n /**\n * How this operation's action is surfaced — see {@link ActionVisibility}. Omitted\n * (the common case) behaves as `ALWAYS`.\n */\n actionVisibility: z.enum(ActionVisibility).optional(),\n /**\n * Where this operation's action sits in the bar — see {@link ActionPlacement}.\n * Omitted derives from `riskLevel` (HIGH/CRITICAL → danger zone, else primary).\n */\n actionPlacement: z.enum(ActionPlacement).optional(),\n /**\n * Visual button variant (colour) for this operation's action — a\n * `ButtonVariants_Variant` (e.g. `DESTRUCTIVE`, `GHOST`, `ACCENT`). Omitted\n * derives from `riskLevel` (HIGH/CRITICAL → destructive/red, else ghost). Typed\n * on the interface below; the Zod field stays `z.any()` because the enum lives\n * in a component module a schema must not pull at runtime (same as `iconOverride`).\n */\n actionVariant: z.any().optional(),\n /**\n * Does this action target one row or the whole collection — see\n * {@link ResourceOperationActionScope}. Omitted behaves as `ITEM`. A\n * `COLLECTION` action renders once in the list's collection-action surface\n * (never per row) and confirms + executes in place; pair it with a COLLECTION\n * `resourceOperationLike` (`*_MANY`) so its generated route carries no `:id`.\n */\n actionScope: z.enum(ResourceOperationActionScope).optional(),\n /**\n * For an `ITEM` action whose backend addresses the target row by a field in\n * the REQUEST BODY (not the URL id), the request-DTO field name to fill with\n * the clicked row's id. When set, clicking the action executes IN PLACE —\n * sending `{ [rowTargetRequestField]: <rowId> }` — instead of opening a form:\n * e.g. a per-row \"Retry\" whose handler reads `{ entryId }` from the body. (The\n * row id still rides the URL path too, which the handler may ignore.)\n */\n rowTargetRequestField: z.string().optional(),\n /**\n * HOW this action collects its input — see {@link ResourceOperationActionPresentation}.\n * Omitted derives from the operation (`resolveResourceOperationActionPresentation`): no input\n * executes directly, a small field set opens a modal, complex input keeps its page.\n *\n * Display-only. An explicit `navigationOverrides` entry is the more specific instrument and wins\n * over whatever this resolves to.\n */\n actionPresentation: z.enum(ResourceOperationActionPresentation).optional(),\n customView: z.any().optional(),\n displayPresetOverride: z.object({\n resourceLayoutPresetKey: z.string().optional(),\n }).optional(),\n navigationOverrides: z.array(NavigationOperationOverrideSchema).optional(),\n displayPriority: z.number().optional(),\n iconOverride: z.any().optional(),\n collectionDisplayConfig: z.object({\n displayMode: z.enum(CollectionDisplayMode).optional(),\n userSwitchableDisplayMode: z.boolean().optional(),\n /**\n * Promote ONE enum filter field to a prominent quick-filter tab strip\n * rendered above the collection toolbar (\"All · <value> · <value> …\" —\n * the Stripe/Ignisign webhook-dashboard idiom, e.g. All/Delivered/Failed).\n *\n * The named field MUST be an enum member of the operation's backend\n * `filterFields` — the tabs write into the SAME filter state as the\n * filters panel (selecting a tab filters server-side), and the field is\n * removed from the panel/chips so there is never a second competing\n * control for it. Unknown / non-enum field names degrade gracefully\n * (no tab strip, field stays in the panel). Tab labels reuse the enum\n * value i18n (`tResourceFieldEnumValue`).\n */\n quickFilterField: z.string().optional(),\n /**\n * Group CARDS-mode rows into day buckets by this date field, rendering a\n * date heading between groups (activity-feed idiom for log-like\n * collections, e.g. webhook deliveries by day). Purely presentational:\n * grouping applies to the fetched page in its server order — pair it\n * with a default sort on the same field so buckets are contiguous.\n * Ignored in TABLE mode (column sorting owns the ordering there). Rows\n * whose field value is missing/unparsable render in a trailing bucket\n * without a date heading rather than being dropped.\n */\n temporalGroupField: z.string().optional(),\n /**\n * Group CARDS-mode rows into buckets by this ENUM field, rendering the\n * enum value's own label as a heading between groups.\n *\n * Sibling of {@link temporalGroupField}, and deliberately NOT the same\n * algorithm. Temporal grouping ADJACENT-MERGES in server order, because\n * dates are open-ended and a page can legitimately revisit one. An enum is\n * a CLOSED, ORDERED vocabulary, so its buckets are emitted in the enum's\n * DECLARATION ORDER regardless of the order rows arrived in — the\n * declaration is the authority for \"which concern comes first\", and a\n * server sort cannot express it without a second, drifting copy of that\n * order. Rows are therefore collected across the whole fetched page rather\n * than merged adjacently, and no sort needs pairing with it.\n *\n * Headings resolve through `tResourceFieldEnumValue` — the SAME source the\n * filters panel and the promoted quick-filter tabs use, so a bucket\n * heading and its tab can never disagree.\n *\n * Ignored in TABLE mode (column sorting owns the ordering there). Rows\n * whose value is absent, or outside the vocabulary, render in a trailing\n * bucket with no heading rather than being dropped — the same fail-open\n * the temporal grouping makes.\n */\n enumGroupField: z.string().optional(),\n /**\n * CARDS-mode arrangement — a single-column bordered LIST (default) or an\n * N-column responsive GRID. See {@link CardLayoutStyle}. `columns` (1–6) is\n * the TARGET maximum; the grid steps DOWN to fewer columns as the grid's own\n * available WIDTH narrows (an intrinsic `auto-fill minmax` track spec — so a\n * grid embedded in a narrow pane collapses even on a wide viewport, with no\n * media breakpoint). Authors give one N; the framework handles the rest.\n * Ignored in TABLE mode.\n *\n * @example\n * cardLayout: { style: CardLayoutStyle.GRID, columns: 3 }\n */\n cardLayout: z.discriminatedUnion('style', [\n z.object({ style: z.literal(CardLayoutStyle.LIST) }),\n z.object({\n style: z.literal(CardLayoutStyle.GRID),\n columns: z.number().int().min(1).max(6),\n }),\n ]).optional(),\n /**\n * Where each card's per-item action buttons sit, as a 2-axis anchor:\n * `vertical` ({@link VerticalPlacement} TOP/MIDDLE/BOTTOM) × `horizontal`\n * ({@link HorizontalPlacement} START/MIDDLE/END, RTL-aware). `orientation`\n * ({@link DisplayDirection}) lays the button set out as a row (HORIZONTAL,\n * default) or a vertical stack (VERTICAL). Omitted → the classic\n * MIDDLE × END horizontal row.\n *\n * `MIDDLE × MIDDLE` is rejected (dead-center overlaps the card content and\n * has no sensible meaning).\n *\n * @example\n * cardActionPlacement: { vertical: VerticalPlacement.TOP, horizontal: HorizontalPlacement.END }\n */\n cardActionPlacement: CardActionPlacementSchema.optional(),\n /**\n * Enable per-item SELECTION (checkboxes on cards / a select column in the\n * table) and the resulting BULK ACTION bar. Explicit opt-in per view. The\n * bar surfaces only operations declared `isBulkOperation` — a `selectable`\n * view with no bulk operations shows checkboxes that drive an empty bar, so\n * pair it with at least one bulk operation. Selection state is shared across\n * the cards↔table toggle (it does not reset when switching modes).\n */\n selectable: z.boolean().optional(),\n }).optional(),\n /**\n * Opt this operation into a generated per-operation description label\n * (`resources.{res}.operations.{op}.description`, read via `tResourceOperation`).\n * Default off — most operations need no description (making it mandatory for\n * every operation is far too verbose). Surfaces that show one (e.g. the danger\n * zone) fall back to risk-based copy when this is unset. Mirrors how fields opt\n * into a description via the `.describe()` decorator.\n */\n hasDescription: z.boolean().optional(),\n /**\n * What happens to an ADJACENT zone (secondary / companion) this operation\n * splits into, once that zone's last content is dismissed — overriding the\n * zone's own `onEmpty` while this operation occupies primary.\n *\n * The zone-level `ZoneConfig.onEmpty` is one value for every destination that\n * splits into that zone, and destinations legitimately disagree: a LIST wants\n * the detail pane to stay put (`EMPTY_STATE`) so the layout does not reflow\n * while a reviewer steps through rows, while a CANVAS wants its width back\n * (`COLLAPSE`) the moment nothing is selected. Both share one secondary zone,\n * so without this override one of them is always wrong.\n *\n * Declared on the SOURCE operation — the one occupying primary — not on the\n * operation that lands in the pane: it answers \"what should MY layout do when\n * the detail closes\", which is a property of the surface being returned to.\n *\n * Omitted (the common case) defers to the zone, which itself defaults to\n * `ZoneEmptyBehavior.COLLAPSE`. Resolution order is destination → zone →\n * COLLAPSE; see `resolveZoneEmptyBehavior`.\n */\n adjacentZoneOnEmpty: z.enum(ZoneEmptyBehavior).optional(),\n /**\n * How wide this destination's content may grow in the zone, in the framework's shared width\n * vocabulary — the SAME `ResponsiveMaxWidth` a Surface, a `DisplayLayout` and a `FormLayout` use.\n *\n * Omitted (the common case) is `'content'`: capped and centred at `var(--content-max-width, 80rem)`,\n * right for a form, a list or a detail page and wrong only for content whose value IS the space it\n * occupies — a board, a wide table, a canvas — which declare `'none'`.\n */\n zoneContentMaxWidth: z.enum(RESPONSIVE_MAX_WIDTH_VALUES).optional(),\n /**\n * Whether this destination's content fills the zone's HEIGHT as well.\n *\n * `true` makes the zone's content boundary a definite-height flex column, so this view's root may use\n * `flex-1 min-h-0` and resolve against something real. Without it a canvas has no intrinsic height\n * and collapses to zero — which is why one had to hand-roll `h-[70vh]`, sizing against the WINDOW\n * rather than the container it sits in. PRIMARY only: an adjacent zone scrolls, so a filling child\n * and a scrolling parent contradict each other.\n *\n * Separate from the width above ON PURPOSE — see `zone-content-geometry.ts` for why the enum that\n * fused them could not express a capped width with a definite height.\n */\n zoneContentFillsHeight: z.boolean().optional(),\n});\n\n/**\n * TypeScript interface for `ResourceOperationFrontendConfigSchema`.\n * `iconOverride`, `customView`, and `actionVariant` are typed with their real\n * React/enum values even though the Zod schema uses `z.any()` — Zod cannot\n * validate function types, and `actionVariant`'s enum lives in a component\n * module the schema must not import at runtime.\n */\nexport type ResourceOperationFrontendConfig = Omit<z.infer<typeof ResourceOperationFrontendConfigSchema>, 'iconOverride' | 'customView' | 'actionVariant'> & {\n iconOverride?: IconLike;\n customView?: React.ComponentType;\n actionVariant?: ButtonVariants_Variant;\n};\n/** @wildo_source:part:end saas.frontend.resource-operation-frontend-config */\n\n/**\n * Is this operation's frontend surface URL-addressable (a routable page)?\n *\n * The canonical replacement for the former `isAddressable` boolean field — read\n * `surface` rather than storing addressability, so the three surfaces stay a\n * single source of truth. Safe on `undefined` (an operation whose frontend\n * config has not been resolved yet is treated as not addressable).\n */\nexport function isOperationAddressable(\n config?: Pick<ResourceOperationFrontendConfig, 'surface'>,\n): boolean {\n return config?.surface === ResourceOperationFrontendSurface.ADDRESSABLE;\n}\n\n/**\n * Is this operation headless — callable as an API with no rendered interface\n * (no page, no overlay, no action button)? See {@link ResourceOperationFrontendSurface.API_ONLY}.\n */\nexport function isOperationHeadless(\n config?: Pick<ResourceOperationFrontendConfig, 'surface'>,\n): boolean {\n return config?.surface === ResourceOperationFrontendSurface.API_ONLY;\n}\n\n/**\n * Does this operation's action target the whole collection in scope, rather than\n * a single row? See {@link ResourceOperationActionScope}. Safe on `undefined`\n * (treated as `ITEM`). Collection-scoped actions render ONLY in the list's\n * collection-action surface (the toolbar) and are excluded from the per-row,\n * detail, danger-zone, and bulk bars.\n */\nexport function isCollectionScopedOperation(\n config?: Pick<ResourceOperationFrontendConfig, 'actionScope'>,\n): boolean {\n return config?.actionScope === ResourceOperationActionScope.COLLECTION;\n}\n\n/**\n * Resource-owned **composite** templates keyed by view ref (authoring form).\n *\n * **How to use:** set `compositeViews` on `ResourceUIBehaviorConfig` to\n * `ResourceCompositeViewAuthoringConfig` objects. Each composite renders\n * inside exactly one resource operation host, declared via\n * {@link ResourceCompositeViewAuthoringConfig.operationLike} (defaulting to\n * `CoreResourceOperation.READ`). Prefer `executionViews` / `chartViews` for\n * those families instead of overloading composites.\n *\n * Note: this type is **distinct** from `AppCompositeViewsConfig`. Only\n * resource composites carry `operationLike`, because app-level composites have\n * no resource operation host to surface into.\n */\nexport type ResourceCompositeViewsConfig = Record<string, ResourceCompositeViewAuthoringConfig>;\n\n\n// ── Resource-level label function params ────────────────────────────\n\n/**\n * Parameters passed to `getFrontendResourceLabel` functions.\n *\n * Generic `TMainSchema` defaults to `z.ZodAny` — presets and records use the\n * default (giving `currentObject: any`), while app-level configs can narrow it\n * to a concrete schema for type-safe field access.\n */\nexport type ResourceUIBehaviorLabelParams<TMainSchema extends z.ZodTypeAny = z.ZodAny> = {\n currentObject: z.infer<TMainSchema>;\n objectContext: any;\n initiatorUserContext?: any;\n t: (toTranslate: string, params?: Record<string, any>) => string;\n};\n\n// ── Layout system types (Phase 5) ───────────────────────────────────\n\n/** @wildo_source:part:start saas.frontend.resource-layout-templates facet:layer:frontend facet:family:resource-ui */\n/**\n * Static manifest of structural refs used in JSX templates.\n * Readable by the companion without JSX/AST parsing.\n *\n * Produces i18n keys:\n * - `resources.{type}.sections.{ref}.title`\n * - `resources.{type}.sections.{ref}.description`\n * - `resources.{type}.wizardSteps.{ref}.title`\n * - `resources.{type}.wizardSteps.{ref}.description`\n * - `resources.{type}.groups.{ref}.title`\n */\nexport interface LayoutRefManifest {\n /** Section names used in `<Section name=\"...\">` components. */\n sections?: string[];\n /** Wizard step names used in `<WizardStep name=\"...\">` components. */\n wizardSteps?: string[];\n /** Group names used in `<Group name=\"...\">` components. */\n groups?: string[];\n}\n\n/**\n * Layout template — a React component rendered inside the appropriate provider stack.\n *\n * - Edit context: rendered inside `<Form>` providers. Use `useFormTemplateContext()` for\n * labels/schema/operation and `useWatch()` for field-reactive branching.\n * - Display context: rendered inside `<DisplayTemplateProvider>` by `AutomaticDisplayer`.\n * Use `useDisplayTemplateContext()` for `data`, `isLoading`, `schema`, labels, and breakpoint.\n * - Summary context: same as display, rendered by `ResourceSummaryDisplayer` with\n * `disableInlineEdit={true}` and compact chrome (INLINE default).\n */\nexport type LayoutTemplate = React.ComponentType;\n\n/**\n * Resource layout configuration — template-based layout for forms and displays.\n *\n * Templates use skeleton components (`<FormField>`, `<Section>`,\n * `<WizardLayout>`, `<DisplayField>`, etc.) with Tailwind CSS for positioning.\n * Conditional visibility is handled with `useWatch()` and standard React conditionals.\n *\n * When no template is provided for a context, the framework generates a\n * default flat template at runtime from the schema.\n *\n * **How to use:** set `layout: { refs, edit, display, summary }` on the object returned\n * from `resourceUIBehavior()`. Every `<Section name=\"…\">`, `<WizardStep name=\"…\">`, and\n * `<Group name=\"…\">` in those templates should appear under `refs` for i18n and\n * companion validation. Omit `edit` / `display` / `summary` individually to keep the\n * auto-generated default for that context only.\n */\nexport interface ResourceLayoutConfig {\n\n /**\n * Companion-readable manifest of all structural names used in templates.\n * Required for i18n label generation.\n * Dev-time validation cross-checks manifest names against template `name` props.\n */\n refs?: LayoutRefManifest;\n\n /**\n * Default chrome mode for fields in each context.\n * Used when a field's `{primitive}UI.{context}.chromeMode` is not set.\n * Renderers read: `{primitive}UI.{context}.chromeMode ?? layout.defaultChromeMode.{context} ?? system-default`\n */\n defaultChromeMode?: {\n /** Default chrome for display context. */\n display?: ResponsiveAware<DisplayChromeMode>;\n /** Default chrome for summary context. */\n summary?: ResponsiveAware<DisplayChromeMode>;\n /** Default chrome for edit context. */\n edit?: ResponsiveAware<EditChromeMode>;\n };\n\n /**\n * Per-view override for how this resource's action buttons render their\n * label, keyed by {@link ResourceOperationDisplayMode} (`SUMMARY` = list/table\n * rows & cards, `DETAIL` = full read view). Overrides the app-wide theme\n * default (`ComponentStyleTheme.actionLabelDisplayMode`). Omit a key to\n * inherit the app default for that view.\n *\n * Precedence: `layout.actionLabelDisplayMode[view]` → app theme default → `TOOLTIP`.\n *\n * @example\n * // Dense list rows stay icon-only; the full detail view spells actions out.\n * actionLabelDisplayMode: {\n * [ResourceOperationDisplayMode.SUMMARY]: ActionLabelDisplayMode.TOOLTIP,\n * [ResourceOperationDisplayMode.DETAIL]: ActionLabelDisplayMode.INLINE,\n * }\n */\n actionLabelDisplayMode?: Partial<Record<ResourceOperationDisplayMode, ActionLabelDisplayMode>>;\n\n /**\n * Per-view action-surfacing (disclosure) policy — see {@link ResourceActionDisclosureConfig}.\n * Controls how many actions stay visible before overflow (`maxPrimaryActions`)\n * and whether actions disabled by an unmet `enabledCondition` are hidden or\n * greyed (`disabledActionHandling`), keyed by {@link ResourceOperationDisplayMode}.\n * Omit a view (or a field) to inherit the framework default\n * ({@link DEFAULT_ACTION_DISCLOSURE}): SUMMARY = { max 3, hide-disabled },\n * DETAIL = { unlimited, hide-disabled }.\n *\n * @example\n * // A busy list keeps just one action inline; the detail view spells them all out.\n * actionDisclosure: {\n * [ResourceOperationDisplayMode.SUMMARY]: { maxPrimaryActions: 1 },\n * }\n */\n actionDisclosure?: Partial<Record<ResourceOperationDisplayMode, ResourceActionDisclosureConfig>>;\n\n /**\n * Edit layout template — a `React.ComponentType` rendered inside `<Form>` providers.\n * The component is instantiated as `<EditTemplate />` and has access to\n * `useFormTemplateContext()` for labels/schema/operation and `useWatch()` for reactivity.\n * For operation-specific branching, read `operationType` from `FormTemplateContext`.\n * Standard `<FormField name=\"...\">` slots automatically honor upstream\n * generated replacements (for example relationship-backed fields reshaped by\n * `ResourceAutomatedForm`). When a generated override exists, that replacement\n * node owns its own chrome and ignores extra `FormField`-style props passed at\n * the template slot.\n */\n edit?: LayoutTemplate;\n\n /**\n * Display layout template — rendered for read-only detail views.\n * The component is instantiated inside `<DisplayTemplateProvider>` and has access to\n * `useDisplayTemplateContext()` for `data`, `isLoading`, `variant`, labels, and breakpoint.\n */\n display?: LayoutTemplate;\n\n /**\n * Header layout template — the record's IDENTITY LINE in the READ page header.\n *\n * The header band is framework-owned chrome (back button, breadcrumb, resource\n * icon, action cluster) wrapped around one middle region: the record's name.\n * Authoring this template cedes that middle region to the resource, so state\n * that belongs ON the identity line — a status badge, a visibility marker, an\n * accent swatch — sits beside the name instead of in a labelled strip below it.\n *\n * Rendered inside a display-template provider over the loaded record, so\n * `<DisplayField name=\"…\">` and `useDisplayTemplateContext()` work exactly as\n * they do in `display` / `summary`. Inline editing is off (the header shows\n * state, it does not edit it) and chrome defaults to `INLINE` so fields render\n * bare, without their labels.\n *\n * **Place `<ResourceHeaderTitle />` yourself.** The header stops rendering its\n * own title once this template exists, so a template that omits the element\n * produces a page with no record name (a dev warning names the resource).\n *\n * Distinct from `summary` on purpose: a card/FK-popover summary answers \"how\n * does this record identify itself in a LIST\", and commonly carries fields a\n * page header should not repeat. Both surfaces compose the same way; neither\n * inherits the other's body.\n *\n * @example\n * // Accent dot before the name, status badge after it, \"Public\" only when true:\n * header: () => {\n * const { data, fieldLabels } = useDisplayTemplateContext();\n * return (\n * <>\n * {Boolean(data?.color) && <ColorDot value={String(data.color)} />}\n * <ResourceHeaderTitle />\n * <DisplayField name=\"status\" hideLabel className=\"w-auto\" />\n * {Boolean(data?.isPublic) && <Badge>{fieldLabels.isPublic}</Badge>}\n * </>\n * );\n * }\n */\n header?: LayoutTemplate;\n\n /**\n * Summary layout template — rendered for cards, list items, FK references.\n * Typically a compact single-line or small card layout.\n * The component is instantiated inside `<DisplayTemplateProvider>` by `ResourceSummaryDisplayer`,\n * with `disableInlineEdit={true}` and chrome defaulting to `DisplayChromeMode.INLINE`.\n * Use `useDisplayTemplateContext()` for reactive data access.\n *\n * **The title is part of the template flow.** Wrap the body in `<SummaryLayout>`;\n * by default (`titlePlacement={AUTO}`) it renders the resource's primary label\n * (`<SummaryTitle />`) at the top, then your fields below — the classic\n * title-above-body card. To put something on the title's line (a status badge),\n * switch to `titlePlacement={TEMPLATE_OWNED}` and place `<SummaryTitle />`\n * yourself, typically inside a `<SummaryHeader>`:\n *\n * @example\n * // Title above a couple of fields (title rendered automatically):\n * summary: () => (\n * <SummaryLayout>\n * <DisplayField name=\"createdAt\" />\n * </SummaryLayout>\n * )\n *\n * @example\n * // Status badge inline with the title:\n * summary: () => (\n * <SummaryLayout titlePlacement={SummaryTitlePlacement.TEMPLATE_OWNED}>\n * <SummaryHeader>\n * <SummaryTitle />\n * <DisplayField name=\"status\" hideLabel />\n * </SummaryHeader>\n * <DisplayField name=\"createdAt\" />\n * </SummaryLayout>\n * )\n */\n summary?: LayoutTemplate;\n\n}\n/** @wildo_source:part:end saas.frontend.resource-layout-templates */\n\n\n// ── Relationship display overrides ──────────────────────────────────\n\n/**\n * Per-relationship display override declared on the **owning resource's** preset.\n *\n * Each entry targets a specific relationship by `target` resource type (and\n * optionally `foreignKeyField` for disambiguation when multiple relationships\n * exist to the same type). The `inParentNavigation` /\n * `inChildView` sub-objects are shallow-merged onto the relationship's shared\n * `display` config during registry build — frontend values win over shared defaults.\n *\n * **Ownership principle**: each resource configures its own view:\n * - `inParentNavigation` → \"how does navigation from **my view** to this child behave?\"\n * - `inChildView` → \"how does the parent reference appear **in my view** when I'm the child?\"\n *\n * @example\n * ```ts\n * relationshipOverrides: [\n * // I'm parent of TASKS — make Tasks appear as accordion in MY view\n * { target: ResourceType.TASKS,\n * // I'm child of USERS (FK: assignedToUserId) — show user as badge in MY view\n * { target: ResourceType.USERS, foreignKeyField: 'assignedToUserId',\n * inChildView: { parentDisplay: ParentDisplay.BADGE } },\n * ]\n * ```\n */\nexport interface RelationshipDisplayOverride {\n /** Related resource type to match against. */\n target: string;\n /**\n * FK field name for disambiguation when multiple relationships exist to the\n * same `target` type. Matches against both explicit `rel.foreignKeyField` and\n * implied FK from `allResourceFieldIdentifiers`.\n */\n foreignKeyField?: string;\n /** Override for how children appear in THIS resource's view (when I'm parent). */\n /** Override for how navigation from THIS resource's view to the child behaves. */\n inParentNavigation?: Partial<RelationshipDisplayInParentNavigation>;\n /** Override for how parent reference appears in THIS resource's view (when I'm child). */\n inChildView?: Partial<RelationshipDisplayInChildView>;\n}\n\n\n// ── Resource-level frontend config ──────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.frontend.resource-ui-behavior-config facet:layer:frontend facet:family:resource-ui\n *\n * Complete frontend configuration for a single resource within an application.\n *\n * Canonical frontend resource configuration type. Contains resource-level settings\n * (labels, sections, views, empty state, guidance) plus per-operation frontend config.\n *\n * Generic `TMainSchema` defaults to `z.ZodAny`. Presets and `ResourceUIBehavior`\n * records use the default; app-level configs can narrow it to a concrete schema\n * for type-safe `getFrontendResourceLabel` callbacks.\n *\n * This is the canonical frontend type — it is self-contained and does not\n * reference or depend on backend resource configuration factories.\n *\n * UI views use a `Map` keyed by `OperationKey`:\n * - `string` key for default operations\n * - `[operationId, variantKey]` tuple for non-default variants\n *\n * @example\n * ```\n * const orgConfig: ResourceUIBehaviorConfig<any, any, typeof OrgSchema> = {\n * getFrontendResourceLabel: ({ currentObject }) => currentObject.name, // type-safe\n * views: new Map([\n * [CoreResourceOperation.CREATE, notAddressable()],\n * [CoreResourceOperation.LIST, addressable()],\n * ]),\n * };\n *\n * // Input form (via resourceUIBehavior callback) uses array-of-tuples:\n * // views: [\n * // [CoreResourceOperation.CREATE, notAddressable()],\n * // [CoreResourceOperation.LIST, addressable()],\n * // ],\n * ```\n */\nexport type ResourceUIBehaviorConfig<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = {\n\n // ── Resource Icon ──────────────────────────────────────────────\n\n /**\n * Resource-level icon — React component (e.g., Lucide) or string\n * (StandardIconReference). Registered into `IconRegistry.resources`\n * during `buildFrontendResourceConfigurations()`.\n */\n icon?: IconLike;\n\n\n // ── Field Addons ───────────────────────────────────────────────\n\n /**\n * Per-field decorator overrides for the resource's `mainSchema`.\n *\n * Keys are field names of `TMainSchema`; values are decorated Zod schemas\n * from the same shape (e.g., `shape.status.enumUI({ ... })`).\n *\n * The merge happens at **module evaluation time** — calling `.enumUI()`\n * on a shape field mutates its metadata in place via `applySingleDecorator`\n * merge semantics. Schema-level decorators are preserved, addon decorators\n * overlay. No explicit runtime consumption is needed; the `fields`\n * field exists primarily for type safety (`keyof z.infer<TMainSchema>`)\n * and as a declaration container.\n *\n * @example\n * ```ts\n * fields: {\n * status: shape.status.enumUI({\n * values: { pending: { color: 'secondary' }, completed: { color: 'success' } },\n * }),\n * }\n * ```\n */\n fields?: {\n [K in keyof ObjectShape<TMainSchema>]?: ObjectShape<TMainSchema>[K];\n };\n\n\n // ── Form Defaults ──────────────────────────────────────────────\n\n /**\n * Resource-level default validation mode for form fields.\n * Individual fields can override via `{primitive}UI({ edit: { validationMode } })`.\n * Falls back to framework default (`ON_BLUR`) when not set.\n */\n defaultValidationMode?: ValidationMode;\n\n /**\n * Resource-level default autosave config for form fields.\n * Individual fields can override via `{primitive}UI({ edit: { autosave } })`.\n * When not set, autosave is disabled unless explicitly configured per-field.\n */\n defaultAutosave?: AutosaveFieldParams | true;\n\n\n // ── Draft Mode ─────────────────────────────────────────────────\n\n /**\n * Resource-level draft mode configuration.\n * Defines how draft/publish discrimination works — which field acts as\n * discriminator, what values mean \"draft\" vs \"published\", and whether\n * publishing requires confirmation.\n *\n * Consumed by `ResourceAutomatedForm` to enable Save-as-Draft / Publish\n * buttons and relaxed validation for draft saves.\n */\n draftableConfig?: DraftableConfigParams;\n\n\n // ── Layout ──────────────────────────────────────────────────────\n\n /**\n * Template-based layout configuration. Resources needing sections, wizard steps,\n * or custom layouts provide explicit JSX templates using skeleton components\n * (`<Section>`, `<FormField>`, `<WizardLayout>`, etc.).\n *\n * @see ResourceLayoutConfig\n */\n layout?: ResourceLayoutConfig;\n\n\n // ── Label ──────────────────────────────────────────────────────\n\n /**\n * Label generation for resource instances in the frontend.\n *\n * Can be either:\n * - `string[]` — array of field paths to concatenate (each entry is a field\n * name on the summary record, including any server-resolved virtual field\n * such as a `forwardedLabel`, e.g. `['instanceLabel']`).\n * - `(params: ResourceUIBehaviorLabelParams) => string` — a function\n *\n * Used by `ResourceListItemRenderer` (rows) and `ResourceLayout_Header` (titles).\n */\n getFrontendResourceLabel?: string[] | ((params: ResourceUIBehaviorLabelParams<TMainSchema>) => string);\n\n\n // ── Views ──────────────────────────────────────────────────────\n\n /** Resource-owned composite templates declared inline on the resource UI behavior. */\n compositeViews?: ResourceCompositeViewsConfig;\n\n /** Resource-owned execution surfaces declared inline on the resource UI behavior. */\n executionViews?: ResourceExecutionViewsConfig;\n\n /** Resource-owned inserted chart declarations for this resource. */\n chartViews?: InsertedChartDeclaration[];\n\n\n // ── Empty State ────────────────────────────────────────────────\n\n /**\n * Empty state configuration for list/table views when no items exist.\n * Labels (title, description, primaryActionLabel) come from i18n.\n */\n emptyState?: ResourceUIBehavior_EmptyState;\n\n\n // ── Guidance ───────────────────────────────────────────────────\n\n /**\n * Resource-level guidance flow declarations.\n * Compiled into standard `GuidanceFlowDefinition` objects by the guidance compiler.\n */\n guidance?: ResourceUIBehavior_GuidanceFlow[];\n\n\n // ── Relationship Display Overrides ───────────────────────────────\n\n /**\n * Per-relationship display overrides for this resource.\n *\n * Allows the frontend preset to override how relationships are displayed\n * without modifying the shared `display` config on the relationship itself.\n * Consumed at build time by `resolveRelationshipDisplayOverrides()` and\n * stripped from `frontendConfiguration` before storage.\n *\n * @see RelationshipDisplayOverride\n */\n relationshipOverrides?: RelationshipDisplayOverride[];\n\n\n // ── UI Views ───────────────────────────────────────────────────\n\n /**\n * Per-operation frontend configuration — which operations have a UI view\n * and how they appear (addressability, launchers, overrides).\n *\n * Keyed by `TypedOperationKey`:\n * - `string` — default operation (e.g., `CoreResourceOperation.READ`)\n * - `[operationId, variantKey]` — non-default variant\n *\n * When typed via `resourceUIBehavior()`, operation keys are validated\n * at compile time against the resource's valid operations.\n */\n views: Map<TypedOperationKey<TCustomOp, TCoreOp>, ResourceOperationFrontendConfig>;\n};\n/** @wildo_source:part:end saas.frontend.resource-ui-behavior-config */\n\n/**\n * Resource-level UI behavior configuration — the subset of `ResourceUIBehaviorConfig`\n * that describes the resource itself (labels, sections, views, empty state, guidance),\n * excluding `views` (lives on individual operation entries),\n * `relationshipOverrides` (consumed at build time, not stored at runtime).\n *\n * Resource-owned composite/execution authoring maps are compiled into inserted\n * runtime declarations before storage.\n *\n * This is what gets written to `FrontendResourceConfiguration.frontendConfiguration`\n * during preset-driven registry build.\n */\nexport type ResourceUIBehaviorResourceLevelConfig<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = Omit<ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TMainSchema>, 'views' | 'relationshipOverrides' | 'compositeViews' | 'executionViews'> & {\n compositeViews?: InsertedCompositeDeclaration[];\n executionViews?: InsertedExecutionDeclaration[];\n};\n\n// ── Preset type ─────────────────────────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.frontend.resource-ui-behavior-preset-map facet:layer:frontend facet:family:resource-ui\n *\n * Complete frontend resource configuration preset for an application.\n *\n * Maps resource types to their full frontend configuration — including\n * resource-level settings (labels, sections, views, empty state, guidance)\n * and operation-level settings (addressability, launchers, overrides).\n *\n * Each application provides its own preset defining exactly which resources\n * and operations it exposes and how they appear in the UI.\n *\n * When authoring presets, use `resourceUIBehavior()` which accepts views\n * as an array of tuples (for contextual typing) and converts to Map internally.\n *\n * @example\n * ```\n * const preset: ResourceUIBehavior = {\n * [CoreResourceType.ORGANIZATIONS]: resourceUIBehavior(factory, Schema, ({ schema, schemaShape, opsVariantResolver }) => ({\n * getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n * views: [\n * [CoreResourceOperation.CREATE, notAddressable()],\n * [CoreResourceOperation.READ, notAddressable()],\n * ],\n * })),\n * };\n * ```\n */\nexport type ResourceUIBehavior = Record<string, ResourceUIBehaviorConfig>;\n/** @wildo_source:part:end saas.frontend.resource-ui-behavior-preset-map */\n\n// ── Polymorphic frontend declaration ────────────────────────────────\n\n/**\n * A single variant within a polymorphic frontend declaration.\n * Maps a parent resource type (the discriminator) to the concrete resource type it produces.\n *\n * Mirrors the backend's `PolymorphicResolvedVariant` — stripped of schema-level\n * concerns, keeping only the routing information the frontend needs.\n */\nexport interface PolymorphicFrontendVariant {\n /** Parent resource type — the polymorphic discriminator (e.g., `CoreResourceType.ORGANIZATIONS`) */\n parentResourceType: string;\n /** Concrete resource type for this variant (e.g., `CoreResourceType.ORGANIZATION_BILLING_ACCOUNTS`) */\n resourceType: string;\n}\n\n/**\n * Frontend polymorphic declaration — lightweight equivalent of the backend's\n * `PolymorphicSchemaDeclaration`.\n *\n * Contains the variant mapping (discriminator → concrete resource type) without\n * any Zod schema coupling. Used by `createPolymorphicFrontendPreset()` to generate\n * per-variant preset entries.\n *\n * Declarations are typically defined per resource family (billing accounts,\n * subscriptions, SSO config, etc.) and mirror the backend's\n * `BILLING_SCOPE_VARIANTS` / `AUTH_SCOPE_VARIANTS` grouping.\n *\n * @example\n * ```ts\n * const BILLING_ACCOUNTS: PolymorphicFrontendDeclaration = {\n * variants: [\n * { parentResourceType: CoreResourceType.ORGANIZATIONS, resourceType: CoreResourceType.ORGANIZATION_BILLING_ACCOUNTS },\n * { parentResourceType: CoreResourceType.USERS, resourceType: CoreResourceType.USER_BILLING_ACCOUNTS },\n * ],\n * };\n * ```\n */\nexport interface PolymorphicFrontendDeclaration {\n variants: PolymorphicFrontendVariant[];\n}\n\n\n// ── Polymorphic preset config ───────────────────────────────────────\n\n/**\n * Resource frontend config with optional per-variant overrides.\n *\n * Mirrors the backend's `PolymorphicResourceConfig` + `polymorphicRole` pattern:\n * - Shared fields apply to all scope variants as the default\n * - `variantOverrides` keyed by `parentResourceType` (the discriminator)\n * allow per-variant differentiation — just like `polymorphicRole` resolves\n * different roles per parent resource type\n *\n * Override resolution (same as backend `polymorphicRole`):\n * - If a variant's `parentResourceType` is in `variantOverrides`, the override\n * **replaces** the corresponding shared fields (not merged)\n * - If not present, the shared config is used as-is (fallback)\n * - `views` in an override fully replaces the shared views Map\n * (use an empty `new Map()` to make a variant invisible in the preset)\n */\nexport type PolymorphicResourceUIBehaviorConfig<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = Omit<ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TMainSchema>, 'views'> & {\n /**\n * Per-operation frontend config — array-of-tuples form (converted to Map internally).\n * Same semantics as `ResourceUIBehaviorConfig.views` but using arrays for\n * TypeScript contextual typing compatibility.\n */\n views: OperationEntries<TCustomOp, TCoreOp>;\n /**\n * Per-variant overrides, keyed by `parentResourceType` (the polymorphic discriminator).\n *\n * Like backend `polymorphicRole`, provides variant-specific configuration.\n * Each override **replaces** the corresponding shared field — `views`\n * is a full replacement, not a merge. If `views` is omitted in the\n * override, the shared views apply.\n *\n * Pass an empty array `[]` for `views` to exclude a variant from\n * surfacing in the preset (variant still exists in the declaration, but\n * has no frontend operations).\n */\n variantOverrides?: Record<string, Partial<Omit<ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TMainSchema>, 'views'>> & { views?: OperationEntries<TCustomOp, TCoreOp> }>;\n };\n\n/**\n * Return type of the `polymorphicResourceUIBehavior()` callback overload.\n * Same structure as `PolymorphicResourceUIBehaviorConfig` — the callback form\n * provides `{ schema, schemaShape, opsVariantResolver }` for the same typed control as `resourceUIBehavior()`:\n * operation keys in `views` and `variantOverrides` are validated at compile time.\n */\nexport type PolymorphicResourceUIBehaviorConfigResult<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n TMainSchema extends z.ZodTypeAny = z.ZodAny,\n> = PolymorphicResourceUIBehaviorConfig<TCustomOp, TCoreOp, TMainSchema>;\n\n// ── Polymorphic preset factory ──────────────────────────────────────\n\n/**\n * Creates frontend preset entries for all scope variants of a polymorphic resource.\n *\n * Mirrors the backend `createPolymorphicResourceConfigurations` pattern:\n * takes a polymorphic declaration (discriminator → concrete resource types) and\n * a shared config with optional per-variant overrides, producing a\n * `ResourceUIBehavior` partial that can be spread into the main preset.\n *\n * Resolution per variant (same semantics as backend `polymorphicRole` → `roles`):\n * 1. If `variantOverrides[parentResourceType]` exists → override fields **replace**\n * corresponding shared fields (views is a full replacement, not merge)\n * 2. If no override → shared config used as-is (fallback)\n *\n * The declaration must always contain ALL variants of the polymorphic resource.\n * Use `variantOverrides` with an empty `views: []` to exclude a variant\n * from a specific preset (the variant is declared but has no frontend presence).\n *\n * @param declaration - Polymorphic frontend declaration with ALL variant mappings\n * @param config - Shared config (default) with optional `variantOverrides` per discriminator\n * @returns Partial `ResourceUIBehavior` with one entry per variant\n *\n * @example\n * ```ts\n * // Main app: org scope gets full ops, app scope excluded\n * ...createPolymorphicFrontendPreset({\n * variants: [\n * { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_SSO_CONFIG },\n * { parentResourceType: R.APPLICATION, resourceType: R.APPLICATION_SSO_CONFIG },\n * ],\n * }, {\n * views: [\n * [Op.READ, addressable()],\n * [CustomOperations.RUN_DIAGNOSTIC, notAddressable()],\n * ],\n * variantOverrides: {\n * [R.APPLICATION]: { views: [] },\n * },\n * }),\n *\n * // Admin app: app scope gets full ops, org scope read-only\n * ...createPolymorphicFrontendPreset({\n * variants: [\n * { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_SSO_CONFIG },\n * { parentResourceType: R.APPLICATION, resourceType: R.APPLICATION_SSO_CONFIG },\n * ],\n * }, {\n * views: [\n * [Op.READ, addressable()],\n * [CustomOperations.RUN_DIAGNOSTIC, notAddressable()],\n * ],\n * variantOverrides: {\n * [R.ORGANIZATIONS]: {\n * views: [\n * [Op.READ, notAddressable()],\n * [Op.LIST, notAddressable()],\n * ],\n * },\n * },\n * }),\n * ```\n */\nexport function createPolymorphicFrontendPreset(\n declaration: PolymorphicFrontendDeclaration,\n config: PolymorphicResourceUIBehaviorConfig,\n): ResourceUIBehavior {\n const schema = (config as any)[FRONTEND_SCHEMA_KEY];\n const { variantOverrides, views: sharedViewsEntries, ...sharedRest } = config;\n const sharedViews = new Map(sharedViewsEntries);\n const sharedConfig = { ...sharedRest, views: sharedViews } as ResourceUIBehaviorConfig;\n\n // Compute per-variant FK-renamed schemas. The author passes ONE base\n // schema to `polymorphicResourceUIBehavior(decl, factory, baseSchema, ...)`,\n // but the runtime polymorphic factory renames `polymorphicVariants`-marked\n // FK fields per variant (e.g. `billingAccountId` →\n // `organizationBillingAccountId` for the ORGANIZATIONS variant). If we\n // attach the un-renamed base schema as `FRONTEND_SCHEMA_KEY` on every\n // variant, `buildFrontendResourceConfigurations` later replaces the\n // renamed `mainSchema` with the un-renamed base — and the FK→parent\n // resolution check throws because the base's `billingAccountId` doesn't\n // resolve to a unique parent. Mirror the factory's rename at this seam\n // so per-variant `FRONTEND_SCHEMA_KEY` matches the per-variant\n // `mainSchema` keys.\n const variantSchemas =\n schema !== undefined && (schema as z.ZodTypeAny)?._zod?.def?.type === 'object'\n ? computePolymorphicVariantSchemas(\n schema as z.ZodObject<z.ZodRawShape>,\n declaration.variants,\n )\n : null;\n\n if (schema !== undefined) {\n (sharedConfig as any)[FRONTEND_SCHEMA_KEY] = schema;\n }\n const result: ResourceUIBehavior = {};\n\n for (const variant of declaration.variants) {\n const override = variantOverrides?.[variant.parentResourceType];\n // Use the per-variant renamed schema when available; fall back to the\n // shared base schema for declarations whose fields have no\n // `polymorphicVariants` metadata (rename map is empty → identity).\n const variantSchema =\n variantSchemas?.get(variant.parentResourceType) ?? schema;\n\n if (override) {\n const { views: overrideViewsEntries, ...overrideRest } = override;\n const concreteConfig = {\n ...sharedConfig,\n ...overrideRest,\n views: overrideViewsEntries ? new Map(overrideViewsEntries) : sharedViews,\n };\n if (variantSchema !== undefined) {\n (concreteConfig as any)[FRONTEND_SCHEMA_KEY] = variantSchema;\n }\n result[variant.resourceType] = concreteConfig;\n } else if (variantSchemas && variantSchema !== schema) {\n // Distinct per-variant schema: clone sharedConfig so each variant\n // keeps its own FRONTEND_SCHEMA_KEY rather than sharing the base.\n const concreteConfig = { ...sharedConfig, views: sharedViews } as ResourceUIBehaviorConfig;\n (concreteConfig as any)[FRONTEND_SCHEMA_KEY] = variantSchema;\n result[variant.resourceType] = concreteConfig;\n } else {\n result[variant.resourceType] = sharedConfig;\n }\n }\n\n return result;\n}\n\n\n// ── Utility types for extracting generics from ResourceConfiguration ────────\n\n/**\n * Infers the custom operation enum from a resource factory or config type.\n *\n * **How to use:** in generic helpers that wrap `resourceUIBehavior(yourFactory, …)`\n * so `TypedOperationKey` and `views` tuples stay aligned without repeating type params.\n */\nexport type ExtractCustomOp<T> =\n T extends ResourceConfiguration<infer C, any, any> ? C :\n T extends ResourceConfiguration_InitializationFactory<infer C, any, any> ? C :\n never;\n\n/** Same as {@link ExtractCustomOp} for the **core** operations subset on the resource. */\nexport type ExtractCoreOp<T> =\n T extends ResourceConfiguration<any, infer O, any> ? O :\n T extends ResourceConfiguration_InitializationFactory<any, infer O, any> ? O :\n never;\n\n/** Same as {@link ExtractCustomOp} for the resource **main Zod schema** type. */\nexport type ExtractSchema<T> =\n T extends ResourceConfiguration<any, any, infer S> ? S :\n T extends ResourceConfiguration_InitializationFactory<any, any, infer S> ? S :\n never;\n\n\n// ── Standalone variant helper ───────────────────────────────────────────────\n\n/**\n * Creates a typed operation variant tuple `[operationKey, variantKey]`.\n * Preserves the literal operation key for `TypedOperationKey` assignability.\n *\n * **How to use:** in `views: [ … ]` when the operation key must stay a narrow literal\n * (custom enum member or core op). Equivalent to `opsVariantResolver(op, key)` but\n * useful in static arrays outside the callback.\n */\nexport function variant<TOp extends string>(\n op: TOp, variantKey: string,\n): readonly [TOp, string] {\n return [op, variantKey] as const;\n}\n\n\n// ── Operation entries (input form) ───────────────────────────────────────────\n\n/**\n * Array-of-tuples form for specifying operations in input contexts\n * (`resourceUIBehavior` callback, `polymorphicResourceUIBehavior` config).\n *\n * TypeScript's `new Map([...])` doesn't pick up contextual typing for\n * heterogeneous key types, so input types use arrays — the factory functions\n * convert to `Map` at the boundary. Each entry's key is individually checked\n * against `TypedOperationKey<TCustomOp, TCoreOp>` via contextual typing.\n */\nexport type OperationEntries<\n TCustomOp extends EnumLikeType | undefined = any,\n TCoreOp extends Partial<CoreResourceOperation> | undefined = any,\n> = [TypedOperationKey<TCustomOp, TCoreOp>, ResourceOperationFrontendConfig][];\n\n\n// ── Callback parameter type for resourceUIBehavior / polymorphicResourceUIBehavior ─\n\n/**\n * Callback argument bag for `resourceUIBehavior()` / `polymorphicResourceUIBehavior()`.\n *\n * **How to use:** prefer `schemaShape.fieldName` for per-field `.enumUI()` / `.stringUI()`\n * overrides; use `schema` when applying decorators on the root object; use\n * `opsVariantResolver(CoreResourceOperation.READ, 'summary')` (or `variant()`) so\n * non-default variant keys type-check against valid operations.\n */\nexport type ResourceUIBehaviorCallbackParams<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = {\n schema: TSchema;\n schemaShape: ObjectShape<TSchema>;\n opsVariantResolver: <TOp extends ValidOperationKeys<TCustomOp, TCoreOp>>(\n op: TOp, variantKey: string,\n ) => readonly [TOp, string];\n};\n\n\n// ── Callback return type for resourceUIBehavior ─────────────────────────────\n\n/**\n * Return type of the `resourceUIBehavior()` callback — overrides `views`\n * to accept an array of tuples (instead of Map) for ergonomic authoring.\n * The `resourceUIBehavior()` function converts the array to a Map.\n *\n * `schemaOverride` is applied during callback execution as a side effect and\n * stripped from the returned config. Must appear BEFORE `fields` in the\n * object literal to ensure schema-level defaults are set before field-level overrides.\n */\nexport type ResourceUIBehaviorConfigResult<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = Omit<ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>, 'views'> & {\n views: OperationEntries<TCustomOp, TCoreOp>;\n schemaOverride?: TSchema;\n};\n\n\n// ── Typed resource UI behavior factory ──────────────────────────────────────\n\n/**\n * Creates a typed `ResourceUIBehaviorConfig` entry for a given resource.\n *\n * All generics are inferred from the `_factory` argument — no explicit type\n * parameters needed. The callback receives `{ schema, schemaShape, opsVariantResolver }`:\n * - `schema` — the Zod schema (for schema-level mutations like `.stringUI()`, `.enumUI()`, etc.)\n * - `schemaShape` — the typed shape object (for per-field decorator overrides with autocomplete)\n * - `opsVariantResolver` — typed variant tuple helper constrained to valid operation keys\n *\n * The `_factory` parameter is for **type inference only** and is never called at runtime.\n *\n * @example\n * ```ts\n * [R.TODOS]: resourceUIBehavior(\n * todos_ResourceConfiguration_InitializationFactory,\n * Todos_Schema,\n * ({ schema, schemaShape, opsVariantResolver }) => ({\n * icon: CheckSquare,\n * fields: {\n * status: schemaShape.status.enumUI({\n * values: { completed: { color: 'success', icon: CheckCircle } },\n * }),\n * },\n * views: [\n * [CoreResourceOperation.LIST, addressable()],\n * [opsVariantResolver(CoreResourceOperation.CREATE, 'quick-add'), notAddressable()],\n * ],\n * }),\n * ),\n * ```\n */\nexport function resourceUIBehavior<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n schema: TSchema,\n configFactory: (\n params: ResourceUIBehaviorCallbackParams<TCustomOp, TCoreOp, TSchema>,\n ) => ResourceUIBehaviorConfigResult<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehaviorConfig {\n const schemaShape = (\n schema && 'shape' in schema\n ? (schema as unknown as z.ZodObject<any>).shape\n : getZodObjectShape(schema)\n ) as ObjectShape<TSchema>;\n\n const opsVariantResolver = <TOp extends string>(op: TOp, variantKey: string) =>\n [op, variantKey] as readonly [TOp, string];\n\n const { schemaOverride: _, views: viewsEntries, ...config } =\n configFactory({ schema, schemaShape, opsVariantResolver: opsVariantResolver as any });\n\n (config as any)[FRONTEND_SCHEMA_KEY] = schema;\n\n return {\n ...config,\n views: new Map(viewsEntries),\n } as unknown as ResourceUIBehaviorConfig;\n}\n\n\n// ── Derived resource UI behavior factory ────────────────────────────────────\n\n/**\n * Callback parameter type for `resourceUIBehaviorFrom()`.\n * Extends the standard callback params with a `base` reference to the resolved base config.\n */\nexport type ResourceUIBehaviorFromCallbackParams<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = ResourceUIBehaviorCallbackParams<TCustomOp, TCoreOp, TSchema> & {\n /** The resolved base config — use to reference existing values when composing overrides. */\n base: ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>;\n};\n\n/**\n * Return type of the `resourceUIBehaviorFrom()` callback — everything is optional.\n *\n * Merge semantics applied by `resourceUIBehaviorFrom`:\n * - `views` — **replaced** (the primary differentiator between main/admin)\n * - `layout` — **shallow-merged** (`{ ...base.layout, ...override.layout }`)\n * - `fields` — **shallow-merged** (base fields preserved, overrides overlay per-key)\n * - `compositeViews` — **shallow-merged** by ref (`{ ...base.compositeViews, ...override.compositeViews }`)\n * - `executionViews` — **shallow-merged** by ref (`{ ...base.executionViews, ...override.executionViews }`)\n * - Scalars (`icon`, `emptyState`, `getFrontendResourceLabel`, etc.) — **replaced** if provided\n */\nexport type ResourceUIBehaviorFromResult<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = Partial<Omit<ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>, 'views'>> & {\n views?: OperationEntries<TCustomOp, TCoreOp>;\n};\n\n/**\n * Derives a new `ResourceUIBehaviorConfig` from an existing base, overriding only\n * the specified properties. Eliminates duplication between main and admin presets\n * where the majority of the config (icon, fields, layout, labels) is identical\n * and only `views` (and occasionally `variantOverrides`) differ.\n *\n * The `_factory` parameter is for **type inference only** — same as `resourceUIBehavior()`.\n * The schema is extracted from the base config via `FRONTEND_SCHEMA_KEY`, so it does not\n * need to be passed again.\n *\n * For resources that are completely identical between main and admin, skip this function\n * entirely and forward the config directly: `[R.PRODUCTS]: main[R.PRODUCTS]!`\n *\n * @param _factory - Any factory from the resource — for type inference only (never called)\n * @param base - The resolved base `ResourceUIBehaviorConfig` (from main presets)\n * @param overrideFn - Callback returning only the properties to override\n *\n * @example\n * ```ts\n * // Admin promotions — same icon/fields/layout, different views\n * [R.PROMOTIONS]: resourceUIBehaviorFrom(\n * promotionsFactory,\n * main[R.PROMOTIONS]!,\n * ({ opsVariantResolver }) => ({\n * views: [\n * [Promotion_Operations.DEACTIVATE, notAddressable()],\n * ],\n * })\n * ),\n * ```\n */\nexport function resourceUIBehaviorFrom<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n base: ResourceUIBehaviorConfig,\n overrideFn: (\n params: ResourceUIBehaviorFromCallbackParams<TCustomOp, TCoreOp, TSchema>,\n ) => ResourceUIBehaviorFromResult<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehaviorConfig {\n const schema = (base as any)[FRONTEND_SCHEMA_KEY] as TSchema;\n const schemaShape = (\n schema && 'shape' in schema\n ? (schema as unknown as z.ZodObject<any>).shape\n : getZodObjectShape(schema)\n ) as ObjectShape<TSchema>;\n const opsVariantResolver = <TOp extends string>(op: TOp, variantKey: string) =>\n [op, variantKey] as readonly [TOp, string];\n\n const {\n views: overrideViews,\n layout: overrideLayout,\n fields: overrideFields,\n compositeViews: overrideCompositeViews,\n executionViews: overrideExecutionViews,\n ...overrideRest\n } =\n overrideFn({\n schema,\n schemaShape,\n opsVariantResolver: opsVariantResolver as any,\n base: base as unknown as ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>,\n });\n\n return {\n ...base,\n ...overrideRest,\n ...(overrideLayout !== undefined && {\n layout: { ...base.layout, ...overrideLayout },\n }),\n ...(overrideFields !== undefined && {\n fields: { ...base.fields, ...overrideFields },\n }),\n ...(overrideCompositeViews !== undefined && {\n compositeViews: { ...base.compositeViews, ...overrideCompositeViews },\n }),\n ...(overrideExecutionViews !== undefined && {\n executionViews: { ...base.executionViews, ...overrideExecutionViews },\n }),\n views: overrideViews ? new Map(overrideViews) : base.views,\n } as unknown as ResourceUIBehaviorConfig;\n}\n\n\n// ── Derived polymorphic resource UI behavior factory ─────────────────────────\n\n/**\n * Return type of the `polymorphicResourceUIBehaviorFrom()` callback — everything is optional.\n * Same merge semantics as `resourceUIBehaviorFrom()`, plus `variantOverrides` is shallow-merged\n * per parent key (inner overrides replace, not merge).\n */\nexport type PolymorphicResourceUIBehaviorFromResult<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n> = Partial<Omit<PolymorphicResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>, 'views'>> & {\n views?: OperationEntries<TCustomOp, TCoreOp>;\n};\n\n/**\n * Derives a polymorphic preset from an existing base, overriding only the specified\n * properties. Works like `resourceUIBehaviorFrom()` but for polymorphic resources\n * produced by `polymorphicResourceUIBehavior()`.\n *\n * The base entries are the already-spread `Partial<ResourceUIBehavior>` from the main\n * preset. Internally, the first variant's config is used as the shared base — the\n * callback receives it as `base` and returns only what changes.\n *\n * @param declaration - Same polymorphic declaration used in the main preset\n * @param _factory - Any single factory from the polymorphic map — for type inference only\n * @param baseEntries - The spread result from the main preset (keyed by concrete resource type)\n * @param overrideFn - Callback returning only the properties to override\n *\n * @example\n * ```ts\n * // Admin SIEM — same icon/layout/fields, different variantOverrides\n * ...polymorphicResourceUIBehaviorFrom(\n * SIEM_EXPORT_DECLARATION,\n * siemFactory,\n * main,\n * ({ opsVariantResolver }) => ({\n * variantOverrides: {\n * [R.ORGANIZATIONS]: {\n * views: [[Op.READ, notAddressable()]],\n * },\n * },\n * })\n * ),\n * ```\n */\nexport function polymorphicResourceUIBehaviorFrom<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n declaration: PolymorphicFrontendDeclaration,\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n baseEntries: Partial<ResourceUIBehavior>,\n overrideFn: (\n params: ResourceUIBehaviorFromCallbackParams<TCustomOp, TCoreOp, TSchema>,\n ) => PolymorphicResourceUIBehaviorFromResult<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehavior {\n const firstVariantType = declaration.variants[0]?.resourceType;\n const baseConfig = firstVariantType ? baseEntries[firstVariantType] : undefined;\n if (!baseConfig) {\n throw new Error(\n `polymorphicResourceUIBehaviorFrom: no base config found for first variant \"${firstVariantType}\"`,\n );\n }\n\n const schema = (baseConfig as any)[FRONTEND_SCHEMA_KEY] as TSchema;\n const schemaShape = (\n schema && 'shape' in schema\n ? (schema as unknown as z.ZodObject<any>).shape\n : getZodObjectShape(schema)\n ) as ObjectShape<TSchema>;\n const opsVariantResolver = <TOp extends string>(op: TOp, variantKey: string) =>\n [op, variantKey] as readonly [TOp, string];\n\n const {\n views: overrideViews,\n layout: overrideLayout,\n fields: overrideFields,\n compositeViews: overrideCompositeViews,\n executionViews: overrideExecutionViews,\n variantOverrides: overrideVariantOverrides,\n ...overrideRest\n } = overrideFn({\n schema,\n schemaShape,\n opsVariantResolver: opsVariantResolver as any,\n base: baseConfig as unknown as ResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>,\n });\n\n const mergedPolyConfig: PolymorphicResourceUIBehaviorConfig = {\n ...baseConfig,\n ...overrideRest,\n ...(overrideLayout !== undefined && {\n layout: { ...baseConfig.layout, ...overrideLayout },\n }),\n ...(overrideFields !== undefined && {\n fields: { ...baseConfig.fields, ...overrideFields },\n }),\n ...(overrideCompositeViews !== undefined && {\n compositeViews: { ...baseConfig.compositeViews, ...overrideCompositeViews },\n }),\n ...(overrideExecutionViews !== undefined && {\n executionViews: { ...baseConfig.executionViews, ...overrideExecutionViews },\n }),\n views: overrideViews ?? [...baseConfig.views.entries()],\n ...(overrideVariantOverrides !== undefined && {\n variantOverrides: overrideVariantOverrides,\n }),\n } as unknown as PolymorphicResourceUIBehaviorConfig;\n\n return createPolymorphicFrontendPreset(declaration, mergedPolyConfig);\n}\n\n\n// ── Typed polymorphic UI behavior factory ───────────────────────────────────\n\n/**\n * Creates a typed polymorphic UI behavior preset — wraps `createPolymorphicFrontendPreset()`\n * with type inference from a factory or configuration.\n *\n * For resources built with `createFamilySchema` (discriminated unions), the factory\n * provides the generic context for `fields` typing and operation key validation.\n *\n * **Two overloads** — use the callback form for the same typed control as `resourceUIBehavior()`:\n * - Callback: `(declaration, factory, schema, ({ schema, schemaShape, opsVariantResolver }) => config)` — operation keys\n * in `views` and `variantOverrides` are validated at compile time via the `opsVariantResolver` helper.\n * - Object: `(declaration, factory, config)` — config object; typing may be weaker for array literals.\n *\n * @param declaration - Polymorphic frontend declaration with variant mappings\n * @param _factory - Any single factory from the polymorphic map — for type inference only\n * @param schemaOrConfig - Base schema (for callback form) or config object (for object form)\n * @param configFactory - Callback form only: receives { schema, schemaShape, opsVariantResolver } like resourceUIBehavior\n */\nexport function polymorphicResourceUIBehavior<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n declaration: PolymorphicFrontendDeclaration,\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n schema: TSchema,\n configFactory: (\n params: ResourceUIBehaviorCallbackParams<TCustomOp, TCoreOp, TSchema>,\n ) => PolymorphicResourceUIBehaviorConfigResult<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehavior;\n\n\nexport function polymorphicResourceUIBehavior<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n declaration: PolymorphicFrontendDeclaration,\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n config: PolymorphicResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehavior;\n\n\nexport function polymorphicResourceUIBehavior<\n TCustomOp extends EnumLikeType | undefined,\n TCoreOp extends Partial<CoreResourceOperation> | undefined,\n TSchema extends z.ZodTypeAny,\n>(\n declaration: PolymorphicFrontendDeclaration,\n _factory: ResourceConfigLike<TCustomOp, TCoreOp, TSchema>,\n schemaOrConfig: TSchema | PolymorphicResourceUIBehaviorConfig<TCustomOp, TCoreOp, TSchema>,\n configFactory?: (\n params: ResourceUIBehaviorCallbackParams<TCustomOp, TCoreOp, TSchema>,\n ) => PolymorphicResourceUIBehaviorConfigResult<TCustomOp, TCoreOp, TSchema>,\n): ResourceUIBehavior {\n const config = configFactory\n ? (() => {\n const schema = schemaOrConfig as TSchema;\n const schemaShape = (\n schema && 'shape' in schema\n ? (schema as unknown as z.ZodObject<any>).shape\n : getZodObjectShape(schema)\n ) as ObjectShape<TSchema>;\n const opsVariantResolver = <TOp extends string>(op: TOp, variantKey: string) =>\n [op, variantKey] as readonly [TOp, string];\n const config = configFactory({ schema, schemaShape, opsVariantResolver: opsVariantResolver as any });\n (config as any)[FRONTEND_SCHEMA_KEY] = schema;\n return config;\n })()\n : (schemaOrConfig as PolymorphicResourceUIBehaviorConfig);\n\n return createPolymorphicFrontendPreset(declaration, config as PolymorphicResourceUIBehaviorConfig);\n}\n"]}
|