@wildo-ai/saas-frontend-lib 1.1.9 → 1.1.10
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/companion-exports.d.ts.map +1 -1
- package/dist/esm/companion-runtime-exports.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-button.d.ts.map +1 -1
- package/dist/esm/components/actions/button-group.d.ts.map +1 -1
- package/dist/esm/components/actions/button.d.ts.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.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/code-block.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/diff-block.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/image.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/web-preview.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/message.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/prompt-input.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/sources.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/suggestion.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/confirmation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/queue.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/connection.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/controls.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/edge.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/panel.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/toolbar.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/agent-wrappers.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/model-selector.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/loader.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/shimmer.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/stream/execution-stream.d.ts.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/checkpoint.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/inline-citation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/plan.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/reasoning.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_ConsentGate.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_ConsentGate.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_DocumentAcceptanceGate.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_DocumentAcceptanceGate.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_ErrorBoundary.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_ErrorBoundary.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_Home.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_Home.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_MainContainer.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_NotificationCenter.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_RouterErrorBoundary.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_RouterErrorBoundary.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppPage_Home.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts +18 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts.map +1 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.js +8 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.js.map +1 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts +3 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts.map +1 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js +38 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js.map +1 -0
- package/dist/esm/components/app/PublicLayout_MainContainer.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_StaticContentContainer.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_StaticContentContainer.labels.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_Terms.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_Terms.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_AuthCallback.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_AuthCallback.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_ConfirmEmail.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_ConfirmEmail.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MagicLinkVerify.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MagicLinkVerify.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MfaChallenge.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MfaChallenge.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLoggedOut.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLoggedOut.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OneOffSession.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OneOffSession.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OrganizationOnboarding.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OrganizationOnboarding.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts.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.labels.d.ts.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_Read_SsoSaml.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/PhoneEnrollmentMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/TotpEnrollmentMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/enrollment-method-components.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/EmailOtpAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/MagicLinkAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/OrgOidcAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/PasskeyAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/PasswordAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/SmsOtpAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/TotpAuthMethod.d.ts.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-presentation.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_AuthCallback.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_AuthExchange.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_ConfirmEmail.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_EnrollmentRequired.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Invitation.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_MagicLinkVerify.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_MfaChallenge.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthConsent.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthLoggedOut.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthLogoutConfirm.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OneOffSession.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OrganizationOnboarding.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_PasswordLost.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_ReAuthenticationCallback.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/AuthMethodChoiceList.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/AuthMethodIcon.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/AuthSecondaryLink.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/AuthSingleFieldFormLayout.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/OAuthProvidersSection.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/PasswordStrengthIndicator.d.ts.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/resolvePasswordViolationsToLabels.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/useMfaContinuationNavigation.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
- package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.d.ts.map +1 -1
- package/dist/esm/components/data-display/AutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayTemplateContext.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/automatic-displayer.utils.d.ts.map +1 -1
- package/dist/esm/components/data-display/avatar.d.ts.map +1 -1
- package/dist/esm/components/data-display/badge-tone.d.ts.map +1 -1
- package/dist/esm/components/data-display/badge.d.ts.map +1 -1
- package/dist/esm/components/data-display/chart-echarts.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayChromeContext.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/data-display/description-list.d.ts.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-resolved-props.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-resource-link-trail.d.ts.map +1 -1
- package/dist/esm/components/data-display/duration.d.ts.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/external-data-provenance.frontend.d.ts.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts.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-bigdecimal.d.ts.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-code.d.ts.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-datetime.d.ts.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-enum.d.ts.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-document.d.ts.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-image.d.ts.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.d.ts.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-money.d.ts.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-phone.d.ts.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-date.d.ts.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-money.d.ts.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-time.d.ts.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-time.d.ts.map +1 -1
- package/dist/esm/components/data-display/identifier.d.ts.map +1 -1
- package/dist/esm/components/data-display/kbd.d.ts.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.d.ts.map +1 -1
- package/dist/esm/components/data-display/timeline.d.ts.map +1 -1
- package/dist/esm/components/data-display/useFileActivation.d.ts.map +1 -1
- package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/danger-zone.d.ts.map +1 -1
- package/dist/esm/components/feedback/empty-display-policy.utils.d.ts.map +1 -1
- package/dist/esm/components/feedback/empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/error-display.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.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-prompt.d.ts.map +1 -1
- package/dist/esm/components/feedback/lazy-door-error-boundary.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -1
- package/dist/esm/components/feedback/notification-center.d.ts.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
- package/dist/esm/components/feedback/progress.d.ts.map +1 -1
- package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/skeleton-text.d.ts.map +1 -1
- package/dist/esm/components/feedback/skeleton.d.ts.map +1 -1
- package/dist/esm/components/feedback/toast.d.ts.map +1 -1
- package/dist/esm/components/files/Files_UploadGrantDrop.d.ts.map +1 -1
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.d.ts.map +1 -1
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/actor.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/actor.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.labels.d.ts.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.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.labels.d.ts.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.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.labels.d.ts.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.lazy.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.labels.d.ts.map +1 -1
- package/dist/esm/components/form/Form.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutosaveContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldComposite.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldRecord.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormTemplateContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/GeneratedAssociationRelationshipField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/GeneratedReferenceRelationshipField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.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-indicator.d.ts.map +1 -1
- package/dist/esm/components/form/automated/autosave-indicator.utils.d.ts.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/field-clearing-rule.frontend.utils.d.ts.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/generated-relationship-field.helpers.d.ts.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.shared.d.ts.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormChromeContext.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/field.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/form-primitives.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/switch.d.ts.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.d.ts.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/date-range-picker.d.ts.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/datetime-picker.d.ts.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/time-picker.d.ts.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/enum/radio.d.ts.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.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.d.ts.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-upload.d.ts.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/form-field-checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.d.ts.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/input-otp.d.ts.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.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
- package/dist/esm/components/form/feedback/RemoteChangeNotification.d.ts.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/form-field-address.d.ts.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-bigdecimal.d.ts.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-boolean.d.ts.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-code.d.ts.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-date.d.ts.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-datetime.d.ts.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-duration.d.ts.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-enum.d.ts.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-file-provider-constraints.frontend.utils.d.ts.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.labels.d.ts.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.labels.d.ts.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.labels.d.ts.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.labels.d.ts.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.labels.d.ts.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.labels.d.ts.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.labels.d.ts.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.labels.d.ts.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.labels.d.ts.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.labels.d.ts.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.d.ts.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-time.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.labels.d.ts.map +1 -1
- package/dist/esm/components/form/form-context.d.ts.map +1 -1
- package/dist/esm/components/form/form-context.utils.d.ts.map +1 -1
- package/dist/esm/components/form/form-field-types.d.ts.map +1 -1
- package/dist/esm/components/form/useFormSchemaContext.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.d.ts.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-validation.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/getFieldError.d.ts.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/useFieldUniquenessValidation.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/useServerErrorInjection.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/validate-field-url.frontend.d.ts.map +1 -1
- package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -1
- package/dist/esm/components/layout/carousel.d.ts.map +1 -1
- package/dist/esm/components/layout/divider.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.d.ts.map +1 -1
- package/dist/esm/components/layout/scroll-area.d.ts.map +1 -1
- package/dist/esm/components/layout/separator.d.ts.map +1 -1
- package/dist/esm/components/navigation/NavigationItemBadge.d.ts.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_CommandMenu.d.ts.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_MenuBar.d.ts.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_NavigationBack.d.ts.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_QuickActionButton.d.ts.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_Sidebar.d.ts.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_Toolbar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts.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 +5 -27
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.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/useActivityBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useControlPanelBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickActionButtonBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useToolbarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/navigation/command.d.ts.map +1 -1
- package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -1
- package/dist/esm/components/navigation/navbar.d.ts.map +1 -1
- package/dist/esm/components/navigation/sidebar.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/OverlayContainer.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/OverlayContainer.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.shared-types.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/navigation-overlay-container.utils.d.ts.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/sheet.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/menu.shared-types.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionAchievementBadge.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionAchievementBadge.labels.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/CollectionSelectionControls.d.ts.map +1 -1
- package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts.map +1 -1
- package/dist/esm/components/resources/EphemeralFieldsRevealDialog.d.ts.map +1 -1
- package/dist/esm/components/resources/InlineSearchInput.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.js +16 -7
- 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/ResourceCollectionToolbar.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceInPlaceOperationRow.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts +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.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts +6 -0
- package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.js +36 -0
- 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.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_InsertedViews.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.js +1 -0
- 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_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Pagination.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Pagination.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read_Expandable.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SortControl.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionPopover.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOperationDetachedHost.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOwnedViewEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.d.ts.map +1 -1
- package/dist/esm/components/resources/card-action-placement.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/collection-view-mode.frontend.d.ts.map +1 -1
- package/dist/esm/components/resources/component-props.resources-layout.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ComposedChildrenRegistry.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceHostContext.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts.map +1 -1
- package/dist/esm/components/resources/inserted-resource-view.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/resource-operation-custom-view.contracts.d.ts.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayDiscriminatorSwitch.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormErrorSummarySlot.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Group.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionPresentationContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SubmitButton.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryTitle.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.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.utils.d.ts.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/ResourceFieldEditPreset_ResourceReference_Default.d.ts.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_Search.d.ts.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/ResourceFieldEdit_ResourceReference.d.ts.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/useResourceSearch.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/accordion.d.ts.map +1 -1
- package/dist/esm/components/sections/card.d.ts.map +1 -1
- package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
- package/dist/esm/components/sections/content-section.d.ts.map +1 -1
- package/dist/esm/components/sections/pagination.d.ts.map +1 -1
- package/dist/esm/components/sections/section-grouping.shared.d.ts.map +1 -1
- package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.d.ts.map +1 -1
- package/dist/esm/components/sections/surface.d.ts.map +1 -1
- package/dist/esm/components/sections/table.d.ts.map +1 -1
- package/dist/esm/components/sections/tabs.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsSectionNavigationHost.d.ts.map +1 -1
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -1
- package/dist/esm/components/typography/heading.d.ts.map +1 -1
- package/dist/esm/components/typography/label.d.ts.map +1 -1
- package/dist/esm/components/typography/link.d.ts.map +1 -1
- package/dist/esm/components/typography/text.d.ts.map +1 -1
- package/dist/esm/components/typography/truncated-text.d.ts.map +1 -1
- package/dist/esm/components/views/ViewLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/views/ViewNotFound.d.ts.map +1 -1
- package/dist/esm/components/views/ViewNotFound.labels.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartEmptyState.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartErrorState.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartLoadingSkeleton.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.d.ts.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.lazy.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartWidget.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartWidget.labels.d.ts.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-runtime.utils.d.ts.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-view.utils.d.ts.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/enum-color-bridge.d.ts.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/builders/bar-family.builder.d.ts.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/funnel.builder.d.ts.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/heatmap.builder.d.ts.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/line-family.builder.d.ts.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/pie-family.builder.d.ts.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/sankey.builder.d.ts.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/statistical-family.builder.d.ts.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/echarts-option-builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/useResourceChartData.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeView.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeViewContext.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/useHostRecordDerivedParentContext.d.ts.map +1 -1
- package/dist/esm/components/views/execution-view/ExecutionView.d.ts.map +1 -1
- package/dist/esm/components/views/execution-view/ExecutionView.labels.d.ts.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.labels.d.ts.map +1 -1
- package/dist/esm/components/views/full-custom-view/FullCustomView.d.ts.map +1 -1
- package/dist/esm/components/views/onboarding-view/OnboardingView.d.ts.map +1 -1
- package/dist/esm/components/views/onboarding-view/OnboardingView.labels.d.ts.map +1 -1
- package/dist/esm/components/views/onboarding-view/onboarding-view.utils.d.ts.map +1 -1
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -1
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts.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.utils.d.ts.map +1 -1
- package/dist/esm/core/app-shell/hosted-components.utils.d.ts.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.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.utils.d.ts.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/default-layout-generator.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingErrorNotifier.d.ts.map +1 -1
- package/dist/esm/core/billing/billing-launcher.d.ts.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/billing/useBilling.d.ts.map +1 -1
- package/dist/esm/core/billing/useBillingAction.d.ts.map +1 -1
- package/dist/esm/core/billing/useBillingPlanChange.d.ts.map +1 -1
- package/dist/esm/core/billing/useSafeBillingActionExecutor.d.ts.map +1 -1
- package/dist/esm/core/branding/useBrandIdentity.d.ts.map +1 -1
- package/dist/esm/core/branding/useBrandPresentation.d.ts.map +1 -1
- package/dist/esm/core/commons/devices.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/companion/companion-exports.frontend.definitions.d.ts.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/component-registry-loader.frontend.service.d.ts.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.service.d.ts.map +1 -1
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.d.ts.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/register-framework-layouts.d.ts.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +20 -0
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +10 -10
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/composite-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/config-merge-utilities.d.ts +11 -3
- package/dist/esm/core/config/config-merge-utilities.d.ts.map +1 -1
- package/dist/esm/core/config/config-merge-utilities.js +19 -5
- 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 +2 -0
- 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/flows-actors-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/full-custom-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/inserted-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +58 -25
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.js +5 -13
- 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/resource-owned-view-resolution.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts +3 -2
- 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 +7 -4
- 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.frontend.schemas.d.ts +12 -5
- 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/useVisibleSettingsHubConfig.d.ts.map +1 -1
- package/dist/esm/core/config/verify-feature-references.frontend.d.ts.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.d.ts +16 -2
- package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.js +61 -2
- package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
- package/dist/esm/core/config/verify-settings-hub-content.d.ts.map +1 -1
- package/dist/esm/core/config/view-label-declaration.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/views-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/enums/common-enum-registry.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorModalContent.d.ts.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/errors/error-management.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
- package/dist/esm/core/errors/errors.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/errors/http-error-behavior.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/errors/useError.d.ts.map +1 -1
- package/dist/esm/core/errors/useUserFacingErrorMessage.d.ts.map +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/errors/withErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/events/EventBusContext.d.ts.map +1 -1
- package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
- package/dist/esm/core/events/event-bus.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/notification-display-policy.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/useEventBus.d.ts.map +1 -1
- package/dist/esm/core/events/useNotification.d.ts.map +1 -1
- package/dist/esm/core/execution/ExecutionDirtyMarkerScopeContext.d.ts.map +1 -1
- package/dist/esm/core/execution/ExecutionRuntimeContext.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-anchor.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-dirty-markers.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-failure-handling.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-outcome-emission.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-participation.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecution.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionDirtyBridge.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationDataPrefetch.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationPrefetch.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationContextBuilder.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.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-registry.frontend.service.d.ts.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-file-selection.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -1
- package/dist/esm/core/features/FeatureGate.d.ts.map +1 -1
- package/dist/esm/core/features/FeatureRouteGuard.d.ts.map +1 -1
- package/dist/esm/core/features/FeaturesContext.d.ts.map +1 -1
- package/dist/esm/core/features/feature-gate-surface.example.d.ts.map +1 -1
- package/dist/esm/core/features/feature-unavailability.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/features/useFeatureAvailability.d.ts.map +1 -1
- package/dist/esm/core/features/useFeatureGate.d.ts.map +1 -1
- package/dist/esm/core/features/useFeatures.d.ts.map +1 -1
- package/dist/esm/core/features/useOperationFeatureAvailability.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/useFlowsActors.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceContext.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
- package/dist/esm/core/guidance/guidance-audience.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/guidance/guidance-resource-compiler.shared.utils.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBadge.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBadge.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBanner.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBanner.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceCard.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceCard.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceModal.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceModal.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceSurvey.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceSurvey.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTooltip.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTooltip.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTour.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTour.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/useGuidance.d.ts.map +1 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts.map +1 -1
- package/dist/esm/core/hotkey/HotkeyRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/hotkey/HotkeyShortcutsHelpDialog.d.ts.map +1 -1
- package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.d.ts.map +1 -1
- package/dist/esm/core/hotkey/useHotkey.d.ts.map +1 -1
- package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/operation-title-resolution.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
- package/dist/esm/core/icons/IconRegistryBridge.d.ts.map +1 -1
- package/dist/esm/core/icons/IconRegistryContext.d.ts.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.schemas.d.ts.map +1 -1
- package/dist/esm/core/icons/useIconRegistry.d.ts.map +1 -1
- package/dist/esm/core/loading/AppLoadingGate.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingBarrier.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
- package/dist/esm/core/loading/loading-policy.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/loading/loading-scope.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/loading/resolveLoadingPolicy.d.ts.map +1 -1
- package/dist/esm/core/loading/useAppLoading.d.ts.map +1 -1
- package/dist/esm/core/loading/useComponentLoading.d.ts.map +1 -1
- package/dist/esm/core/loading/useEmitLoadingScope.d.ts.map +1 -1
- package/dist/esm/core/loading/useLoading.d.ts.map +1 -1
- package/dist/esm/core/mode/AppModeContext.d.ts.map +1 -1
- package/dist/esm/core/mode/section-visibility.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsScopeBridge.d.ts.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/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/useAnalytics.d.ts.map +1 -1
- package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/monitoring/logger.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.d.ts +9 -1
- package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js +33 -6
- package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
- package/dist/esm/core/navigation/launcher-runtime-availability.d.ts +21 -5
- package/dist/esm/core/navigation/launcher-runtime-availability.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-runtime-availability.js +40 -7
- 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-clean-break.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/primary-destination-layout.d.ts.map +1 -1
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts +8 -0
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts.map +1 -0
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.js +27 -0
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.js.map +1 -0
- package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts +7 -0
- package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/useLauncherResolutionContext.js +39 -2
- 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/useNavigationRouterSync.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationState.d.ts.map +1 -1
- package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
- package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts.map +1 -1
- package/dist/esm/core/navigation/useTransactionAwareSyncRetry.d.ts.map +1 -1
- package/dist/esm/core/navigation/view-title-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-collapse-migration.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-content-geometry.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-emphasis.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-empty-behavior.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -1
- package/dist/esm/core/requests/api-readiness-checker.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/client-instance-id.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/ConnectionStatusNotifier.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useResourceRoom.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useWebSocket.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.d.ts.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-resources.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceOperationViewContext.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceOperationViewProvider.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceReadCacheBridge.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.d.ts.map +1 -1
- package/dist/esm/core/resources/bulk-failure-grouping.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts +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 +29 -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 +22 -8
- 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 +99 -37
- 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/ephemeral-fields.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/file-serve-url.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts.map +1 -1
- package/dist/esm/core/resources/in-place/InPlaceOperationContext.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-initiator-satisfaction.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-quick-create.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts.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-operation-view.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-path.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-read-cache.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts +72 -23
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.js +49 -18
- 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/RMMRegistry.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/RMMWebSocketBridge.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/canonical-read.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/mutation-error-report.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/rmm-noop-snapshot.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/types.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useListInvalidation.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useRMMEventHandler.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useRMMSnapshot.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
- package/dist/esm/core/resources/useAuthedFileObjectUrl.frontend.hook.d.ts.map +1 -1
- package/dist/esm/core/resources/useBulkJobProgress.d.ts.map +1 -1
- package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts.map +1 -1
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -1
- package/dist/esm/core/resources/useOperationEnabled.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceLabels.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.d.ts +2 -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/useResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceRegistry.d.ts.map +1 -1
- package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
- package/dist/esm/core/runtime/AppRouter.js +3 -2
- 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/ApplicationMainContext.d.ts.map +1 -1
- package/dist/esm/core/runtime/StartupFailureScreen.d.ts.map +1 -1
- package/dist/esm/core/runtime/app-config-overrides.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/frontend-companion-resource-inputs.d.ts.map +1 -1
- package/dist/esm/core/runtime/routes.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/runtime.frontend.schemas.d.ts.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 +3 -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/useApplication.d.ts.map +1 -1
- package/dist/esm/core/scope/AppScopeContext.d.ts.map +1 -1
- package/dist/esm/core/scope/scope.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/scope/scope.utils.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/scope/useAppScope.d.ts.map +1 -1
- package/dist/esm/core/security/AnonymousSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
- package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/auth-session.utils.d.ts.map +1 -1
- package/dist/esm/core/security/consent-gate.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/cross-frontend-handoff.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/security/federated-reauthentication.frontend.d.ts.map +1 -1
- package/dist/esm/core/security/organization-onboarding.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/registration-outcome.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/security.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/security/useAuthSession.d.ts.map +1 -1
- package/dist/esm/core/security/useConsentGateBehavior.d.ts.map +1 -1
- package/dist/esm/core/security/useDocumentAcceptanceGateBehavior.d.ts.map +1 -1
- package/dist/esm/core/security/useGrantedConsentPurposes.d.ts.map +1 -1
- package/dist/esm/core/security/useResolvedAuthConfig.d.ts.map +1 -1
- package/dist/esm/core/security/useRouteOrganizationAccess.d.ts.map +1 -1
- package/dist/esm/core/security/useStepUpAuth.d.ts.map +1 -1
- package/dist/esm/core/security/useUserOrgs.d.ts.map +1 -1
- package/dist/esm/core/ui/SurfaceErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/ui/SurfaceErrorBoundary.labels.d.ts.map +1 -1
- package/dist/esm/core/ui/SurfacePolicyContext.d.ts.map +1 -1
- package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
- package/dist/esm/core/ui/chart-style-defaults.d.ts.map +1 -1
- package/dist/esm/core/ui/design-token-config.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/design-token.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/material-runtime.d.ts.map +1 -1
- package/dist/esm/core/ui/surface-a11y.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts +6 -0
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/ui/useThemePreferenceControl.d.ts.map +1 -1
- package/dist/esm/core/ui/useUI.d.ts.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -1
- package/dist/esm/testing/mock-builders.d.ts.map +1 -1
- package/dist/esm/testing/rmm-helpers.d.ts.map +1 -1
- package/dist/esm/testing/test-providers.d.ts.map +1 -1
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.frontend.service.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"logger.frontend.service.d.ts","sourceRoot":"","sources":["../../../../src/core/monitoring/logger.frontend.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,qBAAqB;IAMpB,OAAO,CAAC,mBAAmB;IALvC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsC;gBAEzC,mBAAmB,UAAO;IAE9C,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI;IAQnE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAI3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAI1C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAI1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAI3C;;OAEG;IACH,OAAO,CAAC,GAAG;IAsBX;;OAEG;IACH,OAAO,CAAC,eAAe;IA0BvB;;OAEG;IACH,aAAa,CAAC,KAAK,SAAM,GAAG,QAAQ,EAAE;IAItC;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,MAAM,CAAC,YAAY;WAOb,SAAS,IAAI,qBAAqB;CAGjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationContentAreas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"NavigationContentAreas.d.ts","sourceRoot":"","sources":["../../../../src/core/navigation/NavigationContentAreas.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationContext.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"NavigationContext.d.ts","sourceRoot":"","sources":["../../../../src/core/navigation/NavigationContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAA2E,MAAM,OAAO,CAAC;AAIhG,OAAO,EAAwB,kBAAkB,EAAwB,MAAM,uBAAuB,CAAC;AAYvG,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EAEpB,cAAc,EACd,iBAAiB,EAGlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAgB1E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,eAAe,CAAC;IAEvB,YAAY,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,mBAAmB,CAAC;IAC5D,YAAY,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,CAAC;IAC/C,aAAa,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,iBAAiB,GAAG,SAAS,CAAC;IACvE,WAAW,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,oBAAoB,GAAG,SAAS,CAAC;IACxE,aAAa,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC;IAEjD,yBAAyB,EAAE,MAAM,CAAC;IAClC,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAErD;;;;OAIG;IACH,WAAW,EAAE,kBAAkB,CAAC;IAChC,cAAc,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEnD;;;;;;;;;;OAUG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAElE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,iBAAiB,EAAE,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,CAAC;IAE7D;;;;;;;;;;OAUG;IACH,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAEzD;;;;;OAKG;IACH,uBAAuB,EAAE,CAAC,UAAU,EAAE,wBAAwB,EAAE,KAAK,IAAI,CAAC;CAC3E;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAA+D,CAAC;AAM/I,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CA07B5F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationRequestBridge.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"NavigationRequestBridge.d.ts","sourceRoot":"","sources":["../../../../src/core/navigation/NavigationRequestBridge.tsx"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAiC9C"}
|
|
@@ -69,6 +69,13 @@ export interface LauncherResolutionContext {
|
|
|
69
69
|
*/
|
|
70
70
|
t: (key: string) => string;
|
|
71
71
|
renderIcon: (refOrRequest: StandardIconReference | string | IconRequest, options?: IconRenderOptions) => React.ReactElement;
|
|
72
|
+
/**
|
|
73
|
+
* Whether the viewer's roles can perform an operation that declares `requiredRoles` (#2674). A launcher entry that
|
|
74
|
+
* opens a resource operation the viewer cannot perform resolves to nothing, so the sidebar does not list a page the
|
|
75
|
+
* backend will refuse. A display gate with the action bar's rule (`userRolesSatisfyRequiredRoles`): it fails OPEN
|
|
76
|
+
* when the viewer holds a role the browser cannot expand, and the backend stays the authority. Absent: no role gate.
|
|
77
|
+
*/
|
|
78
|
+
canPerformOperation?: (requiredRoles: readonly string[] | undefined) => boolean;
|
|
72
79
|
}
|
|
73
80
|
/**
|
|
74
81
|
* Core resolved navigation target — the output of `resolveItemRef()`.
|
|
@@ -221,7 +228,8 @@ export declare function resolveItemRef(item: LauncherItemRef, ctx: LauncherResol
|
|
|
221
228
|
*
|
|
222
229
|
* Dispatches on `contentKind`:
|
|
223
230
|
* - `NAVIGATION_LIST`: resolves each `LauncherItemRef` in `children` via `resolveItemRef`
|
|
224
|
-
* - `RESOURCE_BROWSER`: passes through (component-level rendering, no item resolution)
|
|
231
|
+
* - `RESOURCE_BROWSER`: passes through (component-level rendering, no item resolution), unless the viewer's roles
|
|
232
|
+
* cannot perform its bound operation (#2674): then the section is dropped, as a launcher row for it would be
|
|
225
233
|
* - `GUIDANCE_WIDGET`: passes through
|
|
226
234
|
* - `CUSTOM_COMPONENT`: passes through
|
|
227
235
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher-resolution.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"launcher-resolution.d.ts","sourceRoot":"","sources":["../../../../src/core/navigation/launcher-resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,10 +18,12 @@
|
|
|
18
18
|
* @see launcher-operation-binding-analysis.md §4.3, §7.1
|
|
19
19
|
* @see app-shell-implementation-plan.md Step 2
|
|
20
20
|
*/
|
|
21
|
+
import { CoreResourceOperation, } from '@wildo-ai/saas-models';
|
|
21
22
|
import { frontendResourceUtils } from '../../core/resources/frontend-resource.utils.js';
|
|
22
23
|
import { IconCategory, IconSize, StandardIconReference } from '../../core/icons/icon-registry.frontend.schemas.js';
|
|
23
24
|
import { NavigationContentType } from './navigation.schemas.js';
|
|
24
25
|
import { NavigationUtils } from './navigation.utils.js';
|
|
26
|
+
import { resolveSidebarResourceBrowserOperation } from './sidebar-resource-browser-operation.js';
|
|
25
27
|
import { LauncherItemTargetKind, ENGINE_PAGE_METADATA, SidebarSectionContentKind, } from '../../core/config/launcher-items.frontend.schemas.js';
|
|
26
28
|
import { CommonRoutePaths } from '../../core/runtime/routes.frontend.definitions.js';
|
|
27
29
|
import { buildCompositeRouteUrlPath, buildResourceInsertedCompositeIdentity, isStandaloneRoutableCompositeView, isStandaloneRoutableInsertedCompositeView, } from '../../core/config/composite-view.schemas.js';
|
|
@@ -88,6 +90,16 @@ function resolveResourceOperation(item, ctx) {
|
|
|
88
90
|
});
|
|
89
91
|
return null;
|
|
90
92
|
}
|
|
93
|
+
// The SELECTED variant is judged, because it is the one whose route the entry opens. The action bar instead keeps the
|
|
94
|
+
// highest-rights variant a viewer qualifies for; a restrictive default beside a broader non-default variant would
|
|
95
|
+
// differ, and none of the engine's resources declares that shape (defaults are the less-privileged variants).
|
|
96
|
+
if (ctx.canPerformOperation && !ctx.canPerformOperation(operation.roles)) {
|
|
97
|
+
logDebug('Launcher resource operation hidden: the viewer\'s roles cannot perform it', {
|
|
98
|
+
resourceType: item.resourceType,
|
|
99
|
+
operation: item.operation,
|
|
100
|
+
});
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
91
103
|
// Resolve the operation's URL against the current AppScope. A launcher item is
|
|
92
104
|
// surfaced whenever the resource's REQUIRED route parameters are satisfiable
|
|
93
105
|
// from the ambient scope (primary scope + custom/optional context), filling both
|
|
@@ -364,7 +376,8 @@ function resolveSidebarItem(item, ctx) {
|
|
|
364
376
|
*
|
|
365
377
|
* Dispatches on `contentKind`:
|
|
366
378
|
* - `NAVIGATION_LIST`: resolves each `LauncherItemRef` in `children` via `resolveItemRef`
|
|
367
|
-
* - `RESOURCE_BROWSER`: passes through (component-level rendering, no item resolution)
|
|
379
|
+
* - `RESOURCE_BROWSER`: passes through (component-level rendering, no item resolution), unless the viewer's roles
|
|
380
|
+
* cannot perform its bound operation (#2674): then the section is dropped, as a launcher row for it would be
|
|
368
381
|
* - `GUIDANCE_WIDGET`: passes through
|
|
369
382
|
* - `CUSTOM_COMPONENT`: passes through
|
|
370
383
|
*
|
|
@@ -374,19 +387,33 @@ function resolveSidebarItem(item, ctx) {
|
|
|
374
387
|
* @see launcher-operation-binding-analysis.md §3.3.1
|
|
375
388
|
*/
|
|
376
389
|
export function resolveSidebarSections(sections, ctx) {
|
|
377
|
-
return sections.
|
|
390
|
+
return sections.flatMap((section) => {
|
|
378
391
|
switch (section.contentKind) {
|
|
379
392
|
case SidebarSectionContentKind.NAVIGATION_LIST:
|
|
380
|
-
return resolveNavigationListSection(section, ctx);
|
|
393
|
+
return [resolveNavigationListSection(section, ctx)];
|
|
381
394
|
case SidebarSectionContentKind.RESOURCE_BROWSER:
|
|
382
|
-
return resolveResourceBrowserSection(section);
|
|
395
|
+
return viewerCanBrowse(section, ctx) ? [resolveResourceBrowserSection(section)] : [];
|
|
383
396
|
case SidebarSectionContentKind.GUIDANCE_WIDGET:
|
|
384
|
-
return resolveGuidanceWidgetSection(section);
|
|
397
|
+
return [resolveGuidanceWidgetSection(section)];
|
|
385
398
|
case SidebarSectionContentKind.CUSTOM_COMPONENT:
|
|
386
|
-
return resolveCustomComponentSection(section);
|
|
399
|
+
return [resolveCustomComponentSection(section)];
|
|
387
400
|
}
|
|
388
401
|
});
|
|
389
402
|
}
|
|
403
|
+
/**
|
|
404
|
+
* Whether the viewer may perform the operation a RESOURCE_BROWSER section fetches with (#2674). A browser the viewer
|
|
405
|
+
* cannot list renders the backend's refusal as its content; dropping the section is what the launcher does for a row.
|
|
406
|
+
* An operation that does not resolve keeps the section, so the browser can report its own configuration problem.
|
|
407
|
+
*/
|
|
408
|
+
function viewerCanBrowse(section, ctx) {
|
|
409
|
+
if (!ctx.canPerformOperation)
|
|
410
|
+
return true;
|
|
411
|
+
const config = ctx.registry.resourceConfigurations[section.resourceType];
|
|
412
|
+
if (!config)
|
|
413
|
+
return true;
|
|
414
|
+
const operation = resolveSidebarResourceBrowserOperation(config, section.operation ?? CoreResourceOperation.LIST, section.operationVariant);
|
|
415
|
+
return operation === undefined || ctx.canPerformOperation(operation.roles);
|
|
416
|
+
}
|
|
390
417
|
function resolveNavigationListSection(section, ctx) {
|
|
391
418
|
const items = section.children
|
|
392
419
|
.map(child => resolveSidebarItem(child, ctx))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher-resolution.js","sourceRoot":"","sources":["../../../../../src/core/navigation/launcher-resolution.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Launcher Resolution Layer\n *\n * Per-launcher content resolution. Each launcher declares its own content via\n * config schemas (e.g., `contentSections`, `commands`, `bindings`, `tools`),\n * and this module resolves those declarations into runtime items.\n *\n * Core concept: `resolveItemRef()` dispatches on `LauncherItemRef.kind`\n * and produces a `ResolvedNavigationTarget` — the common resolved output for any\n * launcher item, regardless of which launcher it belongs to.\n *\n * Per-launcher functions (e.g., `resolveSidebarSections()`) layer launcher-specific\n * properties on top of the core resolution.\n *\n * These resolution functions replaced the old scan-based `getAllNavigationItems()`\n * approach (deleted in Step 4f). The coexistence period is over.\n *\n * @see launcher-operation-binding-analysis.md §4.3, §7.1\n * @see app-shell-implementation-plan.md Step 2\n */\n\nimport type React from 'react';\nimport {\n CoreResourceOperation,\n type RequiredFeaturesConfig,\n} from '@wildo-ai/saas-models';\n\nimport type {\n AnyFrontendResourceConfiguration,\n FrontendResourceConfiguration_Operation,\n FrontendResourcesRegistry,\n FrontendResourceOperationContext,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { IconCategory, IconSize, StandardIconReference } from '~wildo-frontend-lib/core/icons/icon-registry.frontend.schemas';\nimport type { IconRenderOptions } from '~wildo-frontend-lib/core/icons/icon-registry.frontend.schemas';\nimport { NavigationContentType } from './navigation.schemas';\nimport { NavigationUtils } from './navigation.utils';\nimport {\n LauncherItemTargetKind,\n EnginePageRef,\n ENGINE_PAGE_METADATA,\n SidebarSectionContentKind,\n type SidebarSectionBehavior,\n type SidebarSectionInlineCreate,\n type LauncherItemRef,\n type ResourceOperationItemRef,\n type ViewItemRef,\n type ResourceViewItemRef,\n type EnginePageItemRef,\n type CustomComponentItemRef,\n type SettingsSectionItemRef,\n type SidebarSection,\n type SidebarSection_NavigationList,\n type SidebarSection_ResourceBrowser,\n type SidebarSection_GuidanceWidget,\n type SidebarSection_CustomComponent,\n type SidebarItem,\n type CommandMenuCommand,\n type HotkeyBinding,\n type QuickActionItem,\n type ControlPanelItem,\n type ToolbarItem,\n type MenubarHostedComponent,\n type MenubarLauncherItem,\n type UtilityPanelItem,\n type ResourceBrowserClickContext,\n} from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\nimport { CommonRoutePaths } from '~wildo-frontend-lib/core/runtime/routes.frontend.definitions';\nimport {\n type SidebarItemDisplayPolicy,\n type CommandMenuDisplayPolicy,\n type QuickActionDisplayPolicy,\n type HotkeyScope,\n} from '~wildo-frontend-lib/core/config/app-level-components.frontend.schemas';\nimport {\n buildCompositeRouteUrlPath,\n buildResourceInsertedCompositeIdentity,\n isStandaloneRoutableCompositeView,\n isStandaloneRoutableInsertedCompositeView,\n type CompositeViewDefinition,\n} from '~wildo-frontend-lib/core/config/composite-view.schemas';\nimport {\n buildChartRouteUrlPath,\n buildResourceInsertedChartIdentity,\n isStandaloneRoutableInsertedChartView,\n} from '~wildo-frontend-lib/core/config/chart-view.frontend.schemas';\nimport type { FullCustomViewDefinition } from '~wildo-frontend-lib/core/config/full-custom-view.schemas';\nimport type { FlowsActorsViewDefinition } from '~wildo-frontend-lib/core/config/flows-actors-view.schemas';\nimport {\n buildExecutionRouteUrlPath,\n buildResourceInsertedExecutionIdentity,\n} from '~wildo-frontend-lib/core/config/execution-view.schemas';\nimport { FrontendView_ScopeMode } from '~wildo-frontend-lib/core/config/views-frontend.schemas';\nimport { findResourceOwnedViewReferenceMatches } from '~wildo-frontend-lib/core/config/resource-owned-view-resolution.frontend.utils';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\n\nconst logger: LoggerFrontendService = LoggerFrontendService.getLogger();\nconst logDebug: (message: string, context?: Record<string, unknown>) => void = logger.debugByType('launcher-resolution');\nlogger.setDebugTypeLogging('launcher-resolution', false);\n\n// ════════════════════════════════════════════════════════════════\n// Resolution Context — all dependencies the resolution layer needs\n// ════════════════════════════════════════════════════════════════\n\ntype IconRequest =\n | { category: IconCategory.RESOURCES; resourceType: string }\n | { category: IconCategory.OPERATION_RESOURCES; resourceType: string; operationReference: string }\n | { category: IconCategory.COMPOSITE_VIEW; viewReference: string }\n | { category: IconCategory.CUSTOM; customReference: string };\n\n/**\n * All external dependencies the resolution functions need.\n * Hooks create this from their own context and pass it in.\n */\nexport interface LauncherResolutionContext {\n registry: FrontendResourcesRegistry;\n contextResourceIdentifiers?: Record<string, string>;\n views: {\n compositeViews?: CompositeViewDefinition[];\n fullCustomViews?: FullCustomViewDefinition[];\n flowsActorsViews?: FlowsActorsViewDefinition[];\n };\n tResourceHeader: (resourceType: string, key: string) => string;\n tResourceOperation: (resourceType: string, operation: string, key: string) => string;\n /**\n * View title resolver. Composite views resolve through their translationRef\n * contract, and other supported view families resolve through their dedicated\n * view-title label contract instead of exposing raw refs.\n */\n tViewTitle: (viewRef: string, contentType: NavigationContentType) => string;\n /**\n * Generic i18n key resolver. Used for engine page labels and other\n * non-resource/non-view translations. Returns the resolved string.\n */\n t: (key: string) => string;\n renderIcon: (refOrRequest: StandardIconReference | string | IconRequest, options?: IconRenderOptions) => React.ReactElement;\n}\n\n\n// ════════════════════════════════════════════════════════════════\n// Resolved Types — output of the resolution layer\n// ════════════════════════════════════════════════════════════════\n\n/**\n * Core resolved navigation target — the output of `resolveItemRef()`.\n *\n * Contains everything a launcher needs to render and navigate: label, URL,\n * icon, and the source metadata (resource context or view ref) that the\n * navigation controller needs.\n */\nexport interface ResolvedNavigationTarget {\n targetKind: LauncherItemTargetKind;\n id: string;\n ref: string;\n label: string;\n urlPath: string;\n icon?: React.ReactNode;\n\n resourceType?: string;\n operationIdentifier?: string;\n operation?: FrontendResourceConfiguration_Operation;\n resourceContext?: FrontendResourceOperationContext;\n\n viewRef?: string;\n contentType?: NavigationContentType;\n pageRef?: EnginePageRef;\n flowsActorsSystemRef?: string;\n fullCustomComponentRef?: string;\n requiredFeatures?: RequiredFeaturesConfig;\n contextResourceIdentifiers?: Record<string, string>;\n urlParamValues?: Record<string, string>;\n\n componentRef?: string;\n\n /** For SETTINGS_SECTION targets: the section to pre-open in the Settings Hub. */\n sectionRef?: string;\n}\n\n/** A sidebar item with its `LauncherItemRef` resolved to a navigation target. */\nexport interface ResolvedSidebarItem extends ResolvedNavigationTarget {\n displayPolicy?: SidebarItemDisplayPolicy;\n /** Typed badge-definition reference carried through to the rendered item. */\n notificationBadgeRef?: string;\n children?: ResolvedSidebarItem[];\n}\n\n/** Resolved NAVIGATION_LIST section — items resolved to navigation targets. */\nexport interface ResolvedSidebarSection_NavigationList {\n contentKind: SidebarSectionContentKind.NAVIGATION_LIST;\n ref: string;\n label?: string;\n icon?: string;\n showLabel?: boolean;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n /** See `SidebarSection_NavigationList.isPrimary` — primary group merged with Home. */\n isPrimary?: boolean;\n visibleInModes?: string[];\n items: ResolvedSidebarItem[];\n behavior?: SidebarSectionBehavior;\n inlineCreate?: SidebarSectionInlineCreate;\n inlineCreateResourceType?: string;\n nested?: boolean;\n maxNestingDepth?: number;\n}\n\n/** Resolved RESOURCE_BROWSER section — passed through (no item resolution needed). */\nexport interface ResolvedSidebarSection_ResourceBrowser {\n contentKind: SidebarSectionContentKind.RESOURCE_BROWSER;\n ref: string;\n label?: string;\n icon?: string;\n showLabel?: boolean;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n visibleInModes?: string[];\n resourceType: string;\n operation?: string;\n operationVariant?: string;\n navigateOperation?: string;\n navigateOperationVariant?: string;\n instanceFilter?: (instance: Record<string, unknown>) => boolean;\n onInstanceClick?: (context: ResourceBrowserClickContext) => void;\n}\n\n/** Resolved GUIDANCE_WIDGET section — passed through. */\nexport interface ResolvedSidebarSection_GuidanceWidget {\n contentKind: SidebarSectionContentKind.GUIDANCE_WIDGET;\n ref: string;\n label?: string;\n icon?: string;\n showLabel?: boolean;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n visibleInModes?: string[];\n guidanceRef: string;\n}\n\n/** Resolved CUSTOM_COMPONENT section — passed through. */\nexport interface ResolvedSidebarSection_CustomComponent {\n contentKind: SidebarSectionContentKind.CUSTOM_COMPONENT;\n ref: string;\n label?: string;\n icon?: string;\n showLabel?: boolean;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n visibleInModes?: string[];\n componentRef: string;\n}\n\n/** Discriminated union of all resolved sidebar sections. */\nexport type ResolvedSidebarSection =\n | ResolvedSidebarSection_NavigationList\n | ResolvedSidebarSection_ResourceBrowser\n | ResolvedSidebarSection_GuidanceWidget\n | ResolvedSidebarSection_CustomComponent;\n\n/** Resolved command menu entry. */\nexport interface ResolvedCommandMenuItem extends ResolvedNavigationTarget {\n category?: string;\n shortcut?: string;\n searchKeywords?: string[];\n displayPolicy?: CommandMenuDisplayPolicy;\n}\n\n/** Resolved hotkey binding. */\nexport interface ResolvedHotkeyBinding extends ResolvedNavigationTarget {\n shortcut: string;\n scope?: HotkeyScope;\n description?: string;\n}\n\n/** Resolved quick action item. */\nexport interface ResolvedQuickActionItem extends ResolvedNavigationTarget {\n displayPolicy?: QuickActionDisplayPolicy;\n}\n\n/** Resolved control panel item. */\nexport interface ResolvedControlPanelItem extends ResolvedNavigationTarget {\n section?: string;\n}\n\n/** Resolved toolbar item. */\nexport interface ResolvedToolbarItem extends ResolvedNavigationTarget {\n group?: string;\n iconOnly?: boolean;\n}\n\n/** Resolved menubar content (hosted components + items). */\nexport interface ResolvedMenubarContent {\n hostedComponents: MenubarHostedComponent[];\n items: ResolvedMenubarItem[];\n}\n\n/** Resolved menubar item. */\nexport interface ResolvedMenubarItem extends ResolvedNavigationTarget {\n group?: string;\n /** Carried from the declaration, as the sidebar's resolution carries its own. */\n notificationBadgeRef?: string;\n}\n\n\n// ════════════════════════════════════════════════════════════════\n// Core Resolution: resolveItemRef\n// ════════════════════════════════════════════════════════════════\n\n/**\n * Resolve a single `LauncherItemRef` to a navigation target.\n *\n * Dispatches on `item.kind`. Returns `null` for unresolvable refs\n * (DEV warning emitted). This replaces the scan-all logic for individual items.\n *\n * @see launcher-operation-binding-analysis.md §3.2\n */\nexport function resolveItemRef(\n item: LauncherItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget | null {\n switch (item.kind) {\n case LauncherItemTargetKind.RESOURCE_OPERATION:\n return resolveResourceOperation(item, ctx);\n case LauncherItemTargetKind.VIEW:\n return resolveView(item, ctx);\n case LauncherItemTargetKind.RESOURCE_VIEW:\n return resolveResourceView(item, ctx);\n case LauncherItemTargetKind.ENGINE_PAGE:\n return resolveEnginePage(item, ctx);\n case LauncherItemTargetKind.CUSTOM_COMPONENT:\n return resolveCustomComponent(item, ctx);\n case LauncherItemTargetKind.SETTINGS_SECTION:\n return resolveSettingsSection(item, ctx);\n default: {\n logDebug('Unknown LauncherItemRef kind', { item });\n return null;\n }\n }\n}\n\nfunction resolveResourceOperation(\n item: ResourceOperationItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget | null {\n const config = ctx.registry.resourceConfigurations[item.resourceType] as AnyFrontendResourceConfiguration | undefined;\n if (!config) {\n logDebug('Resource type not found in registry', { resourceType: item.resourceType });\n return null;\n }\n\n const operations = Array.isArray(config.operations) ? config.operations : [];\n const matchingOperations = operations.filter((op) => String(op.operationIdentifier) === item.operation);\n const defaultOperations = matchingOperations.filter((op) => op.isOperationDefault === true);\n const operation = item.operationVariant\n ? matchingOperations.find((op) => op.variantKey === item.operationVariant)\n : defaultOperations.length === 1\n ? defaultOperations[0]\n : matchingOperations.length === 1\n ? matchingOperations[0]\n : undefined;\n if (!operation) {\n logDebug('Operation not found for resource', {\n resourceType: item.resourceType,\n operation: item.operation,\n operationVariant: item.operationVariant,\n });\n return null;\n }\n\n // Resolve the operation's URL against the current AppScope. A launcher item is\n // surfaced whenever the resource's REQUIRED route parameters are satisfiable\n // from the ambient scope (primary scope + custom/optional context), filling both\n // required and optional context identifiers. `resolveResourceUrl` →\n // `selectMatchingRoutePath` picks the route path the scope can satisfy (e.g. the\n // org-scoped `/organizations/:organizationId/todos` over the nested\n // `/…/todo-lists/:todoListId/todos` when no list is in context) and returns\n // `resolvedUrl: undefined` only when NO path is satisfiable — i.e. the resource\n // genuinely requires a non-ambient parent, in which case it is correctly omitted.\n //\n // Previously this dropped EVERY resource whose routes all carry parameters (a\n // zero-parameter `standalone` route check), which excluded all org-scoped\n // resources from the sidebar/launchers even though the org is ambient in\n // AppScope. That expedient gate bypassed the scope mechanism; this routes the\n // decision back through AppScope, the single source of truth for required +\n // optional scope.\n const scopeIdentifiers = ctx.contextResourceIdentifiers ?? {};\n\n const resolved = NavigationUtils.resolveResourceUrl(\n config,\n operation,\n scopeIdentifiers,\n ctx.registry.allResourceFieldIdentifiers,\n );\n const urlPath = resolved?.resolvedUrl;\n if (!urlPath) {\n logDebug('No scope-satisfiable route for launcher resource operation (requires non-ambient context)', {\n resourceType: item.resourceType,\n operation: item.operation,\n scopeKeys: Object.keys(scopeIdentifiers),\n });\n return null;\n }\n const operationIdentifier = String(operation.operationIdentifier);\n\n const icon = ctx.renderIcon(\n { category: IconCategory.RESOURCES, resourceType: item.resourceType },\n { size: IconSize.SM },\n );\n\n const resourceContext = frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType: item.resourceType,\n operation,\n contextResourceIdentifiers: scopeIdentifiers,\n });\n\n return {\n targetKind: LauncherItemTargetKind.RESOURCE_OPERATION,\n id: `resolved-${item.resourceType}-${operationIdentifier}-${operation.variantKey ?? 'default'}`,\n ref: `resource:${item.resourceType}:${operationIdentifier}:${operation.variantKey ?? 'default'}`,\n label: ctx.tResourceOperation(item.resourceType, operationIdentifier, 'title'),\n urlPath,\n icon,\n resourceType: item.resourceType,\n operationIdentifier,\n operation,\n resourceContext,\n contextResourceIdentifiers: scopeIdentifiers,\n };\n}\n\ntype LauncherViewScopeSelector = 'application' | 'resource';\n\nfunction isCompatibleWithLauncherScope(\n scope: FrontendView_ScopeMode,\n expectedScope: LauncherViewScopeSelector,\n): boolean {\n if (expectedScope === 'application') {\n return scope === FrontendView_ScopeMode.APPLICATION;\n }\n\n return scope === FrontendView_ScopeMode.RESOURCE;\n}\n\nfunction resolveView(\n item: ViewItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget | null {\n const resolvedView = resolveConcreteApplicationViewTarget(item.viewRef, ctx);\n if (!resolvedView) {\n logDebug('Application-scoped VIEW ref not found in any compatible view collection', { viewRef: item.viewRef });\n return null;\n }\n\n return {\n targetKind: LauncherItemTargetKind.VIEW,\n id: `resolved-view-${item.viewRef}`,\n ref: `view:${resolvedView.contentType}:${item.viewRef}`,\n label: ctx.tViewTitle(resolvedView.viewRef, resolvedView.contentType),\n ...resolvedView,\n };\n}\n\nfunction resolveResourceView(\n item: ResourceViewItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget | null {\n const resolvedView = resolveConcreteResourceViewTarget(item, ctx);\n if (!resolvedView) {\n logDebug('Resource-scoped RESOURCE_VIEW ref not found on the target resource', {\n resourceType: item.resourceType,\n viewRef: item.viewRef,\n });\n return null;\n }\n\n return {\n targetKind: LauncherItemTargetKind.RESOURCE_VIEW,\n id: `resolved-resource-view-${item.resourceType}-${item.viewRef}`,\n ref: `view:${resolvedView.contentType}:${item.resourceType}:${item.viewRef}`,\n label: ctx.tViewTitle(resolvedView.viewRef, resolvedView.contentType),\n ...resolvedView,\n };\n}\n\nfunction resolveConcreteApplicationViewTarget(\n viewRef: string,\n ctx: LauncherResolutionContext,\n): Pick<ResolvedNavigationTarget, 'urlPath' | 'icon' | 'viewRef' | 'contentType' | 'fullCustomComponentRef' | 'flowsActorsSystemRef' | 'requiredFeatures' | 'contextResourceIdentifiers'> | null {\n const { compositeViews, fullCustomViews, flowsActorsViews } = ctx.views;\n\n const compositeView = compositeViews?.find(\n v => v.ref === viewRef && isCompatibleWithLauncherScope(v.scope, 'application'),\n );\n if (compositeView) {\n return {\n urlPath: isStandaloneRoutableCompositeView(compositeView)\n ? buildCompositeRouteUrlPath(\n viewRef,\n )\n : '',\n icon: ctx.renderIcon(\n { category: IconCategory.COMPOSITE_VIEW, viewReference: viewRef },\n { size: IconSize.SM },\n ),\n viewRef,\n contentType: NavigationContentType.COMPOSITE_VIEW,\n requiredFeatures: compositeView.requiredFeatures,\n contextResourceIdentifiers: undefined,\n };\n }\n\n const fullCustomView = fullCustomViews?.find(\n v => v.ref === viewRef && isCompatibleWithLauncherScope(v.scope, 'application'),\n );\n if (fullCustomView) {\n return {\n urlPath: `/custom/${viewRef}`,\n icon: ctx.renderIcon(\n { category: IconCategory.CUSTOM, customReference: `view-custom-${viewRef}` },\n { size: IconSize.SM },\n ),\n viewRef,\n contentType: NavigationContentType.FULL_CUSTOM_VIEW,\n fullCustomComponentRef: fullCustomView.componentRef,\n requiredFeatures: fullCustomView.requiredFeatures,\n contextResourceIdentifiers: undefined,\n };\n }\n\n const flowsActorsView = flowsActorsViews?.find(\n v => v.ref === viewRef && isCompatibleWithLauncherScope(v.scope, 'application'),\n );\n if (flowsActorsView) {\n return {\n urlPath: `/flows-actors/${viewRef}`,\n icon: ctx.renderIcon(\n { category: IconCategory.CUSTOM, customReference: `view-flows-${viewRef}` },\n { size: IconSize.SM },\n ),\n viewRef,\n contentType: NavigationContentType.FLOWS_ACTORS_VIEW,\n flowsActorsSystemRef: flowsActorsView.systemRef,\n requiredFeatures: flowsActorsView.requiredFeatures,\n contextResourceIdentifiers: undefined,\n };\n }\n\n return null;\n}\n\nfunction resolveConcreteResourceViewTarget(\n item: ResourceViewItemRef,\n ctx: LauncherResolutionContext,\n): Pick<ResolvedNavigationTarget, 'urlPath' | 'icon' | 'viewRef' | 'contentType' | 'requiredFeatures' | 'contextResourceIdentifiers'> | null {\n const resourceConfiguration = ctx.registry.resourceConfigurations[item.resourceType];\n const frontendConfiguration = resourceConfiguration?.frontendConfiguration;\n const viewMatches = findResourceOwnedViewReferenceMatches({\n resourceType: item.resourceType,\n viewRef: item.viewRef,\n registry: ctx.registry,\n });\n const scopedContextResourceIdentifiers =\n ctx.contextResourceIdentifiers\n && Object.keys(ctx.contextResourceIdentifiers).length > 0\n ? ctx.contextResourceIdentifiers\n : undefined;\n\n if (viewMatches.length !== 1) {\n return null;\n }\n\n const compositeView = frontendConfiguration?.compositeViews?.find((view) => view.ref === item.viewRef);\n if (compositeView) {\n if (compositeView.scope !== FrontendView_ScopeMode.RESOURCE) {\n return null;\n }\n\n const insertedIdentity = buildResourceInsertedCompositeIdentity(item.resourceType, compositeView);\n return {\n urlPath: isStandaloneRoutableInsertedCompositeView(compositeView)\n ? buildCompositeRouteUrlPath(insertedIdentity.insertedViewRef, scopedContextResourceIdentifiers)\n : '',\n icon: ctx.renderIcon(\n { category: IconCategory.COMPOSITE_VIEW, viewReference: item.viewRef },\n { size: IconSize.SM },\n ),\n viewRef: insertedIdentity.insertedViewRef,\n contentType: NavigationContentType.COMPOSITE_VIEW,\n requiredFeatures: compositeView.requiredFeatures,\n contextResourceIdentifiers: scopedContextResourceIdentifiers,\n };\n }\n\n const chartView = frontendConfiguration?.chartViews?.find((view) => view.ref === item.viewRef);\n if (chartView) {\n // `InsertedChartDeclaration.scope` is pinned to `FrontendView_ScopeMode.RESOURCE`\n // by construction (see chart-view.frontend.schemas.ts), so no runtime scope\n // narrowing is needed here.\n\n const insertedIdentity = buildResourceInsertedChartIdentity(item.resourceType, chartView);\n return {\n urlPath: isStandaloneRoutableInsertedChartView(chartView)\n ? buildChartRouteUrlPath(insertedIdentity.insertedViewRef, scopedContextResourceIdentifiers)\n : '',\n icon: ctx.renderIcon(\n { category: IconCategory.CUSTOM, customReference: `view-chart-${item.viewRef}` },\n { size: IconSize.SM },\n ),\n viewRef: insertedIdentity.insertedViewRef,\n contentType: NavigationContentType.CHART_VIEW,\n requiredFeatures: chartView.chartDefinition.requiredFeatures,\n contextResourceIdentifiers: scopedContextResourceIdentifiers,\n };\n }\n\n const executionView = frontendConfiguration?.executionViews?.find((view) => view.ref === item.viewRef);\n if (executionView) {\n if (executionView.scope !== FrontendView_ScopeMode.RESOURCE) {\n return null;\n }\n\n const insertedIdentity = buildResourceInsertedExecutionIdentity(item.resourceType, executionView);\n return {\n urlPath: executionView.isAddressable\n ? buildExecutionRouteUrlPath(insertedIdentity.insertedViewRef, scopedContextResourceIdentifiers)\n : '',\n icon: ctx.renderIcon(\n { category: IconCategory.CUSTOM, customReference: `view-execution-${item.viewRef}` },\n { size: IconSize.SM },\n ),\n viewRef: insertedIdentity.insertedViewRef,\n contentType: NavigationContentType.EXECUTION_VIEW,\n requiredFeatures: executionView.requiredFeatures,\n contextResourceIdentifiers: scopedContextResourceIdentifiers,\n };\n }\n\n return null;\n}\n\nfunction resolveEnginePage(\n item: EnginePageItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget {\n // Single metadata record holds route + i18n key + icon — see\n // `ENGINE_PAGE_METADATA` in `launcher-items.frontend.schemas.ts`.\n const metadata = ENGINE_PAGE_METADATA[item.pageRef];\n // The display label lives at `engine.pages.<key>.title` (the contract\n // documented on `EnginePageMetadata.i18nKey`, emitted by the companion's\n // `planEnginePageUnits()`). `i18nKey` itself points at the parent object, so\n // it MUST be suffixed with `.title` — translating the bare key resolves to the\n // `{ title }` object, misses, and renders the raw key in the sidebar. The\n // matching `.title` keys are requested in `useLauncherResolutionContext` so\n // the lazy i18n loader fetches them (engine pages are not an eager section).\n const label = ctx.t(`${metadata.i18nKey}.title`);\n const icon = ctx.renderIcon(metadata.icon, { size: IconSize.SM });\n\n return {\n targetKind: LauncherItemTargetKind.ENGINE_PAGE,\n id: `resolved-engine-${item.pageRef}`,\n ref: `engine:${item.pageRef}`,\n label,\n urlPath: metadata.route,\n icon,\n pageRef: item.pageRef,\n contentType: NavigationContentType.ENGINE_PAGE,\n };\n}\n\nfunction resolveSettingsSection(\n item: SettingsSectionItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget {\n const urlPath = item.sectionRef\n ? CommonRoutePaths.settingsSection.replace(':sectionRef', item.sectionRef)\n : CommonRoutePaths.settings;\n return {\n targetKind: LauncherItemTargetKind.SETTINGS_SECTION,\n id: `resolved-settings-${item.sectionRef ?? 'default'}`,\n ref: `settings:${item.sectionRef ?? 'default'}`,\n // TODO(settings-hub:i18n): resolve the hub label via i18n once wired.\n label: 'Settings',\n urlPath,\n icon: ctx.renderIcon(StandardIconReference.SETTINGS, { size: IconSize.SM }),\n contentType: NavigationContentType.SETTINGS_HUB,\n sectionRef: item.sectionRef,\n };\n}\n\nfunction resolveCustomComponent(\n item: CustomComponentItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget {\n return {\n targetKind: LauncherItemTargetKind.CUSTOM_COMPONENT,\n id: `resolved-custom-${item.componentRef}`,\n ref: `custom:${item.componentRef}`,\n label: item.componentRef,\n urlPath: '',\n componentRef: item.componentRef,\n contextResourceIdentifiers:\n ctx.contextResourceIdentifiers && Object.keys(ctx.contextResourceIdentifiers).length > 0\n ? ctx.contextResourceIdentifiers\n : undefined,\n };\n}\n\n\n// ════════════════════════════════════════════════════════════════\n// Per-Launcher Resolution Functions\n// ════════════════════════════════════════════════════════════════\n\n/**\n * Resolve a sidebar item (with potential children) to a `ResolvedSidebarItem`.\n * Recursively resolves children.\n */\nfunction resolveSidebarItem(\n item: SidebarItem,\n ctx: LauncherResolutionContext,\n): ResolvedSidebarItem | null {\n const target = resolveItemRef(item, ctx);\n if (!target) return null;\n\n let children: ResolvedSidebarItem[] | undefined;\n if (item.children && item.children.length > 0) {\n children = item.children\n .map(child => resolveSidebarItem(child, ctx))\n .filter((resolved): resolved is ResolvedSidebarItem => resolved !== null);\n }\n\n return {\n ...target,\n displayPolicy: item.displayPolicy,\n notificationBadgeRef: item.notificationBadgeRef,\n children,\n };\n}\n\n/**\n * Resolve sidebar sections from per-launcher config.\n *\n * Dispatches on `contentKind`:\n * - `NAVIGATION_LIST`: resolves each `LauncherItemRef` in `children` via `resolveItemRef`\n * - `RESOURCE_BROWSER`: passes through (component-level rendering, no item resolution)\n * - `GUIDANCE_WIDGET`: passes through\n * - `CUSTOM_COMPONENT`: passes through\n *\n * `visibleInModes` / `scopeCondition` filtering is NOT applied here —\n * that happens in Macro B (Step 6).\n *\n * @see launcher-operation-binding-analysis.md §3.3.1\n */\nexport function resolveSidebarSections(\n sections: SidebarSection[],\n ctx: LauncherResolutionContext,\n): ResolvedSidebarSection[] {\n return sections.map(section => {\n switch (section.contentKind) {\n case SidebarSectionContentKind.NAVIGATION_LIST:\n return resolveNavigationListSection(section, ctx);\n case SidebarSectionContentKind.RESOURCE_BROWSER:\n return resolveResourceBrowserSection(section);\n case SidebarSectionContentKind.GUIDANCE_WIDGET:\n return resolveGuidanceWidgetSection(section);\n case SidebarSectionContentKind.CUSTOM_COMPONENT:\n return resolveCustomComponentSection(section);\n }\n });\n}\n\nfunction resolveNavigationListSection(\n section: SidebarSection_NavigationList,\n ctx: LauncherResolutionContext,\n): ResolvedSidebarSection_NavigationList {\n const items = section.children\n .map(child => resolveSidebarItem(child, ctx))\n .filter((resolved): resolved is ResolvedSidebarItem => resolved !== null);\n\n return {\n contentKind: SidebarSectionContentKind.NAVIGATION_LIST,\n ref: section.ref,\n label: section.label,\n icon: section.icon,\n showLabel: section.showLabel,\n collapsible: section.collapsible,\n defaultCollapsed: section.defaultCollapsed,\n isPrimary: section.isPrimary,\n visibleInModes: section.visibleInModes,\n items,\n behavior: section.behavior,\n inlineCreate: section.inlineCreate,\n inlineCreateResourceType: section.inlineCreateResourceType,\n nested: section.nested,\n maxNestingDepth: section.maxNestingDepth,\n };\n}\n\nfunction resolveResourceBrowserSection(\n section: SidebarSection_ResourceBrowser,\n): ResolvedSidebarSection_ResourceBrowser {\n return {\n contentKind: SidebarSectionContentKind.RESOURCE_BROWSER,\n ref: section.ref,\n label: section.label,\n icon: section.icon,\n showLabel: section.showLabel,\n collapsible: section.collapsible,\n defaultCollapsed: section.defaultCollapsed,\n visibleInModes: section.visibleInModes,\n resourceType: section.resourceType,\n operation: section.operation,\n operationVariant: section.operationVariant,\n navigateOperation: section.navigateOperation,\n navigateOperationVariant: section.navigateOperationVariant,\n instanceFilter: section.instanceFilter,\n onInstanceClick: section.onInstanceClick,\n };\n}\n\nfunction resolveGuidanceWidgetSection(\n section: SidebarSection_GuidanceWidget,\n): ResolvedSidebarSection_GuidanceWidget {\n return {\n contentKind: SidebarSectionContentKind.GUIDANCE_WIDGET,\n ref: section.ref,\n label: section.label,\n icon: section.icon,\n showLabel: section.showLabel,\n collapsible: section.collapsible,\n defaultCollapsed: section.defaultCollapsed,\n visibleInModes: section.visibleInModes,\n guidanceRef: section.guidanceRef,\n };\n}\n\nfunction resolveCustomComponentSection(\n section: SidebarSection_CustomComponent,\n): ResolvedSidebarSection_CustomComponent {\n return {\n contentKind: SidebarSectionContentKind.CUSTOM_COMPONENT,\n ref: section.ref,\n label: section.label,\n icon: section.icon,\n showLabel: section.showLabel,\n collapsible: section.collapsible,\n defaultCollapsed: section.defaultCollapsed,\n visibleInModes: section.visibleInModes,\n componentRef: section.componentRef,\n };\n}\n\n/**\n * Resolve command menu commands from per-launcher config.\n * Groups by category if present.\n */\nexport function resolveCommandMenuCommands(\n commands: CommandMenuCommand[],\n ctx: LauncherResolutionContext,\n): ResolvedCommandMenuItem[] {\n const resolved: ResolvedCommandMenuItem[] = [];\n\n for (const cmd of commands) {\n const target = resolveItemRef(cmd, ctx);\n if (!target) continue;\n\n resolved.push({\n ...target,\n category: cmd.category,\n shortcut: cmd.shortcut,\n searchKeywords: cmd.searchKeywords,\n displayPolicy: cmd.displayPolicy,\n });\n }\n\n return resolved;\n}\n\n/**\n * Resolve hotkey bindings from per-launcher config.\n */\nexport function resolveHotkeyBindings(\n bindings: HotkeyBinding[],\n ctx: LauncherResolutionContext,\n): ResolvedHotkeyBinding[] {\n const resolved: ResolvedHotkeyBinding[] = [];\n\n for (const binding of bindings) {\n const target = resolveItemRef(binding, ctx);\n if (!target) continue;\n\n const description =\n binding.description ??\n (binding.kind === LauncherItemTargetKind.RESOURCE_OPERATION\n ? ctx.tResourceOperation(binding.resourceType, binding.operation, 'title')\n : target.label);\n\n resolved.push({\n ...target,\n shortcut: binding.shortcut,\n scope: binding.scope,\n description,\n });\n }\n\n return resolved;\n}\n\n/**\n * Resolve quick action items from per-launcher config.\n */\nexport function resolveQuickActions(\n actions: QuickActionItem[],\n ctx: LauncherResolutionContext,\n): ResolvedQuickActionItem[] {\n const resolved: ResolvedQuickActionItem[] = [];\n\n for (const action of actions) {\n const target = resolveItemRef(action, ctx);\n if (!target) continue;\n\n resolved.push({\n ...target,\n displayPolicy: action.displayPolicy,\n });\n }\n\n return resolved;\n}\n\n/**\n * Resolve control panel items from per-launcher config.\n */\nexport function resolveControlPanelItems(\n items: ControlPanelItem[],\n ctx: LauncherResolutionContext,\n): ResolvedControlPanelItem[] {\n const resolved: ResolvedControlPanelItem[] = [];\n\n for (const item of items) {\n const target = resolveItemRef(item, ctx);\n if (!target) continue;\n\n resolved.push({\n ...target,\n section: item.section,\n });\n }\n\n return resolved;\n}\n\n/**\n * Resolve toolbar tools from per-launcher config.\n */\nexport function resolveToolbarTools(\n tools: ToolbarItem[],\n ctx: LauncherResolutionContext,\n): ResolvedToolbarItem[] {\n const resolved: ResolvedToolbarItem[] = [];\n\n for (const tool of tools) {\n const target = resolveItemRef(tool, ctx);\n if (!target) continue;\n\n resolved.push({\n ...target,\n group: tool.group,\n iconOnly: tool.iconOnly,\n });\n }\n\n return resolved;\n}\n\n/**\n * Resolve menubar content — validates hosted components exist and resolves items.\n */\nexport function resolveMenubarContent(\n hostedComponents: MenubarHostedComponent[] | undefined,\n items: MenubarLauncherItem[] | undefined,\n ctx: LauncherResolutionContext,\n): ResolvedMenubarContent {\n const resolvedItems: ResolvedMenubarItem[] = [];\n\n if (items) {\n for (const item of items) {\n const target = resolveItemRef(item, ctx);\n if (!target) continue;\n\n resolvedItems.push({\n ...target,\n group: item.group,\n ...(item.notificationBadgeRef ? { notificationBadgeRef: item.notificationBadgeRef } : {}),\n });\n }\n }\n\n return {\n hostedComponents: hostedComponents ?? [],\n items: resolvedItems,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"launcher-resolution.js","sourceRoot":"","sources":["../../../../src/core/navigation/launcher-resolution.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Launcher Resolution Layer\n *\n * Per-launcher content resolution. Each launcher declares its own content via\n * config schemas (e.g., `contentSections`, `commands`, `bindings`, `tools`),\n * and this module resolves those declarations into runtime items.\n *\n * Core concept: `resolveItemRef()` dispatches on `LauncherItemRef.kind`\n * and produces a `ResolvedNavigationTarget` — the common resolved output for any\n * launcher item, regardless of which launcher it belongs to.\n *\n * Per-launcher functions (e.g., `resolveSidebarSections()`) layer launcher-specific\n * properties on top of the core resolution.\n *\n * These resolution functions replaced the old scan-based `getAllNavigationItems()`\n * approach (deleted in Step 4f). The coexistence period is over.\n *\n * @see launcher-operation-binding-analysis.md §4.3, §7.1\n * @see app-shell-implementation-plan.md Step 2\n */\n\nimport type React from 'react';\nimport {\n CoreResourceOperation,\n type RequiredFeaturesConfig,\n} from '@wildo-ai/saas-models';\n\nimport type {\n AnyFrontendResourceConfiguration,\n FrontendResourceConfiguration_Operation,\n FrontendResourcesRegistry,\n FrontendResourceOperationContext,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { IconCategory, IconSize, StandardIconReference } from '~wildo-frontend-lib/core/icons/icon-registry.frontend.schemas';\nimport type { IconRenderOptions } from '~wildo-frontend-lib/core/icons/icon-registry.frontend.schemas';\nimport { NavigationContentType } from './navigation.schemas';\nimport { NavigationUtils } from './navigation.utils';\nimport { resolveSidebarResourceBrowserOperation } from './sidebar-resource-browser-operation';\nimport {\n LauncherItemTargetKind,\n EnginePageRef,\n ENGINE_PAGE_METADATA,\n SidebarSectionContentKind,\n type SidebarSectionBehavior,\n type SidebarSectionInlineCreate,\n type LauncherItemRef,\n type ResourceOperationItemRef,\n type ViewItemRef,\n type ResourceViewItemRef,\n type EnginePageItemRef,\n type CustomComponentItemRef,\n type SettingsSectionItemRef,\n type SidebarSection,\n type SidebarSection_NavigationList,\n type SidebarSection_ResourceBrowser,\n type SidebarSection_GuidanceWidget,\n type SidebarSection_CustomComponent,\n type SidebarItem,\n type CommandMenuCommand,\n type HotkeyBinding,\n type QuickActionItem,\n type ControlPanelItem,\n type ToolbarItem,\n type MenubarHostedComponent,\n type MenubarLauncherItem,\n type UtilityPanelItem,\n type ResourceBrowserClickContext,\n} from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\nimport { CommonRoutePaths } from '~wildo-frontend-lib/core/runtime/routes.frontend.definitions';\nimport {\n type SidebarItemDisplayPolicy,\n type CommandMenuDisplayPolicy,\n type QuickActionDisplayPolicy,\n type HotkeyScope,\n} from '~wildo-frontend-lib/core/config/app-level-components.frontend.schemas';\nimport {\n buildCompositeRouteUrlPath,\n buildResourceInsertedCompositeIdentity,\n isStandaloneRoutableCompositeView,\n isStandaloneRoutableInsertedCompositeView,\n type CompositeViewDefinition,\n} from '~wildo-frontend-lib/core/config/composite-view.schemas';\nimport {\n buildChartRouteUrlPath,\n buildResourceInsertedChartIdentity,\n isStandaloneRoutableInsertedChartView,\n} from '~wildo-frontend-lib/core/config/chart-view.frontend.schemas';\nimport type { FullCustomViewDefinition } from '~wildo-frontend-lib/core/config/full-custom-view.schemas';\nimport type { FlowsActorsViewDefinition } from '~wildo-frontend-lib/core/config/flows-actors-view.schemas';\nimport {\n buildExecutionRouteUrlPath,\n buildResourceInsertedExecutionIdentity,\n} from '~wildo-frontend-lib/core/config/execution-view.schemas';\nimport { FrontendView_ScopeMode } from '~wildo-frontend-lib/core/config/views-frontend.schemas';\nimport { findResourceOwnedViewReferenceMatches } from '~wildo-frontend-lib/core/config/resource-owned-view-resolution.frontend.utils';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\n\nconst logger: LoggerFrontendService = LoggerFrontendService.getLogger();\nconst logDebug: (message: string, context?: Record<string, unknown>) => void = logger.debugByType('launcher-resolution');\nlogger.setDebugTypeLogging('launcher-resolution', false);\n\n// ════════════════════════════════════════════════════════════════\n// Resolution Context — all dependencies the resolution layer needs\n// ════════════════════════════════════════════════════════════════\n\ntype IconRequest =\n | { category: IconCategory.RESOURCES; resourceType: string }\n | { category: IconCategory.OPERATION_RESOURCES; resourceType: string; operationReference: string }\n | { category: IconCategory.COMPOSITE_VIEW; viewReference: string }\n | { category: IconCategory.CUSTOM; customReference: string };\n\n/**\n * All external dependencies the resolution functions need.\n * Hooks create this from their own context and pass it in.\n */\nexport interface LauncherResolutionContext {\n registry: FrontendResourcesRegistry;\n contextResourceIdentifiers?: Record<string, string>;\n views: {\n compositeViews?: CompositeViewDefinition[];\n fullCustomViews?: FullCustomViewDefinition[];\n flowsActorsViews?: FlowsActorsViewDefinition[];\n };\n tResourceHeader: (resourceType: string, key: string) => string;\n tResourceOperation: (resourceType: string, operation: string, key: string) => string;\n /**\n * View title resolver. Composite views resolve through their translationRef\n * contract, and other supported view families resolve through their dedicated\n * view-title label contract instead of exposing raw refs.\n */\n tViewTitle: (viewRef: string, contentType: NavigationContentType) => string;\n /**\n * Generic i18n key resolver. Used for engine page labels and other\n * non-resource/non-view translations. Returns the resolved string.\n */\n t: (key: string) => string;\n renderIcon: (refOrRequest: StandardIconReference | string | IconRequest, options?: IconRenderOptions) => React.ReactElement;\n /**\n * Whether the viewer's roles can perform an operation that declares `requiredRoles` (#2674). A launcher entry that\n * opens a resource operation the viewer cannot perform resolves to nothing, so the sidebar does not list a page the\n * backend will refuse. A display gate with the action bar's rule (`userRolesSatisfyRequiredRoles`): it fails OPEN\n * when the viewer holds a role the browser cannot expand, and the backend stays the authority. Absent: no role gate.\n */\n canPerformOperation?: (requiredRoles: readonly string[] | undefined) => boolean;\n}\n\n\n// ════════════════════════════════════════════════════════════════\n// Resolved Types — output of the resolution layer\n// ════════════════════════════════════════════════════════════════\n\n/**\n * Core resolved navigation target — the output of `resolveItemRef()`.\n *\n * Contains everything a launcher needs to render and navigate: label, URL,\n * icon, and the source metadata (resource context or view ref) that the\n * navigation controller needs.\n */\nexport interface ResolvedNavigationTarget {\n targetKind: LauncherItemTargetKind;\n id: string;\n ref: string;\n label: string;\n urlPath: string;\n icon?: React.ReactNode;\n\n resourceType?: string;\n operationIdentifier?: string;\n operation?: FrontendResourceConfiguration_Operation;\n resourceContext?: FrontendResourceOperationContext;\n\n viewRef?: string;\n contentType?: NavigationContentType;\n pageRef?: EnginePageRef;\n flowsActorsSystemRef?: string;\n fullCustomComponentRef?: string;\n requiredFeatures?: RequiredFeaturesConfig;\n contextResourceIdentifiers?: Record<string, string>;\n urlParamValues?: Record<string, string>;\n\n componentRef?: string;\n\n /** For SETTINGS_SECTION targets: the section to pre-open in the Settings Hub. */\n sectionRef?: string;\n}\n\n/** A sidebar item with its `LauncherItemRef` resolved to a navigation target. */\nexport interface ResolvedSidebarItem extends ResolvedNavigationTarget {\n displayPolicy?: SidebarItemDisplayPolicy;\n /** Typed badge-definition reference carried through to the rendered item. */\n notificationBadgeRef?: string;\n children?: ResolvedSidebarItem[];\n}\n\n/** Resolved NAVIGATION_LIST section — items resolved to navigation targets. */\nexport interface ResolvedSidebarSection_NavigationList {\n contentKind: SidebarSectionContentKind.NAVIGATION_LIST;\n ref: string;\n label?: string;\n icon?: string;\n showLabel?: boolean;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n /** See `SidebarSection_NavigationList.isPrimary` — primary group merged with Home. */\n isPrimary?: boolean;\n visibleInModes?: string[];\n items: ResolvedSidebarItem[];\n behavior?: SidebarSectionBehavior;\n inlineCreate?: SidebarSectionInlineCreate;\n inlineCreateResourceType?: string;\n nested?: boolean;\n maxNestingDepth?: number;\n}\n\n/** Resolved RESOURCE_BROWSER section — passed through (no item resolution needed). */\nexport interface ResolvedSidebarSection_ResourceBrowser {\n contentKind: SidebarSectionContentKind.RESOURCE_BROWSER;\n ref: string;\n label?: string;\n icon?: string;\n showLabel?: boolean;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n visibleInModes?: string[];\n resourceType: string;\n operation?: string;\n operationVariant?: string;\n navigateOperation?: string;\n navigateOperationVariant?: string;\n instanceFilter?: (instance: Record<string, unknown>) => boolean;\n onInstanceClick?: (context: ResourceBrowserClickContext) => void;\n}\n\n/** Resolved GUIDANCE_WIDGET section — passed through. */\nexport interface ResolvedSidebarSection_GuidanceWidget {\n contentKind: SidebarSectionContentKind.GUIDANCE_WIDGET;\n ref: string;\n label?: string;\n icon?: string;\n showLabel?: boolean;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n visibleInModes?: string[];\n guidanceRef: string;\n}\n\n/** Resolved CUSTOM_COMPONENT section — passed through. */\nexport interface ResolvedSidebarSection_CustomComponent {\n contentKind: SidebarSectionContentKind.CUSTOM_COMPONENT;\n ref: string;\n label?: string;\n icon?: string;\n showLabel?: boolean;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n visibleInModes?: string[];\n componentRef: string;\n}\n\n/** Discriminated union of all resolved sidebar sections. */\nexport type ResolvedSidebarSection =\n | ResolvedSidebarSection_NavigationList\n | ResolvedSidebarSection_ResourceBrowser\n | ResolvedSidebarSection_GuidanceWidget\n | ResolvedSidebarSection_CustomComponent;\n\n/** Resolved command menu entry. */\nexport interface ResolvedCommandMenuItem extends ResolvedNavigationTarget {\n category?: string;\n shortcut?: string;\n searchKeywords?: string[];\n displayPolicy?: CommandMenuDisplayPolicy;\n}\n\n/** Resolved hotkey binding. */\nexport interface ResolvedHotkeyBinding extends ResolvedNavigationTarget {\n shortcut: string;\n scope?: HotkeyScope;\n description?: string;\n}\n\n/** Resolved quick action item. */\nexport interface ResolvedQuickActionItem extends ResolvedNavigationTarget {\n displayPolicy?: QuickActionDisplayPolicy;\n}\n\n/** Resolved control panel item. */\nexport interface ResolvedControlPanelItem extends ResolvedNavigationTarget {\n section?: string;\n}\n\n/** Resolved toolbar item. */\nexport interface ResolvedToolbarItem extends ResolvedNavigationTarget {\n group?: string;\n iconOnly?: boolean;\n}\n\n/** Resolved menubar content (hosted components + items). */\nexport interface ResolvedMenubarContent {\n hostedComponents: MenubarHostedComponent[];\n items: ResolvedMenubarItem[];\n}\n\n/** Resolved menubar item. */\nexport interface ResolvedMenubarItem extends ResolvedNavigationTarget {\n group?: string;\n /** Carried from the declaration, as the sidebar's resolution carries its own. */\n notificationBadgeRef?: string;\n}\n\n\n// ════════════════════════════════════════════════════════════════\n// Core Resolution: resolveItemRef\n// ════════════════════════════════════════════════════════════════\n\n/**\n * Resolve a single `LauncherItemRef` to a navigation target.\n *\n * Dispatches on `item.kind`. Returns `null` for unresolvable refs\n * (DEV warning emitted). This replaces the scan-all logic for individual items.\n *\n * @see launcher-operation-binding-analysis.md §3.2\n */\nexport function resolveItemRef(\n item: LauncherItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget | null {\n switch (item.kind) {\n case LauncherItemTargetKind.RESOURCE_OPERATION:\n return resolveResourceOperation(item, ctx);\n case LauncherItemTargetKind.VIEW:\n return resolveView(item, ctx);\n case LauncherItemTargetKind.RESOURCE_VIEW:\n return resolveResourceView(item, ctx);\n case LauncherItemTargetKind.ENGINE_PAGE:\n return resolveEnginePage(item, ctx);\n case LauncherItemTargetKind.CUSTOM_COMPONENT:\n return resolveCustomComponent(item, ctx);\n case LauncherItemTargetKind.SETTINGS_SECTION:\n return resolveSettingsSection(item, ctx);\n default: {\n logDebug('Unknown LauncherItemRef kind', { item });\n return null;\n }\n }\n}\n\nfunction resolveResourceOperation(\n item: ResourceOperationItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget | null {\n const config = ctx.registry.resourceConfigurations[item.resourceType] as AnyFrontendResourceConfiguration | undefined;\n if (!config) {\n logDebug('Resource type not found in registry', { resourceType: item.resourceType });\n return null;\n }\n\n const operations = Array.isArray(config.operations) ? config.operations : [];\n const matchingOperations = operations.filter((op) => String(op.operationIdentifier) === item.operation);\n const defaultOperations = matchingOperations.filter((op) => op.isOperationDefault === true);\n const operation = item.operationVariant\n ? matchingOperations.find((op) => op.variantKey === item.operationVariant)\n : defaultOperations.length === 1\n ? defaultOperations[0]\n : matchingOperations.length === 1\n ? matchingOperations[0]\n : undefined;\n if (!operation) {\n logDebug('Operation not found for resource', {\n resourceType: item.resourceType,\n operation: item.operation,\n operationVariant: item.operationVariant,\n });\n return null;\n }\n // The SELECTED variant is judged, because it is the one whose route the entry opens. The action bar instead keeps the\n // highest-rights variant a viewer qualifies for; a restrictive default beside a broader non-default variant would\n // differ, and none of the engine's resources declares that shape (defaults are the less-privileged variants).\n if (ctx.canPerformOperation && !ctx.canPerformOperation(operation.roles)) {\n logDebug('Launcher resource operation hidden: the viewer\\'s roles cannot perform it', {\n resourceType: item.resourceType,\n operation: item.operation,\n });\n return null;\n }\n\n // Resolve the operation's URL against the current AppScope. A launcher item is\n // surfaced whenever the resource's REQUIRED route parameters are satisfiable\n // from the ambient scope (primary scope + custom/optional context), filling both\n // required and optional context identifiers. `resolveResourceUrl` →\n // `selectMatchingRoutePath` picks the route path the scope can satisfy (e.g. the\n // org-scoped `/organizations/:organizationId/todos` over the nested\n // `/…/todo-lists/:todoListId/todos` when no list is in context) and returns\n // `resolvedUrl: undefined` only when NO path is satisfiable — i.e. the resource\n // genuinely requires a non-ambient parent, in which case it is correctly omitted.\n //\n // Previously this dropped EVERY resource whose routes all carry parameters (a\n // zero-parameter `standalone` route check), which excluded all org-scoped\n // resources from the sidebar/launchers even though the org is ambient in\n // AppScope. That expedient gate bypassed the scope mechanism; this routes the\n // decision back through AppScope, the single source of truth for required +\n // optional scope.\n const scopeIdentifiers = ctx.contextResourceIdentifiers ?? {};\n\n const resolved = NavigationUtils.resolveResourceUrl(\n config,\n operation,\n scopeIdentifiers,\n ctx.registry.allResourceFieldIdentifiers,\n );\n const urlPath = resolved?.resolvedUrl;\n if (!urlPath) {\n logDebug('No scope-satisfiable route for launcher resource operation (requires non-ambient context)', {\n resourceType: item.resourceType,\n operation: item.operation,\n scopeKeys: Object.keys(scopeIdentifiers),\n });\n return null;\n }\n const operationIdentifier = String(operation.operationIdentifier);\n\n const icon = ctx.renderIcon(\n { category: IconCategory.RESOURCES, resourceType: item.resourceType },\n { size: IconSize.SM },\n );\n\n const resourceContext = frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType: item.resourceType,\n operation,\n contextResourceIdentifiers: scopeIdentifiers,\n });\n\n return {\n targetKind: LauncherItemTargetKind.RESOURCE_OPERATION,\n id: `resolved-${item.resourceType}-${operationIdentifier}-${operation.variantKey ?? 'default'}`,\n ref: `resource:${item.resourceType}:${operationIdentifier}:${operation.variantKey ?? 'default'}`,\n label: ctx.tResourceOperation(item.resourceType, operationIdentifier, 'title'),\n urlPath,\n icon,\n resourceType: item.resourceType,\n operationIdentifier,\n operation,\n resourceContext,\n contextResourceIdentifiers: scopeIdentifiers,\n };\n}\n\ntype LauncherViewScopeSelector = 'application' | 'resource';\n\nfunction isCompatibleWithLauncherScope(\n scope: FrontendView_ScopeMode,\n expectedScope: LauncherViewScopeSelector,\n): boolean {\n if (expectedScope === 'application') {\n return scope === FrontendView_ScopeMode.APPLICATION;\n }\n\n return scope === FrontendView_ScopeMode.RESOURCE;\n}\n\nfunction resolveView(\n item: ViewItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget | null {\n const resolvedView = resolveConcreteApplicationViewTarget(item.viewRef, ctx);\n if (!resolvedView) {\n logDebug('Application-scoped VIEW ref not found in any compatible view collection', { viewRef: item.viewRef });\n return null;\n }\n\n return {\n targetKind: LauncherItemTargetKind.VIEW,\n id: `resolved-view-${item.viewRef}`,\n ref: `view:${resolvedView.contentType}:${item.viewRef}`,\n label: ctx.tViewTitle(resolvedView.viewRef, resolvedView.contentType),\n ...resolvedView,\n };\n}\n\nfunction resolveResourceView(\n item: ResourceViewItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget | null {\n const resolvedView = resolveConcreteResourceViewTarget(item, ctx);\n if (!resolvedView) {\n logDebug('Resource-scoped RESOURCE_VIEW ref not found on the target resource', {\n resourceType: item.resourceType,\n viewRef: item.viewRef,\n });\n return null;\n }\n\n return {\n targetKind: LauncherItemTargetKind.RESOURCE_VIEW,\n id: `resolved-resource-view-${item.resourceType}-${item.viewRef}`,\n ref: `view:${resolvedView.contentType}:${item.resourceType}:${item.viewRef}`,\n label: ctx.tViewTitle(resolvedView.viewRef, resolvedView.contentType),\n ...resolvedView,\n };\n}\n\nfunction resolveConcreteApplicationViewTarget(\n viewRef: string,\n ctx: LauncherResolutionContext,\n): Pick<ResolvedNavigationTarget, 'urlPath' | 'icon' | 'viewRef' | 'contentType' | 'fullCustomComponentRef' | 'flowsActorsSystemRef' | 'requiredFeatures' | 'contextResourceIdentifiers'> | null {\n const { compositeViews, fullCustomViews, flowsActorsViews } = ctx.views;\n\n const compositeView = compositeViews?.find(\n v => v.ref === viewRef && isCompatibleWithLauncherScope(v.scope, 'application'),\n );\n if (compositeView) {\n return {\n urlPath: isStandaloneRoutableCompositeView(compositeView)\n ? buildCompositeRouteUrlPath(\n viewRef,\n )\n : '',\n icon: ctx.renderIcon(\n { category: IconCategory.COMPOSITE_VIEW, viewReference: viewRef },\n { size: IconSize.SM },\n ),\n viewRef,\n contentType: NavigationContentType.COMPOSITE_VIEW,\n requiredFeatures: compositeView.requiredFeatures,\n contextResourceIdentifiers: undefined,\n };\n }\n\n const fullCustomView = fullCustomViews?.find(\n v => v.ref === viewRef && isCompatibleWithLauncherScope(v.scope, 'application'),\n );\n if (fullCustomView) {\n return {\n urlPath: `/custom/${viewRef}`,\n icon: ctx.renderIcon(\n { category: IconCategory.CUSTOM, customReference: `view-custom-${viewRef}` },\n { size: IconSize.SM },\n ),\n viewRef,\n contentType: NavigationContentType.FULL_CUSTOM_VIEW,\n fullCustomComponentRef: fullCustomView.componentRef,\n requiredFeatures: fullCustomView.requiredFeatures,\n contextResourceIdentifiers: undefined,\n };\n }\n\n const flowsActorsView = flowsActorsViews?.find(\n v => v.ref === viewRef && isCompatibleWithLauncherScope(v.scope, 'application'),\n );\n if (flowsActorsView) {\n return {\n urlPath: `/flows-actors/${viewRef}`,\n icon: ctx.renderIcon(\n { category: IconCategory.CUSTOM, customReference: `view-flows-${viewRef}` },\n { size: IconSize.SM },\n ),\n viewRef,\n contentType: NavigationContentType.FLOWS_ACTORS_VIEW,\n flowsActorsSystemRef: flowsActorsView.systemRef,\n requiredFeatures: flowsActorsView.requiredFeatures,\n contextResourceIdentifiers: undefined,\n };\n }\n\n return null;\n}\n\nfunction resolveConcreteResourceViewTarget(\n item: ResourceViewItemRef,\n ctx: LauncherResolutionContext,\n): Pick<ResolvedNavigationTarget, 'urlPath' | 'icon' | 'viewRef' | 'contentType' | 'requiredFeatures' | 'contextResourceIdentifiers'> | null {\n const resourceConfiguration = ctx.registry.resourceConfigurations[item.resourceType];\n const frontendConfiguration = resourceConfiguration?.frontendConfiguration;\n const viewMatches = findResourceOwnedViewReferenceMatches({\n resourceType: item.resourceType,\n viewRef: item.viewRef,\n registry: ctx.registry,\n });\n const scopedContextResourceIdentifiers =\n ctx.contextResourceIdentifiers\n && Object.keys(ctx.contextResourceIdentifiers).length > 0\n ? ctx.contextResourceIdentifiers\n : undefined;\n\n if (viewMatches.length !== 1) {\n return null;\n }\n\n const compositeView = frontendConfiguration?.compositeViews?.find((view) => view.ref === item.viewRef);\n if (compositeView) {\n if (compositeView.scope !== FrontendView_ScopeMode.RESOURCE) {\n return null;\n }\n\n const insertedIdentity = buildResourceInsertedCompositeIdentity(item.resourceType, compositeView);\n return {\n urlPath: isStandaloneRoutableInsertedCompositeView(compositeView)\n ? buildCompositeRouteUrlPath(insertedIdentity.insertedViewRef, scopedContextResourceIdentifiers)\n : '',\n icon: ctx.renderIcon(\n { category: IconCategory.COMPOSITE_VIEW, viewReference: item.viewRef },\n { size: IconSize.SM },\n ),\n viewRef: insertedIdentity.insertedViewRef,\n contentType: NavigationContentType.COMPOSITE_VIEW,\n requiredFeatures: compositeView.requiredFeatures,\n contextResourceIdentifiers: scopedContextResourceIdentifiers,\n };\n }\n\n const chartView = frontendConfiguration?.chartViews?.find((view) => view.ref === item.viewRef);\n if (chartView) {\n // `InsertedChartDeclaration.scope` is pinned to `FrontendView_ScopeMode.RESOURCE`\n // by construction (see chart-view.frontend.schemas.ts), so no runtime scope\n // narrowing is needed here.\n\n const insertedIdentity = buildResourceInsertedChartIdentity(item.resourceType, chartView);\n return {\n urlPath: isStandaloneRoutableInsertedChartView(chartView)\n ? buildChartRouteUrlPath(insertedIdentity.insertedViewRef, scopedContextResourceIdentifiers)\n : '',\n icon: ctx.renderIcon(\n { category: IconCategory.CUSTOM, customReference: `view-chart-${item.viewRef}` },\n { size: IconSize.SM },\n ),\n viewRef: insertedIdentity.insertedViewRef,\n contentType: NavigationContentType.CHART_VIEW,\n requiredFeatures: chartView.chartDefinition.requiredFeatures,\n contextResourceIdentifiers: scopedContextResourceIdentifiers,\n };\n }\n\n const executionView = frontendConfiguration?.executionViews?.find((view) => view.ref === item.viewRef);\n if (executionView) {\n if (executionView.scope !== FrontendView_ScopeMode.RESOURCE) {\n return null;\n }\n\n const insertedIdentity = buildResourceInsertedExecutionIdentity(item.resourceType, executionView);\n return {\n urlPath: executionView.isAddressable\n ? buildExecutionRouteUrlPath(insertedIdentity.insertedViewRef, scopedContextResourceIdentifiers)\n : '',\n icon: ctx.renderIcon(\n { category: IconCategory.CUSTOM, customReference: `view-execution-${item.viewRef}` },\n { size: IconSize.SM },\n ),\n viewRef: insertedIdentity.insertedViewRef,\n contentType: NavigationContentType.EXECUTION_VIEW,\n requiredFeatures: executionView.requiredFeatures,\n contextResourceIdentifiers: scopedContextResourceIdentifiers,\n };\n }\n\n return null;\n}\n\nfunction resolveEnginePage(\n item: EnginePageItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget {\n // Single metadata record holds route + i18n key + icon — see\n // `ENGINE_PAGE_METADATA` in `launcher-items.frontend.schemas.ts`.\n const metadata = ENGINE_PAGE_METADATA[item.pageRef];\n // The display label lives at `engine.pages.<key>.title` (the contract\n // documented on `EnginePageMetadata.i18nKey`, emitted by the companion's\n // `planEnginePageUnits()`). `i18nKey` itself points at the parent object, so\n // it MUST be suffixed with `.title` — translating the bare key resolves to the\n // `{ title }` object, misses, and renders the raw key in the sidebar. The\n // matching `.title` keys are requested in `useLauncherResolutionContext` so\n // the lazy i18n loader fetches them (engine pages are not an eager section).\n const label = ctx.t(`${metadata.i18nKey}.title`);\n const icon = ctx.renderIcon(metadata.icon, { size: IconSize.SM });\n\n return {\n targetKind: LauncherItemTargetKind.ENGINE_PAGE,\n id: `resolved-engine-${item.pageRef}`,\n ref: `engine:${item.pageRef}`,\n label,\n urlPath: metadata.route,\n icon,\n pageRef: item.pageRef,\n contentType: NavigationContentType.ENGINE_PAGE,\n };\n}\n\nfunction resolveSettingsSection(\n item: SettingsSectionItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget {\n const urlPath = item.sectionRef\n ? CommonRoutePaths.settingsSection.replace(':sectionRef', item.sectionRef)\n : CommonRoutePaths.settings;\n return {\n targetKind: LauncherItemTargetKind.SETTINGS_SECTION,\n id: `resolved-settings-${item.sectionRef ?? 'default'}`,\n ref: `settings:${item.sectionRef ?? 'default'}`,\n // TODO(settings-hub:i18n): resolve the hub label via i18n once wired.\n label: 'Settings',\n urlPath,\n icon: ctx.renderIcon(StandardIconReference.SETTINGS, { size: IconSize.SM }),\n contentType: NavigationContentType.SETTINGS_HUB,\n sectionRef: item.sectionRef,\n };\n}\n\nfunction resolveCustomComponent(\n item: CustomComponentItemRef,\n ctx: LauncherResolutionContext,\n): ResolvedNavigationTarget {\n return {\n targetKind: LauncherItemTargetKind.CUSTOM_COMPONENT,\n id: `resolved-custom-${item.componentRef}`,\n ref: `custom:${item.componentRef}`,\n label: item.componentRef,\n urlPath: '',\n componentRef: item.componentRef,\n contextResourceIdentifiers:\n ctx.contextResourceIdentifiers && Object.keys(ctx.contextResourceIdentifiers).length > 0\n ? ctx.contextResourceIdentifiers\n : undefined,\n };\n}\n\n\n// ════════════════════════════════════════════════════════════════\n// Per-Launcher Resolution Functions\n// ════════════════════════════════════════════════════════════════\n\n/**\n * Resolve a sidebar item (with potential children) to a `ResolvedSidebarItem`.\n * Recursively resolves children.\n */\nfunction resolveSidebarItem(\n item: SidebarItem,\n ctx: LauncherResolutionContext,\n): ResolvedSidebarItem | null {\n const target = resolveItemRef(item, ctx);\n if (!target) return null;\n\n let children: ResolvedSidebarItem[] | undefined;\n if (item.children && item.children.length > 0) {\n children = item.children\n .map(child => resolveSidebarItem(child, ctx))\n .filter((resolved): resolved is ResolvedSidebarItem => resolved !== null);\n }\n\n return {\n ...target,\n displayPolicy: item.displayPolicy,\n notificationBadgeRef: item.notificationBadgeRef,\n children,\n };\n}\n\n/**\n * Resolve sidebar sections from per-launcher config.\n *\n * Dispatches on `contentKind`:\n * - `NAVIGATION_LIST`: resolves each `LauncherItemRef` in `children` via `resolveItemRef`\n * - `RESOURCE_BROWSER`: passes through (component-level rendering, no item resolution), unless the viewer's roles\n * cannot perform its bound operation (#2674): then the section is dropped, as a launcher row for it would be\n * - `GUIDANCE_WIDGET`: passes through\n * - `CUSTOM_COMPONENT`: passes through\n *\n * `visibleInModes` / `scopeCondition` filtering is NOT applied here —\n * that happens in Macro B (Step 6).\n *\n * @see launcher-operation-binding-analysis.md §3.3.1\n */\nexport function resolveSidebarSections(\n sections: SidebarSection[],\n ctx: LauncherResolutionContext,\n): ResolvedSidebarSection[] {\n return sections.flatMap((section): ResolvedSidebarSection[] => {\n switch (section.contentKind) {\n case SidebarSectionContentKind.NAVIGATION_LIST:\n return [resolveNavigationListSection(section, ctx)];\n case SidebarSectionContentKind.RESOURCE_BROWSER:\n return viewerCanBrowse(section, ctx) ? [resolveResourceBrowserSection(section)] : [];\n case SidebarSectionContentKind.GUIDANCE_WIDGET:\n return [resolveGuidanceWidgetSection(section)];\n case SidebarSectionContentKind.CUSTOM_COMPONENT:\n return [resolveCustomComponentSection(section)];\n }\n });\n}\n\n/**\n * Whether the viewer may perform the operation a RESOURCE_BROWSER section fetches with (#2674). A browser the viewer\n * cannot list renders the backend's refusal as its content; dropping the section is what the launcher does for a row.\n * An operation that does not resolve keeps the section, so the browser can report its own configuration problem.\n */\nfunction viewerCanBrowse(section: SidebarSection_ResourceBrowser, ctx: LauncherResolutionContext): boolean {\n if (!ctx.canPerformOperation) return true;\n const config = ctx.registry.resourceConfigurations[section.resourceType] as AnyFrontendResourceConfiguration | undefined;\n if (!config) return true;\n const operation = resolveSidebarResourceBrowserOperation(config, section.operation ?? CoreResourceOperation.LIST, section.operationVariant);\n return operation === undefined || ctx.canPerformOperation(operation.roles);\n}\n\nfunction resolveNavigationListSection(\n section: SidebarSection_NavigationList,\n ctx: LauncherResolutionContext,\n): ResolvedSidebarSection_NavigationList {\n const items = section.children\n .map(child => resolveSidebarItem(child, ctx))\n .filter((resolved): resolved is ResolvedSidebarItem => resolved !== null);\n\n return {\n contentKind: SidebarSectionContentKind.NAVIGATION_LIST,\n ref: section.ref,\n label: section.label,\n icon: section.icon,\n showLabel: section.showLabel,\n collapsible: section.collapsible,\n defaultCollapsed: section.defaultCollapsed,\n isPrimary: section.isPrimary,\n visibleInModes: section.visibleInModes,\n items,\n behavior: section.behavior,\n inlineCreate: section.inlineCreate,\n inlineCreateResourceType: section.inlineCreateResourceType,\n nested: section.nested,\n maxNestingDepth: section.maxNestingDepth,\n };\n}\n\nfunction resolveResourceBrowserSection(\n section: SidebarSection_ResourceBrowser,\n): ResolvedSidebarSection_ResourceBrowser {\n return {\n contentKind: SidebarSectionContentKind.RESOURCE_BROWSER,\n ref: section.ref,\n label: section.label,\n icon: section.icon,\n showLabel: section.showLabel,\n collapsible: section.collapsible,\n defaultCollapsed: section.defaultCollapsed,\n visibleInModes: section.visibleInModes,\n resourceType: section.resourceType,\n operation: section.operation,\n operationVariant: section.operationVariant,\n navigateOperation: section.navigateOperation,\n navigateOperationVariant: section.navigateOperationVariant,\n instanceFilter: section.instanceFilter,\n onInstanceClick: section.onInstanceClick,\n };\n}\n\nfunction resolveGuidanceWidgetSection(\n section: SidebarSection_GuidanceWidget,\n): ResolvedSidebarSection_GuidanceWidget {\n return {\n contentKind: SidebarSectionContentKind.GUIDANCE_WIDGET,\n ref: section.ref,\n label: section.label,\n icon: section.icon,\n showLabel: section.showLabel,\n collapsible: section.collapsible,\n defaultCollapsed: section.defaultCollapsed,\n visibleInModes: section.visibleInModes,\n guidanceRef: section.guidanceRef,\n };\n}\n\nfunction resolveCustomComponentSection(\n section: SidebarSection_CustomComponent,\n): ResolvedSidebarSection_CustomComponent {\n return {\n contentKind: SidebarSectionContentKind.CUSTOM_COMPONENT,\n ref: section.ref,\n label: section.label,\n icon: section.icon,\n showLabel: section.showLabel,\n collapsible: section.collapsible,\n defaultCollapsed: section.defaultCollapsed,\n visibleInModes: section.visibleInModes,\n componentRef: section.componentRef,\n };\n}\n\n/**\n * Resolve command menu commands from per-launcher config.\n * Groups by category if present.\n */\nexport function resolveCommandMenuCommands(\n commands: CommandMenuCommand[],\n ctx: LauncherResolutionContext,\n): ResolvedCommandMenuItem[] {\n const resolved: ResolvedCommandMenuItem[] = [];\n\n for (const cmd of commands) {\n const target = resolveItemRef(cmd, ctx);\n if (!target) continue;\n\n resolved.push({\n ...target,\n category: cmd.category,\n shortcut: cmd.shortcut,\n searchKeywords: cmd.searchKeywords,\n displayPolicy: cmd.displayPolicy,\n });\n }\n\n return resolved;\n}\n\n/**\n * Resolve hotkey bindings from per-launcher config.\n */\nexport function resolveHotkeyBindings(\n bindings: HotkeyBinding[],\n ctx: LauncherResolutionContext,\n): ResolvedHotkeyBinding[] {\n const resolved: ResolvedHotkeyBinding[] = [];\n\n for (const binding of bindings) {\n const target = resolveItemRef(binding, ctx);\n if (!target) continue;\n\n const description =\n binding.description ??\n (binding.kind === LauncherItemTargetKind.RESOURCE_OPERATION\n ? ctx.tResourceOperation(binding.resourceType, binding.operation, 'title')\n : target.label);\n\n resolved.push({\n ...target,\n shortcut: binding.shortcut,\n scope: binding.scope,\n description,\n });\n }\n\n return resolved;\n}\n\n/**\n * Resolve quick action items from per-launcher config.\n */\nexport function resolveQuickActions(\n actions: QuickActionItem[],\n ctx: LauncherResolutionContext,\n): ResolvedQuickActionItem[] {\n const resolved: ResolvedQuickActionItem[] = [];\n\n for (const action of actions) {\n const target = resolveItemRef(action, ctx);\n if (!target) continue;\n\n resolved.push({\n ...target,\n displayPolicy: action.displayPolicy,\n });\n }\n\n return resolved;\n}\n\n/**\n * Resolve control panel items from per-launcher config.\n */\nexport function resolveControlPanelItems(\n items: ControlPanelItem[],\n ctx: LauncherResolutionContext,\n): ResolvedControlPanelItem[] {\n const resolved: ResolvedControlPanelItem[] = [];\n\n for (const item of items) {\n const target = resolveItemRef(item, ctx);\n if (!target) continue;\n\n resolved.push({\n ...target,\n section: item.section,\n });\n }\n\n return resolved;\n}\n\n/**\n * Resolve toolbar tools from per-launcher config.\n */\nexport function resolveToolbarTools(\n tools: ToolbarItem[],\n ctx: LauncherResolutionContext,\n): ResolvedToolbarItem[] {\n const resolved: ResolvedToolbarItem[] = [];\n\n for (const tool of tools) {\n const target = resolveItemRef(tool, ctx);\n if (!target) continue;\n\n resolved.push({\n ...target,\n group: tool.group,\n iconOnly: tool.iconOnly,\n });\n }\n\n return resolved;\n}\n\n/**\n * Resolve menubar content — validates hosted components exist and resolves items.\n */\nexport function resolveMenubarContent(\n hostedComponents: MenubarHostedComponent[] | undefined,\n items: MenubarLauncherItem[] | undefined,\n ctx: LauncherResolutionContext,\n): ResolvedMenubarContent {\n const resolvedItems: ResolvedMenubarItem[] = [];\n\n if (items) {\n for (const item of items) {\n const target = resolveItemRef(item, ctx);\n if (!target) continue;\n\n resolvedItems.push({\n ...target,\n group: item.group,\n ...(item.notificationBadgeRef ? { notificationBadgeRef: item.notificationBadgeRef } : {}),\n });\n }\n }\n\n return {\n hostedComponents: hostedComponents ?? [],\n items: resolvedItems,\n };\n}\n"]}
|
|
@@ -4,25 +4,41 @@ export interface LauncherRuntimeAvailabilityContext {
|
|
|
4
4
|
activeMode: string | null;
|
|
5
5
|
availableModes: AppModeDefinition[];
|
|
6
6
|
allScopeValues: Record<string, AppScopeValue>;
|
|
7
|
-
|
|
7
|
+
/** The viewer's application-scope roles. */
|
|
8
|
+
userAppRoles: string[];
|
|
9
|
+
/** The viewer's roles in the CURRENT organization; empty outside one. */
|
|
10
|
+
userOrgRoles: string[];
|
|
8
11
|
resolvedFeatures: string[];
|
|
9
12
|
runtimeCapabilities: Record<string, boolean>;
|
|
10
13
|
}
|
|
11
14
|
/**
|
|
12
15
|
* Centralized runtime signals used by declarative launcher availability.
|
|
13
16
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* slices need more runtime information.
|
|
17
|
+
* Evaluated by {@link isLauncherRuntimeAvailabilitySatisfied}: `runtimeCapabilities` for `requiredCapabilities`, and the
|
|
18
|
+
* application and current-organization roles for `visibleToRoles`.
|
|
17
19
|
*/
|
|
18
20
|
export declare function useLauncherRuntimeAvailabilityContext(): LauncherRuntimeAvailabilityContext;
|
|
19
21
|
/**
|
|
20
|
-
*
|
|
22
|
+
* Whether a launcher declaration survives the app-shell filtering pass: every `requiredCapabilities` entry is on, and the
|
|
23
|
+
* viewer is one of its `visibleToRoles`.
|
|
21
24
|
*
|
|
22
25
|
* `requiredFeatures` remains the canonical plan/subscription gate later in the
|
|
23
26
|
* launcher resolution + surface rendering pipeline.
|
|
24
27
|
*/
|
|
25
28
|
export declare function isLauncherRuntimeAvailabilitySatisfied(config: LauncherRuntimeAvailabilityConfig | undefined, context: LauncherRuntimeAvailabilityContext): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* The capability half alone: every `requiredCapabilities` entry is on. What a settings destination is filtered by,
|
|
31
|
+
* since its roles are `requiredRoles`, a rule of its own (see `SettingsRuntimeAvailabilityConfig`).
|
|
32
|
+
*/
|
|
33
|
+
export declare function areLauncherCapabilitiesSatisfied(config: Pick<LauncherRuntimeAvailabilityConfig, 'requiredCapabilities'> | undefined, context: Pick<LauncherRuntimeAvailabilityContext, 'runtimeCapabilities'>): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Whether the viewer is one of `visibleToRoles`: holds a listed role, or a role that inherits one through the CORE role
|
|
36
|
+
* tables. A role those tables do not know (an application's custom role) stands only for itself, since the browser does
|
|
37
|
+
* not receive how it inherits. Deliberately NOT the fail-open rule the action bar uses
|
|
38
|
+
* (`userRolesSatisfyRequiredRoles`): there, an uncertain answer keeps a button the server will judge; here the
|
|
39
|
+
* declaration names exactly who the navigation is for, and showing it to an unknown role would defeat it.
|
|
40
|
+
*/
|
|
41
|
+
export declare function viewerIsInLauncherAudience(visibleToRoles: readonly string[] | undefined, context: Pick<LauncherRuntimeAvailabilityContext, 'userAppRoles' | 'userOrgRoles'>): boolean;
|
|
26
42
|
export declare function filterSidebarSectionsByRuntimeAvailability(sections: SidebarSection[] | undefined, context: LauncherRuntimeAvailabilityContext): SidebarSection[] | undefined;
|
|
27
43
|
export declare function filterCommandMenuCommandsByRuntimeAvailability(commands: CommandMenuCommand[] | undefined, context: LauncherRuntimeAvailabilityContext): CommandMenuCommand[] | undefined;
|
|
28
44
|
type RuntimeAvailabilityFlatLauncherItem = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher-runtime-availability.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"launcher-runtime-availability.d.ts","sourceRoot":"","sources":["../../../../src/core/navigation/launcher-runtime-availability.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,19 +4,18 @@ import { useAppScopeSafe } from '../../core/scope/useAppScope.js';
|
|
|
4
4
|
import { useUserOrgs } from '../../core/security/useUserOrgs.js';
|
|
5
5
|
import { useFeatures } from '../../core/features/useFeatures.js';
|
|
6
6
|
import { useBillingSafe } from '../../core/billing/useBilling.js';
|
|
7
|
-
import { CoreFeature } from '@wildo-ai/saas-models';
|
|
7
|
+
import { CoreFeature, DEFAULT_APP_ROLE_CONFIGURATION, DEFAULT_ORGANIZATION_ROLES, computeRoleHierarchy } from '@wildo-ai/saas-models';
|
|
8
8
|
import { SidebarSectionContentKind, } from '../../core/config/launcher-items.frontend.schemas.js';
|
|
9
9
|
/**
|
|
10
10
|
* Centralized runtime signals used by declarative launcher availability.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* slices need more runtime information.
|
|
12
|
+
* Evaluated by {@link isLauncherRuntimeAvailabilitySatisfied}: `runtimeCapabilities` for `requiredCapabilities`, and the
|
|
13
|
+
* application and current-organization roles for `visibleToRoles`.
|
|
15
14
|
*/
|
|
16
15
|
export function useLauncherRuntimeAvailabilityContext() {
|
|
17
16
|
const appMode = useAppModeSafe();
|
|
18
17
|
const appScope = useAppScopeSafe();
|
|
19
|
-
const { permissions } = useUserOrgs();
|
|
18
|
+
const { permissions, currentOrganizationId } = useUserOrgs();
|
|
20
19
|
const { resolvedFeatures, isFeatureOffered } = useFeatures();
|
|
21
20
|
const billing = useBillingSafe();
|
|
22
21
|
// Enterprise-config features (SSO / SCIM / SIEM / webhooks) are gated by the
|
|
@@ -37,7 +36,8 @@ export function useLauncherRuntimeAvailabilityContext() {
|
|
|
37
36
|
activeMode: appMode?.activeMode ?? null,
|
|
38
37
|
availableModes: appMode?.availableModes ?? [],
|
|
39
38
|
allScopeValues: appScope?.allScopeValues ?? {},
|
|
40
|
-
|
|
39
|
+
userAppRoles: permissions?.appLevel ?? [],
|
|
40
|
+
userOrgRoles: currentOrganizationId ? permissions?.organizations?.[currentOrganizationId] ?? [] : [],
|
|
41
41
|
resolvedFeatures: resolvedFeatures?.features ?? [],
|
|
42
42
|
runtimeCapabilities: {
|
|
43
43
|
billingEnabled: Boolean(billing?.isEnabled),
|
|
@@ -51,6 +51,8 @@ export function useLauncherRuntimeAvailabilityContext() {
|
|
|
51
51
|
appMode?.availableModes,
|
|
52
52
|
appScope?.allScopeValues,
|
|
53
53
|
permissions?.appLevel,
|
|
54
|
+
permissions?.organizations,
|
|
55
|
+
currentOrganizationId,
|
|
54
56
|
resolvedFeatures?.features,
|
|
55
57
|
billing?.isEnabled,
|
|
56
58
|
ssoEnabled,
|
|
@@ -60,16 +62,47 @@ export function useLauncherRuntimeAvailabilityContext() {
|
|
|
60
62
|
]);
|
|
61
63
|
}
|
|
62
64
|
/**
|
|
63
|
-
*
|
|
65
|
+
* Whether a launcher declaration survives the app-shell filtering pass: every `requiredCapabilities` entry is on, and the
|
|
66
|
+
* viewer is one of its `visibleToRoles`.
|
|
64
67
|
*
|
|
65
68
|
* `requiredFeatures` remains the canonical plan/subscription gate later in the
|
|
66
69
|
* launcher resolution + surface rendering pipeline.
|
|
67
70
|
*/
|
|
68
71
|
export function isLauncherRuntimeAvailabilitySatisfied(config, context) {
|
|
72
|
+
return areLauncherCapabilitiesSatisfied(config, context) && viewerIsInLauncherAudience(config?.visibleToRoles, context);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The capability half alone: every `requiredCapabilities` entry is on. What a settings destination is filtered by,
|
|
76
|
+
* since its roles are `requiredRoles`, a rule of its own (see `SettingsRuntimeAvailabilityConfig`).
|
|
77
|
+
*/
|
|
78
|
+
export function areLauncherCapabilitiesSatisfied(config, context) {
|
|
69
79
|
if (!config?.requiredCapabilities?.length)
|
|
70
80
|
return true;
|
|
71
81
|
return config.requiredCapabilities.every(capability => Boolean(context.runtimeCapabilities[capability]));
|
|
72
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Whether the viewer is one of `visibleToRoles`: holds a listed role, or a role that inherits one through the CORE role
|
|
85
|
+
* tables. A role those tables do not know (an application's custom role) stands only for itself, since the browser does
|
|
86
|
+
* not receive how it inherits. Deliberately NOT the fail-open rule the action bar uses
|
|
87
|
+
* (`userRolesSatisfyRequiredRoles`): there, an uncertain answer keeps a button the server will judge; here the
|
|
88
|
+
* declaration names exactly who the navigation is for, and showing it to an unknown role would defeat it.
|
|
89
|
+
*/
|
|
90
|
+
export function viewerIsInLauncherAudience(visibleToRoles, context) {
|
|
91
|
+
if (!visibleToRoles?.length)
|
|
92
|
+
return true;
|
|
93
|
+
const held = new Set([
|
|
94
|
+
...expandHeldRoles(context.userAppRoles, DEFAULT_APP_ROLE_CONFIGURATION),
|
|
95
|
+
...expandHeldRoles(context.userOrgRoles, DEFAULT_ORGANIZATION_ROLES),
|
|
96
|
+
]);
|
|
97
|
+
return visibleToRoles.some(role => held.has(role));
|
|
98
|
+
}
|
|
99
|
+
/** Each held role and, for a core role, every role it inherits. */
|
|
100
|
+
function expandHeldRoles(roles, rolesConfig) {
|
|
101
|
+
return roles.flatMap((role) => {
|
|
102
|
+
const hierarchy = computeRoleHierarchy(role, rolesConfig);
|
|
103
|
+
return hierarchy.length === 0 ? [role] : [role, ...hierarchy];
|
|
104
|
+
});
|
|
105
|
+
}
|
|
73
106
|
function filterSidebarItemsByRuntimeAvailability(items, context) {
|
|
74
107
|
return items.flatMap(item => {
|
|
75
108
|
if (!isLauncherRuntimeAvailabilitySatisfied(item.runtimeAvailability, context)) {
|