@12-apps/ui 6.21.0 → 6.22.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/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 +7 -7
- package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -2
- 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 +10 -10
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +5 -5
- package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
- package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
- package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
- package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
- 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 +49 -49
- 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 +12 -9
- 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 +18 -18
- 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 +44 -44
- 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 +22 -22
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +10 -10
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +13 -13
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +22 -19
- 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 +8 -8
- 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/HoverCard/HoverCard.js +2 -2
- package/dist/_internal/components/data-display/LazyImage/LazyImage.js +4 -4
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +3 -3
- 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/MapLayers.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.hooks.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +9 -9
- 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.hooks.js +2 -2
- 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 +3 -3
- package/dist/_internal/components/data-display/index.js +51 -51
- 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/Modal/Modal.js +2 -2
- package/dist/_internal/components/feedback/StackedModal/StackedModal.js +2 -2
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
- package/dist/_internal/components/feedback/index.js +18 -15
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +5 -5
- 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 +6 -6
- 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/DateRangePicker/DateRangePicker.js +7 -7
- 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/Select/Select.js +2 -2
- package/dist/_internal/components/form/Switch/Switch.js +2 -2
- package/dist/_internal/components/form/index.js +32 -32
- 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 +24 -24
- package/dist/_internal/components/form/total-form/SubmitButton.js +4 -4
- package/dist/_internal/components/index.js +115 -111
- 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/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 +13 -11
- 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/index.js +14 -11
- 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 +4 -4
- package/dist/_internal/icons/Icon.js +2 -2
- package/dist/_internal/platform/test-id.js +3 -1
- 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 +12 -10
- package/dist/charts.js +6 -6
- package/dist/{chunk-P7FQUGED.js → chunk-23FCBIUN.js} +8 -8
- 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-6RGWDKUL.js → chunk-2MMEIN4T.js} +4 -4
- package/dist/{chunk-YRUCIKPO.js → chunk-2UYR2OOE.js} +4 -4
- 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-I3MDKPGG.js → chunk-4IVOHL32.js} +2 -2
- package/dist/{chunk-TLX66HCW.js → chunk-4OHRZW7U.js} +5 -5
- package/dist/{chunk-2QFTAGDH.js → chunk-4X4KM4ZB.js} +4 -4
- package/dist/{chunk-6PRA45LC.js → chunk-5KEMPCW4.js} +54 -45
- package/dist/chunk-5KEMPCW4.js.map +1 -0
- package/dist/{chunk-CXVMD6FE.js → chunk-5NKUYCZD.js} +4 -4
- package/dist/{chunk-77F36LQQ.js → chunk-5OIH36KX.js} +3 -3
- package/dist/{chunk-4MLDWACO.js → chunk-5ZTUP65G.js} +10 -10
- package/dist/{chunk-GDEXYUPF.js → chunk-67L7HMEP.js} +2 -2
- package/dist/{chunk-ZFPJBKVZ.js → chunk-6JGPPTLX.js} +5 -5
- package/dist/{chunk-PF5HDFYY.js → chunk-6NZTYZP5.js} +4 -4
- 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-I7HYGIEJ.js → chunk-7BYFC2MR.js} +6 -6
- package/dist/{chunk-D4T646G4.js → chunk-7NSX7A5H.js} +2 -2
- package/dist/{chunk-OH3YGJT5.js → chunk-7TZ6OC5T.js} +2 -2
- package/dist/{chunk-QS7ZGRNS.js → chunk-7VN7LFBA.js} +6 -6
- package/dist/{chunk-GBNOYRLP.js → chunk-AEGXHZQT.js} +8 -8
- package/dist/{chunk-G2IPK2XE.js → chunk-AGSBIUPV.js} +11 -11
- package/dist/{chunk-D2IASECY.js → chunk-AIRWM7KK.js} +39 -28
- package/dist/chunk-AIRWM7KK.js.map +1 -0
- 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-B3BK2SNS.js → chunk-C3CMEDSO.js} +2 -2
- 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-BEGWE5O4.js → chunk-DTC224UJ.js} +4 -4
- package/dist/{chunk-UB76PBDF.js → chunk-DVFIE54C.js} +2 -2
- package/dist/{chunk-KT6HWAEN.js → chunk-DVUPIVI2.js} +4 -4
- 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-TPIBJP4S.js → chunk-EOHKZGOZ.js} +2 -2
- package/dist/{chunk-SHDIZSN5.js → chunk-EXJBPKGW.js} +5 -5
- 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-OOGEYCJH.js → chunk-FL54G7PV.js} +2 -2
- package/dist/{chunk-AD776JPA.js → chunk-FR67FG2U.js} +2 -2
- package/dist/{chunk-SHQWIDD5.js → chunk-GJQYM3PM.js} +4 -4
- package/dist/{chunk-WROCSDVL.js → chunk-GSFNH4C5.js} +5 -5
- 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-BLBOYCOV.js → chunk-HKV4MQ2W.js} +5 -5
- package/dist/{chunk-FOMK3WPG.js → chunk-HLYPI5CO.js} +4 -4
- package/dist/{chunk-GBRKP5GZ.js → chunk-I5SBTNV2.js} +2 -2
- package/dist/{chunk-V5P5Q6HM.js → chunk-J4W4TQPC.js} +6 -6
- 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-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-OCXCH2ZW.js → chunk-KTK4A3IF.js} +12 -12
- 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-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-QZDBWXZG.js → chunk-OP65D4UR.js} +2 -2
- package/dist/{chunk-BQQONDW5.js → chunk-OVLNF4AZ.js} +6 -6
- package/dist/{chunk-ZTZ6S5Q6.js → chunk-OXQP3N6X.js} +4 -4
- package/dist/{chunk-3UOHKHOT.js → chunk-PFV6RL4Q.js} +3 -3
- package/dist/{chunk-DF2FFYZ7.js → chunk-PMS3H3OO.js} +4 -4
- 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-7KTU6YMQ.js → chunk-Q75SJ35X.js} +5 -5
- package/dist/{chunk-FINCVAAR.js → chunk-QFJRB27Q.js} +4 -4
- package/dist/{chunk-FB36IHCE.js → chunk-QFVFHIHE.js} +8 -8
- package/dist/{chunk-IH4RSRQA.js → chunk-QKIJ6YXZ.js} +4 -4
- package/dist/{chunk-UOPQOBQZ.js → chunk-QWDEOITU.js} +3 -3
- package/dist/{chunk-WBKWIFXA.js → chunk-QYNCPS5W.js} +6 -6
- package/dist/{chunk-XEE7PLDR.js → chunk-QZBUGUOY.js} +6 -6
- package/dist/{chunk-STH66VLA.js → chunk-R7R3LOKW.js} +2 -2
- package/dist/{chunk-OLZTGVBT.js → chunk-REMK55JI.js} +4 -4
- package/dist/{chunk-VWBWKLXX.js → chunk-SX3V2DLV.js} +4 -4
- package/dist/{chunk-THZ2NAA4.js → chunk-TLMLEC4F.js} +4 -4
- package/dist/{chunk-WTIOCG4M.js → chunk-TOYEP23N.js} +2 -2
- package/dist/{chunk-ZGHIHEND.js → chunk-TW3BXVEU.js} +2 -2
- 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-BEH4DN63.js → chunk-U2YJCNRU.js} +4 -4
- package/dist/{chunk-RPQ3W2C6.js → chunk-U2ZDN2AL.js} +2 -2
- package/dist/{chunk-WPZT2JD4.js → chunk-U7Q2Y6WG.js} +2 -2
- package/dist/{chunk-XLJJ2ZAP.js → chunk-UU3QAKG6.js} +10 -10
- package/dist/{chunk-TP4N3X2Q.js → chunk-UVGRRI7N.js} +8 -8
- package/dist/{chunk-GCXYCDOA.js → chunk-VLHGBFR6.js} +2 -2
- package/dist/chunk-VM3HRSAU.js +79 -0
- package/dist/chunk-VM3HRSAU.js.map +1 -0
- package/dist/{chunk-QRX5BYUQ.js → chunk-VNDOQEJ7.js} +4 -4
- package/dist/{chunk-P6IPJYCS.js → chunk-VNNG46TS.js} +6 -6
- package/dist/{chunk-7ZH7ZB33.js → chunk-VQAM2XZV.js} +4 -4
- 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-JXAYT6LX.js → chunk-WLQTHPMX.js} +2 -2
- 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-EPNUVSNK.js → chunk-XFUNJYFT.js} +7 -7
- package/dist/{chunk-RRZBATXK.js → chunk-XKV5ZIBG.js} +3 -3
- package/dist/{chunk-ZKFYBC6G.js → chunk-XSF6AXEU.js} +2 -2
- package/dist/{chunk-VPHOSIPB.js → chunk-XT7HMNBW.js} +9 -9
- 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-MCRIT46W.js → chunk-ZIYMBR7K.js} +5 -5
- package/dist/{chunk-SAHQLXNN.js → chunk-ZKR5B6YJ.js} +5 -5
- package/dist/data-display/Alert.js +4 -4
- package/dist/data-display/AsyncStateContainer.js +7 -7
- package/dist/data-display/Avatar.js +2 -2
- package/dist/data-display/Badge.js +3 -3
- package/dist/data-display/CardKit.js +21 -21
- package/dist/data-display/Carousel.js +2 -2
- package/dist/data-display/Chart.js +6 -6
- 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/HoverCard.js +2 -2
- package/dist/data-display/LazyImage.js +4 -4
- package/dist/data-display/Lightbox.js +3 -3
- package/dist/data-display/LoadingState.js +4 -4
- package/dist/data-display/MapPreview.js +9 -9
- 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 +3 -3
- package/dist/feedback/ConfirmAction.js +7 -7
- package/dist/feedback/Dialog.js +6 -2
- package/dist/feedback/Modal.js +2 -2
- package/dist/feedback/StackedModal.js +2 -2
- package/dist/feedback/TutorialOverlay.js +2 -2
- package/dist/form/AddressAutocomplete.js +5 -5
- 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/DateRangePicker.js +7 -7
- package/dist/form/Input.js +3 -3
- package/dist/form/Label.js +2 -2
- package/dist/form/Menubar.js +5 -5
- 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/Skeleton.js +3 -3
- package/dist/layout/Spacer.js +2 -2
- package/dist/layout/Stack.js +3 -3
- 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 +12 -9
- package/dist/navigation/CommandPalette.js +2 -2
- package/dist/social-login-button.js +11 -9
- 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 +12 -10
- package/dist/utility/InfiniteScroll.js +2 -2
- package/dist/utility/InstallPrompt.js +2 -2
- package/package.json +9 -1
- package/src/components/data-display/CardKit/NATIVE-NOTES.md +48 -0
- 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/native/chunks/chunk-HSIND52T.js.map +0 -1
- /package/dist/{chunk-P7FQUGED.js.map → chunk-23FCBIUN.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-6RGWDKUL.js.map → chunk-2MMEIN4T.js.map} +0 -0
- /package/dist/{chunk-YRUCIKPO.js.map → chunk-2UYR2OOE.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-I3MDKPGG.js.map → chunk-4IVOHL32.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-CXVMD6FE.js.map → chunk-5NKUYCZD.js.map} +0 -0
- /package/dist/{chunk-77F36LQQ.js.map → chunk-5OIH36KX.js.map} +0 -0
- /package/dist/{chunk-4MLDWACO.js.map → chunk-5ZTUP65G.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-PF5HDFYY.js.map → chunk-6NZTYZP5.js.map} +0 -0
- /package/dist/{chunk-I7HYGIEJ.js.map → chunk-7BYFC2MR.js.map} +0 -0
- /package/dist/{chunk-D4T646G4.js.map → chunk-7NSX7A5H.js.map} +0 -0
- /package/dist/{chunk-OH3YGJT5.js.map → chunk-7TZ6OC5T.js.map} +0 -0
- /package/dist/{chunk-QS7ZGRNS.js.map → chunk-7VN7LFBA.js.map} +0 -0
- /package/dist/{chunk-GBNOYRLP.js.map → chunk-AEGXHZQT.js.map} +0 -0
- /package/dist/{chunk-G2IPK2XE.js.map → chunk-AGSBIUPV.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-B3BK2SNS.js.map → chunk-C3CMEDSO.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-BEGWE5O4.js.map → chunk-DTC224UJ.js.map} +0 -0
- /package/dist/{chunk-UB76PBDF.js.map → chunk-DVFIE54C.js.map} +0 -0
- /package/dist/{chunk-KT6HWAEN.js.map → chunk-DVUPIVI2.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-TPIBJP4S.js.map → chunk-EOHKZGOZ.js.map} +0 -0
- /package/dist/{chunk-SHDIZSN5.js.map → chunk-EXJBPKGW.js.map} +0 -0
- /package/dist/{chunk-DH75UNF3.js.map → chunk-FGK2C7JR.js.map} +0 -0
- /package/dist/{chunk-OOGEYCJH.js.map → chunk-FL54G7PV.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-WROCSDVL.js.map → chunk-GSFNH4C5.js.map} +0 -0
- /package/dist/{chunk-Z5ABJLTM.js.map → chunk-HFXTAEYY.js.map} +0 -0
- /package/dist/{chunk-BLBOYCOV.js.map → chunk-HKV4MQ2W.js.map} +0 -0
- /package/dist/{chunk-FOMK3WPG.js.map → chunk-HLYPI5CO.js.map} +0 -0
- /package/dist/{chunk-GBRKP5GZ.js.map → chunk-I5SBTNV2.js.map} +0 -0
- /package/dist/{chunk-V5P5Q6HM.js.map → chunk-J4W4TQPC.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-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-OCXCH2ZW.js.map → chunk-KTK4A3IF.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-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-QZDBWXZG.js.map → chunk-OP65D4UR.js.map} +0 -0
- /package/dist/{chunk-BQQONDW5.js.map → chunk-OVLNF4AZ.js.map} +0 -0
- /package/dist/{chunk-ZTZ6S5Q6.js.map → chunk-OXQP3N6X.js.map} +0 -0
- /package/dist/{chunk-3UOHKHOT.js.map → chunk-PFV6RL4Q.js.map} +0 -0
- /package/dist/{chunk-DF2FFYZ7.js.map → chunk-PMS3H3OO.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-7KTU6YMQ.js.map → chunk-Q75SJ35X.js.map} +0 -0
- /package/dist/{chunk-FINCVAAR.js.map → chunk-QFJRB27Q.js.map} +0 -0
- /package/dist/{chunk-FB36IHCE.js.map → chunk-QFVFHIHE.js.map} +0 -0
- /package/dist/{chunk-IH4RSRQA.js.map → chunk-QKIJ6YXZ.js.map} +0 -0
- /package/dist/{chunk-UOPQOBQZ.js.map → chunk-QWDEOITU.js.map} +0 -0
- /package/dist/{chunk-WBKWIFXA.js.map → chunk-QYNCPS5W.js.map} +0 -0
- /package/dist/{chunk-XEE7PLDR.js.map → chunk-QZBUGUOY.js.map} +0 -0
- /package/dist/{chunk-STH66VLA.js.map → chunk-R7R3LOKW.js.map} +0 -0
- /package/dist/{chunk-OLZTGVBT.js.map → chunk-REMK55JI.js.map} +0 -0
- /package/dist/{chunk-VWBWKLXX.js.map → chunk-SX3V2DLV.js.map} +0 -0
- /package/dist/{chunk-THZ2NAA4.js.map → chunk-TLMLEC4F.js.map} +0 -0
- /package/dist/{chunk-WTIOCG4M.js.map → chunk-TOYEP23N.js.map} +0 -0
- /package/dist/{chunk-ZGHIHEND.js.map → chunk-TW3BXVEU.js.map} +0 -0
- /package/dist/{chunk-5RQ7N63M.js.map → chunk-TZDDL3DR.js.map} +0 -0
- /package/dist/{chunk-BEH4DN63.js.map → chunk-U2YJCNRU.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-XLJJ2ZAP.js.map → chunk-UU3QAKG6.js.map} +0 -0
- /package/dist/{chunk-TP4N3X2Q.js.map → chunk-UVGRRI7N.js.map} +0 -0
- /package/dist/{chunk-GCXYCDOA.js.map → chunk-VLHGBFR6.js.map} +0 -0
- /package/dist/{chunk-QRX5BYUQ.js.map → chunk-VNDOQEJ7.js.map} +0 -0
- /package/dist/{chunk-P6IPJYCS.js.map → chunk-VNNG46TS.js.map} +0 -0
- /package/dist/{chunk-7ZH7ZB33.js.map → chunk-VQAM2XZV.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-JXAYT6LX.js.map → chunk-WLQTHPMX.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-EPNUVSNK.js.map → chunk-XFUNJYFT.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-VPHOSIPB.js.map → chunk-XT7HMNBW.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-MCRIT46W.js.map → chunk-ZIYMBR7K.js.map} +0 -0
- /package/dist/{chunk-SAHQLXNN.js.map → chunk-ZKR5B6YJ.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
|
@@ -11,7 +11,17 @@ import Typography from '@mui/material/Typography/index.js';
|
|
|
11
11
|
import { useTheme } from '@mui/material/styles/index.js';
|
|
12
12
|
import React from 'react';
|
|
13
13
|
|
|
14
|
+
import { hasSpacingSlot, withDialogDefaults } from './Dialog.helpers';
|
|
15
|
+
import {
|
|
16
|
+
DIALOG_ACTIONS,
|
|
17
|
+
DIALOG_BODY_PADDING_UNITS,
|
|
18
|
+
DIALOG_CONTENT_PADDING_UNITS,
|
|
19
|
+
DIALOG_HEADER_CHILDREN_PADDING_UNITS,
|
|
20
|
+
DIALOG_TITLE,
|
|
21
|
+
DIALOG_TITLED_BODY_PADDING_TOP_UNITS,
|
|
22
|
+
} from './Dialog.metrics';
|
|
14
23
|
import { backdropSxOf, variantStylesOf } from './Dialog.styles';
|
|
24
|
+
import { childTestId, resolveTestId, slotTestId, withoutTestIdProps } from '../../../platform/test-id';
|
|
15
25
|
import type {
|
|
16
26
|
DialogActionsProps,
|
|
17
27
|
DialogContentProps,
|
|
@@ -19,24 +29,6 @@ import type {
|
|
|
19
29
|
DialogProps,
|
|
20
30
|
} from './Dialog.types';
|
|
21
31
|
|
|
22
|
-
/**
|
|
23
|
-
* Does this hand us a spacing slot? Fragments are transparent: `<>` is a way of
|
|
24
|
-
* passing several children, not a child that owns them, and a consumer who
|
|
25
|
-
* groups a `DialogContent` and a `DialogActions` in one has still passed both.
|
|
26
|
-
*
|
|
27
|
-
* Only the slots themselves count, and only at the top. A `DialogContent`
|
|
28
|
-
* genuinely nested inside a `<div>` is that div's content, and the dialog
|
|
29
|
-
* padding the div is right.
|
|
30
|
-
*/
|
|
31
|
-
function hasSpacingSlot(children: React.ReactNode): boolean {
|
|
32
|
-
return React.Children.toArray(children).some((child) => {
|
|
33
|
-
if (!React.isValidElement(child)) return false;
|
|
34
|
-
if (child.type === DialogContent || child.type === DialogActions) return true;
|
|
35
|
-
if (child.type !== React.Fragment) return false;
|
|
36
|
-
return hasSpacingSlot((child.props as { children?: React.ReactNode }).children);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
32
|
/**
|
|
41
33
|
* The padding a dialog gives children that are not managing their own — and the
|
|
42
34
|
* rule that takes it back when it turns out they are.
|
|
@@ -60,8 +52,8 @@ function hasSpacingSlot(children: React.ReactNode): boolean {
|
|
|
60
52
|
* had before, not a broken one.
|
|
61
53
|
*/
|
|
62
54
|
const BODY_SX = {
|
|
63
|
-
px:
|
|
64
|
-
pb:
|
|
55
|
+
px: DIALOG_BODY_PADDING_UNITS.horizontal,
|
|
56
|
+
pb: DIALOG_BODY_PADDING_UNITS.bottom,
|
|
65
57
|
'&:has(> .MuiDialogContent-root), &:has(> .MuiDialogActions-root)': {
|
|
66
58
|
display: 'contents',
|
|
67
59
|
},
|
|
@@ -74,38 +66,12 @@ const BODY_SX = {
|
|
|
74
66
|
* spacing.
|
|
75
67
|
*/
|
|
76
68
|
function bodyOf(children: React.ReactNode, hasTitle: boolean): React.ReactNode {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
size: 'md',
|
|
84
|
-
showCloseButton: true,
|
|
85
|
-
backdrop: true,
|
|
86
|
-
persistent: false,
|
|
87
|
-
glass: false,
|
|
88
|
-
gradient: false,
|
|
89
|
-
glow: false,
|
|
90
|
-
pulse: false,
|
|
91
|
-
borderRadius: 'lg',
|
|
92
|
-
} as const satisfies Partial<DialogProps>;
|
|
93
|
-
|
|
94
|
-
/** DialogProps with every defaulted field guaranteed present (wide types). */
|
|
95
|
-
type DialogPropsWithDefaults = DialogProps &
|
|
96
|
-
Required<Pick<DialogProps, keyof typeof DIALOG_DEFAULTS>>;
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Apply {@link DIALOG_DEFAULTS} exactly like parameter defaults would: only a
|
|
100
|
-
* missing/`undefined` prop falls back (a loop, so the component's cyclomatic
|
|
101
|
-
* complexity doesn't pay one branch per defaulted prop).
|
|
102
|
-
*/
|
|
103
|
-
function withDialogDefaults(props: DialogProps): DialogPropsWithDefaults {
|
|
104
|
-
const merged: Record<string, unknown> = { ...props };
|
|
105
|
-
for (const [key, value] of Object.entries(DIALOG_DEFAULTS)) {
|
|
106
|
-
if (merged[key] === undefined) merged[key] = value;
|
|
107
|
-
}
|
|
108
|
-
return merged as unknown as DialogPropsWithDefaults;
|
|
69
|
+
// Read lazily: both slots are declared below this function.
|
|
70
|
+
if (hasSpacingSlot(children, [DialogContent, DialogActions])) return children;
|
|
71
|
+
const pt = hasTitle
|
|
72
|
+
? DIALOG_BODY_PADDING_UNITS.topUnderTitle
|
|
73
|
+
: DIALOG_BODY_PADDING_UNITS.top;
|
|
74
|
+
return <Box sx={{ ...BODY_SX, pt }}>{children}</Box>;
|
|
109
75
|
}
|
|
110
76
|
|
|
111
77
|
export const Dialog: React.FC<DialogProps> = (rawProps) => {
|
|
@@ -125,11 +91,15 @@ export const Dialog: React.FC<DialogProps> = (rawProps) => {
|
|
|
125
91
|
borderRadius,
|
|
126
92
|
onClose,
|
|
127
93
|
open,
|
|
128
|
-
|
|
129
|
-
...props
|
|
94
|
+
...others
|
|
130
95
|
} = withDialogDefaults(rawProps);
|
|
131
96
|
const theme = useTheme();
|
|
132
|
-
|
|
97
|
+
// Every spelling of the test id the shared contract allows, mapped to the one
|
|
98
|
+
// the DOM reads, and stripped from what is spread — `testID` is React
|
|
99
|
+
// Native's name for it and is not a DOM attribute. The native `Dialog` does
|
|
100
|
+
// the same in reverse.
|
|
101
|
+
const testId = resolveTestId(others, 'dialog');
|
|
102
|
+
const props = withoutTestIdProps(others);
|
|
133
103
|
const paperSx = variantStylesOf(theme, {
|
|
134
104
|
variant, size, borderRadius, glass, gradient, glow, pulse,
|
|
135
105
|
});
|
|
@@ -147,7 +117,7 @@ export const Dialog: React.FC<DialogProps> = (rawProps) => {
|
|
|
147
117
|
subtitle={description}
|
|
148
118
|
showCloseButton={showCloseButton}
|
|
149
119
|
onClose={onClose}
|
|
150
|
-
dataTestId={
|
|
120
|
+
dataTestId={testId}
|
|
151
121
|
/>
|
|
152
122
|
) : null;
|
|
153
123
|
const body = bodyOf(children, Boolean(title));
|
|
@@ -191,11 +161,20 @@ export const DialogHeader: React.FC<DialogHeaderProps> = ({
|
|
|
191
161
|
subtitle,
|
|
192
162
|
showCloseButton = true,
|
|
193
163
|
onClose,
|
|
194
|
-
|
|
164
|
+
...others
|
|
195
165
|
}) => {
|
|
166
|
+
const props = withoutTestIdProps(others);
|
|
167
|
+
|
|
196
168
|
if (children) {
|
|
197
169
|
return (
|
|
198
|
-
<Box
|
|
170
|
+
<Box
|
|
171
|
+
data-testid={slotTestId(others, 'header', 'dialog')}
|
|
172
|
+
sx={{
|
|
173
|
+
p: DIALOG_HEADER_CHILDREN_PADDING_UNITS,
|
|
174
|
+
borderBottom: '1px solid',
|
|
175
|
+
borderColor: 'divider',
|
|
176
|
+
}}
|
|
177
|
+
>
|
|
199
178
|
{children}
|
|
200
179
|
</Box>
|
|
201
180
|
);
|
|
@@ -203,20 +182,27 @@ export const DialogHeader: React.FC<DialogHeaderProps> = ({
|
|
|
203
182
|
|
|
204
183
|
return (
|
|
205
184
|
<MuiDialogTitle
|
|
206
|
-
data-testid={
|
|
185
|
+
data-testid={slotTestId(others, 'title', 'dialog')}
|
|
207
186
|
sx={{
|
|
208
187
|
display: 'flex',
|
|
209
188
|
alignItems: 'center',
|
|
210
189
|
justifyContent: 'space-between',
|
|
211
|
-
pb: subtitle
|
|
190
|
+
pb: subtitle
|
|
191
|
+
? DIALOG_TITLE.paddingBottomUnits.withSubtitle
|
|
192
|
+
: DIALOG_TITLE.paddingBottomUnits.plain,
|
|
212
193
|
}}
|
|
194
|
+
{...props}
|
|
213
195
|
>
|
|
214
196
|
<Box>
|
|
215
197
|
<Typography variant="h6" component="div">
|
|
216
198
|
{title}
|
|
217
199
|
</Typography>
|
|
218
200
|
{subtitle && (
|
|
219
|
-
<Typography
|
|
201
|
+
<Typography
|
|
202
|
+
variant="body2"
|
|
203
|
+
color="text.secondary"
|
|
204
|
+
sx={{ mt: DIALOG_TITLE.subtitleGapUnits }}
|
|
205
|
+
>
|
|
220
206
|
{subtitle}
|
|
221
207
|
</Typography>
|
|
222
208
|
)}
|
|
@@ -225,7 +211,7 @@ export const DialogHeader: React.FC<DialogHeaderProps> = ({
|
|
|
225
211
|
<IconButton
|
|
226
212
|
aria-label="close"
|
|
227
213
|
onClick={onClose}
|
|
228
|
-
data-testid={
|
|
214
|
+
data-testid={childTestId(others, 'close', 'dialog')}
|
|
229
215
|
sx={{
|
|
230
216
|
color: 'text.secondary',
|
|
231
217
|
'&:hover': {
|
|
@@ -254,7 +240,7 @@ export const DialogHeader: React.FC<DialogHeaderProps> = ({
|
|
|
254
240
|
* contributes its bottom padding, so a shrunk label's `translate(…, -9px)` is
|
|
255
241
|
* all that is missing. 12px clears it and leaves the gap visually tight.
|
|
256
242
|
*/
|
|
257
|
-
const TITLED_BODY_PADDING_TOP =
|
|
243
|
+
const TITLED_BODY_PADDING_TOP = DIALOG_TITLED_BODY_PADDING_TOP_UNITS;
|
|
258
244
|
|
|
259
245
|
/**
|
|
260
246
|
* `.MuiDialogTitle-root + &` is `(0,2,0)`-specific and a plain `sx` entry is
|
|
@@ -268,14 +254,13 @@ export const DialogContent: React.FC<DialogContentProps> = ({
|
|
|
268
254
|
children,
|
|
269
255
|
dividers = false,
|
|
270
256
|
dense = false,
|
|
271
|
-
|
|
272
|
-
...props
|
|
257
|
+
...others
|
|
273
258
|
}) => (
|
|
274
259
|
<MuiDialogContent
|
|
275
|
-
data-testid={
|
|
260
|
+
data-testid={slotTestId(others, 'content', 'dialog')}
|
|
276
261
|
dividers={dividers}
|
|
277
262
|
sx={{
|
|
278
|
-
padding: dense ?
|
|
263
|
+
padding: dense ? DIALOG_CONTENT_PADDING_UNITS.dense : DIALOG_CONTENT_PADDING_UNITS.normal,
|
|
279
264
|
[TITLED_BODY_SELECTOR]: { paddingTop: TITLED_BODY_PADDING_TOP },
|
|
280
265
|
'&.MuiDialogContent-dividers': {
|
|
281
266
|
borderTop: dividers ? '1px solid' : 'none',
|
|
@@ -283,7 +268,7 @@ export const DialogContent: React.FC<DialogContentProps> = ({
|
|
|
283
268
|
borderColor: 'divider',
|
|
284
269
|
},
|
|
285
270
|
}}
|
|
286
|
-
{...
|
|
271
|
+
{...withoutTestIdProps(others)}
|
|
287
272
|
>
|
|
288
273
|
{children}
|
|
289
274
|
</MuiDialogContent>
|
|
@@ -292,9 +277,8 @@ export const DialogContent: React.FC<DialogContentProps> = ({
|
|
|
292
277
|
export const DialogActions: React.FC<DialogActionsProps> = ({
|
|
293
278
|
children,
|
|
294
279
|
alignment = 'right',
|
|
295
|
-
spacing =
|
|
296
|
-
|
|
297
|
-
...props
|
|
280
|
+
spacing = DIALOG_ACTIONS.defaultSpacingUnits,
|
|
281
|
+
...others
|
|
298
282
|
}) => {
|
|
299
283
|
const getJustifyContent = () => {
|
|
300
284
|
switch (alignment) {
|
|
@@ -308,13 +292,13 @@ export const DialogActions: React.FC<DialogActionsProps> = ({
|
|
|
308
292
|
|
|
309
293
|
return (
|
|
310
294
|
<MuiDialogActions
|
|
311
|
-
data-testid={
|
|
295
|
+
data-testid={slotTestId(others, 'actions', 'dialog')}
|
|
312
296
|
sx={{
|
|
313
297
|
justifyContent: getJustifyContent(),
|
|
314
298
|
gap: spacing,
|
|
315
|
-
p:
|
|
299
|
+
p: DIALOG_ACTIONS.paddingUnits,
|
|
316
300
|
}}
|
|
317
|
-
{...
|
|
301
|
+
{...withoutTestIdProps(others)}
|
|
318
302
|
>
|
|
319
303
|
{children}
|
|
320
304
|
</MuiDialogActions>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ModalProps, StyleProp, ViewProps, ViewStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
DialogActionsBaseProps,
|
|
5
|
+
DialogBaseProps,
|
|
6
|
+
DialogContentBaseProps,
|
|
7
|
+
DialogHeaderBaseProps,
|
|
8
|
+
} from './Dialog.base';
|
|
9
|
+
|
|
10
|
+
export type {
|
|
11
|
+
DialogActionsAlignment,
|
|
12
|
+
DialogActionsBaseProps,
|
|
13
|
+
DialogBaseProps,
|
|
14
|
+
DialogBorderRadius,
|
|
15
|
+
DialogContentBaseProps,
|
|
16
|
+
DialogHeaderBaseProps,
|
|
17
|
+
DialogSize,
|
|
18
|
+
DialogVariant,
|
|
19
|
+
} from './Dialog.base';
|
|
20
|
+
|
|
21
|
+
/** Everything a native slot takes on top of its shared contract. */
|
|
22
|
+
type NativeSlotProps<Base> = Base & Omit<ViewProps, keyof Base | 'style'> & {
|
|
23
|
+
style?: StyleProp<ViewStyle>;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The native `Dialog`: the shared contract over React Native's own `Modal`.
|
|
28
|
+
*
|
|
29
|
+
* `Modal`'s props come through so a consumer can pick the presentation
|
|
30
|
+
* (`animationType`, `statusBarTranslucent`, `supportedOrientations`). `visible`
|
|
31
|
+
* is spoken for — `open` is the shared name — and `onRequestClose` is wired to
|
|
32
|
+
* `onClose` unless the dialog is `persistent`, which is what makes the Android
|
|
33
|
+
* back button and the browser's Escape key behave like the web's.
|
|
34
|
+
*
|
|
35
|
+
* `style` lands on the PAPER, the box the web styles through `PaperProps.sx`.
|
|
36
|
+
*/
|
|
37
|
+
export type DialogProps = DialogBaseProps &
|
|
38
|
+
Omit<ModalProps, keyof DialogBaseProps | 'visible' | 'onRequestClose' | 'style'> & {
|
|
39
|
+
style?: StyleProp<ViewStyle>;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export type DialogHeaderProps = NativeSlotProps<DialogHeaderBaseProps>;
|
|
43
|
+
|
|
44
|
+
export type DialogContentProps = NativeSlotProps<DialogContentBaseProps>;
|
|
45
|
+
|
|
46
|
+
export type DialogActionsProps = NativeSlotProps<DialogActionsBaseProps>;
|
|
@@ -1,47 +1,30 @@
|
|
|
1
|
-
import type { SizeValue } from '../../../tokens/scales';
|
|
2
1
|
import type { DialogProps as MuiDialogProps } from '@mui/material/Dialog/index.js';
|
|
3
|
-
import type { ReactNode } from 'react';
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import type {
|
|
4
|
+
DialogActionsBaseProps,
|
|
5
|
+
DialogBaseProps,
|
|
6
|
+
DialogContentBaseProps,
|
|
7
|
+
DialogHeaderBaseProps,
|
|
8
|
+
} from './Dialog.base';
|
|
7
9
|
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
gradient?: boolean;
|
|
19
|
-
glow?: boolean;
|
|
20
|
-
pulse?: boolean;
|
|
21
|
-
borderRadius?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
22
|
-
onClose?: () => void;
|
|
23
|
-
dataTestId?: string;
|
|
24
|
-
}
|
|
10
|
+
export type {
|
|
11
|
+
DialogActionsAlignment,
|
|
12
|
+
DialogActionsBaseProps,
|
|
13
|
+
DialogBaseProps,
|
|
14
|
+
DialogBorderRadius,
|
|
15
|
+
DialogContentBaseProps,
|
|
16
|
+
DialogHeaderBaseProps,
|
|
17
|
+
DialogSize,
|
|
18
|
+
DialogVariant,
|
|
19
|
+
} from './Dialog.base';
|
|
25
20
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
showCloseButton?: boolean;
|
|
31
|
-
onClose?: () => void;
|
|
32
|
-
dataTestId?: string;
|
|
33
|
-
}
|
|
21
|
+
/** The web `Dialog`: the shared contract, plus everything MUI's own `Dialog` takes. */
|
|
22
|
+
export interface DialogProps
|
|
23
|
+
extends DialogBaseProps,
|
|
24
|
+
Omit<MuiDialogProps, 'variant' | 'title' | keyof DialogBaseProps> {}
|
|
34
25
|
|
|
35
|
-
export
|
|
36
|
-
children: ReactNode;
|
|
37
|
-
dividers?: boolean;
|
|
38
|
-
dense?: boolean;
|
|
39
|
-
dataTestId?: string;
|
|
40
|
-
}
|
|
26
|
+
export type DialogHeaderProps = DialogHeaderBaseProps;
|
|
41
27
|
|
|
42
|
-
export
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
spacing?: number;
|
|
46
|
-
dataTestId?: string;
|
|
47
|
-
}
|
|
28
|
+
export type DialogContentProps = DialogContentBaseProps;
|
|
29
|
+
|
|
30
|
+
export type DialogActionsProps = DialogActionsBaseProps;
|
|
@@ -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';
|