@wildo-ai/saas-frontend-lib 1.1.5 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/actions/action-bar.d.ts +15 -0
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.js +15 -0
- package/dist/esm/components/actions/action-bar.js.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.d.ts +97 -7
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +8 -3
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.js +5 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.js.map +1 -1
- package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.js +1 -4
- package/dist/esm/components/auth/Auth_Main.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.js +1 -3
- package/dist/esm/components/auth/Auth_Register.js.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts +7 -0
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.js +13 -7
- package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js +32 -33
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js +18 -20
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js +2 -3
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts +13 -16
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js +18 -15
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.js +2 -2
- package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.js +2 -2
- package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts +33 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.js +34 -5
- package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.js +2 -2
- package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts +2 -0
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.js +1 -0
- package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
- package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayField.js +15 -1
- package/dist/esm/components/data-display/DisplayField.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.js +11 -0
- package/dist/esm/components/data-display/DisplayFieldArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.js +2 -2
- package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +12 -2
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js +3 -2
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js +2 -2
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js +8 -2
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.js +18 -4
- package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js +61 -3
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +7 -5
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +11 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +36 -11
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts +6 -0
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +23 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +35 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +47 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +124 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts +8 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +46 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -0
- package/dist/esm/components/feedback/resource-empty-state.d.ts +21 -8
- package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/resource-empty-state.js +56 -26
- package/dist/esm/components/feedback/resource-empty-state.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.d.ts +29 -7
- package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.js +231 -101
- package/dist/esm/components/flows-actors/approval.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.js +57 -0
- package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.js +4 -4
- package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.js +0 -5
- package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
- package/dist/esm/components/form/Form.d.ts +2 -2
- package/dist/esm/components/form/Form.js +2 -2
- package/dist/esm/components/form/Form.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +28 -3
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.js +43 -14
- package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts +3 -0
- package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormField.js +60 -21
- package/dist/esm/components/form/automated/FormField.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.d.ts +6 -3
- package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.js +3 -2
- package/dist/esm/components/form/automated/FormFieldArray.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +5 -4
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js +148 -55
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts +30 -0
- package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.js +30 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.js.map +1 -1
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts +79 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts.map +1 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js +203 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js.map +1 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +12 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.js +11 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.js +2 -2
- package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
- package/dist/esm/components/form/combobox.d.ts +7 -0
- package/dist/esm/components/form/combobox.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.js.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.js +13 -0
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.d.ts +58 -0
- package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.js +34 -6
- package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js +60 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.d.ts +0 -12
- package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.js +34 -13
- package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.js +46 -0
- package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +73 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.js +64 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -0
- package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.js +8 -1
- package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.js +4 -0
- package/dist/esm/components/form/fields/form-field-string.labels.js.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts +31 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts.map +1 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.js +81 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.js.map +1 -0
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts +14 -1
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js +14 -0
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +22 -0
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +1 -22
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
- package/dist/esm/components/layout/resizable.d.ts +11 -0
- package/dist/esm/components/layout/resizable.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts +11 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js +15 -3
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js +2 -2
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +18 -20
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +7 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js +4 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js +18 -2
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +82 -10
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +8 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +8 -2
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.js +6 -2
- package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +31 -16
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js +23 -8
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +2 -2
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts +13 -0
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.js +55 -28
- package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.js +41 -20
- package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.js +1 -2
- package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts +9 -4
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.js +30 -11
- package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +4 -2
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js +6 -2
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.js +30 -14
- package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +14 -198
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.d.ts +2 -2
- package/dist/esm/components/resources/ResourceLayout_Update.js +2 -2
- package/dist/esm/components/resources/ResourceLayout_Update.js.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.js +69 -39
- package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts +32 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts.map +1 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.js +130 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.js.map +1 -0
- package/dist/esm/components/resources/collection-create-placement.utils.d.ts +32 -0
- package/dist/esm/components/resources/collection-create-placement.utils.d.ts.map +1 -0
- package/dist/esm/components/resources/collection-create-placement.utils.js +37 -0
- package/dist/esm/components/resources/collection-create-placement.utils.js.map +1 -0
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.js +5 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.js.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts +8 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js +49 -2
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +22 -0
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js +85 -2
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.d.ts +14 -0
- package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.js +22 -0
- package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.js +3 -0
- package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js +33 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.js +3 -0
- package/dist/esm/components/resources/skeleton/ObjectScope.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.d.ts +12 -0
- package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.js +28 -2
- package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts +70 -0
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.js +157 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +6 -0
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.js +13 -2
- package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js +2 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js +61 -15
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +24 -2
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js +69 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js +18 -19
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.js +5 -4
- package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
- package/dist/esm/components/sections/stepper.d.ts +5 -0
- package/dist/esm/components/sections/stepper.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.js.map +1 -1
- package/dist/esm/components/sections/surface.d.ts.map +1 -1
- package/dist/esm/components/sections/surface.js +12 -3
- package/dist/esm/components/sections/surface.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +43 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +129 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +34 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.js +9 -11
- package/dist/esm/components/settings/AppPage_AppearanceSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js +3 -2
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts +4 -2
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.js +21 -3
- package/dist/esm/components/settings/AppPage_BillingSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.js +5 -10
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +58 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +243 -40
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +67 -6
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js +19 -11
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js +4 -2
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.js +3 -0
- package/dist/esm/components/settings/SettingsHub.js.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js +16 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +59 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.js +136 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.d.ts +5 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-view.utils.js +5 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/useResourceChartData.d.ts +50 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.d.ts.map +1 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.js +72 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.js.map +1 -0
- package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js +2 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts +86 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +187 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -0
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts +5 -2
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts.map +1 -1
- package/dist/esm/core/app-shell/PortalContainerContext.js +5 -2
- package/dist/esm/core/app-shell/PortalContainerContext.js.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts +18 -9
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.js +1 -0
- package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts +10 -0
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.js +28 -5
- package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.js +38 -0
- package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +15 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +47 -13
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/BillingContext.d.ts +25 -2
- package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingContext.js +16 -25
- package/dist/esm/core/billing/BillingContext.js.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts +11 -3
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.js +14 -8
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/useBillingPlanChange.d.ts.map +1 -1
- package/dist/esm/core/billing/useBillingPlanChange.js +2 -0
- package/dist/esm/core/billing/useBillingPlanChange.js.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +1 -0
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts +29 -229
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js +29 -327
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts +17 -27
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js +28 -48
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +21 -11
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.js +4 -4
- package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +17 -0
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.js +17 -0
- package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +10 -10
- package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.js +221 -6
- package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +8 -0
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.js +1 -0
- package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +10 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.js +9 -0
- package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.js +30 -19
- package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
- package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorContext.js +9 -1
- package/dist/esm/core/errors/ErrorContext.js.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.js +5 -4
- package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.js +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.js.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts +2 -2
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.js +4 -4
- package/dist/esm/core/errors/errors-builder.frontend.services.js.map +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
- package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
- package/dist/esm/core/events/NotificationContext.js +23 -5
- package/dist/esm/core/events/NotificationContext.js.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.d.ts +110 -43
- package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.js +89 -15
- package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts +2 -0
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js +2 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +5 -2
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts +63 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js +131 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts +61 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js +178 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts +52 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.js +144 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts +22 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js +23 -3
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -1
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts +55 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js +65 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js.map +1 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +63 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +100 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -0
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +45 -7
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.js +112 -28
- package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +32 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.js +91 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -0
- package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceRenderer.js +3 -2
- package/dist/esm/core/guidance/GuidanceRenderer.js.map +1 -1
- package/dist/esm/core/i18n/I18nContext.d.ts +22 -8
- package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
- package/dist/esm/core/i18n/I18nContext.js +21 -9
- package/dist/esm/core/i18n/I18nContext.js.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts +5 -3
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.js +5 -3
- package/dist/esm/core/i18n/component-label-resolution.utils.js.map +1 -1
- package/dist/esm/core/i18n/useI18n.d.ts +2 -1
- package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
- package/dist/esm/core/i18n/useI18n.js +2 -1
- package/dist/esm/core/i18n/useI18n.js.map +1 -1
- package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingContext.js +7 -1
- package/dist/esm/core/loading/LoadingContext.js.map +1 -1
- package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingGate.js +19 -1
- package/dist/esm/core/loading/LoadingGate.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts +15 -2
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.js +183 -20
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js +2 -2
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts +7 -15
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js +8 -26
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts +12 -3
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js +3 -2
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts +42 -0
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +89 -5
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts +2 -0
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js +2 -0
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts +78 -0
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.js +264 -16
- package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.d.ts +8 -0
- package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.js +137 -30
- package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.d.ts +2 -0
- package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js +1 -0
- package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
- package/dist/esm/core/navigation/navigation-cascade.d.ts +46 -0
- package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -0
- package/dist/esm/core/navigation/navigation-cascade.js +222 -0
- package/dist/esm/core/navigation/navigation-cascade.js.map +1 -0
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js +21 -2
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js.map +1 -1
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts +71 -0
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -0
- package/dist/esm/core/navigation/navigation-controller-internals.js +84 -0
- package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -0
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +86 -2
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js +242 -124
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.d.ts +170 -8
- package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.js +121 -2
- package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.d.ts +102 -6
- package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.js +283 -34
- package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts +0 -10
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +0 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.js.map +0 -1
- package/dist/esm/core/navigation/useNavigationController.d.ts +28 -157
- package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.js +211 -1189
- package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts +174 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.js +977 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -0
- package/dist/esm/core/navigation/useOverlayTitle.d.ts +13 -1
- package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
- package/dist/esm/core/navigation/useOverlayTitle.js +15 -10
- package/dist/esm/core/navigation/useOverlayTitle.js.map +1 -1
- package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts +43 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts.map +1 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.js +44 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.js.map +1 -0
- package/dist/esm/core/navigation/zone-collapse-migration.d.ts +83 -0
- package/dist/esm/core/navigation/zone-collapse-migration.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-collapse-migration.js +116 -0
- package/dist/esm/core/navigation/zone-collapse-migration.js.map +1 -0
- package/dist/esm/core/navigation/zone-collapse.d.ts +51 -0
- package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-collapse.js +59 -0
- package/dist/esm/core/navigation/zone-collapse.js.map +1 -0
- package/dist/esm/core/navigation/zone-emphasis.d.ts +3 -0
- package/dist/esm/core/navigation/zone-emphasis.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-emphasis.js +26 -4
- package/dist/esm/core/navigation/zone-emphasis.js.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.d.ts +22 -0
- package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.js +25 -0
- package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.js +53 -18
- package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js +3 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts +22 -0
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.js +72 -3
- package/dist/esm/core/requests/websockets/useNotificationBadges.js.map +1 -1
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts +28 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts.map +1 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js +86 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js.map +1 -0
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +38 -3
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +57 -2
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +4 -2
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +30 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js +47 -4
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.js +22 -1
- package/dist/esm/core/resources/ResourceRegistryContext.js.map +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts +22 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.js +25 -2
- package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +113 -13
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js +173 -20
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts +11 -0
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js +7 -0
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts +3 -2
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js +13 -5
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +6 -0
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js +90 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts +139 -16
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.js +110 -11
- package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js +3 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +10 -0
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js +8 -0
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +7 -0
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.js +9 -2
- package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts +59 -0
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -0
- package/dist/esm/core/resources/useOperationDirectExecution.js +278 -0
- package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -0
- package/dist/esm/core/resources/useResourceOperationActions.d.ts +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.js +69 -22
- package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts +8 -6
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.js +3 -2
- package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
- package/dist/esm/core/runtime/AppRouter.js +23 -2
- package/dist/esm/core/runtime/AppRouter.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts +4 -2
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts +12 -2
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.js +5 -2
- package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +25 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js +37 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts +21 -2
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js +51 -4
- package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.d.ts +11 -0
- package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.js +70 -22
- package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.js +10 -2
- package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.js +72 -8
- package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +7 -0
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.js +8 -2
- package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/useGrantedConsentPurposes.d.ts +30 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.d.ts.map +1 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.js +38 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.js.map +1 -0
- package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
- package/dist/esm/core/ui/UIContext.js +10 -6
- package/dist/esm/core/ui/UIContext.js.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.d.ts +20 -0
- package/dist/esm/core/ui/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.js +39 -5
- package/dist/esm/core/ui/color-conversion.utils.js.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.js +22 -2
- package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts +6 -6
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.js +3 -3
- package/dist/esm/core/ui/ui.frontend.schemas.js.map +1 -1
- package/dist/esm/index.d.ts +10 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +19 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/testing/app-shell-placement-coverage.d.ts +43 -0
- package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -0
- package/dist/esm/testing/app-shell-placement-coverage.js +114 -0
- package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -0
- package/dist/esm/testing/mock-builders.d.ts.map +1 -1
- package/dist/esm/testing/mock-builders.js +5 -0
- package/dist/esm/testing/mock-builders.js.map +1 -1
- package/dist/esm/testing.d.ts +1 -0
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/testing.js +1 -0
- package/dist/esm/testing.js.map +1 -1
- package/package.json +9 -7
- package/dist/esm/core/navigation/useIsStackEntryActive.js +0 -15
- package/dist/tsconfig.build.tsbuildinfo +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import React, { useCallback, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { useFormContext } from 'react-hook-form';
|
|
5
5
|
import { DisplayDirection } from '@wildo-ai/zod-decorators';
|
|
6
6
|
import { FrontendComponentType } from '@wildo-ai/presets-components-models';
|
|
@@ -9,6 +9,7 @@ import { Stepper, StepperItem, StepperIndicator, StepperSeparator, StepperTitle,
|
|
|
9
9
|
import { ErrorBoundary } from '../../../core/errors/ErrorBoundary.js';
|
|
10
10
|
import { useI18n } from '../../../core/i18n/useI18n.js';
|
|
11
11
|
import { useOptionalFormTemplateContext } from '../../../components/form/automated/FormTemplateContext.js';
|
|
12
|
+
import { useOptionalResourceFormActions } from '../../../components/form/automated/ResourceFormActionsContext.js';
|
|
12
13
|
import { scrollAndFocusFirstErroredField } from '../../../components/form/validation-errors/scroll-to-first-error.utils.js';
|
|
13
14
|
import { useWizardRootRegistration } from './FormLayoutSlotContext.js';
|
|
14
15
|
import { WizardLayoutContext } from './WizardLayoutContext.js';
|
|
@@ -23,6 +24,12 @@ import { WizardStep } from './WizardStep.js';
|
|
|
23
24
|
* Children must be `<WizardStep>` components. Non-WizardStep children are
|
|
24
25
|
* silently filtered out.
|
|
25
26
|
*
|
|
27
|
+
* Under a resource form (a create or edit dialog or page) the wizard OWNS the form's footer: it claims it
|
|
28
|
+
* (`claimFooter`) and renders the host's Cancel, draft-save and operation-named submit inside its own
|
|
29
|
+
* navigation row — the submit on the last step only. Otherwise the host appended its own Cancel/Create row
|
|
30
|
+
* under the wizard's Previous/Next, so "Create" on step 1 submitted without the later steps ever being seen,
|
|
31
|
+
* and the last step offered two submit buttons.
|
|
32
|
+
*
|
|
26
33
|
* @example
|
|
27
34
|
* ```tsx
|
|
28
35
|
* <FormLayout>
|
|
@@ -46,6 +53,10 @@ export function WizardLayout({ className, initialStep = 0, validateOnStepChange
|
|
|
46
53
|
const wizardTopRef = useRef(null);
|
|
47
54
|
const form = useFormContext();
|
|
48
55
|
const templateCtx = useOptionalFormTemplateContext();
|
|
56
|
+
const hostActions = useOptionalResourceFormActions();
|
|
57
|
+
const claimFooter = hostActions?.claimFooter;
|
|
58
|
+
// Layout effect: the claim lands before paint, so the host's footer never flashes under the wizard.
|
|
59
|
+
useLayoutEffect(() => claimFooter?.(), [claimFooter]);
|
|
49
60
|
const { tComponent, isReady } = useI18n({
|
|
50
61
|
component: FrontendComponentType.LOW_LEVEL_FORM_MESSAGE,
|
|
51
62
|
});
|
|
@@ -127,7 +138,7 @@ export function WizardLayout({ className, initialStep = 0, validateOnStepChange
|
|
|
127
138
|
return null;
|
|
128
139
|
const previousLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardPrevious');
|
|
129
140
|
const nextLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardNext');
|
|
130
|
-
return (_jsx(WizardLayoutContext.Provider, { value: wizardContextValue, children: _jsxs("div", { className: className, "data-guidance-wizard": "", children: [_jsx("div", { ref: wizardTopRef, children: _jsx(Stepper, { currentStep: currentStep, totalSteps: totalSteps, orientation: DisplayDirection.HORIZONTAL, className: "mb-region", children: wizardSteps.map((step, index) => (_jsxs(React.Fragment, { children: [_jsxs(StepperItem, { step: index, children: [_jsx(StepperIndicator, { step: index }), _jsx("div", { className: "flex flex-col items-center text-center", children: _jsx(StepperTitle, { step: index, children: _jsx("span", { id: `wizard-tab-${step.name}`, children: getStepLabel(step.name, index) }) }) })] }), index < totalSteps - 1 && _jsx(StepperSeparator, { step: index })] }, step.name))) }) }), wizardSteps.map((step, index) => (_jsx("div", { style: { display: index === currentStep ? undefined : 'none' }, "aria-hidden": index !== currentStep, children: _jsx(ErrorBoundary, { children: step.element }) }, step.name))), _jsxs("div", { className: "flex justify-between gap-field pt-field", children: [_jsx(Button, { type: "button", variant: ButtonVariants_Variant.OUTLINE, onClick: handlePrevious, disabled: isFirstStep || templateCtx?.disabled, children: previousLabel }),
|
|
141
|
+
return (_jsx(WizardLayoutContext.Provider, { value: wizardContextValue, children: _jsxs("div", { className: className, "data-guidance-wizard": "", children: [_jsx("div", { ref: wizardTopRef, children: _jsx(Stepper, { currentStep: currentStep, totalSteps: totalSteps, orientation: DisplayDirection.HORIZONTAL, className: "mb-region", children: wizardSteps.map((step, index) => (_jsxs(React.Fragment, { children: [_jsxs(StepperItem, { step: index, children: [_jsx(StepperIndicator, { step: index }), _jsx("div", { className: "flex flex-col items-center text-center", children: _jsx(StepperTitle, { step: index, children: _jsx("span", { id: `wizard-tab-${step.name}`, children: getStepLabel(step.name, index) }) }) })] }), index < totalSteps - 1 && _jsx(StepperSeparator, { step: index })] }, step.name))) }) }), wizardSteps.map((step, index) => (_jsx("div", { style: { display: index === currentStep ? undefined : 'none' }, "aria-hidden": index !== currentStep, children: _jsx(ErrorBoundary, { children: step.element }) }, step.name))), hostActions?.submissionNotice, _jsxs("div", { className: "flex justify-between gap-field pt-field", children: [_jsx(Button, { type: "button", variant: ButtonVariants_Variant.OUTLINE, onClick: handlePrevious, disabled: isFirstStep || templateCtx?.disabled, children: previousLabel }), _jsxs("div", { className: "flex flex-wrap items-center justify-end gap-element", children: [hostActions?.cancelButton, hostActions?.draftSaveButton, isLastStep ? (submitButton ?? hostActions?.submitButton ?? (_jsx(Button, { type: "submit", disabled: templateCtx?.disabled, children: tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardSubmit') }))) : (_jsx(Button, { type: "button", onClick: handleNext, disabled: templateCtx?.disabled, children: nextLabel }))] })] })] }) }));
|
|
131
142
|
}
|
|
132
143
|
/**
|
|
133
144
|
* Scroll to the first field with a validation error.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardLayout.js","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, { useCallback, useMemo, useRef, useState, type ReactNode } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { DisplayDirection } from '@wildo-ai/zod-decorators';\nimport { FrontendComponentType } from '@wildo-ai/presets-components-models';\nimport { Button, ButtonVariants_Variant } from '~wildo-frontend-lib/components/actions/button';\nimport {\n Stepper,\n StepperItem,\n StepperIndicator,\n StepperSeparator,\n StepperTitle,\n} from '~wildo-frontend-lib/components/sections/stepper';\nimport { ErrorBoundary } from '~wildo-frontend-lib/core/errors/ErrorBoundary';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { useOptionalFormTemplateContext } from '~wildo-frontend-lib/components/form/automated/FormTemplateContext';\nimport { scrollAndFocusFirstErroredField } from '~wildo-frontend-lib/components/form/validation-errors/scroll-to-first-error.utils';\nimport { useWizardRootRegistration } from './FormLayoutSlotContext';\nimport { WizardLayoutContext } from './WizardLayoutContext';\nimport { WizardStep } from './WizardStep';\n\nexport interface WizardLayoutProps {\n /** Additional CSS classes for the wizard container. */\n className?: string;\n /** 0-based index of the initially active step. @default 0 */\n initialStep?: number;\n /** When `true`, validates current step fields before allowing navigation forward. @default true */\n validateOnStepChange?: boolean;\n /** Callback fired when step changes (after validation, if enabled). */\n onStepChange?: (from: number, to: number) => void;\n /** Custom submit button to render on the last step instead of the default. */\n submitButton?: ReactNode;\n children: ReactNode;\n}\n\n/**\n * Wizard container for multi-step form templates.\n *\n * Manages step state, renders a Stepper UI, navigation buttons (prev/next/submit),\n * and per-step validation. All steps remain mounted (hidden with `display: none`)\n * so that RHF retains field state across steps.\n *\n * Children must be `<WizardStep>` components. Non-WizardStep children are\n * silently filtered out.\n *\n * @example\n * ```tsx\n * <FormLayout>\n * <WizardLayout>\n * <WizardStep name=\"basics\">\n * <FormField name=\"title\" />\n * <FormField name=\"description\" />\n * </WizardStep>\n * <WizardStep name=\"settings\">\n * <FormField name=\"priority\" />\n * <FormField name=\"dueDate\" />\n * </WizardStep>\n * </WizardLayout>\n * </FormLayout>\n * ```\n */\nexport function WizardLayout({\n className,\n initialStep = 0,\n validateOnStepChange = true,\n onStepChange,\n submitButton,\n children,\n}: WizardLayoutProps): ReactNode {\n useWizardRootRegistration();\n\n const [currentStep, setCurrentStep] = useState(initialStep);\n const stepFieldsRef = useRef<Map<string, Set<string>>>(new Map());\n const wizardTopRef = useRef<HTMLDivElement>(null);\n\n const form = useFormContext();\n const templateCtx = useOptionalFormTemplateContext();\n const { tComponent, isReady } = useI18n({\n component: FrontendComponentType.LOW_LEVEL_FORM_MESSAGE,\n });\n\n const wizardSteps = useMemo(() => {\n const steps: Array<{ name: string; element: React.ReactElement }> = [];\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === WizardStep) {\n steps.push({\n name: (child.props as { name: string }).name,\n element: child,\n });\n }\n });\n return steps;\n }, [children]);\n\n const totalSteps = wizardSteps.length;\n\n const registerStep = useCallback((name: string, fields: Set<string>) => {\n stepFieldsRef.current.set(name, fields);\n }, []);\n\n const getCurrentStepFieldNames = useCallback(() => {\n const currentStepName = wizardSteps[currentStep]?.name;\n if (!currentStepName) return undefined;\n const stepFields = stepFieldsRef.current.get(currentStepName);\n return stepFields ? Array.from(stepFields) : undefined;\n }, [currentStep, wizardSteps]);\n\n const wizardContextValue = useMemo<React.ContextType<typeof WizardLayoutContext>>(\n () => ({ registerStep, getCurrentStepFieldNames, currentStep, totalSteps }),\n [registerStep, getCurrentStepFieldNames, currentStep, totalSteps],\n );\n\n /*\n * A DECLARED step always has an entry: its generated title, or — since #1450 — that title's key\n * path once the bundle has settled, so an unlabelled declared step reads as missing rather than\n * as \"Step 2\". The numbered default below is what remains for a step the layout does not declare\n * (no ref in `layoutRefs.wizardSteps`, so no label could be planned for it) and for the loading\n * window, when the title is still ''.\n */\n const getStepLabel = (stepName: string, index: number): string => {\n if (templateCtx?.wizardStepLabels?.[stepName]) {\n return templateCtx.wizardStepLabels[stepName];\n }\n return tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardStepDefault', {\n index: String(index + 1),\n });\n };\n\n const scrollToTop = () => {\n wizardTopRef.current?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n };\n\n const goToStep = (to: number) => {\n const from = currentStep;\n setCurrentStep(to);\n onStepChange?.(from, to);\n scrollToTop();\n };\n\n const handlePrevious = () => {\n if (currentStep > 0) {\n goToStep(currentStep - 1);\n }\n };\n\n const handleNext = async () => {\n if (validateOnStepChange && form) {\n const currentStepName = wizardSteps[currentStep]?.name;\n const stepFields = currentStepName\n ? stepFieldsRef.current.get(currentStepName)\n : undefined;\n\n const fieldNames = stepFields ? Array.from(stepFields) : [];\n const isValid = fieldNames.length\n ? await form.trigger(fieldNames)\n : await form.trigger();\n\n if (!isValid) {\n scrollToFirstError(form, fieldNames);\n return;\n }\n }\n if (currentStep < totalSteps - 1) {\n goToStep(currentStep + 1);\n }\n };\n\n const isFirstStep = currentStep === 0;\n const isLastStep = currentStep === totalSteps - 1;\n\n if (!isReady) return null;\n\n const previousLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardPrevious');\n const nextLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardNext');\n\n return (\n <WizardLayoutContext.Provider value={wizardContextValue}>\n <div className={className} data-guidance-wizard=\"\">\n <div ref={wizardTopRef}>\n <Stepper\n currentStep={currentStep}\n totalSteps={totalSteps}\n orientation={DisplayDirection.HORIZONTAL}\n className=\"mb-region\"\n >\n {wizardSteps.map((step, index) => (\n <React.Fragment key={step.name}>\n <StepperItem step={index}>\n <StepperIndicator step={index} />\n <div className=\"flex flex-col items-center text-center\">\n <StepperTitle step={index}>\n <span id={`wizard-tab-${step.name}`}>\n {getStepLabel(step.name, index)}\n </span>\n </StepperTitle>\n </div>\n </StepperItem>\n {index < totalSteps - 1 && <StepperSeparator step={index} />}\n </React.Fragment>\n ))}\n </Stepper>\n </div>\n\n {wizardSteps.map((step, index) => (\n <div\n key={step.name}\n style={{ display: index === currentStep ? undefined : 'none' }}\n aria-hidden={index !== currentStep}\n >\n <ErrorBoundary>\n {step.element}\n </ErrorBoundary>\n </div>\n ))}\n\n <div className=\"flex justify-between gap-field pt-field\">\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.OUTLINE}\n onClick={handlePrevious}\n disabled={isFirstStep || templateCtx?.disabled}\n >\n {previousLabel}\n </Button>\n\n <div className=\"flex gap-element\">\n {isLastStep ? (\n submitButton ?? (\n <Button type=\"submit\" disabled={templateCtx?.disabled}>\n {tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardSubmit')}\n </Button>\n )\n ) : (\n <Button\n type=\"button\"\n onClick={handleNext}\n disabled={templateCtx?.disabled}\n >\n {nextLabel}\n </Button>\n )}\n </div>\n </div>\n </div>\n </WizardLayoutContext.Provider>\n );\n}\n\n/**\n * Scroll to the first field with a validation error.\n * Uses `data-field` or `name` attributes to locate the DOM element.\n */\nfunction scrollToFirstError(\n form: ReturnType<typeof useFormContext>,\n fieldNames?: string[],\n): void {\n const errors = form.formState.errors;\n let firstErrorField: string | null = null;\n\n if (fieldNames?.length) {\n for (const fieldName of fieldNames) {\n const parts = fieldName.split('.');\n let errorObj: unknown = errors;\n for (const part of parts) {\n if (errorObj && typeof errorObj === 'object' && part in errorObj) {\n errorObj = (errorObj as Record<string, unknown>)[part];\n } else {\n errorObj = undefined;\n break;\n }\n }\n if (errorObj) {\n firstErrorField = fieldName;\n break;\n }\n }\n }\n\n if (!firstErrorField) return;\n\n // Shared scroll+focus mechanics (see scroll-to-first-error.utils, audit D4) —\n // this wizard keeps its own STEP-SCOPED first-error selection above, but the\n // DOM lookup / scroll / focus behavior is the same contract the whole-form\n // submit path uses.\n scrollAndFocusFirstErroredField([firstErrorField]);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"WizardLayout.js","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, { useCallback, useLayoutEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { DisplayDirection } from '@wildo-ai/zod-decorators';\nimport { FrontendComponentType } from '@wildo-ai/presets-components-models';\nimport { Button, ButtonVariants_Variant } from '~wildo-frontend-lib/components/actions/button';\nimport {\n Stepper,\n StepperItem,\n StepperIndicator,\n StepperSeparator,\n StepperTitle,\n} from '~wildo-frontend-lib/components/sections/stepper';\nimport { ErrorBoundary } from '~wildo-frontend-lib/core/errors/ErrorBoundary';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { useOptionalFormTemplateContext } from '~wildo-frontend-lib/components/form/automated/FormTemplateContext';\nimport { useOptionalResourceFormActions } from '~wildo-frontend-lib/components/form/automated/ResourceFormActionsContext';\nimport { scrollAndFocusFirstErroredField } from '~wildo-frontend-lib/components/form/validation-errors/scroll-to-first-error.utils';\nimport { useWizardRootRegistration } from './FormLayoutSlotContext';\nimport { WizardLayoutContext } from './WizardLayoutContext';\nimport { WizardStep } from './WizardStep';\n\nexport interface WizardLayoutProps {\n /** Additional CSS classes for the wizard container. */\n className?: string;\n /** 0-based index of the initially active step. @default 0 */\n initialStep?: number;\n /** When `true`, validates current step fields before allowing navigation forward. @default true */\n validateOnStepChange?: boolean;\n /** Callback fired when step changes (after validation, if enabled). */\n onStepChange?: (from: number, to: number) => void;\n /** Custom submit button to render on the last step instead of the default. */\n submitButton?: ReactNode;\n children: ReactNode;\n}\n\n/**\n * Wizard container for multi-step form templates.\n *\n * Manages step state, renders a Stepper UI, navigation buttons (prev/next/submit),\n * and per-step validation. All steps remain mounted (hidden with `display: none`)\n * so that RHF retains field state across steps.\n *\n * Children must be `<WizardStep>` components. Non-WizardStep children are\n * silently filtered out.\n *\n * Under a resource form (a create or edit dialog or page) the wizard OWNS the form's footer: it claims it\n * (`claimFooter`) and renders the host's Cancel, draft-save and operation-named submit inside its own\n * navigation row — the submit on the last step only. Otherwise the host appended its own Cancel/Create row\n * under the wizard's Previous/Next, so \"Create\" on step 1 submitted without the later steps ever being seen,\n * and the last step offered two submit buttons.\n *\n * @example\n * ```tsx\n * <FormLayout>\n * <WizardLayout>\n * <WizardStep name=\"basics\">\n * <FormField name=\"title\" />\n * <FormField name=\"description\" />\n * </WizardStep>\n * <WizardStep name=\"settings\">\n * <FormField name=\"priority\" />\n * <FormField name=\"dueDate\" />\n * </WizardStep>\n * </WizardLayout>\n * </FormLayout>\n * ```\n */\nexport function WizardLayout({\n className,\n initialStep = 0,\n validateOnStepChange = true,\n onStepChange,\n submitButton,\n children,\n}: WizardLayoutProps): ReactNode {\n useWizardRootRegistration();\n\n const [currentStep, setCurrentStep] = useState(initialStep);\n const stepFieldsRef = useRef<Map<string, Set<string>>>(new Map());\n const wizardTopRef = useRef<HTMLDivElement>(null);\n\n const form = useFormContext();\n const templateCtx = useOptionalFormTemplateContext();\n const hostActions = useOptionalResourceFormActions();\n const claimFooter = hostActions?.claimFooter;\n // Layout effect: the claim lands before paint, so the host's footer never flashes under the wizard.\n useLayoutEffect(() => claimFooter?.(), [claimFooter]);\n const { tComponent, isReady } = useI18n({\n component: FrontendComponentType.LOW_LEVEL_FORM_MESSAGE,\n });\n\n const wizardSteps = useMemo(() => {\n const steps: Array<{ name: string; element: React.ReactElement }> = [];\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === WizardStep) {\n steps.push({\n name: (child.props as { name: string }).name,\n element: child,\n });\n }\n });\n return steps;\n }, [children]);\n\n const totalSteps = wizardSteps.length;\n\n const registerStep = useCallback((name: string, fields: Set<string>) => {\n stepFieldsRef.current.set(name, fields);\n }, []);\n\n const getCurrentStepFieldNames = useCallback(() => {\n const currentStepName = wizardSteps[currentStep]?.name;\n if (!currentStepName) return undefined;\n const stepFields = stepFieldsRef.current.get(currentStepName);\n return stepFields ? Array.from(stepFields) : undefined;\n }, [currentStep, wizardSteps]);\n\n const wizardContextValue = useMemo<React.ContextType<typeof WizardLayoutContext>>(\n () => ({ registerStep, getCurrentStepFieldNames, currentStep, totalSteps }),\n [registerStep, getCurrentStepFieldNames, currentStep, totalSteps],\n );\n\n /*\n * A DECLARED step always has an entry: its generated title, or — since #1450 — that title's key\n * path once the bundle has settled, so an unlabelled declared step reads as missing rather than\n * as \"Step 2\". The numbered default below is what remains for a step the layout does not declare\n * (no ref in `layoutRefs.wizardSteps`, so no label could be planned for it) and for the loading\n * window, when the title is still ''.\n */\n const getStepLabel = (stepName: string, index: number): string => {\n if (templateCtx?.wizardStepLabels?.[stepName]) {\n return templateCtx.wizardStepLabels[stepName];\n }\n return tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardStepDefault', {\n index: String(index + 1),\n });\n };\n\n const scrollToTop = () => {\n wizardTopRef.current?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n };\n\n const goToStep = (to: number) => {\n const from = currentStep;\n setCurrentStep(to);\n onStepChange?.(from, to);\n scrollToTop();\n };\n\n const handlePrevious = () => {\n if (currentStep > 0) {\n goToStep(currentStep - 1);\n }\n };\n\n const handleNext = async () => {\n if (validateOnStepChange && form) {\n const currentStepName = wizardSteps[currentStep]?.name;\n const stepFields = currentStepName\n ? stepFieldsRef.current.get(currentStepName)\n : undefined;\n\n const fieldNames = stepFields ? Array.from(stepFields) : [];\n const isValid = fieldNames.length\n ? await form.trigger(fieldNames)\n : await form.trigger();\n\n if (!isValid) {\n scrollToFirstError(form, fieldNames);\n return;\n }\n }\n if (currentStep < totalSteps - 1) {\n goToStep(currentStep + 1);\n }\n };\n\n const isFirstStep = currentStep === 0;\n const isLastStep = currentStep === totalSteps - 1;\n\n if (!isReady) return null;\n\n const previousLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardPrevious');\n const nextLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardNext');\n\n return (\n <WizardLayoutContext.Provider value={wizardContextValue}>\n <div className={className} data-guidance-wizard=\"\">\n <div ref={wizardTopRef}>\n <Stepper\n currentStep={currentStep}\n totalSteps={totalSteps}\n orientation={DisplayDirection.HORIZONTAL}\n className=\"mb-region\"\n >\n {wizardSteps.map((step, index) => (\n <React.Fragment key={step.name}>\n <StepperItem step={index}>\n <StepperIndicator step={index} />\n <div className=\"flex flex-col items-center text-center\">\n <StepperTitle step={index}>\n <span id={`wizard-tab-${step.name}`}>\n {getStepLabel(step.name, index)}\n </span>\n </StepperTitle>\n </div>\n </StepperItem>\n {index < totalSteps - 1 && <StepperSeparator step={index} />}\n </React.Fragment>\n ))}\n </Stepper>\n </div>\n\n {wizardSteps.map((step, index) => (\n <div\n key={step.name}\n style={{ display: index === currentStep ? undefined : 'none' }}\n aria-hidden={index !== currentStep}\n >\n <ErrorBoundary>\n {step.element}\n </ErrorBoundary>\n </div>\n ))}\n\n {hostActions?.submissionNotice}\n <div className=\"flex justify-between gap-field pt-field\">\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.OUTLINE}\n onClick={handlePrevious}\n disabled={isFirstStep || templateCtx?.disabled}\n >\n {previousLabel}\n </Button>\n\n <div className=\"flex flex-wrap items-center justify-end gap-element\">\n {hostActions?.cancelButton}\n {hostActions?.draftSaveButton}\n {isLastStep ? (\n submitButton ?? hostActions?.submitButton ?? (\n <Button type=\"submit\" disabled={templateCtx?.disabled}>\n {tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardSubmit')}\n </Button>\n )\n ) : (\n <Button\n type=\"button\"\n onClick={handleNext}\n disabled={templateCtx?.disabled}\n >\n {nextLabel}\n </Button>\n )}\n </div>\n </div>\n </div>\n </WizardLayoutContext.Provider>\n );\n}\n\n/**\n * Scroll to the first field with a validation error.\n * Uses `data-field` or `name` attributes to locate the DOM element.\n */\nfunction scrollToFirstError(\n form: ReturnType<typeof useFormContext>,\n fieldNames?: string[],\n): void {\n const errors = form.formState.errors;\n let firstErrorField: string | null = null;\n\n if (fieldNames?.length) {\n for (const fieldName of fieldNames) {\n const parts = fieldName.split('.');\n let errorObj: unknown = errors;\n for (const part of parts) {\n if (errorObj && typeof errorObj === 'object' && part in errorObj) {\n errorObj = (errorObj as Record<string, unknown>)[part];\n } else {\n errorObj = undefined;\n break;\n }\n }\n if (errorObj) {\n firstErrorField = fieldName;\n break;\n }\n }\n }\n\n if (!firstErrorField) return;\n\n // Shared scroll+focus mechanics (see scroll-to-first-error.utils, audit D4) —\n // this wizard keeps its own STEP-SCOPED first-error selection above, but the\n // DOM lookup / scroll / focus behavior is the same contract the whole-form\n // submit path uses.\n scrollAndFocusFirstErroredField([firstErrorField]);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardStep.d.ts","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardStep.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"WizardStep.d.ts","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardStep.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMjG,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,SAAS,CAsDpF"}
|
|
@@ -3,6 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { WizardStepFieldsContext } from './WizardStepFieldsContext.js';
|
|
5
5
|
import { useWizardLayoutContext } from './WizardLayoutContext.js';
|
|
6
|
+
import { cn } from '../../../core/ui/cn.js';
|
|
6
7
|
/**
|
|
7
8
|
* Single wizard step within a `<WizardLayout>`.
|
|
8
9
|
*
|
|
@@ -50,6 +51,6 @@ export function WizardStep({ name, className, children }) {
|
|
|
50
51
|
}
|
|
51
52
|
}, [wizardCtx, name, fields]);
|
|
52
53
|
const stepId = `wizard-step-${name}`;
|
|
53
|
-
return (_jsx(WizardStepFieldsContext.Provider, { value: fieldsContextValue, children: _jsx("div", { className: className, id: stepId, "data-guidance-wizard-step": name, role: "tabpanel", "aria-labelledby": `wizard-tab-${name}`, children: children }) }));
|
|
54
|
+
return (_jsx(WizardStepFieldsContext.Provider, { value: fieldsContextValue, children: _jsx("div", { className: cn('flex flex-col gap-field', className), id: stepId, "data-guidance-wizard-step": name, role: "tabpanel", "aria-labelledby": `wizard-tab-${name}`, children: children }) }));
|
|
54
55
|
}
|
|
55
56
|
//# sourceMappingURL=WizardStep.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardStep.js","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardStep.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"WizardStep.js","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardStep.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAgBpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAmB;IACvE,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAc,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,SAAiB,EAAE,EAAE;QACtD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtB,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9B,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,SAAiB,EAAE,EAAE;QACxD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9B,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,EAC1C,CAAC,aAAa,EAAE,eAAe,CAAC,CACjC,CAAC;IAEF;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YACxC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE;gBACvC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,eAAe,IAAI,EAAE,CAAC;IAErC,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,kBAAkB,YAMzD,cACE,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,EACnD,EAAE,EAAE,MAAM,+BACiB,IAAI,EAC/B,IAAI,EAAC,UAAU,qBACE,cAAc,IAAI,EAAE,YAEpC,QAAQ,GACL,GAC2B,CACpC,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport type { WizardStepFieldsContextValue } from './WizardStepFieldsContext';\nimport { WizardStepFieldsContext } from './WizardStepFieldsContext';\nimport { useWizardLayoutContext } from './WizardLayoutContext';\nimport { cn } from '~wildo-frontend-lib/core/ui/cn';\n\nexport interface WizardStepProps {\n /**\n * Structural ref — maps to i18n keys for title/description:\n * - `resources.{type}.wizardSteps.{name}.title`\n * - `resources.{type}.wizardSteps.{name}.description`\n *\n * Must match an entry in `layout.refs.wizardSteps`.\n */\n name: string;\n /** Additional CSS classes for the step container. */\n className?: string;\n children: ReactNode;\n}\n\n/**\n * Single wizard step within a `<WizardLayout>`.\n *\n * Provides a `WizardStepFieldsContext` so child `<FormField>` components\n * auto-register their names. On mount, reports its collected fields to the\n * parent `WizardLayout` via `WizardLayoutContext.registerStep` — this\n * enables per-step validation (the wizard only triggers fields belonging\n * to the active step).\n *\n * Step title is resolved from i18n by `name`. The wizard hides inactive\n * steps with `display: none` so that RHF keeps all fields mounted.\n *\n * @example\n * ```tsx\n * <WizardStep name=\"contact-info\">\n * <FormField name=\"email\" />\n * <FormField name=\"phone\" />\n * </WizardStep>\n * ```\n */\nexport function WizardStep({ name, className, children }: WizardStepProps): ReactNode {\n const [fields] = useState<Set<string>>(() => new Set());\n const wizardCtx = useWizardLayoutContext();\n const registeredRef = useRef(false);\n\n const registerField = useCallback((fieldName: string) => {\n fields.add(fieldName);\n wizardCtx?.registerStep(name, fields);\n }, [fields, name, wizardCtx]);\n\n const unregisterField = useCallback((fieldName: string) => {\n fields.delete(fieldName);\n wizardCtx?.registerStep(name, fields);\n }, [fields, name, wizardCtx]);\n\n const fieldsContextValue = useMemo<WizardStepFieldsContextValue>(\n () => ({ registerField, unregisterField }),\n [registerField, unregisterField],\n );\n\n /**\n * After initial render, report our field set to the parent WizardLayout.\n * Registration is by name — WizardLayout resolves the index from children order.\n */\n useEffect(() => {\n if (wizardCtx && !registeredRef.current) {\n registeredRef.current = true;\n const frame = requestAnimationFrame(() => {\n wizardCtx.registerStep(name, fields);\n });\n return () => cancelAnimationFrame(frame);\n }\n }, [wizardCtx, name, fields]);\n\n const stepId = `wizard-step-${name}`;\n\n return (\n <WizardStepFieldsContext.Provider value={fieldsContextValue}>\n {/*\n * A column with the field gap: `FormLayout` spaces its DIRECT children, and a wizard's fields are one level\n * down, inside this step — so they sat flush, a label touching the input above it (measured on Wonder Todos'\n * announcement dialog, Title over Message).\n */}\n <div\n className={cn('flex flex-col gap-field', className)}\n id={stepId}\n data-guidance-wizard-step={name}\n role=\"tabpanel\"\n aria-labelledby={`wizard-tab-${name}`}\n >\n {children}\n </div>\n </WizardStepFieldsContext.Provider>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceFieldDisplayPreset_ResourceReference_Default.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ResourceFieldDisplayPreset_ResourceReference_Default.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAsBjF,OAAO,KAAK,EAAE,yDAAyD,EAAE,MAAM,2GAA2G,CAAC;AAwD3L,eAAO,MAAM,oDAAoD,GAAI,gIASlE,yDAAyD,KAAG,KAAK,CAAC,GAAG,CAAC,OAyrBxE,CAAC"}
|
|
@@ -13,11 +13,12 @@ import React, { useEffect, useState, useCallback, useMemo, useRef } from 'react'
|
|
|
13
13
|
import { Link } from 'react-router-dom';
|
|
14
14
|
import { Skeleton } from '../../../../components/feedback/skeleton.js';
|
|
15
15
|
import { Badge } from '../../../../components/data-display/badge.js';
|
|
16
|
+
import { Text } from '../../../../components/typography/text.js';
|
|
16
17
|
import { useEventBus } from '../../../../core/events/useEventBus.js';
|
|
17
18
|
import { FrontendEvents } from '../../../../core/events/events.frontend.schemas.js';
|
|
18
19
|
import { useResourceRegistry } from '../../../../core/resources/useResourceRegistry.js';
|
|
19
20
|
import { DEFAULT_FOREIGN_KEY_DISPLAY_MODE, ForeignKeyDisplayMode, getForeignKeyParams } from '@wildo-ai/zod-decorators';
|
|
20
|
-
import { FrontendComponentType } from '@wildo-ai/presets-components-models';
|
|
21
|
+
import { FrontendComponentType, TextVariant } from '@wildo-ai/presets-components-models';
|
|
21
22
|
import { useI18n } from '../../../../core/i18n/useI18n.js';
|
|
22
23
|
import { cn } from '../../../../core/ui/cn.js';
|
|
23
24
|
import { FrontendResourceUtils, frontendResourceUtils } from '../../../../core/resources/frontend-resource.utils.js';
|
|
@@ -42,6 +43,22 @@ function resolvePrePopulatedRecordIdentifier(params) {
|
|
|
42
43
|
// =============================================================================
|
|
43
44
|
// COMPONENT IMPLEMENTATION
|
|
44
45
|
// =============================================================================
|
|
46
|
+
/**
|
|
47
|
+
* A reference's resolved LABEL, set in the body text recipe.
|
|
48
|
+
*
|
|
49
|
+
* It was a bare `<span>`, which takes its size from whatever encloses the value: every other display
|
|
50
|
+
* value is a `Text` (the string formatter's own output), so a reference printed at the page's root
|
|
51
|
+
* size while the facts around it printed at the body size — measured on the workbench's Build plan
|
|
52
|
+
* and Roadmap pages, where each linked requirement read a size larger than the text it sat among.
|
|
53
|
+
* `as="span"` because the label sits inside a link or a button, where a block `<p>` is not allowed.
|
|
54
|
+
*
|
|
55
|
+
* `TextVariant.INHERIT` because the COLOUR is the wrapper's: the link or button around the label
|
|
56
|
+
* carries `text-primary`, and the default variant would paint the label in the foreground colour —
|
|
57
|
+
* every linkable reference in every application would stop looking like a link.
|
|
58
|
+
*/
|
|
59
|
+
function ReferenceLabel({ label }) {
|
|
60
|
+
return _jsx(Text, { as: "span", variant: TextVariant.INHERIT, children: label });
|
|
61
|
+
}
|
|
45
62
|
export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName, value, resourceType: resourceTypeProp, data: prePopulatedData, displayParams, labelFallback, schema, className, }) => {
|
|
46
63
|
const { registry, doOperation } = useResourceRegistry();
|
|
47
64
|
const { emit } = useEventBus();
|
|
@@ -57,7 +74,7 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
|
|
|
57
74
|
const resourceType = resourceTypeProp
|
|
58
75
|
|| declaredReferencedType
|
|
59
76
|
|| FrontendResourceUtils.resolveResourceTypeForForeignKey(fieldName, schema, registry);
|
|
60
|
-
const { t, isReady } = useI18n({ component: FrontendComponentType.RESOURCES_FIELDS_RESOURCE_REFERENCE, resource: resourceType });
|
|
77
|
+
const { t, formatDate, formatDateTime, isReady } = useI18n({ component: FrontendComponentType.RESOURCES_FIELDS_RESOURCE_REFERENCE, resource: resourceType });
|
|
61
78
|
const toUserFacingErrorMessage = useUserFacingErrorMessage();
|
|
62
79
|
// Resolve contextual parameters for scoped FK READ calls.
|
|
63
80
|
// Display path: AutomaticDisplayer already built contextualParameters from contextResourceIdentifiers.
|
|
@@ -162,8 +179,10 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
|
|
|
162
179
|
registry,
|
|
163
180
|
currentObject: prePopulatedData,
|
|
164
181
|
t,
|
|
182
|
+
formatDate,
|
|
183
|
+
formatDateTime,
|
|
165
184
|
});
|
|
166
|
-
}, [prePopulatedData, resourceType, value, registry, t]);
|
|
185
|
+
}, [prePopulatedData, resourceType, value, registry, t, formatDate, formatDateTime]);
|
|
167
186
|
// ── B1 (P4-03): FK link URL infrastructure ───────────────────────────
|
|
168
187
|
// Memoize route path selection for the referenced resource type when linkable.
|
|
169
188
|
const fkLinkUrlInfo = useMemo(() => {
|
|
@@ -311,6 +330,8 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
|
|
|
311
330
|
doOperation,
|
|
312
331
|
contextualParameters: scopedContextualParameters,
|
|
313
332
|
t,
|
|
333
|
+
formatDate,
|
|
334
|
+
formatDateTime,
|
|
314
335
|
});
|
|
315
336
|
trackResolvedFK(id, { id, label, data: fetchedRecord, error: null, isLoading: false });
|
|
316
337
|
}
|
|
@@ -319,7 +340,7 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
|
|
|
319
340
|
// backend's i18n REFERENCE (#1160).
|
|
320
341
|
trackResolvedFK(id, { id, label: null, error: toUserFacingErrorMessage(err), isLoading: false });
|
|
321
342
|
}
|
|
322
|
-
}, [resourceType, registry, doOperation, trackResolvedFK, t, scopedContextualParameters, fkLinkUrlInfo, toUserFacingErrorMessage]);
|
|
343
|
+
}, [resourceType, registry, doOperation, trackResolvedFK, t, formatDate, formatDateTime, scopedContextualParameters, fkLinkUrlInfo, toUserFacingErrorMessage]);
|
|
323
344
|
// Resolve all FK values on mount/change — skip API when pre-populated data is available
|
|
324
345
|
useEffect(() => {
|
|
325
346
|
if (!resourceType || values.length === 0)
|
|
@@ -495,7 +516,21 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
|
|
|
495
516
|
// The id is the LAST resort, not the first. A record carrying a readable copy of the reference
|
|
496
517
|
// (`labelFallbackField`) shows that instead — which is what keeps a member directory readable
|
|
497
518
|
// for people who have no profile for a label to be built from.
|
|
498
|
-
|
|
519
|
+
/*
|
|
520
|
+
* Named from the fetched record with the CURRENT `t`, not the label frozen at fetch time (#1851 review). A
|
|
521
|
+
* record whose name reads another label section (a product named by `billing_products.<key>.name`) could be
|
|
522
|
+
* fetched before those words arrived, and the stored label then kept its key for the life of the component.
|
|
523
|
+
* The stored label is used only when there is no stored record (`data`) or the resource declares no label
|
|
524
|
+
* strategy: such a name cannot change with the words, and the resolver would log its configuration gap on every
|
|
525
|
+
* render. A strategy that returns an empty name for some record also logs on each render; accepted, since
|
|
526
|
+
* that is a labelling defect in the strategy and the log names it.
|
|
527
|
+
*/
|
|
528
|
+
const hasLabelStrategy = !!resourceType
|
|
529
|
+
&& !!registry.resourceConfigurations?.[resourceType]?.frontendConfiguration?.getFrontendResourceLabel;
|
|
530
|
+
const currentLabel = resolved.data && resourceType && hasLabelStrategy
|
|
531
|
+
? FrontendResourceUtils.computeFrontendResourceLabel({ resourceType, registry, currentObject: resolved.data, t, formatDate, formatDateTime })
|
|
532
|
+
: null;
|
|
533
|
+
const label = currentLabel || resolved.label || labelFallback || id;
|
|
499
534
|
if (effectiveDisplayMode === ParentDisplay.BADGE) {
|
|
500
535
|
const handleBadgeClick = isLinkable && parentRefConfig?.onNavigateToParent
|
|
501
536
|
? () => parentRefConfig.onNavigateToParent(id)
|
|
@@ -519,19 +554,25 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
|
|
|
519
554
|
const refConfig = registry.resourceConfigurations[resourceType];
|
|
520
555
|
const summarySchema = refConfig?.mainSchema;
|
|
521
556
|
if (summarySchema) {
|
|
522
|
-
const summaryContent = (_jsx(ResourceSummaryDisplayer, { resourceType: resourceType, schema: summarySchema, data: resolved.data
|
|
557
|
+
const summaryContent = (_jsx(ResourceSummaryDisplayer, { resourceType: resourceType, schema: summarySchema, data: resolved.data,
|
|
558
|
+
// The referenced record's NAME. The field's own label names the FIELD ("Target todo"),
|
|
559
|
+
// never the record, and this card REPLACES the one-line label — so without it nothing on
|
|
560
|
+
// screen says which record is referenced. Measured on Wonder Todos: a relationship row
|
|
561
|
+
// read "Blocks → Pending –", the blocked todo's badges with no title. The edit picker
|
|
562
|
+
// passes its option label for the same reason.
|
|
563
|
+
primaryLabel: label }));
|
|
523
564
|
return isLinkable ? wrapWithLink(id, summaryContent) : summaryContent;
|
|
524
565
|
}
|
|
525
566
|
}
|
|
526
|
-
return wrapWithLink(id, _jsx(
|
|
567
|
+
return wrapWithLink(id, _jsx(ReferenceLabel, { label: label }));
|
|
527
568
|
}
|
|
528
569
|
// ForeignKeyDisplayMode.LABEL — resolved label, optionally linkable
|
|
529
570
|
if (effectiveDisplayMode === ForeignKeyDisplayMode.LABEL) {
|
|
530
|
-
return wrapWithLink(id, _jsx(
|
|
571
|
+
return wrapWithLink(id, _jsx(ReferenceLabel, { label: label }));
|
|
531
572
|
}
|
|
532
573
|
// Fallback — render as label
|
|
533
|
-
return wrapWithLink(id, _jsx(
|
|
534
|
-
}, [effectiveDisplayMode, resolvedFKs, resourceType, isParentReference, parentRefConfig, wrapWithLink, registry, isLinkable]);
|
|
574
|
+
return wrapWithLink(id, _jsx(ReferenceLabel, { label: label }));
|
|
575
|
+
}, [effectiveDisplayMode, resolvedFKs, resourceType, isParentReference, parentRefConfig, wrapWithLink, registry, isLinkable, t, formatDate, formatDateTime, labelFallback]);
|
|
535
576
|
// Handle empty values
|
|
536
577
|
if (values.length === 0) {
|
|
537
578
|
return _jsx("span", { className: "text-muted-foreground", children: "-" });
|
|
@@ -542,7 +583,7 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
|
|
|
542
583
|
// Unknown resource type warning
|
|
543
584
|
if (!resourceType && effectiveDisplayMode !== ForeignKeyDisplayMode.ID) {
|
|
544
585
|
// Fall back to showing IDs with a warning
|
|
545
|
-
return (_jsx("div", { className: className, title: "Unknown resource type - showing IDs", children: values.length === 1 ? (_jsx("span", { className: "font-mono text-sm", children: values[0] })) : (_jsx("ul", { className: "list-disc
|
|
586
|
+
return (_jsx("div", { className: className, title: "Unknown resource type - showing IDs", children: values.length === 1 ? (_jsx("span", { className: "font-mono text-sm", children: values[0] })) : (_jsx("ul", { className: "list-disc ps-4 space-y-item-xs", children: values.map(id => (_jsx("li", { className: "font-mono text-sm", children: id }, id))) })) }));
|
|
546
587
|
}
|
|
547
588
|
// Single value
|
|
548
589
|
if (values.length === 1) {
|
|
@@ -550,7 +591,7 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
|
|
|
550
591
|
}
|
|
551
592
|
// Multiple values - render as list
|
|
552
593
|
/*
|
|
553
|
-
* `list-outside` (the default) with a
|
|
594
|
+
* `list-outside` (the default) with a start PADDING, NOT `list-inside`.
|
|
554
595
|
*
|
|
555
596
|
* `list-inside` puts the marker into the item's INLINE FLOW, where it has to share the first line
|
|
556
597
|
* with the item's content — and the content here is a reference button, which is `inline-block`. An
|
|
@@ -561,9 +602,14 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
|
|
|
561
602
|
* value — the single-value branch above renders no list at all, and a short label happened to fit.
|
|
562
603
|
*
|
|
563
604
|
* Outside markers sit in the margin and take no part in the inline flow, so the content may wrap
|
|
564
|
-
* freely and the marker stays on the first line.
|
|
565
|
-
*
|
|
605
|
+
* freely and the marker stays on the first line.
|
|
606
|
+
*
|
|
607
|
+
* PADDING rather than the `ms-4` margin this used until 2026-09-25, because the list is the value's
|
|
608
|
+
* ROOT and a vertical field chrome stretches its children to `w-full`: a margin then pushes a
|
|
609
|
+
* full-width box 1rem past its column, measured on the workbench's Build plan page where every
|
|
610
|
+
* "Serves functional requirements" link ran to the pane's edge. An outside marker is drawn in the
|
|
611
|
+
* list's padding box, so `ps-4` keeps the same inset inside the width instead of beyond it.
|
|
566
612
|
*/
|
|
567
|
-
return (_jsx("ul", { className: cn('list-disc
|
|
613
|
+
return (_jsx("ul", { className: cn('list-disc ps-4 space-y-item-xs', className), children: values.map(id => (_jsx("li", { children: renderValue(id) }, id))) }));
|
|
568
614
|
};
|
|
569
615
|
//# sourceMappingURL=ResourceFieldDisplayPreset_ResourceReference_Default.js.map
|