@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
|
@@ -9,9 +9,9 @@ export type ResourceLayout_ReadProps = ResourceLayoutPreset_Read_DefaultProps &
|
|
|
9
9
|
/**
|
|
10
10
|
* Default READ layout preset.
|
|
11
11
|
*
|
|
12
|
-
* ── Tabbed Mode Awareness
|
|
12
|
+
* ── Tabbed Mode Awareness ─────────
|
|
13
13
|
*
|
|
14
|
-
* When
|
|
14
|
+
* When NavigationZoneContentModel.TABBED is the zone's content model, multiple
|
|
15
15
|
* READ views of the same resource type can coexist as parallel tabs.
|
|
16
16
|
* This component will receive a `tabContext` prop (future) indicating:
|
|
17
17
|
* - Whether it's rendered inside a tabbed pane
|
|
@@ -24,8 +24,13 @@ export type ResourceLayout_ReadProps = ResourceLayoutPreset_Read_DefaultProps &
|
|
|
24
24
|
* - Operation actions (Edit, Delete) operate on THIS tab's resource.
|
|
25
25
|
* - Delete removes the tab entry via NAVIGATION_CLOSE with entryId.
|
|
26
26
|
*
|
|
27
|
-
* No changes needed
|
|
28
|
-
*
|
|
27
|
+
* No changes needed here — the zone decides which entry is visible
|
|
28
|
+
* (`zone-visible-entry.ts`) and `NavigationContentAreas` draws the tab bar. This
|
|
29
|
+
* component just needs to be renderable multiple times per zone.
|
|
30
|
+
*
|
|
31
|
+
* This block said "Phase 5 — not yet implemented" and named a
|
|
32
|
+
* `NavigationTransition.TAB` that has never existed in the enum. `TABBED` shipped
|
|
33
|
+
* with #411; the stale text would have had a reader re-solve a solved problem.
|
|
29
34
|
*/
|
|
30
35
|
export declare const ResourceLayoutPreset_Read_Default: ({ resourceContext, navigationZone, navigationInitiator, inlineParentContext, children, showCharts, }: ResourceLayoutPreset_Read_DefaultProps) => React.JSX.Element | null;
|
|
31
36
|
export declare function ResourceLayout_Read({ preset, ...props }: ResourceLayout_ReadProps): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceLayout_Read.d.ts","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_Read.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+E,MAAM,OAAO,CAAC;AAwCpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kFAAkF,CAAA;AAOvH,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAA;AAI9F,MAAM,WAAW,sCAAuC,SAAQ,wBAAwB;IACtF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,wBAAwB,GAAG,sCAAsC,GAAG,oBAAoB,CAAC;AA+FrG
|
|
1
|
+
{"version":3,"file":"ResourceLayout_Read.d.ts","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_Read.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+E,MAAM,OAAO,CAAC;AAwCpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kFAAkF,CAAA;AAOvH,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAA;AAI9F,MAAM,WAAW,sCAAuC,SAAQ,wBAAwB;IACtF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,wBAAwB,GAAG,sCAAsC,GAAG,oBAAoB,CAAC;AA+FrG;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,iCAAiC,GAAI,sGAO/C,sCAAsC,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAyY/D,CAAC;AAkBF,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,wBAAwB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkCrG"}
|
|
@@ -100,9 +100,9 @@ function useSemanticReadNestedParentData(params) {
|
|
|
100
100
|
/**
|
|
101
101
|
* Default READ layout preset.
|
|
102
102
|
*
|
|
103
|
-
* ── Tabbed Mode Awareness
|
|
103
|
+
* ── Tabbed Mode Awareness ─────────
|
|
104
104
|
*
|
|
105
|
-
* When
|
|
105
|
+
* When NavigationZoneContentModel.TABBED is the zone's content model, multiple
|
|
106
106
|
* READ views of the same resource type can coexist as parallel tabs.
|
|
107
107
|
* This component will receive a `tabContext` prop (future) indicating:
|
|
108
108
|
* - Whether it's rendered inside a tabbed pane
|
|
@@ -115,8 +115,13 @@ function useSemanticReadNestedParentData(params) {
|
|
|
115
115
|
* - Operation actions (Edit, Delete) operate on THIS tab's resource.
|
|
116
116
|
* - Delete removes the tab entry via NAVIGATION_CLOSE with entryId.
|
|
117
117
|
*
|
|
118
|
-
* No changes needed
|
|
119
|
-
*
|
|
118
|
+
* No changes needed here — the zone decides which entry is visible
|
|
119
|
+
* (`zone-visible-entry.ts`) and `NavigationContentAreas` draws the tab bar. This
|
|
120
|
+
* component just needs to be renderable multiple times per zone.
|
|
121
|
+
*
|
|
122
|
+
* This block said "Phase 5 — not yet implemented" and named a
|
|
123
|
+
* `NavigationTransition.TAB` that has never existed in the enum. `TABBED` shipped
|
|
124
|
+
* with #411; the stale text would have had a reader re-solve a solved problem.
|
|
120
125
|
*/
|
|
121
126
|
export const ResourceLayoutPreset_Read_Default = ({ resourceContext, navigationZone, navigationInitiator, inlineParentContext, children, showCharts = true, }) => {
|
|
122
127
|
const { goBack, canGoBack, navigate } = useNavigationController();
|
|
@@ -153,16 +158,29 @@ export const ResourceLayoutPreset_Read_Default = ({ resourceContext, navigationZ
|
|
|
153
158
|
getZoneState,
|
|
154
159
|
});
|
|
155
160
|
}, [inlineParentContext, navigationZone, navigationInitiator, getZoneState]);
|
|
156
|
-
// Uses goBack() when the
|
|
157
|
-
// falls back to URL-based <Link>.
|
|
158
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- parentId may be used in future for direct navigation
|
|
161
|
+
// Uses goBack() when the entry BENEATH this one is the parent's own record; otherwise navigates to
|
|
162
|
+
// the parent directly, and failing that the FK Display Preset falls back to a URL-based <Link>.
|
|
159
163
|
const handleNavigateToParent = useCallback((parentId) => {
|
|
160
|
-
|
|
164
|
+
const parentReference = navigationSurface?.parentReference;
|
|
165
|
+
const parentResourceType = parentReference?.parentResourceType;
|
|
166
|
+
/*
|
|
167
|
+
* "Back" is the parent only when the parent is what is beneath. This used to go back whenever the
|
|
168
|
+
* zone held more than one entry, so after drilling Task A → Task B, clicking B's PROJECT returned
|
|
169
|
+
* to Task A. In a TABBED zone the other entries are parallel tabs rather than history, and going
|
|
170
|
+
* back closed the tab the reader was on. Both now take the direct navigation below, which already
|
|
171
|
+
* existed for a parent that is not on the stack at all.
|
|
172
|
+
*/
|
|
173
|
+
const zoneState = navigationZone ? getZoneState(navigationZone) : undefined;
|
|
174
|
+
const beneath = zoneState && zoneState.activeTabId === undefined
|
|
175
|
+
? zoneState.stack[zoneState.stack.length - 2]
|
|
176
|
+
: undefined;
|
|
177
|
+
const beneathIsTheParent = beneath?.content.contentType === NavigationContentType.RESOURCE_OPERATION
|
|
178
|
+
&& beneath.content.resourceContext.resourceType === parentResourceType
|
|
179
|
+
&& frontendResourceUtils.getPrimaryResourceIdentifier(beneath.content.resourceContext) === parentId;
|
|
180
|
+
if (beneathIsTheParent && canGoBack(navigationZone)) {
|
|
161
181
|
goBack(navigationZone);
|
|
162
182
|
return true;
|
|
163
183
|
}
|
|
164
|
-
const parentReference = navigationSurface?.parentReference;
|
|
165
|
-
const parentResourceType = parentReference?.parentResourceType;
|
|
166
184
|
if (!parentReference || !parentResourceType) {
|
|
167
185
|
return false;
|
|
168
186
|
}
|
|
@@ -231,6 +249,7 @@ export const ResourceLayoutPreset_Read_Default = ({ resourceContext, navigationZ
|
|
|
231
249
|
canGoBack,
|
|
232
250
|
currentResourceContext.contextResourceIdentifiers,
|
|
233
251
|
currentResourceContext.parentResourcesRequirements,
|
|
252
|
+
getZoneState,
|
|
234
253
|
goBack,
|
|
235
254
|
navigate,
|
|
236
255
|
navigationSurface,
|
|
@@ -311,7 +330,7 @@ export const ResourceLayoutPreset_Read_Default = ({ resourceContext, navigationZ
|
|
|
311
330
|
if (isSemanticCustomOperation) {
|
|
312
331
|
return (_jsx(EmbeddedResourceHostProvider, { hostResourceType: currentResourceContext.resourceType, contextResourceIdentifiers: embeddedHostIdentifiers, navigationZone: navigationZone, navigationInitiator: navigationInitiator, children: _jsxs(ComposedChildrenRegistryProvider, { children: [_jsx(ResourceLayout_SemanticOperationFallback, { resourceContext: currentResourceContext, navigationZone: navigationZone, navigationInitiator: navigationInitiator, errorMessage: semanticOperationFailedLabel, errorComponent: "ResourceLayoutPreset_Read_Default" }), _jsx(ResourceLayout_InsertedViews, { resourceContext: currentResourceContext, navigationZone: navigationZone, navigationInitiator: navigationInitiator, showCharts: showCharts }), _jsx(ResourceLayout_ContainerNested, { resourceContext: currentResourceContext, navigationZone: navigationZone, navigationInitiator: navigationInitiator, parentData: semanticNestedParentData })] }) }));
|
|
313
332
|
}
|
|
314
|
-
return (_jsx(EmbeddedResourceHostProvider, { hostResourceType: currentResourceContext.resourceType, contextResourceIdentifiers: embeddedHostIdentifiers, navigationZone: navigationZone, navigationInitiator: navigationInitiator, children: _jsx(ComposedChildrenRegistryProvider, { children: _jsxs("div", { className: "space-y-section", children: [_jsx(ResourceLayout_Header, { resourceContext: currentResourceContext, navigationZone: navigationZone, navigationInitiator: navigationInitiator, actions: _jsxs(_Fragment, { children: [_jsx(ResourceLayout_InsertedViews, { resourceContext: currentResourceContext, navigationZone: navigationZone, navigationInitiator: navigationInitiator, showCharts: showCharts, renderSlot: InsertedViewRenderSlot.ACTION_BAR }), _jsx(ResourceLayout_OperationsItems, { resourceContext: currentResourceContext,
|
|
333
|
+
return (_jsx(EmbeddedResourceHostProvider, { hostResourceType: currentResourceContext.resourceType, contextResourceIdentifiers: embeddedHostIdentifiers, navigationZone: navigationZone, navigationInitiator: navigationInitiator, children: _jsx(ComposedChildrenRegistryProvider, { children: _jsxs("div", { className: "space-y-section", children: [_jsx(ResourceLayout_Header, { resourceContext: currentResourceContext, navigationZone: navigationZone, navigationInitiator: navigationInitiator, parentReferenceConfig: parentReferenceConfig, actions: _jsxs(_Fragment, { children: [_jsx(ResourceLayout_InsertedViews, { resourceContext: currentResourceContext, navigationZone: navigationZone, navigationInitiator: navigationInitiator, showCharts: showCharts, renderSlot: InsertedViewRenderSlot.ACTION_BAR }), _jsx(ResourceLayout_OperationsItems, { resourceContext: currentResourceContext,
|
|
315
334
|
// The loaded record (populated by `ResourceAutomaticDisplayer`'s
|
|
316
335
|
// `onDataLoaded` below) is the action bar's `currentObject`. Without it,
|
|
317
336
|
// any operation with an `enabledCondition` that reads object state (e.g.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceLayout_Read.js","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_Read.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { ResourceAutomaticDisplayer } from '~wildo-frontend-lib/components/data-display/ResourceAutomaticDisplayer';\nimport type { ParentReferenceConfig } from '~wildo-frontend-lib/components/data-display/automatic-displayer.utils';\nimport { useNavigationController } from '~wildo-frontend-lib/core/navigation/useNavigationController';\nimport { NavigationContentType } from '~wildo-frontend-lib/core/navigation/navigation.schemas';\nimport { useNavigationState } from '~wildo-frontend-lib/core/navigation/useNavigationState';\nimport { NavigationUtils } from '~wildo-frontend-lib/core/navigation/navigation.utils';\nimport {\n CoreResourceOperation,\n NavigationZoneName,\n ParentDisplay,\n ResourceOperationDisplayMode,\n ResourcesConfig_OperationPathUtils,\n getChildDirectionRelationships,\n} from '@wildo-ai/saas-models';\nimport { ResourceLayout_Header } from '~wildo-frontend-lib/components/resources/ResourceLayout_Header';\nimport {\n InsertedViewRenderSlot,\n ResourceLayout_InsertedViews,\n} from '~wildo-frontend-lib/components/resources/ResourceLayout_InsertedViews';\nimport { ResourceLayout_ContainerNested } from '~wildo-frontend-lib/components/resources/ResourceLayout_ContainerNested';\nimport { EmbeddedResourceHostProvider } from '~wildo-frontend-lib/components/resources/embeds/EmbeddedResourceHostContext';\nimport { ComposedChildrenRegistryProvider } from '~wildo-frontend-lib/components/resources/embeds/ComposedChildrenRegistry';\nimport { ResourceLayout_OperationsItems } from '~wildo-frontend-lib/components/resources/ResourceLayout_OperationsItems';\nimport { ResourceLayout_DangerZone } from '~wildo-frontend-lib/components/resources/ResourceLayout_DangerZone';\nimport { ActionPlacement } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { resolveRelationshipNavigationSurface } from '~wildo-frontend-lib/core/resources/relationship-surface-runtime.frontend.utils';\nimport { resolveEffectiveCoreOperationFromOperation } from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { pickPreferredOperationForCoreSemanticAddressability } from '~wildo-frontend-lib/core/resources/resource-addressability.frontend.utils';\nimport type {\n FrontendResourceConfiguration_Operation,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { frontendResourceUtils, FrontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { normalizeContextResourceIdentifiersForTransport } from '~wildo-frontend-lib/core/resources/context-resource-identifiers.frontend.utils';\nimport { useResourceOperationSurface } from '~wildo-frontend-lib/core/resources/useResourceOperationSurface';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { resolveComponentLabel } from '~wildo-frontend-lib/core/i18n/component-label-resolution.utils';\n\nimport { ComponentPresetProps } from '~wildo-frontend-lib/core/components-registry/component-registry.frontend.schemas'\nimport { createComponentResolver } from '~wildo-frontend-lib/core/components-registry/component-resolver.frontend.helper'\nimport { FrontendComponentType, CorePreset_ResourceLayout_Read, ButtonSize } from '@wildo-ai/presets-components-models'\nimport {\n resolveResourceOperationPresetKey,\n resolveResourceOperationCustomView,\n} from '~wildo-frontend-lib/core/resources/resource-operation-view.frontend.utils';\nimport { BaseResourcesLayoutProps } from './component-props.resources-layout.frontend.schemas'\nimport { ResourceLayout_SemanticOperationFallback } from './ResourceLayout_SemanticOperationFallback';\n\n// --- Contract ---\nexport interface ResourceLayoutPreset_Read_DefaultProps extends BaseResourcesLayoutProps {\n children?: React.ReactNode;\n showCharts?: boolean;\n}\n\nexport type ResourceLayout_ReadProps = ResourceLayoutPreset_Read_DefaultProps & ComponentPresetProps;\n\nfunction useSemanticReadNestedParentData(params: {\n resourceContext: BaseResourcesLayoutProps['resourceContext'];\n enabled: boolean;\n}): Record<string, unknown> | undefined {\n const { registry, doOperation } = useResourceRegistry();\n const [parentData, setParentData] = useState<Record<string, unknown> | undefined>(undefined);\n\n const shouldPrefetch = useMemo(() => {\n if (!params.enabled) {\n return false;\n }\n\n const resourceConfig = registry.resourceConfigurations[params.resourceContext.resourceType];\n const childRelationships = resourceConfig?.resourceRelationships\n ? getChildDirectionRelationships(resourceConfig.resourceRelationships)\n : [];\n\n return childRelationships.some((relationship) => (\n relationship.discriminator != null || relationship.condition != null\n ));\n }, [params.enabled, params.resourceContext.resourceType, registry]);\n\n useEffect(() => {\n if (!shouldPrefetch) {\n setParentData(undefined);\n return;\n }\n\n const resourceConfig = registry.resourceConfigurations[params.resourceContext.resourceType];\n if (!resourceConfig) {\n setParentData(undefined);\n return;\n }\n\n const contextualParameters = FrontendResourceUtils.buildContextualParameters(\n params.resourceContext.contextResourceIdentifiers,\n registry,\n );\n const resourceId = frontendResourceUtils.getResourceId(\n params.resourceContext.contextResourceIdentifiers?.[params.resourceContext.resourceType],\n );\n const readOperation = pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig,\n operations: resourceConfig.operations ?? [],\n coreOperation: CoreResourceOperation.READ,\n registry,\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: params.resourceContext.contextResourceIdentifiers,\n contextualParameters,\n });\n if (!readOperation) {\n setParentData(undefined);\n return;\n }\n\n const operationPathKey = ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(readOperation);\n let cancelled = false;\n\n void doOperation(operationPathKey, {\n contextualParameters,\n parentResourcesRequirements: params.resourceContext.parentResourcesRequirements,\n }).then((result) => {\n if (cancelled) {\n return;\n }\n\n if (result && typeof result === 'object' && !Array.isArray(result) && !('data' in result)) {\n setParentData(result as Record<string, unknown>);\n return;\n }\n\n setParentData(undefined);\n }).catch(() => {\n if (!cancelled) {\n setParentData(undefined);\n }\n });\n\n return () => {\n cancelled = true;\n };\n }, [\n doOperation,\n params.resourceContext.contextResourceIdentifiers,\n params.resourceContext.parentResourcesRequirements,\n params.resourceContext.resourceType,\n registry,\n shouldPrefetch,\n ]);\n\n return parentData;\n}\n\n/**\n * Default READ layout preset.\n *\n * ── Tabbed Mode Awareness (Phase 5 — not yet implemented) ─────────\n *\n * When NavigationTransition.TAB is active in the parent pane, multiple\n * READ views of the same resource type can coexist as parallel tabs.\n * This component will receive a `tabContext` prop (future) indicating:\n * - Whether it's rendered inside a tabbed pane\n * - Whether it's the active tab (for lazy rendering optimization)\n * - A callback to update the tab label (e.g., resource title after load)\n *\n * Tab-specific behaviors for READ:\n * - Sub-resource navigation (clicking a child) goes to the NEXT pane,\n * not to a new tab. Tabbed panes are always FLAT.\n * - Operation actions (Edit, Delete) operate on THIS tab's resource.\n * - Delete removes the tab entry via NAVIGATION_CLOSE with entryId.\n *\n * No changes needed now — ZoneContentRenderer handles tab rendering.\n * This component just needs to be renderable multiple times per zone.\n */\nexport const ResourceLayoutPreset_Read_Default = ({\n resourceContext,\n navigationZone,\n navigationInitiator,\n inlineParentContext,\n children,\n showCharts = true,\n}: ResourceLayoutPreset_Read_DefaultProps): React.JSX.Element | null => {\n const { goBack, canGoBack, navigate } = useNavigationController();\n const { getZoneState } = useNavigationState();\n const { registry } = useResourceRegistry();\n const { tComponent, isReady } = useI18n({\n component: FrontendComponentType.RESOURCES_LAYOUTS_READ,\n });\n const {\n resourceContext: currentResourceContext,\n resourceType,\n operation,\n isSemanticCustomOperation,\n reportError,\n resolvePreferredOperation,\n navigateToResourceOperation,\n } = useResourceOperationSurface({\n resourceContext,\n navigationZone,\n navigationInitiator,\n });\n\n const [parentData, setParentData] = useState<Record<string, unknown> | undefined>(undefined);\n const displayFailedLabel = resolveComponentLabel({\n tComponent,\n componentType: FrontendComponentType.RESOURCES_LAYOUTS_READ,\n key: 'displayFailed',\n });\n const semanticOperationFailedLabel = resolveComponentLabel({\n tComponent,\n componentType: FrontendComponentType.RESOURCES_LAYOUTS_READ,\n key: 'semanticOperationFailed',\n });\n const semanticNestedParentData = useSemanticReadNestedParentData({\n resourceContext: currentResourceContext,\n enabled: isSemanticCustomOperation,\n });\n\n const navigationSurface = useMemo(() => {\n return resolveRelationshipNavigationSurface({\n inlineParentContext,\n navigationZone,\n navigationInitiator,\n getZoneState,\n });\n }, [inlineParentContext, navigationZone, navigationInitiator, getZoneState]);\n\n // Uses goBack() when the parent is on the stack; otherwise the FK Display Preset\n // falls back to URL-based <Link>.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- parentId may be used in future for direct navigation\n const handleNavigateToParent = useCallback((parentId: string) => {\n if (canGoBack(navigationZone)) {\n goBack(navigationZone);\n return true;\n }\n\n const parentReference = navigationSurface?.parentReference;\n const parentResourceType = parentReference?.parentResourceType;\n if (!parentReference || !parentResourceType) {\n return false;\n }\n\n const parentResourceConfig = registry.resourceConfigurations[parentResourceType];\n if (!parentResourceConfig) {\n return false;\n }\n\n const currentContextIdentifiers = currentResourceContext.contextResourceIdentifiers ?? {};\n const currentParentRequirements = currentResourceContext.parentResourcesRequirements ?? [];\n const directParentRequirement = currentParentRequirements[currentParentRequirements.length - 1];\n const canReuseOrderedParentChain = directParentRequirement?.resourceType === parentResourceType;\n const parentRequirements = canReuseOrderedParentChain\n ? currentParentRequirements.slice(0, -1)\n : frontendResourceUtils.buildParentResourcesRequirements(\n parentResourceType,\n currentContextIdentifiers,\n registry,\n );\n const parentContextIdentifiers: Record<string, string | { fieldIdentifier: string; resourceId: string }> = {};\n for (const requirement of parentRequirements) {\n const contextKey = requirement.foreignKeyField ?? requirement.resourceType;\n const identifier = currentContextIdentifiers[contextKey] ?? currentContextIdentifiers[requirement.resourceType];\n const resourceId = frontendResourceUtils.getResourceId(identifier);\n if (!resourceId) {\n continue;\n }\n\n if (requirement.foreignKeyField) {\n parentContextIdentifiers[contextKey] = {\n fieldIdentifier: requirement.foreignKeyField,\n resourceId,\n };\n continue;\n }\n\n parentContextIdentifiers[requirement.resourceType] = resourceId;\n }\n parentContextIdentifiers[parentResourceType] = parentId;\n const parentContextualParameters = FrontendResourceUtils.buildContextualParameters(\n parentContextIdentifiers,\n registry,\n );\n const parentReadOperation = pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig: parentResourceConfig,\n operations: parentResourceConfig.operations ?? [],\n coreOperation: CoreResourceOperation.READ,\n registry,\n hasResourceId: true,\n requireFrontendAddressable: true,\n contextResourceIdentifiers: parentContextIdentifiers,\n contextualParameters: parentContextualParameters,\n });\n if (!parentReadOperation) {\n return false;\n }\n\n const parentResourceContext = frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType: parentResourceType,\n operation: parentReadOperation,\n contextResourceIdentifiers: parentContextIdentifiers,\n parentResourcesRequirements: parentRequirements,\n });\n const resolvedParentNavigation = NavigationUtils.resolveResourceUrl(\n parentResourceConfig as any,\n parentReadOperation as any,\n normalizeContextResourceIdentifiersForTransport(parentContextIdentifiers),\n registry.allResourceFieldIdentifiers,\n parentRequirements,\n );\n\n navigate({\n content: {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: parentResourceContext,\n },\n initiator: {\n sourceZone: navigationZone,\n },\n urlPath: resolvedParentNavigation?.resolvedUrl,\n });\n return true;\n }, [\n canGoBack,\n currentResourceContext.contextResourceIdentifiers,\n currentResourceContext.parentResourcesRequirements,\n goBack,\n navigate,\n navigationSurface,\n navigationZone,\n registry,\n ]);\n\n const parentReferenceConfig = useMemo<ParentReferenceConfig | undefined>(() => {\n const parentReference = navigationSurface?.parentReference;\n if (!parentReference) return undefined;\n\n return {\n parentResourceType: parentReference.parentResourceType,\n parentResourceId: parentReference.parentResourceId,\n displayMode: parentReference.parentDisplay ?? ParentDisplay.CONTEXT,\n showParentLink: parentReference.showParentLink,\n onNavigateToParent: handleNavigateToParent,\n };\n }, [navigationSurface, handleNavigateToParent]);\n\n const handleError = useCallback((error: Error) => {\n reportError(error, displayFailedLabel, 'ResourceLayoutPreset_Read_Default');\n }, [displayFailedLabel, reportError]);\n\n const handleOperationExecuted = useCallback((executedOperation: FrontendResourceConfiguration_Operation) => {\n const effectiveOperation = resolveEffectiveCoreOperationFromOperation(executedOperation);\n if (effectiveOperation !== CoreResourceOperation.DELETE && effectiveOperation !== CoreResourceOperation.DELETE_MANY) {\n return;\n }\n\n // The record this surface displays no longer exists — deleting the record you\n // stand on must always navigate you OFF it. Three cases:\n // - drilled-in (row click): the revealed entry beneath is the natural target —\n // pop back to it (zone-aware, 2026-07).\n // - non-PRIMARY pane with nothing beneath: goBack(zone) is still the right verb —\n // the controller's own fallback branch closes the pane and restores the\n // primary URL (pinned by \"pops the current navigation zone after a delete\").\n // - DEEP-LINKED in PRIMARY: the READ is ALONE in the page zone, so goBack() is a\n // genuine no-op and the user was stranded on a dead record's view (stale\n // content, refresh → error; found by the browser-nav-zones e2e, 2026-08-19).\n // Navigate to the resource's LIST instead, resolved against the same parent\n // context (a parent-routed READ lands on its nested listing). This chokepoint\n // covers every delete cluster on the READ surface — the action bar and the\n // danger zone both funnel through `onOperationExecuted`.\n if (canGoBack(navigationZone) || navigationZone !== NavigationZoneName.PRIMARY) {\n goBack(navigationZone);\n return;\n }\n\n const listOperation = resolvePreferredOperation(CoreResourceOperation.LIST);\n if (!listOperation) {\n // No LIST surface to land on (e.g. a singleton resource) — keep the historical\n // no-op rather than inventing a target.\n return;\n }\n\n // Strip the deleted record's own id from the target context: the LIST is a\n // collection surface, and carrying a dead id forward would re-inject it as\n // ambient \"current record\" evidence downstream.\n const { [resourceType]: _deletedRecordId, ...contextWithoutSelf } =\n currentResourceContext.contextResourceIdentifiers ?? {};\n navigateToResourceOperation({\n operation: listOperation,\n contextResourceIdentifiers: contextWithoutSelf,\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,\n });\n }, [\n goBack,\n canGoBack,\n navigationZone,\n resolvePreferredOperation,\n navigateToResourceOperation,\n resourceType,\n currentResourceContext.contextResourceIdentifiers,\n currentResourceContext.parentResourcesRequirements,\n ]);\n\n // This READ surface is an EMBEDDED-RESOURCE HOST: an authored `layout.display`\n // template may place a child collection or record directly in its flow, and the\n // embed family resolves everything else from the registry. Memoized because the\n // embeds rebuild their resource context from this value — an unstable identity\n // reintroduces the config-cloning churn the provider's own comment documents.\n const embeddedHostIdentifiers = useMemo(\n () => FrontendResourceUtils.flattenContextIdentifiers(currentResourceContext.contextResourceIdentifiers),\n [currentResourceContext.contextResourceIdentifiers],\n );\n\n if (isReady === false) return null;\n\n if (isSemanticCustomOperation) {\n return (\n <EmbeddedResourceHostProvider\n hostResourceType={currentResourceContext.resourceType}\n contextResourceIdentifiers={embeddedHostIdentifiers}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n >\n {/* The ownership handshake wraps THIS branch too. It renders its own\n inserted views and children container, so a child claimed anywhere in\n this subtree must suppress the container's copy exactly as it does on\n the main branch. Providing it on one branch only would make the\n guarantee depend on which kind of operation the URL resolved to —\n the surface most likely to be missed and least likely to be tested. */}\n <ComposedChildrenRegistryProvider>\n <ResourceLayout_SemanticOperationFallback\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n errorMessage={semanticOperationFailedLabel}\n errorComponent=\"ResourceLayoutPreset_Read_Default\"\n />\n <ResourceLayout_InsertedViews\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n showCharts={showCharts}\n />\n <ResourceLayout_ContainerNested\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n parentData={semanticNestedParentData}\n />\n </ComposedChildrenRegistryProvider>\n </EmbeddedResourceHostProvider>\n );\n }\n\n return (\n <EmbeddedResourceHostProvider\n hostResourceType={currentResourceContext.resourceType}\n contextResourceIdentifiers={embeddedHostIdentifiers}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n >\n {/* D1 — ownership handshake. The template inside the displayer below claims\n any child it places; the automatic container further down skips exactly\n those. Both are inside THIS provider and render in that order, which is\n what lets a single pass settle the question. */}\n <ComposedChildrenRegistryProvider>\n <div className=\"space-y-section\">\n {/* The header owns the whole band: breadcrumb line on top, then the\n title row carrying the action cluster via the `actions` slot — so the\n actions center on the RESOURCE NAME, never on the breadcrumb. */}\n <ResourceLayout_Header\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n actions={\n <>\n {/* Views of this record (composite workspaces, execution runners) that\n asked for the ACTION_BAR placement join the record's own operations\n here — they are things you can do with the record, and this is where\n a reader looks for those. They lead the cluster because a view is a\n destination while the operations beside it act in place. */}\n <ResourceLayout_InsertedViews\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n showCharts={showCharts}\n renderSlot={InsertedViewRenderSlot.ACTION_BAR}\n />\n <ResourceLayout_OperationsItems\n resourceContext={currentResourceContext}\n // The loaded record (populated by `ResourceAutomaticDisplayer`'s\n // `onDataLoaded` below) is the action bar's `currentObject`. Without it,\n // any operation with an `enabledCondition` that reads object state (e.g.\n // organization ACTIVATE/SUSPEND gating on `status`) cannot evaluate and\n // collapses to \"disabled\" for every such op. It is `undefined` until the\n // read resolves, so state-gated actions are correctly disabled while\n // loading and re-evaluate once the record arrives.\n currentObject={parentData}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n displayMode={ResourceOperationDisplayMode.DETAIL}\n // Destructive (DANGER_ZONE-placement) ops leave the bar and render in the\n // danger-zone section at the bottom; the bar keeps only PRIMARY actions.\n placementFilter={ActionPlacement.PRIMARY}\n size={ButtonSize.ICON_SM}\n onOperationExecuted={handleOperationExecuted}\n />\n </>\n }\n />\n\n {/* Record-level secondary navigation — routes into OTHER views of this\n record (composite workspaces, execution runners). It sits directly\n under the identity band, where record sub-navigation is expected, and\n before the record's own content. Charts and inline composites are\n CONTENT and stay below the fields (second mount). */}\n <ResourceLayout_InsertedViews\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n showCharts={showCharts}\n renderSlot={InsertedViewRenderSlot.RECORD_NAVIGATION}\n />\n\n <ResourceAutomaticDisplayer\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n onError={handleError}\n onDataLoaded={setParentData}\n parentReferenceConfig={parentReferenceConfig}\n />\n\n <ResourceLayout_InsertedViews\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n showCharts={showCharts}\n renderSlot={InsertedViewRenderSlot.CONTENT}\n />\n\n {children}\n\n <ResourceLayout_ContainerNested\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n parentData={parentData}\n />\n\n <ResourceLayout_DangerZone\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n currentObject={parentData}\n onOperationExecuted={handleOperationExecuted}\n responsiveMaxWidth=\"measure\"\n />\n </div>\n </ComposedChildrenRegistryProvider>\n </EmbeddedResourceHostProvider>\n );\n};\n\n/**\n * Operation path keys whose `customView` is currently rendering up the tree.\n *\n * A read `customView` may legitimately embed its own host operation inside the\n * composite it renders — e.g. a READ `customView` whose `todo-workspace` composite\n * includes `EmbedHostResourceOperation(READ)`. That embedded host read flows back\n * through `ResourceOperationSurface → ResourceLayout_Read`, which—without this\n * guard—re-resolves the SAME `customView`, recursing infinitely\n * (`TodoReadCustomView → todo-workspace composite → host READ → TodoReadCustomView …`)\n * and freezing the renderer (todos read freeze, 2026-06-28). When an operation's\n * `customView` is already active in the ancestry, we render the DEFAULT preset\n * layout for the re-entered host read instead — surfacing the host resource's data\n * inline (header + displayer + fields) while breaking the cycle.\n */\nconst ActiveCustomViewOperationsContext = createContext<ReadonlySet<string>>(new Set<string>());\n\nexport function ResourceLayout_Read({ preset, ...props }: ResourceLayout_ReadProps): React.JSX.Element {\n const ComponentOverride = resolveResourceOperationCustomView<ResourceLayoutPreset_Read_DefaultProps>(props.resourceContext.operation);\n const operationPreset = resolveResourceOperationPresetKey(props.resourceContext.operation);\n const resolvedPreset = preset ?? operationPreset ?? CorePreset_ResourceLayout_Read.DEFAULT;\n\n const activeCustomViewOperations = useContext(ActiveCustomViewOperationsContext);\n const operationPathKey = useMemo(\n () => ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(props.resourceContext.operation),\n [props.resourceContext.operation],\n );\n // Re-entering the same operation's customView (via EmbedHostResourceOperation in its\n // own composite) would recurse infinitely — fall back to the default layout instead.\n const wouldRecurse = Boolean(ComponentOverride) && activeCustomViewOperations.has(operationPathKey);\n const nextActiveCustomViewOperations = useMemo(\n () => (ComponentOverride && !wouldRecurse\n ? new Set<string>([...activeCustomViewOperations, operationPathKey])\n : activeCustomViewOperations),\n [ComponentOverride, wouldRecurse, activeCustomViewOperations, operationPathKey],\n );\n\n if (ComponentOverride && !wouldRecurse) {\n return (\n <ActiveCustomViewOperationsContext.Provider value={nextActiveCustomViewOperations}>\n <ComponentOverride {...props} />\n </ActiveCustomViewOperationsContext.Provider>\n );\n }\n\n const Component = createComponentResolver<ResourceLayoutPreset_Read_DefaultProps>(FrontendComponentType.RESOURCES_LAYOUTS_READ, 'ResourceLayout_Read')(resolvedPreset);\n return (\n <>\n <Component {...props} />\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ResourceLayout_Read.js","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_Read.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { ResourceAutomaticDisplayer } from '~wildo-frontend-lib/components/data-display/ResourceAutomaticDisplayer';\nimport type { ParentReferenceConfig } from '~wildo-frontend-lib/components/data-display/automatic-displayer.utils';\nimport { useNavigationController } from '~wildo-frontend-lib/core/navigation/useNavigationController';\nimport { NavigationContentType } from '~wildo-frontend-lib/core/navigation/navigation.schemas';\nimport { useNavigationState } from '~wildo-frontend-lib/core/navigation/useNavigationState';\nimport { NavigationUtils } from '~wildo-frontend-lib/core/navigation/navigation.utils';\nimport {\n CoreResourceOperation,\n NavigationZoneName,\n ParentDisplay,\n ResourceOperationDisplayMode,\n ResourcesConfig_OperationPathUtils,\n getChildDirectionRelationships,\n} from '@wildo-ai/saas-models';\nimport { ResourceLayout_Header } from '~wildo-frontend-lib/components/resources/ResourceLayout_Header';\nimport {\n InsertedViewRenderSlot,\n ResourceLayout_InsertedViews,\n} from '~wildo-frontend-lib/components/resources/ResourceLayout_InsertedViews';\nimport { ResourceLayout_ContainerNested } from '~wildo-frontend-lib/components/resources/ResourceLayout_ContainerNested';\nimport { EmbeddedResourceHostProvider } from '~wildo-frontend-lib/components/resources/embeds/EmbeddedResourceHostContext';\nimport { ComposedChildrenRegistryProvider } from '~wildo-frontend-lib/components/resources/embeds/ComposedChildrenRegistry';\nimport { ResourceLayout_OperationsItems } from '~wildo-frontend-lib/components/resources/ResourceLayout_OperationsItems';\nimport { ResourceLayout_DangerZone } from '~wildo-frontend-lib/components/resources/ResourceLayout_DangerZone';\nimport { ActionPlacement } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { resolveRelationshipNavigationSurface } from '~wildo-frontend-lib/core/resources/relationship-surface-runtime.frontend.utils';\nimport { resolveEffectiveCoreOperationFromOperation } from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { pickPreferredOperationForCoreSemanticAddressability } from '~wildo-frontend-lib/core/resources/resource-addressability.frontend.utils';\nimport type {\n FrontendResourceConfiguration_Operation,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { frontendResourceUtils, FrontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { normalizeContextResourceIdentifiersForTransport } from '~wildo-frontend-lib/core/resources/context-resource-identifiers.frontend.utils';\nimport { useResourceOperationSurface } from '~wildo-frontend-lib/core/resources/useResourceOperationSurface';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { resolveComponentLabel } from '~wildo-frontend-lib/core/i18n/component-label-resolution.utils';\n\nimport { ComponentPresetProps } from '~wildo-frontend-lib/core/components-registry/component-registry.frontend.schemas'\nimport { createComponentResolver } from '~wildo-frontend-lib/core/components-registry/component-resolver.frontend.helper'\nimport { FrontendComponentType, CorePreset_ResourceLayout_Read, ButtonSize } from '@wildo-ai/presets-components-models'\nimport {\n resolveResourceOperationPresetKey,\n resolveResourceOperationCustomView,\n} from '~wildo-frontend-lib/core/resources/resource-operation-view.frontend.utils';\nimport { BaseResourcesLayoutProps } from './component-props.resources-layout.frontend.schemas'\nimport { ResourceLayout_SemanticOperationFallback } from './ResourceLayout_SemanticOperationFallback';\n\n// --- Contract ---\nexport interface ResourceLayoutPreset_Read_DefaultProps extends BaseResourcesLayoutProps {\n children?: React.ReactNode;\n showCharts?: boolean;\n}\n\nexport type ResourceLayout_ReadProps = ResourceLayoutPreset_Read_DefaultProps & ComponentPresetProps;\n\nfunction useSemanticReadNestedParentData(params: {\n resourceContext: BaseResourcesLayoutProps['resourceContext'];\n enabled: boolean;\n}): Record<string, unknown> | undefined {\n const { registry, doOperation } = useResourceRegistry();\n const [parentData, setParentData] = useState<Record<string, unknown> | undefined>(undefined);\n\n const shouldPrefetch = useMemo(() => {\n if (!params.enabled) {\n return false;\n }\n\n const resourceConfig = registry.resourceConfigurations[params.resourceContext.resourceType];\n const childRelationships = resourceConfig?.resourceRelationships\n ? getChildDirectionRelationships(resourceConfig.resourceRelationships)\n : [];\n\n return childRelationships.some((relationship) => (\n relationship.discriminator != null || relationship.condition != null\n ));\n }, [params.enabled, params.resourceContext.resourceType, registry]);\n\n useEffect(() => {\n if (!shouldPrefetch) {\n setParentData(undefined);\n return;\n }\n\n const resourceConfig = registry.resourceConfigurations[params.resourceContext.resourceType];\n if (!resourceConfig) {\n setParentData(undefined);\n return;\n }\n\n const contextualParameters = FrontendResourceUtils.buildContextualParameters(\n params.resourceContext.contextResourceIdentifiers,\n registry,\n );\n const resourceId = frontendResourceUtils.getResourceId(\n params.resourceContext.contextResourceIdentifiers?.[params.resourceContext.resourceType],\n );\n const readOperation = pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig,\n operations: resourceConfig.operations ?? [],\n coreOperation: CoreResourceOperation.READ,\n registry,\n hasResourceId: Boolean(resourceId),\n contextResourceIdentifiers: params.resourceContext.contextResourceIdentifiers,\n contextualParameters,\n });\n if (!readOperation) {\n setParentData(undefined);\n return;\n }\n\n const operationPathKey = ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(readOperation);\n let cancelled = false;\n\n void doOperation(operationPathKey, {\n contextualParameters,\n parentResourcesRequirements: params.resourceContext.parentResourcesRequirements,\n }).then((result) => {\n if (cancelled) {\n return;\n }\n\n if (result && typeof result === 'object' && !Array.isArray(result) && !('data' in result)) {\n setParentData(result as Record<string, unknown>);\n return;\n }\n\n setParentData(undefined);\n }).catch(() => {\n if (!cancelled) {\n setParentData(undefined);\n }\n });\n\n return () => {\n cancelled = true;\n };\n }, [\n doOperation,\n params.resourceContext.contextResourceIdentifiers,\n params.resourceContext.parentResourcesRequirements,\n params.resourceContext.resourceType,\n registry,\n shouldPrefetch,\n ]);\n\n return parentData;\n}\n\n/**\n * Default READ layout preset.\n *\n * ── Tabbed Mode Awareness ─────────\n *\n * When NavigationZoneContentModel.TABBED is the zone's content model, multiple\n * READ views of the same resource type can coexist as parallel tabs.\n * This component will receive a `tabContext` prop (future) indicating:\n * - Whether it's rendered inside a tabbed pane\n * - Whether it's the active tab (for lazy rendering optimization)\n * - A callback to update the tab label (e.g., resource title after load)\n *\n * Tab-specific behaviors for READ:\n * - Sub-resource navigation (clicking a child) goes to the NEXT pane,\n * not to a new tab. Tabbed panes are always FLAT.\n * - Operation actions (Edit, Delete) operate on THIS tab's resource.\n * - Delete removes the tab entry via NAVIGATION_CLOSE with entryId.\n *\n * No changes needed here — the zone decides which entry is visible\n * (`zone-visible-entry.ts`) and `NavigationContentAreas` draws the tab bar. This\n * component just needs to be renderable multiple times per zone.\n *\n * This block said \"Phase 5 — not yet implemented\" and named a\n * `NavigationTransition.TAB` that has never existed in the enum. `TABBED` shipped\n * with #411; the stale text would have had a reader re-solve a solved problem.\n */\nexport const ResourceLayoutPreset_Read_Default = ({\n resourceContext,\n navigationZone,\n navigationInitiator,\n inlineParentContext,\n children,\n showCharts = true,\n}: ResourceLayoutPreset_Read_DefaultProps): React.JSX.Element | null => {\n const { goBack, canGoBack, navigate } = useNavigationController();\n const { getZoneState } = useNavigationState();\n const { registry } = useResourceRegistry();\n const { tComponent, isReady } = useI18n({\n component: FrontendComponentType.RESOURCES_LAYOUTS_READ,\n });\n const {\n resourceContext: currentResourceContext,\n resourceType,\n operation,\n isSemanticCustomOperation,\n reportError,\n resolvePreferredOperation,\n navigateToResourceOperation,\n } = useResourceOperationSurface({\n resourceContext,\n navigationZone,\n navigationInitiator,\n });\n\n const [parentData, setParentData] = useState<Record<string, unknown> | undefined>(undefined);\n const displayFailedLabel = resolveComponentLabel({\n tComponent,\n componentType: FrontendComponentType.RESOURCES_LAYOUTS_READ,\n key: 'displayFailed',\n });\n const semanticOperationFailedLabel = resolveComponentLabel({\n tComponent,\n componentType: FrontendComponentType.RESOURCES_LAYOUTS_READ,\n key: 'semanticOperationFailed',\n });\n const semanticNestedParentData = useSemanticReadNestedParentData({\n resourceContext: currentResourceContext,\n enabled: isSemanticCustomOperation,\n });\n\n const navigationSurface = useMemo(() => {\n return resolveRelationshipNavigationSurface({\n inlineParentContext,\n navigationZone,\n navigationInitiator,\n getZoneState,\n });\n }, [inlineParentContext, navigationZone, navigationInitiator, getZoneState]);\n\n // Uses goBack() when the entry BENEATH this one is the parent's own record; otherwise navigates to\n // the parent directly, and failing that the FK Display Preset falls back to a URL-based <Link>.\n const handleNavigateToParent = useCallback((parentId: string) => {\n const parentReference = navigationSurface?.parentReference;\n const parentResourceType = parentReference?.parentResourceType;\n\n /*\n * \"Back\" is the parent only when the parent is what is beneath. This used to go back whenever the\n * zone held more than one entry, so after drilling Task A → Task B, clicking B's PROJECT returned\n * to Task A. In a TABBED zone the other entries are parallel tabs rather than history, and going\n * back closed the tab the reader was on. Both now take the direct navigation below, which already\n * existed for a parent that is not on the stack at all.\n */\n const zoneState = navigationZone ? getZoneState(navigationZone) : undefined;\n const beneath = zoneState && zoneState.activeTabId === undefined\n ? zoneState.stack[zoneState.stack.length - 2]\n : undefined;\n const beneathIsTheParent = beneath?.content.contentType === NavigationContentType.RESOURCE_OPERATION\n && beneath.content.resourceContext.resourceType === parentResourceType\n && frontendResourceUtils.getPrimaryResourceIdentifier(beneath.content.resourceContext) === parentId;\n if (beneathIsTheParent && canGoBack(navigationZone)) {\n goBack(navigationZone);\n return true;\n }\n if (!parentReference || !parentResourceType) {\n return false;\n }\n\n const parentResourceConfig = registry.resourceConfigurations[parentResourceType];\n if (!parentResourceConfig) {\n return false;\n }\n\n const currentContextIdentifiers = currentResourceContext.contextResourceIdentifiers ?? {};\n const currentParentRequirements = currentResourceContext.parentResourcesRequirements ?? [];\n const directParentRequirement = currentParentRequirements[currentParentRequirements.length - 1];\n const canReuseOrderedParentChain = directParentRequirement?.resourceType === parentResourceType;\n const parentRequirements = canReuseOrderedParentChain\n ? currentParentRequirements.slice(0, -1)\n : frontendResourceUtils.buildParentResourcesRequirements(\n parentResourceType,\n currentContextIdentifiers,\n registry,\n );\n const parentContextIdentifiers: Record<string, string | { fieldIdentifier: string; resourceId: string }> = {};\n for (const requirement of parentRequirements) {\n const contextKey = requirement.foreignKeyField ?? requirement.resourceType;\n const identifier = currentContextIdentifiers[contextKey] ?? currentContextIdentifiers[requirement.resourceType];\n const resourceId = frontendResourceUtils.getResourceId(identifier);\n if (!resourceId) {\n continue;\n }\n\n if (requirement.foreignKeyField) {\n parentContextIdentifiers[contextKey] = {\n fieldIdentifier: requirement.foreignKeyField,\n resourceId,\n };\n continue;\n }\n\n parentContextIdentifiers[requirement.resourceType] = resourceId;\n }\n parentContextIdentifiers[parentResourceType] = parentId;\n const parentContextualParameters = FrontendResourceUtils.buildContextualParameters(\n parentContextIdentifiers,\n registry,\n );\n const parentReadOperation = pickPreferredOperationForCoreSemanticAddressability({\n resourceConfig: parentResourceConfig,\n operations: parentResourceConfig.operations ?? [],\n coreOperation: CoreResourceOperation.READ,\n registry,\n hasResourceId: true,\n requireFrontendAddressable: true,\n contextResourceIdentifiers: parentContextIdentifiers,\n contextualParameters: parentContextualParameters,\n });\n if (!parentReadOperation) {\n return false;\n }\n\n const parentResourceContext = frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType: parentResourceType,\n operation: parentReadOperation,\n contextResourceIdentifiers: parentContextIdentifiers,\n parentResourcesRequirements: parentRequirements,\n });\n const resolvedParentNavigation = NavigationUtils.resolveResourceUrl(\n parentResourceConfig as any,\n parentReadOperation as any,\n normalizeContextResourceIdentifiersForTransport(parentContextIdentifiers),\n registry.allResourceFieldIdentifiers,\n parentRequirements,\n );\n\n navigate({\n content: {\n contentType: NavigationContentType.RESOURCE_OPERATION,\n resourceContext: parentResourceContext,\n },\n initiator: {\n sourceZone: navigationZone,\n },\n urlPath: resolvedParentNavigation?.resolvedUrl,\n });\n return true;\n }, [\n canGoBack,\n currentResourceContext.contextResourceIdentifiers,\n currentResourceContext.parentResourcesRequirements,\n getZoneState,\n goBack,\n navigate,\n navigationSurface,\n navigationZone,\n registry,\n ]);\n\n const parentReferenceConfig = useMemo<ParentReferenceConfig | undefined>(() => {\n const parentReference = navigationSurface?.parentReference;\n if (!parentReference) return undefined;\n\n return {\n parentResourceType: parentReference.parentResourceType,\n parentResourceId: parentReference.parentResourceId,\n displayMode: parentReference.parentDisplay ?? ParentDisplay.CONTEXT,\n showParentLink: parentReference.showParentLink,\n onNavigateToParent: handleNavigateToParent,\n };\n }, [navigationSurface, handleNavigateToParent]);\n\n const handleError = useCallback((error: Error) => {\n reportError(error, displayFailedLabel, 'ResourceLayoutPreset_Read_Default');\n }, [displayFailedLabel, reportError]);\n\n const handleOperationExecuted = useCallback((executedOperation: FrontendResourceConfiguration_Operation) => {\n const effectiveOperation = resolveEffectiveCoreOperationFromOperation(executedOperation);\n if (effectiveOperation !== CoreResourceOperation.DELETE && effectiveOperation !== CoreResourceOperation.DELETE_MANY) {\n return;\n }\n\n // The record this surface displays no longer exists — deleting the record you\n // stand on must always navigate you OFF it. Three cases:\n // - drilled-in (row click): the revealed entry beneath is the natural target —\n // pop back to it (zone-aware, 2026-07).\n // - non-PRIMARY pane with nothing beneath: goBack(zone) is still the right verb —\n // the controller's own fallback branch closes the pane and restores the\n // primary URL (pinned by \"pops the current navigation zone after a delete\").\n // - DEEP-LINKED in PRIMARY: the READ is ALONE in the page zone, so goBack() is a\n // genuine no-op and the user was stranded on a dead record's view (stale\n // content, refresh → error; found by the browser-nav-zones e2e, 2026-08-19).\n // Navigate to the resource's LIST instead, resolved against the same parent\n // context (a parent-routed READ lands on its nested listing). This chokepoint\n // covers every delete cluster on the READ surface — the action bar and the\n // danger zone both funnel through `onOperationExecuted`.\n if (canGoBack(navigationZone) || navigationZone !== NavigationZoneName.PRIMARY) {\n goBack(navigationZone);\n return;\n }\n\n const listOperation = resolvePreferredOperation(CoreResourceOperation.LIST);\n if (!listOperation) {\n // No LIST surface to land on (e.g. a singleton resource) — keep the historical\n // no-op rather than inventing a target.\n return;\n }\n\n // Strip the deleted record's own id from the target context: the LIST is a\n // collection surface, and carrying a dead id forward would re-inject it as\n // ambient \"current record\" evidence downstream.\n const { [resourceType]: _deletedRecordId, ...contextWithoutSelf } =\n currentResourceContext.contextResourceIdentifiers ?? {};\n navigateToResourceOperation({\n operation: listOperation,\n contextResourceIdentifiers: contextWithoutSelf,\n parentResourcesRequirements: currentResourceContext.parentResourcesRequirements,\n });\n }, [\n goBack,\n canGoBack,\n navigationZone,\n resolvePreferredOperation,\n navigateToResourceOperation,\n resourceType,\n currentResourceContext.contextResourceIdentifiers,\n currentResourceContext.parentResourcesRequirements,\n ]);\n\n // This READ surface is an EMBEDDED-RESOURCE HOST: an authored `layout.display`\n // template may place a child collection or record directly in its flow, and the\n // embed family resolves everything else from the registry. Memoized because the\n // embeds rebuild their resource context from this value — an unstable identity\n // reintroduces the config-cloning churn the provider's own comment documents.\n const embeddedHostIdentifiers = useMemo(\n () => FrontendResourceUtils.flattenContextIdentifiers(currentResourceContext.contextResourceIdentifiers),\n [currentResourceContext.contextResourceIdentifiers],\n );\n\n if (isReady === false) return null;\n\n if (isSemanticCustomOperation) {\n return (\n <EmbeddedResourceHostProvider\n hostResourceType={currentResourceContext.resourceType}\n contextResourceIdentifiers={embeddedHostIdentifiers}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n >\n {/* The ownership handshake wraps THIS branch too. It renders its own\n inserted views and children container, so a child claimed anywhere in\n this subtree must suppress the container's copy exactly as it does on\n the main branch. Providing it on one branch only would make the\n guarantee depend on which kind of operation the URL resolved to —\n the surface most likely to be missed and least likely to be tested. */}\n <ComposedChildrenRegistryProvider>\n <ResourceLayout_SemanticOperationFallback\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n errorMessage={semanticOperationFailedLabel}\n errorComponent=\"ResourceLayoutPreset_Read_Default\"\n />\n <ResourceLayout_InsertedViews\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n showCharts={showCharts}\n />\n <ResourceLayout_ContainerNested\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n parentData={semanticNestedParentData}\n />\n </ComposedChildrenRegistryProvider>\n </EmbeddedResourceHostProvider>\n );\n }\n\n return (\n <EmbeddedResourceHostProvider\n hostResourceType={currentResourceContext.resourceType}\n contextResourceIdentifiers={embeddedHostIdentifiers}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n >\n {/* D1 — ownership handshake. The template inside the displayer below claims\n any child it places; the automatic container further down skips exactly\n those. Both are inside THIS provider and render in that order, which is\n what lets a single pass settle the question. */}\n <ComposedChildrenRegistryProvider>\n <div className=\"space-y-section\">\n {/* The header owns the whole band: breadcrumb line on top, then the\n title row carrying the action cluster via the `actions` slot — so the\n actions center on the RESOURCE NAME, never on the breadcrumb. */}\n <ResourceLayout_Header\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n parentReferenceConfig={parentReferenceConfig}\n actions={\n <>\n {/* Views of this record (composite workspaces, execution runners) that\n asked for the ACTION_BAR placement join the record's own operations\n here — they are things you can do with the record, and this is where\n a reader looks for those. They lead the cluster because a view is a\n destination while the operations beside it act in place. */}\n <ResourceLayout_InsertedViews\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n showCharts={showCharts}\n renderSlot={InsertedViewRenderSlot.ACTION_BAR}\n />\n <ResourceLayout_OperationsItems\n resourceContext={currentResourceContext}\n // The loaded record (populated by `ResourceAutomaticDisplayer`'s\n // `onDataLoaded` below) is the action bar's `currentObject`. Without it,\n // any operation with an `enabledCondition` that reads object state (e.g.\n // organization ACTIVATE/SUSPEND gating on `status`) cannot evaluate and\n // collapses to \"disabled\" for every such op. It is `undefined` until the\n // read resolves, so state-gated actions are correctly disabled while\n // loading and re-evaluate once the record arrives.\n currentObject={parentData}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n displayMode={ResourceOperationDisplayMode.DETAIL}\n // Destructive (DANGER_ZONE-placement) ops leave the bar and render in the\n // danger-zone section at the bottom; the bar keeps only PRIMARY actions.\n placementFilter={ActionPlacement.PRIMARY}\n size={ButtonSize.ICON_SM}\n onOperationExecuted={handleOperationExecuted}\n />\n </>\n }\n />\n\n {/* Record-level secondary navigation — routes into OTHER views of this\n record (composite workspaces, execution runners). It sits directly\n under the identity band, where record sub-navigation is expected, and\n before the record's own content. Charts and inline composites are\n CONTENT and stay below the fields (second mount). */}\n <ResourceLayout_InsertedViews\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n showCharts={showCharts}\n renderSlot={InsertedViewRenderSlot.RECORD_NAVIGATION}\n />\n\n <ResourceAutomaticDisplayer\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n onError={handleError}\n onDataLoaded={setParentData}\n parentReferenceConfig={parentReferenceConfig}\n />\n\n <ResourceLayout_InsertedViews\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n showCharts={showCharts}\n renderSlot={InsertedViewRenderSlot.CONTENT}\n />\n\n {children}\n\n <ResourceLayout_ContainerNested\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n parentData={parentData}\n />\n\n <ResourceLayout_DangerZone\n resourceContext={currentResourceContext}\n navigationZone={navigationZone}\n navigationInitiator={navigationInitiator}\n currentObject={parentData}\n onOperationExecuted={handleOperationExecuted}\n responsiveMaxWidth=\"measure\"\n />\n </div>\n </ComposedChildrenRegistryProvider>\n </EmbeddedResourceHostProvider>\n );\n};\n\n/**\n * Operation path keys whose `customView` is currently rendering up the tree.\n *\n * A read `customView` may legitimately embed its own host operation inside the\n * composite it renders — e.g. a READ `customView` whose `todo-workspace` composite\n * includes `EmbedHostResourceOperation(READ)`. That embedded host read flows back\n * through `ResourceOperationSurface → ResourceLayout_Read`, which—without this\n * guard—re-resolves the SAME `customView`, recursing infinitely\n * (`TodoReadCustomView → todo-workspace composite → host READ → TodoReadCustomView …`)\n * and freezing the renderer (todos read freeze, 2026-06-28). When an operation's\n * `customView` is already active in the ancestry, we render the DEFAULT preset\n * layout for the re-entered host read instead — surfacing the host resource's data\n * inline (header + displayer + fields) while breaking the cycle.\n */\nconst ActiveCustomViewOperationsContext = createContext<ReadonlySet<string>>(new Set<string>());\n\nexport function ResourceLayout_Read({ preset, ...props }: ResourceLayout_ReadProps): React.JSX.Element {\n const ComponentOverride = resolveResourceOperationCustomView<ResourceLayoutPreset_Read_DefaultProps>(props.resourceContext.operation);\n const operationPreset = resolveResourceOperationPresetKey(props.resourceContext.operation);\n const resolvedPreset = preset ?? operationPreset ?? CorePreset_ResourceLayout_Read.DEFAULT;\n\n const activeCustomViewOperations = useContext(ActiveCustomViewOperationsContext);\n const operationPathKey = useMemo(\n () => ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(props.resourceContext.operation),\n [props.resourceContext.operation],\n );\n // Re-entering the same operation's customView (via EmbedHostResourceOperation in its\n // own composite) would recurse infinitely — fall back to the default layout instead.\n const wouldRecurse = Boolean(ComponentOverride) && activeCustomViewOperations.has(operationPathKey);\n const nextActiveCustomViewOperations = useMemo(\n () => (ComponentOverride && !wouldRecurse\n ? new Set<string>([...activeCustomViewOperations, operationPathKey])\n : activeCustomViewOperations),\n [ComponentOverride, wouldRecurse, activeCustomViewOperations, operationPathKey],\n );\n\n if (ComponentOverride && !wouldRecurse) {\n return (\n <ActiveCustomViewOperationsContext.Provider value={nextActiveCustomViewOperations}>\n <ComponentOverride {...props} />\n </ActiveCustomViewOperationsContext.Provider>\n );\n }\n\n const Component = createComponentResolver<ResourceLayoutPreset_Read_DefaultProps>(FrontendComponentType.RESOURCES_LAYOUTS_READ, 'ResourceLayout_Read')(resolvedPreset);\n return (\n <>\n <Component {...props} />\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceLayout_ReadSummary.d.ts","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_ReadSummary.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAwB,MAAM,OAAO,CAAC;AAQ7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kFAAkF,CAAA;AAGvH,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAA;AAI9F,MAAM,WAAW,6CAA8C,SAAQ,wBAAwB;IAC7F,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"ResourceLayout_ReadSummary.d.ts","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_ReadSummary.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAwB,MAAM,OAAO,CAAC;AAQ7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kFAAkF,CAAA;AAGvH,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAA;AAI9F,MAAM,WAAW,6CAA8C,SAAQ,wBAAwB;IAC7F,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwFD,eAAO,MAAM,wCAAwC,gFA7ElD,6CAA6C,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA6EgC,CAAC;AAE5G,wBAAgB,0BAA0B,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,6CAA6C,GAAG,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAYxJ"}
|
|
@@ -26,7 +26,7 @@ import { LoadingGate } from '../../core/loading/LoadingGate.js';
|
|
|
26
26
|
const ResourceLayoutPreset_ReadSummary_DefaultInner = ({ resourceContext, item, onNavigate, className, }) => {
|
|
27
27
|
const { resourceType } = resourceContext;
|
|
28
28
|
const { registry } = useResourceRegistry();
|
|
29
|
-
const { t, isReady } = useI18n({ component: FrontendComponentType.RESOURCES_LAYOUTS_READ_SUMMARY, resource: resourceType });
|
|
29
|
+
const { t, formatDate, formatDateTime, isReady } = useI18n({ component: FrontendComponentType.RESOURCES_LAYOUTS_READ_SUMMARY, resource: resourceType });
|
|
30
30
|
const i18nKeys = useMemo(() => [
|
|
31
31
|
`resources.${resourceType}`,
|
|
32
32
|
`components.${FrontendComponentType.RESOURCES_LAYOUTS_READ_SUMMARY}`,
|
|
@@ -38,8 +38,10 @@ const ResourceLayoutPreset_ReadSummary_DefaultInner = ({ resourceContext, item,
|
|
|
38
38
|
registry,
|
|
39
39
|
currentObject: item,
|
|
40
40
|
t,
|
|
41
|
+
formatDate,
|
|
42
|
+
formatDateTime,
|
|
41
43
|
}) || String(resourceType);
|
|
42
|
-
}, [item, resourceType, registry, t]);
|
|
44
|
+
}, [item, resourceType, registry, t, formatDate, formatDateTime]);
|
|
43
45
|
const summarySchema = resourceConfig?.mainSchema;
|
|
44
46
|
// When the resource authors a `layout.summary`, the summary displayer owns the
|
|
45
47
|
// ENTIRE content region (title + body): the title is a first-class template
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceLayout_ReadSummary.js","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_ReadSummary.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AAEH,OAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAG7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sEAAsE,CAAC;AAGhH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iFAAiF,CAAA;AACzH,OAAO,EAAE,qBAAqB,EAAE,qCAAqC,EAAE,MAAM,qCAAqC,CAAA;AAElH,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAS3E,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,6CAA6C,GAAG,CAAC,EACrD,eAAe,EACf,IAAI,EACJ,UAAU,EACV,SAAS,GACqC,EAA4B,EAAE;IAC5E,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;IACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE,SAAS,EAAE,qBAAqB,CAAC,8BAA8B,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ResourceLayout_ReadSummary.js","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_ReadSummary.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * ResourceLayoutPreset_ReadSummary_Default\n *\n * Compact summary card used for FK hover/popover previews and inline summaries.\n * Renders: primary label + summary fields via ResourceSummaryDisplayer.\n *\n * Data source: `isSummaryField()` decorated fields from the referenced resource's schema,\n * rendered by the template-based `ResourceSummaryDisplayer`.\n * Primary label: `computeFrontendResourceLabel()` for the resource name.\n *\n * Use case: When hovering an FK link in a list or display view, a popover\n * renders this component to show a quick preview of the referenced resource.\n */\n\nimport React, { memo, useMemo } from 'react';\nimport type { AnyFrontendResourceConfiguration } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\n\nimport { FrontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { ResourceSummaryDisplayer } from '~wildo-frontend-lib/components/data-display/ResourceSummaryDisplayer';\n\nimport { ComponentPresetProps } from '~wildo-frontend-lib/core/components-registry/component-registry.frontend.schemas'\nimport { createComponentResolver } from '~wildo-frontend-lib/core/components-registry/component-resolver.frontend.helper'\nimport { FrontendComponentType, CorePreset_ResourceLayout_ReadSummary } from '@wildo-ai/presets-components-models'\nimport { BaseResourcesLayoutProps } from './component-props.resources-layout.frontend.schemas'\nimport { LoadingGate } from '~wildo-frontend-lib/core/loading/LoadingGate';\n\n// --- Contract ---\nexport interface ResourceLayoutPreset_ReadSummary_DefaultProps extends BaseResourcesLayoutProps {\n item: Record<string, unknown>;\n onNavigate?: (item: Record<string, unknown>) => void;\n className?: string;\n}\n\n// =============================================================================\n// COMPONENT\n// =============================================================================\n\nconst ResourceLayoutPreset_ReadSummary_DefaultInner = ({\n resourceContext,\n item,\n onNavigate,\n className,\n}: ResourceLayoutPreset_ReadSummary_DefaultProps): React.JSX.Element | null => {\n const { resourceType } = resourceContext;\n const { registry } = useResourceRegistry();\n const { t, formatDate, formatDateTime, isReady } = useI18n({ component: FrontendComponentType.RESOURCES_LAYOUTS_READ_SUMMARY, resource: resourceType });\n\n const i18nKeys = useMemo(() => [\n `resources.${resourceType}`,\n `components.${FrontendComponentType.RESOURCES_LAYOUTS_READ_SUMMARY}`,\n ], [resourceType]);\n\n const resourceConfig = registry.resourceConfigurations[resourceType] as AnyFrontendResourceConfiguration | undefined;\n\n const primaryLabel = useMemo(() => {\n return FrontendResourceUtils.computeFrontendResourceLabel({\n resourceType,\n registry,\n currentObject: item,\n t,\n formatDate,\n formatDateTime,\n }) || String(resourceType);\n }, [item, resourceType, registry, t, formatDate, formatDateTime]);\n\n const summarySchema = resourceConfig?.mainSchema;\n\n // When the resource authors a `layout.summary`, the summary displayer owns the\n // ENTIRE content region (title + body): the title is a first-class template\n // element (`<SummaryTitle />`, fed via SummaryContext), so a composed\n // title+badge line renders here in the FK popover identically to the list card.\n // Without an authored template we keep the host-owned title span + the\n // generated body (unchanged look for no-template resources).\n const authoredSummaryTemplate = resourceConfig?.frontendConfiguration?.layout?.summary;\n\n if (!isReady) return null;\n\n return (\n <LoadingGate i18nKeys={i18nKeys}>\n <div\n className={[\n 'flex flex-col gap-element-sm p-card rounded-lg',\n onNavigate ? 'cursor-pointer hover:bg-muted/50 motion-safe:transition-colors' : '',\n className ?? '',\n ].filter(Boolean).join(' ')}\n onClick={onNavigate ? () => onNavigate(item) : undefined}\n role={onNavigate ? 'button' : undefined}\n tabIndex={onNavigate ? 0 : undefined}\n onKeyDown={onNavigate ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onNavigate(item);\n }\n } : undefined}\n >\n {summarySchema && authoredSummaryTemplate ? (\n <ResourceSummaryDisplayer\n resourceType={resourceType}\n schema={summarySchema}\n data={item}\n primaryLabel={primaryLabel}\n />\n ) : (\n <>\n <span className=\"font-medium text-foreground truncate\">{primaryLabel}</span>\n {summarySchema && (\n <ResourceSummaryDisplayer\n resourceType={resourceType}\n schema={summarySchema}\n data={item}\n />\n )}\n </>\n )}\n </div>\n </LoadingGate>\n );\n};\n\nexport const ResourceLayoutPreset_ReadSummary_Default = memo(ResourceLayoutPreset_ReadSummary_DefaultInner);\n\nexport function ResourceLayout_ReadSummary({ preset, ...props }: ResourceLayoutPreset_ReadSummary_DefaultProps & ComponentPresetProps): React.JSX.Element {\n const operationPreset = props.resourceContext.operation.operationFrontendConfig?.displayPresetOverride?.resourceLayoutPresetKey;\n // Fall back to THIS slot's own default-preset enum (value `'DEFAULT'`), which is\n // exactly the key `registerFrameworkLayouts()` registers the default preset under.\n // The generic `CorePresetNames.DEFAULT` is `'Default'` (PascalCase) and does NOT\n // match the registered `'DEFAULT'` key, which surfaced a spurious\n // \"Component not injected (RESOURCES_LAYOUTS_READ_SUMMARY)\" in the inspector.\n // Mirrors ResourceLayout_Read / ResourceLayout_Search, which resolve via their own\n // CorePreset_ResourceLayout_* enums for the same reason.\n const resolvedPreset = preset ?? operationPreset ?? CorePreset_ResourceLayout_ReadSummary.DEFAULT;\n const Component = createComponentResolver<ResourceLayoutPreset_ReadSummary_DefaultProps>(FrontendComponentType.RESOURCES_LAYOUTS_READ_SUMMARY, 'ResourceLayout_ReadSummary')(resolvedPreset);\n return <Component {...props} />;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceLayout_ReadSummary_TableRow.d.ts","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_ReadSummary_TableRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAA+B,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4FAA4F,CAAC;AAatI,MAAM,WAAW,8CAA+C,SAAQ,wBAAwB;IAC9F,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,2GAA2G;IAC3G,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACtD,4EAA4E;IAC5E,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,eAAO,MAAM,yCAAyC,GAAI,+GASvD,8CAA8C,KAAG,KAAK,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"ResourceLayout_ReadSummary_TableRow.d.ts","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_ReadSummary_TableRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAA+B,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4FAA4F,CAAC;AAatI,MAAM,WAAW,8CAA+C,SAAQ,wBAAwB;IAC9F,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,2GAA2G;IAC3G,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACtD,4EAA4E;IAC5E,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,eAAO,MAAM,yCAAyC,GAAI,+GASvD,8CAA8C,KAAG,KAAK,CAAC,GAAG,CAAC,OAuF7D,CAAC"}
|
|
@@ -27,16 +27,20 @@ import { TableCell } from '../../components/sections/table.js';
|
|
|
27
27
|
export const ResourceLayoutPreset_ReadSummary_TableRow = ({ resourceContext, item, summaryFields, fieldLabelsMap, onItemClick, operationsSlot, isSelected, className, }) => {
|
|
28
28
|
const { resourceType } = resourceContext;
|
|
29
29
|
const { registry } = useResourceRegistry();
|
|
30
|
-
const { tResourceFieldEnumValue } = useI18n({ resource: resourceType });
|
|
30
|
+
const { t, formatDate, formatDateTime, tResourceFieldEnumValue } = useI18n({ resource: resourceType });
|
|
31
31
|
const resourceConfig = registry.resourceConfigurations[resourceType];
|
|
32
32
|
// Resolve primary label for the row (used in aria-label for accessibility)
|
|
33
33
|
const primaryLabel = useMemo(() => {
|
|
34
|
+
/* The translator reaches the label callback, as in every other caller (see ResourceListItemRenderer). */
|
|
34
35
|
return FrontendResourceUtils.computeFrontendResourceLabel({
|
|
35
36
|
resourceType,
|
|
36
37
|
registry,
|
|
37
38
|
currentObject: item,
|
|
39
|
+
t,
|
|
40
|
+
formatDate,
|
|
41
|
+
formatDateTime,
|
|
38
42
|
}) || String(item[summaryFields[0]] ?? `${resourceType}`);
|
|
39
|
-
}, [item, resourceType, registry, summaryFields]);
|
|
43
|
+
}, [item, resourceType, registry, summaryFields, t, formatDate, formatDateTime]);
|
|
40
44
|
// Schema shape for field type detection in FieldValueRenderer
|
|
41
45
|
const schemaShape = useMemo(() => {
|
|
42
46
|
const mainSchema = resourceConfig?.mainSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceLayout_ReadSummary_TableRow.js","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_ReadSummary_TableRow.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAIpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mEAAmE,CAAC;AACvG,OAAO,EAAE,4BAA4B,EAAE,MAAM,2EAA2E,CAAC;AACzH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAuB1E,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,EACxD,eAAe,EACf,IAAI,EACJ,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,UAAU,EACV,SAAS,GACsC,EAAqB,EAAE;IACtE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;IACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ResourceLayout_ReadSummary_TableRow.js","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_ReadSummary_TableRow.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * ResourceLayoutPreset_ReadSummary_TableRow\n *\n * Renders a single resource item as a table row (`<tr>`) with summary fields as cells.\n * Used by List_Table (P7-01) for each row in the table view.\n *\n * Design:\n * - Receives pre-computed summaryFields, fieldLabelsMap, and i18n fn from parent table\n * (avoids recomputing per-row).\n * - Each cell uses FieldValueRenderer for schema-aware formatting (FK, enum, date, array).\n * - Cell labels are NOT shown inline — column headers provide them.\n * - Supports row click (navigate to READ), selection state, and operations slot.\n *\n * Implementation ref: ADT:MISC-03, INT §P7-02.\n */\n\nimport React, { useMemo, useCallback } from 'react';\nimport { z } from 'zod';\nimport type { AnyFrontendResourceConfiguration } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { BaseResourcesLayoutProps } from '~wildo-frontend-lib/components/resources/component-props.resources-layout.frontend.schemas';\nimport { FieldValueRenderer } from '~wildo-frontend-lib/components/resources/ResourceListItemRenderer';\nimport { AutomatedLayoutFrontendUtils } from '~wildo-frontend-lib/core/automated-layout/automated-layout.frontend.utils';\nimport { FrontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { FrontendComponentType } from \"@wildo-ai/presets-components-models\"\nimport { TableCell } from '~wildo-frontend-lib/components/sections/table';\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport interface ResourceLayoutPreset_ReadSummary_TableRowProps extends BaseResourcesLayoutProps {\n /** The data item to render */\n item: Record<string, unknown>;\n /** Ordered list of summary field names to render as columns */\n summaryFields: string[];\n /** Pre-resolved field labels from i18n (field name -> label). Used for accessible aria-labels on cells. */\n fieldLabelsMap: Record<string, string>;\n /** Click handler when the row is clicked (navigate to READ) */\n onItemClick?: (item: Record<string, unknown>) => void;\n /** Operations slot for row actions (e.g., dropdown menu, action buttons) */\n operationsSlot?: React.ReactNode;\n /** Whether the row is currently selected (checkbox selection in table) */\n isSelected?: boolean;\n /** Optional class name for the root <tr> */\n className?: string;\n}\n\n// =============================================================================\n// COMPONENT\n// =============================================================================\n\nexport const ResourceLayoutPreset_ReadSummary_TableRow = ({\n resourceContext,\n item,\n summaryFields,\n fieldLabelsMap,\n onItemClick,\n operationsSlot,\n isSelected,\n className,\n}: ResourceLayoutPreset_ReadSummary_TableRowProps): React.JSX.Element => {\n const { resourceType } = resourceContext;\n const { registry } = useResourceRegistry();\n const { t, formatDate, formatDateTime, tResourceFieldEnumValue } = useI18n({ resource: resourceType });\n const resourceConfig = registry.resourceConfigurations[resourceType] as AnyFrontendResourceConfiguration | undefined;\n\n // Resolve primary label for the row (used in aria-label for accessibility)\n const primaryLabel = useMemo(() => {\n /* The translator reaches the label callback, as in every other caller (see ResourceListItemRenderer). */\n return FrontendResourceUtils.computeFrontendResourceLabel({\n resourceType,\n registry,\n currentObject: item,\n t,\n formatDate,\n formatDateTime,\n }) || String(item[summaryFields[0]] ?? `${resourceType}`);\n }, [item, resourceType, registry, summaryFields, t, formatDate, formatDateTime]);\n\n // Schema shape for field type detection in FieldValueRenderer\n const schemaShape = useMemo(() => {\n const mainSchema = resourceConfig?.mainSchema;\n if (!mainSchema) return null;\n // Polymorphic resources feed a discriminated-union schema; resolve the union-aware field shape (else getObjectShape returns null for the union → no field labels).\n return AutomatedLayoutFrontendUtils.getObjectLikeFieldShape(mainSchema, { commonOnly: false }) ?? null;\n }, [resourceConfig]);\n\n const handleRowClick = useCallback(() => {\n onItemClick?.(item);\n }, [onItemClick, item]);\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onItemClick?.(item);\n }\n }, [onItemClick, item]);\n\n return (\n <tr\n className={[\n 'border-b border-border/50 motion-safe:transition-colors',\n onItemClick ? 'cursor-pointer hover:bg-muted/50' : '',\n isSelected ? 'bg-primary/5' : '',\n className ?? '',\n ].filter(Boolean).join(' ')}\n onClick={handleRowClick}\n onKeyDown={handleKeyDown}\n tabIndex={onItemClick ? 0 : undefined}\n aria-label={primaryLabel}\n aria-selected={isSelected}\n >\n {summaryFields.map((fieldName) => {\n const value = item[fieldName];\n return (\n <TableCell\n key={fieldName}\n className=\"px-card py-element text-sm align-middle\"\n truncate\n aria-label={fieldLabelsMap[fieldName]}\n >\n {value !== null && value !== undefined ? (\n <FieldValueRenderer\n fieldName={fieldName}\n value={value}\n fieldSchema={schemaShape?.[fieldName] as z.ZodTypeAny | undefined}\n fieldLabel={undefined} // Column header provides label — no inline label\n resourceType={resourceType}\n record={item as Record<string, unknown>}\n tResourceFieldEnumValue={tResourceFieldEnumValue}\n />\n ) : (\n <span className=\"text-muted-foreground/40\">—</span>\n )}\n </TableCell>\n );\n })}\n {operationsSlot && (\n <TableCell\n className=\"px-card py-element text-sm align-middle text-end\"\n onClick={(e) => e.stopPropagation()}\n >\n {operationsSlot}\n </TableCell>\n )}\n </tr>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceLayout_Search.d.ts","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_Search.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAiBjF,OAAO,EAML,QAAQ,EACT,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ResourceLayout_Search.d.ts","sourceRoot":"","sources":["../../../../../src/components/resources/ResourceLayout_Search.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAiBjF,OAAO,EAML,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAuB/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kFAAkF,CAAA;AAOvH,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAA;AAS9F,MAAM,WAAW,wCAAyC,SAAQ,wBAAwB;IACxF,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AASD,eAAO,MAAM,mCAAmC,GAAI,mFAKjD,wCAAwC,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAqnBjE,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,wCAAwC,GAAG,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqB9I"}
|