@12-apps/ui 6.79.0 → 6.80.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/dist/_internal/components/data-display/AlertDialog/AlertDialog.js +3 -3
- package/dist/_internal/components/data-display/AlertDialog/AlertDialog.parts.js +2 -1
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +6 -4
- package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -1
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +8 -8
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +8 -8
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +3 -3
- package/dist/_internal/components/data-display/Carousel/Carousel.js +4 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +2 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +26 -25
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +38 -37
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +9 -9
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-card-body.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +7 -6
- package/dist/_internal/components/data-display/DataViews/data-views-columns.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +12 -11
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +23 -22
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +12 -11
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +10 -9
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +11 -10
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +3 -2
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +11 -10
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +16 -15
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +10 -9
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +1 -1
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +3 -3
- package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -1
- package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -1
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +8 -8
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +7 -7
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +1 -1
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +11 -10
- package/dist/_internal/components/data-display/LazyImage/LazyImage.js +2 -2
- package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -1
- package/dist/_internal/components/data-display/MapPreview/MapControlBar.js +3 -3
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +4 -4
- package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +3 -3
- package/dist/_internal/components/data-display/MapPreview/MapPreview.helpers.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +6 -6
- package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +4 -4
- package/dist/_internal/components/data-display/Sheet/Sheet.body.js +3 -2
- package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.parts.js +2 -1
- package/dist/_internal/components/data-display/Stepper/Stepper.js +2 -2
- package/dist/_internal/components/data-display/Table/Table.js +3 -3
- package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -2
- package/dist/_internal/components/data-display/Table/TableParts.js +2 -2
- package/dist/_internal/components/data-display/Timeline/Timeline.js +2 -2
- package/dist/_internal/components/data-display/index.js +29 -29
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +5 -5
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.parts.js +4 -4
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +6 -6
- package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +5 -5
- package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +3 -3
- package/dist/_internal/components/feedback/Sonner/Sonner.js +2 -2
- package/dist/_internal/components/feedback/StackedModal/StackedModal.js +3 -3
- package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +2 -2
- package/dist/_internal/components/feedback/Toast/Toast.js +2 -2
- package/dist/_internal/components/feedback/index.js +13 -13
- package/dist/_internal/components/form/Command/Command.hooks.js +2 -1
- package/dist/_internal/components/form/Command/Command.js +4 -3
- package/dist/_internal/components/form/Command/Command.parts.js +2 -1
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +3 -2
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +5 -4
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +2 -1
- package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +3 -2
- package/dist/_internal/components/form/PhoneInput/PhoneInput.js +2 -1
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.dom.js +2 -2
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.format.js +3 -3
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.hooks.js +4 -4
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +5 -5
- package/dist/_internal/components/form/index.js +13 -13
- package/dist/_internal/components/form/total-form/FormErrorSnackbar.js +3 -3
- package/dist/_internal/components/index.js +75 -74
- package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +2 -1
- package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +3 -2
- package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +2 -1
- package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +2 -2
- package/dist/_internal/components/layout/Dashboard/Dashboard.js +2 -2
- package/dist/_internal/components/layout/Drawer/Drawer.js +2 -1
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +3 -2
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.rail.js +1 -1
- package/dist/_internal/components/layout/TableFilter/TableFilter.js +2 -1
- package/dist/_internal/components/layout/index.js +9 -8
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +6 -6
- package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -1
- package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +2 -1
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +3 -3
- package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +2 -2
- package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +4 -3
- package/dist/_internal/components/navigation/SectionNav/SectionNav.js +5 -4
- package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +3 -2
- package/dist/_internal/components/navigation/index.js +15 -14
- package/dist/_internal/components/typography/Code/Code.js +2 -2
- package/dist/_internal/components/typography/index.js +2 -2
- package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +2 -1
- package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +3 -2
- package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.parts.js +2 -1
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +2 -2
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +5 -5
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +3 -3
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +4 -4
- package/dist/_internal/components/utility/index.js +8 -8
- package/dist/_internal/en-US.data-display.js +1 -1
- package/dist/_internal/en-US.labels.js +1 -1
- package/dist/_internal/pt-BR.data-display.js +1 -1
- package/dist/_internal/pt-BR.labels.js +1 -1
- package/dist/_internal/social-login-button/social-login-button.js +2 -1
- package/dist/_internal/user-avatar/user-avatar.js +3 -2
- package/dist/{chunk-LIWONEAU.js → chunk-3B7EJIG7.js} +2 -2
- package/dist/{chunk-GHXW6O5T.js → chunk-3LQLLL2J.js} +4 -4
- package/dist/chunk-3LQLLL2J.js.map +1 -0
- package/dist/{chunk-GJMWQUAD.js → chunk-3OWFUFZL.js} +6 -3
- package/dist/chunk-3OWFUFZL.js.map +1 -0
- package/dist/{chunk-V64USPG3.js → chunk-4JV46KXS.js} +3 -3
- package/dist/{chunk-UJT6AQHL.js → chunk-4NVEUJXK.js} +2 -2
- package/dist/{chunk-PBMCRDZI.js → chunk-4PREA2R5.js} +5 -2
- package/dist/chunk-4PREA2R5.js.map +1 -0
- package/dist/{chunk-YZX4DVRS.js → chunk-52UVUVYQ.js} +6 -3
- package/dist/chunk-52UVUVYQ.js.map +1 -0
- package/dist/{chunk-PIP7XII2.js → chunk-5JDY5W7O.js} +3 -3
- package/dist/{chunk-YJ6UQDA6.js → chunk-634Z7HGN.js} +6 -3
- package/dist/chunk-634Z7HGN.js.map +1 -0
- package/dist/{chunk-556LO6KA.js → chunk-6B7VZFAO.js} +2 -2
- package/dist/{chunk-FLTXJWOC.js → chunk-6EERXU6R.js} +2 -2
- package/dist/{chunk-TPGFR24B.js → chunk-6IVR5HFI.js} +6 -6
- package/dist/{chunk-J26ZWYQI.js → chunk-6KCJNERH.js} +2 -2
- package/dist/{chunk-AXZCCX7O.js → chunk-6S7CFH6V.js} +2 -2
- package/dist/{chunk-3XLSA3YB.js → chunk-763AHWKU.js} +2 -2
- package/dist/{chunk-6MGYPTAL.js → chunk-7DODMQRK.js} +2 -2
- package/dist/{chunk-C4OETF7K.js → chunk-7H5BIZ33.js} +3 -3
- package/dist/{chunk-UGYBN6OO.js → chunk-7HYLXERK.js} +4 -4
- package/dist/{chunk-M3ZNQTS5.js → chunk-7S3NG2AO.js} +4 -4
- package/dist/{chunk-WE43PZ4P.js → chunk-7UDQJOZZ.js} +2 -2
- package/dist/{chunk-3ZWCKCZC.js → chunk-A7LBWRRW.js} +5 -2
- package/dist/chunk-A7LBWRRW.js.map +1 -0
- package/dist/{chunk-5GLOEGOM.js → chunk-ABJOW7EK.js} +2 -2
- package/dist/{chunk-GPPUKDA6.js → chunk-AFSXC5FU.js} +2 -2
- package/dist/{chunk-G2IVONJD.js → chunk-AISCD6W6.js} +2 -2
- package/dist/{chunk-ZYKDUKAH.js → chunk-B2RNNJRO.js} +7 -4
- package/dist/chunk-B2RNNJRO.js.map +1 -0
- package/dist/{chunk-HPEBSLYP.js → chunk-B67KUCWU.js} +2 -2
- package/dist/{chunk-CYKINZKO.js → chunk-BFBCTF2Y.js} +2 -2
- package/dist/{chunk-WUW6NDXC.js → chunk-BLVFHVDM.js} +7 -7
- package/dist/{chunk-GHGZI7PK.js → chunk-BMVLTTTC.js} +6 -3
- package/dist/{chunk-GHGZI7PK.js.map → chunk-BMVLTTTC.js.map} +1 -1
- package/dist/{chunk-UG4EMHMW.js → chunk-BTDY2NYV.js} +2 -2
- package/dist/{chunk-KE74C2SM.js → chunk-C2I7NQC4.js} +2 -2
- package/dist/{chunk-LR473BUT.js → chunk-C7LHIDVB.js} +3 -3
- package/dist/{chunk-V45JGJ3W.js → chunk-CFDYQSN6.js} +3 -3
- package/dist/{chunk-BJ7NWZWO.js → chunk-D4LMRSY7.js} +2 -2
- package/dist/{chunk-GPQ22MPR.js → chunk-DB7OJM6X.js} +2 -2
- package/dist/{chunk-66BRUS2M.js → chunk-DD3VFDB2.js} +2 -2
- package/dist/{chunk-J2RUDZVJ.js → chunk-DE2GWZ6X.js} +5 -2
- package/dist/chunk-DE2GWZ6X.js.map +1 -0
- package/dist/{chunk-JKNKGGOG.js → chunk-DKRMOIX2.js} +7 -1
- package/dist/chunk-DKRMOIX2.js.map +1 -0
- package/dist/{chunk-CSQWPDQV.js → chunk-DT22MDC3.js} +4 -4
- package/dist/{chunk-7HKXTRTK.js → chunk-DWCH6GH5.js} +2 -2
- package/dist/{chunk-NTO5DALI.js → chunk-DWLSYFQW.js} +5 -2
- package/dist/chunk-DWLSYFQW.js.map +1 -0
- package/dist/{chunk-F742IMLQ.js → chunk-EXKK73UN.js} +5 -2
- package/dist/chunk-EXKK73UN.js.map +1 -0
- package/dist/{chunk-4MKVGSHX.js → chunk-F5SUBK42.js} +6 -3
- package/dist/chunk-F5SUBK42.js.map +1 -0
- package/dist/{chunk-5KNDAC24.js → chunk-FCCOUOP7.js} +8 -2
- package/dist/chunk-FCCOUOP7.js.map +1 -0
- package/dist/{chunk-5MAD6ZEI.js → chunk-G3SWMBZS.js} +2 -2
- package/dist/{chunk-P3QFJJJY.js → chunk-GHTVBYFA.js} +3 -3
- package/dist/{chunk-RRSLH2FV.js → chunk-GLAAX5JJ.js} +7 -2
- package/dist/chunk-GLAAX5JJ.js.map +1 -0
- package/dist/{chunk-XLTHZI5W.js → chunk-GX2LIB4T.js} +6 -3
- package/dist/chunk-GX2LIB4T.js.map +1 -0
- package/dist/{chunk-RKVS5AA6.js → chunk-H3NXDKFH.js} +7 -4
- package/dist/chunk-H3NXDKFH.js.map +1 -0
- package/dist/{chunk-47VRDPR2.js → chunk-HFZE2PGM.js} +5 -2
- package/dist/chunk-HFZE2PGM.js.map +1 -0
- package/dist/{chunk-5MMAV7XK.js → chunk-HWKBCLKD.js} +4 -2
- package/dist/chunk-HWKBCLKD.js.map +1 -0
- package/dist/{chunk-IASPZGYB.js → chunk-HWUFOII2.js} +3 -3
- package/dist/chunk-HWUFOII2.js.map +1 -0
- package/dist/{chunk-VMU52I5D.js → chunk-J7CIRTWQ.js} +8 -3
- package/dist/chunk-J7CIRTWQ.js.map +1 -0
- package/dist/{chunk-MBY7DWGT.js → chunk-JJNY5MZL.js} +2 -2
- package/dist/{chunk-EF4DVYD2.js → chunk-JMUZ5JZA.js} +2 -2
- package/dist/{chunk-NUUX4BBR.js → chunk-JQSF3CUR.js} +7 -2
- package/dist/chunk-JQSF3CUR.js.map +1 -0
- package/dist/{chunk-KYE7I6NT.js → chunk-KSOIFQJ6.js} +4 -4
- package/dist/{chunk-JSY234NY.js → chunk-KW2KCPZF.js} +2 -2
- package/dist/{chunk-RNQA7MDM.js → chunk-LDPN55AA.js} +2 -2
- package/dist/{chunk-U6XXAVBO.js → chunk-LHRAHDJF.js} +2 -2
- package/dist/{chunk-VQ6UB4MN.js → chunk-MKRJUT5O.js} +3 -3
- package/dist/{chunk-CXTRDTNM.js → chunk-NF5TATKP.js} +4 -4
- package/dist/{chunk-NA3M7KDE.js → chunk-NGXDOWUP.js} +2 -2
- package/dist/{chunk-EVYLJ5JB.js → chunk-NSS3X7FK.js} +2 -2
- package/dist/{chunk-RECD3XOL.js → chunk-NWNHSASQ.js} +2 -2
- package/dist/{chunk-W5PRZHLU.js → chunk-O2RXSXSF.js} +74 -3
- package/dist/chunk-O2RXSXSF.js.map +1 -0
- package/dist/{chunk-VMN6KG2U.js → chunk-OCLEKMBP.js} +3 -3
- package/dist/chunk-OCLEKMBP.js.map +1 -0
- package/dist/{chunk-HBP2OU4Q.js → chunk-OOCD2QR3.js} +4 -3
- package/dist/chunk-OOCD2QR3.js.map +1 -0
- package/dist/{chunk-URAXAKUI.js → chunk-OT4HIG7S.js} +3 -3
- package/dist/{chunk-K53XSVQO.js → chunk-OTION43A.js} +8 -4
- package/dist/chunk-OTION43A.js.map +1 -0
- package/dist/{chunk-H6R2L7VI.js → chunk-PAKLYZ6G.js} +2 -2
- package/dist/{chunk-SYSR2K2M.js → chunk-PF2A2IM7.js} +2 -2
- package/dist/{chunk-SRNBD6EV.js → chunk-PGBIUO2A.js} +2 -2
- package/dist/{chunk-QDRHIK2R.js → chunk-QK3XXPBA.js} +2 -2
- package/dist/{chunk-A6V7KE45.js → chunk-QVEJGFRP.js} +3 -3
- package/dist/{chunk-73OYC22L.js → chunk-RMZQHJEP.js} +2 -2
- package/dist/{chunk-VBGC7G4F.js → chunk-RQ3IS5NQ.js} +2 -2
- package/dist/{chunk-7S25RDE4.js → chunk-SCQARHMU.js} +2 -2
- package/dist/{chunk-47IAX6PI.js → chunk-SEUJNFOD.js} +2 -2
- package/dist/{chunk-RQMYEPRR.js → chunk-SM2O6D5F.js} +2 -2
- package/dist/{chunk-AAWVAQI2.js → chunk-SXNGH56D.js} +2 -2
- package/dist/{chunk-V7INHV5V.js → chunk-SYZVXWEQ.js} +3 -3
- package/dist/{chunk-DX5PLJKN.js → chunk-TAR5LSGT.js} +2 -2
- package/dist/{chunk-VFVATUC6.js → chunk-TGZ6GPYQ.js} +3 -3
- package/dist/{chunk-25HBYY4O.js → chunk-TLVKJBPM.js} +2 -2
- package/dist/{chunk-BGTG7G54.js → chunk-TLZR6UPJ.js} +6 -3
- package/dist/chunk-TLZR6UPJ.js.map +1 -0
- package/dist/{chunk-XLCVMRSO.js → chunk-U67CX4FL.js} +12 -4
- package/dist/chunk-U67CX4FL.js.map +1 -0
- package/dist/{chunk-PU3FQG7T.js → chunk-UCQRJTCI.js} +2 -2
- package/dist/{chunk-I2CT4XIP.js → chunk-UF4JFRLE.js} +3 -3
- package/dist/{chunk-4N3I7ZHQ.js → chunk-URAX2JPM.js} +6 -3
- package/dist/chunk-URAX2JPM.js.map +1 -0
- package/dist/{chunk-MGDCGNLC.js → chunk-UYNJ3FYE.js} +3 -3
- package/dist/{chunk-6SFJIW54.js → chunk-V65YK5DC.js} +2 -2
- package/dist/{chunk-VZVAP2ZR.js → chunk-V6DMNSW6.js} +4 -4
- package/dist/chunk-V6DMNSW6.js.map +1 -0
- package/dist/{chunk-CRFOAKQL.js → chunk-VAGGIRLA.js} +6 -3
- package/dist/chunk-VAGGIRLA.js.map +1 -0
- package/dist/{chunk-L35TCXFA.js → chunk-VRKNVZZQ.js} +74 -3
- package/dist/chunk-VRKNVZZQ.js.map +1 -0
- package/dist/{chunk-RZ3QMKM7.js → chunk-W3EVATBS.js} +2 -2
- package/dist/{chunk-CAHN7AMY.js → chunk-WWIYYXY3.js} +14 -7
- package/dist/chunk-WWIYYXY3.js.map +1 -0
- package/dist/{chunk-WOXWLJYR.js → chunk-XF47LPCF.js} +5 -2
- package/dist/chunk-XF47LPCF.js.map +1 -0
- package/dist/{chunk-3YLRR4JM.js → chunk-Y3YZBB74.js} +2 -2
- package/dist/{chunk-V37QIB7B.js → chunk-YMKSPW4T.js} +2 -2
- package/dist/{chunk-YOKUDQIJ.js → chunk-YOQAK2RN.js} +7 -3
- package/dist/chunk-YOQAK2RN.js.map +1 -0
- package/dist/{chunk-KYT5G4K7.js → chunk-Z52W7FEU.js} +2 -2
- package/dist/{chunk-3YCV4EP7.js → chunk-ZDBG7QG2.js} +3 -3
- package/dist/{chunk-7HZ6TJRH.js → chunk-ZT73ACK3.js} +2 -2
- package/dist/{chunk-TJO4CBYT.js → chunk-ZX3QMCYO.js} +6 -3
- package/dist/chunk-ZX3QMCYO.js.map +1 -0
- package/dist/data-display/AlertDialog.js +3 -3
- package/dist/data-display/AsyncStateContainer.js +6 -4
- package/dist/data-display/Avatar.js +2 -1
- package/dist/data-display/CardKit.js +9 -9
- package/dist/data-display/Carousel.js +4 -4
- package/dist/data-display/DataViews.js +38 -37
- package/dist/data-display/EmptyState.js +2 -1
- package/dist/data-display/ErrorState.js +2 -1
- package/dist/data-display/FleetMap.js +11 -10
- package/dist/data-display/LazyImage.js +2 -2
- package/dist/data-display/LoadingState.js +3 -1
- package/dist/data-display/MapPreview.js +6 -6
- package/dist/data-display/SectionOnboarding.js +4 -4
- package/dist/data-display/Sheet.js +4 -3
- package/dist/data-display/Stepper.js +2 -2
- package/dist/data-display/Table.js +3 -3
- package/dist/data-display/Timeline.js +2 -2
- package/dist/en-US.js +4 -4
- package/dist/feedback/ConfirmAction.js +7 -7
- package/dist/feedback/Dialog.js +2 -2
- package/dist/feedback/SequenceResolver.js +3 -3
- package/dist/feedback/Sonner.js +2 -2
- package/dist/feedback/StackedModal.js +3 -3
- package/dist/feedback/Toast.js +2 -2
- package/dist/form/Command.js +4 -3
- package/dist/form/DateRangePicker.js +5 -4
- package/dist/form/PhoneInput.js +2 -1
- package/dist/form/RichTextEditor.js +5 -5
- package/dist/form/total-form.js +3 -3
- package/dist/layout/ContentToolbar.js +6 -5
- package/dist/layout/Dashboard.js +2 -2
- package/dist/layout/Drawer.js +2 -1
- package/dist/layout/SettingsLayout.js +3 -2
- package/dist/layout/TableFilter.js +2 -1
- package/dist/locales.js +8 -8
- package/dist/native/chunks/{chunk-4SP3BDPZ.js → chunk-67CYDCHZ.js} +2 -2
- package/dist/native/chunks/{chunk-FGAX5BRS.js → chunk-7AVFQB6A.js} +7 -4
- package/dist/native/chunks/chunk-7AVFQB6A.js.map +1 -0
- package/dist/native/chunks/{chunk-SPK34J7Y.js → chunk-DUELD4HY.js} +74 -3
- package/dist/native/chunks/chunk-DUELD4HY.js.map +1 -0
- package/dist/native/data-display/Avatar.js +4 -1
- package/dist/native/data-display/Avatar.js.map +1 -1
- package/dist/native/data-display/Badge.js +3 -3
- package/dist/native/data-display/Chip.js +3 -3
- package/dist/native/data-display/EmptyState.js +3 -3
- package/dist/native/data-display/ErrorState.js +5 -3
- package/dist/native/data-display/ErrorState.js.map +1 -1
- package/dist/native/data-display/FleetMap.js +3 -3
- package/dist/native/data-display/LoadingState.js +16 -5
- package/dist/native/data-display/LoadingState.js.map +1 -1
- package/dist/native/feedback/Dialog.js +3 -3
- package/dist/native/form/Button.js +2 -2
- package/dist/native/form/Checkbox.js +3 -3
- package/dist/native/form/Input.js +1 -1
- package/dist/native/form/Switch.js +1 -1
- package/dist/navigation/AppHeader.js +8 -7
- package/dist/navigation/Breadcrumbs.js +2 -1
- package/dist/navigation/NavigationMenu.js +3 -3
- package/dist/navigation/SectionNav.js +5 -4
- package/dist/pt-BR.js +4 -4
- package/dist/social-login-button.js +2 -1
- package/dist/types/components/data-display/AlertDialog/AlertDialog.parts.d.ts.map +1 -1
- package/dist/types/components/data-display/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/DeleteViewDialog.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +11 -0
- package/dist/types/components/data-display/DataViews/data-views-copy.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-grid-helpers.d.ts +6 -2
- package/dist/types/components/data-display/DataViews/data-views-grid-helpers.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/use-data-views-state.d.ts.map +1 -1
- package/dist/types/components/data-display/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/types/components/data-display/ErrorState/ErrorState.d.ts.map +1 -1
- package/dist/types/components/data-display/LoadingState/LoadingState.base.d.ts +7 -0
- package/dist/types/components/data-display/LoadingState/LoadingState.base.d.ts.map +1 -1
- package/dist/types/components/data-display/LoadingState/LoadingState.d.ts.map +1 -1
- package/dist/types/components/data-display/Sheet/Sheet.body.d.ts +1 -1
- package/dist/types/components/data-display/Sheet/Sheet.body.d.ts.map +1 -1
- package/dist/types/components/data-display/Sheet/Sheet.parts.d.ts.map +1 -1
- package/dist/types/components/data-display/Sheet/Sheet.types.d.ts +10 -0
- package/dist/types/components/data-display/Sheet/Sheet.types.d.ts.map +1 -1
- package/dist/types/components/feedback/StackedModal/StackedModal.d.ts.map +1 -1
- package/dist/types/components/form/Command/Command.hooks.d.ts.map +1 -1
- package/dist/types/components/form/Command/Command.parts.d.ts.map +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.range.d.ts.map +1 -1
- package/dist/types/components/form/PhoneInput/PhoneInput.d.ts.map +1 -1
- package/dist/types/components/form/total-form/FormErrorSnackbar.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ColumnsMenu.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/FilterTrigger.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/MultiSelectDropdown.d.ts.map +1 -1
- package/dist/types/components/layout/Dashboard/Dashboard.d.ts +1 -1
- package/dist/types/components/layout/Dashboard/Dashboard.d.ts.map +1 -1
- package/dist/types/components/layout/Drawer/Drawer.d.ts.map +1 -1
- package/dist/types/components/layout/SettingsLayout/SettingsLayout.d.ts.map +1 -1
- package/dist/types/components/layout/SettingsLayout/SettingsLayout.rail.d.ts +3 -1
- package/dist/types/components/layout/SettingsLayout/SettingsLayout.rail.d.ts.map +1 -1
- package/dist/types/components/layout/SettingsLayout/SettingsLayout.types.d.ts +6 -0
- package/dist/types/components/layout/SettingsLayout/SettingsLayout.types.d.ts.map +1 -1
- package/dist/types/components/layout/TableFilter/TableFilter.d.ts.map +1 -1
- package/dist/types/components/navigation/AppHeader/AppHeader.identity.d.ts.map +1 -1
- package/dist/types/components/navigation/AppHeader/AppHeader.types.d.ts +5 -1
- package/dist/types/components/navigation/AppHeader/AppHeader.types.d.ts.map +1 -1
- package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.d.ts.map +1 -1
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.d.ts.map +1 -1
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.parts.d.ts +1 -0
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.parts.d.ts.map +1 -1
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.types.d.ts +6 -0
- package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.types.d.ts.map +1 -1
- package/dist/types/copy/labels.d.ts +113 -2
- package/dist/types/copy/labels.d.ts.map +1 -1
- package/dist/types/en-US.data-display.d.ts.map +1 -1
- package/dist/types/en-US.labels.d.ts.map +1 -1
- package/dist/types/pt-BR.data-display.d.ts.map +1 -1
- package/dist/types/pt-BR.labels.d.ts.map +1 -1
- package/dist/types/social-login-button/social-login-button.d.ts.map +1 -1
- package/dist/types-native/components/data-display/Avatar/Avatar.native.d.ts.map +1 -1
- package/dist/types-native/components/data-display/EmptyState/EmptyState.native.d.ts.map +1 -1
- package/dist/types-native/components/data-display/ErrorState/ErrorState.native.d.ts.map +1 -1
- package/dist/types-native/components/data-display/LoadingState/LoadingState.base.d.ts +7 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.base.d.ts.map +1 -1
- package/dist/types-native/components/data-display/LoadingState/LoadingState.native.d.ts.map +1 -1
- package/dist/types-native/copy/labels.d.ts +113 -2
- package/dist/types-native/copy/labels.d.ts.map +1 -1
- package/dist/types-native/en-US.labels.d.ts.map +1 -1
- package/dist/types-native/utils/resolve-labels.d.ts +9 -0
- package/dist/types-native/utils/resolve-labels.d.ts.map +1 -0
- package/dist/typography/Code.js +2 -2
- package/dist/user-avatar.js +3 -2
- package/dist/utility/AnimatedIcon.js +2 -1
- package/dist/utility/InfiniteScroll.js +3 -2
- package/dist/utility/WorkflowStep.js +5 -5
- package/package.json +2 -2
- package/src/components/data-display/AlertDialog/AlertDialog.parts.tsx +3 -2
- package/src/components/data-display/Avatar/Avatar.native.tsx +2 -1
- package/src/components/data-display/Avatar/Avatar.tsx +2 -1
- package/src/components/data-display/DataViews/DeleteViewDialog.tsx +2 -2
- package/src/components/data-display/DataViews/data-views-copy.ts +11 -0
- package/src/components/data-display/DataViews/data-views-grid-helpers.tsx +8 -3
- package/src/components/data-display/DataViews/data-views-view-nav.tsx +2 -2
- package/src/components/data-display/DataViews/use-data-views-state.ts +3 -1
- package/src/components/data-display/EmptyState/EmptyState.native.tsx +3 -2
- package/src/components/data-display/EmptyState/EmptyState.tsx +3 -2
- package/src/components/data-display/ErrorState/ErrorState.native.tsx +2 -1
- package/src/components/data-display/ErrorState/ErrorState.tsx +2 -1
- package/src/components/data-display/LoadingState/LoadingState.base.ts +8 -0
- package/src/components/data-display/LoadingState/LoadingState.native.tsx +10 -5
- package/src/components/data-display/LoadingState/LoadingState.tsx +9 -3
- package/src/components/data-display/Sheet/Sheet.body.tsx +3 -0
- package/src/components/data-display/Sheet/Sheet.md +1 -0
- package/src/components/data-display/Sheet/Sheet.parts.tsx +4 -0
- package/src/components/data-display/Sheet/Sheet.types.ts +10 -0
- package/src/components/feedback/StackedModal/StackedModal.tsx +2 -1
- package/src/components/form/Command/Command.hooks.ts +3 -2
- package/src/components/form/Command/Command.parts.tsx +3 -2
- package/src/components/form/DateRangePicker/DateRangePicker.range.ts +2 -1
- package/src/components/form/PhoneInput/PhoneInput.tsx +3 -2
- package/src/components/form/total-form/FormErrorSnackbar.tsx +2 -1
- package/src/components/layout/ContentToolbar/ColumnsMenu.tsx +3 -2
- package/src/components/layout/ContentToolbar/FilterTrigger.tsx +4 -1
- package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +4 -3
- package/src/components/layout/Dashboard/Dashboard.tsx +4 -1
- package/src/components/layout/Drawer/Drawer.tsx +2 -1
- package/src/components/layout/SettingsLayout/SettingsLayout.md +1 -0
- package/src/components/layout/SettingsLayout/SettingsLayout.rail.tsx +9 -2
- package/src/components/layout/SettingsLayout/SettingsLayout.tsx +16 -5
- package/src/components/layout/SettingsLayout/SettingsLayout.types.ts +6 -0
- package/src/components/layout/TableFilter/TableFilter.tsx +4 -3
- package/src/components/navigation/AppHeader/AppHeader.identity.tsx +2 -1
- package/src/components/navigation/AppHeader/AppHeader.types.ts +5 -1
- package/src/components/navigation/Breadcrumbs/Breadcrumbs.tsx +2 -1
- package/src/components/navigation/NavigationMenu/NavigationStandardBody.tsx +1 -1
- package/src/components/utility/AnimatedIcon/AnimatedIcon.tsx +2 -1
- package/src/components/utility/InfiniteScroll/InfiniteScroll.parts.tsx +6 -2
- package/src/components/utility/InfiniteScroll/InfiniteScroll.tsx +2 -1
- package/src/components/utility/InfiniteScroll/InfiniteScroll.types.ts +6 -0
- package/src/copy/labels.ts +131 -2
- package/src/en-US.data-display.ts +5 -0
- package/src/en-US.labels.ts +71 -0
- package/src/pt-BR.data-display.ts +5 -0
- package/src/pt-BR.labels.ts +71 -0
- package/src/social-login-button/social-login-button.tsx +3 -2
- package/dist/chunk-3ZWCKCZC.js.map +0 -1
- package/dist/chunk-47VRDPR2.js.map +0 -1
- package/dist/chunk-4MKVGSHX.js.map +0 -1
- package/dist/chunk-4N3I7ZHQ.js.map +0 -1
- package/dist/chunk-5KNDAC24.js.map +0 -1
- package/dist/chunk-5MMAV7XK.js.map +0 -1
- package/dist/chunk-BGTG7G54.js.map +0 -1
- package/dist/chunk-CAHN7AMY.js.map +0 -1
- package/dist/chunk-CRFOAKQL.js.map +0 -1
- package/dist/chunk-F742IMLQ.js.map +0 -1
- package/dist/chunk-GHXW6O5T.js.map +0 -1
- package/dist/chunk-GJMWQUAD.js.map +0 -1
- package/dist/chunk-HBP2OU4Q.js.map +0 -1
- package/dist/chunk-IASPZGYB.js.map +0 -1
- package/dist/chunk-J2RUDZVJ.js.map +0 -1
- package/dist/chunk-JKNKGGOG.js.map +0 -1
- package/dist/chunk-K53XSVQO.js.map +0 -1
- package/dist/chunk-L35TCXFA.js.map +0 -1
- package/dist/chunk-NTO5DALI.js.map +0 -1
- package/dist/chunk-NUUX4BBR.js.map +0 -1
- package/dist/chunk-PBMCRDZI.js.map +0 -1
- package/dist/chunk-RKVS5AA6.js.map +0 -1
- package/dist/chunk-RRSLH2FV.js.map +0 -1
- package/dist/chunk-TJO4CBYT.js.map +0 -1
- package/dist/chunk-VMN6KG2U.js.map +0 -1
- package/dist/chunk-VMU52I5D.js.map +0 -1
- package/dist/chunk-VZVAP2ZR.js.map +0 -1
- package/dist/chunk-W5PRZHLU.js.map +0 -1
- package/dist/chunk-WOXWLJYR.js.map +0 -1
- package/dist/chunk-XLCVMRSO.js.map +0 -1
- package/dist/chunk-XLTHZI5W.js.map +0 -1
- package/dist/chunk-YJ6UQDA6.js.map +0 -1
- package/dist/chunk-YOKUDQIJ.js.map +0 -1
- package/dist/chunk-YZX4DVRS.js.map +0 -1
- package/dist/chunk-ZYKDUKAH.js.map +0 -1
- package/dist/native/chunks/chunk-FGAX5BRS.js.map +0 -1
- package/dist/native/chunks/chunk-SPK34J7Y.js.map +0 -1
- /package/dist/{chunk-LIWONEAU.js.map → chunk-3B7EJIG7.js.map} +0 -0
- /package/dist/{chunk-V64USPG3.js.map → chunk-4JV46KXS.js.map} +0 -0
- /package/dist/{chunk-UJT6AQHL.js.map → chunk-4NVEUJXK.js.map} +0 -0
- /package/dist/{chunk-PIP7XII2.js.map → chunk-5JDY5W7O.js.map} +0 -0
- /package/dist/{chunk-556LO6KA.js.map → chunk-6B7VZFAO.js.map} +0 -0
- /package/dist/{chunk-FLTXJWOC.js.map → chunk-6EERXU6R.js.map} +0 -0
- /package/dist/{chunk-TPGFR24B.js.map → chunk-6IVR5HFI.js.map} +0 -0
- /package/dist/{chunk-J26ZWYQI.js.map → chunk-6KCJNERH.js.map} +0 -0
- /package/dist/{chunk-AXZCCX7O.js.map → chunk-6S7CFH6V.js.map} +0 -0
- /package/dist/{chunk-3XLSA3YB.js.map → chunk-763AHWKU.js.map} +0 -0
- /package/dist/{chunk-6MGYPTAL.js.map → chunk-7DODMQRK.js.map} +0 -0
- /package/dist/{chunk-C4OETF7K.js.map → chunk-7H5BIZ33.js.map} +0 -0
- /package/dist/{chunk-UGYBN6OO.js.map → chunk-7HYLXERK.js.map} +0 -0
- /package/dist/{chunk-M3ZNQTS5.js.map → chunk-7S3NG2AO.js.map} +0 -0
- /package/dist/{chunk-WE43PZ4P.js.map → chunk-7UDQJOZZ.js.map} +0 -0
- /package/dist/{chunk-5GLOEGOM.js.map → chunk-ABJOW7EK.js.map} +0 -0
- /package/dist/{chunk-GPPUKDA6.js.map → chunk-AFSXC5FU.js.map} +0 -0
- /package/dist/{chunk-G2IVONJD.js.map → chunk-AISCD6W6.js.map} +0 -0
- /package/dist/{chunk-HPEBSLYP.js.map → chunk-B67KUCWU.js.map} +0 -0
- /package/dist/{chunk-CYKINZKO.js.map → chunk-BFBCTF2Y.js.map} +0 -0
- /package/dist/{chunk-WUW6NDXC.js.map → chunk-BLVFHVDM.js.map} +0 -0
- /package/dist/{chunk-UG4EMHMW.js.map → chunk-BTDY2NYV.js.map} +0 -0
- /package/dist/{chunk-KE74C2SM.js.map → chunk-C2I7NQC4.js.map} +0 -0
- /package/dist/{chunk-LR473BUT.js.map → chunk-C7LHIDVB.js.map} +0 -0
- /package/dist/{chunk-V45JGJ3W.js.map → chunk-CFDYQSN6.js.map} +0 -0
- /package/dist/{chunk-BJ7NWZWO.js.map → chunk-D4LMRSY7.js.map} +0 -0
- /package/dist/{chunk-GPQ22MPR.js.map → chunk-DB7OJM6X.js.map} +0 -0
- /package/dist/{chunk-66BRUS2M.js.map → chunk-DD3VFDB2.js.map} +0 -0
- /package/dist/{chunk-CSQWPDQV.js.map → chunk-DT22MDC3.js.map} +0 -0
- /package/dist/{chunk-7HKXTRTK.js.map → chunk-DWCH6GH5.js.map} +0 -0
- /package/dist/{chunk-5MAD6ZEI.js.map → chunk-G3SWMBZS.js.map} +0 -0
- /package/dist/{chunk-P3QFJJJY.js.map → chunk-GHTVBYFA.js.map} +0 -0
- /package/dist/{chunk-MBY7DWGT.js.map → chunk-JJNY5MZL.js.map} +0 -0
- /package/dist/{chunk-EF4DVYD2.js.map → chunk-JMUZ5JZA.js.map} +0 -0
- /package/dist/{chunk-KYE7I6NT.js.map → chunk-KSOIFQJ6.js.map} +0 -0
- /package/dist/{chunk-JSY234NY.js.map → chunk-KW2KCPZF.js.map} +0 -0
- /package/dist/{chunk-RNQA7MDM.js.map → chunk-LDPN55AA.js.map} +0 -0
- /package/dist/{chunk-U6XXAVBO.js.map → chunk-LHRAHDJF.js.map} +0 -0
- /package/dist/{chunk-VQ6UB4MN.js.map → chunk-MKRJUT5O.js.map} +0 -0
- /package/dist/{chunk-CXTRDTNM.js.map → chunk-NF5TATKP.js.map} +0 -0
- /package/dist/{chunk-NA3M7KDE.js.map → chunk-NGXDOWUP.js.map} +0 -0
- /package/dist/{chunk-EVYLJ5JB.js.map → chunk-NSS3X7FK.js.map} +0 -0
- /package/dist/{chunk-RECD3XOL.js.map → chunk-NWNHSASQ.js.map} +0 -0
- /package/dist/{chunk-URAXAKUI.js.map → chunk-OT4HIG7S.js.map} +0 -0
- /package/dist/{chunk-H6R2L7VI.js.map → chunk-PAKLYZ6G.js.map} +0 -0
- /package/dist/{chunk-SYSR2K2M.js.map → chunk-PF2A2IM7.js.map} +0 -0
- /package/dist/{chunk-SRNBD6EV.js.map → chunk-PGBIUO2A.js.map} +0 -0
- /package/dist/{chunk-QDRHIK2R.js.map → chunk-QK3XXPBA.js.map} +0 -0
- /package/dist/{chunk-A6V7KE45.js.map → chunk-QVEJGFRP.js.map} +0 -0
- /package/dist/{chunk-73OYC22L.js.map → chunk-RMZQHJEP.js.map} +0 -0
- /package/dist/{chunk-VBGC7G4F.js.map → chunk-RQ3IS5NQ.js.map} +0 -0
- /package/dist/{chunk-7S25RDE4.js.map → chunk-SCQARHMU.js.map} +0 -0
- /package/dist/{chunk-47IAX6PI.js.map → chunk-SEUJNFOD.js.map} +0 -0
- /package/dist/{chunk-RQMYEPRR.js.map → chunk-SM2O6D5F.js.map} +0 -0
- /package/dist/{chunk-AAWVAQI2.js.map → chunk-SXNGH56D.js.map} +0 -0
- /package/dist/{chunk-V7INHV5V.js.map → chunk-SYZVXWEQ.js.map} +0 -0
- /package/dist/{chunk-DX5PLJKN.js.map → chunk-TAR5LSGT.js.map} +0 -0
- /package/dist/{chunk-VFVATUC6.js.map → chunk-TGZ6GPYQ.js.map} +0 -0
- /package/dist/{chunk-25HBYY4O.js.map → chunk-TLVKJBPM.js.map} +0 -0
- /package/dist/{chunk-PU3FQG7T.js.map → chunk-UCQRJTCI.js.map} +0 -0
- /package/dist/{chunk-I2CT4XIP.js.map → chunk-UF4JFRLE.js.map} +0 -0
- /package/dist/{chunk-MGDCGNLC.js.map → chunk-UYNJ3FYE.js.map} +0 -0
- /package/dist/{chunk-6SFJIW54.js.map → chunk-V65YK5DC.js.map} +0 -0
- /package/dist/{chunk-RZ3QMKM7.js.map → chunk-W3EVATBS.js.map} +0 -0
- /package/dist/{chunk-3YLRR4JM.js.map → chunk-Y3YZBB74.js.map} +0 -0
- /package/dist/{chunk-V37QIB7B.js.map → chunk-YMKSPW4T.js.map} +0 -0
- /package/dist/{chunk-KYT5G4K7.js.map → chunk-Z52W7FEU.js.map} +0 -0
- /package/dist/{chunk-3YCV4EP7.js.map → chunk-ZDBG7QG2.js.map} +0 -0
- /package/dist/{chunk-7HZ6TJRH.js.map → chunk-ZT73ACK3.js.map} +0 -0
- /package/dist/native/chunks/{chunk-4SP3BDPZ.js.map → chunk-67CYDCHZ.js.map} +0 -0
package/dist/form/total-form.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FormErrorSnackbar
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-URAX2JPM.js";
|
|
4
4
|
import {
|
|
5
5
|
FormContainer
|
|
6
6
|
} from "../chunk-CPAJYJUD.js";
|
|
@@ -37,7 +37,7 @@ import "../chunk-6XLMTOJ3.js";
|
|
|
37
37
|
import "../chunk-THD3N4BJ.js";
|
|
38
38
|
import "../chunk-BTGXHQX3.js";
|
|
39
39
|
import "../chunk-JD5BVIM7.js";
|
|
40
|
-
import "../chunk-
|
|
40
|
+
import "../chunk-TAR5LSGT.js";
|
|
41
41
|
import "../chunk-QYKDY4EI.js";
|
|
42
42
|
import "../chunk-MWPD2BXO.js";
|
|
43
43
|
import "../chunk-ZLMKGVB2.js";
|
|
@@ -65,13 +65,13 @@ import "../chunk-C3UKR3NT.js";
|
|
|
65
65
|
import "../chunk-D6KL74KI.js";
|
|
66
66
|
import "../chunk-LZRVUOMU.js";
|
|
67
67
|
import "../chunk-EEB66IVH.js";
|
|
68
|
-
import "../chunk-W5PRZHLU.js";
|
|
69
68
|
import "../chunk-RTSK5OZT.js";
|
|
70
69
|
import "../chunk-BA4RHQ3B.js";
|
|
71
70
|
import "../chunk-5USHYSCO.js";
|
|
72
71
|
import "../chunk-KXTNTDRD.js";
|
|
73
72
|
import "../chunk-G2FUZALJ.js";
|
|
74
73
|
import "../chunk-TAMIZE4Q.js";
|
|
74
|
+
import "../chunk-O2RXSXSF.js";
|
|
75
75
|
import "../chunk-TYJR4GOF.js";
|
|
76
76
|
import "../chunk-HPK33ACY.js";
|
|
77
77
|
import "../chunk-7ZPUN7TV.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "../chunk-MOLQGQEQ.js";
|
|
2
2
|
import {
|
|
3
3
|
ColumnsMenu
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-52UVUVYQ.js";
|
|
5
5
|
import {
|
|
6
6
|
ViewSelector
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-6EERXU6R.js";
|
|
8
8
|
import {
|
|
9
9
|
SortByDropdown
|
|
10
10
|
} from "../chunk-AAREDFH6.js";
|
|
@@ -13,15 +13,16 @@ import {
|
|
|
13
13
|
} from "../chunk-6MOJK2QT.js";
|
|
14
14
|
import {
|
|
15
15
|
MultiSelectDropdown
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-H3NXDKFH.js";
|
|
17
17
|
import "../chunk-V4JMZZGH.js";
|
|
18
18
|
import {
|
|
19
19
|
FilterTrigger
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-J7CIRTWQ.js";
|
|
21
21
|
import {
|
|
22
22
|
ContentToolbar
|
|
23
23
|
} from "../chunk-SFLNHCA2.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-VRKNVZZQ.js";
|
|
25
|
+
import "../chunk-O2RXSXSF.js";
|
|
25
26
|
import "../chunk-QQHZBJMU.js";
|
|
26
27
|
import "../chunk-7ZADLRLP.js";
|
|
27
28
|
import "../chunk-3NGE6NE6.js";
|
package/dist/layout/Dashboard.js
CHANGED
|
@@ -2,7 +2,7 @@ import "../chunk-LVDRVPGD.js";
|
|
|
2
2
|
import {
|
|
3
3
|
Dashboard,
|
|
4
4
|
markDashboardSlot
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-BMVLTTTC.js";
|
|
6
6
|
import "../chunk-GGBFDHXE.js";
|
|
7
7
|
import {
|
|
8
8
|
DashboardContext,
|
|
@@ -12,7 +12,7 @@ import "../chunk-SIZOJNB2.js";
|
|
|
12
12
|
import "../chunk-NIF4IXQU.js";
|
|
13
13
|
import "../chunk-URB3VVMR.js";
|
|
14
14
|
import "../chunk-BBXJQI4S.js";
|
|
15
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-O2RXSXSF.js";
|
|
16
16
|
import "../chunk-YKCAJ2TN.js";
|
|
17
17
|
import "../chunk-PZ5AY32C.js";
|
|
18
18
|
export {
|
package/dist/layout/Drawer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SettingsLayout
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-WWIYYXY3.js";
|
|
4
|
+
import "../chunk-ZX3QMCYO.js";
|
|
5
5
|
import "../chunk-SL56MOKE.js";
|
|
6
6
|
import "../chunk-BXC6GRLE.js";
|
|
7
7
|
import "../chunk-W5WYTVLS.js";
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
} from "../chunk-7Y2VWMGS.js";
|
|
15
15
|
import "../chunk-NK4T624E.js";
|
|
16
16
|
import "../chunk-AJUSBPWG.js";
|
|
17
|
+
import "../chunk-O2RXSXSF.js";
|
|
17
18
|
import "../chunk-HPK33ACY.js";
|
|
18
19
|
import "../chunk-YKCAJ2TN.js";
|
|
19
20
|
import "../chunk-PZ5AY32C.js";
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import "../chunk-4NS4PJJH.js";
|
|
2
2
|
import {
|
|
3
3
|
TableFilter
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-B2RNNJRO.js";
|
|
5
5
|
import {
|
|
6
6
|
TableFilterContext,
|
|
7
7
|
useTableFilterContext
|
|
8
8
|
} from "../chunk-7AIL2F5E.js";
|
|
9
|
+
import "../chunk-O2RXSXSF.js";
|
|
9
10
|
import "../chunk-QQHZBJMU.js";
|
|
10
11
|
import "../chunk-7ZADLRLP.js";
|
|
11
12
|
import "../chunk-3NGE6NE6.js";
|
package/dist/locales.js
CHANGED
|
@@ -4,9 +4,6 @@ import {
|
|
|
4
4
|
PT_BR_COMMAND_PALETTE_COPY,
|
|
5
5
|
PT_BR_SECTION_NAV_COPY
|
|
6
6
|
} from "./chunk-G76PIGF7.js";
|
|
7
|
-
import {
|
|
8
|
-
PT_BR_UI_LABELS
|
|
9
|
-
} from "./chunk-L35TCXFA.js";
|
|
10
7
|
import {
|
|
11
8
|
PT_BR_ADDRESS_AUTOCOMPLETE_COPY,
|
|
12
9
|
PT_BR_AUTOCOMPLETE_COPY,
|
|
@@ -29,7 +26,7 @@ import {
|
|
|
29
26
|
PT_BR_LIGHTBOX_COPY,
|
|
30
27
|
PT_BR_MAP_PREVIEW_COPY,
|
|
31
28
|
PT_BR_TIMING_DIAGRAM_COPY
|
|
32
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-JQSF3CUR.js";
|
|
33
30
|
import {
|
|
34
31
|
PT_BR_SETTING_CARD_COPY,
|
|
35
32
|
PT_BR_SETTING_SWITCH_COPY,
|
|
@@ -56,6 +53,9 @@ import {
|
|
|
56
53
|
EN_US_CHROME_COPY,
|
|
57
54
|
EN_US_TUTORIAL_COPY
|
|
58
55
|
} from "./chunk-ETSASQXI.js";
|
|
56
|
+
import {
|
|
57
|
+
PT_BR_UI_LABELS
|
|
58
|
+
} from "./chunk-VRKNVZZQ.js";
|
|
59
59
|
import {
|
|
60
60
|
EN_US_CAROUSEL_COPY,
|
|
61
61
|
EN_US_DATA_GRID_COPY,
|
|
@@ -64,7 +64,7 @@ import {
|
|
|
64
64
|
EN_US_LIGHTBOX_COPY,
|
|
65
65
|
EN_US_MAP_PREVIEW_COPY,
|
|
66
66
|
EN_US_TIMING_DIAGRAM_COPY
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-GLAAX5JJ.js";
|
|
68
68
|
import {
|
|
69
69
|
EN_US_SETTING_CARD_COPY,
|
|
70
70
|
EN_US_SETTING_SWITCH_COPY,
|
|
@@ -77,9 +77,6 @@ import {
|
|
|
77
77
|
EN_US_SAVED_VIEWS_LABELS,
|
|
78
78
|
EN_US_SECTION_ONBOARDING_COPY
|
|
79
79
|
} from "./chunk-PZS7N74L.js";
|
|
80
|
-
import {
|
|
81
|
-
EN_US_UI_LABELS
|
|
82
|
-
} from "./chunk-W5PRZHLU.js";
|
|
83
80
|
import {
|
|
84
81
|
EN_US_ADDRESS_AUTOCOMPLETE_COPY,
|
|
85
82
|
EN_US_AUTOCOMPLETE_COPY,
|
|
@@ -94,6 +91,9 @@ import {
|
|
|
94
91
|
EN_US_INSTALL_PROMPT_COPY,
|
|
95
92
|
EN_US_USER_AVATAR_COPY
|
|
96
93
|
} from "./chunk-DQ22UKMZ.js";
|
|
94
|
+
import {
|
|
95
|
+
EN_US_UI_LABELS
|
|
96
|
+
} from "./chunk-O2RXSXSF.js";
|
|
97
97
|
import "./chunk-PZ5AY32C.js";
|
|
98
98
|
|
|
99
99
|
// src/locales.ts
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "./chunk-5GJ5OG5R.js";
|
|
11
11
|
import {
|
|
12
12
|
EN_US_UI_LABELS
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-DUELD4HY.js";
|
|
14
14
|
import {
|
|
15
15
|
childTestId,
|
|
16
16
|
resolveTestId,
|
|
@@ -376,4 +376,4 @@ var styles2 = StyleSheet2.create({
|
|
|
376
376
|
export {
|
|
377
377
|
Button
|
|
378
378
|
};
|
|
379
|
-
//# sourceMappingURL=chunk-
|
|
379
|
+
//# sourceMappingURL=chunk-67CYDCHZ.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Button
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-67CYDCHZ.js";
|
|
4
4
|
import {
|
|
5
5
|
ELEVATION_SHADOWS
|
|
6
6
|
} from "./chunk-ZRQHLTYG.js";
|
|
@@ -15,6 +15,9 @@ import {
|
|
|
15
15
|
MUI_TYPE,
|
|
16
16
|
muiTypeStyle
|
|
17
17
|
} from "./chunk-2UFNPDYT.js";
|
|
18
|
+
import {
|
|
19
|
+
EN_US_UI_LABELS
|
|
20
|
+
} from "./chunk-DUELD4HY.js";
|
|
18
21
|
import {
|
|
19
22
|
resolveTestId,
|
|
20
23
|
withoutTestIdProps
|
|
@@ -225,8 +228,8 @@ var EmptyState = React.memo(function EmptyState2(props) {
|
|
|
225
228
|
description,
|
|
226
229
|
illustration,
|
|
227
230
|
helpLink,
|
|
228
|
-
refreshLabel =
|
|
229
|
-
createLabel =
|
|
231
|
+
refreshLabel = EN_US_UI_LABELS.emptyState.refresh,
|
|
232
|
+
createLabel = EN_US_UI_LABELS.emptyState.create,
|
|
230
233
|
primaryAction: _primary,
|
|
231
234
|
secondaryAction: _secondary,
|
|
232
235
|
onCreate: _onCreate,
|
|
@@ -292,4 +295,4 @@ var styles = StyleSheet.create({
|
|
|
292
295
|
export {
|
|
293
296
|
EmptyState
|
|
294
297
|
};
|
|
295
|
-
//# sourceMappingURL=chunk-
|
|
298
|
+
//# sourceMappingURL=chunk-7AVFQB6A.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/data-display/EmptyState/EmptyState.native.tsx","../../../src/components/data-display/EmptyState/EmptyState.helpers.ts","../../../src/components/data-display/EmptyState/EmptyState.metrics.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n Linking,\n Platform,\n StyleSheet,\n Text as RNText,\n useWindowDimensions,\n View,\n type TextStyle,\n type ViewStyle,\n} from 'react-native';\n\nimport { type ActionSpec, actionsOf, makeTestId } from './EmptyState.helpers';\nimport {\n ACTION_BUTTON,\n ACTION_MIN_WIDTH,\n ACTIONS_GAP_UNITS,\n ACTIONS_MARGIN_TOP_UNITS,\n ACTIONS_ROW_FROM,\n CONTENT_GAP_UNITS,\n DESCRIPTION_LINE_HEIGHT,\n DESCRIPTION_MAX_WIDTH,\n EMPTY_STATE_GAP_UNITS,\n EMPTY_STATE_MIN_HEIGHT,\n EMPTY_STATE_PADDING_UNITS,\n EXTERNAL_LINK_MARK,\n HELP_LINK_MARGIN_TOP_UNITS,\n illustrationMaxWidth,\n illustrationOpacity,\n MUI_CONTAINED_SHADOW,\n TITLE_MAX_WIDTH,\n} from './EmptyState.metrics';\nimport type { EmptyStateHelpLink, EmptyStateProps, EmptyStateVariant } from './EmptyState.types.native';\nimport { Icon } from '../../../icons/Icon.native';\nimport { webAria } from '../../../platform/aria';\nimport { resolveTestId, withoutTestIdProps } from '../../../platform/test-id';\nimport { useUiTheme } from '../../../provider/use-ui-theme.native';\nimport { alpha } from '../../../tokens/color';\nimport { MUI_FONT_WEIGHT_MEDIUM, MUI_TYPE, muiTypeStyle } from '../../../tokens/mui-type';\nimport type { UiTheme } from '../../../tokens/theme';\nimport { Button } from '../../form/Button/Button.native';\nimport { EN_US_UI_LABELS } from '../../../en-US.labels';\n\n/** MUI's `h6` as an `h3`, medium weight, in the body ink, wrapping at 400px. */\nexport function titleStyle(theme: UiTheme): TextStyle {\n return {\n ...muiTypeStyle(theme, 'h6'),\n fontWeight: `${MUI_FONT_WEIGHT_MEDIUM}`,\n color: theme.palette.text.primary,\n maxWidth: TITLE_MAX_WIDTH,\n textAlign: 'center',\n };\n}\n\n/** MUI's `body2` on a 1.6 line height, muted, wrapping at 480px. */\nexport function descriptionStyle(theme: UiTheme): TextStyle {\n return {\n ...muiTypeStyle(theme, 'body2'),\n lineHeight: MUI_TYPE.body2.fontSize * DESCRIPTION_LINE_HEIGHT,\n color: theme.palette.text.secondary,\n maxWidth: DESCRIPTION_MAX_WIDTH,\n textAlign: 'center',\n };\n}\n\n/** The web `Link` inherits the page's `body1`; primary ink, no underline until hovered. */\nexport function helpLinkStyle(theme: UiTheme): TextStyle {\n return {\n ...muiTypeStyle(theme, 'body1'),\n color: theme.palette.primary.main,\n textDecorationLine: 'none',\n marginTop: theme.spacing(HELP_LINK_MARGIN_TOP_UNITS),\n textAlign: 'center',\n };\n}\n\nexport function illustrationStyle(variant: EmptyStateVariant): ViewStyle {\n return {\n maxWidth: illustrationMaxWidth(variant),\n width: '100%',\n opacity: illustrationOpacity(variant),\n display: variant === 'minimal' ? 'none' : 'flex',\n };\n}\n\n/**\n * The web actions are MUI's medium contained/outlined buttons; the house\n * `Button` is sized to them here. The shadow needs the button's overflow\n * visible — a view clips its own shadow otherwise.\n */\nexport function actionStyle(theme: UiTheme, variant: ActionSpec['variant']): ViewStyle {\n const padding = ACTION_BUTTON[variant];\n return {\n minWidth: ACTION_MIN_WIDTH,\n borderRadius: theme.radius.md,\n paddingVertical: padding.paddingVertical,\n paddingHorizontal: padding.paddingHorizontal,\n ...(variant === 'contained'\n ? { boxShadow: MUI_CONTAINED_SHADOW, overflow: 'visible' }\n : { borderColor: alpha(theme.palette.primary.main, ACTION_BUTTON.outlinedBorderAlpha) }),\n };\n}\n\n/** MUI's `sm` breakpoint decides the action row's axis: a row from 600px up, a column below. */\nexport const actionsDirection = (windowWidth: number): 'row' | 'column' =>\n windowWidth >= ACTIONS_ROW_FROM ? 'row' : 'column';\n\n/** react-native-web's anchor props for a `Text`, which React Native's `TextProps` do not declare. */\nfunction anchorProps(href: string, external: boolean): object {\n if (Platform.OS !== 'web') return {};\n return { href, hrefAttrs: external ? { target: '_blank', rel: 'noopener noreferrer' } : undefined };\n}\n\nfunction ActionButton({ spec, testID }: { spec: ActionSpec; testID: string }): React.JSX.Element {\n const theme = useUiTheme();\n const contained = spec.variant === 'contained';\n const glyph = spec.icon ? (\n <Icon\n name={spec.icon}\n size={ACTION_BUTTON.iconSize}\n color={contained ? theme.palette.primary.contrastText : 'primary'}\n />\n ) : undefined;\n return (\n <Button\n variant={contained ? 'solid' : 'outline'}\n color=\"primary\"\n size=\"sm\"\n icon={glyph}\n onClick={spec.onClick}\n testID={testID}\n style={actionStyle(theme, spec.variant)}\n >\n {spec.label}\n </Button>\n );\n}\n\nfunction Actions({ specs, testId }: { specs: ActionSpec[]; testId: (suffix: string) => string }): React.JSX.Element {\n const theme = useUiTheme();\n const { width } = useWindowDimensions();\n return (\n <View\n style={[\n styles.actions,\n {\n flexDirection: actionsDirection(width),\n gap: theme.spacing(ACTIONS_GAP_UNITS),\n marginTop: theme.spacing(ACTIONS_MARGIN_TOP_UNITS),\n },\n ]}\n >\n {specs.map((spec) => (\n <ActionButton key={spec.key} spec={spec} testID={testId(spec.key)} />\n ))}\n </View>\n );\n}\n\nfunction HelpLink({ helpLink, testId }: { helpLink: EmptyStateHelpLink; testId: string }): React.JSX.Element {\n const theme = useUiTheme();\n const external = helpLink.external === true;\n // On the web the anchor navigates by itself; a device has no anchor and opens the URL.\n const open = Platform.OS === 'web' ? undefined : () => void Linking.openURL(helpLink.href);\n return (\n <RNText role=\"link\" testID={testId} style={helpLinkStyle(theme)} onPress={open} {...anchorProps(helpLink.href, external)}>\n {helpLink.label}\n {external ? EXTERNAL_LINK_MARK : null}\n </RNText>\n );\n}\n\ninterface ContentProps {\n title: string;\n description?: string;\n titleId: string;\n testId: (suffix: string) => string;\n actions: ActionSpec[];\n showActions: boolean;\n helpLink?: EmptyStateHelpLink;\n}\n\nfunction Content({ title, description, titleId, testId, actions, showActions, helpLink }: ContentProps): React.JSX.Element {\n const theme = useUiTheme();\n return (\n <View style={[styles.content, { gap: theme.spacing(CONTENT_GAP_UNITS) }]}>\n <RNText id={titleId} role=\"heading\" {...webAria({ 'aria-level': 3 })} testID={testId('title')} style={titleStyle(theme)}>\n {title}\n </RNText>\n\n {description ? (\n <RNText testID={testId('description')} style={descriptionStyle(theme)}>\n {description}\n </RNText>\n ) : null}\n\n {showActions ? <Actions specs={actions} testId={testId} /> : null}\n\n {helpLink ? <HelpLink helpLink={helpLink} testId={testId('help-link')} /> : null}\n </View>\n );\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = React.memo(function EmptyState(props) {\n const {\n variant = 'default',\n title,\n description,\n illustration,\n helpLink,\n refreshLabel = EN_US_UI_LABELS.emptyState.refresh,\n createLabel = EN_US_UI_LABELS.emptyState.create,\n primaryAction: _primary,\n secondaryAction: _secondary,\n onCreate: _onCreate,\n onRefresh: _onRefresh,\n style,\n ...others\n } = props;\n const theme = useUiTheme();\n const titleId = React.useId();\n const dataTestId = resolveTestId(others);\n const testId = makeTestId(dataTestId);\n const rest = withoutTestIdProps(others);\n\n const actions = actionsOf(props, refreshLabel, createLabel);\n // The `action` variant reserves the action row even when nothing fills it.\n const showActions = variant === 'action' || actions.length > 0;\n\n return (\n <View\n role=\"region\"\n aria-labelledby={titleId}\n testID={dataTestId || 'empty-state'}\n style={[\n styles.root,\n {\n padding: theme.spacing(EMPTY_STATE_PADDING_UNITS),\n minHeight: EMPTY_STATE_MIN_HEIGHT,\n gap: theme.spacing(EMPTY_STATE_GAP_UNITS),\n },\n style,\n ]}\n {...rest}\n >\n {illustration ? (\n <View testID={testId('icon')} style={illustrationStyle(variant)}>\n {illustration}\n </View>\n ) : null}\n\n <Content\n title={title}\n description={description}\n titleId={titleId}\n testId={testId}\n actions={actions}\n showActions={showActions}\n helpLink={helpLink}\n />\n </View>\n );\n});\n\nEmptyState.displayName = 'EmptyState';\n\nconst styles = StyleSheet.create({\n root: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n content: {\n alignItems: 'center',\n },\n actions: {\n alignItems: 'center',\n },\n});\n","import type { EmptyStateBaseProps } from './EmptyState.base';\n\nexport const makeTestId =\n (dataTestId?: string) =>\n (suffix: string): string =>\n dataTestId ? `${dataTestId}-${suffix}` : `empty-state-${suffix}`;\n\n/** The glyph an action carries, by the shared icon set's name; each renderer draws it its own way. */\nexport type ActionIconName = 'Add' | 'Refresh';\n\nexport interface ActionSpec {\n key: 'primary-action' | 'create-button' | 'secondary-action' | 'refresh-button';\n variant: 'contained' | 'outlined';\n onClick: () => void;\n label: string;\n icon?: ActionIconName;\n}\n\n// The four buttons are one button with different props. Listing them keeps their\n// order — primary, create, secondary, refresh — visible in one place, and both\n// renderers read this one list.\nexport const actionsOf = (\n props: EmptyStateBaseProps,\n refreshLabel: string,\n createLabel: string,\n): ActionSpec[] => {\n const { primaryAction, secondaryAction, onCreate, onRefresh } = props;\n const specs: ActionSpec[] = [];\n\n if (primaryAction) {\n specs.push({\n key: 'primary-action',\n variant: 'contained',\n onClick: primaryAction.onClick,\n label: primaryAction.label,\n });\n }\n if (onCreate) {\n specs.push({\n key: 'create-button',\n variant: 'contained',\n onClick: onCreate,\n label: createLabel,\n icon: 'Add',\n });\n }\n if (secondaryAction) {\n specs.push({\n key: 'secondary-action',\n variant: 'outlined',\n onClick: secondaryAction.onClick,\n label: secondaryAction.label,\n });\n }\n if (onRefresh) {\n specs.push({\n key: 'refresh-button',\n variant: 'outlined',\n onClick: onRefresh,\n label: refreshLabel,\n icon: 'Refresh',\n });\n }\n\n return specs;\n};\n","import type { EmptyStateVariant } from './EmptyState.base';\nimport { ELEVATION_SHADOWS } from '../../../tokens/ink.core';\n\n/**\n * THE NUMBERS BOTH `EmptyState` RENDERERS DRAW WITH.\n *\n * `EmptyState.tsx` (MUI) and `EmptyState.native.tsx` (React Native) read\n * this one table. Spacing is in SPACING UNITS where the web writes\n * `theme.spacing(n)`; everything else is px or a ratio.\n */\n\n/** The region: a centred column, `theme.spacing(6)` of padding, at least 200px tall, its parts 24px apart. */\nexport const EMPTY_STATE_PADDING_UNITS = 6;\nexport const EMPTY_STATE_MIN_HEIGHT = 200;\nexport const EMPTY_STATE_GAP_UNITS = 3;\n\n/** The illustration: wider when it is the point, faded a little always, hidden in `minimal`. */\nexport const ILLUSTRATION_MAX_WIDTH = { illustrated: 240, other: 120 } as const;\nexport const ILLUSTRATION_OPACITY = { minimal: 0.6, other: 0.8 } as const;\n\nexport const illustrationMaxWidth = (variant: EmptyStateVariant): number =>\n variant === 'illustrated' ? ILLUSTRATION_MAX_WIDTH.illustrated : ILLUSTRATION_MAX_WIDTH.other;\nexport const illustrationOpacity = (variant: EmptyStateVariant): number =>\n variant === 'minimal' ? ILLUSTRATION_OPACITY.minimal : ILLUSTRATION_OPACITY.other;\n\n/** Title, description, actions and link are 16px apart; the title wraps at 400px, the description at 480px on a 1.6 line height. */\nexport const CONTENT_GAP_UNITS = 2;\nexport const TITLE_MAX_WIDTH = 400;\nexport const DESCRIPTION_MAX_WIDTH = 480;\nexport const DESCRIPTION_LINE_HEIGHT = 1.6;\n\n/** The action row: 16px below the text, buttons 16px apart, stacked below MUI's `sm` breakpoint. */\nexport const ACTIONS_MARGIN_TOP_UNITS = 2;\nexport const ACTIONS_GAP_UNITS = 2;\nexport const ACTIONS_ROW_FROM = 600;\nexport const ACTION_MIN_WIDTH = 120;\n/**\n * The web actions ARE MUI's medium `contained` and `outlined` buttons: 6px\n * 16px, or 5px 15px inside a 1px border at half alpha, 14px type, the\n * theme's radius, a 20px start icon. The native side sizes the house\n * `Button` to these.\n */\nexport const ACTION_BUTTON = {\n contained: { paddingVertical: 6, paddingHorizontal: 16 },\n outlined: { paddingVertical: 5, paddingHorizontal: 15 },\n iconSize: 20,\n outlinedBorderAlpha: 0.5,\n} as const;\n/** MUI's `theme.shadows[2]`, the elevation a contained button rests at. */\nexport const MUI_CONTAINED_SHADOW = ELEVATION_SHADOWS[2];\n\n/** The help link: 8px below whatever precedes it, marked when it leaves the app. */\nexport const HELP_LINK_MARGIN_TOP_UNITS = 1;\nexport const EXTERNAL_LINK_MARK = ' ↗';\n"],"mappings":"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","names":["EmptyState"]}
|
|
@@ -53,10 +53,15 @@ var EN_US_UI_LABELS = {
|
|
|
53
53
|
gridView: "Grid View",
|
|
54
54
|
listView: "List View",
|
|
55
55
|
openFilters: "Open filters",
|
|
56
|
-
closeFilters: "Close filters"
|
|
56
|
+
closeFilters: "Close filters",
|
|
57
|
+
filters: "Filters",
|
|
58
|
+
all: "All",
|
|
59
|
+
search: "Search\u2026",
|
|
60
|
+
noResults: "No results"
|
|
57
61
|
},
|
|
58
62
|
dashboard: {
|
|
59
|
-
breadcrumb: "breadcrumb"
|
|
63
|
+
breadcrumb: "breadcrumb",
|
|
64
|
+
moreFilters: "More filters"
|
|
60
65
|
},
|
|
61
66
|
navigationMenu: {
|
|
62
67
|
collapse: "Collapse",
|
|
@@ -65,10 +70,76 @@ var EN_US_UI_LABELS = {
|
|
|
65
70
|
workflowStep: {
|
|
66
71
|
step: (position, title) => `Step ${position}: ${title}`,
|
|
67
72
|
progress: (position, total) => `Step ${position} of ${total}`
|
|
73
|
+
},
|
|
74
|
+
alertDialog: {
|
|
75
|
+
cancel: "Cancel",
|
|
76
|
+
confirm: "Confirm"
|
|
77
|
+
},
|
|
78
|
+
avatar: {
|
|
79
|
+
name: "Avatar"
|
|
80
|
+
},
|
|
81
|
+
emptyState: {
|
|
82
|
+
refresh: "Refresh",
|
|
83
|
+
create: "Create New"
|
|
84
|
+
},
|
|
85
|
+
errorState: {
|
|
86
|
+
retry: "Retry"
|
|
87
|
+
},
|
|
88
|
+
loadingState: {
|
|
89
|
+
skeleton: "Loading content",
|
|
90
|
+
spinner: "Loading"
|
|
91
|
+
},
|
|
92
|
+
stackedModal: {
|
|
93
|
+
loading: "Loading..."
|
|
94
|
+
},
|
|
95
|
+
command: {
|
|
96
|
+
placeholder: "Type a command or search...",
|
|
97
|
+
empty: "No results found",
|
|
98
|
+
loading: "Loading..."
|
|
99
|
+
},
|
|
100
|
+
formErrorSnackbar: {
|
|
101
|
+
message: "Please fix the highlighted fields and try again."
|
|
102
|
+
},
|
|
103
|
+
columnsMenu: {
|
|
104
|
+
title: "Columns",
|
|
105
|
+
toggle: "Toggle columns"
|
|
106
|
+
},
|
|
107
|
+
drawer: {
|
|
108
|
+
close: "Close drawer"
|
|
109
|
+
},
|
|
110
|
+
settingsLayout: {
|
|
111
|
+
navigation: "Settings",
|
|
112
|
+
searchPlaceholder: "Search settings",
|
|
113
|
+
emptySearch: "No settings match your search.",
|
|
114
|
+
back: "Back"
|
|
115
|
+
},
|
|
116
|
+
tableFilter: {
|
|
117
|
+
filters: "Filters",
|
|
118
|
+
keywordPlaceholder: "Press Enter to filter",
|
|
119
|
+
keywordLabel: "Filter by keyword"
|
|
120
|
+
},
|
|
121
|
+
appHeader: {
|
|
122
|
+
disclose: (title) => `${title} details`
|
|
123
|
+
},
|
|
124
|
+
breadcrumbs: {
|
|
125
|
+
navigation: "breadcrumb navigation"
|
|
126
|
+
},
|
|
127
|
+
animatedIcon: {
|
|
128
|
+
name: (variant) => `Animated ${variant} icon`
|
|
129
|
+
},
|
|
130
|
+
infiniteScroll: {
|
|
131
|
+
loadFailed: "An error occurred while loading more items"
|
|
132
|
+
},
|
|
133
|
+
socialLogin: {
|
|
134
|
+
title: "Sign in to continue",
|
|
135
|
+
divider: "or"
|
|
136
|
+
},
|
|
137
|
+
dateRangePicker: {
|
|
138
|
+
calendar: "Calendar"
|
|
68
139
|
}
|
|
69
140
|
};
|
|
70
141
|
|
|
71
142
|
export {
|
|
72
143
|
EN_US_UI_LABELS
|
|
73
144
|
};
|
|
74
|
-
//# sourceMappingURL=chunk-
|
|
145
|
+
//# sourceMappingURL=chunk-DUELD4HY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/en-US.labels.ts"],"sourcesContent":["/**\n * The en-US labels pack — and, unlike the other en-US packs, the components'\n * own fallback: each `labels` prop is optional, and this is what a host that\n * passes nothing has always rendered, kept word for word (including the\n * lower-case `close`/`loading` names tests already query by).\n */\nimport type { UiLabels } from './copy/labels';\n\nexport const EN_US_UI_LABELS: UiLabels = {\n common: {\n loading: \"loading\",\n close: \"close\",\n delete: \"delete\",\n },\n stepper: {\n step: (position, label) => `Step ${position}: ${label}`,\n optional: \"optional\",\n completed: \"completed\",\n current: \"current\",\n },\n timeline: {\n expandDetails: \"Expand item details\",\n collapseDetails: \"Collapse item details\",\n item: (title) => `Timeline item: ${title}`,\n },\n lazyImage: {\n loadingAlt: (alt) => `${alt} (loading)`,\n fallbackAlt: (alt) => `${alt} (fallback)`,\n },\n sonner: {\n hiddenCount: (count) => `+${count} more`,\n },\n richTextEditor: {\n placeholder: \"Start typing...\",\n ariaLabel: \"Rich text editor\",\n listItem: \"List item\",\n bold: \"Bold\",\n italic: \"Italic\",\n underline: \"Underline\",\n strikethrough: \"Strikethrough\",\n numberedList: \"Numbered List\",\n bulletedList: \"Bulleted List\",\n insertLink: \"Insert Link\",\n insertImage: \"Insert Image\",\n codeBlock: \"Code Block\",\n quote: \"Quote\",\n linkPrompt: \"Enter URL:\",\n imagePrompt: \"Enter image URL:\",\n },\n table: {\n sortBy: (header) => `Sort by ${header}`,\n selectRow: (rowNumber) => `select row ${rowNumber}`,\n selectAllRows: \"select all\",\n },\n code: {\n copy: \"Copy code\",\n copied: \"Copied!\",\n },\n contentToolbar: {\n gridView: \"Grid View\",\n listView: \"List View\",\n openFilters: \"Open filters\",\n closeFilters: \"Close filters\",\n filters: \"Filters\",\n all: \"All\",\n search: \"Search…\",\n noResults: \"No results\",\n },\n dashboard: {\n breadcrumb: \"breadcrumb\",\n moreFilters: \"More filters\",\n },\n navigationMenu: {\n collapse: \"Collapse\",\n expand: \"Expand\",\n },\n workflowStep: {\n step: (position, title) => `Step ${position}: ${title}`,\n progress: (position, total) => `Step ${position} of ${total}`,\n },\n alertDialog: {\n cancel: \"Cancel\",\n confirm: \"Confirm\",\n },\n avatar: {\n name: \"Avatar\",\n },\n emptyState: {\n refresh: \"Refresh\",\n create: \"Create New\",\n },\n errorState: {\n retry: \"Retry\",\n },\n loadingState: {\n skeleton: \"Loading content\",\n spinner: \"Loading\",\n },\n stackedModal: {\n loading: \"Loading...\",\n },\n command: {\n placeholder: \"Type a command or search...\",\n empty: \"No results found\",\n loading: \"Loading...\",\n },\n formErrorSnackbar: {\n message: \"Please fix the highlighted fields and try again.\",\n },\n columnsMenu: {\n title: \"Columns\",\n toggle: \"Toggle columns\",\n },\n drawer: {\n close: \"Close drawer\",\n },\n settingsLayout: {\n navigation: \"Settings\",\n searchPlaceholder: \"Search settings\",\n emptySearch: \"No settings match your search.\",\n back: \"Back\",\n },\n tableFilter: {\n filters: \"Filters\",\n keywordPlaceholder: \"Press Enter to filter\",\n keywordLabel: \"Filter by keyword\",\n },\n appHeader: {\n disclose: (title) => `${title} details`,\n },\n breadcrumbs: {\n navigation: \"breadcrumb navigation\",\n },\n animatedIcon: {\n name: (variant) => `Animated ${variant} icon`,\n },\n infiniteScroll: {\n loadFailed: \"An error occurred while loading more items\",\n },\n socialLogin: {\n title: \"Sign in to continue\",\n divider: \"or\",\n },\n dateRangePicker: {\n calendar: \"Calendar\",\n },\n};\n"],"mappings":"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","names":[]}
|
|
@@ -11,6 +11,9 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
Icon
|
|
13
13
|
} from "../chunks/chunk-RHD3625Y.js";
|
|
14
|
+
import {
|
|
15
|
+
EN_US_UI_LABELS
|
|
16
|
+
} from "../chunks/chunk-DUELD4HY.js";
|
|
14
17
|
import "../chunks/chunk-5WLOVHKK.js";
|
|
15
18
|
import "../chunks/chunk-AR5O4BEY.js";
|
|
16
19
|
import {
|
|
@@ -382,7 +385,7 @@ function useAvatarModel(raw) {
|
|
|
382
385
|
showSpinner: loading || imageLoading,
|
|
383
386
|
imgSrc: imageError ? void 0 : src,
|
|
384
387
|
alt,
|
|
385
|
-
ariaLabel: alt ||
|
|
388
|
+
ariaLabel: alt || EN_US_UI_LABELS.avatar.name,
|
|
386
389
|
content: contentNode({
|
|
387
390
|
pick,
|
|
388
391
|
children,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/data-display/Avatar/Avatar.native.tsx","../../../src/components/data-display/Avatar/Avatar.helpers.ts","../../../src/components/data-display/Avatar/Avatar.metrics.ts","../../../src/components/data-display/Avatar/Avatar.look.native.ts","../../../src/components/data-display/Avatar/Avatar.parts.native.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\n\nimport type { AvatarSize, AvatarVariant } from './Avatar.base';\nimport {\n AVATAR_DEFAULTS,\n avatarTestId,\n contentTypeOf,\n pickAvatarContent,\n} from './Avatar.helpers';\nimport { avatarStatusDotStyle } from './Avatar.look.native';\nimport { GROUP_MAX, GROUP_OVERLAP, avatarAccent, statusColor } from './Avatar.metrics';\nimport {\n AvatarSurface,\n PulseRing,\n contentNode,\n useFadeIn,\n useImageState,\n type SurfaceArgs,\n} from './Avatar.parts.native';\nimport type { AvatarGroupProps, AvatarProps } from './Avatar.types.native';\nimport { useUiTheme } from '../../../provider/use-ui-theme.native';\nimport type { ColorValue } from '../../../tokens/vocabulary';\n\ninterface AvatarModel {\n args: SurfaceArgs;\n variant: AvatarVariant;\n size: AvatarSize;\n color: ColorValue;\n pulse: boolean;\n status?: AvatarProps['status'];\n opacity: Animated.Value;\n badgeTestID?: string;\n}\n\n/** Normalises the props and derives everything the surface needs, as the web's model does. */\nfunction useAvatarModel(raw: AvatarProps): AvatarModel {\n const {\n variant,\n size,\n glow,\n pulse,\n status,\n fallback,\n icon,\n bordered,\n color,\n src,\n alt,\n children,\n loading,\n onError,\n onClick,\n onPress,\n interactive,\n showFallbackOnError,\n animationDelay,\n dataTestId,\n testID,\n style,\n ...rest\n } = { ...AVATAR_DEFAULTS, ...raw };\n const theme = useUiTheme();\n const opacity = useFadeIn(animationDelay);\n const { imageError, imageLoading, handleError, handleLoad } = useImageState(src, onError);\n const pick = pickAvatarContent({\n hasChildren: Boolean(children),\n hasFallback: Boolean(fallback),\n hasIcon: Boolean(icon),\n imageError,\n showFallbackOnError,\n });\n const avatarId = testID ?? dataTestId;\n const idFor = avatarTestId(avatarId);\n\n return {\n variant,\n size,\n color,\n pulse,\n status,\n opacity,\n badgeTestID: idFor('badge'),\n args: {\n variant,\n size,\n color,\n glow,\n bordered,\n clickable: interactive || Boolean(onClick ?? onPress),\n imageError,\n showSpinner: loading || imageLoading,\n imgSrc: imageError ? undefined : src,\n alt,\n ariaLabel: alt || 'Avatar',\n content: contentNode({\n pick,\n children,\n fallback,\n icon,\n ink: avatarAccent(theme, color).contrastText,\n }),\n contentType: contentTypeOf(pick),\n testID: avatarId,\n idFor,\n style,\n onPress: (event) => {\n onClick?.();\n onPress?.(event);\n },\n onImageError: handleError,\n onImageLoad: handleLoad,\n rest,\n },\n };\n}\n\n/**\n * The native `Avatar`: MUI's box on a `Pressable`, the portrait as an `Image`,\n * and the status dot as a bordered circle in the corner.\n */\nexport const Avatar = React.forwardRef<View, AvatarProps>((raw, ref) => {\n const theme = useUiTheme();\n const { args, variant, size, color, pulse, status, opacity, badgeTestID } = useAvatarModel(raw);\n\n const surface = (\n <Animated.View style={[styles.relative, { opacity }]}>\n {pulse ? (\n <PulseRing size={size} variant={variant} color={avatarAccent(theme, color).main} />\n ) : null}\n <AvatarSurface {...args} forwardedRef={ref} />\n </Animated.View>\n );\n\n if (variant !== 'status' || !status) return surface;\n\n return (\n <View testID={badgeTestID} style={styles.relative}>\n {surface}\n <View style={avatarStatusDotStyle(theme, size, statusColor(theme, status))} />\n </View>\n );\n});\n\nAvatar.displayName = 'Avatar';\n\n/**\n * The native `AvatarGroup`: the same overlap, and the same `+n` avatar past\n * `max`. The web additionally lifts an avatar on hover, which touch has none of.\n */\nexport const AvatarGroup: React.FC<AvatarGroupProps> = ({\n children,\n max = GROUP_MAX,\n overlap = GROUP_OVERLAP,\n dataTestId,\n testID,\n style,\n}) => {\n const all = React.Children.toArray(children);\n const visible = max ? all.slice(0, max) : all;\n const remaining = all.length - visible.length;\n const groupId = testID ?? dataTestId;\n\n return (\n <View testID={groupId} style={[styles.group, style]}>\n {visible.map((child, index) => (\n <View key={`avatar-${index}`} style={index === 0 ? null : { marginLeft: -overlap }}>\n {child}\n </View>\n ))}\n {remaining > 0 ? (\n <View style={{ marginLeft: -overlap }}>\n <Avatar\n color=\"neutral\"\n fallback={`+${remaining}`}\n bordered\n dataTestId={groupId ? `${groupId}-overflow` : undefined}\n />\n </View>\n ) : null}\n </View>\n );\n};\n\nAvatarGroup.displayName = 'AvatarGroup';\n\nconst styles = StyleSheet.create({\n relative: { position: 'relative', alignSelf: 'flex-start' },\n group: { flexDirection: 'row', alignItems: 'center', alignSelf: 'flex-start' },\n});\n","import type { AvatarBaseProps, ContentType } from './Avatar.base';\n\n/** Applied via a single spread so no per-field default inflates cyclomatic complexity. */\nexport const AVATAR_DEFAULTS = {\n variant: 'circle',\n size: 'md',\n glow: false,\n pulse: false,\n bordered: false,\n color: 'primary',\n loading: false,\n interactive: false,\n showFallbackOnError: true,\n animationDelay: 0,\n} satisfies Partial<AvatarBaseProps>;\n\n/** What wins the middle of the avatar. `broken` is the icon slot's error glyph. */\nexport type AvatarContentPick = ContentType | 'broken';\n\nexport interface AvatarContentArgs {\n hasChildren: boolean;\n hasFallback: boolean;\n hasIcon: boolean;\n imageError: boolean;\n showFallbackOnError: boolean;\n}\n\n/**\n * Pick what renders inside the avatar. On an image error (with fallback\n * enabled) the fallback/icon/broken-image wins; otherwise children → fallback →\n * icon → the default person glyph.\n *\n * The DECISION is shared; each renderer builds its own node from it, because\n * the two draw a glyph with different things.\n */\nexport function pickAvatarContent(a: AvatarContentArgs): AvatarContentPick {\n if (a.imageError && a.showFallbackOnError) {\n if (a.hasFallback) return 'fallback';\n return a.hasIcon ? 'icon' : 'broken';\n }\n if (a.hasChildren) return 'children';\n if (a.hasFallback) return 'fallback';\n return a.hasIcon ? 'icon' : 'default';\n}\n\n/** The slot id a pick takes; the broken-image glyph shares the icon slot's. */\nexport const contentTypeOf = (pick: AvatarContentPick): ContentType =>\n pick === 'broken' ? 'icon' : pick;\n\n/** `${dataTestId}-loading`, or nothing at all when the caller named nothing. */\nexport const avatarTestId =\n (dataTestId?: string) =>\n (suffix: string): string | undefined =>\n dataTestId ? `${dataTestId}-${suffix}` : undefined;\n","import type { AvatarSize, AvatarStatus } from './Avatar.base';\nimport { ABSOLUTE_INK, NEUTRAL_RAMP } from '../../../tokens/ink.core';\nimport type { UiTheme } from '../../../tokens/theme';\nimport type { ColorValue } from '../../../tokens/vocabulary';\n\n/**\n * THE NUMBERS BOTH `Avatar` RENDERERS DRAW WITH.\n *\n * `Avatar.view.tsx` (web, emotion over MUI's `Avatar` and `Badge`) and\n * `Avatar.native.tsx` (React Native) read this one table: the six boxes and\n * their type, the status dot, the glow, the shimmer and the spinner. The web\n * turns the px into rem; native uses the numbers.\n */\nexport interface AvatarSizeMetrics {\n /** The square the portrait fills, in px. */\n box: number;\n /** The initials' type size, in px. */\n fontSize: number;\n}\n\nexport const AVATAR_SIZES: Record<AvatarSize, AvatarSizeMetrics> = {\n xs: { box: 24, fontSize: 12 },\n sm: { box: 32, fontSize: 14 },\n md: { box: 40, fontSize: 16 },\n lg: { box: 48, fontSize: 18 },\n xl: { box: 64, fontSize: 24 },\n xxl: { box: 80, fontSize: 32 },\n};\n\n/** `rounded` takes one spacing unit; `circle` and `status` are round. */\nexport const ROUNDED_RADIUS_UNITS = 1;\n\n/** The paper ring an avatar takes inside a group, and the hairline outside it. */\nexport const BORDER_WIDTH = 2;\nexport const BORDER_HALO_ALPHA = 0.2;\n\n/** `glow`: a 20px halo at five pixels of spread, and a brightness lift. */\nexport const GLOW = { blur: 20, spread: 5, alpha: 0.4, brightness: 1.05 } as const;\n\n/** `pulse`: the `::after` ring, from nothing to 10px while it fades out. */\nexport const PULSE = { durationMs: 2000, alpha: 0.3, spread: 10 } as const;\n\n/** The shimmer that runs across a loading avatar. */\nexport const SHIMMER = { durationMs: 1500, fromAlpha: 0.6, toAlpha: 0.8 } as const;\n\n/** The overlay over a loading avatar, and the ring spinning in it. */\nexport const LOADING_OVERLAY = { paperAlpha: 0.7, blur: 2 } as const;\nexport const SPINNER = {\n /** A share of the avatar's box. */\n scale: 0.4,\n ringWidth: 2,\n trackAlpha: 0.3,\n durationMs: 800,\n} as const;\n\n/**\n * The status dot: a fifth of the box, never below 8px, inside a paper ring.\n * `anchor` is MUI's `overlap=\"circular\"` inset — the dot's CENTRE sits 14% of\n * the box in from the bottom-right corner.\n */\nexport const STATUS_DOT = { scale: 0.2, min: 8, borderWidth: 2, anchor: 0.14 } as const;\n\n/**\n * The default and broken-image glyphs are ordinary `SvgIcon`s here, not MUI's\n * own `.MuiAvatar-fallback` (which is 75% of the box): this component passes\n * them as CHILDREN, so they render at the icon default whatever the box is.\n */\nexport const GLYPH_SIZE = 24;\n\n/** MUI's `Fade` timeout on mount, and the scale-in behind it. */\nexport const FADE_MS = 300;\nexport const SCALE_IN_MS = 300;\n\n/** `transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1)`. */\nexport const AVATAR_TRANSITION_MS = 300;\nexport const AVATAR_TRANSITION_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';\n\n/** The interactive lift, which is a `:hover` on the web. */\nexport const HOVER = { scale: 1.1, lift: 2, shadowY: 8, shadowBlur: 20, shadowAlpha: 0.3, brightness: 1.1 } as const;\nexport const ACTIVE_SCALE = 1.05;\n\n/** The focus ring `:focus-visible` draws. */\nexport const FOCUS_RING = { width: 3, offset: 2, alpha: 0.5 } as const;\n\n/** An avatar group's default overlap, in px, and its hover lift. */\nexport const GROUP_OVERLAP = 8;\nexport const GROUP_MAX = 4;\nexport const GROUP_HOVER = { scale: 1.1, lift: 4 } as const;\n\n/** The dot's colour per status. `offline` is the ramp, the rest are semantic. */\nexport function statusColor(theme: UiTheme, status: AvatarStatus): string {\n if (status === 'online') return theme.palette.success.main;\n if (status === 'away') return theme.palette.warning.main;\n if (status === 'busy') return theme.palette.danger.main;\n return NEUTRAL_RAMP[500];\n}\n\nexport interface AvatarAccent {\n main: string;\n contrastText: string;\n}\n\n/**\n * The accent behind the initials. `danger`, NOT `error` — the web map was keyed\n * on MUI's word while the prop took the house one, so `danger` matched nothing\n * and fell through to primary: a red avatar rendering blue, silently.\n */\nexport function avatarAccent(theme: UiTheme, color: ColorValue): AvatarAccent {\n if (color === 'neutral') return { main: NEUTRAL_RAMP[700], contrastText: ABSOLUTE_INK.white };\n const accent = theme.palette[color];\n return { main: accent.main, contrastText: accent.contrastText || ABSOLUTE_INK.white };\n}\n","import type { TextStyle, ViewStyle } from 'react-native';\n\nimport type { AvatarSize, AvatarVariant } from './Avatar.base';\nimport {\n AVATAR_SIZES,\n BORDER_HALO_ALPHA,\n BORDER_WIDTH,\n GLOW,\n LOADING_OVERLAY,\n ROUNDED_RADIUS_UNITS,\n SPINNER,\n STATUS_DOT,\n avatarAccent,\n} from './Avatar.metrics';\nimport { alpha } from '../../../tokens/color';\nimport type { UiTheme } from '../../../tokens/theme';\nimport type { ColorValue } from '../../../tokens/vocabulary';\n\n/** `square` is sharp, `rounded` takes a spacing unit, `circle` and `status` are round. */\nexport function avatarRadius(theme: UiTheme, variant: AvatarVariant, box: number): number {\n if (variant === 'square') return 0;\n if (variant === 'rounded') return theme.spacing(ROUNDED_RADIUS_UNITS);\n return box / 2;\n}\n\nexport interface AvatarSurfaceArgs {\n variant: AvatarVariant;\n size: AvatarSize;\n color: ColorValue;\n glow: boolean;\n bordered: boolean;\n interactive: boolean;\n hasError: boolean;\n}\n\n/** The avatar box: MUI's square, its radius, the accent behind the initials. */\nexport function avatarSurfaceStyle(theme: UiTheme, a: AvatarSurfaceArgs): ViewStyle {\n const { box } = AVATAR_SIZES[a.size];\n const accent = avatarAccent(theme, a.color);\n return {\n width: box,\n height: box,\n borderRadius: avatarRadius(theme, a.variant, box),\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n backgroundColor: a.hasError ? theme.palette.danger.main : accent.main,\n cursor: a.interactive ? 'pointer' : 'auto',\n ...(a.bordered\n ? {\n borderWidth: BORDER_WIDTH,\n borderColor: theme.palette.background.paper,\n boxShadow: `0 0 0 1px ${alpha(theme.palette.divider, BORDER_HALO_ALPHA)}`,\n }\n : {}),\n ...(a.glow\n ? { boxShadow: `0 0 ${GLOW.blur}px ${GLOW.spread}px ${alpha(accent.main, GLOW.alpha)}` }\n : {}),\n };\n}\n\n/** The initials, in the accent's contrast ink at the size's own step. */\nexport function avatarTextStyle(\n theme: UiTheme,\n size: AvatarSize,\n color: ColorValue,\n hasError: boolean,\n): TextStyle {\n const accent = avatarAccent(theme, color);\n return {\n fontFamily: theme.typography.fontFamily,\n fontSize: AVATAR_SIZES[size].fontSize,\n textAlign: 'center',\n color: hasError ? theme.palette.danger.contrastText : accent.contrastText,\n };\n}\n\n/** The wash over a loading avatar, and the ring spinning in it. */\nexport function avatarLoadingStyle(theme: UiTheme, size: AvatarSize, radius: number): ViewStyle {\n const { box } = AVATAR_SIZES[size];\n return {\n position: 'absolute',\n top: 0,\n left: 0,\n width: box,\n height: box,\n borderRadius: radius,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: alpha(theme.palette.background.paper, LOADING_OVERLAY.paperAlpha),\n };\n}\n\nexport function avatarSpinnerStyle(theme: UiTheme, size: AvatarSize): ViewStyle {\n const ring = AVATAR_SIZES[size].box * SPINNER.scale;\n return {\n width: ring,\n height: ring,\n borderRadius: ring / 2,\n borderWidth: SPINNER.ringWidth,\n borderColor: alpha(theme.palette.primary.main, SPINNER.trackAlpha),\n borderTopColor: theme.palette.primary.main,\n };\n}\n\n/** MUI's `Badge` dot, anchored bottom-right of a circular avatar. */\nexport function avatarStatusDotStyle(theme: UiTheme, size: AvatarSize, color: string): ViewStyle {\n const { box } = AVATAR_SIZES[size];\n const dot = Math.max(STATUS_DOT.min, box * STATUS_DOT.scale);\n // MUI's `overlap=\"circular\"` puts the dot's centre 14% in from the corner.\n const inset = box * STATUS_DOT.anchor - dot / 2;\n return {\n position: 'absolute',\n right: inset,\n bottom: inset,\n width: dot,\n height: dot,\n borderRadius: dot / 2,\n backgroundColor: color,\n borderWidth: STATUS_DOT.borderWidth,\n borderColor: theme.palette.background.paper,\n };\n}\n","/**\n * THE PIECES THE NATIVE `Avatar` IS ASSEMBLED FROM.\n *\n * Split out of `Avatar.native.tsx` so the component itself reads as structure:\n * the mount fade, the portrait's load state, the content node, the pulse ring,\n * the spinner and the surface they all sit on.\n */\nimport * as React from 'react';\nimport {\n Animated,\n Easing,\n Image,\n Platform,\n Pressable,\n StyleSheet,\n View,\n type GestureResponderEvent,\n type StyleProp,\n type ViewStyle,\n} from 'react-native';\n\nimport type { AvatarSize, AvatarVariant, ContentType } from './Avatar.base';\nimport type { AvatarContentPick } from './Avatar.helpers';\nimport {\n avatarLoadingStyle,\n avatarRadius,\n avatarSpinnerStyle,\n avatarSurfaceStyle,\n avatarTextStyle,\n} from './Avatar.look.native';\nimport { AVATAR_SIZES, FADE_MS, GLYPH_SIZE, PULSE, SPINNER } from './Avatar.metrics';\nimport { Icon } from '../../../icons/Icon.native';\nimport { useLoopedProgress } from '../../../platform/animation';\nimport { renderTextChildren } from '../../../platform/text-children';\nimport { useUiTheme } from '../../../provider/use-ui-theme.native';\nimport type { UiTheme } from '../../../tokens/theme';\nimport type { ColorValue } from '../../../tokens/vocabulary';\n\nconst nativeDriver = Platform.OS !== 'web';\n\n/** MUI's `Fade`: in over 300ms, once `animationDelay` has run. */\nexport function useFadeIn(animationDelay: number): Animated.Value {\n const opacity = React.useRef(new Animated.Value(0)).current;\n React.useEffect(() => {\n const animation = Animated.sequence([\n Animated.delay(animationDelay),\n Animated.timing(opacity, {\n toValue: 1,\n duration: FADE_MS,\n easing: Easing.out(Easing.ease),\n useNativeDriver: nativeDriver,\n }),\n ]);\n animation.start();\n return () => animation.stop();\n }, [animationDelay, opacity]);\n return opacity;\n}\n\ninterface ImageState {\n imageError: boolean;\n imageLoading: boolean;\n handleError: () => void;\n handleLoad: () => void;\n}\n\n/** The portrait's load lifecycle: loading from the moment there is a `src`. */\nexport function useImageState(src: string | undefined, onError?: () => void): ImageState {\n const [imageError, setImageError] = React.useState(false);\n const [imageLoading, setImageLoading] = React.useState(Boolean(src));\n\n React.useEffect(() => {\n setImageError(false);\n setImageLoading(Boolean(src));\n }, [src]);\n\n const handleError = React.useCallback(() => {\n setImageError(true);\n setImageLoading(false);\n onError?.();\n }, [onError]);\n\n return {\n imageError,\n imageLoading,\n handleError,\n handleLoad: React.useCallback(() => setImageLoading(false), []),\n };\n}\n\ninterface ContentArgs {\n pick: AvatarContentPick;\n children?: React.ReactNode;\n fallback?: string;\n icon?: React.ReactNode;\n ink: string;\n}\n\n/** The node behind the winning content slot; the pick itself is shared. */\nexport function contentNode({ pick, children, fallback, icon, ink }: ContentArgs): React.ReactNode {\n if (pick === 'children') return children;\n if (pick === 'fallback') return fallback;\n if (pick === 'icon') return icon;\n return <Icon name={pick === 'broken' ? 'BrokenImage' : 'Person'} size={GLYPH_SIZE} color={ink} />;\n}\n\n/**\n * MUI's `::after` pulse ring: the accent growing 10px past the box while it\n * fades out, every two seconds. React Native has no pseudo-element, so it is a\n * sibling behind the avatar.\n */\nexport function PulseRing({ size, variant, color }: { size: AvatarSize; variant: AvatarVariant; color: string }): React.JSX.Element {\n const theme = useUiTheme();\n const progress = useLoopedProgress(true, { durationMs: PULSE.durationMs });\n const box = AVATAR_SIZES[size].box;\n return (\n <Animated.View\n aria-hidden\n style={[\n StyleSheet.absoluteFill,\n {\n pointerEvents: 'none',\n borderRadius: avatarRadius(theme, variant, box),\n backgroundColor: color,\n opacity: progress.interpolate({ inputRange: [0, 0.7, 1], outputRange: [PULSE.alpha, 0, 0] }),\n transform: [\n {\n scale: progress.interpolate({\n inputRange: [0, 0.7, 1],\n outputRange: [1, (box + PULSE.spread * 2) / box, 1],\n }),\n },\n ],\n },\n ]}\n />\n );\n}\n\n/** MUI's `rotateAnimation`: the ring turning once every 0.8s. */\nfunction Spinner({ size, testID }: { size: AvatarSize; testID?: string }): React.JSX.Element {\n const theme = useUiTheme();\n const progress = useLoopedProgress(true, { durationMs: SPINNER.durationMs });\n return (\n <Animated.View\n testID={testID}\n style={[\n avatarSpinnerStyle(theme, size),\n {\n transform: [\n { rotate: progress.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] }) },\n ],\n },\n ]}\n />\n );\n}\n\nexport interface SurfaceArgs {\n variant: AvatarVariant;\n size: AvatarSize;\n color: ColorValue;\n glow: boolean;\n bordered: boolean;\n clickable: boolean;\n imageError: boolean;\n showSpinner: boolean;\n imgSrc?: string;\n alt?: string;\n ariaLabel: string;\n content: React.ReactNode;\n contentType: ContentType;\n testID?: string;\n idFor: (suffix: string) => string | undefined;\n style?: StyleProp<ViewStyle>;\n onPress?: (event: GestureResponderEvent) => void;\n onImageError: () => void;\n onImageLoad: () => void;\n rest: object;\n}\n\n/** What sits in the middle: the portrait, or the winning content slot. */\nfunction SurfaceInner(a: SurfaceArgs, theme: UiTheme): React.JSX.Element | null {\n if (a.imgSrc && !a.imageError) {\n return (\n <Image\n source={{ uri: a.imgSrc }}\n aria-label={a.alt}\n onError={a.onImageError}\n onLoad={a.onImageLoad}\n style={StyleSheet.absoluteFill}\n accessibilityIgnoresInvertColors\n />\n );\n }\n if (a.showSpinner) return null;\n return (\n <View testID={a.idFor(a.contentType)}>\n {renderTextChildren(a.content, avatarTextStyle(theme, a.size, a.color, a.imageError), 1)}\n </View>\n );\n}\n\n/** The avatar box itself, plus the overlay that covers it while it loads. */\nexport function AvatarSurface(a: SurfaceArgs & { forwardedRef?: React.Ref<View> }): React.JSX.Element {\n const theme = useUiTheme();\n const box = AVATAR_SIZES[a.size].box;\n return (\n <>\n <Pressable\n ref={a.forwardedRef}\n testID={a.testID}\n role={a.clickable ? 'button' : undefined}\n aria-label={a.ariaLabel}\n tabIndex={a.clickable ? 0 : -1}\n onPress={a.clickable ? a.onPress : undefined}\n style={[\n avatarSurfaceStyle(theme, {\n variant: a.variant,\n size: a.size,\n color: a.color,\n glow: a.glow,\n bordered: a.bordered,\n interactive: a.clickable,\n hasError: a.imageError,\n }),\n a.style,\n ]}\n {...a.rest}\n >\n {SurfaceInner(a, theme)}\n </Pressable>\n {a.showSpinner ? (\n <View\n testID={a.idFor('loading')}\n style={avatarLoadingStyle(theme, a.size, avatarRadius(theme, a.variant, box))}\n >\n <Spinner size={a.size} testID={a.idFor('loading-spinner')} />\n </View>\n ) : null}\n </>\n );\n}\n"],"mappings":"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","names":["React","Animated","StyleSheet","View","jsx","jsxs","Animated","View","StyleSheet"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/data-display/Avatar/Avatar.native.tsx","../../../src/components/data-display/Avatar/Avatar.helpers.ts","../../../src/components/data-display/Avatar/Avatar.metrics.ts","../../../src/components/data-display/Avatar/Avatar.look.native.ts","../../../src/components/data-display/Avatar/Avatar.parts.native.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\n\nimport type { AvatarSize, AvatarVariant } from './Avatar.base';\nimport {\n AVATAR_DEFAULTS,\n avatarTestId,\n contentTypeOf,\n pickAvatarContent,\n} from './Avatar.helpers';\nimport { avatarStatusDotStyle } from './Avatar.look.native';\nimport { GROUP_MAX, GROUP_OVERLAP, avatarAccent, statusColor } from './Avatar.metrics';\nimport {\n AvatarSurface,\n PulseRing,\n contentNode,\n useFadeIn,\n useImageState,\n type SurfaceArgs,\n} from './Avatar.parts.native';\nimport type { AvatarGroupProps, AvatarProps } from './Avatar.types.native';\nimport { useUiTheme } from '../../../provider/use-ui-theme.native';\nimport type { ColorValue } from '../../../tokens/vocabulary';\nimport { EN_US_UI_LABELS } from '../../../en-US.labels';\n\ninterface AvatarModel {\n args: SurfaceArgs;\n variant: AvatarVariant;\n size: AvatarSize;\n color: ColorValue;\n pulse: boolean;\n status?: AvatarProps['status'];\n opacity: Animated.Value;\n badgeTestID?: string;\n}\n\n/** Normalises the props and derives everything the surface needs, as the web's model does. */\nfunction useAvatarModel(raw: AvatarProps): AvatarModel {\n const {\n variant,\n size,\n glow,\n pulse,\n status,\n fallback,\n icon,\n bordered,\n color,\n src,\n alt,\n children,\n loading,\n onError,\n onClick,\n onPress,\n interactive,\n showFallbackOnError,\n animationDelay,\n dataTestId,\n testID,\n style,\n ...rest\n } = { ...AVATAR_DEFAULTS, ...raw };\n const theme = useUiTheme();\n const opacity = useFadeIn(animationDelay);\n const { imageError, imageLoading, handleError, handleLoad } = useImageState(src, onError);\n const pick = pickAvatarContent({\n hasChildren: Boolean(children),\n hasFallback: Boolean(fallback),\n hasIcon: Boolean(icon),\n imageError,\n showFallbackOnError,\n });\n const avatarId = testID ?? dataTestId;\n const idFor = avatarTestId(avatarId);\n\n return {\n variant,\n size,\n color,\n pulse,\n status,\n opacity,\n badgeTestID: idFor('badge'),\n args: {\n variant,\n size,\n color,\n glow,\n bordered,\n clickable: interactive || Boolean(onClick ?? onPress),\n imageError,\n showSpinner: loading || imageLoading,\n imgSrc: imageError ? undefined : src,\n alt,\n ariaLabel: alt || EN_US_UI_LABELS.avatar.name,\n content: contentNode({\n pick,\n children,\n fallback,\n icon,\n ink: avatarAccent(theme, color).contrastText,\n }),\n contentType: contentTypeOf(pick),\n testID: avatarId,\n idFor,\n style,\n onPress: (event) => {\n onClick?.();\n onPress?.(event);\n },\n onImageError: handleError,\n onImageLoad: handleLoad,\n rest,\n },\n };\n}\n\n/**\n * The native `Avatar`: MUI's box on a `Pressable`, the portrait as an `Image`,\n * and the status dot as a bordered circle in the corner.\n */\nexport const Avatar = React.forwardRef<View, AvatarProps>((raw, ref) => {\n const theme = useUiTheme();\n const { args, variant, size, color, pulse, status, opacity, badgeTestID } = useAvatarModel(raw);\n\n const surface = (\n <Animated.View style={[styles.relative, { opacity }]}>\n {pulse ? (\n <PulseRing size={size} variant={variant} color={avatarAccent(theme, color).main} />\n ) : null}\n <AvatarSurface {...args} forwardedRef={ref} />\n </Animated.View>\n );\n\n if (variant !== 'status' || !status) return surface;\n\n return (\n <View testID={badgeTestID} style={styles.relative}>\n {surface}\n <View style={avatarStatusDotStyle(theme, size, statusColor(theme, status))} />\n </View>\n );\n});\n\nAvatar.displayName = 'Avatar';\n\n/**\n * The native `AvatarGroup`: the same overlap, and the same `+n` avatar past\n * `max`. The web additionally lifts an avatar on hover, which touch has none of.\n */\nexport const AvatarGroup: React.FC<AvatarGroupProps> = ({\n children,\n max = GROUP_MAX,\n overlap = GROUP_OVERLAP,\n dataTestId,\n testID,\n style,\n}) => {\n const all = React.Children.toArray(children);\n const visible = max ? all.slice(0, max) : all;\n const remaining = all.length - visible.length;\n const groupId = testID ?? dataTestId;\n\n return (\n <View testID={groupId} style={[styles.group, style]}>\n {visible.map((child, index) => (\n <View key={`avatar-${index}`} style={index === 0 ? null : { marginLeft: -overlap }}>\n {child}\n </View>\n ))}\n {remaining > 0 ? (\n <View style={{ marginLeft: -overlap }}>\n <Avatar\n color=\"neutral\"\n fallback={`+${remaining}`}\n bordered\n dataTestId={groupId ? `${groupId}-overflow` : undefined}\n />\n </View>\n ) : null}\n </View>\n );\n};\n\nAvatarGroup.displayName = 'AvatarGroup';\n\nconst styles = StyleSheet.create({\n relative: { position: 'relative', alignSelf: 'flex-start' },\n group: { flexDirection: 'row', alignItems: 'center', alignSelf: 'flex-start' },\n});\n","import type { AvatarBaseProps, ContentType } from './Avatar.base';\n\n/** Applied via a single spread so no per-field default inflates cyclomatic complexity. */\nexport const AVATAR_DEFAULTS = {\n variant: 'circle',\n size: 'md',\n glow: false,\n pulse: false,\n bordered: false,\n color: 'primary',\n loading: false,\n interactive: false,\n showFallbackOnError: true,\n animationDelay: 0,\n} satisfies Partial<AvatarBaseProps>;\n\n/** What wins the middle of the avatar. `broken` is the icon slot's error glyph. */\nexport type AvatarContentPick = ContentType | 'broken';\n\nexport interface AvatarContentArgs {\n hasChildren: boolean;\n hasFallback: boolean;\n hasIcon: boolean;\n imageError: boolean;\n showFallbackOnError: boolean;\n}\n\n/**\n * Pick what renders inside the avatar. On an image error (with fallback\n * enabled) the fallback/icon/broken-image wins; otherwise children → fallback →\n * icon → the default person glyph.\n *\n * The DECISION is shared; each renderer builds its own node from it, because\n * the two draw a glyph with different things.\n */\nexport function pickAvatarContent(a: AvatarContentArgs): AvatarContentPick {\n if (a.imageError && a.showFallbackOnError) {\n if (a.hasFallback) return 'fallback';\n return a.hasIcon ? 'icon' : 'broken';\n }\n if (a.hasChildren) return 'children';\n if (a.hasFallback) return 'fallback';\n return a.hasIcon ? 'icon' : 'default';\n}\n\n/** The slot id a pick takes; the broken-image glyph shares the icon slot's. */\nexport const contentTypeOf = (pick: AvatarContentPick): ContentType =>\n pick === 'broken' ? 'icon' : pick;\n\n/** `${dataTestId}-loading`, or nothing at all when the caller named nothing. */\nexport const avatarTestId =\n (dataTestId?: string) =>\n (suffix: string): string | undefined =>\n dataTestId ? `${dataTestId}-${suffix}` : undefined;\n","import type { AvatarSize, AvatarStatus } from './Avatar.base';\nimport { ABSOLUTE_INK, NEUTRAL_RAMP } from '../../../tokens/ink.core';\nimport type { UiTheme } from '../../../tokens/theme';\nimport type { ColorValue } from '../../../tokens/vocabulary';\n\n/**\n * THE NUMBERS BOTH `Avatar` RENDERERS DRAW WITH.\n *\n * `Avatar.view.tsx` (web, emotion over MUI's `Avatar` and `Badge`) and\n * `Avatar.native.tsx` (React Native) read this one table: the six boxes and\n * their type, the status dot, the glow, the shimmer and the spinner. The web\n * turns the px into rem; native uses the numbers.\n */\nexport interface AvatarSizeMetrics {\n /** The square the portrait fills, in px. */\n box: number;\n /** The initials' type size, in px. */\n fontSize: number;\n}\n\nexport const AVATAR_SIZES: Record<AvatarSize, AvatarSizeMetrics> = {\n xs: { box: 24, fontSize: 12 },\n sm: { box: 32, fontSize: 14 },\n md: { box: 40, fontSize: 16 },\n lg: { box: 48, fontSize: 18 },\n xl: { box: 64, fontSize: 24 },\n xxl: { box: 80, fontSize: 32 },\n};\n\n/** `rounded` takes one spacing unit; `circle` and `status` are round. */\nexport const ROUNDED_RADIUS_UNITS = 1;\n\n/** The paper ring an avatar takes inside a group, and the hairline outside it. */\nexport const BORDER_WIDTH = 2;\nexport const BORDER_HALO_ALPHA = 0.2;\n\n/** `glow`: a 20px halo at five pixels of spread, and a brightness lift. */\nexport const GLOW = { blur: 20, spread: 5, alpha: 0.4, brightness: 1.05 } as const;\n\n/** `pulse`: the `::after` ring, from nothing to 10px while it fades out. */\nexport const PULSE = { durationMs: 2000, alpha: 0.3, spread: 10 } as const;\n\n/** The shimmer that runs across a loading avatar. */\nexport const SHIMMER = { durationMs: 1500, fromAlpha: 0.6, toAlpha: 0.8 } as const;\n\n/** The overlay over a loading avatar, and the ring spinning in it. */\nexport const LOADING_OVERLAY = { paperAlpha: 0.7, blur: 2 } as const;\nexport const SPINNER = {\n /** A share of the avatar's box. */\n scale: 0.4,\n ringWidth: 2,\n trackAlpha: 0.3,\n durationMs: 800,\n} as const;\n\n/**\n * The status dot: a fifth of the box, never below 8px, inside a paper ring.\n * `anchor` is MUI's `overlap=\"circular\"` inset — the dot's CENTRE sits 14% of\n * the box in from the bottom-right corner.\n */\nexport const STATUS_DOT = { scale: 0.2, min: 8, borderWidth: 2, anchor: 0.14 } as const;\n\n/**\n * The default and broken-image glyphs are ordinary `SvgIcon`s here, not MUI's\n * own `.MuiAvatar-fallback` (which is 75% of the box): this component passes\n * them as CHILDREN, so they render at the icon default whatever the box is.\n */\nexport const GLYPH_SIZE = 24;\n\n/** MUI's `Fade` timeout on mount, and the scale-in behind it. */\nexport const FADE_MS = 300;\nexport const SCALE_IN_MS = 300;\n\n/** `transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1)`. */\nexport const AVATAR_TRANSITION_MS = 300;\nexport const AVATAR_TRANSITION_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';\n\n/** The interactive lift, which is a `:hover` on the web. */\nexport const HOVER = { scale: 1.1, lift: 2, shadowY: 8, shadowBlur: 20, shadowAlpha: 0.3, brightness: 1.1 } as const;\nexport const ACTIVE_SCALE = 1.05;\n\n/** The focus ring `:focus-visible` draws. */\nexport const FOCUS_RING = { width: 3, offset: 2, alpha: 0.5 } as const;\n\n/** An avatar group's default overlap, in px, and its hover lift. */\nexport const GROUP_OVERLAP = 8;\nexport const GROUP_MAX = 4;\nexport const GROUP_HOVER = { scale: 1.1, lift: 4 } as const;\n\n/** The dot's colour per status. `offline` is the ramp, the rest are semantic. */\nexport function statusColor(theme: UiTheme, status: AvatarStatus): string {\n if (status === 'online') return theme.palette.success.main;\n if (status === 'away') return theme.palette.warning.main;\n if (status === 'busy') return theme.palette.danger.main;\n return NEUTRAL_RAMP[500];\n}\n\nexport interface AvatarAccent {\n main: string;\n contrastText: string;\n}\n\n/**\n * The accent behind the initials. `danger`, NOT `error` — the web map was keyed\n * on MUI's word while the prop took the house one, so `danger` matched nothing\n * and fell through to primary: a red avatar rendering blue, silently.\n */\nexport function avatarAccent(theme: UiTheme, color: ColorValue): AvatarAccent {\n if (color === 'neutral') return { main: NEUTRAL_RAMP[700], contrastText: ABSOLUTE_INK.white };\n const accent = theme.palette[color];\n return { main: accent.main, contrastText: accent.contrastText || ABSOLUTE_INK.white };\n}\n","import type { TextStyle, ViewStyle } from 'react-native';\n\nimport type { AvatarSize, AvatarVariant } from './Avatar.base';\nimport {\n AVATAR_SIZES,\n BORDER_HALO_ALPHA,\n BORDER_WIDTH,\n GLOW,\n LOADING_OVERLAY,\n ROUNDED_RADIUS_UNITS,\n SPINNER,\n STATUS_DOT,\n avatarAccent,\n} from './Avatar.metrics';\nimport { alpha } from '../../../tokens/color';\nimport type { UiTheme } from '../../../tokens/theme';\nimport type { ColorValue } from '../../../tokens/vocabulary';\n\n/** `square` is sharp, `rounded` takes a spacing unit, `circle` and `status` are round. */\nexport function avatarRadius(theme: UiTheme, variant: AvatarVariant, box: number): number {\n if (variant === 'square') return 0;\n if (variant === 'rounded') return theme.spacing(ROUNDED_RADIUS_UNITS);\n return box / 2;\n}\n\nexport interface AvatarSurfaceArgs {\n variant: AvatarVariant;\n size: AvatarSize;\n color: ColorValue;\n glow: boolean;\n bordered: boolean;\n interactive: boolean;\n hasError: boolean;\n}\n\n/** The avatar box: MUI's square, its radius, the accent behind the initials. */\nexport function avatarSurfaceStyle(theme: UiTheme, a: AvatarSurfaceArgs): ViewStyle {\n const { box } = AVATAR_SIZES[a.size];\n const accent = avatarAccent(theme, a.color);\n return {\n width: box,\n height: box,\n borderRadius: avatarRadius(theme, a.variant, box),\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n backgroundColor: a.hasError ? theme.palette.danger.main : accent.main,\n cursor: a.interactive ? 'pointer' : 'auto',\n ...(a.bordered\n ? {\n borderWidth: BORDER_WIDTH,\n borderColor: theme.palette.background.paper,\n boxShadow: `0 0 0 1px ${alpha(theme.palette.divider, BORDER_HALO_ALPHA)}`,\n }\n : {}),\n ...(a.glow\n ? { boxShadow: `0 0 ${GLOW.blur}px ${GLOW.spread}px ${alpha(accent.main, GLOW.alpha)}` }\n : {}),\n };\n}\n\n/** The initials, in the accent's contrast ink at the size's own step. */\nexport function avatarTextStyle(\n theme: UiTheme,\n size: AvatarSize,\n color: ColorValue,\n hasError: boolean,\n): TextStyle {\n const accent = avatarAccent(theme, color);\n return {\n fontFamily: theme.typography.fontFamily,\n fontSize: AVATAR_SIZES[size].fontSize,\n textAlign: 'center',\n color: hasError ? theme.palette.danger.contrastText : accent.contrastText,\n };\n}\n\n/** The wash over a loading avatar, and the ring spinning in it. */\nexport function avatarLoadingStyle(theme: UiTheme, size: AvatarSize, radius: number): ViewStyle {\n const { box } = AVATAR_SIZES[size];\n return {\n position: 'absolute',\n top: 0,\n left: 0,\n width: box,\n height: box,\n borderRadius: radius,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: alpha(theme.palette.background.paper, LOADING_OVERLAY.paperAlpha),\n };\n}\n\nexport function avatarSpinnerStyle(theme: UiTheme, size: AvatarSize): ViewStyle {\n const ring = AVATAR_SIZES[size].box * SPINNER.scale;\n return {\n width: ring,\n height: ring,\n borderRadius: ring / 2,\n borderWidth: SPINNER.ringWidth,\n borderColor: alpha(theme.palette.primary.main, SPINNER.trackAlpha),\n borderTopColor: theme.palette.primary.main,\n };\n}\n\n/** MUI's `Badge` dot, anchored bottom-right of a circular avatar. */\nexport function avatarStatusDotStyle(theme: UiTheme, size: AvatarSize, color: string): ViewStyle {\n const { box } = AVATAR_SIZES[size];\n const dot = Math.max(STATUS_DOT.min, box * STATUS_DOT.scale);\n // MUI's `overlap=\"circular\"` puts the dot's centre 14% in from the corner.\n const inset = box * STATUS_DOT.anchor - dot / 2;\n return {\n position: 'absolute',\n right: inset,\n bottom: inset,\n width: dot,\n height: dot,\n borderRadius: dot / 2,\n backgroundColor: color,\n borderWidth: STATUS_DOT.borderWidth,\n borderColor: theme.palette.background.paper,\n };\n}\n","/**\n * THE PIECES THE NATIVE `Avatar` IS ASSEMBLED FROM.\n *\n * Split out of `Avatar.native.tsx` so the component itself reads as structure:\n * the mount fade, the portrait's load state, the content node, the pulse ring,\n * the spinner and the surface they all sit on.\n */\nimport * as React from 'react';\nimport {\n Animated,\n Easing,\n Image,\n Platform,\n Pressable,\n StyleSheet,\n View,\n type GestureResponderEvent,\n type StyleProp,\n type ViewStyle,\n} from 'react-native';\n\nimport type { AvatarSize, AvatarVariant, ContentType } from './Avatar.base';\nimport type { AvatarContentPick } from './Avatar.helpers';\nimport {\n avatarLoadingStyle,\n avatarRadius,\n avatarSpinnerStyle,\n avatarSurfaceStyle,\n avatarTextStyle,\n} from './Avatar.look.native';\nimport { AVATAR_SIZES, FADE_MS, GLYPH_SIZE, PULSE, SPINNER } from './Avatar.metrics';\nimport { Icon } from '../../../icons/Icon.native';\nimport { useLoopedProgress } from '../../../platform/animation';\nimport { renderTextChildren } from '../../../platform/text-children';\nimport { useUiTheme } from '../../../provider/use-ui-theme.native';\nimport type { UiTheme } from '../../../tokens/theme';\nimport type { ColorValue } from '../../../tokens/vocabulary';\n\nconst nativeDriver = Platform.OS !== 'web';\n\n/** MUI's `Fade`: in over 300ms, once `animationDelay` has run. */\nexport function useFadeIn(animationDelay: number): Animated.Value {\n const opacity = React.useRef(new Animated.Value(0)).current;\n React.useEffect(() => {\n const animation = Animated.sequence([\n Animated.delay(animationDelay),\n Animated.timing(opacity, {\n toValue: 1,\n duration: FADE_MS,\n easing: Easing.out(Easing.ease),\n useNativeDriver: nativeDriver,\n }),\n ]);\n animation.start();\n return () => animation.stop();\n }, [animationDelay, opacity]);\n return opacity;\n}\n\ninterface ImageState {\n imageError: boolean;\n imageLoading: boolean;\n handleError: () => void;\n handleLoad: () => void;\n}\n\n/** The portrait's load lifecycle: loading from the moment there is a `src`. */\nexport function useImageState(src: string | undefined, onError?: () => void): ImageState {\n const [imageError, setImageError] = React.useState(false);\n const [imageLoading, setImageLoading] = React.useState(Boolean(src));\n\n React.useEffect(() => {\n setImageError(false);\n setImageLoading(Boolean(src));\n }, [src]);\n\n const handleError = React.useCallback(() => {\n setImageError(true);\n setImageLoading(false);\n onError?.();\n }, [onError]);\n\n return {\n imageError,\n imageLoading,\n handleError,\n handleLoad: React.useCallback(() => setImageLoading(false), []),\n };\n}\n\ninterface ContentArgs {\n pick: AvatarContentPick;\n children?: React.ReactNode;\n fallback?: string;\n icon?: React.ReactNode;\n ink: string;\n}\n\n/** The node behind the winning content slot; the pick itself is shared. */\nexport function contentNode({ pick, children, fallback, icon, ink }: ContentArgs): React.ReactNode {\n if (pick === 'children') return children;\n if (pick === 'fallback') return fallback;\n if (pick === 'icon') return icon;\n return <Icon name={pick === 'broken' ? 'BrokenImage' : 'Person'} size={GLYPH_SIZE} color={ink} />;\n}\n\n/**\n * MUI's `::after` pulse ring: the accent growing 10px past the box while it\n * fades out, every two seconds. React Native has no pseudo-element, so it is a\n * sibling behind the avatar.\n */\nexport function PulseRing({ size, variant, color }: { size: AvatarSize; variant: AvatarVariant; color: string }): React.JSX.Element {\n const theme = useUiTheme();\n const progress = useLoopedProgress(true, { durationMs: PULSE.durationMs });\n const box = AVATAR_SIZES[size].box;\n return (\n <Animated.View\n aria-hidden\n style={[\n StyleSheet.absoluteFill,\n {\n pointerEvents: 'none',\n borderRadius: avatarRadius(theme, variant, box),\n backgroundColor: color,\n opacity: progress.interpolate({ inputRange: [0, 0.7, 1], outputRange: [PULSE.alpha, 0, 0] }),\n transform: [\n {\n scale: progress.interpolate({\n inputRange: [0, 0.7, 1],\n outputRange: [1, (box + PULSE.spread * 2) / box, 1],\n }),\n },\n ],\n },\n ]}\n />\n );\n}\n\n/** MUI's `rotateAnimation`: the ring turning once every 0.8s. */\nfunction Spinner({ size, testID }: { size: AvatarSize; testID?: string }): React.JSX.Element {\n const theme = useUiTheme();\n const progress = useLoopedProgress(true, { durationMs: SPINNER.durationMs });\n return (\n <Animated.View\n testID={testID}\n style={[\n avatarSpinnerStyle(theme, size),\n {\n transform: [\n { rotate: progress.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] }) },\n ],\n },\n ]}\n />\n );\n}\n\nexport interface SurfaceArgs {\n variant: AvatarVariant;\n size: AvatarSize;\n color: ColorValue;\n glow: boolean;\n bordered: boolean;\n clickable: boolean;\n imageError: boolean;\n showSpinner: boolean;\n imgSrc?: string;\n alt?: string;\n ariaLabel: string;\n content: React.ReactNode;\n contentType: ContentType;\n testID?: string;\n idFor: (suffix: string) => string | undefined;\n style?: StyleProp<ViewStyle>;\n onPress?: (event: GestureResponderEvent) => void;\n onImageError: () => void;\n onImageLoad: () => void;\n rest: object;\n}\n\n/** What sits in the middle: the portrait, or the winning content slot. */\nfunction SurfaceInner(a: SurfaceArgs, theme: UiTheme): React.JSX.Element | null {\n if (a.imgSrc && !a.imageError) {\n return (\n <Image\n source={{ uri: a.imgSrc }}\n aria-label={a.alt}\n onError={a.onImageError}\n onLoad={a.onImageLoad}\n style={StyleSheet.absoluteFill}\n accessibilityIgnoresInvertColors\n />\n );\n }\n if (a.showSpinner) return null;\n return (\n <View testID={a.idFor(a.contentType)}>\n {renderTextChildren(a.content, avatarTextStyle(theme, a.size, a.color, a.imageError), 1)}\n </View>\n );\n}\n\n/** The avatar box itself, plus the overlay that covers it while it loads. */\nexport function AvatarSurface(a: SurfaceArgs & { forwardedRef?: React.Ref<View> }): React.JSX.Element {\n const theme = useUiTheme();\n const box = AVATAR_SIZES[a.size].box;\n return (\n <>\n <Pressable\n ref={a.forwardedRef}\n testID={a.testID}\n role={a.clickable ? 'button' : undefined}\n aria-label={a.ariaLabel}\n tabIndex={a.clickable ? 0 : -1}\n onPress={a.clickable ? a.onPress : undefined}\n style={[\n avatarSurfaceStyle(theme, {\n variant: a.variant,\n size: a.size,\n color: a.color,\n glow: a.glow,\n bordered: a.bordered,\n interactive: a.clickable,\n hasError: a.imageError,\n }),\n a.style,\n ]}\n {...a.rest}\n >\n {SurfaceInner(a, theme)}\n </Pressable>\n {a.showSpinner ? (\n <View\n testID={a.idFor('loading')}\n style={avatarLoadingStyle(theme, a.size, avatarRadius(theme, a.variant, box))}\n >\n <Spinner size={a.size} testID={a.idFor('loading-spinner')} />\n </View>\n ) : null}\n </>\n );\n}\n"],"mappings":"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","names":["React","Animated","StyleSheet","View","jsx","jsxs","Animated","View","StyleSheet"]}
|
|
@@ -7,12 +7,12 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
renderTextChildren
|
|
9
9
|
} from "../chunks/chunk-5GJ5OG5R.js";
|
|
10
|
-
import {
|
|
11
|
-
EN_US_UI_LABELS
|
|
12
|
-
} from "../chunks/chunk-SPK34J7Y.js";
|
|
13
10
|
import {
|
|
14
11
|
Icon
|
|
15
12
|
} from "../chunks/chunk-RHD3625Y.js";
|
|
13
|
+
import {
|
|
14
|
+
EN_US_UI_LABELS
|
|
15
|
+
} from "../chunks/chunk-DUELD4HY.js";
|
|
16
16
|
import "../chunks/chunk-5WLOVHKK.js";
|
|
17
17
|
import {
|
|
18
18
|
resolveTestId
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
webKeyDown
|
|
3
3
|
} from "../chunks/chunk-MJVSQXOD.js";
|
|
4
|
-
import {
|
|
5
|
-
EN_US_UI_LABELS
|
|
6
|
-
} from "../chunks/chunk-SPK34J7Y.js";
|
|
7
4
|
import {
|
|
8
5
|
Icon
|
|
9
6
|
} from "../chunks/chunk-RHD3625Y.js";
|
|
7
|
+
import {
|
|
8
|
+
EN_US_UI_LABELS
|
|
9
|
+
} from "../chunks/chunk-DUELD4HY.js";
|
|
10
10
|
import "../chunks/chunk-5WLOVHKK.js";
|
|
11
11
|
import "../chunks/chunk-AR5O4BEY.js";
|
|
12
12
|
import {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EmptyState
|
|
3
|
-
} from "../chunks/chunk-
|
|
4
|
-
import "../chunks/chunk-
|
|
3
|
+
} from "../chunks/chunk-7AVFQB6A.js";
|
|
4
|
+
import "../chunks/chunk-67CYDCHZ.js";
|
|
5
5
|
import "../chunks/chunk-3JBZE4I6.js";
|
|
6
6
|
import "../chunks/chunk-ZRQHLTYG.js";
|
|
7
7
|
import "../chunks/chunk-DN73KYIZ.js";
|
|
8
8
|
import "../chunks/chunk-5GJ5OG5R.js";
|
|
9
|
-
import "../chunks/chunk-SPK34J7Y.js";
|
|
10
9
|
import "../chunks/chunk-RHD3625Y.js";
|
|
11
10
|
import "../chunks/chunk-2UFNPDYT.js";
|
|
11
|
+
import "../chunks/chunk-DUELD4HY.js";
|
|
12
12
|
import "../chunks/chunk-5WLOVHKK.js";
|
|
13
13
|
import "../chunks/chunk-AR5O4BEY.js";
|
|
14
14
|
import "../chunks/chunk-ZYSOBULX.js";
|