@wildo-ai/saas-frontend-lib 1.1.5 → 1.1.6
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/components/actions/action-bar.d.ts +15 -0
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.js +15 -0
- package/dist/esm/components/actions/action-bar.js.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.d.ts +97 -7
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +8 -3
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.js +5 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.js.map +1 -1
- package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.js +1 -4
- package/dist/esm/components/auth/Auth_Main.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.js +1 -3
- package/dist/esm/components/auth/Auth_Register.js.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts +7 -0
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.js +13 -7
- package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js +32 -33
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js +18 -20
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js +2 -3
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts +13 -16
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js +18 -15
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.js +2 -2
- package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.js +2 -2
- package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts +33 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.js +34 -5
- package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.js +2 -2
- package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts +2 -0
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.js +1 -0
- package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
- package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayField.js +15 -1
- package/dist/esm/components/data-display/DisplayField.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.js +11 -0
- package/dist/esm/components/data-display/DisplayFieldArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.js +2 -2
- package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +12 -2
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js +3 -2
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js +2 -2
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js +8 -2
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.js +18 -4
- package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js +61 -3
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +7 -5
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +11 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +36 -11
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts +6 -0
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +23 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +35 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +47 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +124 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts +8 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +46 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -0
- package/dist/esm/components/feedback/resource-empty-state.d.ts +21 -8
- package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/resource-empty-state.js +56 -26
- package/dist/esm/components/feedback/resource-empty-state.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.d.ts +29 -7
- package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.js +231 -101
- package/dist/esm/components/flows-actors/approval.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.js +57 -0
- package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.js +4 -4
- package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.js +0 -5
- package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
- package/dist/esm/components/form/Form.d.ts +2 -2
- package/dist/esm/components/form/Form.js +2 -2
- package/dist/esm/components/form/Form.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +28 -3
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.js +43 -14
- package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts +3 -0
- package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormField.js +60 -21
- package/dist/esm/components/form/automated/FormField.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.d.ts +6 -3
- package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.js +3 -2
- package/dist/esm/components/form/automated/FormFieldArray.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +5 -4
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js +148 -55
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts +30 -0
- package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.js +30 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.js.map +1 -1
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts +79 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts.map +1 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js +203 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js.map +1 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +12 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.js +11 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.js +2 -2
- package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
- package/dist/esm/components/form/combobox.d.ts +7 -0
- package/dist/esm/components/form/combobox.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.js.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.js +13 -0
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.d.ts +58 -0
- package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.js +34 -6
- package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js +60 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.d.ts +0 -12
- package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.js +34 -13
- package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.js +46 -0
- package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +73 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.js +64 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -0
- package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.js +8 -1
- package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.js +4 -0
- package/dist/esm/components/form/fields/form-field-string.labels.js.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts +31 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts.map +1 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.js +81 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.js.map +1 -0
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts +14 -1
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js +14 -0
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +22 -0
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +1 -22
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
- package/dist/esm/components/layout/resizable.d.ts +11 -0
- package/dist/esm/components/layout/resizable.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts +11 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js +15 -3
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js +2 -2
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +18 -20
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +7 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js +4 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js +18 -2
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +82 -10
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +8 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +8 -2
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.js +6 -2
- package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +31 -16
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js +23 -8
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +2 -2
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts +13 -0
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.js +55 -28
- package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.js +41 -20
- package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.js +1 -2
- package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts +9 -4
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.js +30 -11
- package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +4 -2
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js +6 -2
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.js +30 -14
- package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +14 -198
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.d.ts +2 -2
- package/dist/esm/components/resources/ResourceLayout_Update.js +2 -2
- package/dist/esm/components/resources/ResourceLayout_Update.js.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.js +69 -39
- package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts +32 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts.map +1 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.js +130 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.js.map +1 -0
- package/dist/esm/components/resources/collection-create-placement.utils.d.ts +32 -0
- package/dist/esm/components/resources/collection-create-placement.utils.d.ts.map +1 -0
- package/dist/esm/components/resources/collection-create-placement.utils.js +37 -0
- package/dist/esm/components/resources/collection-create-placement.utils.js.map +1 -0
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.js +5 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.js.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts +8 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js +49 -2
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +22 -0
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js +85 -2
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.d.ts +14 -0
- package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.js +22 -0
- package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.js +3 -0
- package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js +33 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.js +3 -0
- package/dist/esm/components/resources/skeleton/ObjectScope.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.d.ts +12 -0
- package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.js +28 -2
- package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts +70 -0
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.js +157 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +6 -0
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.js +13 -2
- package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js +2 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js +61 -15
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +24 -2
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js +69 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js +18 -19
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.js +5 -4
- package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
- package/dist/esm/components/sections/stepper.d.ts +5 -0
- package/dist/esm/components/sections/stepper.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.js.map +1 -1
- package/dist/esm/components/sections/surface.d.ts.map +1 -1
- package/dist/esm/components/sections/surface.js +12 -3
- package/dist/esm/components/sections/surface.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +43 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +129 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +34 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.js +9 -11
- package/dist/esm/components/settings/AppPage_AppearanceSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js +3 -2
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts +4 -2
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.js +21 -3
- package/dist/esm/components/settings/AppPage_BillingSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.js +5 -10
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +58 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +243 -40
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +67 -6
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js +19 -11
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js +4 -2
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.js +3 -0
- package/dist/esm/components/settings/SettingsHub.js.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js +16 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +59 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.js +136 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.d.ts +5 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-view.utils.js +5 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/useResourceChartData.d.ts +50 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.d.ts.map +1 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.js +72 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.js.map +1 -0
- package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js +2 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts +86 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +187 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -0
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts +5 -2
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts.map +1 -1
- package/dist/esm/core/app-shell/PortalContainerContext.js +5 -2
- package/dist/esm/core/app-shell/PortalContainerContext.js.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts +18 -9
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.js +1 -0
- package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts +10 -0
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.js +28 -5
- package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.js +38 -0
- package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +15 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +47 -13
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/BillingContext.d.ts +25 -2
- package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingContext.js +16 -25
- package/dist/esm/core/billing/BillingContext.js.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts +11 -3
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.js +14 -8
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/useBillingPlanChange.d.ts.map +1 -1
- package/dist/esm/core/billing/useBillingPlanChange.js +2 -0
- package/dist/esm/core/billing/useBillingPlanChange.js.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +1 -0
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts +29 -229
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js +29 -327
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts +17 -27
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js +28 -48
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +21 -11
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.js +4 -4
- package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +17 -0
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.js +17 -0
- package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +10 -10
- package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.js +221 -6
- package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +8 -0
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.js +1 -0
- package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +10 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.js +9 -0
- package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.js +30 -19
- package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
- package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorContext.js +9 -1
- package/dist/esm/core/errors/ErrorContext.js.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.js +5 -4
- package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.js +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.js.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts +2 -2
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.js +4 -4
- package/dist/esm/core/errors/errors-builder.frontend.services.js.map +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
- package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
- package/dist/esm/core/events/NotificationContext.js +23 -5
- package/dist/esm/core/events/NotificationContext.js.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.d.ts +110 -43
- package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.js +89 -15
- package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts +2 -0
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js +2 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +5 -2
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts +63 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js +131 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts +61 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js +178 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts +52 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.js +144 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts +22 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js +23 -3
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -1
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts +55 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js +65 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js.map +1 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +63 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +100 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -0
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +45 -7
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.js +112 -28
- package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +32 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.js +91 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -0
- package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceRenderer.js +3 -2
- package/dist/esm/core/guidance/GuidanceRenderer.js.map +1 -1
- package/dist/esm/core/i18n/I18nContext.d.ts +22 -8
- package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
- package/dist/esm/core/i18n/I18nContext.js +21 -9
- package/dist/esm/core/i18n/I18nContext.js.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts +5 -3
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.js +5 -3
- package/dist/esm/core/i18n/component-label-resolution.utils.js.map +1 -1
- package/dist/esm/core/i18n/useI18n.d.ts +2 -1
- package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
- package/dist/esm/core/i18n/useI18n.js +2 -1
- package/dist/esm/core/i18n/useI18n.js.map +1 -1
- package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingContext.js +7 -1
- package/dist/esm/core/loading/LoadingContext.js.map +1 -1
- package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingGate.js +19 -1
- package/dist/esm/core/loading/LoadingGate.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts +15 -2
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.js +183 -20
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js +2 -2
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts +7 -15
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js +8 -26
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts +12 -3
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js +3 -2
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts +42 -0
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +89 -5
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts +2 -0
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js +2 -0
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts +78 -0
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.js +264 -16
- package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.d.ts +8 -0
- package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.js +137 -30
- package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.d.ts +2 -0
- package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js +1 -0
- package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
- package/dist/esm/core/navigation/navigation-cascade.d.ts +46 -0
- package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -0
- package/dist/esm/core/navigation/navigation-cascade.js +222 -0
- package/dist/esm/core/navigation/navigation-cascade.js.map +1 -0
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js +21 -2
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js.map +1 -1
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts +71 -0
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -0
- package/dist/esm/core/navigation/navigation-controller-internals.js +84 -0
- package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -0
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +86 -2
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js +242 -124
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.d.ts +170 -8
- package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.js +121 -2
- package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.d.ts +102 -6
- package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.js +283 -34
- package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts +0 -10
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +0 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.js.map +0 -1
- package/dist/esm/core/navigation/useNavigationController.d.ts +28 -157
- package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.js +211 -1189
- package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts +174 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.js +977 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -0
- package/dist/esm/core/navigation/useOverlayTitle.d.ts +13 -1
- package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
- package/dist/esm/core/navigation/useOverlayTitle.js +15 -10
- package/dist/esm/core/navigation/useOverlayTitle.js.map +1 -1
- package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts +43 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts.map +1 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.js +44 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.js.map +1 -0
- package/dist/esm/core/navigation/zone-collapse-migration.d.ts +83 -0
- package/dist/esm/core/navigation/zone-collapse-migration.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-collapse-migration.js +116 -0
- package/dist/esm/core/navigation/zone-collapse-migration.js.map +1 -0
- package/dist/esm/core/navigation/zone-collapse.d.ts +51 -0
- package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-collapse.js +59 -0
- package/dist/esm/core/navigation/zone-collapse.js.map +1 -0
- package/dist/esm/core/navigation/zone-emphasis.d.ts +3 -0
- package/dist/esm/core/navigation/zone-emphasis.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-emphasis.js +26 -4
- package/dist/esm/core/navigation/zone-emphasis.js.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.d.ts +22 -0
- package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.js +25 -0
- package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.js +53 -18
- package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js +3 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts +22 -0
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.js +72 -3
- package/dist/esm/core/requests/websockets/useNotificationBadges.js.map +1 -1
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts +28 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts.map +1 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js +86 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js.map +1 -0
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +38 -3
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +57 -2
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +4 -2
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +30 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js +47 -4
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.js +22 -1
- package/dist/esm/core/resources/ResourceRegistryContext.js.map +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts +22 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.js +25 -2
- package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +113 -13
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js +173 -20
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts +11 -0
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js +7 -0
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts +3 -2
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js +13 -5
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +6 -0
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js +90 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts +139 -16
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.js +110 -11
- package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js +3 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +10 -0
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js +8 -0
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +7 -0
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.js +9 -2
- package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts +59 -0
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -0
- package/dist/esm/core/resources/useOperationDirectExecution.js +278 -0
- package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -0
- package/dist/esm/core/resources/useResourceOperationActions.d.ts +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.js +69 -22
- package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts +8 -6
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.js +3 -2
- package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
- package/dist/esm/core/runtime/AppRouter.js +23 -2
- package/dist/esm/core/runtime/AppRouter.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts +4 -2
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts +12 -2
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.js +5 -2
- package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +25 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js +37 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts +21 -2
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js +51 -4
- package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.d.ts +11 -0
- package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.js +70 -22
- package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.js +10 -2
- package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.js +72 -8
- package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +7 -0
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.js +8 -2
- package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/useGrantedConsentPurposes.d.ts +30 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.d.ts.map +1 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.js +38 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.js.map +1 -0
- package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
- package/dist/esm/core/ui/UIContext.js +10 -6
- package/dist/esm/core/ui/UIContext.js.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.d.ts +20 -0
- package/dist/esm/core/ui/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.js +39 -5
- package/dist/esm/core/ui/color-conversion.utils.js.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.js +22 -2
- package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts +6 -6
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.js +3 -3
- package/dist/esm/core/ui/ui.frontend.schemas.js.map +1 -1
- package/dist/esm/index.d.ts +10 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +19 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/testing/app-shell-placement-coverage.d.ts +43 -0
- package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -0
- package/dist/esm/testing/app-shell-placement-coverage.js +114 -0
- package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -0
- package/dist/esm/testing/mock-builders.d.ts.map +1 -1
- package/dist/esm/testing/mock-builders.js +5 -0
- package/dist/esm/testing/mock-builders.js.map +1 -1
- package/dist/esm/testing.d.ts +1 -0
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/testing.js +1 -0
- package/dist/esm/testing.js.map +1 -1
- package/package.json +9 -7
- package/dist/esm/core/navigation/useIsStackEntryActive.js +0 -15
- package/dist/tsconfig.build.tsbuildinfo +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-policy-resolver.service.js","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation-policy-resolver.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Navigation Policy Resolver — v3 zone-first, operation-driven resolution.\n *\n * Given a source context (zone, appLevel, or overlay), an operation, and the\n * navigation layout config, determines:\n * - Which transition verb to apply (push, replace, split, overlay, inplace, promote)\n * - Which zone the content lands in (derived from the transition verb)\n * - What visual appearance to use (dialog/sheet/drawer for overlay, panel/drawer for split)\n * - Whether the target zone is responsively collapsed at the current viewport, and — since #411 —\n * APPLYING that collapse (push into primary, or overlay) rather than merely reporting it\n * - Whether the push would exceed `maxDepth`, escalating it to an overlay if so\n *\n * Resolution chain (first match wins):\n * 1. Per-resource operation override (highest priority)\n * 2. Per-relationship transition\n * 3. Global viewport override\n * 4. Source context transitions[operation]\n * 5. Framework hardcoded fallback\n *\n * @see _code_archive/docs-archive/navigation/navigation-v3-reflection.md\n */\n\nimport {\n CoreResourceOperation,\n NavigationTransition,\n NavigationZoneName,\n ResponsiveCollapseMode,\n ResourceOperationFrontendSurface,\n OverlayAppearance,\n SplitAppearance,\n type NavigationLayout,\n type TransitionConfig,\n type TransitionObject,\n type ZoneTransitions,\n type ZoneAppearance,\n type ViewportDiscriminated,\n} from '@wildo-ai/saas-models';\nimport type { NavigationOperationOverride } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { ViewportBreakpoint } from '@wildo-ai/zod-decorators';\nimport {\n NavigationZone,\n APP_LEVEL_NAVIGATION_SOURCE,\n type NavigationResolutionContext,\n type NavigationResolutionResult,\n} from './navigation.schemas';\nimport { contentAreaFitsSplit } from './split-fit';\n\n\n// ════════════════════════════════════════════════════════════════\n// Viewport-Discriminated Resolution Utility\n// ════════════════════════════════════════════════════════════════\n\n/**\n * Viewport priority order — when no exact match exists for the current\n * viewport, fall back to the next more general breakpoint, then to desktop.\n */\nconst VIEWPORT_FALLBACK_ORDER: Record<ViewportBreakpoint, ViewportBreakpoint[]> = {\n [ViewportBreakpoint.MOBILE]: [ViewportBreakpoint.MOBILE, ViewportBreakpoint.VERT_TABLET, ViewportBreakpoint.DESKTOP],\n [ViewportBreakpoint.VERT_TABLET]: [ViewportBreakpoint.VERT_TABLET, ViewportBreakpoint.DESKTOP],\n [ViewportBreakpoint.DESKTOP]: [ViewportBreakpoint.DESKTOP],\n};\n\n/**\n * Resolve a `ViewportDiscriminated<T>` value for the current viewport.\n *\n * If the value is a plain `T`, it applies at all viewports. If it's a\n * viewport-keyed partial record, resolves by trying the current viewport\n * first, then falling back through larger breakpoints.\n *\n * Returns `undefined` when no match is found (caller applies defaults).\n */\nexport function resolveViewportDiscriminated<T>(\n value: ViewportDiscriminated<T> | undefined,\n viewport: ViewportBreakpoint,\n): T | undefined {\n if (value === undefined || value === null) return undefined;\n if (typeof value !== 'object' || !isViewportRecord(value)) return value as T;\n\n const record = value as Partial<Record<ViewportBreakpoint, T>>;\n const fallbacks = VIEWPORT_FALLBACK_ORDER[viewport] ?? [viewport];\n for (const bp of fallbacks) {\n if (bp in record) return record[bp];\n }\n return undefined;\n}\n\n/**\n * Type guard: distinguishes a viewport-keyed record from a plain enum value.\n * Viewport breakpoints are strings like '<md', '<lg', '>=lg'. If any key\n * matches a known breakpoint, the value is a viewport record.\n */\nfunction isViewportRecord<T>(value: unknown): value is Partial<Record<ViewportBreakpoint, T>> {\n if (typeof value !== 'object' || value === null) return false;\n const keys = Object.keys(value);\n const breakpoints = new Set(Object.values(ViewportBreakpoint) as string[]);\n return keys.length > 0 && keys.some(k => breakpoints.has(k));\n}\n\n\n// ════════════════════════════════════════════════════════════════\n// Transition Config Helpers\n// ════════════════════════════════════════════════════════════════\n\n/** Extract the transition verb from a TransitionConfig (string or object). */\nfunction getTransitionVerb(config: TransitionConfig): NavigationTransition {\n if (typeof config === 'string') return config;\n return (config as TransitionObject).transition;\n}\n\n/** Extract the ephemeral modifier from a TransitionConfig. */\nfunction isEphemeral(config: TransitionConfig): boolean {\n if (typeof config === 'string') return false;\n return (config as TransitionObject).ephemeral === true;\n}\n\n/** Extract the persistent modifier from a TransitionConfig. */\nfunction isPersistent(config: TransitionConfig): boolean {\n if (typeof config === 'string') return false;\n return (config as TransitionObject).persistent === true;\n}\n\n\n// ════════════════════════════════════════════════════════════════\n// Default Fallback Transitions\n// ════════════════════════════════════════════════════════════════\n\nconst FRAMEWORK_FALLBACK_TRANSITION = NavigationTransition.PUSH;\n\n\n// ════════════════════════════════════════════════════════════════\n// Navigation Policy Resolver\n// ════════════════════════════════════════════════════════════════\n\nexport class NavigationPolicyResolver {\n\n /**\n * Resolve a navigation event to a concrete result.\n *\n * @param context - Input signals: source zone, operation, viewport, overrides, etc.\n * @param layout - The app's NavigationLayout configuration.\n * @returns What the controller should do: target zone, transition, appearance, collapse state.\n */\n resolve(context: NavigationResolutionContext, layout: NavigationLayout): NavigationResolutionResult {\n const resolvedTransition = this.resolveTransition(context, layout);\n const transitionVerb = getTransitionVerb(resolvedTransition);\n const ephemeral = isEphemeral(resolvedTransition);\n const persistent = isPersistent(resolvedTransition);\n\n const targetZone = this.deriveTargetZone(transitionVerb, context, layout, persistent);\n\n // ─── Surface coercion: EMBEDDED never TAKES OVER a structural zone ─────────────\n // `ResourceOperationFrontendSurface.EMBEDDED` is contractually a view\n // \"rendered within a host — overlay/drill-in when standalone\". A STRUCTURAL\n // zone is not a host; it is an addressable surface that already holds\n // something a reader is reading. The transition chain is keyed by core\n // semantics only (an app cannot author \"embedded READ → overlay\" in\n // `transitions`), so when the chain resolves EMBEDDED content onto one we\n // escalate to OVERLAY here — the same escalation posture `resolveSplitTarget`\n // already uses when no adjacent zone exists. Explicit pane outcomes\n // (SPLIT → secondary/companion) and overlay outcomes are hosts and pass\n // through untouched, as does every non-resource content navigation\n // (`operationSurface` is undefined there).\n //\n // ── The zone test was `=== PRIMARY` until 2026-09-11, and that was the whole of #627. ──\n //\n // PUSH and REPLACE both target `getStructuralSourceZone`, i.e. THE ZONE THE\n // REFERENCE WAS CLICKED IN — so whether an EMBEDDED read opened as an overlay\n // or silently replaced the surface beneath it depended on which pane the\n // reference happened to be rendered in. Measured on the workbench's Build plan,\n // which is a hosted pane in SECONDARY: clicking a task reference fetched the\n // aspect row and every one of its split edges, then REPLACED the document the\n // reader was reading with it. Nothing threw, nothing logged, and the page the\n // reader had been on was simply gone.\n //\n // PRIMARY was never the special case. \"Not a host\" is true of every structural\n // zone, and the argument the original comment makes for PRIMARY — it is the\n // addressable surface, not a host — is the same argument for a pane.\n //\n // ── And a SPLIT is a host only when it actually OPENS a pane. ──\n //\n // The exemption below reads `zoneOccupancy`, not the verb, and the difference is the whole\n // defect. `resolveSplitTarget` answers SECONDARY in two situations that mean opposite things:\n // when secondary is FREE it opens a pane beside the source, which is the drill-in host the enum\n // allows — and when both panes are taken it falls through to \"push into secondary (replace\n // existing content)\", which is its own comment's wording for taking a surface over. A verb test\n // cannot tell those apart, so exempting SPLIT wholesale re-opened the hole one line down.\n //\n // Measured on the workbench, which declares ONE pane: the artifact list holds PRIMARY, the\n // document holds SECONDARY, and a reference clicked inside that document resolved\n // `{surface: embedded, verb: split, targetZone: secondary}` — secondary occupied by the very\n // document the reader was reading, replaced by the aspect. Occupancy is the input\n // `resolveSplitTarget` already decides on, so reading it here cannot drift from it.\n if (\n context.operationSurface === ResourceOperationFrontendSurface.EMBEDDED\n && targetZone !== NavigationZone.OVERLAY\n && !(\n transitionVerb === NavigationTransition.SPLIT\n && context.zoneOccupancy?.[targetZone as NavigationZoneName] !== true\n )\n // …EXCEPT for INPLACE, which takes over nothing either — it is the one transition that places\n // no content in a zone at all, and `deriveTargetZone` only reports a zone for it because \"the\n // source zone\" is the closest thing that function can say about an element-level outcome.\n //\n // Without this exemption the coercion silently rewrote every EMBEDDED inline transition into\n // an overlay BEFORE the controller could hand it to the element host — so the inline-edit kit\n // would have gone on not editing inline, one layer further down than the defect it replaced,\n // and the surface most likely to author `inplace` (a row's EMBEDDED update) is exactly the one\n // it would have hit. Found by driving the real controller; a resolver-level test would not\n // have shown it, because at the resolver an overlay is a perfectly good answer.\n && transitionVerb !== NavigationTransition.INPLACE\n ) {\n return {\n targetZone: NavigationZone.OVERLAY,\n transition: NavigationTransition.OVERLAY,\n appearance: this.deriveAppearance(NavigationTransition.OVERLAY, context, layout),\n collapsed: false,\n ephemeral: ephemeral || undefined,\n };\n }\n\n const collapseMode = this.resolveCollapseMode(targetZone, context, layout);\n\n /*\n * ─── RESPONSIVE COLLAPSE IS APPLIED HERE, not merely reported ───────────────────────────────\n *\n * Until 2026-09-08 (#411) `collapsed` was computed, returned, and read by nobody: the controller\n * logged it, and `NavigationContentAreas` hid the secondary and companion zones unconditionally\n * on mobile. So content routed to a collapsed zone went into a zone that would not render, and\n * the declared choice between `PUSH` and `OVERLAY` had no effect whatsoever.\n *\n * Collapse is a PLACEMENT decision, which is what this resolver answers, so it belongs here\n * rather than in the controller. Applying it downstream would mean two places deciding where\n * content lands, and the second would have to re-derive the first's inputs.\n *\n * PUSH -> the content joins PRIMARY's stack. The user sees it in context, and back pops\n * to primary's previous content — the enum's own contract.\n * OVERLAY -> the content opens over primary as a sheet/dialog. Dismiss returns underneath.\n *\n * The appearance is derived AFTER the retarget, from the transition the content actually gets:\n * deriving it from the pre-collapse verb would give an overlay a SPLIT appearance\n * (`panel`/`drawer`), which the overlay container cannot render.\n *\n * `collapsed` stays in the result as INFORMATION — it is what lets a reader (and a test) tell a\n * PUSH that was authored from a PUSH that is a collapsed SPLIT, which otherwise look identical.\n */\n const collapsedTargetZone = collapseMode === ResponsiveCollapseMode.OVERLAY\n ? NavigationZone.OVERLAY\n : collapseMode === ResponsiveCollapseMode.PUSH\n ? NavigationZoneName.PRIMARY\n : targetZone;\n const collapsedTransition = collapseMode === ResponsiveCollapseMode.OVERLAY\n ? NavigationTransition.OVERLAY\n : collapseMode === ResponsiveCollapseMode.PUSH\n ? NavigationTransition.PUSH\n : transitionVerb;\n\n /*\n * ─── maxDepth: a push past the ceiling becomes an overlay ───────────────────────────────────\n *\n * `NavigationLayout.maxDepth` documents itself as \"when a zone's stack depth reaches `maxDepth`,\n * the next `push` opens an overlay instead\" and, until 2026-09-08 (#411), NOTHING read it — the\n * field and its per-relationship override were declared, validated and inert, so an application\n * that set it got unbounded stacks and no error.\n *\n * It is applied AFTER the collapse above, and the order is load-bearing in both directions: a\n * collapsed SPLIT becomes a push into PRIMARY, which must then answer to PRIMARY's ceiling\n * rather than to the ceiling of the zone it was authored for; and an authored push that is\n * already escalated to an overlay cannot then be collapsed, because an overlay is not a\n * structural zone and has no `responsiveCollapse`.\n *\n * \"Reaches\" is `>=`, taken from the declaration verbatim: at `maxDepth: 3` the third entry is\n * the last one pushed, and the fourth navigation opens an overlay.\n */\n const depthCeiling = context.relationshipMaxDepth ?? layout.maxDepth;\n const targetDepth = collapsedTargetZone === NavigationZone.OVERLAY\n ? undefined\n : context.zoneDepth[collapsedTargetZone as NavigationZoneName];\n const exceedsDepthCeiling = depthCeiling !== undefined\n && targetDepth !== undefined\n && collapsedTransition === NavigationTransition.PUSH\n && targetDepth >= depthCeiling;\n\n const finalTargetZone = exceedsDepthCeiling ? NavigationZone.OVERLAY : collapsedTargetZone;\n const finalTransition = exceedsDepthCeiling ? NavigationTransition.OVERLAY : collapsedTransition;\n\n const appearance = this.deriveAppearance(finalTransition, context, layout);\n const collapsed = collapseMode !== undefined;\n\n /*\n * Overlay behaviour rides with the appearance because it is answered by the same declaration and\n * is meaningless without it — only an OVERLAY has a page behind to block, dismiss on, or dim.\n */\n const overlayBehavior = finalTransition === NavigationTransition.OVERLAY\n ? this.resolveOverlayBehavior(context)\n : undefined;\n return {\n targetZone: finalTargetZone,\n transition: finalTransition,\n appearance,\n overlayBehavior,\n collapsed,\n collapsedFromZone: collapsed ? (targetZone as NavigationZoneName) : undefined,\n ephemeral: ephemeral || undefined,\n };\n }\n\n // ──────────────────────────────────────────────────────────────\n // Step 0–5: Transition Resolution Chain\n // ──────────────────────────────────────────────────────────────\n\n private resolveTransition(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): TransitionConfig {\n /*\n * ## Coverage: steps 1, 1.5 and 2 run in unit tests only — accepted deliberately, 2026-09-08 (#467)\n *\n * Three of this chain's seven steps are authored by NEITHER dogfood application: per-operation\n * navigation overrides (step 1), authored action presentations (step 1.5) and per-relationship\n * transitions (step 2). The resolver reads all three; nothing in either application declares\n * them, so they have never executed outside their own unit tests.\n *\n * Nothing is wrong. The gap is that no application has yet had a reason to declare them, and\n * buying the proof would mean authoring a declaration in order to test it — which proves the\n * harness more than the product. Weighed and accepted; the project's usual bar for a shipped\n * subsystem is knowingly not met for these three.\n *\n * **What would change the answer:** an application authoring any one of the three. That author\n * is the first party to execute the step, and should read a surprise there as expected.\n *\n * Do NOT narrow the chain to the steps something uses today — that was the third option and it\n * was not chosen. The ordering below is load-bearing and its reasoning is written out at each\n * step; a shorter chain would lose it.\n */\n\n // Step 1 — Per-resource operation override (highest priority)\n const overrideResult = this.checkOperationOverrides(context);\n if (overrideResult) return overrideResult;\n\n // Step 1.5 — An AUTHORED action presentation.\n //\n // Ranked here, immediately below `navigationOverrides` and above every app-level default,\n // because both are authored ON THIS OPERATION and the override is the more specific of the two:\n // it names the zone, the appearance and the viewport, so an author who wrote one meant it. The\n // presentation axis says only what KIND of chrome the action wants, which is exactly why it\n // yields to the instrument that says more.\n //\n // A relationship- or zone-level transition, by contrast, is a default for a WHOLE CLASS of\n // navigations, and an operation that has declared its own presentation is not asking for the\n // class default.\n if (context.actionPresentationIsAuthored === true && context.actionPresentationTransition !== undefined) {\n return context.actionPresentationTransition;\n }\n\n // Step 2 — Per-relationship transition\n if (context.relationshipTransition !== undefined) {\n return context.relationshipTransition;\n }\n\n // Step 3 — Global viewport override\n const viewportOverride = this.checkViewportOverride(context, layout);\n if (viewportOverride) return viewportOverride;\n\n // Step 4 — Source config transitions[operation]\n const sourceTransitions = this.getSourceTransitions(context, layout);\n if (sourceTransitions) {\n const transitionConfig = this.getTransitionBySemanticKey(sourceTransitions, context);\n if (transitionConfig) return transitionConfig;\n }\n\n // Step 4.5 — A DERIVED action presentation.\n //\n // Below every authored configuration and above the framework fallback ONLY. The derivation is\n // the framework's guess about an operation nobody configured, so it may improve the default and\n // must never override a decision an app already made — an app whose zone `transitions` route\n // this operation somewhere keeps that routing, unchanged.\n //\n // In practice this is the step that turns \"a custom action with two fields\" from a full page\n // into an overlay, which is the whole point of the axis.\n if (context.actionPresentationTransition !== undefined) {\n return context.actionPresentationTransition;\n }\n\n // Step 5 — Framework fallback\n return FRAMEWORK_FALLBACK_TRANSITION;\n }\n\n /**\n * Step 1: Check per-resource operation overrides.\n * First-match wins. Matches on fromZone + viewport discriminators.\n */\n private checkOperationOverrides(\n context: NavigationResolutionContext,\n ): TransitionConfig | undefined {\n if (!context.operationOverrides?.length) return undefined;\n\n for (const override of context.operationOverrides) {\n if (this.overrideMatches(override, context)) {\n return override.transition;\n }\n }\n return undefined;\n }\n\n /**\n * Match an override against the current context.\n * Both `fromZone` and `viewport` must match when specified.\n */\n private overrideMatches(\n override: NavigationOperationOverride,\n context: NavigationResolutionContext,\n ): boolean {\n if (override.fromZone !== undefined && override.fromZone !== context.sourceZone) {\n return false;\n }\n if (override.viewport !== undefined && override.viewport !== context.viewport) {\n return false;\n }\n return true;\n }\n\n /**\n * Step 3: Check global viewport override.\n * Reads `layout[viewport].transitions[operation]`.\n */\n private checkViewportOverride(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): TransitionConfig | undefined {\n if (context.viewport === ViewportBreakpoint.DESKTOP) return undefined;\n\n const viewportBlock = layout[context.viewport as ViewportBreakpoint.MOBILE | ViewportBreakpoint.VERT_TABLET];\n if (!viewportBlock?.transitions) return undefined;\n\n return this.getTransitionBySemanticKey(viewportBlock.transitions, context);\n }\n\n /**\n * Transition maps are keyed by core semantics, not arbitrary operation ids.\n * Custom addressable operations therefore resolve through their effective core\n * semantic while literal core operations still match directly.\n */\n private getTransitionBySemanticKey(\n transitions: ZoneTransitions,\n context: NavigationResolutionContext,\n ): TransitionConfig | undefined {\n const transitionKey = context.effectiveOperation\n ?? (Object.values(CoreResourceOperation).includes(context.operation as CoreResourceOperation)\n ? context.operation as CoreResourceOperation\n : undefined);\n\n if (!transitionKey) {\n return undefined;\n }\n\n return transitions[transitionKey];\n }\n\n /**\n * Step 4: Get the transition map from the appropriate source config.\n * Three distinct branches based on source type.\n */\n private getSourceTransitions(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): ZoneTransitions | undefined {\n if (context.sourceZone === APP_LEVEL_NAVIGATION_SOURCE) {\n return layout.appLevel?.transitions;\n }\n if (context.sourceZone === 'overlay') {\n return layout.fromOverlay?.transitions;\n }\n const zoneConfig = layout.zones[context.sourceZone as NavigationZoneName];\n return zoneConfig?.transitions;\n }\n\n // ──────────────────────────────────────────────────────────────\n // Target Zone Derivation\n // ──────────────────────────────────────────────────────────────\n\n /**\n * Derive the target zone from the resolved transition verb.\n *\n * - push/replace → same zone (primary for appLevel/overlay sources)\n * - split → first available adjacent zone (secondary, then companion)\n * - split(persistent) → companion specifically\n * - overlay → OVERLAY\n * - inplace → same zone (no stack change)\n * - promote → primary\n */\n private deriveTargetZone(\n transition: NavigationTransition,\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n persistent: boolean,\n ): NavigationZone {\n switch (transition) {\n case NavigationTransition.PUSH:\n case NavigationTransition.REPLACE:\n case NavigationTransition.INPLACE:\n return this.getStructuralSourceZone(context);\n\n case NavigationTransition.SPLIT:\n return this.resolveSplitTarget(context, layout, persistent);\n\n case NavigationTransition.OVERLAY:\n return NavigationZone.OVERLAY;\n\n case NavigationTransition.PROMOTE:\n return NavigationZoneName.PRIMARY;\n\n default:\n return NavigationZoneName.PRIMARY;\n }\n }\n\n /**\n * For push/replace/inplace: return the source zone as a structural zone.\n * AppLevel and overlay sources map to primary.\n */\n private getStructuralSourceZone(context: NavigationResolutionContext): NavigationZone {\n if (context.sourceZone === APP_LEVEL_NAVIGATION_SOURCE || context.sourceZone === 'overlay') {\n return NavigationZoneName.PRIMARY;\n }\n return context.sourceZone;\n }\n\n /**\n * Resolve the target zone for a SPLIT transition.\n * Persistent splits always target companion. Non-persistent splits\n * target the first available adjacent zone.\n * Falls back to overlay if no adjacent zone is declared in config.\n */\n private resolveSplitTarget(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n persistent: boolean,\n ): NavigationZone {\n if (persistent) {\n return layout.zones.companion ? NavigationZoneName.COMPANION : NavigationZone.OVERLAY;\n }\n\n // Prefer secondary if declared, otherwise companion, otherwise escalate to overlay\n if (layout.zones.secondary) {\n if (!context.zoneOccupancy?.[NavigationZoneName.SECONDARY]) {\n return NavigationZoneName.SECONDARY;\n }\n // Secondary occupied — try companion\n if (layout.zones.companion && !context.zoneOccupancy?.[NavigationZoneName.COMPANION]) {\n return NavigationZoneName.COMPANION;\n }\n // Both occupied — push into secondary (replace existing content)\n return NavigationZoneName.SECONDARY;\n }\n\n if (layout.zones.companion) {\n return NavigationZoneName.COMPANION;\n }\n\n // No adjacent zones declared — escalate to overlay\n return NavigationZone.OVERLAY;\n }\n\n // ──────────────────────────────────────────────────────────────\n // Appearance Derivation\n // ──────────────────────────────────────────────────────────────\n\n /**\n * Derive visual appearance from zone config, resolved for the current viewport.\n * Only overlay and split transitions have meaningful appearance.\n */\n private deriveAppearance(\n transition: NavigationTransition,\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): OverlayAppearance | SplitAppearance | undefined {\n if (transition !== NavigationTransition.OVERLAY && transition !== NavigationTransition.SPLIT) {\n return undefined;\n }\n\n // Check operation override appearance first\n if (context.operationOverrides?.length) {\n for (const override of context.operationOverrides) {\n if (this.overrideMatches(override, context) && override.appearance !== undefined) {\n return resolveViewportDiscriminated(override.appearance, context.viewport) as\n OverlayAppearance | SplitAppearance | undefined;\n }\n }\n }\n\n // Read from source zone's appearance config\n const zoneAppearance = this.getSourceAppearance(context, layout);\n if (transition === NavigationTransition.OVERLAY) {\n return resolveViewportDiscriminated(zoneAppearance?.overlay, context.viewport) ?? OverlayAppearance.DIALOG;\n }\n if (transition === NavigationTransition.SPLIT) {\n return resolveViewportDiscriminated(zoneAppearance?.split, context.viewport) ?? SplitAppearance.PANEL;\n }\n\n return undefined;\n }\n\n /**\n * The overlay behaviour declared by a matching per-operation override, if any.\n *\n * First match wins, exactly as the transition and appearance do — one override describes one\n * situation, so reading a different override's behaviour than its transition would let a single\n * declaration be split across two answers.\n */\n private resolveOverlayBehavior(\n context: NavigationResolutionContext,\n ): NavigationResolutionResult['overlayBehavior'] {\n if (!context.operationOverrides?.length) return undefined;\n for (const override of context.operationOverrides) {\n if (this.overrideMatches(override, context) && override.overlayBehavior !== undefined) {\n return override.overlayBehavior;\n }\n }\n return undefined;\n }\n\n /** Get the appearance config from the appropriate source. */\n private getSourceAppearance(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): ZoneAppearance | undefined {\n if (context.sourceZone === APP_LEVEL_NAVIGATION_SOURCE) {\n return layout.appLevel?.appearance;\n }\n if (context.sourceZone === 'overlay') {\n // FromOverlayConfig has no appearance — overlays within overlays shouldn't happen\n return undefined;\n }\n return layout.zones[context.sourceZone as NavigationZoneName]?.appearance;\n }\n\n // ──────────────────────────────────────────────────────────────\n // Responsive Collapse Check\n // ──────────────────────────────────────────────────────────────\n\n /**\n * WHICH collapse the target zone is under at this viewport, or `undefined` for none.\n *\n * Only secondary and companion zones can collapse. Primary never collapses — it is the zone\n * collapsed content moves INTO. Overlay is not a structural zone and cannot collapse either.\n *\n * This returned a BOOLEAN until 2026-09-08 (#411), and the boolean is why the whole mechanism was\n * inert: `PUSH` and `OVERLAY` are the entire content of the declaration, and a flag that says\n * \"collapsed\" without saying which cannot place anything. The consumer would have had to re-read\n * `layout.zones[…].responsiveCollapse` and re-resolve the breakpoint itself — a second copy of\n * this decision, free to disagree with the first.\n */\n private resolveCollapseMode(\n targetZone: NavigationZone,\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): ResponsiveCollapseMode | undefined {\n if (targetZone === NavigationZone.OVERLAY || targetZone === NavigationZoneName.PRIMARY) {\n return undefined;\n }\n /*\n * TWO triggers, either of which collapses: a KNOWN narrow breakpoint, and a content area that\n * cannot carry the split. They are read together in the guard below.\n *\n * The breakpoint half applies at a KNOWN narrow breakpoint, never merely at \"not desktop\".\n * Written as `!== DESKTOP` first, and that is wrong in the one case that matters: a caller with\n * no measured viewport yet (`currentBreakpoint: undefined` during the first frames) would have\n * been treated as a phone and had its split collapsed into primary — a layout decision taken\n * from a missing measurement. An unknown viewport is not a narrow one, and by the same reading\n * an unmeasured WIDTH is not a narrow one either.\n */\n const zoneConfig = layout.zones[targetZone as NavigationZoneName];\n\n /*\n * ─── The SECOND trigger: the content area cannot CARRY the split ────────────────────────────\n *\n * A breakpoint measures the WINDOW; the panes live in the CONTENT AREA, which is narrower by the\n * sidebar, narrower again when another pane is already open, and narrower still in an embedded\n * shell. So \"DESKTOP\" and \"there is room for two panes\" are different claims, and only the\n * second one is the question. Where the space cannot carry the zone's own declared floor beside\n * primary's, the geometry layer used to make BOTH floors yield — degrading the layout in place\n * rather than escalating it, which is the opposite of what this ladder is for.\n *\n * Deliberately ordered BEFORE the breakpoint test rather than folded into it: a narrow content\n * area on a wide window is precisely the case the breakpoint cannot see, so it must not have to\n * pass a breakpoint test first. An unmeasured width answers \"fits\" — see `contentAreaFitsSplit`.\n *\n * RESIDUAL, stated rather than left to be discovered: a pane already open is not subtracted.\n * `zoneOccupancy` says WHETHER the companion holds something, never how many pixels it has —\n * that is a geometry-layer number, decided after this resolution. So the test is \"can a pane\n * open beside primary\", which is exactly right for the first pane and optimistic for a second.\n * `contentAreaFitsSplit` takes the parameter so the day that number is available, the caller is\n * the only thing that changes.\n */\n const fits = contentAreaFitsSplit({\n contentAreaWidth: context.contentAreaWidth,\n paneMinWidthPx: zoneConfig?.minWidth,\n });\n\n if (fits && context.viewport !== ViewportBreakpoint.MOBILE && context.viewport !== ViewportBreakpoint.VERT_TABLET) {\n return undefined;\n }\n /*\n * ─── An UNDECLARED collapse defaults to PUSH, and that is a decision ────────────────────────\n *\n * `NavigationContentAreas` renders a single zone below the mobile breakpoint — secondary and\n * companion are not shown at all. So on a phone a zone with no `responsiveCollapse` is not\n * \"left alone\": content routed there is placed into a zone that does not render, and the user\n * sees nothing happen. That is what an undeclared collapse meant before #411, for every\n * application, and it is not a behaviour anyone would choose deliberately.\n *\n * PUSH rather than OVERLAY because it is the conservative half of the vocabulary: the content\n * appears in primary in context, and BACK pops to what was there before — no dismissal\n * affordance to get wrong, and no modality over a phone-sized viewport. An application that\n * wants the sheet declares `OVERLAY` and gets it.\n *\n * The alternative — keep returning `undefined` and let the content vanish — was rejected\n * because it is the silent degradation #411 exists to remove, and because \"the zone declared\n * nothing\" is not a reason to lose a user's navigation.\n */\n const declared = zoneConfig?.responsiveCollapse;\n if (!declared) return ResponsiveCollapseMode.PUSH;\n\n /*\n * A viewport-discriminated declaration that names no mode for THIS breakpoint is a gap in the\n * declaration, not a statement that the zone renders — it still would not render — so it takes\n * the same default.\n */\n return resolveViewportDiscriminated(declared, context.viewport) ?? ResponsiveCollapseMode.PUSH;\n }\n}\n\n/** Singleton instance for use across the frontend. */\nexport const navigationPolicyResolver = new NavigationPolicyResolver();\n"]}
|
|
1
|
+
{"version":3,"file":"navigation-policy-resolver.service.js","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation-policy-resolver.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Navigation Policy Resolver — v3 zone-first, operation-driven resolution.\n *\n * Given a source context (zone, appLevel, or overlay), an operation, and the\n * navigation layout config, determines:\n * - Which transition verb to apply (push, replace, split, overlay, inplace, promote)\n * - Which zone the content lands in (derived from the transition verb)\n * - What visual appearance to use (dialog/sheet/drawer for overlay, panel/drawer for split)\n * - Whether the target zone is responsively collapsed at the current viewport, and — since #411 —\n * APPLYING that collapse (push into primary, or overlay) rather than merely reporting it\n * - Whether the push would exceed `maxDepth`, escalating it to an overlay if so\n *\n * Resolution chain (first match wins):\n * 1. Per-resource operation override (highest priority)\n * 2. Per-relationship transition\n * 3. Global viewport override\n * 4. Source context transitions[operation]\n * 5. Framework hardcoded fallback\n *\n * @see _code_archive/docs-archive/navigation/navigation-v3-reflection.md\n */\n\nimport {\n CoreResourceOperation,\n NavigationTransition,\n NavigationZoneName,\n ResponsiveCollapseMode,\n ResourceOperationFrontendSurface,\n OverlayAppearance,\n getTransitionVerb,\n isEphemeralTransition as isEphemeral,\n isPersistentTransition as isPersistent,\n type NavigationLayout,\n type TransitionConfig,\n type ZoneTransitions,\n type ZoneAppearance,\n type ZoneConfig,\n type ViewportDiscriminated,\n} from '@wildo-ai/saas-models';\nimport type { NavigationOperationOverride } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { ViewportBreakpoint } from '@wildo-ai/zod-decorators';\nimport {\n NavigationZone,\n APP_LEVEL_NAVIGATION_SOURCE,\n NavigationPlacementAdjustment,\n NavigationTransitionSource,\n type NavigationResolutionContext,\n type NavigationResolutionResult,\n} from './navigation.schemas';\nimport { zoneIsCollapsedAtViewport } from './zone-collapse';\n\n\n// ════════════════════════════════════════════════════════════════\n// Viewport-Discriminated Resolution Utility\n// ════════════════════════════════════════════════════════════════\n\n/**\n * Viewport priority order — when no exact match exists for the current\n * viewport, fall back to the next more general breakpoint, then to desktop.\n */\nconst VIEWPORT_FALLBACK_ORDER: Record<ViewportBreakpoint, ViewportBreakpoint[]> = {\n [ViewportBreakpoint.MOBILE]: [ViewportBreakpoint.MOBILE, ViewportBreakpoint.VERT_TABLET, ViewportBreakpoint.DESKTOP],\n [ViewportBreakpoint.VERT_TABLET]: [ViewportBreakpoint.VERT_TABLET, ViewportBreakpoint.DESKTOP],\n [ViewportBreakpoint.DESKTOP]: [ViewportBreakpoint.DESKTOP],\n};\n\n/**\n * WHICH collapse a structural zone is under at this viewport, or `undefined` for none.\n *\n * Exported rather than private to the resolver because THREE parties need the answer and none may\n * re-derive it: the resolver places a CLICK's content, `useResponsiveZoneMigration` moves content\n * ALREADY sitting in a zone the viewport has just taken away, and a test pins both. The predicate\n * half (`zoneIsCollapsedAtViewport`) was extracted for exactly this reason on 2026-09-25; this is\n * the mode half, and leaving it private would let the migration disagree with the placement about\n * whether a collapsed pane becomes a page or a sheet — the two halves of one declaration, answered\n * by two functions.\n *\n * Callers own the zone-identity guard, because it is a question about WHICH zone rather than about\n * the viewport.\n *\n * ## An UNDECLARED collapse defaults to PUSH, and that is a decision\n *\n * `NavigationContentAreas` renders a single zone below the mobile breakpoint — secondary and\n * companion are not shown at all. So on a phone a zone with no `responsiveCollapse` is not \"left\n * alone\": content routed there is placed into a zone that does not render, and the user sees\n * nothing happen. That is what an undeclared collapse meant before #411, for every application, and\n * it is not a behaviour anyone would choose deliberately.\n *\n * PUSH rather than OVERLAY because it is the conservative half of the vocabulary: the content\n * appears in primary in context, and BACK pops to what was there before — no dismissal affordance\n * to get wrong, and no modality over a phone-sized viewport. An application that wants the sheet\n * declares `OVERLAY` and gets it.\n *\n * The alternative — return `undefined` and let the content vanish — was rejected because it is the\n * silent degradation #411 exists to remove, and because \"the zone declared nothing\" is not a reason\n * to lose a user's navigation.\n *\n * A viewport-discriminated declaration naming no mode for THIS breakpoint is a gap in the\n * declaration, not a statement that the zone renders — it still would not — so it takes the same\n * default.\n */\nexport function resolveZoneCollapseMode(params: {\n zoneConfig: ZoneConfig | undefined;\n viewport: ViewportBreakpoint | undefined;\n contentAreaWidth?: number;\n}): ResponsiveCollapseMode | undefined {\n if (!zoneIsCollapsedAtViewport(params)) return undefined;\n const declared = params.zoneConfig?.responsiveCollapse;\n if (!declared) return ResponsiveCollapseMode.PUSH;\n return resolveViewportDiscriminated(declared, params.viewport) ?? ResponsiveCollapseMode.PUSH;\n}\n\n/**\n * Resolve a `ViewportDiscriminated<T>` value for the current viewport.\n *\n * If the value is a plain `T`, it applies at all viewports. If it's a\n * viewport-keyed partial record, resolves by trying the current viewport\n * first, then falling back through larger breakpoints.\n *\n * Returns `undefined` when no match is found (caller applies defaults).\n */\nexport function resolveViewportDiscriminated<T>(\n value: ViewportDiscriminated<T> | undefined,\n viewport: ViewportBreakpoint,\n): T | undefined {\n if (value === undefined || value === null) return undefined;\n if (typeof value !== 'object' || !isViewportRecord(value)) return value as T;\n\n const record = value as Partial<Record<ViewportBreakpoint, T>>;\n const fallbacks = VIEWPORT_FALLBACK_ORDER[viewport] ?? [viewport];\n for (const bp of fallbacks) {\n if (bp in record) return record[bp];\n }\n return undefined;\n}\n\n/**\n * Type guard: distinguishes a viewport-keyed record from a plain enum value.\n * Viewport breakpoints are strings like '<md', '<lg', '>=lg'. If any key\n * matches a known breakpoint, the value is a viewport record.\n */\nfunction isViewportRecord<T>(value: unknown): value is Partial<Record<ViewportBreakpoint, T>> {\n if (typeof value !== 'object' || value === null) return false;\n const keys = Object.keys(value);\n const breakpoints = new Set(Object.values(ViewportBreakpoint) as string[]);\n return keys.length > 0 && keys.some(k => breakpoints.has(k));\n}\n\n\n// ════════════════════════════════════════════════════════════════\n// Default Fallback Transitions\n// ════════════════════════════════════════════════════════════════\n\nconst FRAMEWORK_FALLBACK_TRANSITION = NavigationTransition.PUSH;\n\n/**\n * What {@link NavigationPolicyResolver.resolveTransition} answers: the config AND which tier\n * produced it.\n *\n * The tier is carried rather than logged because the resolver is a pure function whose whole output\n * is this result — a log line would be visible only while somebody is watching, and a test cannot\n * read one. See {@link NavigationTransitionSource} for why the tier could not be inferred from the\n * verb: seven steps, and every one of them can answer `PUSH`.\n */\ninterface ResolvedTransition {\n config: TransitionConfig;\n source: NavigationTransitionSource;\n}\n\n/**\n * What {@link NavigationPolicyResolver.deriveTargetZone} answers: the zone AND, for a SPLIT, which\n * of its three mutually exclusive outcomes occurred.\n *\n * `SPLIT` is the one verb whose result depends on runtime STATE rather than on the declaration —\n * it opens a free pane, replaces an occupied one, or escalates to an overlay when the layout\n * declares no adjacent zone at all. Those are three different things wearing one name, which is\n * precisely why the EMBEDDED coercion below has to read `zoneOccupancy` instead of the verb.\n */\ninterface DerivedTargetZone {\n zone: NavigationZone;\n adjustment?: NavigationPlacementAdjustment;\n}\n\n\n// ════════════════════════════════════════════════════════════════\n// Navigation Policy Resolver\n// ════════════════════════════════════════════════════════════════\n\nexport class NavigationPolicyResolver {\n\n /**\n * Resolve a navigation event to a concrete result.\n *\n * @param context - Input signals: source zone, operation, viewport, overrides, etc.\n * @param layout - The app's NavigationLayout configuration.\n * @returns What the controller should do: target zone, transition, appearance, collapse state.\n */\n resolve(context: NavigationResolutionContext, layout: NavigationLayout): NavigationResolutionResult {\n const resolved = this.resolveTransition(context, layout);\n const resolvedTransition = resolved.config;\n const transitionVerb = getTransitionVerb(resolvedTransition);\n const ephemeral = isEphemeral(resolvedTransition);\n const persistent = isPersistent(resolvedTransition);\n\n /*\n * ─── PROVENANCE ─────────────────────────────────────────────────────────────────────────────\n *\n * Accumulated as the placement is decided, in application order, so the array reads as the story\n * of how the authored verb became the final one. Nothing branches on it — see\n * `NavigationResolutionProvenance`.\n */\n const adjustments: NavigationPlacementAdjustment[] = [];\n\n const derivedTarget = this.deriveTargetZone(transitionVerb, context, layout, persistent);\n const targetZone = derivedTarget.zone;\n if (derivedTarget.adjustment) adjustments.push(derivedTarget.adjustment);\n\n /*\n * ─── AN ESCALATION REWRITES THE VERB. All four of them. ─────────────────────────────────────\n *\n * A SPLIT that found no adjacent zone lands in the OVERLAY layer, and until 2026-09-25 it kept\n * its SPLIT verb on the way there. The result was an incoherent triple — measured against Wonder\n * Todos' real layout, which declares a SPLIT override and only `zones.primary`:\n *\n * { targetZone: 'overlay', transition: 'split', appearance: 'panel' }\n *\n * `panel` is a `SplitAppearance` handed to the overlay layer, and it reached the overlay\n * container, which has no case for it. Worse, `overlayBehavior` is gated on\n * `finalTransition === OVERLAY` further down, so an operation's authored `modal` /\n * `closeOnOutsideClick` / `showBackdrop` were SILENTLY DROPPED for exactly the content that ends\n * up in a dialog by accident — the one placement where a create form most needs them.\n *\n * The other three escalations already did this: the EMBEDDED coercion returns an explicit\n * `transition: OVERLAY`, responsive collapse rewrites `collapsedTransition`, and the depth\n * ceiling rewrites `finalTransition`. This was the fourth site of one invariant — the shape\n * `.claude/rules/invariant-call-site-enumeration.md` exists for — and it was the site nobody\n * enumerated, including the pass that ADDED the adjustment naming this very branch and asserted\n * only `targetZone` and `adjustments` on it.\n */\n const escalatedVerb = derivedTarget.adjustment === NavigationPlacementAdjustment.SPLIT_ESCALATED_NO_ADJACENT_ZONE\n || derivedTarget.adjustment === NavigationPlacementAdjustment.PERSISTENT_SPLIT_ESCALATED_NO_COMPANION\n ? NavigationTransition.OVERLAY\n : transitionVerb;\n\n // ─── Surface coercion: EMBEDDED never TAKES OVER a structural zone ─────────────\n // `ResourceOperationFrontendSurface.EMBEDDED` is contractually a view\n // \"rendered within a host — overlay/drill-in when standalone\". A STRUCTURAL\n // zone is not a host; it is an addressable surface that already holds\n // something a reader is reading. The transition chain is keyed by core\n // semantics only (an app cannot author \"embedded READ → overlay\" in\n // `transitions`), so when the chain resolves EMBEDDED content onto one we\n // escalate to OVERLAY here — the same escalation posture `resolveSplitTarget`\n // already uses when no adjacent zone exists. Explicit pane outcomes\n // (SPLIT → secondary/companion) and overlay outcomes are hosts and pass\n // through untouched, as does every non-resource content navigation\n // (`operationSurface` is undefined there).\n //\n // ── The zone test was `=== PRIMARY` until 2026-09-11, and that was the whole of #627. ──\n //\n // PUSH and REPLACE both target `getStructuralSourceZone`, i.e. THE ZONE THE\n // REFERENCE WAS CLICKED IN — so whether an EMBEDDED read opened as an overlay\n // or silently replaced the surface beneath it depended on which pane the\n // reference happened to be rendered in. Measured on the workbench's Build plan,\n // which is a hosted pane in SECONDARY: clicking a task reference fetched the\n // aspect row and every one of its split edges, then REPLACED the document the\n // reader was reading with it. Nothing threw, nothing logged, and the page the\n // reader had been on was simply gone.\n //\n // PRIMARY was never the special case. \"Not a host\" is true of every structural\n // zone, and the argument the original comment makes for PRIMARY — it is the\n // addressable surface, not a host — is the same argument for a pane.\n //\n // ── And a SPLIT is a host only when it actually OPENS a pane. ──\n //\n // The exemption below reads `zoneOccupancy`, not the verb, and the difference is the whole\n // defect. `resolveSplitTarget` answers SECONDARY in two situations that mean opposite things:\n // when secondary is FREE it opens a pane beside the source, which is the drill-in host the enum\n // allows — and when both panes are taken it falls through to \"push into secondary (replace\n // existing content)\", which is its own comment's wording for taking a surface over. A verb test\n // cannot tell those apart, so exempting SPLIT wholesale re-opened the hole one line down.\n //\n // Measured on the workbench, which declares ONE pane: the artifact list holds PRIMARY, the\n // document holds SECONDARY, and a reference clicked inside that document resolved\n // `{surface: embedded, verb: split, targetZone: secondary}` — secondary occupied by the very\n // document the reader was reading, replaced by the aspect. Occupancy is the input\n // `resolveSplitTarget` already decides on, so reading it here cannot drift from it.\n if (\n context.operationSurface === ResourceOperationFrontendSurface.EMBEDDED\n && targetZone !== NavigationZone.OVERLAY\n && !(\n escalatedVerb === NavigationTransition.SPLIT\n && context.zoneOccupancy?.[targetZone as NavigationZoneName] !== true\n )\n // …EXCEPT for INPLACE, which takes over nothing either — it is the one transition that places\n // no content in a zone at all, and `deriveTargetZone` only reports a zone for it because \"the\n // source zone\" is the closest thing that function can say about an element-level outcome.\n //\n // Without this exemption the coercion silently rewrote every EMBEDDED inline transition into\n // an overlay BEFORE the controller could hand it to the element host — so the inline-edit kit\n // would have gone on not editing inline, one layer further down than the defect it replaced,\n // and the surface most likely to author `inplace` (a row's EMBEDDED update) is exactly the one\n // it would have hit. Found by driving the real controller; a resolver-level test would not\n // have shown it, because at the resolver an overlay is a perfectly good answer.\n && escalatedVerb !== NavigationTransition.INPLACE\n ) {\n adjustments.push(NavigationPlacementAdjustment.EMBEDDED_COERCED_TO_OVERLAY);\n return {\n targetZone: NavigationZone.OVERLAY,\n transition: NavigationTransition.OVERLAY,\n appearance: this.deriveAppearance(NavigationTransition.OVERLAY, context, layout),\n collapsed: false,\n ephemeral: ephemeral || undefined,\n provenance: { transitionSource: resolved.source, authoredTransition: transitionVerb, adjustments },\n };\n }\n\n const collapseMode = this.resolveCollapseMode(targetZone, context, layout);\n\n /*\n * ─── RESPONSIVE COLLAPSE IS APPLIED HERE, not merely reported ───────────────────────────────\n *\n * Until 2026-09-08 (#411) `collapsed` was computed, returned, and read by nobody: the controller\n * logged it, and `NavigationContentAreas` hid the secondary and companion zones unconditionally\n * on mobile. So content routed to a collapsed zone went into a zone that would not render, and\n * the declared choice between `PUSH` and `OVERLAY` had no effect whatsoever.\n *\n * Collapse is a PLACEMENT decision, which is what this resolver answers, so it belongs here\n * rather than in the controller. Applying it downstream would mean two places deciding where\n * content lands, and the second would have to re-derive the first's inputs.\n *\n * PUSH -> the content joins PRIMARY's stack. The user sees it in context, and back pops\n * to primary's previous content — the enum's own contract.\n * OVERLAY -> the content opens over primary as a sheet/dialog. Dismiss returns underneath.\n *\n * The appearance is derived AFTER the retarget, from the transition the content actually gets:\n * deriving it from the pre-collapse verb would give an overlay a SPLIT appearance\n * (`panel`/`drawer`), which the overlay container cannot render.\n *\n * `collapsed` stays in the result as INFORMATION — it is what lets a reader (and a test) tell a\n * PUSH that was authored from a PUSH that is a collapsed SPLIT, which otherwise look identical.\n */\n const collapsedTargetZone = collapseMode === ResponsiveCollapseMode.OVERLAY\n ? NavigationZone.OVERLAY\n : collapseMode === ResponsiveCollapseMode.PUSH\n ? NavigationZoneName.PRIMARY\n : targetZone;\n const collapsedTransition = collapseMode === ResponsiveCollapseMode.OVERLAY\n ? NavigationTransition.OVERLAY\n : collapseMode === ResponsiveCollapseMode.PUSH\n ? NavigationTransition.PUSH\n : escalatedVerb;\n if (collapseMode === ResponsiveCollapseMode.OVERLAY) {\n adjustments.push(NavigationPlacementAdjustment.RESPONSIVE_COLLAPSE_OVERLAY);\n } else if (collapseMode === ResponsiveCollapseMode.PUSH) {\n adjustments.push(NavigationPlacementAdjustment.RESPONSIVE_COLLAPSE_PUSH);\n }\n\n /*\n * ─── maxDepth: a push past the ceiling becomes an overlay ───────────────────────────────────\n *\n * `NavigationLayout.maxDepth` documents itself as \"when a zone's stack depth reaches `maxDepth`,\n * the next `push` opens an overlay instead\" and, until 2026-09-08 (#411), NOTHING read it — the\n * field and its per-relationship override were declared, validated and inert, so an application\n * that set it got unbounded stacks and no error.\n *\n * It is applied AFTER the collapse above, and the order is load-bearing in both directions: a\n * collapsed SPLIT becomes a push into PRIMARY, which must then answer to PRIMARY's ceiling\n * rather than to the ceiling of the zone it was authored for; and an authored push that is\n * already escalated to an overlay cannot then be collapsed, because an overlay is not a\n * structural zone and has no `responsiveCollapse`.\n *\n * \"Reaches\" is `>=`, taken from the declaration verbatim: at `maxDepth: 3` the third entry is\n * the last one pushed, and the fourth navigation opens an overlay.\n */\n const depthCeiling = context.relationshipMaxDepth ?? layout.maxDepth;\n const targetDepth = collapsedTargetZone === NavigationZone.OVERLAY\n ? undefined\n : context.zoneDepth[collapsedTargetZone as NavigationZoneName];\n const exceedsDepthCeiling = depthCeiling !== undefined\n && targetDepth !== undefined\n && collapsedTransition === NavigationTransition.PUSH\n && targetDepth >= depthCeiling;\n\n const finalTargetZone = exceedsDepthCeiling ? NavigationZone.OVERLAY : collapsedTargetZone;\n const finalTransition = exceedsDepthCeiling ? NavigationTransition.OVERLAY : collapsedTransition;\n if (exceedsDepthCeiling) adjustments.push(NavigationPlacementAdjustment.DEPTH_CEILING_ESCALATED_TO_OVERLAY);\n\n const appearance = this.deriveAppearance(finalTransition, context, layout);\n const collapsed = collapseMode !== undefined;\n\n /*\n * Overlay behaviour rides with the appearance because it is answered by the same declaration and\n * is meaningless without it — only an OVERLAY has a page behind to block, dismiss on, or dim.\n */\n const overlayBehavior = finalTransition === NavigationTransition.OVERLAY\n ? this.resolveOverlayBehavior(context)\n : undefined;\n return {\n targetZone: finalTargetZone,\n transition: finalTransition,\n appearance,\n overlayBehavior,\n collapsed,\n collapsedFromZone: collapsed ? (targetZone as NavigationZoneName) : undefined,\n ephemeral: ephemeral || undefined,\n /*\n * Reported so the entry can carry it. `persistent` chose the COMPANION zone and nothing more\n * until 2026-09-25, while its contract promised the pane would survive the source zone\n * changing — see `NavigationStackEntry.persistent`.\n */\n persistent: persistent && finalTargetZone !== NavigationZone.OVERLAY ? true : undefined,\n provenance: { transitionSource: resolved.source, authoredTransition: transitionVerb, adjustments },\n };\n }\n\n /**\n * The overlay an `INPLACE` transition becomes when the surface has no element-level host.\n *\n * A DOOR on the resolver rather than a re-resolution in the controller, because the controller's\n * way of asking — injecting a synthetic `operationOverrides: [{ transition: OVERLAY }]` — had to\n * lie twice to get an answer: it reported the outcome as an authored override, and it discarded\n * the operation's REAL override along with the `appearance` and `overlayBehavior` on it. Here the\n * context is untouched, so both are read exactly as they would be for any other overlay.\n *\n * The tier that answered `INPLACE` is preserved. What the degradation adds is an adjustment.\n */\n degradeInPlaceToOverlay(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n original: NavigationResolutionResult,\n ): NavigationResolutionResult {\n return {\n targetZone: NavigationZone.OVERLAY,\n transition: NavigationTransition.OVERLAY,\n appearance: this.deriveAppearance(NavigationTransition.OVERLAY, context, layout),\n overlayBehavior: this.resolveOverlayBehavior(context),\n collapsed: false,\n ephemeral: original.ephemeral,\n provenance: {\n transitionSource: original.provenance.transitionSource,\n authoredTransition: original.provenance.authoredTransition,\n adjustments: [...original.provenance.adjustments, NavigationPlacementAdjustment.INPLACE_DEGRADED_TO_OVERLAY],\n },\n };\n }\n\n // ──────────────────────────────────────────────────────────────\n // Step 0–5: Transition Resolution Chain\n // ──────────────────────────────────────────────────────────────\n\n private resolveTransition(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): ResolvedTransition {\n /*\n * ## Coverage: steps 1, 1.5 and 2 run in unit tests only — accepted deliberately, 2026-09-08 (#467)\n *\n * Three of this chain's seven steps are authored by NEITHER dogfood application: per-operation\n * navigation overrides (step 1), authored action presentations (step 1.5) and per-relationship\n * transitions (step 2). The resolver reads all three; nothing in either application declares\n * them, so they have never executed outside their own unit tests.\n *\n * Nothing is wrong. The gap is that no application has yet had a reason to declare them, and\n * buying the proof would mean authoring a declaration in order to test it — which proves the\n * harness more than the product. Weighed and accepted; the project's usual bar for a shipped\n * subsystem is knowingly not met for these three.\n *\n * **What would change the answer:** an application authoring any one of the three. That author\n * is the first party to execute the step, and should read a surprise there as expected.\n *\n * Do NOT narrow the chain to the steps something uses today — that was the third option and it\n * was not chosen. The ordering below is load-bearing and its reasoning is written out at each\n * step; a shorter chain would lose it.\n */\n\n // Step 1 — Per-resource operation override (highest priority)\n const overrideResult = this.checkOperationOverrides(context);\n if (overrideResult) return { config: overrideResult, source: NavigationTransitionSource.OPERATION_OVERRIDE };\n\n // Step 1.5 — An AUTHORED action presentation.\n //\n // Ranked here, immediately below `navigationOverrides` and above every app-level default,\n // because both are authored ON THIS OPERATION and the override is the more specific of the two:\n // it names the zone, the appearance and the viewport, so an author who wrote one meant it. The\n // presentation axis says only what KIND of chrome the action wants, which is exactly why it\n // yields to the instrument that says more.\n //\n // A relationship- or zone-level transition, by contrast, is a default for a WHOLE CLASS of\n // navigations, and an operation that has declared its own presentation is not asking for the\n // class default.\n if (context.actionPresentationIsAuthored === true && context.actionPresentationTransition !== undefined) {\n return {\n config: context.actionPresentationTransition,\n source: NavigationTransitionSource.AUTHORED_ACTION_PRESENTATION,\n };\n }\n\n // Step 2 — Per-relationship transition\n if (context.relationshipTransition !== undefined) {\n return { config: context.relationshipTransition, source: NavigationTransitionSource.RELATIONSHIP };\n }\n\n // Step 3 — Global viewport override\n const viewportOverride = this.checkViewportOverride(context, layout);\n if (viewportOverride) return { config: viewportOverride, source: NavigationTransitionSource.VIEWPORT_OVERRIDE };\n\n // Step 4 — Source config transitions[operation]\n const sourceTransitions = this.getSourceTransitions(context, layout);\n if (sourceTransitions.transitions) {\n const transitionConfig = this.getTransitionBySemanticKey(sourceTransitions.transitions, context);\n if (transitionConfig) {\n return {\n config: transitionConfig,\n source: sourceTransitions.borrowedFromPrimary\n ? NavigationTransitionSource.OVERLAY_FALLBACK_TO_PRIMARY\n : NavigationTransitionSource.SOURCE_TRANSITIONS,\n };\n }\n }\n\n // Step 4.5 — A DERIVED action presentation.\n //\n // Below every authored configuration and above the framework fallback ONLY. The derivation is\n // the framework's guess about an operation nobody configured, so it may improve the default and\n // must never override a decision an app already made — an app whose zone `transitions` route\n // this operation somewhere keeps that routing, unchanged.\n //\n // In practice this is the step that turns \"a custom action with two fields\" from a full page\n // into an overlay, which is the whole point of the axis.\n if (context.actionPresentationTransition !== undefined) {\n return {\n config: context.actionPresentationTransition,\n source: NavigationTransitionSource.DERIVED_ACTION_PRESENTATION,\n };\n }\n\n // Step 5 — Framework fallback\n return { config: FRAMEWORK_FALLBACK_TRANSITION, source: NavigationTransitionSource.FRAMEWORK_DEFAULT };\n }\n\n /**\n * Step 1: Check per-resource operation overrides.\n * First-match wins. Matches on fromZone + viewport discriminators.\n */\n private checkOperationOverrides(\n context: NavigationResolutionContext,\n ): TransitionConfig | undefined {\n if (!context.operationOverrides?.length) return undefined;\n\n for (const override of context.operationOverrides) {\n if (this.overrideMatches(override, context)) {\n return override.transition;\n }\n }\n return undefined;\n }\n\n /**\n * Match an override against the current context.\n * Both `fromZone` and `viewport` must match when specified.\n */\n private overrideMatches(\n override: NavigationOperationOverride,\n context: NavigationResolutionContext,\n ): boolean {\n if (override.fromZone !== undefined && override.fromZone !== context.sourceZone) {\n return false;\n }\n if (override.viewport !== undefined && override.viewport !== context.viewport) {\n return false;\n }\n return true;\n }\n\n /**\n * Step 3: Check global viewport override.\n * Reads `layout[viewport].transitions[operation]`.\n */\n private checkViewportOverride(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): TransitionConfig | undefined {\n if (context.viewport === ViewportBreakpoint.DESKTOP) return undefined;\n\n const viewportBlock = layout[context.viewport as ViewportBreakpoint.MOBILE | ViewportBreakpoint.VERT_TABLET];\n if (!viewportBlock?.transitions) return undefined;\n\n return this.getTransitionBySemanticKey(viewportBlock.transitions, context);\n }\n\n /**\n * Transition maps are keyed by core semantics, not arbitrary operation ids.\n * Custom addressable operations therefore resolve through their effective core\n * semantic while literal core operations still match directly.\n */\n private getTransitionBySemanticKey(\n transitions: ZoneTransitions,\n context: NavigationResolutionContext,\n ): TransitionConfig | undefined {\n const transitionKey = context.effectiveOperation\n ?? (Object.values(CoreResourceOperation).includes(context.operation as CoreResourceOperation)\n ? context.operation as CoreResourceOperation\n : undefined);\n\n if (!transitionKey) {\n return undefined;\n }\n\n return transitions[transitionKey];\n }\n\n /**\n * Step 4: Get the transition map from the appropriate source config.\n *\n * ## An OVERLAY source falls back to the zone it is LANDING IN\n *\n * `fromOverlay` is the app's statement about leaving an overlay, and it wins. What it does NOT\n * mean is that an app which declared nothing there has declared nothing at all: an overlay is not\n * a structural zone, so `getStructuralSourceZone` already answers PRIMARY for it — a structural\n * navigation out of an overlay IS a primary navigation. Reading a different map for the VERB than\n * for the ZONE is how the two came to disagree.\n *\n * Measured on the workbench, 2026-09-25. Its layout declares `zones.primary.transitions.read =\n * SPLIT` and no `fromOverlay` at all. Clicking an aspect popup's `family` backlink — an\n * ADDRESSABLE artifact — found no overlay map, fell through to the framework fallback `PUSH`, and\n * landed in PRIMARY: the artifact took the WHOLE PAGE, replacing the artifact list it should have\n * opened beside. The application had said what a READ does on the page; the resolver did not ask.\n *\n * Wonder CRM is the control and is untouched: it declares `fromOverlay.read = PUSH` deliberately\n * (\"ADDRESSABLE targets legitimately leave the overlay and become the page\"), that map answers,\n * and the fallback never runs. The fallback also covers the gap INSIDE a declared map — one that\n * names READ says nothing about LIST, and that gap used to take the framework default too.\n *\n * APP_LEVEL is deliberately NOT given the same fallback. A menubar click is a layout RESET with\n * its own meaning, and an app that declares no `appLevel` map has not thereby asked for primary's\n * drill-in verbs — it has asked for the framework default, which is what it gets.\n */\n private getSourceTransitions(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): { transitions: ZoneTransitions | undefined; borrowedFromPrimary: boolean } {\n if (context.sourceZone === APP_LEVEL_NAVIGATION_SOURCE) {\n return { transitions: layout.appLevel?.transitions, borrowedFromPrimary: false };\n }\n if (context.sourceZone === 'overlay') {\n const fromOverlay = layout.fromOverlay?.transitions;\n const declared = fromOverlay && this.getTransitionBySemanticKey(fromOverlay, context);\n return declared !== undefined\n ? { transitions: fromOverlay, borrowedFromPrimary: false }\n : { transitions: layout.zones.primary?.transitions, borrowedFromPrimary: true };\n }\n const zoneConfig = layout.zones[context.sourceZone as NavigationZoneName];\n return { transitions: zoneConfig?.transitions, borrowedFromPrimary: false };\n }\n\n // ──────────────────────────────────────────────────────────────\n // Target Zone Derivation\n // ──────────────────────────────────────────────────────────────\n\n /**\n * Derive the target zone from the resolved transition verb.\n *\n * - push/replace → same zone (primary for appLevel/overlay sources)\n * - split → first available adjacent zone (secondary, then companion)\n * - split(persistent) → companion specifically\n * - overlay → OVERLAY\n * - inplace → same zone (no stack change)\n * - promote → primary\n */\n private deriveTargetZone(\n transition: NavigationTransition,\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n persistent: boolean,\n ): DerivedTargetZone {\n switch (transition) {\n case NavigationTransition.PUSH:\n case NavigationTransition.REPLACE:\n case NavigationTransition.INPLACE:\n return { zone: this.getStructuralSourceZone(context) };\n\n case NavigationTransition.SPLIT:\n return this.resolveSplitTarget(context, layout, persistent);\n\n case NavigationTransition.OVERLAY:\n return { zone: NavigationZone.OVERLAY };\n\n case NavigationTransition.PROMOTE:\n return { zone: NavigationZoneName.PRIMARY };\n\n default:\n return { zone: NavigationZoneName.PRIMARY };\n }\n }\n\n /**\n * For push/replace/inplace: return the source zone as a structural zone.\n * AppLevel and overlay sources map to primary.\n */\n private getStructuralSourceZone(context: NavigationResolutionContext): NavigationZone {\n if (context.sourceZone === APP_LEVEL_NAVIGATION_SOURCE || context.sourceZone === 'overlay') {\n return NavigationZoneName.PRIMARY;\n }\n return context.sourceZone;\n }\n\n /**\n * Resolve the target zone for a SPLIT transition.\n * Persistent splits always target companion. Non-persistent splits\n * target the first available adjacent zone.\n * Falls back to overlay if no adjacent zone is declared in config.\n */\n private resolveSplitTarget(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n persistent: boolean,\n ): DerivedTargetZone {\n if (persistent) {\n return layout.zones.companion\n ? { zone: NavigationZoneName.COMPANION, adjustment: this.splitOutcomeFor(context, NavigationZoneName.COMPANION) }\n : { zone: NavigationZone.OVERLAY, adjustment: NavigationPlacementAdjustment.PERSISTENT_SPLIT_ESCALATED_NO_COMPANION };\n }\n\n // Prefer secondary if declared, otherwise companion, otherwise escalate to overlay\n if (layout.zones.secondary) {\n if (!context.zoneOccupancy?.[NavigationZoneName.SECONDARY]) {\n return { zone: NavigationZoneName.SECONDARY, adjustment: NavigationPlacementAdjustment.SPLIT_OPENED_FREE_PANE };\n }\n // Secondary occupied — try companion\n if (layout.zones.companion && !context.zoneOccupancy?.[NavigationZoneName.COMPANION]) {\n return { zone: NavigationZoneName.COMPANION, adjustment: NavigationPlacementAdjustment.SPLIT_OPENED_FREE_PANE };\n }\n // Both occupied — push into secondary (replace existing content)\n return {\n zone: NavigationZoneName.SECONDARY,\n adjustment: NavigationPlacementAdjustment.SPLIT_REPLACED_OCCUPIED_PANE,\n };\n }\n\n if (layout.zones.companion) {\n return { zone: NavigationZoneName.COMPANION, adjustment: this.splitOutcomeFor(context, NavigationZoneName.COMPANION) };\n }\n\n // No adjacent zones declared — escalate to overlay\n return { zone: NavigationZone.OVERLAY, adjustment: NavigationPlacementAdjustment.SPLIT_ESCALATED_NO_ADJACENT_ZONE };\n }\n\n /**\n * Did a split into `zone` OPEN a pane or REPLACE what was in one?\n *\n * The same question `resolveSplitTarget`'s secondary branch answers inline by construction — it\n * only reaches companion when secondary is taken — but the two branches that target companion\n * DIRECTLY (a persistent split, and a layout declaring companion without secondary) choose the\n * zone before asking, so they ask here. Reading `zoneOccupancy` is what keeps both answers derived\n * from one input rather than from two nearly-identical inline conditions.\n */\n private splitOutcomeFor(\n context: NavigationResolutionContext,\n zone: NavigationZoneName,\n ): NavigationPlacementAdjustment {\n return context.zoneOccupancy?.[zone] === true\n ? NavigationPlacementAdjustment.SPLIT_REPLACED_OCCUPIED_PANE\n : NavigationPlacementAdjustment.SPLIT_OPENED_FREE_PANE;\n }\n\n // ──────────────────────────────────────────────────────────────\n // Appearance Derivation\n // ──────────────────────────────────────────────────────────────\n\n /**\n * Derive visual appearance from zone config, resolved for the current viewport.\n * Only overlay and split transitions have meaningful appearance.\n */\n private deriveAppearance(\n transition: NavigationTransition,\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): OverlayAppearance | undefined {\n /*\n * OVERLAY only. A SPLIT used to derive a `SplitAppearance` here and nothing ever read it — see\n * the removal note in `navigation.shared.schemas.ts`. How a PANE renders is `SplitConfig`'s\n * geometry (`orientation`, `ratio`, the zone's width bounds), which the content areas read\n * directly from the layout rather than off a resolution.\n */\n if (transition !== NavigationTransition.OVERLAY) {\n return undefined;\n }\n\n // Check operation override appearance first\n if (context.operationOverrides?.length) {\n for (const override of context.operationOverrides) {\n if (this.overrideMatches(override, context) && override.appearance !== undefined) {\n return resolveViewportDiscriminated(override.appearance, context.viewport) as\n OverlayAppearance | undefined;\n }\n }\n }\n\n // Read from source zone's appearance config\n const zoneAppearance = this.getSourceAppearance(context, layout);\n if (transition === NavigationTransition.OVERLAY) {\n return resolveViewportDiscriminated(zoneAppearance?.overlay, context.viewport) ?? OverlayAppearance.DIALOG;\n }\n return undefined;\n }\n\n /**\n * The overlay behaviour declared by a matching per-operation override, if any.\n *\n * First match wins, exactly as the transition and appearance do — one override describes one\n * situation, so reading a different override's behaviour than its transition would let a single\n * declaration be split across two answers.\n */\n private resolveOverlayBehavior(\n context: NavigationResolutionContext,\n ): NavigationResolutionResult['overlayBehavior'] {\n if (!context.operationOverrides?.length) return undefined;\n for (const override of context.operationOverrides) {\n if (this.overrideMatches(override, context) && override.overlayBehavior !== undefined) {\n return override.overlayBehavior;\n }\n }\n return undefined;\n }\n\n /** Get the appearance config from the appropriate source. */\n private getSourceAppearance(\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): ZoneAppearance | undefined {\n if (context.sourceZone === APP_LEVEL_NAVIGATION_SOURCE) {\n return layout.appLevel?.appearance;\n }\n if (context.sourceZone === 'overlay') {\n /*\n * PRIMARY's appearance, for the same reason its TRANSITIONS are read in `getSourceTransitions`:\n * a structural navigation out of an overlay lands in PRIMARY, so PRIMARY's declaration is the\n * one that describes it. `FromOverlayConfig` declares no appearance of its own, and returning\n * `undefined` here sent every such navigation to the framework default instead of to the\n * layout's — the same \"skip what the app declared\" shape the transition lookup had.\n *\n * This read `undefined` with the comment \"overlays within overlays shouldn't happen\", and that\n * is no longer true in either half: an overlay opened FROM an overlay now stacks (it is how a\n * reader walks an aspect graph popup to popup and walks back out), and a SPLIT out of an\n * overlay is exactly the case this function was skipping.\n */\n return layout.zones.primary?.appearance;\n }\n return layout.zones[context.sourceZone as NavigationZoneName]?.appearance;\n }\n\n // ──────────────────────────────────────────────────────────────\n // Responsive Collapse Check\n // ──────────────────────────────────────────────────────────────\n\n /**\n * WHICH collapse the target zone is under at this viewport, or `undefined` for none.\n *\n * Only secondary and companion zones can collapse. Primary never collapses — it is the zone\n * collapsed content moves INTO. Overlay is not a structural zone and cannot collapse either.\n *\n * This returned a BOOLEAN until 2026-09-08 (#411), and the boolean is why the whole mechanism was\n * inert: `PUSH` and `OVERLAY` are the entire content of the declaration, and a flag that says\n * \"collapsed\" without saying which cannot place anything. The consumer would have had to re-read\n * `layout.zones[…].responsiveCollapse` and re-resolve the breakpoint itself — a second copy of\n * this decision, free to disagree with the first.\n */\n private resolveCollapseMode(\n targetZone: NavigationZone,\n context: NavigationResolutionContext,\n layout: NavigationLayout,\n ): ResponsiveCollapseMode | undefined {\n /*\n * The zone-identity guard stays HERE and the viewport decision lives in `resolveZoneCollapseMode`,\n * because they are different questions: primary never collapses (it is the zone collapsed content\n * moves INTO) and overlay is not a structural zone — neither fact depends on how wide the window\n * is. Everything that does is shared with the migration hook, which must not re-derive it.\n */\n if (targetZone === NavigationZone.OVERLAY || targetZone === NavigationZoneName.PRIMARY) {\n return undefined;\n }\n return resolveZoneCollapseMode({\n zoneConfig: layout.zones[targetZone as NavigationZoneName],\n viewport: context.viewport,\n contentAreaWidth: context.contentAreaWidth,\n });\n }\n}\n\n/** Singleton instance for use across the frontend. */\nexport const navigationPolicyResolver = new NavigationPolicyResolver();\n"]}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import React from 'react';
|
|
21
21
|
import { z } from 'zod';
|
|
22
|
-
import { NavigationTransition, NavigationZoneName, OverlayAppearance,
|
|
22
|
+
import { NavigationTransition, NavigationZoneName, OverlayAppearance, ParentDisplay, type RelationshipDisplayInChildView, type TransitionConfig } from '@wildo-ai/saas-models';
|
|
23
23
|
import { ViewportBreakpoint } from '@wildo-ai/zod-decorators';
|
|
24
24
|
import { ApplicationLevelComponentType, SidebarItemDisplayPolicy } from '../../core/config/app-level-components.frontend.schemas';
|
|
25
25
|
import { EnginePageRef } from '../../core/config/launcher-items.frontend.schemas';
|
|
@@ -312,7 +312,7 @@ export interface NavigationStackEntry {
|
|
|
312
312
|
* overlay entries (dialog/sheet/drawer) and split entries (panel/drawer).
|
|
313
313
|
* Used by ContentAreas to decide how to render overlay or split content.
|
|
314
314
|
*/
|
|
315
|
-
appearance?: OverlayAppearance
|
|
315
|
+
appearance?: OverlayAppearance;
|
|
316
316
|
/**
|
|
317
317
|
* Behaviour of an OVERLAY entry: is the page behind interactive, does touching it dismiss, is it
|
|
318
318
|
* dimmed. Three independent questions, and a companion panel needs all three answered — see
|
|
@@ -336,6 +336,23 @@ export interface NavigationStackEntry {
|
|
|
336
336
|
* Used by NavigationContext auto-close logic.
|
|
337
337
|
*/
|
|
338
338
|
ephemeral?: boolean;
|
|
339
|
+
/**
|
|
340
|
+
* `true` when this entry was placed by a `persistent` split, so it SURVIVES a change of the
|
|
341
|
+
* source zone's content.
|
|
342
|
+
*
|
|
343
|
+
* Implemented 2026-09-25. Before that `persistent` chose COMPANION as the target zone and did
|
|
344
|
+
* nothing else, while its schema JSDoc promised "the split zone persists when the source zone's
|
|
345
|
+
* content changes — without `persistent`, a split zone would clear when primary navigates away".
|
|
346
|
+
* Neither half existed: no entry carried a flag, and the zone-dependency cleanup cleared COMPANION
|
|
347
|
+
* on any irrelevant primary change regardless of how the content arrived. The documented
|
|
348
|
+
* reference-panel pattern — a thread, a terminal, a doc kept open while you move around — closed on
|
|
349
|
+
* the first unrelated navigation.
|
|
350
|
+
*
|
|
351
|
+
* It exempts the entry from the DEPENDENCY cleanup only. An explicit dismiss, a clean break
|
|
352
|
+
* (`PROMOTE`, an app-level reset) and a direct clear all still close it: persistence means "do not
|
|
353
|
+
* close this because the page beneath changed", not "this cannot be closed".
|
|
354
|
+
*/
|
|
355
|
+
persistent?: boolean;
|
|
339
356
|
/**
|
|
340
357
|
* `true` when this SECONDARY entry was opened beside a primary whose address the pane's own URL
|
|
341
358
|
* cannot re-derive (a composite view, a canvas, a chart, an engine page), so the browser URL is
|
|
@@ -417,6 +434,135 @@ export interface NavigationState {
|
|
|
417
434
|
*/
|
|
418
435
|
overlay: NavigationStackEntry[];
|
|
419
436
|
}
|
|
437
|
+
/**
|
|
438
|
+
* WHICH TIER of the transition-resolution chain decided the verb.
|
|
439
|
+
*
|
|
440
|
+
* The chain has seven steps and every one of them can answer `PUSH`. So the OUTCOME alone cannot
|
|
441
|
+
* tell an authored decision from the framework's default, and for a year nothing recorded which had
|
|
442
|
+
* spoken: the resolver carries 324 lines of code, thirteen decision methods and — until 2026-09-25 —
|
|
443
|
+
* not one log statement or provenance field. Every "why did it land there?" question was therefore
|
|
444
|
+
* answered by simulating the chain by hand against the application's layout, which is what eight
|
|
445
|
+
* consecutive navigation diagnoses cost that week.
|
|
446
|
+
*
|
|
447
|
+
* Recording it is free, because the deciding tier is known at each return site of
|
|
448
|
+
* `resolveTransition`. What it buys is two things a log line could not:
|
|
449
|
+
*
|
|
450
|
+
* 1. **A test can pin the TIER, not merely the answer.** A pin that asserts `PUSH` passes when the
|
|
451
|
+
* right verb arrives from the wrong step — `positive-evidence-must-name-its-target.md` exactly.
|
|
452
|
+
* Steps 1, 1.5 and 2 are authored by no application today, so their unit tests are the only thing
|
|
453
|
+
* that exercises them, and those tests could not previously distinguish "step 2 answered" from
|
|
454
|
+
* "step 2 was skipped and the framework default happened to agree".
|
|
455
|
+
* 2. **A reader sees the tier in one field** instead of re-deriving it from the layout.
|
|
456
|
+
*/
|
|
457
|
+
export declare enum NavigationTransitionSource {
|
|
458
|
+
/** Step 1 — a `navigationOverrides` entry on the operation matched. The most specific instrument. */
|
|
459
|
+
OPERATION_OVERRIDE = "operation-override",
|
|
460
|
+
/** Step 1.5 — the operation declares an AUTHORED `ResourceOperationActionPresentation`. */
|
|
461
|
+
AUTHORED_ACTION_PRESENTATION = "authored-action-presentation",
|
|
462
|
+
/** Step 2 — the relationship this navigation traverses declares `inParentNavigation.transition`. */
|
|
463
|
+
RELATIONSHIP = "relationship",
|
|
464
|
+
/** Step 3 — `layout[mobile|vertTablet].transitions` answered for this viewport. */
|
|
465
|
+
VIEWPORT_OVERRIDE = "viewport-override",
|
|
466
|
+
/** Step 4 — the SOURCE's own declared map answered (`zones[source]`, `appLevel` or `fromOverlay`). */
|
|
467
|
+
SOURCE_TRANSITIONS = "source-transitions",
|
|
468
|
+
/**
|
|
469
|
+
* Step 4 — the source was an OVERLAY that declares no answer for this operation, so PRIMARY's map
|
|
470
|
+
* answered instead.
|
|
471
|
+
*
|
|
472
|
+
* Distinct from {@link SOURCE_TRANSITIONS} because it is the one tier that reads a map the author
|
|
473
|
+
* did not write for this source. It is the fallback added on 2026-09-25 after the workbench's
|
|
474
|
+
* `family` backlink — an ADDRESSABLE artifact clicked inside a popup — fell past an absent
|
|
475
|
+
* `fromOverlay` to the framework default and took the whole page instead of opening beside the
|
|
476
|
+
* list. Naming it separately is what lets a reader see that the answer came from somewhere the
|
|
477
|
+
* layout does not literally say it.
|
|
478
|
+
*/
|
|
479
|
+
OVERLAY_FALLBACK_TO_PRIMARY = "overlay-fallback-to-primary",
|
|
480
|
+
/** Step 4.5 — a DERIVED action presentation (the framework's guess for an unconfigured action). */
|
|
481
|
+
DERIVED_ACTION_PRESENTATION = "derived-action-presentation",
|
|
482
|
+
/** Step 5 — nothing answered; {@link NavigationTransition.PUSH}. */
|
|
483
|
+
FRAMEWORK_DEFAULT = "framework-default"
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* A decision taken AFTER the verb that changed where the content actually landed.
|
|
487
|
+
*
|
|
488
|
+
* Every member is a place the resolver silently overrules the authored verb. They are legitimate —
|
|
489
|
+
* each exists for a measured reason written at its site — and they are exactly what makes a
|
|
490
|
+
* navigation outcome hard to explain, because the layout says one thing and the screen shows
|
|
491
|
+
* another with nothing in between to read.
|
|
492
|
+
*
|
|
493
|
+
* Several can apply to one resolution and the order is the order they are applied in, so the array
|
|
494
|
+
* reads as the story of the placement.
|
|
495
|
+
*/
|
|
496
|
+
export declare enum NavigationPlacementAdjustment {
|
|
497
|
+
/**
|
|
498
|
+
* An `EMBEDDED` view resolved onto a structural zone and was escalated to an overlay, because a
|
|
499
|
+
* structural zone is not a host — it already holds something a reader is reading.
|
|
500
|
+
*/
|
|
501
|
+
EMBEDDED_COERCED_TO_OVERLAY = "embedded-coerced-to-overlay",
|
|
502
|
+
/** A `SPLIT` found the adjacent pane FREE and opened it. The pane is a host; nothing was taken over. */
|
|
503
|
+
SPLIT_OPENED_FREE_PANE = "split-opened-free-pane",
|
|
504
|
+
/**
|
|
505
|
+
* A `SPLIT` found every adjacent pane OCCUPIED and replaced the content of one.
|
|
506
|
+
*
|
|
507
|
+
* This is the second, opposite meaning of `SPLIT` that the enum cannot express, and naming it is
|
|
508
|
+
* the whole reason this vocabulary exists. It is correct for a list/detail application — clicking
|
|
509
|
+
* another record swaps the reading pane, exactly as a mailbox does — and it is a surface being
|
|
510
|
+
* taken over, which is why the EMBEDDED coercion above reads occupancy rather than the verb.
|
|
511
|
+
*/
|
|
512
|
+
SPLIT_REPLACED_OCCUPIED_PANE = "split-replaced-occupied-pane",
|
|
513
|
+
/**
|
|
514
|
+
* A `SPLIT` was authored and the layout declares NO adjacent zone, so it became an overlay.
|
|
515
|
+
*
|
|
516
|
+
* Silent by design and the most surprising thing in the resolver: an author who writes
|
|
517
|
+
* `transition: SPLIT` and forgets the `secondary` zone gets a dialog and no diagnostic. Reported
|
|
518
|
+
* at boot since 2026-09-25 by `collectNavigationLayoutDiagnostics`, and named here so a runtime
|
|
519
|
+
* reader sees it too.
|
|
520
|
+
*/
|
|
521
|
+
SPLIT_ESCALATED_NO_ADJACENT_ZONE = "split-escalated-no-adjacent-zone",
|
|
522
|
+
/**
|
|
523
|
+
* A `persistent` split escalated because the layout declares no `companion` — **even though a
|
|
524
|
+
* `secondary` may be declared and free.** A persistent split targets companion SPECIFICALLY.
|
|
525
|
+
*
|
|
526
|
+
* Its own member because the REMEDY differs: telling this author to "declare `zones.secondary`"
|
|
527
|
+
* sends them to change something they already have. The resolver knows which branch it took, so
|
|
528
|
+
* the distinction is carried here rather than re-derived by whoever reports it — one message
|
|
529
|
+
* covered both branches for a few hours on 2026-09-25 and was false for this one.
|
|
530
|
+
*/
|
|
531
|
+
PERSISTENT_SPLIT_ESCALATED_NO_COMPANION = "persistent-split-escalated-no-companion",
|
|
532
|
+
/** The target zone is collapsed at this viewport and its `responsiveCollapse` said `PUSH`. */
|
|
533
|
+
RESPONSIVE_COLLAPSE_PUSH = "responsive-collapse-push",
|
|
534
|
+
/** The target zone is collapsed at this viewport and its `responsiveCollapse` said `OVERLAY`. */
|
|
535
|
+
RESPONSIVE_COLLAPSE_OVERLAY = "responsive-collapse-overlay",
|
|
536
|
+
/** The push would have passed `maxDepth`, so it opened an overlay instead. */
|
|
537
|
+
DEPTH_CEILING_ESCALATED_TO_OVERLAY = "depth-ceiling-escalated-to-overlay",
|
|
538
|
+
/**
|
|
539
|
+
* An `INPLACE` transition resolved on a surface with no element-level host — a detail page, a
|
|
540
|
+
* breadcrumb, a picker — so it degraded to an overlay.
|
|
541
|
+
*
|
|
542
|
+
* It is an ADJUSTMENT rather than a tier because the tier that answered `INPLACE` is unchanged and
|
|
543
|
+
* still worth knowing. Until 2026-09-25 the controller expressed this by re-resolving with a
|
|
544
|
+
* SYNTHETIC `operationOverrides: [{ transition: OVERLAY }]`, which cost two things: the provenance
|
|
545
|
+
* then read `operation-override`, telling a reader an author had declared something no author
|
|
546
|
+
* declared; and the synthetic array REPLACED the real one, so an operation that authored an
|
|
547
|
+
* `appearance` or `overlayBehavior` beside its transition silently lost it.
|
|
548
|
+
*/
|
|
549
|
+
INPLACE_DEGRADED_TO_OVERLAY = "inplace-degraded-to-overlay"
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* How a resolution was reached: the tier that decided the verb, and every adjustment applied after.
|
|
553
|
+
*
|
|
554
|
+
* Carried on every {@link NavigationResolutionResult}. It is INFORMATION — nothing branches on it —
|
|
555
|
+
* so a consumer may ignore it entirely, and a test or a log line may read it to say what happened
|
|
556
|
+
* rather than what merely came out.
|
|
557
|
+
*/
|
|
558
|
+
export interface NavigationResolutionProvenance {
|
|
559
|
+
/** Which step of the chain answered. */
|
|
560
|
+
transitionSource: NavigationTransitionSource;
|
|
561
|
+
/** The verb that tier produced, BEFORE any adjustment below. Equal to `transition` when empty. */
|
|
562
|
+
authoredTransition: NavigationTransition;
|
|
563
|
+
/** Adjustments applied after the verb, in application order. Empty when the verb survived intact. */
|
|
564
|
+
adjustments: NavigationPlacementAdjustment[];
|
|
565
|
+
}
|
|
420
566
|
/**
|
|
421
567
|
* Output of the navigation policy resolver — tells the controller exactly what to do.
|
|
422
568
|
*
|
|
@@ -434,13 +580,12 @@ export interface NavigationResolutionResult {
|
|
|
434
580
|
/** The transition verb to apply. */
|
|
435
581
|
transition: NavigationTransition;
|
|
436
582
|
/**
|
|
437
|
-
* Visual appearance for the transition. Only meaningful for:
|
|
438
|
-
*
|
|
439
|
-
*
|
|
440
|
-
* `undefined` for `push`, `replace`, `inplace`, and `promote`
|
|
583
|
+
* Visual appearance for the transition. Only meaningful for `overlay` transitions:
|
|
584
|
+
* `OverlayAppearance` (dialog, sheet, or drawer). `undefined` for every other verb — a `split`
|
|
585
|
+
* pane's shape is `split.orientation` — and for `push`, `replace`, `inplace` and `promote`
|
|
441
586
|
* (`push`/`replace`/`promote` fill the zone; `inplace` transforms an element).
|
|
442
587
|
*/
|
|
443
|
-
appearance?: OverlayAppearance
|
|
588
|
+
appearance?: OverlayAppearance;
|
|
444
589
|
/**
|
|
445
590
|
* Behaviour of an OVERLAY entry: is the page behind interactive, does touching it dismiss, is it
|
|
446
591
|
* dimmed. Three independent questions, and a companion panel needs all three answered — see
|
|
@@ -489,6 +634,19 @@ export interface NavigationResolutionResult {
|
|
|
489
634
|
* The controller writes this to `NavigationStackEntry.ephemeral`.
|
|
490
635
|
*/
|
|
491
636
|
ephemeral?: boolean;
|
|
637
|
+
/**
|
|
638
|
+
* `true` when a `persistent` split placed this content in an adjacent zone. The controller writes
|
|
639
|
+
* it onto the entry as {@link NavigationStackEntry.persistent}; the zone-dependency cleanup reads
|
|
640
|
+
* it there.
|
|
641
|
+
*/
|
|
642
|
+
persistent?: boolean;
|
|
643
|
+
/**
|
|
644
|
+
* How this resolution was reached — see {@link NavigationResolutionProvenance}.
|
|
645
|
+
*
|
|
646
|
+
* Always present. Nothing branches on it; it exists so a reader, a log line and a test can name
|
|
647
|
+
* the tier that decided instead of inferring it from an outcome seven different tiers can produce.
|
|
648
|
+
*/
|
|
649
|
+
provenance: NavigationResolutionProvenance;
|
|
492
650
|
}
|
|
493
651
|
/**
|
|
494
652
|
* Input to the navigation policy resolver — all the contextual signals needed
|
|
@@ -793,6 +951,7 @@ export declare const NavigationContentSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
793
951
|
resourceId: z.ZodString;
|
|
794
952
|
}, z.core.$strip>]>>;
|
|
795
953
|
additionalContext: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
954
|
+
pinnedFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
796
955
|
}, z.core.$strip>;
|
|
797
956
|
}, z.core.$strip>, z.ZodObject<{
|
|
798
957
|
contentType: z.ZodLiteral<NavigationContentType.COMPOSITE_VIEW>;
|
|
@@ -873,6 +1032,7 @@ export declare const NavigationContentSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
873
1032
|
resourceId: z.ZodString;
|
|
874
1033
|
}, z.core.$strip>]>>;
|
|
875
1034
|
additionalContext: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1035
|
+
pinnedFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
876
1036
|
}, z.core.$strip>;
|
|
877
1037
|
defaultValues: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
878
1038
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -907,6 +1067,7 @@ export declare const NavigationStackEntrySchema: z.ZodObject<{
|
|
|
907
1067
|
resourceId: z.ZodString;
|
|
908
1068
|
}, z.core.$strip>]>>;
|
|
909
1069
|
additionalContext: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1070
|
+
pinnedFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
910
1071
|
}, z.core.$strip>;
|
|
911
1072
|
}, z.core.$strip>, z.ZodObject<{
|
|
912
1073
|
contentType: z.ZodLiteral<NavigationContentType.COMPOSITE_VIEW>;
|
|
@@ -987,6 +1148,7 @@ export declare const NavigationStackEntrySchema: z.ZodObject<{
|
|
|
987
1148
|
resourceId: z.ZodString;
|
|
988
1149
|
}, z.core.$strip>]>>;
|
|
989
1150
|
additionalContext: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1151
|
+
pinnedFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
990
1152
|
}, z.core.$strip>;
|
|
991
1153
|
defaultValues: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
992
1154
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -1015,7 +1177,7 @@ export declare const NavigationStackEntrySchema: z.ZodObject<{
|
|
|
1015
1177
|
}, z.core.$strip>>;
|
|
1016
1178
|
navigationSource: z.ZodEnum<typeof NavigationSource>;
|
|
1017
1179
|
transition: z.ZodEnum<typeof NavigationTransition>;
|
|
1018
|
-
appearance: z.ZodOptional<z.
|
|
1180
|
+
appearance: z.ZodOptional<z.ZodEnum<typeof OverlayAppearance>>;
|
|
1019
1181
|
ephemeral: z.ZodOptional<z.ZodBoolean>;
|
|
1020
1182
|
hostedPane: z.ZodOptional<z.ZodBoolean>;
|
|
1021
1183
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation.schemas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navigation.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/core/navigation/navigation.schemas.ts"],"names":[],"mappings":"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"}
|