@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,171 @@
|
|
|
1
|
+
import type { CardBorderRadius } from './Card.base';
|
|
2
|
+
import type { UiShadow } from '../../../tokens/shadow';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* THE NUMBERS BOTH `Card` RENDERERS DRAW WITH.
|
|
6
|
+
*
|
|
7
|
+
* `Card.styles.ts` (web, emotion over MUI) and `Card.native.tsx` /
|
|
8
|
+
* `Card.look.native.ts` (React Native) read this one table. The web turns the
|
|
9
|
+
* radii into `theme.spacing()` and the shadows into CSS strings (`shadowCss`
|
|
10
|
+
* in `src/tokens/shadow.ts` writes exactly the text it always has); native
|
|
11
|
+
* hands the same shadow objects to `boxShadow` and the same numbers to a
|
|
12
|
+
* `StyleSheet`.
|
|
13
|
+
*
|
|
14
|
+
* Nothing here imports a renderer, a theme or a colour: a shadow's COLOUR is
|
|
15
|
+
* the caller's, because the two sides reach for the same arithmetic through
|
|
16
|
+
* different doors (`alpha` from `@mui/material/styles` on the web, from
|
|
17
|
+
* `src/tokens/color` natively — a port of it, asserted equal).
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/* ── The envelope ─────────────────────────────────────────────────────────── */
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* `theme.spacing(n)` per named radius. `none` is written as a bare `0` by the
|
|
24
|
+
* web rather than `spacing(0)`, so it is spelled that way on both sides.
|
|
25
|
+
*/
|
|
26
|
+
export const CARD_RADIUS_UNITS: Record<Exclude<CardBorderRadius, 'full'>, number> = {
|
|
27
|
+
none: 0,
|
|
28
|
+
sm: 0.5,
|
|
29
|
+
md: 1,
|
|
30
|
+
lg: 2,
|
|
31
|
+
xl: 3,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/** `full` is a percentage of the box, not a length. */
|
|
35
|
+
export const CARD_RADIUS_FULL = '50%';
|
|
36
|
+
|
|
37
|
+
/** The hairline `outlined` and `glass` draw. */
|
|
38
|
+
export const CARD_BORDER_WIDTH = 1;
|
|
39
|
+
|
|
40
|
+
/* ── Shadows ──────────────────────────────────────────────────────────────── */
|
|
41
|
+
|
|
42
|
+
/** A card's shadows are `UiShadow`s; `src/tokens/shadow.ts` says why they have a shape. */
|
|
43
|
+
export type CardShadow = UiShadow;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* MUI's `theme.shadows[1]` — the elevation a `Paper` paints and therefore the
|
|
47
|
+
* shadow every `elevated` card on the web already has.
|
|
48
|
+
*
|
|
49
|
+
* It is restated here rather than derived because the web never names it: it
|
|
50
|
+
* arrives through `MuiCard` -> `MuiPaper`, and React Native has no Paper to
|
|
51
|
+
* inherit it from. (`variant="elevated"`'s own `elevation: 4` is not a CSS
|
|
52
|
+
* property and paints nothing — see {@link CARD_ELEVATION}.)
|
|
53
|
+
*/
|
|
54
|
+
export const CARD_PAPER_SHADOW: readonly UiShadow[] = [
|
|
55
|
+
{ offsetX: 0, offsetY: 2, blurRadius: 1, spreadDistance: -1, color: 'rgba(0, 0, 0, 0.2)' },
|
|
56
|
+
{ offsetX: 0, offsetY: 1, blurRadius: 1, spreadDistance: 0, color: 'rgba(0, 0, 0, 0.14)' },
|
|
57
|
+
{ offsetX: 0, offsetY: 1, blurRadius: 3, spreadDistance: 0, color: 'rgba(0, 0, 0, 0.12)' },
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* What `elevated` declares at rest and on hover.
|
|
62
|
+
*
|
|
63
|
+
* `elevation` is not a CSS property, so on the web these paint NOTHING and an
|
|
64
|
+
* elevated card shows `MuiPaper`'s own elevation-1 shadow. Kept because they
|
|
65
|
+
* are what the source says, and mirrored natively by leaving
|
|
66
|
+
* {@link CARD_PAPER_SHADOW} in place for both states.
|
|
67
|
+
*/
|
|
68
|
+
export const CARD_ELEVATION = { rest: 4, lifted: 8 } as const;
|
|
69
|
+
|
|
70
|
+
/* ── Variant surfaces ─────────────────────────────────────────────────────── */
|
|
71
|
+
|
|
72
|
+
/** `glass`: a 0.1 wash of the paper behind a 20px blur, inside a primary hairline. */
|
|
73
|
+
export const CARD_GLASS = {
|
|
74
|
+
backgroundAlpha: { rest: 0.1, lifted: 0.15 },
|
|
75
|
+
borderAlpha: { rest: 0.2, lifted: 0.3 },
|
|
76
|
+
blurPx: 20,
|
|
77
|
+
shadow: { offsetY: 8, blurRadius: 32, alpha: 0.1 },
|
|
78
|
+
} as const;
|
|
79
|
+
|
|
80
|
+
/** `gradient`: primary into secondary at 135°, over a hue-tinted drop shadow. */
|
|
81
|
+
export const CARD_GRADIENT = {
|
|
82
|
+
angleDeg: 135,
|
|
83
|
+
shadow: { offsetY: 4, blurRadius: 20, alpha: 0.3 },
|
|
84
|
+
} as const;
|
|
85
|
+
|
|
86
|
+
/** `neumorphic`: two opposed shadows, blurred twice their offset. */
|
|
87
|
+
export const CARD_NEUMORPHIC = {
|
|
88
|
+
spread: { rest: 8, lifted: 12 },
|
|
89
|
+
blurFactor: 2,
|
|
90
|
+
alpha: {
|
|
91
|
+
dark: { near: 0.3, far: 0.1 },
|
|
92
|
+
light: { near: { rest: 0.2, lifted: 0.3 }, far: { rest: 0.8, lifted: 0.9 } },
|
|
93
|
+
},
|
|
94
|
+
} as const;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The offset pair `neumorphic` paints, given the two colours the mode picked:
|
|
98
|
+
* `near` down-right, `far` up-left, both blurred twice the offset.
|
|
99
|
+
*/
|
|
100
|
+
export function neumorphicShadows(lifted: boolean, near: string, far: string): UiShadow[] {
|
|
101
|
+
const spread = lifted ? CARD_NEUMORPHIC.spread.lifted : CARD_NEUMORPHIC.spread.rest;
|
|
102
|
+
const blurRadius = spread * CARD_NEUMORPHIC.blurFactor;
|
|
103
|
+
return [
|
|
104
|
+
{ offsetX: spread, offsetY: spread, blurRadius, spreadDistance: 0, color: near },
|
|
105
|
+
{ offsetX: -spread, offsetY: -spread, blurRadius, spreadDistance: 0, color: far },
|
|
106
|
+
];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* `section`: a flat ink wash rather than a palette slot, so a section reads as
|
|
111
|
+
* a recess in whatever surface it sits on.
|
|
112
|
+
*/
|
|
113
|
+
export const CARD_SECTION_BACKGROUND = {
|
|
114
|
+
dark: { rest: 'rgba(0, 0, 0, 0.2)', lifted: 'rgba(0, 0, 0, 0.25)' },
|
|
115
|
+
light: { rest: 'rgba(0, 0, 0, 0.02)', lifted: 'rgba(0, 0, 0, 0.04)' },
|
|
116
|
+
} as const;
|
|
117
|
+
|
|
118
|
+
/* ── Decorations ──────────────────────────────────────────────────────────── */
|
|
119
|
+
|
|
120
|
+
/** `glow`: a haloed primary shadow that widens under the pointer. */
|
|
121
|
+
export const CARD_GLOW = {
|
|
122
|
+
rest: { blurRadius: 20, alpha: 0.3 },
|
|
123
|
+
lifted: { blurRadius: 30, alpha: 0.4 },
|
|
124
|
+
} as const;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* `pulse`: a ring of the primary hue that grows 15px out of the card's edge and
|
|
128
|
+
* fades, every two seconds. The web draws it as an `::after` box-shadow spread
|
|
129
|
+
* behind the paper (`z-index: -1`).
|
|
130
|
+
*/
|
|
131
|
+
export const CARD_PULSE = {
|
|
132
|
+
alpha: 0.3,
|
|
133
|
+
durationMs: 2000,
|
|
134
|
+
spread: 15,
|
|
135
|
+
/** The fraction of the cycle the ring is still visible for. */
|
|
136
|
+
fadeAt: 0.7,
|
|
137
|
+
zIndex: -1,
|
|
138
|
+
} as const;
|
|
139
|
+
|
|
140
|
+
/** `interactive`: the card rises 2px under the pointer and settles while pressed. */
|
|
141
|
+
export const CARD_INTERACTIVE_LIFT = 2;
|
|
142
|
+
|
|
143
|
+
/** `loading`: the card dims, stops taking pointers and centres a spinner over itself. */
|
|
144
|
+
export const CARD_LOADING = { opacity: 0.6, spinnerZIndex: 10, spinnerSize: 40 } as const;
|
|
145
|
+
|
|
146
|
+
/* ── The slots ────────────────────────────────────────────────────────────── */
|
|
147
|
+
|
|
148
|
+
/** `CardContent`: `theme.spacing(2)`, halved by `dense`. */
|
|
149
|
+
export const CARD_CONTENT_PADDING_UNITS = { normal: 2, dense: 1 } as const;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* `CardHeader`, in MUI's own px: 16 all round, the avatar 16 from the content,
|
|
153
|
+
* the action pulled back out of the padding on three sides.
|
|
154
|
+
*/
|
|
155
|
+
export const CARD_HEADER = {
|
|
156
|
+
padding: 16,
|
|
157
|
+
avatarGap: 16,
|
|
158
|
+
action: { marginTop: -4, marginRight: -8, marginBottom: -4 },
|
|
159
|
+
} as const;
|
|
160
|
+
|
|
161
|
+
/** A `CardHeader` given raw `children` is a plain `theme.spacing(2)` box instead. */
|
|
162
|
+
export const CARD_HEADER_CHILDREN_PADDING_UNITS = 2;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* `CardActions`, in MUI's own px: 8 all round, and 8 between the actions unless
|
|
166
|
+
* `disableSpacing` turns the run off.
|
|
167
|
+
*/
|
|
168
|
+
export const CARD_ACTIONS = { padding: 8, gap: 8 } as const;
|
|
169
|
+
|
|
170
|
+
/** `CardMedia`'s default height. */
|
|
171
|
+
export const CARD_MEDIA_HEIGHT = 200;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
ActivityIndicator,
|
|
4
|
+
Platform,
|
|
5
|
+
Pressable,
|
|
6
|
+
StyleSheet,
|
|
7
|
+
View,
|
|
8
|
+
type GestureResponderEvent,
|
|
9
|
+
type PressableStateCallbackType,
|
|
10
|
+
type StyleProp,
|
|
11
|
+
type ViewStyle,
|
|
12
|
+
} from 'react-native';
|
|
13
|
+
|
|
14
|
+
import { resolveCardProps } from './Card.helpers';
|
|
15
|
+
import { cardLook } from './Card.look.native';
|
|
16
|
+
import { CARD_LOADING, CARD_PULSE } from './Card.metrics';
|
|
17
|
+
import { CardInkContext } from './CardParts.native';
|
|
18
|
+
import type { CardProps } from './Card.types.native';
|
|
19
|
+
import { PulseRing } from '../../../platform/pulse-ring.native';
|
|
20
|
+
import { childTestId, resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
|
|
21
|
+
import { renderTextChildren } from '../../../platform/text-children';
|
|
22
|
+
import { useUiTheme } from '../../../provider/use-ui-theme.native';
|
|
23
|
+
import { muiTypeStyle } from '../../../tokens/mui-type';
|
|
24
|
+
|
|
25
|
+
// The shared stories import all five names from `./Card`, which resolves here
|
|
26
|
+
// under Metro and in the native Storybook; the slots live in their own file to
|
|
27
|
+
// keep this one about the envelope, and are re-exported so that import works.
|
|
28
|
+
export { CardActions, CardContent, CardHeader, CardMedia } from './CardParts.native';
|
|
29
|
+
|
|
30
|
+
/** The spinner a loading card centres over itself; `role` comes from `ActivityIndicator`. */
|
|
31
|
+
function Spinner({ color, testID }: { color: string; testID: string }): React.JSX.Element {
|
|
32
|
+
return (
|
|
33
|
+
<View testID={testID} style={[styles.spinner, { zIndex: CARD_LOADING.spinnerZIndex }]}>
|
|
34
|
+
<ActivityIndicator
|
|
35
|
+
size={Platform.OS === 'ios' ? 'large' : CARD_LOADING.spinnerSize}
|
|
36
|
+
color={color}
|
|
37
|
+
/>
|
|
38
|
+
</View>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const Card = React.forwardRef<View, CardProps>((rawProps, ref) => {
|
|
43
|
+
const resolved = resolveCardProps(rawProps);
|
|
44
|
+
const { children, loading, pulse, onClick, onPress, onFocus, onBlur, ...others } = resolved;
|
|
45
|
+
const theme = useUiTheme();
|
|
46
|
+
const look = cardLook(theme, resolved);
|
|
47
|
+
|
|
48
|
+
const testID = resolveTestId(others, 'card');
|
|
49
|
+
const idFor = (suffix: string): string => childTestId(others, suffix, 'card');
|
|
50
|
+
const rest = withoutTestIdProps(others);
|
|
51
|
+
// `cardLook` consumed these, and the reserved ones paint nothing on either
|
|
52
|
+
// renderer; none of them is a `View` prop.
|
|
53
|
+
const {
|
|
54
|
+
variant: _variant,
|
|
55
|
+
interactive,
|
|
56
|
+
glow: _glow,
|
|
57
|
+
borderRadius: _borderRadius,
|
|
58
|
+
style,
|
|
59
|
+
expandable: _expandable,
|
|
60
|
+
expanded: _expanded,
|
|
61
|
+
onExpandToggle: _onExpandToggle,
|
|
62
|
+
entranceAnimation: _entranceAnimation,
|
|
63
|
+
animationDelay: _animationDelay,
|
|
64
|
+
skeleton: _skeleton,
|
|
65
|
+
hoverScale: _hoverScale,
|
|
66
|
+
...viewProps
|
|
67
|
+
} = rest;
|
|
68
|
+
|
|
69
|
+
// A loading card is inert: no handler fires and pointer events are off, so a
|
|
70
|
+
// half-rendered card cannot be pressed through. Same rule as the web.
|
|
71
|
+
const idle = !loading;
|
|
72
|
+
const handlePress = (event: GestureResponderEvent): void => {
|
|
73
|
+
onClick?.(event);
|
|
74
|
+
onPress?.(event);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// The ink goes to the SLOTS through context and to bare text children
|
|
78
|
+
// directly: on the web one `color` on the card covers both, because CSS
|
|
79
|
+
// inherits and React Native does not.
|
|
80
|
+
const body = (
|
|
81
|
+
<CardInkContext.Provider value={look.ink}>
|
|
82
|
+
{pulse ? (
|
|
83
|
+
<PulseRing
|
|
84
|
+
color={theme.palette.primary.main}
|
|
85
|
+
radius={look.radius}
|
|
86
|
+
spread={CARD_PULSE.spread}
|
|
87
|
+
durationMs={CARD_PULSE.durationMs}
|
|
88
|
+
fadeAt={CARD_PULSE.fadeAt}
|
|
89
|
+
opacity={CARD_PULSE.alpha}
|
|
90
|
+
testID={idFor('pulse')}
|
|
91
|
+
/>
|
|
92
|
+
) : null}
|
|
93
|
+
{loading ? <Spinner color={theme.palette.primary.main} testID={idFor('loading')} /> : null}
|
|
94
|
+
{renderTextChildren(children, { ...muiTypeStyle(theme, 'body1'), color: look.ink })}
|
|
95
|
+
</CardInkContext.Provider>
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
const shared = { testID, onFocus: idle ? onFocus : undefined, onBlur: idle ? onBlur : undefined };
|
|
99
|
+
|
|
100
|
+
if (!interactive && !onClick && !onPress) {
|
|
101
|
+
return (
|
|
102
|
+
<View ref={ref} style={[look.container, style]} {...shared} {...viewProps}>
|
|
103
|
+
{body}
|
|
104
|
+
</View>
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const container = ({ pressed }: PressableStateCallbackType): StyleProp<ViewStyle> => [
|
|
109
|
+
look.container,
|
|
110
|
+
pressed && idle ? look.pressed : null,
|
|
111
|
+
style,
|
|
112
|
+
];
|
|
113
|
+
|
|
114
|
+
return (
|
|
115
|
+
<Pressable ref={ref} style={container} onPress={idle ? handlePress : undefined} {...shared} {...viewProps}>
|
|
116
|
+
{body}
|
|
117
|
+
</Pressable>
|
|
118
|
+
);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
Card.displayName = 'Card';
|
|
122
|
+
|
|
123
|
+
const styles = StyleSheet.create({
|
|
124
|
+
spinner: {
|
|
125
|
+
...StyleSheet.absoluteFillObject,
|
|
126
|
+
alignItems: 'center',
|
|
127
|
+
justifyContent: 'center',
|
|
128
|
+
pointerEvents: 'none',
|
|
129
|
+
},
|
|
130
|
+
});
|
|
@@ -1,18 +1,34 @@
|
|
|
1
1
|
import { alpha, keyframes } from '@mui/material/styles/index.js';
|
|
2
2
|
import type { CSSObject, Theme } from '@mui/material/styles/index.js';
|
|
3
3
|
|
|
4
|
-
import type {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
import type { CardBorderRadius, CardVariant } from './Card.base';
|
|
5
|
+
import {
|
|
6
|
+
CARD_BORDER_WIDTH,
|
|
7
|
+
CARD_ELEVATION,
|
|
8
|
+
CARD_GLASS,
|
|
9
|
+
CARD_GLOW,
|
|
10
|
+
CARD_GRADIENT,
|
|
11
|
+
CARD_INTERACTIVE_LIFT,
|
|
12
|
+
CARD_NEUMORPHIC,
|
|
13
|
+
CARD_PULSE,
|
|
14
|
+
CARD_RADIUS_FULL,
|
|
15
|
+
CARD_RADIUS_UNITS,
|
|
16
|
+
CARD_SECTION_BACKGROUND,
|
|
17
|
+
neumorphicShadows,
|
|
18
|
+
} from './Card.metrics';
|
|
19
|
+
import { shadowCss, shadowListCss } from '../../../tokens/shadow';
|
|
20
|
+
|
|
21
|
+
type BorderRadius = CardBorderRadius;
|
|
22
|
+
|
|
23
|
+
// Define pulse animation. The 15px spread and the 2s period are the shared
|
|
24
|
+
// metrics, so the native ring grows by exactly as much for exactly as long.
|
|
9
25
|
const pulseAnimation = keyframes`
|
|
10
26
|
0% {
|
|
11
27
|
box-shadow: 0 0 0 0 currentColor;
|
|
12
28
|
opacity: 1;
|
|
13
29
|
}
|
|
14
30
|
70% {
|
|
15
|
-
box-shadow: 0 0 0
|
|
31
|
+
box-shadow: 0 0 0 ${CARD_PULSE.spread}px currentColor;
|
|
16
32
|
opacity: 0;
|
|
17
33
|
}
|
|
18
34
|
100% {
|
|
@@ -22,20 +38,10 @@ const pulseAnimation = keyframes`
|
|
|
22
38
|
`;
|
|
23
39
|
|
|
24
40
|
const borderRadiusFor = (theme: Theme, radius: BorderRadius): number | string => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return theme.spacing(0.5);
|
|
30
|
-
case 'lg':
|
|
31
|
-
return theme.spacing(2);
|
|
32
|
-
case 'xl':
|
|
33
|
-
return theme.spacing(3);
|
|
34
|
-
case 'full':
|
|
35
|
-
return '50%';
|
|
36
|
-
default:
|
|
37
|
-
return theme.spacing(1);
|
|
38
|
-
}
|
|
41
|
+
if (radius === 'full') return CARD_RADIUS_FULL;
|
|
42
|
+
const units = CARD_RADIUS_UNITS[radius] ?? CARD_RADIUS_UNITS.md;
|
|
43
|
+
// `none` is a bare 0 rather than `spacing(0)`, as this has always written it.
|
|
44
|
+
return units === 0 ? 0 : theme.spacing(units);
|
|
39
45
|
};
|
|
40
46
|
|
|
41
47
|
const pulseSurface = (theme: Theme): CSSObject => ({
|
|
@@ -50,27 +56,43 @@ const pulseSurface = (theme: Theme): CSSObject => ({
|
|
|
50
56
|
bottom: '0',
|
|
51
57
|
borderRadius: 'inherit',
|
|
52
58
|
backgroundColor: theme.palette.primary.main,
|
|
53
|
-
opacity:
|
|
54
|
-
animation: `${pulseAnimation}
|
|
59
|
+
opacity: CARD_PULSE.alpha,
|
|
60
|
+
animation: `${pulseAnimation} ${CARD_PULSE.durationMs / 1000}s infinite`,
|
|
55
61
|
pointerEvents: 'none',
|
|
56
|
-
zIndex:
|
|
62
|
+
zIndex: CARD_PULSE.zIndex,
|
|
57
63
|
},
|
|
58
64
|
});
|
|
59
65
|
|
|
60
66
|
const neumorphicShadow = (theme: Theme, lifted: boolean): string => {
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
const { dark, light } = CARD_NEUMORPHIC.alpha;
|
|
68
|
+
const [near, far] =
|
|
69
|
+
theme.palette.mode === 'dark'
|
|
70
|
+
? [
|
|
71
|
+
alpha(theme.palette.common.black, dark.near),
|
|
72
|
+
alpha(theme.palette.common.white, dark.far),
|
|
73
|
+
]
|
|
74
|
+
: [
|
|
75
|
+
alpha(theme.palette.grey[400], lifted ? light.near.lifted : light.near.rest),
|
|
76
|
+
alpha(theme.palette.common.white, lifted ? light.far.lifted : light.far.rest),
|
|
77
|
+
];
|
|
78
|
+
|
|
79
|
+
return shadowListCss(neumorphicShadows(lifted, near, far));
|
|
67
80
|
};
|
|
68
81
|
|
|
69
82
|
const sectionBackground = (theme: Theme, lifted: boolean): string => {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
83
|
+
const wash = CARD_SECTION_BACKGROUND[theme.palette.mode === 'dark' ? 'dark' : 'light'];
|
|
84
|
+
return lifted ? wash.lifted : wash.rest;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const glowShadow = (theme: Theme, lifted: boolean): string => {
|
|
88
|
+
const { blurRadius, alpha: opacity } = lifted ? CARD_GLOW.lifted : CARD_GLOW.rest;
|
|
89
|
+
return shadowCss({
|
|
90
|
+
offsetX: 0,
|
|
91
|
+
offsetY: 0,
|
|
92
|
+
blurRadius,
|
|
93
|
+
spreadDistance: 0,
|
|
94
|
+
color: alpha(theme.palette.primary.main, opacity),
|
|
95
|
+
});
|
|
74
96
|
};
|
|
75
97
|
|
|
76
98
|
interface Surface {
|
|
@@ -85,30 +107,48 @@ interface Surface {
|
|
|
85
107
|
*/
|
|
86
108
|
const VARIANT_SURFACES: Record<CardVariant, (theme: Theme, lifted: boolean) => Surface> = {
|
|
87
109
|
elevated: (_theme, lifted) => ({
|
|
88
|
-
surface: { elevation:
|
|
89
|
-
hover: { elevation: lifted ?
|
|
110
|
+
surface: { elevation: CARD_ELEVATION.rest } as CSSObject,
|
|
111
|
+
hover: { elevation: lifted ? CARD_ELEVATION.lifted : CARD_ELEVATION.rest } as CSSObject,
|
|
90
112
|
}),
|
|
91
113
|
outlined: (theme, lifted) => ({
|
|
92
|
-
surface: {
|
|
114
|
+
surface: {
|
|
115
|
+
border: `${CARD_BORDER_WIDTH}px solid ${theme.palette.divider}`,
|
|
116
|
+
boxShadow: 'none',
|
|
117
|
+
},
|
|
93
118
|
hover: { borderColor: lifted ? theme.palette.primary.main : theme.palette.divider },
|
|
94
119
|
}),
|
|
95
120
|
glass: (theme, lifted) => ({
|
|
96
121
|
surface: {
|
|
97
|
-
backgroundColor: alpha(theme.palette.background.paper,
|
|
98
|
-
backdropFilter:
|
|
99
|
-
border:
|
|
100
|
-
boxShadow:
|
|
122
|
+
backgroundColor: alpha(theme.palette.background.paper, CARD_GLASS.backgroundAlpha.rest),
|
|
123
|
+
backdropFilter: `blur(${CARD_GLASS.blurPx}px)`,
|
|
124
|
+
border: `${CARD_BORDER_WIDTH}px solid ${alpha(theme.palette.primary.main, CARD_GLASS.borderAlpha.rest)}`,
|
|
125
|
+
boxShadow: shadowCss({
|
|
126
|
+
offsetX: 0,
|
|
127
|
+
offsetY: CARD_GLASS.shadow.offsetY,
|
|
128
|
+
blurRadius: CARD_GLASS.shadow.blurRadius,
|
|
129
|
+
spreadDistance: 0,
|
|
130
|
+
color: alpha(theme.palette.common.black, CARD_GLASS.shadow.alpha),
|
|
131
|
+
}),
|
|
101
132
|
},
|
|
102
133
|
hover: {
|
|
103
|
-
backgroundColor: alpha(
|
|
104
|
-
|
|
134
|
+
backgroundColor: alpha(
|
|
135
|
+
theme.palette.background.paper,
|
|
136
|
+
lifted ? CARD_GLASS.backgroundAlpha.lifted : CARD_GLASS.backgroundAlpha.rest,
|
|
137
|
+
),
|
|
138
|
+
border: `${CARD_BORDER_WIDTH}px solid ${alpha(theme.palette.primary.main, CARD_GLASS.borderAlpha.lifted)}`,
|
|
105
139
|
},
|
|
106
140
|
}),
|
|
107
141
|
gradient: (theme, lifted) => ({
|
|
108
142
|
surface: {
|
|
109
143
|
background: cardGradient(theme, false),
|
|
110
144
|
color: theme.palette.primary.contrastText,
|
|
111
|
-
boxShadow:
|
|
145
|
+
boxShadow: shadowCss({
|
|
146
|
+
offsetX: 0,
|
|
147
|
+
offsetY: CARD_GRADIENT.shadow.offsetY,
|
|
148
|
+
blurRadius: CARD_GRADIENT.shadow.blurRadius,
|
|
149
|
+
spreadDistance: 0,
|
|
150
|
+
color: alpha(theme.palette.primary.main, CARD_GRADIENT.shadow.alpha),
|
|
151
|
+
}),
|
|
112
152
|
},
|
|
113
153
|
hover: { background: cardGradient(theme, lifted) },
|
|
114
154
|
}),
|
|
@@ -133,8 +173,8 @@ const VARIANT_SURFACES: Record<CardVariant, (theme: Theme, lifted: boolean) => S
|
|
|
133
173
|
|
|
134
174
|
const cardGradient = (theme: Theme, dark: boolean): string =>
|
|
135
175
|
dark
|
|
136
|
-
? `linear-gradient(
|
|
137
|
-
: `linear-gradient(
|
|
176
|
+
? `linear-gradient(${CARD_GRADIENT.angleDeg}deg, ${theme.palette.primary.dark}, ${theme.palette.secondary.dark})`
|
|
177
|
+
: `linear-gradient(${CARD_GRADIENT.angleDeg}deg, ${theme.palette.primary.main}, ${theme.palette.secondary.main})`;
|
|
138
178
|
|
|
139
179
|
// An unrecognised variant gets the shared base only — no interactive, glow or
|
|
140
180
|
// pulse decoration, as before.
|
|
@@ -170,12 +210,12 @@ export const cardStyles = (
|
|
|
170
210
|
return {
|
|
171
211
|
...base,
|
|
172
212
|
...(interactive && { cursor: 'pointer', '&:active': { transform: 'translateY(0)' } }),
|
|
173
|
-
...(glow && { boxShadow:
|
|
213
|
+
...(glow && { boxShadow: glowShadow(theme, false) }),
|
|
174
214
|
...(pulse && pulseSurface(theme)),
|
|
175
215
|
...chosen.surface,
|
|
176
216
|
'&:hover': {
|
|
177
|
-
...(interactive && { transform:
|
|
178
|
-
...(glow && { boxShadow:
|
|
217
|
+
...(interactive && { transform: `translateY(-${CARD_INTERACTIVE_LIFT}px)` }),
|
|
218
|
+
...(glow && { boxShadow: glowShadow(theme, true) }),
|
|
179
219
|
...chosen.hover,
|
|
180
220
|
},
|
|
181
221
|
};
|
|
@@ -9,7 +9,14 @@ import { useTheme } from '@mui/material/styles/index.js';
|
|
|
9
9
|
import React from 'react';
|
|
10
10
|
|
|
11
11
|
import { resolveCardProps } from './Card.helpers';
|
|
12
|
+
import {
|
|
13
|
+
CARD_CONTENT_PADDING_UNITS,
|
|
14
|
+
CARD_HEADER_CHILDREN_PADDING_UNITS,
|
|
15
|
+
CARD_LOADING,
|
|
16
|
+
CARD_MEDIA_HEIGHT,
|
|
17
|
+
} from './Card.metrics';
|
|
12
18
|
import { cardStyles } from './Card.styles';
|
|
19
|
+
import { childTestId, resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
|
|
13
20
|
import type {
|
|
14
21
|
CardActionsProps,
|
|
15
22
|
CardContentProps,
|
|
@@ -31,7 +38,6 @@ export const Card: React.FC<CardProps> = (rawProps) => {
|
|
|
31
38
|
onFocus,
|
|
32
39
|
onBlur,
|
|
33
40
|
sx,
|
|
34
|
-
dataTestId,
|
|
35
41
|
// These props are reserved for future implementation but need to be extracted
|
|
36
42
|
// to prevent them from being passed to the underlying MuiCard
|
|
37
43
|
expandable: _expandable,
|
|
@@ -45,6 +51,12 @@ export const Card: React.FC<CardProps> = (rawProps) => {
|
|
|
45
51
|
} = resolveCardProps(rawProps);
|
|
46
52
|
|
|
47
53
|
const theme = useTheme();
|
|
54
|
+
// Every spelling of the test id the shared contract allows, mapped to the one
|
|
55
|
+
// the DOM reads, and stripped from what is spread — `testID` is React
|
|
56
|
+
// Native's name for it and is not a DOM attribute. The native `Card` does the
|
|
57
|
+
// same in reverse.
|
|
58
|
+
const ownTestId = resolveTestId(restProps, 'card');
|
|
59
|
+
const props = withoutTestIdProps(restProps);
|
|
48
60
|
|
|
49
61
|
// A loading card is inert: no handlers fire and pointer events are off, so a
|
|
50
62
|
// half-rendered card cannot be clicked through.
|
|
@@ -52,18 +64,18 @@ export const Card: React.FC<CardProps> = (rawProps) => {
|
|
|
52
64
|
|
|
53
65
|
return (
|
|
54
66
|
<MuiCard
|
|
55
|
-
data-testid={
|
|
67
|
+
data-testid={ownTestId}
|
|
56
68
|
onClick={idle ? onClick : undefined}
|
|
57
69
|
onFocus={idle ? onFocus : undefined}
|
|
58
70
|
onBlur={idle ? onBlur : undefined}
|
|
59
71
|
sx={{
|
|
60
72
|
...cardStyles(theme, { variant, interactive, glow, pulse, borderRadius }),
|
|
61
73
|
position: 'relative',
|
|
62
|
-
opacity: loading ?
|
|
74
|
+
opacity: loading ? CARD_LOADING.opacity : 1,
|
|
63
75
|
pointerEvents: loading ? 'none' : 'auto',
|
|
64
76
|
...sx,
|
|
65
77
|
}}
|
|
66
|
-
{...
|
|
78
|
+
{...props}
|
|
67
79
|
>
|
|
68
80
|
{loading && (
|
|
69
81
|
<Box
|
|
@@ -72,7 +84,7 @@ export const Card: React.FC<CardProps> = (rawProps) => {
|
|
|
72
84
|
top: '50%',
|
|
73
85
|
left: '50%',
|
|
74
86
|
transform: 'translate(-50%, -50%)',
|
|
75
|
-
zIndex:
|
|
87
|
+
zIndex: CARD_LOADING.spinnerZIndex,
|
|
76
88
|
}}
|
|
77
89
|
>
|
|
78
90
|
<CircularProgress />
|
|
@@ -89,41 +101,47 @@ export const CardHeader: React.FC<CardHeaderProps> = ({
|
|
|
89
101
|
action,
|
|
90
102
|
avatar,
|
|
91
103
|
children,
|
|
92
|
-
|
|
93
|
-
...props
|
|
104
|
+
...others
|
|
94
105
|
}) => {
|
|
106
|
+
const ownTestId = resolveTestId(others, 'card-header');
|
|
107
|
+
const props = withoutTestIdProps(others);
|
|
108
|
+
|
|
95
109
|
if (children) {
|
|
96
|
-
return
|
|
110
|
+
return (
|
|
111
|
+
<Box sx={{ p: CARD_HEADER_CHILDREN_PADDING_UNITS }} data-testid={ownTestId}>
|
|
112
|
+
{children}
|
|
113
|
+
</Box>
|
|
114
|
+
);
|
|
97
115
|
}
|
|
98
116
|
|
|
99
117
|
return (
|
|
100
118
|
<MuiCardHeader
|
|
101
|
-
data-testid={
|
|
119
|
+
data-testid={ownTestId}
|
|
102
120
|
avatar={avatar}
|
|
103
121
|
action={action}
|
|
104
122
|
title={title}
|
|
105
123
|
subheader={subtitle}
|
|
106
124
|
titleTypographyProps={{
|
|
107
|
-
'data-testid':
|
|
125
|
+
'data-testid': childTestId(others, 'title', 'card'),
|
|
108
126
|
} as Record<string, unknown>}
|
|
109
127
|
subheaderTypographyProps={{
|
|
110
|
-
'data-testid':
|
|
128
|
+
'data-testid': childTestId(others, 'subtitle', 'card'),
|
|
111
129
|
} as Record<string, unknown>}
|
|
112
130
|
{...props}
|
|
113
131
|
/>
|
|
114
132
|
);
|
|
115
133
|
};
|
|
116
134
|
|
|
117
|
-
export const CardContent: React.FC<CardContentProps> = ({ children, dense = false,
|
|
135
|
+
export const CardContent: React.FC<CardContentProps> = ({ children, dense = false, ...others }) => (
|
|
118
136
|
<MuiCardContent
|
|
119
|
-
data-testid={
|
|
137
|
+
data-testid={resolveTestId(others, 'card-content')}
|
|
120
138
|
sx={{
|
|
121
|
-
padding: dense ?
|
|
139
|
+
padding: dense ? CARD_CONTENT_PADDING_UNITS.dense : CARD_CONTENT_PADDING_UNITS.normal,
|
|
122
140
|
'&:last-child': {
|
|
123
|
-
paddingBottom: dense ?
|
|
141
|
+
paddingBottom: dense ? CARD_CONTENT_PADDING_UNITS.dense : CARD_CONTENT_PADDING_UNITS.normal,
|
|
124
142
|
},
|
|
125
143
|
}}
|
|
126
|
-
{...
|
|
144
|
+
{...withoutTestIdProps(others)}
|
|
127
145
|
>
|
|
128
146
|
{children}
|
|
129
147
|
</MuiCardContent>
|
|
@@ -133,8 +151,7 @@ export const CardActions: React.FC<CardActionsProps> = ({
|
|
|
133
151
|
children,
|
|
134
152
|
disableSpacing = false,
|
|
135
153
|
alignment = 'left',
|
|
136
|
-
|
|
137
|
-
...props
|
|
154
|
+
...others
|
|
138
155
|
}) => {
|
|
139
156
|
const getJustifyContent = () => {
|
|
140
157
|
switch (alignment) {
|
|
@@ -151,12 +168,12 @@ export const CardActions: React.FC<CardActionsProps> = ({
|
|
|
151
168
|
|
|
152
169
|
return (
|
|
153
170
|
<MuiCardActions
|
|
154
|
-
data-testid={
|
|
171
|
+
data-testid={resolveTestId(others, 'card-actions')}
|
|
155
172
|
disableSpacing={disableSpacing}
|
|
156
173
|
sx={{
|
|
157
174
|
justifyContent: getJustifyContent(),
|
|
158
175
|
}}
|
|
159
|
-
{...
|
|
176
|
+
{...withoutTestIdProps(others)}
|
|
160
177
|
>
|
|
161
178
|
{children}
|
|
162
179
|
</MuiCardActions>
|
|
@@ -167,18 +184,17 @@ export const CardMedia: React.FC<CardMediaProps> = ({
|
|
|
167
184
|
component = 'div',
|
|
168
185
|
image,
|
|
169
186
|
title,
|
|
170
|
-
height =
|
|
187
|
+
height = CARD_MEDIA_HEIGHT,
|
|
171
188
|
children,
|
|
172
|
-
|
|
173
|
-
...props
|
|
189
|
+
...others
|
|
174
190
|
}) => (
|
|
175
191
|
<MuiCardMedia
|
|
176
|
-
data-testid={
|
|
192
|
+
data-testid={resolveTestId(others, 'card-media')}
|
|
177
193
|
component={component}
|
|
178
194
|
height={height}
|
|
179
195
|
image={image}
|
|
180
196
|
title={title}
|
|
181
|
-
{...
|
|
197
|
+
{...withoutTestIdProps(others)}
|
|
182
198
|
>
|
|
183
199
|
{children}
|
|
184
200
|
</MuiCardMedia>
|