@wildo-ai/saas-frontend-lib 1.1.5 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/actions/action-bar.d.ts +15 -0
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.js +15 -0
- package/dist/esm/components/actions/action-bar.js.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.d.ts +97 -7
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +8 -3
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.js +5 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.js.map +1 -1
- package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.js +1 -4
- package/dist/esm/components/auth/Auth_Main.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.js +1 -3
- package/dist/esm/components/auth/Auth_Register.js.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts +7 -0
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.js +13 -7
- package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js +32 -33
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js +18 -20
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js +2 -3
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts +13 -16
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js +18 -15
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.js +2 -2
- package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.js +2 -2
- package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts +33 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.js +34 -5
- package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.js +2 -2
- package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts +2 -0
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.js +1 -0
- package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
- package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayField.js +15 -1
- package/dist/esm/components/data-display/DisplayField.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.js +11 -0
- package/dist/esm/components/data-display/DisplayFieldArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.js +2 -2
- package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +12 -2
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js +3 -2
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js +2 -2
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js +8 -2
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.js +18 -4
- package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js +61 -3
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +7 -5
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +11 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +36 -11
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts +6 -0
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +23 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +35 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +47 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +124 -0
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts +8 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +46 -0
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -0
- package/dist/esm/components/feedback/resource-empty-state.d.ts +21 -8
- package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/resource-empty-state.js +56 -26
- package/dist/esm/components/feedback/resource-empty-state.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.d.ts +29 -7
- package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.js +231 -101
- package/dist/esm/components/flows-actors/approval.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.js +57 -0
- package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.js +4 -4
- package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.js +0 -5
- package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
- package/dist/esm/components/form/Form.d.ts +2 -2
- package/dist/esm/components/form/Form.js +2 -2
- package/dist/esm/components/form/Form.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +28 -3
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.js +43 -14
- package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts +3 -0
- package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormField.js +60 -21
- package/dist/esm/components/form/automated/FormField.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.d.ts +6 -3
- package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.js +3 -2
- package/dist/esm/components/form/automated/FormFieldArray.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +5 -4
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js +148 -55
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts +30 -0
- package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.js +30 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.js.map +1 -1
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts +79 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts.map +1 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js +203 -0
- package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js.map +1 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +12 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.js +11 -0
- package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.js +2 -2
- package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
- package/dist/esm/components/form/combobox.d.ts +7 -0
- package/dist/esm/components/form/combobox.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.js.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.js +13 -0
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.d.ts +58 -0
- package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.js +34 -6
- package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js +60 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.d.ts +0 -12
- package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.js +34 -13
- package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.js +46 -0
- package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +73 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.js +64 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -0
- package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.js +8 -1
- package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.js +4 -0
- package/dist/esm/components/form/fields/form-field-string.labels.js.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts +31 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts.map +1 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.js +81 -0
- package/dist/esm/components/form/validation-errors/resolver-error-nesting.js.map +1 -0
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts +14 -1
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js +14 -0
- package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +22 -0
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +1 -22
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
- package/dist/esm/components/layout/resizable.d.ts +11 -0
- package/dist/esm/components/layout/resizable.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts +11 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js +15 -3
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js +2 -2
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +18 -20
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +7 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js +4 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js +18 -2
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +82 -10
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts +2 -2
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +8 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +8 -2
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.js +6 -2
- package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +31 -16
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js +23 -8
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +2 -2
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts +13 -0
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.js +55 -28
- package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.js +41 -20
- package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.js +1 -2
- package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts +9 -4
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.js +30 -11
- package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +4 -2
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js +6 -2
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.js +30 -14
- package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +14 -198
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.d.ts +2 -2
- package/dist/esm/components/resources/ResourceLayout_Update.js +2 -2
- package/dist/esm/components/resources/ResourceLayout_Update.js.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.js +69 -39
- package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts +32 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts.map +1 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.js +130 -0
- package/dist/esm/components/resources/ResourceOperationActionDropdown.js.map +1 -0
- package/dist/esm/components/resources/collection-create-placement.utils.d.ts +32 -0
- package/dist/esm/components/resources/collection-create-placement.utils.d.ts.map +1 -0
- package/dist/esm/components/resources/collection-create-placement.utils.js +37 -0
- package/dist/esm/components/resources/collection-create-placement.utils.js.map +1 -0
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.js +5 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.js.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts +8 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js +49 -2
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +22 -0
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js +85 -2
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.d.ts +14 -0
- package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.js +22 -0
- package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.js +3 -0
- package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js +33 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.js +3 -0
- package/dist/esm/components/resources/skeleton/ObjectScope.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.d.ts +12 -0
- package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.js +28 -2
- package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts +70 -0
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.js +157 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +6 -0
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.js +13 -2
- package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js +2 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js +61 -15
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +24 -2
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js +69 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js +18 -19
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.js +5 -4
- package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
- package/dist/esm/components/sections/stepper.d.ts +5 -0
- package/dist/esm/components/sections/stepper.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.js.map +1 -1
- package/dist/esm/components/sections/surface.d.ts.map +1 -1
- package/dist/esm/components/sections/surface.js +12 -3
- package/dist/esm/components/sections/surface.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +43 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +129 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +34 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.js +9 -11
- package/dist/esm/components/settings/AppPage_AppearanceSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js +3 -2
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts +4 -2
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.js +21 -3
- package/dist/esm/components/settings/AppPage_BillingSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.js +5 -10
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +58 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +243 -40
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +67 -6
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js +19 -11
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js +4 -2
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.js +3 -0
- package/dist/esm/components/settings/SettingsHub.js.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js +16 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +59 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.js +136 -0
- package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.d.ts +5 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-view.utils.js +5 -0
- package/dist/esm/components/views/chart-view/chart-view.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/useResourceChartData.d.ts +50 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.d.ts.map +1 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.js +72 -0
- package/dist/esm/components/views/chart-view/useResourceChartData.js.map +1 -0
- package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js +2 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts +86 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +187 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -0
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts +5 -2
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts.map +1 -1
- package/dist/esm/core/app-shell/PortalContainerContext.js +5 -2
- package/dist/esm/core/app-shell/PortalContainerContext.js.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts +18 -9
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.js +1 -0
- package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts +10 -0
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.js +28 -5
- package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.js +38 -0
- package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +15 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +47 -13
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/BillingContext.d.ts +25 -2
- package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingContext.js +16 -25
- package/dist/esm/core/billing/BillingContext.js.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts +11 -3
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.js +14 -8
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/useBillingPlanChange.d.ts.map +1 -1
- package/dist/esm/core/billing/useBillingPlanChange.js +2 -0
- package/dist/esm/core/billing/useBillingPlanChange.js.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +1 -0
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts +29 -229
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js +29 -327
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts +17 -27
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js +28 -48
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +21 -11
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.js +4 -4
- package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +17 -0
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.js +17 -0
- package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +10 -10
- package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.js +221 -6
- package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +8 -0
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.js +1 -0
- package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +10 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.js +9 -0
- package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.js +30 -19
- package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
- package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorContext.js +9 -1
- package/dist/esm/core/errors/ErrorContext.js.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.js +5 -4
- package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.js +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.js.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts +2 -2
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.js +4 -4
- package/dist/esm/core/errors/errors-builder.frontend.services.js.map +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
- package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
- package/dist/esm/core/events/NotificationContext.js +23 -5
- package/dist/esm/core/events/NotificationContext.js.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.d.ts +110 -43
- package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.js +89 -15
- package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts +2 -0
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js +2 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +5 -2
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts +63 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js +131 -0
- package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts +61 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js +178 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts +52 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.js +144 -0
- package/dist/esm/core/external-providers/ProviderAddressLookupHost.js.map +1 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts +22 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js +23 -3
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -1
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts +55 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js +65 -0
- package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js.map +1 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +63 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +100 -0
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -0
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +45 -7
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.js +112 -28
- package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +32 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.js +91 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -0
- package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceRenderer.js +3 -2
- package/dist/esm/core/guidance/GuidanceRenderer.js.map +1 -1
- package/dist/esm/core/i18n/I18nContext.d.ts +22 -8
- package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
- package/dist/esm/core/i18n/I18nContext.js +21 -9
- package/dist/esm/core/i18n/I18nContext.js.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts +5 -3
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.js +5 -3
- package/dist/esm/core/i18n/component-label-resolution.utils.js.map +1 -1
- package/dist/esm/core/i18n/useI18n.d.ts +2 -1
- package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
- package/dist/esm/core/i18n/useI18n.js +2 -1
- package/dist/esm/core/i18n/useI18n.js.map +1 -1
- package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingContext.js +7 -1
- package/dist/esm/core/loading/LoadingContext.js.map +1 -1
- package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingGate.js +19 -1
- package/dist/esm/core/loading/LoadingGate.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts +15 -2
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.js +183 -20
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js +2 -2
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts +7 -15
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js +8 -26
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts +12 -3
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js +3 -2
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts +42 -0
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +89 -5
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts +2 -0
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js +2 -0
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts +78 -0
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.js +264 -16
- package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.d.ts +8 -0
- package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.js +137 -30
- package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.d.ts +2 -0
- package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js +1 -0
- package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
- package/dist/esm/core/navigation/navigation-cascade.d.ts +46 -0
- package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -0
- package/dist/esm/core/navigation/navigation-cascade.js +222 -0
- package/dist/esm/core/navigation/navigation-cascade.js.map +1 -0
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js +21 -2
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js.map +1 -1
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts +71 -0
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -0
- package/dist/esm/core/navigation/navigation-controller-internals.js +84 -0
- package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -0
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +86 -2
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js +242 -124
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.d.ts +170 -8
- package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.js +121 -2
- package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.d.ts +102 -6
- package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.js +283 -34
- package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts +0 -10
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +0 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.js.map +0 -1
- package/dist/esm/core/navigation/useNavigationController.d.ts +28 -157
- package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.js +211 -1189
- package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts +174 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.js +977 -0
- package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -0
- package/dist/esm/core/navigation/useOverlayTitle.d.ts +13 -1
- package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
- package/dist/esm/core/navigation/useOverlayTitle.js +15 -10
- package/dist/esm/core/navigation/useOverlayTitle.js.map +1 -1
- package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts +43 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts.map +1 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.js +44 -0
- package/dist/esm/core/navigation/useResponsiveZoneMigration.js.map +1 -0
- package/dist/esm/core/navigation/zone-collapse-migration.d.ts +83 -0
- package/dist/esm/core/navigation/zone-collapse-migration.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-collapse-migration.js +116 -0
- package/dist/esm/core/navigation/zone-collapse-migration.js.map +1 -0
- package/dist/esm/core/navigation/zone-collapse.d.ts +51 -0
- package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-collapse.js +59 -0
- package/dist/esm/core/navigation/zone-collapse.js.map +1 -0
- package/dist/esm/core/navigation/zone-emphasis.d.ts +3 -0
- package/dist/esm/core/navigation/zone-emphasis.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-emphasis.js +26 -4
- package/dist/esm/core/navigation/zone-emphasis.js.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.d.ts +22 -0
- package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.js +25 -0
- package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.js +53 -18
- package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js +3 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts +22 -0
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.js +72 -3
- package/dist/esm/core/requests/websockets/useNotificationBadges.js.map +1 -1
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts +28 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts.map +1 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js +86 -0
- package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js.map +1 -0
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +38 -3
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +57 -2
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +4 -2
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +30 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js +47 -4
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.js +22 -1
- package/dist/esm/core/resources/ResourceRegistryContext.js.map +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts +22 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.js +25 -2
- package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +113 -13
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js +173 -20
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts +11 -0
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js +7 -0
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts +3 -2
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js +13 -5
- package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +6 -0
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js +90 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts +139 -16
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.js +110 -11
- package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js +3 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +10 -0
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js +8 -0
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +7 -0
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.js +9 -2
- package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts +59 -0
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -0
- package/dist/esm/core/resources/useOperationDirectExecution.js +278 -0
- package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -0
- package/dist/esm/core/resources/useResourceOperationActions.d.ts +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.js +69 -22
- package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts +8 -6
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.js +3 -2
- package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
- package/dist/esm/core/runtime/AppRouter.js +23 -2
- package/dist/esm/core/runtime/AppRouter.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts +4 -2
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts +12 -2
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.js +5 -2
- package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +25 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js +37 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts +21 -2
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js +51 -4
- package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.d.ts +11 -0
- package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.js +70 -22
- package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.js +10 -2
- package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.js +72 -8
- package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +7 -0
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.js +8 -2
- package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/useGrantedConsentPurposes.d.ts +30 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.d.ts.map +1 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.js +38 -0
- package/dist/esm/core/security/useGrantedConsentPurposes.js.map +1 -0
- package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
- package/dist/esm/core/ui/UIContext.js +10 -6
- package/dist/esm/core/ui/UIContext.js.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.d.ts +20 -0
- package/dist/esm/core/ui/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.js +39 -5
- package/dist/esm/core/ui/color-conversion.utils.js.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.js +22 -2
- package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts +6 -6
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.js +3 -3
- package/dist/esm/core/ui/ui.frontend.schemas.js.map +1 -1
- package/dist/esm/index.d.ts +10 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +19 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/testing/app-shell-placement-coverage.d.ts +43 -0
- package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -0
- package/dist/esm/testing/app-shell-placement-coverage.js +114 -0
- package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -0
- package/dist/esm/testing/mock-builders.d.ts.map +1 -1
- package/dist/esm/testing/mock-builders.js +5 -0
- package/dist/esm/testing/mock-builders.js.map +1 -1
- package/dist/esm/testing.d.ts +1 -0
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/testing.js +1 -0
- package/dist/esm/testing.js.map +1 -1
- package/package.json +9 -7
- package/dist/esm/core/navigation/useIsStackEntryActive.js +0 -15
- package/dist/tsconfig.build.tsbuildinfo +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-file.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-file.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"form-field-file.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-file.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EA4NrD,CAAC"}
|
|
@@ -19,6 +19,37 @@ export const FormFieldFile_Labels = [
|
|
|
19
19
|
{ ref: 'file_processing', kind: LabelKind.MESSAGE, purpose: 'Wait while the file finishes processing before saving the form' },
|
|
20
20
|
{ ref: 'file_unavailable', kind: LabelKind.MESSAGE, purpose: 'The file was not accepted; remove it or choose another file' },
|
|
21
21
|
{ ref: 'file_readiness_unverified', kind: LabelKind.MESSAGE, purpose: 'File readiness could not be checked; retry the upload or choose another file' },
|
|
22
|
+
{
|
|
23
|
+
ref: 'metadata_load_failed',
|
|
24
|
+
kind: LabelKind.MESSAGE,
|
|
25
|
+
purpose: 'Error shown on a file field in a form when the details of its attached files (name, size, type) could not be loaded; the files are still attached',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
ref: 'uploads_unavailable',
|
|
29
|
+
kind: LabelKind.MESSAGE,
|
|
30
|
+
purpose: 'Error shown when a file is chosen for a field that has nowhere to upload it, so the file was not attached',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
ref: 'file_attached',
|
|
34
|
+
kind: LabelKind.LABEL,
|
|
35
|
+
purpose: 'Neutral name shown for an attached file whose details (such as its file name) could not be loaded',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
ref: 'files_attached',
|
|
39
|
+
kind: LabelKind.LABEL,
|
|
40
|
+
purpose: 'Neutral summary shown in a read-only file field that already holds several files, when the files cannot be listed by name',
|
|
41
|
+
params: [{ key: 'count', meaning: 'number of attached files' }],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
ref: 'uploads_unavailable_placeholder',
|
|
45
|
+
kind: LabelKind.LABEL,
|
|
46
|
+
purpose: 'Placeholder of a read-only file field that cannot accept uploads here, so the person knows why they cannot attach a file',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
ref: 'generated_pdf_read_only',
|
|
50
|
+
kind: LabelKind.LABEL,
|
|
51
|
+
purpose: 'Placeholder of a file field whose PDF the application generates itself, so it cannot be uploaded or replaced by hand',
|
|
52
|
+
},
|
|
22
53
|
{ ref: 'choose_file', kind: LabelKind.BUTTON, purpose: 'Primary button that opens the file picker to select a file to upload' },
|
|
23
54
|
{ ref: 'replace', kind: LabelKind.BUTTON, purpose: 'Button shown when a file already exists, to swap it for a new one' },
|
|
24
55
|
{ ref: 'drag_and_drop', kind: LabelKind.LABEL, purpose: 'Drop-zone hint inviting the user to drag a file onto the field' },
|
|
@@ -173,6 +204,21 @@ export const FormFieldFile_Labels = [
|
|
|
173
204
|
kind: LabelKind.MESSAGE,
|
|
174
205
|
purpose: 'Error shown when a connected service\u2019s file picker could not run at all \u2014 it failed to load, a permission was refused, or the service returned an error',
|
|
175
206
|
},
|
|
207
|
+
{
|
|
208
|
+
ref: 'provider_consent_required',
|
|
209
|
+
kind: LabelKind.MESSAGE,
|
|
210
|
+
purpose: 'Announcement shown where a connected service\u2019s file picker would open, when that service may only run once the person agrees to one or more consent purposes they have not agreed to. Nothing of the service has loaded. Says which service and which purposes, plainly and without pressure; it is not an error and must not read as the person\u2019s mistake.',
|
|
211
|
+
params: [
|
|
212
|
+
{ key: 'provider', meaning: 'display name of the connected service, e.g. a file-storage brand' },
|
|
213
|
+
{ key: 'purposes', meaning: 'comma-separated names of the consent purposes still to agree to, e.g. "Analytics"' },
|
|
214
|
+
],
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
ref: 'provider_consent_grant',
|
|
218
|
+
kind: LabelKind.BUTTON,
|
|
219
|
+
purpose: 'Action agreeing to exactly the listed consent purposes so the connected service\u2019s file picker can load. Agreeing records the person\u2019s choice in their privacy preferences, where it can be withdrawn later.',
|
|
220
|
+
params: [{ key: 'purposes', meaning: 'comma-separated names of the consent purposes being agreed to' }],
|
|
221
|
+
},
|
|
176
222
|
];
|
|
177
223
|
registerComponentLabels(FrontendComponentType.LOW_LEVEL_FORM_FIELD_FILE, FormFieldFile_Labels);
|
|
178
224
|
//# sourceMappingURL=form-field-file.labels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-file.labels.js","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-file.labels.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n FrontendComponentType,\n LabelKind,\n type LabellingUnitaryDef,\n registerComponentLabels,\n} from '@wildo-ai/presets-components-models';\n\n// Companion-only label metadata for this component: keys + params + (where\n// authored) per-key purpose / kind / variable meaning. Statically scanned by\n// the dev companion; NOT imported at runtime, so it never ships in the bundle.\n\nexport const FormFieldFile_Labels: LabellingUnitaryDef[] = [\n { ref: 'accepted_types_all', kind: LabelKind.LABEL, purpose: 'Accepted-types hint when the field accepts any kind of file' },\n { ref: 'accepted_type_image', kind: LabelKind.LABEL, purpose: 'Name of the image file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_video', kind: LabelKind.LABEL, purpose: 'Name of the video file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_audio', kind: LabelKind.LABEL, purpose: 'Name of the audio file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_pdf', kind: LabelKind.LABEL, purpose: 'Name of the PDF file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_office', kind: LabelKind.LABEL, purpose: 'Name of the office-document kind (word processing, spreadsheet, presentation), as one entry in the list of accepted file types' },\n { ref: 'accepted_type_archive', kind: LabelKind.LABEL, purpose: 'Name of the archive file kind (zip and similar), as one entry in the list of accepted file types' },\n { ref: 'accepted_type_text', kind: LabelKind.LABEL, purpose: 'Name of the plain-text file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_markdown', kind: LabelKind.LABEL, purpose: 'Name of the Markdown file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_json', kind: LabelKind.LABEL, purpose: 'Name of the JSON file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_typescript', kind: LabelKind.LABEL, purpose: 'Name of the TypeScript source file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_typescript_react', kind: LabelKind.LABEL, purpose: 'Name of the TypeScript React (TSX) source file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_yaml', kind: LabelKind.LABEL, purpose: 'Name of the YAML file kind, as one entry in the list of accepted file types' },\n { ref: 'file_processing', kind: LabelKind.MESSAGE, purpose: 'Wait while the file finishes processing before saving the form' },\n { ref: 'file_unavailable', kind: LabelKind.MESSAGE, purpose: 'The file was not accepted; remove it or choose another file' },\n { ref: 'file_readiness_unverified', kind: LabelKind.MESSAGE, purpose: 'File readiness could not be checked; retry the upload or choose another file' },\n { ref: 'choose_file', kind: LabelKind.BUTTON, purpose: 'Primary button that opens the file picker to select a file to upload' },\n { ref: 'replace', kind: LabelKind.BUTTON, purpose: 'Button shown when a file already exists, to swap it for a new one' },\n { ref: 'drag_and_drop', kind: LabelKind.LABEL, purpose: 'Drop-zone hint inviting the user to drag a file onto the field' },\n { ref: 'remove', kind: LabelKind.BUTTON, purpose: 'Button/action that clears the currently attached file' },\n {\n ref: 'uploading',\n kind: LabelKind.MESSAGE,\n purpose: 'In-progress status showing how far the current upload has advanced',\n params: [{ key: 'progress', meaning: 'upload completion percentage' }],\n },\n {\n ref: 'max_size',\n kind: LabelKind.MESSAGE,\n purpose: 'Inline hint stating the largest file size the field will accept',\n params: [{ key: 'size', meaning: 'human-readable maximum file size' }],\n },\n { ref: 'min_size', kind: LabelKind.MESSAGE, purpose: 'Inline hint stating that a minimum file size is required' },\n {\n ref: 'file_type_not_allowed',\n kind: LabelKind.MESSAGE,\n purpose: 'Validation error shown when the chosen file has an unaccepted MIME/type',\n params: [{ key: 'accepted', meaning: 'comma-separated list of accepted file types' }],\n },\n {\n ref: 'file_too_large',\n kind: LabelKind.MESSAGE,\n purpose: 'Validation error shown when the chosen file exceeds the maximum size',\n params: [{ key: 'max', meaning: 'human-readable maximum allowed file size' }],\n },\n {\n ref: 'file_too_small',\n kind: LabelKind.MESSAGE,\n purpose: 'Validation error shown when the chosen file is below the minimum size',\n params: [{ key: 'min', meaning: 'human-readable minimum allowed file size' }],\n },\n {\n ref: 'upload_failed_with_status',\n kind: LabelKind.MESSAGE,\n purpose: 'Upload error that surfaces the HTTP status code returned by the server',\n params: [{ key: 'status', meaning: 'HTTP status code returned by the upload request' }],\n },\n { ref: 'upload_failed', kind: LabelKind.MESSAGE, purpose: 'Generic upload error shown when a file could not be uploaded' },\n { ref: 'invalid_server_response', kind: LabelKind.MESSAGE, purpose: 'Error shown when the upload endpoint returns a malformed or unexpected response' },\n { ref: 'add_more', kind: LabelKind.BUTTON, purpose: 'Compact-mode button to append another file in a multi-file field' },\n { ref: 'cancel', kind: LabelKind.ARIA, purpose: 'Accessible label/tooltip for the control that aborts an in-progress upload' },\n {\n ref: 'too_many_files',\n kind: LabelKind.MESSAGE,\n purpose: 'Validation error shown when more files are selected than the field permits',\n params: [{ key: 'max', meaning: 'maximum number of files allowed' }],\n },\n {\n ref: 'some_uploads_failed',\n kind: LabelKind.MESSAGE,\n purpose: 'Summary error shown when only part of a multi-file batch uploaded successfully',\n params: [\n { key: 'failed', meaning: 'number of files that failed to upload' },\n { key: 'total', meaning: 'total number of files in the batch' },\n ],\n },\n { ref: 'uploading_indeterminate', kind: LabelKind.MESSAGE, purpose: 'In-progress status shown while uploading when no percentage is available' },\n {\n ref: 'constraint_accepted_types',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint listing which file types the field accepts',\n params: [{ key: 'types', meaning: 'comma-separated list of accepted file types' }],\n },\n {\n ref: 'constraint_max_size',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum allowed file size constraint',\n params: [{ key: 'max', meaning: 'human-readable maximum file size' }],\n },\n {\n ref: 'constraint_min_size',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the minimum required file size constraint',\n params: [{ key: 'min', meaning: 'human-readable minimum file size' }],\n },\n {\n ref: 'constraint_size_range',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the allowed file-size range when both a minimum and maximum apply',\n params: [\n { key: 'min', meaning: 'human-readable minimum file size' },\n { key: 'max', meaning: 'human-readable maximum file size' },\n ],\n },\n {\n ref: 'constraint_image_dimensions',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the exact pixel dimensions an uploaded image must have',\n params: [\n { key: 'width', meaning: 'required image width in pixels' },\n { key: 'height', meaning: 'required image height in pixels' },\n ],\n },\n {\n ref: 'constraint_image_max_dimensions',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum pixel dimensions an uploaded image may have',\n params: [\n { key: 'width', meaning: 'maximum image width in pixels' },\n { key: 'height', meaning: 'maximum image height in pixels' },\n ],\n },\n {\n ref: 'constraint_image_aspect_ratio',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the aspect ratio an uploaded image must conform to',\n params: [\n { key: 'width', meaning: 'aspect-ratio width component' },\n { key: 'height', meaning: 'aspect-ratio height component' },\n ],\n },\n {\n ref: 'constraint_video_max_duration',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum playback duration allowed for an uploaded video',\n params: [{ key: 'duration', meaning: 'human-readable maximum video duration' }],\n },\n {\n ref: 'constraint_audio_max_duration',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum playback duration allowed for an uploaded audio file',\n params: [{ key: 'duration', meaning: 'human-readable maximum audio duration' }],\n },\n {\n ref: 'constraint_document_max_pages',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum page count allowed for an uploaded document',\n params: [{ key: 'pages', meaning: 'maximum number of document pages allowed' }],\n },\n {\n ref: 'constraint_max_files',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum number of files that may be attached',\n params: [{ key: 'max', meaning: 'maximum number of files allowed' }],\n },\n {\n ref: 'provider_link_failed',\n kind: LabelKind.MESSAGE,\n purpose:\n 'Error shown when a file chosen from a connected service could not be linked to this field \\u2014 the service did not confirm the file, the connection to that service is gone, or the file does not meet the field\\u2019s constraints \\u2014 so it was not attached. Written for the person picking the file; it must not read as their mistake, and must not name an internal delivery mode.',\n },\n {\n ref: 'provider_fetch_failed',\n kind: LabelKind.MESSAGE,\n purpose: 'Error shown when a file chosen from a connected service could not be downloaded by the browser, so it was not attached',\n },\n {\n ref: 'provider_picker_failed',\n kind: LabelKind.MESSAGE,\n purpose: 'Error shown when a connected service\\u2019s file picker could not run at all \\u2014 it failed to load, a permission was refused, or the service returned an error',\n },\n];\nregisterComponentLabels(FrontendComponentType.LOW_LEVEL_FORM_FIELD_FILE, FormFieldFile_Labels);\n"]}
|
|
1
|
+
{"version":3,"file":"form-field-file.labels.js","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-file.labels.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n FrontendComponentType,\n LabelKind,\n type LabellingUnitaryDef,\n registerComponentLabels,\n} from '@wildo-ai/presets-components-models';\n\n// Companion-only label metadata for this component: keys + params + (where\n// authored) per-key purpose / kind / variable meaning. Statically scanned by\n// the dev companion; NOT imported at runtime, so it never ships in the bundle.\n\nexport const FormFieldFile_Labels: LabellingUnitaryDef[] = [\n { ref: 'accepted_types_all', kind: LabelKind.LABEL, purpose: 'Accepted-types hint when the field accepts any kind of file' },\n { ref: 'accepted_type_image', kind: LabelKind.LABEL, purpose: 'Name of the image file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_video', kind: LabelKind.LABEL, purpose: 'Name of the video file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_audio', kind: LabelKind.LABEL, purpose: 'Name of the audio file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_pdf', kind: LabelKind.LABEL, purpose: 'Name of the PDF file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_office', kind: LabelKind.LABEL, purpose: 'Name of the office-document kind (word processing, spreadsheet, presentation), as one entry in the list of accepted file types' },\n { ref: 'accepted_type_archive', kind: LabelKind.LABEL, purpose: 'Name of the archive file kind (zip and similar), as one entry in the list of accepted file types' },\n { ref: 'accepted_type_text', kind: LabelKind.LABEL, purpose: 'Name of the plain-text file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_markdown', kind: LabelKind.LABEL, purpose: 'Name of the Markdown file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_json', kind: LabelKind.LABEL, purpose: 'Name of the JSON file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_typescript', kind: LabelKind.LABEL, purpose: 'Name of the TypeScript source file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_typescript_react', kind: LabelKind.LABEL, purpose: 'Name of the TypeScript React (TSX) source file kind, as one entry in the list of accepted file types' },\n { ref: 'accepted_type_yaml', kind: LabelKind.LABEL, purpose: 'Name of the YAML file kind, as one entry in the list of accepted file types' },\n { ref: 'file_processing', kind: LabelKind.MESSAGE, purpose: 'Wait while the file finishes processing before saving the form' },\n { ref: 'file_unavailable', kind: LabelKind.MESSAGE, purpose: 'The file was not accepted; remove it or choose another file' },\n { ref: 'file_readiness_unverified', kind: LabelKind.MESSAGE, purpose: 'File readiness could not be checked; retry the upload or choose another file' },\n {\n ref: 'metadata_load_failed',\n kind: LabelKind.MESSAGE,\n purpose: 'Error shown on a file field in a form when the details of its attached files (name, size, type) could not be loaded; the files are still attached',\n },\n {\n ref: 'uploads_unavailable',\n kind: LabelKind.MESSAGE,\n purpose: 'Error shown when a file is chosen for a field that has nowhere to upload it, so the file was not attached',\n },\n {\n ref: 'file_attached',\n kind: LabelKind.LABEL,\n purpose: 'Neutral name shown for an attached file whose details (such as its file name) could not be loaded',\n },\n {\n ref: 'files_attached',\n kind: LabelKind.LABEL,\n purpose: 'Neutral summary shown in a read-only file field that already holds several files, when the files cannot be listed by name',\n params: [{ key: 'count', meaning: 'number of attached files' }],\n },\n {\n ref: 'uploads_unavailable_placeholder',\n kind: LabelKind.LABEL,\n purpose: 'Placeholder of a read-only file field that cannot accept uploads here, so the person knows why they cannot attach a file',\n },\n {\n ref: 'generated_pdf_read_only',\n kind: LabelKind.LABEL,\n purpose: 'Placeholder of a file field whose PDF the application generates itself, so it cannot be uploaded or replaced by hand',\n },\n { ref: 'choose_file', kind: LabelKind.BUTTON, purpose: 'Primary button that opens the file picker to select a file to upload' },\n { ref: 'replace', kind: LabelKind.BUTTON, purpose: 'Button shown when a file already exists, to swap it for a new one' },\n { ref: 'drag_and_drop', kind: LabelKind.LABEL, purpose: 'Drop-zone hint inviting the user to drag a file onto the field' },\n { ref: 'remove', kind: LabelKind.BUTTON, purpose: 'Button/action that clears the currently attached file' },\n {\n ref: 'uploading',\n kind: LabelKind.MESSAGE,\n purpose: 'In-progress status showing how far the current upload has advanced',\n params: [{ key: 'progress', meaning: 'upload completion percentage' }],\n },\n {\n ref: 'max_size',\n kind: LabelKind.MESSAGE,\n purpose: 'Inline hint stating the largest file size the field will accept',\n params: [{ key: 'size', meaning: 'human-readable maximum file size' }],\n },\n { ref: 'min_size', kind: LabelKind.MESSAGE, purpose: 'Inline hint stating that a minimum file size is required' },\n {\n ref: 'file_type_not_allowed',\n kind: LabelKind.MESSAGE,\n purpose: 'Validation error shown when the chosen file has an unaccepted MIME/type',\n params: [{ key: 'accepted', meaning: 'comma-separated list of accepted file types' }],\n },\n {\n ref: 'file_too_large',\n kind: LabelKind.MESSAGE,\n purpose: 'Validation error shown when the chosen file exceeds the maximum size',\n params: [{ key: 'max', meaning: 'human-readable maximum allowed file size' }],\n },\n {\n ref: 'file_too_small',\n kind: LabelKind.MESSAGE,\n purpose: 'Validation error shown when the chosen file is below the minimum size',\n params: [{ key: 'min', meaning: 'human-readable minimum allowed file size' }],\n },\n {\n ref: 'upload_failed_with_status',\n kind: LabelKind.MESSAGE,\n purpose: 'Upload error that surfaces the HTTP status code returned by the server',\n params: [{ key: 'status', meaning: 'HTTP status code returned by the upload request' }],\n },\n { ref: 'upload_failed', kind: LabelKind.MESSAGE, purpose: 'Generic upload error shown when a file could not be uploaded' },\n { ref: 'invalid_server_response', kind: LabelKind.MESSAGE, purpose: 'Error shown when the upload endpoint returns a malformed or unexpected response' },\n { ref: 'add_more', kind: LabelKind.BUTTON, purpose: 'Compact-mode button to append another file in a multi-file field' },\n { ref: 'cancel', kind: LabelKind.ARIA, purpose: 'Accessible label/tooltip for the control that aborts an in-progress upload' },\n {\n ref: 'too_many_files',\n kind: LabelKind.MESSAGE,\n purpose: 'Validation error shown when more files are selected than the field permits',\n params: [{ key: 'max', meaning: 'maximum number of files allowed' }],\n },\n {\n ref: 'some_uploads_failed',\n kind: LabelKind.MESSAGE,\n purpose: 'Summary error shown when only part of a multi-file batch uploaded successfully',\n params: [\n { key: 'failed', meaning: 'number of files that failed to upload' },\n { key: 'total', meaning: 'total number of files in the batch' },\n ],\n },\n { ref: 'uploading_indeterminate', kind: LabelKind.MESSAGE, purpose: 'In-progress status shown while uploading when no percentage is available' },\n {\n ref: 'constraint_accepted_types',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint listing which file types the field accepts',\n params: [{ key: 'types', meaning: 'comma-separated list of accepted file types' }],\n },\n {\n ref: 'constraint_max_size',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum allowed file size constraint',\n params: [{ key: 'max', meaning: 'human-readable maximum file size' }],\n },\n {\n ref: 'constraint_min_size',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the minimum required file size constraint',\n params: [{ key: 'min', meaning: 'human-readable minimum file size' }],\n },\n {\n ref: 'constraint_size_range',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the allowed file-size range when both a minimum and maximum apply',\n params: [\n { key: 'min', meaning: 'human-readable minimum file size' },\n { key: 'max', meaning: 'human-readable maximum file size' },\n ],\n },\n {\n ref: 'constraint_image_dimensions',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the exact pixel dimensions an uploaded image must have',\n params: [\n { key: 'width', meaning: 'required image width in pixels' },\n { key: 'height', meaning: 'required image height in pixels' },\n ],\n },\n {\n ref: 'constraint_image_max_dimensions',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum pixel dimensions an uploaded image may have',\n params: [\n { key: 'width', meaning: 'maximum image width in pixels' },\n { key: 'height', meaning: 'maximum image height in pixels' },\n ],\n },\n {\n ref: 'constraint_image_aspect_ratio',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the aspect ratio an uploaded image must conform to',\n params: [\n { key: 'width', meaning: 'aspect-ratio width component' },\n { key: 'height', meaning: 'aspect-ratio height component' },\n ],\n },\n {\n ref: 'constraint_video_max_duration',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum playback duration allowed for an uploaded video',\n params: [{ key: 'duration', meaning: 'human-readable maximum video duration' }],\n },\n {\n ref: 'constraint_audio_max_duration',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum playback duration allowed for an uploaded audio file',\n params: [{ key: 'duration', meaning: 'human-readable maximum audio duration' }],\n },\n {\n ref: 'constraint_document_max_pages',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum page count allowed for an uploaded document',\n params: [{ key: 'pages', meaning: 'maximum number of document pages allowed' }],\n },\n {\n ref: 'constraint_max_files',\n kind: LabelKind.MESSAGE,\n purpose: 'Hint stating the maximum number of files that may be attached',\n params: [{ key: 'max', meaning: 'maximum number of files allowed' }],\n },\n {\n ref: 'provider_link_failed',\n kind: LabelKind.MESSAGE,\n purpose:\n 'Error shown when a file chosen from a connected service could not be linked to this field \\u2014 the service did not confirm the file, the connection to that service is gone, or the file does not meet the field\\u2019s constraints \\u2014 so it was not attached. Written for the person picking the file; it must not read as their mistake, and must not name an internal delivery mode.',\n },\n {\n ref: 'provider_fetch_failed',\n kind: LabelKind.MESSAGE,\n purpose: 'Error shown when a file chosen from a connected service could not be downloaded by the browser, so it was not attached',\n },\n {\n ref: 'provider_picker_failed',\n kind: LabelKind.MESSAGE,\n purpose: 'Error shown when a connected service\\u2019s file picker could not run at all \\u2014 it failed to load, a permission was refused, or the service returned an error',\n },\n {\n ref: 'provider_consent_required',\n kind: LabelKind.MESSAGE,\n purpose:\n 'Announcement shown where a connected service\\u2019s file picker would open, when that service may only run once the person agrees to one or more consent purposes they have not agreed to. Nothing of the service has loaded. Says which service and which purposes, plainly and without pressure; it is not an error and must not read as the person\\u2019s mistake.',\n params: [\n { key: 'provider', meaning: 'display name of the connected service, e.g. a file-storage brand' },\n { key: 'purposes', meaning: 'comma-separated names of the consent purposes still to agree to, e.g. \"Analytics\"' },\n ],\n },\n {\n ref: 'provider_consent_grant',\n kind: LabelKind.BUTTON,\n purpose:\n 'Action agreeing to exactly the listed consent purposes so the connected service\\u2019s file picker can load. Agreeing records the person\\u2019s choice in their privacy preferences, where it can be withdrawn later.',\n params: [{ key: 'purposes', meaning: 'comma-separated names of the consent purposes being agreed to' }],\n },\n];\nregisterComponentLabels(FrontendComponentType.LOW_LEVEL_FORM_FIELD_FILE, FormFieldFile_Labels);\n"]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ControlBaseProps, FieldOption } from '../../../components/form/form-field-types';
|
|
3
|
+
/**
|
|
4
|
+
* The ONE role a string field names, picked from the organization role table (#1921) — the control behind
|
|
5
|
+
* `StringEditMode.ORGANIZATION_ROLE`.
|
|
6
|
+
*
|
|
7
|
+
* ## Why a picker, and why here
|
|
8
|
+
*
|
|
9
|
+
* A setting that admits "the role named X" (`agentWorkCaptureSettings.contentReaderRole` first) used to be a text
|
|
10
|
+
* input: an administrator had to spell a role key exactly, and a typo named a role nobody holds, so the setting admitted
|
|
11
|
+
* nobody and nothing said so. The options are the table the backend publishes on `/application-config`
|
|
12
|
+
* (`organizationRoles`: core organization roles plus the application's custom organization roles, less the handler-only
|
|
13
|
+
* roles no person may hold). It is a string EDIT MODE rather than a one-off component so any single-role string field
|
|
14
|
+
* adopts it with one `stringUI({ edit: { editMode: StringEditMode.ORGANIZATION_ROLE } })`.
|
|
15
|
+
*
|
|
16
|
+
* ## Words
|
|
17
|
+
*
|
|
18
|
+
* Each option reads as the role's word from the application's `roles` labels (`tRole`), the same words the member
|
|
19
|
+
* directory shows. A role with no authored word shows its key — a missing label that looks missing.
|
|
20
|
+
*
|
|
21
|
+
* ## Which roles: this organization's
|
|
22
|
+
*
|
|
23
|
+
* The published table is the APPLICATION's organization roles. An organization's TYPE may narrow the roles its members
|
|
24
|
+
* hold (`organizationTypes[type].availableOrgRoles`, which the membership write enforces), so the picker offers the
|
|
25
|
+
* table as that list narrows it for the organization being administered — a role outside it is one no member of this
|
|
26
|
+
* organization can hold, and naming it would admit nobody. The setting's write applies the same rule.
|
|
27
|
+
*
|
|
28
|
+
* ## Clearing
|
|
29
|
+
*
|
|
30
|
+
* A clearable field (an optional one) offers a clear action that emits `''` — the same empty gesture the text input
|
|
31
|
+
* made, which the form's field-clearing normalisation turns into "no value".
|
|
32
|
+
*
|
|
33
|
+
* ## Degradation
|
|
34
|
+
*
|
|
35
|
+
* A backend that publishes no table (one that predates the field) leaves nothing to pick from, so the caller renders a
|
|
36
|
+
* text input instead — {@link organizationRoleTableOf} answers `undefined` for exactly that case. The server stays the
|
|
37
|
+
* control either way: holding a role is decided against the membership, never against what a picker offered.
|
|
38
|
+
*/
|
|
39
|
+
/** What the picker reads from the application's configuration. */
|
|
40
|
+
export interface OrganizationRoleTableSource {
|
|
41
|
+
readonly organizationRoles?: readonly string[];
|
|
42
|
+
readonly organizationTypes?: Readonly<Record<string, {
|
|
43
|
+
readonly availableOrgRoles?: readonly unknown[];
|
|
44
|
+
} | undefined>>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The roles a member of an organization of `organizationType` may hold: the published table, narrowed by that type's
|
|
48
|
+
* `availableOrgRoles` when it declares any (the rule the membership write applies). `undefined` when the backend
|
|
49
|
+
* published no table. An organization with no type, or a type with no list, is not narrowed — as the write does not.
|
|
50
|
+
*/
|
|
51
|
+
export declare function organizationRoleTableOf(appConfig: OrganizationRoleTableSource | undefined, organizationType?: string | null): readonly string[] | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* The picker's options: every role of the table, worded. A CURRENT value the table no longer holds (a custom role the
|
|
54
|
+
* application removed) is kept as the first option, so the field shows what is stored and the administrator can see it
|
|
55
|
+
* needs changing — dropping it would render an empty picker over a setting that still names that role.
|
|
56
|
+
*/
|
|
57
|
+
export declare function listOrganizationRoleOptions(roles: readonly string[], currentValue: string | undefined, roleLabel: (roleKey: string) => string): FieldOption<string>[];
|
|
58
|
+
export interface FormFieldStringOrganizationRoleProps extends Omit<ControlBaseProps, 'value' | 'onChange' | 'defaultValue'> {
|
|
59
|
+
roles: readonly string[];
|
|
60
|
+
value?: string;
|
|
61
|
+
onChange?: (value: string) => void;
|
|
62
|
+
}
|
|
63
|
+
export declare const FormFieldStringOrganizationRole: React.ForwardRefExoticComponent<FormFieldStringOrganizationRoleProps & React.RefAttributes<HTMLButtonElement>>;
|
|
64
|
+
/** The roles a member of the organization being administered may hold, from the running application's configuration. */
|
|
65
|
+
export declare function useOrganizationRoleTable(): readonly string[] | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* The picker when the backend published a role table, and `fallback` (the plain text input) when it did not. A
|
|
68
|
+
* component of its own so the table is read by a hook at a stable position, whichever edit mode the field resolves to.
|
|
69
|
+
*/
|
|
70
|
+
export declare const FormFieldStringOrganizationRoleOrFallback: React.ForwardRefExoticComponent<Omit<FormFieldStringOrganizationRoleProps, "roles"> & {
|
|
71
|
+
fallback: React.ReactNode;
|
|
72
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
73
|
+
//# sourceMappingURL=form-field-string-organization-role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-field-string-organization-role.d.ts","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-string-organization-role.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAA;AAOzG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,kEAAkE;AAClE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC,CAAA;CACvH;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,2BAA2B,GAAG,SAAS,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAO3J;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GACrC,WAAW,CAAC,MAAM,CAAC,EAAE,CAIvB;AAED,MAAM,WAAW,oCAAqC,SAAQ,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IACzH,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAKD,eAAO,MAAM,+BAA+B,gHAgC3C,CAAA;AAGD,wHAAwH;AACxH,wBAAgB,wBAAwB,IAAI,SAAS,MAAM,EAAE,GAAG,SAAS,CAKxE;AAED;;;GAGG;AACH,eAAO,MAAM,yCAAyC;cAEc,KAAK,CAAC,SAAS;2CAKjF,CAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { FrontendComponentType, LabellingTypes } from '@wildo-ai/presets-components-models';
|
|
4
|
+
import { Select } from '../../../components/form/controls/enum/select.js';
|
|
5
|
+
import { useApplication } from '../../../core/runtime/useApplication.js';
|
|
6
|
+
import { useUserOrgs } from '../../../core/security/useUserOrgs.js';
|
|
7
|
+
import { useI18n } from '../../../core/i18n/useI18n.js';
|
|
8
|
+
import { Button, ButtonVariants_Variant } from '../../../components/actions/button.js';
|
|
9
|
+
/**
|
|
10
|
+
* The roles a member of an organization of `organizationType` may hold: the published table, narrowed by that type's
|
|
11
|
+
* `availableOrgRoles` when it declares any (the rule the membership write applies). `undefined` when the backend
|
|
12
|
+
* published no table. An organization with no type, or a type with no list, is not narrowed — as the write does not.
|
|
13
|
+
*/
|
|
14
|
+
export function organizationRoleTableOf(appConfig, organizationType) {
|
|
15
|
+
const roles = appConfig?.organizationRoles;
|
|
16
|
+
if (!roles || roles.length === 0)
|
|
17
|
+
return undefined;
|
|
18
|
+
const available = organizationType ? appConfig?.organizationTypes?.[organizationType]?.availableOrgRoles : undefined;
|
|
19
|
+
if (!available || available.length === 0)
|
|
20
|
+
return roles;
|
|
21
|
+
const allowed = new Set(available.map((role) => String(role)));
|
|
22
|
+
return roles.filter((role) => allowed.has(role));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The picker's options: every role of the table, worded. A CURRENT value the table no longer holds (a custom role the
|
|
26
|
+
* application removed) is kept as the first option, so the field shows what is stored and the administrator can see it
|
|
27
|
+
* needs changing — dropping it would render an empty picker over a setting that still names that role.
|
|
28
|
+
*/
|
|
29
|
+
export function listOrganizationRoleOptions(roles, currentValue, roleLabel) {
|
|
30
|
+
const options = roles.map((role) => ({ value: role, label: roleLabel(role) }));
|
|
31
|
+
if (currentValue && !roles.includes(currentValue))
|
|
32
|
+
options.unshift({ value: currentValue, label: roleLabel(currentValue) });
|
|
33
|
+
return options;
|
|
34
|
+
}
|
|
35
|
+
/** The label namespaces the picker reads: its own placeholder, and the roles' words. Module-level for a stable identity. */
|
|
36
|
+
const ORGANIZATION_ROLE_LABEL_NAMESPACES = [LabellingTypes.ROLES];
|
|
37
|
+
export const FormFieldStringOrganizationRole = React.forwardRef(({ roles, value, onChange, clearable, ...controlProps }, ref) => {
|
|
38
|
+
const { tComponent, tRole } = useI18n({ component: FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, keys: ORGANIZATION_ROLE_LABEL_NAMESPACES });
|
|
39
|
+
const options = React.useMemo(() => listOrganizationRoleOptions(roles, value, (roleKey) => tRole(roleKey, 'label')), [roles, value, tRole]);
|
|
40
|
+
const picker = (_jsx(Select, { ref: ref, ...controlProps, options: options, value: value || undefined, onChange: (next) => onChange?.(next), placeholder: tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'organizationRolePlaceholder') }));
|
|
41
|
+
if (!clearable || !value)
|
|
42
|
+
return picker;
|
|
43
|
+
return (_jsxs("span", { className: "flex items-center gap-element", children: [picker, _jsx(Button, { type: "button", variant: ButtonVariants_Variant.GHOST, disabled: controlProps.disabled || controlProps.readOnly, onClick: () => onChange?.(''), children: tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'organizationRoleClear') })] }));
|
|
44
|
+
});
|
|
45
|
+
FormFieldStringOrganizationRole.displayName = 'FormFieldStringOrganizationRole';
|
|
46
|
+
/** The roles a member of the organization being administered may hold, from the running application's configuration. */
|
|
47
|
+
export function useOrganizationRoleTable() {
|
|
48
|
+
const { appConfig } = useApplication();
|
|
49
|
+
const { organizations, currentOrganizationId } = useUserOrgs();
|
|
50
|
+
const organizationType = organizations.find((organization) => organization._id === currentOrganizationId)?.type;
|
|
51
|
+
return organizationRoleTableOf(appConfig, organizationType);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The picker when the backend published a role table, and `fallback` (the plain text input) when it did not. A
|
|
55
|
+
* component of its own so the table is read by a hook at a stable position, whichever edit mode the field resolves to.
|
|
56
|
+
*/
|
|
57
|
+
export const FormFieldStringOrganizationRoleOrFallback = React.forwardRef(({ fallback, ...props }, ref) => {
|
|
58
|
+
const roles = useOrganizationRoleTable();
|
|
59
|
+
if (!roles)
|
|
60
|
+
return _jsx(_Fragment, { children: fallback });
|
|
61
|
+
return _jsx(FormFieldStringOrganizationRole, { ref: ref, roles: roles, ...props });
|
|
62
|
+
});
|
|
63
|
+
FormFieldStringOrganizationRoleOrFallback.displayName = 'FormFieldStringOrganizationRoleOrFallback';
|
|
64
|
+
//# sourceMappingURL=form-field-string-organization-role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-field-string-organization-role.js","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-string-organization-role.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\n\nimport { FrontendComponentType, LabellingTypes } from '@wildo-ai/presets-components-models'\nimport type { ControlBaseProps, FieldOption } from '~wildo-frontend-lib/components/form/form-field-types'\nimport { Select } from '~wildo-frontend-lib/components/form/controls/enum/select'\nimport { useApplication } from '~wildo-frontend-lib/core/runtime/useApplication'\nimport { useUserOrgs } from '~wildo-frontend-lib/core/security/useUserOrgs'\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n'\nimport { Button, ButtonVariants_Variant } from '~wildo-frontend-lib/components/actions/button'\n\n/**\n * The ONE role a string field names, picked from the organization role table (#1921) — the control behind\n * `StringEditMode.ORGANIZATION_ROLE`.\n *\n * ## Why a picker, and why here\n *\n * A setting that admits \"the role named X\" (`agentWorkCaptureSettings.contentReaderRole` first) used to be a text\n * input: an administrator had to spell a role key exactly, and a typo named a role nobody holds, so the setting admitted\n * nobody and nothing said so. The options are the table the backend publishes on `/application-config`\n * (`organizationRoles`: core organization roles plus the application's custom organization roles, less the handler-only\n * roles no person may hold). It is a string EDIT MODE rather than a one-off component so any single-role string field\n * adopts it with one `stringUI({ edit: { editMode: StringEditMode.ORGANIZATION_ROLE } })`.\n *\n * ## Words\n *\n * Each option reads as the role's word from the application's `roles` labels (`tRole`), the same words the member\n * directory shows. A role with no authored word shows its key — a missing label that looks missing.\n *\n * ## Which roles: this organization's\n *\n * The published table is the APPLICATION's organization roles. An organization's TYPE may narrow the roles its members\n * hold (`organizationTypes[type].availableOrgRoles`, which the membership write enforces), so the picker offers the\n * table as that list narrows it for the organization being administered — a role outside it is one no member of this\n * organization can hold, and naming it would admit nobody. The setting's write applies the same rule.\n *\n * ## Clearing\n *\n * A clearable field (an optional one) offers a clear action that emits `''` — the same empty gesture the text input\n * made, which the form's field-clearing normalisation turns into \"no value\".\n *\n * ## Degradation\n *\n * A backend that publishes no table (one that predates the field) leaves nothing to pick from, so the caller renders a\n * text input instead — {@link organizationRoleTableOf} answers `undefined` for exactly that case. The server stays the\n * control either way: holding a role is decided against the membership, never against what a picker offered.\n */\n\n/** What the picker reads from the application's configuration. */\nexport interface OrganizationRoleTableSource {\n readonly organizationRoles?: readonly string[]\n readonly organizationTypes?: Readonly<Record<string, { readonly availableOrgRoles?: readonly unknown[] } | undefined>>\n}\n\n/**\n * The roles a member of an organization of `organizationType` may hold: the published table, narrowed by that type's\n * `availableOrgRoles` when it declares any (the rule the membership write applies). `undefined` when the backend\n * published no table. An organization with no type, or a type with no list, is not narrowed — as the write does not.\n */\nexport function organizationRoleTableOf(appConfig: OrganizationRoleTableSource | undefined, organizationType?: string | null): readonly string[] | undefined {\n const roles = appConfig?.organizationRoles\n if (!roles || roles.length === 0) return undefined\n const available = organizationType ? appConfig?.organizationTypes?.[organizationType]?.availableOrgRoles : undefined\n if (!available || available.length === 0) return roles\n const allowed = new Set(available.map((role) => String(role)))\n return roles.filter((role) => allowed.has(role))\n}\n\n/**\n * The picker's options: every role of the table, worded. A CURRENT value the table no longer holds (a custom role the\n * application removed) is kept as the first option, so the field shows what is stored and the administrator can see it\n * needs changing — dropping it would render an empty picker over a setting that still names that role.\n */\nexport function listOrganizationRoleOptions(\n roles: readonly string[],\n currentValue: string | undefined,\n roleLabel: (roleKey: string) => string,\n): FieldOption<string>[] {\n const options = roles.map((role) => ({ value: role, label: roleLabel(role) }))\n if (currentValue && !roles.includes(currentValue)) options.unshift({ value: currentValue, label: roleLabel(currentValue) })\n return options\n}\n\nexport interface FormFieldStringOrganizationRoleProps extends Omit<ControlBaseProps, 'value' | 'onChange' | 'defaultValue'> {\n roles: readonly string[]\n value?: string\n onChange?: (value: string) => void\n}\n\n/** The label namespaces the picker reads: its own placeholder, and the roles' words. Module-level for a stable identity. */\nconst ORGANIZATION_ROLE_LABEL_NAMESPACES = [LabellingTypes.ROLES]\n\nexport const FormFieldStringOrganizationRole = React.forwardRef<HTMLButtonElement, FormFieldStringOrganizationRoleProps>(\n ({ roles, value, onChange, clearable, ...controlProps }, ref): React.JSX.Element => {\n const { tComponent, tRole } = useI18n({ component: FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, keys: ORGANIZATION_ROLE_LABEL_NAMESPACES })\n const options = React.useMemo(\n () => listOrganizationRoleOptions(roles, value, (roleKey) => tRole(roleKey, 'label')),\n [roles, value, tRole],\n )\n const picker = (\n <Select\n ref={ref}\n {...controlProps}\n options={options}\n value={value || undefined}\n onChange={(next) => onChange?.(next)}\n placeholder={tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'organizationRolePlaceholder')}\n />\n )\n if (!clearable || !value) return picker\n return (\n <span className=\"flex items-center gap-element\">\n {picker}\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.GHOST}\n disabled={controlProps.disabled || controlProps.readOnly}\n onClick={() => onChange?.('')}\n >\n {tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'organizationRoleClear')}\n </Button>\n </span>\n )\n },\n)\nFormFieldStringOrganizationRole.displayName = 'FormFieldStringOrganizationRole'\n\n/** The roles a member of the organization being administered may hold, from the running application's configuration. */\nexport function useOrganizationRoleTable(): readonly string[] | undefined {\n const { appConfig } = useApplication()\n const { organizations, currentOrganizationId } = useUserOrgs()\n const organizationType = organizations.find((organization) => organization._id === currentOrganizationId)?.type\n return organizationRoleTableOf(appConfig as OrganizationRoleTableSource | undefined, organizationType)\n}\n\n/**\n * The picker when the backend published a role table, and `fallback` (the plain text input) when it did not. A\n * component of its own so the table is read by a hook at a stable position, whichever edit mode the field resolves to.\n */\nexport const FormFieldStringOrganizationRoleOrFallback = React.forwardRef<\n HTMLButtonElement,\n Omit<FormFieldStringOrganizationRoleProps, 'roles'> & { fallback: React.ReactNode }\n>(({ fallback, ...props }, ref): React.JSX.Element => {\n const roles = useOrganizationRoleTable()\n if (!roles) return <>{fallback}</>\n return <FormFieldStringOrganizationRole ref={ref} roles={roles} {...props} />\n})\nFormFieldStringOrganizationRoleOrFallback.displayName = 'FormFieldStringOrganizationRoleOrFallback'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-string.d.ts","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-string.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAKzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kFAAkF,CAAA;AACvH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAA;
|
|
1
|
+
{"version":3,"file":"form-field-string.d.ts","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-string.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAKzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kFAAkF,CAAA;AACvH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAA;AAY5F,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IACzG,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAA;CAChE;AAED,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,cAAc,CAAA;AAE5G;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,iGAqOzC,CAAA;AAGF,eAAO,MAAM,eAAe,wHAQ3B,CAAA"}
|
|
@@ -9,13 +9,14 @@ import { ColorInput } from "../../../components/form/controls/string/color-input
|
|
|
9
9
|
import { PasswordInput } from "../../../components/form/controls/string/password-input.js";
|
|
10
10
|
import { InputOTP, InputOTPGroup, InputOTPSlot } from "../../../components/form/controls/string/input-otp.js";
|
|
11
11
|
import { getStringUI, getStringFormat, getOtpFieldParams, resolveStringEditMode, StringEditMode } from "@wildo-ai/zod-decorators";
|
|
12
|
+
import { FormFieldStringOrganizationRoleOrFallback } from '../../../components/form/fields/form-field-string-organization-role.js';
|
|
12
13
|
/**
|
|
13
14
|
* FormFieldString component
|
|
14
15
|
*
|
|
15
16
|
* Renders a string field according to the edit policy.
|
|
16
17
|
* Forwards ref to the underlying input/textarea for RHF focus support.
|
|
17
18
|
*/
|
|
18
|
-
export const FormFieldString_Preset_Default = React.forwardRef(({ schema, name, disabled, readOnly, className, value: controlledValue, onChange, onBlur, defaultValue, validationMode: validationModeProp, placeholder, autoComplete, autoFocus, controlSize = ControlSize.MD, type, }, ref) => {
|
|
19
|
+
export const FormFieldString_Preset_Default = React.forwardRef(({ schema, name, disabled, readOnly, className, value: controlledValue, onChange, onBlur, defaultValue, validationMode: validationModeProp, placeholder, autoComplete, autoFocus, controlSize = ControlSize.MD, type, clearable, }, ref) => {
|
|
19
20
|
// The HTML default for `<input>` is text-like behavior, but React only
|
|
20
21
|
// renders a `type` attribute when the prop is defined — `<input
|
|
21
22
|
// type={undefined} />` produces an element whose `getAttribute('type')`
|
|
@@ -97,6 +98,12 @@ export const FormFieldString_Preset_Default = React.forwardRef(({ schema, name,
|
|
|
97
98
|
// `InputOTPProps` declares.
|
|
98
99
|
return (_jsx(InputOTP, { ref: ref, name: name, className: className, maxLength: otpMaxLength, value: currentValue, onChange: handleChange, onBlur: handleBlur, disabled: disabled, autoComplete: autoComplete, autoFocus: autoFocus, controlSize: controlSize, children: _jsx(InputOTPGroup, { children: Array.from({ length: otpMaxLength }, (_, i) => (_jsx(InputOTPSlot, { index: i }, i))) }) }));
|
|
99
100
|
}
|
|
101
|
+
case StringEditMode.ORGANIZATION_ROLE: {
|
|
102
|
+
// #1921 — one role of the organization role table, picked rather than typed. A backend that publishes no table
|
|
103
|
+
// leaves nothing to pick from, so the field stays a text input rather than an empty picker.
|
|
104
|
+
const textInput = (_jsx(Input, { ref: ref, ...commonProps, value: currentValue, onChange: handleChange, onBlur: handleBlur, placeholder: placeholder, autoComplete: autoComplete, type: resolvedInputType }));
|
|
105
|
+
return (_jsx(FormFieldStringOrganizationRoleOrFallback, { ref: ref, ...commonProps, value: currentValue, onChange: handleChange, onBlur: handleBlur, clearable: clearable, fallback: textInput }));
|
|
106
|
+
}
|
|
100
107
|
default:
|
|
101
108
|
return (_jsx(Input, { ref: ref, ...commonProps, value: currentValue, onChange: handleChange, onBlur: handleBlur, placeholder: placeholder, autoComplete: autoComplete, type: resolvedInputType }));
|
|
102
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-string.js","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-string.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { ControlSize, CorePresetNames, FrontendComponentType } from '@wildo-ai/presets-components-models'\nimport { createComponentResolverWithRef } from '~wildo-frontend-lib/core/components-registry/component-resolver.frontend.helper'\n\nimport { ComponentPresetProps } from '~wildo-frontend-lib/core/components-registry/component-registry.frontend.schemas'\nimport type { ControlBaseProps } from '~wildo-frontend-lib/components/form/form-field-types'\nimport { Input } from \"~wildo-frontend-lib/components/form/controls/input\"\nimport { Textarea } from \"~wildo-frontend-lib/components/form/controls/string/textarea\"\nimport { MarkdownEditor } from \"~wildo-frontend-lib/components/form/controls/string/markdown-editor\"\nimport { ColorInput } from \"~wildo-frontend-lib/components/form/controls/string/color-input\"\nimport { PasswordInput } from \"~wildo-frontend-lib/components/form/controls/string/password-input\"\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from \"~wildo-frontend-lib/components/form/controls/string/input-otp\"\nimport { getStringUI, getStringFormat, getOtpFieldParams, resolveStringEditMode, StringEditMode } from \"@wildo-ai/zod-decorators\"\nimport { cn } from '~wildo-frontend-lib/core/ui/cn'\n\n// --- Contract ---\nexport interface FormFieldStringProps extends Omit<ControlBaseProps, 'value' | 'onChange' | 'defaultValue'> {\n value?: string\n onChange?: (value: string) => void\n defaultValue?: string\n placeholder?: string\n autoComplete?: string\n type?: 'text' | 'email' | 'url' | 'password' | 'tel' | 'number'\n}\n\nexport type FormFieldStringRef = HTMLInputElement | HTMLTextAreaElement | HTMLButtonElement | HTMLDivElement\n\n/**\n * FormFieldString component\n *\n * Renders a string field according to the edit policy.\n * Forwards ref to the underlying input/textarea for RHF focus support.\n */\nexport const FormFieldString_Preset_Default = React.forwardRef<FormFieldStringRef, FormFieldStringProps>(\n ({\n schema,\n name,\n disabled,\n readOnly,\n className,\n value: controlledValue,\n onChange,\n onBlur,\n defaultValue,\n validationMode: validationModeProp,\n placeholder,\n autoComplete,\n autoFocus,\n controlSize = ControlSize.MD,\n type,\n}, ref): React.JSX.Element => {\n // The HTML default for `<input>` is text-like behavior, but React only\n // renders a `type` attribute when the prop is defined — `<input\n // type={undefined} />` produces an element whose `getAttribute('type')`\n // returns `null`. That's a footgun for downstream tooling (DOM queries,\n // a11y heuristics, autofill detection) that branches on the explicit\n // attribute value. Pin the implicit default so callers omitting `type`\n // still see a stable `text` attribute on the rendered element.\n const resolvedInputType = type ?? 'text'\n const stringUI = getStringUI(schema)\n const stringFormat = getStringFormat(schema)\n\n // Resolved, not read: the editing shape is declared on TWO axes — the\n // per-type `edit.editMode` and the cross-cutting `edit.component` — and this\n // component used to read only the first, so an authored\n // `component: FormFieldComponent.TEXTAREA` rendered a single-line input.\n // `resolveStringEditMode` owns the precedence (per-type wins).\n let editMode = resolveStringEditMode(schema)\n if (!stringUI && stringFormat) {\n // Default to input for most formats\n }\n\n const textareaRows = stringUI?.edit?.textareaRows ?? 4\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = React.useState<string>(defaultValue ?? '')\n\n // Controlled ⇔ the caller supplied a change handler (or a defined value).\n // An RHF-controlled value is legitimately `undefined` on CREATE surfaces;\n // deciding by value alone routed user input into internal state and never\n // called `onChange`, so form state silently stayed empty (`internalValue`\n // doubles as the stable empty-display fallback while controlled-empty).\n const isControlled = onChange !== undefined || controlledValue !== undefined\n const currentValue = controlledValue ?? internalValue\n\n // Handle value change - validation is handled by parent FormField via RHF\n const handleChange = React.useCallback((newValue: string) => {\n if (isControlled) {\n onChange?.(newValue)\n } else {\n setInternalValue(newValue)\n }\n }, [isControlled, onChange])\n\n // Handle blur - validation is handled by parent FormField via RHF\n const handleBlur = React.useCallback(() => {\n onBlur?.()\n }, [onBlur])\n\n // Common props for all edit modes\n const commonProps = {\n schema,\n name,\n disabled,\n readOnly,\n className,\n validationMode: validationModeProp,\n autoFocus,\n controlSize,\n }\n\n // Render based on edit mode\n switch (editMode) {\n case StringEditMode.INPUT:\n return (\n <Input\n ref={ref as React.Ref<HTMLInputElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n autoComplete={autoComplete}\n type={resolvedInputType}\n />\n )\n\n case StringEditMode.TEXTAREA:\n return (\n <Textarea\n ref={ref as React.Ref<HTMLTextAreaElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n rows={textareaRows}\n autoComplete={autoComplete}\n />\n )\n\n case StringEditMode.MARKDOWN:\n // Markdown SOURCE editor (registry-resolved; default preset is a\n // lazy-loaded CodeMirror core). Value stays plain markdown source —\n // display rendering remains on the MARKDOWN display pipeline.\n return (\n <MarkdownEditor\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n autoFocus={autoFocus}\n minRows={textareaRows}\n ariaLabel={name}\n className={className}\n />\n )\n\n case StringEditMode.COLOR:\n return (\n <ColorInput\n ref={ref as React.Ref<HTMLInputElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n />\n )\n\n case StringEditMode.PASSWORD:\n return (\n <PasswordInput\n ref={ref as React.Ref<HTMLInputElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n autoComplete={autoComplete}\n />\n )\n\n case StringEditMode.OTP: {\n const otpParams = getOtpFieldParams(schema)\n const otpMaxLength = otpParams?.maxLength ?? 6\n // NB: this is the one branch that cannot spread `commonProps` wholesale — `InputOTP` is a narrow\n // control contract (`InputOTPProps`) and does not declare the schema-aware members the text controls\n // accept (`schema`, `readOnly`, `validationMode`). Every member it DOES declare must still be\n // forwarded explicitly, or this branch silently drops props every sibling branch honours. That is\n // exactly what happened to `name` and `className` before: the field rendered `name=\"\"`, so the input\n // was unaddressable by name (breaking form-name selectors and weakening password-manager heuristics)\n // and authored classes were ignored. Add the forward here whenever `commonProps` grows a member\n // `InputOTPProps` declares.\n return (\n <InputOTP\n ref={ref as React.Ref<HTMLInputElement>}\n name={name}\n className={className}\n maxLength={otpMaxLength}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n disabled={disabled}\n autoComplete={autoComplete}\n autoFocus={autoFocus}\n controlSize={controlSize}\n >\n <InputOTPGroup>\n {Array.from({ length: otpMaxLength }, (_, i) => (\n <InputOTPSlot key={i} index={i} />\n ))}\n </InputOTPGroup>\n </InputOTP>\n )\n }\n\n default:\n return (\n <Input\n ref={ref as React.Ref<HTMLInputElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n autoComplete={autoComplete}\n type={resolvedInputType}\n />\n )\n }\n})\n\n// --- Wrapper ---\nexport const FormFieldString = forwardRef<FormFieldStringRef, FormFieldStringProps & ComponentPresetProps>(\n ({ preset = CorePresetNames.DEFAULT, ...props }, ref) => {\n const Component = createComponentResolverWithRef<FormFieldStringProps, FormFieldStringRef>(\n FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING,\n 'FormFieldString'\n )(preset)\n return <Component {...props} ref={ref} />\n }\n)\nFormFieldString.displayName = 'FormFieldString'\n"]}
|
|
1
|
+
{"version":3,"file":"form-field-string.js","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-string.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { ControlSize, CorePresetNames, FrontendComponentType } from '@wildo-ai/presets-components-models'\nimport { createComponentResolverWithRef } from '~wildo-frontend-lib/core/components-registry/component-resolver.frontend.helper'\n\nimport { ComponentPresetProps } from '~wildo-frontend-lib/core/components-registry/component-registry.frontend.schemas'\nimport type { ControlBaseProps } from '~wildo-frontend-lib/components/form/form-field-types'\nimport { Input } from \"~wildo-frontend-lib/components/form/controls/input\"\nimport { Textarea } from \"~wildo-frontend-lib/components/form/controls/string/textarea\"\nimport { MarkdownEditor } from \"~wildo-frontend-lib/components/form/controls/string/markdown-editor\"\nimport { ColorInput } from \"~wildo-frontend-lib/components/form/controls/string/color-input\"\nimport { PasswordInput } from \"~wildo-frontend-lib/components/form/controls/string/password-input\"\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from \"~wildo-frontend-lib/components/form/controls/string/input-otp\"\nimport { getStringUI, getStringFormat, getOtpFieldParams, resolveStringEditMode, StringEditMode } from \"@wildo-ai/zod-decorators\"\nimport { cn } from '~wildo-frontend-lib/core/ui/cn'\nimport { FormFieldStringOrganizationRoleOrFallback } from '~wildo-frontend-lib/components/form/fields/form-field-string-organization-role'\n\n// --- Contract ---\nexport interface FormFieldStringProps extends Omit<ControlBaseProps, 'value' | 'onChange' | 'defaultValue'> {\n value?: string\n onChange?: (value: string) => void\n defaultValue?: string\n placeholder?: string\n autoComplete?: string\n type?: 'text' | 'email' | 'url' | 'password' | 'tel' | 'number'\n}\n\nexport type FormFieldStringRef = HTMLInputElement | HTMLTextAreaElement | HTMLButtonElement | HTMLDivElement\n\n/**\n * FormFieldString component\n *\n * Renders a string field according to the edit policy.\n * Forwards ref to the underlying input/textarea for RHF focus support.\n */\nexport const FormFieldString_Preset_Default = React.forwardRef<FormFieldStringRef, FormFieldStringProps>(\n ({\n schema,\n name,\n disabled,\n readOnly,\n className,\n value: controlledValue,\n onChange,\n onBlur,\n defaultValue,\n validationMode: validationModeProp,\n placeholder,\n autoComplete,\n autoFocus,\n controlSize = ControlSize.MD,\n type,\n clearable,\n}, ref): React.JSX.Element => {\n // The HTML default for `<input>` is text-like behavior, but React only\n // renders a `type` attribute when the prop is defined — `<input\n // type={undefined} />` produces an element whose `getAttribute('type')`\n // returns `null`. That's a footgun for downstream tooling (DOM queries,\n // a11y heuristics, autofill detection) that branches on the explicit\n // attribute value. Pin the implicit default so callers omitting `type`\n // still see a stable `text` attribute on the rendered element.\n const resolvedInputType = type ?? 'text'\n const stringUI = getStringUI(schema)\n const stringFormat = getStringFormat(schema)\n\n // Resolved, not read: the editing shape is declared on TWO axes — the\n // per-type `edit.editMode` and the cross-cutting `edit.component` — and this\n // component used to read only the first, so an authored\n // `component: FormFieldComponent.TEXTAREA` rendered a single-line input.\n // `resolveStringEditMode` owns the precedence (per-type wins).\n let editMode = resolveStringEditMode(schema)\n if (!stringUI && stringFormat) {\n // Default to input for most formats\n }\n\n const textareaRows = stringUI?.edit?.textareaRows ?? 4\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = React.useState<string>(defaultValue ?? '')\n\n // Controlled ⇔ the caller supplied a change handler (or a defined value).\n // An RHF-controlled value is legitimately `undefined` on CREATE surfaces;\n // deciding by value alone routed user input into internal state and never\n // called `onChange`, so form state silently stayed empty (`internalValue`\n // doubles as the stable empty-display fallback while controlled-empty).\n const isControlled = onChange !== undefined || controlledValue !== undefined\n const currentValue = controlledValue ?? internalValue\n\n // Handle value change - validation is handled by parent FormField via RHF\n const handleChange = React.useCallback((newValue: string) => {\n if (isControlled) {\n onChange?.(newValue)\n } else {\n setInternalValue(newValue)\n }\n }, [isControlled, onChange])\n\n // Handle blur - validation is handled by parent FormField via RHF\n const handleBlur = React.useCallback(() => {\n onBlur?.()\n }, [onBlur])\n\n // Common props for all edit modes\n const commonProps = {\n schema,\n name,\n disabled,\n readOnly,\n className,\n validationMode: validationModeProp,\n autoFocus,\n controlSize,\n }\n\n // Render based on edit mode\n switch (editMode) {\n case StringEditMode.INPUT:\n return (\n <Input\n ref={ref as React.Ref<HTMLInputElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n autoComplete={autoComplete}\n type={resolvedInputType}\n />\n )\n\n case StringEditMode.TEXTAREA:\n return (\n <Textarea\n ref={ref as React.Ref<HTMLTextAreaElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n rows={textareaRows}\n autoComplete={autoComplete}\n />\n )\n\n case StringEditMode.MARKDOWN:\n // Markdown SOURCE editor (registry-resolved; default preset is a\n // lazy-loaded CodeMirror core). Value stays plain markdown source —\n // display rendering remains on the MARKDOWN display pipeline.\n return (\n <MarkdownEditor\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n autoFocus={autoFocus}\n minRows={textareaRows}\n ariaLabel={name}\n className={className}\n />\n )\n\n case StringEditMode.COLOR:\n return (\n <ColorInput\n ref={ref as React.Ref<HTMLInputElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n />\n )\n\n case StringEditMode.PASSWORD:\n return (\n <PasswordInput\n ref={ref as React.Ref<HTMLInputElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n autoComplete={autoComplete}\n />\n )\n\n case StringEditMode.OTP: {\n const otpParams = getOtpFieldParams(schema)\n const otpMaxLength = otpParams?.maxLength ?? 6\n // NB: this is the one branch that cannot spread `commonProps` wholesale — `InputOTP` is a narrow\n // control contract (`InputOTPProps`) and does not declare the schema-aware members the text controls\n // accept (`schema`, `readOnly`, `validationMode`). Every member it DOES declare must still be\n // forwarded explicitly, or this branch silently drops props every sibling branch honours. That is\n // exactly what happened to `name` and `className` before: the field rendered `name=\"\"`, so the input\n // was unaddressable by name (breaking form-name selectors and weakening password-manager heuristics)\n // and authored classes were ignored. Add the forward here whenever `commonProps` grows a member\n // `InputOTPProps` declares.\n return (\n <InputOTP\n ref={ref as React.Ref<HTMLInputElement>}\n name={name}\n className={className}\n maxLength={otpMaxLength}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n disabled={disabled}\n autoComplete={autoComplete}\n autoFocus={autoFocus}\n controlSize={controlSize}\n >\n <InputOTPGroup>\n {Array.from({ length: otpMaxLength }, (_, i) => (\n <InputOTPSlot key={i} index={i} />\n ))}\n </InputOTPGroup>\n </InputOTP>\n )\n }\n\n case StringEditMode.ORGANIZATION_ROLE: {\n // #1921 — one role of the organization role table, picked rather than typed. A backend that publishes no table\n // leaves nothing to pick from, so the field stays a text input rather than an empty picker.\n const textInput = (\n <Input\n ref={ref as React.Ref<HTMLInputElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n autoComplete={autoComplete}\n type={resolvedInputType}\n />\n )\n return (\n <FormFieldStringOrganizationRoleOrFallback\n ref={ref as React.Ref<HTMLButtonElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n clearable={clearable}\n fallback={textInput}\n />\n )\n }\n\n default:\n return (\n <Input\n ref={ref as React.Ref<HTMLInputElement>}\n {...commonProps}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n autoComplete={autoComplete}\n type={resolvedInputType}\n />\n )\n }\n})\n\n// --- Wrapper ---\nexport const FormFieldString = forwardRef<FormFieldStringRef, FormFieldStringProps & ComponentPresetProps>(\n ({ preset = CorePresetNames.DEFAULT, ...props }, ref) => {\n const Component = createComponentResolverWithRef<FormFieldStringProps, FormFieldStringRef>(\n FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING,\n 'FormFieldString'\n )(preset)\n return <Component {...props} ref={ref} />\n }\n)\nFormFieldString.displayName = 'FormFieldString'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-string.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-string.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,6BAA6B,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"form-field-string.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-string.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,6BAA6B,EAAE,mBAAmB,EAS9D,CAAC"}
|
|
@@ -7,6 +7,10 @@ export const LowLevelFormFieldStringLabels = [
|
|
|
7
7
|
{ ref: 'copyToClipboard', kind: LabelKind.ARIA, purpose: 'Accessible label/tooltip for the button that copies the string value' },
|
|
8
8
|
{ ref: 'revealValue', kind: LabelKind.ARIA, purpose: 'Accessible label/tooltip for the control that unmasks a hidden (password) string value' },
|
|
9
9
|
{ ref: 'hideValue', kind: LabelKind.ARIA, purpose: 'Accessible label/tooltip for the control that re-masks a revealed string value' },
|
|
10
|
+
// #1921 — the single-role picker (`StringEditMode.ORGANIZATION_ROLE`).
|
|
11
|
+
{ ref: 'organizationRolePlaceholder', kind: LabelKind.PLACEHOLDER, purpose: 'Placeholder of a list of the organization\'s roles, shown until one role is chosen' },
|
|
12
|
+
{ ref: 'organizationRoleClear', kind: LabelKind.BUTTON, purpose: 'Button removing the role chosen, so the setting names no role' },
|
|
13
|
+
{ ref: 'untrustedHtmlFrameTitle', kind: LabelKind.ARIA, purpose: 'Accessible title of the frame showing HTML from outside the application (a received email body), whose remote content is blocked' },
|
|
10
14
|
];
|
|
11
15
|
registerComponentLabels(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, LowLevelFormFieldStringLabels);
|
|
12
16
|
//# sourceMappingURL=form-field-string.labels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-string.labels.js","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-string.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,SAAS,EAET,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAE7C,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,6BAA6B,GAA0B;IAClE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,sEAAsE,EAAE;IAC3H,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,sEAAsE,EAAE;IACjI,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,wFAAwF,EAAE;IAC/I,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,gFAAgF,EAAE;
|
|
1
|
+
{"version":3,"file":"form-field-string.labels.js","sourceRoot":"","sources":["../../../../../../src/components/form/fields/form-field-string.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,SAAS,EAET,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAE7C,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,6BAA6B,GAA0B;IAClE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,sEAAsE,EAAE;IAC3H,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,sEAAsE,EAAE;IACjI,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,wFAAwF,EAAE;IAC/I,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,gFAAgF,EAAE;IACrI,uEAAuE;IACvE,EAAE,GAAG,EAAE,6BAA6B,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,oFAAoF,EAAE;IAClK,EAAE,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,+DAA+D,EAAE;IAClI,EAAE,GAAG,EAAE,yBAAyB,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,kIAAkI,EAAE;CACtM,CAAC;AACF,uBAAuB,CAAC,qBAAqB,CAAC,2BAA2B,EAAE,6BAA6B,CAAC,CAAC","sourcesContent":["import {\n FrontendComponentType,\n LabelKind,\n type LabellingUnitaryDef,\n registerComponentLabels,\n} from '@wildo-ai/presets-components-models';\n\n// Companion-only label metadata for this component: keys + params + (where\n// authored) per-key purpose / kind / variable meaning. Statically scanned by\n// the dev companion; NOT imported at runtime, so it never ships in the bundle.\n\nexport const LowLevelFormFieldStringLabels: LabellingUnitaryDef[] = [\n { ref: 'copied', kind: LabelKind.MESSAGE, purpose: 'Confirmation shown after the string value is copied to the clipboard' },\n { ref: 'copyToClipboard', kind: LabelKind.ARIA, purpose: 'Accessible label/tooltip for the button that copies the string value' },\n { ref: 'revealValue', kind: LabelKind.ARIA, purpose: 'Accessible label/tooltip for the control that unmasks a hidden (password) string value' },\n { ref: 'hideValue', kind: LabelKind.ARIA, purpose: 'Accessible label/tooltip for the control that re-masks a revealed string value' },\n // #1921 — the single-role picker (`StringEditMode.ORGANIZATION_ROLE`).\n { ref: 'organizationRolePlaceholder', kind: LabelKind.PLACEHOLDER, purpose: 'Placeholder of a list of the organization\\'s roles, shown until one role is chosen' },\n { ref: 'organizationRoleClear', kind: LabelKind.BUTTON, purpose: 'Button removing the role chosen, so the setting names no role' },\n { ref: 'untrustedHtmlFrameTitle', kind: LabelKind.ARIA, purpose: 'Accessible title of the frame showing HTML from outside the application (a received email body), whose remote content is blocked' },\n];\nregisterComponentLabels(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, LowLevelFormFieldStringLabels);\n"]}
|
|
@@ -47,7 +47,7 @@ function FormErrorSummaryComponent({ title, className, maxErrors = 10, stepField
|
|
|
47
47
|
return fieldErrors.filter(e => stepFields.has(e.path));
|
|
48
48
|
}, [fieldErrors, shouldIncludeFieldErrors, stepFieldNames]);
|
|
49
49
|
const errorsToShow = [...crossFieldErrors, ...filteredServerErrors, ...filteredFieldErrors];
|
|
50
|
-
const formatFieldLabel = useMemo(() => AutomatedLayoutFrontendUtils.createFieldLabelResolver(resourceType, tResourceFieldEdit), [resourceType, tResourceFieldEdit]);
|
|
50
|
+
const formatFieldLabel = useMemo(() => AutomatedLayoutFrontendUtils.createFieldLabelResolver(resourceType, tResourceFieldEdit, schemaContext?.schema), [resourceType, tResourceFieldEdit, schemaContext?.schema]);
|
|
51
51
|
if (errorsToShow.length === 0) {
|
|
52
52
|
return null;
|
|
53
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormErrorSummary.js","sourceRoot":"","sources":["../../../../../../src/components/form/validation-errors/FormErrorSummary.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FormErrorSummary.js","sourceRoot":"","sources":["../../../../../../src/components/form/validation-errors/FormErrorSummary.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useMemo } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { Alert, AlertTitle, AlertDescription } from '~wildo-frontend-lib/components/overlays/containers/alert';\nimport { useIconRegistry } from '~wildo-frontend-lib/core/icons/useIconRegistry';\nimport { IconSize, StandardIconReference } from '~wildo-frontend-lib/core/icons/icon-registry.frontend.schemas';\n\nimport { FrontendComponentType } from '@wildo-ai/presets-components-models';\n\nimport { cn } from '~wildo-frontend-lib/core/ui/cn';\nimport { useOptionalFormSchemaContext } from '../useFormSchemaContext';\nimport { FormContextUtils } from '../form-context.utils';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { AutomatedLayoutFrontendUtils } from '~wildo-frontend-lib/core/automated-layout/automated-layout.frontend.utils';\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\nimport { useSurfacePolicy } from '~wildo-frontend-lib/core/ui/SurfacePolicyContext';\n\nconst logger = LoggerFrontendService.getLogger();\nconst logDebug = logger.debugByType('FormErrorSummary');\nlogger.setDebugTypeLogging('FormErrorSummary', false);\n\nexport interface FormErrorSummaryProps {\n title?: string;\n className?: string;\n maxErrors?: number;\n /**\n * When provided (wizard mode), filters error display to only show errors\n * for fields in the current step. Cross-field/root errors are always shown.\n * When omitted, all errors are shown (non-wizard mode).\n */\n stepFieldNames?: string[];\n}\n\nfunction FormErrorSummaryComponent({\n title,\n className,\n maxErrors = 10,\n stepFieldNames,\n}: FormErrorSummaryProps): React.JSX.Element | null {\n const { formState } = useFormContext();\n const { renderIcon } = useIconRegistry();\n const surfacePolicy = useSurfacePolicy();\n const schemaContext = useOptionalFormSchemaContext();\n const resourceType = schemaContext?.resourceType;\n const { tResourceFieldEdit, tComponent, isReady } = useI18n({\n component: FrontendComponentType.LOW_LEVEL_FORM_MESSAGE,\n ...(resourceType ? { resource: resourceType } : {}),\n });\n \n const effectiveTitle = title ?? tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'formErrorsTitle');\n \n // Show cross-field + server errors by default. Surface policy can promote\n // field-level errors into this summary and FormField suppresses inline copies.\n const { fieldErrors, crossFieldErrors, serverErrors } = FormContextUtils.categorizeErrors(formState.errors);\n const shouldIncludeFieldErrors = surfacePolicy.autoRender?.autoErrorPlacement === 'summary-at-surface-top';\n \n // In wizard mode, filter server errors to only show those for the current step.\n // Cross-field errors (root-level) are always shown — they can't be attributed to a step.\n const filteredServerErrors = useMemo(() => {\n if (!stepFieldNames) return serverErrors;\n const stepFields = new Set(stepFieldNames);\n return serverErrors.filter(e => stepFields.has(e.path));\n }, [serverErrors, stepFieldNames]);\n\n const filteredFieldErrors = useMemo(() => {\n if (!shouldIncludeFieldErrors) return [];\n if (!stepFieldNames) return fieldErrors;\n const stepFields = new Set(stepFieldNames);\n return fieldErrors.filter(e => stepFields.has(e.path));\n }, [fieldErrors, shouldIncludeFieldErrors, stepFieldNames]);\n \n const errorsToShow = [...crossFieldErrors, ...filteredServerErrors, ...filteredFieldErrors];\n \n const formatFieldLabel = useMemo(\n () => AutomatedLayoutFrontendUtils.createFieldLabelResolver(resourceType, tResourceFieldEdit, schemaContext?.schema),\n [resourceType, tResourceFieldEdit, schemaContext?.schema]\n );\n \n if (errorsToShow.length === 0) {\n return null;\n }\n\n if (!isReady) return null;\n\n logDebug('rendering error summary', {\n fieldCount: filteredFieldErrors.length,\n crossFieldCount: crossFieldErrors.length,\n serverCount: filteredServerErrors.length,\n totalServerErrors: serverErrors.length,\n isWizardFiltered: !!stepFieldNames,\n errors: errorsToShow.map(e => ({ path: e.path, type: e.type, message: e.message })),\n });\n \n const displayErrors = errorsToShow.slice(0, maxErrors);\n const hasMoreErrors = errorsToShow.length > maxErrors;\n \n return (\n <Alert \n variant=\"destructive\" \n className={cn(className)}\n role=\"alert\"\n data-testid=\"form-error-summary\"\n >\n <div className=\"flex items-start gap-element\">\n {renderIcon(StandardIconReference.ERROR, { \n size: IconSize.SM, \n className: 'mt-0.5' \n })}\n <div className=\"flex-1\">\n <AlertTitle className=\"mb-element\">{effectiveTitle}</AlertTitle>\n <AlertDescription>\n <ul className=\"list-disc list-inside space-y-item-xs text-sm\">\n {displayErrors.map(({ path, message }, index) => (\n <li key={`${path}-${index}`}>\n <span className=\"font-medium\">{formatFieldLabel(path)}:</span>{' '}\n {message}\n </li>\n ))}\n </ul>\n \n {hasMoreErrors && (\n <p className=\"mt-item text-sm opacity-[var(--opacity-hover)]\">\n {tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'moreErrors', { count: errorsToShow.length - maxErrors })}\n </p>\n )}\n </AlertDescription>\n </div>\n </div>\n </Alert>\n );\n}\n\nFormErrorSummaryComponent.displayName = 'FormErrorSummary';\n\nexport const FormErrorSummary: typeof FormErrorSummaryComponent & { displayName: string } = FormErrorSummaryComponent;\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a resolver's flat, path-keyed field errors become react-hook-form's nested `FieldErrors`, and how
|
|
3
|
+
* they are reported through the browser's native validation when a form asks for it.
|
|
4
|
+
*
|
|
5
|
+
* Ported from `@hookform/resolvers` 5.9.1 (`src/toNestErrors.ts`, `src/validateFieldsNatively.ts`, MIT,
|
|
6
|
+
* © Bluebill1049 and contributors). The logic is unchanged, and `resolver-error-nesting.test.ts` holds it
|
|
7
|
+
* equal to the installed upstream on every case both versions agree on.
|
|
8
|
+
*
|
|
9
|
+
* ## Why this is a copy and not an import (#2029)
|
|
10
|
+
*
|
|
11
|
+
* `zodIssueResolver` used to import these two helpers from `@hookform/resolvers`, deliberately, so that the
|
|
12
|
+
* nesting rules stayed upstream's rather than being re-derived. The cost of that import turned out to fall
|
|
13
|
+
* somewhere else. `@hookform/resolvers` declares twenty-four OPTIONAL peers, one per validation library it
|
|
14
|
+
* supports (ajv, joi, typebox, yup, valibot, …). pnpm resolves an optional peer from whatever the importing
|
|
15
|
+
* application happens to have along the dependency path, and the resolved set becomes part of this
|
|
16
|
+
* package's injected snapshot identity. So every application that consumed `saas-frontend-lib` from two
|
|
17
|
+
* workspace packages with different contexts got two copies of it: Wonder CRM through `ajv` (6.15.0 under
|
|
18
|
+
* the Docusaurus-carrying technical-doc package, 8.20.0 under the companion), a scratch application through
|
|
19
|
+
* `joi` and `@sinclair/typebox`. Supplying the peers one by one would chase an open set. The engine uses
|
|
20
|
+
* about twenty-five lines of the package, so it owns them instead, and the package stays only as a
|
|
21
|
+
* devDependency so the parity test can compare against it.
|
|
22
|
+
*/
|
|
23
|
+
import { type FieldErrors, type FieldValues, type ResolverOptions } from 'react-hook-form';
|
|
24
|
+
/** Reports each field's error through the browser's native constraint validation (web only). */
|
|
25
|
+
export declare const validateFieldsNatively: <TFieldValues extends FieldValues>(errors: FieldErrors, options: ResolverOptions<TFieldValues>) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Nests a flat `{ 'a.b.0.c': error }` map into react-hook-form's `FieldErrors` shape. An error on a field
|
|
28
|
+
* array's own path is recorded as that array's `root` error, and each error carries its field's `ref`.
|
|
29
|
+
*/
|
|
30
|
+
export declare const toNestErrors: <TFieldValues extends FieldValues>(errors: FieldErrors, options: ResolverOptions<TFieldValues>) => FieldErrors<TFieldValues>;
|
|
31
|
+
//# sourceMappingURL=resolver-error-nesting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver-error-nesting.d.ts","sourceRoot":"","sources":["../../../../../../src/components/form/validation-errors/resolver-error-nesting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAyC,KAAK,WAAW,EAAE,KAAK,WAAW,EAAoC,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAUpK,gGAAgG;AAChG,eAAO,MAAM,sBAAsB,GAAI,YAAY,SAAS,WAAW,EAAE,QAAQ,WAAW,EAAE,SAAS,eAAe,CAAC,YAAY,CAAC,KAAG,IAStI,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,YAAY,SAAS,WAAW,EAAE,QAAQ,WAAW,EAAE,SAAS,eAAe,CAAC,YAAY,CAAC,KAAG,WAAW,CAAC,YAAY,CAsBpJ,CAAC"}
|