@wildo-ai/saas-frontend-lib 1.1.2 → 1.1.3
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.map +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 +15 -2
- 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 +14 -2
- 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 +2 -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.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.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.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.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 +90 -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.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 +6 -0
- package/dist/esm/components/navigation/NavigationItemBadge.d.ts.map +1 -1
- package/dist/esm/components/navigation/NavigationItemBadge.js +2 -1
- 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.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.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.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.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.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.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.map +1 -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 +64 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +184 -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 +26 -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 +3 -0
- 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.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.map +1 -1
- 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 +232 -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.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 +128 -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 +183 -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 +68 -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 +98 -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 +6 -6
- 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 +4 -4
- 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 +20 -0
- package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.js +90 -5
- 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 +14 -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 +13 -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.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 +66 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js +101 -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 +103 -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 +20 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.js +50 -1
- 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 +9 -0
- package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
- package/dist/esm/core/i18n/I18nContext.js +149 -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 +73 -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 +56 -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.map +1 -1
- 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.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 +2 -2
- 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 +84 -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 +37 -9
- 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":"navigation.utils.js","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Navigation Utilities\n * \n * Shared utility functions for the navigation system.\n * Centralized to avoid duplication across navigation modules.\n */\n\nimport { \n CascadeDirection,\n CoreResourceType,\n CoreResourceOperation,\n coreResourceShared_FieldIdentifier,\n NavigationTransition,\n NavigationZoneName,\n ParentDisplay,\n ResourcesConfigOperationsUrlsBuilderUtils,\n ResourceConfiguration_Operation_UrlParameterInfo,\n ResourceRelationship,\n ResourceRelationshipCardinality,\n Resources_SharedUtils,\n type RequiredFeaturesConfig,\n type RelationshipDisplayInParentNavigation,\n} from '@wildo-ai/saas-models';\nimport { ApplicationLevelComponentType, SidebarItemDisplayPolicy } from '~wildo-frontend-lib/core/config/app-level-components.frontend.schemas';\nimport { COMPOSITE_ROUTE_CONTEXT_QUERY_PARAM_PREFIX } from '~wildo-frontend-lib/core/config/composite-view.schemas';\nimport { CHART_ROUTE_CONTEXT_QUERY_PARAM_PREFIX, CHART_ROUTE_PATH_PREFIX } from '~wildo-frontend-lib/core/config/chart-view.frontend.schemas';\nimport { HOSTED_PANE_QUERY_PARAM } from './hosted-pane.constants';\nimport { EXECUTION_ROUTE_CONTEXT_QUERY_PARAM_PREFIX } from '~wildo-frontend-lib/core/config/execution-view.schemas';\nimport { isOperationAddressable } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport type { AnyFrontendResourceConfiguration, FrontendResourceConfiguration_Operation, FrontendResourcesRegistry, FrontendResourceOperationContext } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { z } from 'zod';\nimport { frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport {\n pickPreferredOperationForCoreSemantic,\n resolveEffectiveCoreOperationFromOperation,\n} from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { pickPreferredOperationForCoreSemanticAddressability } from '~wildo-frontend-lib/core/resources/resource-addressability.frontend.utils';\nimport type { InlineParentContext } from '~wildo-frontend-lib/components/resources/component-props.resources-layout.frontend.schemas';\nimport { \n NavigationZone,\n APP_LEVEL_NAVIGATION_SOURCE,\n NAVIGATION_STRUCTURAL_ZONES,\n NavigationInitiatorContext,\n NavigationContent,\n NavigationContentType,\n NavigationZoneState, \n NavigationStackEntry, \n NavigationState,\n isCustomComponentNavigationItem,\n isEnginePageNavigationItem,\n isSettingsHubNavigationItem,\n isViewNavigationItem,\n type AnyNavigationItem,\n type ViewNavigationItem,\n} from './navigation.schemas';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\n\nconst logger: LoggerFrontendService = LoggerFrontendService.getLogger();\nconst logDebug: (message: string, context?: Record<string, unknown>) => void = logger.debugByType('NavigationUtils');\nlogger.setDebugTypeLogging('NavigationUtils', false);\n\n/**\n * Navigation utility class with static methods for navigation operations\n */\nexport class NavigationUtils {\n private static resolveContextIdentifierValue(\n resourceContext: FrontendResourceOperationContext,\n contextKey: string,\n ): string | undefined {\n const rawValue = resourceContext.contextResourceIdentifiers?.[contextKey];\n if (typeof rawValue === 'string') {\n return rawValue;\n }\n\n if (rawValue && typeof rawValue === 'object') {\n const nestedId = (rawValue as { resourceId?: unknown }).resourceId;\n return typeof nestedId === 'string' ? nestedId : undefined;\n }\n\n return undefined;\n }\n\n\n // ================================\n // Navigation Transaction\n // ================================\n //\n // A navigation transaction wraps multi-step operations (e.g., home click,\n // org switch, cascading) that must be treated as atomic. While a transaction\n // is active, useRouterSync is suppressed to prevent the Outlet from\n // re-populating the PRIMARY stack with stale content during React Router's\n // startTransition-based route change.\n //\n // Usage:\n // NavigationUtils.beginTransaction('home_navigation');\n // emit(NAVIGATION_CLEAR_ZONE, { zone: PRIMARY });\n // routerNavigate('/');\n // NavigationUtils.commitTransaction(); // or let it auto-commit\n //\n // Auto-commit: If commitTransaction() is not called explicitly, the\n // transaction auto-commits after the current event loop iteration via\n // setTimeout(0). This ensures the transaction covers all synchronous code\n // AND React's batched state updates and effects, but doesn't leak into\n // future render cycles.\n //\n // Safety net: A hard timeout (5s) auto-commits with a warning if the\n // caller forgets. This prevents permanent router sync suppression.\n //\n // Lives on NavigationUtils (static) to avoid circular dependencies between\n // NavigationContext and useNavigationController.\n\n private static _transactionActive = false;\n private static _transactionSource: string | null = null;\n private static _transactionAutoCommitTimer: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Monotonic counter, bumped every time a navigation transaction ENDS.\n *\n * The transaction is GLOBAL — a static flag — but the mechanism that waited for it to close used to\n * be per-instance: each route-mounted sync hook set its own `setTimeout(0)` and re-read the flag.\n * A hook that unmounted before its timer fired took the retry with it, and the reconstruction it was\n * deferring simply never happened (#212). That is not a rare race: clearing the structural zones\n * REMOUNTS the route element, so the instance that scheduled the retry is routinely not the instance\n * that needs it.\n *\n * A global signal cannot be lost that way. It is an EPOCH rather than an event, so a hook that mounts\n * after the commit is not waiting for a notification that already fired — it reads the current value\n * and, finding no active transaction, proceeds immediately.\n */\n private static _transactionEpoch = 0;\n\n private static readonly _transactionListeners = new Set<() => void>();\n\n /** Subscribe to transaction ENDINGS. Returns an unsubscribe. */\n static subscribeToTransactionState(listener: () => void): () => void {\n NavigationUtils._transactionListeners.add(listener);\n return () => {\n NavigationUtils._transactionListeners.delete(listener);\n };\n }\n\n /** The current epoch — changes exactly when a transaction ends. */\n static getTransactionEpoch(): number {\n return NavigationUtils._transactionEpoch;\n }\n\n /**\n * End the transaction and tell everyone waiting on it.\n *\n * One private door for all three endings — auto-commit, explicit commit, and the 5s safety net — so a\n * future fourth cannot end a transaction without waking the hooks that deferred to it. That is\n * exactly how the per-instance timer failed: the ending and the waiting were wired separately.\n */\n private static endTransactionAndNotify(): void {\n NavigationUtils._transactionActive = false;\n NavigationUtils._transactionSource = null;\n NavigationUtils._transactionEpoch += 1;\n for (const listener of [...NavigationUtils._transactionListeners]) {\n listener();\n }\n }\n private static _transactionSafetyTimer: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Begin a navigation transaction.\n * \n * While active, useRouterSync skips synchronization to prevent stale content\n * from being pushed to the navigation stack during multi-step operations.\n * \n * Transactions auto-commit after the current event loop iteration (setTimeout(0))\n * to handle the common case where explicit commitTransaction() is omitted.\n * A safety timeout (5s) prevents permanent suppression if something goes wrong.\n * \n * @param source - Descriptive label for debugging (e.g., 'home_navigation', 'org_switch')\n */\n static beginTransaction(source: string): void {\n // If a transaction is already active, just update the source (nested call)\n if (NavigationUtils._transactionActive) {\n logDebug('beginTransaction: NESTED (already active)', { existingSource: NavigationUtils._transactionSource, newSource: source });\n NavigationUtils._transactionSource = source;\n return;\n }\n\n NavigationUtils._transactionActive = true;\n NavigationUtils._transactionSource = source;\n logDebug('beginTransaction: STARTED', { source });\n\n // Auto-commit after current event loop iteration.\n // setTimeout(0) fires after all synchronous code, microtasks, and React's\n // batched rendering + effects, but before the next macrotask.\n NavigationUtils._transactionAutoCommitTimer = setTimeout(() => {\n if (NavigationUtils._transactionActive) {\n logDebug('beginTransaction: AUTO-COMMIT (setTimeout(0))', { source: NavigationUtils._transactionSource });\n NavigationUtils.endTransactionAndNotify();\n }\n NavigationUtils._transactionAutoCommitTimer = null;\n }, 0);\n\n // Safety net: hard timeout to prevent permanent suppression\n NavigationUtils._transactionSafetyTimer = setTimeout(() => {\n if (NavigationUtils._transactionActive) {\n console.warn('[NavigationUtils] Transaction safety timeout — force committing after 5s', { source: NavigationUtils._transactionSource });\n NavigationUtils.endTransactionAndNotify();\n }\n NavigationUtils._transactionSafetyTimer = null;\n }, 5000);\n }\n\n /**\n * Explicitly commit (end) the current navigation transaction.\n * \n * This is optional — transactions auto-commit after the current event loop\n * iteration. Call this explicitly when you want deterministic timing, e.g., a\n * test that needs the URL→state reconstruction guard released before asserting.\n */\n static commitTransaction(): void {\n if (!NavigationUtils._transactionActive) {\n return;\n }\n\n logDebug('commitTransaction: COMMITTED', { source: NavigationUtils._transactionSource });\n NavigationUtils.endTransactionAndNotify();\n\n // Clear pending timers\n if (NavigationUtils._transactionAutoCommitTimer) {\n clearTimeout(NavigationUtils._transactionAutoCommitTimer);\n NavigationUtils._transactionAutoCommitTimer = null;\n }\n if (NavigationUtils._transactionSafetyTimer) {\n clearTimeout(NavigationUtils._transactionSafetyTimer);\n NavigationUtils._transactionSafetyTimer = null;\n }\n }\n\n /**\n * Check if a navigation transaction is currently active.\n * \n * Used by useRouterSync to decide whether to skip synchronization.\n * Unlike the old consumeRouterSyncSuppression(), this does NOT consume\n * the flag — the transaction remains active until committed.\n */\n static isInTransaction(): boolean {\n return NavigationUtils._transactionActive;\n }\n\n /**\n * Get the current transaction source label (for debugging).\n */\n static getTransactionSource(): string | null {\n return NavigationUtils._transactionSource;\n }\n\n /**\n * The canonical browser URL string (`pathname + search`) every ownership check and every stamp\n * starts from. The query string is kept because part of it is ADDRESS (see\n * {@link isAddressQueryParam}); which part is decided at comparison time, never here.\n */\n static buildBrowserUrl(pathname: string, search: string = ''): string {\n return search ? `${pathname}${search}` : pathname;\n }\n\n /**\n * Normalize a URL before it is compared or decomposed: the hash fragment is dropped because the\n * runtime does not model it. The query string is kept — {@link urlsAddressSameDestination} is what\n * decides which of its keys count.\n */\n static normalizeComparableUrl(urlPath: string | undefined): string | undefined {\n if (!urlPath) {\n return undefined;\n }\n\n const [withoutHash] = urlPath.split('#');\n return withoutHash || undefined;\n }\n\n // ──────────────────────────────────────────────────────────────\n // URL identity: DESTINATION versus VIEW STATE\n // ──────────────────────────────────────────────────────────────\n\n /**\n * Whether a query-string key is part of a destination's ADDRESS rather than its view state.\n *\n * The framework itself writes three families of address params — a view route's context\n * identifiers (`composite_ctx_*`, `chart_ctx_*`, `execution_ctx_*`) — and the hosted-pane param.\n * A CHART route is the exception that keeps every param: `extractChartRouteUrlParamValues` reads\n * all non-context keys as the chart's url-param VALUES, so for that route they are address too.\n *\n * Everything else — `?section=`, `?dataMode=`, a filter a view mirrors — is view state: it changes\n * WHAT a destination shows, not WHICH destination is shown. Route ownership used to compare the\n * whole URL string, so every such change made the URL \"owned by nobody\" and the back/forward\n * reconciler tore every zone down to rebuild the very destination still on screen (measured on the\n * workbench creation board: each tab click remounted the board).\n */\n static isAddressQueryParam(pathname: string, key: string): boolean {\n if (key === HOSTED_PANE_QUERY_PARAM) return true;\n if (pathname.startsWith(CHART_ROUTE_PATH_PREFIX)) return true;\n return key.startsWith(COMPOSITE_ROUTE_CONTEXT_QUERY_PARAM_PREFIX)\n || key.startsWith(CHART_ROUTE_CONTEXT_QUERY_PARAM_PREFIX)\n || key.startsWith(EXECUTION_ROUTE_CONTEXT_QUERY_PARAM_PREFIX);\n }\n\n /** `pathname` and parsed `search` of a browser-style URL path; the hash is dropped. */\n static splitUrlPath(urlPath: string): { pathname: string; params: URLSearchParams } {\n const [withoutHash = ''] = urlPath.split('#');\n const questionMark = withoutHash.indexOf('?');\n if (questionMark < 0) {\n return { pathname: withoutHash, params: new URLSearchParams() };\n }\n return {\n pathname: withoutHash.slice(0, questionMark),\n params: new URLSearchParams(withoutHash.slice(questionMark + 1)),\n };\n }\n\n /** Reassemble a `splitUrlPath` result; an empty query yields the bare pathname. */\n static joinUrlPath(pathname: string, params: URLSearchParams): string {\n const search = params.toString();\n return search.length > 0 ? `${pathname}?${search}` : pathname;\n }\n\n /**\n * The DESTINATION a URL addresses: its pathname plus its address params, in a canonical order.\n * Two URLs with the same key show the same destination and may differ only in view state.\n */\n static getUrlDestinationKey(urlPath: string | undefined): string | undefined {\n if (!urlPath) return undefined;\n const { pathname, params } = NavigationUtils.splitUrlPath(urlPath);\n const addressEntries = [...params.entries()]\n .filter(([key]) => NavigationUtils.isAddressQueryParam(pathname, key))\n .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));\n return NavigationUtils.joinUrlPath(pathname, new URLSearchParams(addressEntries));\n }\n\n static urlsAddressSameDestination(a: string | undefined, b: string | undefined): boolean {\n const keyA = NavigationUtils.getUrlDestinationKey(a);\n return keyA !== undefined && keyA === NavigationUtils.getUrlDestinationKey(b);\n }\n\n // ──────────────────────────────────────────────────────────────\n // Hosted panes: a SECONDARY destination carried by a non-derivable PRIMARY's URL\n // ──────────────────────────────────────────────────────────────\n\n /**\n * Whether a reload could rebuild this PRIMARY content from a resource URL alone.\n *\n * A RESOURCE_OPERATION can: a flat detail's URL implies its own list (#203) and a nested one names\n * its ancestors. Every other kind — a composite view, a canvas, a chart, an engine page — has an\n * address of its own that no resource URL implies, so a pane opened beside it must not take the\n * URL over. An EMPTY primary is \"derivable\" too: there is nothing to host.\n */\n static primaryContentIsUrlDerivable(content: NavigationContent | undefined): boolean {\n return content === undefined || content.contentType === NavigationContentType.RESOURCE_OPERATION;\n }\n\n /** `hostUrl` is the browser URL without the pane param; `paneUrl` the pane's own address, if any. */\n static decomposeHostedPaneBrowserUrl(browserUrl: string): { hostUrl: string; paneUrl?: string } {\n const { pathname, params } = NavigationUtils.splitUrlPath(browserUrl);\n const paneUrl = params.get(HOSTED_PANE_QUERY_PARAM) ?? undefined;\n params.delete(HOSTED_PANE_QUERY_PARAM);\n const hostUrl = NavigationUtils.joinUrlPath(pathname, params);\n return paneUrl && paneUrl.length > 0 ? { hostUrl, paneUrl } : { hostUrl };\n }\n\n /** The host's URL (its own pane param, if any, replaced) carrying `paneUrl` as the hosted pane. */\n static composeHostedPaneBrowserUrl(hostUrl: string, paneUrl: string): string {\n const { pathname, params } = NavigationUtils.splitUrlPath(hostUrl);\n params.delete(HOSTED_PANE_QUERY_PARAM);\n params.set(HOSTED_PANE_QUERY_PARAM, paneUrl);\n return NavigationUtils.joinUrlPath(pathname, params);\n }\n\n /**\n * The browser URL to write when `zone`'s visible entry is (or becomes) `entryUrlPath`.\n *\n * ONE composer for every write site — `navigate()`, `goBack()` in either zone — because the\n * composed form has to be produced identically wherever a URL leaves the controller, and two\n * hand-written compositions are how the pane's address and the host's would drift apart.\n *\n * - SECONDARY beside a NON-derivable primary → the host's address carrying the pane. The host part\n * is taken from the LIVE browser URL when that URL still addresses the primary's destination (it\n * carries the freshest view state, `?section=` included), and from the primary entry's own\n * `urlPath` otherwise.\n * - SECONDARY beside a derivable primary → the entry's own URL, the pre-existing model (#203).\n * - PRIMARY, or a secondary that has just emptied → the entry's own URL; a hosted pane is closed by\n * the URL reconciler the moment the `pane` param is gone.\n * - COMPANION is not hosted: no layout opens a companion beside a non-resource primary, and a\n * second parameter would be invented for nothing. It keeps the entry's own URL.\n */\n static resolveBrowserUrlForZoneEntry(params: {\n zone: NavigationZone;\n entryUrlPath: string | undefined;\n currentBrowserUrl: string;\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState;\n }): string | undefined {\n const { zone, entryUrlPath, currentBrowserUrl, getZoneState } = params;\n const primaryTop = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.PRIMARY));\n const hosted = zone === NavigationZoneName.SECONDARY\n && primaryTop?.urlPath !== undefined\n && !NavigationUtils.primaryContentIsUrlDerivable(primaryTop.content);\n if (!hosted) {\n return entryUrlPath;\n }\n const { hostUrl: liveHostUrl } = NavigationUtils.decomposeHostedPaneBrowserUrl(currentBrowserUrl);\n const hostUrl = NavigationUtils.urlsAddressSameDestination(liveHostUrl, primaryTop.urlPath)\n ? liveHostUrl\n : primaryTop.urlPath;\n return entryUrlPath ? NavigationUtils.composeHostedPaneBrowserUrl(hostUrl, entryUrlPath) : hostUrl;\n }\n\n /**\n * What \"go back\" means for a zone — the POP to emit and the browser URL to write.\n *\n * ONE resolver, because \"go back\" is reached from four places: the controller's `goBack`, the\n * router error boundary's \"back\" action, the feature-route guard's dismiss, and (through the\n * controller) every back affordance in the presets. The first fix for hosted panes was applied in\n * the controller only, and the two boundaries — each carrying its own copy of the same stack walk\n * — went on writing a hosted pane's BARE address, which the URL reconciler cannot claim and so\n * rebuilds into primary: the original defect, re-entered through an error page.\n *\n * `zone` defaults to the zone that owns the browser URL (a hosted pane under a composed URL),\n * then PRIMARY. Returns `null` when there is nothing to go back to in that zone — the caller's own\n * fallback (browser history, home) applies.\n *\n * The URL follows {@link resolveBrowserUrlForZoneEntry}: a pop inside a hosted pane reveals the\n * previous pane under the LIVE host; closing the last pane returns to the live host without it.\n */\n static resolveGoBackTarget(params: {\n zone?: NavigationZoneName;\n currentBrowserUrl: string;\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState;\n }): { zone: NavigationZoneName; browserUrl: string | undefined } | null {\n const { currentBrowserUrl, getZoneState } = params;\n const zone = params.zone\n ?? NavigationUtils.findStructuralRouteOwner(currentBrowserUrl, getZoneState)?.zone\n ?? NavigationZoneName.PRIMARY;\n const zoneState = getZoneState(zone);\n\n if (zoneState.stack.length > 1) {\n const previousEntry = zoneState.stack[zoneState.stack.length - 2];\n return {\n zone,\n browserUrl: previousEntry?.urlPath\n ? NavigationUtils.resolveBrowserUrlForZoneEntry({ zone, entryUrlPath: previousEntry.urlPath, currentBrowserUrl, getZoneState })\n : undefined,\n };\n }\n\n if (zone === NavigationZoneName.PRIMARY) {\n return null;\n }\n\n const primaryTopUrl = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.PRIMARY))?.urlPath;\n const secondaryTopUrl = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.SECONDARY))?.urlPath;\n const fallbackUrl = zone === NavigationZoneName.COMPANION\n ? secondaryTopUrl ?? primaryTopUrl\n : primaryTopUrl;\n if (!fallbackUrl) {\n return { zone, browserUrl: undefined };\n }\n /*\n * Closing the last pane beside a non-derivable primary returns to the host's LIVE URL (its view\n * state intact), not to the stamp the primary entry took when it was placed — the pane simply\n * leaves the query string. Everywhere else the fallback is the entry's own URL.\n */\n const { hostUrl } = NavigationUtils.decomposeHostedPaneBrowserUrl(currentBrowserUrl);\n const browserUrl = zone === NavigationZoneName.SECONDARY && NavigationUtils.urlsAddressSameDestination(hostUrl, fallbackUrl)\n ? hostUrl\n : fallbackUrl;\n return { zone, browserUrl };\n }\n\n /**\n * Whether `zone`'s visible entry is what the browser URL shows for that zone.\n *\n * Pane-aware: under a composed URL the PRIMARY is asked about the HOST part and the SECONDARY\n * about the PANE part, so each route-mounted sync hook can ask about its own zone without either\n * mistaking the other's half of the URL for a destination it has to rebuild. A hosted pane never\n * claims a BARE URL — its address is reachable only in the composed form.\n */\n static zoneOwnsBrowserUrl(\n zone: NavigationZoneName,\n browserUrl: string,\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState,\n ): boolean {\n const { hostUrl, paneUrl } = NavigationUtils.decomposeHostedPaneBrowserUrl(browserUrl);\n const topEntry = NavigationUtils.getTopEntry(getZoneState(zone));\n if (!topEntry) return false;\n if (zone === NavigationZoneName.SECONDARY && topEntry.hostedPane) {\n return paneUrl !== undefined && NavigationUtils.urlsAddressSameDestination(topEntry.urlPath, paneUrl);\n }\n if (zone === NavigationZoneName.PRIMARY) {\n return NavigationUtils.urlsAddressSameDestination(topEntry.urlPath, hostUrl);\n }\n return paneUrl === undefined && NavigationUtils.urlsAddressSameDestination(topEntry.urlPath, browserUrl);\n }\n\n /**\n * The structural entry whose VISIBLE content the browser URL addresses, by DESTINATION.\n *\n * `searchDiffers` reports that the URL moved only in view state — the caller refreshes the entry's\n * `urlPath` in place rather than rebuilding. Under a composed URL the owner is the hosted pane,\n * and only when the primary addresses the host part as well: half a match is no match, because a\n * pane addressed beside the wrong host is exactly what a rebuild exists to correct.\n */\n static findStructuralRouteOwner(\n urlPath: string,\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState,\n ): { zone: NavigationZoneName; entry: NavigationStackEntry; searchDiffers: boolean } | null {\n const comparableTargetUrl = NavigationUtils.normalizeComparableUrl(urlPath);\n if (!comparableTargetUrl) {\n return null;\n }\n\n const { hostUrl, paneUrl } = NavigationUtils.decomposeHostedPaneBrowserUrl(comparableTargetUrl);\n if (paneUrl !== undefined) {\n const secondaryTop = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.SECONDARY));\n const primaryTop = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.PRIMARY));\n if (\n secondaryTop?.hostedPane\n && NavigationUtils.urlsAddressSameDestination(secondaryTop.urlPath, paneUrl)\n && NavigationUtils.urlsAddressSameDestination(primaryTop?.urlPath, hostUrl)\n ) {\n return {\n zone: NavigationZoneName.SECONDARY,\n entry: secondaryTop,\n searchDiffers: secondaryTop.urlPath !== paneUrl || primaryTop?.urlPath !== hostUrl,\n };\n }\n return null;\n }\n\n const zonePriority: NavigationZoneName[] = [\n NavigationZoneName.COMPANION,\n NavigationZoneName.SECONDARY,\n NavigationZoneName.PRIMARY,\n ];\n\n for (const zone of zonePriority) {\n const topEntry = NavigationUtils.getTopEntry(getZoneState(zone));\n if (!topEntry || topEntry.hostedPane) continue;\n if (NavigationUtils.urlsAddressSameDestination(topEntry.urlPath, comparableTargetUrl)) {\n return {\n zone,\n entry: topEntry,\n searchDiffers: NavigationUtils.normalizeComparableUrl(topEntry.urlPath) !== comparableTargetUrl,\n };\n }\n }\n\n return null;\n }\n\n /**\n * The structural entry — visible or buried in a backstack — that the browser URL addresses.\n *\n * Used by the browser back/forward reconciler: a URL that names an entry still sitting LOWER in a\n * zone's backstack is restored with a pure POP (preserving that entry's live state) rather than\n * rebuilt. Scans deepest zone first (COMPANION → SECONDARY → PRIMARY); within a zone the deepest\n * matching entry wins so a genuine \"go back N\" lands on the right historical entry. `isTop` reports\n * that the match is already the zone's visible top.\n *\n * Same destination rule and same pane rule as {@link findStructuralRouteOwner}; the difference is\n * that a buried entry counts, which is what turns a browser back into a POP that preserves the\n * revealed entry's live state instead of rebuilding it. Under a composed URL the search runs the\n * SECONDARY stack for the pane while the primary's visible entry must already address the host:\n * a pane can be popped back to, a host cannot be popped to underneath a pane.\n */\n static findStructuralStackEntryOwningUrl(\n urlPath: string,\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState,\n ): { zone: NavigationZoneName; entry: NavigationStackEntry; isTop: boolean; searchDiffers: boolean } | null {\n const comparableTargetUrl = NavigationUtils.normalizeComparableUrl(urlPath);\n if (!comparableTargetUrl) {\n return null;\n }\n\n const { hostUrl, paneUrl } = NavigationUtils.decomposeHostedPaneBrowserUrl(comparableTargetUrl);\n if (paneUrl !== undefined) {\n const primaryTop = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.PRIMARY));\n if (!NavigationUtils.urlsAddressSameDestination(primaryTop?.urlPath, hostUrl)) {\n return null;\n }\n const stack = getZoneState(NavigationZoneName.SECONDARY).stack;\n for (let index = stack.length - 1; index >= 0; index--) {\n const entry = stack[index];\n if (entry?.hostedPane && NavigationUtils.urlsAddressSameDestination(entry.urlPath, paneUrl)) {\n return {\n zone: NavigationZoneName.SECONDARY,\n entry,\n isTop: index === stack.length - 1,\n searchDiffers: entry.urlPath !== paneUrl || primaryTop?.urlPath !== hostUrl,\n };\n }\n }\n return null;\n }\n\n const zonePriority: NavigationZoneName[] = [\n NavigationZoneName.COMPANION,\n NavigationZoneName.SECONDARY,\n NavigationZoneName.PRIMARY,\n ];\n\n for (const zone of zonePriority) {\n const stack = getZoneState(zone).stack;\n for (let index = stack.length - 1; index >= 0; index--) {\n const entry = stack[index];\n if (!entry || entry.hostedPane) continue;\n if (NavigationUtils.urlsAddressSameDestination(entry.urlPath, comparableTargetUrl)) {\n return {\n zone,\n entry,\n isTop: index === stack.length - 1,\n searchDiffers: NavigationUtils.normalizeComparableUrl(entry.urlPath) !== comparableTargetUrl,\n };\n }\n }\n }\n\n return null;\n }\n\n /**\n * Match a `:param` route pattern against a pathname and return the captured parameters, or\n * `undefined` when it does not match. The capturing twin of {@link matchUrlPattern}.\n */\n static extractUrlPatternParams(pattern: string, pathname: string): Record<string, string> | undefined {\n const PLACEHOLDER = '___PARAM___';\n const paramNames: string[] = [];\n const withPlaceholders = pattern.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g, (_match, paramName: string) => {\n paramNames.push(paramName);\n return PLACEHOLDER;\n });\n const escaped = withPlaceholders.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const regexPattern = escaped.replace(new RegExp(PLACEHOLDER, 'g'), '([^/]+)');\n const match = new RegExp(`^${regexPattern}$`).exec(pathname);\n if (!match) return undefined;\n const params: Record<string, string> = {};\n paramNames.forEach((name, index) => {\n params[name] = decodeURIComponent(match[index + 1] ?? '');\n });\n return params;\n }\n\n /**\n * The ADDRESSABLE resource operation a URL path names, with its captured route parameters.\n *\n * The URL→state reconstruction the route elements perform (`useRouterSync`) gets its resource,\n * operation and parameters from React Router, which has already matched the route. A hosted pane\n * is NOT the router's route — the browser URL is the host's — so its address has to be matched\n * here, against the same route table `AppRouter` registers: every addressable operation's\n * frontend route paths. The most specific matching pattern wins, exactly as the router would rank\n * a static segment above a parameter.\n */\n static resolveResourceRouteForUrl(\n urlPath: string,\n registry: FrontendResourcesRegistry,\n ): {\n resourceType: string;\n operation: FrontendResourceConfiguration_Operation;\n routePathParameters: ResourceConfiguration_Operation_UrlParameterInfo[];\n urlParameters: Record<string, string>;\n } | undefined {\n const { pathname } = NavigationUtils.splitUrlPath(urlPath);\n let best: {\n score: number;\n resourceType: string;\n operation: FrontendResourceConfiguration_Operation;\n routePathParameters: ResourceConfiguration_Operation_UrlParameterInfo[];\n urlParameters: Record<string, string>;\n } | undefined;\n\n for (const resourceConfig of Object.values(registry.resourceConfigurations ?? {}) as AnyFrontendResourceConfiguration[]) {\n const operations = Array.isArray(resourceConfig.operations) ? resourceConfig.operations : [];\n for (const operation of operations as FrontendResourceConfiguration_Operation[]) {\n if (!isOperationAddressable(operation.operationFrontendConfig)) continue;\n let routePaths: ReturnType<typeof ResourcesConfigOperationsUrlsBuilderUtils.buildOperationFrontendRoutePaths>;\n try {\n routePaths = ResourcesConfigOperationsUrlsBuilderUtils.buildOperationFrontendRoutePaths(\n resourceConfig as any,\n operation,\n registry.allResourceFieldIdentifiers,\n );\n } catch {\n continue;\n }\n for (const routePath of routePaths ?? []) {\n const urlParameters = NavigationUtils.extractUrlPatternParams(routePath.url, pathname);\n if (!urlParameters) continue;\n const score = NavigationUtils.routeSpecificityScore(routePath.url);\n if (!best || score > best.score) {\n best = {\n score,\n resourceType: resourceConfig.resourceIdentifier,\n operation,\n routePathParameters: routePath.parameters ?? [],\n urlParameters,\n };\n }\n }\n }\n }\n\n if (!best) return undefined;\n const { score: _score, ...route } = best;\n return route;\n }\n\n /**\n * Check if a URL pattern matches a pathname (exact match).\n * Patterns use :paramName format (e.g., /organizations/:organizationId/api-keys)\n * and pathnames have actual values (e.g., /organizations/abc123/api-keys).\n * \n * @param pattern - URL pattern with :paramName placeholders\n * @param pathname - Actual URL pathname with resolved values\n * @returns true if the pattern matches the pathname\n */\n static matchUrlPattern(pattern: string, pathname: string): boolean {\n return NavigationUtils.extractUrlPatternParams(pattern, pathname) !== undefined;\n }\n\n /**\n * Check if pathname matches pattern or is a child of it.\n * Used to determine if a navigation item should be marked as active.\n * \n * @param pattern - URL pattern with :paramName placeholders\n * @param pathname - Actual URL pathname\n * @returns true if the pathname matches the pattern or is a child route\n */\n static isActiveRoute(pattern: string, pathname: string): boolean {\n const normalizedPattern = pattern.split('?')[0]?.split('#')[0] ?? pattern;\n const normalizedPathname = pathname.split('?')[0]?.split('#')[0] ?? pathname;\n\n // Exact match\n if (NavigationUtils.matchUrlPattern(normalizedPattern, normalizedPathname)) {\n return true;\n }\n \n // Check if pathname starts with pattern (for child routes)\n // We need to check each segment to handle dynamic params correctly\n const patternSegments = normalizedPattern.split('/').filter(Boolean);\n const pathSegments = normalizedPathname.split('/').filter(Boolean);\n \n // If pattern has more segments than path, it can't match\n if (patternSegments.length > pathSegments.length) {\n return false;\n }\n \n // Check if all pattern segments match path segments\n for (let i = 0; i < patternSegments.length; i++) {\n const patternSeg = patternSegments[i];\n const pathSeg = pathSegments[i];\n \n if (patternSeg.startsWith(':')) {\n // Dynamic segment - any non-empty value matches\n if (!pathSeg) return false;\n } else {\n // Static segment - must match exactly\n if (patternSeg !== pathSeg) return false;\n }\n }\n \n return true;\n }\n\n /**\n * Score how *specific* a route pattern is, so the most precise active item can\n * be chosen when several match the same URL.\n *\n * Primary metric is segment depth (a deeper pattern is more specific); the\n * static-segment count breaks ties so a fully-literal route outranks a\n * param-heavy one of equal depth (`/a/b/c` > `/a/:x/c`). `isActiveRoute`\n * already guarantees the whole pattern matched, so the pattern's own segment\n * count equals the number of matched segments.\n */\n static routeSpecificityScore(pattern: string): number {\n const normalized = pattern.split('?')[0]?.split('#')[0] ?? pattern;\n const segments = normalized.split('/').filter(Boolean);\n const staticSegments = segments.filter((segment) => !segment.startsWith(':')).length;\n return segments.length * 100 + staticSegments;\n }\n\n /**\n * Among a set of candidate route patterns, return the SINGLE most-specific one\n * that `isActive` reports as active, or `undefined` when none are active.\n *\n * The per-item active check (`isActiveRoute`) marks a pattern active when the\n * current path equals it OR is a CHILD of it (so a parent section stays\n * highlighted on a sub-page). The side effect is that a menu listing BOTH a\n * parent route (`…/todo-lists`) and a child route (`…/todo-lists/:listId/todos`)\n * sees both report active on the child URL. Active-state highlighting must pick\n * the most precise one, so callers that own the full candidate set (e.g. the\n * sidebar) resolve the winner here instead of testing each item in isolation.\n *\n * `isActive` is injected (rather than taking a pathname) so callers can reuse\n * their already-bound checker (e.g. `useNavigationState().isNavigationItemActive`)\n * without this util depending on router state.\n */\n static getMostSpecificActiveRoute(\n patterns: ReadonlyArray<string | undefined>,\n isActive: (pattern: string) => boolean,\n ): string | undefined {\n let best: string | undefined;\n let bestScore = -1;\n for (const pattern of patterns) {\n if (!pattern || !isActive(pattern)) {\n continue;\n }\n const score = NavigationUtils.routeSpecificityScore(pattern);\n if (score > bestScore) {\n bestScore = score;\n best = pattern;\n }\n }\n return best;\n }\n\n /**\n * Convert resourceType-keyed identifiers to fieldIdentifier-keyed identifiers for URL substitution.\n * \n * Frontend URLs use :fieldIdentifier format (e.g., :organizationId), but contextResourceIdentifiers\n * use resourceType as keys (e.g., 'organizations'). This function converts between the two.\n * \n * @param resourceTypeIdentifiers - Map with resourceType keys (e.g., { organizations: 'org-123' })\n * @param allResourceFieldIdentifiers - Registry mapping from resourceType to fieldIdentifier\n * @returns Map with fieldIdentifier keys (e.g., { organizationId: 'org-123' })\n */\n static convertToFieldIdentifierKeys(\n resourceTypeIdentifiers: Record<string, string>,\n allResourceFieldIdentifiers: Record<string, string>\n ): Record<string, string> {\n const result: Record<string, string> = {};\n \n for (const [resourceType, value] of Object.entries(resourceTypeIdentifiers)) {\n if (value) {\n // Look up fieldIdentifier for this resourceType\n const fieldIdentifier = allResourceFieldIdentifiers[resourceType];\n if (fieldIdentifier) {\n result[fieldIdentifier] = value;\n } else {\n // Fallback: check if it's already a fieldIdentifier or if it's in coreResourceShared_FieldIdentifier\n const coreFieldId = coreResourceShared_FieldIdentifier[resourceType as CoreResourceType];\n if (coreFieldId) {\n result[coreFieldId] = value;\n } else {\n // Last resort: use the key as-is (might be a custom field)\n result[resourceType] = value;\n }\n }\n }\n }\n \n return result;\n }\n\n /**\n * Resolve URL path placeholders with actual values from context identifiers.\n * \n * Frontend URLs use :fieldIdentifier format (React Router style, e.g., /organizations/:organizationId/api-keys).\n * This function replaces these placeholders with actual values.\n * \n * @param urlPath - URL path with :paramName placeholders\n * @param fieldIdentifiers - Map with fieldIdentifier keys (e.g., { organizationId: 'org-123' })\n * @returns Resolved URL path with placeholders replaced\n */\n static resolveUrlPath(\n urlPath: string | undefined,\n fieldIdentifiers: Record<string, string | number>\n ): string | undefined {\n if (!urlPath) return undefined;\n \n let resolvedPath = urlPath;\n \n for (const [fieldIdentifier, value] of Object.entries(fieldIdentifiers)) {\n if (value !== undefined && value !== null && value !== '') {\n const resolvedValue = String(value);\n // Replace :fieldIdentifier format (React Router style - primary format for frontend)\n // Use word boundary to avoid partial matches (e.g., :organizationId vs :organizationIdExtra)\n const colonRegex = new RegExp(`:${fieldIdentifier.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}(?=[/\\\\?]|$)`, 'g');\n resolvedPath = resolvedPath.replace(colonRegex, resolvedValue);\n \n // Also handle {fieldIdentifier} format for backwards compatibility with backend-style URLs\n const curlyBraceRegex = new RegExp(`\\\\{${fieldIdentifier.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}\\\\}`, 'g');\n resolvedPath = resolvedPath.replace(curlyBraceRegex, resolvedValue);\n }\n }\n \n return resolvedPath;\n }\n\n /**\n * Check if a URL path still contains unresolved :paramName or {paramName} placeholders.\n * Used as a sending-side guard to prevent writing malformed URLs to the browser or API calls.\n * \n * @param urlPath - Resolved URL path to check\n * @returns true if unresolved placeholders remain\n */\n static hasUnresolvedPlaceholders(urlPath: string): boolean {\n // Match :paramName (React Router style) — word char sequences after colon, not preceded by //\n // Also match {paramName} (backend style)\n return /:[a-zA-Z_]\\w*(?=[/\\\\?]|$)/.test(urlPath) || /\\{[a-zA-Z_]\\w*\\}/.test(urlPath);\n }\n\n /**\n * Helper to create initiator context for app-level launchers\n * \n * @param launcher - The app-level action launcher\n * @returns Navigation initiator context for app-level navigation\n */\n static createAppLevelInitiator(launcher: ApplicationLevelComponentType): NavigationInitiatorContext {\n return {\n sourceZone: APP_LEVEL_NAVIGATION_SOURCE,\n launcher,\n };\n }\n\n /**\n * Dispatch navigation for an AnyNavigationItem — DRY helper shared\n * across all behavior hooks that convert a nav item click into a\n * `navigate()` call.\n */\n static dispatchNavigationForItem(\n navigate: (options: { content: NavigationContent; initiator: NavigationInitiatorContext; urlPath: string }) => void,\n item: AnyNavigationItem,\n launcher: ApplicationLevelComponentType\n ): void {\n if (isCustomComponentNavigationItem(item)) {\n navigate({\n content: {\n contentType: NavigationContentType.CUSTOM_COMPONENT,\n componentRef: item.componentRef,\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: item.urlPath,\n });\n } else if (isEnginePageNavigationItem(item)) {\n navigate({\n content: {\n contentType: NavigationContentType.ENGINE_PAGE,\n pageRef: item.pageRef,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: item.urlPath,\n });\n } else if (isSettingsHubNavigationItem(item)) {\n // URL-first via navigate()'s SETTINGS_HUB short-circuit → the route sync\n // reconstructs the hub overlay. Keeps the sidebar consistent with every\n // other settings entry point.\n navigate({\n content: {\n contentType: NavigationContentType.SETTINGS_HUB,\n sectionRef: item.sectionRef,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: item.urlPath,\n });\n } else if (isViewNavigationItem(item)) {\n navigate({\n content: NavigationUtils.buildNavigationContentForViewItem(item),\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: item.urlPath,\n });\n } else {\n navigate({\n content: {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: item.resourceContext,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: item.urlPath,\n });\n }\n }\n\n /**\n * Dispatch navigation for a resolved target (from the new per-launcher resolution layer).\n *\n * Builds `NavigationContent` from the resolved target's fields, dispatching\n * on presence of `resourceContext` (resource items) vs `viewRef`+`contentType` (view items).\n */\n static dispatchNavigationForResolvedTarget(\n navigate: (options: { content: NavigationContent; initiator: NavigationInitiatorContext; urlPath: string }) => void,\n target: {\n urlPath: string;\n resourceContext?: FrontendResourceOperationContext;\n viewRef?: string;\n contentType?: NavigationContentType;\n pageRef?: string;\n fullCustomComponentRef?: string;\n flowsActorsSystemRefs?: string[];\n componentRef?: string;\n sectionRef?: string;\n requiredFeatures?: RequiredFeaturesConfig;\n contextResourceIdentifiers?: Record<string, string>;\n urlParamValues?: Record<string, string>;\n },\n launcher: ApplicationLevelComponentType,\n ): void {\n if (target.resourceContext) {\n navigate({\n content: {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: target.resourceContext,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: target.urlPath,\n });\n } else if (target.viewRef && target.contentType) {\n const content = NavigationUtils.buildNavigationContentForResolvedView(\n target.viewRef,\n target.contentType,\n target.fullCustomComponentRef,\n target.flowsActorsSystemRefs,\n target.contextResourceIdentifiers,\n target.urlParamValues,\n target.requiredFeatures,\n );\n navigate({\n content,\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: target.urlPath,\n });\n } else if (target.contentType === NavigationContentType.ENGINE_PAGE && target.pageRef) {\n navigate({\n content: {\n contentType: NavigationContentType.ENGINE_PAGE,\n pageRef: target.pageRef as any,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: target.urlPath,\n });\n } else if (target.contentType === NavigationContentType.SETTINGS_HUB) {\n // URL-first: navigate() short-circuits SETTINGS_HUB content to a route\n // navigation, and `useSettingsHubRouterSync` reconstructs the hub in the\n // overlay. Every settings entry point converges on this one path.\n navigate({\n content: {\n contentType: NavigationContentType.SETTINGS_HUB,\n sectionRef: target.sectionRef,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: target.urlPath,\n });\n } else if (target.componentRef) {\n navigate({\n content: {\n contentType: NavigationContentType.CUSTOM_COMPONENT,\n componentRef: target.componentRef,\n contextResourceIdentifiers: target.contextResourceIdentifiers,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: target.urlPath,\n });\n } else {\n logDebug('Cannot dispatch navigation for resolved target — no resolved resource/view/page payload', { target });\n }\n }\n\n /**\n * Build navigation content from resolved view fields.\n * Mirrors `buildNavigationContentForViewItem` but operates on loose fields\n * from `ResolvedNavigationTarget` instead of `ViewNavigationItem`.\n */\n static buildNavigationContentForResolvedView(\n viewRef: string,\n contentType: NavigationContentType,\n fullCustomComponentRef?: string,\n flowsActorsSystemRefs?: string[],\n contextResourceIdentifiers?: Record<string, string>,\n urlParamValues?: Record<string, string>,\n requiredFeatures?: RequiredFeaturesConfig,\n ): NavigationContent {\n switch (contentType) {\n case NavigationContentType.COMPOSITE_VIEW:\n return {\n contentType: NavigationContentType.COMPOSITE_VIEW,\n viewRef,\n contextResourceIdentifiers,\n };\n case NavigationContentType.CHART_VIEW:\n return {\n contentType: NavigationContentType.CHART_VIEW,\n viewRef,\n contextResourceIdentifiers,\n urlParamValues,\n requiredFeatures,\n };\n case NavigationContentType.EXECUTION_VIEW:\n return {\n contentType: NavigationContentType.EXECUTION_VIEW,\n viewRef,\n contextResourceIdentifiers,\n };\n case NavigationContentType.FULL_CUSTOM_VIEW:\n return {\n contentType: NavigationContentType.FULL_CUSTOM_VIEW,\n viewRef,\n fullCustomComponentRef: fullCustomComponentRef ?? '',\n contextResourceIdentifiers,\n };\n case NavigationContentType.FLOWS_ACTORS_VIEW:\n return {\n contentType: NavigationContentType.FLOWS_ACTORS_VIEW,\n viewRef,\n flowsActorsSystemRefs: flowsActorsSystemRefs ?? [],\n contextResourceIdentifiers,\n };\n default:\n throw new Error(`Unknown view content type: ${contentType}`);\n }\n }\n\n /**\n * Create initiator context for operation-related navigation (from within a structural zone).\n */\n static createOperationInitiator(\n sourceZone?: NavigationZone | string,\n sourceOperation?: string\n ): NavigationInitiatorContext {\n return {\n sourceZone: (sourceZone as NavigationZone) ?? NavigationZone.PRIMARY,\n ...(sourceOperation ? { sourceOperation: sourceOperation as CoreResourceOperation } : {}),\n };\n }\n\n /**\n * Create initial empty zone state\n */\n static createEmptyZoneState(zone: NavigationZoneName): NavigationZoneState {\n return {\n zone,\n stack: [],\n isVisible: zone === NavigationZoneName.PRIMARY,\n };\n }\n\n /**\n * Create initial navigation state.\n *\n * v3 shape: `{ zones: { primary, secondary, companion }, overlay: [] }`\n * — Dialog, sheet, and drawer appearances share a single `overlay` stack.\n * — Former THIRD zone is now COMPANION.\n */\n static createInitialNavigationState(): NavigationState {\n return {\n zones: {\n [NavigationZoneName.PRIMARY]: NavigationUtils.createEmptyZoneState(NavigationZoneName.PRIMARY),\n [NavigationZoneName.SECONDARY]: NavigationUtils.createEmptyZoneState(NavigationZoneName.SECONDARY),\n [NavigationZoneName.COMPANION]: NavigationUtils.createEmptyZoneState(NavigationZoneName.COMPANION),\n },\n overlay: [],\n };\n }\n\n /**\n * Get the current depth of a zone's stack\n */\n static getZoneDepth(state: NavigationZoneState | undefined): number {\n return state?.stack.length ?? 0;\n }\n\n /**\n * Get the top entry of a zone's stack (current content)\n */\n static getTopEntry(state: NavigationZoneState): NavigationStackEntry | undefined {\n return state.stack[state.stack.length - 1];\n }\n\n\n /**\n * Calculate the resource relationship depth from parentResourcesRequirements.\n * \n * This is the correct depth metric for navigation policy resolution:\n * - Root resource (no parents) → depth 0\n * - First-level child (1 parent) → depth 1\n * - Grandchild (2 parents) → depth 2\n * \n * Unlike viewDepth (stack-based), this reflects the actual resource hierarchy\n * depth, which is what the navigation policy's depth matrix cares about.\n * \n * @param parentResourcesRequirements - Array of parent resource requirements\n * @returns The resource relationship depth (0 = root, 1 = child, 2 = grandchild, etc.)\n */\n static calculateResourceRelationshipDepth(\n parentResourcesRequirements?: unknown[] | null\n ): number {\n return parentResourcesRequirements?.length ?? 0;\n }\n\n /**\n * Resolve the structural zone that should own a routed resource entry based on\n * its relationship depth and the zones available in the current layout.\n *\n * This is shared by URL-sync restoration and AppRouter's routed page wrapper so\n * the page props and the live navigation stack cannot disagree about whether a\n * deep-linked resource belongs to PRIMARY, SECONDARY, or COMPANION.\n */\n /** Does the layout resolve this operation to a SPLIT out of PRIMARY? (#203) */\n static layoutSplitsOperationFromPrimary(\n layout: { zones?: { primary?: { transitions?: Record<string, unknown> } } } | undefined,\n operation: FrontendResourceConfiguration_Operation,\n ): boolean {\n if (operation.isBulkOperation === true) return false;\n const semantic = resolveEffectiveCoreOperationFromOperation(operation);\n if (!semantic) return false;\n const transition = layout?.zones?.primary?.transitions?.[semantic] as\n | NavigationTransition | { transition?: NavigationTransition } | undefined;\n const verb = typeof transition === 'string' ? transition : transition?.transition;\n return verb === NavigationTransition.SPLIT;\n }\n\n static resolveResourceTargetZone(\n depth: number,\n options?: {\n hasSecondary?: boolean;\n hasCompanion?: boolean;\n /** Flat detail: depth 0, but the layout splits this operation out of primary (#203). */\n prefersAdjacentZoneForDetail?: boolean;\n }\n ): NavigationZoneName {\n const hasSecondary = !!options?.hasSecondary;\n const hasCompanion = !!options?.hasCompanion;\n\n let targetZone: NavigationZoneName = depth >= 2\n ? NavigationZoneName.COMPANION\n : depth === 1\n ? NavigationZoneName.SECONDARY\n : options?.prefersAdjacentZoneForDetail\n ? NavigationZoneName.SECONDARY\n : NavigationZoneName.PRIMARY;\n\n if (!hasCompanion && targetZone === NavigationZoneName.COMPANION) {\n targetZone = hasSecondary ? NavigationZoneName.SECONDARY : NavigationZoneName.PRIMARY;\n } else if (!hasSecondary && targetZone === NavigationZoneName.SECONDARY) {\n targetZone = NavigationZoneName.PRIMARY;\n }\n\n return targetZone;\n }\n\n /**\n * Generate a unique stack entry ID\n */\n static generateStackEntryId(): string {\n return `nav-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n }\n\n /**\n * Check if content is a resource operation\n */\n static isResourceOperationContent(content: NavigationContent): content is NavigationContent & { contentType: NavigationContentType.RESOURCE_OPERATION } {\n return content.contentType === NavigationContentType.RESOURCE_OPERATION;\n }\n\n /**\n * Resolve the URL for a resource operation given candidate context identifiers.\n * \n * This is the unified URL resolution pipeline, centralizing the logic that was\n * previously duplicated across useNavigationController, NavigationContext, and useRouterSync.\n * \n * Steps:\n * 1. Build all possible route paths for the operation\n * 2. Select the best matching route path based on available context\n * 3. Convert resourceType keys to fieldIdentifier keys\n * 4. Ensure FK-prefixed placeholders resolve correctly\n * 5. Resolve :placeholder patterns with actual values\n * \n * @param resourceConfig - The frontend resource configuration\n * @param operation - The operation configuration\n * @param candidateContextIdentifiers - Normalized context identifiers (resourceType → id)\n * @param allResourceFieldIdentifiers - Registry mapping resourceType → fieldIdentifier\n * @param parentResourcesRequirements - Optional parent resource requirements for route selection\n * @returns Resolved URL info, or undefined if resolution fails\n */\n static resolveResourceUrl(\n resourceConfig: AnyFrontendResourceConfiguration,\n operation: FrontendResourceConfiguration_Operation,\n candidateContextIdentifiers: Record<string, string>,\n allResourceFieldIdentifiers: Record<string, string>,\n parentResourcesRequirements?: unknown[],\n ): {\n resolvedUrl: string | undefined;\n templateUrl: string;\n routePathParameters: ResourceConfiguration_Operation_UrlParameterInfo[];\n } | undefined {\n try {\n logDebug('resolveResourceUrl()', { resourceIdentifier: resourceConfig.resourceIdentifier, operationIdentifier: (operation as any).operationIdentifier, candidateKeys: Object.keys(candidateContextIdentifiers) });\n const routePaths = ResourcesConfigOperationsUrlsBuilderUtils.buildOperationFrontendRoutePaths(\n resourceConfig as any,\n operation as any,\n allResourceFieldIdentifiers\n );\n if (!routePaths || routePaths.length === 0) {\n return undefined;\n }\n\n const selected = frontendResourceUtils.selectMatchingRoutePath(\n routePaths,\n candidateContextIdentifiers,\n resourceConfig.resourceIdentifier,\n resourceConfig.resourceFieldIdentifier,\n parentResourcesRequirements as any,\n allResourceFieldIdentifiers\n );\n\n const templateUrl = selected.url;\n const routePathParameters = (selected.parameters ?? []) as ResourceConfiguration_Operation_UrlParameterInfo[];\n\n // Convert resourceType keys to fieldIdentifier keys for URL substitution\n const urlParameters = NavigationUtils.convertToFieldIdentifierKeys(\n candidateContextIdentifiers,\n allResourceFieldIdentifiers\n );\n\n // Ensure FK-prefixed placeholders (e.g. :assignedToUserId) resolve correctly:\n // routePathParameters provide the exact placeholder fieldIdentifier to use.\n // Prefer exact FK-keyed context entries when available (self-ref / multi-parent\n // routes), then fall back to the broader resourceType key.\n for (const p of routePathParameters) {\n const v = candidateContextIdentifiers[p.fieldIdentifier] ?? candidateContextIdentifiers[p.resourceType];\n if (v) {\n (urlParameters as any)[p.fieldIdentifier] = v;\n }\n }\n\n let resolvedUrl = NavigationUtils.resolveUrlPath(templateUrl, urlParameters);\n\n // Guard: if unresolved placeholders remain, log warning and nullify the resolved URL\n // The caller will fall back to not updating the browser URL (navigation) or aborting (forms)\n if (resolvedUrl && NavigationUtils.hasUnresolvedPlaceholders(resolvedUrl)) {\n logDebug('resolveResourceUrl() WARNING: unresolved placeholders in URL', { templateUrl, resolvedUrl });\n resolvedUrl = undefined;\n } else {\n logDebug('resolveResourceUrl() resolved', { templateUrl, resolvedUrl });\n }\n\n return { resolvedUrl, templateUrl, routePathParameters };\n } catch (err) {\n logDebug('resolveResourceUrl() failed', { error: String(err) });\n return undefined;\n }\n }\n\n /**\n * Resolve an operationRef string (e.g., \"TASKS.LIST.default\") into a full\n * NavigationContent_ResourceOperation by looking up the operation in the registry.\n * \n * This is the resolution step for **unresolved operation refs** — a lightweight\n * navigation input format where the emitter only knows a ref string, not a full\n * NavigationContent payload.\n * \n * **Consumers:**\n * - NAVIGATION_REQUEST event listener (in useNavigationController): resolves\n * `payload.operationRef` before entering the navigation pipeline. Used by\n * emitters that sit above ResourceRegistryProvider (e.g., NotificationProvider).\n * - RouterErrorBoundary: calls this directly to resolve error guidance nextAction\n * refs, since NavigationProvider is destroyed in the error boundary context.\n * \n * @param operationRef Dot-separated ref, e.g., \"TASKS.LIST.default\" or \"TASKS.LIST\"\n * @param additionalIdentifiers Optional context identifiers (orgId, resourceId, etc.)\n * @param registry The frontend resource registry for operation lookup\n * @returns Resolved NavigationContent_ResourceOperation, or undefined if lookup fails\n */\n static resolveOperationRef(\n operationRef: string,\n additionalIdentifiers: Record<string, string> | undefined,\n registry: FrontendResourcesRegistry,\n ): NavigationContent | undefined {\n const parts = operationRef.split('.');\n if (parts.length < 2) {\n logDebug('resolveOperationRef() failed: invalid ref format', { operationRef });\n return undefined;\n }\n const [resourceType, operationId, operationVariantRef] = parts;\n\n const resourceConfig = registry.resourceConfigurations[resourceType] as AnyFrontendResourceConfiguration | undefined;\n if (!resourceConfig) {\n logDebug('resolveOperationRef() failed: resource not found', { resourceType });\n return undefined;\n }\n const matchingOperations = (resourceConfig.operations as FrontendResourceConfiguration_Operation[]).filter(\n (op: FrontendResourceConfiguration_Operation) => String(op.operationIdentifier) === operationId\n );\n const defaultOperations = matchingOperations.filter((op) =>\n op.isOperationDefault\n && op.isBulkOperation !== true\n );\n if ((operationVariantRef === 'default' || operationVariantRef === undefined) && defaultOperations.length > 1) {\n logDebug('resolveOperationRef() failed: ambiguous default operation variants', {\n resourceType,\n operationId,\n operationVariantRef,\n candidateVariants: defaultOperations.map((op) => ({\n variantType: op.variantType,\n variantKey: op.variantKey,\n })),\n });\n return undefined;\n }\n const operation = operationVariantRef === 'default'\n ? defaultOperations.length === 1\n ? defaultOperations[0]\n : undefined\n : operationVariantRef\n ? matchingOperations.find((op) => op.variantKey === operationVariantRef)\n : defaultOperations.length === 1\n ? defaultOperations[0]\n : matchingOperations.length === 1\n ? matchingOperations[0]\n : undefined;\n if (!operation) {\n logDebug('resolveOperationRef() failed: operation not found', { resourceType, operationId, operationVariantRef });\n return undefined;\n }\n\n logDebug('resolveOperationRef() resolved', { operationRef, resourceType, operationId, operationVariantRef });\n const parentResourcesRequirements = additionalIdentifiers\n ? frontendResourceUtils.buildParentResourcesRequirements(\n resourceType as any,\n additionalIdentifiers,\n registry,\n )\n : [];\n\n return {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType: resourceType as any,\n operation,\n contextResourceIdentifiers: additionalIdentifiers ?? {},\n parentResourcesRequirements,\n }),\n } as NavigationContent;\n }\n\n /**\n * Build NavigationContent from a ViewNavigationItem.\n * \n * Centralizes the viewType → NavigationContent conversion that was previously\n * duplicated across every preset component's click handler.\n */\n static buildNavigationContentForViewItem(item: ViewNavigationItem): NavigationContent {\n const contentType = item.contentType as NavigationContentType;\n switch (contentType) {\n case NavigationContentType.COMPOSITE_VIEW:\n return {\n contentType: NavigationContentType.COMPOSITE_VIEW,\n viewRef: item.viewRef,\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n };\n\n case NavigationContentType.CHART_VIEW:\n return {\n contentType: NavigationContentType.CHART_VIEW,\n viewRef: item.viewRef,\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n urlParamValues: item.urlParamValues,\n requiredFeatures: item.requiredFeatures,\n };\n\n case NavigationContentType.EXECUTION_VIEW:\n return {\n contentType: NavigationContentType.EXECUTION_VIEW,\n viewRef: item.viewRef,\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n };\n\n case NavigationContentType.FULL_CUSTOM_VIEW:\n return {\n contentType: NavigationContentType.FULL_CUSTOM_VIEW,\n viewRef: item.viewRef,\n fullCustomComponentRef: item.fullCustomComponentRef ?? '',\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n };\n\n case NavigationContentType.FLOWS_ACTORS_VIEW:\n return {\n contentType: NavigationContentType.FLOWS_ACTORS_VIEW,\n viewRef: item.viewRef,\n flowsActorsSystemRefs: item.flowsActorsSystemRefs ?? [],\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n };\n\n default:\n throw new Error(`Unknown view content type: ${contentType}`);\n }\n }\n\n // ================================\n // Cascading Utilities\n // ================================\n\n /**\n * Find the relationship between two resource types in the registry.\n * \n * Searches the global `resourceRelationships` array for a match where:\n * - resourceType1 = parentType, resourceType2 = childType\n * - Optionally filtered by foreignKeyField for disambiguation\n * \n * @param parentType - The parent resource type (resourceType1 side)\n * @param childType - The child resource type (resourceType2 side)\n * @param registry - The frontend resources registry\n * @param foreignKeyField - Optional FK field for disambiguation when multiple relationships exist\n * @returns The matching ResourceRelationship, or undefined\n */\n static findRelationshipBetween(\n parentType: string,\n childType: string,\n registry: FrontendResourcesRegistry,\n foreignKeyField?: string,\n ): ResourceRelationship | undefined {\n return registry.resourceRelationships.find(rel =>\n rel.resourceType1 === parentType &&\n rel.resourceType2 === childType &&\n !rel.isDisabled &&\n (\n foreignKeyField === undefined ||\n Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(\n rel,\n registry.allResourceFieldIdentifiers,\n )?.fieldIdentifier === foreignKeyField\n )\n );\n }\n\n /**\n * Determine the default ancestor operation based on relationship cardinality.\n * \n * Cardinality semantics:\n * - 1:N (parent ONE → child MANY): ancestor shows LIST (list of children / siblings)\n * - 1:1 (parent ONE → child ONE): ancestor shows READ (parent detail)\n * - N:1 (reversed perspective): ancestor shows READ (parent detail)\n * - M:N (junction): ancestor shows LIST (related items)\n * \n * @param relationship - The resource relationship\n * @returns The default CoreResourceOperation for the ancestor zone\n */\n static deriveDefaultAncestorOperation(\n relationship: ResourceRelationship,\n ): CoreResourceOperation {\n const { cardinality1, cardinality2 } = relationship;\n\n const isParentOne = cardinality1 === ResourceRelationshipCardinality.ONE\n || cardinality1 === ResourceRelationshipCardinality.ZERO_OR_ONE;\n const isChildOne = cardinality2 === ResourceRelationshipCardinality.ONE\n || cardinality2 === ResourceRelationshipCardinality.ZERO_OR_ONE;\n\n // Self-referencing: use the relationship-owned navigation direction to disambiguate\n // which side is \"parent\" vs \"child\" for the ancestor zone operation.\n // Without this, the engine can't distinguish forward (parent→child = LIST)\n // from backward (child→parent = READ) since both types are the same.\n if (relationship.resourceType1 === relationship.resourceType2) {\n const navigationConfig: RelationshipDisplayInParentNavigation | undefined = relationship.display?.inParentNavigation;\n if (navigationConfig?.direction === CascadeDirection.BACKWARD) return CoreResourceOperation.READ;\n return CoreResourceOperation.LIST;\n }\n\n // 1:1 → READ parent detail\n if (isParentOne && isChildOne) {\n return CoreResourceOperation.READ;\n }\n\n // 1:N (parent=ONE, child=MANY) → LIST (show siblings in parent context)\n if (isParentOne) {\n return CoreResourceOperation.LIST;\n }\n\n // N:1 reversed → READ parent\n if (isChildOne) {\n return CoreResourceOperation.READ;\n }\n\n // M:N → LIST\n return CoreResourceOperation.LIST;\n }\n\n /**\n * Resolve the ancestor operation for a given relationship.\n * \n * Resolution order:\n * 1. Explicit `ancestorOperation` override from display.inParentNavigation → use directly\n * 2. Cardinality-based default (deriveDefaultAncestorOperation)\n * 3. Fallback: swap LIST ↔ READ if default is not available\n * 4. null if no suitable operation exists\n * \n * @param relationship - The resource relationship between ancestor and descendant\n * @param ancestorConfig - The ancestor resource's frontend configuration\n * @returns The resolved CoreResourceOperation, or null if no suitable operation\n */\n static resolveAncestorOperation(\n relationship: ResourceRelationship | undefined,\n ancestorConfig: AnyFrontendResourceConfiguration,\n ): CoreResourceOperation | null {\n const operation = NavigationUtils.resolveAncestorOperationConfig(relationship, ancestorConfig);\n return operation\n ? (resolveEffectiveCoreOperationFromOperation(operation) ?? null)\n : null;\n }\n\n static resolveAncestorOperationConfig(\n relationship: ResourceRelationship | undefined,\n ancestorConfig: AnyFrontendResourceConfiguration,\n runtimeContext?: {\n registry: FrontendResourcesRegistry;\n contextResourceIdentifiers: FrontendResourceOperationContext['contextResourceIdentifiers'];\n contextualParameters: Record<string, string | number>;\n },\n ): FrontendResourceConfiguration_Operation | null {\n const directOperations = (ancestorConfig.operations ?? []) as FrontendResourceConfiguration_Operation[];\n const legacyOperations = !ancestorConfig.operations && (ancestorConfig as any).operationsConfiguration\n ? Object.entries((ancestorConfig as any).operationsConfiguration).map(([operationIdentifier, operation]) => ({\n ...(operation as Record<string, unknown>),\n operationIdentifier,\n })) as FrontendResourceConfiguration_Operation[]\n : [];\n const operations = directOperations.length > 0 ? directOperations : legacyOperations;\n if (operations.length === 0) return null;\n\n const findOp = (op: CoreResourceOperation): FrontendResourceConfiguration_Operation | undefined => {\n const needsRuntimeAddressability = op === CoreResourceOperation.READ\n || op === CoreResourceOperation.UPDATE\n || op === CoreResourceOperation.DELETE;\n if (runtimeContext && needsRuntimeAddressability) {\n return pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig: ancestorConfig,\n operations,\n coreOperation: op,\n registry: runtimeContext.registry,\n hasResourceId: frontendResourceUtils.getResourceId(\n runtimeContext.contextResourceIdentifiers[ancestorConfig.resourceIdentifier],\n ).length > 0,\n requireFrontendAddressable: true,\n contextResourceIdentifiers: runtimeContext.contextResourceIdentifiers,\n contextualParameters: runtimeContext.contextualParameters,\n });\n }\n\n return pickPreferredOperationForCoreSemantic(operations, op, { requireAddressable: true });\n };\n\n // 1. Explicit override from display.inParentNavigation.ancestorOperation.\n // This allows relationship config to force a specific operation (LIST or READ)\n // for the ancestor zone, overriding the cardinality-based default.\n if (relationship) {\n const navigationConfig: RelationshipDisplayInParentNavigation | undefined = relationship.display?.inParentNavigation;\n const ancestorOp = navigationConfig?.ancestorOperation;\n if (ancestorOp) {\n const explicitOperation = findOp(ancestorOp);\n if (explicitOperation) {\n return explicitOperation;\n }\n }\n }\n\n // 2. Cardinality-based default\n const defaultOp = relationship\n ? NavigationUtils.deriveDefaultAncestorOperation(relationship)\n : CoreResourceOperation.LIST;\n\n const defaultOperation = findOp(defaultOp);\n if (defaultOperation) return defaultOperation;\n\n // 3. Fallback: swap LIST ↔ READ\n const fallbackOp = defaultOp === CoreResourceOperation.LIST\n ? CoreResourceOperation.READ\n : CoreResourceOperation.LIST;\n\n const fallbackOperation = findOp(fallbackOp);\n if (fallbackOperation) return fallbackOperation;\n\n // 4. No suitable operation\n return null;\n }\n\n /**\n * Check if secondary/companion zone content is relevant to the current PRIMARY top entry.\n * \n * Content is considered \"stale\" (irrelevant) when:\n * - It's a resource operation whose parentResourcesRequirements no longer match\n * the PRIMARY zone's parent resource type and id\n * - It's a view (composite/chart) — always stale on PRIMARY change\n * \n * @param dependentContent - Content in SECONDARY or COMPANION zone\n * @param primaryContent - Current top content in PRIMARY zone\n * @returns true if the dependent content is still relevant to the primary\n */\n /**\n * Does this operation address a COLLECTION rather than one record?\n *\n * LIST and SEARCH both do. Used to recognise the list-detail pairing, where the collection is the\n * context its own detail belongs beside — not a parent, which is why the parent-requirement rule\n * cannot answer it.\n */\n static isCollectionOperationContext(\n resourceContext: { operation?: FrontendResourceConfiguration_Operation },\n ): boolean {\n const operation = resourceContext.operation;\n if (!operation) return false;\n const semantic = resolveEffectiveCoreOperationFromOperation(operation);\n return semantic === CoreResourceOperation.LIST || semantic === CoreResourceOperation.SEARCH;\n }\n\n static isContentRelevantToParent(\n dependentContent: NavigationContent,\n primaryContent: NavigationContent,\n ): boolean {\n // Views are not relationship-aware → always stale on PRIMARY change\n if (dependentContent.contentType !== NavigationContentType.RESOURCE_OPERATION) {\n return false;\n }\n\n // Primary is not a resource operation → dependent is stale\n if (primaryContent.contentType !== NavigationContentType.RESOURCE_OPERATION) {\n return false;\n }\n\n const primaryResourceType = primaryContent.resourceContext.resourceType;\n const primaryResourceId = frontendResourceUtils.getPrimaryResourceIdentifier(\n primaryContent.resourceContext,\n );\n /*\n * SAME-RESOURCE LIST → DETAIL is relevant, and it is checked BEFORE the parent-requirement rule\n * below because that rule cannot see it (#203).\n *\n * A flat resource's detail has no parent requirements — it is a root resource — so the rule below\n * calls it \"not dependent on PRIMARY\" and the zone-dependency cleanup clears it. The premise is\n * true and the conclusion does not follow: a detail sitting beside its OWN collection is not\n * stale, it is the entire list-detail pattern. `NAVIGATION_LAYOUT_SPLIT` exists to produce exactly\n * this pairing.\n *\n * It never surfaced on the CLICK path, because there primary keeps the list and its top entry\n * never changes, so the cleanup does not run. It surfaces on URL restoration, where primary goes\n * from empty to the list and that counts as a change — the detail was then cleared one tick after\n * being placed, with no CLEAR_ZONE event to find it by, because this cleanup calls\n * `clearZoneEntries` directly rather than through the bus.\n */\n if (primaryContent.resourceContext.resourceType === dependentContent.resourceContext.resourceType\n && NavigationUtils.isCollectionOperationContext(primaryContent.resourceContext)) {\n return true;\n }\n\n const parentReqs = dependentContent.resourceContext.parentResourcesRequirements;\n\n // If dependent has no parent requirements → it's a root resource, not dependent on PRIMARY\n if (!parentReqs || (parentReqs as unknown[]).length === 0) {\n return false;\n }\n\n return parentReqs.some((requirement) => {\n if (requirement.resourceType !== primaryResourceType) {\n return false;\n }\n\n if (!primaryResourceId) {\n return false;\n }\n\n const requirementContextKey = requirement.foreignKeyField ?? requirement.resourceType;\n const expectedParentId = NavigationUtils.resolveContextIdentifierValue(\n dependentContent.resourceContext,\n requirementContextKey,\n ) ?? NavigationUtils.resolveContextIdentifierValue(\n dependentContent.resourceContext,\n requirement.resourceType,\n );\n\n if (!expectedParentId) {\n return false;\n }\n\n return expectedParentId === primaryResourceId;\n });\n }\n\n\n // =========================================================================\n // RELATIONSHIP DISPLAY UTILITIES\n // =========================================================================\n\n /**\n * Determine whether a parent reference should be shown in a child resource view.\n * \n * Uses navigation context, inline rendering state, and relationship config\n * to decide if showing a parent link/badge is appropriate or redundant.\n * \n * @param inlineParentContext - Set by ContainerNested when rendering inline children\n * @param navigationZone - Which zone the child is rendered in\n * @param navigationInitiator - How the child was navigated to (source, relationship info)\n * @param getZoneState - Function to check another zone's current state (for staleness detection)\n *\n */\n static shouldShowParentReference(\n inlineParentContext: InlineParentContext | undefined,\n navigationZone: NavigationZone | string,\n navigationInitiator: NavigationInitiatorContext | undefined,\n getZoneState?: (zone: NavigationZoneName) => NavigationZoneState | undefined,\n ): boolean {\n // 1. Inline rendering — parent is visible above, never show\n if (inlineParentContext) return false;\n\n // 2. Overlay — parent is visible behind overlay, never show\n if (navigationZone === NavigationZone.OVERLAY) return false;\n\n // 3. Check explicit inChildView config from relationship\n const inChildView = navigationInitiator?.sourceRelationship?.inChildView;\n if ((inChildView as any)?.parentDisplay === ParentDisplay.NONE) return false;\n\n // 4. Multi-zone — if source zone is different, check if parent is STILL visible there\n const sourceZone = navigationInitiator?.sourceZone;\n if (sourceZone && sourceZone !== navigationZone && getZoneState) {\n const sourceZoneState = getZoneState(sourceZone as NavigationZoneName);\n const topEntry = sourceZoneState?.stack?.[sourceZoneState.stack.length - 1];\n\n if (topEntry?.content && 'resourceContext' in topEntry.content) {\n const topResourceContext = (topEntry.content as any).resourceContext as FrontendResourceOperationContext | undefined;\n const topResourceType = topResourceContext?.resourceType;\n const topResourceId = topResourceContext\n ? frontendResourceUtils.getPrimaryResourceIdentifier(topResourceContext)\n : undefined;\n const sourceRelationship = navigationInitiator?.sourceRelationship;\n\n if (\n topResourceType === sourceRelationship?.parentResourceType &&\n (\n !sourceRelationship.parentResourceId ||\n sourceRelationship.parentResourceId === topResourceId\n )\n ) {\n return false;\n }\n }\n }\n\n // 5. No initiator (direct URL), same-zone PUSH/REPLACE, or stale source zone — show reference\n return true;\n }\n\n /**\n * Resolve the default `showParentLink` value for a relationship when \n * `display.inChildView.showParentLink` is not explicitly configured.\n * \n * Rule: `true` for required FK fields (the parent is integral to the child),\n * `false` for optional FK fields (the parent is an optional association).\n * \n * @param schema - The child resource schema\n * @param fkFieldName - The foreign key field name on the child\n */\n static resolveDefaultShowParentLink(\n schema: z.ZodTypeAny,\n fkFieldName: string,\n ): boolean {\n try {\n // Check if the schema is an object type with the FK field\n const shape = (schema as any)?._def?.shape?.();\n if (!shape || !shape[fkFieldName]) return true; // Default to showing\n \n const fieldSchema = shape[fkFieldName];\n // Check if the field is optional (has ZodOptional wrapper)\n const isOptional = fieldSchema?._def?.typeName === 'ZodOptional' \n || fieldSchema?.isOptional?.() === true;\n \n return !isOptional;\n } catch {\n // If schema introspection fails, default to showing\n return true;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"navigation.utils.js","sourceRoot":"","sources":["../../../../src/core/navigation/navigation.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Navigation Utilities\n * \n * Shared utility functions for the navigation system.\n * Centralized to avoid duplication across navigation modules.\n */\n\nimport { \n CascadeDirection,\n CoreResourceType,\n CoreResourceOperation,\n coreResourceShared_FieldIdentifier,\n NavigationTransition,\n NavigationZoneName,\n ParentDisplay,\n ResourcesConfigOperationsUrlsBuilderUtils,\n ResourceConfiguration_Operation_UrlParameterInfo,\n ResourceRelationship,\n ResourceRelationshipCardinality,\n Resources_SharedUtils,\n type RequiredFeaturesConfig,\n type RelationshipDisplayInParentNavigation,\n} from '@wildo-ai/saas-models';\nimport { ApplicationLevelComponentType, SidebarItemDisplayPolicy } from '~wildo-frontend-lib/core/config/app-level-components.frontend.schemas';\nimport { COMPOSITE_ROUTE_CONTEXT_QUERY_PARAM_PREFIX } from '~wildo-frontend-lib/core/config/composite-view.schemas';\nimport { CHART_ROUTE_CONTEXT_QUERY_PARAM_PREFIX, CHART_ROUTE_PATH_PREFIX } from '~wildo-frontend-lib/core/config/chart-view.frontend.schemas';\nimport { HOSTED_PANE_QUERY_PARAM } from './hosted-pane.constants';\nimport { EXECUTION_ROUTE_CONTEXT_QUERY_PARAM_PREFIX } from '~wildo-frontend-lib/core/config/execution-view.schemas';\nimport { isOperationAddressable } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport type { AnyFrontendResourceConfiguration, FrontendResourceConfiguration_Operation, FrontendResourcesRegistry, FrontendResourceOperationContext } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { z } from 'zod';\nimport { frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport {\n pickPreferredOperationForCoreSemantic,\n resolveEffectiveCoreOperationFromOperation,\n} from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { pickPreferredOperationForCoreSemanticAddressability } from '~wildo-frontend-lib/core/resources/resource-addressability.frontend.utils';\nimport type { InlineParentContext } from '~wildo-frontend-lib/components/resources/component-props.resources-layout.frontend.schemas';\nimport { \n NavigationZone,\n APP_LEVEL_NAVIGATION_SOURCE,\n NAVIGATION_STRUCTURAL_ZONES,\n NavigationInitiatorContext,\n NavigationContent,\n NavigationContentType,\n NavigationZoneState, \n NavigationStackEntry, \n NavigationState,\n isCustomComponentNavigationItem,\n isEnginePageNavigationItem,\n isSettingsHubNavigationItem,\n isViewNavigationItem,\n type AnyNavigationItem,\n type ViewNavigationItem,\n} from './navigation.schemas';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\n\nconst logger: LoggerFrontendService = LoggerFrontendService.getLogger();\nconst logDebug: (message: string, context?: Record<string, unknown>) => void = logger.debugByType('NavigationUtils');\nlogger.setDebugTypeLogging('NavigationUtils', false);\n\n/**\n * Navigation utility class with static methods for navigation operations\n */\nexport class NavigationUtils {\n private static resolveContextIdentifierValue(\n resourceContext: FrontendResourceOperationContext,\n contextKey: string,\n ): string | undefined {\n const rawValue = resourceContext.contextResourceIdentifiers?.[contextKey];\n if (typeof rawValue === 'string') {\n return rawValue;\n }\n\n if (rawValue && typeof rawValue === 'object') {\n const nestedId = (rawValue as { resourceId?: unknown }).resourceId;\n return typeof nestedId === 'string' ? nestedId : undefined;\n }\n\n return undefined;\n }\n\n\n // ================================\n // Navigation Transaction\n // ================================\n //\n // A navigation transaction wraps multi-step operations (e.g., home click,\n // org switch, cascading) that must be treated as atomic. While a transaction\n // is active, useRouterSync is suppressed to prevent the Outlet from\n // re-populating the PRIMARY stack with stale content during React Router's\n // startTransition-based route change.\n //\n // Usage:\n // NavigationUtils.beginTransaction('home_navigation');\n // emit(NAVIGATION_CLEAR_ZONE, { zone: PRIMARY });\n // routerNavigate('/');\n // NavigationUtils.commitTransaction(); // or let it auto-commit\n //\n // Auto-commit: If commitTransaction() is not called explicitly, the\n // transaction auto-commits after the current event loop iteration via\n // setTimeout(0). This ensures the transaction covers all synchronous code\n // AND React's batched state updates and effects, but doesn't leak into\n // future render cycles.\n //\n // Safety net: A hard timeout (5s) auto-commits with a warning if the\n // caller forgets. This prevents permanent router sync suppression.\n //\n // Lives on NavigationUtils (static) to avoid circular dependencies between\n // NavigationContext and useNavigationController.\n\n private static _transactionActive = false;\n private static _transactionSource: string | null = null;\n private static _transactionAutoCommitTimer: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Monotonic counter, bumped every time a navigation transaction ENDS.\n *\n * The transaction is GLOBAL — a static flag — but the mechanism that waited for it to close used to\n * be per-instance: each route-mounted sync hook set its own `setTimeout(0)` and re-read the flag.\n * A hook that unmounted before its timer fired took the retry with it, and the reconstruction it was\n * deferring simply never happened (#212). That is not a rare race: clearing the structural zones\n * REMOUNTS the route element, so the instance that scheduled the retry is routinely not the instance\n * that needs it.\n *\n * A global signal cannot be lost that way. It is an EPOCH rather than an event, so a hook that mounts\n * after the commit is not waiting for a notification that already fired — it reads the current value\n * and, finding no active transaction, proceeds immediately.\n */\n private static _transactionEpoch = 0;\n\n private static readonly _transactionListeners = new Set<() => void>();\n\n /** Subscribe to transaction ENDINGS. Returns an unsubscribe. */\n static subscribeToTransactionState(listener: () => void): () => void {\n NavigationUtils._transactionListeners.add(listener);\n return () => {\n NavigationUtils._transactionListeners.delete(listener);\n };\n }\n\n /** The current epoch — changes exactly when a transaction ends. */\n static getTransactionEpoch(): number {\n return NavigationUtils._transactionEpoch;\n }\n\n /**\n * End the transaction and tell everyone waiting on it.\n *\n * One private door for all three endings — auto-commit, explicit commit, and the 5s safety net — so a\n * future fourth cannot end a transaction without waking the hooks that deferred to it. That is\n * exactly how the per-instance timer failed: the ending and the waiting were wired separately.\n */\n private static endTransactionAndNotify(): void {\n NavigationUtils._transactionActive = false;\n NavigationUtils._transactionSource = null;\n NavigationUtils._transactionEpoch += 1;\n for (const listener of [...NavigationUtils._transactionListeners]) {\n listener();\n }\n }\n private static _transactionSafetyTimer: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Begin a navigation transaction.\n * \n * While active, useRouterSync skips synchronization to prevent stale content\n * from being pushed to the navigation stack during multi-step operations.\n * \n * Transactions auto-commit after the current event loop iteration (setTimeout(0))\n * to handle the common case where explicit commitTransaction() is omitted.\n * A safety timeout (5s) prevents permanent suppression if something goes wrong.\n * \n * @param source - Descriptive label for debugging (e.g., 'home_navigation', 'org_switch')\n */\n static beginTransaction(source: string): void {\n // If a transaction is already active, just update the source (nested call)\n if (NavigationUtils._transactionActive) {\n logDebug('beginTransaction: NESTED (already active)', { existingSource: NavigationUtils._transactionSource, newSource: source });\n NavigationUtils._transactionSource = source;\n return;\n }\n\n NavigationUtils._transactionActive = true;\n NavigationUtils._transactionSource = source;\n logDebug('beginTransaction: STARTED', { source });\n\n // Auto-commit after current event loop iteration.\n // setTimeout(0) fires after all synchronous code, microtasks, and React's\n // batched rendering + effects, but before the next macrotask.\n NavigationUtils._transactionAutoCommitTimer = setTimeout(() => {\n if (NavigationUtils._transactionActive) {\n logDebug('beginTransaction: AUTO-COMMIT (setTimeout(0))', { source: NavigationUtils._transactionSource });\n NavigationUtils.endTransactionAndNotify();\n }\n NavigationUtils._transactionAutoCommitTimer = null;\n }, 0);\n\n // Safety net: hard timeout to prevent permanent suppression\n NavigationUtils._transactionSafetyTimer = setTimeout(() => {\n if (NavigationUtils._transactionActive) {\n console.warn('[NavigationUtils] Transaction safety timeout — force committing after 5s', { source: NavigationUtils._transactionSource });\n NavigationUtils.endTransactionAndNotify();\n }\n NavigationUtils._transactionSafetyTimer = null;\n }, 5000);\n }\n\n /**\n * Explicitly commit (end) the current navigation transaction.\n * \n * This is optional — transactions auto-commit after the current event loop\n * iteration. Call this explicitly when you want deterministic timing, e.g., a\n * test that needs the URL→state reconstruction guard released before asserting.\n */\n static commitTransaction(): void {\n if (!NavigationUtils._transactionActive) {\n return;\n }\n\n logDebug('commitTransaction: COMMITTED', { source: NavigationUtils._transactionSource });\n NavigationUtils.endTransactionAndNotify();\n\n // Clear pending timers\n if (NavigationUtils._transactionAutoCommitTimer) {\n clearTimeout(NavigationUtils._transactionAutoCommitTimer);\n NavigationUtils._transactionAutoCommitTimer = null;\n }\n if (NavigationUtils._transactionSafetyTimer) {\n clearTimeout(NavigationUtils._transactionSafetyTimer);\n NavigationUtils._transactionSafetyTimer = null;\n }\n }\n\n /**\n * Check if a navigation transaction is currently active.\n * \n * Used by useRouterSync to decide whether to skip synchronization.\n * Unlike the old consumeRouterSyncSuppression(), this does NOT consume\n * the flag — the transaction remains active until committed.\n */\n static isInTransaction(): boolean {\n return NavigationUtils._transactionActive;\n }\n\n /**\n * Get the current transaction source label (for debugging).\n */\n static getTransactionSource(): string | null {\n return NavigationUtils._transactionSource;\n }\n\n /**\n * The canonical browser URL string (`pathname + search`) every ownership check and every stamp\n * starts from. The query string is kept because part of it is ADDRESS (see\n * {@link isAddressQueryParam}); which part is decided at comparison time, never here.\n */\n static buildBrowserUrl(pathname: string, search: string = ''): string {\n return search ? `${pathname}${search}` : pathname;\n }\n\n /**\n * Normalize a URL before it is compared or decomposed: the hash fragment is dropped because the\n * runtime does not model it. The query string is kept — {@link urlsAddressSameDestination} is what\n * decides which of its keys count.\n */\n static normalizeComparableUrl(urlPath: string | undefined): string | undefined {\n if (!urlPath) {\n return undefined;\n }\n\n const [withoutHash] = urlPath.split('#');\n return withoutHash || undefined;\n }\n\n // ──────────────────────────────────────────────────────────────\n // URL identity: DESTINATION versus VIEW STATE\n // ──────────────────────────────────────────────────────────────\n\n /**\n * Whether a query-string key is part of a destination's ADDRESS rather than its view state.\n *\n * The framework itself writes three families of address params — a view route's context\n * identifiers (`composite_ctx_*`, `chart_ctx_*`, `execution_ctx_*`) — and the hosted-pane param.\n * A CHART route is the exception that keeps every param: `extractChartRouteUrlParamValues` reads\n * all non-context keys as the chart's url-param VALUES, so for that route they are address too.\n *\n * Everything else — `?section=`, `?dataMode=`, a filter a view mirrors — is view state: it changes\n * WHAT a destination shows, not WHICH destination is shown. Route ownership used to compare the\n * whole URL string, so every such change made the URL \"owned by nobody\" and the back/forward\n * reconciler tore every zone down to rebuild the very destination still on screen (measured on the\n * workbench creation board: each tab click remounted the board).\n */\n static isAddressQueryParam(pathname: string, key: string): boolean {\n if (key === HOSTED_PANE_QUERY_PARAM) return true;\n if (pathname.startsWith(CHART_ROUTE_PATH_PREFIX)) return true;\n return key.startsWith(COMPOSITE_ROUTE_CONTEXT_QUERY_PARAM_PREFIX)\n || key.startsWith(CHART_ROUTE_CONTEXT_QUERY_PARAM_PREFIX)\n || key.startsWith(EXECUTION_ROUTE_CONTEXT_QUERY_PARAM_PREFIX);\n }\n\n /** `pathname` and parsed `search` of a browser-style URL path; the hash is dropped. */\n static splitUrlPath(urlPath: string): { pathname: string; params: URLSearchParams } {\n const [withoutHash = ''] = urlPath.split('#');\n const questionMark = withoutHash.indexOf('?');\n if (questionMark < 0) {\n return { pathname: withoutHash, params: new URLSearchParams() };\n }\n return {\n pathname: withoutHash.slice(0, questionMark),\n params: new URLSearchParams(withoutHash.slice(questionMark + 1)),\n };\n }\n\n /** Reassemble a `splitUrlPath` result; an empty query yields the bare pathname. */\n static joinUrlPath(pathname: string, params: URLSearchParams): string {\n const search = params.toString();\n return search.length > 0 ? `${pathname}?${search}` : pathname;\n }\n\n /**\n * The DESTINATION a URL addresses: its pathname plus its address params, in a canonical order.\n * Two URLs with the same key show the same destination and may differ only in view state.\n */\n static getUrlDestinationKey(urlPath: string | undefined): string | undefined {\n if (!urlPath) return undefined;\n const { pathname, params } = NavigationUtils.splitUrlPath(urlPath);\n const addressEntries = [...params.entries()]\n .filter(([key]) => NavigationUtils.isAddressQueryParam(pathname, key))\n .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));\n return NavigationUtils.joinUrlPath(pathname, new URLSearchParams(addressEntries));\n }\n\n static urlsAddressSameDestination(a: string | undefined, b: string | undefined): boolean {\n const keyA = NavigationUtils.getUrlDestinationKey(a);\n return keyA !== undefined && keyA === NavigationUtils.getUrlDestinationKey(b);\n }\n\n // ──────────────────────────────────────────────────────────────\n // Hosted panes: a SECONDARY destination carried by a non-derivable PRIMARY's URL\n // ──────────────────────────────────────────────────────────────\n\n /**\n * Whether a reload could rebuild this PRIMARY content from a resource URL alone.\n *\n * A RESOURCE_OPERATION can: a flat detail's URL implies its own list (#203) and a nested one names\n * its ancestors. Every other kind — a composite view, a canvas, a chart, an engine page — has an\n * address of its own that no resource URL implies, so a pane opened beside it must not take the\n * URL over. An EMPTY primary is \"derivable\" too: there is nothing to host.\n */\n static primaryContentIsUrlDerivable(content: NavigationContent | undefined): boolean {\n return content === undefined || content.contentType === NavigationContentType.RESOURCE_OPERATION;\n }\n\n /** `hostUrl` is the browser URL without the pane param; `paneUrl` the pane's own address, if any. */\n static decomposeHostedPaneBrowserUrl(browserUrl: string): { hostUrl: string; paneUrl?: string } {\n const { pathname, params } = NavigationUtils.splitUrlPath(browserUrl);\n const paneUrl = params.get(HOSTED_PANE_QUERY_PARAM) ?? undefined;\n params.delete(HOSTED_PANE_QUERY_PARAM);\n const hostUrl = NavigationUtils.joinUrlPath(pathname, params);\n return paneUrl && paneUrl.length > 0 ? { hostUrl, paneUrl } : { hostUrl };\n }\n\n /** The host's URL (its own pane param, if any, replaced) carrying `paneUrl` as the hosted pane. */\n static composeHostedPaneBrowserUrl(hostUrl: string, paneUrl: string): string {\n const { pathname, params } = NavigationUtils.splitUrlPath(hostUrl);\n params.delete(HOSTED_PANE_QUERY_PARAM);\n params.set(HOSTED_PANE_QUERY_PARAM, paneUrl);\n return NavigationUtils.joinUrlPath(pathname, params);\n }\n\n /**\n * The browser URL to write when `zone`'s visible entry is (or becomes) `entryUrlPath`.\n *\n * ONE composer for every write site — `navigate()`, `goBack()` in either zone — because the\n * composed form has to be produced identically wherever a URL leaves the controller, and two\n * hand-written compositions are how the pane's address and the host's would drift apart.\n *\n * - SECONDARY beside a NON-derivable primary → the host's address carrying the pane. The host part\n * is taken from the LIVE browser URL when that URL still addresses the primary's destination (it\n * carries the freshest view state, `?section=` included), and from the primary entry's own\n * `urlPath` otherwise.\n * - SECONDARY beside a derivable primary → the entry's own URL, the pre-existing model (#203).\n * - PRIMARY, or a secondary that has just emptied → the entry's own URL; a hosted pane is closed by\n * the URL reconciler the moment the `pane` param is gone.\n * - COMPANION is not hosted: no layout opens a companion beside a non-resource primary, and a\n * second parameter would be invented for nothing. It keeps the entry's own URL.\n */\n static resolveBrowserUrlForZoneEntry(params: {\n zone: NavigationZone;\n entryUrlPath: string | undefined;\n currentBrowserUrl: string;\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState;\n }): string | undefined {\n const { zone, entryUrlPath, currentBrowserUrl, getZoneState } = params;\n const primaryTop = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.PRIMARY));\n const hosted = zone === NavigationZoneName.SECONDARY\n && primaryTop?.urlPath !== undefined\n && !NavigationUtils.primaryContentIsUrlDerivable(primaryTop.content);\n if (!hosted) {\n return entryUrlPath;\n }\n const { hostUrl: liveHostUrl } = NavigationUtils.decomposeHostedPaneBrowserUrl(currentBrowserUrl);\n const hostUrl = NavigationUtils.urlsAddressSameDestination(liveHostUrl, primaryTop.urlPath)\n ? liveHostUrl\n : primaryTop.urlPath;\n return entryUrlPath ? NavigationUtils.composeHostedPaneBrowserUrl(hostUrl, entryUrlPath) : hostUrl;\n }\n\n /**\n * What \"go back\" means for a zone — the POP to emit and the browser URL to write.\n *\n * ONE resolver, because \"go back\" is reached from four places: the controller's `goBack`, the\n * router error boundary's \"back\" action, the feature-route guard's dismiss, and (through the\n * controller) every back affordance in the presets. The first fix for hosted panes was applied in\n * the controller only, and the two boundaries — each carrying its own copy of the same stack walk\n * — went on writing a hosted pane's BARE address, which the URL reconciler cannot claim and so\n * rebuilds into primary: the original defect, re-entered through an error page.\n *\n * `zone` defaults to the zone that owns the browser URL (a hosted pane under a composed URL),\n * then PRIMARY. Returns `null` when there is nothing to go back to in that zone — the caller's own\n * fallback (browser history, home) applies.\n *\n * The URL follows {@link resolveBrowserUrlForZoneEntry}: a pop inside a hosted pane reveals the\n * previous pane under the LIVE host; closing the last pane returns to the live host without it.\n */\n static resolveGoBackTarget(params: {\n zone?: NavigationZoneName;\n currentBrowserUrl: string;\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState;\n }): { zone: NavigationZoneName; browserUrl: string | undefined } | null {\n const { currentBrowserUrl, getZoneState } = params;\n const zone = params.zone\n ?? NavigationUtils.findStructuralRouteOwner(currentBrowserUrl, getZoneState)?.zone\n ?? NavigationZoneName.PRIMARY;\n const zoneState = getZoneState(zone);\n\n if (zoneState.stack.length > 1) {\n const previousEntry = zoneState.stack[zoneState.stack.length - 2];\n return {\n zone,\n browserUrl: previousEntry?.urlPath\n ? NavigationUtils.resolveBrowserUrlForZoneEntry({ zone, entryUrlPath: previousEntry.urlPath, currentBrowserUrl, getZoneState })\n : undefined,\n };\n }\n\n if (zone === NavigationZoneName.PRIMARY) {\n return null;\n }\n\n const primaryTopUrl = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.PRIMARY))?.urlPath;\n const secondaryTopUrl = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.SECONDARY))?.urlPath;\n const fallbackUrl = zone === NavigationZoneName.COMPANION\n ? secondaryTopUrl ?? primaryTopUrl\n : primaryTopUrl;\n if (!fallbackUrl) {\n return { zone, browserUrl: undefined };\n }\n /*\n * Closing the last pane beside a non-derivable primary returns to the host's LIVE URL (its view\n * state intact), not to the stamp the primary entry took when it was placed — the pane simply\n * leaves the query string. Everywhere else the fallback is the entry's own URL.\n */\n const { hostUrl } = NavigationUtils.decomposeHostedPaneBrowserUrl(currentBrowserUrl);\n const browserUrl = zone === NavigationZoneName.SECONDARY && NavigationUtils.urlsAddressSameDestination(hostUrl, fallbackUrl)\n ? hostUrl\n : fallbackUrl;\n return { zone, browserUrl };\n }\n\n /**\n * Whether `zone`'s visible entry is what the browser URL shows for that zone.\n *\n * Pane-aware: under a composed URL the PRIMARY is asked about the HOST part and the SECONDARY\n * about the PANE part, so each route-mounted sync hook can ask about its own zone without either\n * mistaking the other's half of the URL for a destination it has to rebuild. A hosted pane never\n * claims a BARE URL — its address is reachable only in the composed form.\n */\n static zoneOwnsBrowserUrl(\n zone: NavigationZoneName,\n browserUrl: string,\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState,\n ): boolean {\n const { hostUrl, paneUrl } = NavigationUtils.decomposeHostedPaneBrowserUrl(browserUrl);\n const topEntry = NavigationUtils.getTopEntry(getZoneState(zone));\n if (!topEntry) return false;\n if (zone === NavigationZoneName.SECONDARY && topEntry.hostedPane) {\n return paneUrl !== undefined && NavigationUtils.urlsAddressSameDestination(topEntry.urlPath, paneUrl);\n }\n if (zone === NavigationZoneName.PRIMARY) {\n return NavigationUtils.urlsAddressSameDestination(topEntry.urlPath, hostUrl);\n }\n return paneUrl === undefined && NavigationUtils.urlsAddressSameDestination(topEntry.urlPath, browserUrl);\n }\n\n /**\n * The structural entry whose VISIBLE content the browser URL addresses, by DESTINATION.\n *\n * `searchDiffers` reports that the URL moved only in view state — the caller refreshes the entry's\n * `urlPath` in place rather than rebuilding. Under a composed URL the owner is the hosted pane,\n * and only when the primary addresses the host part as well: half a match is no match, because a\n * pane addressed beside the wrong host is exactly what a rebuild exists to correct.\n */\n static findStructuralRouteOwner(\n urlPath: string,\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState,\n ): { zone: NavigationZoneName; entry: NavigationStackEntry; searchDiffers: boolean } | null {\n const comparableTargetUrl = NavigationUtils.normalizeComparableUrl(urlPath);\n if (!comparableTargetUrl) {\n return null;\n }\n\n const { hostUrl, paneUrl } = NavigationUtils.decomposeHostedPaneBrowserUrl(comparableTargetUrl);\n if (paneUrl !== undefined) {\n const secondaryTop = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.SECONDARY));\n const primaryTop = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.PRIMARY));\n if (\n secondaryTop?.hostedPane\n && NavigationUtils.urlsAddressSameDestination(secondaryTop.urlPath, paneUrl)\n && NavigationUtils.urlsAddressSameDestination(primaryTop?.urlPath, hostUrl)\n ) {\n return {\n zone: NavigationZoneName.SECONDARY,\n entry: secondaryTop,\n searchDiffers: secondaryTop.urlPath !== paneUrl || primaryTop?.urlPath !== hostUrl,\n };\n }\n return null;\n }\n\n const zonePriority: NavigationZoneName[] = [\n NavigationZoneName.COMPANION,\n NavigationZoneName.SECONDARY,\n NavigationZoneName.PRIMARY,\n ];\n\n for (const zone of zonePriority) {\n const topEntry = NavigationUtils.getTopEntry(getZoneState(zone));\n if (!topEntry || topEntry.hostedPane) continue;\n if (NavigationUtils.urlsAddressSameDestination(topEntry.urlPath, comparableTargetUrl)) {\n return {\n zone,\n entry: topEntry,\n searchDiffers: NavigationUtils.normalizeComparableUrl(topEntry.urlPath) !== comparableTargetUrl,\n };\n }\n }\n\n return null;\n }\n\n /**\n * The structural entry — visible or buried in a backstack — that the browser URL addresses.\n *\n * Used by the browser back/forward reconciler: a URL that names an entry still sitting LOWER in a\n * zone's backstack is restored with a pure POP (preserving that entry's live state) rather than\n * rebuilt. Scans deepest zone first (COMPANION → SECONDARY → PRIMARY); within a zone the deepest\n * matching entry wins so a genuine \"go back N\" lands on the right historical entry. `isTop` reports\n * that the match is already the zone's visible top.\n *\n * Same destination rule and same pane rule as {@link findStructuralRouteOwner}; the difference is\n * that a buried entry counts, which is what turns a browser back into a POP that preserves the\n * revealed entry's live state instead of rebuilding it. Under a composed URL the search runs the\n * SECONDARY stack for the pane while the primary's visible entry must already address the host:\n * a pane can be popped back to, a host cannot be popped to underneath a pane.\n */\n static findStructuralStackEntryOwningUrl(\n urlPath: string,\n getZoneState: (zone: NavigationZoneName) => NavigationZoneState,\n ): { zone: NavigationZoneName; entry: NavigationStackEntry; isTop: boolean; searchDiffers: boolean } | null {\n const comparableTargetUrl = NavigationUtils.normalizeComparableUrl(urlPath);\n if (!comparableTargetUrl) {\n return null;\n }\n\n const { hostUrl, paneUrl } = NavigationUtils.decomposeHostedPaneBrowserUrl(comparableTargetUrl);\n if (paneUrl !== undefined) {\n const primaryTop = NavigationUtils.getTopEntry(getZoneState(NavigationZoneName.PRIMARY));\n if (!NavigationUtils.urlsAddressSameDestination(primaryTop?.urlPath, hostUrl)) {\n return null;\n }\n const stack = getZoneState(NavigationZoneName.SECONDARY).stack;\n for (let index = stack.length - 1; index >= 0; index--) {\n const entry = stack[index];\n if (entry?.hostedPane && NavigationUtils.urlsAddressSameDestination(entry.urlPath, paneUrl)) {\n return {\n zone: NavigationZoneName.SECONDARY,\n entry,\n isTop: index === stack.length - 1,\n searchDiffers: entry.urlPath !== paneUrl || primaryTop?.urlPath !== hostUrl,\n };\n }\n }\n return null;\n }\n\n const zonePriority: NavigationZoneName[] = [\n NavigationZoneName.COMPANION,\n NavigationZoneName.SECONDARY,\n NavigationZoneName.PRIMARY,\n ];\n\n for (const zone of zonePriority) {\n const stack = getZoneState(zone).stack;\n for (let index = stack.length - 1; index >= 0; index--) {\n const entry = stack[index];\n if (!entry || entry.hostedPane) continue;\n if (NavigationUtils.urlsAddressSameDestination(entry.urlPath, comparableTargetUrl)) {\n return {\n zone,\n entry,\n isTop: index === stack.length - 1,\n searchDiffers: NavigationUtils.normalizeComparableUrl(entry.urlPath) !== comparableTargetUrl,\n };\n }\n }\n }\n\n return null;\n }\n\n /**\n * Match a `:param` route pattern against a pathname and return the captured parameters, or\n * `undefined` when it does not match. The capturing twin of {@link matchUrlPattern}.\n */\n static extractUrlPatternParams(pattern: string, pathname: string): Record<string, string> | undefined {\n const PLACEHOLDER = '___PARAM___';\n const paramNames: string[] = [];\n const withPlaceholders = pattern.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g, (_match, paramName: string) => {\n paramNames.push(paramName);\n return PLACEHOLDER;\n });\n const escaped = withPlaceholders.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const regexPattern = escaped.replace(new RegExp(PLACEHOLDER, 'g'), '([^/]+)');\n const match = new RegExp(`^${regexPattern}$`).exec(pathname);\n if (!match) return undefined;\n const params: Record<string, string> = {};\n paramNames.forEach((name, index) => {\n params[name] = decodeURIComponent(match[index + 1] ?? '');\n });\n return params;\n }\n\n /**\n * The ADDRESSABLE resource operation a URL path names, with its captured route parameters.\n *\n * The URL→state reconstruction the route elements perform (`useRouterSync`) gets its resource,\n * operation and parameters from React Router, which has already matched the route. A hosted pane\n * is NOT the router's route — the browser URL is the host's — so its address has to be matched\n * here, against the same route table `AppRouter` registers: every addressable operation's\n * frontend route paths. The most specific matching pattern wins, exactly as the router would rank\n * a static segment above a parameter.\n */\n static resolveResourceRouteForUrl(\n urlPath: string,\n registry: FrontendResourcesRegistry,\n ): {\n resourceType: string;\n operation: FrontendResourceConfiguration_Operation;\n routePathParameters: ResourceConfiguration_Operation_UrlParameterInfo[];\n urlParameters: Record<string, string>;\n } | undefined {\n const { pathname } = NavigationUtils.splitUrlPath(urlPath);\n let best: {\n score: number;\n resourceType: string;\n operation: FrontendResourceConfiguration_Operation;\n routePathParameters: ResourceConfiguration_Operation_UrlParameterInfo[];\n urlParameters: Record<string, string>;\n } | undefined;\n\n for (const resourceConfig of Object.values(registry.resourceConfigurations ?? {}) as AnyFrontendResourceConfiguration[]) {\n const operations = Array.isArray(resourceConfig.operations) ? resourceConfig.operations : [];\n for (const operation of operations as FrontendResourceConfiguration_Operation[]) {\n if (!isOperationAddressable(operation.operationFrontendConfig)) continue;\n let routePaths: ReturnType<typeof ResourcesConfigOperationsUrlsBuilderUtils.buildOperationFrontendRoutePaths>;\n try {\n routePaths = ResourcesConfigOperationsUrlsBuilderUtils.buildOperationFrontendRoutePaths(\n resourceConfig as any,\n operation,\n registry.allResourceFieldIdentifiers,\n );\n } catch {\n continue;\n }\n for (const routePath of routePaths ?? []) {\n const urlParameters = NavigationUtils.extractUrlPatternParams(routePath.url, pathname);\n if (!urlParameters) continue;\n const score = NavigationUtils.routeSpecificityScore(routePath.url);\n if (!best || score > best.score) {\n best = {\n score,\n resourceType: resourceConfig.resourceIdentifier,\n operation,\n routePathParameters: routePath.parameters ?? [],\n urlParameters,\n };\n }\n }\n }\n }\n\n if (!best) return undefined;\n const { score: _score, ...route } = best;\n return route;\n }\n\n /**\n * Check if a URL pattern matches a pathname (exact match).\n * Patterns use :paramName format (e.g., /organizations/:organizationId/api-keys)\n * and pathnames have actual values (e.g., /organizations/abc123/api-keys).\n * \n * @param pattern - URL pattern with :paramName placeholders\n * @param pathname - Actual URL pathname with resolved values\n * @returns true if the pattern matches the pathname\n */\n static matchUrlPattern(pattern: string, pathname: string): boolean {\n return NavigationUtils.extractUrlPatternParams(pattern, pathname) !== undefined;\n }\n\n /**\n * Check if pathname matches pattern or is a child of it.\n * Used to determine if a navigation item should be marked as active.\n * \n * @param pattern - URL pattern with :paramName placeholders\n * @param pathname - Actual URL pathname\n * @returns true if the pathname matches the pattern or is a child route\n */\n static isActiveRoute(pattern: string, pathname: string): boolean {\n const normalizedPattern = pattern.split('?')[0]?.split('#')[0] ?? pattern;\n const normalizedPathname = pathname.split('?')[0]?.split('#')[0] ?? pathname;\n\n // Exact match\n if (NavigationUtils.matchUrlPattern(normalizedPattern, normalizedPathname)) {\n return true;\n }\n \n // Check if pathname starts with pattern (for child routes)\n // We need to check each segment to handle dynamic params correctly\n const patternSegments = normalizedPattern.split('/').filter(Boolean);\n const pathSegments = normalizedPathname.split('/').filter(Boolean);\n \n // If pattern has more segments than path, it can't match\n if (patternSegments.length > pathSegments.length) {\n return false;\n }\n \n // Check if all pattern segments match path segments\n for (let i = 0; i < patternSegments.length; i++) {\n const patternSeg = patternSegments[i];\n const pathSeg = pathSegments[i];\n \n if (patternSeg.startsWith(':')) {\n // Dynamic segment - any non-empty value matches\n if (!pathSeg) return false;\n } else {\n // Static segment - must match exactly\n if (patternSeg !== pathSeg) return false;\n }\n }\n \n return true;\n }\n\n /**\n * Score how *specific* a route pattern is, so the most precise active item can\n * be chosen when several match the same URL.\n *\n * Primary metric is segment depth (a deeper pattern is more specific); the\n * static-segment count breaks ties so a fully-literal route outranks a\n * param-heavy one of equal depth (`/a/b/c` > `/a/:x/c`). `isActiveRoute`\n * already guarantees the whole pattern matched, so the pattern's own segment\n * count equals the number of matched segments.\n */\n static routeSpecificityScore(pattern: string): number {\n const normalized = pattern.split('?')[0]?.split('#')[0] ?? pattern;\n const segments = normalized.split('/').filter(Boolean);\n const staticSegments = segments.filter((segment) => !segment.startsWith(':')).length;\n return segments.length * 100 + staticSegments;\n }\n\n /**\n * Among a set of candidate route patterns, return the SINGLE most-specific one\n * that `isActive` reports as active, or `undefined` when none are active.\n *\n * The per-item active check (`isActiveRoute`) marks a pattern active when the\n * current path equals it OR is a CHILD of it (so a parent section stays\n * highlighted on a sub-page). The side effect is that a menu listing BOTH a\n * parent route (`…/todo-lists`) and a child route (`…/todo-lists/:listId/todos`)\n * sees both report active on the child URL. Active-state highlighting must pick\n * the most precise one, so callers that own the full candidate set (e.g. the\n * sidebar) resolve the winner here instead of testing each item in isolation.\n *\n * `isActive` is injected (rather than taking a pathname) so callers can reuse\n * their already-bound checker (e.g. `useNavigationState().isNavigationItemActive`)\n * without this util depending on router state.\n */\n static getMostSpecificActiveRoute(\n patterns: ReadonlyArray<string | undefined>,\n isActive: (pattern: string) => boolean,\n ): string | undefined {\n let best: string | undefined;\n let bestScore = -1;\n for (const pattern of patterns) {\n if (!pattern || !isActive(pattern)) {\n continue;\n }\n const score = NavigationUtils.routeSpecificityScore(pattern);\n if (score > bestScore) {\n bestScore = score;\n best = pattern;\n }\n }\n return best;\n }\n\n /**\n * Convert resourceType-keyed identifiers to fieldIdentifier-keyed identifiers for URL substitution.\n * \n * Frontend URLs use :fieldIdentifier format (e.g., :organizationId), but contextResourceIdentifiers\n * use resourceType as keys (e.g., 'organizations'). This function converts between the two.\n * \n * @param resourceTypeIdentifiers - Map with resourceType keys (e.g., { organizations: 'org-123' })\n * @param allResourceFieldIdentifiers - Registry mapping from resourceType to fieldIdentifier\n * @returns Map with fieldIdentifier keys (e.g., { organizationId: 'org-123' })\n */\n static convertToFieldIdentifierKeys(\n resourceTypeIdentifiers: Record<string, string>,\n allResourceFieldIdentifiers: Record<string, string>\n ): Record<string, string> {\n const result: Record<string, string> = {};\n \n for (const [resourceType, value] of Object.entries(resourceTypeIdentifiers)) {\n if (value) {\n // Look up fieldIdentifier for this resourceType\n const fieldIdentifier = allResourceFieldIdentifiers[resourceType];\n if (fieldIdentifier) {\n result[fieldIdentifier] = value;\n } else {\n // Fallback: check if it's already a fieldIdentifier or if it's in coreResourceShared_FieldIdentifier\n const coreFieldId = coreResourceShared_FieldIdentifier[resourceType as CoreResourceType];\n if (coreFieldId) {\n result[coreFieldId] = value;\n } else {\n // Last resort: use the key as-is (might be a custom field)\n result[resourceType] = value;\n }\n }\n }\n }\n \n return result;\n }\n\n /**\n * Resolve URL path placeholders with actual values from context identifiers.\n * \n * Frontend URLs use :fieldIdentifier format (React Router style, e.g., /organizations/:organizationId/api-keys).\n * This function replaces these placeholders with actual values.\n * \n * @param urlPath - URL path with :paramName placeholders\n * @param fieldIdentifiers - Map with fieldIdentifier keys (e.g., { organizationId: 'org-123' })\n * @returns Resolved URL path with placeholders replaced\n */\n static resolveUrlPath(\n urlPath: string | undefined,\n fieldIdentifiers: Record<string, string | number>\n ): string | undefined {\n if (!urlPath) return undefined;\n \n let resolvedPath = urlPath;\n \n for (const [fieldIdentifier, value] of Object.entries(fieldIdentifiers)) {\n if (value !== undefined && value !== null && value !== '') {\n const resolvedValue = String(value);\n // Replace :fieldIdentifier format (React Router style - primary format for frontend)\n // Use word boundary to avoid partial matches (e.g., :organizationId vs :organizationIdExtra)\n const colonRegex = new RegExp(`:${fieldIdentifier.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}(?=[/\\\\?]|$)`, 'g');\n resolvedPath = resolvedPath.replace(colonRegex, resolvedValue);\n \n // Also handle {fieldIdentifier} format for backwards compatibility with backend-style URLs\n const curlyBraceRegex = new RegExp(`\\\\{${fieldIdentifier.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}\\\\}`, 'g');\n resolvedPath = resolvedPath.replace(curlyBraceRegex, resolvedValue);\n }\n }\n \n return resolvedPath;\n }\n\n /**\n * Check if a URL path still contains unresolved :paramName or {paramName} placeholders.\n * Used as a sending-side guard to prevent writing malformed URLs to the browser or API calls.\n * \n * @param urlPath - Resolved URL path to check\n * @returns true if unresolved placeholders remain\n */\n static hasUnresolvedPlaceholders(urlPath: string): boolean {\n // Match :paramName (React Router style) — word char sequences after colon, not preceded by //\n // Also match {paramName} (backend style)\n return /:[a-zA-Z_]\\w*(?=[/\\\\?]|$)/.test(urlPath) || /\\{[a-zA-Z_]\\w*\\}/.test(urlPath);\n }\n\n /**\n * Helper to create initiator context for app-level launchers\n * \n * @param launcher - The app-level action launcher\n * @returns Navigation initiator context for app-level navigation\n */\n static createAppLevelInitiator(launcher: ApplicationLevelComponentType): NavigationInitiatorContext {\n return {\n sourceZone: APP_LEVEL_NAVIGATION_SOURCE,\n launcher,\n };\n }\n\n /**\n * Dispatch navigation for an AnyNavigationItem — DRY helper shared\n * across all behavior hooks that convert a nav item click into a\n * `navigate()` call.\n */\n static dispatchNavigationForItem(\n navigate: (options: { content: NavigationContent; initiator: NavigationInitiatorContext; urlPath: string }) => void,\n item: AnyNavigationItem,\n launcher: ApplicationLevelComponentType\n ): void {\n if (isCustomComponentNavigationItem(item)) {\n navigate({\n content: {\n contentType: NavigationContentType.CUSTOM_COMPONENT,\n componentRef: item.componentRef,\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: item.urlPath,\n });\n } else if (isEnginePageNavigationItem(item)) {\n navigate({\n content: {\n contentType: NavigationContentType.ENGINE_PAGE,\n pageRef: item.pageRef,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: item.urlPath,\n });\n } else if (isSettingsHubNavigationItem(item)) {\n // URL-first via navigate()'s SETTINGS_HUB short-circuit → the route sync\n // reconstructs the hub overlay. Keeps the sidebar consistent with every\n // other settings entry point.\n navigate({\n content: {\n contentType: NavigationContentType.SETTINGS_HUB,\n sectionRef: item.sectionRef,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: item.urlPath,\n });\n } else if (isViewNavigationItem(item)) {\n navigate({\n content: NavigationUtils.buildNavigationContentForViewItem(item),\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: item.urlPath,\n });\n } else {\n navigate({\n content: {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: item.resourceContext,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: item.urlPath,\n });\n }\n }\n\n /**\n * Dispatch navigation for a resolved target (from the new per-launcher resolution layer).\n *\n * Builds `NavigationContent` from the resolved target's fields, dispatching\n * on presence of `resourceContext` (resource items) vs `viewRef`+`contentType` (view items).\n */\n static dispatchNavigationForResolvedTarget(\n navigate: (options: { content: NavigationContent; initiator: NavigationInitiatorContext; urlPath: string }) => void,\n target: {\n urlPath: string;\n resourceContext?: FrontendResourceOperationContext;\n viewRef?: string;\n contentType?: NavigationContentType;\n pageRef?: string;\n fullCustomComponentRef?: string;\n flowsActorsSystemRef?: string;\n componentRef?: string;\n sectionRef?: string;\n requiredFeatures?: RequiredFeaturesConfig;\n contextResourceIdentifiers?: Record<string, string>;\n urlParamValues?: Record<string, string>;\n },\n launcher: ApplicationLevelComponentType,\n ): void {\n if (target.resourceContext) {\n navigate({\n content: {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: target.resourceContext,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: target.urlPath,\n });\n } else if (target.viewRef && target.contentType) {\n const content = NavigationUtils.buildNavigationContentForResolvedView(\n target.viewRef,\n target.contentType,\n target.fullCustomComponentRef,\n target.flowsActorsSystemRef,\n target.contextResourceIdentifiers,\n target.urlParamValues,\n target.requiredFeatures,\n );\n navigate({\n content,\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: target.urlPath,\n });\n } else if (target.contentType === NavigationContentType.ENGINE_PAGE && target.pageRef) {\n navigate({\n content: {\n contentType: NavigationContentType.ENGINE_PAGE,\n pageRef: target.pageRef as any,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: target.urlPath,\n });\n } else if (target.contentType === NavigationContentType.SETTINGS_HUB) {\n // URL-first: navigate() short-circuits SETTINGS_HUB content to a route\n // navigation, and `useSettingsHubRouterSync` reconstructs the hub in the\n // overlay. Every settings entry point converges on this one path.\n navigate({\n content: {\n contentType: NavigationContentType.SETTINGS_HUB,\n sectionRef: target.sectionRef,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: target.urlPath,\n });\n } else if (target.componentRef) {\n navigate({\n content: {\n contentType: NavigationContentType.CUSTOM_COMPONENT,\n componentRef: target.componentRef,\n contextResourceIdentifiers: target.contextResourceIdentifiers,\n },\n initiator: NavigationUtils.createAppLevelInitiator(launcher),\n urlPath: target.urlPath,\n });\n } else {\n logDebug('Cannot dispatch navigation for resolved target — no resolved resource/view/page payload', { target });\n }\n }\n\n /**\n * Build navigation content from resolved view fields.\n * Mirrors `buildNavigationContentForViewItem` but operates on loose fields\n * from `ResolvedNavigationTarget` instead of `ViewNavigationItem`.\n */\n static buildNavigationContentForResolvedView(\n viewRef: string,\n contentType: NavigationContentType,\n fullCustomComponentRef?: string,\n flowsActorsSystemRef?: string,\n contextResourceIdentifiers?: Record<string, string>,\n urlParamValues?: Record<string, string>,\n requiredFeatures?: RequiredFeaturesConfig,\n ): NavigationContent {\n switch (contentType) {\n case NavigationContentType.COMPOSITE_VIEW:\n return {\n contentType: NavigationContentType.COMPOSITE_VIEW,\n viewRef,\n contextResourceIdentifiers,\n };\n case NavigationContentType.CHART_VIEW:\n return {\n contentType: NavigationContentType.CHART_VIEW,\n viewRef,\n contextResourceIdentifiers,\n urlParamValues,\n requiredFeatures,\n };\n case NavigationContentType.EXECUTION_VIEW:\n return {\n contentType: NavigationContentType.EXECUTION_VIEW,\n viewRef,\n contextResourceIdentifiers,\n };\n case NavigationContentType.FULL_CUSTOM_VIEW:\n return {\n contentType: NavigationContentType.FULL_CUSTOM_VIEW,\n viewRef,\n fullCustomComponentRef: fullCustomComponentRef ?? '',\n contextResourceIdentifiers,\n };\n case NavigationContentType.FLOWS_ACTORS_VIEW:\n return {\n contentType: NavigationContentType.FLOWS_ACTORS_VIEW,\n viewRef,\n flowsActorsSystemRef: flowsActorsSystemRef ?? '',\n contextResourceIdentifiers,\n };\n default:\n throw new Error(`Unknown view content type: ${contentType}`);\n }\n }\n\n /**\n * Create initiator context for operation-related navigation (from within a structural zone).\n */\n static createOperationInitiator(\n sourceZone?: NavigationZone | string,\n sourceOperation?: string\n ): NavigationInitiatorContext {\n return {\n sourceZone: (sourceZone as NavigationZone) ?? NavigationZone.PRIMARY,\n ...(sourceOperation ? { sourceOperation: sourceOperation as CoreResourceOperation } : {}),\n };\n }\n\n /**\n * Create initial empty zone state\n */\n static createEmptyZoneState(zone: NavigationZoneName): NavigationZoneState {\n return {\n zone,\n stack: [],\n isVisible: zone === NavigationZoneName.PRIMARY,\n };\n }\n\n /**\n * Create initial navigation state.\n *\n * v3 shape: `{ zones: { primary, secondary, companion }, overlay: [] }`\n * — Dialog, sheet, and drawer appearances share a single `overlay` stack.\n * — Former THIRD zone is now COMPANION.\n */\n static createInitialNavigationState(): NavigationState {\n return {\n zones: {\n [NavigationZoneName.PRIMARY]: NavigationUtils.createEmptyZoneState(NavigationZoneName.PRIMARY),\n [NavigationZoneName.SECONDARY]: NavigationUtils.createEmptyZoneState(NavigationZoneName.SECONDARY),\n [NavigationZoneName.COMPANION]: NavigationUtils.createEmptyZoneState(NavigationZoneName.COMPANION),\n },\n overlay: [],\n };\n }\n\n /**\n * Get the current depth of a zone's stack\n */\n static getZoneDepth(state: NavigationZoneState | undefined): number {\n return state?.stack.length ?? 0;\n }\n\n /**\n * Get the top entry of a zone's stack (current content)\n */\n static getTopEntry(state: NavigationZoneState): NavigationStackEntry | undefined {\n return state.stack[state.stack.length - 1];\n }\n\n\n /**\n * Calculate the resource relationship depth from parentResourcesRequirements.\n * \n * This is the correct depth metric for navigation policy resolution:\n * - Root resource (no parents) → depth 0\n * - First-level child (1 parent) → depth 1\n * - Grandchild (2 parents) → depth 2\n * \n * Unlike viewDepth (stack-based), this reflects the actual resource hierarchy\n * depth, which is what the navigation policy's depth matrix cares about.\n * \n * @param parentResourcesRequirements - Array of parent resource requirements\n * @returns The resource relationship depth (0 = root, 1 = child, 2 = grandchild, etc.)\n */\n static calculateResourceRelationshipDepth(\n parentResourcesRequirements?: unknown[] | null\n ): number {\n return parentResourcesRequirements?.length ?? 0;\n }\n\n /**\n * Resolve the structural zone that should own a routed resource entry based on\n * its relationship depth and the zones available in the current layout.\n *\n * This is shared by URL-sync restoration and AppRouter's routed page wrapper so\n * the page props and the live navigation stack cannot disagree about whether a\n * deep-linked resource belongs to PRIMARY, SECONDARY, or COMPANION.\n */\n /** Does the layout resolve this operation to a SPLIT out of PRIMARY? (#203) */\n static layoutSplitsOperationFromPrimary(\n layout: { zones?: { primary?: { transitions?: Record<string, unknown> } } } | undefined,\n operation: FrontendResourceConfiguration_Operation,\n ): boolean {\n if (operation.isBulkOperation === true) return false;\n const semantic = resolveEffectiveCoreOperationFromOperation(operation);\n if (!semantic) return false;\n const transition = layout?.zones?.primary?.transitions?.[semantic] as\n | NavigationTransition | { transition?: NavigationTransition } | undefined;\n const verb = typeof transition === 'string' ? transition : transition?.transition;\n return verb === NavigationTransition.SPLIT;\n }\n\n static resolveResourceTargetZone(\n depth: number,\n options?: {\n hasSecondary?: boolean;\n hasCompanion?: boolean;\n /** Flat detail: depth 0, but the layout splits this operation out of primary (#203). */\n prefersAdjacentZoneForDetail?: boolean;\n }\n ): NavigationZoneName {\n const hasSecondary = !!options?.hasSecondary;\n const hasCompanion = !!options?.hasCompanion;\n\n let targetZone: NavigationZoneName = depth >= 2\n ? NavigationZoneName.COMPANION\n : depth === 1\n ? NavigationZoneName.SECONDARY\n : options?.prefersAdjacentZoneForDetail\n ? NavigationZoneName.SECONDARY\n : NavigationZoneName.PRIMARY;\n\n if (!hasCompanion && targetZone === NavigationZoneName.COMPANION) {\n targetZone = hasSecondary ? NavigationZoneName.SECONDARY : NavigationZoneName.PRIMARY;\n } else if (!hasSecondary && targetZone === NavigationZoneName.SECONDARY) {\n targetZone = NavigationZoneName.PRIMARY;\n }\n\n return targetZone;\n }\n\n /**\n * Generate a unique stack entry ID\n */\n static generateStackEntryId(): string {\n return `nav-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n }\n\n /**\n * Check if content is a resource operation\n */\n static isResourceOperationContent(content: NavigationContent): content is NavigationContent & { contentType: NavigationContentType.RESOURCE_OPERATION } {\n return content.contentType === NavigationContentType.RESOURCE_OPERATION;\n }\n\n /**\n * Resolve the URL for a resource operation given candidate context identifiers.\n * \n * This is the unified URL resolution pipeline, centralizing the logic that was\n * previously duplicated across useNavigationController, NavigationContext, and useRouterSync.\n * \n * Steps:\n * 1. Build all possible route paths for the operation\n * 2. Select the best matching route path based on available context\n * 3. Convert resourceType keys to fieldIdentifier keys\n * 4. Ensure FK-prefixed placeholders resolve correctly\n * 5. Resolve :placeholder patterns with actual values\n * \n * @param resourceConfig - The frontend resource configuration\n * @param operation - The operation configuration\n * @param candidateContextIdentifiers - Normalized context identifiers (resourceType → id)\n * @param allResourceFieldIdentifiers - Registry mapping resourceType → fieldIdentifier\n * @param parentResourcesRequirements - Optional parent resource requirements for route selection\n * @returns Resolved URL info, or undefined if resolution fails\n */\n static resolveResourceUrl(\n resourceConfig: AnyFrontendResourceConfiguration,\n operation: FrontendResourceConfiguration_Operation,\n candidateContextIdentifiers: Record<string, string>,\n allResourceFieldIdentifiers: Record<string, string>,\n parentResourcesRequirements?: unknown[],\n ): {\n resolvedUrl: string | undefined;\n templateUrl: string;\n routePathParameters: ResourceConfiguration_Operation_UrlParameterInfo[];\n } | undefined {\n try {\n logDebug('resolveResourceUrl()', { resourceIdentifier: resourceConfig.resourceIdentifier, operationIdentifier: (operation as any).operationIdentifier, candidateKeys: Object.keys(candidateContextIdentifiers) });\n const routePaths = ResourcesConfigOperationsUrlsBuilderUtils.buildOperationFrontendRoutePaths(\n resourceConfig as any,\n operation as any,\n allResourceFieldIdentifiers\n );\n if (!routePaths || routePaths.length === 0) {\n return undefined;\n }\n\n const selected = frontendResourceUtils.selectMatchingRoutePath(\n routePaths,\n candidateContextIdentifiers,\n resourceConfig.resourceIdentifier,\n resourceConfig.resourceFieldIdentifier,\n parentResourcesRequirements as any,\n allResourceFieldIdentifiers\n );\n\n const templateUrl = selected.url;\n const routePathParameters = (selected.parameters ?? []) as ResourceConfiguration_Operation_UrlParameterInfo[];\n\n // Convert resourceType keys to fieldIdentifier keys for URL substitution\n const urlParameters = NavigationUtils.convertToFieldIdentifierKeys(\n candidateContextIdentifiers,\n allResourceFieldIdentifiers\n );\n\n // Ensure FK-prefixed placeholders (e.g. :assignedToUserId) resolve correctly:\n // routePathParameters provide the exact placeholder fieldIdentifier to use.\n // Prefer exact FK-keyed context entries when available (self-ref / multi-parent\n // routes), then fall back to the broader resourceType key.\n for (const p of routePathParameters) {\n const v = candidateContextIdentifiers[p.fieldIdentifier] ?? candidateContextIdentifiers[p.resourceType];\n if (v) {\n (urlParameters as any)[p.fieldIdentifier] = v;\n }\n }\n\n let resolvedUrl = NavigationUtils.resolveUrlPath(templateUrl, urlParameters);\n\n // Guard: if unresolved placeholders remain, log warning and nullify the resolved URL\n // The caller will fall back to not updating the browser URL (navigation) or aborting (forms)\n if (resolvedUrl && NavigationUtils.hasUnresolvedPlaceholders(resolvedUrl)) {\n logDebug('resolveResourceUrl() WARNING: unresolved placeholders in URL', { templateUrl, resolvedUrl });\n resolvedUrl = undefined;\n } else {\n logDebug('resolveResourceUrl() resolved', { templateUrl, resolvedUrl });\n }\n\n return { resolvedUrl, templateUrl, routePathParameters };\n } catch (err) {\n logDebug('resolveResourceUrl() failed', { error: String(err) });\n return undefined;\n }\n }\n\n /**\n * Resolve an operationRef string (e.g., \"TASKS.LIST.default\") into a full\n * NavigationContent_ResourceOperation by looking up the operation in the registry.\n * \n * This is the resolution step for **unresolved operation refs** — a lightweight\n * navigation input format where the emitter only knows a ref string, not a full\n * NavigationContent payload.\n * \n * **Consumers:**\n * - NAVIGATION_REQUEST event listener (in useNavigationController): resolves\n * `payload.operationRef` before entering the navigation pipeline. Used by\n * emitters that sit above ResourceRegistryProvider (e.g., NotificationProvider).\n * - RouterErrorBoundary: calls this directly to resolve error guidance nextAction\n * refs, since NavigationProvider is destroyed in the error boundary context.\n * \n * @param operationRef Dot-separated ref, e.g., \"TASKS.LIST.default\" or \"TASKS.LIST\"\n * @param additionalIdentifiers Optional context identifiers (orgId, resourceId, etc.)\n * @param registry The frontend resource registry for operation lookup\n * @returns Resolved NavigationContent_ResourceOperation, or undefined if lookup fails\n */\n static resolveOperationRef(\n operationRef: string,\n additionalIdentifiers: Record<string, string> | undefined,\n registry: FrontendResourcesRegistry,\n ): NavigationContent | undefined {\n const parts = operationRef.split('.');\n if (parts.length < 2) {\n logDebug('resolveOperationRef() failed: invalid ref format', { operationRef });\n return undefined;\n }\n const [resourceType, operationId, operationVariantRef] = parts;\n\n const resourceConfig = registry.resourceConfigurations[resourceType] as AnyFrontendResourceConfiguration | undefined;\n if (!resourceConfig) {\n logDebug('resolveOperationRef() failed: resource not found', { resourceType });\n return undefined;\n }\n const matchingOperations = (resourceConfig.operations as FrontendResourceConfiguration_Operation[]).filter(\n (op: FrontendResourceConfiguration_Operation) => String(op.operationIdentifier) === operationId\n );\n const defaultOperations = matchingOperations.filter((op) =>\n op.isOperationDefault\n && op.isBulkOperation !== true\n );\n if ((operationVariantRef === 'default' || operationVariantRef === undefined) && defaultOperations.length > 1) {\n logDebug('resolveOperationRef() failed: ambiguous default operation variants', {\n resourceType,\n operationId,\n operationVariantRef,\n candidateVariants: defaultOperations.map((op) => ({\n variantType: op.variantType,\n variantKey: op.variantKey,\n })),\n });\n return undefined;\n }\n const operation = operationVariantRef === 'default'\n ? defaultOperations.length === 1\n ? defaultOperations[0]\n : undefined\n : operationVariantRef\n ? matchingOperations.find((op) => op.variantKey === operationVariantRef)\n : defaultOperations.length === 1\n ? defaultOperations[0]\n : matchingOperations.length === 1\n ? matchingOperations[0]\n : undefined;\n if (!operation) {\n logDebug('resolveOperationRef() failed: operation not found', { resourceType, operationId, operationVariantRef });\n return undefined;\n }\n\n logDebug('resolveOperationRef() resolved', { operationRef, resourceType, operationId, operationVariantRef });\n const parentResourcesRequirements = additionalIdentifiers\n ? frontendResourceUtils.buildParentResourcesRequirements(\n resourceType as any,\n additionalIdentifiers,\n registry,\n )\n : [];\n\n return {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType: resourceType as any,\n operation,\n contextResourceIdentifiers: additionalIdentifiers ?? {},\n parentResourcesRequirements,\n }),\n } as NavigationContent;\n }\n\n /**\n * Build NavigationContent from a ViewNavigationItem.\n * \n * Centralizes the viewType → NavigationContent conversion that was previously\n * duplicated across every preset component's click handler.\n */\n static buildNavigationContentForViewItem(item: ViewNavigationItem): NavigationContent {\n const contentType = item.contentType as NavigationContentType;\n switch (contentType) {\n case NavigationContentType.COMPOSITE_VIEW:\n return {\n contentType: NavigationContentType.COMPOSITE_VIEW,\n viewRef: item.viewRef,\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n };\n\n case NavigationContentType.CHART_VIEW:\n return {\n contentType: NavigationContentType.CHART_VIEW,\n viewRef: item.viewRef,\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n urlParamValues: item.urlParamValues,\n requiredFeatures: item.requiredFeatures,\n };\n\n case NavigationContentType.EXECUTION_VIEW:\n return {\n contentType: NavigationContentType.EXECUTION_VIEW,\n viewRef: item.viewRef,\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n };\n\n case NavigationContentType.FULL_CUSTOM_VIEW:\n return {\n contentType: NavigationContentType.FULL_CUSTOM_VIEW,\n viewRef: item.viewRef,\n fullCustomComponentRef: item.fullCustomComponentRef ?? '',\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n };\n\n case NavigationContentType.FLOWS_ACTORS_VIEW:\n return {\n contentType: NavigationContentType.FLOWS_ACTORS_VIEW,\n viewRef: item.viewRef,\n flowsActorsSystemRef: item.flowsActorsSystemRef ?? '',\n contextResourceIdentifiers: item.contextResourceIdentifiers,\n };\n\n default:\n throw new Error(`Unknown view content type: ${contentType}`);\n }\n }\n\n // ================================\n // Cascading Utilities\n // ================================\n\n /**\n * Find the relationship between two resource types in the registry.\n * \n * Searches the global `resourceRelationships` array for a match where:\n * - resourceType1 = parentType, resourceType2 = childType\n * - Optionally filtered by foreignKeyField for disambiguation\n * \n * @param parentType - The parent resource type (resourceType1 side)\n * @param childType - The child resource type (resourceType2 side)\n * @param registry - The frontend resources registry\n * @param foreignKeyField - Optional FK field for disambiguation when multiple relationships exist\n * @returns The matching ResourceRelationship, or undefined\n */\n static findRelationshipBetween(\n parentType: string,\n childType: string,\n registry: FrontendResourcesRegistry,\n foreignKeyField?: string,\n ): ResourceRelationship | undefined {\n return registry.resourceRelationships.find(rel =>\n rel.resourceType1 === parentType &&\n rel.resourceType2 === childType &&\n !rel.isDisabled &&\n (\n foreignKeyField === undefined ||\n Resources_SharedUtils.tryResolveRelationshipForeignKeyIdentity(\n rel,\n registry.allResourceFieldIdentifiers,\n )?.fieldIdentifier === foreignKeyField\n )\n );\n }\n\n /**\n * Determine the default ancestor operation based on relationship cardinality.\n * \n * Cardinality semantics:\n * - 1:N (parent ONE → child MANY): ancestor shows LIST (list of children / siblings)\n * - 1:1 (parent ONE → child ONE): ancestor shows READ (parent detail)\n * - N:1 (reversed perspective): ancestor shows READ (parent detail)\n * - M:N (junction): ancestor shows LIST (related items)\n * \n * @param relationship - The resource relationship\n * @returns The default CoreResourceOperation for the ancestor zone\n */\n static deriveDefaultAncestorOperation(\n relationship: ResourceRelationship,\n ): CoreResourceOperation {\n const { cardinality1, cardinality2 } = relationship;\n\n const isParentOne = cardinality1 === ResourceRelationshipCardinality.ONE\n || cardinality1 === ResourceRelationshipCardinality.ZERO_OR_ONE;\n const isChildOne = cardinality2 === ResourceRelationshipCardinality.ONE\n || cardinality2 === ResourceRelationshipCardinality.ZERO_OR_ONE;\n\n // Self-referencing: use the relationship-owned navigation direction to disambiguate\n // which side is \"parent\" vs \"child\" for the ancestor zone operation.\n // Without this, the engine can't distinguish forward (parent→child = LIST)\n // from backward (child→parent = READ) since both types are the same.\n if (relationship.resourceType1 === relationship.resourceType2) {\n const navigationConfig: RelationshipDisplayInParentNavigation | undefined = relationship.display?.inParentNavigation;\n if (navigationConfig?.direction === CascadeDirection.BACKWARD) return CoreResourceOperation.READ;\n return CoreResourceOperation.LIST;\n }\n\n // 1:1 → READ parent detail\n if (isParentOne && isChildOne) {\n return CoreResourceOperation.READ;\n }\n\n // 1:N (parent=ONE, child=MANY) → LIST (show siblings in parent context)\n if (isParentOne) {\n return CoreResourceOperation.LIST;\n }\n\n // N:1 reversed → READ parent\n if (isChildOne) {\n return CoreResourceOperation.READ;\n }\n\n // M:N → LIST\n return CoreResourceOperation.LIST;\n }\n\n /**\n * Resolve the ancestor operation for a given relationship.\n * \n * Resolution order:\n * 1. Explicit `ancestorOperation` override from display.inParentNavigation → use directly\n * 2. Cardinality-based default (deriveDefaultAncestorOperation)\n * 3. Fallback: swap LIST ↔ READ if default is not available\n * 4. null if no suitable operation exists\n * \n * @param relationship - The resource relationship between ancestor and descendant\n * @param ancestorConfig - The ancestor resource's frontend configuration\n * @returns The resolved CoreResourceOperation, or null if no suitable operation\n */\n static resolveAncestorOperation(\n relationship: ResourceRelationship | undefined,\n ancestorConfig: AnyFrontendResourceConfiguration,\n ): CoreResourceOperation | null {\n const operation = NavigationUtils.resolveAncestorOperationConfig(relationship, ancestorConfig);\n return operation\n ? (resolveEffectiveCoreOperationFromOperation(operation) ?? null)\n : null;\n }\n\n static resolveAncestorOperationConfig(\n relationship: ResourceRelationship | undefined,\n ancestorConfig: AnyFrontendResourceConfiguration,\n runtimeContext?: {\n registry: FrontendResourcesRegistry;\n contextResourceIdentifiers: FrontendResourceOperationContext['contextResourceIdentifiers'];\n contextualParameters: Record<string, string | number>;\n },\n ): FrontendResourceConfiguration_Operation | null {\n const directOperations = (ancestorConfig.operations ?? []) as FrontendResourceConfiguration_Operation[];\n const legacyOperations = !ancestorConfig.operations && (ancestorConfig as any).operationsConfiguration\n ? Object.entries((ancestorConfig as any).operationsConfiguration).map(([operationIdentifier, operation]) => ({\n ...(operation as Record<string, unknown>),\n operationIdentifier,\n })) as FrontendResourceConfiguration_Operation[]\n : [];\n const operations = directOperations.length > 0 ? directOperations : legacyOperations;\n if (operations.length === 0) return null;\n\n const findOp = (op: CoreResourceOperation): FrontendResourceConfiguration_Operation | undefined => {\n const needsRuntimeAddressability = op === CoreResourceOperation.READ\n || op === CoreResourceOperation.UPDATE\n || op === CoreResourceOperation.DELETE;\n if (runtimeContext && needsRuntimeAddressability) {\n return pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig: ancestorConfig,\n operations,\n coreOperation: op,\n registry: runtimeContext.registry,\n hasResourceId: frontendResourceUtils.getResourceId(\n runtimeContext.contextResourceIdentifiers[ancestorConfig.resourceIdentifier],\n ).length > 0,\n requireFrontendAddressable: true,\n contextResourceIdentifiers: runtimeContext.contextResourceIdentifiers,\n contextualParameters: runtimeContext.contextualParameters,\n });\n }\n\n return pickPreferredOperationForCoreSemantic(operations, op, { requireAddressable: true });\n };\n\n // 1. Explicit override from display.inParentNavigation.ancestorOperation.\n // This allows relationship config to force a specific operation (LIST or READ)\n // for the ancestor zone, overriding the cardinality-based default.\n if (relationship) {\n const navigationConfig: RelationshipDisplayInParentNavigation | undefined = relationship.display?.inParentNavigation;\n const ancestorOp = navigationConfig?.ancestorOperation;\n if (ancestorOp) {\n const explicitOperation = findOp(ancestorOp);\n if (explicitOperation) {\n return explicitOperation;\n }\n }\n }\n\n // 2. Cardinality-based default\n const defaultOp = relationship\n ? NavigationUtils.deriveDefaultAncestorOperation(relationship)\n : CoreResourceOperation.LIST;\n\n const defaultOperation = findOp(defaultOp);\n if (defaultOperation) return defaultOperation;\n\n // 3. Fallback: swap LIST ↔ READ\n const fallbackOp = defaultOp === CoreResourceOperation.LIST\n ? CoreResourceOperation.READ\n : CoreResourceOperation.LIST;\n\n const fallbackOperation = findOp(fallbackOp);\n if (fallbackOperation) return fallbackOperation;\n\n // 4. No suitable operation\n return null;\n }\n\n /**\n * Check if secondary/companion zone content is relevant to the current PRIMARY top entry.\n * \n * Content is considered \"stale\" (irrelevant) when:\n * - It's a resource operation whose parentResourcesRequirements no longer match\n * the PRIMARY zone's parent resource type and id\n * - It's a view (composite/chart) — always stale on PRIMARY change\n * \n * @param dependentContent - Content in SECONDARY or COMPANION zone\n * @param primaryContent - Current top content in PRIMARY zone\n * @returns true if the dependent content is still relevant to the primary\n */\n /**\n * Does this operation address a COLLECTION rather than one record?\n *\n * LIST and SEARCH both do. Used to recognise the list-detail pairing, where the collection is the\n * context its own detail belongs beside — not a parent, which is why the parent-requirement rule\n * cannot answer it.\n */\n static isCollectionOperationContext(\n resourceContext: { operation?: FrontendResourceConfiguration_Operation },\n ): boolean {\n const operation = resourceContext.operation;\n if (!operation) return false;\n const semantic = resolveEffectiveCoreOperationFromOperation(operation);\n return semantic === CoreResourceOperation.LIST || semantic === CoreResourceOperation.SEARCH;\n }\n\n static isContentRelevantToParent(\n dependentContent: NavigationContent,\n primaryContent: NavigationContent,\n ): boolean {\n // Views are not relationship-aware → always stale on PRIMARY change\n if (dependentContent.contentType !== NavigationContentType.RESOURCE_OPERATION) {\n return false;\n }\n\n // Primary is not a resource operation → dependent is stale\n if (primaryContent.contentType !== NavigationContentType.RESOURCE_OPERATION) {\n return false;\n }\n\n const primaryResourceType = primaryContent.resourceContext.resourceType;\n const primaryResourceId = frontendResourceUtils.getPrimaryResourceIdentifier(\n primaryContent.resourceContext,\n );\n /*\n * SAME-RESOURCE LIST → DETAIL is relevant, and it is checked BEFORE the parent-requirement rule\n * below because that rule cannot see it (#203).\n *\n * A flat resource's detail has no parent requirements — it is a root resource — so the rule below\n * calls it \"not dependent on PRIMARY\" and the zone-dependency cleanup clears it. The premise is\n * true and the conclusion does not follow: a detail sitting beside its OWN collection is not\n * stale, it is the entire list-detail pattern. `NAVIGATION_LAYOUT_SPLIT` exists to produce exactly\n * this pairing.\n *\n * It never surfaced on the CLICK path, because there primary keeps the list and its top entry\n * never changes, so the cleanup does not run. It surfaces on URL restoration, where primary goes\n * from empty to the list and that counts as a change — the detail was then cleared one tick after\n * being placed, with no CLEAR_ZONE event to find it by, because this cleanup calls\n * `clearZoneEntries` directly rather than through the bus.\n */\n if (primaryContent.resourceContext.resourceType === dependentContent.resourceContext.resourceType\n && NavigationUtils.isCollectionOperationContext(primaryContent.resourceContext)) {\n return true;\n }\n\n const parentReqs = dependentContent.resourceContext.parentResourcesRequirements;\n\n // If dependent has no parent requirements → it's a root resource, not dependent on PRIMARY\n if (!parentReqs || (parentReqs as unknown[]).length === 0) {\n return false;\n }\n\n return parentReqs.some((requirement) => {\n if (requirement.resourceType !== primaryResourceType) {\n return false;\n }\n\n if (!primaryResourceId) {\n return false;\n }\n\n const requirementContextKey = requirement.foreignKeyField ?? requirement.resourceType;\n const expectedParentId = NavigationUtils.resolveContextIdentifierValue(\n dependentContent.resourceContext,\n requirementContextKey,\n ) ?? NavigationUtils.resolveContextIdentifierValue(\n dependentContent.resourceContext,\n requirement.resourceType,\n );\n\n if (!expectedParentId) {\n return false;\n }\n\n return expectedParentId === primaryResourceId;\n });\n }\n\n\n // =========================================================================\n // RELATIONSHIP DISPLAY UTILITIES\n // =========================================================================\n\n /**\n * Determine whether a parent reference should be shown in a child resource view.\n * \n * Uses navigation context, inline rendering state, and relationship config\n * to decide if showing a parent link/badge is appropriate or redundant.\n * \n * @param inlineParentContext - Set by ContainerNested when rendering inline children\n * @param navigationZone - Which zone the child is rendered in\n * @param navigationInitiator - How the child was navigated to (source, relationship info)\n * @param getZoneState - Function to check another zone's current state (for staleness detection)\n *\n */\n static shouldShowParentReference(\n inlineParentContext: InlineParentContext | undefined,\n navigationZone: NavigationZone | string,\n navigationInitiator: NavigationInitiatorContext | undefined,\n getZoneState?: (zone: NavigationZoneName) => NavigationZoneState | undefined,\n ): boolean {\n // 1. Inline rendering — parent is visible above, never show\n if (inlineParentContext) return false;\n\n // 2. Overlay — parent is visible behind overlay, never show\n if (navigationZone === NavigationZone.OVERLAY) return false;\n\n // 3. Check explicit inChildView config from relationship\n const inChildView = navigationInitiator?.sourceRelationship?.inChildView;\n if ((inChildView as any)?.parentDisplay === ParentDisplay.NONE) return false;\n\n // 4. Multi-zone — if source zone is different, check if parent is STILL visible there\n const sourceZone = navigationInitiator?.sourceZone;\n if (sourceZone && sourceZone !== navigationZone && getZoneState) {\n const sourceZoneState = getZoneState(sourceZone as NavigationZoneName);\n const topEntry = sourceZoneState?.stack?.[sourceZoneState.stack.length - 1];\n\n if (topEntry?.content && 'resourceContext' in topEntry.content) {\n const topResourceContext = (topEntry.content as any).resourceContext as FrontendResourceOperationContext | undefined;\n const topResourceType = topResourceContext?.resourceType;\n const topResourceId = topResourceContext\n ? frontendResourceUtils.getPrimaryResourceIdentifier(topResourceContext)\n : undefined;\n const sourceRelationship = navigationInitiator?.sourceRelationship;\n\n if (\n topResourceType === sourceRelationship?.parentResourceType &&\n (\n !sourceRelationship.parentResourceId ||\n sourceRelationship.parentResourceId === topResourceId\n )\n ) {\n return false;\n }\n }\n }\n\n // 5. No initiator (direct URL), same-zone PUSH/REPLACE, or stale source zone — show reference\n return true;\n }\n\n /**\n * Resolve the default `showParentLink` value for a relationship when \n * `display.inChildView.showParentLink` is not explicitly configured.\n * \n * Rule: `true` for required FK fields (the parent is integral to the child),\n * `false` for optional FK fields (the parent is an optional association).\n * \n * @param schema - The child resource schema\n * @param fkFieldName - The foreign key field name on the child\n */\n static resolveDefaultShowParentLink(\n schema: z.ZodTypeAny,\n fkFieldName: string,\n ): boolean {\n try {\n // Check if the schema is an object type with the FK field\n const shape = (schema as any)?._def?.shape?.();\n if (!shape || !shape[fkFieldName]) return true; // Default to showing\n \n const fieldSchema = shape[fkFieldName];\n // Check if the field is optional (has ZodOptional wrapper)\n const isOptional = fieldSchema?._def?.typeName === 'ZodOptional' \n || fieldSchema?.isOptional?.() === true;\n \n return !isOptional;\n } catch {\n // If schema introspection fails, default to showing\n return true;\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primary-destination-layout.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"primary-destination-layout.d.ts","sourceRoot":"","sources":["../../../../src/core/navigation/primary-destination-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,qGAAqG;AACrG,MAAM,WAAW,mCAAmC;IAClD,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,iEAAiE;IACjE,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GACjC;IACA,WAAW,EAAE,qBAAqB,CAAC,kBAAkB,CAAC;IACtD,eAAe,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE;YAAE,uBAAuB,CAAC,EAAE,mCAAmC,CAAA;SAAE,CAAA;KAAE,CAAC;CACrG,GACC;IAAE,WAAW,EAAE,qBAAqB,CAAC,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,WAAW,EAAE,OAAO,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,kBAAkB,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAA;CAAE,CAAC;AAErI,6EAA6E;AAC7E,MAAM,MAAM,+BAA+B,GAAG,mCAAmC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpG;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oCAAoC,CAAC,MAAM,EAAE;IAC3D,cAAc,EAAE,yBAAyB,GAAG,SAAS,CAAC;IACtD,cAAc,EAAE,SAAS,+BAA+B,EAAE,GAAG,SAAS,CAAC;CACxE,GAAG,OAAO,CAWV;AAED;;;;;;;GAOG;AACH,wBAAgB,0CAA0C,CAAC,MAAM,EAAE;IACjE,cAAc,EAAE,yBAAyB,GAAG,SAAS,CAAC;IACtD,cAAc,EAAE,SAAS,+BAA+B,EAAE,GAAG,SAAS,CAAC;CACxE,GAAG,mCAAmC,GAAG,SAAS,CAelD"}
|