@12-apps/ui 6.21.0 → 6.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NATIVE.md +6 -4
- package/components-catalog.md +7 -0
- package/dist/_internal/components/data-display/Alert/Alert.js +4 -4
- package/dist/_internal/components/data-display/Alert/Alert.styles.js +2 -2
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +8 -8
- package/dist/_internal/components/data-display/Badge/Badge.js +3 -3
- package/dist/_internal/components/data-display/CardKit/CardKebab.js +4 -4
- package/dist/_internal/components/data-display/CardKit/card-actions-context.js +5 -5
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +9 -9
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +4 -4
- package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
- package/dist/_internal/components/data-display/Chart/SpecChart.js +5 -5
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
- package/dist/_internal/components/data-display/Chip/Chip.js +3 -3
- package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +3 -3
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +50 -50
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +68 -65
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +10 -7
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +11 -8
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +14 -11
- package/dist/_internal/components/data-display/DataViews/base-card.js +9 -7
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +7 -7
- package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +3 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +6 -6
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +15 -13
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +12 -12
- package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-columns.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +8 -8
- package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +3 -3
- 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 +15 -15
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +12 -12
- package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +46 -46
- package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +21 -21
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +9 -9
- package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
- 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 +13 -13
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +21 -18
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +12 -12
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +5 -5
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
- package/dist/_internal/components/data-display/DataViews/save-view-preview.js +3 -3
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +7 -7
- package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +3 -3
- package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
- package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +31 -0
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +23 -0
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +57 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.helpers.js +14 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.helpers.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.hooks.js +9 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.hooks.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +46 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.types.js +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.types.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +14 -0
- package/dist/_internal/components/data-display/FleetMap/FleetRoster.js.map +1 -0
- package/dist/_internal/components/data-display/LazyImage/LazyImage.js +4 -4
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +1 -1
- package/dist/_internal/components/data-display/LoadingState/LoadingState.js +4 -4
- package/dist/_internal/components/data-display/MapPreview/MapDecorations.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.hooks.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +7 -7
- package/dist/_internal/components/data-display/MapPreview/MapTiles.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/StaticMapView.js +4 -4
- package/dist/_internal/components/data-display/MapPreview/useMapPreview.js +3 -3
- package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
- package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.js +3 -3
- package/dist/_internal/components/data-display/StatCard/StatCard.js +4 -4
- package/dist/_internal/components/data-display/Table/Table.js +2 -2
- package/dist/_internal/components/data-display/index.js +88 -68
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +4 -4
- package/dist/_internal/components/feedback/Dialog/Dialog.base.js +1 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.base.js.map +1 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.helpers.js +12 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.helpers.js.map +1 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.js +6 -2
- package/dist/_internal/components/feedback/Dialog/Dialog.metrics.js +42 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.metrics.js.map +1 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.styles.js +3 -1
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
- package/dist/_internal/components/feedback/index.js +16 -13
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +3 -3
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +3 -3
- package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
- package/dist/_internal/components/form/Button/Button.js +3 -3
- package/dist/_internal/components/form/Calendar/Calendar.js +4 -4
- package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
- package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
- package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +5 -5
- package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
- package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +10 -10
- package/dist/_internal/components/form/CepField/CepField.js +4 -4
- package/dist/_internal/components/form/Checkbox/Checkbox.js +2 -2
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
- package/dist/_internal/components/form/Command/Command.js +2 -2
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +6 -6
- package/dist/_internal/components/form/Input/Input.js +3 -3
- package/dist/_internal/components/form/Label/Label.js +2 -2
- package/dist/_internal/components/form/Menubar/Menubar.js +5 -5
- package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +2 -2
- package/dist/_internal/components/form/PhoneInput/PhoneInput.hooks.js +2 -2
- package/dist/_internal/components/form/PhoneInput/PhoneInput.js +3 -3
- package/dist/_internal/components/form/Select/Select.js +2 -2
- package/dist/_internal/components/form/Switch/Switch.js +2 -2
- package/dist/_internal/components/form/index.js +55 -55
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +11 -11
- package/dist/_internal/components/form/total-form/Fields/CepField.js +5 -5
- package/dist/_internal/components/form/total-form/Fields/SelectField.js +3 -3
- package/dist/_internal/components/form/total-form/Fields/TextField.js +4 -4
- package/dist/_internal/components/form/total-form/Fields/index.js +25 -25
- package/dist/_internal/components/form/total-form/SubmitButton.js +4 -4
- package/dist/_internal/components/index.js +198 -175
- package/dist/_internal/components/layout/Box/Box.js +2 -2
- package/dist/_internal/components/layout/Card/Card.base.js +1 -0
- package/dist/_internal/components/layout/Card/Card.base.js.map +1 -0
- package/dist/_internal/components/layout/Card/Card.helpers.js +1 -1
- package/dist/_internal/components/layout/Card/Card.js +6 -3
- package/dist/_internal/components/layout/Card/Card.metrics.js +44 -0
- package/dist/_internal/components/layout/Card/Card.metrics.js.map +1 -0
- package/dist/_internal/components/layout/Card/Card.styles.js +3 -1
- package/dist/_internal/components/layout/Container/Container.js +2 -2
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +2 -2
- package/dist/_internal/components/layout/Skeleton/Skeleton.js +3 -3
- package/dist/_internal/components/layout/Spacer/Spacer.js +2 -2
- package/dist/_internal/components/layout/Stack/Stack.js +3 -3
- package/dist/_internal/components/layout/index.js +30 -28
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +12 -9
- package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +2 -2
- package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
- package/dist/_internal/components/navigation/index.js +22 -19
- package/dist/_internal/components/typography/Heading/Heading.js +2 -2
- package/dist/_internal/components/typography/Paragraph/Paragraph.js +2 -2
- package/dist/_internal/components/typography/Text/Text.js +2 -2
- package/dist/_internal/components/typography/index.js +4 -4
- package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +2 -2
- package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
- package/dist/_internal/components/utility/index.js +8 -8
- package/dist/_internal/icons/Icon.js +2 -2
- package/dist/_internal/platform/test-id.js +3 -1
- package/dist/_internal/pt-BR.data-display.js +2 -2
- package/dist/_internal/social-login-button/social-login-button.js +11 -9
- package/dist/_internal/tokens/mui-type.js +1 -0
- package/dist/_internal/tokens/mui-type.js.map +1 -1
- package/dist/_internal/tokens/shadow.js +18 -0
- package/dist/_internal/tokens/shadow.js.map +1 -0
- package/dist/_internal/user-avatar/user-avatar.js +10 -8
- package/dist/charts.js +6 -6
- package/dist/{chunk-NUE774AN.js → chunk-25R3ITGZ.js} +2 -2
- package/dist/{chunk-Z6UEOSL7.js → chunk-2FDBR77W.js} +3 -3
- package/dist/{chunk-IFNK5TPI.js → chunk-2HPP6RVC.js} +2 -2
- package/dist/chunk-2RQINU5T.js +41 -0
- package/dist/chunk-2RQINU5T.js.map +1 -0
- package/dist/{chunk-GCXYCDOA.js → chunk-2UGJIKVA.js} +2 -2
- package/dist/{chunk-26Z7QWID.js → chunk-343TTIHD.js} +2 -2
- package/dist/{chunk-BRSF5NRT.js → chunk-3FLVIVOK.js} +4 -4
- package/dist/{chunk-BDVNAU2C.js → chunk-4523RYE7.js} +5 -5
- package/dist/{chunk-4ETQRBZC.js → chunk-46UPILLK.js} +4 -4
- package/dist/{chunk-WMALDOF5.js → chunk-4G3FGCWX.js} +4 -4
- package/dist/{chunk-I3MDKPGG.js → chunk-4IVOHL32.js} +2 -2
- package/dist/{chunk-SAHQLXNN.js → chunk-4LRFGB3K.js} +4 -4
- package/dist/{chunk-ZOUWHGV3.js → chunk-4MGFUPQT.js} +4 -4
- package/dist/{chunk-TLX66HCW.js → chunk-4OHRZW7U.js} +5 -5
- package/dist/{chunk-2QFTAGDH.js → chunk-4X4KM4ZB.js} +4 -4
- package/dist/{chunk-7ZH7ZB33.js → chunk-4XZXLB4I.js} +4 -4
- package/dist/{chunk-6PRA45LC.js → chunk-5KEMPCW4.js} +54 -45
- package/dist/chunk-5KEMPCW4.js.map +1 -0
- package/dist/{chunk-77F36LQQ.js → chunk-5OIH36KX.js} +3 -3
- package/dist/chunk-5V4UPOWK.js +36 -0
- package/dist/chunk-5V4UPOWK.js.map +1 -0
- package/dist/{chunk-GDEXYUPF.js → chunk-67L7HMEP.js} +2 -2
- package/dist/{chunk-ZFPJBKVZ.js → chunk-6JGPPTLX.js} +5 -5
- package/dist/chunk-6Q6T3FW5.js +92 -0
- package/dist/chunk-6Q6T3FW5.js.map +1 -0
- package/dist/chunk-73BEVJCS.js +28 -0
- package/dist/chunk-73BEVJCS.js.map +1 -0
- package/dist/{chunk-VIK3HAUQ.js → chunk-73NJCGQG.js} +2 -2
- package/dist/{chunk-D4T646G4.js → chunk-7NSX7A5H.js} +2 -2
- package/dist/{chunk-QS7ZGRNS.js → chunk-7VN7LFBA.js} +6 -6
- package/dist/{chunk-3UOHKHOT.js → chunk-ACFGEZ4Q.js} +3 -3
- package/dist/{chunk-GBNOYRLP.js → chunk-AEGXHZQT.js} +8 -8
- package/dist/{chunk-D2IASECY.js → chunk-AIRWM7KK.js} +39 -28
- package/dist/chunk-AIRWM7KK.js.map +1 -0
- package/dist/{chunk-BEH4DN63.js → chunk-AJGYHDA5.js} +6 -6
- package/dist/{chunk-65DLYC4S.js → chunk-AVGTTWTE.js} +4 -4
- package/dist/{chunk-PXH24VIP.js → chunk-B6IURHSZ.js} +4 -4
- package/dist/chunk-BEBLRL5D.js +177 -0
- package/dist/chunk-BEBLRL5D.js.map +1 -0
- package/dist/{chunk-XEE7PLDR.js → chunk-BZTFPSWT.js} +4 -4
- package/dist/{chunk-B3BK2SNS.js → chunk-C3CMEDSO.js} +2 -2
- package/dist/{chunk-OH3YGJT5.js → chunk-CBTY36TU.js} +2 -2
- package/dist/chunk-CDCTLPMD.js +1 -0
- package/dist/chunk-CDCTLPMD.js.map +1 -0
- package/dist/chunk-CF3FAAPC.js +79 -0
- package/dist/chunk-CF3FAAPC.js.map +1 -0
- package/dist/{chunk-JIINGMEB.js → chunk-CHPZTF34.js} +7 -7
- package/dist/{chunk-PWXL3QQ6.js → chunk-CJBBGMIA.js} +2 -2
- package/dist/{chunk-BPYPUEM5.js → chunk-CZJLWCEG.js} +2 -2
- package/dist/{chunk-FPWB5ILF.js → chunk-DRHIIUDO.js} +5 -5
- package/dist/{chunk-BEGWE5O4.js → chunk-DTC224UJ.js} +4 -4
- package/dist/{chunk-UB76PBDF.js → chunk-DVFIE54C.js} +2 -2
- package/dist/{chunk-GO4MVQGC.js → chunk-DW5FRWRQ.js} +2 -2
- package/dist/{chunk-6Z4H2Y77.js → chunk-E27Y7FF2.js} +4 -4
- package/dist/{chunk-PANMJFDS.js → chunk-E55CJV65.js} +2 -2
- package/dist/{chunk-JXAYT6LX.js → chunk-EJQW2IYW.js} +2 -2
- package/dist/{chunk-TPIBJP4S.js → chunk-EOHKZGOZ.js} +2 -2
- package/dist/{chunk-MSUSZLRE.js → chunk-EWT3WMVY.js} +5 -5
- package/dist/chunk-F7VBGS4C.js +64 -0
- package/dist/chunk-F7VBGS4C.js.map +1 -0
- package/dist/{chunk-DH75UNF3.js → chunk-FGK2C7JR.js} +2 -2
- package/dist/{chunk-RI5JZLZL.js → chunk-FKUYRQSP.js} +1 -1
- package/dist/chunk-FKUYRQSP.js.map +1 -0
- package/dist/{chunk-AD776JPA.js → chunk-FR67FG2U.js} +2 -2
- package/dist/{chunk-SHQWIDD5.js → chunk-GJQYM3PM.js} +4 -4
- package/dist/{chunk-7KTU6YMQ.js → chunk-GMTM6EN7.js} +5 -5
- package/dist/{chunk-WROCSDVL.js → chunk-GSFNH4C5.js} +5 -5
- package/dist/{chunk-PF5HDFYY.js → chunk-GVA5CYKP.js} +4 -4
- package/dist/chunk-GYXUCS37.js +36 -0
- package/dist/chunk-GYXUCS37.js.map +1 -0
- package/dist/{chunk-Z5ABJLTM.js → chunk-HFXTAEYY.js} +2 -2
- package/dist/{chunk-FOMK3WPG.js → chunk-HLYPI5CO.js} +4 -4
- package/dist/{chunk-VR5HDUBK.js → chunk-HP2ODXNA.js} +2 -2
- package/dist/{chunk-GBRKP5GZ.js → chunk-I5SBTNV2.js} +2 -2
- package/dist/{chunk-TP4N3X2Q.js → chunk-IPVYEPXO.js} +5 -5
- package/dist/{chunk-RRO2EOJB.js → chunk-JB67KPGM.js} +4 -4
- package/dist/{chunk-5ZOJLYD2.js → chunk-JE6RZ5L6.js} +4 -4
- package/dist/{chunk-4HYXEMBP.js → chunk-JIKWZDNK.js} +2 -2
- package/dist/{chunk-4MLDWACO.js → chunk-JM64OEU6.js} +12 -12
- package/dist/{chunk-2QLVUVVR.js → chunk-JSH3HFDQ.js} +2 -2
- package/dist/{chunk-TZ4SFX3M.js → chunk-JWW2Z3RH.js} +4 -4
- package/dist/{chunk-QFHH2NU5.js → chunk-JXNT5TUP.js} +3 -3
- package/dist/{chunk-FINCVAAR.js → chunk-KHWCX4LI.js} +4 -4
- package/dist/{chunk-THZ2NAA4.js → chunk-KW7H5O3K.js} +7 -7
- package/dist/{chunk-XLJJ2ZAP.js → chunk-L4U23SBX.js} +11 -11
- package/dist/{chunk-ZXLIWOXC.js → chunk-LS4FMSHY.js} +5 -5
- package/dist/{chunk-SFAP5EH5.js → chunk-LUMF63BM.js} +4 -4
- package/dist/{chunk-CZPU5TW3.js → chunk-LYSSO6WC.js} +4 -4
- package/dist/{chunk-736HP6BL.js → chunk-M4LQRQFL.js} +2 -2
- package/dist/{chunk-426FTCMF.js → chunk-MESRKY67.js} +2 -2
- package/dist/{chunk-B5PYBEXO.js → chunk-MP4VSWHK.js} +2 -2
- package/dist/chunk-MQNKRIGC.js +205 -0
- package/dist/chunk-MQNKRIGC.js.map +1 -0
- package/dist/{chunk-UOPQOBQZ.js → chunk-MYGNIFZC.js} +3 -3
- package/dist/{chunk-6RGWDKUL.js → chunk-N2TUX4A5.js} +4 -4
- package/dist/{chunk-VWGR5XUP.js → chunk-NWNSUHEB.js} +2 -2
- package/dist/{chunk-4K7FDVAB.js → chunk-O3336DJ6.js} +2 -2
- package/dist/{chunk-YCCKY5VW.js → chunk-OFOYMZRY.js} +4 -4
- package/dist/{chunk-OCXCH2ZW.js → chunk-OIKQO73C.js} +7 -7
- package/dist/{chunk-QZDBWXZG.js → chunk-OP65D4UR.js} +2 -2
- package/dist/{chunk-MCRIT46W.js → chunk-OTH7H3IP.js} +5 -5
- package/dist/{chunk-BQQONDW5.js → chunk-OVLNF4AZ.js} +6 -6
- package/dist/{chunk-AGYGNNOM.js → chunk-PQECNGDE.js} +2 -2
- package/dist/{chunk-IIROZKW5.js → chunk-PRUSQQDT.js} +2 -2
- package/dist/{chunk-IPE5FFFD.js → chunk-PUBPZOQJ.js} +2 -2
- package/dist/{chunk-FB36IHCE.js → chunk-QFVFHIHE.js} +8 -8
- package/dist/{chunk-V5P5Q6HM.js → chunk-QJRDDVZ2.js} +3 -3
- package/dist/{chunk-WBKWIFXA.js → chunk-QYNCPS5W.js} +6 -6
- package/dist/{chunk-VPHOSIPB.js → chunk-R6SNYC3D.js} +10 -10
- package/dist/{chunk-STH66VLA.js → chunk-R7R3LOKW.js} +2 -2
- package/dist/{chunk-W2UTDN4T.js → chunk-RBGOGTT2.js} +4 -4
- package/dist/chunk-RQWZYD6H.js +1 -0
- package/dist/chunk-RQWZYD6H.js.map +1 -0
- package/dist/{chunk-VWBWKLXX.js → chunk-SX3V2DLV.js} +4 -4
- package/dist/{chunk-P7FQUGED.js → chunk-TNVO2DTB.js} +5 -5
- package/dist/{chunk-WTIOCG4M.js → chunk-TOYEP23N.js} +2 -2
- package/dist/{chunk-G2IPK2XE.js → chunk-TPLKJHNN.js} +8 -8
- package/dist/{chunk-U2AC4AQX.js → chunk-TU5EIKJA.js} +4 -4
- package/dist/{chunk-ZGHIHEND.js → chunk-TW3BXVEU.js} +2 -2
- package/dist/chunk-TWQYDKCA.js +113 -0
- package/dist/chunk-TWQYDKCA.js.map +1 -0
- package/dist/{chunk-BGYLL467.js → chunk-TXHJX2NG.js} +4 -4
- package/dist/{chunk-6F5IKY32.js → chunk-TYJR4GOF.js} +6 -2
- package/dist/{chunk-6F5IKY32.js.map → chunk-TYJR4GOF.js.map} +1 -1
- package/dist/{chunk-5RQ7N63M.js → chunk-TZDDL3DR.js} +2 -2
- package/dist/{chunk-RPQ3W2C6.js → chunk-U2ZDN2AL.js} +2 -2
- package/dist/{chunk-WPZT2JD4.js → chunk-U7Q2Y6WG.js} +2 -2
- package/dist/{chunk-E46PG577.js → chunk-URXT5TOY.js} +4 -4
- package/dist/chunk-VM3HRSAU.js +79 -0
- package/dist/chunk-VM3HRSAU.js.map +1 -0
- package/dist/{chunk-P6IPJYCS.js → chunk-VNNG46TS.js} +6 -6
- package/dist/{chunk-CXVMD6FE.js → chunk-VON4BFK4.js} +3 -3
- package/dist/{chunk-2SWQ6HIK.js → chunk-W3FAKT3D.js} +4 -4
- package/dist/{chunk-JDMYD6QC.js → chunk-W4SDVTZC.js} +2 -2
- package/dist/{chunk-7MAOQIWA.js → chunk-W4YWU7LQ.js} +2 -2
- package/dist/{chunk-Y46RBFBV.js → chunk-W7Y6RA6W.js} +6 -6
- package/dist/{chunk-XFU2S6XT.js → chunk-WGRS4PGY.js} +10 -10
- package/dist/{chunk-OOGEYCJH.js → chunk-WIT3Y7JT.js} +2 -2
- package/dist/{chunk-KT6HWAEN.js → chunk-WQA4LIIK.js} +4 -4
- package/dist/{chunk-J2KSG754.js → chunk-WRDPWEIC.js} +5 -5
- package/dist/{chunk-RPWEXIAW.js → chunk-X5MPHXG5.js} +6 -6
- package/dist/{chunk-UEIVXFUC.js → chunk-XELVDPKL.js} +5 -5
- package/dist/{chunk-RRZBATXK.js → chunk-XKV5ZIBG.js} +3 -3
- package/dist/{chunk-ZKFYBC6G.js → chunk-XSF6AXEU.js} +2 -2
- package/dist/{chunk-R6RVBYTU.js → chunk-XUJG2HFW.js} +3 -3
- package/dist/{chunk-S5LE2ARG.js → chunk-YANLN6HP.js} +66 -56
- package/dist/chunk-YANLN6HP.js.map +1 -0
- package/dist/{chunk-FRQ4HNGF.js → chunk-YJ4HM25H.js} +2 -2
- package/dist/{chunk-TVO5STZB.js → chunk-YQ6TNHAC.js} +3 -3
- package/dist/{chunk-BNNSO4MC.js → chunk-YTOYMJPM.js} +5 -5
- package/dist/{chunk-IH4RSRQA.js → chunk-ZA4U5GDU.js} +6 -6
- package/dist/data-display/Alert.js +4 -4
- package/dist/data-display/AsyncStateContainer.js +8 -8
- package/dist/data-display/Badge.js +3 -3
- package/dist/data-display/CardKit.js +13 -13
- package/dist/data-display/Chart.js +6 -6
- package/dist/data-display/Chip.js +3 -3
- package/dist/data-display/DataGrid.js +2 -2
- package/dist/data-display/DataViews.js +84 -80
- package/dist/data-display/DescriptionItem.js +3 -3
- package/dist/data-display/EmptyState.js +2 -2
- package/dist/data-display/ErrorState.js +2 -2
- package/dist/data-display/FleetMap.js +54 -0
- package/dist/data-display/FleetMap.js.map +1 -0
- package/dist/data-display/LazyImage.js +4 -4
- package/dist/data-display/Lightbox.js +1 -1
- package/dist/data-display/LoadingState.js +4 -4
- package/dist/data-display/MapPreview.js +7 -7
- package/dist/data-display/Progress.js +2 -2
- package/dist/data-display/SectionOnboarding.js +3 -3
- package/dist/data-display/Sheet.js +3 -3
- package/dist/data-display/StatCard.js +4 -4
- package/dist/data-display/Table.js +2 -2
- package/dist/feedback/ConfirmAction.js +4 -4
- package/dist/feedback/Dialog.js +6 -2
- package/dist/feedback/TutorialOverlay.js +2 -2
- package/dist/form/AddressAutocomplete.js +7 -7
- package/dist/form/Autocomplete.js +2 -2
- package/dist/form/Button.js +3 -3
- package/dist/form/Calendar.js +4 -4
- package/dist/form/CategorySelect.js +10 -10
- package/dist/form/CepField.js +4 -4
- package/dist/form/Checkbox.js +2 -2
- package/dist/form/CodeEditor.js +2 -2
- package/dist/form/Command.js +2 -2
- package/dist/form/DateRangePicker.js +11 -11
- package/dist/form/Input.js +3 -3
- package/dist/form/Label.js +2 -2
- package/dist/form/Menubar.js +5 -5
- package/dist/form/PhoneInput.js +3 -3
- package/dist/form/Select.js +2 -2
- package/dist/form/Switch.js +2 -2
- package/dist/form/total-form.js +30 -30
- package/dist/icons.js +2 -2
- package/dist/layout/Box.js +2 -2
- package/dist/layout/Card.js +6 -3
- package/dist/layout/Container.js +2 -2
- package/dist/layout/ContentToolbar.js +3 -3
- package/dist/layout/SettingsLayout.js +2 -2
- package/dist/layout/Skeleton.js +3 -3
- package/dist/layout/Spacer.js +2 -2
- package/dist/layout/Stack.js +3 -3
- package/dist/locales.js +4 -4
- package/dist/native/chunks/{chunk-HSIND52T.js → chunk-2UFNPDYT.js} +2 -1
- package/dist/native/chunks/chunk-2UFNPDYT.js.map +1 -0
- package/dist/native/chunks/{chunk-OGWPPQL4.js → chunk-75JQYVDZ.js} +3 -3
- package/dist/native/chunks/{chunk-WKMDCNIN.js → chunk-7LTVGW23.js} +2 -2
- package/dist/native/chunks/{chunk-QZAUOHDQ.js → chunk-AR5O4BEY.js} +6 -2
- package/dist/native/chunks/{chunk-QZAUOHDQ.js.map → chunk-AR5O4BEY.js.map} +1 -1
- package/dist/native/chunks/{chunk-RJVM5YDE.js → chunk-ATS7STZJ.js} +4 -4
- package/dist/native/chunks/{chunk-YTHR4Y5P.js → chunk-GWGIWQO7.js} +2 -2
- package/dist/native/chunks/{chunk-P3PL4WBO.js → chunk-LEMMXZFN.js} +24 -24
- package/dist/native/chunks/{chunk-P3PL4WBO.js.map → chunk-LEMMXZFN.js.map} +1 -1
- package/dist/native/chunks/chunk-NRN37A5K.js +67 -0
- package/dist/native/chunks/chunk-NRN37A5K.js.map +1 -0
- package/dist/native/chunks/{chunk-D4EYAXNG.js → chunk-QYUD3S6F.js} +5 -5
- package/dist/native/data-display/Alert.js +8 -8
- package/dist/native/data-display/Avatar.js +7 -7
- package/dist/native/data-display/Badge.js +8 -8
- package/dist/native/data-display/Chip.js +4 -4
- package/dist/native/data-display/EmptyState.js +11 -11
- package/dist/native/data-display/ErrorState.js +11 -11
- package/dist/native/data-display/LoadingState.js +7 -7
- package/dist/native/data-display/Progress.js +3 -3
- package/dist/native/feedback/Dialog.js +496 -0
- package/dist/native/feedback/Dialog.js.map +1 -0
- package/dist/native/form/Button.js +4 -4
- package/dist/native/form/Checkbox.js +5 -5
- package/dist/native/form/Input.js +5 -5
- package/dist/native/form/Select.js +6 -6
- package/dist/native/form/Switch.js +3 -3
- package/dist/native/icons.js +4 -4
- package/dist/native/layout/Box.js +4 -4
- package/dist/native/layout/Card.js +494 -0
- package/dist/native/layout/Card.js.map +1 -0
- package/dist/native/layout/Container.js +3 -3
- package/dist/native/layout/Skeleton.js +6 -6
- package/dist/native/layout/Spacer.js +3 -3
- package/dist/native/layout/Stack.js +4 -4
- package/dist/native/provider.js +2 -2
- package/dist/native/tokens.js +1 -1
- package/dist/native/typography/Heading.js +3 -3
- package/dist/native/typography/Paragraph.js +3 -3
- package/dist/native/typography/Text.js +3 -3
- package/dist/navigation/AppHeader.js +14 -11
- package/dist/navigation/CommandPalette.js +2 -2
- package/dist/navigation/Pagination.js +2 -2
- package/dist/pt-BR.js +4 -4
- package/dist/social-login-button.js +11 -9
- package/dist/types/components/data-display/FleetMap/FleetBody.d.ts +22 -0
- package/dist/types/components/data-display/FleetMap/FleetBody.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetCanvas.d.ts +50 -0
- package/dist/types/components/data-display/FleetMap/FleetCanvas.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.d.ts +32 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.fixtures.d.ts +23 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.fixtures.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.helpers.d.ts +45 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.helpers.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.hooks.d.ts +54 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.hooks.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.types.d.ts +145 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.types.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetRoster.d.ts +15 -0
- package/dist/types/components/data-display/FleetMap/FleetRoster.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/index.d.ts +5 -0
- package/dist/types/components/data-display/FleetMap/index.d.ts.map +1 -0
- package/dist/types/components/data-display/index.d.ts +1 -0
- package/dist/types/components/data-display/index.d.ts.map +1 -1
- package/dist/types/components/feedback/Dialog/Dialog.base.d.ts +64 -0
- package/dist/types/components/feedback/Dialog/Dialog.base.d.ts.map +1 -0
- package/dist/types/components/feedback/Dialog/Dialog.d.ts.map +1 -1
- package/dist/types/components/feedback/Dialog/Dialog.helpers.d.ts +35 -0
- package/dist/types/components/feedback/Dialog/Dialog.helpers.d.ts.map +1 -0
- package/dist/types/components/feedback/Dialog/Dialog.metrics.d.ts +133 -0
- package/dist/types/components/feedback/Dialog/Dialog.metrics.d.ts.map +1 -0
- package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts +4 -4
- package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts.map +1 -1
- package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +8 -41
- package/dist/types/components/feedback/Dialog/Dialog.types.d.ts.map +1 -1
- package/dist/types/components/feedback/Dialog/index.d.ts +1 -1
- package/dist/types/components/feedback/Dialog/index.d.ts.map +1 -1
- package/dist/types/components/layout/Card/Card.base.d.ts +77 -0
- package/dist/types/components/layout/Card/Card.base.d.ts.map +1 -0
- package/dist/types/components/layout/Card/Card.d.ts.map +1 -1
- package/dist/types/components/layout/Card/Card.helpers.d.ts +8 -3
- package/dist/types/components/layout/Card/Card.helpers.d.ts.map +1 -1
- package/dist/types/components/layout/Card/Card.metrics.d.ts +182 -0
- package/dist/types/components/layout/Card/Card.metrics.d.ts.map +1 -0
- package/dist/types/components/layout/Card/Card.styles.d.ts +2 -2
- package/dist/types/components/layout/Card/Card.styles.d.ts.map +1 -1
- package/dist/types/components/layout/Card/Card.types.d.ts +10 -44
- package/dist/types/components/layout/Card/Card.types.d.ts.map +1 -1
- package/dist/types/components/layout/Card/index.d.ts +1 -1
- package/dist/types/components/layout/Card/index.d.ts.map +1 -1
- package/dist/types/platform/test-id.d.ts +14 -0
- package/dist/types/platform/test-id.d.ts.map +1 -1
- package/dist/types/tokens/mui-type.d.ts +1 -1
- package/dist/types/tokens/mui-type.d.ts.map +1 -1
- package/dist/types/tokens/shadow.d.ts +40 -0
- package/dist/types/tokens/shadow.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts +64 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.helpers.d.ts +35 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.helpers.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts +44 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.metrics.d.ts +133 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.metrics.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.native.d.ts +8 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.native.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.types.native.d.ts +25 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.types.native.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/DialogParts.native.d.ts +39 -0
- package/dist/types-native/components/feedback/Dialog/DialogParts.native.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/index.native.d.ts +4 -0
- package/dist/types-native/components/feedback/Dialog/index.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.base.d.ts +77 -0
- package/dist/types-native/components/layout/Card/Card.base.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.helpers.d.ts +11 -0
- package/dist/types-native/components/layout/Card/Card.helpers.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.look.native.d.ts +57 -0
- package/dist/types-native/components/layout/Card/Card.look.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.metrics.d.ts +182 -0
- package/dist/types-native/components/layout/Card/Card.metrics.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.native.d.ts +11 -0
- package/dist/types-native/components/layout/Card/Card.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.types.native.d.ts +28 -0
- package/dist/types-native/components/layout/Card/Card.types.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/CardParts.native.d.ts +55 -0
- package/dist/types-native/components/layout/Card/CardParts.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/index.native.d.ts +4 -0
- package/dist/types-native/components/layout/Card/index.native.d.ts.map +1 -0
- package/dist/types-native/platform/pulse-ring.native.d.ts +35 -0
- package/dist/types-native/platform/pulse-ring.native.d.ts.map +1 -0
- package/dist/types-native/platform/test-id.d.ts +14 -0
- package/dist/types-native/platform/test-id.d.ts.map +1 -1
- package/dist/types-native/tokens/mui-type.d.ts +1 -1
- package/dist/types-native/tokens/mui-type.d.ts.map +1 -1
- package/dist/types-native/tokens/shadow.d.ts +40 -0
- package/dist/types-native/tokens/shadow.d.ts.map +1 -0
- package/dist/typography/Heading.js +2 -2
- package/dist/typography/Paragraph.js +2 -2
- package/dist/typography/Text.js +2 -2
- package/dist/user-avatar.js +10 -8
- package/dist/utility/InfiniteScroll.js +2 -2
- package/dist/utility/InstallPrompt.js +2 -2
- package/package.json +13 -1
- package/src/components/data-display/CardKit/NATIVE-NOTES.md +48 -0
- package/src/components/data-display/FleetMap/FleetBody.tsx +96 -0
- package/src/components/data-display/FleetMap/FleetCanvas.tsx +80 -0
- package/src/components/data-display/FleetMap/FleetMap.fixtures.ts +70 -0
- package/src/components/data-display/FleetMap/FleetMap.helpers.ts +85 -0
- package/src/components/data-display/FleetMap/FleetMap.hooks.ts +164 -0
- package/src/components/data-display/FleetMap/FleetMap.md +182 -0
- package/src/components/data-display/FleetMap/FleetMap.tsx +169 -0
- package/src/components/data-display/FleetMap/FleetMap.types.ts +148 -0
- package/src/components/data-display/FleetMap/FleetRoster.tsx +321 -0
- package/src/components/data-display/FleetMap/index.ts +9 -0
- package/src/components/data-display/FleetMap/tests.md +79 -0
- package/src/components/data-display/FleetMap/track.md +50 -0
- package/src/components/data-display/index.ts +1 -0
- package/src/components/feedback/ConfirmAction/ConfirmAction.md +10 -4
- package/src/components/feedback/Dialog/Dialog.base.ts +69 -0
- package/src/components/feedback/Dialog/Dialog.helpers.ts +75 -0
- package/src/components/feedback/Dialog/Dialog.look.native.ts +159 -0
- package/src/components/feedback/Dialog/Dialog.metrics.ts +140 -0
- package/src/components/feedback/Dialog/Dialog.native.tsx +149 -0
- package/src/components/feedback/Dialog/Dialog.styles.ts +63 -41
- package/src/components/feedback/Dialog/Dialog.tsx +58 -74
- package/src/components/feedback/Dialog/Dialog.types.native.ts +46 -0
- package/src/components/feedback/Dialog/Dialog.types.ts +24 -41
- package/src/components/feedback/Dialog/DialogParts.native.tsx +257 -0
- package/src/components/feedback/Dialog/NATIVE-NOTES.md +16 -0
- package/src/components/feedback/Dialog/index.native.ts +16 -0
- package/src/components/feedback/Dialog/index.ts +8 -2
- package/src/components/layout/Card/Card.base.ts +92 -0
- package/src/components/layout/Card/Card.helpers.ts +13 -7
- package/src/components/layout/Card/Card.look.native.ts +204 -0
- package/src/components/layout/Card/Card.metrics.ts +171 -0
- package/src/components/layout/Card/Card.native.tsx +130 -0
- package/src/components/layout/Card/Card.styles.ts +88 -48
- package/src/components/layout/Card/Card.tsx +41 -25
- package/src/components/layout/Card/Card.types.native.ts +59 -0
- package/src/components/layout/Card/Card.types.ts +30 -45
- package/src/components/layout/Card/CardParts.native.tsx +262 -0
- package/src/components/layout/Card/NATIVE-NOTES.md +15 -0
- package/src/components/layout/Card/index.native.ts +18 -0
- package/src/components/layout/Card/index.ts +9 -0
- package/src/platform/pulse-ring.native.tsx +82 -0
- package/src/platform/test-id.ts +17 -0
- package/src/tokens/mui-type.ts +2 -1
- package/src/tokens/shadow.ts +59 -0
- package/dist/chunk-6PRA45LC.js.map +0 -1
- package/dist/chunk-D2IASECY.js.map +0 -1
- package/dist/chunk-RI5JZLZL.js.map +0 -1
- package/dist/chunk-S5LE2ARG.js.map +0 -1
- package/dist/chunk-VMF3UXM4.js +0 -137
- package/dist/chunk-VMF3UXM4.js.map +0 -1
- package/dist/chunk-X3HL5C6H.js +0 -1
- package/dist/native/chunks/chunk-HSIND52T.js.map +0 -1
- /package/dist/{chunk-X3HL5C6H.js.map → _internal/components/data-display/FleetMap/FleetBody.js.map} +0 -0
- /package/dist/{chunk-NUE774AN.js.map → chunk-25R3ITGZ.js.map} +0 -0
- /package/dist/{chunk-Z6UEOSL7.js.map → chunk-2FDBR77W.js.map} +0 -0
- /package/dist/{chunk-IFNK5TPI.js.map → chunk-2HPP6RVC.js.map} +0 -0
- /package/dist/{chunk-GCXYCDOA.js.map → chunk-2UGJIKVA.js.map} +0 -0
- /package/dist/{chunk-26Z7QWID.js.map → chunk-343TTIHD.js.map} +0 -0
- /package/dist/{chunk-BRSF5NRT.js.map → chunk-3FLVIVOK.js.map} +0 -0
- /package/dist/{chunk-BDVNAU2C.js.map → chunk-4523RYE7.js.map} +0 -0
- /package/dist/{chunk-4ETQRBZC.js.map → chunk-46UPILLK.js.map} +0 -0
- /package/dist/{chunk-WMALDOF5.js.map → chunk-4G3FGCWX.js.map} +0 -0
- /package/dist/{chunk-I3MDKPGG.js.map → chunk-4IVOHL32.js.map} +0 -0
- /package/dist/{chunk-SAHQLXNN.js.map → chunk-4LRFGB3K.js.map} +0 -0
- /package/dist/{chunk-ZOUWHGV3.js.map → chunk-4MGFUPQT.js.map} +0 -0
- /package/dist/{chunk-TLX66HCW.js.map → chunk-4OHRZW7U.js.map} +0 -0
- /package/dist/{chunk-2QFTAGDH.js.map → chunk-4X4KM4ZB.js.map} +0 -0
- /package/dist/{chunk-7ZH7ZB33.js.map → chunk-4XZXLB4I.js.map} +0 -0
- /package/dist/{chunk-77F36LQQ.js.map → chunk-5OIH36KX.js.map} +0 -0
- /package/dist/{chunk-GDEXYUPF.js.map → chunk-67L7HMEP.js.map} +0 -0
- /package/dist/{chunk-ZFPJBKVZ.js.map → chunk-6JGPPTLX.js.map} +0 -0
- /package/dist/{chunk-VIK3HAUQ.js.map → chunk-73NJCGQG.js.map} +0 -0
- /package/dist/{chunk-D4T646G4.js.map → chunk-7NSX7A5H.js.map} +0 -0
- /package/dist/{chunk-QS7ZGRNS.js.map → chunk-7VN7LFBA.js.map} +0 -0
- /package/dist/{chunk-3UOHKHOT.js.map → chunk-ACFGEZ4Q.js.map} +0 -0
- /package/dist/{chunk-GBNOYRLP.js.map → chunk-AEGXHZQT.js.map} +0 -0
- /package/dist/{chunk-BEH4DN63.js.map → chunk-AJGYHDA5.js.map} +0 -0
- /package/dist/{chunk-65DLYC4S.js.map → chunk-AVGTTWTE.js.map} +0 -0
- /package/dist/{chunk-PXH24VIP.js.map → chunk-B6IURHSZ.js.map} +0 -0
- /package/dist/{chunk-XEE7PLDR.js.map → chunk-BZTFPSWT.js.map} +0 -0
- /package/dist/{chunk-B3BK2SNS.js.map → chunk-C3CMEDSO.js.map} +0 -0
- /package/dist/{chunk-OH3YGJT5.js.map → chunk-CBTY36TU.js.map} +0 -0
- /package/dist/{chunk-JIINGMEB.js.map → chunk-CHPZTF34.js.map} +0 -0
- /package/dist/{chunk-PWXL3QQ6.js.map → chunk-CJBBGMIA.js.map} +0 -0
- /package/dist/{chunk-BPYPUEM5.js.map → chunk-CZJLWCEG.js.map} +0 -0
- /package/dist/{chunk-FPWB5ILF.js.map → chunk-DRHIIUDO.js.map} +0 -0
- /package/dist/{chunk-BEGWE5O4.js.map → chunk-DTC224UJ.js.map} +0 -0
- /package/dist/{chunk-UB76PBDF.js.map → chunk-DVFIE54C.js.map} +0 -0
- /package/dist/{chunk-GO4MVQGC.js.map → chunk-DW5FRWRQ.js.map} +0 -0
- /package/dist/{chunk-6Z4H2Y77.js.map → chunk-E27Y7FF2.js.map} +0 -0
- /package/dist/{chunk-PANMJFDS.js.map → chunk-E55CJV65.js.map} +0 -0
- /package/dist/{chunk-JXAYT6LX.js.map → chunk-EJQW2IYW.js.map} +0 -0
- /package/dist/{chunk-TPIBJP4S.js.map → chunk-EOHKZGOZ.js.map} +0 -0
- /package/dist/{chunk-MSUSZLRE.js.map → chunk-EWT3WMVY.js.map} +0 -0
- /package/dist/{chunk-DH75UNF3.js.map → chunk-FGK2C7JR.js.map} +0 -0
- /package/dist/{chunk-AD776JPA.js.map → chunk-FR67FG2U.js.map} +0 -0
- /package/dist/{chunk-SHQWIDD5.js.map → chunk-GJQYM3PM.js.map} +0 -0
- /package/dist/{chunk-7KTU6YMQ.js.map → chunk-GMTM6EN7.js.map} +0 -0
- /package/dist/{chunk-WROCSDVL.js.map → chunk-GSFNH4C5.js.map} +0 -0
- /package/dist/{chunk-PF5HDFYY.js.map → chunk-GVA5CYKP.js.map} +0 -0
- /package/dist/{chunk-Z5ABJLTM.js.map → chunk-HFXTAEYY.js.map} +0 -0
- /package/dist/{chunk-FOMK3WPG.js.map → chunk-HLYPI5CO.js.map} +0 -0
- /package/dist/{chunk-VR5HDUBK.js.map → chunk-HP2ODXNA.js.map} +0 -0
- /package/dist/{chunk-GBRKP5GZ.js.map → chunk-I5SBTNV2.js.map} +0 -0
- /package/dist/{chunk-TP4N3X2Q.js.map → chunk-IPVYEPXO.js.map} +0 -0
- /package/dist/{chunk-RRO2EOJB.js.map → chunk-JB67KPGM.js.map} +0 -0
- /package/dist/{chunk-5ZOJLYD2.js.map → chunk-JE6RZ5L6.js.map} +0 -0
- /package/dist/{chunk-4HYXEMBP.js.map → chunk-JIKWZDNK.js.map} +0 -0
- /package/dist/{chunk-4MLDWACO.js.map → chunk-JM64OEU6.js.map} +0 -0
- /package/dist/{chunk-2QLVUVVR.js.map → chunk-JSH3HFDQ.js.map} +0 -0
- /package/dist/{chunk-TZ4SFX3M.js.map → chunk-JWW2Z3RH.js.map} +0 -0
- /package/dist/{chunk-QFHH2NU5.js.map → chunk-JXNT5TUP.js.map} +0 -0
- /package/dist/{chunk-FINCVAAR.js.map → chunk-KHWCX4LI.js.map} +0 -0
- /package/dist/{chunk-THZ2NAA4.js.map → chunk-KW7H5O3K.js.map} +0 -0
- /package/dist/{chunk-XLJJ2ZAP.js.map → chunk-L4U23SBX.js.map} +0 -0
- /package/dist/{chunk-ZXLIWOXC.js.map → chunk-LS4FMSHY.js.map} +0 -0
- /package/dist/{chunk-SFAP5EH5.js.map → chunk-LUMF63BM.js.map} +0 -0
- /package/dist/{chunk-CZPU5TW3.js.map → chunk-LYSSO6WC.js.map} +0 -0
- /package/dist/{chunk-736HP6BL.js.map → chunk-M4LQRQFL.js.map} +0 -0
- /package/dist/{chunk-426FTCMF.js.map → chunk-MESRKY67.js.map} +0 -0
- /package/dist/{chunk-B5PYBEXO.js.map → chunk-MP4VSWHK.js.map} +0 -0
- /package/dist/{chunk-UOPQOBQZ.js.map → chunk-MYGNIFZC.js.map} +0 -0
- /package/dist/{chunk-6RGWDKUL.js.map → chunk-N2TUX4A5.js.map} +0 -0
- /package/dist/{chunk-VWGR5XUP.js.map → chunk-NWNSUHEB.js.map} +0 -0
- /package/dist/{chunk-4K7FDVAB.js.map → chunk-O3336DJ6.js.map} +0 -0
- /package/dist/{chunk-YCCKY5VW.js.map → chunk-OFOYMZRY.js.map} +0 -0
- /package/dist/{chunk-OCXCH2ZW.js.map → chunk-OIKQO73C.js.map} +0 -0
- /package/dist/{chunk-QZDBWXZG.js.map → chunk-OP65D4UR.js.map} +0 -0
- /package/dist/{chunk-MCRIT46W.js.map → chunk-OTH7H3IP.js.map} +0 -0
- /package/dist/{chunk-BQQONDW5.js.map → chunk-OVLNF4AZ.js.map} +0 -0
- /package/dist/{chunk-AGYGNNOM.js.map → chunk-PQECNGDE.js.map} +0 -0
- /package/dist/{chunk-IIROZKW5.js.map → chunk-PRUSQQDT.js.map} +0 -0
- /package/dist/{chunk-IPE5FFFD.js.map → chunk-PUBPZOQJ.js.map} +0 -0
- /package/dist/{chunk-FB36IHCE.js.map → chunk-QFVFHIHE.js.map} +0 -0
- /package/dist/{chunk-V5P5Q6HM.js.map → chunk-QJRDDVZ2.js.map} +0 -0
- /package/dist/{chunk-WBKWIFXA.js.map → chunk-QYNCPS5W.js.map} +0 -0
- /package/dist/{chunk-VPHOSIPB.js.map → chunk-R6SNYC3D.js.map} +0 -0
- /package/dist/{chunk-STH66VLA.js.map → chunk-R7R3LOKW.js.map} +0 -0
- /package/dist/{chunk-W2UTDN4T.js.map → chunk-RBGOGTT2.js.map} +0 -0
- /package/dist/{chunk-VWBWKLXX.js.map → chunk-SX3V2DLV.js.map} +0 -0
- /package/dist/{chunk-P7FQUGED.js.map → chunk-TNVO2DTB.js.map} +0 -0
- /package/dist/{chunk-WTIOCG4M.js.map → chunk-TOYEP23N.js.map} +0 -0
- /package/dist/{chunk-G2IPK2XE.js.map → chunk-TPLKJHNN.js.map} +0 -0
- /package/dist/{chunk-U2AC4AQX.js.map → chunk-TU5EIKJA.js.map} +0 -0
- /package/dist/{chunk-ZGHIHEND.js.map → chunk-TW3BXVEU.js.map} +0 -0
- /package/dist/{chunk-BGYLL467.js.map → chunk-TXHJX2NG.js.map} +0 -0
- /package/dist/{chunk-5RQ7N63M.js.map → chunk-TZDDL3DR.js.map} +0 -0
- /package/dist/{chunk-RPQ3W2C6.js.map → chunk-U2ZDN2AL.js.map} +0 -0
- /package/dist/{chunk-WPZT2JD4.js.map → chunk-U7Q2Y6WG.js.map} +0 -0
- /package/dist/{chunk-E46PG577.js.map → chunk-URXT5TOY.js.map} +0 -0
- /package/dist/{chunk-P6IPJYCS.js.map → chunk-VNNG46TS.js.map} +0 -0
- /package/dist/{chunk-CXVMD6FE.js.map → chunk-VON4BFK4.js.map} +0 -0
- /package/dist/{chunk-2SWQ6HIK.js.map → chunk-W3FAKT3D.js.map} +0 -0
- /package/dist/{chunk-JDMYD6QC.js.map → chunk-W4SDVTZC.js.map} +0 -0
- /package/dist/{chunk-7MAOQIWA.js.map → chunk-W4YWU7LQ.js.map} +0 -0
- /package/dist/{chunk-Y46RBFBV.js.map → chunk-W7Y6RA6W.js.map} +0 -0
- /package/dist/{chunk-XFU2S6XT.js.map → chunk-WGRS4PGY.js.map} +0 -0
- /package/dist/{chunk-OOGEYCJH.js.map → chunk-WIT3Y7JT.js.map} +0 -0
- /package/dist/{chunk-KT6HWAEN.js.map → chunk-WQA4LIIK.js.map} +0 -0
- /package/dist/{chunk-J2KSG754.js.map → chunk-WRDPWEIC.js.map} +0 -0
- /package/dist/{chunk-RPWEXIAW.js.map → chunk-X5MPHXG5.js.map} +0 -0
- /package/dist/{chunk-UEIVXFUC.js.map → chunk-XELVDPKL.js.map} +0 -0
- /package/dist/{chunk-RRZBATXK.js.map → chunk-XKV5ZIBG.js.map} +0 -0
- /package/dist/{chunk-ZKFYBC6G.js.map → chunk-XSF6AXEU.js.map} +0 -0
- /package/dist/{chunk-R6RVBYTU.js.map → chunk-XUJG2HFW.js.map} +0 -0
- /package/dist/{chunk-FRQ4HNGF.js.map → chunk-YJ4HM25H.js.map} +0 -0
- /package/dist/{chunk-TVO5STZB.js.map → chunk-YQ6TNHAC.js.map} +0 -0
- /package/dist/{chunk-BNNSO4MC.js.map → chunk-YTOYMJPM.js.map} +0 -0
- /package/dist/{chunk-IH4RSRQA.js.map → chunk-ZA4U5GDU.js.map} +0 -0
- /package/dist/native/chunks/{chunk-OGWPPQL4.js.map → chunk-75JQYVDZ.js.map} +0 -0
- /package/dist/native/chunks/{chunk-WKMDCNIN.js.map → chunk-7LTVGW23.js.map} +0 -0
- /package/dist/native/chunks/{chunk-RJVM5YDE.js.map → chunk-ATS7STZJ.js.map} +0 -0
- /package/dist/native/chunks/{chunk-YTHR4Y5P.js.map → chunk-GWGIWQO7.js.map} +0 -0
- /package/dist/native/chunks/{chunk-D4EYAXNG.js.map → chunk-QYUD3S6F.js.map} +0 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Pressable,
|
|
4
|
+
ScrollView,
|
|
5
|
+
StyleSheet,
|
|
6
|
+
Text as RNText,
|
|
7
|
+
View,
|
|
8
|
+
type TextStyle,
|
|
9
|
+
type ViewStyle,
|
|
10
|
+
} from 'react-native';
|
|
11
|
+
|
|
12
|
+
import {
|
|
13
|
+
DIALOG_ACTIONS,
|
|
14
|
+
DIALOG_CLOSE_BUTTON,
|
|
15
|
+
DIALOG_CONTENT_PADDING_UNITS,
|
|
16
|
+
DIALOG_HEADER_CHILDREN_PADDING_UNITS,
|
|
17
|
+
DIALOG_TITLE,
|
|
18
|
+
DIALOG_TITLED_BODY_PADDING_TOP_UNITS,
|
|
19
|
+
} from './Dialog.metrics';
|
|
20
|
+
import type {
|
|
21
|
+
DialogActionsAlignment,
|
|
22
|
+
DialogActionsProps,
|
|
23
|
+
DialogContentProps,
|
|
24
|
+
DialogHeaderProps,
|
|
25
|
+
} from './Dialog.types.native';
|
|
26
|
+
import { Icon } from '../../../icons/Icon.native';
|
|
27
|
+
import { childTestId, slotTestId, withoutTestIdProps } from '../../../platform/test-id';
|
|
28
|
+
import { renderTextChildren } from '../../../platform/text-children';
|
|
29
|
+
import { useUiTheme } from '../../../provider/use-ui-theme.native';
|
|
30
|
+
import { muiTypeStyle } from '../../../tokens/mui-type';
|
|
31
|
+
import type { UiTheme } from '../../../tokens/theme';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* THE THREE SLOTS A DIALOG IS BUILT OUT OF, ON REACT NATIVE.
|
|
35
|
+
*
|
|
36
|
+
* The web overrides only padding, alignment and the dividers, so the rest of
|
|
37
|
+
* the numbers are MUI's own and are restated in `Dialog.metrics.ts` rather than
|
|
38
|
+
* re-invented.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Is there a title above this body?
|
|
43
|
+
*
|
|
44
|
+
* The web asks the DOM — `.MuiDialogTitle-root + &` — because only the CSS knows
|
|
45
|
+
* which `DialogContent` actually FOLLOWS the title. React Native has no sibling
|
|
46
|
+
* selector, so `Dialog` says so through context instead; the difference is that
|
|
47
|
+
* a second `DialogContent` further down gets the tighter top padding too.
|
|
48
|
+
*/
|
|
49
|
+
export const DialogTitledContext = React.createContext(false);
|
|
50
|
+
|
|
51
|
+
/** The body text of a slot, in MUI's `body1`, so a bare string is not unstyled. */
|
|
52
|
+
export const dialogBodyTextStyle = (theme: UiTheme): TextStyle => ({
|
|
53
|
+
...muiTypeStyle(theme, 'body1'),
|
|
54
|
+
color: theme.palette.text.primary,
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
/** MUI's dialog title: `h6`, in the body ink. */
|
|
58
|
+
export const dialogTitleStyle = (theme: UiTheme): TextStyle => ({
|
|
59
|
+
...muiTypeStyle(theme, 'h6'),
|
|
60
|
+
color: theme.palette.text.primary,
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
/** The subtitle under it: `body2`, muted, one half-unit down. */
|
|
64
|
+
export const dialogSubtitleStyle = (theme: UiTheme): TextStyle => ({
|
|
65
|
+
...muiTypeStyle(theme, 'body2'),
|
|
66
|
+
color: theme.palette.text.secondary,
|
|
67
|
+
marginTop: theme.spacing(DIALOG_TITLE.subtitleGapUnits),
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
function CloseButton({ onPress, testID }: { onPress: () => void; testID: string }): React.JSX.Element {
|
|
71
|
+
const theme = useUiTheme();
|
|
72
|
+
return (
|
|
73
|
+
<Pressable
|
|
74
|
+
role="button"
|
|
75
|
+
aria-label="close"
|
|
76
|
+
testID={testID}
|
|
77
|
+
onPress={onPress}
|
|
78
|
+
style={({ pressed }) => [
|
|
79
|
+
styles.close,
|
|
80
|
+
pressed ? { backgroundColor: theme.palette.action.hover } : null,
|
|
81
|
+
]}
|
|
82
|
+
>
|
|
83
|
+
<Icon name="Close" size={DIALOG_CLOSE_BUTTON.iconSize} color={theme.palette.text.secondary} />
|
|
84
|
+
</Pressable>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export function DialogHeader({
|
|
89
|
+
children,
|
|
90
|
+
title,
|
|
91
|
+
subtitle,
|
|
92
|
+
showCloseButton = true,
|
|
93
|
+
onClose,
|
|
94
|
+
...others
|
|
95
|
+
}: DialogHeaderProps): React.JSX.Element {
|
|
96
|
+
const theme = useUiTheme();
|
|
97
|
+
const { style, ...viewProps } = withoutTestIdProps(others);
|
|
98
|
+
|
|
99
|
+
if (children) {
|
|
100
|
+
return (
|
|
101
|
+
<View
|
|
102
|
+
testID={slotTestId(others, 'header', 'dialog')}
|
|
103
|
+
style={[
|
|
104
|
+
{
|
|
105
|
+
padding: theme.spacing(DIALOG_HEADER_CHILDREN_PADDING_UNITS),
|
|
106
|
+
borderBottomWidth: 1,
|
|
107
|
+
borderBottomColor: theme.palette.divider,
|
|
108
|
+
borderStyle: 'solid',
|
|
109
|
+
},
|
|
110
|
+
style,
|
|
111
|
+
]}
|
|
112
|
+
{...viewProps}
|
|
113
|
+
>
|
|
114
|
+
{renderTextChildren(children, dialogBodyTextStyle(theme))}
|
|
115
|
+
</View>
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const paddingBottom = theme.spacing(
|
|
120
|
+
subtitle ? DIALOG_TITLE.paddingBottomUnits.withSubtitle : DIALOG_TITLE.paddingBottomUnits.plain,
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
return (
|
|
124
|
+
<View
|
|
125
|
+
testID={slotTestId(others, 'title', 'dialog')}
|
|
126
|
+
style={[styles.header, { paddingBottom }, style]}
|
|
127
|
+
{...viewProps}
|
|
128
|
+
>
|
|
129
|
+
<View style={styles.headerText}>
|
|
130
|
+
{/*
|
|
131
|
+
MUI's `DialogTitle` renders `component: "h2"`, so the web dialog has a
|
|
132
|
+
heading and the native one had none. `role`/`aria-level` are what
|
|
133
|
+
react-native-web maps to an `<h2>`; a device reads the same pair
|
|
134
|
+
through `accessibilityRole="header"`, which RN derives from `role`.
|
|
135
|
+
*/}
|
|
136
|
+
<RNText role="heading" aria-level={2} style={dialogTitleStyle(theme)}>
|
|
137
|
+
{title}
|
|
138
|
+
</RNText>
|
|
139
|
+
{subtitle ? <RNText style={dialogSubtitleStyle(theme)}>{subtitle}</RNText> : null}
|
|
140
|
+
</View>
|
|
141
|
+
{showCloseButton && onClose ? (
|
|
142
|
+
<CloseButton onPress={onClose} testID={childTestId(others, 'close', 'dialog')} />
|
|
143
|
+
) : null}
|
|
144
|
+
</View>
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
DialogHeader.displayName = 'DialogHeader';
|
|
149
|
+
|
|
150
|
+
export function DialogContent({
|
|
151
|
+
children,
|
|
152
|
+
dividers = false,
|
|
153
|
+
dense = false,
|
|
154
|
+
...others
|
|
155
|
+
}: DialogContentProps): React.JSX.Element {
|
|
156
|
+
const theme = useUiTheme();
|
|
157
|
+
const titled = React.useContext(DialogTitledContext);
|
|
158
|
+
const { style, ...viewProps } = withoutTestIdProps(others);
|
|
159
|
+
const padding = theme.spacing(
|
|
160
|
+
dense ? DIALOG_CONTENT_PADDING_UNITS.dense : DIALOG_CONTENT_PADDING_UNITS.normal,
|
|
161
|
+
);
|
|
162
|
+
const paddingTop = titled
|
|
163
|
+
? theme.spacing(DIALOG_TITLED_BODY_PADDING_TOP_UNITS)
|
|
164
|
+
: padding;
|
|
165
|
+
|
|
166
|
+
return (
|
|
167
|
+
<ScrollView
|
|
168
|
+
testID={slotTestId(others, 'content', 'dialog')}
|
|
169
|
+
style={[
|
|
170
|
+
styles.content,
|
|
171
|
+
dividers
|
|
172
|
+
? {
|
|
173
|
+
borderTopWidth: 1,
|
|
174
|
+
borderBottomWidth: 1,
|
|
175
|
+
borderStyle: 'solid',
|
|
176
|
+
borderColor: theme.palette.divider,
|
|
177
|
+
}
|
|
178
|
+
: null,
|
|
179
|
+
style,
|
|
180
|
+
]}
|
|
181
|
+
contentContainerStyle={{ padding, paddingTop }}
|
|
182
|
+
{...viewProps}
|
|
183
|
+
>
|
|
184
|
+
{renderTextChildren(children, dialogBodyTextStyle(theme))}
|
|
185
|
+
</ScrollView>
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
DialogContent.displayName = 'DialogContent';
|
|
190
|
+
|
|
191
|
+
const JUSTIFY: Record<DialogActionsAlignment, NonNullable<ViewStyle['justifyContent']>> = {
|
|
192
|
+
left: 'flex-start',
|
|
193
|
+
center: 'center',
|
|
194
|
+
right: 'flex-end',
|
|
195
|
+
'space-between': 'space-between',
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
export function DialogActions({
|
|
199
|
+
children,
|
|
200
|
+
alignment = 'right',
|
|
201
|
+
spacing = DIALOG_ACTIONS.defaultSpacingUnits,
|
|
202
|
+
...others
|
|
203
|
+
}: DialogActionsProps): React.JSX.Element {
|
|
204
|
+
const theme = useUiTheme();
|
|
205
|
+
const { style, ...viewProps } = withoutTestIdProps(others);
|
|
206
|
+
|
|
207
|
+
return (
|
|
208
|
+
<View
|
|
209
|
+
testID={slotTestId(others, 'actions', 'dialog')}
|
|
210
|
+
style={[
|
|
211
|
+
styles.actions,
|
|
212
|
+
{
|
|
213
|
+
padding: theme.spacing(DIALOG_ACTIONS.paddingUnits),
|
|
214
|
+
justifyContent: JUSTIFY[alignment],
|
|
215
|
+
gap: theme.spacing(spacing),
|
|
216
|
+
},
|
|
217
|
+
style,
|
|
218
|
+
]}
|
|
219
|
+
{...viewProps}
|
|
220
|
+
>
|
|
221
|
+
{renderTextChildren(children, dialogBodyTextStyle(theme))}
|
|
222
|
+
</View>
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
DialogActions.displayName = 'DialogActions';
|
|
227
|
+
|
|
228
|
+
const styles = StyleSheet.create({
|
|
229
|
+
header: {
|
|
230
|
+
flexDirection: 'row',
|
|
231
|
+
alignItems: 'center',
|
|
232
|
+
justifyContent: 'space-between',
|
|
233
|
+
flexGrow: 0,
|
|
234
|
+
flexShrink: 0,
|
|
235
|
+
paddingTop: DIALOG_TITLE.padding.top,
|
|
236
|
+
paddingHorizontal: DIALOG_TITLE.padding.horizontal,
|
|
237
|
+
},
|
|
238
|
+
headerText: {
|
|
239
|
+
flexShrink: 1,
|
|
240
|
+
},
|
|
241
|
+
close: {
|
|
242
|
+
padding: DIALOG_CLOSE_BUTTON.padding,
|
|
243
|
+
borderRadius: 9999,
|
|
244
|
+
alignItems: 'center',
|
|
245
|
+
justifyContent: 'center',
|
|
246
|
+
},
|
|
247
|
+
content: {
|
|
248
|
+
flexGrow: 1,
|
|
249
|
+
flexShrink: 1,
|
|
250
|
+
},
|
|
251
|
+
actions: {
|
|
252
|
+
flexDirection: 'row',
|
|
253
|
+
alignItems: 'center',
|
|
254
|
+
flexGrow: 0,
|
|
255
|
+
flexShrink: 0,
|
|
256
|
+
},
|
|
257
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Dialog on React Native
|
|
2
|
+
|
|
3
|
+
Known rendering gaps, one bullet each; `pnpm native:ledger` reads them.
|
|
4
|
+
|
|
5
|
+
- `glass` paints its 0.1 paper wash and primary hairline without the 20px backdrop blur, and the scrim behind it is a flat `alpha(black, 0.2)` without its 8px blur — React Native has no backdrop filter.
|
|
6
|
+
- `gradient` adds nothing on native: it is a `linear-gradient` background IMAGE layered over the paper colour, and React Native core has neither a gradient fill nor a second background layer.
|
|
7
|
+
- `role="dialog"` sits on React Native's `Modal`, which is the dialog on this side; the web puts it on MUI's paper. react-native-web gives that role to the TOP-MOST modal only, so two stacked dialogs announce one.
|
|
8
|
+
- The modal mounts and unmounts without a transition where the web fades the paper in through MUI's `Fade`. React Native's own `animationType` is forwarded, so a consumer who wants `"fade"` or `"slide"` passes it.
|
|
9
|
+
- The paper is `maxHeight: '100%'` inside an overlay inset by the web's `theme.spacing(2)` margin; the web writes `calc(100% - 64px)`, which React Native has no `calc` for, and 90vw, which the inset overlay stands in for.
|
|
10
|
+
- `borderRadius` has no effect on `variant="drawer"` on EITHER renderer, so native paints the drawer SQUARE — which is what the web shows. Two things have to fail for that and both do: the web builds `${radius}px 0 0 ${radius}px` out of `theme.spacing()`, which already returns a px string, so the declaration reads `16pxpx 0 0 16pxpx` and is dropped; and that `sx` lands on a plain `Box` inside the Drawer rather than on a Paper, and MUI renders the Drawer's own Paper with `square: true`, so `shape.borderRadius` paints nothing either. Rounding the drawer is a web change (`Dialog.styles.ts` plus where the `sx` lands), made once, for both.
|
|
11
|
+
- A `DialogContent` or `DialogActions` passed through a COMPONENT boundary still gets the padded wrapper here. The web catches that case with a `:has()` selector, which asks the DOM one step after React can; native has only the element-type check, so a body split into its own component is padded twice and stops being a sibling of the action bar.
|
|
12
|
+
- `DialogContent` is a `ScrollView` — React Native's `overflow-y: auto` — so its padding lives on the scrolling content container rather than on the box the test id names.
|
|
13
|
+
- The tighter top padding a body gets under a title (FUT-544) is decided by context rather than by the web's `.MuiDialogTitle-root + &`, so a SECOND `DialogContent` further down the dialog gets it too.
|
|
14
|
+
- A `glow`ing paper stops clipping its children to its corners: a view's own shadow is clipped by its own overflow on a device, so the halo the caller asked for would not paint. The web keeps its clip and shows both.
|
|
15
|
+
- The close button is a `Pressable` around the shared `Close` glyph at MUI's 8px `IconButton` padding; its pressed wash stands in for the web's hover.
|
|
16
|
+
- Title, subtitle and raw text children are set in MUI's default `h6`/`body2`/`body1` numbers; a host that re-themes MUI's typography variants moves the web only.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { Dialog } from './Dialog.native';
|
|
2
|
+
export { DialogActions, DialogContent, DialogHeader } from './DialogParts.native';
|
|
3
|
+
export type {
|
|
4
|
+
DialogActionsAlignment,
|
|
5
|
+
DialogActionsBaseProps,
|
|
6
|
+
DialogActionsProps,
|
|
7
|
+
DialogBaseProps,
|
|
8
|
+
DialogBorderRadius,
|
|
9
|
+
DialogContentBaseProps,
|
|
10
|
+
DialogContentProps,
|
|
11
|
+
DialogHeaderBaseProps,
|
|
12
|
+
DialogHeaderProps,
|
|
13
|
+
DialogProps,
|
|
14
|
+
DialogSize,
|
|
15
|
+
DialogVariant,
|
|
16
|
+
} from './Dialog.types.native';
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
export { Dialog, DialogActions,DialogContent, DialogHeader } from './Dialog';
|
|
1
|
+
export { Dialog, DialogActions, DialogContent, DialogHeader } from './Dialog';
|
|
2
2
|
export type {
|
|
3
|
+
DialogActionsAlignment,
|
|
4
|
+
DialogActionsBaseProps,
|
|
3
5
|
DialogActionsProps,
|
|
6
|
+
DialogBaseProps,
|
|
7
|
+
DialogBorderRadius,
|
|
8
|
+
DialogContentBaseProps,
|
|
4
9
|
DialogContentProps,
|
|
10
|
+
DialogHeaderBaseProps,
|
|
5
11
|
DialogHeaderProps,
|
|
6
12
|
DialogProps,
|
|
7
13
|
DialogSize,
|
|
8
14
|
DialogVariant,
|
|
9
|
-
} from './Dialog.types';
|
|
15
|
+
} from './Dialog.types';
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* THE CONTRACT BOTH `Card` RENDERERS HONOUR — and nothing else.
|
|
5
|
+
*
|
|
6
|
+
* This file imports no MUI and no react-native, on purpose: it ships in BOTH
|
|
7
|
+
* declaration outputs (`dist/types` and `dist/types-native`), and a native
|
|
8
|
+
* consumer has no `@mui/material` to resolve a type import against.
|
|
9
|
+
*
|
|
10
|
+
* Handlers are NOT here. Their names are the same on both sides (`onClick`,
|
|
11
|
+
* `onFocus`, `onBlur`) but their event types are the renderer's own, so each
|
|
12
|
+
* side declares them beside its own extras — except {@link
|
|
13
|
+
* CardBaseProps.onExpandToggle}, whose argument is a boolean rather than an
|
|
14
|
+
* event and is therefore the same type on both.
|
|
15
|
+
*/
|
|
16
|
+
export type CardVariant = 'elevated' | 'outlined' | 'glass' | 'gradient' | 'neumorphic' | 'section';
|
|
17
|
+
export type CardEntranceAnimation =
|
|
18
|
+
| 'fade'
|
|
19
|
+
| 'slide-up'
|
|
20
|
+
| 'slide-down'
|
|
21
|
+
| 'slide-left'
|
|
22
|
+
| 'slide-right'
|
|
23
|
+
| 'zoom'
|
|
24
|
+
| 'grow'
|
|
25
|
+
| 'none';
|
|
26
|
+
|
|
27
|
+
/** The named radii a card can be cut to. `full` is a percentage, not a length. */
|
|
28
|
+
export type CardBorderRadius = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
29
|
+
|
|
30
|
+
export interface CardBaseProps {
|
|
31
|
+
children: React.ReactNode;
|
|
32
|
+
variant?: CardVariant;
|
|
33
|
+
/** Paints the hover/press surface and marks the card as a pointer target. */
|
|
34
|
+
interactive?: boolean;
|
|
35
|
+
glow?: boolean;
|
|
36
|
+
pulse?: boolean;
|
|
37
|
+
borderRadius?: CardBorderRadius;
|
|
38
|
+
/** Dims the card, blocks pointer events and centres a spinner over it. */
|
|
39
|
+
loading?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Accepted and ignored on BOTH renderers — reserved, and extracted so they
|
|
42
|
+
* never reach the underlying element as unknown attributes.
|
|
43
|
+
*/
|
|
44
|
+
expandable?: boolean;
|
|
45
|
+
expanded?: boolean;
|
|
46
|
+
onExpandToggle?: (expanded: boolean) => void;
|
|
47
|
+
entranceAnimation?: CardEntranceAnimation;
|
|
48
|
+
animationDelay?: number;
|
|
49
|
+
skeleton?: boolean;
|
|
50
|
+
hoverScale?: number;
|
|
51
|
+
dataTestId?: string;
|
|
52
|
+
testID?: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface CardHeaderBaseProps {
|
|
56
|
+
title?: React.ReactNode;
|
|
57
|
+
subtitle?: React.ReactNode;
|
|
58
|
+
action?: React.ReactNode;
|
|
59
|
+
avatar?: React.ReactNode;
|
|
60
|
+
/** Custom header content; when given it replaces the title/subtitle layout. */
|
|
61
|
+
children?: React.ReactNode;
|
|
62
|
+
dataTestId?: string;
|
|
63
|
+
testID?: string;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface CardContentBaseProps {
|
|
67
|
+
children: React.ReactNode;
|
|
68
|
+
dense?: boolean;
|
|
69
|
+
dataTestId?: string;
|
|
70
|
+
testID?: string;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export type CardActionsAlignment = 'left' | 'center' | 'right' | 'space-between';
|
|
74
|
+
|
|
75
|
+
export interface CardActionsBaseProps {
|
|
76
|
+
children: React.ReactNode;
|
|
77
|
+
disableSpacing?: boolean;
|
|
78
|
+
alignment?: CardActionsAlignment;
|
|
79
|
+
dataTestId?: string;
|
|
80
|
+
testID?: string;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export interface CardMediaBaseProps {
|
|
84
|
+
/** The image URL. */
|
|
85
|
+
image?: string;
|
|
86
|
+
/** The media's accessible name. */
|
|
87
|
+
title?: string;
|
|
88
|
+
height?: number | string;
|
|
89
|
+
children?: React.ReactNode;
|
|
90
|
+
dataTestId?: string;
|
|
91
|
+
testID?: string;
|
|
92
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CardBaseProps } from './Card.base';
|
|
2
2
|
|
|
3
3
|
type CardDefaultedKeys =
|
|
4
4
|
| 'variant'
|
|
@@ -8,9 +8,15 @@ type CardDefaultedKeys =
|
|
|
8
8
|
| 'borderRadius'
|
|
9
9
|
| 'loading';
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Generic over the renderer's own props: the web and the native `Card` pass
|
|
13
|
+
* different handler types (and different style props) through, and both come
|
|
14
|
+
* back out untouched.
|
|
15
|
+
*/
|
|
16
|
+
type ResolvedCardProps<P extends CardBaseProps> = P &
|
|
17
|
+
Required<Pick<CardBaseProps, CardDefaultedKeys>>;
|
|
12
18
|
|
|
13
|
-
const CARD_DEFAULTS: Pick<
|
|
19
|
+
const CARD_DEFAULTS: Required<Pick<CardBaseProps, CardDefaultedKeys>> = {
|
|
14
20
|
variant: 'elevated',
|
|
15
21
|
interactive: false,
|
|
16
22
|
glow: false,
|
|
@@ -21,10 +27,10 @@ const CARD_DEFAULTS: Pick<CardProps, CardDefaultedKeys> = {
|
|
|
21
27
|
|
|
22
28
|
// Strips explicitly-undefined props before the merge, so `glow={undefined}` still
|
|
23
29
|
// falls back to the default exactly as a destructuring default would.
|
|
24
|
-
const definedProps = (props:
|
|
30
|
+
const definedProps = <P extends CardBaseProps>(props: P): Partial<P> =>
|
|
25
31
|
Object.fromEntries(
|
|
26
32
|
Object.entries(props).filter(([, value]) => value !== undefined),
|
|
27
|
-
) as Partial<
|
|
33
|
+
) as Partial<P>;
|
|
28
34
|
|
|
29
|
-
export const resolveCardProps = (props:
|
|
30
|
-
({ ...CARD_DEFAULTS, ...definedProps(props) }) as ResolvedCardProps
|
|
35
|
+
export const resolveCardProps = <P extends CardBaseProps>(props: P): ResolvedCardProps<P> =>
|
|
36
|
+
({ ...CARD_DEFAULTS, ...definedProps(props) }) as ResolvedCardProps<P>;
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import type { ViewStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import type { CardBorderRadius, CardVariant } from './Card.base';
|
|
4
|
+
import {
|
|
5
|
+
CARD_BORDER_WIDTH,
|
|
6
|
+
CARD_GLASS,
|
|
7
|
+
CARD_GLOW,
|
|
8
|
+
CARD_GRADIENT,
|
|
9
|
+
CARD_LOADING,
|
|
10
|
+
CARD_NEUMORPHIC,
|
|
11
|
+
CARD_PAPER_SHADOW,
|
|
12
|
+
CARD_RADIUS_FULL,
|
|
13
|
+
CARD_RADIUS_UNITS,
|
|
14
|
+
CARD_SECTION_BACKGROUND,
|
|
15
|
+
neumorphicShadows,
|
|
16
|
+
} from './Card.metrics';
|
|
17
|
+
import { alpha } from '../../../tokens/color';
|
|
18
|
+
import { BLACK, WHITE, drop, halo, type UiShadow } from '../../../tokens/shadow';
|
|
19
|
+
import type { UiTheme } from '../../../tokens/theme';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* WHAT THE NATIVE `Card` PAINTS — the arithmetic, with no JSX in sight.
|
|
23
|
+
*
|
|
24
|
+
* The web builds one `sx` object by spreading base, `interactive`, `glow`,
|
|
25
|
+
* `pulse` and finally the variant's own surface over each other; whichever
|
|
26
|
+
* wrote a property last wins. The composition here spreads the SAME things in
|
|
27
|
+
* the SAME order, which is why `glow` shows through an `elevated` card (whose
|
|
28
|
+
* surface declares no shadow) and is buried by a `glass` one (whose surface
|
|
29
|
+
* does) on both renderers.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/** The named radius as a length. `full` stays a percentage of the box. */
|
|
33
|
+
export function cardRadius(theme: UiTheme, radius: CardBorderRadius): number | string {
|
|
34
|
+
if (radius === 'full') return CARD_RADIUS_FULL;
|
|
35
|
+
return theme.spacing(CARD_RADIUS_UNITS[radius] ?? CARD_RADIUS_UNITS.md);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
interface Surface {
|
|
39
|
+
surface: ViewStyle;
|
|
40
|
+
/** What the web changes on `:hover`; native applies it while pressed. */
|
|
41
|
+
hover: ViewStyle;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function glassSurface(theme: UiTheme, lifted: boolean): Surface {
|
|
45
|
+
return {
|
|
46
|
+
surface: {
|
|
47
|
+
backgroundColor: alpha(theme.palette.background.paper, CARD_GLASS.backgroundAlpha.rest),
|
|
48
|
+
borderWidth: CARD_BORDER_WIDTH,
|
|
49
|
+
borderStyle: 'solid',
|
|
50
|
+
borderColor: alpha(theme.palette.primary.main, CARD_GLASS.borderAlpha.rest),
|
|
51
|
+
boxShadow: drop(
|
|
52
|
+
CARD_GLASS.shadow.offsetY,
|
|
53
|
+
CARD_GLASS.shadow.blurRadius,
|
|
54
|
+
alpha(BLACK, CARD_GLASS.shadow.alpha),
|
|
55
|
+
),
|
|
56
|
+
},
|
|
57
|
+
hover: {
|
|
58
|
+
backgroundColor: alpha(
|
|
59
|
+
theme.palette.background.paper,
|
|
60
|
+
lifted ? CARD_GLASS.backgroundAlpha.lifted : CARD_GLASS.backgroundAlpha.rest,
|
|
61
|
+
),
|
|
62
|
+
borderColor: alpha(theme.palette.primary.main, CARD_GLASS.borderAlpha.lifted),
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function neumorphicSurface(theme: UiTheme, lifted: boolean): Surface {
|
|
68
|
+
const { dark, light } = CARD_NEUMORPHIC.alpha;
|
|
69
|
+
const pair = (raised: boolean): UiShadow[] =>
|
|
70
|
+
theme.mode === 'dark'
|
|
71
|
+
? neumorphicShadows(raised, alpha(BLACK, dark.near), alpha(WHITE, dark.far))
|
|
72
|
+
: neumorphicShadows(
|
|
73
|
+
raised,
|
|
74
|
+
alpha(theme.palette.grey[400], raised ? light.near.lifted : light.near.rest),
|
|
75
|
+
alpha(WHITE, raised ? light.far.lifted : light.far.rest),
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
surface: {
|
|
80
|
+
backgroundColor: theme.mode === 'dark' ? theme.palette.grey[800] : theme.palette.grey[100],
|
|
81
|
+
boxShadow: pair(false),
|
|
82
|
+
borderWidth: 0,
|
|
83
|
+
},
|
|
84
|
+
hover: { boxShadow: pair(lifted) },
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function sectionSurface(theme: UiTheme, lifted: boolean): Surface {
|
|
89
|
+
const wash = CARD_SECTION_BACKGROUND[theme.mode === 'dark' ? 'dark' : 'light'];
|
|
90
|
+
return {
|
|
91
|
+
surface: { backgroundColor: wash.rest, borderWidth: 0, boxShadow: undefined },
|
|
92
|
+
hover: { backgroundColor: lifted ? wash.lifted : wash.rest },
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Each variant's resting surface and whatever it changes on hover — the same
|
|
98
|
+
* split `Card.styles.ts` makes, in React Native's property names.
|
|
99
|
+
*
|
|
100
|
+
* `gradient` is the one honest gap: React Native core has no gradient fill, so
|
|
101
|
+
* it paints the gradient's FIRST stop. The parity ledger records it.
|
|
102
|
+
*/
|
|
103
|
+
export function cardSurface(theme: UiTheme, variant: CardVariant, lifted: boolean): Surface {
|
|
104
|
+
switch (variant) {
|
|
105
|
+
case 'outlined':
|
|
106
|
+
return {
|
|
107
|
+
surface: {
|
|
108
|
+
borderWidth: CARD_BORDER_WIDTH,
|
|
109
|
+
borderStyle: 'solid',
|
|
110
|
+
borderColor: theme.palette.divider,
|
|
111
|
+
boxShadow: undefined,
|
|
112
|
+
},
|
|
113
|
+
hover: { borderColor: lifted ? theme.palette.primary.main : theme.palette.divider },
|
|
114
|
+
};
|
|
115
|
+
case 'glass':
|
|
116
|
+
return glassSurface(theme, lifted);
|
|
117
|
+
case 'gradient':
|
|
118
|
+
return {
|
|
119
|
+
surface: {
|
|
120
|
+
backgroundColor: theme.palette.primary.main,
|
|
121
|
+
boxShadow: drop(
|
|
122
|
+
CARD_GRADIENT.shadow.offsetY,
|
|
123
|
+
CARD_GRADIENT.shadow.blurRadius,
|
|
124
|
+
alpha(theme.palette.primary.main, CARD_GRADIENT.shadow.alpha),
|
|
125
|
+
),
|
|
126
|
+
},
|
|
127
|
+
hover: {
|
|
128
|
+
backgroundColor: lifted ? theme.palette.primary.dark : theme.palette.primary.main,
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
case 'neumorphic':
|
|
132
|
+
return neumorphicSurface(theme, lifted);
|
|
133
|
+
case 'section':
|
|
134
|
+
return sectionSurface(theme, lifted);
|
|
135
|
+
default:
|
|
136
|
+
// `elevated` declares only MUI's inert `elevation`, so the paper shadow
|
|
137
|
+
// the base laid down (or a `glow` over it) is what shows.
|
|
138
|
+
return { surface: {}, hover: {} };
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/** The ink a card's own text inherits: `gradient` flips it, everything else is body ink. */
|
|
143
|
+
export const cardInk = (theme: UiTheme, variant: CardVariant): string =>
|
|
144
|
+
variant === 'gradient' ? theme.palette.primary.contrastText : theme.palette.text.primary;
|
|
145
|
+
|
|
146
|
+
export interface CardLookArgs {
|
|
147
|
+
variant: CardVariant;
|
|
148
|
+
interactive: boolean;
|
|
149
|
+
glow: boolean;
|
|
150
|
+
pulse: boolean;
|
|
151
|
+
loading: boolean;
|
|
152
|
+
borderRadius: CardBorderRadius;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export interface CardLook {
|
|
156
|
+
container: ViewStyle;
|
|
157
|
+
/** Applied while pressed, standing in for the web's `:hover`. */
|
|
158
|
+
pressed: ViewStyle;
|
|
159
|
+
radius: number | string;
|
|
160
|
+
ink: string;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Everything the card paints, decided once per render.
|
|
165
|
+
*
|
|
166
|
+
* `overflow` is the one place native needs a rule the web does not. MUI's
|
|
167
|
+
* `Card` clips its children, and the pulse ring has to reach 15px past the
|
|
168
|
+
* edge — but a view's own shadow is clipped by its own overflow on a device,
|
|
169
|
+
* so a `glow` the caller asked for would simply not paint. Both decorations
|
|
170
|
+
* therefore turn the clip off, exactly as `Button.native.tsx` does.
|
|
171
|
+
*/
|
|
172
|
+
export function cardLook(theme: UiTheme, a: CardLookArgs): CardLook {
|
|
173
|
+
const radius = cardRadius(theme, a.borderRadius);
|
|
174
|
+
const chosen = cardSurface(theme, a.variant, a.interactive);
|
|
175
|
+
|
|
176
|
+
const base: ViewStyle = {
|
|
177
|
+
position: 'relative',
|
|
178
|
+
borderRadius: radius,
|
|
179
|
+
backgroundColor: theme.palette.background.paper,
|
|
180
|
+
overflow: a.pulse || a.glow ? 'visible' : 'hidden',
|
|
181
|
+
opacity: a.loading ? CARD_LOADING.opacity : 1,
|
|
182
|
+
pointerEvents: a.loading ? 'none' : 'auto',
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
return {
|
|
186
|
+
radius,
|
|
187
|
+
ink: cardInk(theme, a.variant),
|
|
188
|
+
container: {
|
|
189
|
+
...base,
|
|
190
|
+
boxShadow: CARD_PAPER_SHADOW,
|
|
191
|
+
...(a.interactive ? { cursor: 'pointer' } : null),
|
|
192
|
+
...(a.glow
|
|
193
|
+
? { boxShadow: halo(CARD_GLOW.rest.blurRadius, alpha(theme.palette.primary.main, CARD_GLOW.rest.alpha)) }
|
|
194
|
+
: null),
|
|
195
|
+
...chosen.surface,
|
|
196
|
+
},
|
|
197
|
+
pressed: {
|
|
198
|
+
...(a.glow
|
|
199
|
+
? { boxShadow: halo(CARD_GLOW.lifted.blurRadius, alpha(theme.palette.primary.main, CARD_GLOW.lifted.alpha)) }
|
|
200
|
+
: null),
|
|
201
|
+
...chosen.hover,
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|