@12-apps/ui 6.40.0 → 6.41.1
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/dist/_internal/components/data-display/Badge/Badge.js +3 -3
- package/dist/_internal/components/data-display/Badge/Badge.styles.js +3 -3
- package/dist/_internal/components/data-display/Badge/BadgeContent.js +3 -3
- package/dist/_internal/components/data-display/CardKit/CardKebab.js +5 -5
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +5 -5
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +5 -5
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +3 -3
- package/dist/_internal/components/data-display/Carousel/Carousel.js +3 -3
- package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +3 -3
- package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +3 -3
- package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
- package/dist/_internal/components/data-display/Chart/SpecChart.js +3 -3
- package/dist/_internal/components/data-display/Chart/chart-context.js +3 -3
- package/dist/_internal/components/data-display/Chart/chart-internals.js +3 -3
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +49 -49
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +64 -64
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +7 -7
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +8 -8
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +14 -14
- package/dist/_internal/components/data-display/DataViews/base-card.js +3 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-bar-controls.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +18 -18
- package/dist/_internal/components/data-display/DataViews/data-views-columns.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-empty.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-export.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +23 -23
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +46 -46
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +29 -29
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +37 -14
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +38 -17
- package/dist/_internal/components/data-display/DataViews/data-views-number-input.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-overflow.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-search.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +17 -17
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +24 -24
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +16 -16
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +5 -5
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +7 -7
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +7 -7
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +6 -6
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +9 -9
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +4 -4
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +5 -5
- package/dist/_internal/components/data-display/MapPreview/MapSearchBar.js +3 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.body.js +3 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.js +3 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +3 -3
- package/dist/_internal/components/data-display/index.js +9 -9
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +5 -5
- package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +5 -5
- package/dist/_internal/components/feedback/index.js +8 -8
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +5 -5
- package/dist/_internal/components/form/AddressAutocomplete/AddressFallbackField.js +4 -4
- package/dist/_internal/components/form/AddressAutocomplete/AddressInputField.js +4 -4
- package/dist/_internal/components/form/AddressAutocomplete/AddressTextField.js +3 -3
- package/dist/_internal/components/form/Autocomplete/Autocomplete.js +5 -5
- package/dist/_internal/components/form/Autocomplete/Autocomplete.parts.js +3 -3
- package/dist/_internal/components/form/Autocomplete/useAutocomplete.js +1 -1
- package/dist/_internal/components/form/Button/Button.js +4 -4
- package/dist/_internal/components/form/Button/Button.styles.js +3 -3
- package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +8 -8
- package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +4 -4
- package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +4 -4
- package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +5 -5
- package/dist/_internal/components/form/CategorySelect/CategoryRows.js +4 -4
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +10 -10
- package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +3 -3
- package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +4 -4
- package/dist/_internal/components/form/CepField/CepField.js +5 -5
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
- package/dist/_internal/components/form/Command/Command.js +3 -3
- package/dist/_internal/components/form/Command/Command.styles.js +3 -3
- package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +3 -3
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +5 -5
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +7 -7
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +4 -4
- package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +5 -5
- package/dist/_internal/components/form/Input/Input.js +4 -4
- package/dist/_internal/components/form/Input/Input.styles.js +3 -3
- package/dist/_internal/components/form/InputOTP/InputOTP.js +4 -4
- package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +3 -3
- package/dist/_internal/components/form/Label/Label.js +3 -3
- package/dist/_internal/components/form/Label/Label.styles.js +3 -3
- package/dist/_internal/components/form/Menubar/Menubar.item.js +3 -3
- package/dist/_internal/components/form/Menubar/Menubar.js +3 -3
- package/dist/_internal/components/form/Menubar/Menubar.styles.js +3 -3
- package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +3 -3
- 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 +3 -3
- package/dist/_internal/components/form/RadioGroup/RadioGroup.js +5 -5
- package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +3 -3
- package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +4 -4
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +3 -3
- package/dist/_internal/components/form/Select/Select.js +3 -3
- package/dist/_internal/components/form/Switch/Switch.js +5 -5
- package/dist/_internal/components/form/Switch/Switch.parts.js +3 -3
- package/dist/_internal/components/form/Switch/Switch.styles.js +2 -2
- package/dist/_internal/components/form/Textarea/Textarea.js +3 -3
- package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +4 -4
- package/dist/_internal/components/form/Toggle/Toggle.js +4 -4
- package/dist/_internal/components/form/Toggle/Toggle.styles.js +3 -3
- package/dist/_internal/components/form/ToggleGroup/ToggleGroup.js +3 -3
- package/dist/_internal/components/form/index.js +54 -48
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +11 -11
- package/dist/_internal/components/form/total-form/Fields/CepField.js +6 -6
- package/dist/_internal/components/form/total-form/Fields/SelectField.js +4 -4
- package/dist/_internal/components/form/total-form/Fields/TextField.js +5 -5
- package/dist/_internal/components/form/total-form/Fields/ToggleField.js +4 -4
- package/dist/_internal/components/form/total-form/Fields/index.js +24 -24
- package/dist/_internal/components/form/total-form/SubmitButton.js +5 -5
- package/dist/_internal/components/index.js +156 -117
- package/dist/_internal/components/layout/Box/Box.js +6 -6
- package/dist/_internal/components/layout/Card/Card.js +2 -2
- package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +3 -3
- package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +3 -3
- package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +4 -4
- package/dist/_internal/components/layout/ContentToolbar/MultiSelectTriggers.js +3 -3
- package/dist/_internal/components/layout/ContentToolbar/SavedViewsMenu.js +3 -3
- package/dist/_internal/components/layout/ContentToolbar/SortByDropdown.js +3 -3
- package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +3 -3
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.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 +4 -4
- package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +3 -3
- package/dist/_internal/components/layout/SettingsLayout/SettingsSectionChips.js +2 -2
- package/dist/_internal/components/layout/Stack/Stack.js +7 -7
- package/dist/_internal/components/layout/TableFilter/TableFilter.js +3 -3
- package/dist/_internal/components/layout/index.js +88 -26
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +8 -8
- package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +3 -3
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +2 -2
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +4 -4
- package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +2 -2
- package/dist/_internal/components/navigation/Pagination/Pagination.js +4 -4
- package/dist/_internal/components/navigation/Pagination/PaginationParts.js +3 -3
- package/dist/_internal/components/navigation/Tabs/Tabs.js +4 -4
- package/dist/_internal/components/navigation/Tabs/Tabs.styles.js +2 -2
- package/dist/_internal/components/navigation/index.js +27 -27
- package/dist/_internal/components/typography/index.js +4 -4
- package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +3 -3
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +3 -3
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +3 -3
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +3 -3
- package/dist/_internal/components/utility/index.js +16 -16
- 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 +6 -6
- package/dist/_internal/provider/UiProvider.js +5 -5
- package/dist/_internal/provider/mui-bridge.js +4 -4
- package/dist/_internal/provider/use-ui-theme.js +5 -5
- 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 +7 -7
- package/dist/_internal/tokens/density.js +3 -3
- package/dist/_internal/tokens/field-height.js +2 -2
- package/dist/_internal/user-avatar/user-avatar.js +7 -7
- package/dist/charts.js +3 -3
- package/dist/chunk-2GTORM5E.js +1 -0
- package/dist/chunk-2GTORM5E.js.map +1 -0
- package/dist/{chunk-3PGFMBEI.js → chunk-2LKWJV65.js} +5 -5
- 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-CKPFLEOL.js → chunk-3CUWQXTG.js} +3 -3
- package/dist/{chunk-GVFPOKJW.js → chunk-3CYTVX4T.js} +5 -5
- package/dist/chunk-3DO5AJCG.js +117 -0
- package/dist/chunk-3DO5AJCG.js.map +1 -0
- package/dist/{chunk-TJPQIFI4.js → chunk-3EPA2A4M.js} +8 -8
- package/dist/{chunk-HDELNMZC.js → chunk-3MJHHPRW.js} +2 -2
- package/dist/chunk-3U7WKBMH.js +27 -0
- package/dist/chunk-3U7WKBMH.js.map +1 -0
- package/dist/{chunk-RNC574FS.js → chunk-3UEZ6NUI.js} +2 -2
- package/dist/{chunk-OXLOC6TC.js → chunk-3XS37SQT.js} +3 -3
- package/dist/{chunk-2Q5QHSU2.js → chunk-44USLRMT.js} +8 -8
- package/dist/{chunk-O7OQZJ3D.js → chunk-4GN2RLYL.js} +2 -2
- package/dist/{chunk-QUFKPCWD.js → chunk-4S2LWZ7L.js} +2 -2
- package/dist/{chunk-LPWIAVGP.js → chunk-4UVFPORR.js} +5 -5
- package/dist/{chunk-3B4YMZD5.js → chunk-4Z7GEO2R.js} +2 -2
- package/dist/{chunk-XXPEFK4V.js → chunk-53O2TNSR.js} +5 -5
- package/dist/{chunk-G3SKAI6S.js → chunk-54HTXJJ2.js} +2 -2
- package/dist/{chunk-JE6RZ5L6.js → chunk-5ZOJLYD2.js} +4 -4
- package/dist/{chunk-JDUIWHJ3.js → chunk-6H4TPEMO.js} +2 -2
- package/dist/{chunk-FYZJEME4.js → chunk-6JGATEOF.js} +3 -3
- package/dist/{chunk-ZFUOLLZS.js → chunk-6L2FKTBO.js} +5 -5
- package/dist/{chunk-BDBI4W77.js → chunk-6MD5QXXJ.js} +3 -3
- package/dist/{chunk-ODW2D5PN.js → chunk-6QYKZMEE.js} +5 -2
- package/dist/{chunk-ODW2D5PN.js.map → chunk-6QYKZMEE.js.map} +1 -1
- package/dist/{chunk-LJSKF43D.js → chunk-6TPYT3UC.js} +5 -5
- package/dist/{chunk-KZT5JC3E.js → chunk-6ZD3FI5P.js} +2 -2
- package/dist/{chunk-SBV62CSC.js → chunk-72FPUWD6.js} +2 -2
- package/dist/{chunk-L75CZ3SI.js → chunk-72S2RGWD.js} +2 -2
- package/dist/{chunk-WUFTDJ2L.js → chunk-77BKKPCI.js} +2 -2
- package/dist/{chunk-5A4XPYNK.js → chunk-7FEXRMJE.js} +2 -2
- package/dist/{chunk-AW336SO7.js → chunk-7KKMZJFT.js} +2 -2
- package/dist/{chunk-4SSWJRC4.js → chunk-7TE4TMS3.js} +3 -3
- package/dist/chunk-AEMD6JHZ.js +1 -0
- package/dist/chunk-AEMD6JHZ.js.map +1 -0
- package/dist/{chunk-5XWCKCHP.js → chunk-ALOUJ3CE.js} +4 -4
- package/dist/{chunk-UFUMYNKS.js → chunk-AWG2AJHX.js} +5 -5
- package/dist/{chunk-DDVNYVJH.js → chunk-B3QWQG62.js} +2 -2
- package/dist/{chunk-CKI33CN2.js → chunk-BA6Z52QN.js} +2 -2
- package/dist/{chunk-53TDQYA3.js → chunk-BKZERHNC.js} +4 -4
- package/dist/{chunk-RSWHKOUN.js → chunk-BM4KKGL7.js} +2 -2
- package/dist/chunk-BOWS4U6W.js +1 -0
- package/dist/chunk-BOWS4U6W.js.map +1 -0
- package/dist/{chunk-M4P7NS2L.js → chunk-BR2T72JI.js} +23 -15
- package/dist/chunk-BR2T72JI.js.map +1 -0
- package/dist/{chunk-OZGJ3YCN.js → chunk-BVSSEOLI.js} +2 -2
- package/dist/{chunk-FI6BL4UU.js → chunk-C2TERIB4.js} +2 -2
- package/dist/{chunk-DUITNU72.js → chunk-C6OVO6AT.js} +2 -2
- package/dist/{chunk-WL2S2YB3.js → chunk-CKHFYTIX.js} +4 -4
- package/dist/{chunk-GBEHJBYM.js → chunk-CLK67TNH.js} +2 -2
- package/dist/{chunk-T2HZ3GVA.js → chunk-CM2Q7IH3.js} +4 -4
- package/dist/{chunk-GE26GVHM.js → chunk-CMFJQH6A.js} +2 -2
- package/dist/{chunk-6PPHALM3.js → chunk-CMLIWUBW.js} +4 -4
- package/dist/{chunk-AU3GV6UL.js → chunk-DH5UJD2I.js} +3 -3
- package/dist/{chunk-BKT2KJ56.js → chunk-DH6SL3SY.js} +2 -2
- package/dist/{chunk-APPIPQFT.js → chunk-DH77PLFF.js} +8 -8
- package/dist/{chunk-TRTX4BDI.js → chunk-DJKVSUXH.js} +2 -2
- package/dist/{chunk-VE3P77TV.js → chunk-DLWLIPCP.js} +2 -2
- package/dist/{chunk-MWPXKZ7O.js → chunk-ERY6D2OV.js} +4 -4
- package/dist/{chunk-TJ7NQG7E.js → chunk-FBUCXTA4.js} +4 -4
- package/dist/{chunk-SE6TW72O.js → chunk-FDMQ7H22.js} +2 -2
- package/dist/{chunk-E2FMNY6B.js → chunk-FXWXBEOZ.js} +2 -2
- package/dist/{chunk-UI5O6J6R.js → chunk-FY6PONLA.js} +4 -4
- package/dist/{chunk-QUIHOPOC.js → chunk-G4TKMUOL.js} +2 -2
- package/dist/{chunk-6BS2RBW4.js → chunk-G7XHJPLO.js} +3 -3
- package/dist/{chunk-4RXPIHJG.js → chunk-GE2CCITY.js} +2 -2
- package/dist/{chunk-WRHBXOGN.js → chunk-GG62LKA3.js} +5 -5
- package/dist/{chunk-YQCRQHVU.js → chunk-GI63FQEJ.js} +4 -4
- package/dist/{chunk-WUQKXAYF.js → chunk-GPHURU2K.js} +5 -5
- package/dist/{chunk-GPT673YL.js → chunk-H72YKEGD.js} +2 -2
- package/dist/chunk-HALFOXSZ.js +1 -0
- package/dist/chunk-HALFOXSZ.js.map +1 -0
- package/dist/{chunk-AJVFSUC4.js → chunk-HFVYWHJT.js} +10 -10
- package/dist/{chunk-UP6RO2PR.js → chunk-HKBJZX3C.js} +3 -3
- package/dist/chunk-IC7GHPMK.js +22 -0
- package/dist/chunk-IC7GHPMK.js.map +1 -0
- package/dist/{chunk-V3RQFWL6.js → chunk-IUD6N52Q.js} +3 -3
- package/dist/{chunk-N4D5V3AA.js → chunk-JAGAFEZL.js} +2 -2
- package/dist/{chunk-CLTK76ZF.js → chunk-JE5GEWTG.js} +5 -5
- package/dist/{chunk-23XBBGWD.js → chunk-JFLFZLOA.js} +5 -5
- package/dist/{chunk-BLUURKCY.js → chunk-K6LNHHSH.js} +2 -2
- package/dist/{chunk-HSNOWYEE.js → chunk-K7FSTB2K.js} +2 -2
- package/dist/{chunk-SXVCXLKU.js → chunk-K7MQP2KT.js} +3 -3
- package/dist/{chunk-QQ46JX5H.js → chunk-KHOAXZW2.js} +4 -4
- package/dist/{chunk-SCVBGQFO.js → chunk-KQZGUHYZ.js} +2 -2
- package/dist/{chunk-GJ7GIGDS.js → chunk-LCWGNDTH.js} +2 -2
- package/dist/{chunk-4D2IVVHR.js → chunk-LF3EVXMF.js} +2 -2
- package/dist/{chunk-2XTBGZSR.js → chunk-LGCRL7DK.js} +2 -2
- package/dist/{chunk-WY35GCHY.js → chunk-LODMNSLR.js} +3 -3
- package/dist/{chunk-EXFX3JRN.js → chunk-M47ZOUGF.js} +4 -4
- package/dist/{chunk-AQCQ2USS.js → chunk-M65ZNPLO.js} +2 -2
- package/dist/{chunk-COUFRGD6.js → chunk-MEBQKYH4.js} +4 -4
- package/dist/{chunk-JZ5IGO5G.js → chunk-NCB4GBRL.js} +2 -2
- package/dist/{chunk-SE4WZIKD.js → chunk-NFGIA2ZV.js} +2 -2
- package/dist/{chunk-D455V3BW.js → chunk-NOLSQK4J.js} +28 -30
- package/dist/chunk-NOLSQK4J.js.map +1 -0
- package/dist/{chunk-WTXPGASQ.js → chunk-NPPJ3IJP.js} +4 -4
- package/dist/chunk-NPPJ3IJP.js.map +1 -0
- package/dist/{chunk-H772ZSAI.js → chunk-NQ7NMCRI.js} +2 -2
- package/dist/{chunk-P7JF6XT7.js → chunk-NRSVI23L.js} +2 -2
- package/dist/{chunk-FRTEU7ZO.js → chunk-NU55QUMO.js} +2 -2
- package/dist/chunk-OJUORFGO.js +87 -0
- package/dist/chunk-OJUORFGO.js.map +1 -0
- package/dist/{chunk-JB56E4XQ.js → chunk-PAICZOL5.js} +6 -6
- 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-QX3CXOJ3.js → chunk-PTONBPZL.js} +2 -2
- package/dist/chunk-Q4JWWTL4.js +36 -0
- package/dist/chunk-Q4JWWTL4.js.map +1 -0
- package/dist/{chunk-4UASV6VL.js → chunk-QDELBNL3.js} +2 -2
- package/dist/{chunk-ZE56GK5C.js → chunk-QEI5DC6S.js} +5 -5
- package/dist/chunk-QGUNUXTT.js +1 -0
- package/dist/chunk-QGUNUXTT.js.map +1 -0
- package/dist/{chunk-3UXBIUJF.js → chunk-RDFPM2AQ.js} +5 -5
- 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-BKHO4RSF.js → chunk-RZ2VZ7SL.js} +2 -2
- package/dist/{chunk-MT7QJRP7.js → chunk-S4IXC2V3.js} +3 -3
- package/dist/chunk-SALQ65SM.js +118 -0
- package/dist/chunk-SALQ65SM.js.map +1 -0
- package/dist/{chunk-XOZYUJQ5.js → chunk-SDKOOVEX.js} +5 -3
- package/dist/{chunk-XOZYUJQ5.js.map → chunk-SDKOOVEX.js.map} +1 -1
- package/dist/{chunk-5K4G2XYS.js → chunk-SNBAMWI5.js} +2 -2
- package/dist/{chunk-MKJHDHLF.js → chunk-TCNTIGMY.js} +2 -2
- package/dist/{chunk-EKM7C4X2.js → chunk-TJ3334AJ.js} +3 -3
- package/dist/{chunk-RUZVK4FV.js → chunk-TPVSHO75.js} +3 -3
- package/dist/{chunk-I72PREY7.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-DOLDAAXH.js → chunk-UT73NGRS.js} +3 -3
- package/dist/chunk-VYM2GPR6.js +47 -0
- package/dist/chunk-VYM2GPR6.js.map +1 -0
- package/dist/{chunk-BXEMC4YH.js → chunk-VYV3JOV5.js} +2 -2
- package/dist/{chunk-OTWMG7B2.js → chunk-WN5PNP6F.js} +4 -4
- package/dist/chunk-X3C3VTYS.js +85 -0
- package/dist/chunk-X3C3VTYS.js.map +1 -0
- package/dist/{chunk-HZBRXLV7.js → chunk-XB7HYOMM.js} +2 -2
- package/dist/{chunk-C6FVXX7Y.js → chunk-XBLFK2FL.js} +2 -2
- package/dist/{chunk-EDBVMLNX.js → chunk-XHA2NXLD.js} +2 -2
- package/dist/chunk-XJQNSMGA.js +10 -0
- package/dist/chunk-XJQNSMGA.js.map +1 -0
- package/dist/{chunk-ZO4NO77T.js → chunk-XO4ZUHVH.js} +2 -2
- package/dist/{chunk-OPT7X3Y6.js → chunk-XXL4PM4M.js} +2 -2
- package/dist/{chunk-3HKUOLPD.js → chunk-XZY7O7JJ.js} +4 -4
- package/dist/{chunk-743SY4WQ.js → chunk-YLXQWYOG.js} +5 -5
- package/dist/{chunk-Q33JWFSA.js → chunk-YPIVLPXF.js} +2 -2
- package/dist/{chunk-T7UUP7VD.js → chunk-YRUX7XMQ.js} +2 -2
- package/dist/{chunk-4JEXYOSN.js → chunk-YTXZUTLF.js} +2 -2
- package/dist/{chunk-V7A5ZAAF.js → chunk-YWJDUJAR.js} +3 -3
- package/dist/{chunk-ZK7YERPQ.js → chunk-Z2NN53E5.js} +2 -2
- package/dist/{chunk-CLSC36JS.js → chunk-Z4DKVLYG.js} +3 -3
- package/dist/{chunk-NFJ3VVD3.js → chunk-Z6T5SXST.js} +5 -5
- package/dist/{chunk-IITZA6U2.js → chunk-ZBVU2YWV.js} +9 -9
- package/dist/{chunk-IEWAFD6L.js → chunk-ZC5HDBQO.js} +2 -2
- package/dist/{chunk-KQS4ZJGS.js → chunk-ZGCPDA3F.js} +5 -5
- package/dist/{chunk-AHDNANID.js → chunk-ZH2SZ6B3.js} +2 -2
- package/dist/{chunk-KOX2AEFW.js → chunk-ZKWVCSAB.js} +2 -2
- package/dist/{chunk-K2U4BNHQ.js → chunk-ZNBLGS66.js} +2 -2
- package/dist/{chunk-WGUY7EIB.js → chunk-ZUME25DS.js} +5 -5
- package/dist/data-display/Badge.js +3 -3
- package/dist/data-display/CardKit.js +6 -6
- package/dist/data-display/Carousel.js +3 -3
- package/dist/data-display/Chart.js +3 -3
- package/dist/data-display/Chip.js +1 -0
- package/dist/data-display/DataViews.js +68 -68
- package/dist/data-display/FleetMap.js +9 -9
- package/dist/data-display/MapPreview.js +5 -5
- package/dist/data-display/Sheet.js +3 -3
- package/dist/en-US.js +15 -11
- package/dist/feedback/ConfirmAction.js +5 -5
- package/dist/feedback/Dialog.js +2 -2
- package/dist/feedback/NotificationStatusNotice.js +5 -5
- package/dist/form/AddressAutocomplete.js +7 -7
- package/dist/form/Autocomplete.js +5 -5
- package/dist/form/Button.js +4 -4
- package/dist/form/CategorySelect.js +10 -10
- package/dist/form/CepField.js +5 -5
- package/dist/form/CodeEditor.js +2 -2
- package/dist/form/Command.js +3 -3
- package/dist/form/CreatableSelect.js +3 -3
- package/dist/form/DateRangePicker.js +7 -7
- package/dist/form/Input.js +4 -4
- package/dist/form/InputOTP.js +4 -4
- package/dist/form/Label.js +3 -3
- package/dist/form/Menubar.js +3 -3
- package/dist/form/NumberField.js +29 -0
- package/dist/form/NumberField.js.map +1 -0
- package/dist/form/PhoneInput.js +3 -3
- package/dist/form/RadioGroup.js +5 -5
- package/dist/form/RichTextEditor.js +3 -3
- package/dist/form/Select.js +3 -3
- package/dist/form/Switch.js +5 -5
- package/dist/form/Textarea.js +3 -3
- package/dist/form/Toggle.js +4 -4
- package/dist/form/ToggleGroup.js +3 -3
- package/dist/form/total-form.js +30 -30
- package/dist/icons.js +7 -6
- package/dist/layout/Box.js +6 -6
- package/dist/layout/Card.js +2 -2
- package/dist/layout/Collapsible.js +1 -0
- package/dist/layout/ContentToolbar.js +13 -13
- package/dist/layout/ScrollArea.js +2 -2
- package/dist/layout/SettingCard.js +80 -0
- package/dist/layout/SettingCard.js.map +1 -0
- package/dist/layout/SettingsLayout.js +4 -4
- package/dist/layout/Stack.js +7 -7
- package/dist/layout/TableFilter.js +3 -3
- package/dist/locales.js +37 -23
- package/dist/locales.js.map +1 -1
- package/dist/navigation/AppHeader.js +12 -12
- package/dist/navigation/NavigationMenu.js +4 -4
- package/dist/navigation/Pagination.js +4 -4
- package/dist/navigation/Tabs.js +4 -4
- package/dist/provider.js +6 -6
- package/dist/pt-BR.js +12 -8
- package/dist/social-login-button.js +7 -7
- package/dist/tokens.js +4 -4
- package/dist/types/components/data-display/DataViews/data-views-category-pill.d.ts +6 -1
- package/dist/types/components/data-display/DataViews/data-views-category-pill.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts +0 -11
- package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-overflow.d.ts.map +1 -1
- package/dist/types/components/form/Autocomplete/useAutocomplete.d.ts +9 -0
- package/dist/types/components/form/Autocomplete/useAutocomplete.d.ts.map +1 -1
- 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/pt-BR.layout.d.ts +3 -1
- package/dist/types/pt-BR.layout.d.ts.map +1 -1
- package/dist/user-avatar.js +7 -7
- package/dist/utility/InstallPrompt.js +2 -2
- package/dist/utility/WorkflowStep.js +3 -3
- package/package.json +9 -1
- package/src/components/data-display/DataViews/data-views-category-pill.tsx +6 -1
- package/src/components/data-display/DataViews/data-views-more-fields.tsx +43 -37
- package/src/components/data-display/DataViews/data-views-overflow.ts +12 -1
- package/src/components/form/Autocomplete/useAutocomplete.ts +46 -16
- 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/pt-BR.layout.ts +16 -0
- package/dist/chunk-A7RIZOAL.js +0 -13
- package/dist/chunk-A7RIZOAL.js.map +0 -1
- package/dist/chunk-BY3JEK5T.js +0 -1
- package/dist/chunk-D455V3BW.js.map +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-M4P7NS2L.js.map +0 -1
- package/dist/chunk-WTXPGASQ.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-3PGFMBEI.js.map → chunk-2LKWJV65.js.map} +0 -0
- /package/dist/{chunk-IIUB4IOH.js.map → chunk-2XHIF3M3.js.map} +0 -0
- /package/dist/{chunk-CKPFLEOL.js.map → chunk-3CUWQXTG.js.map} +0 -0
- /package/dist/{chunk-GVFPOKJW.js.map → chunk-3CYTVX4T.js.map} +0 -0
- /package/dist/{chunk-TJPQIFI4.js.map → chunk-3EPA2A4M.js.map} +0 -0
- /package/dist/{chunk-HDELNMZC.js.map → chunk-3MJHHPRW.js.map} +0 -0
- /package/dist/{chunk-RNC574FS.js.map → chunk-3UEZ6NUI.js.map} +0 -0
- /package/dist/{chunk-OXLOC6TC.js.map → chunk-3XS37SQT.js.map} +0 -0
- /package/dist/{chunk-2Q5QHSU2.js.map → chunk-44USLRMT.js.map} +0 -0
- /package/dist/{chunk-O7OQZJ3D.js.map → chunk-4GN2RLYL.js.map} +0 -0
- /package/dist/{chunk-QUFKPCWD.js.map → chunk-4S2LWZ7L.js.map} +0 -0
- /package/dist/{chunk-LPWIAVGP.js.map → chunk-4UVFPORR.js.map} +0 -0
- /package/dist/{chunk-3B4YMZD5.js.map → chunk-4Z7GEO2R.js.map} +0 -0
- /package/dist/{chunk-XXPEFK4V.js.map → chunk-53O2TNSR.js.map} +0 -0
- /package/dist/{chunk-G3SKAI6S.js.map → chunk-54HTXJJ2.js.map} +0 -0
- /package/dist/{chunk-JE6RZ5L6.js.map → chunk-5ZOJLYD2.js.map} +0 -0
- /package/dist/{chunk-JDUIWHJ3.js.map → chunk-6H4TPEMO.js.map} +0 -0
- /package/dist/{chunk-FYZJEME4.js.map → chunk-6JGATEOF.js.map} +0 -0
- /package/dist/{chunk-ZFUOLLZS.js.map → chunk-6L2FKTBO.js.map} +0 -0
- /package/dist/{chunk-BDBI4W77.js.map → chunk-6MD5QXXJ.js.map} +0 -0
- /package/dist/{chunk-LJSKF43D.js.map → chunk-6TPYT3UC.js.map} +0 -0
- /package/dist/{chunk-KZT5JC3E.js.map → chunk-6ZD3FI5P.js.map} +0 -0
- /package/dist/{chunk-SBV62CSC.js.map → chunk-72FPUWD6.js.map} +0 -0
- /package/dist/{chunk-L75CZ3SI.js.map → chunk-72S2RGWD.js.map} +0 -0
- /package/dist/{chunk-WUFTDJ2L.js.map → chunk-77BKKPCI.js.map} +0 -0
- /package/dist/{chunk-5A4XPYNK.js.map → chunk-7FEXRMJE.js.map} +0 -0
- /package/dist/{chunk-AW336SO7.js.map → chunk-7KKMZJFT.js.map} +0 -0
- /package/dist/{chunk-4SSWJRC4.js.map → chunk-7TE4TMS3.js.map} +0 -0
- /package/dist/{chunk-5XWCKCHP.js.map → chunk-ALOUJ3CE.js.map} +0 -0
- /package/dist/{chunk-UFUMYNKS.js.map → chunk-AWG2AJHX.js.map} +0 -0
- /package/dist/{chunk-DDVNYVJH.js.map → chunk-B3QWQG62.js.map} +0 -0
- /package/dist/{chunk-CKI33CN2.js.map → chunk-BA6Z52QN.js.map} +0 -0
- /package/dist/{chunk-53TDQYA3.js.map → chunk-BKZERHNC.js.map} +0 -0
- /package/dist/{chunk-RSWHKOUN.js.map → chunk-BM4KKGL7.js.map} +0 -0
- /package/dist/{chunk-OZGJ3YCN.js.map → chunk-BVSSEOLI.js.map} +0 -0
- /package/dist/{chunk-FI6BL4UU.js.map → chunk-C2TERIB4.js.map} +0 -0
- /package/dist/{chunk-DUITNU72.js.map → chunk-C6OVO6AT.js.map} +0 -0
- /package/dist/{chunk-WL2S2YB3.js.map → chunk-CKHFYTIX.js.map} +0 -0
- /package/dist/{chunk-GBEHJBYM.js.map → chunk-CLK67TNH.js.map} +0 -0
- /package/dist/{chunk-T2HZ3GVA.js.map → chunk-CM2Q7IH3.js.map} +0 -0
- /package/dist/{chunk-GE26GVHM.js.map → chunk-CMFJQH6A.js.map} +0 -0
- /package/dist/{chunk-6PPHALM3.js.map → chunk-CMLIWUBW.js.map} +0 -0
- /package/dist/{chunk-AU3GV6UL.js.map → chunk-DH5UJD2I.js.map} +0 -0
- /package/dist/{chunk-BKT2KJ56.js.map → chunk-DH6SL3SY.js.map} +0 -0
- /package/dist/{chunk-APPIPQFT.js.map → chunk-DH77PLFF.js.map} +0 -0
- /package/dist/{chunk-TRTX4BDI.js.map → chunk-DJKVSUXH.js.map} +0 -0
- /package/dist/{chunk-VE3P77TV.js.map → chunk-DLWLIPCP.js.map} +0 -0
- /package/dist/{chunk-MWPXKZ7O.js.map → chunk-ERY6D2OV.js.map} +0 -0
- /package/dist/{chunk-TJ7NQG7E.js.map → chunk-FBUCXTA4.js.map} +0 -0
- /package/dist/{chunk-SE6TW72O.js.map → chunk-FDMQ7H22.js.map} +0 -0
- /package/dist/{chunk-E2FMNY6B.js.map → chunk-FXWXBEOZ.js.map} +0 -0
- /package/dist/{chunk-UI5O6J6R.js.map → chunk-FY6PONLA.js.map} +0 -0
- /package/dist/{chunk-QUIHOPOC.js.map → chunk-G4TKMUOL.js.map} +0 -0
- /package/dist/{chunk-6BS2RBW4.js.map → chunk-G7XHJPLO.js.map} +0 -0
- /package/dist/{chunk-4RXPIHJG.js.map → chunk-GE2CCITY.js.map} +0 -0
- /package/dist/{chunk-WRHBXOGN.js.map → chunk-GG62LKA3.js.map} +0 -0
- /package/dist/{chunk-YQCRQHVU.js.map → chunk-GI63FQEJ.js.map} +0 -0
- /package/dist/{chunk-WUQKXAYF.js.map → chunk-GPHURU2K.js.map} +0 -0
- /package/dist/{chunk-GPT673YL.js.map → chunk-H72YKEGD.js.map} +0 -0
- /package/dist/{chunk-AJVFSUC4.js.map → chunk-HFVYWHJT.js.map} +0 -0
- /package/dist/{chunk-UP6RO2PR.js.map → chunk-HKBJZX3C.js.map} +0 -0
- /package/dist/{chunk-V3RQFWL6.js.map → chunk-IUD6N52Q.js.map} +0 -0
- /package/dist/{chunk-N4D5V3AA.js.map → chunk-JAGAFEZL.js.map} +0 -0
- /package/dist/{chunk-CLTK76ZF.js.map → chunk-JE5GEWTG.js.map} +0 -0
- /package/dist/{chunk-23XBBGWD.js.map → chunk-JFLFZLOA.js.map} +0 -0
- /package/dist/{chunk-BLUURKCY.js.map → chunk-K6LNHHSH.js.map} +0 -0
- /package/dist/{chunk-HSNOWYEE.js.map → chunk-K7FSTB2K.js.map} +0 -0
- /package/dist/{chunk-SXVCXLKU.js.map → chunk-K7MQP2KT.js.map} +0 -0
- /package/dist/{chunk-QQ46JX5H.js.map → chunk-KHOAXZW2.js.map} +0 -0
- /package/dist/{chunk-SCVBGQFO.js.map → chunk-KQZGUHYZ.js.map} +0 -0
- /package/dist/{chunk-GJ7GIGDS.js.map → chunk-LCWGNDTH.js.map} +0 -0
- /package/dist/{chunk-4D2IVVHR.js.map → chunk-LF3EVXMF.js.map} +0 -0
- /package/dist/{chunk-2XTBGZSR.js.map → chunk-LGCRL7DK.js.map} +0 -0
- /package/dist/{chunk-WY35GCHY.js.map → chunk-LODMNSLR.js.map} +0 -0
- /package/dist/{chunk-EXFX3JRN.js.map → chunk-M47ZOUGF.js.map} +0 -0
- /package/dist/{chunk-AQCQ2USS.js.map → chunk-M65ZNPLO.js.map} +0 -0
- /package/dist/{chunk-COUFRGD6.js.map → chunk-MEBQKYH4.js.map} +0 -0
- /package/dist/{chunk-JZ5IGO5G.js.map → chunk-NCB4GBRL.js.map} +0 -0
- /package/dist/{chunk-SE4WZIKD.js.map → chunk-NFGIA2ZV.js.map} +0 -0
- /package/dist/{chunk-H772ZSAI.js.map → chunk-NQ7NMCRI.js.map} +0 -0
- /package/dist/{chunk-P7JF6XT7.js.map → chunk-NRSVI23L.js.map} +0 -0
- /package/dist/{chunk-FRTEU7ZO.js.map → chunk-NU55QUMO.js.map} +0 -0
- /package/dist/{chunk-JB56E4XQ.js.map → chunk-PAICZOL5.js.map} +0 -0
- /package/dist/{chunk-QX3CXOJ3.js.map → chunk-PTONBPZL.js.map} +0 -0
- /package/dist/{chunk-4UASV6VL.js.map → chunk-QDELBNL3.js.map} +0 -0
- /package/dist/{chunk-ZE56GK5C.js.map → chunk-QEI5DC6S.js.map} +0 -0
- /package/dist/{chunk-3UXBIUJF.js.map → chunk-RDFPM2AQ.js.map} +0 -0
- /package/dist/{chunk-BKHO4RSF.js.map → chunk-RZ2VZ7SL.js.map} +0 -0
- /package/dist/{chunk-MT7QJRP7.js.map → chunk-S4IXC2V3.js.map} +0 -0
- /package/dist/{chunk-5K4G2XYS.js.map → chunk-SNBAMWI5.js.map} +0 -0
- /package/dist/{chunk-MKJHDHLF.js.map → chunk-TCNTIGMY.js.map} +0 -0
- /package/dist/{chunk-EKM7C4X2.js.map → chunk-TJ3334AJ.js.map} +0 -0
- /package/dist/{chunk-RUZVK4FV.js.map → chunk-TPVSHO75.js.map} +0 -0
- /package/dist/{chunk-I72PREY7.js.map → chunk-TTJTMDLI.js.map} +0 -0
- /package/dist/{chunk-TU5EIKJA.js.map → chunk-U5SH3VRJ.js.map} +0 -0
- /package/dist/{chunk-DOLDAAXH.js.map → chunk-UT73NGRS.js.map} +0 -0
- /package/dist/{chunk-BXEMC4YH.js.map → chunk-VYV3JOV5.js.map} +0 -0
- /package/dist/{chunk-OTWMG7B2.js.map → chunk-WN5PNP6F.js.map} +0 -0
- /package/dist/{chunk-HZBRXLV7.js.map → chunk-XB7HYOMM.js.map} +0 -0
- /package/dist/{chunk-C6FVXX7Y.js.map → chunk-XBLFK2FL.js.map} +0 -0
- /package/dist/{chunk-EDBVMLNX.js.map → chunk-XHA2NXLD.js.map} +0 -0
- /package/dist/{chunk-ZO4NO77T.js.map → chunk-XO4ZUHVH.js.map} +0 -0
- /package/dist/{chunk-OPT7X3Y6.js.map → chunk-XXL4PM4M.js.map} +0 -0
- /package/dist/{chunk-3HKUOLPD.js.map → chunk-XZY7O7JJ.js.map} +0 -0
- /package/dist/{chunk-743SY4WQ.js.map → chunk-YLXQWYOG.js.map} +0 -0
- /package/dist/{chunk-Q33JWFSA.js.map → chunk-YPIVLPXF.js.map} +0 -0
- /package/dist/{chunk-T7UUP7VD.js.map → chunk-YRUX7XMQ.js.map} +0 -0
- /package/dist/{chunk-4JEXYOSN.js.map → chunk-YTXZUTLF.js.map} +0 -0
- /package/dist/{chunk-V7A5ZAAF.js.map → chunk-YWJDUJAR.js.map} +0 -0
- /package/dist/{chunk-ZK7YERPQ.js.map → chunk-Z2NN53E5.js.map} +0 -0
- /package/dist/{chunk-CLSC36JS.js.map → chunk-Z4DKVLYG.js.map} +0 -0
- /package/dist/{chunk-NFJ3VVD3.js.map → chunk-Z6T5SXST.js.map} +0 -0
- /package/dist/{chunk-IITZA6U2.js.map → chunk-ZBVU2YWV.js.map} +0 -0
- /package/dist/{chunk-IEWAFD6L.js.map → chunk-ZC5HDBQO.js.map} +0 -0
- /package/dist/{chunk-KQS4ZJGS.js.map → chunk-ZGCPDA3F.js.map} +0 -0
- /package/dist/{chunk-AHDNANID.js.map → chunk-ZH2SZ6B3.js.map} +0 -0
- /package/dist/{chunk-KOX2AEFW.js.map → chunk-ZKWVCSAB.js.map} +0 -0
- /package/dist/{chunk-K2U4BNHQ.js.map → chunk-ZNBLGS66.js.map} +0 -0
- /package/dist/{chunk-WGUY7EIB.js.map → chunk-ZUME25DS.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/DataViews/data-views-more-fields.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * ONE FIELD, RENDERED INSIDE THE \"MAIS\" PANEL.\n *\n * Split from `data-views-more-filters` at the file-size gate, along the seam\n * that was already there: that module is the trigger, the panel and its\n * footer — the chrome — and this is what goes in it.\n *\n * A field with one or two options renders FLAT: inside a panel there is no\n * space to win back, and two labelled checkboxes are faster than a dropdown\n * needing a second click. Past that — or whenever the field asks for a tree or\n * a search — it is the bar's own {@link PillControl}; see `sharesBarControl`.\n */\nimport Checkbox from \"@mui/material/Checkbox/index.js\";\n\nimport { Box } from \"../../../mui/Box\";\nimport { Text } from \"../../typography/Text\";\n\nimport { PillControl } from \"./data-views-category-pill\";\nimport type { OverflowField } from \"./data-views-overflow\";\nimport { RangeBounds } from \"./data-views-range-pill\";\nimport { isRangeSet } from \"./data-views-range-values\";\nimport type { RangeValue } from \"./data-views-types\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { fieldRadiusPx } from \"../../../tokens/field-radius\";\nimport { fieldHeight } from \"../../../tokens/field-height\";\nimport { fieldEdge } from \"../../../tokens/field-edge\";\nimport { sxRem } from \"../../../tokens/relative\";\n\n/** What each field's control needs, minus the panel's own chrome. */\nexport interface MoreFieldProps {\n pills: Record<string, string[]>;\n ranges: Record<string, RangeValue>;\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onChangeRange: (fieldId: string, range: RangeValue) => void;\n testIdPrefix: string;\n}\n\n/**\n * Above this many options a field is a DROPDOWN rather than a flat row of\n * checkboxes. Two options cost two lines and read faster laid out; a \"Cliente\"\n * with a dozen turns the panel into a scrolling wall and buries every field\n * under it, which is exactly what the overflow was meant to avoid.\n */\nconst INLINE_OPTION_LIMIT = 2;\n\n/**\n * Whether an overflowed pill keeps the SAME control it has on the bar.\n *\n * The panel used to build its own flat dropdown for every field past two\n * options, so a field's config only held while it fitted: `control:\n * \"category\"` lost its tree (subcategories flattened into one list, no\n * \"Marcar tudo\", no count footer) and `searchEnabled` lost its search, on\n * exactly the phone widths where most filters live in here. Anything the bar\n * would render as a dropdown now renders as the bar's own {@link PillControl};\n * only a plain two-option field — one that did not ask for a dropdown, a tree\n * or a search — stays a flat checkbox row, which is a panel layout rather than\n * a different control (the filter panel draws the same line).\n */\nfunction sharesBarControl<T extends Record<string, unknown>>(field: OverflowField<T>): boolean {\n const pill = field.pill;\n if (!pill) return false;\n return (\n pill.control === \"category\" ||\n pill.control === \"multiselect\" ||\n pill.searchEnabled === true ||\n pill.options.length > INLINE_OPTION_LIMIT\n );\n}\n\n/** One overflowed pill: the bar's control, or its options as checkboxes. */\nfunction OverflowPill<T extends Record<string, unknown>>({\n field,\n values,\n onTogglePill,\n onClear,\n testIdPrefix,\n}: {\n field: OverflowField<T>;\n values: string[];\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onClear: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const testId = `${testIdPrefix}-more-${field.id}`;\n if (field.pill && sharesBarControl(field)) {\n return (\n <PillControl\n fieldId={field.id}\n pill={field.pill}\n selected={values}\n onTogglePill={onTogglePill}\n onClearField={onClear}\n testIdPrefix={testIdPrefix}\n testId={testId}\n />\n );\n }\n const onToggle = (value: string, checked: boolean) => onTogglePill(field.id, value, checked);\n return (\n <Box sx={{ display: \"flex\", flexWrap: \"wrap\", gap: 0.75 }}>\n {(field.pill?.options ?? []).map((option) => {\n const checked = values.includes(option.value);\n return (\n <Box\n key={option.value}\n component=\"label\"\n data-testid={`${testId}-${option.value}`}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 0.25,\n pr: 1,\n border: 1,\n borderStyle: \"solid\",\n minHeight: fieldHeight,\n borderColor: (theme) => (checked ? theme.palette.primary.main : fieldEdge(theme)),\n bgcolor: checked ? \"action.selected\" : \"transparent\",\n borderRadius: fieldRadiusPx,\n cursor: \"pointer\",\n fontSize: sxRem(13),\n color: checked ? \"primary.main\" : \"text.secondary\",\n }}\n >\n <Checkbox\n size=\"small\"\n checked={checked}\n onChange={(event) => onToggle(option.value, event.target.checked)}\n inputProps={{ \"aria-label\": `${field.label}: ${option.label}` }}\n />\n {option.label}\n </Box>\n );\n })}\n </Box>\n );\n}\n\n\n/**\n * One overflowed range: its presets and its two bounds, as the same controls\n * the pill uses.\n *\n * The whole control DELEGATES to {@link RangeBounds} rather than being built\n * here, which is the point — this panel used to render a raw\n * `<input type=\"date\">`, so the masked `dd/mm/aaaa` field existed only while\n * the filter FITTED on the bar. The moment \"Data\" overflowed it reverted to the\n * native control the mask replaced, and a merchant on a narrow screen never saw\n * the fix at all (FUT-744). `Valor` had the twin bug: a bare `type=\"number\"`\n * plus `Number(raw)` dropped the decimal comma this panel is meant to accept.\n *\n * That also retires the intrinsic-width workaround this pair used to need — a\n * native date input reports a wide minimum (its own mask plus the picker\n * glyph), which is what made two of them refuse to shrink and scrolled the\n * panel sideways. A text input has no such minimum.\n *\n * `RangeBounds` renders the preset chips ITSELF, above the inputs. This panel\n * must NOT render its own row as well: when the delegation above landed, the\n * chips it used to draw by hand stayed behind, and \"Data\" showed Hoje/Ontem/\n * Esta semana/Este mês/Este ano twice — two rows, duplicated test ids, and half\n * the panel's height spent saying the same thing (FUT-751).\n */\nfunction OverflowRange<T extends Record<string, unknown>>({\n field,\n value,\n onChange,\n testIdPrefix,\n}: {\n field: OverflowField<T>;\n value: RangeValue;\n onChange: (range: RangeValue) => void;\n testIdPrefix: string;\n}): React.JSX.Element | null {\n // `group === \"range\"` is what selects this component, so `range` is always\n // set; the guard is for the type, not for a state the caller can reach.\n if (!field.range) return null;\n return (\n <RangeBounds\n field={field.range}\n value={value}\n onChange={onChange}\n testId={`${testIdPrefix}-more-${field.id}`}\n />\n );\n}\n\n/**\n * Whether a field has anything applied, and how to unapply it — the two shapes\n * (a pill's selected values, a range's bounds) answered in one place so the\n * group that renders them stays a renderer.\n */\nexport function fieldClearing<T extends Record<string, unknown>>({\n field,\n pills,\n ranges,\n onTogglePill,\n onChangeRange,\n}: {\n field: OverflowField<T>;\n} & Pick<MoreFieldProps, \"pills\" | \"ranges\" | \"onTogglePill\" | \"onChangeRange\">): {\n applied: boolean;\n clear: () => void;\n} {\n if (field.group === \"range\") {\n return {\n applied: isRangeSet(ranges[field.id] ?? {}),\n clear: () => onChangeRange(field.id, {}),\n };\n }\n const values = pills[field.id] ?? [];\n return {\n applied: values.length > 0,\n clear: () => values.forEach((value) => onTogglePill(field.id, value, false)),\n };\n}\n\n\n/** One labelled group in the panel: the field's name, then its control. */\nexport function MoreGroup<T extends Record<string, unknown>>({\n field,\n pills,\n ranges,\n onTogglePill,\n onChangeRange,\n testIdPrefix,\n}: {\n field: OverflowField<T>;\n} & MoreFieldProps): React.JSX.Element {\n const copy = useDataViewsCopy();\n const { applied, clear } = fieldClearing({ field, pills, ranges, onTogglePill, onChangeRange });\n return (\n <Box sx={{ mb: 1.5, \"&:last-of-type\": { mb: 0 } }}>\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1, mb: 0.5 }}>\n <Text variant=\"caption\" as=\"span\">\n <Box component=\"span\" sx={{ color: \"text.secondary\" }}>\n {field.label}\n {field.group === \"range\" && isRangeSet(ranges[field.id] ?? {}) ? \" •\" : \"\"}\n </Box>\n </Text>\n {/* The panel's equivalent of the pill's ✕. Without it a field applied\n in here could only be cleared by finding it again on the bar —\n which is where it goes the moment it becomes active, so the\n operator has to close this panel to undo what they just did. */}\n {applied && (\n <Box\n component=\"button\"\n type=\"button\"\n onClick={clear}\n data-testid={`${testIdPrefix}-more-${field.id}-clear`}\n sx={{\n ml: \"auto\",\n border: 0,\n p: 0,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n font: \"inherit\",\n fontSize: sxRem(12),\n color: \"primary.main\",\n \"&:hover\": { textDecoration: \"underline\" },\n }}\n >\n {copy.filters.clear}\n </Box>\n )}\n </Box>\n {field.group === \"pill\" ? (\n <OverflowPill\n field={field}\n values={pills[field.id] ?? []}\n onTogglePill={onTogglePill}\n onClear={() => (pills[field.id] ?? []).forEach((v) => onTogglePill(field.id, v, false))}\n testIdPrefix={testIdPrefix}\n />\n ) : (\n <OverflowRange\n field={field}\n value={ranges[field.id] ?? {}}\n onChange={(range) => onChangeRange(field.id, range)}\n testIdPrefix={testIdPrefix}\n />\n )}\n </Box>\n );\n}\n\n"],"mappings":"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","names":["default"]}
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
} from "./chunk-KHG57NAE.js";
|
|
4
4
|
import {
|
|
5
5
|
MultiSelectDropdown
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-3XS37SQT.js";
|
|
7
7
|
import {
|
|
8
8
|
CategorySelect
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ALOUJ3CE.js";
|
|
10
10
|
|
|
11
11
|
// src/components/data-display/DataViews/data-views-category-pill.tsx
|
|
12
12
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -33,10 +33,10 @@ function PillControl({
|
|
|
33
33
|
onClearField,
|
|
34
34
|
onOpenChange,
|
|
35
35
|
testIdPrefix,
|
|
36
|
+
testId = `${testIdPrefix}-filter-${fieldId}`,
|
|
36
37
|
layout = "pill"
|
|
37
38
|
}) {
|
|
38
39
|
const copy = useDataViewsCopy();
|
|
39
|
-
const testId = `${testIdPrefix}-filter-${fieldId}`;
|
|
40
40
|
if (pill.control === "category") {
|
|
41
41
|
return /* @__PURE__ */ jsx(
|
|
42
42
|
CategorySelect,
|
|
@@ -79,4 +79,4 @@ export {
|
|
|
79
79
|
emitPillDiff,
|
|
80
80
|
PillControl
|
|
81
81
|
};
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
82
|
+
//# sourceMappingURL=chunk-NPPJ3IJP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/DataViews/data-views-category-pill.tsx"],"sourcesContent":["\"use client\";\n\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { CategorySelect } from \"../../form/CategorySelect\";\nimport { MultiSelectDropdown } from \"../../layout/ContentToolbar\";\n\nimport type { FilterFieldConfig, FilterOption } from \"./data-views-types\";\n\n/**\n * Diff a whole-array selection back into per-value toggles.\n *\n * The filter state's only channel is `onTogglePill(field, value, checked)`, but\n * a tree hands back the entire selection at once. Diffing here keeps that one\n * channel the single way a pill ever changes, rather than giving the\n * hierarchical control a private path into the state.\n */\nexport function emitPillDiff(\n fieldId: string,\n before: readonly string[],\n after: readonly string[],\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void,\n): void {\n const had = new Set(before);\n const wants = new Set(after);\n after.forEach((value) => {\n if (!had.has(value)) onTogglePill(fieldId, value, true);\n });\n before.forEach((value) => {\n if (!wants.has(value)) onTogglePill(fieldId, value, false);\n });\n}\n\n/** A filter option as the category tree wants it. */\nconst toCategoryOption = (option: FilterOption) => ({\n id: option.value,\n name: option.label,\n parentId: option.parentId ?? null,\n});\n\ninterface PillControlProps<T extends Record<string, unknown>> {\n fieldId: string;\n pill: FilterFieldConfig<T>;\n selected: string[];\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onClearField: (fieldId: string) => void;\n onOpenChange?: (open: boolean) => void;\n testIdPrefix: string;\n /**\n * Overrides the `<prefix>-filter-<id>` test id — the \"Mais\" panel keys its\n * fields `<prefix>-more-<id>` so a spec can tell which surface it drove.\n */\n testId?: string;\n /** `stacked` in the filter panel, `pill` on the inline bar. */\n layout?: \"stacked\" | \"pill\";\n}\n\n/**\n * One filter pill: the hierarchical category tree, or the flat multi-select.\n *\n * A category set nests, and flattening it into one list is what made \"Massas\"\n * (mercearia) indistinguishable from \"Massas\" (pratos principais). `control:\n * \"category\"` opts a field into the tree, which shows each hit under its parent.\n *\n * {@link FilterFieldConfig.allowParentSelection} decides whether a parent row is\n * itself tickable. It is forwarded rather than fixed here because it is a\n * per-SCREEN question: a filter over a catalogue where products sit on leaves\n * wants \"the whole category\" as one click, while one whose parents are pure\n * grouping would only offer a tick that means nothing.\n */\nexport function PillControl<T extends Record<string, unknown>>({\n fieldId,\n pill,\n selected,\n onTogglePill,\n onClearField,\n onOpenChange,\n testIdPrefix,\n testId = `${testIdPrefix}-filter-${fieldId}`,\n layout = \"pill\",\n}: PillControlProps<T>): React.JSX.Element {\n const copy = useDataViewsCopy();\n if (pill.control === \"category\") {\n return (\n <CategorySelect\n copy={copy.categorySelect}\n placeholder={pill.label}\n label={layout === \"stacked\" ? pill.label : undefined}\n fullWidth={layout === \"stacked\"}\n options={pill.options.map(toCategoryOption)}\n allowParentSelection={pill.allowParentSelection ?? false}\n value={selected}\n onChange={(next) => emitPillDiff(fieldId, selected, next, onTogglePill)}\n dataTestId={testId}\n />\n );\n }\n return (\n <MultiSelectDropdown\n extraOptionsHeading={copy.filters.optionsHeading}\n clearText={copy.filters.clear}\n clearLabel={copy.filters.clearRange(pill.label)}\n label={pill.label}\n options={pill.options}\n selected={new Set(selected)}\n onToggle={(value, checked) => onTogglePill(fieldId, value, checked)}\n onClear={() => onClearField(fieldId)}\n allLabel={copy.filters.allOption}\n searchable={pill.searchEnabled ? true : undefined}\n searchPlaceholder={copy.filters.optionSearchPlaceholder}\n noResultsLabel={copy.filters.optionsEmpty}\n layout={layout}\n onOpenChange={onOpenChange}\n data-testid={testId}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;AAmFM;AAnEC,SAAS,aACd,SACA,QACA,OACA,cACM;AACN,QAAM,MAAM,IAAI,IAAI,MAAM;AAC1B,QAAM,QAAQ,IAAI,IAAI,KAAK;AAC3B,QAAM,QAAQ,CAAC,UAAU;AACvB,QAAI,CAAC,IAAI,IAAI,KAAK,EAAG,cAAa,SAAS,OAAO,IAAI;AAAA,EACxD,CAAC;AACD,SAAO,QAAQ,CAAC,UAAU;AACxB,QAAI,CAAC,MAAM,IAAI,KAAK,EAAG,cAAa,SAAS,OAAO,KAAK;AAAA,EAC3D,CAAC;AACH;AAGA,IAAM,mBAAmB,CAAC,YAA0B;AAAA,EAClD,IAAI,OAAO;AAAA,EACX,MAAM,OAAO;AAAA,EACb,UAAU,OAAO,YAAY;AAC/B;AAgCO,SAAS,YAA+C;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,GAAG,YAAY,WAAW,OAAO;AAAA,EAC1C,SAAS;AACX,GAA2C;AACzC,QAAM,OAAO,iBAAiB;AAC9B,MAAI,KAAK,YAAY,YAAY;AAC/B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,KAAK;AAAA,QACX,aAAa,KAAK;AAAA,QAClB,OAAO,WAAW,YAAY,KAAK,QAAQ;AAAA,QAC3C,WAAW,WAAW;AAAA,QACtB,SAAS,KAAK,QAAQ,IAAI,gBAAgB;AAAA,QAC1C,sBAAsB,KAAK,wBAAwB;AAAA,QACnD,OAAO;AAAA,QACP,UAAU,CAAC,SAAS,aAAa,SAAS,UAAU,MAAM,YAAY;AAAA,QACtE,YAAY;AAAA;AAAA,IACd;AAAA,EAEJ;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,qBAAqB,KAAK,QAAQ;AAAA,MAClC,WAAW,KAAK,QAAQ;AAAA,MACxB,YAAY,KAAK,QAAQ,WAAW,KAAK,KAAK;AAAA,MAC9C,OAAO,KAAK;AAAA,MACZ,SAAS,KAAK;AAAA,MACd,UAAU,IAAI,IAAI,QAAQ;AAAA,MAC1B,UAAU,CAAC,OAAO,YAAY,aAAa,SAAS,OAAO,OAAO;AAAA,MAClE,SAAS,MAAM,aAAa,OAAO;AAAA,MACnC,UAAU,KAAK,QAAQ;AAAA,MACvB,YAAY,KAAK,gBAAgB,OAAO;AAAA,MACxC,mBAAmB,KAAK,QAAQ;AAAA,MAChC,gBAAgB,KAAK,QAAQ;AAAA,MAC7B;AAAA,MACA;AAAA,MACA,eAAa;AAAA;AAAA,EACf;AAEJ;","names":[]}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-6DPAWXZ3.js";
|
|
10
10
|
import {
|
|
11
11
|
Button
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-K6LNHHSH.js";
|
|
13
13
|
import {
|
|
14
14
|
rem,
|
|
15
15
|
sxRem
|
|
@@ -166,4 +166,4 @@ export {
|
|
|
166
166
|
togglePillValues,
|
|
167
167
|
cardGridTracks
|
|
168
168
|
};
|
|
169
|
-
//# sourceMappingURL=chunk-
|
|
169
|
+
//# sourceMappingURL=chunk-NQ7NMCRI.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-U3DBQXPI.js";
|
|
4
4
|
import {
|
|
5
5
|
Button
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-K6LNHHSH.js";
|
|
7
7
|
|
|
8
8
|
// src/components/data-display/CardKit/CardKebab.tsx
|
|
9
9
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -25,4 +25,4 @@ function CardKebab({
|
|
|
25
25
|
export {
|
|
26
26
|
CardKebab
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# sourceMappingURL=chunk-NRSVI23L.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-4XK6JQ4D.js";
|
|
4
4
|
import {
|
|
5
5
|
Input
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SDKOOVEX.js";
|
|
7
7
|
import {
|
|
8
8
|
FormControl,
|
|
9
9
|
FormLabel,
|
|
@@ -38,4 +38,4 @@ function TextField({ name, label, type = "text", placeholder }) {
|
|
|
38
38
|
export {
|
|
39
39
|
TextField
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=chunk-
|
|
41
|
+
//# sourceMappingURL=chunk-NU55QUMO.js.map
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SettingGroupContext
|
|
3
|
+
} from "./chunk-XJQNSMGA.js";
|
|
4
|
+
import {
|
|
5
|
+
useAsyncSwitch
|
|
6
|
+
} from "./chunk-SALQ65SM.js";
|
|
7
|
+
import {
|
|
8
|
+
SettingSwitchBlock,
|
|
9
|
+
useSettingSwitchIds
|
|
10
|
+
} from "./chunk-RDZGXJOD.js";
|
|
11
|
+
import {
|
|
12
|
+
partTestId
|
|
13
|
+
} from "./chunk-PEOOCQ2T.js";
|
|
14
|
+
import {
|
|
15
|
+
dependentsStyles,
|
|
16
|
+
hintStyles,
|
|
17
|
+
surfaceStyles,
|
|
18
|
+
withCallerSx
|
|
19
|
+
} from "./chunk-3DO5AJCG.js";
|
|
20
|
+
import {
|
|
21
|
+
Icon
|
|
22
|
+
} from "./chunk-JAGAFEZL.js";
|
|
23
|
+
|
|
24
|
+
// src/components/layout/SettingCard/SettingGroup.tsx
|
|
25
|
+
import Box from "@mui/material/Box/index.js";
|
|
26
|
+
import { useTheme } from "@mui/material/styles/index.js";
|
|
27
|
+
import { forwardRef, useId, useMemo } from "react";
|
|
28
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
29
|
+
var SettingGroup = forwardRef(function SettingGroup2(props, ref) {
|
|
30
|
+
const {
|
|
31
|
+
checked,
|
|
32
|
+
onChange,
|
|
33
|
+
copy,
|
|
34
|
+
formatError,
|
|
35
|
+
inactiveHint,
|
|
36
|
+
children,
|
|
37
|
+
disabled = false,
|
|
38
|
+
dataTestId,
|
|
39
|
+
className,
|
|
40
|
+
sx
|
|
41
|
+
} = props;
|
|
42
|
+
const theme = useTheme();
|
|
43
|
+
const ids = useSettingSwitchIds();
|
|
44
|
+
const hintId = `${useId()}-hint`;
|
|
45
|
+
const state = useAsyncSwitch({ checked, onChange, formatError, fallback: copy.saveFailed });
|
|
46
|
+
const active = checked && state.shown && !disabled;
|
|
47
|
+
const context = useMemo(() => ({ inactive: !active }), [active]);
|
|
48
|
+
return /* @__PURE__ */ jsxs(
|
|
49
|
+
Box,
|
|
50
|
+
{
|
|
51
|
+
component: "section",
|
|
52
|
+
ref,
|
|
53
|
+
"aria-labelledby": ids.titleId,
|
|
54
|
+
"aria-busy": state.saving || void 0,
|
|
55
|
+
"data-active": active,
|
|
56
|
+
"data-testid": dataTestId,
|
|
57
|
+
className,
|
|
58
|
+
sx: withCallerSx((t) => surfaceStyles(t, false), sx),
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ jsx(SettingSwitchBlock, { ...props, disabled, ids, state }),
|
|
61
|
+
!active && /* @__PURE__ */ jsxs(Box, { component: "p", id: hintId, sx: hintStyles(theme), "data-testid": partTestId(dataTestId, "hint"), children: [
|
|
62
|
+
/* @__PURE__ */ jsx(Icon, { name: "InfoOutlined", size: "xs" }),
|
|
63
|
+
/* @__PURE__ */ jsx("span", { children: inactiveHint })
|
|
64
|
+
] }),
|
|
65
|
+
/* @__PURE__ */ jsx(
|
|
66
|
+
Box,
|
|
67
|
+
{
|
|
68
|
+
role: "group",
|
|
69
|
+
"aria-labelledby": ids.titleId,
|
|
70
|
+
"aria-describedby": active ? void 0 : hintId,
|
|
71
|
+
"aria-disabled": active ? void 0 : true,
|
|
72
|
+
inert: !active,
|
|
73
|
+
sx: dependentsStyles(theme, active),
|
|
74
|
+
"data-testid": partTestId(dataTestId, "dependents"),
|
|
75
|
+
children: /* @__PURE__ */ jsx(SettingGroupContext.Provider, { value: context, children })
|
|
76
|
+
}
|
|
77
|
+
)
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
});
|
|
82
|
+
SettingGroup.displayName = "SettingGroup";
|
|
83
|
+
|
|
84
|
+
export {
|
|
85
|
+
SettingGroup
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=chunk-OJUORFGO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/SettingCard/SettingGroup.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport { forwardRef, useId, useMemo } from 'react';\n\nimport { Icon } from '../../../icons';\n\nimport { useAsyncSwitch } from './SettingCard.hooks';\nimport { partTestId } from './SettingCard.parts';\nimport { dependentsStyles, hintStyles, surfaceStyles, withCallerSx } from './SettingCard.styles';\nimport type { SettingGroupProps } from './SettingCard.types';\nimport { SettingGroupContext } from './SettingGroup.context';\nimport { SettingSwitchBlock, useSettingSwitchIds } from './SettingSwitch';\n\n/**\n * ONE subject: a main switch, and the settings that only mean something while\n * it is on, indented beneath it.\n *\n * With the main switch off the dependent rows stay where they are — dimmed,\n * `inert`, and explained by `inactiveHint` — rather than disappearing. A\n * reader deciding whether to turn a feature on is helped by seeing what it\n * would let them configure, and a layout that jumps when a switch flips moves\n * the thing they were about to press.\n *\n * The rows are active only while the main switch is on AND saved: turning it\n * on lights them once the save lands; turning it off dims them at once.\n *\n * Several subjects are several cards, never one group — see `SettingGroup.md`.\n */\nexport const SettingGroup = forwardRef<HTMLElement, SettingGroupProps>(function SettingGroup(props, ref) {\n const {\n checked, onChange, copy, formatError, inactiveHint, children, disabled = false, dataTestId, className, sx,\n } = props;\n const theme = useTheme();\n const ids = useSettingSwitchIds();\n const hintId = `${useId()}-hint`;\n const state = useAsyncSwitch({ checked, onChange, formatError, fallback: copy.saveFailed });\n const active = checked && state.shown && !disabled;\n const context = useMemo(() => ({ inactive: !active }), [active]);\n\n return (\n <Box\n component=\"section\"\n ref={ref}\n aria-labelledby={ids.titleId}\n aria-busy={state.saving || undefined}\n data-active={active}\n data-testid={dataTestId}\n className={className}\n sx={withCallerSx((t) => surfaceStyles(t, false), sx)}\n >\n <SettingSwitchBlock {...props} disabled={disabled} ids={ids} state={state} />\n {!active && (\n <Box component=\"p\" id={hintId} sx={hintStyles(theme)} data-testid={partTestId(dataTestId, 'hint')}>\n <Icon name=\"InfoOutlined\" size=\"xs\" />\n <span>{inactiveHint}</span>\n </Box>\n )}\n <Box\n role=\"group\"\n aria-labelledby={ids.titleId}\n aria-describedby={active ? undefined : hintId}\n aria-disabled={active ? undefined : true}\n inert={!active}\n sx={dependentsStyles(theme, active)}\n data-testid={partTestId(dataTestId, 'dependents')}\n >\n <SettingGroupContext.Provider value={context}>{children}</SettingGroupContext.Provider>\n </Box>\n </Box>\n );\n});\n\nSettingGroup.displayName = 'SettingGroup';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,SAAS,gBAAgB;AACzB,SAAS,YAAY,OAAO,eAAe;AAgDrC,cAEE,YAFF;AAtBC,IAAM,eAAe,WAA2C,SAASA,cAAa,OAAO,KAAK;AACvG,QAAM;AAAA,IACJ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAM;AAAA,IAAa;AAAA,IAAc;AAAA,IAAU,WAAW;AAAA,IAAO;AAAA,IAAY;AAAA,IAAW;AAAA,EACzG,IAAI;AACJ,QAAM,QAAQ,SAAS;AACvB,QAAM,MAAM,oBAAoB;AAChC,QAAM,SAAS,GAAG,MAAM,CAAC;AACzB,QAAM,QAAQ,eAAe,EAAE,SAAS,UAAU,aAAa,UAAU,KAAK,WAAW,CAAC;AAC1F,QAAM,SAAS,WAAW,MAAM,SAAS,CAAC;AAC1C,QAAM,UAAU,QAAQ,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC;AAE/D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV;AAAA,MACA,mBAAiB,IAAI;AAAA,MACrB,aAAW,MAAM,UAAU;AAAA,MAC3B,eAAa;AAAA,MACb,eAAa;AAAA,MACb;AAAA,MACA,IAAI,aAAa,CAAC,MAAM,cAAc,GAAG,KAAK,GAAG,EAAE;AAAA,MAEnD;AAAA,4BAAC,sBAAoB,GAAG,OAAO,UAAoB,KAAU,OAAc;AAAA,QAC1E,CAAC,UACA,qBAAC,OAAI,WAAU,KAAI,IAAI,QAAQ,IAAI,WAAW,KAAK,GAAG,eAAa,WAAW,YAAY,MAAM,GAC9F;AAAA,8BAAC,QAAK,MAAK,gBAAe,MAAK,MAAK;AAAA,UACpC,oBAAC,UAAM,wBAAa;AAAA,WACtB;AAAA,QAEF;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,mBAAiB,IAAI;AAAA,YACrB,oBAAkB,SAAS,SAAY;AAAA,YACvC,iBAAe,SAAS,SAAY;AAAA,YACpC,OAAO,CAAC;AAAA,YACR,IAAI,iBAAiB,OAAO,MAAM;AAAA,YAClC,eAAa,WAAW,YAAY,YAAY;AAAA,YAEhD,8BAAC,oBAAoB,UAApB,EAA6B,OAAO,SAAU,UAAS;AAAA;AAAA,QAC1D;AAAA;AAAA;AAAA,EACF;AAEJ,CAAC;AAED,aAAa,cAAc;","names":["SettingGroup"]}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
RichTextEditorToolbar
|
|
3
|
-
} from "./chunk-WVZBYTIK.js";
|
|
4
1
|
import {
|
|
5
2
|
useRichTextEditor
|
|
6
3
|
} from "./chunk-EUACQR6N.js";
|
|
7
4
|
import {
|
|
8
|
-
|
|
9
|
-
} from "./chunk-
|
|
5
|
+
RichTextEditorToolbar
|
|
6
|
+
} from "./chunk-WVZBYTIK.js";
|
|
10
7
|
import {
|
|
11
8
|
fieldEdge
|
|
12
9
|
} from "./chunk-7FDU3FIN.js";
|
|
10
|
+
import {
|
|
11
|
+
fieldRadiusPx
|
|
12
|
+
} from "./chunk-GDN2LUTZ.js";
|
|
13
13
|
import {
|
|
14
14
|
rem
|
|
15
15
|
} from "./chunk-YKCAJ2TN.js";
|
|
@@ -174,4 +174,4 @@ export {
|
|
|
174
174
|
RichTextEditor,
|
|
175
175
|
RichTextEditor_default
|
|
176
176
|
};
|
|
177
|
-
//# sourceMappingURL=chunk-
|
|
177
|
+
//# sourceMappingURL=chunk-PAICZOL5.js.map
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import {
|
|
2
|
+
errorStyles,
|
|
3
|
+
headerStyles,
|
|
4
|
+
iconStyles,
|
|
5
|
+
titleStyles
|
|
6
|
+
} from "./chunk-3DO5AJCG.js";
|
|
7
|
+
import {
|
|
8
|
+
SETTING_CARD
|
|
9
|
+
} from "./chunk-IC7GHPMK.js";
|
|
10
|
+
import {
|
|
11
|
+
Collapsible
|
|
12
|
+
} from "./chunk-JYWF76Z5.js";
|
|
13
|
+
import {
|
|
14
|
+
Chip
|
|
15
|
+
} from "./chunk-OZPLAOI4.js";
|
|
16
|
+
import {
|
|
17
|
+
Icon
|
|
18
|
+
} from "./chunk-JAGAFEZL.js";
|
|
19
|
+
import {
|
|
20
|
+
Button
|
|
21
|
+
} from "./chunk-K6LNHHSH.js";
|
|
22
|
+
import {
|
|
23
|
+
BUTTON_SIZES
|
|
24
|
+
} from "./chunk-LN46DSMF.js";
|
|
25
|
+
import {
|
|
26
|
+
rem
|
|
27
|
+
} from "./chunk-YKCAJ2TN.js";
|
|
28
|
+
|
|
29
|
+
// src/components/layout/SettingCard/SettingCard.parts.tsx
|
|
30
|
+
import Box from "@mui/material/Box/index.js";
|
|
31
|
+
import CircularProgress from "@mui/material/CircularProgress/index.js";
|
|
32
|
+
import { useTheme } from "@mui/material/styles/index.js";
|
|
33
|
+
import { useId, useState } from "react";
|
|
34
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
35
|
+
var partTestId = (root, part) => root ? `${root}-${part}` : void 0;
|
|
36
|
+
var SettingHeader = ({
|
|
37
|
+
titleId,
|
|
38
|
+
title,
|
|
39
|
+
headingLevel,
|
|
40
|
+
icon,
|
|
41
|
+
status,
|
|
42
|
+
trailing,
|
|
43
|
+
labelFor,
|
|
44
|
+
dataTestId
|
|
45
|
+
}) => {
|
|
46
|
+
const theme = useTheme();
|
|
47
|
+
return /* @__PURE__ */ jsxs(Box, { sx: headerStyles(theme), children: [
|
|
48
|
+
icon && /* @__PURE__ */ jsx(Box, { component: "span", "aria-hidden": true, sx: iconStyles(theme), children: icon }),
|
|
49
|
+
/* @__PURE__ */ jsxs(Box, { sx: { display: "flex", alignItems: "center", flexWrap: "wrap", gap: 1, minWidth: 0, flex: 1 }, children: [
|
|
50
|
+
/* @__PURE__ */ jsx(
|
|
51
|
+
Box,
|
|
52
|
+
{
|
|
53
|
+
component: labelFor ? "label" : headingLevel,
|
|
54
|
+
id: titleId,
|
|
55
|
+
htmlFor: labelFor,
|
|
56
|
+
sx: { ...titleStyles(theme), ...labelFor ? { cursor: "pointer" } : {} },
|
|
57
|
+
"data-testid": partTestId(dataTestId, "title"),
|
|
58
|
+
children: title
|
|
59
|
+
}
|
|
60
|
+
),
|
|
61
|
+
status && /* @__PURE__ */ jsx(
|
|
62
|
+
Chip,
|
|
63
|
+
{
|
|
64
|
+
label: status.label,
|
|
65
|
+
color: status.color ?? "neutral",
|
|
66
|
+
size: "sm",
|
|
67
|
+
variant: "outlined",
|
|
68
|
+
dataTestId: partTestId(dataTestId, "status")
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
] }),
|
|
72
|
+
trailing
|
|
73
|
+
] });
|
|
74
|
+
};
|
|
75
|
+
var SaveError = ({
|
|
76
|
+
id,
|
|
77
|
+
message,
|
|
78
|
+
dataTestId
|
|
79
|
+
}) => {
|
|
80
|
+
const theme = useTheme();
|
|
81
|
+
if (!message) return null;
|
|
82
|
+
return /* @__PURE__ */ jsx(Box, { component: "p", id, role: "alert", sx: errorStyles(theme), "data-testid": partTestId(dataTestId, "error"), children: message });
|
|
83
|
+
};
|
|
84
|
+
var PendingSpinner = ({ dataTestId }) => {
|
|
85
|
+
const theme = useTheme();
|
|
86
|
+
return /* @__PURE__ */ jsx(
|
|
87
|
+
CircularProgress,
|
|
88
|
+
{
|
|
89
|
+
size: rem(theme, SETTING_CARD.spinnerSize),
|
|
90
|
+
color: "inherit",
|
|
91
|
+
"aria-hidden": true,
|
|
92
|
+
"data-testid": partTestId(dataTestId, "saving")
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
};
|
|
96
|
+
var LearnMore = ({ label, children, dataTestId }) => {
|
|
97
|
+
const [expanded, setExpanded] = useState(false);
|
|
98
|
+
const regionId = useId();
|
|
99
|
+
const theme = useTheme();
|
|
100
|
+
return (
|
|
101
|
+
// Pulled out by the button's own padding, so the words line up with the form above.
|
|
102
|
+
/* @__PURE__ */ jsxs(Box, { sx: { marginLeft: `-${rem(theme, BUTTON_SIZES.sm.paddingHorizontal)}` }, children: [
|
|
103
|
+
/* @__PURE__ */ jsx(
|
|
104
|
+
Button,
|
|
105
|
+
{
|
|
106
|
+
variant: "text",
|
|
107
|
+
size: "sm",
|
|
108
|
+
"aria-expanded": expanded,
|
|
109
|
+
"aria-controls": regionId,
|
|
110
|
+
onClick: () => setExpanded((was) => !was),
|
|
111
|
+
icon: /* @__PURE__ */ jsx(
|
|
112
|
+
Box,
|
|
113
|
+
{
|
|
114
|
+
component: "span",
|
|
115
|
+
sx: {
|
|
116
|
+
display: "inline-flex",
|
|
117
|
+
transform: expanded ? "rotate(180deg)" : "none",
|
|
118
|
+
transition: theme.transitions.create("transform")
|
|
119
|
+
},
|
|
120
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "ExpandMore", size: "xs" })
|
|
121
|
+
}
|
|
122
|
+
),
|
|
123
|
+
iconPosition: "right",
|
|
124
|
+
dataTestId: partTestId(dataTestId, "learn-more"),
|
|
125
|
+
children: label
|
|
126
|
+
}
|
|
127
|
+
),
|
|
128
|
+
/* @__PURE__ */ jsx(Collapsible, { open: expanded, keepMounted: true, sx: { marginLeft: rem(theme, BUTTON_SIZES.sm.paddingHorizontal) }, dataTestId: partTestId(dataTestId, "learn-more-content"), children: /* @__PURE__ */ jsx(Box, { id: regionId, sx: { ...theme.typography.body2, color: "text.secondary", pt: 1 }, children }) })
|
|
129
|
+
] })
|
|
130
|
+
);
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export {
|
|
134
|
+
partTestId,
|
|
135
|
+
SettingHeader,
|
|
136
|
+
SaveError,
|
|
137
|
+
PendingSpinner,
|
|
138
|
+
LearnMore
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=chunk-PEOOCQ2T.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/SettingCard/SettingCard.parts.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React, { useId, useState } from 'react';\n\nimport { Icon } from '../../../icons';\nimport { rem } from '../../../tokens/relative';\nimport { Chip } from '../../data-display/Chip';\nimport { Button } from '../../form/Button';\nimport { BUTTON_SIZES } from '../../form/Button/Button.metrics';\nimport { Collapsible } from '../Collapsible';\n\nimport { SETTING_CARD } from './SettingCard.metrics';\nimport { errorStyles, headerStyles, iconStyles, titleStyles } from './SettingCard.styles';\nimport type { SettingHeadingLevel, SettingStatus } from './SettingCard.types';\n\n/** `<root>-<part>` when the host gave a root test id, else nothing. */\nexport const partTestId = (root: string | undefined, part: string): string | undefined =>\n root ? `${root}-${part}` : undefined;\n\ninterface HeaderProps {\n titleId: string;\n title: string;\n headingLevel: SettingHeadingLevel;\n icon?: React.ReactNode;\n status?: SettingStatus;\n /** Rendered at the row's far end — the Edit trigger, or a switch. */\n trailing?: React.ReactNode;\n /** Renders the title as a `<label>` for this control instead of a heading. */\n labelFor?: string;\n dataTestId?: string;\n}\n\n/**\n * Icon, title, status pill, and whatever the row ends with.\n *\n * A switch card's title is the switch's `<label>`, so the words are both its\n * accessible name and a tap target far larger than the track. An editable\n * card's title is a heading, so the page outline lists every setting.\n */\nexport const SettingHeader: React.FC<HeaderProps> = ({\n titleId,\n title,\n headingLevel,\n icon,\n status,\n trailing,\n labelFor,\n dataTestId,\n}) => {\n const theme = useTheme();\n return (\n <Box sx={headerStyles(theme)}>\n {icon && (\n <Box component=\"span\" aria-hidden sx={iconStyles(theme)}>\n {icon}\n </Box>\n )}\n <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: 1, minWidth: 0, flex: 1 }}>\n <Box\n component={labelFor ? 'label' : headingLevel}\n id={titleId}\n htmlFor={labelFor}\n sx={{ ...titleStyles(theme), ...(labelFor ? { cursor: 'pointer' } : {}) }}\n data-testid={partTestId(dataTestId, 'title')}\n >\n {title}\n </Box>\n {status && (\n <Chip\n label={status.label}\n color={status.color ?? 'neutral'}\n size=\"sm\"\n variant=\"outlined\"\n dataTestId={partTestId(dataTestId, 'status')}\n />\n )}\n </Box>\n {trailing}\n </Box>\n );\n};\n\n/**\n * The failure line. `role=\"alert\"` so it is announced the moment it appears,\n * without anyone having to move focus to find it.\n */\nexport const SaveError: React.FC<{ id: string; message: string | null; dataTestId?: string }> = ({\n id,\n message,\n dataTestId,\n}) => {\n const theme = useTheme();\n if (!message) return null;\n return (\n <Box component=\"p\" id={id} role=\"alert\" sx={errorStyles(theme)} data-testid={partTestId(dataTestId, 'error')}>\n {message}\n </Box>\n );\n};\n\n/** The spinner that rides beside a pending control; decorative — the words are announced separately. */\nexport const PendingSpinner: React.FC<{ dataTestId?: string }> = ({ dataTestId }) => {\n const theme = useTheme();\n return (\n <CircularProgress\n size={rem(theme, SETTING_CARD.spinnerSize)}\n color=\"inherit\"\n aria-hidden\n data-testid={partTestId(dataTestId, 'saving')}\n />\n );\n};\n\n/**\n * The \"learn more\" disclosure: a text button that owns `aria-expanded`, and\n * the collapsible region it controls. Closed by default — it is the longer\n * explanation, and the form is what the reader came for.\n */\nexport const LearnMore: React.FC<{\n label: string;\n children: React.ReactNode;\n dataTestId?: string;\n}> = ({ label, children, dataTestId }) => {\n const [expanded, setExpanded] = useState(false);\n const regionId = useId();\n const theme = useTheme();\n return (\n // Pulled out by the button's own padding, so the words line up with the form above.\n <Box sx={{ marginLeft: `-${rem(theme, BUTTON_SIZES.sm.paddingHorizontal)}` }}>\n <Button\n variant=\"text\"\n size=\"sm\"\n aria-expanded={expanded}\n aria-controls={regionId}\n onClick={() => setExpanded((was) => !was)}\n icon={\n <Box\n component=\"span\"\n sx={{\n display: 'inline-flex',\n transform: expanded ? 'rotate(180deg)' : 'none',\n transition: theme.transitions.create('transform'),\n }}\n >\n <Icon name=\"ExpandMore\" size=\"xs\" />\n </Box>\n }\n iconPosition=\"right\"\n dataTestId={partTestId(dataTestId, 'learn-more')}\n >\n {label}\n </Button>\n {/* Kept mounted so `aria-controls` always names an element that exists. */}\n <Collapsible open={expanded} keepMounted sx={{ marginLeft: rem(theme, BUTTON_SIZES.sm.paddingHorizontal) }} dataTestId={partTestId(dataTestId, 'learn-more-content')}>\n <Box id={regionId} sx={{ ...theme.typography.body2, color: 'text.secondary', pt: 1 }}>\n {children}\n </Box>\n </Collapsible>\n </Box>\n );\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=chunk-PGGGKYWG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
asFieldSize,
|
|
6
6
|
fieldTextFieldStyles
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-M47ZOUGF.js";
|
|
8
8
|
import {
|
|
9
9
|
rem,
|
|
10
10
|
sxRem
|
|
@@ -73,4 +73,4 @@ export {
|
|
|
73
73
|
ItemsPerPageSelect,
|
|
74
74
|
PageInfo
|
|
75
75
|
};
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
76
|
+
//# sourceMappingURL=chunk-PTONBPZL.js.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// src/components/form/NumberField/NumberField.helpers.ts
|
|
2
|
+
var MAX_DIGITS = 15;
|
|
3
|
+
function digitsOf(raw) {
|
|
4
|
+
return raw.replace(/\D+/g, "").slice(0, MAX_DIGITS);
|
|
5
|
+
}
|
|
6
|
+
function parseDigits(raw) {
|
|
7
|
+
const digits = digitsOf(raw);
|
|
8
|
+
return digits === "" ? null : Number(digits);
|
|
9
|
+
}
|
|
10
|
+
function formatValue(value) {
|
|
11
|
+
return value === null || !Number.isFinite(value) ? "" : String(value);
|
|
12
|
+
}
|
|
13
|
+
function clamp(value, { min, max }) {
|
|
14
|
+
if (max !== void 0 && value > max) return max;
|
|
15
|
+
if (min !== void 0 && value < min) return min;
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
function stepValue(value, direction, step, bounds) {
|
|
19
|
+
if (value === null) return clamp(bounds.min ?? 0, bounds);
|
|
20
|
+
return clamp(value + direction * step, bounds);
|
|
21
|
+
}
|
|
22
|
+
function isRefusedKey(event) {
|
|
23
|
+
if (event.ctrlKey || event.metaKey || event.altKey) return false;
|
|
24
|
+
return event.key.length === 1 && !/\d/.test(event.key);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export {
|
|
28
|
+
MAX_DIGITS,
|
|
29
|
+
digitsOf,
|
|
30
|
+
parseDigits,
|
|
31
|
+
formatValue,
|
|
32
|
+
clamp,
|
|
33
|
+
stepValue,
|
|
34
|
+
isRefusedKey
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=chunk-Q4JWWTL4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/NumberField/NumberField.helpers.ts"],"sourcesContent":["/**\n * The pure half of `NumberField`: what a keystroke may add, what a string of\n * digits is worth, and where an arrow key lands. Kept apart from the component\n * so every rule is a plain function a unit test can hold.\n */\n\n/**\n * The most digits the field keeps. Fifteen is the longest run that is always\n * a safe integer (`Number.MAX_SAFE_INTEGER` has sixteen, but not every\n * sixteen-digit number is below it), so a pasted serial number can never turn\n * into a rounded float.\n */\nexport const MAX_DIGITS = 15;\n\nexport interface NumberBounds {\n min?: number;\n max?: number;\n}\n\n/** Everything that is not a digit, removed; then cut to {@link MAX_DIGITS}. */\nexport function digitsOf(raw: string): string {\n return raw.replace(/\\D+/g, '').slice(0, MAX_DIGITS);\n}\n\n/**\n * What the field's text is worth. An empty field is `null` — never `0`, and\n * never `NaN` — so \"cleared\" and \"zero\" stay two different answers.\n */\nexport function parseDigits(raw: string): number | null {\n const digits = digitsOf(raw);\n return digits === '' ? null : Number(digits);\n}\n\n/** The text a value shows as. */\nexport function formatValue(value: number | null): string {\n return value === null || !Number.isFinite(value) ? '' : String(value);\n}\n\n/** `value`, held inside whichever bounds are set. */\nexport function clamp(value: number, { min, max }: NumberBounds): number {\n if (max !== undefined && value > max) return max;\n if (min !== undefined && value < min) return min;\n return value;\n}\n\n/**\n * Where ArrowUp (`+1`) or ArrowDown (`-1`) takes the value.\n *\n * From empty, either arrow lands on the floor (`min`, else 0) rather than\n * stepping past it: the first press says \"give me a number\", and the floor is\n * the only one both directions agree on.\n */\nexport function stepValue(\n value: number | null,\n direction: 1 | -1,\n step: number,\n bounds: NumberBounds,\n): number {\n if (value === null) return clamp(bounds.min ?? 0, bounds);\n return clamp(value + direction * step, bounds);\n}\n\n/**\n * A key that would type a character the field refuses. Shortcuts (Ctrl/Cmd +\n * a letter — copy, paste, select all) and the named keys (`Backspace`,\n * `ArrowLeft`, `Tab`) are left alone: only a single printable character that\n * is not a digit is blocked.\n */\nexport function isRefusedKey(event: {\n key: string;\n ctrlKey: boolean;\n metaKey: boolean;\n altKey: boolean;\n}): boolean {\n if (event.ctrlKey || event.metaKey || event.altKey) return false;\n return event.key.length === 1 && !/\\d/.test(event.key);\n}\n"],"mappings":";AAYO,IAAM,aAAa;AAQnB,SAAS,SAAS,KAAqB;AAC5C,SAAO,IAAI,QAAQ,QAAQ,EAAE,EAAE,MAAM,GAAG,UAAU;AACpD;AAMO,SAAS,YAAY,KAA4B;AACtD,QAAM,SAAS,SAAS,GAAG;AAC3B,SAAO,WAAW,KAAK,OAAO,OAAO,MAAM;AAC7C;AAGO,SAAS,YAAY,OAA8B;AACxD,SAAO,UAAU,QAAQ,CAAC,OAAO,SAAS,KAAK,IAAI,KAAK,OAAO,KAAK;AACtE;AAGO,SAAS,MAAM,OAAe,EAAE,KAAK,IAAI,GAAyB;AACvE,MAAI,QAAQ,UAAa,QAAQ,IAAK,QAAO;AAC7C,MAAI,QAAQ,UAAa,QAAQ,IAAK,QAAO;AAC7C,SAAO;AACT;AASO,SAAS,UACd,OACA,WACA,MACA,QACQ;AACR,MAAI,UAAU,KAAM,QAAO,MAAM,OAAO,OAAO,GAAG,MAAM;AACxD,SAAO,MAAM,QAAQ,YAAY,MAAM,MAAM;AAC/C;AAQO,SAAS,aAAa,OAKjB;AACV,MAAI,MAAM,WAAW,MAAM,WAAW,MAAM,OAAQ,QAAO;AAC3D,SAAO,MAAM,IAAI,WAAW,KAAK,CAAC,KAAK,KAAK,MAAM,GAAG;AACvD;","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-4XK6JQ4D.js";
|
|
4
4
|
import {
|
|
5
5
|
ToggleGroup
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KQZGUHYZ.js";
|
|
7
7
|
import {
|
|
8
8
|
FormControl,
|
|
9
9
|
FormLabel,
|
|
@@ -38,4 +38,4 @@ function ToggleField({ name, options, label }) {
|
|
|
38
38
|
export {
|
|
39
39
|
ToggleField
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=chunk-
|
|
41
|
+
//# sourceMappingURL=chunk-QDELBNL3.js.map
|
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
} from "./chunk-4RDJMIWL.js";
|
|
5
5
|
import {
|
|
6
6
|
fieldBorder
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import {
|
|
9
|
-
fieldRadius
|
|
10
|
-
} from "./chunk-GDN2LUTZ.js";
|
|
7
|
+
} from "./chunk-M47ZOUGF.js";
|
|
11
8
|
import {
|
|
12
9
|
fieldEdge
|
|
13
10
|
} from "./chunk-7FDU3FIN.js";
|
|
11
|
+
import {
|
|
12
|
+
fieldRadius
|
|
13
|
+
} from "./chunk-GDN2LUTZ.js";
|
|
14
14
|
import {
|
|
15
15
|
FIELD_BORDER_WIDTH
|
|
16
16
|
} from "./chunk-O6MJWHU5.js";
|
|
@@ -225,4 +225,4 @@ Textarea.displayName = "Textarea";
|
|
|
225
225
|
export {
|
|
226
226
|
Textarea
|
|
227
227
|
};
|
|
228
|
-
//# sourceMappingURL=chunk-
|
|
228
|
+
//# sourceMappingURL=chunk-QEI5DC6S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=chunk-QGUNUXTT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DataViewsExportMenu
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DLWLIPCP.js";
|
|
4
4
|
import {
|
|
5
5
|
DataViewsDisplayPanel
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6MD5QXXJ.js";
|
|
7
7
|
import {
|
|
8
8
|
renderBulkActions
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NQ7NMCRI.js";
|
|
10
10
|
import {
|
|
11
11
|
useDataViewsCopy
|
|
12
12
|
} from "./chunk-KHG57NAE.js";
|
|
13
13
|
import {
|
|
14
14
|
FilterTrigger
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-SNBAMWI5.js";
|
|
16
16
|
import {
|
|
17
17
|
ContentToolbar
|
|
18
18
|
} from "./chunk-TZFBJ47T.js";
|
|
@@ -136,4 +136,4 @@ function GridToolbar(props) {
|
|
|
136
136
|
export {
|
|
137
137
|
GridToolbar
|
|
138
138
|
};
|
|
139
|
-
//# sourceMappingURL=chunk-
|
|
139
|
+
//# sourceMappingURL=chunk-RDFPM2AQ.js.map
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PendingSpinner,
|
|
3
|
+
SaveError,
|
|
4
|
+
SettingHeader,
|
|
5
|
+
partTestId
|
|
6
|
+
} from "./chunk-PEOOCQ2T.js";
|
|
7
|
+
import {
|
|
8
|
+
descriptionStyles
|
|
9
|
+
} from "./chunk-3DO5AJCG.js";
|
|
10
|
+
import {
|
|
11
|
+
Switch
|
|
12
|
+
} from "./chunk-ZGCPDA3F.js";
|
|
13
|
+
import {
|
|
14
|
+
SR_ONLY_SX
|
|
15
|
+
} from "./chunk-ANYOSBNA.js";
|
|
16
|
+
|
|
17
|
+
// src/components/layout/SettingCard/SettingSwitch.tsx
|
|
18
|
+
import Box from "@mui/material/Box/index.js";
|
|
19
|
+
import { useTheme } from "@mui/material/styles/index.js";
|
|
20
|
+
import { useId } from "react";
|
|
21
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
var useSettingSwitchIds = () => {
|
|
23
|
+
const base = useId();
|
|
24
|
+
return {
|
|
25
|
+
titleId: `${base}-title`,
|
|
26
|
+
inputId: `${base}-switch`,
|
|
27
|
+
summaryId: `${base}-summary`,
|
|
28
|
+
errorId: `${base}-error`
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
var SettingSwitchBlock = ({ title, headingLevel = "h3", icon, summary, copy, disabled, dataTestId, ids, state }) => {
|
|
32
|
+
const theme = useTheme();
|
|
33
|
+
const { shown, saving, error, flip } = state;
|
|
34
|
+
const describedBy = [summary != null ? ids.summaryId : null, error ? ids.errorId : null].filter(Boolean).join(" ");
|
|
35
|
+
const control = /* @__PURE__ */ jsxs(Box, { sx: { display: "inline-flex", alignItems: "center", gap: 1, flexShrink: 0 }, children: [
|
|
36
|
+
saving && /* @__PURE__ */ jsx(PendingSpinner, { dataTestId }),
|
|
37
|
+
/* @__PURE__ */ jsx(
|
|
38
|
+
Switch,
|
|
39
|
+
{
|
|
40
|
+
id: ids.inputId,
|
|
41
|
+
checked: shown,
|
|
42
|
+
onChange: (event) => void flip(event.target.checked),
|
|
43
|
+
disabled,
|
|
44
|
+
error: Boolean(error),
|
|
45
|
+
"aria-describedby": describedBy || void 0,
|
|
46
|
+
inputProps: { role: "switch", "aria-busy": saving },
|
|
47
|
+
dataTestId: partTestId(dataTestId, "switch")
|
|
48
|
+
}
|
|
49
|
+
)
|
|
50
|
+
] });
|
|
51
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
52
|
+
/* @__PURE__ */ jsx(
|
|
53
|
+
SettingHeader,
|
|
54
|
+
{
|
|
55
|
+
titleId: ids.titleId,
|
|
56
|
+
title,
|
|
57
|
+
headingLevel,
|
|
58
|
+
icon,
|
|
59
|
+
labelFor: ids.inputId,
|
|
60
|
+
trailing: control,
|
|
61
|
+
dataTestId
|
|
62
|
+
}
|
|
63
|
+
),
|
|
64
|
+
summary != null && /* @__PURE__ */ jsx(Box, { component: "p", id: ids.summaryId, sx: descriptionStyles(theme), "data-testid": partTestId(dataTestId, "summary"), children: summary }),
|
|
65
|
+
/* @__PURE__ */ jsx(SaveError, { id: ids.errorId, message: error, dataTestId }),
|
|
66
|
+
/* @__PURE__ */ jsx(Box, { role: "status", "aria-live": "polite", sx: SR_ONLY_SX, children: saving ? copy.saving : "" })
|
|
67
|
+
] });
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
useSettingSwitchIds,
|
|
72
|
+
SettingSwitchBlock
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=chunk-RDZGXJOD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/SettingCard/SettingSwitch.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React, { useId } from 'react';\n\nimport { Switch } from '../../form/Switch';\nimport { SR_ONLY_SX } from '../../form/Label/Label.styles';\n\nimport { useAsyncSwitch } from './SettingCard.hooks';\nimport { PendingSpinner, SaveError, SettingHeader, partTestId } from './SettingCard.parts';\nimport { descriptionStyles } from './SettingCard.styles';\nimport type { SettingToggleProps } from './SettingCard.types';\n\n/** Everything the switch-driven cards share, minus the surface each draws around it. */\nexport type SettingSwitchBlockProps = Pick<\n SettingToggleProps,\n 'title' | 'headingLevel' | 'icon' | 'summary' | 'checked' | 'onChange' | 'copy' | 'formatError' | 'dataTestId'\n> & { disabled: boolean };\n\n/** The ids one switch block wires its label, description and failure line with. */\nexport interface SettingSwitchIds {\n titleId: string;\n inputId: string;\n summaryId: string;\n errorId: string;\n}\n\nexport const useSettingSwitchIds = (): SettingSwitchIds => {\n const base = useId();\n return {\n titleId: `${base}-title`,\n inputId: `${base}-switch`,\n summaryId: `${base}-summary`,\n errorId: `${base}-error`,\n };\n};\n\n/**\n * Title-as-label, the switch, its explanation and the failure line.\n *\n * The switch is never `disabled` while it saves, for the reason Save is not\n * (`SettingCard.tsx`): a disabled control drops keyboard focus. It says\n * `aria-busy` instead, ignores flips until the save settles (see\n * `useAsyncSwitch`), shows a spinner, and a polite live region says the words.\n */\nexport const SettingSwitchBlock: React.FC<\n SettingSwitchBlockProps & { ids: SettingSwitchIds; state: ReturnType<typeof useAsyncSwitch> }\n> = ({ title, headingLevel = 'h3', icon, summary, copy, disabled, dataTestId, ids, state }) => {\n const theme = useTheme();\n const { shown, saving, error, flip } = state;\n const describedBy = [summary != null ? ids.summaryId : null, error ? ids.errorId : null]\n .filter(Boolean)\n .join(' ');\n\n const control = (\n <Box sx={{ display: 'inline-flex', alignItems: 'center', gap: 1, flexShrink: 0 }}>\n {saving && <PendingSpinner dataTestId={dataTestId} />}\n <Switch\n id={ids.inputId}\n checked={shown}\n onChange={(event) => void flip(event.target.checked)}\n disabled={disabled}\n error={Boolean(error)}\n aria-describedby={describedBy || undefined}\n inputProps={{ role: 'switch', 'aria-busy': saving }}\n dataTestId={partTestId(dataTestId, 'switch')}\n />\n </Box>\n );\n\n return (\n <>\n <SettingHeader\n titleId={ids.titleId}\n title={title}\n headingLevel={headingLevel}\n icon={icon}\n labelFor={ids.inputId}\n trailing={control}\n dataTestId={dataTestId}\n />\n {summary != null && (\n <Box component=\"p\" id={ids.summaryId} sx={descriptionStyles(theme)} data-testid={partTestId(dataTestId, 'summary')}>\n {summary}\n </Box>\n )}\n <SaveError id={ids.errorId} message={error} dataTestId={dataTestId} />\n <Box role=\"status\" aria-live=\"polite\" sx={SR_ONLY_SX}>\n {saving ? copy.saving : ''}\n </Box>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,SAAS,gBAAgB;AACzB,SAAgB,aAAa;AAoDzB,SAgBA,UAfa,KADb;AA5BG,IAAM,sBAAsB,MAAwB;AACzD,QAAM,OAAO,MAAM;AACnB,SAAO;AAAA,IACL,SAAS,GAAG,IAAI;AAAA,IAChB,SAAS,GAAG,IAAI;AAAA,IAChB,WAAW,GAAG,IAAI;AAAA,IAClB,SAAS,GAAG,IAAI;AAAA,EAClB;AACF;AAUO,IAAM,qBAET,CAAC,EAAE,OAAO,eAAe,MAAM,MAAM,SAAS,MAAM,UAAU,YAAY,KAAK,MAAM,MAAM;AAC7F,QAAM,QAAQ,SAAS;AACvB,QAAM,EAAE,OAAO,QAAQ,OAAO,KAAK,IAAI;AACvC,QAAM,cAAc,CAAC,WAAW,OAAO,IAAI,YAAY,MAAM,QAAQ,IAAI,UAAU,IAAI,EACpF,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,QAAM,UACJ,qBAAC,OAAI,IAAI,EAAE,SAAS,eAAe,YAAY,UAAU,KAAK,GAAG,YAAY,EAAE,GAC5E;AAAA,cAAU,oBAAC,kBAAe,YAAwB;AAAA,IACnD;AAAA,MAAC;AAAA;AAAA,QACC,IAAI,IAAI;AAAA,QACR,SAAS;AAAA,QACT,UAAU,CAAC,UAAU,KAAK,KAAK,MAAM,OAAO,OAAO;AAAA,QACnD;AAAA,QACA,OAAO,QAAQ,KAAK;AAAA,QACpB,oBAAkB,eAAe;AAAA,QACjC,YAAY,EAAE,MAAM,UAAU,aAAa,OAAO;AAAA,QAClD,YAAY,WAAW,YAAY,QAAQ;AAAA;AAAA,IAC7C;AAAA,KACF;AAGF,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,IAAI;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,IAAI;AAAA,QACd,UAAU;AAAA,QACV;AAAA;AAAA,IACF;AAAA,IACC,WAAW,QACV,oBAAC,OAAI,WAAU,KAAI,IAAI,IAAI,WAAW,IAAI,kBAAkB,KAAK,GAAG,eAAa,WAAW,YAAY,SAAS,GAC9G,mBACH;AAAA,IAEF,oBAAC,aAAU,IAAI,IAAI,SAAS,SAAS,OAAO,YAAwB;AAAA,IACpE,oBAAC,OAAI,MAAK,UAAS,aAAU,UAAS,IAAI,YACvC,mBAAS,KAAK,SAAS,IAC1B;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=chunk-RN7UJI7S.js.map
|