@wildo-ai/saas-frontend-lib 1.1.6 → 1.1.7
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/diff-block.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/diff-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/unified-diff.utils.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/unified-diff.utils.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.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_ConsentGate.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_ConsentGate.js.map +1 -1
- package/dist/esm/components/app/AppLayout_ConsentGate.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_ConsentGate.labels.js.map +1 -1
- package/dist/esm/components/app/AppLayout_DocumentAcceptanceGate.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_DocumentAcceptanceGate.js.map +1 -1
- package/dist/esm/components/app/AppLayout_DocumentAcceptanceGate.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_DocumentAcceptanceGate.labels.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.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.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_Terms.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_OrganizationOnboarding.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OrganizationOnboarding.js.map +1 -1
- package/dist/esm/components/auth/Auth_OrganizationOnboarding.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OrganizationOnboarding.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/methods/auth-method-presentation.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/auth-method-presentation.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_OrganizationOnboarding.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OrganizationOnboarding.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_ReAuthenticationCallback.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_ReAuthenticationCallback.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/AuthMethodChoiceList.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/AuthMethodChoiceList.js.map +1 -1
- package/dist/esm/components/auth/utils/AuthMethodIcon.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/AuthMethodIcon.js.map +1 -1
- package/dist/esm/components/auth/utils/AuthSecondaryLink.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/AuthSecondaryLink.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/auth/utils/useMfaContinuationNavigation.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/useMfaContinuationNavigation.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-plan-change-preview.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-plan-change-preview.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/compliance/GovernedDocumentAcceptanceControl.d.ts.map +1 -1
- package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.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.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.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-tone.d.ts.map +1 -1
- package/dist/esm/components/data-display/badge-tone.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/duration.d.ts.map +1 -1
- package/dist/esm/components/data-display/duration.js.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-address.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-address.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/identifier.d.ts.map +1 -1
- package/dist/esm/components/data-display/identifier.js.map +1 -1
- package/dist/esm/components/data-display/kbd.d.ts.map +1 -1
- package/dist/esm/components/data-display/kbd.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/timeline.d.ts.map +1 -1
- package/dist/esm/components/data-display/timeline.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.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -1
- package/dist/esm/components/feedback/lazy-door-error-boundary.d.ts.map +1 -1
- package/dist/esm/components/feedback/lazy-door-error-boundary.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.map +1 -1
- 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.map +1 -1
- package/dist/esm/components/files/Files_UploadGrantDrop.js.map +1 -1
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.d.ts.map +1 -1
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.js.map +1 -1
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.d.ts.map +1 -1
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.js.map +1 -1
- 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-modification-refusal.utils.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
- 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.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.map +1 -1
- package/dist/esm/components/form/automated/AutomatedForm.d.ts.map +1 -1
- 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.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.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.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/TemplatePlacedFieldsContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.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.map +1 -1
- package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.js.map +1 -1
- 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/field-clearing-rule.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/field-clearing-rule.frontend.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-readiness.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/file-readiness.frontend.utils.js.map +1 -1
- package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/file-upload.js.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.frontend.utils.js.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.js.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
- package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input-group.js.map +1 -1
- package/dist/esm/components/form/controls/input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input.js.map +1 -1
- package/dist/esm/components/form/controls/number/slider.d.ts +1 -1
- package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
- package/dist/esm/components/form/controls/number/slider.js.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.js.map +1 -1
- package/dist/esm/components/form/controls/string/inline-edit-text.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/inline-edit-text.js.map +1 -1
- package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/input-otp.js.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.js.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.labels.js.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.js.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.js.map +1 -1
- package/dist/esm/components/form/feedback/RemoteChangeNotification.d.ts.map +1 -1
- package/dist/esm/components/form/feedback/RemoteChangeNotification.js.map +1 -1
- package/dist/esm/components/form/fields/accepted-file-kinds-description.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/form/fields/accepted-file-kinds-description.frontend.utils.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.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.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.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.map +1 -1
- 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.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.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.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-organization-role.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string-organization-role.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.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-external-validation.d.ts.map +1 -1
- package/dist/esm/components/form/form-external-validation.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/resolver-error-nesting.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.js.map +1 -1
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.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/unstarted-field-visit.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/unstarted-field-visit.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/form/validation-errors/validate-field-url.frontend.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/validate-field-url.frontend.js.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.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.map +1 -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/sidebar-resource-browser-empty-label.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/sidebar-resource-browser-empty-label.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.map +1 -1
- 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.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.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.map +1 -1
- 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/CollectionSelectionHeaderRail.d.ts.map +1 -1
- package/dist/esm/components/resources/CollectionSelectionHeaderRail.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/ResourceCollectionFilterPresets.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.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.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.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/ResourceOperationActionDropdown.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionDropdown.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/ResourceOperationDetachedHost.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOperationDetachedHost.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-create-placement.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/collection-create-placement.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/DisplayDiscriminatorSwitch.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayDiscriminatorSwitch.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_AgentWorkOverrideRateSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.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.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
- 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.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/settings/useOwnerProviderConnections.d.ts.map +1 -1
- package/dist/esm/components/settings/useOwnerProviderConnections.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/chart-view/useResourceChartData.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/useResourceChartData.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.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/AppShellBuildingBlocks.d.ts +6 -3
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -1
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +7 -4
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.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.map +1 -1
- 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.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
- package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
- 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/useBillingPlanChange.d.ts.map +1 -1
- package/dist/esm/core/billing/useBillingPlanChange.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.map +1 -1
- 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.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.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.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/components-registry/register-framework-layouts.d.ts.map +1 -1
- package/dist/esm/core/components-registry/register-framework-layouts.js.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +14 -14
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/composite-view.schemas.d.ts +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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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-presentation.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js.map +1 -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.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.map +1 -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.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/view-label-declaration.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/view-label-declaration.schemas.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/ErrorModalContent.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorModalContent.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/useUserFacingErrorMessage.d.ts.map +1 -1
- package/dist/esm/core/errors/useUserFacingErrorMessage.js.map +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.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.map +1 -1
- 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.map +1 -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/ConsentBasedProviderSdks.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js.map +1 -1
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js.map +1 -1
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.js.map +1 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js.map +1 -1
- package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.js.map +1 -1
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -1
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -1
- package/dist/esm/core/features/FeatureGate.d.ts.map +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.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-gate-surface.example.d.ts.map +1 -1
- package/dist/esm/core/features/feature-gate-surface.example.js.map +1 -1
- package/dist/esm/core/features/feature-unavailability.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/features/feature-unavailability.frontend.utils.js.map +1 -1
- package/dist/esm/core/features/useFeatureAvailability.d.ts.map +1 -1
- 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.map +1 -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/flows-actors/usePendingDecisions.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -1
- package/dist/esm/core/guidance/GuidanceContext.d.ts.map +1 -1
- 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.map +1 -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.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.map +1 -1
- 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.map +1 -1
- 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/operation-title-resolution.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/operation-title-resolution.utils.js.map +1 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js.map +1 -1
- package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
- 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.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/AnalyticsScopeBridge.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsScopeBridge.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.map +1 -1
- package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
- 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.map +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-cascade.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-cascade.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-controller-internals.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
- 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/split-fit.d.ts.map +1 -1
- package/dist/esm/core/navigation/split-fit.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.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.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/useResponsiveZoneMigration.d.ts.map +1 -1
- package/dist/esm/core/navigation/useResponsiveZoneMigration.js.map +1 -1
- package/dist/esm/core/navigation/useSynchronousBrowserLocation.d.ts.map +1 -1
- package/dist/esm/core/navigation/useSynchronousBrowserLocation.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-collapse-migration.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-collapse-migration.js.map +1 -1
- package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-collapse.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-emphasis.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-emphasis.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.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.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.map +1 -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.map +1 -1
- 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/bulk-failure-grouping.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/bulk-failure-grouping.frontend.utils.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/collection-filter-presets.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/collection-filter-presets.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-label-field-paths.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-label-field-paths.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/mutation-error-report.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/mutation-error-report.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/useBulkJobProgress.d.ts.map +1 -1
- package/dist/esm/core/resources/useBulkJobProgress.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/useOperationDirectExecution.d.ts.map +1 -1
- package/dist/esm/core/resources/useOperationDirectExecution.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.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/useResourceOperationOutcomeEmitter.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.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.map +1 -1
- 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.map +1 -1
- package/dist/esm/core/runtime/StartupFailureScreen.d.ts.map +1 -1
- package/dist/esm/core/runtime/StartupFailureScreen.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.map +1 -1
- 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.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
- package/dist/esm/core/runtime/startup-failure-copy.frontend.d.ts.map +1 -1
- package/dist/esm/core/runtime/startup-failure-copy.frontend.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.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/consent-gate.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/consent-gate.frontend.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/federated-reauthentication.frontend.d.ts.map +1 -1
- package/dist/esm/core/security/federated-reauthentication.frontend.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/organization-onboarding.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/organization-onboarding.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/pending-mfa-session-storage.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/pending-mfa-session-storage.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/registration-outcome.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/registration-outcome.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/route-organization-access.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/useConsentGateBehavior.d.ts.map +1 -1
- package/dist/esm/core/security/useConsentGateBehavior.js.map +1 -1
- package/dist/esm/core/security/useDocumentAcceptanceGateBehavior.d.ts.map +1 -1
- package/dist/esm/core/security/useDocumentAcceptanceGateBehavior.js.map +1 -1
- package/dist/esm/core/security/useGrantedConsentPurposes.d.ts.map +1 -1
- package/dist/esm/core/security/useGrantedConsentPurposes.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/useRouteOrganizationAccess.d.ts.map +1 -1
- package/dist/esm/core/security/useRouteOrganizationAccess.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/SurfaceErrorBoundary.labels.d.ts.map +1 -1
- package/dist/esm/core/ui/SurfaceErrorBoundary.labels.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.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.map +1 -1
- 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/app-shell-placement-coverage.d.ts.map +1 -1
- package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -1
- package/dist/esm/testing/mock-builders.d.ts.map +1 -1
- 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 -0
- package/package.json +6 -6
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts +0 -0
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +0 -0
- package/dist/esm/core/navigation/useIsStackEntryActive.js.map +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketEventBridge.js","sourceRoot":"","sources":["../../../../../../src/core/requests/websockets/WebSocketEventBridge.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo } from 'react';\nimport { useWebSocket } from './useWebSocket';\nimport { publishNotificationBadgeCount } from './useNotificationBadges';\nimport { useEventBus } from '~wildo-frontend-lib/core/events/useEventBus';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { WebSocketResourceValidationService } from './websocket-resource-validation.frontend.service';\nimport { \n FrontendEvents, \n FrontendEventResourceOperation, \n FrontendEventBadgeCountChanged,\n FrontendEventResourceEditing,\n FrontendEventResourceCustom,\n FrontendEventNotifyCustom,\n type FrontendEvent_AnalyticsMomentAchieved,\n type FrontendEvent_MilestoneAchieved,\n type FrontendEvent_ProgressionUpdated,\n type FrontendEvent_LifecycleStageChanged,\n} from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport {\n AnalyticsTriggerSource,\n CoreResourceOperation,\n CoreWebSocketEvent,\n WS_ResourceDeletedPayload,\n WS_ResourceNotificationPayload,\n WS_ResourceUpdatedPayload,\n WS_BadgeUpdatePayload,\n WS_BulkJobProgressPayload,\n WS_ResourceEditingPayload,\n WS_ResourceCustomEventPayload,\n WS_UserNotificationPayload,\n WS_AnalyticsMomentAchievedPayload,\n NotificationLevel,\n ResourceAction,\n ResourceOperationVariantType,\n ResourcesConfig_OperationPathUtils,\n OnboardingStatus,\n WebSocketResourceDeliveryTarget,\n type WS_GuidanceStateChangedPayload,\n type WS_MilestoneAchievedPayload,\n type WS_ProgressionUpdatedPayload,\n type WS_LifecycleStageChangedPayload,\n} from '@wildo-ai/saas-models';\nimport { getOperationsForCoreSemantic } from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { frontendResourceUtils, FrontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { isFrontendOperationAddressableForCurrentContext } from '~wildo-frontend-lib/core/resources/resource-addressability.frontend.utils';\nimport { operationInitiatorParametersSatisfied } from '~wildo-frontend-lib/core/resources/operation-initiator-satisfaction.frontend.utils';\nimport {\n normalizeContextResourceIdentifiersForTransport,\n type ContextResourceIdentifiersInput,\n} from '~wildo-frontend-lib/core/resources/context-resource-identifiers.frontend.utils';\n\n/**\n * WebSocketEventBridge\n * \n * Bridges WebSocket events from the Socket.IO connection to the Frontend EventBus.\n * This component should be mounted once at the app root level, after both\n * WebSocketProvider and EventBusProvider.\n * \n * Events bridged:\n * - resource:notification → RESOURCE_REFRESH, NOTIFY_RESOURCE_*\n * - resource:updated → RESOURCE_REFRESH\n * - resource:deleted → RESOURCE_REFRESH\n * - badge:update → BADGE_COUNT_CHANGED\n * - bulk-job:progress → BULK_JOB_PROGRESS\n * - guidance:state-changed → GUIDANCE_FLOW_ACTIVATED/COMPLETED/DISMISSED\n * \n * Business logic components can then subscribe to EventBus events without\n * knowing the event source (HTTP response, WebSocket, or other).\n */\nexport const WebSocketEventBridge: React.FC = () => {\n const { on, isConnected } = useWebSocket();\n const eventBus = useEventBus();\n const { getResourcesRegistry } = useResourceRegistry();\n const registry = useMemo(() => getResourcesRegistry(), [getResourcesRegistry]);\n\n // Initialize the validation service used by websocket payloads that carry\n // resource-shaped data.\n const validationService = useMemo(() => {\n return new WebSocketResourceValidationService(registry);\n }, [registry]);\n\n useEffect(() => {\n if (!isConnected) {\n return;\n }\n\n // Helper: Map action to default notification level (fallback when notificationLevel not provided)\n const actionToNotificationLevel = (action: ResourceAction | string): NotificationLevel => {\n switch (action) {\n case ResourceAction.CREATED: return NotificationLevel.SUCCESS;\n case ResourceAction.UPDATED: return NotificationLevel.INFO;\n case ResourceAction.DELETED: return NotificationLevel.WARNING;\n default: return NotificationLevel.INFO;\n }\n };\n\n const resolveOperationFromPayload = (params: {\n resourceType: string;\n operationIdentifier: string;\n operationPathKey?: string;\n variantType?: ResourceOperationVariantType;\n isOperationDefault?: boolean;\n isBulkOperation?: boolean;\n variantKey?: string;\n }) => {\n const operations = registry.resourceConfigurations[params.resourceType]?.operations ?? [];\n if (params.operationPathKey) {\n const pathOperation = operations.find((operation) => {\n try {\n return ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation) === params.operationPathKey;\n } catch {\n return false;\n }\n });\n if (pathOperation) {\n return pathOperation;\n }\n }\n\n const matchingOperations = operations.filter((operation) => (\n String(operation.operationIdentifier) === params.operationIdentifier\n && (params.variantType == null || operation.variantType === params.variantType)\n && (params.variantKey == null || operation.variantKey === params.variantKey)\n && (params.isBulkOperation == null || (operation.isBulkOperation === true) === params.isBulkOperation)\n && (\n params.isOperationDefault == null\n || Boolean(operation.isOperationDefault) === params.isOperationDefault\n )\n ));\n\n if (matchingOperations.length === 1) {\n return matchingOperations[0];\n }\n\n if (matchingOperations.length > 1) {\n console.warn('[WebSocketEventBridge] Ambiguous operation identity in notification payload; emitting minimal operation context.', {\n resourceType: params.resourceType,\n operationIdentifier: params.operationIdentifier,\n variantType: params.variantType,\n variantKey: params.variantKey,\n isOperationDefault: params.isOperationDefault,\n isBulkOperation: params.isBulkOperation,\n candidateVariants: matchingOperations.map((operation) => ({\n variantType: operation.variantType,\n variantKey: operation.variantKey,\n isOperationDefault: operation.isOperationDefault,\n isBulkOperation: operation.isBulkOperation,\n })),\n });\n }\n\n // Some websocket producers only carry operation identity fields, not the\n // full authored operation object. Rebuild the minimum shape the EventBus\n // contracts expect so downstream consumers can still reason about variant,\n // default-ness, and bulk semantics consistently.\n return {\n operationIdentifier: params.operationIdentifier,\n variantType: params.variantType,\n isOperationDefault: params.isOperationDefault,\n isBulkOperation: params.isBulkOperation,\n variantKey: params.variantKey,\n };\n };\n\n const emitRefreshPayloads = ({\n resourceType,\n resourceIds,\n contextResourceIdentifiers,\n shouldEmitReadRefresh,\n }: {\n resourceType: string;\n resourceIds?: Array<string | null | undefined>;\n contextResourceIdentifiers?: ContextResourceIdentifiersInput;\n shouldEmitReadRefresh: boolean;\n }): void => {\n const resourceConfig = registry.resourceConfigurations[resourceType];\n const flattenedContextIdentifiers = normalizeContextResourceIdentifiersForTransport(\n contextResourceIdentifiers,\n );\n const normalizedContextIdentifiers = Object.fromEntries(\n Object.entries(flattenedContextIdentifiers).flatMap(([identifierKey, resourceIdentifier]) => {\n const normalizedKey = registry.fieldIdentifierToResourceType?.[identifierKey] ?? identifierKey;\n return normalizedKey === identifierKey\n ? [[identifierKey, resourceIdentifier]]\n : [\n [identifierKey, resourceIdentifier],\n [normalizedKey, resourceIdentifier],\n ];\n }),\n );\n const baseContextIdentifiers = {\n ...normalizedContextIdentifiers,\n };\n delete baseContextIdentifiers[resourceType];\n const baseContextualParameters = FrontendResourceUtils.buildContextualParameters(\n baseContextIdentifiers,\n registry,\n );\n\n // This bridge owns generic cache/list/read invalidation only. It does not\n // try to replay authoritative resource data into local state; richer sync\n // semantics stay in the dedicated RMM websocket bridge. The consumers here\n // are generic RESOURCE_REFRESH listeners such as non-RMM readers, list\n // surfaces, and cache invalidation hooks.\n const listOperations = getOperationsForCoreSemantic(\n resourceConfig?.operations ?? [],\n CoreResourceOperation.LIST,\n ).filter((listOperation) =>\n operationInitiatorParametersSatisfied({\n operation: listOperation,\n contextResourceIdentifiers: baseContextIdentifiers,\n contextualParameters: baseContextualParameters,\n })\n );\n const listRefreshTargets = listOperations.length > 0\n ? listOperations\n : [null];\n const baseParentResourcesRequirements = frontendResourceUtils.buildParentResourcesRequirements(\n resourceType as any,\n baseContextIdentifiers,\n registry,\n );\n\n for (const listOperation of listRefreshTargets) {\n eventBus.emit(FrontendEvents.RESOURCE_REFRESH, {\n resourceType,\n operationIdentifier: String(listOperation?.operationIdentifier ?? CoreResourceOperation.LIST),\n variantType: listOperation?.variantType,\n isOperationDefault: listOperation?.isOperationDefault ?? true,\n isBulkOperation: listOperation?.isBulkOperation ?? false,\n variantKey: listOperation?.variantKey,\n contextResourceIdentifiers: baseContextIdentifiers,\n parentResourcesRequirements: baseParentResourcesRequirements,\n operation: (listOperation ?? { operationIdentifier: CoreResourceOperation.LIST }) as any,\n });\n }\n\n const validReadResourceIds = Array.from(new Set(\n (resourceIds ?? []).filter((resourceId): resourceId is string => typeof resourceId === 'string' && resourceId.length > 0),\n ));\n\n if (!shouldEmitReadRefresh || validReadResourceIds.length === 0) {\n return;\n }\n\n const readOperations = getOperationsForCoreSemantic(\n resourceConfig?.operations ?? [],\n CoreResourceOperation.READ,\n {\n requireAddressable: true,\n },\n );\n const emittedReadOperationKeys = new Set<string>();\n\n for (const resourceId of validReadResourceIds) {\n const readContextIdentifiers = {\n ...baseContextIdentifiers,\n [resourceType]: resourceId,\n };\n const readContextualParameters = FrontendResourceUtils.buildContextualParameters(\n readContextIdentifiers,\n registry,\n );\n const readParentResourcesRequirements = frontendResourceUtils.buildParentResourcesRequirements(\n resourceType as any,\n readContextIdentifiers,\n registry,\n );\n const addressableReadOperations = readOperations.filter((readOperation) =>\n resourceConfig\n ? isFrontendOperationAddressableForCurrentContext({\n resourceConfig,\n operation: readOperation,\n registry,\n hasResourceId: true,\n contextResourceIdentifiers: readContextIdentifiers,\n contextualParameters: readContextualParameters,\n })\n : true\n );\n const readRefreshTargets = addressableReadOperations.length > 0\n ? addressableReadOperations\n : [null];\n\n for (const readOperation of readRefreshTargets) {\n const readOperationContext = readOperation\n ?? ({ operationIdentifier: CoreResourceOperation.READ } as any);\n const readOperationKey = [\n resourceId,\n String(readOperationContext.operationIdentifier),\n readOperationContext.variantType ?? '',\n readOperationContext.variantKey ?? '',\n readOperationContext.isBulkOperation ?? false,\n ].join(':');\n if (emittedReadOperationKeys.has(readOperationKey)) {\n continue;\n }\n emittedReadOperationKeys.add(readOperationKey);\n\n eventBus.emit(FrontendEvents.RESOURCE_REFRESH, {\n resourceType,\n operationIdentifier: String(readOperationContext.operationIdentifier ?? CoreResourceOperation.READ),\n variantType: readOperation?.variantType,\n isOperationDefault: readOperation?.isOperationDefault ?? true,\n isBulkOperation: readOperation?.isBulkOperation ?? false,\n variantKey: readOperation?.variantKey,\n contextResourceIdentifiers: readContextIdentifiers,\n parentResourcesRequirements: readParentResourcesRequirements,\n operation: readOperationContext,\n });\n }\n }\n };\n\n // Bridge: resource:notification → EventBus\n const unsubNotification = on<WS_ResourceNotificationPayload>(\n CoreWebSocketEvent.RESOURCE_NOTIFICATION,\n (payload) => {\n const resolvedOperation = resolveOperationFromPayload({\n resourceType: payload.resourceType,\n operationIdentifier: payload.operationIdentifier,\n operationPathKey: payload.operationPathKey,\n variantType: payload.variantType,\n isOperationDefault: payload.isOperationDefault,\n isBulkOperation: payload.isBulkOperation,\n variantKey: payload.variantKey,\n });\n const eventPayload: FrontendEventResourceOperation = {\n serverNotification: payload.deliveryPolicy,\n resourceType: payload.resourceType,\n operationIdentifier: payload.operationIdentifier,\n variantType: resolvedOperation.variantType ?? payload.variantType,\n isOperationDefault: resolvedOperation.isOperationDefault ?? payload.isOperationDefault,\n isBulkOperation: resolvedOperation.isBulkOperation ?? payload.isBulkOperation,\n variantKey: typeof resolvedOperation.variantKey === 'string' ? resolvedOperation.variantKey : payload.variantKey,\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n parentResourcesRequirements: [],\n operation: resolvedOperation as any,\n // Include notification context for i18n message resolution\n additionalContext: {\n notificationIdentifier: payload.notificationIdentifier,\n action: payload.action,\n frontendDisplayHints: payload.frontendDisplayHints,\n // How many rows a BULK action changed — the count its outcome message states.\n ...(payload.isBulkOperation ? { affectedCount: payload.affectedIds.length } : {}),\n },\n // Populate resultSummary from WS notification context identifiers\n // (enables analytics RESOURCE_OPERATION filter evaluation)\n resultSummary: payload.contextResourceIdentifiers\n ? { ...payload.contextResourceIdentifiers }\n : undefined,\n };\n\n // Use notificationLevel from payload if provided, otherwise derive from action\n const level = payload.notificationLevel ?? actionToNotificationLevel(payload.action);\n if (level !== NotificationLevel.ERROR) {\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: payload.affectedIds,\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: payload.affectedIds.length > 0 && !(payload.isBulkOperation ?? false),\n });\n }\n\n // Emit notification event with proper typing (use switch to ensure type safety)\n switch (level) {\n case NotificationLevel.SUCCESS:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_SUCCESS, eventPayload);\n break;\n case NotificationLevel.WARNING:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_WARNING, eventPayload);\n break;\n case NotificationLevel.ERROR:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_ERROR, eventPayload);\n break;\n case NotificationLevel.INFO:\n default:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_INFO, eventPayload);\n }\n }\n );\n\n // Bridge: resource:updated → EventBus RESOURCE_REFRESH\n const unsubUpdated = on<WS_ResourceUpdatedPayload>(\n CoreWebSocketEvent.RESOURCE_UPDATED,\n (payload) => {\n // RESOURCE_UPDATED always triggers generic refresh fan-out here so\n // non-RMM consumers still invalidate list/read surfaces. Resource-room\n // sync replay and authoritative refetch decisions remain owned by\n // RMMWebSocketBridge.\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: payload.deliveryTarget === WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION\n ? payload.affectedIds ?? []\n : [payload.resourceId],\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: payload.deliveryTarget === WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION\n ? (payload.affectedIds?.length ?? 0) > 0\n : Boolean(payload.resourceId),\n });\n }\n );\n\n // Bridge: resource:deleted → EventBus RESOURCE_REFRESH\n const unsubDeleted = on<WS_ResourceDeletedPayload>(\n CoreWebSocketEvent.RESOURCE_DELETED,\n (payload) => {\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: [payload.resourceId],\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: Boolean(payload.resourceId),\n });\n }\n );\n\n // Bridge: badge:update → EventBus BADGE_COUNT_CHANGED\n const unsubBadge = on<WS_BadgeUpdatePayload>(\n CoreWebSocketEvent.BADGE_UPDATE,\n (payload) => {\n const eventPayload: FrontendEventBadgeCountChanged = {\n badgeReference: payload.badgeReference,\n badgeCount: payload.badgeCount,\n };\n\n // Through the store's one door, so a badge mounted later still reads this count.\n publishNotificationBadgeCount(eventBus.emit, eventPayload);\n }\n );\n\n // Bridge: bulk-job:progress → EventBus BULK_JOB_PROGRESS\n //\n // Carried through unchanged: the counts are the server's, and the surface that draws the bar is\n // the one that decides what to say about them. Addressed to the USER rather than to a resource\n // room, because a bulk run spans many rows and no row's room is the right place (#1461).\n const unsubBulkJobProgress = on<WS_BulkJobProgressPayload>(\n CoreWebSocketEvent.BULK_JOB_PROGRESS,\n (payload) => {\n eventBus.emit(FrontendEvents.BULK_JOB_PROGRESS, {\n jobId: payload.jobId,\n resourceType: payload.resourceType,\n operationIdentifier: payload.operationIdentifier,\n attemptedCount: payload.attemptedCount,\n processedCount: payload.processedCount,\n failedCount: payload.failedCount,\n finished: payload.finished,\n ...(payload.failures ? { failures: payload.failures } : {}),\n });\n }\n );\n\n // Bridge: resource:editing:start → EventBus RESOURCE_EDITING_START\n const unsubEditingStart = on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_START,\n (payload) => {\n if (payload.initiatorUserId) {\n const eventPayload: FrontendEventResourceEditing = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_EDITING_START, eventPayload);\n }\n }\n );\n\n // Bridge: resource:editing:end → EventBus RESOURCE_EDITING_END\n const unsubEditingEnd = on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_END,\n (payload) => {\n if (payload.initiatorUserId) {\n const eventPayload: FrontendEventResourceEditing = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_EDITING_END, eventPayload);\n }\n }\n );\n\n // Bridge: resource:custom → EventBus RESOURCE_CUSTOM_EVENT\n const unsubCustom = on<WS_ResourceCustomEventPayload>(\n CoreWebSocketEvent.RESOURCE_CUSTOM,\n (payload) => {\n // Validate resource data if a custom-event payload includes\n // resource-shaped data. RMM sync-grade replay already validates its\n // dedicated payloads elsewhere.\n let validatedResourceData = payload.resourceData;\n \n // If the custom event carries resource-shaped data, validate that\n // dedicated payload field. `data` remains the event-specific message\n // body and may not share the resource DTO contract.\n if (payload.resourceData && typeof payload.resourceData === 'object' && !Array.isArray(payload.resourceData)) {\n try {\n validatedResourceData = validationService.validateWebSocketResourceData(\n payload.resourceData,\n {\n resourceType: payload.resourceType,\n operationIdentifier: undefined, // Custom events don't have operation identifier\n dataMode: payload.dataMode,\n }\n );\n } catch (error) {\n // If validation fails, log error but don't block the event\n // (backward compatibility - validation is opt-in)\n console.warn('[WebSocketEventBridge] Resource data validation failed:', error);\n // Continue with original data\n validatedResourceData = payload.resourceData;\n }\n }\n\n const eventPayload: FrontendEventResourceCustom = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n eventName: payload.eventName,\n data: payload.data,\n resourceData: validatedResourceData,\n dataMode: payload.dataMode,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_CUSTOM_EVENT, eventPayload);\n }\n );\n\n // Bridge: user:notification → EventBus NOTIFY_CUSTOM_*\n // Handles direct backend-initiated notifications (not tied to resource operations)\n const unsubUserNotification = on<WS_UserNotificationPayload>(\n CoreWebSocketEvent.USER_NOTIFICATION,\n (payload) => {\n const eventPayload: FrontendEventNotifyCustom = {\n identifier: payload.identifier ?? '',\n data: {\n ...payload.data,\n // Mark as backend notification for display policy handling\n _backendNotification: true,\n // Pass display target for NotificationContext to use\n displayTarget: payload.displayTarget,\n // Pass message and title if provided\n message: payload.message,\n title: payload.title,\n organizationId: payload.organizationId,\n },\n };\n\n // Emit notification event with proper typing (use switch to ensure type safety)\n switch (payload.notificationLevel) {\n case NotificationLevel.INFO:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_INFO, eventPayload);\n break;\n case NotificationLevel.SUCCESS:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_SUCCESS, eventPayload);\n break;\n case NotificationLevel.WARNING:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_WARNING, eventPayload);\n break;\n case NotificationLevel.ERROR:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_ERROR, eventPayload);\n break;\n default:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_INFO, eventPayload);\n }\n }\n );\n\n // Bridge: analytics:moment-achieved → EventBus ANALYTICS_MOMENT_ACHIEVED\n const unsubAnalyticsMoment = on<WS_AnalyticsMomentAchievedPayload>(\n CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED,\n (payload) => {\n const eventPayload: FrontendEvent_AnalyticsMomentAchieved = {\n momentIdentifier: payload.momentIdentifier,\n role: payload.role,\n scope: payload.scope,\n triggerSource: AnalyticsTriggerSource.BACKEND,\n };\n eventBus.emit(FrontendEvents.ANALYTICS_MOMENT_ACHIEVED, eventPayload);\n }\n );\n\n // Bridge: guidance:state-changed → EventBus GUIDANCE_FLOW_*\n const unsubGuidance = on<WS_GuidanceStateChangedPayload>(\n CoreWebSocketEvent.GUIDANCE_STATE_CHANGED,\n (payload) => {\n const eventPayload = {\n flowRef: payload.flowRef,\n triggerSource: payload.triggerSource,\n scope: payload.scope,\n renderMode: payload.renderMode,\n };\n switch (payload.status) {\n case OnboardingStatus.IN_PROGRESS:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_ACTIVATED, eventPayload);\n break;\n case OnboardingStatus.COMPLETED:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_COMPLETED, eventPayload);\n break;\n case OnboardingStatus.DISMISSED:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_DISMISSED, eventPayload);\n break;\n }\n }\n );\n\n // Bridge: progression:milestone-achieved → EventBus MILESTONE_ACHIEVED\n const unsubMilestone = on<WS_MilestoneAchievedPayload>(\n CoreWebSocketEvent.MILESTONE_ACHIEVED,\n (payload) => {\n const eventPayload: FrontendEvent_MilestoneAchieved = {\n milestoneRef: payload.milestoneRef,\n category: payload.category,\n points: payload.points,\n achievedAt: payload.achievedAt,\n scope: payload.scope,\n reward: payload.reward,\n lifecycleTransition: payload.lifecycleTransition,\n totalPoints: payload.totalPoints,\n };\n eventBus.emit(FrontendEvents.MILESTONE_ACHIEVED, eventPayload);\n }\n );\n\n // Bridge: progression:updated → EventBus PROGRESSION_UPDATED\n const unsubProgression = on<WS_ProgressionUpdatedPayload>(\n CoreWebSocketEvent.PROGRESSION_UPDATED,\n (payload) => {\n const eventPayload: FrontendEvent_ProgressionUpdated = {\n scope: payload.scope,\n operationCounts: payload.operationCounts,\n totalPoints: payload.totalPoints,\n updatedAt: payload.updatedAt,\n };\n eventBus.emit(FrontendEvents.PROGRESSION_UPDATED, eventPayload);\n }\n );\n\n // Bridge: lifecycle:stage-changed → EventBus LIFECYCLE_STAGE_CHANGED\n const unsubLifecycle = on<WS_LifecycleStageChangedPayload>(\n CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED,\n (payload) => {\n const eventPayload: FrontendEvent_LifecycleStageChanged = {\n previousStage: payload.previousStage,\n newStage: payload.newStage,\n scope: payload.scope,\n trigger: payload.trigger,\n changedAt: payload.changedAt,\n activationCriteriaMet: payload.activationCriteriaMet,\n };\n eventBus.emit(FrontendEvents.LIFECYCLE_STAGE_CHANGED, eventPayload);\n }\n );\n\n // Cleanup\n return () => {\n unsubNotification();\n unsubUpdated();\n unsubDeleted();\n unsubBadge();\n unsubBulkJobProgress();\n unsubEditingStart();\n unsubEditingEnd();\n unsubCustom();\n unsubUserNotification();\n unsubAnalyticsMoment();\n unsubGuidance();\n unsubMilestone();\n unsubProgression();\n unsubLifecycle();\n };\n }, [isConnected, on, eventBus, registry, validationService]);\n\n // This component renders nothing\n return null;\n};\n\nexport default WebSocketEventBridge;\n"]}
|
|
1
|
+
{"version":3,"file":"WebSocketEventBridge.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/WebSocketEventBridge.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo } from 'react';\nimport { useWebSocket } from './useWebSocket';\nimport { publishNotificationBadgeCount } from './useNotificationBadges';\nimport { useEventBus } from '~wildo-frontend-lib/core/events/useEventBus';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { WebSocketResourceValidationService } from './websocket-resource-validation.frontend.service';\nimport { \n FrontendEvents, \n FrontendEventResourceOperation, \n FrontendEventBadgeCountChanged,\n FrontendEventResourceEditing,\n FrontendEventResourceCustom,\n FrontendEventNotifyCustom,\n type FrontendEvent_AnalyticsMomentAchieved,\n type FrontendEvent_MilestoneAchieved,\n type FrontendEvent_ProgressionUpdated,\n type FrontendEvent_LifecycleStageChanged,\n} from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport {\n AnalyticsTriggerSource,\n CoreResourceOperation,\n CoreWebSocketEvent,\n WS_ResourceDeletedPayload,\n WS_ResourceNotificationPayload,\n WS_ResourceUpdatedPayload,\n WS_BadgeUpdatePayload,\n WS_BulkJobProgressPayload,\n WS_ResourceEditingPayload,\n WS_ResourceCustomEventPayload,\n WS_UserNotificationPayload,\n WS_AnalyticsMomentAchievedPayload,\n NotificationLevel,\n ResourceAction,\n ResourceOperationVariantType,\n ResourcesConfig_OperationPathUtils,\n OnboardingStatus,\n WebSocketResourceDeliveryTarget,\n type WS_GuidanceStateChangedPayload,\n type WS_MilestoneAchievedPayload,\n type WS_ProgressionUpdatedPayload,\n type WS_LifecycleStageChangedPayload,\n} from '@wildo-ai/saas-models';\nimport { getOperationsForCoreSemantic } from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { frontendResourceUtils, FrontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { isFrontendOperationAddressableForCurrentContext } from '~wildo-frontend-lib/core/resources/resource-addressability.frontend.utils';\nimport { operationInitiatorParametersSatisfied } from '~wildo-frontend-lib/core/resources/operation-initiator-satisfaction.frontend.utils';\nimport {\n normalizeContextResourceIdentifiersForTransport,\n type ContextResourceIdentifiersInput,\n} from '~wildo-frontend-lib/core/resources/context-resource-identifiers.frontend.utils';\n\n/**\n * WebSocketEventBridge\n * \n * Bridges WebSocket events from the Socket.IO connection to the Frontend EventBus.\n * This component should be mounted once at the app root level, after both\n * WebSocketProvider and EventBusProvider.\n * \n * Events bridged:\n * - resource:notification → RESOURCE_REFRESH, NOTIFY_RESOURCE_*\n * - resource:updated → RESOURCE_REFRESH\n * - resource:deleted → RESOURCE_REFRESH\n * - badge:update → BADGE_COUNT_CHANGED\n * - bulk-job:progress → BULK_JOB_PROGRESS\n * - guidance:state-changed → GUIDANCE_FLOW_ACTIVATED/COMPLETED/DISMISSED\n * \n * Business logic components can then subscribe to EventBus events without\n * knowing the event source (HTTP response, WebSocket, or other).\n */\nexport const WebSocketEventBridge: React.FC = () => {\n const { on, isConnected } = useWebSocket();\n const eventBus = useEventBus();\n const { getResourcesRegistry } = useResourceRegistry();\n const registry = useMemo(() => getResourcesRegistry(), [getResourcesRegistry]);\n\n // Initialize the validation service used by websocket payloads that carry\n // resource-shaped data.\n const validationService = useMemo(() => {\n return new WebSocketResourceValidationService(registry);\n }, [registry]);\n\n useEffect(() => {\n if (!isConnected) {\n return;\n }\n\n // Helper: Map action to default notification level (fallback when notificationLevel not provided)\n const actionToNotificationLevel = (action: ResourceAction | string): NotificationLevel => {\n switch (action) {\n case ResourceAction.CREATED: return NotificationLevel.SUCCESS;\n case ResourceAction.UPDATED: return NotificationLevel.INFO;\n case ResourceAction.DELETED: return NotificationLevel.WARNING;\n default: return NotificationLevel.INFO;\n }\n };\n\n const resolveOperationFromPayload = (params: {\n resourceType: string;\n operationIdentifier: string;\n operationPathKey?: string;\n variantType?: ResourceOperationVariantType;\n isOperationDefault?: boolean;\n isBulkOperation?: boolean;\n variantKey?: string;\n }) => {\n const operations = registry.resourceConfigurations[params.resourceType]?.operations ?? [];\n if (params.operationPathKey) {\n const pathOperation = operations.find((operation) => {\n try {\n return ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation) === params.operationPathKey;\n } catch {\n return false;\n }\n });\n if (pathOperation) {\n return pathOperation;\n }\n }\n\n const matchingOperations = operations.filter((operation) => (\n String(operation.operationIdentifier) === params.operationIdentifier\n && (params.variantType == null || operation.variantType === params.variantType)\n && (params.variantKey == null || operation.variantKey === params.variantKey)\n && (params.isBulkOperation == null || (operation.isBulkOperation === true) === params.isBulkOperation)\n && (\n params.isOperationDefault == null\n || Boolean(operation.isOperationDefault) === params.isOperationDefault\n )\n ));\n\n if (matchingOperations.length === 1) {\n return matchingOperations[0];\n }\n\n if (matchingOperations.length > 1) {\n console.warn('[WebSocketEventBridge] Ambiguous operation identity in notification payload; emitting minimal operation context.', {\n resourceType: params.resourceType,\n operationIdentifier: params.operationIdentifier,\n variantType: params.variantType,\n variantKey: params.variantKey,\n isOperationDefault: params.isOperationDefault,\n isBulkOperation: params.isBulkOperation,\n candidateVariants: matchingOperations.map((operation) => ({\n variantType: operation.variantType,\n variantKey: operation.variantKey,\n isOperationDefault: operation.isOperationDefault,\n isBulkOperation: operation.isBulkOperation,\n })),\n });\n }\n\n // Some websocket producers only carry operation identity fields, not the\n // full authored operation object. Rebuild the minimum shape the EventBus\n // contracts expect so downstream consumers can still reason about variant,\n // default-ness, and bulk semantics consistently.\n return {\n operationIdentifier: params.operationIdentifier,\n variantType: params.variantType,\n isOperationDefault: params.isOperationDefault,\n isBulkOperation: params.isBulkOperation,\n variantKey: params.variantKey,\n };\n };\n\n const emitRefreshPayloads = ({\n resourceType,\n resourceIds,\n contextResourceIdentifiers,\n shouldEmitReadRefresh,\n }: {\n resourceType: string;\n resourceIds?: Array<string | null | undefined>;\n contextResourceIdentifiers?: ContextResourceIdentifiersInput;\n shouldEmitReadRefresh: boolean;\n }): void => {\n const resourceConfig = registry.resourceConfigurations[resourceType];\n const flattenedContextIdentifiers = normalizeContextResourceIdentifiersForTransport(\n contextResourceIdentifiers,\n );\n const normalizedContextIdentifiers = Object.fromEntries(\n Object.entries(flattenedContextIdentifiers).flatMap(([identifierKey, resourceIdentifier]) => {\n const normalizedKey = registry.fieldIdentifierToResourceType?.[identifierKey] ?? identifierKey;\n return normalizedKey === identifierKey\n ? [[identifierKey, resourceIdentifier]]\n : [\n [identifierKey, resourceIdentifier],\n [normalizedKey, resourceIdentifier],\n ];\n }),\n );\n const baseContextIdentifiers = {\n ...normalizedContextIdentifiers,\n };\n delete baseContextIdentifiers[resourceType];\n const baseContextualParameters = FrontendResourceUtils.buildContextualParameters(\n baseContextIdentifiers,\n registry,\n );\n\n // This bridge owns generic cache/list/read invalidation only. It does not\n // try to replay authoritative resource data into local state; richer sync\n // semantics stay in the dedicated RMM websocket bridge. The consumers here\n // are generic RESOURCE_REFRESH listeners such as non-RMM readers, list\n // surfaces, and cache invalidation hooks.\n const listOperations = getOperationsForCoreSemantic(\n resourceConfig?.operations ?? [],\n CoreResourceOperation.LIST,\n ).filter((listOperation) =>\n operationInitiatorParametersSatisfied({\n operation: listOperation,\n contextResourceIdentifiers: baseContextIdentifiers,\n contextualParameters: baseContextualParameters,\n })\n );\n const listRefreshTargets = listOperations.length > 0\n ? listOperations\n : [null];\n const baseParentResourcesRequirements = frontendResourceUtils.buildParentResourcesRequirements(\n resourceType as any,\n baseContextIdentifiers,\n registry,\n );\n\n for (const listOperation of listRefreshTargets) {\n eventBus.emit(FrontendEvents.RESOURCE_REFRESH, {\n resourceType,\n operationIdentifier: String(listOperation?.operationIdentifier ?? CoreResourceOperation.LIST),\n variantType: listOperation?.variantType,\n isOperationDefault: listOperation?.isOperationDefault ?? true,\n isBulkOperation: listOperation?.isBulkOperation ?? false,\n variantKey: listOperation?.variantKey,\n contextResourceIdentifiers: baseContextIdentifiers,\n parentResourcesRequirements: baseParentResourcesRequirements,\n operation: (listOperation ?? { operationIdentifier: CoreResourceOperation.LIST }) as any,\n });\n }\n\n const validReadResourceIds = Array.from(new Set(\n (resourceIds ?? []).filter((resourceId): resourceId is string => typeof resourceId === 'string' && resourceId.length > 0),\n ));\n\n if (!shouldEmitReadRefresh || validReadResourceIds.length === 0) {\n return;\n }\n\n const readOperations = getOperationsForCoreSemantic(\n resourceConfig?.operations ?? [],\n CoreResourceOperation.READ,\n {\n requireAddressable: true,\n },\n );\n const emittedReadOperationKeys = new Set<string>();\n\n for (const resourceId of validReadResourceIds) {\n const readContextIdentifiers = {\n ...baseContextIdentifiers,\n [resourceType]: resourceId,\n };\n const readContextualParameters = FrontendResourceUtils.buildContextualParameters(\n readContextIdentifiers,\n registry,\n );\n const readParentResourcesRequirements = frontendResourceUtils.buildParentResourcesRequirements(\n resourceType as any,\n readContextIdentifiers,\n registry,\n );\n const addressableReadOperations = readOperations.filter((readOperation) =>\n resourceConfig\n ? isFrontendOperationAddressableForCurrentContext({\n resourceConfig,\n operation: readOperation,\n registry,\n hasResourceId: true,\n contextResourceIdentifiers: readContextIdentifiers,\n contextualParameters: readContextualParameters,\n })\n : true\n );\n const readRefreshTargets = addressableReadOperations.length > 0\n ? addressableReadOperations\n : [null];\n\n for (const readOperation of readRefreshTargets) {\n const readOperationContext = readOperation\n ?? ({ operationIdentifier: CoreResourceOperation.READ } as any);\n const readOperationKey = [\n resourceId,\n String(readOperationContext.operationIdentifier),\n readOperationContext.variantType ?? '',\n readOperationContext.variantKey ?? '',\n readOperationContext.isBulkOperation ?? false,\n ].join(':');\n if (emittedReadOperationKeys.has(readOperationKey)) {\n continue;\n }\n emittedReadOperationKeys.add(readOperationKey);\n\n eventBus.emit(FrontendEvents.RESOURCE_REFRESH, {\n resourceType,\n operationIdentifier: String(readOperationContext.operationIdentifier ?? CoreResourceOperation.READ),\n variantType: readOperation?.variantType,\n isOperationDefault: readOperation?.isOperationDefault ?? true,\n isBulkOperation: readOperation?.isBulkOperation ?? false,\n variantKey: readOperation?.variantKey,\n contextResourceIdentifiers: readContextIdentifiers,\n parentResourcesRequirements: readParentResourcesRequirements,\n operation: readOperationContext,\n });\n }\n }\n };\n\n // Bridge: resource:notification → EventBus\n const unsubNotification = on<WS_ResourceNotificationPayload>(\n CoreWebSocketEvent.RESOURCE_NOTIFICATION,\n (payload) => {\n const resolvedOperation = resolveOperationFromPayload({\n resourceType: payload.resourceType,\n operationIdentifier: payload.operationIdentifier,\n operationPathKey: payload.operationPathKey,\n variantType: payload.variantType,\n isOperationDefault: payload.isOperationDefault,\n isBulkOperation: payload.isBulkOperation,\n variantKey: payload.variantKey,\n });\n const eventPayload: FrontendEventResourceOperation = {\n serverNotification: payload.deliveryPolicy,\n resourceType: payload.resourceType,\n operationIdentifier: payload.operationIdentifier,\n variantType: resolvedOperation.variantType ?? payload.variantType,\n isOperationDefault: resolvedOperation.isOperationDefault ?? payload.isOperationDefault,\n isBulkOperation: resolvedOperation.isBulkOperation ?? payload.isBulkOperation,\n variantKey: typeof resolvedOperation.variantKey === 'string' ? resolvedOperation.variantKey : payload.variantKey,\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n parentResourcesRequirements: [],\n operation: resolvedOperation as any,\n // Include notification context for i18n message resolution\n additionalContext: {\n notificationIdentifier: payload.notificationIdentifier,\n action: payload.action,\n frontendDisplayHints: payload.frontendDisplayHints,\n // How many rows a BULK action changed — the count its outcome message states.\n ...(payload.isBulkOperation ? { affectedCount: payload.affectedIds.length } : {}),\n },\n // Populate resultSummary from WS notification context identifiers\n // (enables analytics RESOURCE_OPERATION filter evaluation)\n resultSummary: payload.contextResourceIdentifiers\n ? { ...payload.contextResourceIdentifiers }\n : undefined,\n };\n\n // Use notificationLevel from payload if provided, otherwise derive from action\n const level = payload.notificationLevel ?? actionToNotificationLevel(payload.action);\n if (level !== NotificationLevel.ERROR) {\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: payload.affectedIds,\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: payload.affectedIds.length > 0 && !(payload.isBulkOperation ?? false),\n });\n }\n\n // Emit notification event with proper typing (use switch to ensure type safety)\n switch (level) {\n case NotificationLevel.SUCCESS:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_SUCCESS, eventPayload);\n break;\n case NotificationLevel.WARNING:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_WARNING, eventPayload);\n break;\n case NotificationLevel.ERROR:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_ERROR, eventPayload);\n break;\n case NotificationLevel.INFO:\n default:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_INFO, eventPayload);\n }\n }\n );\n\n // Bridge: resource:updated → EventBus RESOURCE_REFRESH\n const unsubUpdated = on<WS_ResourceUpdatedPayload>(\n CoreWebSocketEvent.RESOURCE_UPDATED,\n (payload) => {\n // RESOURCE_UPDATED always triggers generic refresh fan-out here so\n // non-RMM consumers still invalidate list/read surfaces. Resource-room\n // sync replay and authoritative refetch decisions remain owned by\n // RMMWebSocketBridge.\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: payload.deliveryTarget === WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION\n ? payload.affectedIds ?? []\n : [payload.resourceId],\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: payload.deliveryTarget === WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION\n ? (payload.affectedIds?.length ?? 0) > 0\n : Boolean(payload.resourceId),\n });\n }\n );\n\n // Bridge: resource:deleted → EventBus RESOURCE_REFRESH\n const unsubDeleted = on<WS_ResourceDeletedPayload>(\n CoreWebSocketEvent.RESOURCE_DELETED,\n (payload) => {\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: [payload.resourceId],\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: Boolean(payload.resourceId),\n });\n }\n );\n\n // Bridge: badge:update → EventBus BADGE_COUNT_CHANGED\n const unsubBadge = on<WS_BadgeUpdatePayload>(\n CoreWebSocketEvent.BADGE_UPDATE,\n (payload) => {\n const eventPayload: FrontendEventBadgeCountChanged = {\n badgeReference: payload.badgeReference,\n badgeCount: payload.badgeCount,\n };\n\n // Through the store's one door, so a badge mounted later still reads this count.\n publishNotificationBadgeCount(eventBus.emit, eventPayload);\n }\n );\n\n // Bridge: bulk-job:progress → EventBus BULK_JOB_PROGRESS\n //\n // Carried through unchanged: the counts are the server's, and the surface that draws the bar is\n // the one that decides what to say about them. Addressed to the USER rather than to a resource\n // room, because a bulk run spans many rows and no row's room is the right place (#1461).\n const unsubBulkJobProgress = on<WS_BulkJobProgressPayload>(\n CoreWebSocketEvent.BULK_JOB_PROGRESS,\n (payload) => {\n eventBus.emit(FrontendEvents.BULK_JOB_PROGRESS, {\n jobId: payload.jobId,\n resourceType: payload.resourceType,\n operationIdentifier: payload.operationIdentifier,\n attemptedCount: payload.attemptedCount,\n processedCount: payload.processedCount,\n failedCount: payload.failedCount,\n finished: payload.finished,\n ...(payload.failures ? { failures: payload.failures } : {}),\n });\n }\n );\n\n // Bridge: resource:editing:start → EventBus RESOURCE_EDITING_START\n const unsubEditingStart = on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_START,\n (payload) => {\n if (payload.initiatorUserId) {\n const eventPayload: FrontendEventResourceEditing = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_EDITING_START, eventPayload);\n }\n }\n );\n\n // Bridge: resource:editing:end → EventBus RESOURCE_EDITING_END\n const unsubEditingEnd = on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_END,\n (payload) => {\n if (payload.initiatorUserId) {\n const eventPayload: FrontendEventResourceEditing = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_EDITING_END, eventPayload);\n }\n }\n );\n\n // Bridge: resource:custom → EventBus RESOURCE_CUSTOM_EVENT\n const unsubCustom = on<WS_ResourceCustomEventPayload>(\n CoreWebSocketEvent.RESOURCE_CUSTOM,\n (payload) => {\n // Validate resource data if a custom-event payload includes\n // resource-shaped data. RMM sync-grade replay already validates its\n // dedicated payloads elsewhere.\n let validatedResourceData = payload.resourceData;\n \n // If the custom event carries resource-shaped data, validate that\n // dedicated payload field. `data` remains the event-specific message\n // body and may not share the resource DTO contract.\n if (payload.resourceData && typeof payload.resourceData === 'object' && !Array.isArray(payload.resourceData)) {\n try {\n validatedResourceData = validationService.validateWebSocketResourceData(\n payload.resourceData,\n {\n resourceType: payload.resourceType,\n operationIdentifier: undefined, // Custom events don't have operation identifier\n dataMode: payload.dataMode,\n }\n );\n } catch (error) {\n // If validation fails, log error but don't block the event\n // (backward compatibility - validation is opt-in)\n console.warn('[WebSocketEventBridge] Resource data validation failed:', error);\n // Continue with original data\n validatedResourceData = payload.resourceData;\n }\n }\n\n const eventPayload: FrontendEventResourceCustom = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n eventName: payload.eventName,\n data: payload.data,\n resourceData: validatedResourceData,\n dataMode: payload.dataMode,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_CUSTOM_EVENT, eventPayload);\n }\n );\n\n // Bridge: user:notification → EventBus NOTIFY_CUSTOM_*\n // Handles direct backend-initiated notifications (not tied to resource operations)\n const unsubUserNotification = on<WS_UserNotificationPayload>(\n CoreWebSocketEvent.USER_NOTIFICATION,\n (payload) => {\n const eventPayload: FrontendEventNotifyCustom = {\n identifier: payload.identifier ?? '',\n data: {\n ...payload.data,\n // Mark as backend notification for display policy handling\n _backendNotification: true,\n // Pass display target for NotificationContext to use\n displayTarget: payload.displayTarget,\n // Pass message and title if provided\n message: payload.message,\n title: payload.title,\n organizationId: payload.organizationId,\n },\n };\n\n // Emit notification event with proper typing (use switch to ensure type safety)\n switch (payload.notificationLevel) {\n case NotificationLevel.INFO:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_INFO, eventPayload);\n break;\n case NotificationLevel.SUCCESS:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_SUCCESS, eventPayload);\n break;\n case NotificationLevel.WARNING:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_WARNING, eventPayload);\n break;\n case NotificationLevel.ERROR:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_ERROR, eventPayload);\n break;\n default:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_INFO, eventPayload);\n }\n }\n );\n\n // Bridge: analytics:moment-achieved → EventBus ANALYTICS_MOMENT_ACHIEVED\n const unsubAnalyticsMoment = on<WS_AnalyticsMomentAchievedPayload>(\n CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED,\n (payload) => {\n const eventPayload: FrontendEvent_AnalyticsMomentAchieved = {\n momentIdentifier: payload.momentIdentifier,\n role: payload.role,\n scope: payload.scope,\n triggerSource: AnalyticsTriggerSource.BACKEND,\n };\n eventBus.emit(FrontendEvents.ANALYTICS_MOMENT_ACHIEVED, eventPayload);\n }\n );\n\n // Bridge: guidance:state-changed → EventBus GUIDANCE_FLOW_*\n const unsubGuidance = on<WS_GuidanceStateChangedPayload>(\n CoreWebSocketEvent.GUIDANCE_STATE_CHANGED,\n (payload) => {\n const eventPayload = {\n flowRef: payload.flowRef,\n triggerSource: payload.triggerSource,\n scope: payload.scope,\n renderMode: payload.renderMode,\n };\n switch (payload.status) {\n case OnboardingStatus.IN_PROGRESS:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_ACTIVATED, eventPayload);\n break;\n case OnboardingStatus.COMPLETED:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_COMPLETED, eventPayload);\n break;\n case OnboardingStatus.DISMISSED:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_DISMISSED, eventPayload);\n break;\n }\n }\n );\n\n // Bridge: progression:milestone-achieved → EventBus MILESTONE_ACHIEVED\n const unsubMilestone = on<WS_MilestoneAchievedPayload>(\n CoreWebSocketEvent.MILESTONE_ACHIEVED,\n (payload) => {\n const eventPayload: FrontendEvent_MilestoneAchieved = {\n milestoneRef: payload.milestoneRef,\n category: payload.category,\n points: payload.points,\n achievedAt: payload.achievedAt,\n scope: payload.scope,\n reward: payload.reward,\n lifecycleTransition: payload.lifecycleTransition,\n totalPoints: payload.totalPoints,\n };\n eventBus.emit(FrontendEvents.MILESTONE_ACHIEVED, eventPayload);\n }\n );\n\n // Bridge: progression:updated → EventBus PROGRESSION_UPDATED\n const unsubProgression = on<WS_ProgressionUpdatedPayload>(\n CoreWebSocketEvent.PROGRESSION_UPDATED,\n (payload) => {\n const eventPayload: FrontendEvent_ProgressionUpdated = {\n scope: payload.scope,\n operationCounts: payload.operationCounts,\n totalPoints: payload.totalPoints,\n updatedAt: payload.updatedAt,\n };\n eventBus.emit(FrontendEvents.PROGRESSION_UPDATED, eventPayload);\n }\n );\n\n // Bridge: lifecycle:stage-changed → EventBus LIFECYCLE_STAGE_CHANGED\n const unsubLifecycle = on<WS_LifecycleStageChangedPayload>(\n CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED,\n (payload) => {\n const eventPayload: FrontendEvent_LifecycleStageChanged = {\n previousStage: payload.previousStage,\n newStage: payload.newStage,\n scope: payload.scope,\n trigger: payload.trigger,\n changedAt: payload.changedAt,\n activationCriteriaMet: payload.activationCriteriaMet,\n };\n eventBus.emit(FrontendEvents.LIFECYCLE_STAGE_CHANGED, eventPayload);\n }\n );\n\n // Cleanup\n return () => {\n unsubNotification();\n unsubUpdated();\n unsubDeleted();\n unsubBadge();\n unsubBulkJobProgress();\n unsubEditingStart();\n unsubEditingEnd();\n unsubCustom();\n unsubUserNotification();\n unsubAnalyticsMoment();\n unsubGuidance();\n unsubMilestone();\n unsubProgression();\n unsubLifecycle();\n };\n }, [isConnected, on, eventBus, registry, validationService]);\n\n // This component renders nothing\n return null;\n};\n\nexport default WebSocketEventBridge;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotificationBadges.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"useNotificationBadges.d.ts","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useNotificationBadges.ts"],"names":[],"mappings":"AA0BA,OAAO,EACL,2BAA2B,EAI5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,8BAA8B,EAAE,MAAM,yDAAyD,CAAC;AA0B9H;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,mBAAmB,EAAE,OAAO,EAAE,8BAA8B,KAAK,IAAI,EAClG,OAAO,EAAE,8BAA8B,GACtC,IAAI,CAIN;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAmBtD;AAED,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,2BAA2B;IAC1C,6DAA6D;IAC7D,aAAa,EAAE,CAAC,UAAU,EAAE,2BAA2B,KAAK,kBAAkB,CAAC;CAChF;AAED,eAAO,MAAM,qBAAqB,QAAO,2BA2DxC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotificationBadges.js","sourceRoot":"","sources":["../../../../../../src/core/requests/websockets/useNotificationBadges.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * useNotificationBadges — the single frontend badge-count store (R6b).\n *\n * Replaces the retracted dual mechanism (`useBadge`/`useUserBadges` + the\n * launcher's own `badgeCounts` state). Subscribes ONCE to `BADGE_COUNT_CHANGED`\n * and indexes counts by badge KEY — `<scope>:<identifier>`, reduced from the pushed\n * `badgeReference` (`<scope>:<scopeId>:<identifier>`) by `notificationBadgeKeyFromReference`.\n * The backend already scopes every push to the connected user (seed on connect, R6a; recompute on\n * mutation, R5), so the store never needs the session's own scope ids to receive.\n *\n * ## Why the key and not the identifier\n *\n * It used to `split(':')` by hand, take part `[2]`, and index on that — discarding the scope. Two\n * definitions declaring one identifier at different scopes therefore collapsed onto one entry: the\n * second was unreachable and rendered the first's count. The key is the definition's own identity,\n * built by the SAME function `NavigationItemBadge` resolves a `notificationBadgeRef` with and the\n * backend refuses duplicates of at boot, so the store's key and the lookup key cannot drift apart.\n *\n * `scopeId` stays out of the key deliberately: it says WHOSE badge, which a navigation declaration\n * cannot name, and a session only ever receives pushes for its own scope ids.\n *\n * Call it ONCE at a host (e.g. the sidebar behavior) and thread `getBadgeState`\n * down, so there is a single subscription + one shared pulse-timer state.\n */\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport {\n NotificationBadgeDefinition,\n NotificationBadgePulse,\n notificationBadgeIdentityKey,\n notificationBadgeKeyFromReference,\n} from '@wildo-ai/saas-models';\nimport { FrontendEvents, type FrontendEventBadgeCountChanged } from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport { useEventBus } from '~wildo-frontend-lib/core/events/useEventBus';\nimport { useAppScopeSafe } from '~wildo-frontend-lib/core/scope/useAppScope';\n\n/** How long an `ON_INCREASE` badge visibly pulses after a count rise (ms). */\nconst PULSE_WINDOW_MS = 2000;\n\n/**\n * The LAST count this page was given for each badge key — the store's memory.\n *\n * Each `useNotificationBadges` instance holds its own counts and hears only the events sent after it\n * subscribed, and a count is sent only when it changes. So a badge mounted LATE — a menubar group whose\n * menu opens after the count arrived, a navigation remounted by a route change — showed nothing until\n * the next change (#1454 review). Every producer now writes through\n * {@link publishNotificationBadgeCount}, which records the count here before emitting it, and every new\n * instance starts from what is recorded.\n *\n * Page-wide by design: one browser page hosts one application, and a count is a fact about this\n * session's view of it. Cleared whenever the signed-in USER or the current ORGANIZATION changes\n * ({@link NotificationBadgeMemoryBoundary}), so a second person signing in on the same page never sees\n * the first person's counts, and an organization switch never seeds a badge with the previous\n * organization's. The memory is keyed without a scope id, so clearing at the boundary is what keeps a\n * count from crossing it.\n */\nconst lastBadgeCountsByKey = new Map<string, number>();\n\n/**\n * Hand a badge count to the store — the ONE way a count reaches it, from the websocket bridge (a\n * backend push) and from `usePublishNotificationBadgeCount` (a frontend-produced count) alike. Records\n * it for late subscribers, then emits it for the live ones.\n */\nexport function publishNotificationBadgeCount(\n emit: (event: FrontendEvents.BADGE_COUNT_CHANGED, payload: FrontendEventBadgeCountChanged) => void,\n payload: FrontendEventBadgeCountChanged,\n): void {\n const badgeKey = notificationBadgeKeyFromReference(payload.badgeReference);\n if (badgeKey) lastBadgeCountsByKey.set(badgeKey, payload.badgeCount);\n emit(FrontendEvents.BADGE_COUNT_CHANGED, payload);\n}\n\n/** Forget every recorded count — at an identity boundary, and between tests. */\nexport function forgetNotificationBadgeCounts(): void {\n lastBadgeCountsByKey.clear();\n}\n\n/**\n * Where the memory ENDS: renders nothing, and forgets every remembered count when the signed-in user or\n * the current organization changes.\n *\n * Keyed on the app scope's identity rather than on the `USER_LOGOUT` event. When this was written nothing\n * emitted that event (#1454 review, N1; it has had a producer since #1977), and the identity is still the\n * better key: the scope's user id changes on every way a session ends or begins — this tab's sign-out,\n * another tab's, a refresh that fails — and its organization id on every switch, which is the other\n * boundary a count must not cross (N2) and which no sign-out event carries.\n * Mounted by `ApplicationMainProvider` beside the read-cache bridge, which watches the same scope\n * for the same reason.\n */\nexport function NotificationBadgeMemoryBoundary(): null {\n const appScope = useAppScopeSafe();\n const userId = appScope?.currentUserId ?? null;\n const organizationId = appScope?.currentOrganizationId ?? null;\n const previous = useRef({ userId, organizationId });\n useEffect(() => {\n const before = previous.current;\n previous.current = { userId, organizationId };\n /*\n * Only a value that was SET and changed is a boundary. An organization id APPEARING after session\n * restore (null → id) belongs to the same session and the same counts: clearing there left a menu\n * opened later empty until the count next moved, since a publisher republishes only on change\n * (re-review N4). A user id going to null is a sign-out and does clear.\n */\n const userChanged = before.userId !== null && before.userId !== userId;\n const organizationChanged = before.organizationId !== null && before.organizationId !== organizationId;\n if (userChanged || organizationChanged) forgetNotificationBadgeCounts();\n }, [userId, organizationId]);\n return null;\n}\n\n/** Resolved, render-ready badge state for one definition. */\nexport interface ResolvedBadgeState {\n /** Current count (0 until the first push for this identifier arrives). */\n count: number;\n /** Already-resolved \"pulse now\", per the definition's pulse trigger. */\n pulse: boolean;\n}\n\nexport interface UseNotificationBadgesResult {\n /** Resolve the live count + pulse for a badge definition. */\n getBadgeState: (definition: NotificationBadgeDefinition) => ResolvedBadgeState;\n}\n\nexport const useNotificationBadges = (): UseNotificationBadgesResult => {\n const { on } = useEventBus();\n\n // Seeded from the page's memory, so a badge mounted after its count arrived shows it at once.\n const [countsByBadgeKey, setCountsByBadgeKey] = useState<Record<string, number>>(() => Object.fromEntries(lastBadgeCountsByKey));\n // Transient `ON_INCREASE` pulse flags, keyed by badge key.\n const [pulsingByBadgeKey, setPulsingByBadgeKey] = useState<Record<string, boolean>>({});\n // Previous counts (ref, not state) so an increase can be detected without\n // re-subscribing on every count change. Seeded like the counts, so a remembered count is not read\n // as an increase and does not pulse on mount.\n const previousCountsRef = useRef<Record<string, number>>(Object.fromEntries(lastBadgeCountsByKey));\n\n useEffect(() => {\n return on(FrontendEvents.BADGE_COUNT_CHANGED, (payload: FrontendEventBadgeCountChanged) => {\n // A malformed reference, or one naming a scope no badge resource backs, is dropped rather\n // than indexed under a key nothing can resolve.\n const badgeKey = notificationBadgeKeyFromReference(payload.badgeReference);\n if (!badgeKey) {\n return;\n }\n const previous = previousCountsRef.current[badgeKey] ?? 0;\n previousCountsRef.current[badgeKey] = payload.badgeCount;\n\n setCountsByBadgeKey((prev) => ({ ...prev, [badgeKey]: payload.badgeCount }));\n\n if (payload.badgeCount > previous) {\n setPulsingByBadgeKey((prev) => ({ ...prev, [badgeKey]: true }));\n // Clear the transient pulse after the window (fresh render shows a static badge).\n setTimeout(() => {\n setPulsingByBadgeKey((prev) => ({ ...prev, [badgeKey]: false }));\n }, PULSE_WINDOW_MS);\n }\n });\n }, [on]);\n\n const getBadgeState = useCallback(\n (definition: NotificationBadgeDefinition): ResolvedBadgeState => {\n const badgeKey = notificationBadgeIdentityKey(definition);\n const count = countsByBadgeKey[badgeKey] ?? 0;\n\n let pulse = false;\n switch (definition.display.pulse) {\n case NotificationBadgePulse.WHILE_ACTIVE:\n pulse = count > 0;\n break;\n case NotificationBadgePulse.ON_INCREASE:\n pulse = !!pulsingByBadgeKey[badgeKey];\n break;\n case NotificationBadgePulse.NONE:\n default:\n pulse = false;\n }\n\n return { count, pulse };\n },\n [countsByBadgeKey, pulsingByBadgeKey],\n );\n\n return { getBadgeState };\n};\n\nexport default useNotificationBadges;\n"]}
|
|
1
|
+
{"version":3,"file":"useNotificationBadges.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useNotificationBadges.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAEL,sBAAsB,EACtB,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAuC,MAAM,yDAAyD,CAAC;AAC9H,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAE7E,8EAA8E;AAC9E,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAAkG,EAClG,OAAuC;IAEvC,MAAM,QAAQ,GAAG,iCAAiC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3E,IAAI,QAAQ;QAAE,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACrE,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,6BAA6B;IAC3C,oBAAoB,CAAC,KAAK,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,+BAA+B;IAC7C,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,QAAQ,EAAE,aAAa,IAAI,IAAI,CAAC;IAC/C,MAAM,cAAc,GAAG,QAAQ,EAAE,qBAAqB,IAAI,IAAI,CAAC;IAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;QAChC,QAAQ,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAC9C;;;;;WAKG;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC;QACvE,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,KAAK,IAAI,IAAI,MAAM,CAAC,cAAc,KAAK,cAAc,CAAC;QACvG,IAAI,WAAW,IAAI,mBAAmB;YAAE,6BAA6B,EAAE,CAAC;IAC1E,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAeD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAgC,EAAE;IACrE,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;IAE7B,8FAA8F;IAC9F,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAyB,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACjI,2DAA2D;IAC3D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAA0B,EAAE,CAAC,CAAC;IACxF,0EAA0E;IAC1E,kGAAkG;IAClG,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,MAAM,CAAyB,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAEnG,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,EAAE,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC,OAAuC,EAAE,EAAE;YACxF,0FAA0F;YAC1F,gDAAgD;YAChD,MAAM,QAAQ,GAAG,iCAAiC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1D,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;YAEzD,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAE7E,IAAI,OAAO,CAAC,UAAU,GAAG,QAAQ,EAAE,CAAC;gBAClC,oBAAoB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChE,kFAAkF;gBAClF,UAAU,CAAC,GAAG,EAAE;oBACd,oBAAoB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBACnE,CAAC,EAAE,eAAe,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAET,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,UAAuC,EAAsB,EAAE;QAC9D,MAAM,QAAQ,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,QAAQ,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,KAAK,sBAAsB,CAAC,YAAY;gBACtC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;gBAClB,MAAM;YACR,KAAK,sBAAsB,CAAC,WAAW;gBACrC,KAAK,GAAG,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,sBAAsB,CAAC,IAAI,CAAC;YACjC;gBACE,KAAK,GAAG,KAAK,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC,EACD,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CACtC,CAAC;IAEF,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC","sourcesContent":["/**\n * useNotificationBadges — the single frontend badge-count store (R6b).\n *\n * Replaces the retracted dual mechanism (`useBadge`/`useUserBadges` + the\n * launcher's own `badgeCounts` state). Subscribes ONCE to `BADGE_COUNT_CHANGED`\n * and indexes counts by badge KEY — `<scope>:<identifier>`, reduced from the pushed\n * `badgeReference` (`<scope>:<scopeId>:<identifier>`) by `notificationBadgeKeyFromReference`.\n * The backend already scopes every push to the connected user (seed on connect, R6a; recompute on\n * mutation, R5), so the store never needs the session's own scope ids to receive.\n *\n * ## Why the key and not the identifier\n *\n * It used to `split(':')` by hand, take part `[2]`, and index on that — discarding the scope. Two\n * definitions declaring one identifier at different scopes therefore collapsed onto one entry: the\n * second was unreachable and rendered the first's count. The key is the definition's own identity,\n * built by the SAME function `NavigationItemBadge` resolves a `notificationBadgeRef` with and the\n * backend refuses duplicates of at boot, so the store's key and the lookup key cannot drift apart.\n *\n * `scopeId` stays out of the key deliberately: it says WHOSE badge, which a navigation declaration\n * cannot name, and a session only ever receives pushes for its own scope ids.\n *\n * Call it ONCE at a host (e.g. the sidebar behavior) and thread `getBadgeState`\n * down, so there is a single subscription + one shared pulse-timer state.\n */\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport {\n NotificationBadgeDefinition,\n NotificationBadgePulse,\n notificationBadgeIdentityKey,\n notificationBadgeKeyFromReference,\n} from '@wildo-ai/saas-models';\nimport { FrontendEvents, type FrontendEventBadgeCountChanged } from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport { useEventBus } from '~wildo-frontend-lib/core/events/useEventBus';\nimport { useAppScopeSafe } from '~wildo-frontend-lib/core/scope/useAppScope';\n\n/** How long an `ON_INCREASE` badge visibly pulses after a count rise (ms). */\nconst PULSE_WINDOW_MS = 2000;\n\n/**\n * The LAST count this page was given for each badge key — the store's memory.\n *\n * Each `useNotificationBadges` instance holds its own counts and hears only the events sent after it\n * subscribed, and a count is sent only when it changes. So a badge mounted LATE — a menubar group whose\n * menu opens after the count arrived, a navigation remounted by a route change — showed nothing until\n * the next change (#1454 review). Every producer now writes through\n * {@link publishNotificationBadgeCount}, which records the count here before emitting it, and every new\n * instance starts from what is recorded.\n *\n * Page-wide by design: one browser page hosts one application, and a count is a fact about this\n * session's view of it. Cleared whenever the signed-in USER or the current ORGANIZATION changes\n * ({@link NotificationBadgeMemoryBoundary}), so a second person signing in on the same page never sees\n * the first person's counts, and an organization switch never seeds a badge with the previous\n * organization's. The memory is keyed without a scope id, so clearing at the boundary is what keeps a\n * count from crossing it.\n */\nconst lastBadgeCountsByKey = new Map<string, number>();\n\n/**\n * Hand a badge count to the store — the ONE way a count reaches it, from the websocket bridge (a\n * backend push) and from `usePublishNotificationBadgeCount` (a frontend-produced count) alike. Records\n * it for late subscribers, then emits it for the live ones.\n */\nexport function publishNotificationBadgeCount(\n emit: (event: FrontendEvents.BADGE_COUNT_CHANGED, payload: FrontendEventBadgeCountChanged) => void,\n payload: FrontendEventBadgeCountChanged,\n): void {\n const badgeKey = notificationBadgeKeyFromReference(payload.badgeReference);\n if (badgeKey) lastBadgeCountsByKey.set(badgeKey, payload.badgeCount);\n emit(FrontendEvents.BADGE_COUNT_CHANGED, payload);\n}\n\n/** Forget every recorded count — at an identity boundary, and between tests. */\nexport function forgetNotificationBadgeCounts(): void {\n lastBadgeCountsByKey.clear();\n}\n\n/**\n * Where the memory ENDS: renders nothing, and forgets every remembered count when the signed-in user or\n * the current organization changes.\n *\n * Keyed on the app scope's identity rather than on the `USER_LOGOUT` event. When this was written nothing\n * emitted that event (#1454 review, N1; it has had a producer since #1977), and the identity is still the\n * better key: the scope's user id changes on every way a session ends or begins — this tab's sign-out,\n * another tab's, a refresh that fails — and its organization id on every switch, which is the other\n * boundary a count must not cross (N2) and which no sign-out event carries.\n * Mounted by `ApplicationMainProvider` beside the read-cache bridge, which watches the same scope\n * for the same reason.\n */\nexport function NotificationBadgeMemoryBoundary(): null {\n const appScope = useAppScopeSafe();\n const userId = appScope?.currentUserId ?? null;\n const organizationId = appScope?.currentOrganizationId ?? null;\n const previous = useRef({ userId, organizationId });\n useEffect(() => {\n const before = previous.current;\n previous.current = { userId, organizationId };\n /*\n * Only a value that was SET and changed is a boundary. An organization id APPEARING after session\n * restore (null → id) belongs to the same session and the same counts: clearing there left a menu\n * opened later empty until the count next moved, since a publisher republishes only on change\n * (re-review N4). A user id going to null is a sign-out and does clear.\n */\n const userChanged = before.userId !== null && before.userId !== userId;\n const organizationChanged = before.organizationId !== null && before.organizationId !== organizationId;\n if (userChanged || organizationChanged) forgetNotificationBadgeCounts();\n }, [userId, organizationId]);\n return null;\n}\n\n/** Resolved, render-ready badge state for one definition. */\nexport interface ResolvedBadgeState {\n /** Current count (0 until the first push for this identifier arrives). */\n count: number;\n /** Already-resolved \"pulse now\", per the definition's pulse trigger. */\n pulse: boolean;\n}\n\nexport interface UseNotificationBadgesResult {\n /** Resolve the live count + pulse for a badge definition. */\n getBadgeState: (definition: NotificationBadgeDefinition) => ResolvedBadgeState;\n}\n\nexport const useNotificationBadges = (): UseNotificationBadgesResult => {\n const { on } = useEventBus();\n\n // Seeded from the page's memory, so a badge mounted after its count arrived shows it at once.\n const [countsByBadgeKey, setCountsByBadgeKey] = useState<Record<string, number>>(() => Object.fromEntries(lastBadgeCountsByKey));\n // Transient `ON_INCREASE` pulse flags, keyed by badge key.\n const [pulsingByBadgeKey, setPulsingByBadgeKey] = useState<Record<string, boolean>>({});\n // Previous counts (ref, not state) so an increase can be detected without\n // re-subscribing on every count change. Seeded like the counts, so a remembered count is not read\n // as an increase and does not pulse on mount.\n const previousCountsRef = useRef<Record<string, number>>(Object.fromEntries(lastBadgeCountsByKey));\n\n useEffect(() => {\n return on(FrontendEvents.BADGE_COUNT_CHANGED, (payload: FrontendEventBadgeCountChanged) => {\n // A malformed reference, or one naming a scope no badge resource backs, is dropped rather\n // than indexed under a key nothing can resolve.\n const badgeKey = notificationBadgeKeyFromReference(payload.badgeReference);\n if (!badgeKey) {\n return;\n }\n const previous = previousCountsRef.current[badgeKey] ?? 0;\n previousCountsRef.current[badgeKey] = payload.badgeCount;\n\n setCountsByBadgeKey((prev) => ({ ...prev, [badgeKey]: payload.badgeCount }));\n\n if (payload.badgeCount > previous) {\n setPulsingByBadgeKey((prev) => ({ ...prev, [badgeKey]: true }));\n // Clear the transient pulse after the window (fresh render shows a static badge).\n setTimeout(() => {\n setPulsingByBadgeKey((prev) => ({ ...prev, [badgeKey]: false }));\n }, PULSE_WINDOW_MS);\n }\n });\n }, [on]);\n\n const getBadgeState = useCallback(\n (definition: NotificationBadgeDefinition): ResolvedBadgeState => {\n const badgeKey = notificationBadgeIdentityKey(definition);\n const count = countsByBadgeKey[badgeKey] ?? 0;\n\n let pulse = false;\n switch (definition.display.pulse) {\n case NotificationBadgePulse.WHILE_ACTIVE:\n pulse = count > 0;\n break;\n case NotificationBadgePulse.ON_INCREASE:\n pulse = !!pulsingByBadgeKey[badgeKey];\n break;\n case NotificationBadgePulse.NONE:\n default:\n pulse = false;\n }\n\n return { count, pulse };\n },\n [countsByBadgeKey, pulsingByBadgeKey],\n );\n\n return { getBadgeState };\n};\n\nexport default useNotificationBadges;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePublishNotificationBadgeCount.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"usePublishNotificationBadgeCount.d.ts","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/usePublishNotificationBadgeCount.ts"],"names":[],"mappings":"AAuCA,sGAAsG;AACtG,eAAO,MAAM,gCAAgC,iBAAiB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CA0B7F;AACD,6EAA6E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePublishNotificationBadgeCount.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"usePublishNotificationBadgeCount.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/usePublishNotificationBadgeCount.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,uEAAuE,CAAC;AAElG,sGAAsG;AACtG,MAAM,CAAC,MAAM,gCAAgC,GAAG,cAAc,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,gCAAgC,CAAC,QAAgB,EAAE,KAAoB;IACrF,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE/B,MAAM,UAAU,GAAG,QAAQ,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC;IACnI,MAAM,WAAW,GAAG,UAAU,EAAE,MAAM,CAAC,IAAI,KAAK,2BAA2B,CAAC,iBAAiB,CAAC;IAE9F,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;gBACnD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,UAAU;oBACrB,CAAC,CAAC,uCAAuC,QAAQ,UAAU,UAAU,CAAC,MAAM,CAAC,IAAI,wEAAwE;oBACzJ,CAAC,CAAC,uCAAuC,QAAQ,6EAA6E,CAAC,CAAC;YACpI,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,MAAM,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,6BAA6B,CAAC,IAAI,EAAE;YAClC,cAAc,EAAE,+BAA+B,CAAC,MAAM,CAAC,KAAK,EAAE,gCAAgC,EAAE,MAAM,CAAC,UAAU,CAAC;YAClH,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AACD,6EAA6E","sourcesContent":["/**\n * usePublishNotificationBadgeCount — the producer side of a `FRONTEND_PRODUCED` badge.\n *\n * A badge's count normally reaches the browser as a backend push (`badge:update`, bridged to\n * `BADGE_COUNT_CHANGED`). A `FRONTEND_PRODUCED` badge has no backend producer: its count is derived\n * from rows the backend cannot count — a projection rather than a repository collection — and which\n * the page already holds and keeps current. This hook publishes that count onto the SAME event the\n * backend bridge emits, so `useNotificationBadges` and `NavigationItemBadge` read it exactly as they\n * read a pushed one. There is one badge store, fed from two directions, never two stores.\n *\n * ## Refuses any other kind\n *\n * A key naming an `EVENT_COUNTER` or `DERIVED_QUERY` definition is not published: the backend owns\n * that count and pushes it, and a page publishing its own number would fight every push. A key that\n * names no definition is not published either — there is nothing to draw it. Both are reported once\n * in development, and neither throws: a badge is chrome, and chrome must not take a page down.\n *\n * ## When the count reaches the navigation\n *\n * On every change of the key or the count, and not before the count is known (`null`): a page that\n * has not read its rows yet has no count, and publishing 0 would say \"nothing is waiting\" when the\n * truth is \"not known yet\". The first count arrives after an async read, by which time the navigation\n * drawing the badge has subscribed. The reference's scopeId is {@link FRONTEND_PRODUCED_BADGE_SCOPE_ID}:\n * the browser reduces a reference to its key and never reads the scopeId, and a frontend-produced\n * count belongs to this session by construction.\n */\nimport { useEffect, useRef } from 'react';\n\nimport {\n NotificationBadgeSourceKind,\n buildNotificationBadgeReference,\n notificationBadgeIdentityKey,\n parseNotificationBadgeKey,\n} from '@wildo-ai/saas-models';\nimport { publishNotificationBadgeCount } from './useNotificationBadges';\nimport { useEventBus } from '~wildo-frontend-lib/core/events/useEventBus';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { envLoader } from '~wildo-frontend-lib/core/runtime/env-variable-loader.frontend.service';\n\n/** The scopeId a frontend-produced reference carries: required by the wire format, read by nobody. */\nexport const FRONTEND_PRODUCED_BADGE_SCOPE_ID = 'this-session';\n\n/**\n * @wildo_source:part:start saas.frontend.notifications.publish-badge-count facet:layer:frontend facet:audience:app-developer\n *\n * Publish the count of a `FRONTEND_PRODUCED` notification badge — import from `@wildo-ai/saas-frontend-lib`.\n *\n * - `badgeKey`: the badge KEY, `<scope>:<identifier>` — build it with `buildNotificationBadgeKey` from\n * `@wildo-ai/saas-models`, the same key the navigation item's `notificationBadgeRef` names.\n * - `count`: the current count, or `null` while it is not known yet (nothing is published then — a 0\n * would say \"nothing is waiting\").\n *\n * Publishes nothing for a key whose definition is not `FRONTEND_PRODUCED` (the backend owns that\n * count) or that no definition declares. Call it from a component mounted wherever the navigation\n * showing the badge is — for a menubar or sidebar badge, a shell companion passed as\n * `shellCompanions` to `ApplicationMainProvider`, which the signed-in shell mounts on every page. A\n * badge that mounts later still reads the last published count.\n *\n * @example\n * export function PublishReviewsOwed(): null {\n * const reviews = useReviewsOwedRows(); // rows the page already reads\n * usePublishNotificationBadgeCount(REVIEWS_OWED_BADGE_KEY, reviews === null ? null : reviews.length);\n * return null;\n * }\n */\nexport function usePublishNotificationBadgeCount(badgeKey: string, count: number | null): void {\n const { emit } = useEventBus();\n const { registry } = useResourceRegistry();\n const reported = useRef(false);\n\n const definition = registry.notificationBadgeDefinitions.find((candidate) => notificationBadgeIdentityKey(candidate) === badgeKey);\n const publishable = definition?.source.kind === NotificationBadgeSourceKind.FRONTEND_PRODUCED;\n\n useEffect(() => {\n if (!publishable) {\n if (!reported.current && envLoader.isDevelopment()) {\n reported.current = true;\n console.warn(definition\n ? `[usePublishNotificationBadgeCount] \"${badgeKey}\" is a ${definition.source.kind} badge; its count is the backend's, so this page does not publish one.`\n : `[usePublishNotificationBadgeCount] \"${badgeKey}\" names no registered notification badge definition; nothing would draw it.`);\n }\n return;\n }\n if (count === null) return;\n const parsed = parseNotificationBadgeKey(badgeKey);\n if (!parsed) return;\n publishNotificationBadgeCount(emit, {\n badgeReference: buildNotificationBadgeReference(parsed.scope, FRONTEND_PRODUCED_BADGE_SCOPE_ID, parsed.identifier),\n badgeCount: Math.max(0, Math.trunc(count)),\n });\n }, [badgeKey, count, publishable, definition, emit]);\n}\n/** @wildo_source:part:end saas.frontend.notifications.publish-badge-count */\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResourceRoom.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"useResourceRoom.d.ts","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useResourceRoom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAEL,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,EAE9B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IAErB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uDAAuD;IACvD,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnD,yCAAyC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,gCAAgC;IAChC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACzD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACzD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC;IAEtB,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IAEnB,uDAAuD;IACvD,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC,gCAAgC;IAChC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,mCAAmC;IACnC,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,kCAAkC;IAClC,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB,sCAAsC;IACtC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrF;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,qBAsRjE,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResourceRoom.js","sourceRoot":"","sources":["../../../../../../src/core/requests/websockets/useResourceRoom.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * useResourceRoom Hook\n * \n * React hook for subscribing to resource-centric WebSocket rooms.\n * Handles subscription/unsubscription lifecycle automatically.\n * \n * Features:\n * - Subscribe to a specific resource by type+id (for editing, viewing)\n * - Subscribe to a scope/collection (for list views)\n * - Track editing state of other users\n * - Send custom collaboration events\n */\n\nimport { useEffect, useState, useCallback, useRef } from 'react';\nimport { useWebSocket } from './useWebSocket';\nimport {\n CoreWebSocketEvent,\n WS_ResourceDeletedPayload,\n WS_ResourceUpdatedPayload,\n WS_ResourceEditingPayload,\n WS_ResourceCustomEventPayload,\n WebSocketResourceDeliveryTarget,\n} from '@wildo-ai/saas-models';\n\nexport interface UseResourceRoomOptions {\n /** Resource type (e.g., 'todo', 'document') */\n resourceType: string;\n \n /** For single resource subscription */\n resourceId?: string;\n \n /** For collection/scope subscription */\n scopeKey?: string;\n scopeId?: string;\n \n /** Context identifiers for authorization (required) */\n contextResourceIdentifiers: Record<string, string>;\n \n /** Whether to auto-subscribe on mount */\n autoSubscribe?: boolean;\n \n /** Callbacks for room events */\n onUpdated?: (payload: WS_ResourceUpdatedPayload) => void;\n onDeleted?: (payload: WS_ResourceDeletedPayload) => void;\n onEditingStart?: (payload: WS_ResourceEditingPayload) => void;\n onEditingEnd?: (payload: WS_ResourceEditingPayload) => void;\n onCustomEvent?: (payload: WS_ResourceCustomEventPayload) => void;\n}\n\nexport interface UseResourceRoomResult {\n /** Whether currently subscribed to the room */\n isSubscribed: boolean;\n \n /** Whether currently editing */\n isEditing: boolean;\n \n /** List of user IDs currently editing this resource */\n editingUsers: string[];\n \n /** Subscribe to the room */\n subscribe: () => Promise<boolean>;\n \n /** Unsubscribe from the room */\n unsubscribe: () => Promise<void>;\n \n /** Start editing (acquire lock) */\n startEditing: () => Promise<boolean>;\n \n /** Stop editing (release lock) */\n stopEditing: () => void;\n \n /** Send custom collaboration event */\n sendCustomEvent: (eventName: string, data?: unknown, includeSelf?: boolean) => void;\n}\n\nexport const useResourceRoom = (options: UseResourceRoomOptions): UseResourceRoomResult => {\n const {\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n autoSubscribe = true,\n onUpdated,\n onDeleted,\n onEditingStart,\n onEditingEnd,\n onCustomEvent,\n } = options;\n\n const ws = useWebSocket();\n \n const [isSubscribed, setIsSubscribed] = useState(false);\n const [isEditing, setIsEditing] = useState(false);\n const [editingUsers, setEditingUsers] = useState<string[]>([]);\n \n // Track if we're the one editing\n const isEditingRef = useRef(false);\n const isSubscribedRef = useRef(false);\n const roomOwnerKeyRef = useRef(`useResourceRoom:${Math.random().toString(36).slice(2)}`);\n const unsubscribeRef = useRef<() => Promise<void>>(async () => undefined);\n isSubscribedRef.current = isSubscribed;\n \n // Build room identifier for dependency tracking\n const roomKey = resourceId \n ? `${resourceType}:${resourceId}` \n : `${resourceType}:${scopeKey}:${scopeId}`;\n\n /**\n * Subscribe to the resource room\n * Also initializes the editing users list from server state\n */\n const subscribe = useCallback(async (): Promise<boolean> => {\n if (isSubscribed) return true;\n \n const result = await ws.claimResourceRoom({\n ownerKey: roomOwnerKeyRef.current,\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n });\n \n setIsSubscribed(result.success);\n \n // Initialize editing users from subscription response\n if (result.success && result.editingUsers) {\n setEditingUsers(result.editingUsers);\n }\n \n return result.success;\n }, [ws, resourceType, resourceId, scopeKey, scopeId, contextResourceIdentifiers, isSubscribed]);\n\n /**\n * Unsubscribe from the resource room\n */\n const unsubscribe = useCallback(async (): Promise<void> => {\n if (!isSubscribed) return;\n \n await ws.releaseResourceRoom({\n ownerKey: roomOwnerKeyRef.current,\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n });\n \n setIsSubscribed(false);\n setEditingUsers([]);\n }, [ws, resourceType, resourceId, scopeKey, scopeId, contextResourceIdentifiers, isSubscribed]);\n unsubscribeRef.current = unsubscribe;\n\n /**\n * Start editing\n */\n const startEditing = useCallback(async (): Promise<boolean> => {\n if (!resourceId) {\n console.warn('Cannot start editing without resourceId');\n return false;\n }\n \n const success = await ws.startEditing({\n resourceType,\n resourceId,\n contextResourceIdentifiers,\n });\n \n if (success) {\n setIsEditing(true);\n isEditingRef.current = true;\n }\n \n return success;\n }, [ws, resourceType, resourceId, contextResourceIdentifiers]);\n\n /**\n * Stop editing\n */\n const stopEditing = useCallback((): void => {\n if (!resourceId || !isEditing) return;\n \n ws.stopEditing({\n resourceType,\n resourceId,\n });\n \n setIsEditing(false);\n isEditingRef.current = false;\n }, [ws, resourceType, resourceId, isEditing]);\n\n /**\n * Send custom collaboration event\n */\n const sendCustomEvent = useCallback((\n eventName: string, \n data?: unknown, \n includeSelf?: boolean\n ): void => {\n if (!resourceId) {\n console.warn('Cannot send custom event without resourceId');\n return;\n }\n \n ws.sendCustomEvent({\n resourceType,\n resourceId,\n eventName,\n data,\n contextResourceIdentifiers,\n includeSelf,\n });\n }, [ws, resourceType, resourceId, contextResourceIdentifiers]);\n\n // Setup event listeners\n useEffect(() => {\n if (!ws.isConnected || !isSubscribed) {\n return;\n }\n\n // Listen for resource updates\n const unsubUpdated = ws.on<WS_ResourceUpdatedPayload>(\n CoreWebSocketEvent.RESOURCE_UPDATED,\n (payload) => {\n // Only handle events for our resource/scope\n if (payload.resourceType !== resourceType) return;\n if (resourceId) {\n if (payload.resourceId !== resourceId) return;\n if (\n payload.deliveryTarget !== WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC\n && payload.deliveryTarget !== WebSocketResourceDeliveryTarget.RESOURCE_ROOM_NOTIFICATION\n ) {\n return;\n }\n } else if (payload.deliveryTarget !== WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION) {\n return;\n }\n \n onUpdated?.(payload);\n }\n );\n\n // Listen for resource deletions\n const unsubDeleted = ws.on<WS_ResourceDeletedPayload>(\n CoreWebSocketEvent.RESOURCE_DELETED,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId) return;\n if (payload.resourceId !== resourceId) return;\n \n onDeleted?.(payload);\n }\n );\n\n // Listen for editing start\n const unsubEditingStart = ws.on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_START,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n if (payload.initiatorUserId) {\n setEditingUsers(prev => {\n if (prev.includes(payload.initiatorUserId!)) return prev;\n return [...prev, payload.initiatorUserId!];\n });\n }\n \n onEditingStart?.(payload);\n }\n );\n\n // Listen for editing end\n const unsubEditingEnd = ws.on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_END,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n if (payload.initiatorUserId) {\n setEditingUsers(prev => prev.filter(id => id !== payload.initiatorUserId));\n }\n \n onEditingEnd?.(payload);\n }\n );\n\n // Listen for custom events\n const unsubCustom = ws.on<WS_ResourceCustomEventPayload>(\n CoreWebSocketEvent.RESOURCE_CUSTOM,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n onCustomEvent?.(payload);\n }\n );\n\n return () => {\n unsubUpdated();\n unsubDeleted();\n unsubEditingStart();\n unsubEditingEnd();\n unsubCustom();\n };\n }, [\n ws, \n isSubscribed, \n resourceType, \n resourceId, \n onUpdated, \n onDeleted, \n onEditingStart, \n onEditingEnd, \n onCustomEvent\n ]);\n\n // Auto-subscribe on mount\n useEffect(() => {\n if (autoSubscribe && ws.isConnected && !isSubscribed) {\n subscribe();\n }\n }, [autoSubscribe, ws.isConnected, isSubscribed, subscribe]);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (isEditingRef.current && resourceId) {\n ws.stopEditing({ resourceType, resourceId });\n }\n };\n }, [ws, resourceType, resourceId]);\n\n // Unsubscribe when options change\n useEffect(() => {\n return () => {\n if (isSubscribedRef.current) {\n void unsubscribeRef.current();\n }\n };\n }, [roomKey]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n isSubscribed,\n isEditing,\n editingUsers,\n subscribe,\n unsubscribe,\n startEditing,\n stopEditing,\n sendCustomEvent,\n };\n};\n\nexport default useResourceRoom;\n"]}
|
|
1
|
+
{"version":3,"file":"useResourceRoom.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useResourceRoom.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * useResourceRoom Hook\n * \n * React hook for subscribing to resource-centric WebSocket rooms.\n * Handles subscription/unsubscription lifecycle automatically.\n * \n * Features:\n * - Subscribe to a specific resource by type+id (for editing, viewing)\n * - Subscribe to a scope/collection (for list views)\n * - Track editing state of other users\n * - Send custom collaboration events\n */\n\nimport { useEffect, useState, useCallback, useRef } from 'react';\nimport { useWebSocket } from './useWebSocket';\nimport {\n CoreWebSocketEvent,\n WS_ResourceDeletedPayload,\n WS_ResourceUpdatedPayload,\n WS_ResourceEditingPayload,\n WS_ResourceCustomEventPayload,\n WebSocketResourceDeliveryTarget,\n} from '@wildo-ai/saas-models';\n\nexport interface UseResourceRoomOptions {\n /** Resource type (e.g., 'todo', 'document') */\n resourceType: string;\n \n /** For single resource subscription */\n resourceId?: string;\n \n /** For collection/scope subscription */\n scopeKey?: string;\n scopeId?: string;\n \n /** Context identifiers for authorization (required) */\n contextResourceIdentifiers: Record<string, string>;\n \n /** Whether to auto-subscribe on mount */\n autoSubscribe?: boolean;\n \n /** Callbacks for room events */\n onUpdated?: (payload: WS_ResourceUpdatedPayload) => void;\n onDeleted?: (payload: WS_ResourceDeletedPayload) => void;\n onEditingStart?: (payload: WS_ResourceEditingPayload) => void;\n onEditingEnd?: (payload: WS_ResourceEditingPayload) => void;\n onCustomEvent?: (payload: WS_ResourceCustomEventPayload) => void;\n}\n\nexport interface UseResourceRoomResult {\n /** Whether currently subscribed to the room */\n isSubscribed: boolean;\n \n /** Whether currently editing */\n isEditing: boolean;\n \n /** List of user IDs currently editing this resource */\n editingUsers: string[];\n \n /** Subscribe to the room */\n subscribe: () => Promise<boolean>;\n \n /** Unsubscribe from the room */\n unsubscribe: () => Promise<void>;\n \n /** Start editing (acquire lock) */\n startEditing: () => Promise<boolean>;\n \n /** Stop editing (release lock) */\n stopEditing: () => void;\n \n /** Send custom collaboration event */\n sendCustomEvent: (eventName: string, data?: unknown, includeSelf?: boolean) => void;\n}\n\nexport const useResourceRoom = (options: UseResourceRoomOptions): UseResourceRoomResult => {\n const {\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n autoSubscribe = true,\n onUpdated,\n onDeleted,\n onEditingStart,\n onEditingEnd,\n onCustomEvent,\n } = options;\n\n const ws = useWebSocket();\n \n const [isSubscribed, setIsSubscribed] = useState(false);\n const [isEditing, setIsEditing] = useState(false);\n const [editingUsers, setEditingUsers] = useState<string[]>([]);\n \n // Track if we're the one editing\n const isEditingRef = useRef(false);\n const isSubscribedRef = useRef(false);\n const roomOwnerKeyRef = useRef(`useResourceRoom:${Math.random().toString(36).slice(2)}`);\n const unsubscribeRef = useRef<() => Promise<void>>(async () => undefined);\n isSubscribedRef.current = isSubscribed;\n \n // Build room identifier for dependency tracking\n const roomKey = resourceId \n ? `${resourceType}:${resourceId}` \n : `${resourceType}:${scopeKey}:${scopeId}`;\n\n /**\n * Subscribe to the resource room\n * Also initializes the editing users list from server state\n */\n const subscribe = useCallback(async (): Promise<boolean> => {\n if (isSubscribed) return true;\n \n const result = await ws.claimResourceRoom({\n ownerKey: roomOwnerKeyRef.current,\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n });\n \n setIsSubscribed(result.success);\n \n // Initialize editing users from subscription response\n if (result.success && result.editingUsers) {\n setEditingUsers(result.editingUsers);\n }\n \n return result.success;\n }, [ws, resourceType, resourceId, scopeKey, scopeId, contextResourceIdentifiers, isSubscribed]);\n\n /**\n * Unsubscribe from the resource room\n */\n const unsubscribe = useCallback(async (): Promise<void> => {\n if (!isSubscribed) return;\n \n await ws.releaseResourceRoom({\n ownerKey: roomOwnerKeyRef.current,\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n });\n \n setIsSubscribed(false);\n setEditingUsers([]);\n }, [ws, resourceType, resourceId, scopeKey, scopeId, contextResourceIdentifiers, isSubscribed]);\n unsubscribeRef.current = unsubscribe;\n\n /**\n * Start editing\n */\n const startEditing = useCallback(async (): Promise<boolean> => {\n if (!resourceId) {\n console.warn('Cannot start editing without resourceId');\n return false;\n }\n \n const success = await ws.startEditing({\n resourceType,\n resourceId,\n contextResourceIdentifiers,\n });\n \n if (success) {\n setIsEditing(true);\n isEditingRef.current = true;\n }\n \n return success;\n }, [ws, resourceType, resourceId, contextResourceIdentifiers]);\n\n /**\n * Stop editing\n */\n const stopEditing = useCallback((): void => {\n if (!resourceId || !isEditing) return;\n \n ws.stopEditing({\n resourceType,\n resourceId,\n });\n \n setIsEditing(false);\n isEditingRef.current = false;\n }, [ws, resourceType, resourceId, isEditing]);\n\n /**\n * Send custom collaboration event\n */\n const sendCustomEvent = useCallback((\n eventName: string, \n data?: unknown, \n includeSelf?: boolean\n ): void => {\n if (!resourceId) {\n console.warn('Cannot send custom event without resourceId');\n return;\n }\n \n ws.sendCustomEvent({\n resourceType,\n resourceId,\n eventName,\n data,\n contextResourceIdentifiers,\n includeSelf,\n });\n }, [ws, resourceType, resourceId, contextResourceIdentifiers]);\n\n // Setup event listeners\n useEffect(() => {\n if (!ws.isConnected || !isSubscribed) {\n return;\n }\n\n // Listen for resource updates\n const unsubUpdated = ws.on<WS_ResourceUpdatedPayload>(\n CoreWebSocketEvent.RESOURCE_UPDATED,\n (payload) => {\n // Only handle events for our resource/scope\n if (payload.resourceType !== resourceType) return;\n if (resourceId) {\n if (payload.resourceId !== resourceId) return;\n if (\n payload.deliveryTarget !== WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC\n && payload.deliveryTarget !== WebSocketResourceDeliveryTarget.RESOURCE_ROOM_NOTIFICATION\n ) {\n return;\n }\n } else if (payload.deliveryTarget !== WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION) {\n return;\n }\n \n onUpdated?.(payload);\n }\n );\n\n // Listen for resource deletions\n const unsubDeleted = ws.on<WS_ResourceDeletedPayload>(\n CoreWebSocketEvent.RESOURCE_DELETED,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId) return;\n if (payload.resourceId !== resourceId) return;\n \n onDeleted?.(payload);\n }\n );\n\n // Listen for editing start\n const unsubEditingStart = ws.on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_START,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n if (payload.initiatorUserId) {\n setEditingUsers(prev => {\n if (prev.includes(payload.initiatorUserId!)) return prev;\n return [...prev, payload.initiatorUserId!];\n });\n }\n \n onEditingStart?.(payload);\n }\n );\n\n // Listen for editing end\n const unsubEditingEnd = ws.on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_END,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n if (payload.initiatorUserId) {\n setEditingUsers(prev => prev.filter(id => id !== payload.initiatorUserId));\n }\n \n onEditingEnd?.(payload);\n }\n );\n\n // Listen for custom events\n const unsubCustom = ws.on<WS_ResourceCustomEventPayload>(\n CoreWebSocketEvent.RESOURCE_CUSTOM,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n onCustomEvent?.(payload);\n }\n );\n\n return () => {\n unsubUpdated();\n unsubDeleted();\n unsubEditingStart();\n unsubEditingEnd();\n unsubCustom();\n };\n }, [\n ws, \n isSubscribed, \n resourceType, \n resourceId, \n onUpdated, \n onDeleted, \n onEditingStart, \n onEditingEnd, \n onCustomEvent\n ]);\n\n // Auto-subscribe on mount\n useEffect(() => {\n if (autoSubscribe && ws.isConnected && !isSubscribed) {\n subscribe();\n }\n }, [autoSubscribe, ws.isConnected, isSubscribed, subscribe]);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (isEditingRef.current && resourceId) {\n ws.stopEditing({ resourceType, resourceId });\n }\n };\n }, [ws, resourceType, resourceId]);\n\n // Unsubscribe when options change\n useEffect(() => {\n return () => {\n if (isSubscribedRef.current) {\n void unsubscribeRef.current();\n }\n };\n }, [roomKey]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n isSubscribed,\n isEditing,\n editingUsers,\n subscribe,\n unsubscribe,\n startEditing,\n stopEditing,\n sendCustomEvent,\n };\n};\n\nexport default useResourceRoom;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWebSocket.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"useWebSocket.d.ts","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useWebSocket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEjF;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAO,oBAM/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWebSocket.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"useWebSocket.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useWebSocket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAA6B,MAAM,oBAAoB,CAAC;AAEjF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAyB,EAAE;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC","sourcesContent":["/**\n * useWebSocket Hook\n * \n * Separated from WebSocketContext.tsx for React Fast Refresh compatibility.\n */\n\nimport { useContext } from 'react';\nimport { WebSocketContext, type WebSocketContextType } from './WebSocketContext';\n\n/**\n * Hook to access the WebSocket context\n * @returns WebSocketContextType with WebSocket connection management\n * @throws Error if used outside of WebSocketProvider\n */\nexport const useWebSocket = (): WebSocketContextType => {\n const context = useContext(WebSocketContext);\n if (!context) {\n throw new Error('useWebSocket must be used within a WebSocketProvider');\n }\n return context;\n};\n\n\n\n"]}
|
package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-resource-validation.frontend.service.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"websocket-resource-validation.frontend.service.d.ts","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/websocket-resource-validation.frontend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAEL,QAAQ,EACR,4BAA4B,EAI7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,yBAAyB,EAA2C,MAAM,+DAA+D,CAAC;AAIxJ;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,8EAA8E;IAC9E,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,oBAAoB,CAAC;CAC5D;AAMD;;GAEG;AACH,qBAAa,kCAAkC;IAC7C,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,YAAY,CAAuB;gBAE/B,iBAAiB,EAAE,yBAAyB;IAKxD;;OAEG;IACH,OAAO,CAAC,UAAU;IAuBlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,gBAAgB;IAwBxB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;;;;;;;;OAUG;IACI,6BAA6B,CAAC,KAAK,GAAG,GAAG,EAC9C,YAAY,EAAE,GAAG,EACjB,OAAO,EAAE,uBAAuB,GAC/B,KAAK;IAoCR;;;;;;;;OAQG;IACI,kCAAkC,CAAC,KAAK,GAAG,GAAG,EACnD,iBAAiB,EAAE,GAAG,EAAE,EACxB,OAAO,EAAE,uBAAuB,GAC/B,KAAK,EAAE;CA0BX"}
|
package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-resource-validation.frontend.service.js","sourceRoot":"","sources":["../../../../../../src/core/requests/websockets/websocket-resource-validation.frontend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * WebSocket Resource Validation Service\n * \n * Provides DTO validation for resource data received via WebSocket messages.\n * Similar to HTTP client validation, but for WebSocket payloads.\n * \n * Note: RMM resource-room sync payloads now do include replay-grade resource\n * data and use this service on a strict canonical-read validation path. Looser\n * websocket consumers such as some custom-event flows may still opt into the\n * older backward-compatible pass-through behavior when they do not request a\n * strict validation target.\n */\n\nimport { z } from 'zod';\nimport {\n CoreResourceOperation,\n DataMode,\n ResourceOperationVariantType,\n ResourceOperationsUtils,\n ResourcesConfigOperationsDtosBuilderUtils,\n ResourcesConfig_OperationPathUtils,\n} from '@wildo-ai/saas-models';\nimport type { FrontendResourcesRegistry, FrontendResourceConfiguration_Operation } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { ErrorBuilderFrontend } from '~wildo-frontend-lib/core/errors/errors-builder.frontend.services';\nimport { ErrorType, ErrorCustomMessageReference } from '@wildo-ai/saas-models';\n\n/**\n * WebSocket message context for validation\n */\nexport interface WebSocketMessageContext {\n /** Resource type */\n resourceType: string;\n /** Operation identifier */\n operationIdentifier?: string;\n /** Concrete operation variant type when no operation path key is available */\n variantType?: ResourceOperationVariantType;\n /** Concrete named variant when no operation path key is available */\n variantKey?: string;\n /** Concrete defaultness when no operation path key is available */\n isOperationDefault?: boolean;\n /** Concrete bulk flag when no operation path key is available */\n isBulkOperation?: boolean;\n /** Data mode (if available in message) */\n dataMode?: DataMode;\n /** Operation path key (if available) */\n operationPathKey?: string;\n /** Which contract should be used to resolve the validation DTO */\n validationTarget?: 'canonical-read' | 'operation-response';\n}\n\nfunction optionalValue<T>(value: T | null | undefined): T | undefined {\n return value == null ? undefined : value;\n}\n\n/**\n * Service for validating resource data in WebSocket messages\n */\nexport class WebSocketResourceValidationService {\n private resourcesRegistry: FrontendResourcesRegistry;\n private errorBuilder: ErrorBuilderFrontend;\n\n constructor(resourcesRegistry: FrontendResourcesRegistry) {\n this.resourcesRegistry = resourcesRegistry;\n this.errorBuilder = new ErrorBuilderFrontend();\n }\n\n /**\n * Build a WildoError for WebSocket validation failures\n */\n private buildError(\n customMessageReference: ErrorCustomMessageReference,\n context?: WebSocketMessageContext,\n additionalContext?: Record<string, any>\n ): Error {\n const wildoError = this.errorBuilder.buildWildoError_Frontend(\n ErrorType.INTERNAL,\n { \n customMessageReference, \n operationPathKey: context?.operationPathKey,\n context: {\n ...additionalContext,\n resourceType: context?.resourceType,\n operationIdentifier: context?.operationIdentifier,\n }\n }\n );\n // Attach the WildoError to the Error for downstream handling\n const error = new Error(customMessageReference);\n (error as any).wildoError = wildoError;\n return error;\n }\n\n /**\n * Find an operation in the registry based on context\n */\n private findOperation(\n context: WebSocketMessageContext,\n ): FrontendResourceConfiguration_Operation | null {\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[context.resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n if (!context.operationIdentifier) {\n // If no operation identifier, return null (can't determine operation)\n return null;\n }\n\n const matchingOperations = resourceConfig.operations.filter((op) => (\n String(op.operationIdentifier) === context.operationIdentifier\n && (optionalValue(context.variantType) === undefined || op.variantType === context.variantType)\n && (optionalValue(context.variantKey) === undefined || op.variantKey === context.variantKey)\n && (optionalValue(context.isOperationDefault) === undefined || Boolean(op.isOperationDefault) === context.isOperationDefault)\n && (optionalValue(context.isBulkOperation) === undefined || (op.isBulkOperation === true) === context.isBulkOperation)\n ));\n if (matchingOperations.length === 1) {\n return matchingOperations[0]!;\n }\n\n const defaultNonBulkOperations = matchingOperations.filter((op) => (\n op.isOperationDefault === true && op.isBulkOperation !== true\n ));\n if (defaultNonBulkOperations.length === 1) {\n return defaultNonBulkOperations[0]!;\n }\n\n return null;\n }\n\n private findOperationByPathKey(\n resourceType: string,\n operationPathKey?: string,\n ): FrontendResourceConfiguration_Operation | null {\n if (!operationPathKey) {\n return null;\n }\n\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n try {\n return resourceConfig.operations.find((operation) => (\n ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation) === operationPathKey\n )) ?? null;\n } catch {\n return null;\n }\n }\n\n private resolveOperation(context: WebSocketMessageContext): FrontendResourceConfiguration_Operation | null {\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[context.resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n const operationFromPath = this.findOperationByPathKey(context.resourceType, context.operationPathKey);\n if (operationFromPath) {\n if (\n context.validationTarget === 'canonical-read'\n && ResourceOperationsUtils.getCoreResourceOperationFromOperation(operationFromPath) !== CoreResourceOperation.READ\n ) {\n return null;\n }\n return operationFromPath;\n }\n\n if (context.validationTarget === 'canonical-read') {\n return null;\n }\n\n return this.findOperation(context);\n }\n\n /**\n * Select the appropriate response DTO based on dataMode\n * @param operation - The operation configuration\n * @param dataMode - The data mode (RAW, SUMMARY, CONTEXT)\n * @returns The selected Zod schema for validation, or null if no DTO is available\n */\n private selectResponseDto(\n operation: FrontendResourceConfiguration_Operation,\n dataMode?: DataMode\n ): z.ZodSchema<any> | null {\n return ResourcesConfigOperationsDtosBuilderUtils.selectResponseDto(operation, dataMode);\n }\n\n /**\n * Validate resource data against the selected DTO\n * @param resourceData - The resource data to validate\n * @param schema - The Zod schema to validate against\n * @param context - WebSocket message context for error reporting\n * @returns Validated resource data\n * @throws Error if validation fails\n */\n private validateResourceData<TData>(\n resourceData: any,\n schema: z.ZodSchema<any> | null,\n context?: WebSocketMessageContext\n ): TData {\n // If no schema is available, return data as-is (backward compatibility)\n if (!schema) {\n return resourceData as TData;\n }\n\n try {\n return schema.parse(resourceData) as TData;\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n validationErrors: error.issues,\n resourceData: resourceData\n }\n );\n }\n throw error;\n }\n }\n\n /**\n * Validate resource data from a WebSocket message\n * \n * This method should be called when resource data is included in WebSocket payloads\n * (e.g., in custom events or when Phase 7.1 is implemented).\n * \n * @param resourceData - The resource data to validate\n * @param context - WebSocket message context\n * @returns Validated resource data\n * @throws Error if validation fails\n */\n public validateWebSocketResourceData<TData = any>(\n resourceData: any,\n context: WebSocketMessageContext\n ): TData {\n const operation = this.resolveOperation(context);\n const requiresStrictValidation = context.validationTarget != null;\n\n if (!operation) {\n if (requiresStrictValidation) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n message: 'Unable to resolve websocket validation operation',\n resourceData,\n },\n );\n }\n return resourceData as TData;\n }\n\n // Select appropriate DTO based on dataMode\n const responseDto = this.selectResponseDto(operation, context.dataMode);\n if (!responseDto && requiresStrictValidation) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n message: 'Unable to resolve websocket validation DTO',\n resourceData,\n operationIdentifier: operation.operationIdentifier,\n },\n );\n }\n\n // Validate and return\n return this.validateResourceData<TData>(resourceData, responseDto, context);\n }\n\n /**\n * Validate resource data array from a WebSocket message\n * Useful for bulk operations or list updates\n * \n * @param resourceDataArray - Array of resource data to validate\n * @param context - WebSocket message context\n * @returns Validated array of resource data\n * @throws Error if validation fails\n */\n public validateWebSocketResourceDataArray<TData = any>(\n resourceDataArray: any[],\n context: WebSocketMessageContext\n ): TData[] {\n return resourceDataArray.map((item, index) => {\n try {\n return this.validateWebSocketResourceData<TData>(item, context);\n } catch (error) {\n // Enhance error with array index context\n if (error instanceof Error && (error as any).wildoError) {\n const enhancedContext: WebSocketMessageContext = {\n ...context,\n operationPathKey: context.operationPathKey \n ? `${context.operationPathKey}[${index}]`\n : `[${index}]`\n };\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n enhancedContext,\n {\n arrayIndex: index,\n originalError: error\n }\n );\n }\n throw error;\n }\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"websocket-resource-validation.frontend.service.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/websocket-resource-validation.frontend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * WebSocket Resource Validation Service\n * \n * Provides DTO validation for resource data received via WebSocket messages.\n * Similar to HTTP client validation, but for WebSocket payloads.\n * \n * Note: RMM resource-room sync payloads now do include replay-grade resource\n * data and use this service on a strict canonical-read validation path. Looser\n * websocket consumers such as some custom-event flows may still opt into the\n * older backward-compatible pass-through behavior when they do not request a\n * strict validation target.\n */\n\nimport { z } from 'zod';\nimport {\n CoreResourceOperation,\n DataMode,\n ResourceOperationVariantType,\n ResourceOperationsUtils,\n ResourcesConfigOperationsDtosBuilderUtils,\n ResourcesConfig_OperationPathUtils,\n} from '@wildo-ai/saas-models';\nimport type { FrontendResourcesRegistry, FrontendResourceConfiguration_Operation } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { ErrorBuilderFrontend } from '~wildo-frontend-lib/core/errors/errors-builder.frontend.services';\nimport { ErrorType, ErrorCustomMessageReference } from '@wildo-ai/saas-models';\n\n/**\n * WebSocket message context for validation\n */\nexport interface WebSocketMessageContext {\n /** Resource type */\n resourceType: string;\n /** Operation identifier */\n operationIdentifier?: string;\n /** Concrete operation variant type when no operation path key is available */\n variantType?: ResourceOperationVariantType;\n /** Concrete named variant when no operation path key is available */\n variantKey?: string;\n /** Concrete defaultness when no operation path key is available */\n isOperationDefault?: boolean;\n /** Concrete bulk flag when no operation path key is available */\n isBulkOperation?: boolean;\n /** Data mode (if available in message) */\n dataMode?: DataMode;\n /** Operation path key (if available) */\n operationPathKey?: string;\n /** Which contract should be used to resolve the validation DTO */\n validationTarget?: 'canonical-read' | 'operation-response';\n}\n\nfunction optionalValue<T>(value: T | null | undefined): T | undefined {\n return value == null ? undefined : value;\n}\n\n/**\n * Service for validating resource data in WebSocket messages\n */\nexport class WebSocketResourceValidationService {\n private resourcesRegistry: FrontendResourcesRegistry;\n private errorBuilder: ErrorBuilderFrontend;\n\n constructor(resourcesRegistry: FrontendResourcesRegistry) {\n this.resourcesRegistry = resourcesRegistry;\n this.errorBuilder = new ErrorBuilderFrontend();\n }\n\n /**\n * Build a WildoError for WebSocket validation failures\n */\n private buildError(\n customMessageReference: ErrorCustomMessageReference,\n context?: WebSocketMessageContext,\n additionalContext?: Record<string, any>\n ): Error {\n const wildoError = this.errorBuilder.buildWildoError_Frontend(\n ErrorType.INTERNAL,\n { \n customMessageReference, \n operationPathKey: context?.operationPathKey,\n context: {\n ...additionalContext,\n resourceType: context?.resourceType,\n operationIdentifier: context?.operationIdentifier,\n }\n }\n );\n // Attach the WildoError to the Error for downstream handling\n const error = new Error(customMessageReference);\n (error as any).wildoError = wildoError;\n return error;\n }\n\n /**\n * Find an operation in the registry based on context\n */\n private findOperation(\n context: WebSocketMessageContext,\n ): FrontendResourceConfiguration_Operation | null {\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[context.resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n if (!context.operationIdentifier) {\n // If no operation identifier, return null (can't determine operation)\n return null;\n }\n\n const matchingOperations = resourceConfig.operations.filter((op) => (\n String(op.operationIdentifier) === context.operationIdentifier\n && (optionalValue(context.variantType) === undefined || op.variantType === context.variantType)\n && (optionalValue(context.variantKey) === undefined || op.variantKey === context.variantKey)\n && (optionalValue(context.isOperationDefault) === undefined || Boolean(op.isOperationDefault) === context.isOperationDefault)\n && (optionalValue(context.isBulkOperation) === undefined || (op.isBulkOperation === true) === context.isBulkOperation)\n ));\n if (matchingOperations.length === 1) {\n return matchingOperations[0]!;\n }\n\n const defaultNonBulkOperations = matchingOperations.filter((op) => (\n op.isOperationDefault === true && op.isBulkOperation !== true\n ));\n if (defaultNonBulkOperations.length === 1) {\n return defaultNonBulkOperations[0]!;\n }\n\n return null;\n }\n\n private findOperationByPathKey(\n resourceType: string,\n operationPathKey?: string,\n ): FrontendResourceConfiguration_Operation | null {\n if (!operationPathKey) {\n return null;\n }\n\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n try {\n return resourceConfig.operations.find((operation) => (\n ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation) === operationPathKey\n )) ?? null;\n } catch {\n return null;\n }\n }\n\n private resolveOperation(context: WebSocketMessageContext): FrontendResourceConfiguration_Operation | null {\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[context.resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n const operationFromPath = this.findOperationByPathKey(context.resourceType, context.operationPathKey);\n if (operationFromPath) {\n if (\n context.validationTarget === 'canonical-read'\n && ResourceOperationsUtils.getCoreResourceOperationFromOperation(operationFromPath) !== CoreResourceOperation.READ\n ) {\n return null;\n }\n return operationFromPath;\n }\n\n if (context.validationTarget === 'canonical-read') {\n return null;\n }\n\n return this.findOperation(context);\n }\n\n /**\n * Select the appropriate response DTO based on dataMode\n * @param operation - The operation configuration\n * @param dataMode - The data mode (RAW, SUMMARY, CONTEXT)\n * @returns The selected Zod schema for validation, or null if no DTO is available\n */\n private selectResponseDto(\n operation: FrontendResourceConfiguration_Operation,\n dataMode?: DataMode\n ): z.ZodSchema<any> | null {\n return ResourcesConfigOperationsDtosBuilderUtils.selectResponseDto(operation, dataMode);\n }\n\n /**\n * Validate resource data against the selected DTO\n * @param resourceData - The resource data to validate\n * @param schema - The Zod schema to validate against\n * @param context - WebSocket message context for error reporting\n * @returns Validated resource data\n * @throws Error if validation fails\n */\n private validateResourceData<TData>(\n resourceData: any,\n schema: z.ZodSchema<any> | null,\n context?: WebSocketMessageContext\n ): TData {\n // If no schema is available, return data as-is (backward compatibility)\n if (!schema) {\n return resourceData as TData;\n }\n\n try {\n return schema.parse(resourceData) as TData;\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n validationErrors: error.issues,\n resourceData: resourceData\n }\n );\n }\n throw error;\n }\n }\n\n /**\n * Validate resource data from a WebSocket message\n * \n * This method should be called when resource data is included in WebSocket payloads\n * (e.g., in custom events or when Phase 7.1 is implemented).\n * \n * @param resourceData - The resource data to validate\n * @param context - WebSocket message context\n * @returns Validated resource data\n * @throws Error if validation fails\n */\n public validateWebSocketResourceData<TData = any>(\n resourceData: any,\n context: WebSocketMessageContext\n ): TData {\n const operation = this.resolveOperation(context);\n const requiresStrictValidation = context.validationTarget != null;\n\n if (!operation) {\n if (requiresStrictValidation) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n message: 'Unable to resolve websocket validation operation',\n resourceData,\n },\n );\n }\n return resourceData as TData;\n }\n\n // Select appropriate DTO based on dataMode\n const responseDto = this.selectResponseDto(operation, context.dataMode);\n if (!responseDto && requiresStrictValidation) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n message: 'Unable to resolve websocket validation DTO',\n resourceData,\n operationIdentifier: operation.operationIdentifier,\n },\n );\n }\n\n // Validate and return\n return this.validateResourceData<TData>(resourceData, responseDto, context);\n }\n\n /**\n * Validate resource data array from a WebSocket message\n * Useful for bulk operations or list updates\n * \n * @param resourceDataArray - Array of resource data to validate\n * @param context - WebSocket message context\n * @returns Validated array of resource data\n * @throws Error if validation fails\n */\n public validateWebSocketResourceDataArray<TData = any>(\n resourceDataArray: any[],\n context: WebSocketMessageContext\n ): TData[] {\n return resourceDataArray.map((item, index) => {\n try {\n return this.validateWebSocketResourceData<TData>(item, context);\n } catch (error) {\n // Enhance error with array index context\n if (error instanceof Error && (error as any).wildoError) {\n const enhancedContext: WebSocketMessageContext = {\n ...context,\n operationPathKey: context.operationPathKey \n ? `${context.operationPathKey}[${index}]`\n : `[${index}]`\n };\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n enhancedContext,\n {\n arrayIndex: index,\n originalError: error\n }\n );\n }\n throw error;\n }\n });\n }\n}\n"]}
|