@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/layout/ContentToolbar/FilterTrigger.tsx"],"sourcesContent":["'use client';\n\nimport FilterIcon from '@mui/icons-material/FilterListRounded';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport React from 'react';\n\nimport type { FilterTriggerProps } from './ContentToolbar.types';\nimport { EN_US_UI_LABELS } from '../../../en-US.labels';\nimport { fieldRadiusPx } from '../../../tokens/field-radius';\nimport { fieldHeight } from '../../../tokens/field-height';\nimport { sxRem } from '../../../tokens/relative';\n\n/** The toggle's accessible name for its state: the caller's, else the English one. */\nconst toggleName = (open: boolean, openLabel?: string, closeLabel?: string): string =>\n open\n ? (closeLabel ?? EN_US_UI_LABELS.contentToolbar.closeFilters)\n : (openLabel ?? EN_US_UI_LABELS.contentToolbar.openFilters);\n\n/**\n * Labeled filter toggle: a \"Filtros\" button (styled like the sibling toolbar\n * controls) with a funnel icon and, when filters are active, a count badge — so\n * it's obvious that the list is filtered and by how many facets. The panel itself\n * is supplied by the consumer.\n */\nexport function FilterTrigger({\n open,\n onOpenChange,\n hasActiveFilters = false,\n activeCount = 0,\n label = 'Filtros',\n openFiltersLabel,\n closeFiltersLabel,\n 'data-testid': testId = 'toggle-filters-btn',\n}: FilterTriggerProps): React.JSX.Element {\n const active = activeCount > 0 || hasActiveFilters;\n return (\n <Button\n variant=\"text\"\n size=\"small\"\n color=\"inherit\"\n data-testid={testId}\n aria-expanded={open}\n aria-label={toggleName(open, openFiltersLabel, closeFiltersLabel)}\n onClick={() => onOpenChange(!open)}\n startIcon={<FilterIcon sx={{ fontSize: sxRem(16) }} />}\n sx={{\n minWidth: 0,\n height: fieldHeight,\n px: 1,\n gap: 0.25,\n borderRadius: fieldRadiusPx,\n textTransform: 'none',\n fontWeight: 600,\n color: active ? 'primary.main' : 'text.primary',\n bgcolor: open ? 'action.selected' : 'transparent',\n }}\n >\n {label}\n {activeCount > 0 && (\n <Box\n component=\"span\"\n data-testid={`${testId}-count`}\n sx={{\n ml: 0.5,\n minWidth: sxRem(18),\n height: sxRem(18),\n px: 0.5,\n borderRadius: 999,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: sxRem(11.2),\n fontWeight: 700,\n lineHeight: 1,\n bgcolor: 'primary.main',\n color: 'primary.contrastText',\n }}\n >\n {activeCount}\n </Box>\n )}\n </Button>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAEA,OAAO,gBAAgB;AACvB,OAAO,SAAS;AAChB,OAAO,YAAY;AAiCf,SAQa,KARb;AAvBJ,IAAM,aAAa,CAAC,MAAe,WAAoB,eACrD,OACK,cAAc,gBAAgB,eAAe,eAC7C,aAAa,gBAAgB,eAAe;AAQ5C,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA,eAAe,SAAS;AAC1B,GAA0C;AACxC,QAAM,SAAS,cAAc,KAAK;AAClC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACN,eAAa;AAAA,MACb,iBAAe;AAAA,MACf,cAAY,WAAW,MAAM,kBAAkB,iBAAiB;AAAA,MAChE,SAAS,MAAM,aAAa,CAAC,IAAI;AAAA,MACjC,WAAW,oBAAC,cAAW,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,GAAG;AAAA,MACpD,IAAI;AAAA,QACF,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,cAAc;AAAA,QACd,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,OAAO,SAAS,iBAAiB;AAAA,QACjC,SAAS,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEC;AAAA;AAAA,QACA,cAAc,KACb;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAa,GAAG,MAAM;AAAA,YACtB,IAAI;AAAA,cACF,IAAI;AAAA,cACJ,UAAU,MAAM,EAAE;AAAA,cAClB,QAAQ,MAAM,EAAE;AAAA,cAChB,IAAI;AAAA,cACJ,cAAc;AAAA,cACd,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,cAChB,UAAU,MAAM,IAAI;AAAA,cACpB,YAAY;AAAA,cACZ,YAAY;AAAA,cACZ,SAAS;AAAA,cACT,OAAO;AAAA,YACT;AAAA,YAEC;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/DataViews/DeleteViewDialog.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The confirmation in front of \"Excluir visão\".\n *\n * Deleting was immediate: one click in a row menu, on a control sitting\n * directly under four harmless toggles, and the view was gone. A saved view is\n * somebody's filters, columns and sort — cheap to rebuild only if you remember\n * what they were.\n *\n * It names the view rather than saying \"this view\", says plainly that the\n * records are untouched, and warns separately when the view is SHARED, because\n * that deletion takes it from everyone rather than from one person.\n */\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { Dialog, DialogContent } from \"../../feedback/Dialog\";\nimport { Button } from \"../../form/Button\";\nimport { Stack } from \"../../../mui/Stack\";\nimport { Text } from \"../../typography/Text\";\n\nimport type { SavedViewSummary } from \"./data-views-types\";\n\nexport function DeleteViewDialog({\n view,\n onClose,\n onConfirm,\n /** What this table holds, for the \"your records are safe\" line. */\n entityLabel = \"Os registros\",\n testIdPrefix = \"view\",\n}: {\n view: SavedViewSummary | null;\n onClose: () => void;\n onConfirm: (view: SavedViewSummary) => void;\n entityLabel?: string;\n testIdPrefix?: string;\n}): React.JSX.Element | null {\n const copy = useDataViewsCopy();\n if (!view) return null;\n return (\n <Dialog\n open\n onClose={onClose}\n title={copy.deleteView.title}\n size=\"sm\"\n showCloseButton\n dataTestId={`${testIdPrefix}-delete-modal`}\n >\n <DialogContent>\n <Stack spacing={1.5}>\n <Text variant=\"body\" as=\"p\" data-testid={`${testIdPrefix}-delete-target`}>\n {copy.deleteView.target(view.name)}\n </Text>\n\n {view.shared && (\n <Text variant=\"body\" color=\"warning\" as=\"p\" data-testid={`${testIdPrefix}-delete-shared`}>\n {copy.deleteView.sharedWarning}\n </Text>\n )}\n\n <Text variant=\"body\" color=\"secondary\" as=\"p\">\n {copy.deleteView.rowsUnaffected(entityLabel)}\n </Text>\n\n <Stack direction=\"row\" spacing={1.5} sx={{ justifyContent: \"flex-end\", pt: 0.5 }}>\n <Button\n variant=\"text\"\n color=\"neutral\"\n onClick={onClose}\n dataTestId={`${testIdPrefix}-delete-cancel`}\n >\n {copy.deleteView.cancel}\n </Button>\n <Button\n color=\"danger\"\n onClick={() => onConfirm(view)}\n dataTestId={`${testIdPrefix}-delete-confirm`}\n >\n {copy.deleteView.confirm}\n </Button>\n </Stack>\n </Stack>\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiDU,cAcA,YAdA;AA3BH,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA,cAAc;AAAA,EACd,eAAe;AACjB,GAM6B;AAC3B,QAAM,OAAO,iBAAiB;AAC9B,MAAI,CAAC,KAAM,QAAO;AAClB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAI;AAAA,MACJ;AAAA,MACA,OAAO,KAAK,WAAW;AAAA,MACvB,MAAK;AAAA,MACL,iBAAe;AAAA,MACf,YAAY,GAAG,YAAY;AAAA,MAE3B,8BAAC,iBACC,+BAACA,UAAA,EAAM,SAAS,KACd;AAAA,4BAAC,QAAK,SAAQ,QAAO,IAAG,KAAI,eAAa,GAAG,YAAY,kBACrD,eAAK,WAAW,OAAO,KAAK,IAAI,GACnC;AAAA,QAEC,KAAK,UACJ,oBAAC,QAAK,SAAQ,QAAO,OAAM,WAAU,IAAG,KAAI,eAAa,GAAG,YAAY,kBACrE,eAAK,WAAW,eACnB;AAAA,QAGF,oBAAC,QAAK,SAAQ,QAAO,OAAM,aAAY,IAAG,KACvC,eAAK,WAAW,eAAe,WAAW,GAC7C;AAAA,QAEA,qBAACA,UAAA,EAAM,WAAU,OAAM,SAAS,KAAK,IAAI,EAAE,gBAAgB,YAAY,IAAI,IAAI,GAC7E;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,SAAS;AAAA,cACT,YAAY,GAAG,YAAY;AAAA,cAE1B,eAAK,WAAW;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,SAAS,MAAM,UAAU,IAAI;AAAA,cAC7B,YAAY,GAAG,YAAY;AAAA,cAE1B,eAAK,WAAW;AAAA;AAAA,UACnB;AAAA,WACF;AAAA,SACF,GACF;AAAA;AAAA,EACF;AAEJ;","names":["default"]}
|
|
@@ -1 +0,0 @@
|
|
|
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 },\n dashboard: {\n breadcrumb: \"breadcrumb\",\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};\n"],"mappings":";AAQO,IAAM,kBAA4B;AAAA,EACvC,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP,MAAM,CAAC,UAAU,UAAU,QAAQ,QAAQ,KAAK,KAAK;AAAA,IACrD,UAAU;AAAA,IACV,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,MAAM,CAAC,UAAU,kBAAkB,KAAK;AAAA,EAC1C;AAAA,EACA,WAAW;AAAA,IACT,YAAY,CAAC,QAAQ,GAAG,GAAG;AAAA,IAC3B,aAAa,CAAC,QAAQ,GAAG,GAAG;AAAA,EAC9B;AAAA,EACA,QAAQ;AAAA,IACN,aAAa,CAAC,UAAU,IAAI,KAAK;AAAA,EACnC;AAAA,EACA,gBAAgB;AAAA,IACd,aAAa;AAAA,IACb,WAAW;AAAA,IACX,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,eAAe;AAAA,IACf,cAAc;AAAA,IACd,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,CAAC,WAAW,WAAW,MAAM;AAAA,IACrC,WAAW,CAAC,cAAc,cAAc,SAAS;AAAA,IACjD,eAAe;AAAA,EACjB;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,gBAAgB;AAAA,IACd,UAAU;AAAA,IACV,UAAU;AAAA,IACV,aAAa;AAAA,IACb,cAAc;AAAA,EAChB;AAAA,EACA,WAAW;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,gBAAgB;AAAA,IACd,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA,cAAc;AAAA,IACZ,MAAM,CAAC,UAAU,UAAU,QAAQ,QAAQ,KAAK,KAAK;AAAA,IACrD,UAAU,CAAC,UAAU,UAAU,QAAQ,QAAQ,OAAO,KAAK;AAAA,EAC7D;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/utility/AnimatedIcon/AnimatedIcon.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport { withDefaults } from '../../../utils/withDefaults';\n\nimport { iconSx, sizeConfigs } from './AnimatedIcon.styles';\nimport type { IconStyleFlags } from './AnimatedIcon.styles';\nimport type { AnimatedIconProps } from './AnimatedIcon.types';\n\nconst AnimationContainer = styled(Box)<IconStyleFlags>(({ theme, ...flags }) => ({\n ...iconSx(theme, flags),\n}));\n\nconst DEFAULTS = {\n variant: 'none',\n size: 'md',\n duration: 2,\n delay: 0,\n loop: true,\n glow: false,\n glass: false,\n metallic: false,\n gradient: false,\n shadow: 'none',\n ripple: false,\n neon: false,\n holographic: false,\n} satisfies Partial<AnimatedIconProps>;\n\ntype ResolvedProps = AnimatedIconProps & Required<Pick<AnimatedIconProps, keyof typeof DEFAULTS>>;\n\nexport const AnimatedIcon: FC<AnimatedIconProps> = (props) => {\n const {\n children, variant, size, color, duration, delay, loop, glow, glass, glowColor,\n metallic, gradient, shadow, ripple, neon, holographic, className, style,\n 'aria-label': ariaLabel, onClick, tabIndex, onFocus, onBlur, dataTestId,\n } = withDefaults(props, DEFAULTS) as ResolvedProps;\n\n const config = sizeConfigs[size] ?? sizeConfigs.md;\n\n return (\n <AnimationContainer\n $size={config.ring}\n $fontSize={config.glyph}\n $animationVariant={variant}\n $duration={duration}\n $delay={delay}\n $loop={loop}\n $glow={glow}\n $glass={glass}\n $glowColor={glowColor}\n $customColor={color}\n $metallic={metallic}\n $gradient={gradient}\n $shadow={shadow}\n $ripple={ripple}\n $neon={neon}\n $holographic={holographic}\n className={className}\n style={style}\n role=\"img\"\n aria-label={ariaLabel || `Animated ${variant} icon`}\n onClick={onClick}\n tabIndex={tabIndex}\n onFocus={onFocus}\n onBlur={onBlur}\n data-testid={dataTestId}\n >\n {children}\n </AnimationContainer>\n );\n};\n\nexport default AnimatedIcon;\n"],"mappings":";;;;;;;;;AAAA,OAAO,SAAS;AAChB,SAAS,cAAc;AA0CnB;AAhCJ,IAAM,qBAAqB,OAAO,GAAG,EAAkB,CAAC,EAAE,OAAO,GAAG,MAAM,OAAO;AAAA,EAC/E,GAAG,OAAO,OAAO,KAAK;AACxB,EAAE;AAEF,IAAM,WAAW;AAAA,EACf,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AACf;AAIO,IAAM,eAAsC,CAAC,UAAU;AAC5D,QAAM;AAAA,IACJ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAM;AAAA,IAAO;AAAA,IAAU;AAAA,IAAO;AAAA,IAAM;AAAA,IAAM;AAAA,IAAO;AAAA,IACpE;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAM;AAAA,IAAa;AAAA,IAAW;AAAA,IAClE,cAAc;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,EAC/D,IAAI,aAAa,OAAO,QAAQ;AAEhC,QAAM,SAAS,YAAY,IAAI,KAAK,YAAY;AAEhD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,OAAO;AAAA,MACd,WAAW,OAAO;AAAA,MAClB,mBAAmB;AAAA,MACnB,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA,MAAK;AAAA,MACL,cAAY,aAAa,YAAY,OAAO;AAAA,MAC5C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAa;AAAA,MAEZ;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,uBAAQ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/LoadingState/LoadingState.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport Stack from '@mui/material/Stack/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { Skeleton } from '../../layout/Skeleton/Skeleton';\n\nimport {\n makeTestIds,\n resolveLoadingStateProps,\n SIZE_MAP,\n SKELETON_ROW_HEIGHT,\n} from './LoadingState.helpers';\nimport {\n SKELETON_FULL_ROW_WIDTH,\n SKELETON_LAST_ROW_WIDTH,\n SKELETON_MESSAGE_MARGIN_TOP_UNITS,\n SKELETON_PADDING_UNITS,\n SKELETON_RADIUS,\n SKELETON_ROW_GAP_UNITS,\n SPINNER_GAP_UNITS,\n SPINNER_MIN_HEIGHT,\n SPINNER_PADDING_UNITS,\n} from './LoadingState.metrics';\nimport type { LoadingStateProps, LoadingStateSize } from './LoadingState.types';\nimport { resolveTestId } from '../../../platform/test-id';\nimport { rem } from '../../../tokens/relative';\n\ninterface ViewProps {\n message?: string;\n size: LoadingStateSize;\n skeletonRows: number;\n className?: string;\n testIds: ReturnType<typeof makeTestIds>;\n}\n\nconst LoadingMessage: React.FC<{\n message?: string;\n size: LoadingStateSize;\n testIds: ViewProps['testIds'];\n sx?: object;\n}> = ({ message, size, testIds, sx }) =>\n message ? (\n <Typography\n variant={SIZE_MAP[size].text}\n color=\"text.secondary\"\n sx={sx}\n data-testid={testIds.named('message')}\n >\n {message}\n </Typography>\n ) : null;\n\nconst SkeletonView: React.FC<ViewProps> = ({\n message,\n size,\n skeletonRows,\n className,\n testIds,\n}) => {\n const theme = useTheme();\n\n return (\n <Box\n role=\"status\"\n aria-busy=\"true\"\n aria-label={message || 'Loading content'}\n className={className}\n data-testid={testIds.base}\n sx={{\n width: '100%',\n padding: theme.spacing(SKELETON_PADDING_UNITS),\n }}\n >\n <Stack spacing={SKELETON_ROW_GAP_UNITS}>\n {Array.from({ length: skeletonRows }).map((_, index) => (\n <Skeleton\n key={`skeleton-row-${index}`}\n variant=\"rectangular\"\n animation=\"wave\"\n height={rem(theme, SKELETON_ROW_HEIGHT[size])}\n // The last row is short, so the block reads as a paragraph of text.\n width={index === skeletonRows - 1 ? SKELETON_LAST_ROW_WIDTH : SKELETON_FULL_ROW_WIDTH}\n borderRadius={SKELETON_RADIUS}\n data-testid={testIds.optional(`skeleton-${index}`)}\n />\n ))}\n </Stack>\n <LoadingMessage\n message={message}\n size={size}\n testIds={testIds}\n sx={{ mt: SKELETON_MESSAGE_MARGIN_TOP_UNITS, textAlign: 'center' }}\n />\n </Box>\n );\n};\n\nconst SpinnerView: React.FC<ViewProps> = ({ message, size, className, testIds }) => {\n const theme = useTheme();\n\n return (\n <Box\n role=\"status\"\n aria-busy=\"true\"\n aria-label={message || 'Loading'}\n className={className}\n data-testid={testIds.base}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: theme.spacing(SPINNER_PADDING_UNITS),\n minHeight: rem(theme, SPINNER_MIN_HEIGHT),\n gap: theme.spacing(SPINNER_GAP_UNITS),\n }}\n >\n <CircularProgress\n size={rem(theme, SIZE_MAP[size].spinner)}\n data-testid={testIds.named('spinner')}\n />\n <LoadingMessage message={message} size={size} testIds={testIds} />\n </Box>\n );\n};\n\nexport const LoadingState: React.FC<LoadingStateProps> = React.memo((rawProps) => {\n const resolved = resolveLoadingStateProps(rawProps);\n const { variant, message, size, skeletonRows, className } = resolved;\n const viewProps: ViewProps = {\n message,\n size,\n skeletonRows,\n className,\n // `dataTestId` is the documented spelling; `testID`, the shared contract's\n // other one, resolves to the same id.\n testIds: makeTestIds(resolveTestId(resolved)),\n };\n\n return variant === 'skeleton' ? (\n <SkeletonView {...viewProps} />\n ) : (\n <SpinnerView {...viewProps} />\n );\n});\n\nLoadingState.displayName = 'LoadingState';\n\nexport default LoadingState;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,OAAO,sBAAsB;AAC7B,OAAO,WAAW;AAClB,OAAO,gBAAgB;AACvB,SAAS,gBAAgB;AACzB,OAAO,WAAW;AAwCd,cAoBA,YApBA;AAPJ,IAAM,iBAKD,CAAC,EAAE,SAAS,MAAM,SAAS,GAAG,MACjC,UACE;AAAA,EAAC;AAAA;AAAA,IACC,SAAS,SAAS,IAAI,EAAE;AAAA,IACxB,OAAM;AAAA,IACN;AAAA,IACA,eAAa,QAAQ,MAAM,SAAS;AAAA,IAEnC;AAAA;AACH,IACE;AAEN,IAAM,eAAoC,CAAC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,SAAS;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,cAAY,WAAW;AAAA,MACvB;AAAA,MACA,eAAa,QAAQ;AAAA,MACrB,IAAI;AAAA,QACF,OAAO;AAAA,QACP,SAAS,MAAM,QAAQ,sBAAsB;AAAA,MAC/C;AAAA,MAEA;AAAA,4BAAC,SAAM,SAAS,wBACb,gBAAM,KAAK,EAAE,QAAQ,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG,UAC5C;AAAA,UAAC;AAAA;AAAA,YAEC,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,QAAQ,IAAI,OAAO,oBAAoB,IAAI,CAAC;AAAA,YAE5C,OAAO,UAAU,eAAe,IAAI,0BAA0B;AAAA,YAC9D,cAAc;AAAA,YACd,eAAa,QAAQ,SAAS,YAAY,KAAK,EAAE;AAAA;AAAA,UAP5C,gBAAgB,KAAK;AAAA,QAQ5B,CACD,GACH;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA,IAAI,EAAE,IAAI,mCAAmC,WAAW,SAAS;AAAA;AAAA,QACnE;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,cAAmC,CAAC,EAAE,SAAS,MAAM,WAAW,QAAQ,MAAM;AAClF,QAAM,QAAQ,SAAS;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,cAAY,WAAW;AAAA,MACvB;AAAA,MACA,eAAa,QAAQ;AAAA,MACrB,IAAI;AAAA,QACF,SAAS;AAAA,QACT,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,SAAS,MAAM,QAAQ,qBAAqB;AAAA,QAC5C,WAAW,IAAI,OAAO,kBAAkB;AAAA,QACxC,KAAK,MAAM,QAAQ,iBAAiB;AAAA,MACtC;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,IAAI,OAAO,SAAS,IAAI,EAAE,OAAO;AAAA,YACvC,eAAa,QAAQ,MAAM,SAAS;AAAA;AAAA,QACtC;AAAA,QACA,oBAAC,kBAAe,SAAkB,MAAY,SAAkB;AAAA;AAAA;AAAA,EAClE;AAEJ;AAEO,IAAM,eAA4C,MAAM,KAAK,CAAC,aAAa;AAChF,QAAM,WAAW,yBAAyB,QAAQ;AAClD,QAAM,EAAE,SAAS,SAAS,MAAM,cAAc,UAAU,IAAI;AAC5D,QAAM,YAAuB;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAAA,IAGA,SAAS,YAAY,cAAc,QAAQ,CAAC;AAAA,EAC9C;AAEA,SAAO,YAAY,aACjB,oBAAC,gBAAc,GAAG,WAAW,IAE7B,oBAAC,eAAa,GAAG,WAAW;AAEhC,CAAC;AAED,aAAa,cAAc;AAE3B,IAAO,uBAAQ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/Command/Command.parts.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport type {\n CommandEmptyProps,\n CommandLoadingProps,\n CommandSeparatorProps,\n} from './Command.types';\nimport { rem } from '../../../tokens/relative';\n\nexport const CommandEmpty: React.FC<CommandEmptyProps> = ({\n message = 'No results found',\n className,\n style,\n dataTestId,\n}) => (\n <Box\n className={className}\n data-testid={dataTestId}\n sx={{\n p: 4,\n textAlign: 'center',\n color: 'text.secondary',\n ...style,\n }}\n >\n <Typography variant=\"body2\">{message}</Typography>\n </Box>\n );\n\nexport const CommandLoading: React.FC<CommandLoadingProps> = ({\n message = 'Loading...',\n className,\n style,\n dataTestId,\n}) => {\n const theme = useTheme();\n return (\n <Box\n className={className}\n data-testid={dataTestId}\n sx={{\n p: 4,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: 2,\n ...style,\n }}\n >\n <CircularProgress size={rem(theme, 24)} />\n <Typography variant=\"body2\" color=\"text.secondary\">\n {message}\n </Typography>\n </Box>\n );\n};\n\nexport const CommandSeparator: React.FC<CommandSeparatorProps> = ({\n className,\n style,\n}) => <Divider className={className} sx={{ my: 1, ...style }} />;"],"mappings":";;;;;AAAA,OAAO,SAAS;AAChB,OAAO,sBAAsB;AAC7B,OAAO,aAAa;AACpB,OAAO,gBAAgB;AACvB,SAAS,gBAAgB;AA0BnB,cAYF,YAZE;AAhBC,IAAM,eAA4C,CAAC;AAAA,EACxD,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AACF,MACI;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAa;AAAA,IACb,IAAI;AAAA,MACF,GAAG;AAAA,MACH,WAAW;AAAA,MACX,OAAO;AAAA,MACP,GAAG;AAAA,IACL;AAAA,IAEA,8BAAC,cAAW,SAAQ,SAAS,mBAAQ;AAAA;AACvC;AAGG,IAAM,iBAAgD,CAAC;AAAA,EAC5D,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,SAAS;AACvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAa;AAAA,MACb,IAAI;AAAA,QACF,GAAG;AAAA,QACH,SAAS;AAAA,QACT,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,GAAG;AAAA,MACL;AAAA,MAEA;AAAA,4BAAC,oBAAiB,MAAM,IAAI,OAAO,EAAE,GAAG;AAAA,QACxC,oBAAC,cAAW,SAAQ,SAAQ,OAAM,kBAC/B,mBACH;AAAA;AAAA;AAAA,EACF;AAEJ;AAEO,IAAM,mBAAoD,CAAC;AAAA,EAChE;AAAA,EACA;AACF,MAAM,oBAAC,WAAQ,WAAsB,IAAI,EAAE,IAAI,GAAG,GAAG,MAAM,GAAG;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/feedback/StackedModal/StackedModal.tsx"],"sourcesContent":["import Dialog from '@mui/material/Dialog/index.js';\nimport Slide from '@mui/material/Slide/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport type { TransitionProps } from '@mui/material/transitions/index.js';\nimport type { FC } from 'react';\nimport React, { forwardRef, useEffect, useId } from 'react';\nimport { usePanelChrome } from './StackedModal.hooks';\nimport { modalAriaIds, ModalPanelContents, resolveModalContent } from './StackedModal.parts';\nimport type { PanelStyleProps } from './StackedModal.styles';\nimport { dialogRootStyles, STYLE_ONLY_PROPS } from './StackedModal.styles';\nimport type { StackedModalProps } from './StackedModal.types';\n\nconst StyledDialog = styled(Dialog, {\n shouldForwardProp: (prop) => !STYLE_ONLY_PROPS.includes(prop as string),\n})<PanelStyleProps>(({ theme, ...props }) => dialogRootStyles(theme, props));\n\n/** Panels slide in from the right on every device. */\nconst SlideTransition = forwardRef<HTMLDivElement, TransitionProps>(\n function SlideTransition(props, ref) {\n return (\n <Slide direction=\"left\" ref={ref} {...props}>\n {props.children as React.ReactElement}\n </Slide>\n );\n },\n);\n\nconst DEFAULTS: Partial<StackedModalProps> = {\n open: false,\n glass: false,\n navigationTitle: '',\n closeOnClickOutside: true,\n closeOnEsc: true,\n loading: false,\n loadingText: 'Loading...',\n maxWidth: false,\n disableBackdrop: false,\n disableFocusTrap: false,\n keepMounted: false,\n rtl: false,\n};\n\n/**\n * Fills in the defaults for props the caller left `undefined`. A table plus one\n * loop, rather than a default per destructured prop — each of those is a branch,\n * and fifteen of them put the component over the complexity bar on their own.\n */\nconst withDefaults = (props: StackedModalProps): StackedModalProps => {\n const resolved = { ...props };\n for (const [key, value] of Object.entries(DEFAULTS)) {\n const prop = key as keyof StackedModalProps;\n if (resolved[prop] === undefined) {\n Object.assign(resolved, { [prop]: value });\n }\n }\n return resolved;\n};\n\n/** The modal's props once defaults are applied and its stack identity is settled. */\ntype ResolvedProps = StackedModalProps & { modalId: string };\n\n/**\n * `hideHeader` removes the bar that names the dialog; without an\n * `aria-labelledby` of the caller's own, the dialog has no accessible name.\n */\nconst useUnnamedDialogWarning = (unnamed: boolean): void => {\n useEffect(() => {\n const development = typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production';\n if (unnamed && development) {\n // eslint-disable-next-line no-console -- a config warning has no other channel.\n console.warn(\n 'StackedModal: `hideHeader` without `aria-labelledby` leaves the dialog unnamed. ' +\n \"Point `aria-labelledby` at your content header's title.\",\n );\n }\n }, [unnamed]);\n};\n\nconst StackedModalPanel: FC<ResolvedProps> = (props) => {\n const {\n open, onClose, glass, navigationTitle, backLabel, closeLabel, hideClose, hideHeader, children, actions, modalId,\n closeOnClickOutside, closeOnEsc, loading, loadingText, fullScreen, maxWidth, size, panelWidth, disableBackdrop,\n disableFocusTrap, keepMounted, rtl, dataTestId,\n 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, ...otherProps\n } = props;\n\n const {\n dialogRef, modalRole, isAnimating, showSkeleton, zIndex, isMobile, canGoBack, isRoot,\n handleBack, handleClose,\n } = usePanelChrome({\n open, modalId, loading, closeOnEsc, closeOnClickOutside, disableFocusTrap, onClose,\n });\n\n // Don't render if in background (performance optimization)\n if (modalRole === 'background' && !keepMounted) return null;\n\n const { content, modalActions, headerActions, hasMobileActions } = resolveModalContent(\n children,\n actions,\n isMobile,\n );\n const { titleId, descId } = modalAriaIds(modalId, ariaLabelledBy, ariaDescribedBy);\n useUnnamedDialogWarning(Boolean(hideHeader) && !ariaLabelledBy);\n\n return (\n <StyledDialog\n ref={dialogRef}\n open={Boolean(open)}\n onClose={handleClose}\n fullScreen={fullScreen ?? isMobile}\n modalRole={modalRole}\n isAnimating={isAnimating}\n glass={glass}\n rtl={rtl}\n customMaxWidth={maxWidth}\n panelSize={size}\n panelWidth={panelWidth}\n TransitionComponent={SlideTransition}\n maxWidth={maxWidth}\n disableEscapeKeyDown={!closeOnEsc}\n hideBackdrop={disableBackdrop}\n keepMounted={keepMounted}\n aria-labelledby={titleId}\n aria-describedby={descId}\n data-testid={dataTestId}\n sx={{ zIndex }}\n {...otherProps}\n >\n <ModalPanelContents\n backLabel={backLabel}\n closeLabel={closeLabel}\n showSkeleton={showSkeleton}\n loadingText={loadingText}\n titleId={titleId}\n descId={descId}\n navigationTitle={navigationTitle}\n hideClose={hideClose}\n hideHeader={Boolean(hideHeader) && isRoot}\n canGoBack={canGoBack}\n onBack={handleBack}\n onClose={onClose}\n headerActions={headerActions}\n content={content}\n modalActions={modalActions}\n hasMobileActions={hasMobileActions}\n rtl={rtl}\n dataTestId={dataTestId}\n />\n </StyledDialog>\n );\n};\n\nexport const StackedModal: FC<StackedModalProps> = (props) => {\n // A modal with no caller-supplied id still needs a STABLE one — it keys this\n // panel's entry in the stack, so a value that changed per render (as a\n // `Math.random()` default does) would re-register it on every pass.\n const fallbackId = useId();\n const resolved = withDefaults(props);\n return <StackedModalPanel {...resolved} modalId={resolved.modalId ?? fallbackId} />;\n};\n\n// Re-exported so `./StackedModal` stays the single public entry point for the\n// component and its stack primitives, as the barrel and existing imports expect.\nexport {\n ModalStackProvider,\n ModalStackProvider as StackedModalProvider,\n useModalStack,\n useModalStack as useStackedModal,\n} from './modal-stack';\nexport { StackedModalActions, StackedModalContent } from './StackedModal.parts';\n"],"mappings":"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","names":["SlideTransition"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/Command/Command.hooks.ts"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport type { CommandItem, CommandProps } from './Command.types';\n\ntype CommandDefaultedKeys =\n | 'open'\n | 'items'\n | 'placeholder'\n | 'value'\n | 'variant'\n | 'size'\n | 'color'\n | 'glow'\n | 'pulse'\n | 'loading'\n | 'disabled'\n | 'emptyMessage'\n | 'showCategories'\n | 'showShortcuts'\n | 'showDescriptions'\n | 'autoFocus'\n | 'closeOnSelect';\n\ntype ResolvedCommandProps = CommandProps &\n Required<Pick<CommandProps, CommandDefaultedKeys>>;\n\nconst COMMAND_DEFAULTS: Pick<CommandProps, CommandDefaultedKeys> = {\n open: false,\n items: [],\n placeholder: 'Type a command or search...',\n value: '',\n variant: 'default',\n size: 'md',\n color: 'primary',\n glow: false,\n pulse: false,\n loading: false,\n disabled: false,\n emptyMessage: 'No results found',\n showCategories: true,\n showShortcuts: true,\n showDescriptions: true,\n autoFocus: true,\n closeOnSelect: true,\n};\n\n// Strips explicitly-undefined props before the merge, so `size={undefined}` still\n// falls back to the default exactly as a destructuring default would.\nconst definedProps = (props: CommandProps): Partial<CommandProps> =>\n Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<CommandProps>;\n\nexport const resolveCommandProps = (props: CommandProps): ResolvedCommandProps =>\n ({ ...COMMAND_DEFAULTS, ...definedProps(props) }) as ResolvedCommandProps;\n\n/** An item matches on its label, its description, or any of its keywords. */\nconst matches = (item: CommandItem, search: string): boolean => {\n const searchTargets = [\n item.label.toLowerCase(),\n item.description?.toLowerCase(),\n ...(item.keywords || []).map((k) => k.toLowerCase()),\n ];\n return searchTargets.some((target) => target?.includes(search));\n};\n\nconst useFilteredItems = (\n items: CommandItem[],\n search: string,\n customFilter: CommandProps['customFilter'],\n) =>\n useMemo(() => {\n if (!search) return items;\n\n if (customFilter) {\n return items.filter((item) => customFilter(item, search));\n }\n\n const searchLower = search.toLowerCase();\n return items.filter((item) => matches(item, searchLower));\n }, [items, search, customFilter]);\n\n/**\n * Kept as it was: the ref is never attached to an element, so this focus call has\n * always been a no-op. The input does get focus — CommandInput passes `autoFocus`\n * straight to its TextField — so removing it is a behaviour question, not a\n * cleanup, and is left alone here.\n */\nconst useAutoFocus = (open: boolean, autoFocus: boolean) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (open && autoFocus) {\n window.setTimeout(() => inputRef.current?.focus(), 100);\n }\n }, [open, autoFocus]);\n};\n\ninterface NavigationArgs {\n items: CommandItem[];\n selectedIndex: number;\n setSelectedIndex: React.Dispatch<React.SetStateAction<number>>;\n onSelect: (item: CommandItem) => void;\n onClose: () => void;\n}\n\n/** Arrows wrap around the list; Enter takes the highlighted item, Escape closes. */\nconst useKeyboardNavigation = ({\n items,\n selectedIndex,\n setSelectedIndex,\n onSelect,\n onClose,\n}: NavigationArgs) =>\n useCallback(\n (e: React.KeyboardEvent) => {\n const step = (delta: number) => {\n e.preventDefault();\n setSelectedIndex((prev) => (prev + delta + items.length) % items.length);\n };\n\n switch (e.key) {\n case 'ArrowDown':\n return step(1);\n case 'ArrowUp':\n return step(-1);\n case 'Enter':\n e.preventDefault();\n if (items[selectedIndex]) {\n onSelect(items[selectedIndex]);\n }\n return;\n case 'Escape':\n e.preventDefault();\n onClose();\n return;\n default:\n return;\n }\n },\n [items, selectedIndex, setSelectedIndex, onSelect, onClose],\n );\n\nexport const useCommandPalette = (props: ResolvedCommandProps) => {\n const { open, items, value, autoFocus, customFilter } = props;\n const { onValueChange, onSelect, onOpenChange, closeOnSelect } = props;\n\n const [internalValue, setInternalValue] = useState(value);\n const [selectedIndex, setSelectedIndex] = useState(0);\n useAutoFocus(open, autoFocus);\n\n useEffect(() => {\n setInternalValue(value);\n }, [value]);\n\n const handleValueChange = useCallback(\n (newValue: string) => {\n setInternalValue(newValue);\n onValueChange?.(newValue);\n setSelectedIndex(0);\n },\n [onValueChange],\n );\n\n const filteredItems = useFilteredItems(items, internalValue, customFilter);\n\n // Arrow keys and Enter address the enabled items only, so a disabled row never\n // becomes the highlighted one.\n const selectableItems = useMemo(\n () => filteredItems.filter((item) => !item.disabled),\n [filteredItems],\n );\n\n const handleSelect = useCallback(\n (item: CommandItem) => {\n if (item.disabled) return;\n\n item.action?.();\n onSelect?.(item);\n\n if (closeOnSelect) {\n onOpenChange?.(false);\n setInternalValue('');\n }\n },\n [onSelect, onOpenChange, closeOnSelect],\n );\n\n const handleKeyDown = useKeyboardNavigation({\n items: selectableItems,\n selectedIndex,\n setSelectedIndex,\n onSelect: handleSelect,\n onClose: () => onOpenChange?.(false),\n });\n\n return {\n internalValue,\n filteredItems,\n highlightedId: selectableItems[selectedIndex]?.id,\n handleValueChange,\n handleSelect,\n handleKeyDown,\n };\n};\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/layout/ContentToolbar/ColumnsMenu.tsx"],"sourcesContent":["'use client';\n\nimport ColumnsIcon from '@mui/icons-material/ViewColumnRounded';\nimport Box from '@mui/material/Box/index.js';\nimport Checkbox from '@mui/material/Checkbox/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport ListSubheader from '@mui/material/ListSubheader/index.js';\nimport Menu from '@mui/material/Menu/index.js';\nimport MenuItem from '@mui/material/MenuItem/index.js';\nimport React, { useState } from 'react';\n\nimport type { ColumnVisibilityOption, ColumnsMenuProps } from './ContentToolbar.types';\nimport { fieldRadiusPx } from '../../../tokens/field-radius';\nimport { fieldHeight } from '../../../tokens/field-height';\nimport { sxRem } from '../../../tokens/relative';\n\n/** One column checkbox row; toggling never closes the menu. */\nfunction ColumnRow({\n option,\n onToggle,\n testId,\n}: {\n option: ColumnVisibilityOption;\n onToggle: (id: string, visible: boolean) => void;\n testId?: string;\n}): React.JSX.Element {\n return (\n <MenuItem\n data-testid={testId}\n onClick={() => onToggle(option.id, !option.visible)}\n disabled={option.locked}\n sx={{ gap: 1 }}\n >\n <Checkbox\n checked={option.visible}\n size=\"small\"\n disableRipple\n sx={{ p: 0, pointerEvents: 'none' }}\n tabIndex={-1}\n />\n <Box component=\"span\" sx={{ flex: 1, minWidth: 0, textAlign: 'left' }}>\n {option.label}\n </Box>\n </MenuItem>\n );\n}\n\n/**\n * Stateless column-visibility selector: a neutral icon button (matching\n * {@link FilterTrigger}/{@link SortByDropdown}) opening a checkbox list of the\n * hideable columns. Purely presentational — the caller owns the visibility state\n * and is notified via `onToggle`. The menu stays open while toggling so several\n * columns can be flipped at once.\n */\nexport function ColumnsMenu({\n columns,\n onToggle,\n title = 'Columns',\n ariaLabel = 'Toggle columns',\n 'data-testid': testId,\n}: ColumnsMenuProps): React.JSX.Element {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const open = Boolean(anchorEl);\n const close = (): void => setAnchorEl(null);\n\n return (\n <>\n <IconButton\n size=\"small\"\n data-testid={testId}\n aria-label={ariaLabel}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n onClick={(event) => setAnchorEl(event.currentTarget)}\n sx={{\n width: fieldHeight,\n height: fieldHeight,\n borderRadius: fieldRadiusPx,\n color: 'text.secondary',\n bgcolor: open ? 'action.selected' : 'transparent',\n }}\n >\n <ColumnsIcon sx={{ fontSize: sxRem(16) }} />\n </IconButton>\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={close}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n slotProps={{ paper: { sx: { minWidth: sxRem(200) } } }}\n >\n <ListSubheader sx={{ px: 1.5, py: 0.75, fontSize: sxRem(12), fontWeight: 600, color: 'text.primary', lineHeight: 1.5 }}>\n {title}\n </ListSubheader>\n {columns.map((option) => (\n <ColumnRow\n key={option.id}\n option={option}\n onToggle={onToggle}\n testId={testId ? `${testId}-${option.id}` : undefined}\n />\n ))}\n </Menu>\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;AAEA,OAAO,iBAAiB;AACxB,OAAO,SAAS;AAChB,OAAO,cAAc;AACrB,OAAO,gBAAgB;AACvB,OAAO,mBAAmB;AAC1B,OAAO,UAAU;AACjB,OAAO,cAAc;AACrB,SAAgB,gBAAgB;AAkB5B,SAuCA,UAjCE,KANF;AAVJ,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AACF,GAIsB;AACpB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa;AAAA,MACb,SAAS,MAAM,SAAS,OAAO,IAAI,CAAC,OAAO,OAAO;AAAA,MAClD,UAAU,OAAO;AAAA,MACjB,IAAI,EAAE,KAAK,EAAE;AAAA,MAEb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,SAAS,OAAO;AAAA,YAChB,MAAK;AAAA,YACL,eAAa;AAAA,YACb,IAAI,EAAE,GAAG,GAAG,eAAe,OAAO;AAAA,YAClC,UAAU;AAAA;AAAA,QACZ;AAAA,QACA,oBAAC,OAAI,WAAU,QAAO,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,OAAO,GACjE,iBAAO,OACV;AAAA;AAAA;AAAA,EACF;AAEJ;AASO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,eAAe;AACjB,GAAwC;AACtC,QAAM,CAAC,UAAU,WAAW,IAAI,SAA6B,IAAI;AACjE,QAAM,OAAO,QAAQ,QAAQ;AAC7B,QAAM,QAAQ,MAAY,YAAY,IAAI;AAE1C,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,eAAa;AAAA,QACb,cAAY;AAAA,QACZ,iBAAc;AAAA,QACd,iBAAe;AAAA,QACf,SAAS,CAAC,UAAU,YAAY,MAAM,aAAa;AAAA,QACnD,IAAI;AAAA,UACF,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,OAAO;AAAA,UACP,SAAS,OAAO,oBAAoB;AAAA,QACtC;AAAA,QAEA,8BAAC,eAAY,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,GAAG;AAAA;AAAA,IAC5C;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT,cAAc,EAAE,UAAU,UAAU,YAAY,QAAQ;AAAA,QACxD,iBAAiB,EAAE,UAAU,OAAO,YAAY,QAAQ;AAAA,QACxD,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,MAAM,GAAG,EAAE,EAAE,EAAE;AAAA,QAErD;AAAA,8BAAC,iBAAc,IAAI,EAAE,IAAI,KAAK,IAAI,MAAM,UAAU,MAAM,EAAE,GAAG,YAAY,KAAK,OAAO,gBAAgB,YAAY,IAAI,GAClH,iBACH;AAAA,UACC,QAAQ,IAAI,CAAC,WACZ;AAAA,YAAC;AAAA;AAAA,cAEC;AAAA,cACA;AAAA,cACA,QAAQ,SAAS,GAAG,MAAM,IAAI,OAAO,EAAE,KAAK;AAAA;AAAA,YAHvC,OAAO;AAAA,UAId,CACD;AAAA;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/layout/TableFilter/TableFilter.tsx"],"sourcesContent":["'use client';\n\nimport CloseIcon from '@mui/icons-material/Close';\nimport SearchIcon from '@mui/icons-material/Search';\nimport Box from '@mui/material/Box/index.js';\nimport Checkbox from '@mui/material/Checkbox/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport FormControlLabel from '@mui/material/FormControlLabel/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport InputAdornment from '@mui/material/InputAdornment/index.js';\nimport Link from '@mui/material/Link/index.js';\nimport TextField from '@mui/material/TextField/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport React, { useRef, useState } from 'react';\n\nimport { TableFilterContext, useTableFilterContext } from './TableFilterContext';\nimport type {\n TableFilterCheckboxFieldProps,\n TableFilterKeywordProps,\n TableFilterLayoutProps,\n TableFilterMainProps,\n TableFilterPanelProps,\n TableFilterProps,\n TableFilterRangeFieldProps,\n TableFilterSectionProps,\n} from './TableFilter.types';\nimport { fieldTextFieldStyles } from '../../../tokens/field-height';\nimport { sxRem } from '../../../tokens/relative';\n\n/** The open panel's width, 280 design px through the type scale. */\nconst PANEL_WIDTH = sxRem(280);\n\n/**\n * Compound filter-panel system, MUI port of the reference `TableFilter`. Provides\n * open/close state; `Panel` slides in from the right beside `Main` (no overlap).\n *\n * @example\n * ```tsx\n * <TableFilter open={open} onOpenChange={setOpen} hasActiveFilters={n > 0}>\n * <TableFilter.Layout>\n * <TableFilter.Main>{table}</TableFilter.Main>\n * <TableFilter.Panel onClearAll={clearAll}>\n * <TableFilter.Keyword value={q} onChange={setQ} />\n * <TableFilter.Section title=\"Attributes\">\n * <TableFilter.CheckboxField label=\"Category\" options={cats} selected={sel} onToggle={toggle} />\n * <TableFilter.RangeField label=\"Price\" unit=\"R$\" value={price} onChange={setPrice} />\n * </TableFilter.Section>\n * </TableFilter.Panel>\n * </TableFilter.Layout>\n * </TableFilter>\n * ```\n */\nexport function TableFilter({\n children,\n open,\n onOpenChange,\n hasActiveFilters = false,\n copy,\n}: TableFilterProps): React.JSX.Element {\n return (\n <TableFilterContext.Provider value={{ open, onOpenChange, hasActiveFilters, copy }}>\n {children}\n </TableFilterContext.Provider>\n );\n}\nTableFilter.displayName = 'TableFilter';\n\nconst TableFilterLayout = ({ children, className }: TableFilterLayoutProps): React.JSX.Element => {\n const { open } = useTableFilterContext();\n return (\n <Box\n className={className}\n sx={{\n display: 'flex',\n minHeight: 0,\n minWidth: 0,\n flex: 1,\n alignItems: 'stretch',\n overflow: 'hidden',\n gap: open ? 2 : 0,\n }}\n >\n {children}\n </Box>\n );\n};\nTableFilterLayout.displayName = 'TableFilter.Layout';\n\nconst TableFilterMain = ({ children, className }: TableFilterMainProps): React.JSX.Element => (\n <Box className={className} sx={{ minWidth: 0, flex: 1, overflowY: 'auto', overflowX: 'hidden' }}>\n {children}\n </Box>\n);\nTableFilterMain.displayName = 'TableFilter.Main';\n\nconst TableFilterPanel = ({\n children,\n onClearAll,\n ariaLabel = 'Filters',\n clearTestId,\n}: TableFilterPanelProps): React.JSX.Element => {\n const { open, copy } = useTableFilterContext();\n return (\n <Box\n component=\"aside\"\n aria-label={ariaLabel}\n aria-hidden={!open}\n sx={{\n display: 'flex',\n minHeight: 0,\n flexShrink: 0,\n flexDirection: 'column',\n alignSelf: 'stretch',\n overflow: 'hidden',\n bgcolor: 'background.paper',\n width: open ? PANEL_WIDTH : 0,\n borderLeft: open ? 1 : 0,\n borderColor: 'divider',\n transition: 'width 300ms ease-in-out',\n '@media (prefers-reduced-motion: reduce)': { transition: 'none' },\n }}\n >\n <Box\n sx={{\n display: 'flex',\n minHeight: 0,\n flex: 1,\n flexDirection: 'column',\n overflowY: 'auto',\n overflowX: 'hidden',\n visibility: open ? 'visible' : 'hidden',\n opacity: open ? 1 : 0,\n pointerEvents: open ? 'auto' : 'none',\n transition: 'opacity 200ms ease-out',\n }}\n >\n <Box sx={{ boxSizing: 'border-box', display: 'flex', width: '100%', minWidth: 0, flexDirection: 'column', gap: 2.5, p: 2 }}>\n <Box sx={{ display: 'flex', justifyContent: 'flex-end' }}>\n <Link\n component=\"button\"\n type=\"button\"\n underline=\"hover\"\n data-testid={clearTestId}\n onClick={onClearAll}\n sx={{ fontSize: sxRem(12), color: 'text.secondary' }}\n >\n {copy.clearAllFilters}\n </Link>\n </Box>\n {children}\n </Box>\n </Box>\n </Box>\n );\n};\nTableFilterPanel.displayName = 'TableFilter.Panel';\n\nconst TableFilterKeyword = ({\n value,\n onChange,\n placeholder = 'Press Enter to filter',\n label = 'Filter by keyword',\n testId,\n}: TableFilterKeywordProps): React.JSX.Element => {\n const { copy } = useTableFilterContext();\n const [draft, setDraft] = useState(value);\n const prevValue = useRef(value);\n if (prevValue.current !== value) {\n prevValue.current = value;\n if (draft !== value) setDraft(value);\n }\n\n const commit = (): void => {\n if (draft !== value) onChange(draft);\n };\n const clearKeyword = (): void => {\n setDraft('');\n if (value !== '') onChange('');\n };\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}>\n <Typography component=\"label\" sx={{ fontSize: sxRem(12), fontWeight: 500, color: 'text.secondary' }}>\n {label}\n </Typography>\n <TextField\n size=\"small\"\n sx={fieldTextFieldStyles}\n name=\"keyword\"\n placeholder={placeholder}\n value={draft}\n onChange={(event) => setDraft(event.target.value)}\n onBlur={commit}\n onKeyDown={(event) => {\n if (event.key !== 'Enter') return;\n event.preventDefault();\n commit();\n }}\n inputProps={{ 'aria-label': label, 'data-testid': testId }}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ fontSize: sxRem(16), color: 'text.secondary' }} />\n </InputAdornment>\n ),\n endAdornment:\n draft !== '' ? (\n <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n aria-label={copy.clearKeyword}\n data-testid={testId ? `${testId}-clear` : undefined}\n onMouseDown={(event) => event.preventDefault()}\n onClick={clearKeyword}\n >\n <CloseIcon sx={{ fontSize: sxRem(16) }} />\n </IconButton>\n </InputAdornment>\n ) : null,\n }}\n />\n </Box>\n );\n};\nTableFilterKeyword.displayName = 'TableFilter.Keyword';\n\nconst TableFilterSection = ({ title, children }: TableFilterSectionProps): React.JSX.Element => (\n <Box>\n <Divider sx={{ mb: 2.5 }} />\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1.5 }}>\n <Typography component=\"h2\" sx={{ fontSize: sxRem(14), fontWeight: 600, color: 'text.primary' }}>\n {title}\n </Typography>\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>{children}</Box>\n </Box>\n </Box>\n);\nTableFilterSection.displayName = 'TableFilter.Section';\n\nfunction TableFilterCheckboxField<TValue extends string = string>({\n label,\n options,\n selected,\n onToggle,\n testId,\n}: TableFilterCheckboxFieldProps<TValue>): React.JSX.Element {\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }} data-testid={testId}>\n <Typography sx={{ fontSize: sxRem(12), fontWeight: 500, color: 'text.secondary' }}>{label}</Typography>\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n {options.map((option) => {\n const checked = selected.has(option.value);\n return (\n <FormControlLabel\n key={option.value}\n control={\n <Checkbox\n size=\"small\"\n checked={checked}\n onChange={(event) => onToggle(option.value, event.target.checked)}\n data-testid={testId ? `${testId}-${option.value}` : undefined}\n sx={{ py: 0.25 }}\n />\n }\n label={\n <Box component=\"span\" sx={{ fontSize: sxRem(14) }}>\n {option.label}\n {option.count != null && (\n <Box component=\"span\" sx={{ color: 'text.secondary' }}>\n {' '}\n ({option.count})\n </Box>\n )}\n </Box>\n }\n sx={{ ml: -0.5, mr: 0 }}\n />\n );\n })}\n </Box>\n </Box>\n );\n}\nTableFilterCheckboxField.displayName = 'TableFilter.CheckboxField';\n\nfunction parseBound(text: string): number | undefined {\n if (text.trim() === '') return undefined;\n const parsed = Number(text);\n return Number.isNaN(parsed) ? undefined : parsed;\n}\n\n/** One numeric bound input (min or max) for {@link TableFilterRangeField}. */\nfunction RangeBound({\n bound,\n error,\n placeholder,\n step,\n ariaLabel,\n testId,\n onChange,\n}: {\n bound: number | undefined;\n error: boolean;\n placeholder: string;\n step?: number;\n ariaLabel: string;\n testId?: string;\n onChange: (next: number | undefined) => void;\n}): React.JSX.Element {\n return (\n <TextField\n size=\"small\"\n sx={fieldTextFieldStyles}\n type=\"number\"\n error={error}\n placeholder={placeholder}\n value={bound != null ? String(bound) : ''}\n onChange={(event) => onChange(parseBound(event.target.value))}\n inputProps={{ step, 'aria-label': ariaLabel, 'data-testid': testId }}\n />\n );\n}\n\n/** Inverted range: both ends set and max < min (surfaced to the user as an error). */\nconst isRangeInverted = (value: { min?: number; max?: number }): boolean =>\n value.min != null && value.max != null && value.max < value.min;\n\nconst TableFilterRangeField = ({\n label,\n value,\n onChange,\n unit,\n step,\n minPlaceholder,\n maxPlaceholder,\n invalidLabel,\n testId,\n}: TableFilterRangeFieldProps): React.JSX.Element => {\n const { copy } = useTableFilterContext();\n const invalid = isRangeInverted(value);\n // A field may override any of the three; unset, they come from the root's\n // table. Neither path reaches an English literal in this package.\n const minText = minPlaceholder ?? copy.rangeMin;\n const maxText = maxPlaceholder ?? copy.rangeMax;\n const invalidText = invalidLabel ?? copy.invalidRange;\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }} data-testid={testId}>\n <Typography sx={{ fontSize: sxRem(12), fontWeight: 500, color: 'text.secondary' }}>\n {label}\n {unit ? ` (${unit})` : ''}\n </Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <RangeBound\n bound={value.min}\n error={invalid}\n placeholder={minText}\n step={step}\n ariaLabel={`${label} ${minText}`}\n testId={testId ? `${testId}-min` : undefined}\n onChange={(min) => onChange({ ...value, min })}\n />\n <Typography component=\"span\" sx={{ color: 'text.secondary' }}>\n –\n </Typography>\n <RangeBound\n bound={value.max}\n error={invalid}\n placeholder={maxText}\n step={step}\n ariaLabel={`${label} ${maxText}`}\n testId={testId ? `${testId}-max` : undefined}\n onChange={(max) => onChange({ ...value, max })}\n />\n </Box>\n {invalid && (\n <Typography\n role=\"alert\"\n data-testid={testId ? `${testId}-error` : undefined}\n sx={{ fontSize: sxRem(11.2), color: 'error.main' }}\n >\n {invalidText}\n </Typography>\n )}\n </Box>\n );\n};\nTableFilterRangeField.displayName = 'TableFilter.RangeField';\n\nTableFilter.Layout = TableFilterLayout;\nTableFilter.Main = TableFilterMain;\nTableFilter.Panel = TableFilterPanel;\nTableFilter.Keyword = TableFilterKeyword;\nTableFilter.Section = TableFilterSection;\nTableFilter.CheckboxField = TableFilterCheckboxField;\nTableFilter.RangeField = TableFilterRangeField;\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
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';\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 = 'Refresh',\n createLabel = 'Create New',\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"]}
|
|
@@ -1 +0,0 @@
|
|
|
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 },\n dashboard: {\n breadcrumb: \"breadcrumb\",\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};\n"],"mappings":";AAQO,IAAM,kBAA4B;AAAA,EACvC,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP,MAAM,CAAC,UAAU,UAAU,QAAQ,QAAQ,KAAK,KAAK;AAAA,IACrD,UAAU;AAAA,IACV,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,MAAM,CAAC,UAAU,kBAAkB,KAAK;AAAA,EAC1C;AAAA,EACA,WAAW;AAAA,IACT,YAAY,CAAC,QAAQ,GAAG,GAAG;AAAA,IAC3B,aAAa,CAAC,QAAQ,GAAG,GAAG;AAAA,EAC9B;AAAA,EACA,QAAQ;AAAA,IACN,aAAa,CAAC,UAAU,IAAI,KAAK;AAAA,EACnC;AAAA,EACA,gBAAgB;AAAA,IACd,aAAa;AAAA,IACb,WAAW;AAAA,IACX,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,eAAe;AAAA,IACf,cAAc;AAAA,IACd,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,CAAC,WAAW,WAAW,MAAM;AAAA,IACrC,WAAW,CAAC,cAAc,cAAc,SAAS;AAAA,IACjD,eAAe;AAAA,EACjB;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,gBAAgB;AAAA,IACd,UAAU;AAAA,IACV,UAAU;AAAA,IACV,aAAa;AAAA,IACb,cAAc;AAAA,EAChB;AAAA,EACA,WAAW;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,gBAAgB;AAAA,IACd,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA,cAAc;AAAA,IACZ,MAAM,CAAC,UAAU,UAAU,QAAQ,QAAQ,KAAK,KAAK;AAAA,IACrD,UAAU,CAAC,UAAU,UAAU,QAAQ,QAAQ,OAAO,KAAK;AAAA,EAC7D;AACF;","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|