@12-apps/ui 6.39.20 → 6.41.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 +43 -5
- package/components-guidelines.md +110 -0
- package/dist/_internal/components/data-display/Alert/Alert.js +3 -2
- package/dist/_internal/components/data-display/Alert/Alert.metrics.js +3 -2
- package/dist/_internal/components/data-display/Alert/Alert.styles.js +3 -2
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
- package/dist/_internal/components/data-display/Avatar/Avatar.js +3 -3
- package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
- package/dist/_internal/components/data-display/Badge/Badge.js +10 -8
- package/dist/_internal/components/data-display/Badge/Badge.styles.js +8 -6
- package/dist/_internal/components/data-display/Badge/BadgeContent.js +9 -7
- 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 +9 -8
- package/dist/_internal/components/data-display/CardKit/card-actions-context.js +3 -2
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +13 -12
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +13 -12
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +9 -7
- package/dist/_internal/components/data-display/Carousel/Carousel.js +13 -11
- package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +8 -6
- package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +8 -6
- package/dist/_internal/components/data-display/Chart/Chart.js +12 -10
- package/dist/_internal/components/data-display/Chart/SpecChart.js +15 -13
- package/dist/_internal/components/data-display/Chart/chart-context.js +9 -7
- package/dist/_internal/components/data-display/Chart/chart-internals.js +8 -6
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +11 -9
- package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
- package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +6 -5
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +70 -69
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +87 -86
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +13 -12
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +17 -16
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +17 -16
- package/dist/_internal/components/data-display/DataViews/base-card.js +7 -6
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +11 -10
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +10 -9
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +15 -14
- package/dist/_internal/components/data-display/DataViews/data-views-bar-controls.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +20 -20
- 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 +10 -9
- package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +16 -15
- package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +8 -7
- package/dist/_internal/components/data-display/DataViews/data-views-empty.js +11 -10
- package/dist/_internal/components/data-display/DataViews/data-views-export.js +11 -10
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +26 -26
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +20 -19
- package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +9 -8
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +66 -65
- 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 -36
- package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +20 -19
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +24 -23
- package/dist/_internal/components/data-display/DataViews/data-views-number-input.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +8 -8
- package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-search.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +11 -10
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +27 -26
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +30 -29
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +26 -25
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +11 -10
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +3 -3
- 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 +13 -12
- package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +3 -3
- package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +6 -5
- package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +15 -15
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +14 -14
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +23 -21
- package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +6 -6
- package/dist/_internal/components/data-display/MapPreview/MapDecorations.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +5 -5
- package/dist/_internal/components/data-display/MapPreview/MapPreview.hooks.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +13 -13
- package/dist/_internal/components/data-display/MapPreview/MapSearchBar.js +4 -4
- 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/SectionOnboarding/SectionOnboarding.js +3 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.body.js +7 -5
- package/dist/_internal/components/data-display/Sheet/Sheet.js +9 -7
- package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +8 -6
- package/dist/_internal/components/data-display/Table/Table.js +5 -5
- package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -2
- package/dist/_internal/components/data-display/Table/TableParts.js +2 -2
- package/dist/_internal/components/data-display/index.js +77 -75
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +2 -2
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +11 -10
- package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +2 -2
- package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
- package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +9 -8
- package/dist/_internal/components/feedback/index.js +19 -18
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +10 -10
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +7 -7
- package/dist/_internal/components/form/AddressAutocomplete/AddressFallbackField.js +5 -5
- package/dist/_internal/components/form/AddressAutocomplete/AddressInputField.js +5 -5
- package/dist/_internal/components/form/AddressAutocomplete/AddressTextField.js +4 -4
- package/dist/_internal/components/form/Autocomplete/Autocomplete.js +5 -5
- package/dist/_internal/components/form/Autocomplete/Autocomplete.parts.js +4 -4
- package/dist/_internal/components/form/Button/Button.js +8 -7
- package/dist/_internal/components/form/Button/Button.styles.js +6 -5
- package/dist/_internal/components/form/Calendar/Calendar.js +4 -4
- 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 +10 -10
- package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +5 -5
- package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +5 -5
- package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +7 -7
- package/dist/_internal/components/form/CategorySelect/CategoryRows.js +6 -6
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +12 -12
- package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +4 -4
- package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +5 -5
- package/dist/_internal/components/form/CepField/CepField.js +7 -7
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -3
- package/dist/_internal/components/form/Command/Command.js +9 -7
- package/dist/_internal/components/form/Command/Command.styles.js +8 -6
- package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +4 -4
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +6 -6
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +13 -13
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +5 -5
- package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +6 -6
- package/dist/_internal/components/form/Input/Input.js +6 -6
- package/dist/_internal/components/form/Input/Input.metrics.js +2 -2
- package/dist/_internal/components/form/Input/Input.styles.js +5 -5
- package/dist/_internal/components/form/InputOTP/InputOTP.js +5 -5
- package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +4 -4
- package/dist/_internal/components/form/Label/Label.js +9 -7
- package/dist/_internal/components/form/Label/Label.styles.js +8 -6
- package/dist/_internal/components/form/Menubar/Menubar.item.js +9 -7
- package/dist/_internal/components/form/Menubar/Menubar.js +11 -9
- package/dist/_internal/components/form/Menubar/Menubar.styles.js +8 -6
- package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +10 -8
- package/dist/_internal/components/form/NumberField/NumberField.helpers.js +20 -0
- package/dist/_internal/components/form/NumberField/NumberField.js +28 -0
- package/dist/_internal/components/form/NumberField/NumberField.types.js +1 -0
- package/dist/_internal/components/form/NumberField/NumberField.types.js.map +1 -0
- package/dist/_internal/components/form/PhoneInput/PhoneInput.js +4 -4
- package/dist/_internal/components/form/RadioGroup/RadioGroup.js +6 -6
- package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +4 -4
- package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +5 -5
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +2 -2
- package/dist/_internal/components/form/Select/Select.js +5 -5
- package/dist/_internal/components/form/Select/Select.metrics.js +2 -2
- package/dist/_internal/components/form/Switch/Switch.js +3 -2
- package/dist/_internal/components/form/Switch/Switch.parts.js +3 -2
- package/dist/_internal/components/form/Switch/Switch.styles.js +3 -2
- package/dist/_internal/components/form/Textarea/Textarea.js +4 -4
- package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +5 -5
- package/dist/_internal/components/form/Toggle/Toggle.js +5 -5
- package/dist/_internal/components/form/Toggle/Toggle.styles.js +4 -4
- package/dist/_internal/components/form/ToggleGroup/ToggleGroup.js +4 -4
- package/dist/_internal/components/form/UploadButton/UploadButton.js +2 -2
- package/dist/_internal/components/form/index.js +72 -64
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +13 -13
- package/dist/_internal/components/form/total-form/Fields/CepField.js +8 -8
- package/dist/_internal/components/form/total-form/Fields/SelectField.js +6 -6
- package/dist/_internal/components/form/total-form/Fields/TextField.js +7 -7
- package/dist/_internal/components/form/total-form/Fields/ToggleField.js +5 -5
- package/dist/_internal/components/form/total-form/Fields/index.js +27 -27
- package/dist/_internal/components/form/total-form/SubmitButton.js +9 -8
- package/dist/_internal/components/index.js +244 -203
- package/dist/_internal/components/layout/Box/Box.js +10 -8
- package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +4 -4
- package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +4 -4
- package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +5 -5
- package/dist/_internal/components/layout/ContentToolbar/MultiSelectTriggers.js +4 -4
- package/dist/_internal/components/layout/ContentToolbar/SavedViewsMenu.js +4 -4
- package/dist/_internal/components/layout/ContentToolbar/SortByDropdown.js +4 -4
- package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +4 -4
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +2 -2
- package/dist/_internal/components/layout/Separator/Separator.js +3 -3
- package/dist/_internal/components/layout/Separator/Separator.styles.js +2 -2
- package/dist/_internal/components/layout/SettingCard/SettingCard.hooks.js +19 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.hooks.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.js +54 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.metrics.js +12 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.metrics.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +59 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.styles.js +37 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.styles.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.types.js +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.types.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingGrid.js +56 -0
- package/dist/_internal/components/layout/SettingCard/SettingGrid.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingGroup.context.js +10 -0
- package/dist/_internal/components/layout/SettingCard/SettingGroup.context.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingGroup.js +65 -0
- package/dist/_internal/components/layout/SettingCard/SettingGroup.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +63 -0
- package/dist/_internal/components/layout/SettingCard/SettingSwitch.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingToggle.js +65 -0
- package/dist/_internal/components/layout/SettingCard/SettingToggle.js.map +1 -0
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +6 -6
- package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +4 -4
- package/dist/_internal/components/layout/SettingsLayout/SettingsSectionChips.js +2 -2
- package/dist/_internal/components/layout/Stack/Stack.js +11 -9
- package/dist/_internal/components/layout/TableFilter/TableFilter.js +4 -4
- package/dist/_internal/components/layout/index.js +87 -25
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +15 -13
- package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +8 -6
- package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +3 -3
- package/dist/_internal/components/navigation/Pagination/Pagination.js +5 -5
- package/dist/_internal/components/navigation/Pagination/PaginationParts.js +4 -4
- package/dist/_internal/components/navigation/Tabs/Tabs.js +5 -5
- package/dist/_internal/components/navigation/Tabs/Tabs.styles.js +4 -4
- package/dist/_internal/components/navigation/index.js +33 -31
- 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/Text/Text.js +5 -4
- package/dist/_internal/components/typography/Text/Text.metrics.js +4 -3
- package/dist/_internal/components/typography/index.js +12 -11
- package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +7 -5
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +7 -5
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +7 -5
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +7 -5
- package/dist/_internal/components/utility/index.js +20 -18
- package/dist/_internal/en-US.data-display.js +2 -2
- package/dist/_internal/en-US.layout.js +5 -1
- package/dist/_internal/icons/Icon.js +10 -8
- package/dist/_internal/provider/UiProvider.js +9 -7
- package/dist/_internal/provider/mui-bridge.js +8 -6
- package/dist/_internal/provider/use-ui-theme.js +9 -7
- package/dist/_internal/pt-BR.data-display.js +2 -2
- package/dist/_internal/pt-BR.layout.js +5 -1
- package/dist/_internal/social-login-button/social-login-button.js +16 -15
- package/dist/_internal/tokens/density.core.js +18 -0
- package/dist/_internal/tokens/density.core.js.map +1 -0
- package/dist/_internal/tokens/density.js +31 -0
- package/dist/_internal/tokens/density.js.map +1 -0
- package/dist/_internal/tokens/field-height.core.js +1 -1
- package/dist/_internal/tokens/field-height.js +7 -5
- package/dist/_internal/tokens/theme.js +3 -2
- package/dist/_internal/user-avatar/user-avatar.js +14 -13
- package/dist/charts.js +24 -22
- package/dist/chunk-2GTORM5E.js +1 -0
- package/dist/chunk-2GTORM5E.js.map +1 -0
- package/dist/{chunk-DFCQQN6P.js → chunk-2LKWJV65.js} +5 -5
- package/dist/{chunk-HVXIOIM5.js → chunk-2MLS6KU4.js} +2 -2
- package/dist/{chunk-IIUB4IOH.js → chunk-2XHIF3M3.js} +4 -4
- package/dist/chunk-33L26P4J.js +27 -0
- package/dist/chunk-33L26P4J.js.map +1 -0
- package/dist/{chunk-IASDP44E.js → chunk-3AOOI2NR.js} +6 -6
- package/dist/{chunk-TCV3N44E.js → chunk-3CLBGHTL.js} +2 -2
- package/dist/{chunk-KKN4LLVE.js → chunk-3CUWQXTG.js} +3 -3
- package/dist/{chunk-QXSW3CNN.js → chunk-3CYTVX4T.js} +5 -5
- package/dist/chunk-3DO5AJCG.js +117 -0
- package/dist/chunk-3DO5AJCG.js.map +1 -0
- package/dist/{chunk-I5ZVCY2N.js → chunk-3EPA2A4M.js} +8 -8
- package/dist/{chunk-DRSY37PB.js → chunk-3MJHHPRW.js} +2 -2
- package/dist/{chunk-NLYNRE7L.js → chunk-3RUCLKAK.js} +4 -4
- package/dist/chunk-3U7WKBMH.js +27 -0
- package/dist/chunk-3U7WKBMH.js.map +1 -0
- package/dist/{chunk-36JKV7CA.js → chunk-3UEZ6NUI.js} +3 -3
- package/dist/{chunk-EYZ6QBTV.js → chunk-3XS37SQT.js} +3 -3
- package/dist/{chunk-BSUG4KMP.js → chunk-44USLRMT.js} +11 -11
- package/dist/{chunk-DJYL2LC6.js → chunk-44Z72DDM.js} +2 -2
- package/dist/{chunk-4WCDMCIS.js → chunk-4CHYMTBT.js} +4 -4
- package/dist/{chunk-2LIRGFEK.js → chunk-4GN2RLYL.js} +2 -2
- package/dist/{chunk-HN3PZTUK.js → chunk-4MKVGSHX.js} +5 -5
- package/dist/{chunk-BRM3T4LQ.js → chunk-4S2LWZ7L.js} +5 -5
- package/dist/{chunk-OQRG34VG.js → chunk-4SHMSLFA.js} +2 -2
- package/dist/{chunk-62UAI62O.js → chunk-4UVFPORR.js} +5 -5
- package/dist/{chunk-YTINPQKU.js → chunk-4XHVGUOM.js} +2 -2
- package/dist/{chunk-7DK6YVJU.js → chunk-4Z7GEO2R.js} +2 -2
- package/dist/{chunk-A2TANYNR.js → chunk-53O2TNSR.js} +6 -6
- package/dist/{chunk-T6EKPFKZ.js → chunk-54HTXJJ2.js} +2 -2
- package/dist/{chunk-OHZU4IT3.js → chunk-5B7BTLN4.js} +2 -2
- package/dist/{chunk-K5V6TCYB.js → chunk-5ETBB2DG.js} +4 -4
- package/dist/{chunk-5752357K.js → chunk-5KGABAQB.js} +4 -4
- package/dist/{chunk-JKIKHWD2.js → chunk-5NT2M2JI.js} +4 -4
- package/dist/{chunk-JE6RZ5L6.js → chunk-5ZOJLYD2.js} +4 -4
- package/dist/{chunk-7EH4D6FU.js → chunk-6H4TPEMO.js} +2 -2
- package/dist/{chunk-WB6ZU3B3.js → chunk-6JGATEOF.js} +6 -6
- package/dist/{chunk-TU5A2CV7.js → chunk-6L2FKTBO.js} +7 -7
- package/dist/{chunk-ME3WYPYK.js → chunk-6MD5QXXJ.js} +5 -5
- package/dist/{chunk-HQZRI7UX.js → chunk-6N2EDWMG.js} +4 -4
- package/dist/{chunk-H224XFFD.js → chunk-6REPQ352.js} +2 -2
- package/dist/{chunk-YZ2DMP23.js → chunk-6TPYT3UC.js} +5 -5
- package/dist/{chunk-I4MRBEWU.js → chunk-6ZD3FI5P.js} +11 -11
- package/dist/{chunk-PWZHCBG3.js → chunk-72FPUWD6.js} +2 -2
- package/dist/{chunk-VRPREI27.js → chunk-72S2RGWD.js} +2 -2
- package/dist/{chunk-OAW6GCS3.js → chunk-77BKKPCI.js} +3 -3
- package/dist/{chunk-67O4GPJJ.js → chunk-7FEXRMJE.js} +2 -2
- package/dist/{chunk-KN5J3NEZ.js → chunk-7KKMZJFT.js} +2 -2
- package/dist/{chunk-KJDBY2KN.js → chunk-7LILFS72.js} +2 -2
- package/dist/{chunk-SLDSWQVE.js → chunk-7TE4TMS3.js} +5 -5
- package/dist/{chunk-AG3DY5TH.js → chunk-ADSA76T7.js} +2 -2
- package/dist/chunk-AEMD6JHZ.js +1 -0
- package/dist/chunk-AEMD6JHZ.js.map +1 -0
- package/dist/{chunk-BKASAYQL.js → chunk-ALOUJ3CE.js} +8 -8
- package/dist/{chunk-VY2BMSHN.js → chunk-ANYOSBNA.js} +2 -2
- package/dist/{chunk-LNHYBA4B.js → chunk-AWG2AJHX.js} +5 -5
- package/dist/{chunk-7X7ZHJHM.js → chunk-B3QWQG62.js} +2 -2
- package/dist/{chunk-2S752BIJ.js → chunk-BA6Z52QN.js} +2 -2
- package/dist/{chunk-X4F32GUB.js → chunk-BM4KKGL7.js} +2 -2
- package/dist/chunk-BOWS4U6W.js +1 -0
- package/dist/chunk-BOWS4U6W.js.map +1 -0
- package/dist/{chunk-4T6UIYJB.js → chunk-BVSSEOLI.js} +2 -2
- package/dist/{chunk-3UABIEP3.js → chunk-C2TERIB4.js} +2 -2
- package/dist/{chunk-TEEJ4GNY.js → chunk-C6OVO6AT.js} +2 -2
- package/dist/{chunk-CYZZHWNK.js → chunk-CJ45OL7L.js} +2 -2
- package/dist/{chunk-N7LPVR7P.js → chunk-CKHFYTIX.js} +4 -4
- package/dist/{chunk-PA3AA55Q.js → chunk-CLK67TNH.js} +2 -2
- package/dist/{chunk-MQ277OLB.js → chunk-CM2Q7IH3.js} +5 -5
- package/dist/{chunk-ZXSWXE6U.js → chunk-CMFJQH6A.js} +5 -5
- package/dist/{chunk-NOKN4HRK.js → chunk-CMLIWUBW.js} +4 -4
- package/dist/{chunk-EA2UNEL6.js → chunk-CNR5RFKC.js} +2 -2
- package/dist/{chunk-P52LYD6S.js → chunk-DFI2RKVQ.js} +2 -2
- package/dist/{chunk-37USSARD.js → chunk-DH5UJD2I.js} +4 -4
- package/dist/{chunk-PCLKFR27.js → chunk-DH6SL3SY.js} +8 -8
- package/dist/chunk-DJKVSUXH.js +35 -0
- package/dist/chunk-DJKVSUXH.js.map +1 -0
- package/dist/{chunk-S6JHTEV4.js → chunk-DLWLIPCP.js} +3 -3
- package/dist/{chunk-KN4ZE2XZ.js → chunk-EIII4QU4.js} +19 -19
- package/dist/{chunk-L566FMDD.js → chunk-EO5IEWFI.js} +6 -6
- package/dist/{chunk-VY6L74JQ.js → chunk-EQXIW5MQ.js} +4 -4
- package/dist/{chunk-MWPXKZ7O.js → chunk-ERY6D2OV.js} +4 -4
- package/dist/{chunk-6PU3JYVY.js → chunk-F3AYISXT.js} +4 -4
- package/dist/{chunk-GY4NBSCN.js → chunk-FDMQ7H22.js} +2 -2
- package/dist/{chunk-IBGP3VSR.js → chunk-FHW3ATT7.js} +2 -2
- package/dist/{chunk-WL6N33AB.js → chunk-FIO55AKI.js} +4 -4
- package/dist/{chunk-5CQNBMLK.js → chunk-FTQBVZ7V.js} +4 -4
- package/dist/{chunk-J5UZB6Y6.js → chunk-FXWXBEOZ.js} +2 -2
- package/dist/{chunk-IGGXKT5B.js → chunk-G2WERTWZ.js} +2 -2
- package/dist/{chunk-DF4QODJ6.js → chunk-G4TKMUOL.js} +6 -6
- package/dist/{chunk-WY5PBZ7Q.js → chunk-G6ZPQHBL.js} +2 -2
- package/dist/{chunk-JYR6VV4Y.js → chunk-G7XHJPLO.js} +5 -5
- package/dist/{chunk-IQJCLFF4.js → chunk-GANW7FXQ.js} +2 -2
- package/dist/{chunk-3LSIFHQK.js → chunk-GE2CCITY.js} +2 -2
- package/dist/{chunk-G3XLFQ2Z.js → chunk-GG62LKA3.js} +6 -6
- package/dist/{chunk-YQCRQHVU.js → chunk-GI63FQEJ.js} +4 -4
- package/dist/{chunk-7ICK5MXV.js → chunk-GJFAI3J5.js} +10 -10
- package/dist/{chunk-2JNHWKQK.js → chunk-GPHURU2K.js} +12 -12
- package/dist/{chunk-5FAI25JQ.js → chunk-H72YKEGD.js} +3 -3
- package/dist/chunk-HALFOXSZ.js +1 -0
- package/dist/chunk-HALFOXSZ.js.map +1 -0
- package/dist/{chunk-J3XFUCCR.js → chunk-HKBJZX3C.js} +12 -12
- package/dist/{chunk-M4QXG5JP.js → chunk-HQWJUHR4.js} +4 -4
- package/dist/chunk-IC7GHPMK.js +22 -0
- package/dist/chunk-IC7GHPMK.js.map +1 -0
- package/dist/{chunk-4BNV5AAI.js → chunk-ITFFA3H2.js} +3 -3
- package/dist/{chunk-RB3X6CEE.js → chunk-IWGW2E35.js} +2 -2
- package/dist/{chunk-O25SH2MA.js → chunk-J6KLT7HP.js} +7 -7
- package/dist/{chunk-CRG24BGI.js → chunk-JAGAFEZL.js} +2 -2
- package/dist/{chunk-RDCHT2WN.js → chunk-JE5GEWTG.js} +5 -5
- package/dist/{chunk-FLDLUAHW.js → chunk-JE6GQB5J.js} +4 -4
- package/dist/{chunk-N23GCN5U.js → chunk-JFLFZLOA.js} +5 -5
- package/dist/{chunk-35443PF6.js → chunk-JIRZ27RI.js} +2 -2
- package/dist/{chunk-5MW7OYBM.js → chunk-JSGVYOMN.js} +2 -2
- package/dist/{chunk-RNIU447I.js → chunk-JU3FRRO2.js} +2 -2
- package/dist/{chunk-WOAXKWAB.js → chunk-K4A3JDYQ.js} +2 -2
- package/dist/{chunk-HM2JJNUE.js → chunk-K6LNHHSH.js} +5 -5
- package/dist/{chunk-NR5TW4AH.js → chunk-K7MQP2KT.js} +3 -3
- package/dist/{chunk-2OWKL4CC.js → chunk-KCDNOMMT.js} +9 -9
- package/dist/{chunk-O2DLEAUP.js → chunk-KHOAXZW2.js} +4 -4
- package/dist/{chunk-W5TI46QN.js → chunk-KQZGUHYZ.js} +3 -3
- package/dist/{chunk-2K7WPHI3.js → chunk-KW3H5FUS.js} +2 -2
- package/dist/{chunk-7D2C4LK2.js → chunk-LCWGNDTH.js} +4 -4
- package/dist/{chunk-FNRPQE2D.js → chunk-LF3EVXMF.js} +2 -2
- package/dist/{chunk-MCJRHF7Z.js → chunk-LGCRL7DK.js} +10 -10
- package/dist/{chunk-JK5UJM4Y.js → chunk-LODMNSLR.js} +9 -9
- package/dist/{chunk-CGO452DC.js → chunk-M47ZOUGF.js} +13 -10
- package/dist/{chunk-CGO452DC.js.map → chunk-M47ZOUGF.js.map} +1 -1
- package/dist/{chunk-YUXDVW62.js → chunk-M65ZNPLO.js} +2 -2
- package/dist/{chunk-URHX4FAQ.js → chunk-MKLIMY3D.js} +2 -2
- package/dist/{chunk-2FM5SUQV.js → chunk-MM5XSAVE.js} +2 -2
- package/dist/{chunk-LXT3X33C.js → chunk-NCB4GBRL.js} +2 -2
- package/dist/{chunk-FNO5TWBJ.js → chunk-NCEQWEXT.js} +4 -4
- package/dist/{chunk-FWPFCK4D.js → chunk-NDHDBOUH.js} +4 -4
- package/dist/{chunk-WRCLYSTX.js → chunk-NFGIA2ZV.js} +2 -2
- package/dist/{chunk-VPPIODKX.js → chunk-NQ7NMCRI.js} +2 -2
- package/dist/{chunk-YMTZN54Q.js → chunk-NRSVI23L.js} +2 -2
- package/dist/{chunk-2622YFM6.js → chunk-NSVSC6ZC.js} +6 -6
- package/dist/{chunk-Z43N7ASP.js → chunk-NU55QUMO.js} +2 -2
- package/dist/{chunk-66O55OZI.js → chunk-NYFGFELX.js} +2 -2
- package/dist/{chunk-PZBK3F52.js → chunk-O6MJWHU5.js} +3 -3
- package/dist/chunk-O6MJWHU5.js.map +1 -0
- package/dist/chunk-OJUORFGO.js +87 -0
- package/dist/chunk-OJUORFGO.js.map +1 -0
- package/dist/{chunk-JXECOCNA.js → chunk-P6Q2O3TU.js} +2 -2
- package/dist/{chunk-RTEY5COP.js → chunk-PAICZOL5.js} +4 -4
- package/dist/{chunk-ZN6YATOG.js → chunk-PAT2BQOQ.js} +2 -2
- package/dist/chunk-PEOOCQ2T.js +140 -0
- package/dist/chunk-PEOOCQ2T.js.map +1 -0
- package/dist/chunk-PGGGKYWG.js +1 -0
- package/dist/chunk-PGGGKYWG.js.map +1 -0
- package/dist/{chunk-TZBOWSAM.js → chunk-PICOOZLX.js} +6 -6
- package/dist/{chunk-JJJM75XF.js → chunk-PNDYAIKM.js} +2 -2
- package/dist/{chunk-EJYJLVPK.js → chunk-PRLYYKMG.js} +3 -3
- package/dist/{chunk-4GB46HLK.js → chunk-PTONBPZL.js} +2 -2
- package/dist/chunk-Q4JWWTL4.js +36 -0
- package/dist/chunk-Q4JWWTL4.js.map +1 -0
- package/dist/{chunk-FNG33MKA.js → chunk-QDELBNL3.js} +2 -2
- package/dist/{chunk-DSF4VT7L.js → chunk-QEI5DC6S.js} +6 -6
- package/dist/chunk-QGUNUXTT.js +1 -0
- package/dist/chunk-QGUNUXTT.js.map +1 -0
- package/dist/{chunk-VJ2BNJ5M.js → chunk-QMELMQPA.js} +4 -4
- package/dist/{chunk-HDJQDMHB.js → chunk-QMHS6ZDI.js} +2 -2
- package/dist/{chunk-2WVHZIWP.js → chunk-QSRZOXQI.js} +2 -2
- package/dist/{chunk-C3LZ3OGJ.js → chunk-R2FUQV24.js} +2 -2
- package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
- package/dist/{chunk-HWSS6C7C.js → chunk-RDFPM2AQ.js} +8 -8
- package/dist/chunk-RDZGXJOD.js +74 -0
- package/dist/chunk-RDZGXJOD.js.map +1 -0
- package/dist/chunk-RN7UJI7S.js +1 -0
- package/dist/chunk-RN7UJI7S.js.map +1 -0
- package/dist/chunk-RPBGUWNF.js +168 -0
- package/dist/chunk-RPBGUWNF.js.map +1 -0
- package/dist/{chunk-4RPFI474.js → chunk-RSDYS5B3.js} +6 -6
- package/dist/{chunk-X53F33KA.js → chunk-RWXYND4H.js} +2 -2
- package/dist/{chunk-4NPPO63U.js → chunk-RZ2VZ7SL.js} +5 -5
- package/dist/{chunk-ORRI6FMN.js → chunk-S4IXC2V3.js} +3 -3
- package/dist/chunk-SALQ65SM.js +118 -0
- package/dist/chunk-SALQ65SM.js.map +1 -0
- package/dist/{chunk-MXCIUKTQ.js → chunk-SDBBJ6FG.js} +4 -4
- package/dist/{chunk-JRJCBDGN.js → chunk-SDKOOVEX.js} +6 -4
- package/dist/{chunk-JRJCBDGN.js.map → chunk-SDKOOVEX.js.map} +1 -1
- package/dist/{chunk-UMNXSQ7I.js → chunk-SNBAMWI5.js} +2 -2
- package/dist/{chunk-LP3JCXER.js → chunk-SNW5MJ6I.js} +2 -2
- package/dist/{chunk-5OBGW3FG.js → chunk-STTULW2K.js} +2 -2
- package/dist/{chunk-3CTQZDSD.js → chunk-TCNTIGMY.js} +4 -4
- package/dist/{chunk-Y6C4MYZE.js → chunk-TNQDSTIA.js} +7 -7
- package/dist/{chunk-6RLCBNDV.js → chunk-TPVSHO75.js} +7 -7
- package/dist/{chunk-BUPDBEBA.js → chunk-TTJTMDLI.js} +2 -2
- package/dist/{chunk-TU5EIKJA.js → chunk-U5SH3VRJ.js} +4 -4
- package/dist/chunk-U67ZQ6VM.js +82 -0
- package/dist/chunk-U67ZQ6VM.js.map +1 -0
- package/dist/{chunk-MLQYIJTO.js → chunk-U6W2RY3Z.js} +5 -5
- package/dist/{chunk-4WF6ZLIW.js → chunk-UGPRBJWB.js} +8 -8
- package/dist/chunk-VBP46YP4.js +42 -0
- package/dist/chunk-VBP46YP4.js.map +1 -0
- package/dist/{chunk-Y6G4I42P.js → chunk-VEEG4UXZ.js} +2 -2
- package/dist/{chunk-IRD45DRW.js → chunk-VOJBLBXE.js} +3 -3
- package/dist/{chunk-KHPL2J3B.js → chunk-VPAOVEI2.js} +3 -3
- package/dist/{chunk-DYGWKZ7T.js → chunk-VWJEM2ER.js} +3 -3
- package/dist/{chunk-FERUQ7OB.js → chunk-VYA4QWQL.js} +2 -2
- package/dist/chunk-VYM2GPR6.js +47 -0
- package/dist/chunk-VYM2GPR6.js.map +1 -0
- package/dist/{chunk-UKX3MPB7.js → chunk-VYV3JOV5.js} +2 -2
- package/dist/{chunk-B7CNP5HW.js → chunk-WV62BSWA.js} +2 -2
- package/dist/chunk-X3C3VTYS.js +85 -0
- package/dist/chunk-X3C3VTYS.js.map +1 -0
- package/dist/{chunk-IWEUSZY3.js → chunk-X66E5WSX.js} +3 -3
- package/dist/{chunk-OJ2XR3WH.js → chunk-XB7HYOMM.js} +2 -2
- package/dist/{chunk-H6AWKLOV.js → chunk-XBLFK2FL.js} +2 -2
- package/dist/{chunk-5HDYTTE7.js → chunk-XHA2NXLD.js} +2 -2
- package/dist/chunk-XJQNSMGA.js +10 -0
- package/dist/chunk-XJQNSMGA.js.map +1 -0
- package/dist/{chunk-F4KYBBTY.js → chunk-XLXMJ6X2.js} +3 -3
- package/dist/{chunk-SCZABICW.js → chunk-XO4ZUHVH.js} +2 -2
- package/dist/{chunk-PARTZ7XI.js → chunk-XP522FFM.js} +2 -2
- package/dist/{chunk-MBHWVRV5.js → chunk-XVZG52CM.js} +8 -8
- package/dist/{chunk-TGXCG62P.js → chunk-XXL4PM4M.js} +2 -2
- package/dist/{chunk-YKEO6UHN.js → chunk-XZJM6EPC.js} +4 -4
- package/dist/{chunk-YTY7TD7S.js → chunk-XZY7O7JJ.js} +5 -5
- package/dist/{chunk-WZNTZX5N.js → chunk-Y2UXX5IQ.js} +4 -4
- package/dist/{chunk-BLW6KLDR.js → chunk-YFODI4KT.js} +11 -4
- package/dist/chunk-YFODI4KT.js.map +1 -0
- package/dist/{chunk-QOLIBVGS.js → chunk-YGYQC7MT.js} +4 -4
- package/dist/{chunk-THMT3G3L.js → chunk-YLXQWYOG.js} +7 -7
- package/dist/{chunk-M4KVKQRN.js → chunk-YPIVLPXF.js} +3 -3
- package/dist/{chunk-57FZM6GH.js → chunk-YRUX7XMQ.js} +2 -2
- package/dist/{chunk-M2Q5CLPU.js → chunk-YTXZUTLF.js} +4 -4
- package/dist/{chunk-ZWCYSAI5.js → chunk-YWJDUJAR.js} +4 -4
- package/dist/{chunk-S36NC22G.js → chunk-Z2NN53E5.js} +2 -2
- package/dist/{chunk-GC56IWIZ.js → chunk-Z4DKVLYG.js} +9 -9
- package/dist/{chunk-U4QUDFPJ.js → chunk-Z4O3F6KU.js} +4 -4
- package/dist/{chunk-JC22FNFA.js → chunk-Z6T5SXST.js} +5 -5
- package/dist/{chunk-TXEN3QJ4.js → chunk-ZC5HDBQO.js} +2 -2
- package/dist/{chunk-LEHMWJNZ.js → chunk-ZEYUSS3W.js} +5 -5
- package/dist/{chunk-JH5BKA3Y.js → chunk-ZH2SZ6B3.js} +26 -8
- package/dist/chunk-ZH2SZ6B3.js.map +1 -0
- package/dist/{chunk-4WNFOBTH.js → chunk-ZKWVCSAB.js} +2 -2
- package/dist/{chunk-GEB4WSZH.js → chunk-ZNBLGS66.js} +3 -3
- package/dist/{chunk-TCAQOUIB.js → chunk-ZSTSISM6.js} +1 -1
- package/dist/chunk-ZSTSISM6.js.map +1 -0
- package/dist/data-display/Alert.js +3 -2
- package/dist/data-display/AsyncStateContainer.js +3 -3
- package/dist/data-display/Avatar.js +3 -3
- package/dist/data-display/Badge.js +10 -8
- package/dist/data-display/Banner.js +3 -2
- package/dist/data-display/CardKit.js +17 -16
- package/dist/data-display/Carousel.js +13 -11
- package/dist/data-display/Chart.js +24 -22
- package/dist/data-display/Chip.js +1 -0
- package/dist/data-display/DataGrid.js +3 -3
- package/dist/data-display/DataViews.js +107 -106
- package/dist/data-display/DescriptionItem.js +6 -5
- package/dist/data-display/EmptyState.js +2 -2
- package/dist/data-display/FleetMap.js +23 -21
- package/dist/data-display/InteractiveTooltip.js +2 -2
- package/dist/data-display/Lightbox.js +6 -6
- package/dist/data-display/MapPreview.js +13 -13
- package/dist/data-display/Progress.js +6 -5
- package/dist/data-display/SectionOnboarding.js +3 -3
- package/dist/data-display/Sheet.js +9 -7
- package/dist/data-display/Table.js +5 -5
- package/dist/en-US.js +15 -11
- package/dist/feedback/ConfirmAction.js +14 -13
- package/dist/feedback/Dialog.js +2 -2
- package/dist/feedback/Modal.js +2 -2
- package/dist/feedback/NotificationStatusNotice.js +9 -8
- package/dist/form/AddressAutocomplete.js +10 -10
- package/dist/form/Autocomplete.js +5 -5
- package/dist/form/Button.js +8 -7
- package/dist/form/Calendar.js +4 -4
- package/dist/form/CategorySelect.js +12 -12
- package/dist/form/CepField.js +7 -7
- package/dist/form/CodeEditor.js +4 -4
- package/dist/form/Command.js +9 -7
- package/dist/form/CreatableSelect.js +4 -4
- package/dist/form/DateRangePicker.js +13 -13
- package/dist/form/Input.js +6 -6
- package/dist/form/InputOTP.js +5 -5
- package/dist/form/Label.js +9 -7
- package/dist/form/Menubar.js +11 -9
- package/dist/form/NumberField.js +29 -0
- package/dist/form/NumberField.js.map +1 -0
- package/dist/form/PhoneInput.js +4 -4
- package/dist/form/RadioGroup.js +6 -6
- package/dist/form/RichTextEditor.js +2 -2
- package/dist/form/Select.js +5 -5
- package/dist/form/Switch.js +3 -2
- package/dist/form/Textarea.js +4 -4
- package/dist/form/Toggle.js +5 -5
- package/dist/form/ToggleGroup.js +4 -4
- package/dist/form/UploadButton.js +2 -2
- package/dist/form/total-form.js +31 -30
- package/dist/icons.js +11 -8
- package/dist/layout/Box.js +10 -8
- package/dist/layout/Collapsible.js +1 -0
- package/dist/layout/ContentToolbar.js +12 -12
- package/dist/layout/ScrollArea.js +2 -2
- package/dist/layout/Separator.js +3 -3
- package/dist/layout/SettingCard.js +80 -0
- package/dist/layout/SettingCard.js.map +1 -0
- package/dist/layout/SettingsLayout.js +7 -7
- package/dist/layout/Stack.js +11 -9
- package/dist/layout/TableFilter.js +4 -4
- package/dist/locales.js +37 -23
- package/dist/locales.js.map +1 -1
- package/dist/native/chunks/{chunk-ONXKFA5Z.js → chunk-A2QNZ4VK.js} +4 -4
- package/dist/native/chunks/{chunk-X6RQGKGF.js → chunk-BST5DUUD.js} +2 -2
- package/dist/native/chunks/{chunk-GUBTMR2K.js → chunk-EDYZEMVD.js} +2 -2
- package/dist/native/chunks/{chunk-SZF56GVJ.js → chunk-LECBJD35.js} +3 -3
- package/dist/native/chunks/{chunk-JBYDLWQA.js → chunk-MTRRGDBQ.js} +5 -5
- package/dist/native/chunks/{chunk-IMGBBIMT.js → chunk-PN7C2BEY.js} +2 -2
- package/dist/native/chunks/{chunk-R5XVZRDD.js → chunk-RADD26LG.js} +46 -5
- package/dist/native/chunks/chunk-RADD26LG.js.map +1 -0
- package/dist/native/chunks/{chunk-4ZAULIDG.js → chunk-S4F364X4.js} +3 -3
- package/dist/native/chunks/{chunk-5IASLIBI.js → chunk-VJFKRXY2.js} +2 -2
- 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 +6 -6
- package/dist/native/data-display/ErrorState.js +5 -5
- package/dist/native/data-display/FleetMap.js +7 -7
- 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 +4 -4
- package/dist/native/form/Checkbox.js +3 -3
- package/dist/native/form/Input.js +4 -4
- package/dist/native/form/Select.js +5 -5
- 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 +15 -3
- 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 +18 -16
- package/dist/navigation/CommandPalette.js +3 -3
- package/dist/navigation/Pagination.js +5 -5
- package/dist/navigation/Tabs.js +5 -5
- package/dist/provider.js +10 -8
- package/dist/pt-BR.js +12 -8
- package/dist/social-login-button.js +16 -15
- package/dist/tokens.js +30 -8
- package/dist/types/components/form/Input/Input.d.ts.map +1 -1
- package/dist/types/components/form/Input/Input.types.d.ts +10 -0
- package/dist/types/components/form/Input/Input.types.d.ts.map +1 -1
- package/dist/types/components/form/NumberField/NumberField.d.ts +21 -0
- package/dist/types/components/form/NumberField/NumberField.d.ts.map +1 -0
- package/dist/types/components/form/NumberField/NumberField.helpers.d.ts +48 -0
- package/dist/types/components/form/NumberField/NumberField.helpers.d.ts.map +1 -0
- package/dist/types/components/form/NumberField/NumberField.types.d.ts +31 -0
- package/dist/types/components/form/NumberField/NumberField.types.d.ts.map +1 -0
- package/dist/types/components/form/NumberField/index.d.ts +3 -0
- package/dist/types/components/form/NumberField/index.d.ts.map +1 -0
- package/dist/types/components/form/index.d.ts +1 -0
- package/dist/types/components/form/index.d.ts.map +1 -1
- package/dist/types/components/layout/SettingCard/SettingCard.d.ts +14 -0
- package/dist/types/components/layout/SettingCard/SettingCard.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/SettingCard.hooks.d.ts +79 -0
- package/dist/types/components/layout/SettingCard/SettingCard.hooks.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/SettingCard.metrics.d.ts +21 -0
- package/dist/types/components/layout/SettingCard/SettingCard.metrics.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/SettingCard.parts.d.ts +49 -0
- package/dist/types/components/layout/SettingCard/SettingCard.parts.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/SettingCard.styles.d.ts +48 -0
- package/dist/types/components/layout/SettingCard/SettingCard.styles.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/SettingCard.types.d.ts +127 -0
- package/dist/types/components/layout/SettingCard/SettingCard.types.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/SettingGrid.d.ts +33 -0
- package/dist/types/components/layout/SettingCard/SettingGrid.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/SettingGroup.context.d.ts +13 -0
- package/dist/types/components/layout/SettingCard/SettingGroup.context.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/SettingGroup.d.ts +18 -0
- package/dist/types/components/layout/SettingCard/SettingGroup.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/SettingSwitch.d.ts +28 -0
- package/dist/types/components/layout/SettingCard/SettingSwitch.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/SettingToggle.d.ts +13 -0
- package/dist/types/components/layout/SettingCard/SettingToggle.d.ts.map +1 -0
- package/dist/types/components/layout/SettingCard/index.d.ts +6 -0
- package/dist/types/components/layout/SettingCard/index.d.ts.map +1 -0
- package/dist/types/components/layout/index.d.ts +1 -0
- package/dist/types/components/layout/index.d.ts.map +1 -1
- package/dist/types/copy/layout.d.ts +27 -0
- package/dist/types/copy/layout.d.ts.map +1 -1
- package/dist/types/en-US.layout.d.ts +3 -1
- package/dist/types/en-US.layout.d.ts.map +1 -1
- package/dist/types/locales.d.ts +3 -1
- package/dist/types/locales.d.ts.map +1 -1
- package/dist/types/provider/mui-bridge.d.ts.map +1 -1
- package/dist/types/pt-BR.layout.d.ts +3 -1
- package/dist/types/pt-BR.layout.d.ts.map +1 -1
- package/dist/types/tokens/density.core.d.ts +73 -0
- package/dist/types/tokens/density.core.d.ts.map +1 -0
- package/dist/types/tokens/density.d.ts +95 -0
- package/dist/types/tokens/density.d.ts.map +1 -0
- package/dist/types/tokens/field-height.core.d.ts +7 -2
- package/dist/types/tokens/field-height.core.d.ts.map +1 -1
- package/dist/types/tokens/field-height.d.ts +9 -0
- package/dist/types/tokens/field-height.d.ts.map +1 -1
- package/dist/types/tokens/scales.d.ts +2 -1
- package/dist/types/tokens/scales.d.ts.map +1 -1
- package/dist/types/tokens/theme.d.ts +30 -0
- package/dist/types/tokens/theme.d.ts.map +1 -1
- package/dist/types-native/tokens/density.core.d.ts +73 -0
- package/dist/types-native/tokens/density.core.d.ts.map +1 -0
- package/dist/types-native/tokens/field-height.core.d.ts +7 -2
- package/dist/types-native/tokens/field-height.core.d.ts.map +1 -1
- 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 +30 -0
- package/dist/types-native/tokens/theme.d.ts.map +1 -1
- package/dist/typography/Heading.js +6 -5
- package/dist/typography/Text.js +5 -4
- package/dist/user-avatar.js +14 -13
- package/dist/utility/InstallPrompt.js +2 -2
- package/dist/utility/WorkflowStep.js +7 -5
- package/package.json +9 -1
- package/src/components/form/Input/Input.tsx +2 -0
- package/src/components/form/Input/Input.types.ts +10 -0
- package/src/components/form/NumberField/NumberField.helpers.ts +77 -0
- package/src/components/form/NumberField/NumberField.md +86 -0
- package/src/components/form/NumberField/NumberField.tsx +88 -0
- package/src/components/form/NumberField/NumberField.types.ts +43 -0
- package/src/components/form/NumberField/index.ts +2 -0
- package/src/components/form/NumberField/tests.md +51 -0
- package/src/components/form/NumberField/track.md +42 -0
- package/src/components/form/index.ts +1 -0
- package/src/components/layout/SettingCard/SettingCard.hooks.ts +191 -0
- package/src/components/layout/SettingCard/SettingCard.md +121 -0
- package/src/components/layout/SettingCard/SettingCard.metrics.ts +22 -0
- package/src/components/layout/SettingCard/SettingCard.parts.tsx +162 -0
- package/src/components/layout/SettingCard/SettingCard.styles.ts +142 -0
- package/src/components/layout/SettingCard/SettingCard.tsx +197 -0
- package/src/components/layout/SettingCard/SettingCard.types.ts +140 -0
- package/src/components/layout/SettingCard/SettingGrid.md +65 -0
- package/src/components/layout/SettingCard/SettingGrid.tsx +105 -0
- package/src/components/layout/SettingCard/SettingGroup.context.ts +11 -0
- package/src/components/layout/SettingCard/SettingGroup.md +81 -0
- package/src/components/layout/SettingCard/SettingGroup.tsx +73 -0
- package/src/components/layout/SettingCard/SettingSwitch.tsx +92 -0
- package/src/components/layout/SettingCard/SettingToggle.md +61 -0
- package/src/components/layout/SettingCard/SettingToggle.tsx +43 -0
- package/src/components/layout/SettingCard/index.ts +18 -0
- package/src/components/layout/SettingCard/tests.md +68 -0
- package/src/components/layout/SettingCard/track.md +54 -0
- package/src/components/layout/index.ts +1 -0
- package/src/copy/layout.ts +29 -0
- package/src/en-US.layout.ts +16 -0
- package/src/locales.ts +10 -0
- package/src/provider/mui-bridge.ts +17 -3
- package/src/pt-BR.layout.ts +16 -0
- package/src/tokens/density.core.ts +118 -0
- package/src/tokens/density.ts +134 -0
- package/src/tokens/field-height.core.ts +8 -3
- package/src/tokens/field-height.ts +19 -8
- package/src/tokens/index.native.ts +11 -0
- package/src/tokens/scales.ts +15 -0
- package/src/tokens/theme.ts +43 -2
- package/dist/chunk-A7RIZOAL.js +0 -13
- package/dist/chunk-A7RIZOAL.js.map +0 -1
- package/dist/chunk-BLW6KLDR.js.map +0 -1
- package/dist/chunk-BY3JEK5T.js +0 -1
- package/dist/chunk-FZJ2FTGE.js +0 -1
- package/dist/chunk-GRHECKHU.js +0 -13
- package/dist/chunk-GRHECKHU.js.map +0 -1
- package/dist/chunk-JH5BKA3Y.js.map +0 -1
- package/dist/chunk-PZBK3F52.js.map +0 -1
- package/dist/chunk-TCAQOUIB.js.map +0 -1
- package/dist/native/chunks/chunk-R5XVZRDD.js.map +0 -1
- /package/dist/{chunk-BY3JEK5T.js.map → _internal/components/form/NumberField/NumberField.helpers.js.map} +0 -0
- /package/dist/{chunk-FZJ2FTGE.js.map → _internal/components/form/NumberField/NumberField.js.map} +0 -0
- /package/dist/{chunk-DFCQQN6P.js.map → chunk-2LKWJV65.js.map} +0 -0
- /package/dist/{chunk-HVXIOIM5.js.map → chunk-2MLS6KU4.js.map} +0 -0
- /package/dist/{chunk-IIUB4IOH.js.map → chunk-2XHIF3M3.js.map} +0 -0
- /package/dist/{chunk-IASDP44E.js.map → chunk-3AOOI2NR.js.map} +0 -0
- /package/dist/{chunk-TCV3N44E.js.map → chunk-3CLBGHTL.js.map} +0 -0
- /package/dist/{chunk-KKN4LLVE.js.map → chunk-3CUWQXTG.js.map} +0 -0
- /package/dist/{chunk-QXSW3CNN.js.map → chunk-3CYTVX4T.js.map} +0 -0
- /package/dist/{chunk-I5ZVCY2N.js.map → chunk-3EPA2A4M.js.map} +0 -0
- /package/dist/{chunk-DRSY37PB.js.map → chunk-3MJHHPRW.js.map} +0 -0
- /package/dist/{chunk-NLYNRE7L.js.map → chunk-3RUCLKAK.js.map} +0 -0
- /package/dist/{chunk-36JKV7CA.js.map → chunk-3UEZ6NUI.js.map} +0 -0
- /package/dist/{chunk-EYZ6QBTV.js.map → chunk-3XS37SQT.js.map} +0 -0
- /package/dist/{chunk-BSUG4KMP.js.map → chunk-44USLRMT.js.map} +0 -0
- /package/dist/{chunk-DJYL2LC6.js.map → chunk-44Z72DDM.js.map} +0 -0
- /package/dist/{chunk-4WCDMCIS.js.map → chunk-4CHYMTBT.js.map} +0 -0
- /package/dist/{chunk-2LIRGFEK.js.map → chunk-4GN2RLYL.js.map} +0 -0
- /package/dist/{chunk-HN3PZTUK.js.map → chunk-4MKVGSHX.js.map} +0 -0
- /package/dist/{chunk-BRM3T4LQ.js.map → chunk-4S2LWZ7L.js.map} +0 -0
- /package/dist/{chunk-OQRG34VG.js.map → chunk-4SHMSLFA.js.map} +0 -0
- /package/dist/{chunk-62UAI62O.js.map → chunk-4UVFPORR.js.map} +0 -0
- /package/dist/{chunk-YTINPQKU.js.map → chunk-4XHVGUOM.js.map} +0 -0
- /package/dist/{chunk-7DK6YVJU.js.map → chunk-4Z7GEO2R.js.map} +0 -0
- /package/dist/{chunk-A2TANYNR.js.map → chunk-53O2TNSR.js.map} +0 -0
- /package/dist/{chunk-T6EKPFKZ.js.map → chunk-54HTXJJ2.js.map} +0 -0
- /package/dist/{chunk-OHZU4IT3.js.map → chunk-5B7BTLN4.js.map} +0 -0
- /package/dist/{chunk-K5V6TCYB.js.map → chunk-5ETBB2DG.js.map} +0 -0
- /package/dist/{chunk-5752357K.js.map → chunk-5KGABAQB.js.map} +0 -0
- /package/dist/{chunk-JKIKHWD2.js.map → chunk-5NT2M2JI.js.map} +0 -0
- /package/dist/{chunk-JE6RZ5L6.js.map → chunk-5ZOJLYD2.js.map} +0 -0
- /package/dist/{chunk-7EH4D6FU.js.map → chunk-6H4TPEMO.js.map} +0 -0
- /package/dist/{chunk-WB6ZU3B3.js.map → chunk-6JGATEOF.js.map} +0 -0
- /package/dist/{chunk-TU5A2CV7.js.map → chunk-6L2FKTBO.js.map} +0 -0
- /package/dist/{chunk-ME3WYPYK.js.map → chunk-6MD5QXXJ.js.map} +0 -0
- /package/dist/{chunk-HQZRI7UX.js.map → chunk-6N2EDWMG.js.map} +0 -0
- /package/dist/{chunk-H224XFFD.js.map → chunk-6REPQ352.js.map} +0 -0
- /package/dist/{chunk-YZ2DMP23.js.map → chunk-6TPYT3UC.js.map} +0 -0
- /package/dist/{chunk-I4MRBEWU.js.map → chunk-6ZD3FI5P.js.map} +0 -0
- /package/dist/{chunk-PWZHCBG3.js.map → chunk-72FPUWD6.js.map} +0 -0
- /package/dist/{chunk-VRPREI27.js.map → chunk-72S2RGWD.js.map} +0 -0
- /package/dist/{chunk-OAW6GCS3.js.map → chunk-77BKKPCI.js.map} +0 -0
- /package/dist/{chunk-67O4GPJJ.js.map → chunk-7FEXRMJE.js.map} +0 -0
- /package/dist/{chunk-KN5J3NEZ.js.map → chunk-7KKMZJFT.js.map} +0 -0
- /package/dist/{chunk-KJDBY2KN.js.map → chunk-7LILFS72.js.map} +0 -0
- /package/dist/{chunk-SLDSWQVE.js.map → chunk-7TE4TMS3.js.map} +0 -0
- /package/dist/{chunk-AG3DY5TH.js.map → chunk-ADSA76T7.js.map} +0 -0
- /package/dist/{chunk-BKASAYQL.js.map → chunk-ALOUJ3CE.js.map} +0 -0
- /package/dist/{chunk-VY2BMSHN.js.map → chunk-ANYOSBNA.js.map} +0 -0
- /package/dist/{chunk-LNHYBA4B.js.map → chunk-AWG2AJHX.js.map} +0 -0
- /package/dist/{chunk-7X7ZHJHM.js.map → chunk-B3QWQG62.js.map} +0 -0
- /package/dist/{chunk-2S752BIJ.js.map → chunk-BA6Z52QN.js.map} +0 -0
- /package/dist/{chunk-X4F32GUB.js.map → chunk-BM4KKGL7.js.map} +0 -0
- /package/dist/{chunk-4T6UIYJB.js.map → chunk-BVSSEOLI.js.map} +0 -0
- /package/dist/{chunk-3UABIEP3.js.map → chunk-C2TERIB4.js.map} +0 -0
- /package/dist/{chunk-TEEJ4GNY.js.map → chunk-C6OVO6AT.js.map} +0 -0
- /package/dist/{chunk-CYZZHWNK.js.map → chunk-CJ45OL7L.js.map} +0 -0
- /package/dist/{chunk-N7LPVR7P.js.map → chunk-CKHFYTIX.js.map} +0 -0
- /package/dist/{chunk-PA3AA55Q.js.map → chunk-CLK67TNH.js.map} +0 -0
- /package/dist/{chunk-MQ277OLB.js.map → chunk-CM2Q7IH3.js.map} +0 -0
- /package/dist/{chunk-ZXSWXE6U.js.map → chunk-CMFJQH6A.js.map} +0 -0
- /package/dist/{chunk-NOKN4HRK.js.map → chunk-CMLIWUBW.js.map} +0 -0
- /package/dist/{chunk-EA2UNEL6.js.map → chunk-CNR5RFKC.js.map} +0 -0
- /package/dist/{chunk-P52LYD6S.js.map → chunk-DFI2RKVQ.js.map} +0 -0
- /package/dist/{chunk-37USSARD.js.map → chunk-DH5UJD2I.js.map} +0 -0
- /package/dist/{chunk-PCLKFR27.js.map → chunk-DH6SL3SY.js.map} +0 -0
- /package/dist/{chunk-S6JHTEV4.js.map → chunk-DLWLIPCP.js.map} +0 -0
- /package/dist/{chunk-KN4ZE2XZ.js.map → chunk-EIII4QU4.js.map} +0 -0
- /package/dist/{chunk-L566FMDD.js.map → chunk-EO5IEWFI.js.map} +0 -0
- /package/dist/{chunk-VY6L74JQ.js.map → chunk-EQXIW5MQ.js.map} +0 -0
- /package/dist/{chunk-MWPXKZ7O.js.map → chunk-ERY6D2OV.js.map} +0 -0
- /package/dist/{chunk-6PU3JYVY.js.map → chunk-F3AYISXT.js.map} +0 -0
- /package/dist/{chunk-GY4NBSCN.js.map → chunk-FDMQ7H22.js.map} +0 -0
- /package/dist/{chunk-IBGP3VSR.js.map → chunk-FHW3ATT7.js.map} +0 -0
- /package/dist/{chunk-WL6N33AB.js.map → chunk-FIO55AKI.js.map} +0 -0
- /package/dist/{chunk-5CQNBMLK.js.map → chunk-FTQBVZ7V.js.map} +0 -0
- /package/dist/{chunk-J5UZB6Y6.js.map → chunk-FXWXBEOZ.js.map} +0 -0
- /package/dist/{chunk-IGGXKT5B.js.map → chunk-G2WERTWZ.js.map} +0 -0
- /package/dist/{chunk-DF4QODJ6.js.map → chunk-G4TKMUOL.js.map} +0 -0
- /package/dist/{chunk-WY5PBZ7Q.js.map → chunk-G6ZPQHBL.js.map} +0 -0
- /package/dist/{chunk-JYR6VV4Y.js.map → chunk-G7XHJPLO.js.map} +0 -0
- /package/dist/{chunk-IQJCLFF4.js.map → chunk-GANW7FXQ.js.map} +0 -0
- /package/dist/{chunk-3LSIFHQK.js.map → chunk-GE2CCITY.js.map} +0 -0
- /package/dist/{chunk-G3XLFQ2Z.js.map → chunk-GG62LKA3.js.map} +0 -0
- /package/dist/{chunk-YQCRQHVU.js.map → chunk-GI63FQEJ.js.map} +0 -0
- /package/dist/{chunk-7ICK5MXV.js.map → chunk-GJFAI3J5.js.map} +0 -0
- /package/dist/{chunk-2JNHWKQK.js.map → chunk-GPHURU2K.js.map} +0 -0
- /package/dist/{chunk-5FAI25JQ.js.map → chunk-H72YKEGD.js.map} +0 -0
- /package/dist/{chunk-J3XFUCCR.js.map → chunk-HKBJZX3C.js.map} +0 -0
- /package/dist/{chunk-M4QXG5JP.js.map → chunk-HQWJUHR4.js.map} +0 -0
- /package/dist/{chunk-4BNV5AAI.js.map → chunk-ITFFA3H2.js.map} +0 -0
- /package/dist/{chunk-RB3X6CEE.js.map → chunk-IWGW2E35.js.map} +0 -0
- /package/dist/{chunk-O25SH2MA.js.map → chunk-J6KLT7HP.js.map} +0 -0
- /package/dist/{chunk-CRG24BGI.js.map → chunk-JAGAFEZL.js.map} +0 -0
- /package/dist/{chunk-RDCHT2WN.js.map → chunk-JE5GEWTG.js.map} +0 -0
- /package/dist/{chunk-FLDLUAHW.js.map → chunk-JE6GQB5J.js.map} +0 -0
- /package/dist/{chunk-N23GCN5U.js.map → chunk-JFLFZLOA.js.map} +0 -0
- /package/dist/{chunk-35443PF6.js.map → chunk-JIRZ27RI.js.map} +0 -0
- /package/dist/{chunk-5MW7OYBM.js.map → chunk-JSGVYOMN.js.map} +0 -0
- /package/dist/{chunk-RNIU447I.js.map → chunk-JU3FRRO2.js.map} +0 -0
- /package/dist/{chunk-WOAXKWAB.js.map → chunk-K4A3JDYQ.js.map} +0 -0
- /package/dist/{chunk-HM2JJNUE.js.map → chunk-K6LNHHSH.js.map} +0 -0
- /package/dist/{chunk-NR5TW4AH.js.map → chunk-K7MQP2KT.js.map} +0 -0
- /package/dist/{chunk-2OWKL4CC.js.map → chunk-KCDNOMMT.js.map} +0 -0
- /package/dist/{chunk-O2DLEAUP.js.map → chunk-KHOAXZW2.js.map} +0 -0
- /package/dist/{chunk-W5TI46QN.js.map → chunk-KQZGUHYZ.js.map} +0 -0
- /package/dist/{chunk-2K7WPHI3.js.map → chunk-KW3H5FUS.js.map} +0 -0
- /package/dist/{chunk-7D2C4LK2.js.map → chunk-LCWGNDTH.js.map} +0 -0
- /package/dist/{chunk-FNRPQE2D.js.map → chunk-LF3EVXMF.js.map} +0 -0
- /package/dist/{chunk-MCJRHF7Z.js.map → chunk-LGCRL7DK.js.map} +0 -0
- /package/dist/{chunk-JK5UJM4Y.js.map → chunk-LODMNSLR.js.map} +0 -0
- /package/dist/{chunk-YUXDVW62.js.map → chunk-M65ZNPLO.js.map} +0 -0
- /package/dist/{chunk-URHX4FAQ.js.map → chunk-MKLIMY3D.js.map} +0 -0
- /package/dist/{chunk-2FM5SUQV.js.map → chunk-MM5XSAVE.js.map} +0 -0
- /package/dist/{chunk-LXT3X33C.js.map → chunk-NCB4GBRL.js.map} +0 -0
- /package/dist/{chunk-FNO5TWBJ.js.map → chunk-NCEQWEXT.js.map} +0 -0
- /package/dist/{chunk-FWPFCK4D.js.map → chunk-NDHDBOUH.js.map} +0 -0
- /package/dist/{chunk-WRCLYSTX.js.map → chunk-NFGIA2ZV.js.map} +0 -0
- /package/dist/{chunk-VPPIODKX.js.map → chunk-NQ7NMCRI.js.map} +0 -0
- /package/dist/{chunk-YMTZN54Q.js.map → chunk-NRSVI23L.js.map} +0 -0
- /package/dist/{chunk-2622YFM6.js.map → chunk-NSVSC6ZC.js.map} +0 -0
- /package/dist/{chunk-Z43N7ASP.js.map → chunk-NU55QUMO.js.map} +0 -0
- /package/dist/{chunk-66O55OZI.js.map → chunk-NYFGFELX.js.map} +0 -0
- /package/dist/{chunk-JXECOCNA.js.map → chunk-P6Q2O3TU.js.map} +0 -0
- /package/dist/{chunk-RTEY5COP.js.map → chunk-PAICZOL5.js.map} +0 -0
- /package/dist/{chunk-ZN6YATOG.js.map → chunk-PAT2BQOQ.js.map} +0 -0
- /package/dist/{chunk-TZBOWSAM.js.map → chunk-PICOOZLX.js.map} +0 -0
- /package/dist/{chunk-JJJM75XF.js.map → chunk-PNDYAIKM.js.map} +0 -0
- /package/dist/{chunk-EJYJLVPK.js.map → chunk-PRLYYKMG.js.map} +0 -0
- /package/dist/{chunk-4GB46HLK.js.map → chunk-PTONBPZL.js.map} +0 -0
- /package/dist/{chunk-FNG33MKA.js.map → chunk-QDELBNL3.js.map} +0 -0
- /package/dist/{chunk-DSF4VT7L.js.map → chunk-QEI5DC6S.js.map} +0 -0
- /package/dist/{chunk-VJ2BNJ5M.js.map → chunk-QMELMQPA.js.map} +0 -0
- /package/dist/{chunk-HDJQDMHB.js.map → chunk-QMHS6ZDI.js.map} +0 -0
- /package/dist/{chunk-2WVHZIWP.js.map → chunk-QSRZOXQI.js.map} +0 -0
- /package/dist/{chunk-C3LZ3OGJ.js.map → chunk-R2FUQV24.js.map} +0 -0
- /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
- /package/dist/{chunk-HWSS6C7C.js.map → chunk-RDFPM2AQ.js.map} +0 -0
- /package/dist/{chunk-4RPFI474.js.map → chunk-RSDYS5B3.js.map} +0 -0
- /package/dist/{chunk-X53F33KA.js.map → chunk-RWXYND4H.js.map} +0 -0
- /package/dist/{chunk-4NPPO63U.js.map → chunk-RZ2VZ7SL.js.map} +0 -0
- /package/dist/{chunk-ORRI6FMN.js.map → chunk-S4IXC2V3.js.map} +0 -0
- /package/dist/{chunk-MXCIUKTQ.js.map → chunk-SDBBJ6FG.js.map} +0 -0
- /package/dist/{chunk-UMNXSQ7I.js.map → chunk-SNBAMWI5.js.map} +0 -0
- /package/dist/{chunk-LP3JCXER.js.map → chunk-SNW5MJ6I.js.map} +0 -0
- /package/dist/{chunk-5OBGW3FG.js.map → chunk-STTULW2K.js.map} +0 -0
- /package/dist/{chunk-3CTQZDSD.js.map → chunk-TCNTIGMY.js.map} +0 -0
- /package/dist/{chunk-Y6C4MYZE.js.map → chunk-TNQDSTIA.js.map} +0 -0
- /package/dist/{chunk-6RLCBNDV.js.map → chunk-TPVSHO75.js.map} +0 -0
- /package/dist/{chunk-BUPDBEBA.js.map → chunk-TTJTMDLI.js.map} +0 -0
- /package/dist/{chunk-TU5EIKJA.js.map → chunk-U5SH3VRJ.js.map} +0 -0
- /package/dist/{chunk-MLQYIJTO.js.map → chunk-U6W2RY3Z.js.map} +0 -0
- /package/dist/{chunk-4WF6ZLIW.js.map → chunk-UGPRBJWB.js.map} +0 -0
- /package/dist/{chunk-Y6G4I42P.js.map → chunk-VEEG4UXZ.js.map} +0 -0
- /package/dist/{chunk-IRD45DRW.js.map → chunk-VOJBLBXE.js.map} +0 -0
- /package/dist/{chunk-KHPL2J3B.js.map → chunk-VPAOVEI2.js.map} +0 -0
- /package/dist/{chunk-DYGWKZ7T.js.map → chunk-VWJEM2ER.js.map} +0 -0
- /package/dist/{chunk-FERUQ7OB.js.map → chunk-VYA4QWQL.js.map} +0 -0
- /package/dist/{chunk-UKX3MPB7.js.map → chunk-VYV3JOV5.js.map} +0 -0
- /package/dist/{chunk-B7CNP5HW.js.map → chunk-WV62BSWA.js.map} +0 -0
- /package/dist/{chunk-IWEUSZY3.js.map → chunk-X66E5WSX.js.map} +0 -0
- /package/dist/{chunk-OJ2XR3WH.js.map → chunk-XB7HYOMM.js.map} +0 -0
- /package/dist/{chunk-H6AWKLOV.js.map → chunk-XBLFK2FL.js.map} +0 -0
- /package/dist/{chunk-5HDYTTE7.js.map → chunk-XHA2NXLD.js.map} +0 -0
- /package/dist/{chunk-F4KYBBTY.js.map → chunk-XLXMJ6X2.js.map} +0 -0
- /package/dist/{chunk-SCZABICW.js.map → chunk-XO4ZUHVH.js.map} +0 -0
- /package/dist/{chunk-PARTZ7XI.js.map → chunk-XP522FFM.js.map} +0 -0
- /package/dist/{chunk-MBHWVRV5.js.map → chunk-XVZG52CM.js.map} +0 -0
- /package/dist/{chunk-TGXCG62P.js.map → chunk-XXL4PM4M.js.map} +0 -0
- /package/dist/{chunk-YKEO6UHN.js.map → chunk-XZJM6EPC.js.map} +0 -0
- /package/dist/{chunk-YTY7TD7S.js.map → chunk-XZY7O7JJ.js.map} +0 -0
- /package/dist/{chunk-WZNTZX5N.js.map → chunk-Y2UXX5IQ.js.map} +0 -0
- /package/dist/{chunk-QOLIBVGS.js.map → chunk-YGYQC7MT.js.map} +0 -0
- /package/dist/{chunk-THMT3G3L.js.map → chunk-YLXQWYOG.js.map} +0 -0
- /package/dist/{chunk-M4KVKQRN.js.map → chunk-YPIVLPXF.js.map} +0 -0
- /package/dist/{chunk-57FZM6GH.js.map → chunk-YRUX7XMQ.js.map} +0 -0
- /package/dist/{chunk-M2Q5CLPU.js.map → chunk-YTXZUTLF.js.map} +0 -0
- /package/dist/{chunk-ZWCYSAI5.js.map → chunk-YWJDUJAR.js.map} +0 -0
- /package/dist/{chunk-S36NC22G.js.map → chunk-Z2NN53E5.js.map} +0 -0
- /package/dist/{chunk-GC56IWIZ.js.map → chunk-Z4DKVLYG.js.map} +0 -0
- /package/dist/{chunk-U4QUDFPJ.js.map → chunk-Z4O3F6KU.js.map} +0 -0
- /package/dist/{chunk-JC22FNFA.js.map → chunk-Z6T5SXST.js.map} +0 -0
- /package/dist/{chunk-TXEN3QJ4.js.map → chunk-ZC5HDBQO.js.map} +0 -0
- /package/dist/{chunk-LEHMWJNZ.js.map → chunk-ZEYUSS3W.js.map} +0 -0
- /package/dist/{chunk-4WNFOBTH.js.map → chunk-ZKWVCSAB.js.map} +0 -0
- /package/dist/{chunk-GEB4WSZH.js.map → chunk-ZNBLGS66.js.map} +0 -0
- /package/dist/native/chunks/{chunk-ONXKFA5Z.js.map → chunk-A2QNZ4VK.js.map} +0 -0
- /package/dist/native/chunks/{chunk-X6RQGKGF.js.map → chunk-BST5DUUD.js.map} +0 -0
- /package/dist/native/chunks/{chunk-GUBTMR2K.js.map → chunk-EDYZEMVD.js.map} +0 -0
- /package/dist/native/chunks/{chunk-SZF56GVJ.js.map → chunk-LECBJD35.js.map} +0 -0
- /package/dist/native/chunks/{chunk-JBYDLWQA.js.map → chunk-MTRRGDBQ.js.map} +0 -0
- /package/dist/native/chunks/{chunk-IMGBBIMT.js.map → chunk-PN7C2BEY.js.map} +0 -0
- /package/dist/native/chunks/{chunk-4ZAULIDG.js.map → chunk-S4F364X4.js.map} +0 -0
- /package/dist/native/chunks/{chunk-5IASLIBI.js.map → chunk-VJFKRXY2.js.map} +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# SettingCard family
|
|
2
|
+
|
|
3
|
+
Four settings-screen building blocks under one subpath,
|
|
4
|
+
`@12-apps/ui/layout/SettingCard` (FUT-2823). `SettingCard` summarises a setting
|
|
5
|
+
while closed and edits it in place, with an async save that stays open on
|
|
6
|
+
failure and a focus round trip. `SettingToggle` is a switch that saves as it
|
|
7
|
+
flips. `SettingGroup` is one subject's main switch with dependent rows that dim
|
|
8
|
+
(never vanish) while it is off. `SettingGrid` lays them out in 1–3 columns by
|
|
9
|
+
container query, with equal-height rows and a full-row span for an open card.
|
|
10
|
+
App-agnostic: every word comes in through props (`SettingCardCopy`,
|
|
11
|
+
`SettingSwitchCopy`, titles, summaries, hints).
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
- **SettingCard** — `copy`, `title`, `onSave` (may be async), `children` (the
|
|
16
|
+
form), `summary`, `status`, `learnMore`, `onCancel`, `open` / `defaultOpen` /
|
|
17
|
+
`onOpenChange`, `disabled`, `saveDisabled`, `formatError`, `headingLevel`,
|
|
18
|
+
`icon`, `dataTestId`, `className`, `sx`.
|
|
19
|
+
- **SettingToggle** — `copy`, `title`, `checked`, `onChange` (may be async),
|
|
20
|
+
`summary`, `variant` (`card` | `row`), `disabled`, `formatError`, `icon`,
|
|
21
|
+
`dataTestId`, `className`, `sx`.
|
|
22
|
+
- **SettingGroup** — `SettingToggle`'s switch props plus `inactiveHint` and
|
|
23
|
+
`children` (the dependent rows).
|
|
24
|
+
- **SettingGrid** — `children`, `minColumnWidth`, `maxColumns`, `gap`,
|
|
25
|
+
`aria-label`, `dataTestId`, `className`, `sx`.
|
|
26
|
+
|
|
27
|
+
## Lint
|
|
28
|
+
|
|
29
|
+
- Clean (`pnpm lint:files src/components/layout/SettingCard`), plus the
|
|
30
|
+
complexity and flakiness gates.
|
|
31
|
+
|
|
32
|
+
## Type Errors
|
|
33
|
+
|
|
34
|
+
- None (`pnpm typecheck`, `tsc -p tsconfig.stories.json`).
|
|
35
|
+
|
|
36
|
+
## Testing Scenarios
|
|
37
|
+
|
|
38
|
+
- Closed/open rendering, in-place open, Escape, controlled mode, no focus steal
|
|
39
|
+
on mount; save pending / resolved / rejected / thrown / double-press /
|
|
40
|
+
`saveDisabled`; cancel discarding uncontrolled drafts; toggle optimistic flip,
|
|
41
|
+
revert, ignored second flip; group inert rows, hint, activation only after
|
|
42
|
+
the save lands; grid container-query CSS, row sizing, open-card span; layout
|
|
43
|
+
measured in Chromium by the test stories.
|
|
44
|
+
|
|
45
|
+
## Storybook Tests List
|
|
46
|
+
|
|
47
|
+
- Layout/SettingCard/Tests → 8, Layout/SettingToggle/Tests → 4,
|
|
48
|
+
Layout/SettingGroup/Tests → 3, Layout/SettingGrid/Tests → 3.
|
|
49
|
+
|
|
50
|
+
## Current
|
|
51
|
+
|
|
52
|
+
- 2026-09-26 16:40 BRT — v1: all four components, copy packs in both locales,
|
|
53
|
+
docs per component. Remaining TODO: first host adoption in the origin host
|
|
54
|
+
(FUT-1659 is the admin screens that would fold onto it).
|
package/src/copy/layout.ts
CHANGED
|
@@ -16,3 +16,32 @@ export interface TableFilterCopy {
|
|
|
16
16
|
rangeMin: string;
|
|
17
17
|
rangeMax: string;
|
|
18
18
|
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The chrome words of an editable `SettingCard`. The card's own title, summary
|
|
22
|
+
* and status are per-card props; these are the words every card repeats.
|
|
23
|
+
*/
|
|
24
|
+
export interface SettingCardCopy {
|
|
25
|
+
/** The closed card's trigger. Its accessible name also carries the card's title. */
|
|
26
|
+
edit: string;
|
|
27
|
+
/** Discard the draft and close. */
|
|
28
|
+
cancel: string;
|
|
29
|
+
save: string;
|
|
30
|
+
/** Announced (and shown to sighted users as the Save label) while the save is pending. */
|
|
31
|
+
saving: string;
|
|
32
|
+
/** The disclosure that reveals the card's longer explanation. */
|
|
33
|
+
learnMore: string;
|
|
34
|
+
/** Shown when the save rejected and the host's `formatError` gave no sentence of its own. */
|
|
35
|
+
saveFailed: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* What a switch that saves the moment it flips says about that save — shared
|
|
40
|
+
* by `SettingToggle` and `SettingGroup`'s main switch.
|
|
41
|
+
*/
|
|
42
|
+
export interface SettingSwitchCopy {
|
|
43
|
+
/** Announced while the flip is being saved. */
|
|
44
|
+
saving: string;
|
|
45
|
+
/** Shown when the save rejected and the host's `formatError` gave no sentence of its own. */
|
|
46
|
+
saveFailed: string;
|
|
47
|
+
}
|
package/src/en-US.layout.ts
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* is — see `en-US.ts` for why the packs live in per-family files.
|
|
4
4
|
*/
|
|
5
5
|
import type {
|
|
6
|
+
SettingCardCopy,
|
|
7
|
+
SettingSwitchCopy,
|
|
6
8
|
TableFilterCopy,
|
|
7
9
|
} from './copy';
|
|
8
10
|
|
|
@@ -13,3 +15,17 @@ export const EN_US_TABLE_FILTER_COPY: TableFilterCopy = {
|
|
|
13
15
|
rangeMin: "Minimum",
|
|
14
16
|
rangeMax: "Maximum",
|
|
15
17
|
};
|
|
18
|
+
|
|
19
|
+
export const EN_US_SETTING_CARD_COPY: SettingCardCopy = {
|
|
20
|
+
edit: "Edit",
|
|
21
|
+
cancel: "Cancel",
|
|
22
|
+
save: "Save",
|
|
23
|
+
saving: "Saving…",
|
|
24
|
+
learnMore: "Learn more",
|
|
25
|
+
saveFailed: "Could not save. Please try again.",
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const EN_US_SETTING_SWITCH_COPY: SettingSwitchCopy = {
|
|
29
|
+
saving: "Saving…",
|
|
30
|
+
saveFailed: "Could not save. Please try again.",
|
|
31
|
+
};
|
package/src/locales.ts
CHANGED
|
@@ -38,6 +38,8 @@ import type {
|
|
|
38
38
|
PhoneInputCopy,
|
|
39
39
|
RichEditorToolbarCopy,
|
|
40
40
|
SectionOnboardingCopy,
|
|
41
|
+
SettingCardCopy,
|
|
42
|
+
SettingSwitchCopy,
|
|
41
43
|
SocialLoginCopy,
|
|
42
44
|
TableFilterCopy,
|
|
43
45
|
TimingDiagramCopy,
|
|
@@ -115,6 +117,14 @@ export const TABLE_FILTER_COPY = pack<TableFilterCopy>(
|
|
|
115
117
|
pt.PT_BR_TABLE_FILTER_COPY,
|
|
116
118
|
en.EN_US_TABLE_FILTER_COPY,
|
|
117
119
|
);
|
|
120
|
+
export const SETTING_CARD_COPY = pack<SettingCardCopy>(
|
|
121
|
+
pt.PT_BR_SETTING_CARD_COPY,
|
|
122
|
+
en.EN_US_SETTING_CARD_COPY,
|
|
123
|
+
);
|
|
124
|
+
export const SETTING_SWITCH_COPY = pack<SettingSwitchCopy>(
|
|
125
|
+
pt.PT_BR_SETTING_SWITCH_COPY,
|
|
126
|
+
en.EN_US_SETTING_SWITCH_COPY,
|
|
127
|
+
);
|
|
118
128
|
|
|
119
129
|
// navigation
|
|
120
130
|
export const COMMAND_PALETTE_COPY = pack<CommandPaletteCopy>(
|
|
@@ -1,8 +1,9 @@
|
|
|
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 { densityFontSize, resolveDensityFactor } from '../tokens/density';
|
|
4
5
|
import { resolveFieldHeight } from '../tokens/field-height.core';
|
|
5
|
-
import { fieldOverrides } from '../tokens/field-height';
|
|
6
|
+
import { fieldOverrides, mergeMuiComponents } from '../tokens/field-height';
|
|
6
7
|
import { fieldRadius } from '../tokens/field-radius';
|
|
7
8
|
import { accentFor } from '../tokens/scales';
|
|
8
9
|
import {
|
|
@@ -102,6 +103,9 @@ export function uiThemeFromMui(theme: Theme): UiTheme {
|
|
|
102
103
|
spacingUnit: unit,
|
|
103
104
|
radius: { sm: md / 2, md, lg: md * 2, xl: md * 4, full: 9999, field: fieldRadius(theme) },
|
|
104
105
|
fieldHeight: resolveFieldHeight(theme.fieldHeight),
|
|
106
|
+
// A bare MUI theme (never built through `createUiTheme`/`muiThemeOptionsFrom`)
|
|
107
|
+
// carries no `theme.density` — read back as `'normal'`, factor `1`.
|
|
108
|
+
density: theme.density ?? resolveDensityFactor(),
|
|
105
109
|
typography: {
|
|
106
110
|
fontFamily: theme.typography.fontFamily ?? WEB_FONT_FAMILY,
|
|
107
111
|
monospaceFontFamily: WEB_MONOSPACE_FONT_FAMILY,
|
|
@@ -140,9 +144,19 @@ export function muiThemeOptionsFrom(ui: UiTheme): ThemeOptions {
|
|
|
140
144
|
shape: { borderRadius: ui.radius.md },
|
|
141
145
|
fieldRadius: ui.radius.field,
|
|
142
146
|
fieldHeight: ui.fieldHeight,
|
|
143
|
-
|
|
147
|
+
// Additive: children 2–4 (FUT-2766–2768) each add one more source here as
|
|
148
|
+
// their own geometry overrides land — this PR wires the merge helper to
|
|
149
|
+
// `fieldOverrides` alone, since no geometry override exists yet.
|
|
150
|
+
components: mergeMuiComponents(fieldOverrides(ui.radius.field, ui.fieldHeight)),
|
|
144
151
|
spacing: ui.spacingUnit,
|
|
145
|
-
|
|
152
|
+
density: ui.density,
|
|
153
|
+
typography: {
|
|
154
|
+
fontFamily: ui.typography.fontFamily ?? WEB_FONT_FAMILY,
|
|
155
|
+
// MUI multiplies every `pxToRem` size by `fontSize / 14` — the lever a
|
|
156
|
+
// density mode moves (`./tokens/relative.ts`). `htmlFontSize` stays
|
|
157
|
+
// untouched: that is a reader's own zoom/accessibility setting, not this.
|
|
158
|
+
fontSize: densityFontSize(ui.density.factor),
|
|
159
|
+
},
|
|
146
160
|
zIndex: { ...ui.zIndex },
|
|
147
161
|
};
|
|
148
162
|
}
|
package/src/pt-BR.layout.ts
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* barrel over this folder — see that file for why.
|
|
4
4
|
*/
|
|
5
5
|
import type {
|
|
6
|
+
SettingCardCopy,
|
|
7
|
+
SettingSwitchCopy,
|
|
6
8
|
TableFilterCopy,
|
|
7
9
|
} from './copy';
|
|
8
10
|
|
|
@@ -13,3 +15,17 @@ export const PT_BR_TABLE_FILTER_COPY: TableFilterCopy = {
|
|
|
13
15
|
rangeMin: "Mínimo",
|
|
14
16
|
rangeMax: "Máximo",
|
|
15
17
|
};
|
|
18
|
+
|
|
19
|
+
export const PT_BR_SETTING_CARD_COPY: SettingCardCopy = {
|
|
20
|
+
edit: "Editar",
|
|
21
|
+
cancel: "Cancelar",
|
|
22
|
+
save: "Salvar",
|
|
23
|
+
saving: "Salvando…",
|
|
24
|
+
learnMore: "Saiba mais",
|
|
25
|
+
saveFailed: "Não foi possível salvar. Tente novamente.",
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const PT_BR_SETTING_SWITCH_COPY: SettingSwitchCopy = {
|
|
29
|
+
saving: "Salvando…",
|
|
30
|
+
saveFailed: "Não foi possível salvar. Tente novamente.",
|
|
31
|
+
};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE ONE DENSITY KNOB, WITH NO RENDERER BEHIND IT.
|
|
3
|
+
*
|
|
4
|
+
* A host that wants a compact admin or a roomy kiosk should say so once, in
|
|
5
|
+
* the theme — not hunt through every component's own numbers. Because every
|
|
6
|
+
* size already goes through `rem(theme, px)` / `theme.spacing()` / `fieldHeight()`
|
|
7
|
+
* (FUT-2585, `./relative.ts`), moving the type scale, the spacing unit and the
|
|
8
|
+
* field height BY THE SAME FACTOR is enough to make the whole package denser
|
|
9
|
+
* or roomier — no `size` step is rewritten, no component is touched (FUT-2764
|
|
10
|
+
* Decision 3).
|
|
11
|
+
*
|
|
12
|
+
* Three named levels, or a raw factor for a repository the three names don't
|
|
13
|
+
* fit (a kiosk app, say). A repository can also redefine what a named level
|
|
14
|
+
* itself means (`densityFactors`). Precedence, highest first, ABOVE
|
|
15
|
+
* `resolveDensityFactor` itself — this file's own resolver has no notion of an
|
|
16
|
+
* "explicit option" to defer to, that is each CALLER's job:
|
|
17
|
+
*
|
|
18
|
+
* - On the `createUiTheme` path (`./theme.ts`): an explicit `spacingUnit` /
|
|
19
|
+
* `fieldHeight` option (`UiThemeOptions` carries no `typography.fontSize` —
|
|
20
|
+
* only `fontFamily`/`monospaceFontFamily`) still wins over EVERYTHING below,
|
|
21
|
+
* unchanged.
|
|
22
|
+
* - On the MUI-native path (`densityThemeOptions`'s output, or a host's own
|
|
23
|
+
* `createTheme()` options merged around it): whichever `typography.fontSize`
|
|
24
|
+
* / `spacing` a host's OWN object literal states last wins — plain
|
|
25
|
+
* JavaScript object-spread order, not a rule this package enforces. See
|
|
26
|
+
* `./density.ts` for exactly where to put it.
|
|
27
|
+
*
|
|
28
|
+
* Below that: a numeric `density` (used as the factor directly, no table
|
|
29
|
+
* lookup, and only when it is a USABLE one — see `resolveDensityFactor`) >
|
|
30
|
+
* `densityFactors[level]` (a repository's own override for a named level,
|
|
31
|
+
* same usability rule) > the built-in table below. No `density` at all
|
|
32
|
+
* resolves to `{ level: 'normal', factor: 1 }` — today, byte-for-byte.
|
|
33
|
+
*
|
|
34
|
+
* This file is the resolver alone, so the native renderer and `./theme.ts`
|
|
35
|
+
* read it without importing MUI. The web reader — `useDensity()`, the MUI
|
|
36
|
+
* theme channel, and the standalone `densityThemeOptions()` — is in
|
|
37
|
+
* `./density.ts`.
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
export type DensityLevel = 'compact' | 'normal' | 'comfortable';
|
|
41
|
+
|
|
42
|
+
export const DEFAULT_DENSITY: DensityLevel = 'normal';
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The built-in factor table — the LOWEST-precedence source. A repository's
|
|
46
|
+
* own `densityFactors` entry for a level wins over it; a numeric `density`
|
|
47
|
+
* bypasses it entirely. Confirmed against screenshots before this PR merges
|
|
48
|
+
* (see the ticket's Done when) — `compact` 0.9, `normal` 1 (no-op),
|
|
49
|
+
* `comfortable` 1.1.
|
|
50
|
+
*/
|
|
51
|
+
export const DENSITY_FACTOR: Record<DensityLevel, number> = {
|
|
52
|
+
compact: 0.9,
|
|
53
|
+
normal: 1,
|
|
54
|
+
comfortable: 1.1,
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export interface ResolvedDensity {
|
|
58
|
+
/** Present only when a NAMED level was given; a raw numeric `density` has no name. */
|
|
59
|
+
level?: DensityLevel;
|
|
60
|
+
factor: number;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* A usable factor — a positive, finite number. The same shape
|
|
65
|
+
* `resolveFieldHeight` (`./field-height.core`) already accepts for a `height`;
|
|
66
|
+
* a numeric `density` and a `densityFactors` entry are held to the same rule
|
|
67
|
+
* so an unusable one falls back exactly the way an unusable `fieldHeight`
|
|
68
|
+
* option already does, rather than baking a `0`, a negative or a `NaN`/
|
|
69
|
+
* `Infinity` into `spacingUnit`/`fieldHeight`/`typography.fontSize`.
|
|
70
|
+
*/
|
|
71
|
+
function isUsableFactor(value: unknown): value is number {
|
|
72
|
+
return typeof value === 'number' && Number.isFinite(value) && value > 0;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Precedence (highest first): a numeric `density` IS the factor, no table lookup —
|
|
77
|
+
* but only when it is a usable one (a positive, finite number); `0`, a negative
|
|
78
|
+
* number, `NaN` or `Infinity` are not a density anyone meant, so they fall back
|
|
79
|
+
* to `'normal'`, factor `1`, exactly as no `density` at all does. A named
|
|
80
|
+
* `density` resolves through `factors?.[level] ?? DENSITY_FACTOR[level]` — a
|
|
81
|
+
* repository's own `densityFactors` override wins over the built-in table, but
|
|
82
|
+
* only when IT is usable too; an unusable entry falls back to the BUILT-IN
|
|
83
|
+
* table's value for that same level (not to `'normal'` — the level itself is
|
|
84
|
+
* still the one asked for, only its factor is unusable). No `density` at all
|
|
85
|
+
* resolves to `{ level: 'normal', factor: 1 }`.
|
|
86
|
+
*/
|
|
87
|
+
export function resolveDensityFactor(
|
|
88
|
+
density?: DensityLevel | number,
|
|
89
|
+
factors?: Partial<Record<DensityLevel, number>>,
|
|
90
|
+
): ResolvedDensity {
|
|
91
|
+
if (typeof density === 'number') {
|
|
92
|
+
if (isUsableFactor(density)) return { factor: density };
|
|
93
|
+
density = undefined; // not usable — fall through to 'normal', below
|
|
94
|
+
}
|
|
95
|
+
const level = density ?? DEFAULT_DENSITY;
|
|
96
|
+
const override = factors?.[level];
|
|
97
|
+
const factor = isUsableFactor(override) ? override : DENSITY_FACTOR[level];
|
|
98
|
+
return { level, factor };
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const BASE_FONT_SIZE = 14; // MUI's own typography.fontSize baseline
|
|
102
|
+
const BASE_SPACING_UNIT = 8; // theme.ts's literal default
|
|
103
|
+
const BASE_FIELD_HEIGHT = 2.5; // field-height.core.ts's DEFAULT_FIELD_HEIGHT
|
|
104
|
+
|
|
105
|
+
/** MUI's own `typography.fontSize` at this factor. `htmlFontSize` is never touched. */
|
|
106
|
+
export function densityFontSize(factor: number): number {
|
|
107
|
+
return BASE_FONT_SIZE * factor;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/** The theme's `spacingUnit` at this factor. */
|
|
111
|
+
export function densitySpacingUnit(factor: number): number {
|
|
112
|
+
return BASE_SPACING_UNIT * factor;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/** The standard field height (multiples of the default font size) at this factor. */
|
|
116
|
+
export function densityFieldHeight(factor: number): number {
|
|
117
|
+
return BASE_FIELD_HEIGHT * factor;
|
|
118
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { useTheme } from '@mui/material/styles/index.js';
|
|
2
|
+
import type { ThemeOptions } from '@mui/material/styles/index.js';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
densityFieldHeight,
|
|
6
|
+
densityFontSize,
|
|
7
|
+
densitySpacingUnit,
|
|
8
|
+
resolveDensityFactor,
|
|
9
|
+
type DensityLevel,
|
|
10
|
+
type ResolvedDensity,
|
|
11
|
+
} from './density.core';
|
|
12
|
+
import { fieldOverrides, mergeMuiComponents } from './field-height';
|
|
13
|
+
import { DEFAULT_FIELD_RADIUS } from './field-radius.core';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* DENSITY ON THE WEB: the MUI theme channel, the reader, and the standalone
|
|
17
|
+
* entry point for a host that never calls `createUiTheme`/`UiProvider`.
|
|
18
|
+
*
|
|
19
|
+
* The argument for one density knob, the factor table and its precedence are
|
|
20
|
+
* in `./density.core.ts`.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
DEFAULT_DENSITY,
|
|
25
|
+
DENSITY_FACTOR,
|
|
26
|
+
densityFieldHeight,
|
|
27
|
+
densityFontSize,
|
|
28
|
+
densitySpacingUnit,
|
|
29
|
+
resolveDensityFactor,
|
|
30
|
+
type DensityLevel,
|
|
31
|
+
type ResolvedDensity,
|
|
32
|
+
} from './density.core';
|
|
33
|
+
|
|
34
|
+
declare module '@mui/material/styles' {
|
|
35
|
+
interface Theme {
|
|
36
|
+
/** The density this theme renders at. See `@12-apps/ui/tokens`' `useDensity`. */
|
|
37
|
+
density?: ResolvedDensity;
|
|
38
|
+
}
|
|
39
|
+
interface ThemeOptions {
|
|
40
|
+
/** The density this theme renders at. See `@12-apps/ui/tokens`' `useDensity`. */
|
|
41
|
+
density?: ResolvedDensity;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The theme's resolved density — a plain theme read, not a step-shifting
|
|
47
|
+
* resolver (`size` stays hierarchy; see `./density.core.ts`). A `styleOverrides`
|
|
48
|
+
* callback already gets `{ theme }` and can read `theme.density` directly;
|
|
49
|
+
* this is for a component that needs the level in its own render logic
|
|
50
|
+
* (`Table`/`DataGrid`/`DataViews` each read it once to source their own
|
|
51
|
+
* `density` prop's default).
|
|
52
|
+
*
|
|
53
|
+
* Falls back to `resolveDensityFactor()` (`'normal'`, factor `1`) for a bare
|
|
54
|
+
* MUI theme built without `createUiTheme`/`muiThemeOptionsFrom`.
|
|
55
|
+
*/
|
|
56
|
+
export function useDensity(): ResolvedDensity {
|
|
57
|
+
return useTheme().density ?? resolveDensityFactor();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* The density factor as a MUI `ThemeOptions` fragment, for a host that builds
|
|
62
|
+
* `createTheme()` directly and never calls `createUiTheme`/`UiProvider` — the
|
|
63
|
+
* same precedence `resolveDensityFactor` gives `createUiTheme`, so the two
|
|
64
|
+
* consumption paths agree on `typography`/`spacing`/`fieldHeight`/`components`
|
|
65
|
+
* (FUT-2764's Design section), not just the first two. `fieldHeight` matters
|
|
66
|
+
* on its own: `Input`/`Select`/`Button` each read `theme.fieldHeight` directly
|
|
67
|
+
* (`Input.tsx`, `Select.tsx`, `Button.styles.ts`'s `buttonSize`), so a fragment
|
|
68
|
+
* that carried only `typography`/`spacing` left every field standing at the
|
|
69
|
+
* DEFAULT height (2.5) at every density on this path — the two paths would
|
|
70
|
+
* agree on the type scale and disagree on the one number three components key
|
|
71
|
+
* their own layout off.
|
|
72
|
+
*
|
|
73
|
+
* `components` is the matching MUI-native override (`fieldOverrides`) for a
|
|
74
|
+
* HOST's own bare `TextField`/`Select`, mirroring `muiThemeOptionsFrom`'s own
|
|
75
|
+
* `components: mergeMuiComponents(fieldOverrides(...))`. It carries ONLY the
|
|
76
|
+
* field overrides this function knows about (`MuiOutlinedInput`'s `root`,
|
|
77
|
+
* `input` and `notchedOutline`; `MuiInputLabel`'s `outlined`) — a host with
|
|
78
|
+
* ITS OWN overrides for OTHER components merges them in with
|
|
79
|
+
* `mergeMuiComponents(densityThemeOptions(density).components, hostOverrides)`,
|
|
80
|
+
* which keeps a component only ONE side touches untouched. For a component
|
|
81
|
+
* BOTH sides style, the merge is by INNER key (`root`/`input`/…): a key only
|
|
82
|
+
* one side sets survives from that side, but a key BOTH set is replaced
|
|
83
|
+
* WHOLESALE by whichever source is passed LAST — not deep-merged — so a host
|
|
84
|
+
* wanting to ADD to, say, `MuiOutlinedInput`'s `root` alongside the radius
|
|
85
|
+
* override needs to write that one key's object out in full itself.
|
|
86
|
+
*
|
|
87
|
+
* `fieldRadius` (3rd argument, optional) exists because density does NOT touch
|
|
88
|
+
* the field's CORNER — this is only for a host that already draws its OWN,
|
|
89
|
+
* non-default radius and wants `components` to match it instead of clashing;
|
|
90
|
+
* it defaults
|
|
91
|
+
* to the same {@link DEFAULT_FIELD_RADIUS} `createUiTheme` itself falls back
|
|
92
|
+
* to when a host names no `fieldRadius`, so the two paths still agree with no
|
|
93
|
+
* argument passed at all — the existing 2-argument call keeps working
|
|
94
|
+
* unchanged.
|
|
95
|
+
*
|
|
96
|
+
* **Where to spread it — the first `createTheme()` call, not a later layering
|
|
97
|
+
* one.** `createTheme(options, ...args)` (`createThemeNoVars.js`) only runs
|
|
98
|
+
* `createSpacing`/`createTypography` on `options`, the FIRST argument; every
|
|
99
|
+
* later argument is deep-merged onto the theme those two already built, with
|
|
100
|
+
* no such reprocessing. So a host with a base theme and a SECOND, layering
|
|
101
|
+
* `createTheme()` call on top of it — exactly the shape a two-theme host uses,
|
|
102
|
+
* `createTheme(outer, { palette: { ... } })` — must apply density at the
|
|
103
|
+
* FIRST call (where the base itself is built), never spread onto `outer` in
|
|
104
|
+
* the second one:
|
|
105
|
+
*
|
|
106
|
+
* ```ts
|
|
107
|
+
* // RIGHT — density goes into the base's OWN construction. The second,
|
|
108
|
+
* // layering call is unaffected: it never restates spacing/typography/
|
|
109
|
+
* // fieldHeight/components itself, so `theme.spacing`/`pxToRem`/`fieldHeight`
|
|
110
|
+
* // carry over from `base` UNCHANGED, already correctly scaled.
|
|
111
|
+
* const base = createTheme({ palette: { primary: { main }, ... }, ...densityThemeOptions('compact') });
|
|
112
|
+
* const themed = createTheme(base, { palette: { primary: { main: brand } } });
|
|
113
|
+
*
|
|
114
|
+
* // WRONG — a second, layering argument onto an ALREADY-BUILT theme is
|
|
115
|
+
* // deepmerged with no reprocessing: `spacing`/`typography.fontSize` would
|
|
116
|
+
* // overwrite the already-resolved `theme.spacing` function/`pxToRem` ratio
|
|
117
|
+
* // instead of rescaling them.
|
|
118
|
+
* createTheme(outer, { ...densityThemeOptions('compact') });
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export function densityThemeOptions(
|
|
122
|
+
density: DensityLevel | number,
|
|
123
|
+
factors?: Partial<Record<DensityLevel, number>>,
|
|
124
|
+
fieldRadius: number = DEFAULT_FIELD_RADIUS,
|
|
125
|
+
): Pick<ThemeOptions, 'typography' | 'spacing' | 'fieldHeight' | 'components'> {
|
|
126
|
+
const { factor } = resolveDensityFactor(density, factors);
|
|
127
|
+
const fieldHeight = densityFieldHeight(factor);
|
|
128
|
+
return {
|
|
129
|
+
typography: { fontSize: densityFontSize(factor) },
|
|
130
|
+
spacing: densitySpacingUnit(factor),
|
|
131
|
+
fieldHeight,
|
|
132
|
+
components: mergeMuiComponents(fieldOverrides(fieldRadius, fieldHeight)),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
@@ -44,9 +44,14 @@ export const FIELD_HEIGHT_SCALE: Record<SizeValue, number> = {
|
|
|
44
44
|
xl: 1.4,
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
/**
|
|
48
|
+
* A usable standard height: the given one when it is a positive number, a
|
|
49
|
+
* caller's own `fallback` otherwise — {@link DEFAULT_FIELD_HEIGHT} unless a
|
|
50
|
+
* density factor (`./density.core`) already worked out a denser or roomier
|
|
51
|
+
* one to fall back to instead.
|
|
52
|
+
*/
|
|
53
|
+
export function resolveFieldHeight(height: unknown, fallback: number = DEFAULT_FIELD_HEIGHT): number {
|
|
54
|
+
return typeof height === 'number' && Number.isFinite(height) && height > 0 ? height : fallback;
|
|
50
55
|
}
|
|
51
56
|
|
|
52
57
|
/** A field's height for a size, in multiples of the default font size (`rem`). */
|
|
@@ -120,23 +120,34 @@ export function fieldHeightOverrides(height: number = DEFAULT_FIELD_HEIGHT): Com
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
/**
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
123
|
+
* Several `Components<Theme>` override sets, merged per component name — a
|
|
124
|
+
* later source's `styleOverrides` win over an earlier one's for the SAME
|
|
125
|
+
* inner key, but neither erases the other's keys. A plain spread of the
|
|
126
|
+
* top-level objects would drop every override but the last source's for a
|
|
127
|
+
* component two sources both style (`fieldOverrides` below merges exactly
|
|
128
|
+
* two; density's geometry overrides, FUT-2766–2768, add more).
|
|
126
129
|
*/
|
|
127
|
-
export function
|
|
130
|
+
export function mergeMuiComponents(...sources: Components<Theme>[]): Components<Theme> {
|
|
128
131
|
type Entry = { styleOverrides?: Record<string, unknown> };
|
|
129
|
-
const
|
|
130
|
-
const
|
|
131
|
-
const names = new Set([...Object.keys(corner), ...Object.keys(tall)]);
|
|
132
|
+
const maps = sources as unknown as Record<string, Entry>[];
|
|
133
|
+
const names = new Set(maps.flatMap((map) => Object.keys(map)));
|
|
132
134
|
return Object.fromEntries(
|
|
133
135
|
[...names].map((name) => [
|
|
134
136
|
name,
|
|
135
|
-
{ styleOverrides: { ...
|
|
137
|
+
{ styleOverrides: Object.assign({}, ...maps.map((map) => map[name]?.styleOverrides)) },
|
|
136
138
|
]),
|
|
137
139
|
) as Components<Theme>;
|
|
138
140
|
}
|
|
139
141
|
|
|
142
|
+
/**
|
|
143
|
+
* Both field overrides — the corner and the height — merged per component.
|
|
144
|
+
* They meet on `MuiOutlinedInput` (`root` from the radius, `input` from the
|
|
145
|
+
* height), so a plain spread would lose one of them.
|
|
146
|
+
*/
|
|
147
|
+
export function fieldOverrides(radius: number | undefined, height: number | undefined): Components<Theme> {
|
|
148
|
+
return mergeMuiComponents(fieldRadiusOverrides(radius), fieldHeightOverrides(height));
|
|
149
|
+
}
|
|
150
|
+
|
|
140
151
|
/**
|
|
141
152
|
* THE field standard on a MUI `TextField` / `Select` / `Autocomplete`, for a
|
|
142
153
|
* composite that renders MUI's own: the field radius, the field height for
|
|
@@ -15,5 +15,16 @@ export {
|
|
|
15
15
|
fieldHeightPx,
|
|
16
16
|
fieldHeightRem,
|
|
17
17
|
} from './field-height.core';
|
|
18
|
+
// The density knob's factor table and resolver (FUT-2764); `DensityLevel`/
|
|
19
|
+
// `ResolvedDensity` are already exported above, through `./theme`. NOT
|
|
20
|
+
// `useDensity`, which reads a MUI theme and belongs to the web build.
|
|
21
|
+
export {
|
|
22
|
+
DEFAULT_DENSITY,
|
|
23
|
+
DENSITY_FACTOR,
|
|
24
|
+
densityFieldHeight,
|
|
25
|
+
densityFontSize,
|
|
26
|
+
densitySpacingUnit,
|
|
27
|
+
resolveDensityFactor,
|
|
28
|
+
} from './density.core';
|
|
18
29
|
// The named colour sets a *.metrics.ts table reads (FUT-2593); no MUI behind them.
|
|
19
30
|
export * from './ink.core';
|
package/src/tokens/scales.ts
CHANGED
|
@@ -33,7 +33,22 @@ export {
|
|
|
33
33
|
fieldHeightRem,
|
|
34
34
|
fieldOverrides,
|
|
35
35
|
fieldTextFieldStyles,
|
|
36
|
+
mergeMuiComponents,
|
|
36
37
|
} from './field-height';
|
|
38
|
+
// The theme's density knob (FUT-2764): the factor table, the resolver, the
|
|
39
|
+
// per-repository override and the standalone entry for a host that builds
|
|
40
|
+
// `createTheme()` directly. `DensityLevel`/`ResolvedDensity` are already
|
|
41
|
+
// exported above, through `./theme`.
|
|
42
|
+
export {
|
|
43
|
+
DEFAULT_DENSITY,
|
|
44
|
+
DENSITY_FACTOR,
|
|
45
|
+
densityFieldHeight,
|
|
46
|
+
densityFontSize,
|
|
47
|
+
densitySpacingUnit,
|
|
48
|
+
densityThemeOptions,
|
|
49
|
+
resolveDensityFactor,
|
|
50
|
+
useDensity,
|
|
51
|
+
} from './density';
|
|
37
52
|
|
|
38
53
|
export interface Accent {
|
|
39
54
|
main: string;
|
package/src/tokens/theme.ts
CHANGED
|
@@ -8,12 +8,23 @@ 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 {
|
|
12
|
+
densityFieldHeight,
|
|
13
|
+
densitySpacingUnit,
|
|
14
|
+
resolveDensityFactor,
|
|
15
|
+
type DensityLevel,
|
|
16
|
+
type ResolvedDensity,
|
|
17
|
+
} from './density.core';
|
|
11
18
|
import { resolveFieldHeight } from './field-height.core';
|
|
12
19
|
import { DEFAULT_FIELD_RADIUS } from './field-radius.core';
|
|
13
20
|
import { HEADING_SCALE, type HeadingLevel } from './heading-scale';
|
|
14
21
|
|
|
15
22
|
import type { SizeValue } from './vocabulary';
|
|
16
23
|
|
|
24
|
+
// Re-exported so a caller of `@12-apps/ui/tokens` (or `./theme` directly) gets
|
|
25
|
+
// the density types alongside `UiThemeOptions.density` without a second import.
|
|
26
|
+
export type { DensityLevel, ResolvedDensity };
|
|
27
|
+
|
|
17
28
|
/**
|
|
18
29
|
* THE THEME BOTH RENDERERS READ.
|
|
19
30
|
*
|
|
@@ -120,6 +131,14 @@ export interface UiTheme {
|
|
|
120
131
|
* (`./field-height.core`) is the dp a field of `size` lays out at.
|
|
121
132
|
*/
|
|
122
133
|
fieldHeight: number;
|
|
134
|
+
/**
|
|
135
|
+
* The resolved density (FUT-2764): `factor` scales the type scale, the
|
|
136
|
+
* spacing unit and `fieldHeight` together (see `./density.core`); `level`
|
|
137
|
+
* is present only when a NAMED level was given, absent for a raw numeric
|
|
138
|
+
* `density`. Always resolved — `factor` is never optional. Unset resolves
|
|
139
|
+
* to `{ level: 'normal', factor: 1 }`, today's numbers exactly.
|
|
140
|
+
*/
|
|
141
|
+
density: ResolvedDensity;
|
|
123
142
|
typography: UiTypography;
|
|
124
143
|
zIndex: { appBar: number; drawer: number; modal: number; snackbar: number; tooltip: number };
|
|
125
144
|
}
|
|
@@ -139,6 +158,26 @@ export interface UiThemeOptions {
|
|
|
139
158
|
background: Partial<UiPalette['background']>;
|
|
140
159
|
}>;
|
|
141
160
|
typography?: Partial<Pick<UiTypography, 'fontFamily' | 'monospaceFontFamily'>>;
|
|
161
|
+
/**
|
|
162
|
+
* `spacingUnit` and `fieldHeight` below still win over EVERYTHING, including
|
|
163
|
+
* this — density only supplies THEIR fallback, the same `??` pattern those
|
|
164
|
+
* two already use. Precedence, highest first: an explicit `spacingUnit` /
|
|
165
|
+
* `fieldHeight` option > a numeric `density` (used as the factor directly,
|
|
166
|
+
* no table lookup) > `densityFactors[level]` (below) > the built-in table
|
|
167
|
+
* (`compact` 0.9 / `normal` 1 / `comfortable` 1.1). No `density` at all is
|
|
168
|
+
* `'normal'`, factor `1` — today, byte-for-byte. A numeric `density` that is
|
|
169
|
+
* not a positive, finite number (`0`, negative, `NaN`, `Infinity`) falls back
|
|
170
|
+
* to `'normal'` the same way; a `densityFactors` entry that isn't falls back
|
|
171
|
+
* to the built-in table's value for that level (see `./density.core`).
|
|
172
|
+
*
|
|
173
|
+
* A named level (`density: 'compact'`, e.g. a backoffice app), no
|
|
174
|
+
* `density` at all (`'normal'`, e.g. a storefront), or a raw factor
|
|
175
|
+
* (`density: 1.15`, e.g. a kiosk app whose own hardware needs a value
|
|
176
|
+
* none of the three names fit).
|
|
177
|
+
*/
|
|
178
|
+
density?: DensityLevel | number;
|
|
179
|
+
/** A repository's own factor for a named level, overriding the built-in table above. */
|
|
180
|
+
densityFactors?: Partial<Record<DensityLevel, number>>;
|
|
142
181
|
spacingUnit?: number;
|
|
143
182
|
/** The radius every field is drawn with, in dp. Defaults to {@link DEFAULT_FIELD_RADIUS}. */
|
|
144
183
|
fieldRadius?: number;
|
|
@@ -304,7 +343,8 @@ export function createUiTheme(options: UiThemeOptions = {}): UiTheme {
|
|
|
304
343
|
const seeds = options.palette ?? {};
|
|
305
344
|
const brand = DEFAULT_BRAND[mode];
|
|
306
345
|
const defaults = MODE_DEFAULTS[mode];
|
|
307
|
-
const
|
|
346
|
+
const density = resolveDensityFactor(options.density, options.densityFactors);
|
|
347
|
+
const spacingUnit = options.spacingUnit ?? densitySpacingUnit(density.factor);
|
|
308
348
|
|
|
309
349
|
const palette: UiPalette = {
|
|
310
350
|
mode,
|
|
@@ -328,7 +368,8 @@ export function createUiTheme(options: UiThemeOptions = {}): UiTheme {
|
|
|
328
368
|
spacing: (units: number) => units * spacingUnit,
|
|
329
369
|
spacingUnit,
|
|
330
370
|
radius: { sm: 2, md: 4, lg: 8, xl: 16, full: 9999, field: options.fieldRadius ?? DEFAULT_FIELD_RADIUS },
|
|
331
|
-
fieldHeight: resolveFieldHeight(options.fieldHeight),
|
|
371
|
+
fieldHeight: resolveFieldHeight(options.fieldHeight, densityFieldHeight(density.factor)),
|
|
372
|
+
density,
|
|
332
373
|
typography: {
|
|
333
374
|
fontFamily: options.typography?.fontFamily,
|
|
334
375
|
monospaceFontFamily: options.typography?.monospaceFontFamily,
|