@12-apps/ui 6.29.1 → 6.31.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/NATIVE.md +1 -1
- package/components-catalog.md +7 -0
- package/components-guidelines.md +31 -0
- package/dist/_internal/components/data-display/Alert/Alert.js +5 -4
- package/dist/_internal/components/data-display/Alert/Alert.metrics.js +3 -2
- package/dist/_internal/components/data-display/Alert/Alert.styles.js +4 -3
- package/dist/_internal/components/data-display/Avatar/Avatar.js +6 -5
- package/dist/_internal/components/data-display/Avatar/Avatar.view.js +5 -4
- package/dist/_internal/components/data-display/Badge/Badge.animations.js +3 -2
- package/dist/_internal/components/data-display/Badge/Badge.js +6 -5
- package/dist/_internal/components/data-display/Badge/Badge.metrics.js +3 -2
- package/dist/_internal/components/data-display/Badge/Badge.styles.js +4 -3
- package/dist/_internal/components/data-display/Badge/Badge.variants.js +3 -2
- package/dist/_internal/components/data-display/Badge/BadgeContent.js +5 -4
- package/dist/_internal/components/data-display/Banner/Banner.js +3 -2
- package/dist/_internal/components/data-display/Banner/Banner.styles.js +3 -2
- package/dist/_internal/components/data-display/CardKit/CardKebab.js +8 -6
- package/dist/_internal/components/data-display/CardKit/card-actions-context.js +6 -5
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +12 -10
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +8 -6
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +7 -5
- package/dist/_internal/components/data-display/Carousel/Carousel.js +10 -8
- package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +6 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +6 -4
- package/dist/_internal/components/data-display/Chart/Chart.js +10 -8
- package/dist/_internal/components/data-display/Chart/SpecChart.js +13 -11
- package/dist/_internal/components/data-display/Chart/chart-context.js +7 -5
- package/dist/_internal/components/data-display/Chart/chart-internals.js +6 -4
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +9 -7
- package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +6 -5
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +66 -64
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +88 -86
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +13 -11
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +14 -12
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +22 -20
- package/dist/_internal/components/data-display/DataViews/base-card.js +9 -8
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +10 -9
- package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +5 -4
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +9 -8
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +15 -14
- package/dist/_internal/components/data-display/DataViews/card-surface.js +3 -2
- package/dist/_internal/components/data-display/DataViews/data-views-bar-controls.js +3 -1
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +20 -18
- package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +6 -5
- package/dist/_internal/components/data-display/DataViews/data-views-columns.js +9 -7
- package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +3 -1
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +13 -11
- package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +6 -5
- package/dist/_internal/components/data-display/DataViews/data-views-empty.js +10 -8
- package/dist/_internal/components/data-display/DataViews/data-views-export.js +10 -8
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +26 -24
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +17 -15
- package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +8 -6
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +62 -60
- package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +6 -5
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +37 -35
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +19 -17
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +23 -21
- package/dist/_internal/components/data-display/DataViews/data-views-number-input.js +3 -1
- package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +7 -5
- package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-search.js +3 -1
- package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +10 -8
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +24 -22
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +34 -32
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +23 -21
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +10 -8
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
- package/dist/_internal/components/data-display/DataViews/save-view-preview.js +6 -5
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +11 -9
- package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
- package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +6 -5
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +16 -14
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +15 -13
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +21 -19
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +4 -4
- package/dist/_internal/components/data-display/MapPreview/MapDecorations.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +4 -2
- package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.hooks.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +14 -12
- package/dist/_internal/components/data-display/MapPreview/MapSearchBar.js +3 -1
- package/dist/_internal/components/data-display/MapPreview/MapTiles.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/StaticMapView.js +4 -4
- package/dist/_internal/components/data-display/MapPreview/useMapPreview.js +3 -3
- package/dist/_internal/components/data-display/Progress/Progress.js +6 -5
- package/dist/_internal/components/data-display/Progress/Progress.metrics.js +4 -3
- package/dist/_internal/components/data-display/Progress/Progress.styles.js +5 -4
- package/dist/_internal/components/data-display/Sheet/Sheet.body.js +5 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.js +7 -5
- package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +6 -4
- package/dist/_internal/components/data-display/Table/Table.js +2 -2
- package/dist/_internal/components/data-display/index.js +61 -59
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +8 -6
- package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.js +12 -0
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +26 -0
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js.map +1 -0
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.metrics.js +12 -0
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.metrics.js.map +1 -0
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.types.js +1 -0
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.types.js.map +1 -0
- package/dist/_internal/components/feedback/index.js +35 -17
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +2 -2
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +11 -9
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +6 -4
- package/dist/_internal/components/form/AddressAutocomplete/AddressFallbackField.js +4 -2
- package/dist/_internal/components/form/AddressAutocomplete/AddressInputField.js +4 -2
- package/dist/_internal/components/form/AddressAutocomplete/AddressTextField.js +3 -1
- package/dist/_internal/components/form/Autocomplete/Autocomplete.js +4 -2
- package/dist/_internal/components/form/Autocomplete/Autocomplete.parts.js +3 -1
- package/dist/_internal/components/form/Button/Button.js +7 -5
- package/dist/_internal/components/form/Button/Button.metrics.js +1 -3
- package/dist/_internal/components/form/Button/Button.styles.js +5 -4
- package/dist/_internal/components/form/Calendar/Calendar.hooks.js +2 -2
- package/dist/_internal/components/form/Calendar/Calendar.js +6 -6
- package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
- package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
- package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +9 -7
- package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +4 -2
- package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +4 -2
- package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +6 -4
- package/dist/_internal/components/form/CategorySelect/CategoryRows.js +5 -3
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +12 -10
- package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +3 -1
- package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +4 -2
- package/dist/_internal/components/form/CepField/CepField.js +6 -4
- package/dist/_internal/components/form/Checkbox/Checkbox.js +4 -3
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +5 -3
- package/dist/_internal/components/form/Command/Command.js +7 -5
- package/dist/_internal/components/form/Command/Command.styles.js +6 -4
- package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +3 -1
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +5 -3
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +14 -12
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +4 -2
- package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +5 -3
- package/dist/_internal/components/form/Input/Input.js +5 -3
- package/dist/_internal/components/form/Input/Input.metrics.js +1 -1
- package/dist/_internal/components/form/Input/Input.styles.js +6 -2
- package/dist/_internal/components/form/InputOTP/InputOTP.js +4 -2
- package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +3 -1
- package/dist/_internal/components/form/Label/Label.js +7 -5
- package/dist/_internal/components/form/Label/Label.styles.js +6 -4
- package/dist/_internal/components/form/Menubar/Menubar.item.js +7 -5
- package/dist/_internal/components/form/Menubar/Menubar.js +10 -8
- package/dist/_internal/components/form/Menubar/Menubar.styles.js +6 -4
- package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +8 -6
- package/dist/_internal/components/form/PhoneInput/PhoneInput.js +3 -1
- package/dist/_internal/components/form/RadioGroup/RadioGroup.js +5 -3
- package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +3 -1
- package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +4 -2
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +4 -2
- package/dist/_internal/components/form/Select/Select.js +4 -2
- package/dist/_internal/components/form/Select/Select.metrics.js +1 -1
- package/dist/_internal/components/form/Switch/Switch.js +8 -7
- package/dist/_internal/components/form/Switch/Switch.parts.js +6 -5
- package/dist/_internal/components/form/Switch/Switch.styles.js +5 -4
- package/dist/_internal/components/form/Textarea/Textarea.js +3 -1
- package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +6 -2
- package/dist/_internal/components/form/Textarea/TextareaRichEditor.js.map +1 -1
- package/dist/_internal/components/form/Toggle/Toggle.js +4 -2
- package/dist/_internal/components/form/Toggle/Toggle.styles.js +3 -1
- package/dist/_internal/components/form/ToggleGroup/ToggleGroup.js +4 -1
- package/dist/_internal/components/form/index.js +89 -87
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +13 -11
- package/dist/_internal/components/form/total-form/Fields/CepField.js +7 -5
- package/dist/_internal/components/form/total-form/Fields/SelectField.js +5 -3
- package/dist/_internal/components/form/total-form/Fields/TextField.js +6 -4
- package/dist/_internal/components/form/total-form/Fields/ToggleField.js +5 -2
- package/dist/_internal/components/form/total-form/Fields/index.js +27 -24
- package/dist/_internal/components/form/total-form/SubmitButton.js +8 -6
- package/dist/_internal/components/index.js +232 -218
- package/dist/_internal/components/layout/Box/Box.js +8 -6
- package/dist/_internal/components/layout/Card/Card.js +2 -2
- package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +3 -1
- package/dist/_internal/components/layout/ContentToolbar/ContentToolbar.js +3 -1
- package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +3 -1
- package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +4 -2
- package/dist/_internal/components/layout/ContentToolbar/MultiSelectTriggers.js +3 -1
- package/dist/_internal/components/layout/ContentToolbar/SortByDropdown.js +3 -1
- package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +3 -1
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +1 -1
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +4 -4
- package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +2 -2
- package/dist/_internal/components/layout/Stack/Stack.js +9 -7
- package/dist/_internal/components/layout/TableFilter/TableFilter.js +3 -1
- package/dist/_internal/components/layout/index.js +32 -30
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +14 -12
- package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +6 -4
- package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +3 -3
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +2 -2
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +4 -4
- package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +2 -2
- package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
- package/dist/_internal/components/navigation/Tabs/Tabs.js +2 -2
- package/dist/_internal/components/navigation/index.js +34 -32
- package/dist/_internal/components/typography/Heading/Heading.js +6 -5
- package/dist/_internal/components/typography/Heading/Heading.metrics.js +4 -3
- package/dist/_internal/components/typography/Heading/Heading.styles.js +5 -4
- package/dist/_internal/components/typography/Paragraph/Paragraph.js +4 -3
- package/dist/_internal/components/typography/Text/Text.js +5 -4
- package/dist/_internal/components/typography/Text/Text.metrics.js +4 -3
- package/dist/_internal/components/typography/index.js +9 -8
- package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
- package/dist/_internal/components/utility/index.js +15 -15
- package/dist/_internal/en-US.data-display.js +2 -2
- package/dist/_internal/en-US.feedback.js +3 -1
- package/dist/_internal/icons/Icon.js +8 -6
- package/dist/_internal/provider/UiProvider.js +7 -5
- package/dist/_internal/provider/mui-bridge.js +6 -4
- package/dist/_internal/provider/use-ui-theme.js +7 -5
- package/dist/_internal/pt-BR.feedback.js +3 -1
- package/dist/_internal/social-login-button/social-login-button.js +16 -14
- package/dist/_internal/tokens/field-radius.core.js +8 -0
- package/dist/_internal/tokens/field-radius.core.js.map +1 -0
- package/dist/_internal/tokens/field-radius.js +18 -0
- package/dist/_internal/tokens/field-radius.js.map +1 -0
- package/dist/_internal/tokens/theme.js +3 -2
- package/dist/_internal/user-avatar/user-avatar.js +16 -14
- package/dist/charts.js +16 -14
- package/dist/{chunk-RXVPUW7V.js → chunk-26ORCF6J.js} +2 -2
- package/dist/chunk-26X4CZVR.js +7 -0
- package/dist/chunk-26X4CZVR.js.map +1 -0
- package/dist/{chunk-XZTOIEKI.js → chunk-272OV2KZ.js} +5 -2
- package/dist/chunk-272OV2KZ.js.map +1 -0
- package/dist/{chunk-THOPGHTY.js → chunk-2DFH74T4.js} +2 -2
- package/dist/{chunk-W5CW7JFZ.js → chunk-2N2KNXTF.js} +2 -2
- package/dist/{chunk-W3FAKT3D.js → chunk-2SWQ6HIK.js} +4 -4
- package/dist/{chunk-IVVOIDE5.js → chunk-2YOQLBEX.js} +3 -3
- package/dist/{chunk-DEE6IPGI.js → chunk-32MTYYGC.js} +10 -10
- package/dist/{chunk-GVDJQMFI.js → chunk-35GWNOLB.js} +2 -2
- package/dist/{chunk-MI2MVH3I.js → chunk-3BAFJMBH.js} +8 -5
- package/dist/chunk-3BAFJMBH.js.map +1 -0
- package/dist/chunk-3MEIGSDK.js +88 -0
- package/dist/chunk-3MEIGSDK.js.map +1 -0
- package/dist/{chunk-W4SDVTZC.js → chunk-3PT3SBJ7.js} +2 -2
- package/dist/{chunk-P3NRT6GV.js → chunk-3ZGQSWHJ.js} +5 -5
- package/dist/{chunk-PFLKPNBU.js → chunk-4DUHJIR2.js} +2 -2
- package/dist/{chunk-CJUOBTLL.js → chunk-4EL5ZSZ3.js} +6 -3
- package/dist/chunk-4EL5ZSZ3.js.map +1 -0
- package/dist/{chunk-46UPILLK.js → chunk-4ETQRBZC.js} +4 -4
- package/dist/{chunk-65DLYC4S.js → chunk-4LDRYLE2.js} +2 -2
- package/dist/{chunk-ON2CMKTI.js → chunk-4WT4PV4M.js} +2 -2
- package/dist/chunk-55E7GLVT.js +109 -0
- package/dist/chunk-55E7GLVT.js.map +1 -0
- package/dist/chunk-55FFONIV.js +11 -0
- package/dist/chunk-55FFONIV.js.map +1 -0
- package/dist/{chunk-AIBNBWQU.js → chunk-5EQFAFR3.js} +2 -2
- package/dist/{chunk-EVXFEXBS.js → chunk-5UGXAAZG.js} +2 -2
- package/dist/{chunk-DOMEYGTN.js → chunk-5YOFMMK3.js} +2 -2
- package/dist/{chunk-JE6RZ5L6.js → chunk-5ZOJLYD2.js} +4 -4
- package/dist/{chunk-J3JGO6Y6.js → chunk-65IHPI4S.js} +5 -1
- package/dist/chunk-65IHPI4S.js.map +1 -0
- package/dist/{chunk-NY2Y2SHA.js → chunk-67L5CMXP.js} +6 -6
- package/dist/{chunk-L6TCIZFR.js → chunk-6BGS5FND.js} +3 -3
- package/dist/{chunk-QPDDS6DQ.js → chunk-6PSAPCTE.js} +2 -2
- package/dist/{chunk-QSKJLMNS.js → chunk-6SK3MTYJ.js} +4 -4
- package/dist/{chunk-MGPA6KTM.js → chunk-6SNRPCSK.js} +2 -2
- package/dist/{chunk-WXD7MGBT.js → chunk-6SXZ7CF2.js} +6 -2
- package/dist/chunk-6SXZ7CF2.js.map +1 -0
- package/dist/{chunk-XELVDPKL.js → chunk-6VZYQC7T.js} +6 -6
- package/dist/chunk-6YIKVXAV.js +1 -0
- package/dist/chunk-6YIKVXAV.js.map +1 -0
- package/dist/{chunk-G5ZVD5IJ.js → chunk-7AR2R7TV.js} +4 -4
- package/dist/{chunk-B6IURHSZ.js → chunk-7DNQHMDO.js} +4 -4
- package/dist/{chunk-VLHGBFR6.js → chunk-7U36V4CU.js} +4 -4
- package/dist/{chunk-ZU3SWR4I.js → chunk-7YTLJUBX.js} +2 -2
- package/dist/{chunk-C5EFVSBN.js → chunk-A5FIYKAN.js} +2 -2
- package/dist/{chunk-SOCKK67R.js → chunk-AFZUPCBK.js} +6 -6
- package/dist/{chunk-PQECNGDE.js → chunk-AGYGNNOM.js} +2 -2
- package/dist/{chunk-AVI3XHRQ.js → chunk-AIRWM7KK.js} +4 -4
- package/dist/{chunk-T5WNNEP5.js → chunk-APMEXS3Y.js} +2 -2
- package/dist/chunk-ASHXIAJO.js +88 -0
- package/dist/chunk-ASHXIAJO.js.map +1 -0
- package/dist/{chunk-K7DCYV5Q.js → chunk-ATBT4RJZ.js} +2 -2
- package/dist/{chunk-JMVIIKII.js → chunk-BDVJ65GR.js} +6 -2
- package/dist/chunk-BDVJ65GR.js.map +1 -0
- package/dist/{chunk-QZBUGUOY.js → chunk-BHXFPZAA.js} +11 -8
- package/dist/chunk-BHXFPZAA.js.map +1 -0
- package/dist/{chunk-HKV4MQ2W.js → chunk-BKP7YW3Y.js} +2 -2
- package/dist/{chunk-UN5INW6K.js → chunk-BPYPUEM5.js} +3 -3
- package/dist/{chunk-SONWG2RT.js → chunk-BRAF4MFO.js} +9 -6
- package/dist/chunk-BRAF4MFO.js.map +1 -0
- package/dist/{chunk-BEWD734I.js → chunk-BRUJC7OG.js} +3 -3
- package/dist/{chunk-SLMA4UQS.js → chunk-BWSYSSF3.js} +3 -3
- package/dist/{chunk-FR6AJSMT.js → chunk-C2ZNAQMO.js} +5 -5
- package/dist/{chunk-TU6RNZUQ.js → chunk-C4NRFERD.js} +2 -2
- package/dist/{chunk-V7F53GEO.js → chunk-CATLG2RT.js} +7 -7
- package/dist/{chunk-LYMAMKJT.js → chunk-CEA4QA63.js} +2 -2
- package/dist/{chunk-XXDXW6TX.js → chunk-CIVLXOLG.js} +2 -2
- package/dist/{chunk-7TZ6OC5T.js → chunk-CJMU3G2J.js} +6 -6
- package/dist/{chunk-MVJYIHPH.js → chunk-CKW267ZK.js} +6 -6
- package/dist/{chunk-MRMNVGNX.js → chunk-CPA2YRVZ.js} +2 -2
- package/dist/{chunk-TSFFZ3AH.js → chunk-D5YGDCMP.js} +15 -15
- package/dist/{chunk-3TFUAKWJ.js → chunk-D6P5PSHU.js} +2 -2
- package/dist/{chunk-3W7IEWEL.js → chunk-D7Q42CRZ.js} +8 -2
- package/dist/chunk-D7Q42CRZ.js.map +1 -0
- package/dist/{chunk-DVE53B2L.js → chunk-DBXGRZBJ.js} +7 -7
- package/dist/{chunk-XSJWN3WH.js → chunk-DF2FFYZ7.js} +7 -7
- package/dist/{chunk-T7WU7JGC.js → chunk-DHQ6ASUD.js} +5 -5
- package/dist/{chunk-ZZOOSKSV.js → chunk-DV42HAVP.js} +12 -6
- package/dist/chunk-DV42HAVP.js.map +1 -0
- package/dist/{chunk-RBGOGTT2.js → chunk-DWZ7FLA7.js} +4 -4
- package/dist/{chunk-DVUPIVI2.js → chunk-DX36KZUV.js} +4 -4
- package/dist/{chunk-FVPN4YKW.js → chunk-EATFKTO3.js} +3 -3
- package/dist/{chunk-VRKS5K4N.js → chunk-EJJRJYB5.js} +4 -4
- package/dist/{chunk-TSEWUY4V.js → chunk-EN5Q5RPQ.js} +3 -3
- package/dist/{chunk-ZS44PY7T.js → chunk-ETSKBOXN.js} +5 -3
- package/dist/chunk-ETSKBOXN.js.map +1 -0
- package/dist/{chunk-EYC6ERJJ.js → chunk-ETU4LNU7.js} +3 -3
- package/dist/{chunk-UC6A6ASM.js → chunk-EYRSUVBC.js} +2 -2
- package/dist/{chunk-HLYPI5CO.js → chunk-F22WT7UX.js} +2 -2
- package/dist/{chunk-JPVDZXXX.js → chunk-F65LT7XV.js} +2 -2
- package/dist/{chunk-V5IOLAIS.js → chunk-F73D4EMA.js} +1 -1
- package/dist/chunk-F73D4EMA.js.map +1 -0
- package/dist/{chunk-J2K65BQQ.js → chunk-FC74EAW4.js} +4 -4
- package/dist/{chunk-TEE6HNHS.js → chunk-FRW4SYZD.js} +4 -4
- package/dist/{chunk-LCXXPIG3.js → chunk-G3WUOPWE.js} +2 -2
- package/dist/{chunk-S6YY2WWK.js → chunk-G5G4Q7G6.js} +13 -3
- package/dist/chunk-G5G4Q7G6.js.map +1 -0
- package/dist/{chunk-SQV3HPTZ.js → chunk-G76H5PEM.js} +4 -4
- package/dist/chunk-GDN2LUTZ.js +39 -0
- package/dist/chunk-GDN2LUTZ.js.map +1 -0
- package/dist/{chunk-DFK6QCXX.js → chunk-GEZYZ446.js} +1 -2
- package/dist/{chunk-DFK6QCXX.js.map → chunk-GEZYZ446.js.map} +1 -1
- package/dist/{chunk-XYDW5RQB.js → chunk-GKGA2ZCW.js} +2 -2
- package/dist/{chunk-KW7H5O3K.js → chunk-GLPHRHIT.js} +7 -7
- package/dist/{chunk-3PUOLOEP.js → chunk-GOKMLXZH.js} +2 -2
- package/dist/{chunk-R6SBP5M5.js → chunk-GOWBYHYW.js} +4 -4
- package/dist/{chunk-B7NV6JFG.js → chunk-GUROYOKQ.js} +2 -2
- package/dist/{chunk-PVIAHB7D.js → chunk-H2RHA73H.js} +9 -9
- package/dist/{chunk-C5YBXQTK.js → chunk-H35CQ6DF.js} +3 -3
- package/dist/{chunk-ZUY65MFH.js → chunk-H7ZN2GW7.js} +6 -3
- package/dist/chunk-H7ZN2GW7.js.map +1 -0
- package/dist/{chunk-5WNQJ5KS.js → chunk-HEWJJ4VE.js} +6 -3
- package/dist/chunk-HEWJJ4VE.js.map +1 -0
- package/dist/{chunk-SHDIZSN5.js → chunk-HFBME3C5.js} +2 -2
- package/dist/{chunk-HS2OJI6L.js → chunk-HSVNFMXY.js} +8 -8
- package/dist/{chunk-WQFIV5WD.js → chunk-HZAPN7XD.js} +6 -2
- package/dist/chunk-HZAPN7XD.js.map +1 -0
- package/dist/{chunk-NWQWUYOV.js → chunk-I2IZ53QS.js} +2 -2
- package/dist/{chunk-K4N3V7YE.js → chunk-IASDP44E.js} +4 -4
- package/dist/{chunk-PCYGUOWJ.js → chunk-IAVAZ36T.js} +4 -4
- package/dist/{chunk-B443IIQG.js → chunk-IE7ISTLQ.js} +4 -4
- package/dist/{chunk-LKF5KQ2Q.js → chunk-IIUB4IOH.js} +4 -4
- package/dist/{chunk-UKPZVX3J.js → chunk-INH2BDHV.js} +9 -9
- package/dist/{chunk-PUBPZOQJ.js → chunk-IPE5FFFD.js} +2 -2
- package/dist/{chunk-HP2ODXNA.js → chunk-IPS55KWK.js} +2 -2
- package/dist/{chunk-J3ZP6EUS.js → chunk-IQFUV3BA.js} +2 -2
- package/dist/{chunk-A7LG3AXV.js → chunk-IRSI3BFF.js} +26 -13
- package/dist/chunk-IRSI3BFF.js.map +1 -0
- package/dist/{chunk-2ZRZTGWP.js → chunk-ISW5K72V.js} +5 -5
- package/dist/{chunk-OD4Z5G6G.js → chunk-J2RRZZXC.js} +2 -2
- package/dist/{chunk-FV36LFPX.js → chunk-JHOBW7OD.js} +6 -2
- package/dist/chunk-JHOBW7OD.js.map +1 -0
- package/dist/{chunk-BYMWW65P.js → chunk-JOPTI47I.js} +3 -3
- package/dist/chunk-JQRKXMSH.js +1 -0
- package/dist/chunk-JQRKXMSH.js.map +1 -0
- package/dist/{chunk-T2VO32Z2.js → chunk-JUHPNTDA.js} +10 -4
- package/dist/chunk-JUHPNTDA.js.map +1 -0
- package/dist/{chunk-J3D34ZBL.js → chunk-JVMNE5G4.js} +6 -2
- package/dist/chunk-JVMNE5G4.js.map +1 -0
- package/dist/{chunk-5LQ7PKMW.js → chunk-K6FCXPTS.js} +1 -3
- package/dist/chunk-K6FCXPTS.js.map +1 -0
- package/dist/{chunk-VKH7AENA.js → chunk-KJYD5OJ4.js} +2 -2
- package/dist/{chunk-HZVFAGLZ.js → chunk-L6UTYFAB.js} +6 -3
- package/dist/chunk-L6UTYFAB.js.map +1 -0
- package/dist/chunk-L7BRU4UF.js +39 -0
- package/dist/chunk-L7BRU4UF.js.map +1 -0
- package/dist/{chunk-RVGG5YJY.js → chunk-LG6DHNRD.js} +2 -2
- package/dist/{chunk-WC5XYWTE.js → chunk-LWAOL4BG.js} +2 -2
- package/dist/{chunk-MNSW33DU.js → chunk-MCAXIKQD.js} +4 -4
- package/dist/{chunk-H53YNR23.js → chunk-MRGPVPQC.js} +8 -8
- package/dist/{chunk-DBYFC6CF.js → chunk-MSKEFXXV.js} +5 -2
- package/dist/chunk-MSKEFXXV.js.map +1 -0
- package/dist/{chunk-EZNTM6PT.js → chunk-MYUZPUXQ.js} +3 -3
- package/dist/{chunk-SX3V2DLV.js → chunk-NFJUBPIN.js} +2 -2
- package/dist/{chunk-XGOWREVV.js → chunk-NJ6D37KV.js} +2 -2
- package/dist/{chunk-4H4Y2SX3.js → chunk-NLUZGT4U.js} +3 -3
- package/dist/{chunk-NGVGTMHT.js → chunk-NR2HXHBR.js} +2 -2
- package/dist/{chunk-HKKSZ7HG.js → chunk-O6DRUOUF.js} +2 -2
- package/dist/{chunk-YB6MDGPR.js → chunk-O7SE4PYT.js} +8 -3
- package/dist/chunk-O7SE4PYT.js.map +1 -0
- package/dist/{chunk-R6SSXEK2.js → chunk-OFMDFN3U.js} +2 -2
- package/dist/{chunk-EUKYQXYU.js → chunk-OHKEQ7QJ.js} +2 -2
- package/dist/{chunk-NUB4T3RQ.js → chunk-OIFBBDYX.js} +2 -2
- package/dist/{chunk-PFZAUMJA.js → chunk-OL7UQMBI.js} +2 -2
- package/dist/{chunk-O42ZA3TW.js → chunk-ORIFMVN4.js} +3 -3
- package/dist/{chunk-5KFZGB5U.js → chunk-P4BZ7YE6.js} +2 -2
- package/dist/{chunk-JRWPI4XF.js → chunk-P7FQUGED.js} +5 -5
- package/dist/{chunk-XBZ43VIV.js → chunk-PCONTSJJ.js} +10 -10
- package/dist/{chunk-XOCLWQON.js → chunk-PEMZ2ABQ.js} +4 -4
- package/dist/{chunk-UCU5FCYE.js → chunk-PS3EJLOC.js} +6 -2
- package/dist/chunk-PS3EJLOC.js.map +1 -0
- package/dist/{chunk-XXE6NTJB.js → chunk-Q544QEIN.js} +5 -3
- package/dist/chunk-Q544QEIN.js.map +1 -0
- package/dist/{chunk-VXTYVJDK.js → chunk-Q5BSNHN7.js} +2 -2
- package/dist/{chunk-IQ7WZ3RN.js → chunk-QKDFD4VT.js} +4 -4
- package/dist/{chunk-YTYROOLY.js → chunk-QNUWSXF2.js} +3 -3
- package/dist/{chunk-VESIQYBF.js → chunk-QP3KK4KO.js} +12 -12
- package/dist/{chunk-MSUSZLRE.js → chunk-QPMLACIK.js} +2 -2
- package/dist/{chunk-MHSTG7FF.js → chunk-R4SOPN6K.js} +8 -5
- package/dist/chunk-R4SOPN6K.js.map +1 -0
- package/dist/{chunk-TF4TPLF2.js → chunk-R7KR5FYJ.js} +2 -2
- package/dist/{chunk-237NDIT2.js → chunk-RCI6KVN6.js} +5 -5
- package/dist/{chunk-VIK3HAUQ.js → chunk-RDFPH47Y.js} +8 -2
- package/dist/chunk-RDFPH47Y.js.map +1 -0
- package/dist/{chunk-WYDGPJ3Z.js → chunk-RFZU5BTG.js} +4 -4
- package/dist/{chunk-PJTSGHTY.js → chunk-RIA34EUT.js} +2 -2
- package/dist/{chunk-JOXBCXVL.js → chunk-RMB4RTTM.js} +9 -9
- package/dist/{chunk-RNCQ5KHQ.js → chunk-RQFBLYYH.js} +2 -2
- package/dist/{chunk-4T6W43TO.js → chunk-RRDL7AGQ.js} +2 -2
- package/dist/{chunk-JB67KPGM.js → chunk-RRO2EOJB.js} +4 -4
- package/dist/{chunk-5UC2RNOY.js → chunk-RWIBPIPD.js} +3 -3
- package/dist/{chunk-QGAYEBMU.js → chunk-SAIKHWH7.js} +8 -8
- package/dist/{chunk-PZEC5CQA.js → chunk-SDSAQ5YS.js} +2 -2
- package/dist/{chunk-YFY3YVV6.js → chunk-SGV7QGYQ.js} +7 -7
- package/dist/{chunk-GJQYM3PM.js → chunk-SHQWIDD5.js} +4 -4
- package/dist/{chunk-OLQDB346.js → chunk-SMUZRLFZ.js} +2 -2
- package/dist/{chunk-QGBMCB76.js → chunk-SSJHEV5Z.js} +2 -2
- package/dist/{chunk-L2E7TY7P.js → chunk-SZB2Z6QN.js} +6 -2
- package/dist/chunk-SZB2Z6QN.js.map +1 -0
- package/dist/{chunk-MEWYA74E.js → chunk-SZZLABMO.js} +3 -3
- package/dist/{chunk-OJCK5RNJ.js → chunk-TLY2QMU5.js} +3 -3
- package/dist/{chunk-TTW4MAOJ.js → chunk-UCTJJYVC.js} +5 -5
- package/dist/{chunk-BLT5ZBVL.js → chunk-UEJQQVP2.js} +4 -4
- package/dist/{chunk-ALAJBLBE.js → chunk-UHWHTNUS.js} +5 -5
- package/dist/{chunk-EMAX7RPN.js → chunk-URK67BAE.js} +5 -5
- package/dist/{chunk-FGUESLDX.js → chunk-USPQZQBF.js} +5 -1
- package/dist/chunk-USPQZQBF.js.map +1 -0
- package/dist/{chunk-GH2DC7PS.js → chunk-V3RVRZAU.js} +5 -5
- package/dist/{chunk-624TFFLJ.js → chunk-V6YZ3PL5.js} +2 -2
- package/dist/{chunk-236QP424.js → chunk-VGSEI7PQ.js} +2 -2
- package/dist/{chunk-HDNK7BAX.js → chunk-VNEEXUWA.js} +3 -3
- package/dist/{chunk-EPRA5QLB.js → chunk-VUFMV5Q5.js} +2 -2
- package/dist/{chunk-LVCUJ7YU.js → chunk-VYMULXCJ.js} +6 -1
- package/dist/chunk-VYMULXCJ.js.map +1 -0
- package/dist/{chunk-QYNCPS5W.js → chunk-WBKWIFXA.js} +6 -6
- package/dist/{chunk-3BPDHWVF.js → chunk-WCLWFN3F.js} +9 -9
- package/dist/{chunk-6TSP45KC.js → chunk-WHLVMQNF.js} +5 -1
- package/dist/chunk-WHLVMQNF.js.map +1 -0
- package/dist/{chunk-FOKBP6HR.js → chunk-WI6GD4MV.js} +10 -10
- package/dist/{chunk-XXJRT6BP.js → chunk-WMALDOF5.js} +4 -4
- package/dist/{chunk-TOYEP23N.js → chunk-WONCE5GB.js} +7 -3
- package/dist/chunk-WONCE5GB.js.map +1 -0
- package/dist/{chunk-4OSGKO7E.js → chunk-WVJI3Z4P.js} +2 -2
- package/dist/{chunk-VVXA7T2M.js → chunk-WVQ47UTI.js} +2 -2
- package/dist/{chunk-GJUIZ5FN.js → chunk-X2R7QG5I.js} +7 -4
- package/dist/chunk-X2R7QG5I.js.map +1 -0
- package/dist/{chunk-TX3ZHO5R.js → chunk-XEUSTU7K.js} +8 -5
- package/dist/chunk-XEUSTU7K.js.map +1 -0
- package/dist/{chunk-6WIDZGXE.js → chunk-XMDH3MRV.js} +5 -2
- package/dist/chunk-XMDH3MRV.js.map +1 -0
- package/dist/{chunk-LSJY4LWZ.js → chunk-XPPEUGHG.js} +4 -4
- package/dist/{chunk-JVVTSSS4.js → chunk-XVM4ZIRE.js} +2 -2
- package/dist/{chunk-7MR2JCJW.js → chunk-Y2CSBXQT.js} +2 -2
- package/dist/{chunk-D6HDJVQW.js → chunk-YANLN6HP.js} +5 -5
- package/dist/{chunk-NGM5XKAS.js → chunk-YXQ2NJHF.js} +3 -3
- package/dist/{chunk-HQB5XNK5.js → chunk-ZCNCQGWK.js} +2 -2
- package/dist/{chunk-WC3W36AM.js → chunk-ZOUWHGV3.js} +4 -4
- package/dist/{chunk-2L2NWXWJ.js → chunk-ZVTJGWIV.js} +2 -2
- package/dist/data-display/Alert.js +5 -4
- package/dist/data-display/Avatar.js +6 -5
- package/dist/data-display/Badge.js +6 -5
- package/dist/data-display/Banner.js +3 -2
- package/dist/data-display/CardKit.js +15 -13
- package/dist/data-display/Carousel.js +10 -8
- package/dist/data-display/Chart.js +16 -14
- package/dist/data-display/DataGrid.js +2 -2
- package/dist/data-display/DataViews.js +107 -105
- package/dist/data-display/DescriptionItem.js +6 -5
- package/dist/data-display/FleetMap.js +21 -19
- package/dist/data-display/Lightbox.js +4 -4
- package/dist/data-display/MapPreview.js +14 -12
- package/dist/data-display/Progress.js +6 -5
- package/dist/data-display/Sheet.js +7 -5
- package/dist/data-display/Table.js +2 -2
- package/dist/en-US.js +7 -5
- package/dist/feedback/ConfirmAction.js +8 -6
- package/dist/feedback/Dialog.js +2 -2
- package/dist/feedback/NotificationStatusNotice.js +32 -0
- package/dist/feedback/NotificationStatusNotice.js.map +1 -0
- package/dist/form/AddressAutocomplete.js +11 -9
- package/dist/form/Autocomplete.js +4 -2
- package/dist/form/Button.js +7 -5
- package/dist/form/Calendar.js +6 -6
- package/dist/form/CategorySelect.js +12 -10
- package/dist/form/CepField.js +6 -4
- package/dist/form/Checkbox.js +4 -3
- package/dist/form/CodeEditor.js +5 -3
- package/dist/form/Command.js +7 -5
- package/dist/form/CreatableSelect.js +3 -1
- package/dist/form/DateRangePicker.js +14 -12
- package/dist/form/Input.js +5 -3
- package/dist/form/InputOTP.js +4 -2
- package/dist/form/Label.js +7 -5
- package/dist/form/Menubar.js +10 -8
- package/dist/form/PhoneInput.js +3 -1
- package/dist/form/RadioGroup.js +5 -3
- package/dist/form/RichTextEditor.js +4 -2
- package/dist/form/Select.js +4 -2
- package/dist/form/Switch.js +8 -7
- package/dist/form/Textarea.js +3 -1
- package/dist/form/Toggle.js +4 -2
- package/dist/form/ToggleGroup.js +4 -1
- package/dist/form/total-form.js +36 -34
- package/dist/icons.js +8 -6
- package/dist/layout/Box.js +8 -6
- package/dist/layout/Card.js +2 -2
- package/dist/layout/ContentToolbar.js +14 -12
- package/dist/layout/ScrollArea.js +1 -1
- package/dist/layout/SettingsLayout.js +6 -6
- package/dist/layout/Stack.js +9 -7
- package/dist/layout/TableFilter.js +3 -1
- package/dist/locales.js +10 -10
- package/dist/native/chunks/{chunk-2HLEFYJ5.js → chunk-7UEJ2FMQ.js} +2 -2
- package/dist/native/chunks/{chunk-6XDMYJBW.js → chunk-IVNAQJY6.js} +2 -2
- package/dist/native/chunks/{chunk-YXM4NR2B.js → chunk-LB65S6C7.js} +3 -3
- package/dist/native/chunks/{chunk-CO47ZRXO.js → chunk-S5SLTMPB.js} +2 -2
- package/dist/native/chunks/{chunk-BEPOBULQ.js → chunk-T3TYQMAH.js} +4 -5
- package/dist/native/chunks/chunk-T3TYQMAH.js.map +1 -0
- package/dist/native/chunks/{chunk-NVPXIJ2O.js → chunk-UKROAIPA.js} +4 -6
- package/dist/native/chunks/chunk-UKROAIPA.js.map +1 -0
- package/dist/native/chunks/{chunk-YQDDM6ZW.js → chunk-V72V2Q45.js} +6 -2
- package/dist/native/chunks/chunk-V72V2Q45.js.map +1 -0
- package/dist/native/chunks/{chunk-SOQVMWLQ.js → chunk-VAD5YVIZ.js} +5 -5
- package/dist/native/data-display/Alert.js +3 -3
- package/dist/native/data-display/Avatar.js +3 -3
- package/dist/native/data-display/Badge.js +3 -3
- package/dist/native/data-display/Chip.js +3 -3
- package/dist/native/data-display/EmptyState.js +5 -5
- package/dist/native/data-display/ErrorState.js +4 -4
- package/dist/native/data-display/FleetMap.js +6 -6
- package/dist/native/data-display/LoadingState.js +2 -2
- package/dist/native/data-display/Progress.js +2 -2
- package/dist/native/feedback/Dialog.js +3 -3
- package/dist/native/form/Button.js +3 -3
- package/dist/native/form/Checkbox.js +3 -3
- package/dist/native/form/Input.js +4 -5
- package/dist/native/form/Input.js.map +1 -1
- package/dist/native/form/Select.js +5 -6
- package/dist/native/form/Select.js.map +1 -1
- package/dist/native/form/Switch.js +2 -2
- package/dist/native/icons.js +3 -3
- package/dist/native/layout/Box.js +3 -3
- package/dist/native/layout/Card.js +2 -2
- package/dist/native/layout/Container.js +2 -2
- package/dist/native/layout/Skeleton.js +3 -3
- package/dist/native/layout/Spacer.js +2 -2
- package/dist/native/layout/Stack.js +3 -3
- package/dist/native/provider.js +2 -2
- package/dist/native/tokens.js +3 -1
- package/dist/native/typography/Heading.js +2 -2
- package/dist/native/typography/Paragraph.js +2 -2
- package/dist/native/typography/Text.js +2 -2
- package/dist/navigation/AppHeader.js +17 -15
- package/dist/navigation/CommandPalette.js +3 -3
- package/dist/navigation/NavigationMenu.js +4 -4
- package/dist/navigation/Pagination.js +2 -2
- package/dist/navigation/Tabs.js +2 -2
- package/dist/provider.js +8 -6
- package/dist/pt-BR.js +7 -5
- package/dist/social-login-button.js +16 -14
- package/dist/tokens.js +17 -3
- package/dist/types/components/data-display/DataViews/data-views-bar-controls.d.ts.map +1 -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-more-fields.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-number-input.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-search.d.ts.map +1 -1
- package/dist/types/components/data-display/MapPreview/MapSearchBar.d.ts.map +1 -1
- package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.d.ts +13 -0
- package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.d.ts.map +1 -0
- package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.d.ts +28 -0
- package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.d.ts.map +1 -0
- package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.metrics.d.ts +7 -0
- package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.metrics.d.ts.map +1 -0
- package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.types.d.ts +64 -0
- package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.types.d.ts.map +1 -0
- package/dist/types/components/feedback/NotificationStatusNotice/index.d.ts +4 -0
- package/dist/types/components/feedback/NotificationStatusNotice/index.d.ts.map +1 -0
- package/dist/types/components/feedback/index.d.ts +1 -0
- package/dist/types/components/feedback/index.d.ts.map +1 -1
- package/dist/types/components/form/AddressAutocomplete/AddressTextField.d.ts.map +1 -1
- package/dist/types/components/form/Autocomplete/Autocomplete.parts.d.ts.map +1 -1
- package/dist/types/components/form/Button/Button.d.ts.map +1 -1
- package/dist/types/components/form/Button/Button.metrics.d.ts +0 -2
- package/dist/types/components/form/Button/Button.metrics.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategoryPanelFoot.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategoryPanelHead.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategorySelect.styles.d.ts +4 -1
- package/dist/types/components/form/CategorySelect/CategorySelect.styles.d.ts.map +1 -1
- package/dist/types/components/form/CodeEditor/CodeEditor.d.ts.map +1 -1
- package/dist/types/components/form/CreatableSelect/CreatableSelect.d.ts.map +1 -1
- package/dist/types/components/form/Input/Input.d.ts.map +1 -1
- package/dist/types/components/form/Input/Input.metrics.d.ts +4 -2
- package/dist/types/components/form/Input/Input.metrics.d.ts.map +1 -1
- package/dist/types/components/form/Input/Input.styles.d.ts +6 -0
- package/dist/types/components/form/Input/Input.styles.d.ts.map +1 -1
- package/dist/types/components/form/InputOTP/InputOTP.styles.d.ts.map +1 -1
- package/dist/types/components/form/PhoneInput/PhoneInput.d.ts.map +1 -1
- package/dist/types/components/form/RadioGroup/RadioGroup.styles.d.ts.map +1 -1
- package/dist/types/components/form/RichTextEditor/RichTextEditor.d.ts.map +1 -1
- package/dist/types/components/form/Select/Select.d.ts.map +1 -1
- package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
- package/dist/types/components/form/Textarea/TextareaRichEditor.d.ts.map +1 -1
- package/dist/types/components/form/Toggle/Toggle.styles.d.ts.map +1 -1
- package/dist/types/components/form/ToggleGroup/ToggleGroup.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ColumnsMenu.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/FilterTrigger.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/MultiSelectTriggers.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/SortByDropdown.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ViewSelector.d.ts.map +1 -1
- package/dist/types/components/layout/TableFilter/TableFilter.d.ts.map +1 -1
- package/dist/types/copy/feedback.d.ts +43 -0
- package/dist/types/copy/feedback.d.ts.map +1 -1
- package/dist/types/en-US.feedback.d.ts +2 -1
- package/dist/types/en-US.feedback.d.ts.map +1 -1
- package/dist/types/provider/mui-bridge.d.ts.map +1 -1
- package/dist/types/pt-BR.feedback.d.ts +2 -1
- package/dist/types/pt-BR.feedback.d.ts.map +1 -1
- package/dist/types/tokens/field-radius.core.d.ts +26 -0
- package/dist/types/tokens/field-radius.core.d.ts.map +1 -0
- package/dist/types/tokens/field-radius.d.ts +60 -0
- package/dist/types/tokens/field-radius.d.ts.map +1 -0
- package/dist/types/tokens/scales.d.ts +1 -0
- package/dist/types/tokens/scales.d.ts.map +1 -1
- package/dist/types/tokens/theme.d.ts +8 -1
- package/dist/types/tokens/theme.d.ts.map +1 -1
- package/dist/types-native/components/form/Button/Button.metrics.d.ts +0 -2
- package/dist/types-native/components/form/Button/Button.metrics.d.ts.map +1 -1
- package/dist/types-native/components/form/Input/Input.look.native.d.ts.map +1 -1
- package/dist/types-native/components/form/Input/Input.metrics.d.ts +4 -2
- package/dist/types-native/components/form/Input/Input.metrics.d.ts.map +1 -1
- package/dist/types-native/components/form/Select/Select.native.d.ts.map +1 -1
- package/dist/types-native/tokens/field-radius.core.d.ts +26 -0
- package/dist/types-native/tokens/field-radius.core.d.ts.map +1 -0
- package/dist/types-native/tokens/index.native.d.ts +1 -0
- package/dist/types-native/tokens/index.native.d.ts.map +1 -1
- package/dist/types-native/tokens/theme.d.ts +8 -1
- package/dist/types-native/tokens/theme.d.ts.map +1 -1
- package/dist/typography/Heading.js +6 -5
- package/dist/typography/Paragraph.js +4 -3
- package/dist/typography/Text.js +5 -4
- package/dist/user-avatar.js +16 -14
- package/dist/utility/InstallPrompt.js +2 -2
- package/package.json +5 -1
- package/src/components/data-display/DataViews/data-views-bar-controls.tsx +4 -3
- package/src/components/data-display/DataViews/data-views-day-input.tsx +2 -1
- package/src/components/data-display/DataViews/data-views-more-fields.tsx +2 -1
- package/src/components/data-display/DataViews/data-views-number-input.tsx +2 -1
- package/src/components/data-display/DataViews/data-views-range-pill.tsx +2 -1
- package/src/components/data-display/DataViews/data-views-search.tsx +5 -3
- package/src/components/data-display/MapPreview/MapSearchBar.tsx +3 -1
- package/src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.ts +80 -0
- package/src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.md +106 -0
- package/src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.metrics.ts +8 -0
- package/src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.tsx +134 -0
- package/src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.types.ts +83 -0
- package/src/components/feedback/NotificationStatusNotice/index.ts +16 -0
- package/src/components/feedback/NotificationStatusNotice/tests.md +24 -0
- package/src/components/feedback/NotificationStatusNotice/track.md +34 -0
- package/src/components/feedback/index.ts +1 -0
- package/src/components/form/AddressAutocomplete/AddressTextField.tsx +6 -1
- package/src/components/form/Autocomplete/Autocomplete.parts.tsx +2 -0
- package/src/components/form/Button/Button.metrics.ts +0 -2
- package/src/components/form/Button/Button.native.tsx +2 -2
- package/src/components/form/Button/Button.tsx +2 -1
- package/src/components/form/CategorySelect/CategoryPanelFoot.tsx +2 -1
- package/src/components/form/CategorySelect/CategoryPanelHead.tsx +2 -1
- package/src/components/form/CategorySelect/CategorySelect.styles.ts +6 -2
- package/src/components/form/CodeEditor/CodeEditor.tsx +2 -1
- package/src/components/form/CreatableSelect/CreatableSelect.tsx +2 -0
- package/src/components/form/Input/Input.look.native.ts +6 -3
- package/src/components/form/Input/Input.metrics.ts +4 -2
- package/src/components/form/Input/Input.native.tsx +2 -2
- package/src/components/form/Input/Input.styles.ts +14 -1
- package/src/components/form/Input/Input.tsx +2 -0
- package/src/components/form/InputOTP/InputOTP.styles.ts +2 -1
- package/src/components/form/PhoneInput/PhoneInput.tsx +6 -1
- package/src/components/form/RadioGroup/RadioGroup.styles.ts +11 -5
- package/src/components/form/RichTextEditor/RichTextEditor.tsx +2 -1
- package/src/components/form/Select/Select.native.tsx +1 -2
- package/src/components/form/Select/Select.tsx +3 -1
- package/src/components/form/Textarea/Textarea.tsx +2 -1
- package/src/components/form/Textarea/TextareaRichEditor.tsx +3 -2
- package/src/components/form/Toggle/Toggle.styles.ts +2 -1
- package/src/components/form/ToggleGroup/ToggleGroup.tsx +24 -12
- package/src/components/layout/ContentToolbar/ColumnsMenu.tsx +2 -1
- package/src/components/layout/ContentToolbar/ContentToolbar.tsx +2 -1
- package/src/components/layout/ContentToolbar/FilterTrigger.tsx +2 -0
- package/src/components/layout/ContentToolbar/MultiSelectTriggers.tsx +4 -2
- package/src/components/layout/ContentToolbar/SortByDropdown.tsx +2 -1
- package/src/components/layout/ContentToolbar/ViewSelector.tsx +2 -1
- package/src/components/layout/TableFilter/TableFilter.tsx +2 -0
- package/src/copy/feedback.ts +28 -0
- package/src/en-US.feedback.ts +69 -0
- package/src/provider/mui-bridge.ts +4 -1
- package/src/pt-BR.feedback.ts +69 -0
- package/src/tokens/field-radius.core.ts +26 -0
- package/src/tokens/field-radius.ts +90 -0
- package/src/tokens/index.native.ts +1 -0
- package/src/tokens/scales.ts +1 -0
- package/src/tokens/theme.ts +10 -3
- package/dist/chunk-3W7IEWEL.js.map +0 -1
- package/dist/chunk-5LQ7PKMW.js.map +0 -1
- package/dist/chunk-5WNQJ5KS.js.map +0 -1
- package/dist/chunk-6TSP45KC.js.map +0 -1
- package/dist/chunk-6WIDZGXE.js.map +0 -1
- package/dist/chunk-A7LG3AXV.js.map +0 -1
- package/dist/chunk-CJUOBTLL.js.map +0 -1
- package/dist/chunk-DBYFC6CF.js.map +0 -1
- package/dist/chunk-E5ACI7EA.js +0 -22
- package/dist/chunk-E5ACI7EA.js.map +0 -1
- package/dist/chunk-FGUESLDX.js.map +0 -1
- package/dist/chunk-FV36LFPX.js.map +0 -1
- package/dist/chunk-GJUIZ5FN.js.map +0 -1
- package/dist/chunk-HZVFAGLZ.js.map +0 -1
- package/dist/chunk-IFLZNCAI.js +0 -22
- package/dist/chunk-IFLZNCAI.js.map +0 -1
- package/dist/chunk-J3D34ZBL.js.map +0 -1
- package/dist/chunk-J3JGO6Y6.js.map +0 -1
- package/dist/chunk-JMVIIKII.js.map +0 -1
- package/dist/chunk-L2E7TY7P.js.map +0 -1
- package/dist/chunk-LVCUJ7YU.js.map +0 -1
- package/dist/chunk-MHSTG7FF.js.map +0 -1
- package/dist/chunk-MI2MVH3I.js.map +0 -1
- package/dist/chunk-QZBUGUOY.js.map +0 -1
- package/dist/chunk-S6YY2WWK.js.map +0 -1
- package/dist/chunk-SO2J7ULY.js +0 -1
- package/dist/chunk-SONWG2RT.js.map +0 -1
- package/dist/chunk-T2VO32Z2.js.map +0 -1
- package/dist/chunk-TOYEP23N.js.map +0 -1
- package/dist/chunk-TX3ZHO5R.js.map +0 -1
- package/dist/chunk-UCU5FCYE.js.map +0 -1
- package/dist/chunk-V5IOLAIS.js.map +0 -1
- package/dist/chunk-VIK3HAUQ.js.map +0 -1
- package/dist/chunk-WQFIV5WD.js.map +0 -1
- package/dist/chunk-WXD7MGBT.js.map +0 -1
- package/dist/chunk-XXE6NTJB.js.map +0 -1
- package/dist/chunk-XZTOIEKI.js.map +0 -1
- package/dist/chunk-YB6MDGPR.js.map +0 -1
- package/dist/chunk-ZS44PY7T.js.map +0 -1
- package/dist/chunk-ZUY65MFH.js.map +0 -1
- package/dist/chunk-ZZOOSKSV.js.map +0 -1
- package/dist/native/chunks/chunk-BEPOBULQ.js.map +0 -1
- package/dist/native/chunks/chunk-NVPXIJ2O.js.map +0 -1
- package/dist/native/chunks/chunk-YQDDM6ZW.js.map +0 -1
- /package/dist/{chunk-SO2J7ULY.js.map → _internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.js.map} +0 -0
- /package/dist/{chunk-RXVPUW7V.js.map → chunk-26ORCF6J.js.map} +0 -0
- /package/dist/{chunk-THOPGHTY.js.map → chunk-2DFH74T4.js.map} +0 -0
- /package/dist/{chunk-W5CW7JFZ.js.map → chunk-2N2KNXTF.js.map} +0 -0
- /package/dist/{chunk-W3FAKT3D.js.map → chunk-2SWQ6HIK.js.map} +0 -0
- /package/dist/{chunk-IVVOIDE5.js.map → chunk-2YOQLBEX.js.map} +0 -0
- /package/dist/{chunk-DEE6IPGI.js.map → chunk-32MTYYGC.js.map} +0 -0
- /package/dist/{chunk-GVDJQMFI.js.map → chunk-35GWNOLB.js.map} +0 -0
- /package/dist/{chunk-W4SDVTZC.js.map → chunk-3PT3SBJ7.js.map} +0 -0
- /package/dist/{chunk-P3NRT6GV.js.map → chunk-3ZGQSWHJ.js.map} +0 -0
- /package/dist/{chunk-PFLKPNBU.js.map → chunk-4DUHJIR2.js.map} +0 -0
- /package/dist/{chunk-46UPILLK.js.map → chunk-4ETQRBZC.js.map} +0 -0
- /package/dist/{chunk-65DLYC4S.js.map → chunk-4LDRYLE2.js.map} +0 -0
- /package/dist/{chunk-ON2CMKTI.js.map → chunk-4WT4PV4M.js.map} +0 -0
- /package/dist/{chunk-AIBNBWQU.js.map → chunk-5EQFAFR3.js.map} +0 -0
- /package/dist/{chunk-EVXFEXBS.js.map → chunk-5UGXAAZG.js.map} +0 -0
- /package/dist/{chunk-DOMEYGTN.js.map → chunk-5YOFMMK3.js.map} +0 -0
- /package/dist/{chunk-JE6RZ5L6.js.map → chunk-5ZOJLYD2.js.map} +0 -0
- /package/dist/{chunk-NY2Y2SHA.js.map → chunk-67L5CMXP.js.map} +0 -0
- /package/dist/{chunk-L6TCIZFR.js.map → chunk-6BGS5FND.js.map} +0 -0
- /package/dist/{chunk-QPDDS6DQ.js.map → chunk-6PSAPCTE.js.map} +0 -0
- /package/dist/{chunk-QSKJLMNS.js.map → chunk-6SK3MTYJ.js.map} +0 -0
- /package/dist/{chunk-MGPA6KTM.js.map → chunk-6SNRPCSK.js.map} +0 -0
- /package/dist/{chunk-XELVDPKL.js.map → chunk-6VZYQC7T.js.map} +0 -0
- /package/dist/{chunk-G5ZVD5IJ.js.map → chunk-7AR2R7TV.js.map} +0 -0
- /package/dist/{chunk-B6IURHSZ.js.map → chunk-7DNQHMDO.js.map} +0 -0
- /package/dist/{chunk-VLHGBFR6.js.map → chunk-7U36V4CU.js.map} +0 -0
- /package/dist/{chunk-ZU3SWR4I.js.map → chunk-7YTLJUBX.js.map} +0 -0
- /package/dist/{chunk-C5EFVSBN.js.map → chunk-A5FIYKAN.js.map} +0 -0
- /package/dist/{chunk-SOCKK67R.js.map → chunk-AFZUPCBK.js.map} +0 -0
- /package/dist/{chunk-PQECNGDE.js.map → chunk-AGYGNNOM.js.map} +0 -0
- /package/dist/{chunk-AVI3XHRQ.js.map → chunk-AIRWM7KK.js.map} +0 -0
- /package/dist/{chunk-T5WNNEP5.js.map → chunk-APMEXS3Y.js.map} +0 -0
- /package/dist/{chunk-K7DCYV5Q.js.map → chunk-ATBT4RJZ.js.map} +0 -0
- /package/dist/{chunk-HKV4MQ2W.js.map → chunk-BKP7YW3Y.js.map} +0 -0
- /package/dist/{chunk-UN5INW6K.js.map → chunk-BPYPUEM5.js.map} +0 -0
- /package/dist/{chunk-BEWD734I.js.map → chunk-BRUJC7OG.js.map} +0 -0
- /package/dist/{chunk-SLMA4UQS.js.map → chunk-BWSYSSF3.js.map} +0 -0
- /package/dist/{chunk-FR6AJSMT.js.map → chunk-C2ZNAQMO.js.map} +0 -0
- /package/dist/{chunk-TU6RNZUQ.js.map → chunk-C4NRFERD.js.map} +0 -0
- /package/dist/{chunk-V7F53GEO.js.map → chunk-CATLG2RT.js.map} +0 -0
- /package/dist/{chunk-LYMAMKJT.js.map → chunk-CEA4QA63.js.map} +0 -0
- /package/dist/{chunk-XXDXW6TX.js.map → chunk-CIVLXOLG.js.map} +0 -0
- /package/dist/{chunk-7TZ6OC5T.js.map → chunk-CJMU3G2J.js.map} +0 -0
- /package/dist/{chunk-MVJYIHPH.js.map → chunk-CKW267ZK.js.map} +0 -0
- /package/dist/{chunk-MRMNVGNX.js.map → chunk-CPA2YRVZ.js.map} +0 -0
- /package/dist/{chunk-TSFFZ3AH.js.map → chunk-D5YGDCMP.js.map} +0 -0
- /package/dist/{chunk-3TFUAKWJ.js.map → chunk-D6P5PSHU.js.map} +0 -0
- /package/dist/{chunk-DVE53B2L.js.map → chunk-DBXGRZBJ.js.map} +0 -0
- /package/dist/{chunk-XSJWN3WH.js.map → chunk-DF2FFYZ7.js.map} +0 -0
- /package/dist/{chunk-T7WU7JGC.js.map → chunk-DHQ6ASUD.js.map} +0 -0
- /package/dist/{chunk-RBGOGTT2.js.map → chunk-DWZ7FLA7.js.map} +0 -0
- /package/dist/{chunk-DVUPIVI2.js.map → chunk-DX36KZUV.js.map} +0 -0
- /package/dist/{chunk-FVPN4YKW.js.map → chunk-EATFKTO3.js.map} +0 -0
- /package/dist/{chunk-VRKS5K4N.js.map → chunk-EJJRJYB5.js.map} +0 -0
- /package/dist/{chunk-TSEWUY4V.js.map → chunk-EN5Q5RPQ.js.map} +0 -0
- /package/dist/{chunk-EYC6ERJJ.js.map → chunk-ETU4LNU7.js.map} +0 -0
- /package/dist/{chunk-UC6A6ASM.js.map → chunk-EYRSUVBC.js.map} +0 -0
- /package/dist/{chunk-HLYPI5CO.js.map → chunk-F22WT7UX.js.map} +0 -0
- /package/dist/{chunk-JPVDZXXX.js.map → chunk-F65LT7XV.js.map} +0 -0
- /package/dist/{chunk-J2K65BQQ.js.map → chunk-FC74EAW4.js.map} +0 -0
- /package/dist/{chunk-TEE6HNHS.js.map → chunk-FRW4SYZD.js.map} +0 -0
- /package/dist/{chunk-LCXXPIG3.js.map → chunk-G3WUOPWE.js.map} +0 -0
- /package/dist/{chunk-SQV3HPTZ.js.map → chunk-G76H5PEM.js.map} +0 -0
- /package/dist/{chunk-XYDW5RQB.js.map → chunk-GKGA2ZCW.js.map} +0 -0
- /package/dist/{chunk-KW7H5O3K.js.map → chunk-GLPHRHIT.js.map} +0 -0
- /package/dist/{chunk-3PUOLOEP.js.map → chunk-GOKMLXZH.js.map} +0 -0
- /package/dist/{chunk-R6SBP5M5.js.map → chunk-GOWBYHYW.js.map} +0 -0
- /package/dist/{chunk-B7NV6JFG.js.map → chunk-GUROYOKQ.js.map} +0 -0
- /package/dist/{chunk-PVIAHB7D.js.map → chunk-H2RHA73H.js.map} +0 -0
- /package/dist/{chunk-C5YBXQTK.js.map → chunk-H35CQ6DF.js.map} +0 -0
- /package/dist/{chunk-SHDIZSN5.js.map → chunk-HFBME3C5.js.map} +0 -0
- /package/dist/{chunk-HS2OJI6L.js.map → chunk-HSVNFMXY.js.map} +0 -0
- /package/dist/{chunk-NWQWUYOV.js.map → chunk-I2IZ53QS.js.map} +0 -0
- /package/dist/{chunk-K4N3V7YE.js.map → chunk-IASDP44E.js.map} +0 -0
- /package/dist/{chunk-PCYGUOWJ.js.map → chunk-IAVAZ36T.js.map} +0 -0
- /package/dist/{chunk-B443IIQG.js.map → chunk-IE7ISTLQ.js.map} +0 -0
- /package/dist/{chunk-LKF5KQ2Q.js.map → chunk-IIUB4IOH.js.map} +0 -0
- /package/dist/{chunk-UKPZVX3J.js.map → chunk-INH2BDHV.js.map} +0 -0
- /package/dist/{chunk-PUBPZOQJ.js.map → chunk-IPE5FFFD.js.map} +0 -0
- /package/dist/{chunk-HP2ODXNA.js.map → chunk-IPS55KWK.js.map} +0 -0
- /package/dist/{chunk-J3ZP6EUS.js.map → chunk-IQFUV3BA.js.map} +0 -0
- /package/dist/{chunk-2ZRZTGWP.js.map → chunk-ISW5K72V.js.map} +0 -0
- /package/dist/{chunk-OD4Z5G6G.js.map → chunk-J2RRZZXC.js.map} +0 -0
- /package/dist/{chunk-BYMWW65P.js.map → chunk-JOPTI47I.js.map} +0 -0
- /package/dist/{chunk-VKH7AENA.js.map → chunk-KJYD5OJ4.js.map} +0 -0
- /package/dist/{chunk-RVGG5YJY.js.map → chunk-LG6DHNRD.js.map} +0 -0
- /package/dist/{chunk-WC5XYWTE.js.map → chunk-LWAOL4BG.js.map} +0 -0
- /package/dist/{chunk-MNSW33DU.js.map → chunk-MCAXIKQD.js.map} +0 -0
- /package/dist/{chunk-H53YNR23.js.map → chunk-MRGPVPQC.js.map} +0 -0
- /package/dist/{chunk-EZNTM6PT.js.map → chunk-MYUZPUXQ.js.map} +0 -0
- /package/dist/{chunk-SX3V2DLV.js.map → chunk-NFJUBPIN.js.map} +0 -0
- /package/dist/{chunk-XGOWREVV.js.map → chunk-NJ6D37KV.js.map} +0 -0
- /package/dist/{chunk-4H4Y2SX3.js.map → chunk-NLUZGT4U.js.map} +0 -0
- /package/dist/{chunk-NGVGTMHT.js.map → chunk-NR2HXHBR.js.map} +0 -0
- /package/dist/{chunk-HKKSZ7HG.js.map → chunk-O6DRUOUF.js.map} +0 -0
- /package/dist/{chunk-R6SSXEK2.js.map → chunk-OFMDFN3U.js.map} +0 -0
- /package/dist/{chunk-EUKYQXYU.js.map → chunk-OHKEQ7QJ.js.map} +0 -0
- /package/dist/{chunk-NUB4T3RQ.js.map → chunk-OIFBBDYX.js.map} +0 -0
- /package/dist/{chunk-PFZAUMJA.js.map → chunk-OL7UQMBI.js.map} +0 -0
- /package/dist/{chunk-O42ZA3TW.js.map → chunk-ORIFMVN4.js.map} +0 -0
- /package/dist/{chunk-5KFZGB5U.js.map → chunk-P4BZ7YE6.js.map} +0 -0
- /package/dist/{chunk-JRWPI4XF.js.map → chunk-P7FQUGED.js.map} +0 -0
- /package/dist/{chunk-XBZ43VIV.js.map → chunk-PCONTSJJ.js.map} +0 -0
- /package/dist/{chunk-XOCLWQON.js.map → chunk-PEMZ2ABQ.js.map} +0 -0
- /package/dist/{chunk-VXTYVJDK.js.map → chunk-Q5BSNHN7.js.map} +0 -0
- /package/dist/{chunk-IQ7WZ3RN.js.map → chunk-QKDFD4VT.js.map} +0 -0
- /package/dist/{chunk-YTYROOLY.js.map → chunk-QNUWSXF2.js.map} +0 -0
- /package/dist/{chunk-VESIQYBF.js.map → chunk-QP3KK4KO.js.map} +0 -0
- /package/dist/{chunk-MSUSZLRE.js.map → chunk-QPMLACIK.js.map} +0 -0
- /package/dist/{chunk-TF4TPLF2.js.map → chunk-R7KR5FYJ.js.map} +0 -0
- /package/dist/{chunk-237NDIT2.js.map → chunk-RCI6KVN6.js.map} +0 -0
- /package/dist/{chunk-WYDGPJ3Z.js.map → chunk-RFZU5BTG.js.map} +0 -0
- /package/dist/{chunk-PJTSGHTY.js.map → chunk-RIA34EUT.js.map} +0 -0
- /package/dist/{chunk-JOXBCXVL.js.map → chunk-RMB4RTTM.js.map} +0 -0
- /package/dist/{chunk-RNCQ5KHQ.js.map → chunk-RQFBLYYH.js.map} +0 -0
- /package/dist/{chunk-4T6W43TO.js.map → chunk-RRDL7AGQ.js.map} +0 -0
- /package/dist/{chunk-JB67KPGM.js.map → chunk-RRO2EOJB.js.map} +0 -0
- /package/dist/{chunk-5UC2RNOY.js.map → chunk-RWIBPIPD.js.map} +0 -0
- /package/dist/{chunk-QGAYEBMU.js.map → chunk-SAIKHWH7.js.map} +0 -0
- /package/dist/{chunk-PZEC5CQA.js.map → chunk-SDSAQ5YS.js.map} +0 -0
- /package/dist/{chunk-YFY3YVV6.js.map → chunk-SGV7QGYQ.js.map} +0 -0
- /package/dist/{chunk-GJQYM3PM.js.map → chunk-SHQWIDD5.js.map} +0 -0
- /package/dist/{chunk-OLQDB346.js.map → chunk-SMUZRLFZ.js.map} +0 -0
- /package/dist/{chunk-QGBMCB76.js.map → chunk-SSJHEV5Z.js.map} +0 -0
- /package/dist/{chunk-MEWYA74E.js.map → chunk-SZZLABMO.js.map} +0 -0
- /package/dist/{chunk-OJCK5RNJ.js.map → chunk-TLY2QMU5.js.map} +0 -0
- /package/dist/{chunk-TTW4MAOJ.js.map → chunk-UCTJJYVC.js.map} +0 -0
- /package/dist/{chunk-BLT5ZBVL.js.map → chunk-UEJQQVP2.js.map} +0 -0
- /package/dist/{chunk-ALAJBLBE.js.map → chunk-UHWHTNUS.js.map} +0 -0
- /package/dist/{chunk-EMAX7RPN.js.map → chunk-URK67BAE.js.map} +0 -0
- /package/dist/{chunk-GH2DC7PS.js.map → chunk-V3RVRZAU.js.map} +0 -0
- /package/dist/{chunk-624TFFLJ.js.map → chunk-V6YZ3PL5.js.map} +0 -0
- /package/dist/{chunk-236QP424.js.map → chunk-VGSEI7PQ.js.map} +0 -0
- /package/dist/{chunk-HDNK7BAX.js.map → chunk-VNEEXUWA.js.map} +0 -0
- /package/dist/{chunk-EPRA5QLB.js.map → chunk-VUFMV5Q5.js.map} +0 -0
- /package/dist/{chunk-QYNCPS5W.js.map → chunk-WBKWIFXA.js.map} +0 -0
- /package/dist/{chunk-3BPDHWVF.js.map → chunk-WCLWFN3F.js.map} +0 -0
- /package/dist/{chunk-FOKBP6HR.js.map → chunk-WI6GD4MV.js.map} +0 -0
- /package/dist/{chunk-XXJRT6BP.js.map → chunk-WMALDOF5.js.map} +0 -0
- /package/dist/{chunk-4OSGKO7E.js.map → chunk-WVJI3Z4P.js.map} +0 -0
- /package/dist/{chunk-VVXA7T2M.js.map → chunk-WVQ47UTI.js.map} +0 -0
- /package/dist/{chunk-LSJY4LWZ.js.map → chunk-XPPEUGHG.js.map} +0 -0
- /package/dist/{chunk-JVVTSSS4.js.map → chunk-XVM4ZIRE.js.map} +0 -0
- /package/dist/{chunk-7MR2JCJW.js.map → chunk-Y2CSBXQT.js.map} +0 -0
- /package/dist/{chunk-D6HDJVQW.js.map → chunk-YANLN6HP.js.map} +0 -0
- /package/dist/{chunk-NGM5XKAS.js.map → chunk-YXQ2NJHF.js.map} +0 -0
- /package/dist/{chunk-HQB5XNK5.js.map → chunk-ZCNCQGWK.js.map} +0 -0
- /package/dist/{chunk-WC3W36AM.js.map → chunk-ZOUWHGV3.js.map} +0 -0
- /package/dist/{chunk-2L2NWXWJ.js.map → chunk-ZVTJGWIV.js.map} +0 -0
- /package/dist/native/chunks/{chunk-2HLEFYJ5.js.map → chunk-7UEJ2FMQ.js.map} +0 -0
- /package/dist/native/chunks/{chunk-6XDMYJBW.js.map → chunk-IVNAQJY6.js.map} +0 -0
- /package/dist/native/chunks/{chunk-YXM4NR2B.js.map → chunk-LB65S6C7.js.map} +0 -0
- /package/dist/native/chunks/{chunk-CO47ZRXO.js.map → chunk-S5SLTMPB.js.map} +0 -0
- /package/dist/native/chunks/{chunk-SOQVMWLQ.js.map → chunk-VAD5YVIZ.js.map} +0 -0
package/src/copy/feedback.ts
CHANGED
|
@@ -37,3 +37,31 @@ export interface ChromeCopy {
|
|
|
37
37
|
/** The share affordance in the install prompt. */
|
|
38
38
|
share: string;
|
|
39
39
|
}
|
|
40
|
+
|
|
41
|
+
/** One ordered list of steps a reader follows in their browser. */
|
|
42
|
+
type Steps = readonly string[];
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* How to lift a notification block, per browser — the steps
|
|
46
|
+
* `NotificationStatusNotice` shows in its `blocked` state.
|
|
47
|
+
*
|
|
48
|
+
* Keyed the way `detectNotificationBrowser` answers, and read through
|
|
49
|
+
* `notificationUnblockSteps`, which falls back to `other` for anything a pack
|
|
50
|
+
* does not name. Menu labels move between browser versions; these follow the
|
|
51
|
+
* current ones and say where to look rather than promising an exact word.
|
|
52
|
+
*/
|
|
53
|
+
export interface NotificationUnblockCopy {
|
|
54
|
+
/**
|
|
55
|
+
* Every browser on iOS. Web push there belongs to a Home Screen app, so the
|
|
56
|
+
* switch lives in the device's Settings rather than in any browser.
|
|
57
|
+
*/
|
|
58
|
+
ios: Steps;
|
|
59
|
+
chrome: { desktop: Steps; android: Steps };
|
|
60
|
+
edge: { desktop: Steps; android: Steps };
|
|
61
|
+
firefox: { desktop: Steps; android: Steps };
|
|
62
|
+
opera: { desktop: Steps; android: Steps };
|
|
63
|
+
safari: { desktop: Steps };
|
|
64
|
+
samsung: { android: Steps };
|
|
65
|
+
/** Anything unrecognised — general enough to be true everywhere. */
|
|
66
|
+
other: Steps;
|
|
67
|
+
}
|
package/src/en-US.feedback.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type {
|
|
6
6
|
ChromeCopy,
|
|
7
|
+
NotificationUnblockCopy,
|
|
7
8
|
TutorialCopy,
|
|
8
9
|
} from './copy';
|
|
9
10
|
|
|
@@ -23,3 +24,71 @@ export const EN_US_CHROME_COPY: ChromeCopy = {
|
|
|
23
24
|
scrollToTop: "Back to top",
|
|
24
25
|
share: "Share",
|
|
25
26
|
};
|
|
27
|
+
|
|
28
|
+
const EN_US_CHROMIUM_DESKTOP = [
|
|
29
|
+
"Click the icon to the left of the site's address.",
|
|
30
|
+
"Open \"Site settings\".",
|
|
31
|
+
"Under \"Notifications\", choose \"Allow\".",
|
|
32
|
+
"Come back to this page and reload it.",
|
|
33
|
+
] as const;
|
|
34
|
+
|
|
35
|
+
const EN_US_CHROMIUM_ANDROID = [
|
|
36
|
+
"Tap the icon to the left of the site's address.",
|
|
37
|
+
"Tap \"Permissions\".",
|
|
38
|
+
"Tap \"Notifications\" and choose \"Allow\".",
|
|
39
|
+
"Come back to this page and reload it.",
|
|
40
|
+
] as const;
|
|
41
|
+
|
|
42
|
+
export const EN_US_NOTIFICATION_UNBLOCK_COPY: NotificationUnblockCopy = {
|
|
43
|
+
ios: [
|
|
44
|
+
"Open the iPhone's Settings.",
|
|
45
|
+
"Tap \"Notifications\".",
|
|
46
|
+
"Find this app in the list and turn on \"Allow Notifications\".",
|
|
47
|
+
],
|
|
48
|
+
chrome: { desktop: EN_US_CHROMIUM_DESKTOP, android: EN_US_CHROMIUM_ANDROID },
|
|
49
|
+
edge: {
|
|
50
|
+
desktop: [
|
|
51
|
+
"Click the lock to the left of the site's address.",
|
|
52
|
+
"Open \"Permissions for this site\".",
|
|
53
|
+
"Under \"Notifications\", choose \"Allow\".",
|
|
54
|
+
"Come back to this page and reload it.",
|
|
55
|
+
],
|
|
56
|
+
android: EN_US_CHROMIUM_ANDROID,
|
|
57
|
+
},
|
|
58
|
+
firefox: {
|
|
59
|
+
desktop: [
|
|
60
|
+
"Click the permissions icon to the left of the site's address.",
|
|
61
|
+
"Next to \"Send notifications\", click the X to clear the block.",
|
|
62
|
+
"Reload the page and turn notifications on again.",
|
|
63
|
+
],
|
|
64
|
+
android: [
|
|
65
|
+
"Open the browser menu and tap \"Settings\".",
|
|
66
|
+
"Tap \"Site permissions\", then \"Notifications\".",
|
|
67
|
+
"Find this site and choose \"Allow\".",
|
|
68
|
+
"Come back to this page and reload it.",
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
opera: { desktop: EN_US_CHROMIUM_DESKTOP, android: EN_US_CHROMIUM_ANDROID },
|
|
72
|
+
safari: {
|
|
73
|
+
desktop: [
|
|
74
|
+
"In the Safari menu, open \"Settings\".",
|
|
75
|
+
"Go to the \"Websites\" tab and pick \"Notifications\" in the sidebar.",
|
|
76
|
+
"Find this site and choose \"Allow\".",
|
|
77
|
+
"Come back to this page and reload it.",
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
samsung: {
|
|
81
|
+
android: [
|
|
82
|
+
"Open the browser menu and tap \"Settings\".",
|
|
83
|
+
"Tap \"Sites and downloads\", then \"Notifications\".",
|
|
84
|
+
"Find this site and allow notifications.",
|
|
85
|
+
"Come back to this page and reload it.",
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
other: [
|
|
89
|
+
"Open the browser's settings.",
|
|
90
|
+
"Look for site permissions, then \"Notifications\".",
|
|
91
|
+
"Allow notifications for this site.",
|
|
92
|
+
"Come back to this page and reload it.",
|
|
93
|
+
],
|
|
94
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { PaletteColor, Theme, ThemeOptions } from '@mui/material/styles/index.js';
|
|
2
2
|
|
|
3
3
|
import { cssLengthToPx, cssTrackingToEm } from '../tokens/css-units';
|
|
4
|
+
import { fieldRadius, fieldRadiusOverrides } from '../tokens/field-radius';
|
|
4
5
|
import { accentFor } from '../tokens/scales';
|
|
5
6
|
import {
|
|
6
7
|
FONT_WEIGHTS,
|
|
@@ -97,7 +98,7 @@ export function uiThemeFromMui(theme: Theme): UiTheme {
|
|
|
97
98
|
},
|
|
98
99
|
spacing: (units: number) => units * unit,
|
|
99
100
|
spacingUnit: unit,
|
|
100
|
-
radius: { sm: md / 2, md, lg: md * 2, xl: md * 4, full: 9999 },
|
|
101
|
+
radius: { sm: md / 2, md, lg: md * 2, xl: md * 4, full: 9999, field: fieldRadius(theme) },
|
|
101
102
|
typography: {
|
|
102
103
|
fontFamily: theme.typography.fontFamily ?? WEB_FONT_FAMILY,
|
|
103
104
|
monospaceFontFamily: WEB_MONOSPACE_FONT_FAMILY,
|
|
@@ -134,6 +135,8 @@ export function muiThemeOptionsFrom(ui: UiTheme): ThemeOptions {
|
|
|
134
135
|
grey: { ...palette.grey },
|
|
135
136
|
},
|
|
136
137
|
shape: { borderRadius: ui.radius.md },
|
|
138
|
+
fieldRadius: ui.radius.field,
|
|
139
|
+
components: fieldRadiusOverrides(ui.radius.field),
|
|
137
140
|
spacing: ui.spacingUnit,
|
|
138
141
|
typography: { fontFamily: ui.typography.fontFamily ?? WEB_FONT_FAMILY },
|
|
139
142
|
zIndex: { ...ui.zIndex },
|
package/src/pt-BR.feedback.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type {
|
|
6
6
|
ChromeCopy,
|
|
7
|
+
NotificationUnblockCopy,
|
|
7
8
|
TutorialCopy,
|
|
8
9
|
} from './copy';
|
|
9
10
|
|
|
@@ -23,3 +24,71 @@ export const PT_BR_CHROME_COPY: ChromeCopy = {
|
|
|
23
24
|
scrollToTop: "Voltar ao topo",
|
|
24
25
|
share: "Compartilhar",
|
|
25
26
|
};
|
|
27
|
+
|
|
28
|
+
const PT_BR_CHROMIUM_DESKTOP = [
|
|
29
|
+
"Clique no ícone à esquerda do endereço do site.",
|
|
30
|
+
"Abra \"Configurações do site\".",
|
|
31
|
+
"Em \"Notificações\", escolha \"Permitir\".",
|
|
32
|
+
"Volte a esta página e recarregue.",
|
|
33
|
+
] as const;
|
|
34
|
+
|
|
35
|
+
const PT_BR_CHROMIUM_ANDROID = [
|
|
36
|
+
"Toque no ícone à esquerda do endereço do site.",
|
|
37
|
+
"Toque em \"Permissões\".",
|
|
38
|
+
"Toque em \"Notificações\" e escolha \"Permitir\".",
|
|
39
|
+
"Volte a esta página e recarregue.",
|
|
40
|
+
] as const;
|
|
41
|
+
|
|
42
|
+
export const PT_BR_NOTIFICATION_UNBLOCK_COPY: NotificationUnblockCopy = {
|
|
43
|
+
ios: [
|
|
44
|
+
"Abra os Ajustes do iPhone.",
|
|
45
|
+
"Toque em \"Notificações\".",
|
|
46
|
+
"Encontre este app na lista e ative \"Permitir Notificações\".",
|
|
47
|
+
],
|
|
48
|
+
chrome: { desktop: PT_BR_CHROMIUM_DESKTOP, android: PT_BR_CHROMIUM_ANDROID },
|
|
49
|
+
edge: {
|
|
50
|
+
desktop: [
|
|
51
|
+
"Clique no cadeado à esquerda do endereço do site.",
|
|
52
|
+
"Abra \"Permissões para este site\".",
|
|
53
|
+
"Em \"Notificações\", escolha \"Permitir\".",
|
|
54
|
+
"Volte a esta página e recarregue.",
|
|
55
|
+
],
|
|
56
|
+
android: PT_BR_CHROMIUM_ANDROID,
|
|
57
|
+
},
|
|
58
|
+
firefox: {
|
|
59
|
+
desktop: [
|
|
60
|
+
"Clique no ícone de permissões à esquerda do endereço do site.",
|
|
61
|
+
"Ao lado de \"Enviar notificações\", clique no X para tirar o bloqueio.",
|
|
62
|
+
"Recarregue a página e ative as notificações de novo.",
|
|
63
|
+
],
|
|
64
|
+
android: [
|
|
65
|
+
"Abra o menu do navegador e toque em \"Configurações\".",
|
|
66
|
+
"Toque em \"Permissões de sites\" e depois em \"Notificações\".",
|
|
67
|
+
"Encontre este site e escolha \"Permitir\".",
|
|
68
|
+
"Volte a esta página e recarregue.",
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
opera: { desktop: PT_BR_CHROMIUM_DESKTOP, android: PT_BR_CHROMIUM_ANDROID },
|
|
72
|
+
safari: {
|
|
73
|
+
desktop: [
|
|
74
|
+
"No menu Safari, abra \"Ajustes\".",
|
|
75
|
+
"Vá na aba \"Sites\" e, na lateral, em \"Notificações\".",
|
|
76
|
+
"Encontre este site e escolha \"Permitir\".",
|
|
77
|
+
"Volte a esta página e recarregue.",
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
samsung: {
|
|
81
|
+
android: [
|
|
82
|
+
"Abra o menu do navegador e toque em \"Configurações\".",
|
|
83
|
+
"Toque em \"Sites e downloads\" e depois em \"Notificações\".",
|
|
84
|
+
"Encontre este site e permita as notificações.",
|
|
85
|
+
"Volte a esta página e recarregue.",
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
other: [
|
|
89
|
+
"Abra as configurações do navegador.",
|
|
90
|
+
"Procure as permissões dos sites e depois \"Notificações\".",
|
|
91
|
+
"Permita as notificações para este site.",
|
|
92
|
+
"Volte a esta página e recarregue.",
|
|
93
|
+
],
|
|
94
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE ONE RADIUS EVERY FIELD IS DRAWN WITH, WITH NO RENDERER BEHIND IT.
|
|
3
|
+
*
|
|
4
|
+
* A row of controls — a search box, three filter triggers, a "Mais" button —
|
|
5
|
+
* used to carry three radii: the text field took MUI's `shape.borderRadius`
|
|
6
|
+
* (4px), the button `theme.spacing(1)` (8px), and the filter triggers a 999px
|
|
7
|
+
* pill. Each was reasonable on its own; side by side they read as three kits
|
|
8
|
+
* glued together. A field's corner is one decision, so it is one token.
|
|
9
|
+
*
|
|
10
|
+
* "Field" is anything that sits at control height and takes input or opens a
|
|
11
|
+
* choice: text inputs, selects, textareas, OTP slots, date and filter triggers,
|
|
12
|
+
* toggles, and the buttons that share their rows. It is NOT a card, a menu, a
|
|
13
|
+
* badge or a chip counter — those keep the theme's general `radius` scale.
|
|
14
|
+
*
|
|
15
|
+
* This file is the number alone, so the native renderer and `./theme.ts` read
|
|
16
|
+
* it without importing MUI. The web reader and the theme channel it is set
|
|
17
|
+
* through are in `./field-radius.ts`.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The default field radius, in px (dp on native).
|
|
22
|
+
*
|
|
23
|
+
* 8, because that is what `Button` has always drawn — so the control people
|
|
24
|
+
* see most keeps its corner and the rest of the row comes to meet it.
|
|
25
|
+
*/
|
|
26
|
+
export const DEFAULT_FIELD_RADIUS = 8;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { Components, CSSObject, Theme } from '@mui/material/styles/index.js';
|
|
2
|
+
|
|
3
|
+
import { DEFAULT_FIELD_RADIUS } from './field-radius.core';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* THE FIELD RADIUS ON THE WEB: the theme channel, the reader, and the MUI
|
|
7
|
+
* overrides that carry it into controls this package does not style itself.
|
|
8
|
+
*
|
|
9
|
+
* The argument for one radius is in `./field-radius.core.ts`.
|
|
10
|
+
*
|
|
11
|
+
* ## Why a key of our own, and not `shape.borderRadius`
|
|
12
|
+
*
|
|
13
|
+
* `shape.borderRadius` is MUI's GENERAL radius: `Paper`, `Card`, `Menu`,
|
|
14
|
+
* `Alert`, `Chip` and every `sx={{ borderRadius: n }}` multiply it. Moving it to
|
|
15
|
+
* round the fields would round every surface in the app along with them. A
|
|
16
|
+
* separate key moves the fields and nothing else.
|
|
17
|
+
*
|
|
18
|
+
* It is a top-level theme key rather than `shape.fieldRadius` because MUI types
|
|
19
|
+
* `shape` in `@mui/system`, which this package does not depend on — augmenting
|
|
20
|
+
* it would fail to resolve in a host. MUI documents top-level custom variables
|
|
21
|
+
* for exactly this, and `createTheme` carries unknown keys through.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
export { DEFAULT_FIELD_RADIUS } from './field-radius.core';
|
|
25
|
+
|
|
26
|
+
declare module '@mui/material/styles' {
|
|
27
|
+
interface Theme {
|
|
28
|
+
/** The radius every field is drawn with, in px. See `@12-apps/ui/tokens`' `fieldRadius`. */
|
|
29
|
+
fieldRadius?: number;
|
|
30
|
+
}
|
|
31
|
+
interface ThemeOptions {
|
|
32
|
+
/** The radius every field is drawn with, in px. Defaults to {@link DEFAULT_FIELD_RADIUS}. */
|
|
33
|
+
fieldRadius?: number;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** The field radius the host's theme asks for, in px — the default when it asks for none. */
|
|
38
|
+
export function fieldRadius(theme: Theme): number {
|
|
39
|
+
const radius = theme.fieldRadius;
|
|
40
|
+
return typeof radius === 'number' && Number.isFinite(radius) && radius >= 0 ? radius : DEFAULT_FIELD_RADIUS;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* {@link fieldRadius} as a `px` string, for `sx`.
|
|
45
|
+
*
|
|
46
|
+
* `sx` MULTIPLIES a bare number by `shape.borderRadius` — `sx={{ borderRadius: 8 }}`
|
|
47
|
+
* is 32px on the default theme — so a field radius handed to `sx` must carry
|
|
48
|
+
* its unit. `styled()` objects take the plain number.
|
|
49
|
+
*/
|
|
50
|
+
export function fieldRadiusPx(theme: Theme): string {
|
|
51
|
+
return `${fieldRadius(theme)}px`;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The field radius on a MUI `TextField`'s input root — for a composite that
|
|
56
|
+
* renders MUI's own `TextField`, so it follows the theme's field radius under
|
|
57
|
+
* ANY theme, not only one built with {@link fieldRadiusOverrides}. Plain CSS
|
|
58
|
+
* with the unit, so it works as `styled()` styles and as an `sx` entry.
|
|
59
|
+
*/
|
|
60
|
+
export function fieldRootStyles(theme: Theme): CSSObject {
|
|
61
|
+
const radius = fieldRadiusPx(theme);
|
|
62
|
+
return {
|
|
63
|
+
'& .MuiOutlinedInput-root': { borderRadius: radius },
|
|
64
|
+
'& .MuiFilledInput-root': { borderTopLeftRadius: radius, borderTopRightRadius: radius },
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* MUI component overrides that round MUI's OWN fields to `radius`.
|
|
70
|
+
*
|
|
71
|
+
* This package's fields read {@link fieldRadius} themselves, so they are right
|
|
72
|
+
* under any theme. These overrides are for the host's: a bare `TextField`,
|
|
73
|
+
* `Select` or `Button` a host renders straight from MUI would otherwise keep
|
|
74
|
+
* `shape.borderRadius` and sit in the row with a different corner. A theme builder spreads them into `components`, under the
|
|
75
|
+
* host's own entries so a host override still wins.
|
|
76
|
+
*
|
|
77
|
+
* `FilledInput` rounds its top corners only — its bottom edge is the underline.
|
|
78
|
+
*/
|
|
79
|
+
export function fieldRadiusOverrides(radius: number = DEFAULT_FIELD_RADIUS): Components<Theme> {
|
|
80
|
+
return {
|
|
81
|
+
MuiOutlinedInput: { styleOverrides: { root: { borderRadius: radius } } },
|
|
82
|
+
MuiFilledInput: {
|
|
83
|
+
styleOverrides: { root: { borderTopLeftRadius: radius, borderTopRightRadius: radius } },
|
|
84
|
+
},
|
|
85
|
+
MuiButton: { styleOverrides: { root: { borderRadius: radius } } },
|
|
86
|
+
// The group squares its inner corners itself, so rounding each button
|
|
87
|
+
// rounds the group's outer ones.
|
|
88
|
+
MuiToggleButton: { styleOverrides: { root: { borderRadius: radius } } },
|
|
89
|
+
};
|
|
90
|
+
}
|
package/src/tokens/scales.ts
CHANGED
|
@@ -14,6 +14,7 @@ export { headingMetrics } from './typography';
|
|
|
14
14
|
// host can build a `UiTheme` from the same module path a native one does.
|
|
15
15
|
export * from './theme';
|
|
16
16
|
export * from './color';
|
|
17
|
+
export { DEFAULT_FIELD_RADIUS, fieldRadius, fieldRadiusOverrides, fieldRadiusPx, fieldRootStyles } from './field-radius';
|
|
17
18
|
|
|
18
19
|
export interface Accent {
|
|
19
20
|
main: string;
|
package/src/tokens/theme.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { contrastText, DARK_TEXT_PRIMARY, inkOver } from './ink-over';
|
|
|
8
8
|
*/
|
|
9
9
|
export { contrastText, inkOver };
|
|
10
10
|
import { cssLengthToPx, cssTrackingToEm } from './css-units';
|
|
11
|
+
import { DEFAULT_FIELD_RADIUS } from './field-radius.core';
|
|
11
12
|
import { HEADING_SCALE, type HeadingLevel } from './heading-scale';
|
|
12
13
|
|
|
13
14
|
import type { SizeValue } from './vocabulary';
|
|
@@ -106,8 +107,12 @@ export interface UiTheme {
|
|
|
106
107
|
/** MUI's `theme.spacing(n)`: `n` units of {@link UiTheme.spacingUnit}, in px. */
|
|
107
108
|
spacing: (units: number) => number;
|
|
108
109
|
spacingUnit: number;
|
|
109
|
-
/**
|
|
110
|
-
|
|
110
|
+
/**
|
|
111
|
+
* `md` is MUI's `shape.borderRadius`; `sm`–`xl` are its halves and doubles.
|
|
112
|
+
* `field` is not on that scale: it is the one corner every field is drawn
|
|
113
|
+
* with (see `./field-radius.core`), MUI's `theme.fieldRadius` on the web.
|
|
114
|
+
*/
|
|
115
|
+
radius: { sm: number; md: number; lg: number; xl: number; full: number; field: number };
|
|
111
116
|
typography: UiTypography;
|
|
112
117
|
zIndex: { appBar: number; drawer: number; modal: number; snackbar: number; tooltip: number };
|
|
113
118
|
}
|
|
@@ -128,6 +133,8 @@ export interface UiThemeOptions {
|
|
|
128
133
|
}>;
|
|
129
134
|
typography?: Partial<Pick<UiTypography, 'fontFamily' | 'monospaceFontFamily'>>;
|
|
130
135
|
spacingUnit?: number;
|
|
136
|
+
/** The radius every field is drawn with, in dp. Defaults to {@link DEFAULT_FIELD_RADIUS}. */
|
|
137
|
+
fieldRadius?: number;
|
|
131
138
|
}
|
|
132
139
|
|
|
133
140
|
const ROOT_FONT_PX = 16;
|
|
@@ -311,7 +318,7 @@ export function createUiTheme(options: UiThemeOptions = {}): UiTheme {
|
|
|
311
318
|
palette,
|
|
312
319
|
spacing: (units: number) => units * spacingUnit,
|
|
313
320
|
spacingUnit,
|
|
314
|
-
radius: { sm: 2, md: 4, lg: 8, xl: 16, full: 9999 },
|
|
321
|
+
radius: { sm: 2, md: 4, lg: 8, xl: 16, full: 9999, field: options.fieldRadius ?? DEFAULT_FIELD_RADIUS },
|
|
315
322
|
typography: {
|
|
316
323
|
fontFamily: options.typography?.fontFamily,
|
|
317
324
|
monospaceFontFamily: options.typography?.monospaceFontFamily,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/AddressAutocomplete/AddressTextField.tsx"],"sourcesContent":["import type { TextFieldProps } from '@mui/material/TextField/index.js';\nimport TextField from '@mui/material/TextField/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport type { AddressAutocompleteProps } from './AddressAutocomplete.types';\n\nimport { fieldEdge } from '../../../tokens/field-edge';\n\n// Kept module-local on purpose: the inferred type of a styled() component cannot\n// be named across a module boundary here (TS2742), so the plain component below\n// is what the rest of the folder imports.\nconst GlassTextField = styled(TextField)(({ theme }) => ({\n '& .MuiOutlinedInput-root': {\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.8)} 0%, ${alpha(theme.palette.background.paper, 0.6)} 100%)`,\n backdropFilter: 'blur(10px)',\n WebkitBackdropFilter: 'blur(10px)',\n border: `1px solid ${fieldEdge(theme)}`,\n transition: theme.transitions.create(['border-color', 'box-shadow', 'background']),\n '&:hover': {\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.9)} 0%, ${alpha(theme.palette.background.paper, 0.7)} 100%)`,\n borderColor: theme.palette.primary.main,\n },\n '&.Mui-focused': {\n background: theme.palette.background.paper,\n boxShadow: `0 0 0 2px ${alpha(theme.palette.primary.main, 0.25)}`,\n },\n '& fieldset': {\n border: 'none',\n },\n },\n}));\n\nexport type AddressTextFieldProps = Omit<TextFieldProps, 'variant'> & {\n addressVariant: AddressAutocompleteProps['variant'];\n};\n\n// 'glass' is not a MUI variant: it renders the outlined field with the frosted\n// treatment on top.\nexport const AddressTextField: FC<AddressTextFieldProps> = ({ addressVariant, ...props }) =>\n addressVariant === 'glass' ? (\n <GlassTextField variant=\"outlined\" {...props} />\n ) : (\n <TextField variant={addressVariant} {...props} />\n );\n"],"mappings":";;;;;AACA,OAAO,eAAe;AACtB,SAAS,OAAO,cAAc;AAwC1B;AA7BJ,IAAM,iBAAiB,OAAO,SAAS,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EACvD,4BAA4B;AAAA,IAC1B,YAAY,2BAA2B,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,CAAC,QAAQ,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,CAAC;AAAA,IACnI,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,QAAQ,aAAa,UAAU,KAAK,CAAC;AAAA,IACrC,YAAY,MAAM,YAAY,OAAO,CAAC,gBAAgB,cAAc,YAAY,CAAC;AAAA,IACjF,WAAW;AAAA,MACT,YAAY,2BAA2B,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,CAAC,QAAQ,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,CAAC;AAAA,MACnI,aAAa,MAAM,QAAQ,QAAQ;AAAA,IACrC;AAAA,IACA,iBAAiB;AAAA,MACf,YAAY,MAAM,QAAQ,WAAW;AAAA,MACrC,WAAW,aAAa,MAAM,MAAM,QAAQ,QAAQ,MAAM,IAAI,CAAC;AAAA,IACjE;AAAA,IACA,cAAc;AAAA,MACZ,QAAQ;AAAA,IACV;AAAA,EACF;AACF,EAAE;AAQK,IAAM,mBAA8C,CAAC,EAAE,gBAAgB,GAAG,MAAM,MACrF,mBAAmB,UACjB,oBAAC,kBAAe,SAAQ,YAAY,GAAG,OAAO,IAE9C,oBAAC,aAAU,SAAS,gBAAiB,GAAG,OAAO;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/Button/Button.metrics.ts"],"sourcesContent":["import { darken, lighten } from '../../../tokens/color';\nimport type { ColorValue, SizeValue } from '../../../tokens/vocabulary';\nimport type { UiPaletteColor, UiTheme } from '../../../tokens/theme';\n\n/**\n * THE NUMBERS BOTH `Button` RENDERERS DRAW WITH.\n *\n * `Button.styles.ts` (web, emotion) and `Button.native.tsx` (React Native)\n * read this one table. The web turns the px into rem and the padding into a\n * shorthand string; native uses the numbers as they are. Neither restates a\n * value, which is what keeps a native `md` button 16px tall of padding and\n * 16px of type exactly like the web one.\n */\nexport interface ButtonSizeMetrics {\n paddingVertical: number;\n paddingHorizontal: number;\n fontSize: number;\n}\n\nexport const BUTTON_SIZES: Record<SizeValue, ButtonSizeMetrics> = {\n xs: { paddingVertical: 2, paddingHorizontal: 8, fontSize: 12 },\n sm: { paddingVertical: 6, paddingHorizontal: 12, fontSize: 14 },\n md: { paddingVertical: 8, paddingHorizontal: 16, fontSize: 16 },\n lg: { paddingVertical: 10, paddingHorizontal: 20, fontSize: 18 },\n xl: { paddingVertical: 12, paddingHorizontal: 24, fontSize: 20 },\n};\n\n/** A button that is only an icon is square: uniform padding, no min-width. */\nexport const ICON_ONLY_PADDING: Record<SizeValue, number> = {\n xs: 2,\n sm: 5,\n md: 7,\n lg: 9,\n xl: 11,\n};\n\n/**\n * The start/end icon slot's font-size, in px — MUI's `medium` value, pinned\n * (12-74).\n *\n * MUI sizes that slot off its OWN `size` prop, writing 18/20/22 onto the first\n * child of `.MuiButton-startIcon`. We never passed a `size`, so every button in\n * every size has always drawn medium's 20px; now that `size` IS forwarded — so\n * the rendered class finally names the size the button actually is — the number\n * would start moving with it.\n *\n * WHAT THAT ACTUALLY REACHES, measured in a browser rather than assumed: this\n * Button renders its own wrapper span around the icon (it carries the child\n * test id), so MUI's rule lands on the WRAPPER and reaches the glyph only when\n * the glyph takes its size by inheritance — `fontSize=\"inherit\"`, an em-sized\n * SVG, a text or emoji glyph. With the pin removed, such a glyph measured 18px\n * at `xs`/`sm` and 22px at `lg`/`xl` against the 20px it has always been. An\n * icon carrying an absolute size of its own does not move at all: a default\n * `SvgIcon` stayed 24×24 across all five.\n *\n * A silent resize of the inherited case is still a design decision arriving as\n * a side effect of a class-name fix, so it is pinned to what shipped before —\n * `Button.tsx` puts it on that same wrapper. Scaling the glyph with the button\n * is a ticket of its own.\n */\nexport const BUTTON_ICON_GLYPH_SIZE = 20;\n\nexport const BUTTON_FONT_WEIGHT = 500;\n/** `theme.spacing(1)`. */\nexport const BUTTON_RADIUS_UNITS = 1;\n/** Between the icon and the label: `theme.spacing(0.5)`. */\nexport const BUTTON_ICON_GAP_UNITS = 0.5;\nexport const BUTTON_SPINNER_SIZE = 16;\n/** MUI's `line-height` for button text. */\nexport const BUTTON_LINE_HEIGHT = 1.75;\n\n/** The wash behind an outline, ghost or text button while it is hovered or pressed. */\nexport const BUTTON_WASH_ALPHA = 0.1;\nexport const GLASS_BACKGROUND_ALPHA = 0.1;\nexport const GLASS_BACKGROUND_ALPHA_PRESSED = 0.2;\nexport const GLASS_BORDER_ALPHA = 0.2;\nexport const GLOW_INNER_ALPHA = 0.6;\nexport const GLOW_OUTER_ALPHA = 0.3;\nexport const GLOW_RADIUS = 20;\nexport const PULSE_ALPHA = 0.3;\nexport const PULSE_DURATION_MS = 2000;\nexport const PULSE_SPREAD = 15;\n\n/**\n * `neutral` has no palette slot of its own in MUI, so `Button.styles.ts` has\n * always drawn it from three greys. Same three greys here.\n */\nexport function buttonPalette(theme: UiTheme, color: ColorValue): UiPaletteColor {\n if (color === 'neutral') {\n return {\n main: theme.palette.grey[700],\n dark: theme.palette.grey[800],\n light: theme.palette.grey[500],\n contrastText: '#fff',\n };\n }\n return theme.palette[color];\n}\n\n/**\n * The label colour for `ghost` and `text`: one step darker than `main` in\n * light mode (lighter in dark), because `main` is chosen to sit UNDER white and\n * is not legible AS text on a tinted surface. See the web `quietInk`.\n */\nexport const quietInk = (theme: UiTheme, palette: UiPaletteColor): string =>\n theme.mode === 'dark' ? lighten(palette.main, 0.35) : darken(palette.main, 0.3);\n\n/** Gradients run between two related hues; the named colours pick a specific pair. */\nexport function gradientStops(\n theme: UiTheme,\n color: ColorValue,\n palette: UiPaletteColor,\n): [string, string] {\n switch (color) {\n case 'primary':\n return [theme.palette.primary.main, theme.palette.secondary.main];\n case 'secondary':\n return [theme.palette.secondary.main, theme.palette.primary.main];\n case 'success':\n case 'warning':\n return [theme.palette[color].light, theme.palette[color].dark];\n case 'danger':\n return [theme.palette.danger.light, theme.palette.danger.dark];\n default:\n return [palette.main, palette.dark];\n }\n}\n"],"mappings":";;;;;;AAmBO,IAAM,eAAqD;AAAA,EAChE,IAAI,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,UAAU,GAAG;AAAA,EAC7D,IAAI,EAAE,iBAAiB,GAAG,mBAAmB,IAAI,UAAU,GAAG;AAAA,EAC9D,IAAI,EAAE,iBAAiB,GAAG,mBAAmB,IAAI,UAAU,GAAG;AAAA,EAC9D,IAAI,EAAE,iBAAiB,IAAI,mBAAmB,IAAI,UAAU,GAAG;AAAA,EAC/D,IAAI,EAAE,iBAAiB,IAAI,mBAAmB,IAAI,UAAU,GAAG;AACjE;AAGO,IAAM,oBAA+C;AAAA,EAC1D,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AA0BO,IAAM,yBAAyB;AAE/B,IAAM,qBAAqB;AAE3B,IAAM,sBAAsB;AAE5B,IAAM,wBAAwB;AAC9B,IAAM,sBAAsB;AAE5B,IAAM,qBAAqB;AAG3B,IAAM,oBAAoB;AAC1B,IAAM,yBAAyB;AAC/B,IAAM,iCAAiC;AACvC,IAAM,qBAAqB;AAC3B,IAAM,mBAAmB;AACzB,IAAM,mBAAmB;AACzB,IAAM,cAAc;AACpB,IAAM,cAAc;AACpB,IAAM,oBAAoB;AAC1B,IAAM,eAAe;AAMrB,SAAS,cAAc,OAAgB,OAAmC;AAC/E,MAAI,UAAU,WAAW;AACvB,WAAO;AAAA,MACL,MAAM,MAAM,QAAQ,KAAK,GAAG;AAAA,MAC5B,MAAM,MAAM,QAAQ,KAAK,GAAG;AAAA,MAC5B,OAAO,MAAM,QAAQ,KAAK,GAAG;AAAA,MAC7B,cAAc;AAAA,IAChB;AAAA,EACF;AACA,SAAO,MAAM,QAAQ,KAAK;AAC5B;AAOO,IAAM,WAAW,CAAC,OAAgB,YACvC,MAAM,SAAS,SAAS,QAAQ,QAAQ,MAAM,IAAI,IAAI,OAAO,QAAQ,MAAM,GAAG;AAGzE,SAAS,cACd,OACA,OACA,SACkB;AAClB,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,CAAC,MAAM,QAAQ,QAAQ,MAAM,MAAM,QAAQ,UAAU,IAAI;AAAA,IAClE,KAAK;AACH,aAAO,CAAC,MAAM,QAAQ,UAAU,MAAM,MAAM,QAAQ,QAAQ,IAAI;AAAA,IAClE,KAAK;AAAA,IACL,KAAK;AACH,aAAO,CAAC,MAAM,QAAQ,KAAK,EAAE,OAAO,MAAM,QAAQ,KAAK,EAAE,IAAI;AAAA,IAC/D,KAAK;AACH,aAAO,CAAC,MAAM,QAAQ,OAAO,OAAO,MAAM,QAAQ,OAAO,IAAI;AAAA,IAC/D;AACE,aAAO,CAAC,QAAQ,MAAM,QAAQ,IAAI;AAAA,EACtC;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/DataViews/data-views-bar-controls.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * THE TWO BARE AFFORDANCES ON THE FILTER BAR.\n *\n * Neither opens anything, which is what sets them apart from every other\n * control on that row and why they are styled flat rather than as outlined\n * pills: one clears the filters, one leaves a search takeover. Giving them a\n * pill's weight made \"Limpar\" read as a sixth filter.\n *\n * Their own module because `data-views-inline-bar` outgrew the file-size gate.\n */\nimport CloseRoundedIcon from \"@mui/icons-material/CloseRounded\";\nimport FilterAltOffRoundedIcon from \"@mui/icons-material/FilterAltOffRounded\";\nimport Tooltip from \"@mui/material/Tooltip/index.js\";\n\nimport { Box } from \"../../../mui/Box\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\n\n/**\n * \"Limpar\" — one gesture back to the unfiltered list.\n *\n * Present ONLY while something is applied, and last in the cluster, because it\n * is destructive and must never be where a filter control was a moment ago.\n * Each pill already carries its own ✕; this is the other job — six applied\n * filters is six ✕ hunts, and the operator who wants \"show me everything\n * again\" has no way to say it.\n *\n * Loses its label on the same rung Exibir/Exportar lose theirs, and keeps a\n * tooltip when it does: it is one of the two controls (with the search) whose\n * icon has to carry the whole meaning on a phone.\n */\nexport function ClearAllControl({\n onClearAll,\n compact,\n testIdPrefix,\n}: {\n onClearAll: () => void;\n compact: boolean;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n // No border, no fill. Every other control on this row is an outlined pill\n // because it OPENS something; this one is an escape hatch, and giving it the\n // same weight made it read as a sixth filter. Quiet until hovered.\n const button = (\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClearAll}\n data-testid={`${testIdPrefix}-clear-all`}\n aria-label={copy.filters.clearAll}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 0.5,\n height: 34,\n px: compact ? 0.75 : 1,\n border: 0,\n borderRadius: 1,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n font: \"inherit\",\n fontSize: \"0.8125rem\",\n whiteSpace: \"nowrap\",\n color: \"text.secondary\",\n \"&:hover\": { color: \"text.primary\", bgcolor: \"action.hover\" },\n }}\n >\n <FilterAltOffRoundedIcon sx={{ fontSize: 16 }} />\n {!compact && <Box component=\"span\">{copy.filters.clear}</Box>}\n </Box>\n );\n return compact ? <Tooltip title={copy.filters.clearAll}>{button}</Tooltip> : button;\n}\n\n/**\n * The way out of a search takeover.\n *\n * A phone has no Escape key, and without this the takeover is a one-way door\n * onto a bar with no filters on it.\n\n/**\n * The way out of a search takeover.\n *\n * A phone has no Escape key, and without this the takeover is a one-way door\n * onto a bar with no filters on it.\n */\nexport function CloseSearchControl({\n onClose,\n testIdPrefix,\n}: {\n onClose: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <Tooltip title={copy.search.close}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClose}\n aria-label={copy.search.close}\n data-testid={`${testIdPrefix}-search-close`}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n height: 34,\n px: 0.75,\n border: 0,\n borderRadius: 1,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n color: \"text.secondary\",\n \"&:hover\": { color: \"text.primary\", bgcolor: \"action.hover\" },\n }}\n >\n <CloseRoundedIcon sx={{ fontSize: 18 }} />\n </Box>\n </Tooltip>\n );\n}\n"],"mappings":";;;;;;;;AAYA,OAAO,sBAAsB;AAC7B,OAAO,6BAA6B;AACpC,OAAO,aAAa;AAgChB,SAuBE,KAvBF;AAdG,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AACF,GAIsB;AACpB,QAAM,OAAO,iBAAiB;AAI9B,QAAM,SACJ;AAAA,IAACA;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAS;AAAA,MACT,eAAa,GAAG,YAAY;AAAA,MAC5B,cAAY,KAAK,QAAQ;AAAA,MACzB,IAAI;AAAA,QACF,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,IAAI,UAAU,OAAO;AAAA,QACrB,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW,EAAE,OAAO,gBAAgB,SAAS,eAAe;AAAA,MAC9D;AAAA,MAEA;AAAA,4BAAC,2BAAwB,IAAI,EAAE,UAAU,GAAG,GAAG;AAAA,QAC9C,CAAC,WAAW,oBAACA,UAAA,EAAI,WAAU,QAAQ,eAAK,QAAQ,OAAM;AAAA;AAAA;AAAA,EACzD;AAEF,SAAO,UAAU,oBAAC,WAAQ,OAAO,KAAK,QAAQ,UAAW,kBAAO,IAAa;AAC/E;AAcO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AACF,GAGsB;AACpB,QAAM,OAAO,iBAAiB;AAC9B,SACE,oBAAC,WAAQ,OAAO,KAAK,OAAO,OAC1B;AAAA,IAACA;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAS;AAAA,MACT,cAAY,KAAK,OAAO;AAAA,MACxB,eAAa,GAAG,YAAY;AAAA,MAC5B,IAAI;AAAA,QACF,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,IAAI;AAAA,QACJ,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAW,EAAE,OAAO,gBAAgB,SAAS,eAAe;AAAA,MAC9D;AAAA,MAEA,8BAAC,oBAAiB,IAAI,EAAE,UAAU,GAAG,GAAG;AAAA;AAAA,EAC1C,GACF;AAEJ;","names":["default"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/Autocomplete/Autocomplete.parts.tsx"],"sourcesContent":["import LinkIcon from '@mui/icons-material/Link';\nimport SearchIcon from '@mui/icons-material/Search';\nimport Box from '@mui/material/Box/index.js';\nimport Chip from '@mui/material/Chip/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport List from '@mui/material/List/index.js';\nimport ListItem from '@mui/material/ListItem/index.js';\nimport ListItemText from '@mui/material/ListItemText/index.js';\nimport Paper from '@mui/material/Paper/index.js';\nimport Popper from '@mui/material/Popper/index.js';\nimport TextField from '@mui/material/TextField/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { highlightLabel, type MatchMode } from './Autocomplete.helpers';\nimport type { SuggestionItemState, SuggestionType } from './Autocomplete.types';\nimport type { AutocompleteCopy } from '../../../copy';\n\nconst StyledPopper = styled(Popper)(({ theme }) => ({\n zIndex: theme.zIndex.tooltip,\n width: '100%',\n maxHeight: 300,\n overflow: 'auto',\n // Popper.js writes the computed position (and stamps `data-popper-placement`)\n // in a layout effect that can land AFTER the first paint. Until it does, the\n // element would paint once unpositioned — at the offset-parent origin, far\n // left and full width — then jump under the input, a visible per-keystroke\n // flash as the list re-renders. Hide that unpositioned first frame; it becomes\n // visible the instant popper assigns a placement.\n '&:not([data-popper-placement])': { visibility: 'hidden' },\n}));\n\nconst InlineSuggestionDisplay = styled('div')(() => ({\n position: 'absolute',\n pointerEvents: 'none',\n left: '14px', // Match TextField padding\n top: '50%',\n transform: 'translateY(-50%)',\n fontSize: 'inherit',\n fontFamily: 'inherit',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n zIndex: 1,\n}));\n\nconst UserTextTwin = styled('span')({\n visibility: 'hidden',\n});\n\nconst GhostText = styled('span')(({ theme }) => ({\n color: theme.palette.text.secondary,\n opacity: 0.6,\n}));\n\nconst ChipContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(0.5),\n marginBottom: theme.spacing(1),\n}));\n\n/** Leading icon for a typed suggestion (search vs. link); null for untyped items. */\nexport function suggestionTypeIcon(type: SuggestionType | undefined): React.ReactNode {\n const sx = { color: 'text.secondary', flexShrink: 0 } as const;\n if (type === 'link') return <LinkIcon fontSize=\"small\" sx={sx} />;\n if (type === 'search') return <SearchIcon fontSize=\"small\" sx={sx} />;\n return null;\n}\n\n/** The inline ghost-text overlay: an invisible twin of the typed text + the grey remainder. */\nfunction GhostOverlay({ inputValue, ghost }: { inputValue: string; ghost: string }): React.JSX.Element {\n return (\n <InlineSuggestionDisplay>\n <UserTextTwin>{inputValue}</UserTextTwin>\n <GhostText>{ghost}</GhostText>\n </InlineSuggestionDisplay>\n );\n}\n\nexport interface AutocompleteInputProps {\n id: string;\n listId: string;\n inputRef: React.RefObject<HTMLInputElement | null>;\n inputValue: string;\n ghost: string;\n showGhost: boolean;\n isInputFocused: boolean;\n open: boolean;\n activeDescendant: string | undefined;\n isLoading: boolean;\n disabled: boolean;\n autoFocus: boolean;\n placeholder: string;\n startAdornment?: React.ReactNode;\n inputAriaLabel?: string;\n inputClassName?: string;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n onFocus: () => void;\n onBlur: () => void;\n onCompositionStart: () => void;\n onCompositionEnd: () => void;\n}\n\n/** The combobox text field plus its inline ghost-text overlay. */\nexport function AutocompleteInput(props: AutocompleteInputProps): React.JSX.Element {\n const showOverlay = Boolean(props.ghost) && props.showGhost && props.isInputFocused;\n return (\n <Box sx={{ position: 'relative' }}>\n {showOverlay && <GhostOverlay inputValue={props.inputValue} ghost={props.ghost} />}\n <TextField\n ref={props.inputRef}\n fullWidth\n value={props.inputValue}\n onChange={props.onChange}\n onKeyDown={props.onKeyDown}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n onCompositionStart={props.onCompositionStart}\n onCompositionEnd={props.onCompositionEnd}\n placeholder={props.placeholder}\n disabled={props.disabled}\n autoFocus={props.autoFocus}\n className={props.inputClassName}\n InputProps={{\n startAdornment: props.startAdornment,\n endAdornment: props.isLoading ? <CircularProgress size={20} /> : undefined,\n }}\n inputProps={{\n role: 'combobox',\n 'aria-expanded': props.open,\n 'aria-controls': props.open ? props.listId : undefined,\n 'aria-activedescendant': props.activeDescendant,\n 'aria-autocomplete': 'list',\n 'aria-label': props.inputAriaLabel,\n id: props.id,\n }}\n />\n </Box>\n );\n}\n\n/** Selected-item chips (multiple mode). */\nexport function ChipList<T>({\n items,\n getKey,\n getLabel,\n onRemove,\n chipClassName,\n}: {\n items: T[];\n getKey: (item: T) => string;\n getLabel: (item: T) => string;\n onRemove: (item: T) => void;\n chipClassName?: string;\n}): React.JSX.Element {\n return (\n <ChipContainer data-testid=\"selected-items-container\">\n {items.map((item, index) => (\n <Chip\n key={`${getKey(item)}-${index}`}\n label={getLabel(item)}\n onDelete={() => onRemove(item)}\n size=\"small\"\n className={chipClassName}\n data-testid={`selected-chip-${index}`}\n />\n ))}\n </ChipContainer>\n );\n}\n\n/** Default suggestion row: per-type icon + highlighted label + optional description. */\nexport function DefaultSuggestion<T>({\n item,\n state,\n getLabel,\n getDescription,\n getSuggestionType,\n matchMode,\n}: {\n item: T;\n state: SuggestionItemState;\n getLabel: (item: T) => string;\n getDescription?: (item: T) => string | undefined;\n getSuggestionType: (item: T) => SuggestionType | undefined;\n matchMode: MatchMode;\n}): React.JSX.Element {\n const label = getLabel(item);\n const description = getDescription?.(item);\n const displayLabel = highlightLabel(label, state.query, matchMode);\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n width: '100%',\n // Bold the matched prefix (not a yellow <mark> highlight).\n '& mark': { backgroundColor: 'transparent', color: 'inherit', fontWeight: 700 },\n }}\n >\n {suggestionTypeIcon(getSuggestionType(item))}\n <ListItemText\n primary={<span dangerouslySetInnerHTML={{ __html: displayLabel }} />}\n secondary={description}\n />\n </Box>\n );\n}\n\n/** A \"Loading…\" row shown while async suggestions resolve. */\nexport function LoadingRow({ label }: { label: string }): React.JSX.Element {\n return (\n <ListItem>\n <Box display=\"flex\" alignItems=\"center\" gap={1}>\n <CircularProgress size={16} />\n <Typography variant=\"body2\" color=\"text.secondary\">\n {label}\n </Typography>\n </Box>\n </ListItem>\n );\n}\n\n/** The empty \"No results found\" row. */\nexport function NoResultsRow({ label }: { label: string }): React.JSX.Element {\n return (\n <ListItem>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {label}\n </Typography>\n </ListItem>\n );\n}\n\n/** Keep the Popper the same width as its anchor input. */\nconst SAME_WIDTH_MODIFIER = {\n name: 'sameWidth',\n enabled: true,\n fn: ({ state }: { state: { elements: { reference?: unknown }; styles: { popper?: Record<string, string> }; rects: { reference: { width: number } } } }) => {\n if (state.elements.reference && state.styles.popper) {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n }\n },\n phase: 'beforeWrite' as const,\n requires: ['computeStyles'],\n};\n\nexport interface SuggestionListBoxProps<T> {\n copy: AutocompleteCopy;\n open: boolean;\n anchorEl: HTMLElement | null;\n portal: boolean | { container?: HTMLElement };\n listRef: React.RefObject<HTMLUListElement | null>;\n listId: string;\n optionIdPrefix: string;\n items: T[];\n activeIndex: number;\n isLoading: boolean;\n showNoResults: boolean;\n getKey: (item: T) => string;\n onSelect: (item: T) => void;\n onHover: (index: number) => void;\n renderItem: (item: T, active: boolean) => React.ReactNode;\n listClassName?: string;\n itemClassName?: string;\n activeItemClassName?: string;\n}\n\n/** The suggestions dropdown: a same-width Popper with the option list + loading/empty rows. */\nexport function SuggestionListBox<T>({\n copy,\n open,\n anchorEl,\n portal,\n listRef,\n listId,\n optionIdPrefix,\n items,\n activeIndex,\n isLoading,\n showNoResults,\n getKey,\n onSelect,\n onHover,\n renderItem,\n listClassName,\n itemClassName,\n activeItemClassName,\n}: SuggestionListBoxProps<T>): React.JSX.Element {\n return (\n <StyledPopper\n open={open}\n anchorEl={anchorEl}\n placement=\"bottom-start\"\n disablePortal={!portal}\n modifiers={[SAME_WIDTH_MODIFIER]}\n >\n <Paper elevation={8} className={listClassName} data-testid=\"suggestions-dropdown\">\n <List\n ref={listRef}\n role=\"listbox\"\n id={listId}\n dense\n sx={{ maxHeight: 300, overflow: 'auto' }}\n data-testid=\"suggestions-list\"\n >\n {items.map((item, index) => (\n <ListItem\n key={getKey(item)}\n id={`${optionIdPrefix}-${index}`}\n role=\"option\"\n component=\"div\"\n sx={{\n cursor: 'pointer',\n backgroundColor: index === activeIndex ? 'action.hover' : 'transparent',\n '&:hover': { backgroundColor: 'action.hover' },\n }}\n aria-selected={index === activeIndex}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => onSelect(item)}\n onMouseEnter={() => onHover(index)}\n className={`${itemClassName} ${index === activeIndex ? activeItemClassName : ''}`}\n data-testid={`suggestion-item-${index}`}\n >\n {renderItem(item, index === activeIndex)}\n </ListItem>\n ))}\n {isLoading && <LoadingRow label={copy.loading} />}\n {showNoResults && <NoResultsRow label={copy.noResults} />}\n </List>\n </Paper>\n </StyledPopper>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/Toggle/Toggle.styles.ts"],"sourcesContent":["import { alpha, keyframes } from '@mui/material/styles/index.js';\nimport type { CSSObject, PaletteColor, Theme } from '@mui/material/styles/index.js';\n\nimport { fieldEdge } from '../../../tokens/field-edge';\n\nconst glowAnimation = keyframes`\n 0% { box-shadow: 0 0 5px currentColor; }\n 50% { box-shadow: 0 0 15px currentColor, 0 0 25px currentColor; }\n 100% { box-shadow: 0 0 5px currentColor; }\n`;\n\nconst floatAnimation = keyframes`\n 0%, 100% { transform: translateY(0px); }\n 50% { transform: translateY(-2px); }\n`;\n\ninterface TogglePalette {\n main: string;\n dark: string;\n light: string;\n contrastText: string;\n}\n\nconst neutralPalette = (theme: Theme): TogglePalette => ({\n main: theme.palette.grey?.[700] || '#616161',\n dark: theme.palette.grey?.[800] || '#424242',\n light: theme.palette.grey?.[500] || '#9e9e9e',\n contrastText: '#fff',\n});\n\n// A theme can be handed to us with shades missing, so each one falls back through\n// the palette's own main colour before reaching for primary.\nconst shade = (\n palette: PaletteColor | undefined,\n key: 'dark' | 'light',\n fallback: PaletteColor,\n): string => palette?.[key] || palette?.main || fallback[key];\n\nexport const getColorFromTheme = (theme: Theme, color: string): TogglePalette => {\n if (color === 'neutral') return neutralPalette(theme);\n\n const colorMap: Record<string, PaletteColor> = {\n primary: theme.palette.primary,\n secondary: theme.palette.secondary,\n success: theme.palette.success,\n warning: theme.palette.warning,\n info: theme.palette.info,\n danger: theme.palette.error,\n };\n\n const fallback = theme.palette.primary;\n const palette = colorMap[color] || fallback;\n\n return {\n main: palette?.main || fallback.main,\n dark: shade(palette, 'dark', fallback),\n light: shade(palette, 'light', fallback),\n contrastText: palette?.contrastText || '#fff',\n };\n};\n\nconst SIZE_MAP: Record<string, CSSObject> = {\n xs: { padding: '4px 8px', fontSize: '0.75rem' },\n sm: { padding: '6px 12px', fontSize: '0.875rem' },\n md: { padding: '8px 16px', fontSize: '1rem' },\n lg: { padding: '10px 20px', fontSize: '1.125rem' },\n xl: { padding: '12px 24px', fontSize: '1.25rem' },\n};\n\nexport const baseStyles = (\n theme: Theme,\n colorPalette: TogglePalette,\n customSize: string,\n): CSSObject => ({\n textTransform: 'none',\n fontWeight: 500,\n borderRadius: theme.spacing(1),\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n border: `2px solid ${fieldEdge(theme)}`,\n color: theme.palette.text.primary,\n backgroundColor: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n\n // A zero-sized circle that grows to fill the button on hover.\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: 0,\n height: 0,\n borderRadius: '50%',\n backgroundColor: alpha(colorPalette.main, 0.2),\n transform: 'translate(-50%, -50%)',\n transition: 'width 0.4s, height 0.4s',\n },\n\n '&:hover': {\n backgroundColor: alpha(colorPalette.main, 0.08),\n borderColor: colorPalette.main,\n transform: 'translateY(-1px)',\n boxShadow: `0 4px 8px ${alpha(colorPalette.main, 0.15)}`,\n animation: `${floatAnimation} 2s ease-in-out infinite`,\n\n '&::before': {\n width: '100%',\n height: '100%',\n },\n },\n\n '&:active': {\n transform: 'scale(0.98)',\n },\n\n '&.Mui-selected': {\n backgroundColor: colorPalette.main,\n color: colorPalette.contrastText || '#fff',\n borderColor: colorPalette.main,\n boxShadow: `0 2px 8px ${alpha(colorPalette.main, 0.3)}`,\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n background: `linear-gradient(135deg, transparent, ${alpha('#fff', 0.1)})`,\n pointerEvents: 'none',\n },\n\n '&:hover': {\n backgroundColor: colorPalette.dark,\n transform: 'translateY(-2px) scale(1.02)',\n boxShadow: `0 6px 20px ${alpha(colorPalette.main, 0.4)}`,\n },\n },\n\n // Size wins over everything above it.\n ...(SIZE_MAP[customSize] ?? {}),\n});\n\nexport const variantStyles = (\n customVariant: string | undefined,\n colorPalette: TogglePalette,\n): CSSObject => {\n switch (customVariant) {\n case 'outline':\n return {\n backgroundColor: 'transparent',\n border: `2px solid ${colorPalette.main}`,\n color: colorPalette.main,\n\n '&.Mui-selected': {\n backgroundColor: colorPalette.main,\n color: colorPalette.contrastText || '#fff',\n },\n };\n case 'soft':\n return {\n backgroundColor: alpha(colorPalette.main, 0.1),\n border: 'none',\n color: colorPalette.main,\n\n '&.Mui-selected': {\n backgroundColor: alpha(colorPalette.main, 0.2),\n color: colorPalette.main,\n },\n };\n default:\n return {};\n }\n};\n\ninterface ToggleEffects {\n glass?: boolean;\n gradient?: boolean;\n glow?: boolean;\n}\n\n// gradient and glow both target `.Mui-selected`; with both on, the later spread\n// wins, so glow's animation replaces gradient's.\nexport const effectStyles = (\n theme: Theme,\n colorPalette: TogglePalette,\n { glass, gradient, glow }: ToggleEffects,\n): CSSObject => ({\n ...(glass && {\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: 'blur(20px)',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n }),\n\n ...(gradient && {\n '&.Mui-selected': {\n background: `linear-gradient(135deg, ${colorPalette.light}, ${colorPalette.main}, ${colorPalette.dark})`,\n backgroundSize: '200% 200%',\n animation: `${floatAnimation} 3s ease-in-out infinite`,\n border: 'none',\n\n '&:hover': {\n backgroundPosition: '100% 100%',\n },\n },\n }),\n\n ...(glow && {\n '&.Mui-selected': {\n animation: `${glowAnimation} 2s ease-in-out infinite`,\n boxShadow: `0 0 15px ${alpha(colorPalette.main, 0.6)}`,\n },\n }),\n});\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/ToggleGroup/ToggleGroup.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport ToggleButton from '@mui/material/ToggleButton/index.js';\nimport ToggleButtonGroup from '@mui/material/ToggleButtonGroup/index.js';\nimport { alpha, useTheme, styled } from '@mui/material/styles/index.js';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport React, { forwardRef } from 'react';\n\nimport type { ToggleGroupProps } from './ToggleGroup.types';\n\nconst getColorFromTheme = (theme: Theme, color: string) => {\n if (color === 'neutral') {\n return {\n main: theme.palette.grey[700],\n dark: theme.palette.grey[800],\n light: theme.palette.grey[500],\n contrastText: theme.palette.getContrastText(theme.palette.grey[700]),\n };\n }\n\n const colorMap = {\n primary: theme.palette.primary,\n secondary: theme.palette.secondary,\n success: theme.palette.success,\n warning: theme.palette.warning,\n info: theme.palette.info,\n danger: theme.palette.error,\n };\n\n const palette = colorMap[color as keyof typeof colorMap] || theme.palette.primary;\n\n // Ensure palette has required properties\n return {\n main: palette.main,\n dark: palette.dark || palette.main,\n light: palette.light || palette.main,\n contrastText: palette.contrastText || theme.palette.getContrastText(palette.main),\n };\n};\n\nconst StyledToggleGroup = styled(ToggleButtonGroup, {\n shouldForwardProp: (prop) => !['customColor', 'customSize', 'glass'].includes(prop as string),\n})<{\n customColor?: string;\n customSize?: string;\n glass?: boolean;\n}>(({ theme, glass }) => ({\n backgroundColor: glass ? alpha(theme.palette.background.paper, 0.1) : 'transparent',\n backdropFilter: glass ? 'blur(20px)' : 'none',\n borderRadius: theme.spacing(1),\n padding: glass ? 4 : 0,\n border: glass ? `1px solid ${alpha(theme.palette.divider, 0.2)}` : 'none',\n\n '& .MuiToggleButtonGroup-grouped': {\n margin: theme.spacing(0.5),\n border: 0,\n borderRadius: `${theme.shape.borderRadius}px !important`,\n },\n}));\n\nexport const ToggleGroup = forwardRef<HTMLDivElement, ToggleGroupProps>(\n (\n {\n variant = 'single',\n color = 'primary',\n size = 'md',\n options,\n glass = false,\n gradient = false,\n value,\n onChange,\n dataTestId = 'toggle-group',\n ...props\n },\n ref,\n ) => {\n const theme = useTheme();\n const colorPalette = getColorFromTheme(theme, color);\n\n const sizeMap = {\n xs: { padding: '4px 8px', fontSize: '0.75rem' },\n sm: { padding: '6px 12px', fontSize: '0.875rem' },\n md: { padding: '8px 16px', fontSize: '1rem' },\n lg: { padding: '10px 20px', fontSize: '1.125rem' },\n xl: { padding: '12px 24px', fontSize: '1.25rem' },\n };\n\n return (\n <StyledToggleGroup\n ref={ref}\n customColor={color}\n customSize={size}\n glass={glass}\n value={value}\n onChange={onChange}\n exclusive={variant === 'exclusive' || variant === 'single'}\n data-testid={dataTestId}\n {...props}\n >\n {options.map((option) => (\n <ToggleButton\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n data-testid={`${dataTestId}-item-${option.value}`}\n sx={{\n textTransform: 'none',\n fontWeight: 500,\n transition: 'all 0.3s ease',\n ...sizeMap[size as keyof typeof sizeMap],\n\n '&.Mui-selected': {\n backgroundColor: colorPalette.main,\n color: colorPalette.contrastText,\n\n ...(gradient && {\n background: `linear-gradient(135deg, ${colorPalette.main}, ${colorPalette.dark})`,\n }),\n },\n }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {option.icon}\n {option.label}\n </Box>\n </ToggleButton>\n ))}\n </StyledToggleGroup>\n );\n },\n);\n\nToggleGroup.displayName = 'ToggleGroup';\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/CategorySelect/CategoryPanelHead.tsx"],"sourcesContent":["'use client';\n\nimport type { CategorySelectCopy } from '../../../copy';\nimport Box from '@mui/material/Box/index.js';\nimport InputBase from '@mui/material/InputBase/index.js';\n\nimport { SearchGlyph } from './CategoryIcons';\nimport {\n chipSx,\n chipWrapSx,\n panelHeadSx,\n pinnedLabelSx,\n pinnedSx,\n} from './CategorySelect.styles';\nimport type { CategorySelectionChip } from './CategorySelect.types';\n\ninterface PanelHeadProps {\n query: string;\n placeholder: string;\n sheet: boolean;\n /** Quick actions belong to multi-select only; single-select has nothing to bulk-do. */\n quickActions?: React.ReactNode;\n onQueryChange: (next: string) => void;\n searchInputRef: React.RefObject<HTMLInputElement | null>;\n dataTestId: string;\n copy: CategorySelectCopy;\n}\n\nconst searchFieldSx = {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n '& input': {\n width: '100%',\n height: 36,\n padding: '0 30px 0 32px',\n fontSize: 13,\n border: '1px solid',\n borderColor: 'divider',\n borderRadius: '9px',\n background: 'background.paper',\n color: 'text.primary',\n '&:focus': {\n outline: 'none',\n borderColor: 'primary.main',\n boxShadow: (theme: { palette: { primary: { main: string } } }) =>\n `0 0 0 3px ${theme.palette.primary.main}26`,\n },\n },\n} as const;\n\nconst clearButtonSx = {\n position: 'absolute',\n right: 7,\n width: 20,\n height: 20,\n border: 0,\n background: 'action.selected',\n color: 'text.secondary',\n borderRadius: '50%',\n display: 'grid',\n placeItems: 'center',\n cursor: 'pointer',\n fontSize: 12,\n padding: 0,\n lineHeight: 1,\n} as const;\n\n/** Search field, its clear affordance, and the optional quick-action row. */\nexport function CategoryPanelHead({\n query,\n placeholder,\n sheet,\n quickActions,\n onQueryChange,\n searchInputRef,\n dataTestId,\n copy,\n}: PanelHeadProps): React.JSX.Element {\n return (\n <Box sx={(theme) => panelHeadSx(theme, sheet)}>\n <Box sx={searchFieldSx}>\n <SearchGlyph\n style={{\n position: 'absolute',\n left: 10,\n width: 15,\n height: 15,\n opacity: 0.55,\n pointerEvents: 'none',\n }}\n />\n <InputBase\n inputRef={searchInputRef}\n value={query}\n placeholder={placeholder}\n autoComplete=\"off\"\n inputProps={{ 'aria-label': placeholder, 'data-testid': `${dataTestId}-search` }}\n onChange={(event) => onQueryChange(event.target.value)}\n sx={{ width: '100%' }}\n />\n {query.length > 0 && (\n <Box\n component=\"button\"\n type=\"button\"\n aria-label={copy.search.clear}\n data-testid={`${dataTestId}-search-clear`}\n sx={clearButtonSx}\n onClick={() => onQueryChange('')}\n >\n ×\n </Box>\n )}\n </Box>\n {quickActions && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n marginTop: '8px',\n fontSize: 12,\n }}\n >\n {quickActions}\n </Box>\n )}\n </Box>\n );\n}\n\ninterface PinnedTrayProps {\n chips: CategorySelectionChip[];\n onRemove: (chipId: string) => void;\n dataTestId: string;\n copy: CategorySelectCopy;\n}\n\n/**\n * The selected categories, pinned above the list.\n *\n * Pinned rather than left in place because a selection made at the bottom of a\n * ten-category tree scrolls out of sight the moment you look for the next one —\n * and a search hides it entirely. Here it survives both.\n */\nexport function CategoryPinnedTray({\n chips,\n onRemove,\n dataTestId,\n copy,\n}: PinnedTrayProps): React.JSX.Element | null {\n if (chips.length === 0) return null;\n return (\n <Box sx={pinnedSx} data-testid={`${dataTestId}-pinned`}>\n <Box sx={pinnedLabelSx}>{copy.search.pinnedLabel(chips.length)}</Box>\n <Box sx={chipWrapSx}>\n {chips.map((chip) => (\n <Box component=\"span\" key={chip.id} sx={chipSx}>\n {chip.label}\n <button\n type=\"button\"\n aria-label={copy.search.removeChip(chip.label)}\n data-testid={`${dataTestId}-unpin-${chip.id}`}\n onClick={() => onRemove(chip.id)}\n >\n ×\n </button>\n </Box>\n ))}\n </Box>\n </Box>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAGA,OAAO,SAAS;AAChB,OAAO,eAAe;AA6EhB,SACE,KADF;AArDN,IAAM,gBAAgB;AAAA,EACpB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,WAAW;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,MACb,WAAW,CAAC,UACV,aAAa,MAAM,QAAQ,QAAQ,IAAI;AAAA,IAC3C;AAAA,EACF;AACF;AAEA,IAAM,gBAAgB;AAAA,EACpB,UAAU;AAAA,EACV,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,cAAc;AAAA,EACd,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AACd;AAGO,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsC;AACpC,SACE,qBAAC,OAAI,IAAI,CAAC,UAAU,YAAY,OAAO,KAAK,GAC1C;AAAA,yBAAC,OAAI,IAAI,eACP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL,UAAU;AAAA,YACV,MAAM;AAAA,YACN,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,eAAe;AAAA,UACjB;AAAA;AAAA,MACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAU;AAAA,UACV,OAAO;AAAA,UACP;AAAA,UACA,cAAa;AAAA,UACb,YAAY,EAAE,cAAc,aAAa,eAAe,GAAG,UAAU,UAAU;AAAA,UAC/E,UAAU,CAAC,UAAU,cAAc,MAAM,OAAO,KAAK;AAAA,UACrD,IAAI,EAAE,OAAO,OAAO;AAAA;AAAA,MACtB;AAAA,MACC,MAAM,SAAS,KACd;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,cAAY,KAAK,OAAO;AAAA,UACxB,eAAa,GAAG,UAAU;AAAA,UAC1B,IAAI;AAAA,UACJ,SAAS,MAAM,cAAc,EAAE;AAAA,UAChC;AAAA;AAAA,MAED;AAAA,OAEJ;AAAA,IACC,gBACC;AAAA,MAAC;AAAA;AAAA,QACC,IAAI;AAAA,UACF,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,KAAK;AAAA,UACL,WAAW;AAAA,UACX,UAAU;AAAA,QACZ;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,KAEJ;AAEJ;AAgBO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA8C;AAC5C,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SACE,qBAAC,OAAI,IAAI,UAAU,eAAa,GAAG,UAAU,WAC3C;AAAA,wBAAC,OAAI,IAAI,eAAgB,eAAK,OAAO,YAAY,MAAM,MAAM,GAAE;AAAA,IAC/D,oBAAC,OAAI,IAAI,YACN,gBAAM,IAAI,CAAC,SACV,qBAAC,OAAI,WAAU,QAAqB,IAAI,QACrC;AAAA,WAAK;AAAA,MACN;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,cAAY,KAAK,OAAO,WAAW,KAAK,KAAK;AAAA,UAC7C,eAAa,GAAG,UAAU,UAAU,KAAK,EAAE;AAAA,UAC3C,SAAS,MAAM,SAAS,KAAK,EAAE;AAAA,UAChC;AAAA;AAAA,MAED;AAAA,SATyB,KAAK,EAUhC,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/Textarea/Textarea.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport FormHelperText from '@mui/material/FormHelperText/index.js';\nimport InputLabel from '@mui/material/InputLabel/index.js';\nimport TextareaAutosize from '@mui/material/TextareaAutosize/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport React, { lazy, Suspense, useState } from 'react';\n\nimport {\n getColorFromTheme,\n textareaEmphasisStyles } from './Textarea.styles';\n\n/**\n * The rich editor is LOADED ON DEMAND, not imported (12-51 follow-up).\n *\n * It renders only for `variant === 'rich'`, but a static import made every\n * consumer of a plain `<Textarea>` pay for it — 387 lines of toolbar plus the\n * MUI `Tooltip`, `IconButton` and `Divider` its formatting buttons need. That\n * is not theoretical: an adopting storefront imports this entry for a one-line\n * order note, and `Tooltip` (8.7 KiB) reached its EAGER chunk through here\n * while nothing on that critical path renders a tooltip at all.\n *\n * `variant` is a prop, so the branch cannot be decided at build time and no\n * amount of tree-shaking removes it. A lazy boundary is what expresses \"only\n * the rich variant pays\", and it costs the rich variant one microtask it can\n * afford — it is a text editor a user has already chosen to open, never a\n * first-paint element.\n */\nconst TextareaRichEditor = lazy(async () => ({\n default: (await import('./TextareaRichEditor')).TextareaRichEditor }));\nimport type { TextareaProps } from './Textarea.types';\n\nimport { fieldEdge } from '../../../tokens/field-edge';\n\n// Interface for styled component props\ninterface StyledTextareaProps {\n customVariant?: string;\n customColor?: string;\n customSize?: string;\n glow?: boolean;\n glass?: boolean;\n gradient?: boolean;\n error?: boolean;\n theme?: Theme;\n}\n\n// Glow animation for enhanced visual effects\nconst StyledTextarea = styled(TextareaAutosize, {\n shouldForwardProp: (prop) =>\n !['customVariant', 'customColor', 'customSize', 'glow', 'glass', 'gradient', 'error'].includes(\n prop as string,\n ) })<StyledTextareaProps>(({\n theme,\n customVariant,\n customColor = 'primary',\n customSize = 'md',\n glow,\n glass,\n gradient,\n error }) => {\n if (!theme) return {};\n const colorPalette = getColorFromTheme(theme, customColor);\n const errorColor = theme.palette.error;\n\n const sizeMap = {\n xs: { padding: '6px 8px', fontSize: '0.75rem', minHeight: '60px' },\n sm: { padding: '8px 10px', fontSize: '0.875rem', minHeight: '80px' },\n md: { padding: '10px 12px', fontSize: '1rem', minHeight: '100px' },\n lg: { padding: '12px 14px', fontSize: '1.125rem', minHeight: '120px' },\n xl: { padding: '14px 16px', fontSize: '1.25rem', minHeight: '140px' } };\n\n const baseStyles = {\n width: '100%',\n fontFamily: theme.typography.fontFamily,\n borderRadius: theme.spacing(1),\n border: `2px solid ${error ? errorColor.main : fieldEdge(theme)}`,\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n transition: 'all 0.3s ease',\n resize: customVariant === 'resizable' ? 'vertical' : 'none',\n outline: 'none',\n ...sizeMap[customSize as keyof typeof sizeMap],\n\n '&::placeholder': {\n color: theme.palette.text.secondary,\n opacity: 0.7 },\n\n '&:hover': {\n borderColor: error ? errorColor.dark : colorPalette.main,\n backgroundColor: alpha(theme.palette.background.paper, 0.8) },\n\n '&:focus': {\n borderColor: error ? errorColor.main : colorPalette.main,\n backgroundColor: theme.palette.background.paper,\n boxShadow: `0 0 0 3px ${alpha(error ? errorColor.main : colorPalette.main, 0.1)}` } };\n\n // Glass morphism effect\n return {\n ...baseStyles,\n ...textareaEmphasisStyles({ theme, colorPalette, glass, gradient, glow }) };\n});\n\nconst StyledLabel = styled(InputLabel, {\n shouldForwardProp: (prop) => !['glass', 'error'].includes(prop as string) })<{ glass?: boolean; error?: boolean }>(({ theme, glass, error }) => ({\n marginBottom: theme.spacing(1),\n fontWeight: 500,\n color: error ? theme.palette.error.main : theme.palette.text.primary,\n ...(glass && {\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: 'blur(10px)',\n padding: '4px 8px',\n borderRadius: '4px',\n border: `1px solid ${fieldEdge(theme)}`,\n display: 'inline-block' }) }));\n\n// IconWrapper - replaced with inline Box component for better TypeScript compatibility\n// const IconWrapper = styled(Box)<{ position: 'start' | 'end' }>(({ theme, position }) => {\n// const positionStyles = position === 'start' ? { left: '12px' } : { right: '12px' };\n// return {\n// position: 'absolute' as const,\n// top: '12px',\n// ...positionStyles,\n// color: theme.palette.text.secondary,\n// pointerEvents: 'none' as const,\n// zIndex: 1,\n// };\n// });\n\n// Rich text toolbar styling\n\nconst ICON_GUTTER = '40px';\n\nconst TEXTAREA_DEFAULTS = {\n variant: 'default',\n color: 'primary',\n size: 'md',\n error: false,\n glassLabel: false,\n glow: false,\n glass: false,\n gradient: false,\n iconPosition: 'start',\n minRows: 3 } satisfies Partial<TextareaProps>;\n\n// Strips explicitly-undefined props before the merge, so `prop={undefined}`\n// still falls back to the default as a destructuring default would.\nconst definedProps = (props: TextareaProps): Partial<TextareaProps> =>\n Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<TextareaProps>;\n\n// Label above, helper text below — identical for the plain and rich variants,\n// which previously duplicated both.\nconst TextareaShell: React.FC<{\n testId?: string;\n label?: React.ReactNode;\n glassLabel: boolean;\n error: boolean;\n helperText?: React.ReactNode;\n children: React.ReactNode;\n}> = ({ testId, label, glassLabel, error, helperText, children }) => (\n <Box\n sx={{ position: 'relative', width: '100%' }}\n data-testid={testId ? `${testId}-wrapper` : undefined}\n >\n {label && (\n <StyledLabel glass={glassLabel} error={error}>\n {label}\n </StyledLabel>\n )}\n\n {children}\n\n {helperText && (\n <FormHelperText error={error} sx={{ mt: 1 }}>\n {helperText}\n </FormHelperText>\n )}\n </Box>\n);\n\nconst TextareaIcon: React.FC<{\n icon?: React.ReactNode;\n iconPosition: 'start' | 'end';\n}> = ({ icon, iconPosition }) => (\n <Box\n sx={{\n position: 'absolute',\n top: '12px',\n ...(iconPosition === 'start' ? { left: '12px' } : { right: '12px' }),\n color: 'text.secondary',\n pointerEvents: 'none',\n zIndex: 1 }}\n >\n {icon}\n </Box>\n);\n\n/**\n * The rich variant, kept out of the main component's body.\n *\n * Two reasons rather than one: the `Suspense` boundary and its props belong\n * together with the lazy import above, and the component that renders every\n * OTHER variant stays inside the size the complexity gate allows without\n * anything being suppressed.\n */\nfunction RichVariant({\n shell,\n editor }: {\n shell: Omit<React.ComponentProps<typeof TextareaShell>, 'children'>;\n editor: React.ComponentProps<typeof TextareaRichEditor>;\n}): React.JSX.Element {\n return (\n <TextareaShell {...shell}>\n {/*\n `null` rather than a spinner: the editor resolves from the same document\n the caller is already rendering, so a fallback would flash for a frame\n and read as a glitch rather than as loading.\n */}\n <Suspense fallback={null}>\n <TextareaRichEditor {...editor} />\n </Suspense>\n </TextareaShell>\n );\n}\n\nexport const Textarea: React.FC<TextareaProps> = (textareaProps) => {\n const {\n variant,\n color,\n size,\n error,\n helperText,\n label,\n glassLabel,\n glow,\n glass,\n gradient,\n icon,\n iconPosition,\n minRows,\n maxRows,\n style,\n 'data-testid': dataTestId,\n dataTestId: dataTestIdCamelCase,\n ...props\n } = { ...TEXTAREA_DEFAULTS, ...definedProps(textareaProps) };\n\n // Read off the props rather than the merged object: the spread widens every\n // key to optional, which would lose what the variant union already proved.\n const { richEditorCopy } = textareaProps;\n\n const [richTextValue, setRichTextValue] = useState('');\n const hasIcon = Boolean(icon);\n const testId = dataTestId || dataTestIdCamelCase;\n\n const textareaStyle = {\n ...style,\n // Same gap either side; only which side it applies to changes. The previous\n // version had `iconPosition === 'start' ? '40px' : '40px'`, a ternary whose\n // two branches were identical.\n ...(hasIcon && {\n [iconPosition === 'start' ? 'paddingLeft' : 'paddingRight']: ICON_GUTTER }) };\n\n // If rich text variant, use the rich text editor\n if (variant === 'rich' && richEditorCopy) {\n return (\n <RichVariant\n shell={{ testId, label, glassLabel, error, helperText }}\n editor={{\n copy: richEditorCopy,\n value: richTextValue,\n onChange: setRichTextValue,\n placeholder: props.placeholder,\n error,\n glass,\n color,\n characterLimit: props.maxLength }}\n />\n );\n }\n\n return (\n <TextareaShell testId={testId} label={label} glassLabel={glassLabel} error={error} helperText={helperText}>\n <Box sx={{ position: 'relative' }}>\n {hasIcon && <TextareaIcon icon={icon} iconPosition={iconPosition} />}\n\n <StyledTextarea\n customVariant={variant}\n customColor={color}\n customSize={size}\n glow={glow}\n glass={glass}\n gradient={gradient}\n error={error}\n minRows={variant === 'autosize' ? minRows : undefined}\n maxRows={variant === 'autosize' ? maxRows : undefined}\n style={textareaStyle}\n aria-label={label || props['aria-label']}\n data-testid={testId}\n {...props}\n />\n </Box>\n </TextareaShell>\n );\n};\n\nTextarea.displayName = 'Textarea';\n"],"mappings":"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","names":[]}
|
package/dist/chunk-E5ACI7EA.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
// src/en-US.feedback.ts
|
|
2
|
-
var EN_US_TUTORIAL_COPY = {
|
|
3
|
-
skip: "Skip",
|
|
4
|
-
previous: "Back",
|
|
5
|
-
next: "Next",
|
|
6
|
-
restart: "Start over"
|
|
7
|
-
};
|
|
8
|
-
var EN_US_CHROME_COPY = {
|
|
9
|
-
dismissToast: "Dismiss",
|
|
10
|
-
goBack: "Back",
|
|
11
|
-
closePanel: "Close",
|
|
12
|
-
closeTab: "Close tab",
|
|
13
|
-
scrollRegion: "Scrollable content",
|
|
14
|
-
scrollToTop: "Back to top",
|
|
15
|
-
share: "Share"
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export {
|
|
19
|
-
EN_US_TUTORIAL_COPY,
|
|
20
|
-
EN_US_CHROME_COPY
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=chunk-E5ACI7EA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/en-US.feedback.ts"],"sourcesContent":["/**\n * The en-US pack for the feedback family. Split the same way\n * `pt-BR.feedback.ts` is — see `en-US.ts` for why.\n */\nimport type {\n ChromeCopy,\n TutorialCopy,\n} from './copy';\n\nexport const EN_US_TUTORIAL_COPY: TutorialCopy = {\n skip: \"Skip\",\n previous: \"Back\",\n next: \"Next\",\n restart: \"Start over\",\n};\n\nexport const EN_US_CHROME_COPY: ChromeCopy = {\n dismissToast: \"Dismiss\",\n goBack: \"Back\",\n closePanel: \"Close\",\n closeTab: \"Close tab\",\n scrollRegion: \"Scrollable content\",\n scrollToTop: \"Back to top\",\n share: \"Share\",\n};\n"],"mappings":";AASO,IAAM,sBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,SAAS;AACX;AAEO,IAAM,oBAAgC;AAAA,EAC3C,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAAA,EACd,aAAa;AAAA,EACb,OAAO;AACT;","names":[]}
|