@12-apps/ui 6.6.0 → 6.8.0
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/{chunk-QLBYAYUG.js → chunk-KR2BP7NK.js} +4 -4
- package/dist/chunk-KR2BP7NK.js.map +1 -0
- package/dist/{chunk-DFVRZ3UK.js → chunk-KXARS46L.js} +3 -3
- package/dist/chunk-KXARS46L.js.map +1 -0
- package/dist/{chunk-JP55QWVR.js → chunk-L7L6SX64.js} +5 -2
- package/dist/chunk-L7L6SX64.js.map +1 -0
- package/dist/{chunk-QZZVHY6U.js → chunk-PVLDKXKR.js} +7 -3
- package/dist/chunk-PVLDKXKR.js.map +1 -0
- package/dist/{chunk-3KWD5Y5O.js → chunk-RXE5CUUE.js} +8 -4
- package/dist/chunk-RXE5CUUE.js.map +1 -0
- package/dist/{chunk-H7UAGTVW.js → chunk-TSG5C7MP.js} +4 -3
- package/dist/chunk-TSG5C7MP.js.map +1 -0
- package/dist/{chunk-NUCLEOHF.js → chunk-UNM7KFDX.js} +44 -14
- package/dist/chunk-UNM7KFDX.js.map +1 -0
- package/dist/{chunk-CEKPLUQV.js → chunk-UY7UF7IN.js} +19 -13
- package/dist/chunk-UY7UF7IN.js.map +1 -0
- package/dist/data-display/Alert.js +1 -1
- package/dist/data-display/AsyncStateContainer.js +2 -1
- package/dist/data-display/AsyncStateContainer.js.map +1 -1
- package/dist/data-display/Banner.js +4 -2
- package/dist/data-display/Banner.js.map +1 -1
- package/dist/data-display/CardKit.js +3 -1
- package/dist/data-display/CardKit.js.map +1 -1
- package/dist/data-display/Carousel.js +5 -2
- package/dist/data-display/Carousel.js.map +1 -1
- package/dist/data-display/DataGrid.js +1 -1
- package/dist/data-display/DataViews.js +90 -66
- package/dist/data-display/DataViews.js.map +1 -1
- package/dist/data-display/HoverCard.js +4 -1
- package/dist/data-display/HoverCard.js.map +1 -1
- package/dist/data-display/Lightbox.js +147 -117
- package/dist/data-display/Lightbox.js.map +1 -1
- package/dist/data-display/MapPreview.js +14 -10
- package/dist/data-display/MapPreview.js.map +1 -1
- package/dist/data-display/Table.js +4 -2
- package/dist/data-display/Table.js.map +1 -1
- package/dist/data-display/TimingDiagram.js +3 -2
- package/dist/data-display/TimingDiagram.js.map +1 -1
- package/dist/feedback/Sonner.js +5 -4
- package/dist/feedback/Sonner.js.map +1 -1
- package/dist/feedback/StackedModal.js +1 -1
- package/dist/feedback/TutorialOverlay.js +19 -5
- package/dist/feedback/TutorialOverlay.js.map +1 -1
- package/dist/form/AddressAutocomplete.js +16 -8
- package/dist/form/AddressAutocomplete.js.map +1 -1
- package/dist/form/Autocomplete.js +9 -7
- package/dist/form/Autocomplete.js.map +1 -1
- package/dist/form/Calendar.js +1 -1
- package/dist/form/CodeEditor.js +14 -9
- package/dist/form/CodeEditor.js.map +1 -1
- package/dist/form/DateRangePicker.js +10 -3
- package/dist/form/DateRangePicker.js.map +1 -1
- package/dist/form/Menubar.js +4 -1
- package/dist/form/Menubar.js.map +1 -1
- package/dist/form/PasswordStrength.js +48 -28
- package/dist/form/PasswordStrength.js.map +1 -1
- package/dist/form/PhoneInput.js +11 -5
- package/dist/form/PhoneInput.js.map +1 -1
- package/dist/form/SearchPalette.js +4 -1
- package/dist/form/SearchPalette.js.map +1 -1
- package/dist/form/Textarea.js +21 -19
- package/dist/form/Textarea.js.map +1 -1
- package/dist/form/UploadButton.js +16 -11
- package/dist/form/UploadButton.js.map +1 -1
- package/dist/layout/ContentToolbar.js +1 -1
- package/dist/layout/Dashboard.js +2 -1
- package/dist/layout/Dashboard.js.map +1 -1
- package/dist/layout/ScrollArea.js +9 -3
- package/dist/layout/ScrollArea.js.map +1 -1
- package/dist/layout/TableFilter.js +1 -1
- package/dist/navigation/Breadcrumbs.js +9 -3
- package/dist/navigation/Breadcrumbs.js.map +1 -1
- package/dist/navigation/CommandPalette.js +20 -7
- package/dist/navigation/CommandPalette.js.map +1 -1
- package/dist/navigation/Pagination.js +1 -1
- package/dist/navigation/Tabs.js +7 -3
- package/dist/navigation/Tabs.js.map +1 -1
- package/dist/pt-BR.js +192 -5
- package/dist/pt-BR.js.map +1 -1
- package/dist/types/components/data-display/Alert/Alert.d.ts +9 -2
- package/dist/types/components/data-display/Alert/Alert.d.ts.map +1 -1
- package/dist/types/components/data-display/Alert/Alert.types.d.ts +25 -9
- package/dist/types/components/data-display/Alert/Alert.types.d.ts.map +1 -1
- package/dist/types/components/data-display/AsyncStateContainer/AsyncStateContainer.d.ts.map +1 -1
- package/dist/types/components/data-display/AsyncStateContainer/AsyncStateContainer.types.d.ts +6 -0
- package/dist/types/components/data-display/AsyncStateContainer/AsyncStateContainer.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Banner/Banner.d.ts.map +1 -1
- package/dist/types/components/data-display/Banner/Banner.types.d.ts +2 -0
- package/dist/types/components/data-display/Banner/Banner.types.d.ts.map +1 -1
- package/dist/types/components/data-display/CardKit/card-actions-context.d.ts +3 -1
- package/dist/types/components/data-display/CardKit/card-actions-context.d.ts.map +1 -1
- package/dist/types/components/data-display/Carousel/Carousel.chrome.d.ts +3 -0
- package/dist/types/components/data-display/Carousel/Carousel.chrome.d.ts.map +1 -1
- package/dist/types/components/data-display/Carousel/Carousel.parts.d.ts.map +1 -1
- package/dist/types/components/data-display/Carousel/Carousel.types.d.ts +7 -0
- package/dist/types/components/data-display/Carousel/Carousel.types.d.ts.map +1 -1
- package/dist/types/components/data-display/DataGrid/DataGrid.states.d.ts +1 -0
- package/dist/types/components/data-display/DataGrid/DataGrid.states.d.ts.map +1 -1
- package/dist/types/components/data-display/DataGrid/DataGrid.types.d.ts +5 -0
- package/dist/types/components/data-display/DataGrid/DataGrid.types.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-category-pill.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +29 -1
- package/dist/types/components/data-display/DataViews/data-views-copy.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts +12 -1
- package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-filter-panel.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-grid-bodies.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-pagination.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-table-parts.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-toolbar.d.ts.map +1 -1
- package/dist/types/components/data-display/HoverCard/HoverCard.content.d.ts +1 -1
- package/dist/types/components/data-display/HoverCard/HoverCard.content.d.ts.map +1 -1
- package/dist/types/components/data-display/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/types/components/data-display/HoverCard/HoverCard.types.d.ts +2 -0
- package/dist/types/components/data-display/HoverCard/HoverCard.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/types/components/data-display/Lightbox/Lightbox.types.d.ts +9 -0
- package/dist/types/components/data-display/Lightbox/Lightbox.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Lightbox/LightboxControls.d.ts.map +1 -1
- package/dist/types/components/data-display/Lightbox/lightbox-copy-context.d.ts +17 -0
- package/dist/types/components/data-display/Lightbox/lightbox-copy-context.d.ts.map +1 -0
- package/dist/types/components/data-display/MapPreview/MapControlBar.d.ts +7 -0
- package/dist/types/components/data-display/MapPreview/MapControlBar.d.ts.map +1 -1
- package/dist/types/components/data-display/MapPreview/MapLayers.d.ts.map +1 -1
- package/dist/types/components/data-display/MapPreview/MapPreview.types.d.ts +9 -0
- package/dist/types/components/data-display/MapPreview/MapPreview.types.d.ts.map +1 -1
- package/dist/types/components/data-display/MapPreview/MapSearchBar.d.ts +2 -0
- package/dist/types/components/data-display/MapPreview/MapSearchBar.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/Table.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/Table.types.d.ts +5 -0
- package/dist/types/components/data-display/Table/Table.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/TableStates.d.ts +3 -1
- package/dist/types/components/data-display/Table/TableStates.d.ts.map +1 -1
- package/dist/types/components/data-display/TimingDiagram/TimingDiagram.d.ts.map +1 -1
- package/dist/types/components/data-display/TimingDiagram/TimingDiagram.types.d.ts +3 -0
- package/dist/types/components/data-display/TimingDiagram/TimingDiagram.types.d.ts.map +1 -1
- package/dist/types/components/feedback/Sonner/Sonner.d.ts +8 -0
- package/dist/types/components/feedback/Sonner/Sonner.d.ts.map +1 -1
- package/dist/types/components/feedback/Sonner/Sonner.types.d.ts +2 -0
- package/dist/types/components/feedback/Sonner/Sonner.types.d.ts.map +1 -1
- package/dist/types/components/feedback/Sonner/SonnerToast.d.ts.map +1 -1
- package/dist/types/components/feedback/StackedModal/StackedModal.d.ts.map +1 -1
- package/dist/types/components/feedback/StackedModal/StackedModal.parts.d.ts +2 -0
- package/dist/types/components/feedback/StackedModal/StackedModal.parts.d.ts.map +1 -1
- package/dist/types/components/feedback/StackedModal/StackedModal.types.d.ts +2 -0
- package/dist/types/components/feedback/StackedModal/StackedModal.types.d.ts.map +1 -1
- package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.d.ts.map +1 -1
- package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.types.d.ts +3 -0
- package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.types.d.ts.map +1 -1
- package/dist/types/components/feedback/TutorialOverlay/TutorialStepBody.d.ts +2 -0
- package/dist/types/components/feedback/TutorialOverlay/TutorialStepBody.d.ts.map +1 -1
- package/dist/types/components/form/AddressAutocomplete/AddressAutocomplete.types.d.ts +7 -0
- package/dist/types/components/form/AddressAutocomplete/AddressAutocomplete.types.d.ts.map +1 -1
- package/dist/types/components/form/AddressAutocomplete/AddressAutocompleteField.d.ts.map +1 -1
- package/dist/types/components/form/AddressAutocomplete/AddressFallbackField.d.ts +1 -0
- package/dist/types/components/form/AddressAutocomplete/AddressFallbackField.d.ts.map +1 -1
- package/dist/types/components/form/AddressAutocomplete/AddressInputField.d.ts +1 -0
- package/dist/types/components/form/AddressAutocomplete/AddressInputField.d.ts.map +1 -1
- package/dist/types/components/form/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/types/components/form/Autocomplete/Autocomplete.parts.d.ts +9 -3
- package/dist/types/components/form/Autocomplete/Autocomplete.parts.d.ts.map +1 -1
- package/dist/types/components/form/Autocomplete/Autocomplete.types.d.ts +7 -0
- package/dist/types/components/form/Autocomplete/Autocomplete.types.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/Calendar.types.d.ts +6 -0
- package/dist/types/components/form/Calendar/Calendar.types.d.ts.map +1 -1
- package/dist/types/components/form/CodeEditor/CodeEditor.d.ts.map +1 -1
- package/dist/types/components/form/CodeEditor/CodeEditor.types.d.ts +7 -0
- package/dist/types/components/form/CodeEditor/CodeEditor.types.d.ts.map +1 -1
- package/dist/types/components/form/CodeEditor/CodeEditorToolbar.d.ts +2 -0
- package/dist/types/components/form/CodeEditor/CodeEditorToolbar.d.ts.map +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.range.d.ts.map +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.types.d.ts +11 -0
- package/dist/types/components/form/DateRangePicker/DateRangePicker.types.d.ts.map +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePickerFields.d.ts.map +1 -1
- package/dist/types/components/form/Menubar/Menubar.d.ts.map +1 -1
- package/dist/types/components/form/Menubar/Menubar.toolbar.d.ts +1 -0
- package/dist/types/components/form/Menubar/Menubar.toolbar.d.ts.map +1 -1
- package/dist/types/components/form/Menubar/Menubar.types.d.ts +5 -0
- package/dist/types/components/form/Menubar/Menubar.types.d.ts.map +1 -1
- package/dist/types/components/form/PasswordStrength/PasswordStrength.d.ts.map +1 -1
- package/dist/types/components/form/PasswordStrength/PasswordStrength.helpers.d.ts +4 -2
- package/dist/types/components/form/PasswordStrength/PasswordStrength.helpers.d.ts.map +1 -1
- package/dist/types/components/form/PasswordStrength/PasswordStrength.types.d.ts +8 -0
- package/dist/types/components/form/PasswordStrength/PasswordStrength.types.d.ts.map +1 -1
- package/dist/types/components/form/PhoneInput/PhoneInput.d.ts.map +1 -1
- package/dist/types/components/form/PhoneInput/PhoneInput.types.d.ts +7 -0
- package/dist/types/components/form/PhoneInput/PhoneInput.types.d.ts.map +1 -1
- package/dist/types/components/form/SearchPalette/SearchPalette.d.ts.map +1 -1
- package/dist/types/components/form/SearchPalette/SearchPalette.parts.d.ts +2 -0
- package/dist/types/components/form/SearchPalette/SearchPalette.parts.d.ts.map +1 -1
- package/dist/types/components/form/SearchPalette/SearchPalette.types.d.ts +6 -0
- package/dist/types/components/form/SearchPalette/SearchPalette.types.d.ts.map +1 -1
- package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
- package/dist/types/components/form/Textarea/Textarea.types.d.ts +16 -1
- package/dist/types/components/form/Textarea/Textarea.types.d.ts.map +1 -1
- package/dist/types/components/form/Textarea/TextareaRichEditor.d.ts +7 -0
- package/dist/types/components/form/Textarea/TextareaRichEditor.d.ts.map +1 -1
- package/dist/types/components/form/UploadButton/UploadButton.d.ts.map +1 -1
- package/dist/types/components/form/UploadButton/UploadButton.parts.d.ts +6 -3
- package/dist/types/components/form/UploadButton/UploadButton.parts.d.ts.map +1 -1
- package/dist/types/components/form/UploadButton/UploadButton.types.d.ts +7 -0
- package/dist/types/components/form/UploadButton/UploadButton.types.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts +12 -0
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/MultiSelectDropdown.d.ts +1 -1
- package/dist/types/components/layout/ContentToolbar/MultiSelectDropdown.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/SortByDropdown.d.ts +1 -1
- package/dist/types/components/layout/ContentToolbar/SortByDropdown.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ViewSelector.d.ts +1 -1
- package/dist/types/components/layout/ContentToolbar/ViewSelector.d.ts.map +1 -1
- package/dist/types/components/layout/Dashboard/Dashboard.d.ts +1 -1
- package/dist/types/components/layout/Dashboard/Dashboard.types.d.ts +4 -0
- package/dist/types/components/layout/Dashboard/Dashboard.types.d.ts.map +1 -1
- package/dist/types/components/layout/Dashboard/DashboardParts.d.ts +1 -1
- package/dist/types/components/layout/Dashboard/DashboardParts.d.ts.map +1 -1
- package/dist/types/components/layout/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts +21 -3
- package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts.map +1 -1
- package/dist/types/components/layout/ScrollArea/ScrollViewport.d.ts +2 -0
- package/dist/types/components/layout/ScrollArea/ScrollViewport.d.ts.map +1 -1
- package/dist/types/components/layout/TableFilter/TableFilter.d.ts +1 -1
- package/dist/types/components/layout/TableFilter/TableFilter.d.ts.map +1 -1
- package/dist/types/components/layout/TableFilter/TableFilter.types.d.ts +7 -0
- package/dist/types/components/layout/TableFilter/TableFilter.types.d.ts.map +1 -1
- package/dist/types/components/layout/TableFilter/TableFilterContext.d.ts +9 -0
- package/dist/types/components/layout/TableFilter/TableFilterContext.d.ts.map +1 -1
- package/dist/types/components/navigation/Breadcrumbs/BreadcrumbEntry.d.ts +2 -0
- package/dist/types/components/navigation/Breadcrumbs/BreadcrumbEntry.d.ts.map +1 -1
- package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.types.d.ts +3 -0
- package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.types.d.ts.map +1 -1
- package/dist/types/components/navigation/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/types/components/navigation/CommandPalette/CommandPalette.types.d.ts +3 -0
- package/dist/types/components/navigation/CommandPalette/CommandPalette.types.d.ts.map +1 -1
- package/dist/types/components/navigation/CommandPalette/CommandPaletteResults.d.ts +2 -0
- package/dist/types/components/navigation/CommandPalette/CommandPaletteResults.d.ts.map +1 -1
- package/dist/types/components/navigation/Pagination/Pagination.d.ts.map +1 -1
- package/dist/types/components/navigation/Pagination/Pagination.types.d.ts +2 -0
- package/dist/types/components/navigation/Pagination/Pagination.types.d.ts.map +1 -1
- package/dist/types/components/navigation/Pagination/PaginationParts.d.ts +2 -0
- package/dist/types/components/navigation/Pagination/PaginationParts.d.ts.map +1 -1
- package/dist/types/components/navigation/Tabs/Tabs.d.ts.map +1 -1
- package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +2 -0
- package/dist/types/components/navigation/Tabs/Tabs.types.d.ts.map +1 -1
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.d.ts.map +1 -1
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.parts.d.ts +6 -2
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.parts.d.ts.map +1 -1
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.types.d.ts +6 -0
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.types.d.ts.map +1 -1
- package/dist/types/components/utility/InstallPrompt/InstallPrompt.d.ts +4 -2
- package/dist/types/components/utility/InstallPrompt/InstallPrompt.d.ts.map +1 -1
- package/dist/types/components/utility/InstallPrompt/InstallPrompt.types.d.ts +8 -7
- package/dist/types/components/utility/InstallPrompt/InstallPrompt.types.d.ts.map +1 -1
- package/dist/types/copy/data-display.d.ts +56 -0
- package/dist/types/copy/data-display.d.ts.map +1 -0
- package/dist/types/copy/feedback.d.ts +38 -0
- package/dist/types/copy/feedback.d.ts.map +1 -0
- package/dist/types/copy/form.d.ts +146 -0
- package/dist/types/copy/form.d.ts.map +1 -0
- package/dist/types/copy/layout.d.ts +18 -0
- package/dist/types/copy/layout.d.ts.map +1 -0
- package/dist/types/copy/navigation.d.ts +24 -0
- package/dist/types/copy/navigation.d.ts.map +1 -0
- package/dist/types/copy/shared.d.ts +119 -0
- package/dist/types/copy/shared.d.ts.map +1 -0
- package/dist/types/copy/utility.d.ts +35 -0
- package/dist/types/copy/utility.d.ts.map +1 -0
- package/dist/types/copy.d.ts +13 -113
- package/dist/types/copy.d.ts.map +1 -1
- package/dist/types/pt-BR.d.ts +15 -18
- package/dist/types/pt-BR.d.ts.map +1 -1
- package/dist/types/pt-BR.data-display.d.ts +13 -0
- package/dist/types/pt-BR.data-display.d.ts.map +1 -0
- package/dist/types/pt-BR.feedback.d.ts +8 -0
- package/dist/types/pt-BR.feedback.d.ts.map +1 -0
- package/dist/types/pt-BR.form.d.ts +13 -0
- package/dist/types/pt-BR.form.d.ts.map +1 -0
- package/dist/types/pt-BR.layout.d.ts +7 -0
- package/dist/types/pt-BR.layout.d.ts.map +1 -0
- package/dist/types/pt-BR.navigation.d.ts +8 -0
- package/dist/types/pt-BR.navigation.d.ts.map +1 -0
- package/dist/types/pt-BR.shared.d.ts +21 -0
- package/dist/types/pt-BR.shared.d.ts.map +1 -0
- package/dist/types/pt-BR.utility.d.ts +8 -0
- package/dist/types/pt-BR.utility.d.ts.map +1 -0
- package/dist/types/user-avatar/user-avatar.d.ts +7 -1
- package/dist/types/user-avatar/user-avatar.d.ts.map +1 -1
- package/dist/user-avatar.js +2 -2
- package/dist/user-avatar.js.map +1 -1
- package/dist/utility/InfiniteScroll.js +7 -5
- package/dist/utility/InfiniteScroll.js.map +1 -1
- package/dist/utility/InstallPrompt.js +14 -13
- package/dist/utility/InstallPrompt.js.map +1 -1
- package/package.json +1 -1
- package/src/components/data-display/Alert/Alert.tsx +22 -5
- package/src/components/data-display/Alert/Alert.types.ts +20 -10
- package/src/components/data-display/AsyncStateContainer/AsyncStateContainer.tsx +2 -1
- package/src/components/data-display/AsyncStateContainer/AsyncStateContainer.types.ts +6 -0
- package/src/components/data-display/Banner/Banner.tsx +5 -2
- package/src/components/data-display/Banner/Banner.types.ts +2 -0
- package/src/components/data-display/CardKit/card-actions-context.tsx +4 -0
- package/src/components/data-display/Carousel/Carousel.chrome.tsx +5 -0
- package/src/components/data-display/Carousel/Carousel.parts.tsx +4 -3
- package/src/components/data-display/Carousel/Carousel.types.ts +7 -0
- package/src/components/data-display/DataGrid/DataGrid.states.tsx +3 -3
- package/src/components/data-display/DataGrid/DataGrid.tsx +1 -1
- package/src/components/data-display/DataGrid/DataGrid.types.ts +5 -0
- package/src/components/data-display/DataViews/data-views-category-pill.tsx +2 -0
- package/src/components/data-display/DataViews/data-views-copy.ts +29 -1
- package/src/components/data-display/DataViews/data-views-day-input.tsx +14 -3
- package/src/components/data-display/DataViews/data-views-filter-panel.tsx +2 -1
- package/src/components/data-display/DataViews/data-views-grid-bodies.tsx +3 -0
- package/src/components/data-display/DataViews/data-views-grid-parts.tsx +9 -10
- package/src/components/data-display/DataViews/data-views-more-fields.tsx +3 -1
- package/src/components/data-display/DataViews/data-views-pagination.tsx +3 -0
- package/src/components/data-display/DataViews/data-views-range-pill.tsx +3 -1
- package/src/components/data-display/DataViews/data-views-table-parts.tsx +1 -0
- package/src/components/data-display/DataViews/data-views-toolbar.tsx +2 -0
- package/src/components/data-display/HoverCard/HoverCard.content.tsx +10 -2
- package/src/components/data-display/HoverCard/HoverCard.tsx +2 -3
- package/src/components/data-display/HoverCard/HoverCard.types.ts +2 -0
- package/src/components/data-display/Lightbox/Lightbox.tsx +3 -0
- package/src/components/data-display/Lightbox/Lightbox.types.ts +9 -0
- package/src/components/data-display/Lightbox/LightboxControls.tsx +28 -15
- package/src/components/data-display/Lightbox/lightbox-copy-context.tsx +42 -0
- package/src/components/data-display/MapPreview/MapControlBar.tsx +17 -9
- package/src/components/data-display/MapPreview/MapLayers.tsx +2 -0
- package/src/components/data-display/MapPreview/MapPreview.types.ts +10 -0
- package/src/components/data-display/MapPreview/MapSearchBar.tsx +4 -1
- package/src/components/data-display/Table/Table.tsx +7 -2
- package/src/components/data-display/Table/Table.types.ts +5 -0
- package/src/components/data-display/Table/TableStates.tsx +2 -2
- package/src/components/data-display/TimingDiagram/TimingDiagram.tsx +3 -2
- package/src/components/data-display/TimingDiagram/TimingDiagram.types.ts +3 -0
- package/src/components/feedback/Sonner/Sonner.tsx +15 -3
- package/src/components/feedback/Sonner/Sonner.types.ts +2 -0
- package/src/components/feedback/Sonner/SonnerToast.tsx +2 -1
- package/src/components/feedback/StackedModal/StackedModal.parts.tsx +10 -3
- package/src/components/feedback/StackedModal/StackedModal.tsx +2 -1
- package/src/components/feedback/StackedModal/StackedModal.types.ts +2 -0
- package/src/components/feedback/TutorialOverlay/TutorialOverlay.tsx +13 -1
- package/src/components/feedback/TutorialOverlay/TutorialOverlay.types.ts +3 -0
- package/src/components/feedback/TutorialOverlay/TutorialStepBody.tsx +10 -4
- package/src/components/form/AddressAutocomplete/AddressAutocomplete.types.ts +7 -0
- package/src/components/form/AddressAutocomplete/AddressAutocompleteField.tsx +2 -0
- package/src/components/form/AddressAutocomplete/AddressFallbackField.tsx +4 -2
- package/src/components/form/AddressAutocomplete/AddressInputField.tsx +13 -6
- package/src/components/form/Autocomplete/Autocomplete.parts.tsx +9 -6
- package/src/components/form/Autocomplete/Autocomplete.tsx +2 -1
- package/src/components/form/Autocomplete/Autocomplete.types.ts +7 -0
- package/src/components/form/Calendar/Calendar.tsx +2 -2
- package/src/components/form/Calendar/Calendar.types.ts +7 -0
- package/src/components/form/CodeEditor/CodeEditor.tsx +6 -4
- package/src/components/form/CodeEditor/CodeEditor.types.ts +7 -0
- package/src/components/form/CodeEditor/CodeEditorToolbar.tsx +12 -5
- package/src/components/form/DateRangePicker/DateRangePicker.range.ts +2 -0
- package/src/components/form/DateRangePicker/DateRangePicker.tsx +4 -0
- package/src/components/form/DateRangePicker/DateRangePicker.types.ts +11 -0
- package/src/components/form/DateRangePicker/DateRangePickerFields.tsx +2 -0
- package/src/components/form/Menubar/Menubar.toolbar.tsx +3 -1
- package/src/components/form/Menubar/Menubar.tsx +2 -1
- package/src/components/form/Menubar/Menubar.types.ts +5 -0
- package/src/components/form/PasswordStrength/PasswordStrength.helpers.tsx +33 -17
- package/src/components/form/PasswordStrength/PasswordStrength.tsx +29 -13
- package/src/components/form/PasswordStrength/PasswordStrength.types.ts +9 -0
- package/src/components/form/PhoneInput/PhoneInput.tsx +15 -5
- package/src/components/form/PhoneInput/PhoneInput.types.ts +7 -0
- package/src/components/form/SearchPalette/SearchPalette.parts.tsx +4 -1
- package/src/components/form/SearchPalette/SearchPalette.tsx +4 -1
- package/src/components/form/SearchPalette/SearchPalette.types.ts +6 -0
- package/src/components/form/Textarea/Textarea.tsx +6 -1
- package/src/components/form/Textarea/Textarea.types.ts +14 -1
- package/src/components/form/Textarea/TextareaRichEditor.tsx +28 -18
- package/src/components/form/UploadButton/UploadButton.parts.tsx +16 -7
- package/src/components/form/UploadButton/UploadButton.tsx +4 -1
- package/src/components/form/UploadButton/UploadButton.types.ts +8 -0
- package/src/components/layout/ContentToolbar/ContentToolbar.tsx +10 -2
- package/src/components/layout/ContentToolbar/ContentToolbar.types.ts +12 -0
- package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +15 -4
- package/src/components/layout/ContentToolbar/SortByDropdown.tsx +12 -3
- package/src/components/layout/ContentToolbar/ViewSelector.tsx +2 -1
- package/src/components/layout/Dashboard/Dashboard.types.ts +4 -0
- package/src/components/layout/Dashboard/DashboardParts.tsx +2 -1
- package/src/components/layout/ScrollArea/ScrollArea.tsx +16 -3
- package/src/components/layout/ScrollArea/ScrollArea.types.ts +19 -4
- package/src/components/layout/ScrollArea/ScrollViewport.tsx +4 -1
- package/src/components/layout/TableFilter/TableFilter.tsx +19 -11
- package/src/components/layout/TableFilter/TableFilter.types.ts +8 -0
- package/src/components/layout/TableFilter/TableFilterContext.tsx +10 -0
- package/src/components/navigation/Breadcrumbs/BreadcrumbEntry.tsx +11 -4
- package/src/components/navigation/Breadcrumbs/Breadcrumbs.tsx +2 -0
- package/src/components/navigation/Breadcrumbs/Breadcrumbs.types.ts +3 -0
- package/src/components/navigation/CommandPalette/CommandPalette.tsx +15 -5
- package/src/components/navigation/CommandPalette/CommandPalette.types.ts +3 -0
- package/src/components/navigation/CommandPalette/CommandPaletteResults.tsx +5 -2
- package/src/components/navigation/Pagination/Pagination.tsx +2 -0
- package/src/components/navigation/Pagination/Pagination.types.ts +2 -0
- package/src/components/navigation/Pagination/PaginationParts.tsx +4 -1
- package/src/components/navigation/Tabs/Tabs.tsx +8 -3
- package/src/components/navigation/Tabs/Tabs.types.ts +2 -0
- package/src/components/utility/InfiniteScroll/InfiniteScroll.parts.tsx +4 -4
- package/src/components/utility/InfiniteScroll/InfiniteScroll.tsx +4 -2
- package/src/components/utility/InfiniteScroll/InfiniteScroll.types.ts +6 -0
- package/src/components/utility/InstallPrompt/InstallPrompt.tsx +18 -13
- package/src/components/utility/InstallPrompt/InstallPrompt.types.ts +9 -7
- package/src/copy/data-display.ts +60 -0
- package/src/copy/feedback.ts +39 -0
- package/src/copy/form.ts +154 -0
- package/src/copy/layout.ts +18 -0
- package/src/copy/navigation.ts +25 -0
- package/src/copy/shared.ts +122 -0
- package/src/copy/utility.ts +36 -0
- package/src/copy.ts +13 -117
- package/src/pt-BR.data-display.ts +236 -0
- package/src/pt-BR.feedback.ts +25 -0
- package/src/pt-BR.form.ts +96 -0
- package/src/pt-BR.layout.ts +15 -0
- package/src/pt-BR.navigation.ts +21 -0
- package/src/pt-BR.shared.ts +94 -0
- package/src/pt-BR.ts +15 -267
- package/src/pt-BR.utility.ts +21 -0
- package/src/user-avatar/user-avatar.tsx +8 -2
- package/dist/chunk-3KWD5Y5O.js.map +0 -1
- package/dist/chunk-CEKPLUQV.js.map +0 -1
- package/dist/chunk-DFVRZ3UK.js.map +0 -1
- package/dist/chunk-H7UAGTVW.js.map +0 -1
- package/dist/chunk-JP55QWVR.js.map +0 -1
- package/dist/chunk-NUCLEOHF.js.map +0 -1
- package/dist/chunk-QLBYAYUG.js.map +0 -1
- package/dist/chunk-QZZVHY6U.js.map +0 -1
|
@@ -75,6 +75,8 @@ interface DashboardSettingsBaseProps {
|
|
|
75
75
|
* dialog rendering `children`. Mutually exclusive with link mode.
|
|
76
76
|
*/
|
|
77
77
|
export interface DashboardSettingsDialogProps extends DashboardSettingsBaseProps {
|
|
78
|
+
/** The dialog's close button — a glyph with no visible label. REQUIRED. */
|
|
79
|
+
closeLabel: string;
|
|
78
80
|
/** Dialog title. Defaults to `"Settings"`. */
|
|
79
81
|
title?: ReactNode;
|
|
80
82
|
/** Dialog body. */
|
|
@@ -89,6 +91,8 @@ export interface DashboardSettingsDialogProps extends DashboardSettingsBaseProps
|
|
|
89
91
|
* exclusive with dialog mode, so `title`/`children` are not accepted.
|
|
90
92
|
*/
|
|
91
93
|
export interface DashboardSettingsLinkProps extends DashboardSettingsBaseProps {
|
|
94
|
+
/** Link mode opens no dialog, so there is no close button to name. */
|
|
95
|
+
closeLabel?: never;
|
|
92
96
|
/** Link target settings route. */
|
|
93
97
|
href: string;
|
|
94
98
|
/**
|
|
@@ -101,6 +101,7 @@ DashboardFilterToggle.displayName = 'Dashboard.FilterToggle';
|
|
|
101
101
|
|
|
102
102
|
export const DashboardSettings = ({
|
|
103
103
|
title = 'Settings',
|
|
104
|
+
closeLabel,
|
|
104
105
|
children,
|
|
105
106
|
ariaLabel = 'Settings',
|
|
106
107
|
href,
|
|
@@ -146,7 +147,7 @@ export const DashboardSettings = ({
|
|
|
146
147
|
<Dialog open={open} onClose={() => setOpen(false)} maxWidth="sm" fullWidth data-testid={`${testIdPrefix}-settings-dialog`}>
|
|
147
148
|
<DialogTitle sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
|
|
148
149
|
{title}
|
|
149
|
-
<IconButton aria-label=
|
|
150
|
+
<IconButton aria-label={closeLabel} size="small" onClick={() => setOpen(false)}>
|
|
150
151
|
<CloseIcon fontSize="small" />
|
|
151
152
|
</IconButton>
|
|
152
153
|
</DialogTitle>
|
|
@@ -148,9 +148,18 @@ const LoadingOverlay: FC = () => (
|
|
|
148
148
|
</Box>
|
|
149
149
|
);
|
|
150
150
|
|
|
151
|
-
|
|
151
|
+
// The label is guarded at the call site rather than defaulted: the props union
|
|
152
|
+
// already makes it required alongside `scrollToTopButton`, and a fab with an
|
|
153
|
+
// empty accessible name is the exact failure this port exists to remove.
|
|
154
|
+
const ScrollToTopFab: FC<{
|
|
155
|
+
visible: boolean;
|
|
156
|
+
glass: boolean;
|
|
157
|
+
scrollToTopLabel: string;
|
|
158
|
+
onClick: () => void;
|
|
159
|
+
}> = ({
|
|
152
160
|
visible,
|
|
153
161
|
glass,
|
|
162
|
+
scrollToTopLabel,
|
|
154
163
|
onClick }) => {
|
|
155
164
|
const theme = useTheme();
|
|
156
165
|
|
|
@@ -158,7 +167,7 @@ const ScrollToTopFab: FC<{ visible: boolean; glass: boolean; onClick: () => void
|
|
|
158
167
|
<Zoom in={visible}>
|
|
159
168
|
<Fab
|
|
160
169
|
size="small"
|
|
161
|
-
aria-label=
|
|
170
|
+
aria-label={scrollToTopLabel}
|
|
162
171
|
onClick={onClick}
|
|
163
172
|
sx={{
|
|
164
173
|
position: 'absolute',
|
|
@@ -183,6 +192,8 @@ const ScrollToTopFab: FC<{ visible: boolean; glass: boolean; onClick: () => void
|
|
|
183
192
|
export const ScrollArea: React.FC<ScrollAreaProps> = (componentProps) => {
|
|
184
193
|
const resolved = resolveScrollAreaProps(componentProps);
|
|
185
194
|
const {
|
|
195
|
+
regionLabel,
|
|
196
|
+
scrollToTopLabel,
|
|
186
197
|
children,
|
|
187
198
|
width,
|
|
188
199
|
height,
|
|
@@ -231,6 +242,7 @@ export const ScrollArea: React.FC<ScrollAreaProps> = (componentProps) => {
|
|
|
231
242
|
>
|
|
232
243
|
<ScrollViewport
|
|
233
244
|
{...resolved}
|
|
245
|
+
regionLabel={regionLabel}
|
|
234
246
|
shouldShowScrollbar={shouldShowScrollbar}
|
|
235
247
|
setScrollRef={setScrollRef}
|
|
236
248
|
onScroll={handleScroll}
|
|
@@ -246,8 +258,9 @@ export const ScrollArea: React.FC<ScrollAreaProps> = (componentProps) => {
|
|
|
246
258
|
|
|
247
259
|
{loading && <LoadingOverlay />}
|
|
248
260
|
|
|
249
|
-
{scrollToTopButton && !disabled && !loading && (
|
|
261
|
+
{scrollToTopButton && scrollToTopLabel && !disabled && !loading && (
|
|
250
262
|
<ScrollToTopFab
|
|
263
|
+
scrollToTopLabel={scrollToTopLabel}
|
|
251
264
|
visible={showScrollToTop}
|
|
252
265
|
glass={variant === 'glass'}
|
|
253
266
|
onClick={scrollToTop}
|
|
@@ -5,7 +5,25 @@ export type ScrollOrientation = 'vertical' | 'horizontal' | 'both';
|
|
|
5
5
|
export type ScrollbarSize = 'thin' | 'medium' | 'thick';
|
|
6
6
|
export type ScrollAreaVariant = 'default' | 'overlay' | 'glass';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Conditionally-required copy for the scroll-to-top control. The fab only exists
|
|
10
|
+
* when `scrollToTopButton` is set, so only that side of the union owes a name —
|
|
11
|
+
* a host that never shows the button is not asked for a word it cannot place.
|
|
12
|
+
*/
|
|
13
|
+
type ScrollAreaScrollToTop =
|
|
14
|
+
| { scrollToTopButton?: false; scrollToTopLabel?: never }
|
|
15
|
+
| { scrollToTopButton: true; scrollToTopLabel: string };
|
|
16
|
+
|
|
17
|
+
export type ScrollAreaProps = ScrollAreaBase & ScrollAreaScrollToTop;
|
|
18
|
+
|
|
19
|
+
export interface ScrollAreaBase extends Omit<BoxProps, 'ref'> {
|
|
20
|
+
/**
|
|
21
|
+
* The scroll region's accessible name. REQUIRED: the viewport is a
|
|
22
|
+
* `role="region"`, so a screen reader announces this word and no other. The
|
|
23
|
+
* package cannot know whether it wraps a menu, a chat log or a table.
|
|
24
|
+
*/
|
|
25
|
+
regionLabel: string;
|
|
26
|
+
|
|
9
27
|
/** Content to be rendered inside the scrollable area */
|
|
10
28
|
children: ReactNode;
|
|
11
29
|
|
|
@@ -45,9 +63,6 @@ export interface ScrollAreaProps extends Omit<BoxProps, 'ref'> {
|
|
|
45
63
|
/** Scroll event handler */
|
|
46
64
|
onScroll?: (event: React.UIEvent<HTMLDivElement>) => void;
|
|
47
65
|
|
|
48
|
-
/** Show scroll-to-top button */
|
|
49
|
-
scrollToTopButton?: boolean;
|
|
50
|
-
|
|
51
66
|
/** Threshold for showing scroll-to-top button (in pixels) */
|
|
52
67
|
scrollToTopThreshold?: number;
|
|
53
68
|
|
|
@@ -20,6 +20,8 @@ export interface ScrollViewportProps
|
|
|
20
20
|
| 'loading'
|
|
21
21
|
| 'smoothScroll'
|
|
22
22
|
> {
|
|
23
|
+
/** The scroll region's accessible name. REQUIRED. */
|
|
24
|
+
regionLabel: string;
|
|
23
25
|
children: ReactNode;
|
|
24
26
|
shouldShowScrollbar: boolean;
|
|
25
27
|
setScrollRef: (node: HTMLDivElement | null) => void;
|
|
@@ -29,6 +31,7 @@ export interface ScrollViewportProps
|
|
|
29
31
|
// The element that actually scrolls: its own overflow and scrollbar styling,
|
|
30
32
|
// plus the disabled and loading treatments.
|
|
31
33
|
export const ScrollViewport: FC<ScrollViewportProps> = ({
|
|
34
|
+
regionLabel,
|
|
32
35
|
children,
|
|
33
36
|
height,
|
|
34
37
|
maxHeight,
|
|
@@ -52,7 +55,7 @@ export const ScrollViewport: FC<ScrollViewportProps> = ({
|
|
|
52
55
|
ref={setScrollRef}
|
|
53
56
|
onScroll={onScroll}
|
|
54
57
|
role="region"
|
|
55
|
-
aria-label=
|
|
58
|
+
aria-label={regionLabel}
|
|
56
59
|
aria-busy={loading}
|
|
57
60
|
tabIndex={disabled ? -1 : 0}
|
|
58
61
|
sx={{
|
|
@@ -54,9 +54,10 @@ export function TableFilter({
|
|
|
54
54
|
open,
|
|
55
55
|
onOpenChange,
|
|
56
56
|
hasActiveFilters = false,
|
|
57
|
+
copy,
|
|
57
58
|
}: TableFilterProps): React.JSX.Element {
|
|
58
59
|
return (
|
|
59
|
-
<TableFilterContext.Provider value={{ open, onOpenChange, hasActiveFilters }}>
|
|
60
|
+
<TableFilterContext.Provider value={{ open, onOpenChange, hasActiveFilters, copy }}>
|
|
60
61
|
{children}
|
|
61
62
|
</TableFilterContext.Provider>
|
|
62
63
|
);
|
|
@@ -97,7 +98,7 @@ const TableFilterPanel = ({
|
|
|
97
98
|
ariaLabel = 'Filters',
|
|
98
99
|
clearTestId,
|
|
99
100
|
}: TableFilterPanelProps): React.JSX.Element => {
|
|
100
|
-
const { open } = useTableFilterContext();
|
|
101
|
+
const { open, copy } = useTableFilterContext();
|
|
101
102
|
return (
|
|
102
103
|
<Box
|
|
103
104
|
component="aside"
|
|
@@ -142,7 +143,7 @@ const TableFilterPanel = ({
|
|
|
142
143
|
onClick={onClearAll}
|
|
143
144
|
sx={{ fontSize: '0.75rem', color: 'text.secondary' }}
|
|
144
145
|
>
|
|
145
|
-
|
|
146
|
+
{copy.clearAllFilters}
|
|
146
147
|
</Link>
|
|
147
148
|
</Box>
|
|
148
149
|
{children}
|
|
@@ -160,6 +161,7 @@ const TableFilterKeyword = ({
|
|
|
160
161
|
label = 'Filter by keyword',
|
|
161
162
|
testId,
|
|
162
163
|
}: TableFilterKeywordProps): React.JSX.Element => {
|
|
164
|
+
const { copy } = useTableFilterContext();
|
|
163
165
|
const [draft, setDraft] = useState(value);
|
|
164
166
|
const prevValue = useRef(value);
|
|
165
167
|
if (prevValue.current !== value) {
|
|
@@ -204,7 +206,7 @@ const TableFilterKeyword = ({
|
|
|
204
206
|
<InputAdornment position="end">
|
|
205
207
|
<IconButton
|
|
206
208
|
size="small"
|
|
207
|
-
aria-label=
|
|
209
|
+
aria-label={copy.clearKeyword}
|
|
208
210
|
data-testid={testId ? `${testId}-clear` : undefined}
|
|
209
211
|
onMouseDown={(event) => event.preventDefault()}
|
|
210
212
|
onClick={clearKeyword}
|
|
@@ -326,12 +328,18 @@ const TableFilterRangeField = ({
|
|
|
326
328
|
onChange,
|
|
327
329
|
unit,
|
|
328
330
|
step,
|
|
329
|
-
minPlaceholder
|
|
330
|
-
maxPlaceholder
|
|
331
|
+
minPlaceholder,
|
|
332
|
+
maxPlaceholder,
|
|
331
333
|
invalidLabel,
|
|
332
334
|
testId,
|
|
333
335
|
}: TableFilterRangeFieldProps): React.JSX.Element => {
|
|
336
|
+
const { copy } = useTableFilterContext();
|
|
334
337
|
const invalid = isRangeInverted(value);
|
|
338
|
+
// A field may override any of the three; unset, they come from the root's
|
|
339
|
+
// table. Neither path reaches an English literal in this package.
|
|
340
|
+
const minText = minPlaceholder ?? copy.rangeMin;
|
|
341
|
+
const maxText = maxPlaceholder ?? copy.rangeMax;
|
|
342
|
+
const invalidText = invalidLabel ?? copy.invalidRange;
|
|
335
343
|
return (
|
|
336
344
|
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }} data-testid={testId}>
|
|
337
345
|
<Typography sx={{ fontSize: '0.75rem', fontWeight: 500, color: 'text.secondary' }}>
|
|
@@ -342,9 +350,9 @@ const TableFilterRangeField = ({
|
|
|
342
350
|
<RangeBound
|
|
343
351
|
bound={value.min}
|
|
344
352
|
error={invalid}
|
|
345
|
-
placeholder={
|
|
353
|
+
placeholder={minText}
|
|
346
354
|
step={step}
|
|
347
|
-
ariaLabel={`${label} ${
|
|
355
|
+
ariaLabel={`${label} ${minText}`}
|
|
348
356
|
testId={testId ? `${testId}-min` : undefined}
|
|
349
357
|
onChange={(min) => onChange({ ...value, min })}
|
|
350
358
|
/>
|
|
@@ -354,9 +362,9 @@ const TableFilterRangeField = ({
|
|
|
354
362
|
<RangeBound
|
|
355
363
|
bound={value.max}
|
|
356
364
|
error={invalid}
|
|
357
|
-
placeholder={
|
|
365
|
+
placeholder={maxText}
|
|
358
366
|
step={step}
|
|
359
|
-
ariaLabel={`${label} ${
|
|
367
|
+
ariaLabel={`${label} ${maxText}`}
|
|
360
368
|
testId={testId ? `${testId}-max` : undefined}
|
|
361
369
|
onChange={(max) => onChange({ ...value, max })}
|
|
362
370
|
/>
|
|
@@ -367,7 +375,7 @@ const TableFilterRangeField = ({
|
|
|
367
375
|
data-testid={testId ? `${testId}-error` : undefined}
|
|
368
376
|
sx={{ fontSize: '0.7rem', color: 'error.main' }}
|
|
369
377
|
>
|
|
370
|
-
{
|
|
378
|
+
{invalidText}
|
|
371
379
|
</Typography>
|
|
372
380
|
)}
|
|
373
381
|
</Box>
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
|
|
3
|
+
import type { TableFilterCopy } from '../../../copy';
|
|
4
|
+
|
|
3
5
|
/** Props for the `<TableFilter>` root (provider). */
|
|
4
6
|
export interface TableFilterProps {
|
|
5
7
|
children: ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Every word this compound renders. REQUIRED: this package ships no default
|
|
10
|
+
* copy, and the two ends of a range plus the panel's clear link are read by
|
|
11
|
+
* the store's own customer, in the store's own language.
|
|
12
|
+
*/
|
|
13
|
+
copy: TableFilterCopy;
|
|
6
14
|
/** Whether the panel is open. */
|
|
7
15
|
open: boolean;
|
|
8
16
|
/** Toggle the panel. */
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import { createContext, useContext } from 'react';
|
|
4
4
|
|
|
5
|
+
import type { TableFilterCopy } from '../../../copy';
|
|
6
|
+
|
|
5
7
|
/** Open/close + active state shared by every `TableFilter` compound part. */
|
|
6
8
|
export interface TableFilterContextValue {
|
|
7
9
|
/** Whether the filter panel is expanded. */
|
|
@@ -10,6 +12,14 @@ export interface TableFilterContextValue {
|
|
|
10
12
|
onOpenChange: (open: boolean) => void;
|
|
11
13
|
/** When true, the trigger shows a filled indicator dot. */
|
|
12
14
|
hasActiveFilters: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Every word the compound's parts render. Carried on the root's context
|
|
17
|
+
* rather than on each part's props because the parts are a TREE — a host
|
|
18
|
+
* composes `Panel`, `Keyword` and the fields under one root, and asking each
|
|
19
|
+
* one separately for its share of the same table is the shape that makes a
|
|
20
|
+
* host answer four times and get one of them wrong.
|
|
21
|
+
*/
|
|
22
|
+
copy: TableFilterCopy;
|
|
13
23
|
}
|
|
14
24
|
|
|
15
25
|
/** Backing context. `null` outside a `<TableFilter>` root. */
|
|
@@ -6,6 +6,7 @@ import React from 'react';
|
|
|
6
6
|
|
|
7
7
|
import { breadcrumbLinkStyles } from './Breadcrumbs.styles';
|
|
8
8
|
import type { BreadcrumbItem } from './Breadcrumbs.types';
|
|
9
|
+
import type { BreadcrumbCopy } from '../../../copy';
|
|
9
10
|
|
|
10
11
|
const BreadcrumbLink = styled(Link, {
|
|
11
12
|
shouldForwardProp: (prop) => prop !== 'size' && prop !== 'active' && prop !== 'visualStyle' })<{ size?: string; active?: boolean; visualStyle?: string }>(
|
|
@@ -96,10 +97,12 @@ const CollapsedMenu = ({
|
|
|
96
97
|
items,
|
|
97
98
|
size,
|
|
98
99
|
visualStyle,
|
|
100
|
+
copy,
|
|
99
101
|
dataTestId }: {
|
|
100
102
|
items: BreadcrumbItem[];
|
|
101
103
|
size: string;
|
|
102
104
|
visualStyle?: string;
|
|
105
|
+
copy: BreadcrumbCopy;
|
|
103
106
|
dataTestId?: string;
|
|
104
107
|
}) => {
|
|
105
108
|
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
|
|
@@ -115,7 +118,7 @@ const CollapsedMenu = ({
|
|
|
115
118
|
|
|
116
119
|
return (
|
|
117
120
|
<>
|
|
118
|
-
<Tooltip title=
|
|
121
|
+
<Tooltip title={copy.showMore} arrow>
|
|
119
122
|
<BreadcrumbLink
|
|
120
123
|
onClick={handleClick}
|
|
121
124
|
size={size}
|
|
@@ -174,10 +177,11 @@ const crumbIcon = ({
|
|
|
174
177
|
);
|
|
175
178
|
};
|
|
176
179
|
|
|
177
|
-
const EllipsisCrumb: React.FC<{ label: string; dataTestId?: string }> = ({
|
|
180
|
+
const EllipsisCrumb: React.FC<{ label: string; copy: BreadcrumbCopy; dataTestId?: string }> = ({
|
|
178
181
|
label,
|
|
182
|
+
copy,
|
|
179
183
|
dataTestId }) => (
|
|
180
|
-
<Tooltip title=
|
|
184
|
+
<Tooltip title={copy.moreItems} arrow>
|
|
181
185
|
<Box
|
|
182
186
|
sx={{
|
|
183
187
|
px: 1,
|
|
@@ -237,6 +241,7 @@ export const BreadcrumbEntry: React.FC<{
|
|
|
237
241
|
iconSize: 'small' | 'medium';
|
|
238
242
|
size: string;
|
|
239
243
|
variant: string;
|
|
244
|
+
copy: BreadcrumbCopy;
|
|
240
245
|
dataTestId?: string;
|
|
241
246
|
}> = ({
|
|
242
247
|
item,
|
|
@@ -249,6 +254,7 @@ export const BreadcrumbEntry: React.FC<{
|
|
|
249
254
|
iconSize,
|
|
250
255
|
size,
|
|
251
256
|
variant,
|
|
257
|
+
copy,
|
|
252
258
|
dataTestId }) => {
|
|
253
259
|
const testId = makeTestId(dataTestId);
|
|
254
260
|
const isLast = index === itemCount - 1;
|
|
@@ -262,6 +268,7 @@ export const BreadcrumbEntry: React.FC<{
|
|
|
262
268
|
return (
|
|
263
269
|
<>
|
|
264
270
|
<CollapsedMenu
|
|
271
|
+
copy={copy}
|
|
265
272
|
items={collapsedItems}
|
|
266
273
|
size={size}
|
|
267
274
|
visualStyle={variant}
|
|
@@ -273,7 +280,7 @@ export const BreadcrumbEntry: React.FC<{
|
|
|
273
280
|
}
|
|
274
281
|
|
|
275
282
|
if (item.isEllipsis) {
|
|
276
|
-
return <EllipsisCrumb label={item.label} dataTestId={dataTestId} />;
|
|
283
|
+
return <EllipsisCrumb copy={copy} label={item.label} dataTestId={dataTestId} />;
|
|
277
284
|
}
|
|
278
285
|
|
|
279
286
|
const icon = crumbIcon({ item, isFirst: index === 0, showHomeIcon, iconSize });
|
|
@@ -145,6 +145,7 @@ export const Breadcrumbs = React.forwardRef<HTMLElement, BreadcrumbsProps>(
|
|
|
145
145
|
collapseBehavior,
|
|
146
146
|
mobileMaxItems,
|
|
147
147
|
ariaLabel,
|
|
148
|
+
copy,
|
|
148
149
|
dataTestId,
|
|
149
150
|
...props
|
|
150
151
|
} = resolveProps(componentProps);
|
|
@@ -181,6 +182,7 @@ export const Breadcrumbs = React.forwardRef<HTMLElement, BreadcrumbsProps>(
|
|
|
181
182
|
>
|
|
182
183
|
{displayItems.map((item, index) => (
|
|
183
184
|
<BreadcrumbEntry
|
|
185
|
+
copy={copy}
|
|
184
186
|
key={index}
|
|
185
187
|
item={item}
|
|
186
188
|
index={index}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ColorValue, SizeValue } from '../../../tokens/scales';
|
|
2
2
|
import type { BreadcrumbsProps as MuiBreadcrumbsProps } from '@mui/material';
|
|
3
3
|
import type { ReactNode } from 'react';
|
|
4
|
+
import type { BreadcrumbCopy } from '../../../copy';
|
|
4
5
|
|
|
5
6
|
export interface BreadcrumbItem {
|
|
6
7
|
/**
|
|
@@ -57,6 +58,8 @@ export interface BreadcrumbItem {
|
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
export interface BreadcrumbsProps extends Omit<MuiBreadcrumbsProps, 'separator'> {
|
|
61
|
+
/** The overflow control's tooltip, in its two spellings. REQUIRED. */
|
|
62
|
+
copy: BreadcrumbCopy;
|
|
60
63
|
/**
|
|
61
64
|
* The visual variant of the breadcrumbs container
|
|
62
65
|
* - default: No special styling
|
|
@@ -21,6 +21,7 @@ import { useCommandPalette } from './CommandPalette.hooks';
|
|
|
21
21
|
import { PaletteResults } from './CommandPaletteResults';
|
|
22
22
|
import { ShortcutChip } from './ShortcutChip';
|
|
23
23
|
import type { CommandPaletteProps } from './CommandPalette.types';
|
|
24
|
+
import type { CommandPaletteCopy } from '../../../copy';
|
|
24
25
|
|
|
25
26
|
// Styled components
|
|
26
27
|
const StyledDialog = styled(Dialog)(() => ({
|
|
@@ -98,7 +99,10 @@ const PaletteSearch: React.FC<{
|
|
|
98
99
|
</SearchContainer>
|
|
99
100
|
);
|
|
100
101
|
|
|
101
|
-
const PaletteFooter: React.FC<{ commandCount: number }> = ({
|
|
102
|
+
const PaletteFooter: React.FC<{ commandCount: number; copy: CommandPaletteCopy }> = ({
|
|
103
|
+
commandCount,
|
|
104
|
+
copy,
|
|
105
|
+
}) => {
|
|
102
106
|
const theme = useTheme();
|
|
103
107
|
|
|
104
108
|
return (
|
|
@@ -112,9 +116,13 @@ const PaletteFooter: React.FC<{ commandCount: number }> = ({ commandCount }) =>
|
|
|
112
116
|
background: alpha(theme.palette.background.default, 0.4) }}
|
|
113
117
|
>
|
|
114
118
|
<Box sx={{ display: 'flex', gap: 1 }}>
|
|
115
|
-
<ShortcutChip
|
|
116
|
-
|
|
117
|
-
|
|
119
|
+
<ShortcutChip
|
|
120
|
+
icon={<EnterIcon sx={{ fontSize: 12 }} />}
|
|
121
|
+
label={copy.execute}
|
|
122
|
+
size="small"
|
|
123
|
+
/>
|
|
124
|
+
<ShortcutChip label={copy.navigate} size="small" />
|
|
125
|
+
<ShortcutChip label={copy.close} size="small" />
|
|
118
126
|
</Box>
|
|
119
127
|
<Typography variant="caption" color="text.secondary">
|
|
120
128
|
{commandCount} commands
|
|
@@ -124,6 +132,7 @@ const PaletteFooter: React.FC<{ commandCount: number }> = ({ commandCount }) =>
|
|
|
124
132
|
};
|
|
125
133
|
|
|
126
134
|
export const CommandPalette: FC<CommandPaletteProps> = ({
|
|
135
|
+
copy,
|
|
127
136
|
open,
|
|
128
137
|
onClose,
|
|
129
138
|
commands,
|
|
@@ -177,6 +186,7 @@ export const CommandPalette: FC<CommandPaletteProps> = ({
|
|
|
177
186
|
/>
|
|
178
187
|
|
|
179
188
|
<PaletteResults
|
|
189
|
+
copy={copy}
|
|
180
190
|
listRef={listRef}
|
|
181
191
|
dataTestId={dataTestId}
|
|
182
192
|
searchQuery={searchQuery}
|
|
@@ -190,7 +200,7 @@ export const CommandPalette: FC<CommandPaletteProps> = ({
|
|
|
190
200
|
onExecute={executeCommand}
|
|
191
201
|
/>
|
|
192
202
|
|
|
193
|
-
<PaletteFooter commandCount={filteredCommands.length} />
|
|
203
|
+
<PaletteFooter copy={copy} commandCount={filteredCommands.length} />
|
|
194
204
|
</PaletteContainer>
|
|
195
205
|
</DialogContent>
|
|
196
206
|
</StyledDialog>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
+
import type { CommandPaletteCopy } from '../../../copy';
|
|
2
3
|
|
|
3
4
|
export interface PaletteCommand {
|
|
4
5
|
id: string;
|
|
@@ -12,6 +13,8 @@ export interface PaletteCommand {
|
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
export interface CommandPaletteProps {
|
|
16
|
+
/** The footer's keyboard hints and the empty state's nudge. REQUIRED. */
|
|
17
|
+
copy: CommandPaletteCopy;
|
|
15
18
|
open: boolean;
|
|
16
19
|
onClose: () => void;
|
|
17
20
|
commands: PaletteCommand[];
|
|
@@ -5,6 +5,7 @@ import React from 'react';
|
|
|
5
5
|
|
|
6
6
|
import { ShortcutChip } from './ShortcutChip';
|
|
7
7
|
import type { PaletteCommand } from './CommandPalette.types';
|
|
8
|
+
import type { CommandPaletteCopy } from '../../../copy';
|
|
8
9
|
|
|
9
10
|
const ResultsList = styled(List)(({ theme }) => ({
|
|
10
11
|
maxHeight: 400,
|
|
@@ -90,6 +91,7 @@ const slug = (value: string) => value.toLowerCase().replace(/\s+/g, '-');
|
|
|
90
91
|
// has to stay consistent across both sections, so it is threaded through here
|
|
91
92
|
// rather than mutated from inside the render as it was before.
|
|
92
93
|
export const PaletteResults: React.FC<{
|
|
94
|
+
copy: CommandPaletteCopy;
|
|
93
95
|
listRef: React.Ref<globalThis.HTMLUListElement>;
|
|
94
96
|
dataTestId?: string;
|
|
95
97
|
searchQuery: string;
|
|
@@ -102,6 +104,7 @@ export const PaletteResults: React.FC<{
|
|
|
102
104
|
onSelect: (index: number) => void;
|
|
103
105
|
onExecute: (command: PaletteCommand) => void;
|
|
104
106
|
}> = ({
|
|
107
|
+
copy,
|
|
105
108
|
listRef,
|
|
106
109
|
dataTestId,
|
|
107
110
|
searchQuery,
|
|
@@ -121,7 +124,7 @@ export const PaletteResults: React.FC<{
|
|
|
121
124
|
No commands found for "{searchQuery}"
|
|
122
125
|
</Typography>
|
|
123
126
|
<Typography variant="caption" color="text.disabled" sx={{ mt: 1 }}>
|
|
124
|
-
|
|
127
|
+
{copy.tryAnotherTerm}
|
|
125
128
|
</Typography>
|
|
126
129
|
</NoResults>
|
|
127
130
|
);
|
|
@@ -160,7 +163,7 @@ export const PaletteResults: React.FC<{
|
|
|
160
163
|
<>
|
|
161
164
|
<CategoryLabel data-testid={`${dataTestId}-group-recent`}>
|
|
162
165
|
<RecentIcon sx={{ fontSize: 14, mr: 0.5, verticalAlign: 'middle' }} />
|
|
163
|
-
|
|
166
|
+
{copy.recent}
|
|
164
167
|
</CategoryLabel>
|
|
165
168
|
{recent.map(row)}
|
|
166
169
|
{filteredCommands.length > recentCommandIds.length && <Divider sx={{ my: 1 }} />}
|
|
@@ -152,6 +152,7 @@ export const Pagination = React.forwardRef<HTMLElement, PaginationProps>(
|
|
|
152
152
|
(componentProps, ref) => {
|
|
153
153
|
const resolved = resolvePaginationProps(componentProps);
|
|
154
154
|
const {
|
|
155
|
+
pageSizeLabel,
|
|
155
156
|
variant,
|
|
156
157
|
size,
|
|
157
158
|
page,
|
|
@@ -194,6 +195,7 @@ export const Pagination = React.forwardRef<HTMLElement, PaginationProps>(
|
|
|
194
195
|
<PaginationContainer className={className} data-testid={dataTestId || 'pagination'}>
|
|
195
196
|
{showItemsPerPage && onItemsPerPageChange && (
|
|
196
197
|
<ItemsPerPageSelect
|
|
198
|
+
pageSizeLabel={pageSizeLabel}
|
|
197
199
|
value={itemsPerPage}
|
|
198
200
|
options={itemsPerPageOptions}
|
|
199
201
|
size={size}
|
|
@@ -3,6 +3,8 @@ import type { PaginationProps as MuiPaginationProps } from '@mui/material';
|
|
|
3
3
|
import type { ReactNode } from 'react';
|
|
4
4
|
|
|
5
5
|
export interface PaginationProps extends Omit<MuiPaginationProps, 'variant' | 'size' | 'color'> {
|
|
6
|
+
/** The label in front of the page-size select. REQUIRED. */
|
|
7
|
+
pageSizeLabel: string;
|
|
6
8
|
/**
|
|
7
9
|
* The variant of the pagination
|
|
8
10
|
*/
|
|
@@ -20,6 +20,8 @@ const PageInfoContainer = styled(Box)(({ theme }) => ({
|
|
|
20
20
|
}));
|
|
21
21
|
|
|
22
22
|
export interface ItemsPerPageSelectProps {
|
|
23
|
+
/** The label in front of the select. REQUIRED — it was `"Show:"`. */
|
|
24
|
+
pageSizeLabel: string;
|
|
23
25
|
value: number;
|
|
24
26
|
options: number[];
|
|
25
27
|
size: string;
|
|
@@ -29,6 +31,7 @@ export interface ItemsPerPageSelectProps {
|
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
export const ItemsPerPageSelect: FC<ItemsPerPageSelectProps> = ({
|
|
34
|
+
pageSizeLabel,
|
|
32
35
|
value,
|
|
33
36
|
options,
|
|
34
37
|
size,
|
|
@@ -38,7 +41,7 @@ export const ItemsPerPageSelect: FC<ItemsPerPageSelectProps> = ({
|
|
|
38
41
|
}) => (
|
|
39
42
|
<ItemsPerPageContainer>
|
|
40
43
|
<Typography variant="body2" color="text.secondary">
|
|
41
|
-
|
|
44
|
+
{pageSizeLabel}
|
|
42
45
|
</Typography>
|
|
43
46
|
<FormControl size="small" sx={{ minWidth: 80 }}>
|
|
44
47
|
<Select
|
|
@@ -105,8 +105,9 @@ const buildTabsSx = ({
|
|
|
105
105
|
// A tab's label: icon, text, optional close affordance, optionally badged.
|
|
106
106
|
const TabLabel: React.FC<{
|
|
107
107
|
item: TabItem;
|
|
108
|
+
closeTabLabel: string;
|
|
108
109
|
onClose: (event: React.MouseEvent | React.KeyboardEvent, tabId: string) => void;
|
|
109
|
-
}> = ({ item, onClose }) => {
|
|
110
|
+
}> = ({ item, closeTabLabel, onClose }) => {
|
|
110
111
|
const content = (
|
|
111
112
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
|
|
112
113
|
{item.icon}
|
|
@@ -116,7 +117,7 @@ const TabLabel: React.FC<{
|
|
|
116
117
|
onClick={(e) => onClose(e, item.id)}
|
|
117
118
|
role="button"
|
|
118
119
|
tabIndex={0}
|
|
119
|
-
aria-label=
|
|
120
|
+
aria-label={closeTabLabel}
|
|
120
121
|
onKeyDown={(e) => {
|
|
121
122
|
if (e.key !== 'Enter' && e.key !== ' ') return;
|
|
122
123
|
onClose(e, item.id);
|
|
@@ -176,7 +177,7 @@ const TabsBar: React.FC<
|
|
|
176
177
|
<MuiTab
|
|
177
178
|
key={item.id}
|
|
178
179
|
value={item.id}
|
|
179
|
-
label={<TabLabel item={item} onClose={onCloseTab} />}
|
|
180
|
+
label={<TabLabel closeTabLabel={p.closeTabLabel} item={item} onClose={onCloseTab} />}
|
|
180
181
|
disabled={item.disabled || p.disabled}
|
|
181
182
|
className={item.className}
|
|
182
183
|
id={`tab-${item.id}`}
|
|
@@ -224,6 +225,10 @@ export const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(
|
|
|
224
225
|
(tabsProps, ref) => {
|
|
225
226
|
const resolved = { ...TABS_DEFAULTS, ...definedProps(tabsProps) } as TabsProps;
|
|
226
227
|
const {
|
|
228
|
+
// Destructured only to keep it OUT of `rest`, which is spread onto the
|
|
229
|
+
// DOM node — `{...resolved}` below is what actually carries it to
|
|
230
|
+
// `TabsBar`. Same reason as `value` on the next line.
|
|
231
|
+
closeTabLabel: _closeTabLabel,
|
|
227
232
|
value: _value,
|
|
228
233
|
onChange,
|
|
229
234
|
onTabClose,
|
|
@@ -50,6 +50,8 @@ export interface TabItem {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
export interface TabsProps extends Omit<MuiTabsProps, 'variant' | 'children' | 'indicatorColor' | 'scrollButtons'> {
|
|
53
|
+
/** A closable tab's dismiss — a glyph with no visible label. REQUIRED. */
|
|
54
|
+
closeTabLabel: string;
|
|
53
55
|
/**
|
|
54
56
|
* The visual variant of the tabs
|
|
55
57
|
*/
|
|
@@ -12,19 +12,19 @@ const CENTERED = {
|
|
|
12
12
|
p: 2,
|
|
13
13
|
} as const;
|
|
14
14
|
|
|
15
|
-
export const DefaultLoader: React.FC = () => (
|
|
15
|
+
export const DefaultLoader: React.FC<{ loadingText: string }> = ({ loadingText }) => (
|
|
16
16
|
<Box sx={CENTERED}>
|
|
17
17
|
<CircularProgress size={24} />
|
|
18
18
|
<Typography variant="body2" sx={{ ml: 1 }}>
|
|
19
|
-
|
|
19
|
+
{loadingText}
|
|
20
20
|
</Typography>
|
|
21
21
|
</Box>
|
|
22
22
|
);
|
|
23
23
|
|
|
24
|
-
export const DefaultEndMessage: React.FC = () => (
|
|
24
|
+
export const DefaultEndMessage: React.FC<{ endText: string }> = ({ endText }) => (
|
|
25
25
|
<Box sx={CENTERED}>
|
|
26
26
|
<Typography variant="body2" color="text.secondary">
|
|
27
|
-
|
|
27
|
+
{endText}
|
|
28
28
|
</Typography>
|
|
29
29
|
</Box>
|
|
30
30
|
);
|