@12-apps/ui 6.19.0 → 6.20.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 +7 -2
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +8 -7
- package/dist/_internal/components/data-display/Avatar/Avatar.base.js +1 -0
- package/dist/_internal/components/data-display/Avatar/Avatar.base.js.map +1 -0
- package/dist/_internal/components/data-display/Avatar/Avatar.helpers.js +14 -0
- package/dist/_internal/components/data-display/Avatar/Avatar.helpers.js.map +1 -0
- package/dist/_internal/components/data-display/Avatar/Avatar.js +8 -2
- package/dist/_internal/components/data-display/Avatar/Avatar.metrics.js +52 -0
- package/dist/_internal/components/data-display/Avatar/Avatar.metrics.js.map +1 -0
- package/dist/_internal/components/data-display/Avatar/Avatar.view.js +6 -1
- package/dist/_internal/components/data-display/Badge/Badge.animations.js +6 -1
- package/dist/_internal/components/data-display/Badge/Badge.base.js +1 -0
- package/dist/_internal/components/data-display/Badge/Badge.base.js.map +1 -0
- package/dist/_internal/components/data-display/Badge/Badge.helpers.js +3 -1
- package/dist/_internal/components/data-display/Badge/Badge.js +12 -6
- package/dist/_internal/components/data-display/Badge/Badge.metrics.js +64 -0
- package/dist/_internal/components/data-display/Badge/Badge.metrics.js.map +1 -0
- package/dist/_internal/components/data-display/Badge/Badge.styles.js +8 -3
- package/dist/_internal/components/data-display/Badge/Badge.variants.js +6 -1
- package/dist/_internal/components/data-display/Badge/BadgeContent.js +9 -4
- package/dist/_internal/components/data-display/CardKit/CardKebab.js +3 -3
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +4 -4
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +4 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
- package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
- package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
- package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
- package/dist/_internal/components/data-display/Chip/Chip.base.js +1 -0
- package/dist/_internal/components/data-display/Chip/Chip.base.js.map +1 -0
- package/dist/_internal/components/data-display/Chip/Chip.helpers.js +3 -9
- package/dist/_internal/components/data-display/Chip/Chip.js +4 -2
- package/dist/_internal/components/data-display/Chip/Chip.metrics.js +32 -0
- package/dist/_internal/components/data-display/Chip/Chip.metrics.js.map +1 -0
- package/dist/_internal/components/data-display/Chip/Chip.styles.js +16 -0
- package/dist/_internal/components/data-display/Chip/Chip.styles.js.map +1 -0
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +43 -43
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +54 -54
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +5 -5
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +5 -5
- package/dist/_internal/components/data-display/DataViews/base-card.js +4 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +5 -4
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +1 -1
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +7 -6
- package/dist/_internal/components/data-display/DataViews/card-surface.js +7 -2
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +15 -15
- package/dist/_internal/components/data-display/DataViews/data-views-columns.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-empty.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-export.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +16 -16
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +9 -9
- package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +40 -40
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +20 -20
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +12 -12
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +13 -13
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +11 -11
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +3 -3
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +1 -1
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +6 -6
- package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
- package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
- package/dist/_internal/components/data-display/HoverCard/HoverCard.js +3 -3
- package/dist/_internal/components/data-display/LazyImage/LazyImage.js +6 -4
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +5 -5
- package/dist/_internal/components/data-display/LoadingState/LoadingState.js +5 -4
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +4 -4
- package/dist/_internal/components/data-display/Progress/Progress.base.js +1 -0
- package/dist/_internal/components/data-display/Progress/Progress.base.js.map +1 -0
- package/dist/_internal/components/data-display/Progress/Progress.helpers.js +5 -1
- package/dist/_internal/components/data-display/Progress/Progress.js +8 -3
- package/dist/_internal/components/data-display/Progress/Progress.metrics.js +52 -0
- package/dist/_internal/components/data-display/Progress/Progress.metrics.js.map +1 -0
- package/dist/_internal/components/data-display/Progress/Progress.styles.js +6 -1
- package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.js +2 -2
- package/dist/_internal/components/data-display/StatCard/StatCard.js +6 -4
- package/dist/_internal/components/data-display/Table/Table.js +3 -3
- package/dist/_internal/components/data-display/index.js +63 -56
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
- package/dist/_internal/components/feedback/index.js +8 -8
- 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 +2 -2
- 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 +3 -3
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -3
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +7 -7
- package/dist/_internal/components/form/Input/Input.js +2 -2
- package/dist/_internal/components/form/Menubar/Menubar.js +2 -2
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +2 -2
- package/dist/_internal/components/form/index.js +28 -28
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +11 -11
- package/dist/_internal/components/form/total-form/Fields/CepField.js +4 -4
- package/dist/_internal/components/form/total-form/Fields/TextField.js +3 -3
- package/dist/_internal/components/form/total-form/Fields/index.js +21 -21
- package/dist/_internal/components/form/total-form/SubmitButton.js +3 -3
- package/dist/_internal/components/index.js +125 -118
- package/dist/_internal/components/layout/Container/Container.js +2 -2
- package/dist/_internal/components/layout/Container/Container.metrics.js +3 -1
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +2 -2
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +4 -4
- package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +2 -2
- package/dist/_internal/components/layout/Skeleton/Skeleton.base.js +1 -0
- package/dist/_internal/components/layout/Skeleton/Skeleton.base.js.map +1 -0
- package/dist/_internal/components/layout/Skeleton/Skeleton.helpers.js +5 -3
- package/dist/_internal/components/layout/Skeleton/Skeleton.js +5 -3
- package/dist/_internal/components/layout/Skeleton/Skeleton.metrics.js +36 -0
- package/dist/_internal/components/layout/Skeleton/Skeleton.metrics.js.map +1 -0
- package/dist/_internal/components/layout/Skeleton/Skeleton.styles.js +2 -1
- package/dist/_internal/components/layout/index.js +18 -17
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +5 -5
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +2 -2
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +4 -4
- package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +2 -2
- package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
- package/dist/_internal/components/navigation/Tabs/Tabs.js +2 -2
- package/dist/_internal/components/navigation/index.js +16 -16
- package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
- package/dist/_internal/components/utility/index.js +2 -2
- package/dist/_internal/icons/Icon.js +2 -2
- package/dist/_internal/icons/paths.generated.js +1 -1
- package/dist/_internal/platform/animation.js +31 -0
- package/dist/_internal/platform/animation.js.map +1 -0
- package/dist/_internal/platform/web-keys.js +10 -0
- package/dist/_internal/platform/web-keys.js.map +1 -0
- package/dist/_internal/social-login-button/social-login-button.js +3 -3
- package/dist/_internal/tokens/mui-type.js +2 -1
- package/dist/_internal/tokens/mui-type.js.map +1 -1
- package/dist/_internal/user-avatar/user-avatar.js +7 -5
- package/dist/charts.js +11 -11
- package/dist/{chunk-P7FQUGED.js → chunk-23FCBIUN.js} +8 -8
- package/dist/{chunk-SL4NFGOL.js → chunk-24BUCMQA.js} +4 -4
- package/dist/{chunk-4SXZSSVV.js → chunk-2EKALM6P.js} +3 -3
- package/dist/{chunk-ZRFRU545.js → chunk-2ZDTGI5V.js} +7 -7
- package/dist/{chunk-HR7YTBR7.js → chunk-3AOOI2NR.js} +4 -4
- package/dist/chunk-3ZVUNSFF.js +32 -0
- package/dist/chunk-3ZVUNSFF.js.map +1 -0
- package/dist/{chunk-KKYW3LU7.js → chunk-47UD6DZ4.js} +2 -2
- package/dist/{chunk-ZOUWHGV3.js → chunk-4MGFUPQT.js} +4 -4
- package/dist/{chunk-LYNJJV2X.js → chunk-4SQFO4GW.js} +58 -40
- package/dist/chunk-4SQFO4GW.js.map +1 -0
- package/dist/{chunk-4FRZDSRD.js → chunk-4WK2RTVY.js} +3 -3
- package/dist/{chunk-HAFE43QJ.js → chunk-5JEOLUWJ.js} +6 -2
- package/dist/chunk-5JEOLUWJ.js.map +1 -0
- package/dist/{chunk-LDE4ELB5.js → chunk-5ZF3VASA.js} +7 -7
- package/dist/{chunk-JE6RZ5L6.js → chunk-5ZOJLYD2.js} +4 -4
- package/dist/{chunk-MMZAGB64.js → chunk-6C5D6O3D.js} +4 -2
- package/dist/chunk-6C5D6O3D.js.map +1 -0
- package/dist/{chunk-E5ZHW4I5.js → chunk-6IUTT6BK.js} +3 -3
- package/dist/{chunk-WPR2HS5B.js → chunk-74EZ565M.js} +8 -8
- package/dist/{chunk-BVZVH3ZN.js → chunk-74OZ5KVR.js} +5 -5
- package/dist/{chunk-PMS3H3OO.js → chunk-76GZ55IC.js} +7 -7
- package/dist/{chunk-QIV73V2X.js → chunk-7BYFC2MR.js} +36 -28
- package/dist/chunk-7BYFC2MR.js.map +1 -0
- package/dist/{chunk-DLFOEXUP.js → chunk-7EESF76V.js} +2 -2
- package/dist/{chunk-HKZHEK3Z.js → chunk-7JWXLDRH.js} +3 -3
- package/dist/{chunk-OR7UH2ZQ.js → chunk-7P2HZLEG.js} +3 -3
- package/dist/{chunk-6DXYCXH4.js → chunk-7RZ4WOQW.js} +2 -2
- package/dist/{chunk-EMNGIYH6.js → chunk-7TZ6OC5T.js} +5 -5
- package/dist/{chunk-HXYXDQ7U.js → chunk-7WDPC46N.js} +4 -2
- package/dist/chunk-7WDPC46N.js.map +1 -0
- package/dist/{chunk-CDJPDZCA.js → chunk-AEGX66N7.js} +2 -2
- package/dist/{chunk-65DLYC4S.js → chunk-AVGTTWTE.js} +4 -4
- package/dist/{chunk-C6XESZ3R.js → chunk-B2A4DG77.js} +6 -6
- package/dist/{chunk-VOOPGAQO.js → chunk-B7BZAIHL.js} +2 -2
- package/dist/{chunk-DZN3JF5E.js → chunk-BBC4KT5G.js} +4 -4
- package/dist/chunk-BF4FYOAR.js +23 -0
- package/dist/chunk-BF4FYOAR.js.map +1 -0
- package/dist/{chunk-FWCUELBU.js → chunk-BILE3A7F.js} +2 -2
- package/dist/{chunk-UEJQQVP2.js → chunk-BLT5ZBVL.js} +4 -4
- package/dist/chunk-BRMGHMYB.js +45 -0
- package/dist/chunk-BRMGHMYB.js.map +1 -0
- package/dist/{chunk-ISSJNFJV.js → chunk-C52BELLW.js} +2 -2
- package/dist/{chunk-BPYPUEM5.js → chunk-CZJLWCEG.js} +2 -2
- package/dist/{chunk-WZUNBSS7.js → chunk-DVUPIVI2.js} +4 -4
- package/dist/chunk-E46PG577.js +78 -0
- package/dist/chunk-E46PG577.js.map +1 -0
- package/dist/{chunk-L6KEVPXN.js → chunk-E4FGKZID.js} +20 -9
- package/dist/chunk-E4FGKZID.js.map +1 -0
- package/dist/{chunk-EXJBPKGW.js → chunk-EGRFMPGD.js} +4 -4
- package/dist/{chunk-XFUNJYFT.js → chunk-EPNUVSNK.js} +7 -7
- package/dist/{chunk-H2EQVMU3.js → chunk-EX3PSZLV.js} +2 -2
- package/dist/{chunk-4Q7HWRR2.js → chunk-EZSEAYYT.js} +52 -72
- package/dist/chunk-EZSEAYYT.js.map +1 -0
- package/dist/{chunk-LIOVN5IM.js → chunk-F2DOTCF3.js} +2 -2
- package/dist/chunk-FAITHWIO.js +73 -0
- package/dist/chunk-FAITHWIO.js.map +1 -0
- package/dist/{chunk-64IEKEMQ.js → chunk-FGLV6BXQ.js} +4 -4
- package/dist/{chunk-L65LF6LN.js → chunk-FP4R47TM.js} +2 -2
- package/dist/{chunk-NQHOHQCY.js → chunk-FPWB5ILF.js} +16 -8
- package/dist/chunk-FPWB5ILF.js.map +1 -0
- package/dist/{chunk-7AR2R7TV.js → chunk-G5ZVD5IJ.js} +4 -4
- package/dist/{chunk-SHQWIDD5.js → chunk-GJQYM3PM.js} +4 -4
- package/dist/{chunk-7WL24VNI.js → chunk-HDNK7BAX.js} +5 -5
- package/dist/{chunk-X5MPHXG5.js → chunk-HEG7JIBM.js} +4 -4
- package/dist/{chunk-LLABVZM3.js → chunk-HEK4LQT6.js} +13 -7
- package/dist/chunk-HEK4LQT6.js.map +1 -0
- package/dist/{chunk-HKFMPEXJ.js → chunk-HI2OFZSZ.js} +17 -10
- package/dist/chunk-HI2OFZSZ.js.map +1 -0
- package/dist/{chunk-ZIOCRSHU.js → chunk-HSAH5QUQ.js} +3 -3
- package/dist/{chunk-B443IIQG.js → chunk-IE7ISTLQ.js} +4 -4
- package/dist/{chunk-NFHS77NE.js → chunk-IH4CX43Q.js} +2 -2
- package/dist/{chunk-72UYVJBQ.js → chunk-IJIT5HQP.js} +2 -2
- package/dist/{chunk-KPQAPQH6.js → chunk-J2KSG754.js} +10 -8
- package/dist/chunk-J2KSG754.js.map +1 -0
- package/dist/{chunk-AP4FLCLA.js → chunk-J54WH74M.js} +4 -4
- package/dist/{chunk-5HOJSVQH.js → chunk-JB7JE4QZ.js} +2 -2
- package/dist/{chunk-QJJUTBKZ.js → chunk-KQ74QU55.js} +2 -2
- package/dist/chunk-KU6VHNRV.js +68 -0
- package/dist/chunk-KU6VHNRV.js.map +1 -0
- package/dist/chunk-KVEHH4SA.js +85 -0
- package/dist/chunk-KVEHH4SA.js.map +1 -0
- package/dist/{chunk-YLDS5FOQ.js → chunk-KZSKI2R3.js} +2 -2
- package/dist/{chunk-IIOEQRXX.js → chunk-LAHDFBDE.js} +2 -2
- package/dist/{chunk-BUDXR3EV.js → chunk-LKVIZNUM.js} +5 -5
- package/dist/{chunk-OAXAF4VY.js → chunk-LMJBINWN.js} +12 -12
- package/dist/{chunk-SFAP5EH5.js → chunk-LUMF63BM.js} +4 -4
- package/dist/{chunk-KADJNWTQ.js → chunk-LZRURORY.js} +3 -3
- package/dist/{chunk-CLNTJM3F.js → chunk-M7OHXNLF.js} +2 -2
- package/dist/{chunk-UXQW6ZIN.js → chunk-MBYO2F4Y.js} +5 -5
- package/dist/{chunk-ZHEJLUCX.js → chunk-MHV5Y5MR.js} +30 -17
- package/dist/chunk-MHV5Y5MR.js.map +1 -0
- package/dist/{chunk-MCRIT46W.js → chunk-MY5VNNSP.js} +4 -4
- package/dist/{chunk-XELVDPKL.js → chunk-NFAKRI4S.js} +4 -4
- package/dist/{chunk-KSF7TLXH.js → chunk-NHSMLVNC.js} +6 -6
- package/dist/{chunk-ES2RN7YV.js → chunk-NRUYYGDZ.js} +2 -2
- package/dist/{chunk-ZGEBIC5X.js → chunk-OLVZ6TOV.js} +13 -9
- package/dist/chunk-OLVZ6TOV.js.map +1 -0
- package/dist/{chunk-MQUU2XZB.js → chunk-OQFSYMHJ.js} +2 -2
- package/dist/{chunk-M3RIC6JI.js → chunk-OQXOYHIV.js} +4 -4
- package/dist/{chunk-PC3ZFERM.js → chunk-PC5FFEIY.js} +2 -2
- package/dist/{chunk-SOHDPFOB.js → chunk-PHCSPHDH.js} +2 -2
- package/dist/{chunk-OZWQNFG6.js → chunk-PODGTNXS.js} +3 -3
- package/dist/{chunk-IPE5FFFD.js → chunk-PUBPZOQJ.js} +2 -2
- package/dist/{chunk-GBFGZJB5.js → chunk-Q4NOI2CR.js} +5 -5
- package/dist/{chunk-IRDGC7FK.js → chunk-QZWKC3AP.js} +13 -7
- package/dist/chunk-QZWKC3AP.js.map +1 -0
- package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
- package/dist/{chunk-DTKMBI7B.js → chunk-R7MX5KPJ.js} +4 -4
- package/dist/{chunk-NECUCG2S.js → chunk-RQDN4BN5.js} +14 -14
- package/dist/{chunk-5SYD23V4.js → chunk-SKZHOWTS.js} +4 -4
- package/dist/{chunk-Y6KPZQPI.js → chunk-SOCKK67R.js} +4 -4
- package/dist/{chunk-GCJLMX63.js → chunk-VCTKJHXD.js} +2 -2
- package/dist/{chunk-QZPNQWS2.js → chunk-VEFDL77X.js} +2 -2
- package/dist/{chunk-WEH5TCPE.js → chunk-VJFH2AXT.js} +8 -8
- package/dist/{chunk-S7HRED4D.js → chunk-VLHGBFR6.js} +3 -3
- package/dist/{chunk-RLC46NIW.js → chunk-VMNSGE2G.js} +3 -1
- package/dist/chunk-VMNSGE2G.js.map +1 -0
- package/dist/{chunk-HP2ODXNA.js → chunk-VR5HDUBK.js} +2 -2
- package/dist/{chunk-RBGOGTT2.js → chunk-W2UTDN4T.js} +4 -4
- package/dist/{chunk-N4WANJI3.js → chunk-WBVHRLIS.js} +4 -4
- package/dist/{chunk-XXJRT6BP.js → chunk-WMALDOF5.js} +4 -4
- package/dist/{chunk-MHFJBNDP.js → chunk-WO52KYSU.js} +8 -8
- package/dist/{chunk-ZBOFBRZC.js → chunk-WX7VWW3W.js} +2 -2
- package/dist/{chunk-J4W4TQPC.js → chunk-X24P3ZYW.js} +6 -6
- package/dist/{chunk-JZT5XP23.js → chunk-YBVKLJAL.js} +8 -3
- package/dist/{chunk-JZT5XP23.js.map → chunk-YBVKLJAL.js.map} +1 -1
- package/dist/{chunk-X2J6MRJW.js → chunk-YFHIESMD.js} +2 -2
- package/dist/{chunk-72NOM3O2.js → chunk-YK2PETUP.js} +2 -2
- package/dist/{chunk-CRNQVWIT.js → chunk-Z4GWXTZV.js} +4 -4
- package/dist/{chunk-SG6VULKS.js → chunk-ZEBJT5JZ.js} +3 -3
- package/dist/chunk-ZEG2LNBY.js +68 -0
- package/dist/chunk-ZEG2LNBY.js.map +1 -0
- package/dist/{chunk-JZKOJZ6V.js → chunk-ZOW2CCMO.js} +26 -25
- package/dist/chunk-ZOW2CCMO.js.map +1 -0
- package/dist/{chunk-3HWL4AW4.js → chunk-ZTF5C2GA.js} +22 -10
- package/dist/chunk-ZTF5C2GA.js.map +1 -0
- package/dist/data-display/AsyncStateContainer.js +8 -7
- package/dist/data-display/Avatar.js +8 -2
- package/dist/data-display/Badge.js +12 -6
- package/dist/data-display/CardKit.js +7 -7
- package/dist/data-display/Carousel.js +2 -2
- package/dist/data-display/Chart.js +11 -11
- package/dist/data-display/Chip.js +4 -2
- package/dist/data-display/DataGrid.js +3 -3
- package/dist/data-display/DataViews.js +66 -65
- package/dist/data-display/EmptyState.js +2 -2
- package/dist/data-display/HoverCard.js +3 -3
- package/dist/data-display/LazyImage.js +6 -4
- package/dist/data-display/Lightbox.js +5 -5
- package/dist/data-display/LoadingState.js +5 -4
- package/dist/data-display/MapPreview.js +4 -4
- package/dist/data-display/Progress.js +8 -3
- package/dist/data-display/SectionOnboarding.js +3 -3
- package/dist/data-display/Sheet.js +2 -2
- package/dist/data-display/StatCard.js +6 -4
- package/dist/data-display/Table.js +3 -3
- package/dist/feedback/ConfirmAction.js +6 -6
- 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 +2 -2
- package/dist/form/Calendar.js +4 -4
- package/dist/form/CategorySelect.js +10 -10
- package/dist/form/CepField.js +3 -3
- package/dist/form/CodeEditor.js +3 -3
- package/dist/form/DateRangePicker.js +7 -7
- package/dist/form/Input.js +2 -2
- package/dist/form/Menubar.js +2 -2
- package/dist/form/RichTextEditor.js +2 -2
- package/dist/form/total-form.js +30 -30
- package/dist/icons.js +2 -2
- package/dist/layout/Container.js +2 -2
- package/dist/layout/ContentToolbar.js +10 -10
- package/dist/layout/ScrollArea.js +2 -2
- package/dist/layout/SettingsLayout.js +6 -6
- package/dist/layout/Skeleton.js +5 -3
- package/dist/native/chunks/{chunk-V4DQTC5L.js → chunk-HSIND52T.js} +3 -2
- package/dist/native/chunks/chunk-HSIND52T.js.map +1 -0
- package/dist/native/chunks/chunk-MLQIOKQZ.js +30 -0
- package/dist/native/chunks/chunk-MLQIOKQZ.js.map +1 -0
- package/dist/native/chunks/{chunk-YQGNMAJN.js → chunk-Q52IDAF2.js} +6 -4
- package/dist/native/chunks/chunk-Q52IDAF2.js.map +1 -0
- package/dist/native/data-display/Alert.js +7 -7
- package/dist/native/data-display/Avatar.js +451 -0
- package/dist/native/data-display/Avatar.js.map +1 -0
- package/dist/native/data-display/Badge.js +418 -0
- package/dist/native/data-display/Badge.js.map +1 -0
- package/dist/native/data-display/Chip.js +374 -0
- package/dist/native/data-display/Chip.js.map +1 -0
- package/dist/native/data-display/EmptyState.js +9 -9
- package/dist/native/data-display/ErrorState.js +9 -9
- package/dist/native/data-display/LoadingState.js +4 -4
- package/dist/native/data-display/Progress.js +432 -0
- package/dist/native/data-display/Progress.js.map +1 -0
- package/dist/native/icons.js +2 -2
- package/dist/native/layout/Container.js +7 -1
- package/dist/native/layout/Container.js.map +1 -1
- package/dist/native/layout/Skeleton.js +214 -0
- package/dist/native/layout/Skeleton.js.map +1 -0
- package/dist/navigation/AppHeader.js +9 -9
- package/dist/navigation/NavigationMenu.js +4 -4
- package/dist/navigation/Pagination.js +2 -2
- package/dist/navigation/Tabs.js +2 -2
- package/dist/social-login-button.js +3 -3
- package/dist/types/components/data-display/Avatar/Avatar.base.d.ts +87 -0
- package/dist/types/components/data-display/Avatar/Avatar.base.d.ts.map +1 -0
- package/dist/types/components/data-display/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/data-display/Avatar/Avatar.helpers.d.ts +37 -0
- package/dist/types/components/data-display/Avatar/Avatar.helpers.d.ts.map +1 -0
- package/dist/types/components/data-display/Avatar/Avatar.metrics.d.ts +113 -0
- package/dist/types/components/data-display/Avatar/Avatar.metrics.d.ts.map +1 -0
- package/dist/types/components/data-display/Avatar/Avatar.types.d.ts +4 -68
- package/dist/types/components/data-display/Avatar/Avatar.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Avatar/Avatar.view.d.ts +2 -2
- package/dist/types/components/data-display/Avatar/Avatar.view.d.ts.map +1 -1
- package/dist/types/components/data-display/Avatar/index.d.ts +1 -1
- package/dist/types/components/data-display/Avatar/index.d.ts.map +1 -1
- package/dist/types/components/data-display/Badge/Badge.animations.d.ts.map +1 -1
- package/dist/types/components/data-display/Badge/Badge.base.d.ts +101 -0
- package/dist/types/components/data-display/Badge/Badge.base.d.ts.map +1 -0
- package/dist/types/components/data-display/Badge/Badge.d.ts.map +1 -1
- package/dist/types/components/data-display/Badge/Badge.helpers.d.ts +10 -4
- package/dist/types/components/data-display/Badge/Badge.helpers.d.ts.map +1 -1
- package/dist/types/components/data-display/Badge/Badge.metrics.d.ts +111 -0
- package/dist/types/components/data-display/Badge/Badge.metrics.d.ts.map +1 -0
- package/dist/types/components/data-display/Badge/Badge.styles.d.ts +1 -4
- package/dist/types/components/data-display/Badge/Badge.styles.d.ts.map +1 -1
- package/dist/types/components/data-display/Badge/Badge.types.d.ts +4 -81
- package/dist/types/components/data-display/Badge/Badge.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Badge/Badge.variants.d.ts.map +1 -1
- package/dist/types/components/data-display/Badge/BadgeContent.d.ts.map +1 -1
- package/dist/types/components/data-display/Badge/index.d.ts +1 -1
- package/dist/types/components/data-display/Badge/index.d.ts.map +1 -1
- package/dist/types/components/data-display/Chip/Chip.base.d.ts +81 -0
- package/dist/types/components/data-display/Chip/Chip.base.d.ts.map +1 -0
- package/dist/types/components/data-display/Chip/Chip.d.ts.map +1 -1
- package/dist/types/components/data-display/Chip/Chip.helpers.d.ts +14 -28
- package/dist/types/components/data-display/Chip/Chip.helpers.d.ts.map +1 -1
- package/dist/types/components/data-display/Chip/Chip.metrics.d.ts +61 -0
- package/dist/types/components/data-display/Chip/Chip.metrics.d.ts.map +1 -0
- package/dist/types/components/data-display/Chip/Chip.styles.d.ts +30 -0
- package/dist/types/components/data-display/Chip/Chip.styles.d.ts.map +1 -0
- package/dist/types/components/data-display/Chip/Chip.types.d.ts +4 -67
- package/dist/types/components/data-display/Chip/Chip.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Chip/index.d.ts +1 -1
- package/dist/types/components/data-display/Chip/index.d.ts.map +1 -1
- package/dist/types/components/data-display/Progress/Progress.base.d.ts +72 -0
- package/dist/types/components/data-display/Progress/Progress.base.d.ts.map +1 -0
- package/dist/types/components/data-display/Progress/Progress.d.ts.map +1 -1
- package/dist/types/components/data-display/Progress/Progress.helpers.d.ts +15 -3
- package/dist/types/components/data-display/Progress/Progress.helpers.d.ts.map +1 -1
- package/dist/types/components/data-display/Progress/Progress.metrics.d.ts +91 -0
- package/dist/types/components/data-display/Progress/Progress.metrics.d.ts.map +1 -0
- package/dist/types/components/data-display/Progress/Progress.styles.d.ts.map +1 -1
- package/dist/types/components/data-display/Progress/Progress.types.d.ts +4 -48
- package/dist/types/components/data-display/Progress/Progress.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Progress/index.d.ts +1 -1
- package/dist/types/components/data-display/Progress/index.d.ts.map +1 -1
- package/dist/types/components/layout/Container/Container.d.ts.map +1 -1
- package/dist/types/components/layout/Container/Container.metrics.d.ts +17 -11
- package/dist/types/components/layout/Container/Container.metrics.d.ts.map +1 -1
- package/dist/types/components/layout/Skeleton/Skeleton.base.d.ts +37 -0
- package/dist/types/components/layout/Skeleton/Skeleton.base.d.ts.map +1 -0
- package/dist/types/components/layout/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/types/components/layout/Skeleton/Skeleton.helpers.d.ts +13 -3
- package/dist/types/components/layout/Skeleton/Skeleton.helpers.d.ts.map +1 -1
- package/dist/types/components/layout/Skeleton/Skeleton.metrics.d.ts +68 -0
- package/dist/types/components/layout/Skeleton/Skeleton.metrics.d.ts.map +1 -0
- package/dist/types/components/layout/Skeleton/Skeleton.styles.d.ts +1 -1
- package/dist/types/components/layout/Skeleton/Skeleton.styles.d.ts.map +1 -1
- package/dist/types/components/layout/Skeleton/Skeleton.types.d.ts +5 -15
- package/dist/types/components/layout/Skeleton/Skeleton.types.d.ts.map +1 -1
- package/dist/types/components/layout/Skeleton/index.d.ts +1 -1
- package/dist/types/components/layout/Skeleton/index.d.ts.map +1 -1
- package/dist/types/icons/paths.generated.d.ts +2 -0
- package/dist/types/icons/paths.generated.d.ts.map +1 -1
- package/dist/types/platform/animation.d.ts +14 -0
- package/dist/types/platform/animation.d.ts.map +1 -0
- package/dist/types/platform/web-keys.d.ts +25 -0
- package/dist/types/platform/web-keys.d.ts.map +1 -0
- package/dist/types/tokens/mui-type.d.ts +1 -1
- package/dist/types/tokens/mui-type.d.ts.map +1 -1
- package/dist/types-native/components/data-display/Avatar/Avatar.base.d.ts +87 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.base.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.helpers.d.ts +37 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.helpers.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.look.native.d.ts +25 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.look.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.metrics.d.ts +113 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.metrics.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.native.d.ts +19 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.parts.native.d.ts +69 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.parts.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.types.native.d.ts +24 -0
- package/dist/types-native/components/data-display/Avatar/Avatar.types.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Avatar/index.native.d.ts +3 -0
- package/dist/types-native/components/data-display/Avatar/index.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Badge/Badge.base.d.ts +101 -0
- package/dist/types-native/components/data-display/Badge/Badge.base.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Badge/Badge.helpers.d.ts +19 -0
- package/dist/types-native/components/data-display/Badge/Badge.helpers.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Badge/Badge.look.native.d.ts +31 -0
- package/dist/types-native/components/data-display/Badge/Badge.look.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Badge/Badge.metrics.d.ts +111 -0
- package/dist/types-native/components/data-display/Badge/Badge.metrics.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Badge/Badge.native.d.ts +10 -0
- package/dist/types-native/components/data-display/Badge/Badge.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Badge/Badge.types.native.d.ts +8 -0
- package/dist/types-native/components/data-display/Badge/Badge.types.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Badge/BadgeContent.native.d.ts +20 -0
- package/dist/types-native/components/data-display/Badge/BadgeContent.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Badge/index.native.d.ts +3 -0
- package/dist/types-native/components/data-display/Badge/index.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Chip/Chip.base.d.ts +81 -0
- package/dist/types-native/components/data-display/Chip/Chip.base.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Chip/Chip.helpers.d.ts +22 -0
- package/dist/types-native/components/data-display/Chip/Chip.helpers.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Chip/Chip.look.native.d.ts +29 -0
- package/dist/types-native/components/data-display/Chip/Chip.look.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Chip/Chip.metrics.d.ts +61 -0
- package/dist/types-native/components/data-display/Chip/Chip.metrics.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Chip/Chip.native.d.ts +11 -0
- package/dist/types-native/components/data-display/Chip/Chip.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Chip/Chip.types.native.d.ts +20 -0
- package/dist/types-native/components/data-display/Chip/Chip.types.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Chip/index.native.d.ts +3 -0
- package/dist/types-native/components/data-display/Chip/index.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Progress/Progress.base.d.ts +72 -0
- package/dist/types-native/components/data-display/Progress/Progress.base.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Progress/Progress.helpers.d.ts +18 -0
- package/dist/types-native/components/data-display/Progress/Progress.helpers.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Progress/Progress.look.native.d.ts +28 -0
- package/dist/types-native/components/data-display/Progress/Progress.look.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Progress/Progress.metrics.d.ts +91 -0
- package/dist/types-native/components/data-display/Progress/Progress.metrics.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Progress/Progress.native.d.ts +10 -0
- package/dist/types-native/components/data-display/Progress/Progress.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Progress/Progress.types.native.d.ts +8 -0
- package/dist/types-native/components/data-display/Progress/Progress.types.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Progress/index.native.d.ts +3 -0
- package/dist/types-native/components/data-display/Progress/index.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Container/Container.metrics.d.ts +17 -11
- package/dist/types-native/components/layout/Container/Container.metrics.d.ts.map +1 -1
- package/dist/types-native/components/layout/Container/Container.native.d.ts +2 -2
- package/dist/types-native/components/layout/Container/Container.native.d.ts.map +1 -1
- package/dist/types-native/components/layout/Skeleton/Skeleton.base.d.ts +37 -0
- package/dist/types-native/components/layout/Skeleton/Skeleton.base.d.ts.map +1 -0
- package/dist/types-native/components/layout/Skeleton/Skeleton.helpers.d.ts +16 -0
- package/dist/types-native/components/layout/Skeleton/Skeleton.helpers.d.ts.map +1 -0
- package/dist/types-native/components/layout/Skeleton/Skeleton.metrics.d.ts +68 -0
- package/dist/types-native/components/layout/Skeleton/Skeleton.metrics.d.ts.map +1 -0
- package/dist/types-native/components/layout/Skeleton/Skeleton.native.d.ts +38 -0
- package/dist/types-native/components/layout/Skeleton/Skeleton.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Skeleton/Skeleton.types.native.d.ts +8 -0
- package/dist/types-native/components/layout/Skeleton/Skeleton.types.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Skeleton/index.native.d.ts +3 -0
- package/dist/types-native/components/layout/Skeleton/index.native.d.ts.map +1 -0
- package/dist/types-native/icons/paths.generated.d.ts +2 -0
- package/dist/types-native/icons/paths.generated.d.ts.map +1 -1
- package/dist/types-native/platform/animation.d.ts +14 -0
- package/dist/types-native/platform/animation.d.ts.map +1 -0
- package/dist/types-native/platform/web-keys.d.ts +25 -0
- package/dist/types-native/platform/web-keys.d.ts.map +1 -0
- 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/user-avatar.js +7 -5
- package/dist/utility/InstallPrompt.js +2 -2
- package/package.json +21 -1
- package/src/components/data-display/Avatar/Avatar.base.ts +108 -0
- package/src/components/data-display/Avatar/Avatar.helpers.ts +54 -0
- package/src/components/data-display/Avatar/Avatar.look.native.ts +123 -0
- package/src/components/data-display/Avatar/Avatar.metrics.ts +111 -0
- package/src/components/data-display/Avatar/Avatar.native.tsx +190 -0
- package/src/components/data-display/Avatar/Avatar.parts.native.tsx +243 -0
- package/src/components/data-display/Avatar/Avatar.tsx +34 -36
- package/src/components/data-display/Avatar/Avatar.types.native.ts +39 -0
- package/src/components/data-display/Avatar/Avatar.types.ts +12 -81
- package/src/components/data-display/Avatar/Avatar.view.tsx +61 -41
- package/src/components/data-display/Avatar/NATIVE-NOTES.md +11 -0
- package/src/components/data-display/Avatar/index.native.ts +10 -0
- package/src/components/data-display/Avatar/index.ts +8 -1
- package/src/components/data-display/Badge/Badge.animations.ts +11 -9
- package/src/components/data-display/Badge/Badge.base.ts +138 -0
- package/src/components/data-display/Badge/Badge.helpers.ts +18 -7
- package/src/components/data-display/Badge/Badge.look.native.ts +174 -0
- package/src/components/data-display/Badge/Badge.metrics.ts +116 -0
- package/src/components/data-display/Badge/Badge.native.tsx +212 -0
- package/src/components/data-display/Badge/Badge.styles.ts +63 -74
- package/src/components/data-display/Badge/Badge.tsx +12 -6
- package/src/components/data-display/Badge/Badge.types.native.ts +16 -0
- package/src/components/data-display/Badge/Badge.types.ts +27 -113
- package/src/components/data-display/Badge/Badge.variants.ts +20 -9
- package/src/components/data-display/Badge/BadgeContent.native.tsx +78 -0
- package/src/components/data-display/Badge/BadgeContent.tsx +8 -8
- package/src/components/data-display/Badge/NATIVE-NOTES.md +11 -0
- package/src/components/data-display/Badge/index.native.ts +8 -0
- package/src/components/data-display/Badge/index.ts +7 -1
- package/src/components/data-display/Chip/Chip.base.ts +99 -0
- package/src/components/data-display/Chip/Chip.helpers.ts +49 -0
- package/src/components/data-display/Chip/Chip.look.native.ts +163 -0
- package/src/components/data-display/Chip/Chip.metrics.ts +102 -0
- package/src/components/data-display/Chip/Chip.native.tsx +269 -0
- package/src/components/data-display/Chip/{Chip.helpers.tsx → Chip.styles.tsx} +23 -51
- package/src/components/data-display/Chip/Chip.tsx +10 -11
- package/src/components/data-display/Chip/Chip.types.native.ts +28 -0
- package/src/components/data-display/Chip/Chip.types.ts +5 -84
- package/src/components/data-display/Chip/NATIVE-NOTES.md +10 -0
- package/src/components/data-display/Chip/chip.md +1 -1
- package/src/components/data-display/Chip/index.native.ts +8 -0
- package/src/components/data-display/Chip/index.ts +1 -1
- package/src/components/data-display/Progress/NATIVE-NOTES.md +10 -0
- package/src/components/data-display/Progress/Progress.base.ts +86 -0
- package/src/components/data-display/Progress/Progress.helpers.ts +29 -8
- package/src/components/data-display/Progress/Progress.look.native.ts +111 -0
- package/src/components/data-display/Progress/Progress.metrics.ts +101 -0
- package/src/components/data-display/Progress/Progress.native.tsx +387 -0
- package/src/components/data-display/Progress/Progress.styles.ts +31 -17
- package/src/components/data-display/Progress/Progress.tsx +7 -6
- package/src/components/data-display/Progress/Progress.types.native.ts +11 -0
- package/src/components/data-display/Progress/Progress.types.ts +6 -58
- package/src/components/data-display/Progress/index.native.ts +7 -0
- package/src/components/data-display/Progress/index.ts +6 -1
- package/src/components/layout/Container/Container.metrics.ts +27 -13
- package/src/components/layout/Container/Container.native.tsx +4 -2
- package/src/components/layout/Container/Container.tsx +10 -4
- package/src/components/layout/Container/NATIVE-NOTES.md +0 -2
- package/src/components/layout/Skeleton/NATIVE-NOTES.md +8 -0
- package/src/components/layout/Skeleton/Skeleton.base.ts +37 -0
- package/src/components/layout/Skeleton/Skeleton.helpers.ts +24 -8
- package/src/components/layout/Skeleton/Skeleton.metrics.ts +81 -0
- package/src/components/layout/Skeleton/Skeleton.native.tsx +271 -0
- package/src/components/layout/Skeleton/Skeleton.styles.ts +25 -25
- package/src/components/layout/Skeleton/Skeleton.tsx +9 -5
- package/src/components/layout/Skeleton/Skeleton.types.native.ts +16 -0
- package/src/components/layout/Skeleton/Skeleton.types.ts +13 -16
- package/src/components/layout/Skeleton/index.native.ts +8 -0
- package/src/components/layout/Skeleton/index.ts +7 -1
- package/src/icons/glyphs.json +2 -0
- package/src/icons/paths.generated.ts +2 -0
- package/src/platform/animation.ts +53 -0
- package/src/platform/web-keys.ts +28 -0
- package/src/tokens/mui-type.ts +2 -1
- package/dist/chunk-3HWL4AW4.js.map +0 -1
- package/dist/chunk-4Q7HWRR2.js.map +0 -1
- package/dist/chunk-FS4X3VDA.js +0 -78
- package/dist/chunk-FS4X3VDA.js.map +0 -1
- package/dist/chunk-HAFE43QJ.js.map +0 -1
- package/dist/chunk-HKFMPEXJ.js.map +0 -1
- package/dist/chunk-HXYXDQ7U.js.map +0 -1
- package/dist/chunk-IRDGC7FK.js.map +0 -1
- package/dist/chunk-JZKOJZ6V.js.map +0 -1
- package/dist/chunk-KPQAPQH6.js.map +0 -1
- package/dist/chunk-L6KEVPXN.js.map +0 -1
- package/dist/chunk-LLABVZM3.js.map +0 -1
- package/dist/chunk-LYNJJV2X.js.map +0 -1
- package/dist/chunk-MMZAGB64.js.map +0 -1
- package/dist/chunk-NQHOHQCY.js.map +0 -1
- package/dist/chunk-QIV73V2X.js.map +0 -1
- package/dist/chunk-RLC46NIW.js.map +0 -1
- package/dist/chunk-ZGEBIC5X.js.map +0 -1
- package/dist/chunk-ZHEJLUCX.js.map +0 -1
- package/dist/native/chunks/chunk-V4DQTC5L.js.map +0 -1
- package/dist/native/chunks/chunk-YQGNMAJN.js.map +0 -1
- /package/dist/{chunk-P7FQUGED.js.map → chunk-23FCBIUN.js.map} +0 -0
- /package/dist/{chunk-SL4NFGOL.js.map → chunk-24BUCMQA.js.map} +0 -0
- /package/dist/{chunk-4SXZSSVV.js.map → chunk-2EKALM6P.js.map} +0 -0
- /package/dist/{chunk-ZRFRU545.js.map → chunk-2ZDTGI5V.js.map} +0 -0
- /package/dist/{chunk-HR7YTBR7.js.map → chunk-3AOOI2NR.js.map} +0 -0
- /package/dist/{chunk-KKYW3LU7.js.map → chunk-47UD6DZ4.js.map} +0 -0
- /package/dist/{chunk-ZOUWHGV3.js.map → chunk-4MGFUPQT.js.map} +0 -0
- /package/dist/{chunk-4FRZDSRD.js.map → chunk-4WK2RTVY.js.map} +0 -0
- /package/dist/{chunk-LDE4ELB5.js.map → chunk-5ZF3VASA.js.map} +0 -0
- /package/dist/{chunk-JE6RZ5L6.js.map → chunk-5ZOJLYD2.js.map} +0 -0
- /package/dist/{chunk-E5ZHW4I5.js.map → chunk-6IUTT6BK.js.map} +0 -0
- /package/dist/{chunk-WPR2HS5B.js.map → chunk-74EZ565M.js.map} +0 -0
- /package/dist/{chunk-BVZVH3ZN.js.map → chunk-74OZ5KVR.js.map} +0 -0
- /package/dist/{chunk-PMS3H3OO.js.map → chunk-76GZ55IC.js.map} +0 -0
- /package/dist/{chunk-DLFOEXUP.js.map → chunk-7EESF76V.js.map} +0 -0
- /package/dist/{chunk-HKZHEK3Z.js.map → chunk-7JWXLDRH.js.map} +0 -0
- /package/dist/{chunk-OR7UH2ZQ.js.map → chunk-7P2HZLEG.js.map} +0 -0
- /package/dist/{chunk-6DXYCXH4.js.map → chunk-7RZ4WOQW.js.map} +0 -0
- /package/dist/{chunk-EMNGIYH6.js.map → chunk-7TZ6OC5T.js.map} +0 -0
- /package/dist/{chunk-CDJPDZCA.js.map → chunk-AEGX66N7.js.map} +0 -0
- /package/dist/{chunk-65DLYC4S.js.map → chunk-AVGTTWTE.js.map} +0 -0
- /package/dist/{chunk-C6XESZ3R.js.map → chunk-B2A4DG77.js.map} +0 -0
- /package/dist/{chunk-VOOPGAQO.js.map → chunk-B7BZAIHL.js.map} +0 -0
- /package/dist/{chunk-DZN3JF5E.js.map → chunk-BBC4KT5G.js.map} +0 -0
- /package/dist/{chunk-FWCUELBU.js.map → chunk-BILE3A7F.js.map} +0 -0
- /package/dist/{chunk-UEJQQVP2.js.map → chunk-BLT5ZBVL.js.map} +0 -0
- /package/dist/{chunk-ISSJNFJV.js.map → chunk-C52BELLW.js.map} +0 -0
- /package/dist/{chunk-BPYPUEM5.js.map → chunk-CZJLWCEG.js.map} +0 -0
- /package/dist/{chunk-WZUNBSS7.js.map → chunk-DVUPIVI2.js.map} +0 -0
- /package/dist/{chunk-EXJBPKGW.js.map → chunk-EGRFMPGD.js.map} +0 -0
- /package/dist/{chunk-XFUNJYFT.js.map → chunk-EPNUVSNK.js.map} +0 -0
- /package/dist/{chunk-H2EQVMU3.js.map → chunk-EX3PSZLV.js.map} +0 -0
- /package/dist/{chunk-LIOVN5IM.js.map → chunk-F2DOTCF3.js.map} +0 -0
- /package/dist/{chunk-64IEKEMQ.js.map → chunk-FGLV6BXQ.js.map} +0 -0
- /package/dist/{chunk-L65LF6LN.js.map → chunk-FP4R47TM.js.map} +0 -0
- /package/dist/{chunk-7AR2R7TV.js.map → chunk-G5ZVD5IJ.js.map} +0 -0
- /package/dist/{chunk-SHQWIDD5.js.map → chunk-GJQYM3PM.js.map} +0 -0
- /package/dist/{chunk-7WL24VNI.js.map → chunk-HDNK7BAX.js.map} +0 -0
- /package/dist/{chunk-X5MPHXG5.js.map → chunk-HEG7JIBM.js.map} +0 -0
- /package/dist/{chunk-ZIOCRSHU.js.map → chunk-HSAH5QUQ.js.map} +0 -0
- /package/dist/{chunk-B443IIQG.js.map → chunk-IE7ISTLQ.js.map} +0 -0
- /package/dist/{chunk-NFHS77NE.js.map → chunk-IH4CX43Q.js.map} +0 -0
- /package/dist/{chunk-72UYVJBQ.js.map → chunk-IJIT5HQP.js.map} +0 -0
- /package/dist/{chunk-AP4FLCLA.js.map → chunk-J54WH74M.js.map} +0 -0
- /package/dist/{chunk-5HOJSVQH.js.map → chunk-JB7JE4QZ.js.map} +0 -0
- /package/dist/{chunk-QJJUTBKZ.js.map → chunk-KQ74QU55.js.map} +0 -0
- /package/dist/{chunk-YLDS5FOQ.js.map → chunk-KZSKI2R3.js.map} +0 -0
- /package/dist/{chunk-IIOEQRXX.js.map → chunk-LAHDFBDE.js.map} +0 -0
- /package/dist/{chunk-BUDXR3EV.js.map → chunk-LKVIZNUM.js.map} +0 -0
- /package/dist/{chunk-OAXAF4VY.js.map → chunk-LMJBINWN.js.map} +0 -0
- /package/dist/{chunk-SFAP5EH5.js.map → chunk-LUMF63BM.js.map} +0 -0
- /package/dist/{chunk-KADJNWTQ.js.map → chunk-LZRURORY.js.map} +0 -0
- /package/dist/{chunk-CLNTJM3F.js.map → chunk-M7OHXNLF.js.map} +0 -0
- /package/dist/{chunk-UXQW6ZIN.js.map → chunk-MBYO2F4Y.js.map} +0 -0
- /package/dist/{chunk-MCRIT46W.js.map → chunk-MY5VNNSP.js.map} +0 -0
- /package/dist/{chunk-XELVDPKL.js.map → chunk-NFAKRI4S.js.map} +0 -0
- /package/dist/{chunk-KSF7TLXH.js.map → chunk-NHSMLVNC.js.map} +0 -0
- /package/dist/{chunk-ES2RN7YV.js.map → chunk-NRUYYGDZ.js.map} +0 -0
- /package/dist/{chunk-MQUU2XZB.js.map → chunk-OQFSYMHJ.js.map} +0 -0
- /package/dist/{chunk-M3RIC6JI.js.map → chunk-OQXOYHIV.js.map} +0 -0
- /package/dist/{chunk-PC3ZFERM.js.map → chunk-PC5FFEIY.js.map} +0 -0
- /package/dist/{chunk-SOHDPFOB.js.map → chunk-PHCSPHDH.js.map} +0 -0
- /package/dist/{chunk-OZWQNFG6.js.map → chunk-PODGTNXS.js.map} +0 -0
- /package/dist/{chunk-IPE5FFFD.js.map → chunk-PUBPZOQJ.js.map} +0 -0
- /package/dist/{chunk-GBFGZJB5.js.map → chunk-Q4NOI2CR.js.map} +0 -0
- /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
- /package/dist/{chunk-DTKMBI7B.js.map → chunk-R7MX5KPJ.js.map} +0 -0
- /package/dist/{chunk-NECUCG2S.js.map → chunk-RQDN4BN5.js.map} +0 -0
- /package/dist/{chunk-5SYD23V4.js.map → chunk-SKZHOWTS.js.map} +0 -0
- /package/dist/{chunk-Y6KPZQPI.js.map → chunk-SOCKK67R.js.map} +0 -0
- /package/dist/{chunk-GCJLMX63.js.map → chunk-VCTKJHXD.js.map} +0 -0
- /package/dist/{chunk-QZPNQWS2.js.map → chunk-VEFDL77X.js.map} +0 -0
- /package/dist/{chunk-WEH5TCPE.js.map → chunk-VJFH2AXT.js.map} +0 -0
- /package/dist/{chunk-S7HRED4D.js.map → chunk-VLHGBFR6.js.map} +0 -0
- /package/dist/{chunk-HP2ODXNA.js.map → chunk-VR5HDUBK.js.map} +0 -0
- /package/dist/{chunk-RBGOGTT2.js.map → chunk-W2UTDN4T.js.map} +0 -0
- /package/dist/{chunk-N4WANJI3.js.map → chunk-WBVHRLIS.js.map} +0 -0
- /package/dist/{chunk-XXJRT6BP.js.map → chunk-WMALDOF5.js.map} +0 -0
- /package/dist/{chunk-MHFJBNDP.js.map → chunk-WO52KYSU.js.map} +0 -0
- /package/dist/{chunk-ZBOFBRZC.js.map → chunk-WX7VWW3W.js.map} +0 -0
- /package/dist/{chunk-J4W4TQPC.js.map → chunk-X24P3ZYW.js.map} +0 -0
- /package/dist/{chunk-X2J6MRJW.js.map → chunk-YFHIESMD.js.map} +0 -0
- /package/dist/{chunk-72NOM3O2.js.map → chunk-YK2PETUP.js.map} +0 -0
- /package/dist/{chunk-CRNQVWIT.js.map → chunk-Z4GWXTZV.js.map} +0 -0
- /package/dist/{chunk-SG6VULKS.js.map → chunk-ZEBJT5JZ.js.map} +0 -0
|
@@ -5,8 +5,8 @@ import React from 'react';
|
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
7
|
CONTAINER_COMPACT_PADDING_UNITS,
|
|
8
|
-
CONTAINER_PADDED_VERTICAL_UNITS,
|
|
9
8
|
containerPaddingUnits,
|
|
9
|
+
containerVerticalUnits,
|
|
10
10
|
resolveContainerMaxWidth,
|
|
11
11
|
} from './Container.metrics';
|
|
12
12
|
import type { ContainerProps } from './Container.types';
|
|
@@ -38,14 +38,20 @@ export const Container: React.FC<ContainerProps> = ({
|
|
|
38
38
|
justifyContent: 'center',
|
|
39
39
|
minHeight: '100vh',
|
|
40
40
|
}),
|
|
41
|
+
// The shorthand FIRST: a `paddingTop` declared before it is overridden by
|
|
42
|
+
// it, which is how `variant="padded"` painted no vertical inset at all.
|
|
43
|
+
padding: theme.spacing(containerPaddingUnits(padding, false)),
|
|
41
44
|
...(variant === 'padded' && {
|
|
42
|
-
paddingTop: theme.spacing(
|
|
43
|
-
paddingBottom: theme.spacing(
|
|
45
|
+
paddingTop: theme.spacing(containerVerticalUnits(variant, padding, false)),
|
|
46
|
+
paddingBottom: theme.spacing(containerVerticalUnits(variant, padding, false)),
|
|
44
47
|
}),
|
|
45
|
-
padding: theme.spacing(containerPaddingUnits(padding, false)),
|
|
46
48
|
...(responsive && {
|
|
47
49
|
[theme.breakpoints.down('sm')]: {
|
|
48
50
|
padding: theme.spacing(CONTAINER_COMPACT_PADDING_UNITS),
|
|
51
|
+
...(variant === 'padded' && {
|
|
52
|
+
paddingTop: theme.spacing(containerVerticalUnits(variant, padding, true)),
|
|
53
|
+
paddingBottom: theme.spacing(containerVerticalUnits(variant, padding, true)),
|
|
54
|
+
}),
|
|
49
55
|
},
|
|
50
56
|
}),
|
|
51
57
|
...(sx || {}),
|
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
# Container on React Native — known gaps
|
|
2
2
|
|
|
3
|
-
- `variant="padded"` adds no vertical padding on either renderer: the web declares its 64px above and below BEFORE the `padding` shorthand, which overrides them, and native paints the same insets so the two agree. The fix is a web change (`Container.tsx` order) plus `containerPaddingUnits`, made together.
|
|
4
|
-
- `padding="none"` paints the `md` inset on either renderer: the web reads its map with `||`, so `none`'s 0 falls through to the default. Same one-place fix.
|
|
5
3
|
- `responsive` reads `useWindowDimensions().width < 600` in place of MUI's `sm` media query, and `centered` reads the window height in place of `100vh`; both track the window, as CSS would, but a container inside a narrower parent still measures the window, not the parent.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Skeleton on React Native
|
|
2
|
+
|
|
3
|
+
Known rendering gaps, one bullet each; `pnpm native:ledger` reads them.
|
|
4
|
+
|
|
5
|
+
- MUI's `wave` sweep and the `shimmer` overlay are gradient pseudo-elements travelling across the box; React Native core has neither, so both are drawn as the same wash (`action.hover` for the wave, `alpha(#fff, 0.3)` for the shimmer) fading in and out over the whole box on the web's own cadence — 1.6s linear after 0.5s for the wave, 2s for the shimmer.
|
|
6
|
+
- `glassmorphism` paints the 135° gradient's first stop (`alpha(paper, 0.8)`) flat and keeps the hairline and the `0 8px 32px 0 rgba(0, 0, 0, 0.1)` shadow, but not the 20px backdrop blur — React Native has no backdrop filter.
|
|
7
|
+
- The `text` variant is drawn at its FINAL height. MUI gives it a `1.2em` line box and squashes the box to 60% with `transform: scale(1, 0.6)`; React Native transforms do not change layout, so the two are multiplied out (11.52px at the theme's 16px body size) and the elliptical `4px/6.7px` radius the squash rounds off is drawn as the plain 4px it lands on.
|
|
8
|
+
- `width`, `height` and `borderRadius` accept a number or a percentage; any other CSS length (`10rem`, `calc(…)`) has no React Native equivalent and leaves the box to size itself from its content.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE CONTRACT BOTH RENDERERS HONOUR — and nothing else.
|
|
3
|
+
*
|
|
4
|
+
* This file imports no MUI and no react-native, on purpose: it is in BOTH
|
|
5
|
+
* declaration outputs (`dist/types` and `dist/types-native`), and a native
|
|
6
|
+
* consumer has no `@mui/material` to resolve a type import against.
|
|
7
|
+
*/
|
|
8
|
+
export type SkeletonVariant = 'text' | 'circular' | 'rectangular' | 'wave';
|
|
9
|
+
export type SkeletonAnimation = 'pulse' | 'wave' | false;
|
|
10
|
+
export type SkeletonIntensity = 'low' | 'medium' | 'high';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The contract both renderers honour. `className` and a CSS `style` are the
|
|
14
|
+
* web's own and stay in `Skeleton.types.ts`; `style` on native is a
|
|
15
|
+
* `ViewStyle` and is declared in `Skeleton.types.native.ts`.
|
|
16
|
+
*/
|
|
17
|
+
export interface SkeletonBaseProps {
|
|
18
|
+
variant?: SkeletonVariant;
|
|
19
|
+
animation?: SkeletonAnimation;
|
|
20
|
+
width?: number | string;
|
|
21
|
+
height?: number | string;
|
|
22
|
+
count?: number;
|
|
23
|
+
/** Between instances, in SPACING UNITS — `theme.spacing(n)` on both sides. */
|
|
24
|
+
spacing?: number;
|
|
25
|
+
borderRadius?: number | string;
|
|
26
|
+
intensity?: SkeletonIntensity;
|
|
27
|
+
glassmorphism?: boolean;
|
|
28
|
+
shimmer?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* All three spellings of the same id: the web forwards `data-testid`, React
|
|
31
|
+
* Native calls it `testID`, and `dataTestId` is the house name. See
|
|
32
|
+
* `src/platform/test-id.ts`.
|
|
33
|
+
*/
|
|
34
|
+
testID?: string;
|
|
35
|
+
dataTestId?: string;
|
|
36
|
+
'data-testid'?: string;
|
|
37
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SkeletonBaseProps } from './Skeleton.base';
|
|
2
2
|
|
|
3
3
|
type SkeletonDefaultedKeys =
|
|
4
4
|
| 'variant'
|
|
@@ -9,10 +9,15 @@ type SkeletonDefaultedKeys =
|
|
|
9
9
|
| 'glassmorphism'
|
|
10
10
|
| 'shimmer';
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Generic over the renderer's own props: the web and the native `Skeleton`
|
|
14
|
+
* carry different extras (`className`/`style` against a `View`'s props), and
|
|
15
|
+
* both come back out untouched.
|
|
16
|
+
*/
|
|
17
|
+
type ResolvedSkeletonProps<P extends SkeletonBaseProps> = P &
|
|
18
|
+
Required<Pick<SkeletonBaseProps, SkeletonDefaultedKeys>>;
|
|
14
19
|
|
|
15
|
-
const SKELETON_DEFAULTS: Pick<
|
|
20
|
+
const SKELETON_DEFAULTS: Required<Pick<SkeletonBaseProps, SkeletonDefaultedKeys>> = {
|
|
16
21
|
variant: 'text',
|
|
17
22
|
animation: 'pulse',
|
|
18
23
|
count: 1,
|
|
@@ -24,10 +29,21 @@ const SKELETON_DEFAULTS: Pick<SkeletonProps, SkeletonDefaultedKeys> = {
|
|
|
24
29
|
|
|
25
30
|
// Strips explicitly-undefined props before the merge, so `count={undefined}` still
|
|
26
31
|
// falls back to the default exactly as a destructuring default would.
|
|
27
|
-
const definedProps = (props:
|
|
32
|
+
const definedProps = <P extends SkeletonBaseProps>(props: P): Partial<P> =>
|
|
28
33
|
Object.fromEntries(
|
|
29
34
|
Object.entries(props).filter(([, value]) => value !== undefined),
|
|
30
|
-
) as Partial<
|
|
35
|
+
) as Partial<P>;
|
|
31
36
|
|
|
32
|
-
export const resolveSkeletonProps =
|
|
33
|
-
|
|
37
|
+
export const resolveSkeletonProps = <P extends SkeletonBaseProps>(
|
|
38
|
+
props: P,
|
|
39
|
+
): ResolvedSkeletonProps<P> =>
|
|
40
|
+
({ ...SKELETON_DEFAULTS, ...definedProps(props) }) as ResolvedSkeletonProps<P>;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The id of instance `index` when a caller asked for several. Unnamed
|
|
44
|
+
* skeletons stay unnamed — the web has always cloned `undefined` there.
|
|
45
|
+
*/
|
|
46
|
+
export const skeletonInstanceTestId = (
|
|
47
|
+
base: string | undefined,
|
|
48
|
+
index: number,
|
|
49
|
+
): string | undefined => (base ? `${base}-${index}` : undefined);
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { SkeletonIntensity, SkeletonVariant } from './Skeleton.base';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* THE NUMBERS BOTH `Skeleton` RENDERERS DRAW WITH.
|
|
5
|
+
*
|
|
6
|
+
* `Skeleton.styles.ts` (web, emotion over MUI's own `Skeleton`) and
|
|
7
|
+
* `Skeleton.native.tsx` (React Native) read this one table. The web turns them
|
|
8
|
+
* into CSS strings — `blur(20px)`, `shimmer 2s infinite` — and native uses the
|
|
9
|
+
* numbers as they are, so neither renderer restates a value.
|
|
10
|
+
*
|
|
11
|
+
* Two groups live here. The first is what the web component WRITES (the
|
|
12
|
+
* intensity alphas, the default box, the glass and shimmer washes). The second
|
|
13
|
+
* is what MUI's own `Skeleton` contributes on the web and the native half
|
|
14
|
+
* therefore has to restate: its pulse keyframe, its wave cadence, and the
|
|
15
|
+
* geometry of the `text` variant. Those are MUI's DEFAULTS — a host that
|
|
16
|
+
* re-themes them moves the web only, which `NATIVE-NOTES.md` records.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/** The tint's alpha over the ink, per intensity. */
|
|
20
|
+
export const SKELETON_INTENSITY_OPACITY: Record<SkeletonIntensity, number> = {
|
|
21
|
+
low: 0.11,
|
|
22
|
+
medium: 0.13,
|
|
23
|
+
high: 0.15,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/** The box a variant draws when the caller gives no `width`/`height`. */
|
|
27
|
+
export const SKELETON_DEFAULT_DIMENSIONS: Record<
|
|
28
|
+
SkeletonVariant,
|
|
29
|
+
{ width: number | string; height: number | undefined }
|
|
30
|
+
> = {
|
|
31
|
+
// `text` has no height of its own: MUI's line box gives it one (below).
|
|
32
|
+
text: { width: '100%', height: undefined },
|
|
33
|
+
circular: { width: 40, height: 40 },
|
|
34
|
+
rectangular: { width: '100%', height: 40 },
|
|
35
|
+
wave: { width: '100%', height: 40 },
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/* ── `glassmorphism` ──────────────────────────────────────────────────────── */
|
|
39
|
+
|
|
40
|
+
/** The 135° wash over `background.paper`, from the first stop to the last. */
|
|
41
|
+
export const GLASS_BACKGROUND_ALPHA_FROM = 0.8;
|
|
42
|
+
export const GLASS_BACKGROUND_ALPHA_TO = 0.4;
|
|
43
|
+
export const GLASS_BLUR_PX = 20;
|
|
44
|
+
export const GLASS_BORDER_ALPHA = 0.2;
|
|
45
|
+
/** `0 8px 32px 0 rgba(0, 0, 0, 0.1)`. */
|
|
46
|
+
export const GLASS_SHADOW = { offsetY: 8, blur: 32, alpha: 0.1 } as const;
|
|
47
|
+
|
|
48
|
+
/* ── `shimmer` ────────────────────────────────────────────────────────────── */
|
|
49
|
+
|
|
50
|
+
/** The sweep's middle stop, over white. */
|
|
51
|
+
export const SHIMMER_ALPHA = 0.3;
|
|
52
|
+
export const SHIMMER_DURATION_MS = 2000;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* MUI's `palette.common`, which is a pair of fixed hexes rather than anything
|
|
56
|
+
* derived — so the shared theme has no slot for them and they are named here.
|
|
57
|
+
*/
|
|
58
|
+
export const COMMON_BLACK = '#000';
|
|
59
|
+
export const COMMON_WHITE = '#fff';
|
|
60
|
+
|
|
61
|
+
/* ── MUI's own `Skeleton`, restated for the renderer that has no MUI ──────── */
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* MUI's `pulseKeyframe`: opacity 1 → 0.4 → 1, `2s ease-in-out 0.5s infinite`.
|
|
65
|
+
* The delay runs once on the web; native replays it each lap unless the
|
|
66
|
+
* animation is sequenced, which `Skeleton.native.tsx` does.
|
|
67
|
+
*/
|
|
68
|
+
export const PULSE = { durationMs: 2000, delayMs: 500, dip: 0.4 } as const;
|
|
69
|
+
|
|
70
|
+
/** MUI's `wave` sweep: `1.6s linear 0.5s infinite`, in `palette.action.hover`. */
|
|
71
|
+
export const WAVE = { durationMs: 1600, delayMs: 500 } as const;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* The `text` variant, as MUI draws it: a line box `1.2em` tall squashed to 60%
|
|
75
|
+
* of its height (`transform: scale(1, 0.60)`), with a `4px/6.7px` elliptical
|
|
76
|
+
* radius that the same squash turns back into a round 4px. React Native has no
|
|
77
|
+
* `em`, and its transforms do not change layout, so the native half multiplies
|
|
78
|
+
* the two out into one height and draws the plain 4px radius the squash lands on.
|
|
79
|
+
*/
|
|
80
|
+
export const TEXT_LINE_HEIGHT_EM = 1.2;
|
|
81
|
+
export const TEXT_SCALE_Y = 0.6;
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Animated,
|
|
4
|
+
Easing,
|
|
5
|
+
StyleSheet,
|
|
6
|
+
View,
|
|
7
|
+
type DimensionValue,
|
|
8
|
+
type StyleProp,
|
|
9
|
+
type ViewProps,
|
|
10
|
+
type ViewStyle,
|
|
11
|
+
} from 'react-native';
|
|
12
|
+
|
|
13
|
+
import { resolveSkeletonProps, skeletonInstanceTestId } from './Skeleton.helpers';
|
|
14
|
+
import {
|
|
15
|
+
COMMON_BLACK,
|
|
16
|
+
COMMON_WHITE,
|
|
17
|
+
GLASS_BACKGROUND_ALPHA_FROM,
|
|
18
|
+
GLASS_BORDER_ALPHA,
|
|
19
|
+
GLASS_SHADOW,
|
|
20
|
+
PULSE,
|
|
21
|
+
SHIMMER_ALPHA,
|
|
22
|
+
SHIMMER_DURATION_MS,
|
|
23
|
+
SKELETON_DEFAULT_DIMENSIONS,
|
|
24
|
+
SKELETON_INTENSITY_OPACITY,
|
|
25
|
+
TEXT_LINE_HEIGHT_EM,
|
|
26
|
+
TEXT_SCALE_Y,
|
|
27
|
+
WAVE,
|
|
28
|
+
} from './Skeleton.metrics';
|
|
29
|
+
import type {
|
|
30
|
+
SkeletonAnimation,
|
|
31
|
+
SkeletonIntensity,
|
|
32
|
+
SkeletonProps,
|
|
33
|
+
SkeletonVariant,
|
|
34
|
+
} from './Skeleton.types.native';
|
|
35
|
+
import { useLoopedProgress } from '../../../platform/animation';
|
|
36
|
+
import { resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
|
|
37
|
+
import { useUiTheme } from '../../../provider/use-ui-theme.native';
|
|
38
|
+
import { alpha } from '../../../tokens/color';
|
|
39
|
+
import type { UiTheme } from '../../../tokens/theme';
|
|
40
|
+
|
|
41
|
+
/** MUI's `pulseKeyframe` runs `ease-in-out`. */
|
|
42
|
+
const PULSE_EASING = Easing.inOut(Easing.ease);
|
|
43
|
+
const PERCENT = /^-?\d+(?:\.\d+)?%$/;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* A width or a height, as React Native accepts one. The web takes any CSS
|
|
47
|
+
* length; here a number is dp and a percentage is a percentage — anything else
|
|
48
|
+
* (`10rem`, `calc(...)`) has no equivalent and sizes the box from its content,
|
|
49
|
+
* which `NATIVE-NOTES.md` records.
|
|
50
|
+
*/
|
|
51
|
+
export function dimension(value: number | string | undefined): DimensionValue | undefined {
|
|
52
|
+
if (value === undefined || typeof value === 'number') return value;
|
|
53
|
+
return PERCENT.test(value) ? (value as `${number}%`) : undefined;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** The tint the web writes: the body ink at the intensity's alpha, white in dark mode. */
|
|
57
|
+
export const skeletonTint = (theme: UiTheme, intensity: SkeletonIntensity): string =>
|
|
58
|
+
alpha(
|
|
59
|
+
theme.mode === 'dark' ? COMMON_WHITE : theme.palette.text.primary,
|
|
60
|
+
SKELETON_INTENSITY_OPACITY[intensity],
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
/** MUI's radius per variant: a circle, a square rectangle, the theme's 4px on text. */
|
|
64
|
+
const radiusFor = (theme: UiTheme, variant: SkeletonVariant): number => {
|
|
65
|
+
if (variant === 'circular') return theme.radius.full;
|
|
66
|
+
return variant === 'text' ? theme.radius.md : 0;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The `text` variant's height. MUI gives it a `1.2em` line box and squashes the
|
|
71
|
+
* whole box to 60%; React Native's transforms do not change layout, so the two
|
|
72
|
+
* are multiplied out into the height the web actually shows.
|
|
73
|
+
*/
|
|
74
|
+
export function textBoxHeight(
|
|
75
|
+
theme: UiTheme,
|
|
76
|
+
height: number | string | undefined,
|
|
77
|
+
): DimensionValue | undefined {
|
|
78
|
+
if (typeof height === 'string') return dimension(height);
|
|
79
|
+
const box = height ?? theme.typography.sizes.md.fontSize * TEXT_LINE_HEIGHT_EM;
|
|
80
|
+
return box * TEXT_SCALE_Y;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* `glassmorphism`: the gradient's first stop flat, the hairline, and the web's
|
|
85
|
+
* own box-shadow string — React Native 0.76+ takes CSS shadow syntax, so the
|
|
86
|
+
* two renderers draw the shadow from the same declaration. What is missing is
|
|
87
|
+
* the 20px backdrop blur, which React Native has no equivalent of.
|
|
88
|
+
*/
|
|
89
|
+
function glassStyle(theme: UiTheme): ViewStyle {
|
|
90
|
+
return {
|
|
91
|
+
backgroundColor: alpha(theme.palette.background.paper, GLASS_BACKGROUND_ALPHA_FROM),
|
|
92
|
+
borderWidth: 1,
|
|
93
|
+
borderColor: alpha(theme.palette.divider, GLASS_BORDER_ALPHA),
|
|
94
|
+
boxShadow: `0 ${GLASS_SHADOW.offsetY}px ${GLASS_SHADOW.blur}px 0 ${alpha(COMMON_BLACK, GLASS_SHADOW.alpha)}`,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
interface SkeletonBoxStyleArgs {
|
|
99
|
+
variant: SkeletonVariant;
|
|
100
|
+
intensity: SkeletonIntensity;
|
|
101
|
+
width?: number | string;
|
|
102
|
+
height?: number | string;
|
|
103
|
+
borderRadius?: number | string;
|
|
104
|
+
glassmorphism: boolean;
|
|
105
|
+
/** A box with a wash sliding over it clips, as MUI's `wave` and the shimmer do. */
|
|
106
|
+
clipped: boolean;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** The box the web paints, in absolute numbers. */
|
|
110
|
+
export function skeletonBoxStyle(theme: UiTheme, a: SkeletonBoxStyleArgs): ViewStyle {
|
|
111
|
+
const box = SKELETON_DEFAULT_DIMENSIONS[a.variant];
|
|
112
|
+
const height = a.height ?? box.height;
|
|
113
|
+
const style: ViewStyle = {
|
|
114
|
+
width: dimension(a.width ?? box.width),
|
|
115
|
+
height: a.variant === 'text' ? textBoxHeight(theme, height) : dimension(height),
|
|
116
|
+
borderRadius: dimension(a.borderRadius) ?? radiusFor(theme, a.variant),
|
|
117
|
+
backgroundColor: skeletonTint(theme, a.intensity),
|
|
118
|
+
};
|
|
119
|
+
if (a.clipped) style.overflow = 'hidden';
|
|
120
|
+
return a.glassmorphism ? { ...style, ...glassStyle(theme) } : style;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
interface WashProps {
|
|
124
|
+
color: string;
|
|
125
|
+
durationMs: number;
|
|
126
|
+
delayMs: number;
|
|
127
|
+
testID?: string;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* MUI's sweeping `::after`, standing still. React Native core has no gradient
|
|
132
|
+
* fill and no pseudo-elements, so the same wash covers the box and fades in and
|
|
133
|
+
* out on the same cadence instead of travelling across it. It carries no
|
|
134
|
+
* `aria-hidden` of its own: the box it sits in is already hidden, and the
|
|
135
|
+
* shared stories count the boxes by that attribute.
|
|
136
|
+
*/
|
|
137
|
+
function Wash({ color, durationMs, delayMs, testID }: WashProps): React.JSX.Element {
|
|
138
|
+
const progress = useLoopedProgress(true, { durationMs, delayMs, easing: Easing.linear });
|
|
139
|
+
return (
|
|
140
|
+
<Animated.View
|
|
141
|
+
testID={testID}
|
|
142
|
+
style={[
|
|
143
|
+
StyleSheet.absoluteFill,
|
|
144
|
+
{
|
|
145
|
+
pointerEvents: 'none',
|
|
146
|
+
backgroundColor: color,
|
|
147
|
+
opacity: progress.interpolate({ inputRange: [0, 0.5, 1], outputRange: [0, 1, 0] }),
|
|
148
|
+
},
|
|
149
|
+
]}
|
|
150
|
+
/>
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
interface SkeletonBoxProps extends SkeletonBoxStyleArgs {
|
|
155
|
+
animation: SkeletonAnimation;
|
|
156
|
+
shimmer: boolean;
|
|
157
|
+
style?: StyleProp<ViewStyle>;
|
|
158
|
+
testID?: string;
|
|
159
|
+
rest: ViewProps;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/** The web's `muiAnimationFor`: the `wave` VARIANT always animates as a wave. */
|
|
163
|
+
const effectiveAnimation = (
|
|
164
|
+
variant: SkeletonVariant,
|
|
165
|
+
animation: SkeletonAnimation,
|
|
166
|
+
): SkeletonAnimation => (variant === 'wave' ? 'wave' : animation);
|
|
167
|
+
|
|
168
|
+
/** One skeleton box: the tint, the pulse, and the wash the sweep stands in for. */
|
|
169
|
+
function SkeletonBox({
|
|
170
|
+
animation,
|
|
171
|
+
shimmer,
|
|
172
|
+
style,
|
|
173
|
+
testID,
|
|
174
|
+
rest,
|
|
175
|
+
...styleArgs
|
|
176
|
+
}: SkeletonBoxProps): React.JSX.Element {
|
|
177
|
+
const theme = useUiTheme();
|
|
178
|
+
const animates = effectiveAnimation(styleArgs.variant, animation);
|
|
179
|
+
const pulse = useLoopedProgress(animates === 'pulse', {
|
|
180
|
+
durationMs: PULSE.durationMs,
|
|
181
|
+
delayMs: PULSE.delayMs,
|
|
182
|
+
easing: PULSE_EASING,
|
|
183
|
+
});
|
|
184
|
+
const box = skeletonBoxStyle(theme, styleArgs);
|
|
185
|
+
const washId = testID ? `${testID}-wash` : undefined;
|
|
186
|
+
|
|
187
|
+
return (
|
|
188
|
+
<Animated.View
|
|
189
|
+
aria-hidden
|
|
190
|
+
testID={testID}
|
|
191
|
+
style={[
|
|
192
|
+
box,
|
|
193
|
+
animates === 'pulse'
|
|
194
|
+
? { opacity: pulse.interpolate({ inputRange: [0, 0.5, 1], outputRange: [1, PULSE.dip, 1] }) }
|
|
195
|
+
: null,
|
|
196
|
+
style,
|
|
197
|
+
]}
|
|
198
|
+
{...rest}
|
|
199
|
+
>
|
|
200
|
+
{shimmer ? (
|
|
201
|
+
<Wash
|
|
202
|
+
color={alpha(COMMON_WHITE, SHIMMER_ALPHA)}
|
|
203
|
+
durationMs={SHIMMER_DURATION_MS}
|
|
204
|
+
delayMs={0}
|
|
205
|
+
testID={washId}
|
|
206
|
+
/>
|
|
207
|
+
) : null}
|
|
208
|
+
{!shimmer && animates === 'wave' ? (
|
|
209
|
+
<Wash
|
|
210
|
+
color={theme.palette.action.hover}
|
|
211
|
+
durationMs={WAVE.durationMs}
|
|
212
|
+
delayMs={WAVE.delayMs}
|
|
213
|
+
testID={washId}
|
|
214
|
+
/>
|
|
215
|
+
) : null}
|
|
216
|
+
</Animated.View>
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* The native `Skeleton`: the same box, the same tint and the same default
|
|
222
|
+
* dimensions the MUI half draws, on a `View`.
|
|
223
|
+
*/
|
|
224
|
+
export const Skeleton: React.FC<SkeletonProps> = React.memo(function Skeleton(rawProps) {
|
|
225
|
+
const resolved = resolveSkeletonProps(rawProps);
|
|
226
|
+
const {
|
|
227
|
+
variant,
|
|
228
|
+
animation,
|
|
229
|
+
width,
|
|
230
|
+
height,
|
|
231
|
+
count,
|
|
232
|
+
spacing,
|
|
233
|
+
borderRadius,
|
|
234
|
+
intensity,
|
|
235
|
+
glassmorphism,
|
|
236
|
+
shimmer,
|
|
237
|
+
style,
|
|
238
|
+
...others
|
|
239
|
+
} = resolved;
|
|
240
|
+
const theme = useUiTheme();
|
|
241
|
+
const testID = resolveTestId(others);
|
|
242
|
+
const box: Omit<SkeletonBoxProps, 'testID'> = {
|
|
243
|
+
variant,
|
|
244
|
+
animation,
|
|
245
|
+
intensity,
|
|
246
|
+
width,
|
|
247
|
+
height,
|
|
248
|
+
borderRadius,
|
|
249
|
+
glassmorphism,
|
|
250
|
+
shimmer,
|
|
251
|
+
clipped: shimmer || effectiveAnimation(variant, animation) === 'wave',
|
|
252
|
+
style,
|
|
253
|
+
rest: withoutTestIdProps(others),
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
// Handle edge case: count of 0 should render nothing
|
|
257
|
+
if (count === 0) return null;
|
|
258
|
+
if (count === 1) return <SkeletonBox {...box} testID={testID} />;
|
|
259
|
+
|
|
260
|
+
return (
|
|
261
|
+
<View style={{ gap: theme.spacing(spacing) }}>
|
|
262
|
+
{Array.from({ length: count }, (_, index) => (
|
|
263
|
+
<View key={`skeleton-${index}`}>
|
|
264
|
+
<SkeletonBox {...box} testID={skeletonInstanceTestId(testID, index)} />
|
|
265
|
+
</View>
|
|
266
|
+
))}
|
|
267
|
+
</View>
|
|
268
|
+
);
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
Skeleton.displayName = 'Skeleton';
|
|
@@ -2,6 +2,17 @@ import { alpha } from '@mui/material/styles/index.js';
|
|
|
2
2
|
import type { CSSObject, Theme } from '@mui/material/styles/index.js';
|
|
3
3
|
|
|
4
4
|
import type { SkeletonProps } from './Skeleton.types';
|
|
5
|
+
import {
|
|
6
|
+
GLASS_BACKGROUND_ALPHA_FROM,
|
|
7
|
+
GLASS_BACKGROUND_ALPHA_TO,
|
|
8
|
+
GLASS_BLUR_PX,
|
|
9
|
+
GLASS_BORDER_ALPHA,
|
|
10
|
+
GLASS_SHADOW,
|
|
11
|
+
SHIMMER_ALPHA,
|
|
12
|
+
SHIMMER_DURATION_MS,
|
|
13
|
+
SKELETON_DEFAULT_DIMENSIONS,
|
|
14
|
+
SKELETON_INTENSITY_OPACITY,
|
|
15
|
+
} from './Skeleton.metrics';
|
|
5
16
|
|
|
6
17
|
type SkeletonVariant = NonNullable<SkeletonProps['variant']>;
|
|
7
18
|
type SkeletonIntensity = NonNullable<SkeletonProps['intensity']>;
|
|
@@ -29,36 +40,25 @@ export const muiAnimationFor = (
|
|
|
29
40
|
return animation;
|
|
30
41
|
};
|
|
31
42
|
|
|
43
|
+
// Derived from the shared metrics, not restated: the native `Skeleton` reads
|
|
44
|
+
// the same table, so the two renderers cannot disagree on a default box.
|
|
32
45
|
export const defaultDimensions = (
|
|
33
46
|
variant: SkeletonVariant,
|
|
34
|
-
): { width: number | string; height: number | undefined } =>
|
|
35
|
-
switch
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
case 'rectangular':
|
|
39
|
-
case 'wave':
|
|
40
|
-
return { width: '100%', height: 40 };
|
|
41
|
-
default:
|
|
42
|
-
return { width: '100%', height: undefined };
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const INTENSITY_OPACITY: Record<SkeletonIntensity, number> = {
|
|
47
|
-
low: 0.11,
|
|
48
|
-
medium: 0.13,
|
|
49
|
-
high: 0.15,
|
|
50
|
-
};
|
|
47
|
+
): { width: number | string; height: number | undefined } =>
|
|
48
|
+
// The `default:` arm the old switch had: an unrecognised variant used to fall
|
|
49
|
+
// back rather than hand `undefined` to a caller that then reads `.width`.
|
|
50
|
+
SKELETON_DEFAULT_DIMENSIONS[variant] ?? SKELETON_DEFAULT_DIMENSIONS.rectangular;
|
|
51
51
|
|
|
52
52
|
const intensityOpacity = (intensity: SkeletonIntensity): number =>
|
|
53
|
-
|
|
53
|
+
SKELETON_INTENSITY_OPACITY[intensity] ?? SKELETON_INTENSITY_OPACITY.medium;
|
|
54
54
|
|
|
55
55
|
const glassmorphismStyles = (theme: Theme): CSSObject => ({
|
|
56
56
|
background: `linear-gradient(135deg,
|
|
57
|
-
${alpha(theme.palette.background.paper,
|
|
58
|
-
${alpha(theme.palette.background.paper,
|
|
59
|
-
backdropFilter:
|
|
60
|
-
border: `1px solid ${alpha(theme.palette.divider,
|
|
61
|
-
boxShadow: `0
|
|
57
|
+
${alpha(theme.palette.background.paper, GLASS_BACKGROUND_ALPHA_FROM)} 0%,
|
|
58
|
+
${alpha(theme.palette.background.paper, GLASS_BACKGROUND_ALPHA_TO)} 100%)`,
|
|
59
|
+
backdropFilter: `blur(${GLASS_BLUR_PX}px)`,
|
|
60
|
+
border: `1px solid ${alpha(theme.palette.divider, GLASS_BORDER_ALPHA)}`,
|
|
61
|
+
boxShadow: `0 ${GLASS_SHADOW.offsetY}px ${GLASS_SHADOW.blur}px 0 ${alpha(theme.palette.common.black, GLASS_SHADOW.alpha)}`,
|
|
62
62
|
});
|
|
63
63
|
|
|
64
64
|
// The sweep is a pseudo-element sliding across the box, so the box has to clip it
|
|
@@ -74,11 +74,11 @@ const shimmerStyles = (theme: Theme): CSSObject => ({
|
|
|
74
74
|
background: `linear-gradient(
|
|
75
75
|
90deg,
|
|
76
76
|
transparent,
|
|
77
|
-
${alpha(theme.palette.common.white,
|
|
77
|
+
${alpha(theme.palette.common.white, SHIMMER_ALPHA)},
|
|
78
78
|
transparent
|
|
79
79
|
)`,
|
|
80
80
|
transform: 'translateX(-100%)',
|
|
81
|
-
animation:
|
|
81
|
+
animation: `shimmer ${SHIMMER_DURATION_MS / 1000}s infinite`,
|
|
82
82
|
},
|
|
83
83
|
'@keyframes shimmer': {
|
|
84
84
|
'100%': {
|
|
@@ -4,7 +4,7 @@ import Stack from '@mui/material/Stack/index.js';
|
|
|
4
4
|
import { useTheme } from '@mui/material/styles/index.js';
|
|
5
5
|
import React from 'react';
|
|
6
6
|
|
|
7
|
-
import { resolveSkeletonProps } from './Skeleton.helpers';
|
|
7
|
+
import { resolveSkeletonProps, skeletonInstanceTestId } from './Skeleton.helpers';
|
|
8
8
|
import {
|
|
9
9
|
defaultDimensions,
|
|
10
10
|
muiAnimationFor,
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
skeletonStyles,
|
|
13
13
|
} from './Skeleton.styles';
|
|
14
14
|
import type { SkeletonProps } from './Skeleton.types';
|
|
15
|
+
import { resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
|
|
15
16
|
|
|
16
17
|
export const Skeleton: React.FC<SkeletonProps> = React.memo((rawProps) => {
|
|
17
18
|
const {
|
|
@@ -26,10 +27,13 @@ export const Skeleton: React.FC<SkeletonProps> = React.memo((rawProps) => {
|
|
|
26
27
|
intensity,
|
|
27
28
|
glassmorphism,
|
|
28
29
|
shimmer,
|
|
29
|
-
'data-testid': dataTestId,
|
|
30
30
|
style,
|
|
31
|
-
...
|
|
31
|
+
...others
|
|
32
32
|
} = resolveSkeletonProps(rawProps);
|
|
33
|
+
// `testID` and `dataTestId` are the shared contract's spellings; the DOM
|
|
34
|
+
// wants `data-testid`, and must not see the other two as attributes.
|
|
35
|
+
const dataTestId = resolveTestId(others);
|
|
36
|
+
const props = withoutTestIdProps(others);
|
|
33
37
|
const theme = useTheme();
|
|
34
38
|
|
|
35
39
|
const defaults = defaultDimensions(variant);
|
|
@@ -70,7 +74,7 @@ export const Skeleton: React.FC<SkeletonProps> = React.memo((rawProps) => {
|
|
|
70
74
|
{Array.from({ length: count }).map((_, index) => (
|
|
71
75
|
<Box key={`skeleton-${index}`}>
|
|
72
76
|
{React.cloneElement(singleSkeleton, {
|
|
73
|
-
'data-testid': dataTestId
|
|
77
|
+
'data-testid': skeletonInstanceTestId(dataTestId, index),
|
|
74
78
|
})}
|
|
75
79
|
</Box>
|
|
76
80
|
))}
|
|
@@ -78,4 +82,4 @@ export const Skeleton: React.FC<SkeletonProps> = React.memo((rawProps) => {
|
|
|
78
82
|
);
|
|
79
83
|
});
|
|
80
84
|
|
|
81
|
-
Skeleton.displayName = 'Skeleton';
|
|
85
|
+
Skeleton.displayName = 'Skeleton';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { StyleProp, ViewProps, ViewStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import type { SkeletonBaseProps } from './Skeleton.base';
|
|
4
|
+
|
|
5
|
+
export type {
|
|
6
|
+
SkeletonAnimation,
|
|
7
|
+
SkeletonBaseProps,
|
|
8
|
+
SkeletonIntensity,
|
|
9
|
+
SkeletonVariant,
|
|
10
|
+
} from './Skeleton.base';
|
|
11
|
+
|
|
12
|
+
/** The native `Skeleton`: the shared contract, plus a `View`'s own props. */
|
|
13
|
+
export type SkeletonProps = SkeletonBaseProps &
|
|
14
|
+
Omit<ViewProps, keyof SkeletonBaseProps | 'style'> & {
|
|
15
|
+
style?: StyleProp<ViewStyle>;
|
|
16
|
+
};
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
export type SkeletonAnimation = 'pulse' | 'wave' | false;
|
|
3
|
-
export type SkeletonIntensity = 'low' | 'medium' | 'high';
|
|
1
|
+
import type React from 'react';
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
import type { SkeletonBaseProps } from './Skeleton.base';
|
|
4
|
+
|
|
5
|
+
export type {
|
|
6
|
+
SkeletonAnimation,
|
|
7
|
+
SkeletonBaseProps,
|
|
8
|
+
SkeletonIntensity,
|
|
9
|
+
SkeletonVariant,
|
|
10
|
+
} from './Skeleton.base';
|
|
11
|
+
|
|
12
|
+
/** The web `Skeleton`: the shared contract, plus the DOM's own two styling hooks. */
|
|
13
|
+
export interface SkeletonProps extends SkeletonBaseProps {
|
|
13
14
|
className?: string;
|
|
14
|
-
intensity?: SkeletonIntensity;
|
|
15
|
-
glassmorphism?: boolean;
|
|
16
|
-
shimmer?: boolean;
|
|
17
|
-
'data-testid'?: string;
|
|
18
15
|
style?: React.CSSProperties;
|
|
19
|
-
}
|
|
16
|
+
}
|