@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
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { FrontendComponentType, LabelKind, registerComponentLabels, } from '@wildo-ai/presets-components-models';
|
|
2
|
+
// Companion-only label metadata for the override-rate settings panel (#1599): keys + kind + per-key purpose.
|
|
3
|
+
// Statically scanned by the dev companion to generate the `components.APP_LAYOUTS_AGENT_WORK_OVERRIDE_RATE_SETTINGS.*`
|
|
4
|
+
// bundle; NOT imported at runtime, so it never ships in the browser bundle. Keep in lock-step with the keys the
|
|
5
|
+
// component reads via `tComponent(APP_LAYOUTS_AGENT_WORK_OVERRIDE_RATE_SETTINGS, ...)`.
|
|
6
|
+
//
|
|
7
|
+
// The grouping and window words are literal refs, one per member of `AgentWorkDecisionGrouping` and of
|
|
8
|
+
// `AgentWorkOverrideRateWindow` (the scan reads literals). Nothing checks yet that they stay total over both
|
|
9
|
+
// vocabularies: the panel's unit test that would is owed (#1599), so a member added to either must add its word here.
|
|
10
|
+
export const AppLayoutsAgentWorkOverrideRateSettingsLabels = [
|
|
11
|
+
{ ref: 'pageTitle', kind: LabelKind.HEADING, purpose: 'Heading of the panel showing how often the organization’s experts override its AI agents’ proposals' },
|
|
12
|
+
{ ref: 'pageDescription', kind: LabelKind.DESCRIPTION, purpose: 'One sentence under the heading: the rate counts proposals an expert modified or rejected, among those an expert decided; proposals nobody decided (expired, withdrawn) are counted apart and never enter it' },
|
|
13
|
+
{ ref: 'groupBy_agent', kind: LabelKind.LABEL, purpose: 'Tab and column heading: the rate per AI agent' },
|
|
14
|
+
{ ref: 'groupBy_tool', kind: LabelKind.LABEL, purpose: 'Tab and column heading: the rate per tool the agent proposed to use' },
|
|
15
|
+
{ ref: 'groupBy_case', kind: LabelKind.LABEL, purpose: 'Tab and column heading: the rate per case (the record the work was about, e.g. a matter or a file)' },
|
|
16
|
+
{ ref: 'groupBy_decider', kind: LabelKind.LABEL, purpose: 'Tab and column heading: the rate per expert who decided' },
|
|
17
|
+
{ ref: 'windowLabel', kind: LabelKind.LABEL, purpose: 'Accessible name of the group of buttons choosing the time window' },
|
|
18
|
+
{ ref: 'window_30', kind: LabelKind.BUTTON, purpose: 'Button: show the last 30 days' },
|
|
19
|
+
{ ref: 'window_90', kind: LabelKind.BUTTON, purpose: 'Button: show the last 90 days' },
|
|
20
|
+
{ ref: 'window_365', kind: LabelKind.BUTTON, purpose: 'Button: show the last 365 days' },
|
|
21
|
+
{ ref: 'columnAccepted', kind: LabelKind.LABEL, purpose: 'Column heading: proposals the expert accepted as they were' },
|
|
22
|
+
{ ref: 'columnAcceptedWithModifications', kind: LabelKind.LABEL, purpose: 'Column heading: proposals the expert accepted after changing them' },
|
|
23
|
+
{ ref: 'columnRejected', kind: LabelKind.LABEL, purpose: 'Column heading: proposals the expert rejected' },
|
|
24
|
+
{ ref: 'columnNotDecided', kind: LabelKind.LABEL, purpose: 'Column heading: proposals nobody decided (expired, withdrawn, or the requester lost authority); never part of the rate' },
|
|
25
|
+
{ ref: 'columnOverrideRate', kind: LabelKind.LABEL, purpose: 'Column heading: the share of decided proposals the expert modified or rejected' },
|
|
26
|
+
{ ref: 'nothingDecided', kind: LabelKind.MESSAGE, purpose: 'Shown in place of the rate when nothing was decided in the group: there is no rate, which is not the same as 0 %' },
|
|
27
|
+
{ ref: 'unattributed', kind: LabelKind.LABEL, purpose: 'Shown for a group whose records carry no value for the grouping (for example a decision with no tool)' },
|
|
28
|
+
{ ref: 'loading', kind: LabelKind.MESSAGE, purpose: 'Shown while the override rate is being computed' },
|
|
29
|
+
{ ref: 'noOrganization', kind: LabelKind.MESSAGE, purpose: 'Shown when no organization is selected, so there is no override rate to show. Name the rate with the same term as the panel heading and the rate column' },
|
|
30
|
+
{ ref: 'empty', kind: LabelKind.MESSAGE, purpose: 'Shown when no expert decision on an agent’s proposal was recorded in the window' },
|
|
31
|
+
{ ref: 'errorGeneric', kind: LabelKind.MESSAGE, purpose: 'Generic error shown when the override rate could not be loaded' },
|
|
32
|
+
];
|
|
33
|
+
registerComponentLabels(FrontendComponentType.APP_LAYOUTS_AGENT_WORK_OVERRIDE_RATE_SETTINGS, AppLayoutsAgentWorkOverrideRateSettingsLabels);
|
|
34
|
+
//# sourceMappingURL=AppPage_AgentWorkOverrideRateSettings.labels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppPage_AgentWorkOverrideRateSettings.labels.js","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n FrontendComponentType,\n LabelKind,\n type LabellingUnitaryDef,\n registerComponentLabels,\n} from '@wildo-ai/presets-components-models';\n\n// Companion-only label metadata for the override-rate settings panel (#1599): keys + kind + per-key purpose.\n// Statically scanned by the dev companion to generate the `components.APP_LAYOUTS_AGENT_WORK_OVERRIDE_RATE_SETTINGS.*`\n// bundle; NOT imported at runtime, so it never ships in the browser bundle. Keep in lock-step with the keys the\n// component reads via `tComponent(APP_LAYOUTS_AGENT_WORK_OVERRIDE_RATE_SETTINGS, ...)`.\n//\n// The grouping and window words are literal refs, one per member of `AgentWorkDecisionGrouping` and of\n// `AgentWorkOverrideRateWindow` (the scan reads literals). Nothing checks yet that they stay total over both\n// vocabularies: the panel's unit test that would is owed (#1599), so a member added to either must add its word here.\nexport const AppLayoutsAgentWorkOverrideRateSettingsLabels: LabellingUnitaryDef[] = [\n { ref: 'pageTitle', kind: LabelKind.HEADING, purpose: 'Heading of the panel showing how often the organization’s experts override its AI agents’ proposals' },\n { ref: 'pageDescription', kind: LabelKind.DESCRIPTION, purpose: 'One sentence under the heading: the rate counts proposals an expert modified or rejected, among those an expert decided; proposals nobody decided (expired, withdrawn) are counted apart and never enter it' },\n { ref: 'groupBy_agent', kind: LabelKind.LABEL, purpose: 'Tab and column heading: the rate per AI agent' },\n { ref: 'groupBy_tool', kind: LabelKind.LABEL, purpose: 'Tab and column heading: the rate per tool the agent proposed to use' },\n { ref: 'groupBy_case', kind: LabelKind.LABEL, purpose: 'Tab and column heading: the rate per case (the record the work was about, e.g. a matter or a file)' },\n { ref: 'groupBy_decider', kind: LabelKind.LABEL, purpose: 'Tab and column heading: the rate per expert who decided' },\n { ref: 'windowLabel', kind: LabelKind.LABEL, purpose: 'Accessible name of the group of buttons choosing the time window' },\n { ref: 'window_30', kind: LabelKind.BUTTON, purpose: 'Button: show the last 30 days' },\n { ref: 'window_90', kind: LabelKind.BUTTON, purpose: 'Button: show the last 90 days' },\n { ref: 'window_365', kind: LabelKind.BUTTON, purpose: 'Button: show the last 365 days' },\n { ref: 'columnAccepted', kind: LabelKind.LABEL, purpose: 'Column heading: proposals the expert accepted as they were' },\n { ref: 'columnAcceptedWithModifications', kind: LabelKind.LABEL, purpose: 'Column heading: proposals the expert accepted after changing them' },\n { ref: 'columnRejected', kind: LabelKind.LABEL, purpose: 'Column heading: proposals the expert rejected' },\n { ref: 'columnNotDecided', kind: LabelKind.LABEL, purpose: 'Column heading: proposals nobody decided (expired, withdrawn, or the requester lost authority); never part of the rate' },\n { ref: 'columnOverrideRate', kind: LabelKind.LABEL, purpose: 'Column heading: the share of decided proposals the expert modified or rejected' },\n { ref: 'nothingDecided', kind: LabelKind.MESSAGE, purpose: 'Shown in place of the rate when nothing was decided in the group: there is no rate, which is not the same as 0 %' },\n { ref: 'unattributed', kind: LabelKind.LABEL, purpose: 'Shown for a group whose records carry no value for the grouping (for example a decision with no tool)' },\n { ref: 'loading', kind: LabelKind.MESSAGE, purpose: 'Shown while the override rate is being computed' },\n { ref: 'noOrganization', kind: LabelKind.MESSAGE, purpose: 'Shown when no organization is selected, so there is no override rate to show. Name the rate with the same term as the panel heading and the rate column' },\n { ref: 'empty', kind: LabelKind.MESSAGE, purpose: 'Shown when no expert decision on an agent’s proposal was recorded in the window' },\n { ref: 'errorGeneric', kind: LabelKind.MESSAGE, purpose: 'Generic error shown when the override rate could not be loaded' },\n];\n\nregisterComponentLabels(FrontendComponentType.APP_LAYOUTS_AGENT_WORK_OVERRIDE_RATE_SETTINGS, AppLayoutsAgentWorkOverrideRateSettingsLabels);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppPage_AppearanceSettings.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_AppearanceSettings.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AppPage_AppearanceSettings.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_AppearanceSettings.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAA+B,MAAM,OAAO,CAAC;AAsIpD,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAqE9C,CAAC"}
|
|
@@ -37,8 +37,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
37
37
|
import { useCallback, useMemo } from 'react';
|
|
38
38
|
import { DesignSystemToken, DesignTokenRenderMode, FrontendComponentType, getDesignTokenValue, } from '@wildo-ai/presets-components-models';
|
|
39
39
|
import { UserTheme } from '@wildo-ai/saas-models';
|
|
40
|
-
import { Card, CardContent } from '../../components/sections/card.js';
|
|
41
|
-
import { Text } from '../../components/typography/text.js';
|
|
42
40
|
import { Label } from '../../components/typography/label.js';
|
|
43
41
|
import { RadioGroupRoot, RadioGroupItem } from '../../components/form/controls/enum/radio.js';
|
|
44
42
|
import { cn } from '../../core/ui/cn.js';
|
|
@@ -117,14 +115,14 @@ export const AppPage_AppearanceSettings = () => {
|
|
|
117
115
|
// pipeline, so there are deliberately no inline fallback strings here.
|
|
118
116
|
if (!isReady)
|
|
119
117
|
return null;
|
|
120
|
-
return (_jsxs("div", { className: "flex flex-col gap-section", children: [
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
118
|
+
return (_jsxs("div", { className: "flex flex-col gap-section", children: [_jsx("h3", { className: "text-base font-semibold tracking-tight", children: t('pageTitle') }), _jsx(RadioGroupRoot, { value: themePreference, onValueChange: (value) => selectTheme(value), "aria-label": t('themeHeading'), className: "grid-cols-1 gap-item sm:grid-cols-3", children: THEME_OPTIONS.map((option) => {
|
|
119
|
+
const optionId = `appearance-theme-${option}`;
|
|
120
|
+
const isSelected = themePreference === option;
|
|
121
|
+
return (_jsxs(Label, { htmlFor: optionId, className: cn('flex cursor-pointer flex-col gap-element rounded-lg border p-card-sm font-normal transition-colors',
|
|
122
|
+
// The whole tile is the target, and selection is carried by
|
|
123
|
+
// the tile itself as well as by the radio — a 12px dot is not
|
|
124
|
+
// enough signal next to a picture.
|
|
125
|
+
isSelected ? 'border-primary ring-1 ring-primary' : 'hover:border-primary/40'), children: [_jsx(ThemePreview, { option: option, light: lightPalette, dark: darkPalette }), _jsxs("div", { className: "flex items-center gap-element-xs", children: [_jsx(RadioGroupItem, { id: optionId, value: option }), _jsx("span", { className: "text-sm font-medium", children: t(THEME_OPTION_LABEL_KEYS[option]) })] })] }, option));
|
|
126
|
+
}) })] }));
|
|
129
127
|
};
|
|
130
128
|
//# sourceMappingURL=AppPage_AppearanceSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppPage_AppearanceSettings.js","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_AppearanceSettings.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * AppPage_AppearanceSettings — the Settings Hub \"Appearance\" panel.\n *\n * A bespoke `ENGINE_PANEL` (not a resource surface) that surfaces the app's\n * theme system: a Light / Dark / System selector. It reads the chosen preference\n * from `useThemePreferenceControl().themePreference` and commits changes through\n * that hook's `selectTheme`, which both applies the theme locally AND durably\n * records it on the user's preferences — see `useThemePreferenceControl` for why\n * the local half alone was actively harmful.\n *\n * ## Each option shows the theme, it does not describe it\n *\n * Theme is the one setting whose control can render its own result, and every\n * mature product does exactly that (VS Code, GitHub, Notion, Linear). The\n * previous version was three text radios with descriptions that restated their\n * own labels — \"Light / Always use the light theme.\" — so the reader learned\n * nothing a preview shows instantly, and had to commit to a look sight-unseen.\n *\n * The tiles are painted from the app's OWN design tokens resolved per mode (see\n * `resolveModePalette`), not from hardcoded greys, so an app that retunes its\n * palette retunes its previews. `System` shows both halves because that is\n * literally what it means.\n *\n * i18n follows the framework convention (same shape as `AppPage_SecuritySettings`):\n * `useI18n({ component })` requests this component's label namespace, the panel\n * gates rendering on `isReady` so it never flashes raw key paths, and a thin\n * `t(key)` reads each label. Label copy is owned entirely by the labelling\n * pipeline (declared in the sibling `.labels.ts`) — the component carries NO\n * hardcoded fallback strings.\n *\n * The selector reuses the framework radio control (`RadioGroupRoot` /\n * `RadioGroupItem`) + typography `Label` rather than a hand-rolled\n * `role=\"radio\"` group, so `radiogroup`/`radio` roles, roving focus,\n * `aria-checked`, and the selection indicator all come from the primitives.\n */\nimport React, { useCallback, useMemo } from 'react';\nimport {\n DesignSystemToken,\n DesignTokenRenderMode,\n FrontendComponentType,\n getDesignTokenValue,\n type DesignTokenConfiguration,\n} from '@wildo-ai/presets-components-models';\nimport { UserTheme } from '@wildo-ai/saas-models';\nimport { Card, CardContent } from '~wildo-frontend-lib/components/sections/card';\nimport { Text } from '~wildo-frontend-lib/components/typography/text';\nimport { Label } from '~wildo-frontend-lib/components/typography/label';\nimport { RadioGroupRoot, RadioGroupItem } from '~wildo-frontend-lib/components/form/controls/enum/radio';\nimport { cn } from '~wildo-frontend-lib/core/ui/cn';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { useUI } from '~wildo-frontend-lib/core/ui/useUI';\nimport { useThemePreferenceControl } from '~wildo-frontend-lib/core/ui/useThemePreferenceControl';\n\n/** Theme options, in display order. */\nconst THEME_OPTIONS = [UserTheme.LIGHT, UserTheme.DARK, UserTheme.AUTO] as const;\n\n/** Label keys (resolved via `t`) for each theme option's name. */\nconst THEME_OPTION_LABEL_KEYS: Record<UserTheme, string> = {\n [UserTheme.LIGHT]: 'themeLight',\n [UserTheme.DARK]: 'themeDark',\n [UserTheme.AUTO]: 'themeSystem',\n};\n\n/** The tokens a preview tile paints with — the smallest set that reads as \"an app\". */\nconst PREVIEW_TOKENS = [\n DesignSystemToken.BACKGROUND,\n DesignSystemToken.FOREGROUND,\n DesignSystemToken.MUTED,\n DesignSystemToken.MUTED_FOREGROUND,\n DesignSystemToken.PRIMARY,\n DesignSystemToken.BORDER,\n] as const;\n\ntype PreviewPalette = Record<(typeof PREVIEW_TOKENS)[number], string>;\n\n/**\n * Resolve the preview palette for ONE mode, independently of the mode the app is\n * currently in.\n *\n * This cannot be done with CSS alone, and the asymmetry is worth knowing before\n * anyone \"simplifies\" it. The dark palette is a plain `.dark { … }` class, so a\n * subtree can opt into it — but the LIGHT palette lives on `:root`, which only\n * ever matches `<html>`. Inside a dark app every descendant inherits the dark\n * values and there is no selector that restores the light ones. So a light\n * preview shown while the app is dark has to be given explicit values, which is\n * what the design-token configuration carries (`lightValue` / `darkValue` on\n * every `LIGHT_DARK` token).\n *\n * Falls back to `var(--token)` for any token the app did not configure. That\n * resolves correctly for the CURRENT mode and approximates the other — a\n * degraded preview rather than a broken one, and only reachable in an app that\n * declares no colour tokens at all.\n */\nfunction resolveModePalette(\n tokens: Partial<Record<DesignSystemToken, DesignTokenConfiguration>> | undefined,\n customTokens: Partial<Record<string, DesignTokenConfiguration>> | undefined,\n mode: DesignTokenRenderMode,\n): PreviewPalette {\n const resolve = (token: (typeof PREVIEW_TOKENS)[number]): string => {\n const configuration = tokens?.[token] ?? customTokens?.[token];\n return configuration ? getDesignTokenValue(configuration, mode) : `var(--${token})`;\n };\n\n return PREVIEW_TOKENS.reduce<PreviewPalette>(\n (palette, token) => ({ ...palette, [token]: resolve(token) }),\n {} as PreviewPalette,\n );\n}\n\n/**\n * A miniature of the running app in one mode: page ground, a sidebar rail with\n * two nav lines, a content card with a heading line, a body line, and the accent.\n * Colours come in as explicit values so one tile can render light while the app\n * around it is dark.\n */\nconst ThemePreviewPane: React.FC<{ palette: PreviewPalette; className?: string }> = ({ palette, className }) => (\n <div\n className={cn('flex h-full w-full gap-[3px] p-[5px]', className)}\n style={{ backgroundColor: palette[DesignSystemToken.BACKGROUND] }}\n >\n {/* Sidebar rail */}\n <div\n className=\"flex w-1/4 shrink-0 flex-col gap-[3px] rounded-[3px] p-[3px]\"\n style={{ backgroundColor: palette[DesignSystemToken.MUTED] }}\n >\n <div className=\"h-[3px] w-full rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.PRIMARY] }} />\n <div className=\"h-[3px] w-3/4 rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.MUTED_FOREGROUND], opacity: 0.5 }} />\n <div className=\"h-[3px] w-2/3 rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.MUTED_FOREGROUND], opacity: 0.5 }} />\n </div>\n\n {/* Content card */}\n <div\n className=\"flex flex-1 flex-col gap-[4px] rounded-[3px] border p-[4px]\"\n style={{ backgroundColor: palette[DesignSystemToken.MUTED], borderColor: palette[DesignSystemToken.BORDER] }}\n >\n <div className=\"h-[4px] w-2/3 rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.FOREGROUND] }} />\n <div className=\"h-[3px] w-full rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.MUTED_FOREGROUND], opacity: 0.55 }} />\n <div className=\"h-[3px] w-4/5 rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.MUTED_FOREGROUND], opacity: 0.55 }} />\n <div className=\"mt-auto h-[6px] w-2/5 rounded-[2px]\" style={{ backgroundColor: palette[DesignSystemToken.PRIMARY] }} />\n </div>\n </div>\n);\n\n/**\n * The preview for one option. `AUTO` is rendered as both palettes split down the\n * middle — the convention every OS-following theme picker uses, and the only\n * honest depiction of an option whose result depends on the device.\n */\nconst ThemePreview: React.FC<{ option: UserTheme; light: PreviewPalette; dark: PreviewPalette }> = ({ option, light, dark }) => {\n if (option === UserTheme.AUTO) {\n return (\n <div aria-hidden=\"true\" className=\"flex h-16 w-full overflow-hidden rounded-md border\">\n <div className=\"w-1/2 overflow-hidden\">\n {/* Fixed at twice the half-width so each side renders a WHOLE miniature\n clipped down the middle, rather than two squashed ones. */}\n <div className=\"h-full w-[200%]\"><ThemePreviewPane palette={light} /></div>\n </div>\n <div className=\"w-1/2 overflow-hidden\">\n <div className=\"ms-[-100%] h-full w-[200%]\"><ThemePreviewPane palette={dark} /></div>\n </div>\n </div>\n );\n }\n\n return (\n <div aria-hidden=\"true\" className=\"h-16 w-full overflow-hidden rounded-md border\">\n <ThemePreviewPane palette={option === UserTheme.DARK ? dark : light} />\n </div>\n );\n};\n\nexport const AppPage_AppearanceSettings: React.FC = () => {\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.APP_LAYOUTS_APPEARANCE_SETTINGS });\n const { designSystemConfiguration } = useUI();\n const { themePreference, selectTheme } = useThemePreferenceControl();\n\n const t = useCallback(\n (key: string) => tComponent(FrontendComponentType.APP_LAYOUTS_APPEARANCE_SETTINGS, key),\n [tComponent],\n );\n\n const lightPalette = useMemo(\n () => resolveModePalette(designSystemConfiguration?.tokens, designSystemConfiguration?.customTokens, DesignTokenRenderMode.LIGHT),\n [designSystemConfiguration],\n );\n const darkPalette = useMemo(\n () => resolveModePalette(designSystemConfiguration?.tokens, designSystemConfiguration?.customTokens, DesignTokenRenderMode.DARK),\n [designSystemConfiguration],\n );\n\n // Gate on label readiness so the panel never flashes raw key paths — the same\n // convention as `AppPage_SecuritySettings`. Copy is owned by the labelling\n // pipeline, so there are deliberately no inline fallback strings here.\n if (!isReady) return null;\n\n return (\n <div className=\"flex flex-col gap-section\">\n {/* `h3`, not `h2`: the hub's own header owns the `h2` for this dialog, so a\n panel heading is one level below it. */}\n <div className=\"flex flex-col gap-item-xs\">\n <h3 className=\"text-base font-semibold tracking-tight\">{t('pageTitle')}</h3>\n <Text className=\"text-sm text-muted-foreground\">{t('pageDescription')}</Text>\n </div>\n\n {/* No inner card header: it used to repeat the panel heading and its\n description almost verbatim (\"Appearance Settings / Customize your app's\n look and feel\" above \"Theme Selection / Choose light, dark, or system\n theme\"), which was four lines of chrome introducing three tiles. The\n group keeps its accessible name through `aria-label`. */}\n <Card>\n <CardContent className=\"p-card\">\n <RadioGroupRoot\n value={themePreference}\n onValueChange={(value) => selectTheme(value as UserTheme)}\n aria-label={t('themeHeading')}\n className=\"grid-cols-1 gap-item sm:grid-cols-3\"\n >\n {THEME_OPTIONS.map((option) => {\n const optionId = `appearance-theme-${option}`;\n const isSelected = themePreference === option;\n return (\n <Label\n key={option}\n htmlFor={optionId}\n className={cn(\n 'flex cursor-pointer flex-col gap-element rounded-lg border p-card-sm font-normal transition-colors',\n // The whole tile is the target, and selection is carried by\n // the tile itself as well as by the radio — a 12px dot is not\n // enough signal next to a picture.\n isSelected ? 'border-primary ring-1 ring-primary' : 'hover:border-primary/40',\n )}\n >\n <ThemePreview option={option} light={lightPalette} dark={darkPalette} />\n <div className=\"flex items-center gap-element-xs\">\n <RadioGroupItem id={optionId} value={option} />\n <span className=\"text-sm font-medium\">{t(THEME_OPTION_LABEL_KEYS[option])}</span>\n </div>\n </Label>\n );\n })}\n </RadioGroupRoot>\n </CardContent>\n </Card>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"AppPage_AppearanceSettings.js","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_AppearanceSettings.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * AppPage_AppearanceSettings — the Settings Hub \"Appearance\" panel.\n *\n * A bespoke `ENGINE_PANEL` (not a resource surface) that surfaces the app's\n * theme system: a Light / Dark / System selector. It reads the chosen preference\n * from `useThemePreferenceControl().themePreference` and commits changes through\n * that hook's `selectTheme`, which both applies the theme locally AND durably\n * records it on the user's preferences — see `useThemePreferenceControl` for why\n * the local half alone was actively harmful.\n *\n * ## Each option shows the theme, it does not describe it\n *\n * Theme is the one setting whose control can render its own result, and every\n * mature product does exactly that (VS Code, GitHub, Notion, Linear). The\n * previous version was three text radios with descriptions that restated their\n * own labels — \"Light / Always use the light theme.\" — so the reader learned\n * nothing a preview shows instantly, and had to commit to a look sight-unseen.\n *\n * The tiles are painted from the app's OWN design tokens resolved per mode (see\n * `resolveModePalette`), not from hardcoded greys, so an app that retunes its\n * palette retunes its previews. `System` shows both halves because that is\n * literally what it means.\n *\n * i18n follows the framework convention (same shape as `AppPage_SecuritySettings`):\n * `useI18n({ component })` requests this component's label namespace, the panel\n * gates rendering on `isReady` so it never flashes raw key paths, and a thin\n * `t(key)` reads each label. Label copy is owned entirely by the labelling\n * pipeline (declared in the sibling `.labels.ts`) — the component carries NO\n * hardcoded fallback strings.\n *\n * The selector reuses the framework radio control (`RadioGroupRoot` /\n * `RadioGroupItem`) + typography `Label` rather than a hand-rolled\n * `role=\"radio\"` group, so `radiogroup`/`radio` roles, roving focus,\n * `aria-checked`, and the selection indicator all come from the primitives.\n */\nimport React, { useCallback, useMemo } from 'react';\nimport {\n DesignSystemToken,\n DesignTokenRenderMode,\n FrontendComponentType,\n getDesignTokenValue,\n type DesignTokenConfiguration,\n} from '@wildo-ai/presets-components-models';\nimport { UserTheme } from '@wildo-ai/saas-models';\nimport { Label } from '~wildo-frontend-lib/components/typography/label';\nimport { RadioGroupRoot, RadioGroupItem } from '~wildo-frontend-lib/components/form/controls/enum/radio';\nimport { cn } from '~wildo-frontend-lib/core/ui/cn';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { useUI } from '~wildo-frontend-lib/core/ui/useUI';\nimport { useThemePreferenceControl } from '~wildo-frontend-lib/core/ui/useThemePreferenceControl';\n\n/** Theme options, in display order. */\nconst THEME_OPTIONS = [UserTheme.LIGHT, UserTheme.DARK, UserTheme.AUTO] as const;\n\n/** Label keys (resolved via `t`) for each theme option's name. */\nconst THEME_OPTION_LABEL_KEYS: Record<UserTheme, string> = {\n [UserTheme.LIGHT]: 'themeLight',\n [UserTheme.DARK]: 'themeDark',\n [UserTheme.AUTO]: 'themeSystem',\n};\n\n/** The tokens a preview tile paints with — the smallest set that reads as \"an app\". */\nconst PREVIEW_TOKENS = [\n DesignSystemToken.BACKGROUND,\n DesignSystemToken.FOREGROUND,\n DesignSystemToken.MUTED,\n DesignSystemToken.MUTED_FOREGROUND,\n DesignSystemToken.PRIMARY,\n DesignSystemToken.BORDER,\n] as const;\n\ntype PreviewPalette = Record<(typeof PREVIEW_TOKENS)[number], string>;\n\n/**\n * Resolve the preview palette for ONE mode, independently of the mode the app is\n * currently in.\n *\n * This cannot be done with CSS alone, and the asymmetry is worth knowing before\n * anyone \"simplifies\" it. The dark palette is a plain `.dark { … }` class, so a\n * subtree can opt into it — but the LIGHT palette lives on `:root`, which only\n * ever matches `<html>`. Inside a dark app every descendant inherits the dark\n * values and there is no selector that restores the light ones. So a light\n * preview shown while the app is dark has to be given explicit values, which is\n * what the design-token configuration carries (`lightValue` / `darkValue` on\n * every `LIGHT_DARK` token).\n *\n * Falls back to `var(--token)` for any token the app did not configure. That\n * resolves correctly for the CURRENT mode and approximates the other — a\n * degraded preview rather than a broken one, and only reachable in an app that\n * declares no colour tokens at all.\n */\nfunction resolveModePalette(\n tokens: Partial<Record<DesignSystemToken, DesignTokenConfiguration>> | undefined,\n customTokens: Partial<Record<string, DesignTokenConfiguration>> | undefined,\n mode: DesignTokenRenderMode,\n): PreviewPalette {\n const resolve = (token: (typeof PREVIEW_TOKENS)[number]): string => {\n const configuration = tokens?.[token] ?? customTokens?.[token];\n return configuration ? getDesignTokenValue(configuration, mode) : `var(--${token})`;\n };\n\n return PREVIEW_TOKENS.reduce<PreviewPalette>(\n (palette, token) => ({ ...palette, [token]: resolve(token) }),\n {} as PreviewPalette,\n );\n}\n\n/**\n * A miniature of the running app in one mode: page ground, a sidebar rail with\n * two nav lines, a content card with a heading line, a body line, and the accent.\n * Colours come in as explicit values so one tile can render light while the app\n * around it is dark.\n */\nconst ThemePreviewPane: React.FC<{ palette: PreviewPalette; className?: string }> = ({ palette, className }) => (\n <div\n className={cn('flex h-full w-full gap-[3px] p-[5px]', className)}\n style={{ backgroundColor: palette[DesignSystemToken.BACKGROUND] }}\n >\n {/* Sidebar rail */}\n <div\n className=\"flex w-1/4 shrink-0 flex-col gap-[3px] rounded-[3px] p-[3px]\"\n style={{ backgroundColor: palette[DesignSystemToken.MUTED] }}\n >\n <div className=\"h-[3px] w-full rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.PRIMARY] }} />\n <div className=\"h-[3px] w-3/4 rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.MUTED_FOREGROUND], opacity: 0.5 }} />\n <div className=\"h-[3px] w-2/3 rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.MUTED_FOREGROUND], opacity: 0.5 }} />\n </div>\n\n {/* Content card */}\n <div\n className=\"flex flex-1 flex-col gap-[4px] rounded-[3px] border p-[4px]\"\n style={{ backgroundColor: palette[DesignSystemToken.MUTED], borderColor: palette[DesignSystemToken.BORDER] }}\n >\n <div className=\"h-[4px] w-2/3 rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.FOREGROUND] }} />\n <div className=\"h-[3px] w-full rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.MUTED_FOREGROUND], opacity: 0.55 }} />\n <div className=\"h-[3px] w-4/5 rounded-full\" style={{ backgroundColor: palette[DesignSystemToken.MUTED_FOREGROUND], opacity: 0.55 }} />\n <div className=\"mt-auto h-[6px] w-2/5 rounded-[2px]\" style={{ backgroundColor: palette[DesignSystemToken.PRIMARY] }} />\n </div>\n </div>\n);\n\n/**\n * The preview for one option. `AUTO` is rendered as both palettes split down the\n * middle — the convention every OS-following theme picker uses, and the only\n * honest depiction of an option whose result depends on the device.\n */\nconst ThemePreview: React.FC<{ option: UserTheme; light: PreviewPalette; dark: PreviewPalette }> = ({ option, light, dark }) => {\n if (option === UserTheme.AUTO) {\n return (\n <div aria-hidden=\"true\" className=\"flex h-16 w-full overflow-hidden rounded-md border\">\n <div className=\"w-1/2 overflow-hidden\">\n {/* Fixed at twice the half-width so each side renders a WHOLE miniature\n clipped down the middle, rather than two squashed ones. */}\n <div className=\"h-full w-[200%]\"><ThemePreviewPane palette={light} /></div>\n </div>\n <div className=\"w-1/2 overflow-hidden\">\n <div className=\"ms-[-100%] h-full w-[200%]\"><ThemePreviewPane palette={dark} /></div>\n </div>\n </div>\n );\n }\n\n return (\n <div aria-hidden=\"true\" className=\"h-16 w-full overflow-hidden rounded-md border\">\n <ThemePreviewPane palette={option === UserTheme.DARK ? dark : light} />\n </div>\n );\n};\n\nexport const AppPage_AppearanceSettings: React.FC = () => {\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.APP_LAYOUTS_APPEARANCE_SETTINGS });\n const { designSystemConfiguration } = useUI();\n const { themePreference, selectTheme } = useThemePreferenceControl();\n\n const t = useCallback(\n (key: string) => tComponent(FrontendComponentType.APP_LAYOUTS_APPEARANCE_SETTINGS, key),\n [tComponent],\n );\n\n const lightPalette = useMemo(\n () => resolveModePalette(designSystemConfiguration?.tokens, designSystemConfiguration?.customTokens, DesignTokenRenderMode.LIGHT),\n [designSystemConfiguration],\n );\n const darkPalette = useMemo(\n () => resolveModePalette(designSystemConfiguration?.tokens, designSystemConfiguration?.customTokens, DesignTokenRenderMode.DARK),\n [designSystemConfiguration],\n );\n\n // Gate on label readiness so the panel never flashes raw key paths — the same\n // convention as `AppPage_SecuritySettings`. Copy is owned by the labelling\n // pipeline, so there are deliberately no inline fallback strings here.\n if (!isReady) return null;\n\n return (\n <div className=\"flex flex-col gap-section\">\n {/* `h3`, not `h2`: the hub's own header owns the `h2` for this dialog, so a\n panel heading is one level below it. No sub-heading under it: \"Customize\n how the app looks\" restated \"Appearance\" above three pictures of exactly\n that. */}\n <h3 className=\"text-base font-semibold tracking-tight\">{t('pageTitle')}</h3>\n\n {/* No card around the tiles, and no card header: each tile is already a\n bordered, selectable surface, so a card around three cards was a frame\n with nothing to separate. The header it once carried repeated the panel\n heading and its description almost verbatim. The group keeps its\n accessible name through `aria-label`. */}\n <RadioGroupRoot\n value={themePreference}\n onValueChange={(value) => selectTheme(value as UserTheme)}\n aria-label={t('themeHeading')}\n className=\"grid-cols-1 gap-item sm:grid-cols-3\"\n >\n {THEME_OPTIONS.map((option) => {\n const optionId = `appearance-theme-${option}`;\n const isSelected = themePreference === option;\n return (\n <Label\n key={option}\n htmlFor={optionId}\n className={cn(\n 'flex cursor-pointer flex-col gap-element rounded-lg border p-card-sm font-normal transition-colors',\n // The whole tile is the target, and selection is carried by\n // the tile itself as well as by the radio — a 12px dot is not\n // enough signal next to a picture.\n isSelected ? 'border-primary ring-1 ring-primary' : 'hover:border-primary/40',\n )}\n >\n <ThemePreview option={option} light={lightPalette} dark={darkPalette} />\n <div className=\"flex items-center gap-element-xs\">\n <RadioGroupItem id={optionId} value={option} />\n <span className=\"text-sm font-medium\">{t(THEME_OPTION_LABEL_KEYS[option])}</span>\n </div>\n </Label>\n );\n })}\n </RadioGroupRoot>\n </div>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppPage_AppearanceSettings.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_AppearanceSettings.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"AppPage_AppearanceSettings.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_AppearanceSettings.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAe7C,eAAO,MAAM,kCAAkC,EAAE,mBAAmB,EASnE,CAAC"}
|
|
@@ -9,10 +9,11 @@ import { FrontendComponentType, LabelKind, registerComponentLabels, } from '@wil
|
|
|
9
9
|
// "Always use the light theme." under a label reading "Light" — a restatement
|
|
10
10
|
// with no information in it, occupying the place where information belongs.
|
|
11
11
|
// Each option now renders a preview of the theme it selects, which is the thing
|
|
12
|
-
// a description could only ever approximate.
|
|
12
|
+
// a description could only ever approximate. The panel's own sub-heading
|
|
13
|
+
// (`pageDescription`, "Customize how the app looks") went for the same reason:
|
|
14
|
+
// it restated the heading above three pictures of exactly that.
|
|
13
15
|
export const AppLayoutsAppearanceSettingsLabels = [
|
|
14
16
|
{ ref: 'pageTitle', kind: LabelKind.HEADING, purpose: 'Heading for the Appearance panel — the plain area name only ("Appearance"); the enclosing dialog already says "Settings", so repeating it here says the word three times on one screen' },
|
|
15
|
-
{ ref: 'pageDescription', kind: LabelKind.DESCRIPTION, purpose: 'Sub-heading explaining the Appearance panel customizes the local look-and-feel' },
|
|
16
17
|
// Rendered only as the radio group's accessible name (`aria-label`), never as
|
|
17
18
|
// visible text: the panel heading above it already titles the section, and a
|
|
18
19
|
// second visible heading repeated it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppPage_AppearanceSettings.labels.js","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_AppearanceSettings.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,SAAS,EAET,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAE7C,+EAA+E;AAC/E,6EAA6E;AAC7E,kFAAkF;AAClF,+EAA+E;AAC/E,0EAA0E;AAC1E,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,4EAA4E;AAC5E,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"AppPage_AppearanceSettings.labels.js","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_AppearanceSettings.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,SAAS,EAET,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAE7C,+EAA+E;AAC/E,6EAA6E;AAC7E,kFAAkF;AAClF,+EAA+E;AAC/E,0EAA0E;AAC1E,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,4EAA4E;AAC5E,gFAAgF;AAChF,yEAAyE;AACzE,+EAA+E;AAC/E,gEAAgE;AAChE,MAAM,CAAC,MAAM,kCAAkC,GAA0B;IACvE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,wLAAwL,EAAE;IAChP,8EAA8E;IAC9E,6EAA6E;IAC7E,sCAAsC;IACtC,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,uHAAuH,EAAE;IAChL,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,gJAAgJ,EAAE;IACvM,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,+IAA+I,EAAE;IACrM,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,wJAAwJ,EAAE;CACjN,CAAC;AAEF,uBAAuB,CAAC,qBAAqB,CAAC,+BAA+B,EAAE,kCAAkC,CAAC,CAAC","sourcesContent":["import {\n FrontendComponentType,\n LabelKind,\n type LabellingUnitaryDef,\n registerComponentLabels,\n} from '@wildo-ai/presets-components-models';\n\n// Companion-only label metadata for the Appearance settings panel: keys + kind\n// + per-key purpose. Statically scanned by the dev companion to generate the\n// `components.APP_LAYOUTS_APPEARANCE_SETTINGS.*` bundle; NOT imported at runtime,\n// so it never ships in the browser bundle. Keep in lock-step with the keys the\n// component reads via `tComponent(APP_LAYOUTS_APPEARANCE_SETTINGS, ...)`.\n//\n// The per-option DESCRIPTIONS were removed rather than reworded. They read\n// \"Always use the light theme.\" under a label reading \"Light\" — a restatement\n// with no information in it, occupying the place where information belongs.\n// Each option now renders a preview of the theme it selects, which is the thing\n// a description could only ever approximate. The panel's own sub-heading\n// (`pageDescription`, \"Customize how the app looks\") went for the same reason:\n// it restated the heading above three pictures of exactly that.\nexport const AppLayoutsAppearanceSettingsLabels: LabellingUnitaryDef[] = [\n { ref: 'pageTitle', kind: LabelKind.HEADING, purpose: 'Heading for the Appearance panel — the plain area name only (\"Appearance\"); the enclosing dialog already says \"Settings\", so repeating it here says the word three times on one screen' },\n // Rendered only as the radio group's accessible name (`aria-label`), never as\n // visible text: the panel heading above it already titles the section, and a\n // second visible heading repeated it.\n { ref: 'themeHeading', kind: LabelKind.LABEL, purpose: 'Accessible name for the theme selector radio group, announced by screen readers in place of a visible section heading' },\n { ref: 'themeLight', kind: LabelKind.LABEL, purpose: 'Name of the option that always uses the light theme; sits under a rendered preview of that theme, so it must be the bare name and nothing more' },\n { ref: 'themeDark', kind: LabelKind.LABEL, purpose: 'Name of the option that always uses the dark theme; sits under a rendered preview of that theme, so it must be the bare name and nothing more' },\n { ref: 'themeSystem', kind: LabelKind.LABEL, purpose: 'Name of the option that follows the operating-system color scheme; sits under a split light/dark preview, so it must be the bare name and nothing more' },\n];\n\nregisterComponentLabels(FrontendComponentType.APP_LAYOUTS_APPEARANCE_SETTINGS, AppLayoutsAppearanceSettingsLabels);\n"]}
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* A bespoke `ENGINE_PANEL` (not a resource surface) composing the shared billing
|
|
5
5
|
* widgets over the aggregated `BillingContext` state (`GET_STATE`): subscription
|
|
6
|
-
* status
|
|
7
|
-
* pools, and invoice history
|
|
6
|
+
* status (with its provider-portal action), plan catalog + checkout, metered
|
|
7
|
+
* usage / credit pools, and invoice history — each under its own heading, with no
|
|
8
|
+
* second card heading from the panel. The portal link renders only as a fallback
|
|
9
|
+
* when the subscription status cannot. Every widget self-hydrates from `useBillingSafe()`
|
|
8
10
|
* (plan-name i18n, provider display name, safe checkout/portal execution), so
|
|
9
11
|
* this panel is pure composition — it passes NO data props.
|
|
10
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppPage_BillingSettings.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_BillingSettings.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AppPage_BillingSettings.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_BillingSettings.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAsB,MAAM,OAAO,CAAC;AAa3C,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAmE3C,CAAC"}
|
|
@@ -4,8 +4,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
*
|
|
5
5
|
* A bespoke `ENGINE_PANEL` (not a resource surface) composing the shared billing
|
|
6
6
|
* widgets over the aggregated `BillingContext` state (`GET_STATE`): subscription
|
|
7
|
-
* status
|
|
8
|
-
* pools, and invoice history
|
|
7
|
+
* status (with its provider-portal action), plan catalog + checkout, metered
|
|
8
|
+
* usage / credit pools, and invoice history — each under its own heading, with no
|
|
9
|
+
* second card heading from the panel. The portal link renders only as a fallback
|
|
10
|
+
* when the subscription status cannot. Every widget self-hydrates from `useBillingSafe()`
|
|
9
11
|
* (plan-name i18n, provider display name, safe checkout/portal execution), so
|
|
10
12
|
* this panel is pure composition — it passes NO data props.
|
|
11
13
|
*
|
|
@@ -26,6 +28,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
26
28
|
*/
|
|
27
29
|
import { useCallback } from 'react';
|
|
28
30
|
import { FrontendComponentType } from '@wildo-ai/presets-components-models';
|
|
31
|
+
import { BillingStateSlice } from '@wildo-ai/saas-models';
|
|
29
32
|
import { Card, CardContent, CardHeader, CardTitle } from '../../components/sections/card.js';
|
|
30
33
|
import { Text } from '../../components/typography/text.js';
|
|
31
34
|
import { SubscriptionStatus } from '../../components/billing/billing-subscription-status.js';
|
|
@@ -49,6 +52,21 @@ export const AppPage_BillingSettings = () => {
|
|
|
49
52
|
if (!billing?.isEnabled) {
|
|
50
53
|
return (_jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: t('disabledTitle') }) }), _jsx(CardContent, { children: _jsx(Text, { className: "text-sm text-muted-foreground", children: t('disabledDescription') }) })] }));
|
|
51
54
|
}
|
|
52
|
-
|
|
55
|
+
/*
|
|
56
|
+
* The billing widgets each carry their OWN heading and, where they are a card, their own surface: "Subscription
|
|
57
|
+
* Status", "Plans and pricing", "Usage", "Invoice history". The panel used to wrap each one in a card headed with
|
|
58
|
+
* the same word ("Subscription" over "Subscription Status", "Plans" over "Plans and pricing"), so every block was
|
|
59
|
+
* named twice. The panel now composes them bare, under its one page title.
|
|
60
|
+
*
|
|
61
|
+
* There is no separate "Manage billing" card any more. It said "Manage billing" four times (card heading, an
|
|
62
|
+
* explanatory sentence, the portal link's own heading and its button) for the action the subscription status
|
|
63
|
+
* already offers as its button. That button is offered whenever the billing account is readable, which is exactly
|
|
64
|
+
* when the portal link works — EXCEPT when the subscription status itself cannot render (one of the slices it
|
|
65
|
+
* needs is unavailable) and shows an alert instead. Only then does the panel fall back to the portal link, so the
|
|
66
|
+
* way to the provider's portal is never lost.
|
|
67
|
+
*/
|
|
68
|
+
const billingAccountAvailable = billing.isSliceAvailable(BillingStateSlice.BILLING_ACCOUNT);
|
|
69
|
+
const subscriptionStatusRenders = [BillingStateSlice.SUBSCRIPTION, BillingStateSlice.PRODUCTS, BillingStateSlice.PRICES].every((slice) => billing.isSliceAvailable(slice));
|
|
70
|
+
return (_jsxs("div", { className: "flex flex-col gap-section", children: [_jsx("h3", { className: "text-base font-semibold tracking-tight", children: t('pageTitle') }), _jsx(SubscriptionStatus, {}), billingAccountAvailable && !subscriptionStatusRenders && _jsx(BillingPortalLink, {}), _jsx(PricingTable, {}), _jsx(UsageDashboard, {}), _jsx(InvoiceHistory, {})] }));
|
|
53
71
|
};
|
|
54
72
|
//# sourceMappingURL=AppPage_BillingSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppPage_BillingSettings.js","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_BillingSettings.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"AppPage_BillingSettings.js","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_BillingSettings.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAc,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,8CAA8C,CAAC;AACxG,OAAO,EAAE,IAAI,EAAE,MAAM,gDAAgD,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,gEAAgE,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,gEAAgE,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAEhE,MAAM,CAAC,MAAM,uBAAuB,GAAa,GAAG,EAAE;IACpD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE,SAAS,EAAE,qBAAqB,CAAC,4BAA4B,EAAE,CAAC,CAAC;IAE3G,MAAM,CAAC,GAAG,WAAW,CACnB,CAAC,GAAW,EAAE,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,4BAA4B,EAAE,GAAG,CAAC,EACpF,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,oEAAoE;IACpE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,8EAA8E;IAC9E,yEAAyE;IACzE,4EAA4E;IAC5E,8BAA8B;IAC9B,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QACxB,OAAO,CACL,MAAC,IAAI,eACH,KAAC,UAAU,cACT,KAAC,SAAS,cAAE,CAAC,CAAC,eAAe,CAAC,GAAa,GAChC,EACb,KAAC,WAAW,cACV,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,YAAE,CAAC,CAAC,qBAAqB,CAAC,GAAQ,GACrE,IACT,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC5F,MAAM,yBAAyB,GAAG,CAAC,iBAAiB,CAAC,YAAY,EAAE,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,CAC5H,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAC3C,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,2BAA2B,aAGxC,aAAI,SAAS,EAAC,wCAAwC,YAAE,CAAC,CAAC,WAAW,CAAC,GAAM,EAI5E,KAAC,kBAAkB,KAAG,EACrB,uBAAuB,IAAI,CAAC,yBAAyB,IAAI,KAAC,iBAAiB,KAAG,EAI/E,KAAC,YAAY,KAAG,EAEhB,KAAC,cAAc,KAAG,EAElB,KAAC,cAAc,KAAG,IACd,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * AppPage_BillingSettings — the Settings Hub \"Billing\" panel: THE billing home.\n *\n * A bespoke `ENGINE_PANEL` (not a resource surface) composing the shared billing\n * widgets over the aggregated `BillingContext` state (`GET_STATE`): subscription\n * status (with its provider-portal action), plan catalog + checkout, metered\n * usage / credit pools, and invoice history — each under its own heading, with no\n * second card heading from the panel. The portal link renders only as a fallback\n * when the subscription status cannot. Every widget self-hydrates from `useBillingSafe()`\n * (plan-name i18n, provider display name, safe checkout/portal execution), so\n * this panel is pure composition — it passes NO data props.\n *\n * Why bespoke rather than `RESOURCE_OPERATION` sub-tabs (the previous shape):\n * the billing child resources (subscriptions, invoice refs, usage records) are\n * routed UNDER the billing account (`REQUIRES_CONTEXT` on the\n * `BillingAccounts → children` edges), so an org-scoped generic panel cannot\n * build their URLs (`FRONTEND_RESOURCE_NO_ENDPOINT_AVAILABLE`). The aggregated\n * billing state IS org-addressable and auto-creates the billing account, which\n * makes it the correct settings-surface data source.\n *\n * i18n follows the framework convention (same shape as\n * `AppPage_InvitationsSettings`): `useI18n({ component })` requests this\n * component's label namespace, the panel gates rendering on `isReady` so it\n * never flashes raw key paths, and a thin `t(key)` reads each label. Copy is\n * owned by the labelling pipeline (sibling `.labels.ts`) — no hardcoded\n * fallback strings here.\n */\nimport React, { useCallback } from 'react';\nimport { FrontendComponentType } from '@wildo-ai/presets-components-models';\nimport { BillingStateSlice } from '@wildo-ai/saas-models';\nimport { Card, CardContent, CardHeader, CardTitle } from '~wildo-frontend-lib/components/sections/card';\nimport { Text } from '~wildo-frontend-lib/components/typography/text';\nimport { SubscriptionStatus } from '~wildo-frontend-lib/components/billing/billing-subscription-status';\nimport { BillingPortalLink } from '~wildo-frontend-lib/components/billing/billing-portal-link';\nimport { PricingTable } from '~wildo-frontend-lib/components/billing/billing-pricing-table';\nimport { UsageDashboard } from '~wildo-frontend-lib/components/billing/billing-usage-dashboard';\nimport { InvoiceHistory } from '~wildo-frontend-lib/components/billing/billing-invoice-history';\nimport { useBillingSafe } from '~wildo-frontend-lib/core/billing/useBilling';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\n\nexport const AppPage_BillingSettings: React.FC = () => {\n const billing = useBillingSafe();\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.APP_LAYOUTS_BILLING_SETTINGS });\n\n const t = useCallback(\n (key: string) => tComponent(FrontendComponentType.APP_LAYOUTS_BILLING_SETTINGS, key),\n [tComponent],\n );\n\n // Gate on label readiness so the panel never flashes raw key paths.\n if (!isReady) return null;\n\n // The section itself is capability-gated (`billingEnabled`), so this state is\n // only reachable when the hub config and the runtime capability disagree\n // (e.g. billing flipped off between config loads). Render an honest message\n // rather than an empty panel.\n if (!billing?.isEnabled) {\n return (\n <Card>\n <CardHeader>\n <CardTitle>{t('disabledTitle')}</CardTitle>\n </CardHeader>\n <CardContent>\n <Text className=\"text-sm text-muted-foreground\">{t('disabledDescription')}</Text>\n </CardContent>\n </Card>\n );\n }\n\n /*\n * The billing widgets each carry their OWN heading and, where they are a card, their own surface: \"Subscription\n * Status\", \"Plans and pricing\", \"Usage\", \"Invoice history\". The panel used to wrap each one in a card headed with\n * the same word (\"Subscription\" over \"Subscription Status\", \"Plans\" over \"Plans and pricing\"), so every block was\n * named twice. The panel now composes them bare, under its one page title.\n *\n * There is no separate \"Manage billing\" card any more. It said \"Manage billing\" four times (card heading, an\n * explanatory sentence, the portal link's own heading and its button) for the action the subscription status\n * already offers as its button. That button is offered whenever the billing account is readable, which is exactly\n * when the portal link works — EXCEPT when the subscription status itself cannot render (one of the slices it\n * needs is unavailable) and shows an alert instead. Only then does the panel fall back to the portal link, so the\n * way to the provider's portal is never lost.\n */\n const billingAccountAvailable = billing.isSliceAvailable(BillingStateSlice.BILLING_ACCOUNT);\n const subscriptionStatusRenders = [BillingStateSlice.SUBSCRIPTION, BillingStateSlice.PRODUCTS, BillingStateSlice.PRICES].every(\n (slice) => billing.isSliceAvailable(slice),\n );\n\n return (\n <div className=\"flex flex-col gap-section\">\n {/* `h3`, not `h2`: the Settings Hub header owns the `h2` for this dialog, so a panel heading is one level\n below it. No description under it: the blocks below ARE the plan, usage and invoices it used to list. */}\n <h3 className=\"text-base font-semibold tracking-tight\">{t('pageTitle')}</h3>\n\n {/* Self-hydrates: status/plan/period from the subscription, plan name via billing-product i18n, manage\n action = safe customer portal. */}\n <SubscriptionStatus />\n {billingAccountAvailable && !subscriptionStatusRenders && <BillingPortalLink />}\n\n {/* Self-hydrates: public active PLAN products scoped to the current billing scope; select = checkout (no\n subscription) / portal (active). */}\n <PricingTable />\n\n <UsageDashboard />\n\n <InvoiceHistory />\n </div>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppPage_BillingSettings.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_BillingSettings.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"AppPage_BillingSettings.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_BillingSettings.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAU7C,eAAO,MAAM,+BAA+B,EAAE,mBAAmB,EAIhE,CAAC"}
|
|
@@ -2,18 +2,13 @@ import { FrontendComponentType, LabelKind, registerComponentLabels, } from '@wil
|
|
|
2
2
|
// Companion-only label metadata for the Settings Hub "Billing" panel (the
|
|
3
3
|
// billing home). Statically scanned by the dev companion; NOT imported at
|
|
4
4
|
// runtime, so it never ships in the browser bundle. The billing WIDGETS the
|
|
5
|
-
// panel composes own their own label namespaces
|
|
6
|
-
// table, usage dashboard, invoice history, portal
|
|
7
|
-
//
|
|
5
|
+
// panel composes own their own label namespaces AND their own headings
|
|
6
|
+
// (subscription status, pricing table, usage dashboard, invoice history, portal
|
|
7
|
+
// link) — so the panel carries only its page title and the disabled state. The
|
|
8
|
+
// per-widget card headings and the page description it used to carry named each
|
|
9
|
+
// block a second time and were removed.
|
|
8
10
|
export const AppLayoutsBillingSettingsLabels = [
|
|
9
11
|
{ ref: 'pageTitle', kind: LabelKind.HEADING, purpose: 'Page title of the billing settings panel (the billing home)' },
|
|
10
|
-
{ ref: 'pageDescription', kind: LabelKind.DESCRIPTION, purpose: 'One-sentence framing under the billing page title: manage the plan, monitor usage, review invoices' },
|
|
11
|
-
{ ref: 'subscriptionHeading', kind: LabelKind.HEADING, purpose: 'Card heading over the current subscription status widget' },
|
|
12
|
-
{ ref: 'manageHeading', kind: LabelKind.HEADING, purpose: 'Card heading over the billing-provider portal link (payment methods, renewals)' },
|
|
13
|
-
{ ref: 'manageDescription', kind: LabelKind.DESCRIPTION, purpose: 'Explains that the provider portal is where payment details, renewals and plan changes are managed' },
|
|
14
|
-
{ ref: 'plansHeading', kind: LabelKind.HEADING, purpose: 'Card heading over the plan comparison / pricing table' },
|
|
15
|
-
{ ref: 'usageHeading', kind: LabelKind.HEADING, purpose: 'Card heading over the metered usage and credit-pool dashboard' },
|
|
16
|
-
{ ref: 'invoicesHeading', kind: LabelKind.HEADING, purpose: 'Card heading over the invoice history list' },
|
|
17
12
|
{ ref: 'disabledTitle', kind: LabelKind.HEADING, purpose: 'Heading shown when billing is not enabled for the current runtime' },
|
|
18
13
|
{ ref: 'disabledDescription', kind: LabelKind.DESCRIPTION, purpose: 'Explains that billing is currently disabled for this application' },
|
|
19
14
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppPage_BillingSettings.labels.js","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_BillingSettings.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,SAAS,EAET,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAE7C,0EAA0E;AAC1E,0EAA0E;AAC1E,4EAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"AppPage_BillingSettings.labels.js","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_BillingSettings.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,SAAS,EAET,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAE7C,0EAA0E;AAC1E,0EAA0E;AAC1E,4EAA4E;AAC5E,uEAAuE;AACvE,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,wCAAwC;AACxC,MAAM,CAAC,MAAM,+BAA+B,GAA0B;IACpE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,6DAA6D,EAAE;IACrH,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,mEAAmE,EAAE;IAC/H,EAAE,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,kEAAkE,EAAE;CACzI,CAAC;AAEF,uBAAuB,CAAC,qBAAqB,CAAC,4BAA4B,EAAE,+BAA+B,CAAC,CAAC","sourcesContent":["import {\n FrontendComponentType,\n LabelKind,\n type LabellingUnitaryDef,\n registerComponentLabels,\n} from '@wildo-ai/presets-components-models';\n\n// Companion-only label metadata for the Settings Hub \"Billing\" panel (the\n// billing home). Statically scanned by the dev companion; NOT imported at\n// runtime, so it never ships in the browser bundle. The billing WIDGETS the\n// panel composes own their own label namespaces AND their own headings\n// (subscription status, pricing table, usage dashboard, invoice history, portal\n// link) — so the panel carries only its page title and the disabled state. The\n// per-widget card headings and the page description it used to carry named each\n// block a second time and were removed.\nexport const AppLayoutsBillingSettingsLabels: LabellingUnitaryDef[] = [\n { ref: 'pageTitle', kind: LabelKind.HEADING, purpose: 'Page title of the billing settings panel (the billing home)' },\n { ref: 'disabledTitle', kind: LabelKind.HEADING, purpose: 'Heading shown when billing is not enabled for the current runtime' },\n { ref: 'disabledDescription', kind: LabelKind.DESCRIPTION, purpose: 'Explains that billing is currently disabled for this application' },\n];\n\nregisterComponentLabels(FrontendComponentType.APP_LAYOUTS_BILLING_SETTINGS, AppLayoutsBillingSettingsLabels);\n"]}
|
|
@@ -38,10 +38,24 @@
|
|
|
38
38
|
* integration have different owners, different authorization and different readers, and the scope is
|
|
39
39
|
* what keeps them apart at every call this panel makes.
|
|
40
40
|
*
|
|
41
|
+
* ## One row per CONNECTION, never one per ref (#1727)
|
|
42
|
+
*
|
|
43
|
+
* A vendor can be served by several refs — an engine part and the add-on packages beside it — declared as one shared
|
|
44
|
+
* connection (`providers.sharedConnections`, #1725) that holds ONE grant (#1670). So both halves of this panel speak in
|
|
45
|
+
* connections: the chooser offers one entry per connection (the catalogue folds members into their base and names
|
|
46
|
+
* them in `servesRefs`), and the list above it shows one row per connection the owner holds — its vendor label, the
|
|
47
|
+
* features it serves, the scopes its consent has accumulated (#1671), one health state, one "grant more access" when a
|
|
48
|
+
* feature was refused for a missing scope, and one disconnect that says it ends access for every feature listed. A
|
|
49
|
+
* vendor served by one ref is a connection of one ref and reads as it always did.
|
|
50
|
+
*
|
|
51
|
+
* Vendor names are the i18n tree's `providers.<ref>.displayName` (`buildProviderDisplayNameLabelKey`), owned by the
|
|
52
|
+
* connection's BASE ref; a name nobody has authored renders the raw ref, so the gap looks like a gap.
|
|
53
|
+
*
|
|
41
54
|
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — the surface on which a principal
|
|
42
55
|
* authorizes this application to act toward a named third party on their behalf.
|
|
43
56
|
*/
|
|
44
57
|
import React from 'react';
|
|
58
|
+
import { type LinkedProviderConnectionView, type ProviderScopeReauthorizationOffer } from '@wildo-ai/saas-models';
|
|
45
59
|
import { ExternalProvider_Connection_DelegationMode, ExternalProvider_Connection_OwnerScope } from '@wildo-ai/external-connectors-models';
|
|
46
60
|
import { type ConnectableProviderView } from '../../core/requests/wildo-http-client-manual-calls.frontend.service';
|
|
47
61
|
/**
|
|
@@ -118,6 +132,50 @@ export declare const buildConnectionTarget: (input: {
|
|
|
118
132
|
* string its consent screen is about to show, and no text is invented for it.
|
|
119
133
|
*/
|
|
120
134
|
export declare const describeRequestedScopes: (scopes: readonly string[], answers: Readonly<Record<string, string>>, pendingLabel: string) => string[];
|
|
135
|
+
/**
|
|
136
|
+
* How one CONNECTION stands, as the list shows it (#1727) — one state for the connection, never one per ref.
|
|
137
|
+
*
|
|
138
|
+
* Ordered by what the person must do: a superseded row serves nothing any more, a disabled one resolves as absent, a
|
|
139
|
+
* refused one must be re-authorized; only then does the grant's own validation say whether it has been proven.
|
|
140
|
+
*/
|
|
141
|
+
export declare enum ConnectedAccountStanding {
|
|
142
|
+
/** Stored under a ref before that ref joined a shared connection: nothing reads it (#1670, no re-seal door). */
|
|
143
|
+
SUPERSEDED = "SUPERSEDED",
|
|
144
|
+
/** A row of it is disabled, so every ref it serves resolves it as absent. */
|
|
145
|
+
DISABLED = "DISABLED",
|
|
146
|
+
/** The vendor refused it: every ref it serves needs it re-authorized — said ONCE, on the connection. */
|
|
147
|
+
NEEDS_REAUTHORIZATION = "NEEDS_REAUTHORIZATION",
|
|
148
|
+
/** The vendor accepted it. */
|
|
149
|
+
WORKING = "WORKING",
|
|
150
|
+
/** Stored, and not yet proven either way. */
|
|
151
|
+
NOT_YET_USED = "NOT_YET_USED"
|
|
152
|
+
}
|
|
153
|
+
/** How the last disconnect on this screen ended — the notice it owes the person. */
|
|
154
|
+
export declare enum ConnectedAccountDisconnectOutcome {
|
|
155
|
+
DISCONNECTED = "DISCONNECTED",
|
|
156
|
+
/** A row could not be deleted; rows already deleted stay deleted, and the list is read again either way. */
|
|
157
|
+
FAILED = "FAILED"
|
|
158
|
+
}
|
|
159
|
+
/** The standing of one connection, from the listing's fields. */
|
|
160
|
+
export declare const connectedAccountStanding: (connection: LinkedProviderConnectionView) => ConnectedAccountStanding;
|
|
161
|
+
/**
|
|
162
|
+
* What a pending re-authorization offer (#1671) still asks of THIS connection — `undefined` when nothing is left.
|
|
163
|
+
*
|
|
164
|
+
* The offer was composed when a call was refused; the connection may have been granted some of those scopes since
|
|
165
|
+
* (another re-authorization, a reconnect). So a scope the connection already records is dropped here rather than
|
|
166
|
+
* requested again — the start leg would refuse it as `SCOPES_ALREADY_GRANTED` anyway, and asking a person to consent
|
|
167
|
+
* to what they already granted is noise. An offer for another connection is not this connection's.
|
|
168
|
+
*/
|
|
169
|
+
export declare const pendingReauthorizationFor: (connection: LinkedProviderConnectionView, offer: ProviderScopeReauthorizationOffer | undefined) => {
|
|
170
|
+
requestableScopes: string[];
|
|
171
|
+
administratorConsentScopes: string[];
|
|
172
|
+
offer: ProviderScopeReauthorizationOffer;
|
|
173
|
+
} | undefined;
|
|
174
|
+
/**
|
|
175
|
+
* Every provider display-label key the panel may render (#1727): each connection's and each served ref's, from the
|
|
176
|
+
* catalogue and from the listing. The i18n tree's `providers.<ref>.displayName` is the only source of a vendor's name.
|
|
177
|
+
*/
|
|
178
|
+
export declare const collectConnectedAccountLabelKeys: (providers: readonly ConnectableProviderView[], connections: readonly LinkedProviderConnectionView[]) => string[];
|
|
121
179
|
export interface ConnectedAccountsSettingsProps {
|
|
122
180
|
/**
|
|
123
181
|
* WHOSE account is being connected.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppPage_ConnectedAccountsSettings.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_ConnectedAccountsSettings.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AppPage_ConnectedAccountsSettings.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/AppPage_ConnectedAccountsSettings.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,OAAO,KAAmE,MAAM,OAAO,CAAC;AAGxF,OAAO,EAML,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACvC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,0CAA0C,EAC1C,sCAAsC,EAIvC,MAAM,sCAAsC,CAAC;AAsB9C,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,mFAAmF,CAAC;AAa3F;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,GAClC,WAAW,SAAS,uBAAuB,EAAE,EAC7C,YAAY,sCAAsC,KACjD,uBAAuB,EAExB,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,6BAA6B,GACxC,UAAU,uBAAuB,EACjC,YAAY,sCAAsC,KACjD,0CAA0C,EAY5C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO;IAC3C,UAAU,EAAE,sCAAsC,CAAC;IACnD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,0CAA0C,CAAC;IACvD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,KAAG;IACF,UAAU,EAAE,sCAAsC,CAAC;IACnD,UAAU,EAAE,0CAA0C,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAUzB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,SAAS,MAAM,EAAE,EACzB,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzC,cAAc,MAAM,KACnB,MAAM,EAKP,CAAC;AAEH;;;;;GAKG;AACH,oBAAY,wBAAwB;IAClC,gHAAgH;IAChH,UAAU,eAAe;IACzB,6EAA6E;IAC7E,QAAQ,aAAa;IACrB,wGAAwG;IACxG,qBAAqB,0BAA0B;IAC/C,8BAA8B;IAC9B,OAAO,YAAY;IACnB,6CAA6C;IAC7C,YAAY,iBAAiB;CAC9B;AAED,oFAAoF;AACpF,oBAAY,iCAAiC;IAC3C,YAAY,iBAAiB;IAC7B,4GAA4G;IAC5G,MAAM,WAAW;CAClB;AAED,iEAAiE;AACjE,eAAO,MAAM,wBAAwB,GAAI,YAAY,4BAA4B,KAAG,wBAWnF,CAAC;AAWF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,GACpC,YAAY,4BAA4B,EACxC,OAAO,iCAAiC,GAAG,SAAS,KACnD;IAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAAC,0BAA0B,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,iCAAiC,CAAA;CAAE,GAAG,SAOpH,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gCAAgC,GAC3C,WAAW,SAAS,uBAAuB,EAAE,EAC7C,aAAa,SAAS,4BAA4B,EAAE,KACnD,MAAM,EAG+B,CAAC;AA0LzC,MAAM,WAAW,8BAA8B;IAC7C;;;;;OAKG;IACH,UAAU,EAAE,sCAAsC,CAAC;CACpD;AAED,eAAO,MAAM,iCAAiC,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAuuB/F,CAAC"}
|