@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":"useProviderComponent.frontend.hooks.js","sourceRoot":"","sources":["../../../../../src/core/components-registry/useProviderComponent.frontend.hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"useProviderComponent.frontend.hooks.js","sourceRoot":"","sources":["../../../../../src/core/components-registry/useProviderComponent.frontend.hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAE3B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6DAA6D,CAAC;AAkBxG;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAA8B;IAE9B,MAAM,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,GAAG,cAAc,EAAE,CAAC;IAEjF,IAAI,yBAAyB,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAEvD,OAAO,yBAAyB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QAC7E,MAAM,QAAQ,GAAG,wBAAwB,EAAE,gBAAgB,CAAC,WAAoB,CAAC,CAAC;QAClF,OAAO;YACL,WAAW;YACX,mBAAmB,EACjB,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,IAAI,gCAAgC,CAAC,WAAW,CAAC;YACzF,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW;YAC3C,WAAW,EAAE,QAAQ,EAAE,WAAW;SACnC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AASD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAA8B,EAC9B,WAA+B;IAE/B,MAAM,EAAE,yBAAyB,EAAE,GAAG,cAAc,EAAE,CAAC;IACvD,yGAAyG;IACzG,mBAAmB;IACnB,MAAM,EAAE,OAAO,EAAE,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAyB,GAAG,EAAE,CAAC,8BAA8B,EAAqB,CAAC,CAAC;IAEtH,SAAS,CACP,GAAG,EAAE,CAAC,0BAA0B,CAAC;QAC/B,QAAQ,EAAE,yBAAyB;QACnC,UAAU;QACV,WAAW;QACX,sBAAsB,EAAE,OAAO;QAC/B,OAAO,EAAE,QAAQ;KAClB,CAAC;IACF,kGAAkG;IAClG,qCAAqC;IACrC,uDAAuD;IACvD,CAAC,UAAU,EAAE,WAAW,EAAE,yBAAyB,EAAE,UAAU,CAAC,CACjE,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * Reading provider-contributed components from a React surface.\n *\n * Two hooks, split along the one line that matters: WHICH providers can fill a\n * capability is known synchronously and their component is not.\n *\n * - `useProviderComponentChoices` — the live providers offering a component\n * for a capability, in a stable order, with the label KEY each renders\n * under. Synchronous, so a surface can draw its chooser on the first frame\n * instead of flashing an empty one.\n * - `useProviderComponent` — the chosen provider's component, loaded on\n * demand together with the scripts its provider declares, with an explicit\n * status so a surface renders a pending state rather than nothing.\n *\n * Neither hook picks a provider. That is the defect being fixed: resolution was\n * first-match, so two pickers could not coexist and the winner depended on map\n * order. When there are several, choosing is the surface's job — and a user's.\n *\n * Labels are KEYS, never text. A provider's display name is resolved through\n * the app i18n service at render time by whatever surface shows it; returning a\n * string here would freeze locale-bound copy into a hook and make a missing\n * translation invisible.\n */\n\nimport { useEffect, useState } from 'react';\nimport type { ProviderCapability } from '@wildo-ai/saas-models';\nimport type { FileStorageAccepted } from '@wildo-ai/saas-models/public-runtime';\nimport {\n idleProviderComponentLoadState,\n startProviderComponentLoad,\n type ProviderComponentLoadState,\n} from '@wildo-ai/external-connectors-public/app';\nimport { buildProviderDisplayNameLabelKey } from '@wildo-ai/saas-models/public-runtime';\nimport { useApplication } from '~wildo-frontend-lib/core/runtime/useApplication';\nimport { useGrantedConsentPurposes } from '~wildo-frontend-lib/core/security/useGrantedConsentPurposes';\nimport type { ProviderComponent } from './provider-component-registry.frontend.service';\n\nexport interface ProviderComponentChoice {\n readonly providerRef: string;\n /** Resolve through the app i18n service; never render this key. */\n readonly displayNameLabelKey: string;\n /** The provider's authored fallback, when it has one. Still not a translation. */\n readonly displayName?: string;\n /**\n * The z_file storage this provider's picker fronts, from the served entry\n * (#394 P5). A file field offers the picker only when its `storageAccepted`\n * names this storage; a provider declaring none delivers bytes and is offered\n * to every field.\n */\n readonly fileStorage?: FileStorageAccepted;\n}\n\n/**\n * The providers that are BOTH live for this service and carry a component for\n * this capability.\n *\n * Both halves are required and they come from different channels: a provider\n * can be live with no code (an older bundle) or have code and not be live (an\n * environment that left it off). A surface must offer only what can actually\n * render.\n */\nexport function useProviderComponentChoices(\n capability: ProviderCapability,\n): ReadonlyArray<ProviderComponentChoice> {\n const { frontendProviderRegistry, providerComponentRegistry } = useApplication();\n\n if (providerComponentRegistry === undefined) return [];\n\n return providerComponentRegistry.listProviders(capability).map((providerRef) => {\n const provider = frontendProviderRegistry?.getProviderByRef(providerRef as never);\n return {\n providerRef,\n displayNameLabelKey:\n provider?.metadata.displayNameLabelKey ?? buildProviderDisplayNameLabelKey(providerRef),\n displayName: provider?.metadata.displayName,\n fileStorage: provider?.fileStorage,\n };\n });\n}\n\n/**\n * What `useProviderComponent` returns: the shared load state (#1703), holding the application's\n * component type. The status vocabulary — `ProviderComponentStatus` — is the ONE the website and the\n * documentation site use too, exported from `@wildo-ai/external-connectors-public/app`.\n */\nexport type ProviderComponentState = ProviderComponentLoadState<ProviderComponent>;\n\n/**\n * Loads one provider's component for a capability.\n *\n * Pass `undefined` for the ref while nothing is chosen — the hook does not choose, and a surface with\n * several providers must not load all of them speculatively.\n *\n * The decision itself (consent first, then load, then READY / UNAVAILABLE, and a cancelled answer\n * never overwriting a later choice) is `startProviderComponentLoad`, shared with the website and the\n * documentation site so the three surfaces cannot come to disagree about it. This hook supplies the\n * application's two inputs: the registry built at startup, and the signed-in person's grant.\n * `ProviderComponentStatus.CONSENT_REQUIRED` means NOTHING of the provider was downloaded; a surface\n * renders a consent-required state there, never a blank, and granting reloads it without a re-mount,\n * because the hook re-evaluates when the grant changes.\n */\nexport function useProviderComponent(\n capability: ProviderCapability,\n providerRef: string | undefined,\n): ProviderComponentState {\n const { providerComponentRegistry } = useApplication();\n // The signed-in person's grant (#1702). Keyed by value below, so an unrelated preference change does not\n // re-run the load.\n const { granted } = useGrantedConsentPurposes();\n const grantedKey = granted.join(',');\n const [state, setState] = useState<ProviderComponentState>(() => idleProviderComponentLoadState<ProviderComponent>());\n\n useEffect(\n () => startProviderComponentLoad({\n registry: providerComponentRegistry,\n capability,\n providerRef,\n grantedConsentPurposes: granted,\n onState: setState,\n }),\n // `granted` is read through `grantedKey`: its identity changes with every preferences object, its\n // meaning only when the set changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [capability, providerRef, providerComponentRegistry, grantedKey],\n );\n\n return state;\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HorizontalPlacement
|
|
1
|
+
import { HorizontalPlacement } from '@wildo-ai/presets-components-models';
|
|
2
2
|
import { BrandAssetTheme } from '@wildo-ai/saas-models';
|
|
3
3
|
import type { SettingsHubConfig } from './settings-hub.frontend.schemas';
|
|
4
4
|
import { ViewportBreakpoint } from '@wildo-ai/zod-decorators';
|
|
@@ -182,6 +182,7 @@ export declare const AppLevelComponentConfigurationSchema: z.ZodObject<{
|
|
|
182
182
|
runtimeAvailability: z.ZodOptional<z.ZodObject<{
|
|
183
183
|
requiredCapabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
184
184
|
}, z.core.$strip>>;
|
|
185
|
+
notificationBadgeRef: z.ZodOptional<z.ZodString>;
|
|
185
186
|
}, z.core.$strip>>>>;
|
|
186
187
|
brandHeader: z.ZodOptional<z.ZodBoolean>;
|
|
187
188
|
brandMarkTheme: z.ZodOptional<z.ZodEnum<typeof BrandAssetTheme>>;
|
|
@@ -330,7 +331,7 @@ export declare const AppLevelComponentConfigurationSchema: z.ZodObject<{
|
|
|
330
331
|
}, z.core.$strip>], "contentKind">>>;
|
|
331
332
|
hostedComponents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
332
333
|
componentType: z.ZodString;
|
|
333
|
-
placement: z.ZodOptional<z.ZodEnum<typeof VerticalPlacement>>;
|
|
334
|
+
placement: z.ZodOptional<z.ZodEnum<typeof import("@wildo-ai/presets-components-models").VerticalPlacement>>;
|
|
334
335
|
breakpoint: z.ZodOptional<z.ZodEnum<typeof ViewportBreakpoint>>;
|
|
335
336
|
presetName: z.ZodOptional<z.ZodString>;
|
|
336
337
|
triggerWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
@@ -441,8 +442,14 @@ export declare const AppLevelComponentConfigurationSchema: z.ZodObject<{
|
|
|
441
442
|
}, z.core.$strip>>;
|
|
442
443
|
}, z.core.$strip>>>>;
|
|
443
444
|
}, z.core.$strip>]>>;
|
|
444
|
-
status_bar: z.ZodDefault<z.ZodUnion<readonly [z.ZodDefault<z.ZodBoolean>, z.ZodEnum<
|
|
445
|
-
|
|
445
|
+
status_bar: z.ZodDefault<z.ZodUnion<readonly [z.ZodDefault<z.ZodBoolean>, z.ZodEnum<{
|
|
446
|
+
top: import("@wildo-ai/presets-components-models").VerticalPlacement.TOP;
|
|
447
|
+
bottom: import("@wildo-ai/presets-components-models").VerticalPlacement.BOTTOM;
|
|
448
|
+
}>, z.ZodObject<{
|
|
449
|
+
placement: z.ZodOptional<z.ZodEnum<{
|
|
450
|
+
top: import("@wildo-ai/presets-components-models").VerticalPlacement.TOP;
|
|
451
|
+
bottom: import("@wildo-ai/presets-components-models").VerticalPlacement.BOTTOM;
|
|
452
|
+
}>>;
|
|
446
453
|
showMemoryUsage: z.ZodDefault<z.ZodBoolean>;
|
|
447
454
|
showNotificationCount: z.ZodDefault<z.ZodBoolean>;
|
|
448
455
|
showConnectionStatus: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1202,7 +1209,6 @@ export declare const AppConfiguration_Frontend_Schema: z.ZodObject<{
|
|
|
1202
1209
|
ephemeral?: boolean;
|
|
1203
1210
|
}>>, unknown>>;
|
|
1204
1211
|
appearance: z.ZodOptional<z.ZodObject<{
|
|
1205
|
-
split: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<typeof import("@wildo-ai/saas-models").SplitAppearance>, z.ZodRecord<z.ZodEnum<typeof ViewportBreakpoint> & z.core.$partial, z.ZodEnum<typeof import("@wildo-ai/saas-models").SplitAppearance>>]>>;
|
|
1206
1212
|
overlay: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<typeof import("@wildo-ai/saas-models").OverlayAppearance>, z.ZodRecord<z.ZodEnum<typeof ViewportBreakpoint> & z.core.$partial, z.ZodEnum<typeof import("@wildo-ai/saas-models").OverlayAppearance>>]>>;
|
|
1207
1213
|
}, z.core.$strip>>;
|
|
1208
1214
|
minWidth: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1222,7 +1228,6 @@ export declare const AppConfiguration_Frontend_Schema: z.ZodObject<{
|
|
|
1222
1228
|
ephemeral?: boolean;
|
|
1223
1229
|
}>>, unknown>>;
|
|
1224
1230
|
appearance: z.ZodOptional<z.ZodObject<{
|
|
1225
|
-
split: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<typeof import("@wildo-ai/saas-models").SplitAppearance>, z.ZodRecord<z.ZodEnum<typeof ViewportBreakpoint> & z.core.$partial, z.ZodEnum<typeof import("@wildo-ai/saas-models").SplitAppearance>>]>>;
|
|
1226
1231
|
overlay: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<typeof import("@wildo-ai/saas-models").OverlayAppearance>, z.ZodRecord<z.ZodEnum<typeof ViewportBreakpoint> & z.core.$partial, z.ZodEnum<typeof import("@wildo-ai/saas-models").OverlayAppearance>>]>>;
|
|
1227
1232
|
}, z.core.$strip>>;
|
|
1228
1233
|
minWidth: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1242,7 +1247,6 @@ export declare const AppConfiguration_Frontend_Schema: z.ZodObject<{
|
|
|
1242
1247
|
ephemeral?: boolean;
|
|
1243
1248
|
}>>, unknown>>;
|
|
1244
1249
|
appearance: z.ZodOptional<z.ZodObject<{
|
|
1245
|
-
split: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<typeof import("@wildo-ai/saas-models").SplitAppearance>, z.ZodRecord<z.ZodEnum<typeof ViewportBreakpoint> & z.core.$partial, z.ZodEnum<typeof import("@wildo-ai/saas-models").SplitAppearance>>]>>;
|
|
1246
1250
|
overlay: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<typeof import("@wildo-ai/saas-models").OverlayAppearance>, z.ZodRecord<z.ZodEnum<typeof ViewportBreakpoint> & z.core.$partial, z.ZodEnum<typeof import("@wildo-ai/saas-models").OverlayAppearance>>]>>;
|
|
1247
1251
|
}, z.core.$strip>>;
|
|
1248
1252
|
minWidth: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1262,7 +1266,6 @@ export declare const AppConfiguration_Frontend_Schema: z.ZodObject<{
|
|
|
1262
1266
|
ephemeral?: boolean;
|
|
1263
1267
|
}>>, unknown>>;
|
|
1264
1268
|
appearance: z.ZodOptional<z.ZodObject<{
|
|
1265
|
-
split: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<typeof import("@wildo-ai/saas-models").SplitAppearance>, z.ZodRecord<z.ZodEnum<typeof ViewportBreakpoint> & z.core.$partial, z.ZodEnum<typeof import("@wildo-ai/saas-models").SplitAppearance>>]>>;
|
|
1266
1269
|
overlay: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<typeof import("@wildo-ai/saas-models").OverlayAppearance>, z.ZodRecord<z.ZodEnum<typeof ViewportBreakpoint> & z.core.$partial, z.ZodEnum<typeof import("@wildo-ai/saas-models").OverlayAppearance>>]>>;
|
|
1267
1270
|
}, z.core.$strip>>;
|
|
1268
1271
|
}, z.core.$strip>>;
|
|
@@ -1351,6 +1354,7 @@ export declare const AppConfiguration_Frontend_Schema: z.ZodObject<{
|
|
|
1351
1354
|
runtimeAvailability: z.ZodOptional<z.ZodObject<{
|
|
1352
1355
|
requiredCapabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1353
1356
|
}, z.core.$strip>>;
|
|
1357
|
+
notificationBadgeRef: z.ZodOptional<z.ZodString>;
|
|
1354
1358
|
}, z.core.$strip>>>>;
|
|
1355
1359
|
brandHeader: z.ZodOptional<z.ZodBoolean>;
|
|
1356
1360
|
brandMarkTheme: z.ZodOptional<z.ZodEnum<typeof BrandAssetTheme>>;
|
|
@@ -1499,7 +1503,7 @@ export declare const AppConfiguration_Frontend_Schema: z.ZodObject<{
|
|
|
1499
1503
|
}, z.core.$strip>], "contentKind">>>;
|
|
1500
1504
|
hostedComponents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1501
1505
|
componentType: z.ZodString;
|
|
1502
|
-
placement: z.ZodOptional<z.ZodEnum<typeof VerticalPlacement>>;
|
|
1506
|
+
placement: z.ZodOptional<z.ZodEnum<typeof import("@wildo-ai/presets-components-models").VerticalPlacement>>;
|
|
1503
1507
|
breakpoint: z.ZodOptional<z.ZodEnum<typeof ViewportBreakpoint>>;
|
|
1504
1508
|
presetName: z.ZodOptional<z.ZodString>;
|
|
1505
1509
|
triggerWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
@@ -1610,8 +1614,14 @@ export declare const AppConfiguration_Frontend_Schema: z.ZodObject<{
|
|
|
1610
1614
|
}, z.core.$strip>>;
|
|
1611
1615
|
}, z.core.$strip>>>>;
|
|
1612
1616
|
}, z.core.$strip>]>>;
|
|
1613
|
-
status_bar: z.ZodDefault<z.ZodUnion<readonly [z.ZodDefault<z.ZodBoolean>, z.ZodEnum<
|
|
1614
|
-
|
|
1617
|
+
status_bar: z.ZodDefault<z.ZodUnion<readonly [z.ZodDefault<z.ZodBoolean>, z.ZodEnum<{
|
|
1618
|
+
top: import("@wildo-ai/presets-components-models").VerticalPlacement.TOP;
|
|
1619
|
+
bottom: import("@wildo-ai/presets-components-models").VerticalPlacement.BOTTOM;
|
|
1620
|
+
}>, z.ZodObject<{
|
|
1621
|
+
placement: z.ZodOptional<z.ZodEnum<{
|
|
1622
|
+
top: import("@wildo-ai/presets-components-models").VerticalPlacement.TOP;
|
|
1623
|
+
bottom: import("@wildo-ai/presets-components-models").VerticalPlacement.BOTTOM;
|
|
1624
|
+
}>>;
|
|
1615
1625
|
showMemoryUsage: z.ZodDefault<z.ZodBoolean>;
|
|
1616
1626
|
showNotificationCount: z.ZodDefault<z.ZodBoolean>;
|
|
1617
1627
|
showConnectionStatus: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-configuration-frontend.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/core/config/app-configuration-frontend.schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"app-configuration-frontend.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/core/config/app-configuration-frontend.schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DesignSystemConfigurationSchema, HorizontalPlacement
|
|
1
|
+
import { DesignSystemConfigurationSchema, HorizontalPlacement } from '@wildo-ai/presets-components-models';
|
|
2
2
|
import { BrandAssetTheme, GuidanceFlowDefinitionSchema, NavigationLayoutSchema, RuntimeBrandAssetSchema, } from '@wildo-ai/saas-models';
|
|
3
3
|
import { CompositeViewDefinitionSchema } from './composite-view.schemas.js';
|
|
4
4
|
import { OnboardingViewDefinitionSchema } from './onboarding-view.frontend.schemas.js';
|
|
@@ -13,7 +13,7 @@ import { SidebarSectionSchema, CommandMenuCommandSchema, CommandMenuSearchResour
|
|
|
13
13
|
// `ApplicationLevelComponentType` is defined in app-level-components.frontend.schemas.ts
|
|
14
14
|
// (import here only — no re-export).
|
|
15
15
|
// ════════════════════════════════════════════════════════════════
|
|
16
|
-
import { ApplicationLevelComponentType, HotkeyEmitShortcutSchema, StatusBarItemType } from './app-level-components.frontend.schemas.js';
|
|
16
|
+
import { ApplicationLevelComponentType, HotkeyEmitShortcutSchema, StatusBarItemType, StatusBarPlacementSchema } from './app-level-components.frontend.schemas.js';
|
|
17
17
|
// ================================
|
|
18
18
|
// Enums used by App-Level Component Configuration
|
|
19
19
|
// ================================
|
|
@@ -418,9 +418,9 @@ export const AppLevelComponentConfigurationSchema = z.object({
|
|
|
418
418
|
]).default(true),
|
|
419
419
|
[ApplicationLevelComponentType.STATUS_BAR]: z.union([
|
|
420
420
|
z.boolean().default(true),
|
|
421
|
-
|
|
421
|
+
StatusBarPlacementSchema,
|
|
422
422
|
z.object({
|
|
423
|
-
placement:
|
|
423
|
+
placement: StatusBarPlacementSchema.optional(),
|
|
424
424
|
showMemoryUsage: z.boolean().default(false),
|
|
425
425
|
showNotificationCount: z.boolean().default(true),
|
|
426
426
|
showConnectionStatus: z.boolean().default(true),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-configuration-frontend.schemas.js","sourceRoot":"","sources":["../../../../../src/core/config/app-configuration-frontend.schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC9H,OAAO,EACL,eAAe,EACf,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,mCAAmC,EAAE,MAAM,mEAAmE,CAAC;AACxH,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,+BAA+B,EAC/B,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,GAKvB,MAAM,mCAAmC,CAAC;AAG3C,mEAAmE;AACnE,4BAA4B;AAC5B,yFAAyF;AACzF,qCAAqC;AACrC,mEAAmE;AAEnE,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAIrI,mCAAmC;AACnC,kDAAkD;AAClD,mCAAmC;AAEnC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iDAA6B,CAAA;IAC7B,uCAAmB,CAAA;AACrB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AACD,gEAAgE;AAEhE,MAAM,CAAN,IAAY,mBAUX;AAVD,WAAY,mBAAmB;IAC7B,8CAAuB,CAAA;IACvB,oDAA6B,CAAA;IAC7B;;;;OAIG;IACH,4CAAqB,CAAA;IACrB,wCAAiB,CAAA;AACnB,CAAC,EAVW,mBAAmB,KAAnB,mBAAmB,QAU9B;AAED,MAAM,CAAN,IAAY,yBAKX;AALD,WAAY,yBAAyB;IACnC,wDAA2B,CAAA;IAC3B,wDAA2B,CAAA;IAC3B,sDAAyB,CAAA;IACzB,0CAAa,CAAA;AACf,CAAC,EALW,yBAAyB,KAAzB,yBAAyB,QAKpC;AAED,mCAAmC;AACnC,2CAA2C;AAC3C,mCAAmC;AAEnC;;;;;;;;;GASG;AACH;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,8BAqBX;AArBD,WAAY,8BAA8B;IACxC;;;;OAIG;IACH,+DAA6B,CAAA;IAC7B;;;;;OAKG;IACH,uDAAqB,CAAA;IACrB;;;;;OAKG;IACH,6DAA2B,CAAA;AAC7B,CAAC,EArBW,8BAA8B,KAA9B,8BAA8B,QAqBzC;AAED;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,oFAAoF;IACpF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,gEAAgE;IAChE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,kGAAkG;IAClG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,oGAAoG;IACpG,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,uFAAuF;IACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClG;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE;CAChE,CAAC,CAAC;AAGH,sEAAsE;AAEtE,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAOpD,MAAM,UAAU,kCAAkC,CAChD,MAA6C;IAE7C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,8BAA8B,GAAG,IAAI,GAAG,EAAoB,CAAC;IACnE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,8BAA8B,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACxE,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,8BAA8B,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,OAAO,EAAE,CAAC;SACxD,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;SAC7D,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,YAAY;QACZ,gBAAgB;KACjB,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEpE,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC7D,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;CACxC,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC7D,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC/D,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAa,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC;CACtE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC9D,uBAAuB;IACvB,uBAAuB;IACvB,yBAAyB;CAC1B,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAG,CAAC,CAAC,KAAK,CAAC;QAChD,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACtE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACf,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC;YACzE,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;SACzF,CAAC,CAAC;QACH,CAAC,CAAC,MAAM,CAAC;YACP,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;YACnF,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;YAClE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;YACpD;;;;;;eAMG;YACH,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACnC,+GAA+G;YAC/G,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;SACnD,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAEhB,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QAC/C,CAAC,CAAC,OAAO,EAAE;QACX,CAAC,CAAC,MAAM,CAAC;YACP,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1E,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC/B;;;eAGG;YACH,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACrC;;;;eAIG;YACH,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACpC;;;;eAIG;YACH,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;SAC7C,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAChB,CAAC,6BAA6B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QAC9C,CAAC,CAAC,OAAO,EAAE;QACX,CAAC,CAAC,MAAM,CAAC;YACP,0EAA0E;YAC1E,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;YACjD;;;;eAIG;YACH,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE;SAC5D,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAEhB,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAG9E,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAG,CAAC,CAAC,KAAK,CAAC;QAChD,CAAC,CAAC,OAAO,EAAE;QACX,CAAC,CAAC,MAAM,CAAC;YACP,SAAS,EAAG,CAAC,CAAC,KAAK,CAAC,CAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;YAChG,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACtC;;;;;;;;;;;;;;;;;;;;;;;eAuBG;YACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACxC,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC;YACnF,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACzF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;YAC1C;;;;;;;;;;;;eAYG;YACH,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;YAC1D;;;;;;;;;;;eAWG;YACH,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;YAClD;;;;eAIG;YACH,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;YACzD;;;;;;eAMG;YACH,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;YAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACrC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5C,CAAC;KAEH,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAEhB;;;;;;;OAOG;IACH,CAAC,6BAA6B,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACpD,CAAC,CAAC,OAAO,EAAE;QACX,CAAC,CAAC,MAAM,CAAC;YACP;;;;eAIG;YACH,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC;YACvE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACrC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACxC,oEAAoE;YACpE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACtC;;;eAGG;YACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC;;;;;eAKG;YACH,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE;YACtD;;;;;eAKG;YACH,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,QAAQ,EAAE;YACpE,uFAAuF;YACvF,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC7C;;;;;;;eAOG;YACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACnC,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAChB,gEAAgE;IAEhE,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QAC3D,CAAC,CAAC,OAAO,EAAE;QACX,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACrB,CAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;SACnD,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAEhB,CAAC,6BAA6B,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEzE,CAAC,6BAA6B,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACrD,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;SAClD,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAEhB,CAAC,6BAA6B,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QAClD,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC;YACP,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;YAC/C,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAC3C,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YAChD,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/C,4BAA4B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACpD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC1C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACpC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;YACpD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE;SAClE,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAChB,CAAC,6BAA6B,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACrD,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC;YACP,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,WAAW,CAAC;YAC/F,0HAA0H;YAC1H,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE;YACzD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YAC1C,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACrC;;;;eAIG;YACH,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SAChD,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAEhB,CAAC,6BAA6B,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAE7E;;;OAGG;IACH,CAAC,6BAA6B,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACpD,CAAC,CAAC,OAAO,EAAE;QACX,CAAC,CAAC,MAAM,CAAC;YACP,gBAAgB,EAAE,0BAA0B,CAAC,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC;YACxF,eAAe,EAAE,0BAA0B,CAAC,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC;SACzF,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAEjB;;;OAGG;IACH,CAAC,6BAA6B,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACrD,CAAC,CAAC,OAAO,EAAE;QACX,CAAC,CAAC,MAAM,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;YACjD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC;gBAChB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBACpC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC;aACnC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC;SACpC,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;CAClB,CAAC,CAAC;AAGH,6EAA6E;AAE7E,mCAAmC;AACnC,wDAAwD;AACxD,mCAAmC;AAEnC,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,mDAA2B,CAAA;IAC3B,yDAAiC,CAAA;IACjC,uDAA+B,CAAA;IAC/B,qDAA6B,CAAA;IAC7B,6CAAqB,CAAA;AACvB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAED,MAAM,CAAN,IAAY,sBAkBX;AAlBD,WAAY,sBAAsB;IAChC,qDAA2B,CAAA;IAC3B,2DAAiC,CAAA;IACjC,yDAA+B,CAAA;IAC/B,uDAA6B,CAAA;IAC7B,yDAA+B,CAAA;IAC/B;;;;;;;;;;OAUG;IACH,iEAAuC,CAAA;AACzC,CAAC,EAlBW,sBAAsB,KAAtB,sBAAsB,QAkBjC;AAED,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;IACrB,qCAAa,CAAA;AACf,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAGD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,qBAAqB,EAAE,mCAAmC,CAAC,QAAQ,EAAE;IACrE,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEH,mCAAmC;AACnC,2BAA2B;AAC3B,mCAAmC;AAEnC,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,4CAAqB,CAAA;IACrB,sCAAe,CAAA;IACf,4CAAqB,CAAA;IACrB,0CAAmB,CAAA;AACrB,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B;AAED,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,qCAAa,CAAA;IACb,uCAAe,CAAA;IACf,qCAAa,CAAA;AACf,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,sCAAW,CAAA;IACX,wCAAa,CAAA;AACf,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,qBAAqB,EAAE,mCAAmC,CAAC,QAAQ,EAAE;IACrE,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;IAC7B,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,qBAAqB,IAAI,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC;IACtG,MAAM,eAAe,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAEtF,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,QAAQ,EAAE,CAAC;QACjD,IAAI,CAAC,eAAe,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACrD,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,qGAAqG;aAC/G,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,kDAAkD;aAC5D,CAAC,CAAC;QACL,CAAC;QAED,IAAI,2BAA2B,EAAE,CAAC;YAChC,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,uBAAuB,CAAC;gBAC/B,OAAO,EAAE,iFAAiF;aAC3F,CAAC,CAAC;QACL,CAAC;QAED,OAAO;IACT,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,QAAQ,CAAC;YAChB,OAAO,EAAE,2BAA2B,MAAM,CAAC,IAAI,6BAA6B;SAC7E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,2BAA2B,EAAE,CAAC;QAChC,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,uBAAuB,CAAC;YAC/B,OAAO,EAAE,iFAAiF;SAC3F,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,qBAAqB,EAAE,mCAAmC,CAAC,QAAQ,EAAE;IACrE,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC3B,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;IAClG,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAElF,IAAI,CAAC,eAAe,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrD,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,QAAQ,CAAC;YAChB,OAAO,EAAE,6FAA6F;SACvG,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,aAAa,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC/C,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IAC3D,aAAa,EAAE,4BAA4B,CAAC,QAAQ,EAAE;IACtD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,QAAQ,EAAE;IACjE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC;QACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACnB,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,+BAA+B,CAAC,QAAQ,EAAE;IACpD,YAAY,EAAE,+BAA+B,CAAC,QAAQ,EAAE;IACxD,SAAS,EAAE,+BAA+B,CAAC,QAAQ,EAAE;IACrD,WAAW,EAAE,+BAA+B,CAAC,QAAQ,EAAE;IACvD,WAAW,EAAE,+BAA+B,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAGH,mCAAmC;AACnC,iBAAiB;AACjB,mCAAmC;AAEnC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C;;;;;OAKG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB;;;;;;OAMG;IACH,WAAW,EAAE,uBAAuB,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAN,IAAY,uBAgBX;AAhBD,WAAY,uBAAuB;IACjC;;;OAGG;IACH,4CAAiB,CAAA;IACjB;;;;;;;;OAQG;IACH,wDAA6B,CAAA;AAC/B,CAAC,EAhBW,uBAAuB,KAAvB,uBAAuB,QAgBlC;AACD,sEAAsE;AAEtE,mCAAmC;AACnC,wCAAwC;AACxC,mCAAmC;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,gBAAgB,EAAE,sBAAsB;IACxC,0BAA0B,EAAE,oCAAoC;IAChE,yBAAyB,EAAE,+BAA+B,CAAC,QAAQ,EAAE;IACrE,cAAc,EAAE,6BAA6B,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAChE,eAAe,EAAE,8BAA8B,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAClE,eAAe,EAAE,8BAA8B,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAClE,gBAAgB,EAAE,+BAA+B,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpE,aAAa,EAAE,4BAA4B,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAC9D,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC/C,eAAe,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAEjD;;;;;;OAMG;IACH,QAAQ,EAAE,uBAAuB,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAEpD;;;;;OAKG;IACH,QAAQ,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IAEhD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAqB,CAAC,QAAQ,EAAE;IAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAE7C;;;;;;;;;;;;;OAaG;IACH,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;CACpE,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;IAC7B,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;IACrD,MAAM,UAAU,GAAG,kCAAkC,CAAC,cAAc,CAAC,CAAC;IAEtE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;YAC5B,OAAO,EAAE,qCAAqC,SAAS,CAAC,YAAY,sEAAsE,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAClL,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC","sourcesContent":["\nimport { DesignSystemConfigurationSchema, HorizontalPlacement, VerticalPlacement } from '@wildo-ai/presets-components-models';\nimport {\n BrandAssetTheme,\n GuidanceFlowDefinitionSchema,\n NavigationLayoutSchema,\n RuntimeBrandAssetSchema,\n} from '@wildo-ai/saas-models';\nimport { CompositeViewDefinitionSchema } from './composite-view.schemas';\nimport type { SettingsHubConfig } from './settings-hub.frontend.schemas';\nimport { OnboardingViewDefinitionSchema } from './onboarding-view.frontend.schemas';\nimport { FrontendResourceOperationPathSchema } from '~wildo-frontend-lib/core/resources/resource-path.frontend.schemas';\nimport { ForeignKeyDisplayMode, ViewportBreakpoint } from '@wildo-ai/zod-decorators';\nimport { z } from 'zod';\nimport { FlowsActorsViewDefinitionSchema } from './flows-actors-view.schemas';\nimport { FullCustomViewDefinitionSchema } from './full-custom-view.schemas';\nimport {\n SidebarSectionSchema,\n CommandMenuCommandSchema,\n CommandMenuSearchResourceSchema,\n QuickActionItemSchema,\n HotkeyBindingSchema,\n ToolbarItemSchema,\n ControlPanelItemSchema,\n UtilityPanelItemSchema,\n MenubarHostedComponentSchema,\n SidebarHostedComponentSchema,\n MenubarLauncherItemSchema,\n ActivityBarRenderingSchema,\n ActivityBarRendering,\n AppModeDefinitionSchema,\n SidebarResponsivePolicy,\n SidebarHomeDisplayMode,\n SidebarSection,\n MenubarLauncherItem,\n SidebarItem,\n CommandMenuCommand,\n} from './launcher-items.frontend.schemas';\n\n\n// ════════════════════════════════════════════════════════════════\n// App-Level Component Types\n// `ApplicationLevelComponentType` is defined in app-level-components.frontend.schemas.ts\n// (import here only — no re-export).\n// ════════════════════════════════════════════════════════════════\n\nimport { ApplicationLevelComponentType, HotkeyEmitShortcutSchema, StatusBarItemType } from './app-level-components.frontend.schemas';\n\n\n\n// ================================\n// Enums used by App-Level Component Configuration\n// ================================\n\n/**\n * @wildo_source:part:start saas.frontend.command-menu.omnibox facet:layer:frontend facet:family:app-shell\n *\n * Behavior policy for the Cmd+K **Command Menu** — set on the\n * `[ApplicationLevelComponentType.COMMAND_MENU]` config's `policy` field.\n * Import from `@wildo-ai/saas-frontend-lib`.\n *\n * - `COMMAND_ONLY` (default) — the palette shows **only** static, declared\n * commands (module `commandMenuItems` + config `commands`). Filtering is\n * entirely client-side; the palette never issues network queries.\n * - `OMNIBOX` — static commands **plus** live, debounced RECORD search over the\n * resources declared in `searchResources`. Typing ≥2 chars queries each\n * resource's `SEARCH` operation and merges the live records into the palette;\n * selecting one navigates to its addressable `READ` view.\n *\n * `OMNIBOX` has no effect unless `searchResources` names at least one resource.\n */\nexport enum CommandBarPolicy {\n COMMAND_ONLY = \"command_only\",\n OMNIBOX = \"omnibox\",\n}\n/** @wildo_source:part:end saas.frontend.command-menu.omnibox */\n\nexport enum UserDropdownSection {\n USER_INFO = \"user_info\",\n ORG_SWITCHER = \"org_switcher\",\n /**\n * Opens the unified Settings Hub. Formerly split into `PREFERENCES` +\n * `SETTINGS`, which only ever rendered ONE block (a false distinction); the\n * hub's categories now own the user-vs-organization split properly.\n */\n SETTINGS = \"settings\",\n LOGOUT = \"logout\",\n}\n\nexport enum UserDropdownAvatarDisplay {\n AVATAR_ONLY = \"avatar_only\",\n AVATAR_NAME = \"avatar_name\",\n AVATAR_ORG = \"avatar_org\",\n FULL = \"full\",\n}\n\n// ================================\n// Quick Switcher Scope Field Configuration\n// ================================\n\n/**\n * @wildo_source:part:start saas.frontend.quick-switcher.scope-field facet:layer:frontend facet:family:app-shell\n *\n * One entry of a module's `quickSwitcherFields` contribution: the app-level\n * declaration that puts a SCOPE control (a todo list, a workspace, a status)\n * into the shell, and decides how that control and its dropdown look.\n *\n * Import from `@wildo-ai/saas-frontend-lib/companion` in a module's\n * `app-shell.module.frontend.ts`.\n */\n/**\n * How the quick switcher PRESENTS one scope field's control.\n *\n * Distinct from `optionDisplayMode`, which governs the DROPDOWN ROWS: this is\n * the closed control itself — what the user sees before opening anything. A\n * scope control lives in two very different hosts (a dense menubar cluster and a\n * sidebar rail), so the presentation is declared rather than inferred.\n */\nexport enum QuickSwitcherFieldPresentation {\n /**\n * Control alone. The field label is the control's accessible name only\n * (sr-only) in a HORIZONTAL host, and renders above the control in a VERTICAL\n * one. The framework default: it keeps a menubar row single-height.\n */\n CONTROL_ONLY = 'control-only',\n /**\n * ICON-LED: the scoped resource's own icon leads the control, before the\n * selected value. Gives the control a visual identity in a cluster of icon\n * buttons without spending a text label's width, and keeps the row height\n * unchanged. The label stays the accessible name.\n */\n ICON_LED = 'icon-led',\n /**\n * The field label renders ABOVE the control in EVERY host, horizontal ones\n * included. The control then occupies two lines, and a menubar hosting it\n * GROWS to fit (its row is centre-aligned, so shorter siblings re-centre\n * against the taller control rather than being clipped).\n */\n LABEL_ABOVE = 'label-above',\n}\n\n/**\n * Defines a scope field for the Quick Switcher.\n *\n * Each entry binds a resource field to the quick switcher UI —\n * the `resourceType` + `fieldIdentifier` pair identifies which\n * schema field provides the scope values (FK, enum, etc.).\n *\n * This replaces the decorator-based `isAppScopeField()` approach:\n * scope field behavior is now declared at the app level, not on\n * shared schemas.\n */\n\nexport const QuickSwitcherScopeFieldSchema = z.object({\n /** Resource type this scope field belongs to (e.g., `CoreResourceType.PROJECTS`) */\n resourceType: z.string(),\n /** Field name on the resource schema (e.g., `'workspaceId'`) */\n fieldIdentifier: z.string(),\n /** Sort order in the quick switcher UI (lower = higher) */\n position: z.number().optional(),\n /** Field identifier of a parent scope this field depends on — when parent changes, this resets */\n dependsOn: z.string().optional(),\n /** Persist the selected value across sessions (per organization, in localStorage). @default true */\n persist: z.boolean().optional(),\n /** Display label for the field. Falls back to camelCase-split of `fieldIdentifier`. */\n label: z.string().optional(),\n /**\n * How each option renders in the switcher's dropdown.\n *\n * Reuses the framework's existing FK-rendering vocabulary rather than\n * inventing a parallel one — the switcher's control IS a resource-reference\n * picker, and this is the same axis `.foreignKeyUI({ edit: { optionDisplayMode } })`\n * selects on a form field:\n *\n * - `LABEL` (default) — one line per option, from the resource's own display\n * label (`getFrontendResourceLabel`). The compact shape a menubar wants.\n * - `SUMMARY` — the referenced record's SUMMARY CARD per option\n * (`ResourceSummaryDisplayer` over the summary DTO), for scopes where a name\n * alone does not identify the record (status, owner, counts).\n *\n * `ID` is deliberately not offered: a raw id is never a useful thing to pick\n * a scope by.\n */\n optionDisplayMode: z.enum([ForeignKeyDisplayMode.LABEL, ForeignKeyDisplayMode.SUMMARY]).optional(),\n /**\n * How the CLOSED control presents — see {@link QuickSwitcherFieldPresentation}.\n * Defaults to `CONTROL_ONLY`.\n */\n presentation: z.enum(QuickSwitcherFieldPresentation).optional(),\n});\n\nexport type QuickSwitcherScopeField = z.infer<typeof QuickSwitcherScopeFieldSchema>;\n/** @wildo_source:part:end saas.frontend.quick-switcher.scope-field */\n\nexport const APP_SCOPE_FIELD_DEFAULT_POSITION = 999;\n\nexport interface DuplicateAppScopeResourceType {\n resourceType: string;\n fieldIdentifiers: string[];\n}\n\nexport function findDuplicateAppScopeResourceTypes(\n fields: QuickSwitcherScopeField[] | undefined,\n): DuplicateAppScopeResourceType[] {\n if (!fields || fields.length === 0) {\n return [];\n }\n\n const fieldIdentifiersByResourceType = new Map<string, string[]>();\n for (const field of fields) {\n const existing = fieldIdentifiersByResourceType.get(field.resourceType);\n if (existing) {\n existing.push(field.fieldIdentifier);\n } else {\n fieldIdentifiersByResourceType.set(field.resourceType, [field.fieldIdentifier]);\n }\n }\n\n return Array.from(fieldIdentifiersByResourceType.entries())\n .filter(([, fieldIdentifiers]) => fieldIdentifiers.length > 1)\n .map(([resourceType, fieldIdentifiers]) => ({\n resourceType,\n fieldIdentifiers,\n }));\n}\n\nconst AppScopeConfigurationSchema = z.object({\n fields: z.array(QuickSwitcherScopeFieldSchema).optional(),\n});\n\nconst StatusBarStyleValueSchema = z.union([z.string(), z.number()]);\n\nconst StatusBarItemBaseSchema = z.object({\n id: z.string(),\n label: z.string(),\n icon: z.string().optional(),\n value: z.union([z.string(), z.number()]).optional(),\n});\n\nconst StatusBarItemTextSchema = StatusBarItemBaseSchema.extend({\n type: z.literal(StatusBarItemType.TEXT),\n});\n\nconst StatusBarItemLinkSchema = StatusBarItemBaseSchema.extend({\n type: z.literal(StatusBarItemType.LINK),\n href: z.string(),\n});\n\nconst StatusBarItemButtonSchema = StatusBarItemBaseSchema.extend({\n type: z.literal(StatusBarItemType.BUTTON),\n onClick: z.custom<() => void>((value) => typeof value === 'function'),\n});\n\nexport const StatusBarItemSchema = z.discriminatedUnion('type', [\n StatusBarItemTextSchema,\n StatusBarItemLinkSchema,\n StatusBarItemButtonSchema,\n]);\n\n/**\n * @wildo_source:part:start saas.frontend.app-level-component.configuration facet:layer:frontend facet:family:app-shell\n *\n * Zod schema for per-surface app shell configuration (menubar, sidebar, command menu, hotkeys, status bar, and related chrome).\n */\nexport const AppLevelComponentConfigurationSchema = z.object({\n [ApplicationLevelComponentType.MENUBAR]: z.union([\n z.boolean().default(true),\n z.union([z.literal(\"FIXED\"), z.literal(\"OVERLAY\"), ]).default(\"FIXED\"),\n z.array(z.object({\n breakpoint: z.enum(ViewportBreakpoint).default(ViewportBreakpoint.MOBILE),\n responsivePolicy: z.union([z.literal(\"FIXED\"), z.literal(\"OVERLAY\"), ]).default(\"FIXED\"),\n })),\n z.object({\n displayPolicy: z.union([z.literal(\"FIXED\"), z.literal(\"OVERLAY\")]).default(\"FIXED\"),\n hostedComponents: z.array(MenubarHostedComponentSchema).optional(),\n items: z.array(MenubarLauncherItemSchema).optional(),\n /**\n * Render the application's identity — its mark and name — at the START of the bar as the\n * HOME affordance, the horizontal counterpart of the sidebar's `BRAND_HEADER`. Opt-in, and\n * off by default: a shell that also has a sidebar with a brand header would otherwise show\n * the identity twice. A menubar-ONLY shell (no sidebar) is what needs it — without it the\n * identity is nowhere on screen and there is no home affordance at all (#1454).\n */\n brandHeader: z.boolean().optional(),\n /** The mark variant the brand header renders; same vocabulary and same default (adaptive) as the sidebar's. */\n brandMarkTheme: z.enum(BrandAssetTheme).optional(),\n }),\n ]).default(true),\n\n [ApplicationLevelComponentType.TOOLBAR]: z.union([\n z.boolean(),\n z.object({\n placement: z.union([z.literal('top'), z.literal('bottom')]).default('top'),\n compact: z.boolean().optional(),\n /**\n * Whether a visual separator is rendered between adjacent toolbar tools.\n * Defaults to `true` in the preset/hook layer.\n */\n showSeparator: z.boolean().optional(),\n /**\n * Whether the global app-level toolbar hides entirely on mobile.\n * Contextual toolbar patterns are handled elsewhere and are not part of this\n * app-level launcher contract.\n */\n hideOnMobile: z.boolean().optional(),\n /**\n * Global toolbar tools are navigation-only launcher items.\n * Custom-component materialization is intentionally out of scope for the\n * app-level toolbar surface.\n */\n tools: z.array(ToolbarItemSchema).optional(),\n }),\n ]).default(true),\n [ApplicationLevelComponentType.HOTKEY]: z.union([\n z.boolean(),\n z.object({\n /** Navigation-style bindings resolved through `resolveHotkeyBindings`. */\n bindings: z.array(HotkeyBindingSchema).optional(),\n /**\n * Emit-only shortcuts (dispatch `FrontendEvents`). Descriptions use global i18n keys\n * (`descriptionLabellingRef` or framework defaults in `DefaultHotkeyHandler`).\n * Command menu open belongs on `[COMMAND_MENU].openShortcut`, not here.\n */\n emitShortcuts: z.array(HotkeyEmitShortcutSchema).optional(),\n }),\n ]).default(true),\n\n [ApplicationLevelComponentType.NOTIFICATION_CENTER]: z.boolean().default(true),\n\n\n [ApplicationLevelComponentType.SIDEBAR]: z.union([\n z.boolean(),\n z.object({\n placement: z.union([ z.literal(HorizontalPlacement.START), z.literal(HorizontalPlacement.END)]),\n collapsible: z.boolean().default(true),\n /**\n * Does the sidebar start COLLAPSED (the icon rail) rather than expanded?\n *\n * This is the application's STARTING POSITION, not a lock: the rail\n * collapse is a per-machine user preference persisted under\n * `LOCAL_STORAGE_KEYS.SIDEBAR_COLLAPSED`, and a stored preference always\n * wins. So this answers \"what does a visitor with no preference yet\n * see\", which nothing could express before — the hydration fell back to\n * `false`, making EXPANDED the only reachable default for every\n * application.\n *\n * Pairs with the theme's `SidebarCompactLabelMode`: `ICON_AND_LABEL`\n * renders a wrapping label under each icon in the collapsed rail, so a\n * rail-first shell stays readable rather than becoming a column of\n * unlabelled glyphs.\n *\n * OPTIONAL rather than `.default(false)` for the reason `homeDisplayMode`\n * gives one line below: a Zod default makes the key REQUIRED in the\n * inferred authoring type, forcing every preset and application config to\n * restate an opinion it does not have. The framework default (expanded —\n * the behavior every app had before this axis existed) is applied in\n * `useSidebarBehavior`, which must resolve it there regardless because a\n * sidebar authored as plain `true` never reaches this object branch.\n */\n defaultCollapsed: z.boolean().optional(),\n responsiveBreakpoint: z.enum(ViewportBreakpoint).default(ViewportBreakpoint.MOBILE),\n responsivePolicy: z.enum(SidebarResponsivePolicy).default(SidebarResponsivePolicy.BURGER),\n defaultSection: z.string().default(\"main\"),\n /**\n * How the sidebar surfaces HOME — hidden, the pinned brand header\n * (app symbol + name above the search trigger), or a \"Home\" navigation\n * row.\n *\n * OPTIONAL rather than `.default(...)` on purpose: a Zod default makes the\n * key REQUIRED in the inferred authoring type, which would force every\n * preset kit and every application config to restate a mode they have no\n * opinion about. The framework default (`NAVIGATION_ITEM` — the behavior\n * an app that declares nothing already had) is applied once, in\n * `useSidebarBehavior`, which must resolve it there regardless: a sidebar\n * authored as plain `true` never passes through this object branch at all.\n */\n homeDisplayMode: z.enum(SidebarHomeDisplayMode).optional(),\n /**\n * Pins WHICH variant of the brand mark the `BRAND_HEADER` home mode\n * renders, using the same closed `BrandAssetTheme` vocabulary the assets\n * are generated under — `MONOCHROME` for the single-colour mark,\n * `DEFAULT` to keep the colour mark even on a dark shell, `DARK`/`LIGHT`\n * to pin one side.\n *\n * OMITTED (the default) means ADAPTIVE: the mark follows the active UI\n * theme, which is what a full-colour brand normally wants. Whatever is\n * requested, `resolveBrandAsset` falls back through DEFAULT, so pinning a\n * variant the application never generated degrades instead of blanking.\n */\n brandMarkTheme: z.enum(BrandAssetTheme).optional(),\n /**\n * Per-launcher content declaration — discriminated union on `contentKind`.\n * When present, the resolution layer uses this instead of the old scan-based approach.\n * Coexists with old `sections` during migration; takes precedence when both present.\n */\n contentSections: z.array(SidebarSectionSchema).optional(),\n /**\n * Components hosted inside the sidebar via container inversion — the\n * vertical mirror of `[MENUBAR].hostedComponents`. Same resolution +\n * interaction-owner pipeline as the menubar; `placement` selects TOP/BOTTOM\n * of the sidebar column. Use this to render e.g. the command-menu trigger\n * in the sidebar in addition to (or instead of) the menubar.\n */\n hostedComponents: z.array(SidebarHostedComponentSchema).optional(),\n width: z.number().optional(),\n mobileWidth: z.number().optional(),\n collapsedWidth: z.number().optional(),\n mobileCollapsedWidth: z.number().optional(),\n }),\n\n ]).default(true),\n\n /**\n * @wildo_source:part:start saas.frontend.command-menu.omnibox facet:layer:frontend facet:family:app-shell\n *\n * Cmd+K **Command Menu** configuration. `policy` selects static-only vs\n * omnibox record search; `searchResources` declares WHICH resources the\n * omnibox queries. Static commands come from module `commandMenuItems`\n * (semantic ownership) and/or the `commands` array here.\n */\n [ApplicationLevelComponentType.COMMAND_MENU]: z.union([\n z.boolean(),\n z.object({\n /**\n * Palette behavior — see {@link CommandBarPolicy}. `COMMAND_ONLY`\n * (default) = static commands only; `OMNIBOX` = static commands + live\n * record search over `searchResources`.\n */\n policy: z.enum(CommandBarPolicy).default(CommandBarPolicy.COMMAND_ONLY),\n showRecent: z.boolean().default(true),\n maxRecentItems: z.number().default(5),\n showShortcuts: z.boolean().default(true),\n /** Category assigned to items that don't declare one explicitly. */\n defaultCategory: z.string().optional(),\n /**\n * Global shortcut that toggles the command menu (e.g. `Cmd+K`).\n * Registered by the framework so it is not duplicated from `[HOTKEY]`.\n */\n openShortcut: z.string().optional(),\n /**\n * Static command entries declared directly on the app config. Prefer\n * contributing \"main action\" commands from a module's `commandMenuItems`\n * (semantic ownership) — reserve this array for app-global commands that\n * belong to no single module.\n */\n commands: z.array(CommandMenuCommandSchema).optional(),\n /**\n * Resources whose `SEARCH` operation feeds the omnibox record-search\n * layer. Only consulted when `policy` is `CommandBarPolicy.OMNIBOX`; each\n * entry opts one resource into live, debounced record search. When absent\n * (or policy is `COMMAND_ONLY`) the palette is static-commands-only.\n */\n searchResources: z.array(CommandMenuSearchResourceSchema).optional(),\n /** Category display order. Categories not listed appear alphabetically after these. */\n categoryOrder: z.array(z.string()).optional(),\n /**\n * Desktop max-width for the palette dialog, as a Tailwind `max-width`\n * class. Authored WITH a `sm:` prefix so the palette stays near-full-width\n * on mobile and only caps from the `sm` breakpoint up (the base dialog is\n * intentionally `max-w-[calc(100%-2rem)]`). Defaults to `sm:max-w-2xl`\n * (~672px, a natural command-palette width). Must be a literal class so\n * Tailwind can extract it (e.g. `'sm:max-w-xl'`, `'sm:max-w-3xl'`).\n */\n dialogWidth: z.string().optional(),\n }),\n ]).default(true),\n /** @wildo_source:part:end saas.frontend.command-menu.omnibox */\n\n [ApplicationLevelComponentType.QUICK_ACTION_BUTTON]: z.union([\n z.boolean(),\n z.literal(\"FLOATING\"),\n z.object({\n actions: z.array(QuickActionItemSchema).optional(),\n }),\n ]).default(true),\n\n [ApplicationLevelComponentType.QUICK_SWITCHER]: z.boolean().default(true),\n\n [ApplicationLevelComponentType.CONTROL_PANEL]: z.union([\n z.boolean().default(true),\n z.object({\n items: z.array(ControlPanelItemSchema).optional(),\n }),\n ]).default(true),\n\n [ApplicationLevelComponentType.STATUS_BAR]: z.union([\n z.boolean().default(true),\n z.enum(VerticalPlacement),\n z.object({\n placement: z.enum(VerticalPlacement).optional(),\n showMemoryUsage: z.boolean().default(false),\n showNotificationCount: z.boolean().default(true),\n showConnectionStatus: z.boolean().default(true),\n showConnectionStatusOnMobile: z.boolean().optional(),\n backgroundClassName: z.string().optional(),\n textClassName: z.string().optional(),\n showBorder: z.boolean().optional(),\n height: z.number().optional(),\n statusItems: z.array(StatusBarItemSchema).optional(),\n style: z.record(z.string(), StatusBarStyleValueSchema).optional(),\n }),\n ]).default(true),\n [ApplicationLevelComponentType.USER_DROPDOWN]: z.union([\n z.boolean().default(true),\n z.object({\n avatarDisplay: z.enum(UserDropdownAvatarDisplay).default(UserDropdownAvatarDisplay.AVATAR_ONLY),\n /** Which dropdown sections to render (see `UserDropdownSection`). The `SETTINGS` entry opens the unified Settings Hub. */\n sections: z.array(z.enum(UserDropdownSection)).optional(),\n showOrgSwitcher: z.boolean().default(true),\n showLogout: z.boolean().default(true),\n /**\n * Settings-hub section refs surfaced inline in the dropdown, in order.\n * Empty or omitted renders the single \"Settings\" button. Names the\n * SETTINGS vocabulary directly — never a sidebar section ref.\n */\n settingsEntries: z.array(z.string()).optional(),\n }),\n ]).default(true),\n\n [ApplicationLevelComponentType.NAVIGATION_CONTROL]: z.boolean().default(true),\n\n /**\n * Mode selector — renders available AppModes as selectable icons.\n * Modes are declared separately via `appModes` (Macro B).\n */\n [ApplicationLevelComponentType.ACTIVITY_BAR]: z.union([\n z.boolean(),\n z.object({\n desktopRendering: ActivityBarRenderingSchema.default(ActivityBarRendering.VERTICAL_RAIL),\n mobileRendering: ActivityBarRenderingSchema.default(ActivityBarRendering.BOTTOM_TAB_BAR),\n }),\n ]).default(false),\n\n /**\n * Gmail-style right-side utility panel.\n * Each item is a custom component rendered as an icon in the panel rail.\n */\n [ApplicationLevelComponentType.UTILITY_PANEL]: z.union([\n z.boolean(),\n z.object({\n items: z.array(UtilityPanelItemSchema).optional(),\n position: z.union([\n z.literal(HorizontalPlacement.START),\n z.literal(HorizontalPlacement.END),\n ]).default(HorizontalPlacement.END),\n }),\n ]).default(false),\n});\n\nexport type AppLevelComponentConfiguration = z.infer<typeof AppLevelComponentConfigurationSchema>;\n/** @wildo_source:part:end saas.frontend.app-level-component.configuration */\n\n// ================================\n// Placement Enums (planned features — not yet consumed)\n// ================================\n\nexport enum QuickActionPlacement {\n TOP_SIDEBAR = 'top_sidebar',\n BOTTOM_SIDEBAR = 'bottom_sidebar',\n MENUBAR_RIGHT = 'menubar_right',\n MENUBAR_LEFT = 'menubar_left',\n FLOATING = 'floating',\n}\n\nexport enum QuickSwitcherPlacement {\n TOP_SIDEBAR = 'top_sidebar',\n BOTTOM_SIDEBAR = 'bottom_sidebar',\n MENUBAR_RIGHT = 'menubar_right',\n MENUBAR_LEFT = 'menubar_left',\n USER_DROPDOWN = 'user_dropdown',\n /**\n * DANGLING as of 2026-08-29: `ApplicationLevelComponentType.SETTINGS_DROPDOWN`\n * was deleted (it was an alias that rendered through USER_DROPDOWN), so this\n * member names a destination that no longer exists.\n *\n * Left in place deliberately rather than removed in that sweep. This is a\n * DIFFERENT enum — a placement vocabulary in the \"not yet consumed\" block\n * above — and a symbol-name grep conflates the two. Nothing reads it, so it is\n * inert rather than wrong; retiring it belongs to whoever designs this\n * placement vocabulary, not to the alias deletion.\n */\n SETTINGS_DROPDOWN = 'settings_dropdown',\n}\n\nexport enum MenuBarDisplayPolicy {\n COMPACT = \"compact\",\n EXPANDED = \"expanded\",\n BOTH = \"both\",\n}\n\n\nexport const HomeDefinitionSchema = z.object({\n resourceOperationPath: FrontendResourceOperationPathSchema.optional(),\n compositeViewReference: z.string().optional(),\n});\n\n// ================================\n// Error Page Configuration\n// ================================\n\nexport enum ErrorPageActionType {\n NAVIGATE = 'navigate',\n RETRY = 'retry',\n EXTERNAL = 'external',\n SUPPORT = 'support',\n}\n\nexport enum ErrorPageSupportType {\n LINK = 'link',\n EMAIL = 'email',\n CHAT = 'chat',\n}\n\nexport enum ErrorPageLeadMagnetType {\n PDF = 'pdf',\n LINK = 'link',\n}\n\nexport const ErrorPageActionSchema = z.object({\n type: z.enum(ErrorPageActionType),\n target: z.string().optional(),\n resourceOperationPath: FrontendResourceOperationPathSchema.optional(),\n compositeViewReference: z.string().optional(),\n icon: z.string().optional(),\n}).superRefine((action, ctx) => {\n const hasStructuredNavigateTarget = !!action.resourceOperationPath || !!action.compositeViewReference;\n const hasStringTarget = typeof action.target === 'string' && action.target.length > 0;\n\n if (action.type === ErrorPageActionType.NAVIGATE) {\n if (!hasStringTarget && !hasStructuredNavigateTarget) {\n ctx.addIssue({\n code: 'custom',\n path: ['target'],\n message: 'Navigate error-page actions require `target`, `resourceOperationPath`, or `compositeViewReference`.',\n });\n }\n return;\n }\n\n if (action.type === ErrorPageActionType.RETRY) {\n if (action.target !== undefined) {\n ctx.addIssue({\n code: 'custom',\n path: ['target'],\n message: 'Retry error-page actions do not accept `target`.',\n });\n }\n\n if (hasStructuredNavigateTarget) {\n ctx.addIssue({\n code: 'custom',\n path: ['resourceOperationPath'],\n message: 'Structured navigation targets are only valid for `navigate` error-page actions.',\n });\n }\n\n return;\n }\n\n if (!hasStringTarget) {\n ctx.addIssue({\n code: 'custom',\n path: ['target'],\n message: `Error-page action type \"${action.type}\" requires a string target.`,\n });\n }\n\n if (hasStructuredNavigateTarget) {\n ctx.addIssue({\n code: 'custom',\n path: ['resourceOperationPath'],\n message: 'Structured navigation targets are only valid for `navigate` error-page actions.',\n });\n }\n});\nexport type ErrorPageAction = z.infer<typeof ErrorPageActionSchema>;\n\nexport const ErrorPageFeatureGuideItemSchema = z.object({\n ref: z.string(),\n target: z.string().optional(),\n resourceOperationPath: FrontendResourceOperationPathSchema.optional(),\n compositeViewReference: z.string().optional(),\n icon: z.string().optional(),\n}).superRefine((item, ctx) => {\n const hasStructuredNavigateTarget = !!item.resourceOperationPath || !!item.compositeViewReference;\n const hasStringTarget = typeof item.target === 'string' && item.target.length > 0;\n\n if (!hasStringTarget && !hasStructuredNavigateTarget) {\n ctx.addIssue({\n code: 'custom',\n path: ['target'],\n message: 'Feature-guide items require `target`, `resourceOperationPath`, or `compositeViewReference`.',\n });\n }\n});\nexport type ErrorPageFeatureGuideItem = z.infer<typeof ErrorPageFeatureGuideItemSchema>;\n\nexport const ErrorPageSupportAccessSchema = z.object({\n type: z.enum(ErrorPageSupportType),\n target: z.string(),\n});\nexport type ErrorPageSupportAccess = z.infer<typeof ErrorPageSupportAccessSchema>;\n\nexport const ErrorPageConfigDefinitionSchema = z.object({\n primaryAction: ErrorPageActionSchema.optional(),\n secondaryActions: z.array(ErrorPageActionSchema).optional(),\n supportAccess: ErrorPageSupportAccessSchema.optional(),\n featureGuide: z.array(ErrorPageFeatureGuideItemSchema).optional(),\n leadMagnet: z.object({\n type: z.enum(ErrorPageLeadMagnetType),\n target: z.string(),\n }).optional(),\n});\nexport type ErrorPageConfigDefinition = z.infer<typeof ErrorPageConfigDefinitionSchema>;\n\nexport const ErrorPageConfigSchema = z.object({\n notFound: ErrorPageConfigDefinitionSchema.optional(),\n unauthorized: ErrorPageConfigDefinitionSchema.optional(),\n forbidden: ErrorPageConfigDefinitionSchema.optional(),\n serverError: ErrorPageConfigDefinitionSchema.optional(),\n maintenance: ErrorPageConfigDefinitionSchema.optional(),\n});\nexport type ErrorPageConfig = z.infer<typeof ErrorPageConfigSchema>;\n\n// ================================\n// Shell Identity\n// ================================\n\n/**\n * The identity a FRONTEND SURFACE presents, when that surface is not the\n * application whose backend it talks to.\n *\n * Mirrors the two things `useBrandIdentity` returns — a display name and a set\n * of brand assets — because those are exactly the inputs a shell needs to\n * present an identity, and reusing `RuntimeBrandAsset` keeps ONE asset\n * vocabulary: the same compositions, themes, purposes and the same\n * `resolveBrandAsset` fallback ladder apply whether the assets came from the\n * application's generated brand or from a tool declaring its own.\n *\n * See the `shellIdentity` field on `AppConfiguration_Frontend_Schema` for why\n * this exists and when to declare it.\n */\nexport const ShellIdentitySchema = z.object({\n /**\n * Human-readable surface name — rendered wherever the application's\n * `appIdentity.displayName` would otherwise appear. Required: an identity\n * with no name is not an identity, and the name alone is a complete answer\n * (a surface may legitimately have no mark yet).\n */\n name: z.string().min(1),\n /**\n * This surface's OWN brand assets, resolved by the same `resolveBrandAsset`\n * ladder as the application's. Omitted means \"named, unmarked\" — the shell\n * renders the name and degrades to the framework glyph rather than showing\n * the application's mark beside a different name, which is the specific\n * mismatch this whole field exists to prevent.\n */\n brandAssets: RuntimeBrandAssetSchema.array().optional(),\n});\n\nexport type ShellIdentity = z.infer<typeof ShellIdentitySchema>;\n\n/**\n * @wildo_source:part:start saas.frontend.public-shell.identity-mode facet:layer:frontend facet:family:config facet:audience:app-developer\n *\n * Whether the PUBLIC (unauthenticated) pages present the application's identity.\n *\n * Declare it beside your other frontend configuration and pass it to\n * `buildFrontendModuleConfigOverrides` in `frontend/src/modules-registry.frontend.ts`, alongside\n * `navigationLayout`, `homeDefinition` and `errorPageConfig`:\n *\n * ```ts\n * import { PublicShellIdentityMode } from '@wildo-ai/saas-frontend-lib';\n *\n * frontendConfigOverrides: buildFrontendModuleConfigOverrides({\n * // …navigationLayout, designSystemConfiguration, homeDefinition, errorPageConfig\n * publicShellIdentityMode: PublicShellIdentityMode.BRAND_HEADER,\n * }),\n * ```\n *\n * It is NOT an `ApplicationLevelComponentType` key: it does not belong in\n * `frontend/src/config/app-shell.config.ts`, and putting it there configures nothing at all. Those\n * keys describe the AUTHENTICATED shell (menubar, sidebar, status bar); the pages this governs\n * render before any of that exists.\n *\n * Login, registration, invitation acceptance, e-mail confirmation, password reset, the MFA\n * challenge and the OAuth consent screens are the first thing a person ever sees of an application,\n * and they are also the pages most likely to be reached from a link — an e-mail, a chat message, a\n * bookmark — with no surrounding context saying what they belong to. Naming the surface there is\n * conventional (Stripe, Linear, GitHub, Slack all do it) and it is the difference between \"sign in\"\n * and \"sign in to WHAT\".\n *\n * OPT-IN, and {@link HIDDEN} is the framework default, for the same reason the sidebar's home mode\n * defaults to a navigation row rather than a brand header: showing an identity assumes the surface\n * HAS one worth showing, and an application that has generated no brand yet would get its technical\n * `appName` printed over its login form. An application says when it is ready.\n *\n * Mirrors {@link SidebarHomeDisplayMode} deliberately — same question (\"how is this product's\n * identity surfaced here\"), same answer shape, so an author who has met one already knows this one.\n */\nexport enum PublicShellIdentityMode {\n /**\n * Public pages carry no identity. The framework default, and the behavior of every application\n * that does not mention this field.\n */\n HIDDEN = 'hidden',\n /**\n * The identity at the top of the public card, above the form's own heading: the mark when one\n * resolves, and the name.\n *\n * What actually renders is decided from the DATA, not from this mode — an application with no\n * generated brand shows its name alone, and a brand whose mark is a wordmark or lockup shows the\n * mark alone, because such a mark already contains the name. So this mode is a permission, never\n * a promise that a logo exists.\n */\n BRAND_HEADER = 'brand_header',\n}\n/** @wildo_source:part:end saas.frontend.public-shell.identity-mode */\n\n// ================================\n// Per-App Frontend Configuration Schema\n// ================================\n\n/**\n * Frontend configuration schema — the single source of truth for all frontend\n * configuration. Provided entirely by the app at runtime via presets + overrides.\n */\nexport const AppConfiguration_Frontend_Schema = z.object({\n navigationLayout: NavigationLayoutSchema,\n appComponentsConfiguration: AppLevelComponentConfigurationSchema,\n designSystemConfiguration: DesignSystemConfigurationSchema.optional(),\n compositeViews: CompositeViewDefinitionSchema.array().optional(),\n onboardingViews: OnboardingViewDefinitionSchema.array().optional(),\n fullCustomViews: FullCustomViewDefinitionSchema.array().optional(),\n flowsActorsViews: FlowsActorsViewDefinitionSchema.array().optional(),\n guidanceFlows: GuidanceFlowDefinitionSchema.array().optional(),\n homeDefinition: HomeDefinitionSchema.optional(),\n errorPageConfig: ErrorPageConfigSchema.optional(),\n\n /**\n * Application mode definitions — each mode represents a UI activity\n * (e.g., \"explorer\", \"search\", \"admin\"). The `ACTIVITY_BAR` renders these\n * as selectable icons; sidebar sections filter by `visibleInModes`.\n *\n * @see component-taxonomy-deep-review.md §7.3\n */\n appModes: AppModeDefinitionSchema.array().optional(),\n\n /**\n * Application scope configuration — declares scope fields that the\n * `QuickSwitcher` and `AppScopeProvider` consume.\n *\n * @see component-taxonomy-deep-review.md §7.7\n */\n appScope: AppScopeConfigurationSchema.optional(),\n\n /**\n * The application's OWN settings rail — which categories exist, and which\n * engine destinations are placed where.\n *\n * The engine ships destinations (`ENGINE_SETTINGS_DESTINATIONS`), never a\n * placed hub, so this is the only source the render path reads. An\n * application that omits it renders no settings sections: absence is how a\n * section is removed, and a framework default that reasserted itself is\n * exactly what made the rail unauthorable.\n *\n * `z.custom` rather than a mirrored Zod shape on purpose. The settings-hub\n * contract is declaration-first (`SettingsSectionTarget` is an\n * interface-based discriminated union, like `LauncherItemRef`) because these\n * are config-time descriptors the runtime resolves, not wire payloads a\n * server sends — see the header of `settings-hub.frontend.schemas.ts`. A\n * second, Zod copy of that union would be a second authority that can only\n * drift from the first. Structural checking happens where it can be\n * meaningful: `verifySettingsHubContent` runs at DEV startup over the\n * RESOLVED config and refuses a placement naming an unknown destination.\n */\n settingsHub: z.custom<SettingsHubConfig>().optional(),\n\n /**\n * The identity THIS FRONTEND presents — for a surface that is not the\n * application it talks to.\n *\n * Every brand-rendering surface (`useBrandIdentity`, and through it the\n * sidebar's `BRAND_HEADER` home mode) otherwise reads the APPLICATION's\n * identity from `appConfig.appIdentity` + `appConfig.brandAssets`. That is\n * correct for an application's own frontend and WRONG for a tool that\n * observes an application: one backend serves one application config to\n * every frontend registered against it, so a tool frontend inherits the\n * customer's name and mark.\n *\n * Measured, not assumed (2026-08-31): the dev companion answers\n * `GET /api/v1/application-config?frontendServiceName=application-creation-workbench`\n * with `appIdentity.displayName: \"Wonder CRM\"`, so the application-creation\n * workbench's brand header would have carried the managed application's\n * identity. There is exactly one config endpoint and it is the application's.\n *\n * Declared HERE — on the FRONTEND configuration — rather than on the sidebar,\n * because it is a property of the surface, not of one of its components: the\n * document title, a menubar brand and any future shell affordance ask the\n * same question and must get the same answer. `useBrandIdentity` reads this\n * with precedence over the application config and falls back to it, so an\n * ordinary application frontend that declares nothing is unaffected.\n *\n * OPTIONAL, and absence means \"I am the application's own frontend\". Do not\n * give it a default: a default identity would be a second, silent answer to\n * \"whose product is this\", which is the question this field exists to make\n * explicit.\n */\n shellIdentity: ShellIdentitySchema.optional(),\n\n /**\n * Whether the public (unauthenticated) pages present this surface's identity — see\n * {@link PublicShellIdentityMode}.\n *\n * Reads the SAME identity as every other brand surface, through `useBrandIdentity`: a frontend\n * that declares {@link AppConfiguration_Frontend.shellIdentity} presents its own name and mark,\n * and one that does not presents the application's. So a tool observing an application cannot end\n * up inviting people to sign in to the customer's brand.\n *\n * Optional rather than defaulted, and absent is read as {@link PublicShellIdentityMode.HIDDEN}.\n * A Zod default would work here, but it would put the framework's answer into every merged config\n * object, making \"this application chose not to show identity\" and \"this application never\n * considered it\" indistinguishable at the point a reader looks.\n */\n publicShellIdentityMode: z.enum(PublicShellIdentityMode).optional(),\n}).superRefine((config, ctx) => {\n const appScopeFields = config.appScope?.fields ?? [];\n const duplicates = findDuplicateAppScopeResourceTypes(appScopeFields);\n\n for (const duplicate of duplicates) {\n ctx.addIssue({\n code: 'custom',\n path: ['appScope', 'fields'],\n message: `Duplicate app-scope resourceType \"${duplicate.resourceType}\" is not allowed in appScope.fields. Conflicting fieldIdentifiers: ${duplicate.fieldIdentifiers.join(', ')}`,\n });\n }\n});\n\n\n\n// ================================\n// Type Definitions\n// ================================\n\nexport type HomeDefinition = z.infer<typeof HomeDefinitionSchema>;\nexport type AppConfiguration_Frontend = z.infer<typeof AppConfiguration_Frontend_Schema>;\n\nexport interface ShellModuleContributions {\n sidebarSections?: SidebarSection[];\n quickSwitcherFields?: QuickSwitcherScopeField[];\n menubarItems?: MenubarLauncherItem[];\n sidebarItems?: SidebarItem[];\n commandMenuItems?: CommandMenuCommand[];\n appScope?: AppConfiguration_Frontend['appScope'];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"app-configuration-frontend.schemas.js","sourceRoot":"","sources":["../../../../../src/core/config/app-configuration-frontend.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["\nimport { DesignSystemConfigurationSchema, HorizontalPlacement } from '@wildo-ai/presets-components-models';\nimport {\n BrandAssetTheme,\n GuidanceFlowDefinitionSchema,\n NavigationLayoutSchema,\n RuntimeBrandAssetSchema,\n} from '@wildo-ai/saas-models';\nimport { CompositeViewDefinitionSchema } from './composite-view.schemas';\nimport type { SettingsHubConfig } from './settings-hub.frontend.schemas';\nimport { OnboardingViewDefinitionSchema } from './onboarding-view.frontend.schemas';\nimport { FrontendResourceOperationPathSchema } from '~wildo-frontend-lib/core/resources/resource-path.frontend.schemas';\nimport { ForeignKeyDisplayMode, ViewportBreakpoint } from '@wildo-ai/zod-decorators';\nimport { z } from 'zod';\nimport { FlowsActorsViewDefinitionSchema } from './flows-actors-view.schemas';\nimport { FullCustomViewDefinitionSchema } from './full-custom-view.schemas';\nimport {\n SidebarSectionSchema,\n CommandMenuCommandSchema,\n CommandMenuSearchResourceSchema,\n QuickActionItemSchema,\n HotkeyBindingSchema,\n ToolbarItemSchema,\n ControlPanelItemSchema,\n UtilityPanelItemSchema,\n MenubarHostedComponentSchema,\n SidebarHostedComponentSchema,\n MenubarLauncherItemSchema,\n ActivityBarRenderingSchema,\n ActivityBarRendering,\n AppModeDefinitionSchema,\n SidebarResponsivePolicy,\n SidebarHomeDisplayMode,\n SidebarSection,\n MenubarLauncherItem,\n SidebarItem,\n CommandMenuCommand,\n} from './launcher-items.frontend.schemas';\n\n\n// ════════════════════════════════════════════════════════════════\n// App-Level Component Types\n// `ApplicationLevelComponentType` is defined in app-level-components.frontend.schemas.ts\n// (import here only — no re-export).\n// ════════════════════════════════════════════════════════════════\n\nimport { ApplicationLevelComponentType, HotkeyEmitShortcutSchema, StatusBarItemType, StatusBarPlacementSchema } from './app-level-components.frontend.schemas';\n\n\n\n// ================================\n// Enums used by App-Level Component Configuration\n// ================================\n\n/**\n * @wildo_source:part:start saas.frontend.command-menu.omnibox facet:layer:frontend facet:family:app-shell\n *\n * Behavior policy for the Cmd+K **Command Menu** — set on the\n * `[ApplicationLevelComponentType.COMMAND_MENU]` config's `policy` field.\n * Import from `@wildo-ai/saas-frontend-lib`.\n *\n * - `COMMAND_ONLY` (default) — the palette shows **only** static, declared\n * commands (module `commandMenuItems` + config `commands`). Filtering is\n * entirely client-side; the palette never issues network queries.\n * - `OMNIBOX` — static commands **plus** live, debounced RECORD search over the\n * resources declared in `searchResources`. Typing ≥2 chars queries each\n * resource's `SEARCH` operation and merges the live records into the palette;\n * selecting one navigates to its addressable `READ` view.\n *\n * `OMNIBOX` has no effect unless `searchResources` names at least one resource.\n */\nexport enum CommandBarPolicy {\n COMMAND_ONLY = \"command_only\",\n OMNIBOX = \"omnibox\",\n}\n/** @wildo_source:part:end saas.frontend.command-menu.omnibox */\n\nexport enum UserDropdownSection {\n USER_INFO = \"user_info\",\n ORG_SWITCHER = \"org_switcher\",\n /**\n * Opens the unified Settings Hub. Formerly split into `PREFERENCES` +\n * `SETTINGS`, which only ever rendered ONE block (a false distinction); the\n * hub's categories now own the user-vs-organization split properly.\n */\n SETTINGS = \"settings\",\n LOGOUT = \"logout\",\n}\n\nexport enum UserDropdownAvatarDisplay {\n AVATAR_ONLY = \"avatar_only\",\n AVATAR_NAME = \"avatar_name\",\n AVATAR_ORG = \"avatar_org\",\n FULL = \"full\",\n}\n\n// ================================\n// Quick Switcher Scope Field Configuration\n// ================================\n\n/**\n * @wildo_source:part:start saas.frontend.quick-switcher.scope-field facet:layer:frontend facet:family:app-shell\n *\n * One entry of a module's `quickSwitcherFields` contribution: the app-level\n * declaration that puts a SCOPE control (a todo list, a workspace, a status)\n * into the shell, and decides how that control and its dropdown look.\n *\n * Import from `@wildo-ai/saas-frontend-lib/companion` in a module's\n * `app-shell.module.frontend.ts`.\n */\n/**\n * How the quick switcher PRESENTS one scope field's control.\n *\n * Distinct from `optionDisplayMode`, which governs the DROPDOWN ROWS: this is\n * the closed control itself — what the user sees before opening anything. A\n * scope control lives in two very different hosts (a dense menubar cluster and a\n * sidebar rail), so the presentation is declared rather than inferred.\n */\nexport enum QuickSwitcherFieldPresentation {\n /**\n * Control alone. The field label is the control's accessible name only\n * (sr-only) in a HORIZONTAL host, and renders above the control in a VERTICAL\n * one. The framework default: it keeps a menubar row single-height.\n */\n CONTROL_ONLY = 'control-only',\n /**\n * ICON-LED: the scoped resource's own icon leads the control, before the\n * selected value. Gives the control a visual identity in a cluster of icon\n * buttons without spending a text label's width, and keeps the row height\n * unchanged. The label stays the accessible name.\n */\n ICON_LED = 'icon-led',\n /**\n * The field label renders ABOVE the control in EVERY host, horizontal ones\n * included. The control then occupies two lines, and a menubar hosting it\n * GROWS to fit (its row is centre-aligned, so shorter siblings re-centre\n * against the taller control rather than being clipped).\n */\n LABEL_ABOVE = 'label-above',\n}\n\n/**\n * Defines a scope field for the Quick Switcher.\n *\n * Each entry binds a resource field to the quick switcher UI —\n * the `resourceType` + `fieldIdentifier` pair identifies which\n * schema field provides the scope values (FK, enum, etc.).\n *\n * This replaces the decorator-based `isAppScopeField()` approach:\n * scope field behavior is now declared at the app level, not on\n * shared schemas.\n */\n\nexport const QuickSwitcherScopeFieldSchema = z.object({\n /** Resource type this scope field belongs to (e.g., `CoreResourceType.PROJECTS`) */\n resourceType: z.string(),\n /** Field name on the resource schema (e.g., `'workspaceId'`) */\n fieldIdentifier: z.string(),\n /** Sort order in the quick switcher UI (lower = higher) */\n position: z.number().optional(),\n /** Field identifier of a parent scope this field depends on — when parent changes, this resets */\n dependsOn: z.string().optional(),\n /** Persist the selected value across sessions (per organization, in localStorage). @default true */\n persist: z.boolean().optional(),\n /** Display label for the field. Falls back to camelCase-split of `fieldIdentifier`. */\n label: z.string().optional(),\n /**\n * How each option renders in the switcher's dropdown.\n *\n * Reuses the framework's existing FK-rendering vocabulary rather than\n * inventing a parallel one — the switcher's control IS a resource-reference\n * picker, and this is the same axis `.foreignKeyUI({ edit: { optionDisplayMode } })`\n * selects on a form field:\n *\n * - `LABEL` (default) — one line per option, from the resource's own display\n * label (`getFrontendResourceLabel`). The compact shape a menubar wants.\n * - `SUMMARY` — the referenced record's SUMMARY CARD per option\n * (`ResourceSummaryDisplayer` over the summary DTO), for scopes where a name\n * alone does not identify the record (status, owner, counts).\n *\n * `ID` is deliberately not offered: a raw id is never a useful thing to pick\n * a scope by.\n */\n optionDisplayMode: z.enum([ForeignKeyDisplayMode.LABEL, ForeignKeyDisplayMode.SUMMARY]).optional(),\n /**\n * How the CLOSED control presents — see {@link QuickSwitcherFieldPresentation}.\n * Defaults to `CONTROL_ONLY`.\n */\n presentation: z.enum(QuickSwitcherFieldPresentation).optional(),\n});\n\nexport type QuickSwitcherScopeField = z.infer<typeof QuickSwitcherScopeFieldSchema>;\n/** @wildo_source:part:end saas.frontend.quick-switcher.scope-field */\n\nexport const APP_SCOPE_FIELD_DEFAULT_POSITION = 999;\n\nexport interface DuplicateAppScopeResourceType {\n resourceType: string;\n fieldIdentifiers: string[];\n}\n\nexport function findDuplicateAppScopeResourceTypes(\n fields: QuickSwitcherScopeField[] | undefined,\n): DuplicateAppScopeResourceType[] {\n if (!fields || fields.length === 0) {\n return [];\n }\n\n const fieldIdentifiersByResourceType = new Map<string, string[]>();\n for (const field of fields) {\n const existing = fieldIdentifiersByResourceType.get(field.resourceType);\n if (existing) {\n existing.push(field.fieldIdentifier);\n } else {\n fieldIdentifiersByResourceType.set(field.resourceType, [field.fieldIdentifier]);\n }\n }\n\n return Array.from(fieldIdentifiersByResourceType.entries())\n .filter(([, fieldIdentifiers]) => fieldIdentifiers.length > 1)\n .map(([resourceType, fieldIdentifiers]) => ({\n resourceType,\n fieldIdentifiers,\n }));\n}\n\nconst AppScopeConfigurationSchema = z.object({\n fields: z.array(QuickSwitcherScopeFieldSchema).optional(),\n});\n\nconst StatusBarStyleValueSchema = z.union([z.string(), z.number()]);\n\nconst StatusBarItemBaseSchema = z.object({\n id: z.string(),\n label: z.string(),\n icon: z.string().optional(),\n value: z.union([z.string(), z.number()]).optional(),\n});\n\nconst StatusBarItemTextSchema = StatusBarItemBaseSchema.extend({\n type: z.literal(StatusBarItemType.TEXT),\n});\n\nconst StatusBarItemLinkSchema = StatusBarItemBaseSchema.extend({\n type: z.literal(StatusBarItemType.LINK),\n href: z.string(),\n});\n\nconst StatusBarItemButtonSchema = StatusBarItemBaseSchema.extend({\n type: z.literal(StatusBarItemType.BUTTON),\n onClick: z.custom<() => void>((value) => typeof value === 'function'),\n});\n\nexport const StatusBarItemSchema = z.discriminatedUnion('type', [\n StatusBarItemTextSchema,\n StatusBarItemLinkSchema,\n StatusBarItemButtonSchema,\n]);\n\n/**\n * @wildo_source:part:start saas.frontend.app-level-component.configuration facet:layer:frontend facet:family:app-shell\n *\n * Zod schema for per-surface app shell configuration (menubar, sidebar, command menu, hotkeys, status bar, and related chrome).\n */\nexport const AppLevelComponentConfigurationSchema = z.object({\n [ApplicationLevelComponentType.MENUBAR]: z.union([\n z.boolean().default(true),\n z.union([z.literal(\"FIXED\"), z.literal(\"OVERLAY\"), ]).default(\"FIXED\"),\n z.array(z.object({\n breakpoint: z.enum(ViewportBreakpoint).default(ViewportBreakpoint.MOBILE),\n responsivePolicy: z.union([z.literal(\"FIXED\"), z.literal(\"OVERLAY\"), ]).default(\"FIXED\"),\n })),\n z.object({\n displayPolicy: z.union([z.literal(\"FIXED\"), z.literal(\"OVERLAY\")]).default(\"FIXED\"),\n hostedComponents: z.array(MenubarHostedComponentSchema).optional(),\n items: z.array(MenubarLauncherItemSchema).optional(),\n /**\n * Render the application's identity — its mark and name — at the START of the bar as the\n * HOME affordance, the horizontal counterpart of the sidebar's `BRAND_HEADER`. Opt-in, and\n * off by default: a shell that also has a sidebar with a brand header would otherwise show\n * the identity twice. A menubar-ONLY shell (no sidebar) is what needs it — without it the\n * identity is nowhere on screen and there is no home affordance at all (#1454).\n */\n brandHeader: z.boolean().optional(),\n /** The mark variant the brand header renders; same vocabulary and same default (adaptive) as the sidebar's. */\n brandMarkTheme: z.enum(BrandAssetTheme).optional(),\n }),\n ]).default(true),\n\n [ApplicationLevelComponentType.TOOLBAR]: z.union([\n z.boolean(),\n z.object({\n placement: z.union([z.literal('top'), z.literal('bottom')]).default('top'),\n compact: z.boolean().optional(),\n /**\n * Whether a visual separator is rendered between adjacent toolbar tools.\n * Defaults to `true` in the preset/hook layer.\n */\n showSeparator: z.boolean().optional(),\n /**\n * Whether the global app-level toolbar hides entirely on mobile.\n * Contextual toolbar patterns are handled elsewhere and are not part of this\n * app-level launcher contract.\n */\n hideOnMobile: z.boolean().optional(),\n /**\n * Global toolbar tools are navigation-only launcher items.\n * Custom-component materialization is intentionally out of scope for the\n * app-level toolbar surface.\n */\n tools: z.array(ToolbarItemSchema).optional(),\n }),\n ]).default(true),\n [ApplicationLevelComponentType.HOTKEY]: z.union([\n z.boolean(),\n z.object({\n /** Navigation-style bindings resolved through `resolveHotkeyBindings`. */\n bindings: z.array(HotkeyBindingSchema).optional(),\n /**\n * Emit-only shortcuts (dispatch `FrontendEvents`). Descriptions use global i18n keys\n * (`descriptionLabellingRef` or framework defaults in `DefaultHotkeyHandler`).\n * Command menu open belongs on `[COMMAND_MENU].openShortcut`, not here.\n */\n emitShortcuts: z.array(HotkeyEmitShortcutSchema).optional(),\n }),\n ]).default(true),\n\n [ApplicationLevelComponentType.NOTIFICATION_CENTER]: z.boolean().default(true),\n\n\n [ApplicationLevelComponentType.SIDEBAR]: z.union([\n z.boolean(),\n z.object({\n placement: z.union([ z.literal(HorizontalPlacement.START), z.literal(HorizontalPlacement.END)]),\n collapsible: z.boolean().default(true),\n /**\n * Does the sidebar start COLLAPSED (the icon rail) rather than expanded?\n *\n * This is the application's STARTING POSITION, not a lock: the rail\n * collapse is a per-machine user preference persisted under\n * `LOCAL_STORAGE_KEYS.SIDEBAR_COLLAPSED`, and a stored preference always\n * wins. So this answers \"what does a visitor with no preference yet\n * see\", which nothing could express before — the hydration fell back to\n * `false`, making EXPANDED the only reachable default for every\n * application.\n *\n * Pairs with the theme's `SidebarCompactLabelMode`: `ICON_AND_LABEL`\n * renders a wrapping label under each icon in the collapsed rail, so a\n * rail-first shell stays readable rather than becoming a column of\n * unlabelled glyphs.\n *\n * OPTIONAL rather than `.default(false)` for the reason `homeDisplayMode`\n * gives one line below: a Zod default makes the key REQUIRED in the\n * inferred authoring type, forcing every preset and application config to\n * restate an opinion it does not have. The framework default (expanded —\n * the behavior every app had before this axis existed) is applied in\n * `useSidebarBehavior`, which must resolve it there regardless because a\n * sidebar authored as plain `true` never reaches this object branch.\n */\n defaultCollapsed: z.boolean().optional(),\n responsiveBreakpoint: z.enum(ViewportBreakpoint).default(ViewportBreakpoint.MOBILE),\n responsivePolicy: z.enum(SidebarResponsivePolicy).default(SidebarResponsivePolicy.BURGER),\n defaultSection: z.string().default(\"main\"),\n /**\n * How the sidebar surfaces HOME — hidden, the pinned brand header\n * (app symbol + name above the search trigger), or a \"Home\" navigation\n * row.\n *\n * OPTIONAL rather than `.default(...)` on purpose: a Zod default makes the\n * key REQUIRED in the inferred authoring type, which would force every\n * preset kit and every application config to restate a mode they have no\n * opinion about. The framework default (`NAVIGATION_ITEM` — the behavior\n * an app that declares nothing already had) is applied once, in\n * `useSidebarBehavior`, which must resolve it there regardless: a sidebar\n * authored as plain `true` never passes through this object branch at all.\n */\n homeDisplayMode: z.enum(SidebarHomeDisplayMode).optional(),\n /**\n * Pins WHICH variant of the brand mark the `BRAND_HEADER` home mode\n * renders, using the same closed `BrandAssetTheme` vocabulary the assets\n * are generated under — `MONOCHROME` for the single-colour mark,\n * `DEFAULT` to keep the colour mark even on a dark shell, `DARK`/`LIGHT`\n * to pin one side.\n *\n * OMITTED (the default) means ADAPTIVE: the mark follows the active UI\n * theme, which is what a full-colour brand normally wants. Whatever is\n * requested, `resolveBrandAsset` falls back through DEFAULT, so pinning a\n * variant the application never generated degrades instead of blanking.\n */\n brandMarkTheme: z.enum(BrandAssetTheme).optional(),\n /**\n * Per-launcher content declaration — discriminated union on `contentKind`.\n * When present, the resolution layer uses this instead of the old scan-based approach.\n * Coexists with old `sections` during migration; takes precedence when both present.\n */\n contentSections: z.array(SidebarSectionSchema).optional(),\n /**\n * Components hosted inside the sidebar via container inversion — the\n * vertical mirror of `[MENUBAR].hostedComponents`. Same resolution +\n * interaction-owner pipeline as the menubar; `placement` selects TOP/BOTTOM\n * of the sidebar column. Use this to render e.g. the command-menu trigger\n * in the sidebar in addition to (or instead of) the menubar.\n */\n hostedComponents: z.array(SidebarHostedComponentSchema).optional(),\n width: z.number().optional(),\n mobileWidth: z.number().optional(),\n collapsedWidth: z.number().optional(),\n mobileCollapsedWidth: z.number().optional(),\n }),\n\n ]).default(true),\n\n /**\n * @wildo_source:part:start saas.frontend.command-menu.omnibox facet:layer:frontend facet:family:app-shell\n *\n * Cmd+K **Command Menu** configuration. `policy` selects static-only vs\n * omnibox record search; `searchResources` declares WHICH resources the\n * omnibox queries. Static commands come from module `commandMenuItems`\n * (semantic ownership) and/or the `commands` array here.\n */\n [ApplicationLevelComponentType.COMMAND_MENU]: z.union([\n z.boolean(),\n z.object({\n /**\n * Palette behavior — see {@link CommandBarPolicy}. `COMMAND_ONLY`\n * (default) = static commands only; `OMNIBOX` = static commands + live\n * record search over `searchResources`.\n */\n policy: z.enum(CommandBarPolicy).default(CommandBarPolicy.COMMAND_ONLY),\n showRecent: z.boolean().default(true),\n maxRecentItems: z.number().default(5),\n showShortcuts: z.boolean().default(true),\n /** Category assigned to items that don't declare one explicitly. */\n defaultCategory: z.string().optional(),\n /**\n * Global shortcut that toggles the command menu (e.g. `Cmd+K`).\n * Registered by the framework so it is not duplicated from `[HOTKEY]`.\n */\n openShortcut: z.string().optional(),\n /**\n * Static command entries declared directly on the app config. Prefer\n * contributing \"main action\" commands from a module's `commandMenuItems`\n * (semantic ownership) — reserve this array for app-global commands that\n * belong to no single module.\n */\n commands: z.array(CommandMenuCommandSchema).optional(),\n /**\n * Resources whose `SEARCH` operation feeds the omnibox record-search\n * layer. Only consulted when `policy` is `CommandBarPolicy.OMNIBOX`; each\n * entry opts one resource into live, debounced record search. When absent\n * (or policy is `COMMAND_ONLY`) the palette is static-commands-only.\n */\n searchResources: z.array(CommandMenuSearchResourceSchema).optional(),\n /** Category display order. Categories not listed appear alphabetically after these. */\n categoryOrder: z.array(z.string()).optional(),\n /**\n * Desktop max-width for the palette dialog, as a Tailwind `max-width`\n * class. Authored WITH a `sm:` prefix so the palette stays near-full-width\n * on mobile and only caps from the `sm` breakpoint up (the base dialog is\n * intentionally `max-w-[calc(100%-2rem)]`). Defaults to `sm:max-w-2xl`\n * (~672px, a natural command-palette width). Must be a literal class so\n * Tailwind can extract it (e.g. `'sm:max-w-xl'`, `'sm:max-w-3xl'`).\n */\n dialogWidth: z.string().optional(),\n }),\n ]).default(true),\n /** @wildo_source:part:end saas.frontend.command-menu.omnibox */\n\n [ApplicationLevelComponentType.QUICK_ACTION_BUTTON]: z.union([\n z.boolean(),\n z.literal(\"FLOATING\"),\n z.object({\n actions: z.array(QuickActionItemSchema).optional(),\n }),\n ]).default(true),\n\n [ApplicationLevelComponentType.QUICK_SWITCHER]: z.boolean().default(true),\n\n [ApplicationLevelComponentType.CONTROL_PANEL]: z.union([\n z.boolean().default(true),\n z.object({\n items: z.array(ControlPanelItemSchema).optional(),\n }),\n ]).default(true),\n\n [ApplicationLevelComponentType.STATUS_BAR]: z.union([\n z.boolean().default(true),\n StatusBarPlacementSchema,\n z.object({\n placement: StatusBarPlacementSchema.optional(),\n showMemoryUsage: z.boolean().default(false),\n showNotificationCount: z.boolean().default(true),\n showConnectionStatus: z.boolean().default(true),\n showConnectionStatusOnMobile: z.boolean().optional(),\n backgroundClassName: z.string().optional(),\n textClassName: z.string().optional(),\n showBorder: z.boolean().optional(),\n height: z.number().optional(),\n statusItems: z.array(StatusBarItemSchema).optional(),\n style: z.record(z.string(), StatusBarStyleValueSchema).optional(),\n }),\n ]).default(true),\n [ApplicationLevelComponentType.USER_DROPDOWN]: z.union([\n z.boolean().default(true),\n z.object({\n avatarDisplay: z.enum(UserDropdownAvatarDisplay).default(UserDropdownAvatarDisplay.AVATAR_ONLY),\n /** Which dropdown sections to render (see `UserDropdownSection`). The `SETTINGS` entry opens the unified Settings Hub. */\n sections: z.array(z.enum(UserDropdownSection)).optional(),\n showOrgSwitcher: z.boolean().default(true),\n showLogout: z.boolean().default(true),\n /**\n * Settings-hub section refs surfaced inline in the dropdown, in order.\n * Empty or omitted renders the single \"Settings\" button. Names the\n * SETTINGS vocabulary directly — never a sidebar section ref.\n */\n settingsEntries: z.array(z.string()).optional(),\n }),\n ]).default(true),\n\n [ApplicationLevelComponentType.NAVIGATION_CONTROL]: z.boolean().default(true),\n\n /**\n * Mode selector — renders available AppModes as selectable icons.\n * Modes are declared separately via `appModes` (Macro B).\n */\n [ApplicationLevelComponentType.ACTIVITY_BAR]: z.union([\n z.boolean(),\n z.object({\n desktopRendering: ActivityBarRenderingSchema.default(ActivityBarRendering.VERTICAL_RAIL),\n mobileRendering: ActivityBarRenderingSchema.default(ActivityBarRendering.BOTTOM_TAB_BAR),\n }),\n ]).default(false),\n\n /**\n * Gmail-style right-side utility panel.\n * Each item is a custom component rendered as an icon in the panel rail.\n */\n [ApplicationLevelComponentType.UTILITY_PANEL]: z.union([\n z.boolean(),\n z.object({\n items: z.array(UtilityPanelItemSchema).optional(),\n position: z.union([\n z.literal(HorizontalPlacement.START),\n z.literal(HorizontalPlacement.END),\n ]).default(HorizontalPlacement.END),\n }),\n ]).default(false),\n});\n\nexport type AppLevelComponentConfiguration = z.infer<typeof AppLevelComponentConfigurationSchema>;\n/** @wildo_source:part:end saas.frontend.app-level-component.configuration */\n\n// ================================\n// Placement Enums (planned features — not yet consumed)\n// ================================\n\nexport enum QuickActionPlacement {\n TOP_SIDEBAR = 'top_sidebar',\n BOTTOM_SIDEBAR = 'bottom_sidebar',\n MENUBAR_RIGHT = 'menubar_right',\n MENUBAR_LEFT = 'menubar_left',\n FLOATING = 'floating',\n}\n\nexport enum QuickSwitcherPlacement {\n TOP_SIDEBAR = 'top_sidebar',\n BOTTOM_SIDEBAR = 'bottom_sidebar',\n MENUBAR_RIGHT = 'menubar_right',\n MENUBAR_LEFT = 'menubar_left',\n USER_DROPDOWN = 'user_dropdown',\n /**\n * DANGLING as of 2026-08-29: `ApplicationLevelComponentType.SETTINGS_DROPDOWN`\n * was deleted (it was an alias that rendered through USER_DROPDOWN), so this\n * member names a destination that no longer exists.\n *\n * Left in place deliberately rather than removed in that sweep. This is a\n * DIFFERENT enum — a placement vocabulary in the \"not yet consumed\" block\n * above — and a symbol-name grep conflates the two. Nothing reads it, so it is\n * inert rather than wrong; retiring it belongs to whoever designs this\n * placement vocabulary, not to the alias deletion.\n */\n SETTINGS_DROPDOWN = 'settings_dropdown',\n}\n\nexport enum MenuBarDisplayPolicy {\n COMPACT = \"compact\",\n EXPANDED = \"expanded\",\n BOTH = \"both\",\n}\n\n\nexport const HomeDefinitionSchema = z.object({\n resourceOperationPath: FrontendResourceOperationPathSchema.optional(),\n compositeViewReference: z.string().optional(),\n});\n\n// ================================\n// Error Page Configuration\n// ================================\n\nexport enum ErrorPageActionType {\n NAVIGATE = 'navigate',\n RETRY = 'retry',\n EXTERNAL = 'external',\n SUPPORT = 'support',\n}\n\nexport enum ErrorPageSupportType {\n LINK = 'link',\n EMAIL = 'email',\n CHAT = 'chat',\n}\n\nexport enum ErrorPageLeadMagnetType {\n PDF = 'pdf',\n LINK = 'link',\n}\n\nexport const ErrorPageActionSchema = z.object({\n type: z.enum(ErrorPageActionType),\n target: z.string().optional(),\n resourceOperationPath: FrontendResourceOperationPathSchema.optional(),\n compositeViewReference: z.string().optional(),\n icon: z.string().optional(),\n}).superRefine((action, ctx) => {\n const hasStructuredNavigateTarget = !!action.resourceOperationPath || !!action.compositeViewReference;\n const hasStringTarget = typeof action.target === 'string' && action.target.length > 0;\n\n if (action.type === ErrorPageActionType.NAVIGATE) {\n if (!hasStringTarget && !hasStructuredNavigateTarget) {\n ctx.addIssue({\n code: 'custom',\n path: ['target'],\n message: 'Navigate error-page actions require `target`, `resourceOperationPath`, or `compositeViewReference`.',\n });\n }\n return;\n }\n\n if (action.type === ErrorPageActionType.RETRY) {\n if (action.target !== undefined) {\n ctx.addIssue({\n code: 'custom',\n path: ['target'],\n message: 'Retry error-page actions do not accept `target`.',\n });\n }\n\n if (hasStructuredNavigateTarget) {\n ctx.addIssue({\n code: 'custom',\n path: ['resourceOperationPath'],\n message: 'Structured navigation targets are only valid for `navigate` error-page actions.',\n });\n }\n\n return;\n }\n\n if (!hasStringTarget) {\n ctx.addIssue({\n code: 'custom',\n path: ['target'],\n message: `Error-page action type \"${action.type}\" requires a string target.`,\n });\n }\n\n if (hasStructuredNavigateTarget) {\n ctx.addIssue({\n code: 'custom',\n path: ['resourceOperationPath'],\n message: 'Structured navigation targets are only valid for `navigate` error-page actions.',\n });\n }\n});\nexport type ErrorPageAction = z.infer<typeof ErrorPageActionSchema>;\n\nexport const ErrorPageFeatureGuideItemSchema = z.object({\n ref: z.string(),\n target: z.string().optional(),\n resourceOperationPath: FrontendResourceOperationPathSchema.optional(),\n compositeViewReference: z.string().optional(),\n icon: z.string().optional(),\n}).superRefine((item, ctx) => {\n const hasStructuredNavigateTarget = !!item.resourceOperationPath || !!item.compositeViewReference;\n const hasStringTarget = typeof item.target === 'string' && item.target.length > 0;\n\n if (!hasStringTarget && !hasStructuredNavigateTarget) {\n ctx.addIssue({\n code: 'custom',\n path: ['target'],\n message: 'Feature-guide items require `target`, `resourceOperationPath`, or `compositeViewReference`.',\n });\n }\n});\nexport type ErrorPageFeatureGuideItem = z.infer<typeof ErrorPageFeatureGuideItemSchema>;\n\nexport const ErrorPageSupportAccessSchema = z.object({\n type: z.enum(ErrorPageSupportType),\n target: z.string(),\n});\nexport type ErrorPageSupportAccess = z.infer<typeof ErrorPageSupportAccessSchema>;\n\nexport const ErrorPageConfigDefinitionSchema = z.object({\n primaryAction: ErrorPageActionSchema.optional(),\n secondaryActions: z.array(ErrorPageActionSchema).optional(),\n supportAccess: ErrorPageSupportAccessSchema.optional(),\n featureGuide: z.array(ErrorPageFeatureGuideItemSchema).optional(),\n leadMagnet: z.object({\n type: z.enum(ErrorPageLeadMagnetType),\n target: z.string(),\n }).optional(),\n});\nexport type ErrorPageConfigDefinition = z.infer<typeof ErrorPageConfigDefinitionSchema>;\n\nexport const ErrorPageConfigSchema = z.object({\n notFound: ErrorPageConfigDefinitionSchema.optional(),\n unauthorized: ErrorPageConfigDefinitionSchema.optional(),\n forbidden: ErrorPageConfigDefinitionSchema.optional(),\n serverError: ErrorPageConfigDefinitionSchema.optional(),\n maintenance: ErrorPageConfigDefinitionSchema.optional(),\n});\nexport type ErrorPageConfig = z.infer<typeof ErrorPageConfigSchema>;\n\n// ================================\n// Shell Identity\n// ================================\n\n/**\n * The identity a FRONTEND SURFACE presents, when that surface is not the\n * application whose backend it talks to.\n *\n * Mirrors the two things `useBrandIdentity` returns — a display name and a set\n * of brand assets — because those are exactly the inputs a shell needs to\n * present an identity, and reusing `RuntimeBrandAsset` keeps ONE asset\n * vocabulary: the same compositions, themes, purposes and the same\n * `resolveBrandAsset` fallback ladder apply whether the assets came from the\n * application's generated brand or from a tool declaring its own.\n *\n * See the `shellIdentity` field on `AppConfiguration_Frontend_Schema` for why\n * this exists and when to declare it.\n */\nexport const ShellIdentitySchema = z.object({\n /**\n * Human-readable surface name — rendered wherever the application's\n * `appIdentity.displayName` would otherwise appear. Required: an identity\n * with no name is not an identity, and the name alone is a complete answer\n * (a surface may legitimately have no mark yet).\n */\n name: z.string().min(1),\n /**\n * This surface's OWN brand assets, resolved by the same `resolveBrandAsset`\n * ladder as the application's. Omitted means \"named, unmarked\" — the shell\n * renders the name and degrades to the framework glyph rather than showing\n * the application's mark beside a different name, which is the specific\n * mismatch this whole field exists to prevent.\n */\n brandAssets: RuntimeBrandAssetSchema.array().optional(),\n});\n\nexport type ShellIdentity = z.infer<typeof ShellIdentitySchema>;\n\n/**\n * @wildo_source:part:start saas.frontend.public-shell.identity-mode facet:layer:frontend facet:family:config facet:audience:app-developer\n *\n * Whether the PUBLIC (unauthenticated) pages present the application's identity.\n *\n * Declare it beside your other frontend configuration and pass it to\n * `buildFrontendModuleConfigOverrides` in `frontend/src/modules-registry.frontend.ts`, alongside\n * `navigationLayout`, `homeDefinition` and `errorPageConfig`:\n *\n * ```ts\n * import { PublicShellIdentityMode } from '@wildo-ai/saas-frontend-lib';\n *\n * frontendConfigOverrides: buildFrontendModuleConfigOverrides({\n * // …navigationLayout, designSystemConfiguration, homeDefinition, errorPageConfig\n * publicShellIdentityMode: PublicShellIdentityMode.BRAND_HEADER,\n * }),\n * ```\n *\n * It is NOT an `ApplicationLevelComponentType` key: it does not belong in\n * `frontend/src/config/app-shell.config.ts`, and putting it there configures nothing at all. Those\n * keys describe the AUTHENTICATED shell (menubar, sidebar, status bar); the pages this governs\n * render before any of that exists.\n *\n * Login, registration, invitation acceptance, e-mail confirmation, password reset, the MFA\n * challenge and the OAuth consent screens are the first thing a person ever sees of an application,\n * and they are also the pages most likely to be reached from a link — an e-mail, a chat message, a\n * bookmark — with no surrounding context saying what they belong to. Naming the surface there is\n * conventional (Stripe, Linear, GitHub, Slack all do it) and it is the difference between \"sign in\"\n * and \"sign in to WHAT\".\n *\n * OPT-IN, and {@link HIDDEN} is the framework default, for the same reason the sidebar's home mode\n * defaults to a navigation row rather than a brand header: showing an identity assumes the surface\n * HAS one worth showing, and an application that has generated no brand yet would get its technical\n * `appName` printed over its login form. An application says when it is ready.\n *\n * Mirrors {@link SidebarHomeDisplayMode} deliberately — same question (\"how is this product's\n * identity surfaced here\"), same answer shape, so an author who has met one already knows this one.\n */\nexport enum PublicShellIdentityMode {\n /**\n * Public pages carry no identity. The framework default, and the behavior of every application\n * that does not mention this field.\n */\n HIDDEN = 'hidden',\n /**\n * The identity at the top of the public card, above the form's own heading: the mark when one\n * resolves, and the name.\n *\n * What actually renders is decided from the DATA, not from this mode — an application with no\n * generated brand shows its name alone, and a brand whose mark is a wordmark or lockup shows the\n * mark alone, because such a mark already contains the name. So this mode is a permission, never\n * a promise that a logo exists.\n */\n BRAND_HEADER = 'brand_header',\n}\n/** @wildo_source:part:end saas.frontend.public-shell.identity-mode */\n\n// ================================\n// Per-App Frontend Configuration Schema\n// ================================\n\n/**\n * Frontend configuration schema — the single source of truth for all frontend\n * configuration. Provided entirely by the app at runtime via presets + overrides.\n */\nexport const AppConfiguration_Frontend_Schema = z.object({\n navigationLayout: NavigationLayoutSchema,\n appComponentsConfiguration: AppLevelComponentConfigurationSchema,\n designSystemConfiguration: DesignSystemConfigurationSchema.optional(),\n compositeViews: CompositeViewDefinitionSchema.array().optional(),\n onboardingViews: OnboardingViewDefinitionSchema.array().optional(),\n fullCustomViews: FullCustomViewDefinitionSchema.array().optional(),\n flowsActorsViews: FlowsActorsViewDefinitionSchema.array().optional(),\n guidanceFlows: GuidanceFlowDefinitionSchema.array().optional(),\n homeDefinition: HomeDefinitionSchema.optional(),\n errorPageConfig: ErrorPageConfigSchema.optional(),\n\n /**\n * Application mode definitions — each mode represents a UI activity\n * (e.g., \"explorer\", \"search\", \"admin\"). The `ACTIVITY_BAR` renders these\n * as selectable icons; sidebar sections filter by `visibleInModes`.\n *\n * @see component-taxonomy-deep-review.md §7.3\n */\n appModes: AppModeDefinitionSchema.array().optional(),\n\n /**\n * Application scope configuration — declares scope fields that the\n * `QuickSwitcher` and `AppScopeProvider` consume.\n *\n * @see component-taxonomy-deep-review.md §7.7\n */\n appScope: AppScopeConfigurationSchema.optional(),\n\n /**\n * The application's OWN settings rail — which categories exist, and which\n * engine destinations are placed where.\n *\n * The engine ships destinations (`ENGINE_SETTINGS_DESTINATIONS`), never a\n * placed hub, so this is the only source the render path reads. An\n * application that omits it renders no settings sections: absence is how a\n * section is removed, and a framework default that reasserted itself is\n * exactly what made the rail unauthorable.\n *\n * `z.custom` rather than a mirrored Zod shape on purpose. The settings-hub\n * contract is declaration-first (`SettingsSectionTarget` is an\n * interface-based discriminated union, like `LauncherItemRef`) because these\n * are config-time descriptors the runtime resolves, not wire payloads a\n * server sends — see the header of `settings-hub.frontend.schemas.ts`. A\n * second, Zod copy of that union would be a second authority that can only\n * drift from the first. Structural checking happens where it can be\n * meaningful: `verifySettingsHubContent` runs at DEV startup over the\n * RESOLVED config and refuses a placement naming an unknown destination.\n */\n settingsHub: z.custom<SettingsHubConfig>().optional(),\n\n /**\n * The identity THIS FRONTEND presents — for a surface that is not the\n * application it talks to.\n *\n * Every brand-rendering surface (`useBrandIdentity`, and through it the\n * sidebar's `BRAND_HEADER` home mode) otherwise reads the APPLICATION's\n * identity from `appConfig.appIdentity` + `appConfig.brandAssets`. That is\n * correct for an application's own frontend and WRONG for a tool that\n * observes an application: one backend serves one application config to\n * every frontend registered against it, so a tool frontend inherits the\n * customer's name and mark.\n *\n * Measured, not assumed (2026-08-31): the dev companion answers\n * `GET /api/v1/application-config?frontendServiceName=application-creation-workbench`\n * with `appIdentity.displayName: \"Wonder CRM\"`, so the application-creation\n * workbench's brand header would have carried the managed application's\n * identity. There is exactly one config endpoint and it is the application's.\n *\n * Declared HERE — on the FRONTEND configuration — rather than on the sidebar,\n * because it is a property of the surface, not of one of its components: the\n * document title, a menubar brand and any future shell affordance ask the\n * same question and must get the same answer. `useBrandIdentity` reads this\n * with precedence over the application config and falls back to it, so an\n * ordinary application frontend that declares nothing is unaffected.\n *\n * OPTIONAL, and absence means \"I am the application's own frontend\". Do not\n * give it a default: a default identity would be a second, silent answer to\n * \"whose product is this\", which is the question this field exists to make\n * explicit.\n */\n shellIdentity: ShellIdentitySchema.optional(),\n\n /**\n * Whether the public (unauthenticated) pages present this surface's identity — see\n * {@link PublicShellIdentityMode}.\n *\n * Reads the SAME identity as every other brand surface, through `useBrandIdentity`: a frontend\n * that declares {@link AppConfiguration_Frontend.shellIdentity} presents its own name and mark,\n * and one that does not presents the application's. So a tool observing an application cannot end\n * up inviting people to sign in to the customer's brand.\n *\n * Optional rather than defaulted, and absent is read as {@link PublicShellIdentityMode.HIDDEN}.\n * A Zod default would work here, but it would put the framework's answer into every merged config\n * object, making \"this application chose not to show identity\" and \"this application never\n * considered it\" indistinguishable at the point a reader looks.\n */\n publicShellIdentityMode: z.enum(PublicShellIdentityMode).optional(),\n}).superRefine((config, ctx) => {\n const appScopeFields = config.appScope?.fields ?? [];\n const duplicates = findDuplicateAppScopeResourceTypes(appScopeFields);\n\n for (const duplicate of duplicates) {\n ctx.addIssue({\n code: 'custom',\n path: ['appScope', 'fields'],\n message: `Duplicate app-scope resourceType \"${duplicate.resourceType}\" is not allowed in appScope.fields. Conflicting fieldIdentifiers: ${duplicate.fieldIdentifiers.join(', ')}`,\n });\n }\n});\n\n\n\n// ================================\n// Type Definitions\n// ================================\n\nexport type HomeDefinition = z.infer<typeof HomeDefinitionSchema>;\nexport type AppConfiguration_Frontend = z.infer<typeof AppConfiguration_Frontend_Schema>;\n\nexport interface ShellModuleContributions {\n sidebarSections?: SidebarSection[];\n quickSwitcherFields?: QuickSwitcherScopeField[];\n menubarItems?: MenubarLauncherItem[];\n sidebarItems?: SidebarItem[];\n commandMenuItems?: CommandMenuCommand[];\n appScope?: AppConfiguration_Frontend['appScope'];\n}\n"]}
|
|
@@ -11,6 +11,23 @@
|
|
|
11
11
|
* Consumers import from this module or from `@wildo-ai/saas-frontend-lib`.
|
|
12
12
|
*/
|
|
13
13
|
import { z } from 'zod';
|
|
14
|
+
import { VerticalPlacement } from '@wildo-ai/presets-components-models';
|
|
15
|
+
/**
|
|
16
|
+
* The edges a status bar can occupy — the ONE list the configuration schemas, the `StatusBarPlacement` type and
|
|
17
|
+
* `isStatusBarPlacement` all derive from. Not `VerticalPlacement.MIDDLE`: no shell layout places a status bar in the
|
|
18
|
+
* middle (the default container and every 3D layout place it at the top or the bottom), so a middle placement used
|
|
19
|
+
* to render the status bar nowhere (#2037). The sidebar's and the utility panel's placements are narrowed the same way.
|
|
20
|
+
*/
|
|
21
|
+
export declare const STATUS_BAR_PLACEMENTS: readonly [VerticalPlacement.TOP, VerticalPlacement.BOTTOM];
|
|
22
|
+
/** A status-bar placement a shell layout can honour. */
|
|
23
|
+
export type StatusBarPlacement = (typeof STATUS_BAR_PLACEMENTS)[number];
|
|
24
|
+
/** The configuration schema of a status-bar placement: exactly {@link STATUS_BAR_PLACEMENTS}. */
|
|
25
|
+
export declare const StatusBarPlacementSchema: z.ZodEnum<{
|
|
26
|
+
top: VerticalPlacement.TOP;
|
|
27
|
+
bottom: VerticalPlacement.BOTTOM;
|
|
28
|
+
}>;
|
|
29
|
+
/** Whether a value is a status-bar placement a layout can honour. */
|
|
30
|
+
export declare function isStatusBarPlacement(value: unknown): value is StatusBarPlacement;
|
|
14
31
|
/**
|
|
15
32
|
* @wildo_source:part:start saas.frontend.app-level-component.vocabulary facet:layer:frontend facet:family:app-shell
|
|
16
33
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-level-components.frontend.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/core/config/app-level-components.frontend.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"app-level-components.frontend.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/core/config/app-level-components.frontend.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAMxE;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,4DAA6D,CAAC;AAEhG,wDAAwD;AACxD,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,iGAAiG;AACjG,eAAO,MAAM,wBAAwB;;;EAAgC,CAAC;AAEtE,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEhF;AAMD;;;;GAIG;AACH,oBAAY,6BAA6B;IACvC,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,mBAAmB,wBAAwB;IAE3C,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,mBAAmB,wBAAwB;IAC3C,cAAc,mBAAmB;IACjC;;;;;;;;;;;;;OAaG;IACH,aAAa,kBAAkB;IAE/B,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B;;;;OAIG;IACH,kBAAkB,uBAAuB;IACzC;;;;;;;;;;OAUG;IACH,YAAY,iBAAiB;IAC7B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,kBAAkB;CAChC;AAMD,qCAAqC;AACrC,oBAAY,wBAAwB;IAClC,MAAM,WAAW;IACjB,iBAAiB,sBAAsB;CACxC;AAED,0CAA0C;AAC1C,oBAAY,wBAAwB;IAClC,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,UAAU,eAAe;CAC1B;AAED,yCAAyC;AACzC,oBAAY,wBAAwB;IAClC,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,6DAA6D;AAC7D,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,SAAS,cAAc;CACxB;AAED,qDAAqD;AACrD,oBAAY,WAAW;IACrB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,6DAA6D;AAC7D,oBAAY,iBAAiB;IAC3B,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAMD,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,EAAG,EAAW,CAAC;AAE7C,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;GAMG;AACH,oBAAY,uBAAuB;IACjC,qBAAqB,0BAA0B;IAC/C,yBAAyB,8BAA8B;IACvD,0BAA0B,+BAA+B;IACzD,qBAAqB,0BAA0B;CAChD;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,uBAAuB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,wBAAwB;;;;;;;;iBAQnC,CAAC;AACH,0EAA0E"}
|
|
@@ -11,6 +11,23 @@
|
|
|
11
11
|
* Consumers import from this module or from `@wildo-ai/saas-frontend-lib`.
|
|
12
12
|
*/
|
|
13
13
|
import { z } from 'zod';
|
|
14
|
+
import { VerticalPlacement } from '@wildo-ai/presets-components-models';
|
|
15
|
+
// ════════════════════════════════════════════════════════════════
|
|
16
|
+
// Status-bar placement (canonical definition)
|
|
17
|
+
// ════════════════════════════════════════════════════════════════
|
|
18
|
+
/**
|
|
19
|
+
* The edges a status bar can occupy — the ONE list the configuration schemas, the `StatusBarPlacement` type and
|
|
20
|
+
* `isStatusBarPlacement` all derive from. Not `VerticalPlacement.MIDDLE`: no shell layout places a status bar in the
|
|
21
|
+
* middle (the default container and every 3D layout place it at the top or the bottom), so a middle placement used
|
|
22
|
+
* to render the status bar nowhere (#2037). The sidebar's and the utility panel's placements are narrowed the same way.
|
|
23
|
+
*/
|
|
24
|
+
export const STATUS_BAR_PLACEMENTS = [VerticalPlacement.TOP, VerticalPlacement.BOTTOM];
|
|
25
|
+
/** The configuration schema of a status-bar placement: exactly {@link STATUS_BAR_PLACEMENTS}. */
|
|
26
|
+
export const StatusBarPlacementSchema = z.enum(STATUS_BAR_PLACEMENTS);
|
|
27
|
+
/** Whether a value is a status-bar placement a layout can honour. */
|
|
28
|
+
export function isStatusBarPlacement(value) {
|
|
29
|
+
return STATUS_BAR_PLACEMENTS.includes(value);
|
|
30
|
+
}
|
|
14
31
|
// ════════════════════════════════════════════════════════════════
|
|
15
32
|
// App-Level Component Types (canonical definition)
|
|
16
33
|
// ════════════════════════════════════════════════════════════════
|