@12-apps/ui 6.89.2 → 6.90.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/components-catalog.md +1 -1
- package/dist/_internal/components/data-display/Alert/Alert.js +3 -3
- package/dist/_internal/components/data-display/Avatar/Avatar.js +4 -4
- package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
- package/dist/_internal/components/data-display/CardKit/card-actions-context.js +4 -4
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +5 -5
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +4 -3
- package/dist/_internal/components/data-display/Carousel/Carousel.js +6 -5
- package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +3 -2
- package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
- package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
- package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +48 -23
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +53 -28
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +1 -1
- package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +1 -1
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-bar-controls.js +5 -3
- package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +31 -6
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +47 -22
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +37 -12
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +32 -7
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +33 -8
- package/dist/_internal/components/data-display/DataViews/data-views-number-input.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-preset-chips.js +10 -3
- package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +47 -0
- package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js.map +1 -0
- package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js +36 -0
- package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js.map +1 -0
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +32 -6
- package/dist/_internal/components/data-display/DataViews/data-views-range-summary.js +12 -0
- package/dist/_internal/components/data-display/DataViews/data-views-range-summary.js.map +1 -0
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-still-anchor.js +9 -0
- package/dist/_internal/components/data-display/DataViews/data-views-still-anchor.js.map +1 -0
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +9 -8
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +8 -7
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -1
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js.map +1 -1
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +9 -9
- package/dist/_internal/components/data-display/MapPreview/MapControlBar.js +4 -3
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +5 -4
- package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +4 -3
- package/dist/_internal/components/data-display/MapPreview/MapPreview.helpers.js +3 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +7 -6
- package/dist/_internal/components/data-display/index.js +35 -35
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +4 -4
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +6 -6
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +5 -5
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +4 -4
- package/dist/_internal/components/feedback/index.js +7 -7
- package/dist/_internal/components/form/Calendar/Calendar.js +5 -5
- package/dist/_internal/components/form/Calendar/CalendarDay.js +1 -1
- package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
- package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
- package/dist/_internal/components/form/Calendar/CalendarSelectorsMonth.js +4 -4
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +3 -3
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +10 -10
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +2 -2
- package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +3 -3
- package/dist/_internal/components/form/index.js +24 -24
- package/dist/_internal/components/index.js +63 -63
- package/dist/_internal/en-US.data-display.js +2 -1
- package/dist/_internal/pt-BR.data-display.js +2 -1
- package/dist/_internal/user-avatar/user-avatar.js +5 -5
- package/dist/charts.js +11 -11
- package/dist/{chunk-FJ3UZ4RC.js → chunk-2FKWKLSC.js} +5 -3
- package/dist/chunk-2FKWKLSC.js.map +1 -0
- package/dist/{chunk-BO6MT2S2.js → chunk-3HZKUN5J.js} +7 -6
- package/dist/chunk-3HZKUN5J.js.map +1 -0
- package/dist/{chunk-TYXFFNPM.js → chunk-3OTGREQG.js} +10 -10
- package/dist/{chunk-BEHT4IHH.js → chunk-3X2MA47R.js} +2 -2
- package/dist/{chunk-XHIBFBNP.js → chunk-3ZRK3BRN.js} +4 -2
- package/dist/chunk-3ZRK3BRN.js.map +1 -0
- package/dist/{chunk-X5OGIT2F.js → chunk-4L54KUZV.js} +22 -4
- package/dist/chunk-4L54KUZV.js.map +1 -0
- package/dist/{chunk-TRYR424I.js → chunk-6LOWZCH7.js} +15 -1
- package/dist/chunk-6LOWZCH7.js.map +1 -0
- package/dist/{chunk-6WHIJPEF.js → chunk-6PU5P7QT.js} +2 -2
- package/dist/chunk-7CUZTWKW.js +52 -0
- package/dist/chunk-7CUZTWKW.js.map +1 -0
- package/dist/{chunk-JIEVKHOH.js → chunk-7YJYIMWP.js} +7 -7
- package/dist/{chunk-YNZUYZ2O.js → chunk-A3DDEKLV.js} +2 -2
- package/dist/{chunk-FEKWKWGK.js → chunk-ARGVUTTL.js} +15 -1
- package/dist/chunk-ARGVUTTL.js.map +1 -0
- package/dist/{chunk-DYHOBKPU.js → chunk-BLZDSCIZ.js} +6 -6
- package/dist/{chunk-E2UOEI7N.js → chunk-BV2LOTMC.js} +2 -2
- package/dist/{chunk-O63ZROSY.js → chunk-BZBLPXV7.js} +4 -4
- package/dist/{chunk-OKRITX4S.js → chunk-CJ6XXM4X.js} +4 -4
- package/dist/{chunk-LV6AD6XC.js → chunk-DBI6AMNY.js} +4 -4
- package/dist/{chunk-QRRWLLXW.js → chunk-DSBC6O46.js} +2 -2
- package/dist/{chunk-3YFDGFEK.js → chunk-DVX4HDNP.js} +2 -2
- package/dist/{chunk-CJUK32UH.js → chunk-EEO7M5GU.js} +2 -2
- package/dist/{chunk-7XSCEHGA.js → chunk-EOQ6EKTS.js} +7 -7
- package/dist/{chunk-5RSK5M6M.js → chunk-FI2CQOGC.js} +63 -126
- package/dist/chunk-FI2CQOGC.js.map +1 -0
- package/dist/{chunk-Q2ERGAQO.js → chunk-FYAW5GBF.js} +33 -6
- package/dist/chunk-FYAW5GBF.js.map +1 -0
- package/dist/{chunk-AMLHEKSV.js → chunk-HI7JPDD6.js} +5 -5
- package/dist/chunk-J2AVWIMM.js +60 -0
- package/dist/chunk-J2AVWIMM.js.map +1 -0
- package/dist/{chunk-7QKIL5YF.js → chunk-J2GDA64N.js} +4 -4
- package/dist/{chunk-BAQ3ITZV.js → chunk-JFD742C3.js} +2 -2
- package/dist/{chunk-OBA75Y5O.js → chunk-JHWEL4NX.js} +61 -33
- package/dist/chunk-JHWEL4NX.js.map +1 -0
- package/dist/{chunk-HQCZT6TO.js → chunk-JVOEVTCZ.js} +5 -5
- package/dist/{chunk-WAO7UQRS.js → chunk-KANCE4MS.js} +3 -3
- package/dist/{chunk-XLU5WFSY.js → chunk-KRBPWTXW.js} +2 -2
- package/dist/{chunk-S6D7NOV7.js → chunk-L6JAALMX.js} +3 -3
- package/dist/{chunk-72HOUWAW.js → chunk-L6YTVXGN.js} +5 -3
- package/dist/{chunk-72HOUWAW.js.map → chunk-L6YTVXGN.js.map} +1 -1
- package/dist/chunk-LZNUBQ5I.js +181 -0
- package/dist/chunk-LZNUBQ5I.js.map +1 -0
- package/dist/{chunk-BECKKDYG.js → chunk-M2M4IDFU.js} +2 -2
- package/dist/{chunk-CSGBHYW6.js → chunk-M5Y42AZ4.js} +2 -2
- package/dist/chunk-MICX23P4.js +122 -0
- package/dist/chunk-MICX23P4.js.map +1 -0
- package/dist/{chunk-5CP5Z3YU.js → chunk-MPWA55CF.js} +4 -4
- package/dist/{chunk-5KK3I42O.js → chunk-NK6O4NE4.js} +13 -10
- package/dist/chunk-NK6O4NE4.js.map +1 -0
- package/dist/{chunk-RCTHCXS6.js → chunk-PJNIJIE6.js} +2 -2
- package/dist/{chunk-6ATXOJVQ.js → chunk-QADTI63U.js} +4 -4
- package/dist/{chunk-MW7P2C2C.js → chunk-QAEO52Z4.js} +2 -2
- package/dist/{chunk-5S5K73I6.js → chunk-QSOCOXVL.js} +3 -3
- package/dist/{chunk-NQCTANF3.js → chunk-QVDEGBME.js} +7 -7
- package/dist/{chunk-BQBEN44R.js → chunk-RDCIST7P.js} +2 -2
- package/dist/{chunk-HUXAIQC5.js → chunk-RZ3P4X2I.js} +2 -2
- package/dist/{chunk-WJMSND5Q.js → chunk-SCXVTNLE.js} +2 -2
- package/dist/{chunk-K6FCSB6T.js → chunk-SK2CTB3O.js} +6 -6
- package/dist/{chunk-QLJU7UUI.js → chunk-T7OIVPCO.js} +38 -3
- package/dist/chunk-T7OIVPCO.js.map +1 -0
- package/dist/{chunk-U2ILXZDG.js → chunk-TB5CRHTF.js} +2 -2
- package/dist/{chunk-SB2SEGR6.js → chunk-TIM4PXWN.js} +3 -3
- package/dist/{chunk-YDIC6LSP.js → chunk-VCQFDQM3.js} +27 -7
- package/dist/chunk-VCQFDQM3.js.map +1 -0
- package/dist/chunk-VIMMEADQ.js +164 -0
- package/dist/chunk-VIMMEADQ.js.map +1 -0
- package/dist/{chunk-6D5AMANO.js → chunk-WH3LUOCQ.js} +2 -2
- package/dist/{chunk-OWRQOYUE.js → chunk-WWR6APJR.js} +2 -2
- package/dist/{chunk-5BVAUUWL.js → chunk-X37NTEVS.js} +2 -2
- package/dist/{chunk-WW3F7DCX.js → chunk-Z2WZDVGG.js} +2 -2
- package/dist/{chunk-EXVCVXFX.js → chunk-ZH6NYB6Y.js} +3 -3
- package/dist/data-display/Alert.js +3 -3
- package/dist/data-display/Avatar.js +4 -4
- package/dist/data-display/CardKit.js +11 -11
- package/dist/data-display/Carousel.js +6 -5
- package/dist/data-display/Chart.js +11 -11
- package/dist/data-display/DataGrid.js +2 -2
- package/dist/data-display/DataViews.js +60 -35
- package/dist/data-display/FleetMap.js +9 -9
- package/dist/data-display/MapPreview.js +7 -6
- package/dist/en-US.js +1 -1
- package/dist/feedback/NotificationStatusNotice.js +4 -4
- package/dist/feedback/SequenceResolver.js +6 -6
- package/dist/form/Calendar.js +5 -5
- package/dist/form/DateRangePicker.js +10 -10
- package/dist/locales.js +5 -5
- package/dist/pt-BR.js +1 -1
- package/dist/types/components/data-display/DataViews/data-views-bar-controls.d.ts +15 -1
- package/dist/types/components/data-display/DataViews/data-views-bar-controls.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +35 -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-day-input.d.ts +7 -1
- package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts +5 -3
- package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-number-input.d.ts +10 -2
- package/dist/types/components/data-display/DataViews/data-views-number-input.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-preset-chips.d.ts +10 -0
- package/dist/types/components/data-display/DataViews/data-views-preset-chips.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-range-bounds.d.ts +35 -0
- package/dist/types/components/data-display/DataViews/data-views-range-bounds.d.ts.map +1 -0
- package/dist/types/components/data-display/DataViews/data-views-range-calendar.d.ts +35 -0
- package/dist/types/components/data-display/DataViews/data-views-range-calendar.d.ts.map +1 -0
- package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts +2 -11
- package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-range-summary.d.ts +21 -0
- package/dist/types/components/data-display/DataViews/data-views-range-summary.d.ts.map +1 -0
- package/dist/types/components/data-display/DataViews/data-views-still-anchor.d.ts +45 -0
- package/dist/types/components/data-display/DataViews/data-views-still-anchor.d.ts.map +1 -0
- package/dist/types/components/data-display/LazyImage/LazyImage.hooks.d.ts +1 -1
- package/dist/types/components/form/Calendar/Calendar.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/CalendarDay.d.ts +2 -0
- package/dist/types/components/form/Calendar/CalendarDay.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/CalendarDayCell.d.ts +2 -0
- package/dist/types/components/form/Calendar/CalendarDayCell.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/CalendarMonth.d.ts +5 -0
- package/dist/types/components/form/Calendar/CalendarMonth.d.ts.map +1 -1
- package/dist/types/en-US.data-display.d.ts.map +1 -1
- package/dist/types/pt-BR.data-display.d.ts.map +1 -1
- package/dist/user-avatar.js +5 -5
- package/package.json +1 -1
- package/src/components/data-display/DataViews/RESPONSIVE-BEHAVIOUR.md +59 -0
- package/src/components/data-display/DataViews/data-views-bar-controls.tsx +56 -1
- package/src/components/data-display/DataViews/data-views-copy.ts +36 -0
- package/src/components/data-display/DataViews/data-views-day-input.tsx +9 -1
- package/src/components/data-display/DataViews/data-views-inline-bar.tsx +5 -3
- package/src/components/data-display/DataViews/data-views-more-fields.tsx +1 -0
- package/src/components/data-display/DataViews/data-views-more-filters.tsx +82 -29
- package/src/components/data-display/DataViews/data-views-number-input.tsx +19 -9
- package/src/components/data-display/DataViews/data-views-preset-chips.tsx +165 -16
- package/src/components/data-display/DataViews/data-views-range-bounds.tsx +223 -0
- package/src/components/data-display/DataViews/data-views-range-calendar.tsx +185 -0
- package/src/components/data-display/DataViews/data-views-range-pill.tsx +71 -154
- package/src/components/data-display/DataViews/data-views-range-summary.tsx +66 -0
- package/src/components/data-display/DataViews/data-views-still-anchor.ts +93 -0
- package/src/components/form/Calendar/Calendar.md +17 -2
- package/src/components/form/Calendar/Calendar.tsx +56 -3
- package/src/components/form/Calendar/CalendarDay.tsx +33 -3
- package/src/components/form/Calendar/CalendarDayCell.tsx +4 -0
- package/src/components/form/Calendar/CalendarMonth.tsx +27 -5
- package/src/en-US.data-display.ts +12 -0
- package/src/pt-BR.data-display.ts +12 -0
- package/dist/chunk-5KK3I42O.js.map +0 -1
- package/dist/chunk-5RSK5M6M.js.map +0 -1
- package/dist/chunk-7D7CJRL7.js +0 -78
- package/dist/chunk-7D7CJRL7.js.map +0 -1
- package/dist/chunk-BO6MT2S2.js.map +0 -1
- package/dist/chunk-FEKWKWGK.js.map +0 -1
- package/dist/chunk-FJ3UZ4RC.js.map +0 -1
- package/dist/chunk-OBA75Y5O.js.map +0 -1
- package/dist/chunk-Q2ERGAQO.js.map +0 -1
- package/dist/chunk-QLJU7UUI.js.map +0 -1
- package/dist/chunk-TRYR424I.js.map +0 -1
- package/dist/chunk-X5OGIT2F.js.map +0 -1
- package/dist/chunk-XHIBFBNP.js.map +0 -1
- package/dist/chunk-YDIC6LSP.js.map +0 -1
- /package/dist/{chunk-TYXFFNPM.js.map → chunk-3OTGREQG.js.map} +0 -0
- /package/dist/{chunk-BEHT4IHH.js.map → chunk-3X2MA47R.js.map} +0 -0
- /package/dist/{chunk-6WHIJPEF.js.map → chunk-6PU5P7QT.js.map} +0 -0
- /package/dist/{chunk-JIEVKHOH.js.map → chunk-7YJYIMWP.js.map} +0 -0
- /package/dist/{chunk-YNZUYZ2O.js.map → chunk-A3DDEKLV.js.map} +0 -0
- /package/dist/{chunk-DYHOBKPU.js.map → chunk-BLZDSCIZ.js.map} +0 -0
- /package/dist/{chunk-E2UOEI7N.js.map → chunk-BV2LOTMC.js.map} +0 -0
- /package/dist/{chunk-O63ZROSY.js.map → chunk-BZBLPXV7.js.map} +0 -0
- /package/dist/{chunk-OKRITX4S.js.map → chunk-CJ6XXM4X.js.map} +0 -0
- /package/dist/{chunk-LV6AD6XC.js.map → chunk-DBI6AMNY.js.map} +0 -0
- /package/dist/{chunk-QRRWLLXW.js.map → chunk-DSBC6O46.js.map} +0 -0
- /package/dist/{chunk-3YFDGFEK.js.map → chunk-DVX4HDNP.js.map} +0 -0
- /package/dist/{chunk-CJUK32UH.js.map → chunk-EEO7M5GU.js.map} +0 -0
- /package/dist/{chunk-7XSCEHGA.js.map → chunk-EOQ6EKTS.js.map} +0 -0
- /package/dist/{chunk-AMLHEKSV.js.map → chunk-HI7JPDD6.js.map} +0 -0
- /package/dist/{chunk-7QKIL5YF.js.map → chunk-J2GDA64N.js.map} +0 -0
- /package/dist/{chunk-BAQ3ITZV.js.map → chunk-JFD742C3.js.map} +0 -0
- /package/dist/{chunk-HQCZT6TO.js.map → chunk-JVOEVTCZ.js.map} +0 -0
- /package/dist/{chunk-WAO7UQRS.js.map → chunk-KANCE4MS.js.map} +0 -0
- /package/dist/{chunk-XLU5WFSY.js.map → chunk-KRBPWTXW.js.map} +0 -0
- /package/dist/{chunk-S6D7NOV7.js.map → chunk-L6JAALMX.js.map} +0 -0
- /package/dist/{chunk-BECKKDYG.js.map → chunk-M2M4IDFU.js.map} +0 -0
- /package/dist/{chunk-CSGBHYW6.js.map → chunk-M5Y42AZ4.js.map} +0 -0
- /package/dist/{chunk-5CP5Z3YU.js.map → chunk-MPWA55CF.js.map} +0 -0
- /package/dist/{chunk-RCTHCXS6.js.map → chunk-PJNIJIE6.js.map} +0 -0
- /package/dist/{chunk-6ATXOJVQ.js.map → chunk-QADTI63U.js.map} +0 -0
- /package/dist/{chunk-MW7P2C2C.js.map → chunk-QAEO52Z4.js.map} +0 -0
- /package/dist/{chunk-5S5K73I6.js.map → chunk-QSOCOXVL.js.map} +0 -0
- /package/dist/{chunk-NQCTANF3.js.map → chunk-QVDEGBME.js.map} +0 -0
- /package/dist/{chunk-BQBEN44R.js.map → chunk-RDCIST7P.js.map} +0 -0
- /package/dist/{chunk-HUXAIQC5.js.map → chunk-RZ3P4X2I.js.map} +0 -0
- /package/dist/{chunk-WJMSND5Q.js.map → chunk-SCXVTNLE.js.map} +0 -0
- /package/dist/{chunk-K6FCSB6T.js.map → chunk-SK2CTB3O.js.map} +0 -0
- /package/dist/{chunk-U2ILXZDG.js.map → chunk-TB5CRHTF.js.map} +0 -0
- /package/dist/{chunk-SB2SEGR6.js.map → chunk-TIM4PXWN.js.map} +0 -0
- /package/dist/{chunk-6D5AMANO.js.map → chunk-WH3LUOCQ.js.map} +0 -0
- /package/dist/{chunk-OWRQOYUE.js.map → chunk-WWR6APJR.js.map} +0 -0
- /package/dist/{chunk-5BVAUUWL.js.map → chunk-X37NTEVS.js.map} +0 -0
- /package/dist/{chunk-WW3F7DCX.js.map → chunk-Z2WZDVGG.js.map} +0 -0
- /package/dist/{chunk-EXVCVXFX.js.map → chunk-ZH6NYB6Y.js.map} +0 -0
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-H2J2MTRE.js";
|
|
4
4
|
import {
|
|
5
5
|
EN_US_MAP_PREVIEW_COPY
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ARGVUTTL.js";
|
|
7
7
|
import {
|
|
8
8
|
rem
|
|
9
9
|
} from "./chunk-YKCAJ2TN.js";
|
|
@@ -46,4 +46,4 @@ export {
|
|
|
46
46
|
resolveMapPreviewProps,
|
|
47
47
|
glassStyles
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=chunk-
|
|
49
|
+
//# sourceMappingURL=chunk-M5Y42AZ4.js.map
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useDataViewsCopy
|
|
3
|
+
} from "./chunk-KHG57NAE.js";
|
|
4
|
+
import {
|
|
5
|
+
toDayString,
|
|
6
|
+
toLocalDay
|
|
7
|
+
} from "./chunk-SUTOAW7I.js";
|
|
8
|
+
import {
|
|
9
|
+
Calendar
|
|
10
|
+
} from "./chunk-FYAW5GBF.js";
|
|
11
|
+
import {
|
|
12
|
+
EN_US_DATA_VIEWS_COPY
|
|
13
|
+
} from "./chunk-ARGVUTTL.js";
|
|
14
|
+
import {
|
|
15
|
+
rem,
|
|
16
|
+
sxRem
|
|
17
|
+
} from "./chunk-YKCAJ2TN.js";
|
|
18
|
+
|
|
19
|
+
// src/components/data-display/DataViews/data-views-range-calendar.tsx
|
|
20
|
+
import Box from "@mui/material/Box/index.js";
|
|
21
|
+
import Typography from "@mui/material/Typography/index.js";
|
|
22
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
23
|
+
var CALENDAR_CLASS = "data-views-range-calendar";
|
|
24
|
+
var ROOT_SX = (theme) => ({
|
|
25
|
+
mt: { xs: 1, sm: 1.5 },
|
|
26
|
+
// Below `sm` the caption and the weekday row give up their bottom margins,
|
|
27
|
+
// so the whole popover fits a 320×568 screen under its pill (FUT-4144).
|
|
28
|
+
'& :has(> * > [data-testid="calendar-month-select"])': { mb: { xs: 0.5, sm: 2 } },
|
|
29
|
+
'& :has(> [role="columnheader"])': { mb: { xs: 0, sm: 1 } },
|
|
30
|
+
'& [role="columnheader"]': { height: { xs: rem(theme, 24), sm: rem(theme, 32) } },
|
|
31
|
+
// The days carry no column gap of their own (`Calendar`, FUT-4162), so the
|
|
32
|
+
// seven columns are what a day's 40px target is carved from below `sm`; the
|
|
33
|
+
// range band and its round endpoints are the Calendar's, untouched here.
|
|
34
|
+
// The month/year caption on ONE row at 320: the selectors give up the slack
|
|
35
|
+
// around their text before the arrows are pushed onto a second row.
|
|
36
|
+
'& [data-testid="calendar-month-select"], & [data-testid="calendar-year-select"]': { px: 0.5, minWidth: 0 },
|
|
37
|
+
[`& .${CALENDAR_CLASS}`]: {
|
|
38
|
+
p: 0,
|
|
39
|
+
boxShadow: "none",
|
|
40
|
+
backgroundColor: "transparent",
|
|
41
|
+
backgroundImage: "none",
|
|
42
|
+
// A tapped day already rings itself; the whole grid framed in the primary
|
|
43
|
+
// colour after every tap is noise in a popover. The frame stays for the
|
|
44
|
+
// keyboard reaching the grid itself.
|
|
45
|
+
"&:focus-within": { outline: "none" },
|
|
46
|
+
"&:focus-visible": {
|
|
47
|
+
outline: (theme2) => `${rem(theme2, 2)} solid`,
|
|
48
|
+
outlineColor: "primary.main",
|
|
49
|
+
outlineOffset: sxRem(2)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
function rangeOf(value) {
|
|
54
|
+
return {
|
|
55
|
+
start: toLocalDay(typeof value.min === "string" ? value.min : null),
|
|
56
|
+
end: toLocalDay(typeof value.max === "string" ? value.max : null)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function rangeFromCalendar(previous, picked) {
|
|
60
|
+
const min = dayOf(picked.start);
|
|
61
|
+
const max = dayOf(picked.end) ?? keptEnd(previous, min);
|
|
62
|
+
return { ...min ? { min } : {}, ...max ? { max } : {} };
|
|
63
|
+
}
|
|
64
|
+
var dayOf = (date) => date ? toDayString(date) : void 0;
|
|
65
|
+
function keptEnd(previous, min) {
|
|
66
|
+
if (previous.min != null || typeof previous.max !== "string") return void 0;
|
|
67
|
+
return min && min <= previous.max ? previous.max : void 0;
|
|
68
|
+
}
|
|
69
|
+
function openingMonth(value, months) {
|
|
70
|
+
const end = toLocalDay(typeof value.max === "string" ? value.max : null);
|
|
71
|
+
const anchor = end ?? /* @__PURE__ */ new Date();
|
|
72
|
+
return new Date(anchor.getFullYear(), anchor.getMonth() - (months > 1 ? 1 : 0), 1);
|
|
73
|
+
}
|
|
74
|
+
function DayRangeCalendar({
|
|
75
|
+
fieldLabel,
|
|
76
|
+
value,
|
|
77
|
+
onChange,
|
|
78
|
+
months,
|
|
79
|
+
viewKey,
|
|
80
|
+
testId
|
|
81
|
+
}) {
|
|
82
|
+
const copy = useDataViewsCopy().filters.dayCalendar ?? EN_US_DATA_VIEWS_COPY.filters.dayCalendar;
|
|
83
|
+
const range = rangeOf(value);
|
|
84
|
+
const pick = (picked) => onChange(rangeFromCalendar(value, picked));
|
|
85
|
+
const waitingForEnd = Boolean(range.start && !range.end);
|
|
86
|
+
return /* @__PURE__ */ jsxs(Box, { sx: ROOT_SX, "data-testid": `${testId}-calendar`, children: [
|
|
87
|
+
/* @__PURE__ */ jsx(
|
|
88
|
+
Calendar,
|
|
89
|
+
{
|
|
90
|
+
ariaLabel: copy.label(fieldLabel),
|
|
91
|
+
className: CALENDAR_CLASS,
|
|
92
|
+
selectionMode: "range",
|
|
93
|
+
locale: copy.locale,
|
|
94
|
+
labels: copy.caption,
|
|
95
|
+
firstDayOfWeek: 0,
|
|
96
|
+
numberOfMonths: months,
|
|
97
|
+
showOutsideDays: months === 1,
|
|
98
|
+
captionLayout: months > 1 ? "arrows" : "selectors",
|
|
99
|
+
defaultMonth: openingMonth(value, months),
|
|
100
|
+
range,
|
|
101
|
+
onIntermediateRangeChange: pick
|
|
102
|
+
},
|
|
103
|
+
viewKey
|
|
104
|
+
),
|
|
105
|
+
/* @__PURE__ */ jsx(
|
|
106
|
+
Typography,
|
|
107
|
+
{
|
|
108
|
+
component: "p",
|
|
109
|
+
"aria-live": "polite",
|
|
110
|
+
"data-testid": `${testId}-calendar-hint`,
|
|
111
|
+
sx: { mt: { xs: 0.25, sm: 1 }, fontSize: sxRem(12), color: "text.secondary" },
|
|
112
|
+
children: waitingForEnd ? copy.pickEnd : copy.pickStart
|
|
113
|
+
}
|
|
114
|
+
)
|
|
115
|
+
] });
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export {
|
|
119
|
+
rangeFromCalendar,
|
|
120
|
+
DayRangeCalendar
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=chunk-MICX23P4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/DataViews/data-views-range-calendar.tsx"],"sourcesContent":["'use client';\n\n/**\n * The range calendar under a day filter's `De`/`Até` boxes (FUT-4144).\n *\n * The owner picked it ALWAYS OPEN (option B of the prototype): a period is\n * three taps — open the filter, the first day, the last day — against five for\n * a calendar button in each box and four for a link to a separate sheet. It\n * sits BELOW the boxes, with no button of its own, so the typed path is not one\n * keystroke longer than it was.\n *\n * The boxes and the calendar are two views of ONE range: a tap writes the\n * boxes, a typed day moves and repaints the calendar, an impossible typed day\n * (which writes nothing) leaves it alone, and \"Limpar\" empties both.\n *\n * It is `Calendar` in `selectionMode=\"range\"`, the same one `DateRangePicker`\n * mounts — not a second calendar. Its own rule picks the period: the first tap\n * starts it, the second closes it, and a second tap BEFORE the first swaps the\n * two, so the boxes never show a period backwards.\n */\nimport Box from '@mui/material/Box/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport React from 'react';\n\nimport { EN_US_DATA_VIEWS_COPY } from '../../../en-US.data-display';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport { rem, sxRem } from '../../../tokens/relative';\nimport { Calendar, type DateRange } from '../../form/Calendar';\nimport { toDayString, toLocalDay } from '../../form/DateRangePicker/DateRangePicker.dates';\nimport type { DataViewsDayCalendarCopy } from './data-views-copy';\nimport { useDataViewsCopy } from './data-views-copy-context';\nimport type { RangeValue } from './data-views-types';\n\nconst CALENDAR_CLASS = 'data-views-range-calendar';\n\n/**\n * `Calendar` draws its own `Paper` with 24px of padding and a shadow. Inside\n * the filter's popover that reads as a card inside a card, so the inner frame\n * is flattened through the class hook the component offers for this — the\n * same thing `DateRangePicker` does.\n */\nconst ROOT_SX = (theme: Theme) => ({\n mt: { xs: 1, sm: 1.5 },\n // Below `sm` the caption and the weekday row give up their bottom margins,\n // so the whole popover fits a 320×568 screen under its pill (FUT-4144).\n '& :has(> * > [data-testid=\"calendar-month-select\"])': { mb: { xs: 0.5, sm: 2 } },\n '& :has(> [role=\"columnheader\"])': { mb: { xs: 0, sm: 1 } },\n '& [role=\"columnheader\"]': { height: { xs: rem(theme, 24), sm: rem(theme, 32) } },\n // The days carry no column gap of their own (`Calendar`, FUT-4162), so the\n // seven columns are what a day's 40px target is carved from below `sm`; the\n // range band and its round endpoints are the Calendar's, untouched here.\n // The month/year caption on ONE row at 320: the selectors give up the slack\n // around their text before the arrows are pushed onto a second row.\n '& [data-testid=\"calendar-month-select\"], & [data-testid=\"calendar-year-select\"]': { px: 0.5, minWidth: 0 },\n [`& .${CALENDAR_CLASS}`]: {\n p: 0,\n boxShadow: 'none',\n backgroundColor: 'transparent',\n backgroundImage: 'none',\n // A tapped day already rings itself; the whole grid framed in the primary\n // colour after every tap is noise in a popover. The frame stays for the\n // keyboard reaching the grid itself.\n '&:focus-within': { outline: 'none' },\n '&:focus-visible': {\n outline: (theme: Theme) => `${rem(theme, 2)} solid`,\n outlineColor: 'primary.main',\n outlineOffset: sxRem(2),\n },\n },\n});\n\n/** The two ends of a range, as `Calendar` reads them. */\nfunction rangeOf(value: RangeValue): DateRange {\n return {\n start: toLocalDay(typeof value.min === 'string' ? value.min : null),\n end: toLocalDay(typeof value.max === 'string' ? value.max : null),\n };\n}\n\n/**\n * What a tap on the calendar makes of the range.\n *\n * `Calendar` reports the period it holds after the tap: a fresh start (`end`\n * null) or a closed one, already in order. The one case it cannot see is a\n * range with only `Até` — typed, or left by a saved view — where its first tap\n * would drop that `Até`. A first day on or before it keeps it, so \"até 15/10\"\n * plus one tap on the 3rd is 03/10–15/10, as the prototype does.\n */\nexport function rangeFromCalendar(previous: RangeValue, picked: DateRange): RangeValue {\n const min = dayOf(picked.start);\n const max = dayOf(picked.end) ?? keptEnd(previous, min);\n return { ...(min ? { min } : {}), ...(max ? { max } : {}) };\n}\n\nconst dayOf = (date: Date | null | undefined): string | undefined => (date ? toDayString(date) : undefined);\n\n/** The `Até` of a range that has ONLY one, when the new first day is on or before it. */\nfunction keptEnd(previous: RangeValue, min: string | undefined): string | undefined {\n if (previous.min != null || typeof previous.max !== 'string') return undefined;\n return min && min <= previous.max ? previous.max : undefined;\n}\n\n/**\n * The month the calendar opens on while `De` is empty. With `De` set it opens\n * on De's month, which `Calendar` does by itself.\n *\n * With two months the current month sits on the RIGHT (setembro | outubro), so\n * the days a filter usually asks about — the ones just past — are on screen;\n * with only `Até` set, its month takes that place.\n */\nfunction openingMonth(value: RangeValue, months: number): Date | undefined {\n const end = toLocalDay(typeof value.max === 'string' ? value.max : null);\n const anchor = end ?? new Date();\n return new Date(anchor.getFullYear(), anchor.getMonth() - (months > 1 ? 1 : 0), 1);\n}\n\n/** Props of {@link DayRangeCalendar}. */\nexport interface DayRangeCalendarProps {\n /** The filter's own label (\"Data\"), which names the calendar. */\n fieldLabel: string;\n value: RangeValue;\n /** Called with the range a tap leaves; never for a typed day. */\n onChange: (range: RangeValue) => void;\n /**\n * Months side by side. Two read as a period at a glance where there is room;\n * one, with the month/year selectors, where there is not.\n */\n months: 1 | 2;\n /**\n * Changes when the range moved from OUTSIDE the calendar (typed, a preset,\n * \"Limpar\"), so the calendar re-opens on it. Never for its own taps: a\n * calendar that jumped under the finger picking in it would be unusable.\n */\n viewKey: string;\n testId: string;\n}\n\nexport function DayRangeCalendar({\n fieldLabel,\n value,\n onChange,\n months,\n viewKey,\n testId,\n}: DayRangeCalendarProps): React.JSX.Element {\n const copy: DataViewsDayCalendarCopy =\n useDataViewsCopy().filters.dayCalendar ?? (EN_US_DATA_VIEWS_COPY.filters.dayCalendar as DataViewsDayCalendarCopy);\n const range = rangeOf(value);\n const pick = (picked: DateRange) => onChange(rangeFromCalendar(value, picked));\n const waitingForEnd = Boolean(range.start && !range.end);\n\n return (\n <Box sx={ROOT_SX} data-testid={`${testId}-calendar`}>\n <Calendar\n key={viewKey}\n ariaLabel={copy.label(fieldLabel)}\n className={CALENDAR_CLASS}\n selectionMode=\"range\"\n locale={copy.locale}\n labels={copy.caption}\n // Sunday first, as a pt-BR calendar reads (`D S T Q Q S S`) and as the\n // presets' \"Esta semana\" counts.\n firstDayOfWeek={0}\n numberOfMonths={months}\n // Side by side, a day of the next month in this one is the same day\n // twice; one month alone keeps them, muted, as a six-week frame.\n showOutsideDays={months === 1}\n captionLayout={months > 1 ? 'arrows' : 'selectors'}\n defaultMonth={openingMonth(value, months)}\n range={range}\n // The intermediate callback does the work: the other fires only on the\n // tap that CLOSES a period, so the first tap would write nothing.\n onIntermediateRangeChange={pick}\n />\n <Typography\n component=\"p\"\n aria-live=\"polite\"\n data-testid={`${testId}-calendar-hint`}\n sx={{ mt: { xs: 0.25, sm: 1 }, fontSize: sxRem(12), color: 'text.secondary' }}\n >\n {waitingForEnd ? copy.pickEnd : copy.pickStart}\n </Typography>\n </Box>\n );\n}\n"],"mappings":"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","names":["theme"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isoToMasked
|
|
3
|
+
} from "./chunk-L6YTVXGN.js";
|
|
1
4
|
import {
|
|
2
5
|
dayCount,
|
|
3
6
|
isAfterDay
|
|
4
7
|
} from "./chunk-SUTOAW7I.js";
|
|
5
|
-
import {
|
|
6
|
-
isoToMasked
|
|
7
|
-
} from "./chunk-72HOUWAW.js";
|
|
8
8
|
import {
|
|
9
9
|
EN_US_UI_LABELS
|
|
10
10
|
} from "./chunk-XOXXG7Q5.js";
|
|
@@ -65,4 +65,4 @@ export {
|
|
|
65
65
|
resolveQuickRanges,
|
|
66
66
|
activeQuickRangeId
|
|
67
67
|
};
|
|
68
|
-
//# sourceMappingURL=chunk-
|
|
68
|
+
//# sourceMappingURL=chunk-MPWA55CF.js.map
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ClearAllControl,
|
|
3
|
-
CloseSearchControl
|
|
4
|
-
|
|
3
|
+
CloseSearchControl,
|
|
4
|
+
useBarFrozen
|
|
5
|
+
} from "./chunk-T7OIVPCO.js";
|
|
5
6
|
import {
|
|
6
7
|
MoreFilters
|
|
7
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JHWEL4NX.js";
|
|
8
9
|
import {
|
|
9
10
|
PillControl
|
|
10
11
|
} from "./chunk-AJ6KFHEE.js";
|
|
11
|
-
import {
|
|
12
|
-
QuickChip
|
|
13
|
-
} from "./chunk-AT6UKTH4.js";
|
|
14
12
|
import {
|
|
15
13
|
isQuickActive
|
|
16
14
|
} from "./chunk-KYUEO2IO.js";
|
|
17
15
|
import {
|
|
18
16
|
RangePill
|
|
19
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-FI2CQOGC.js";
|
|
18
|
+
import {
|
|
19
|
+
QuickChip
|
|
20
|
+
} from "./chunk-AT6UKTH4.js";
|
|
20
21
|
import {
|
|
21
22
|
CollapsedSearch,
|
|
22
23
|
InlineKeyword
|
|
@@ -201,12 +202,13 @@ function FilterSlots({
|
|
|
201
202
|
testIdPrefix,
|
|
202
203
|
clearKey
|
|
203
204
|
}) {
|
|
205
|
+
const clear = useBarFrozen(onControlOpenChange);
|
|
204
206
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
205
207
|
inline.map((field) => /* @__PURE__ */ jsx(
|
|
206
208
|
InlineControl,
|
|
207
209
|
{
|
|
208
210
|
field,
|
|
209
|
-
onOpenChange:
|
|
211
|
+
onOpenChange: clear.onOpenChange,
|
|
210
212
|
pills,
|
|
211
213
|
ranges,
|
|
212
214
|
onTogglePill,
|
|
@@ -221,7 +223,7 @@ function FilterSlots({
|
|
|
221
223
|
MoreFilters,
|
|
222
224
|
{
|
|
223
225
|
clearKey,
|
|
224
|
-
onOpenChange:
|
|
226
|
+
onOpenChange: clear.onOpenChange,
|
|
225
227
|
onClearAll,
|
|
226
228
|
anyApplied: activeFilterCount > 0,
|
|
227
229
|
compact: compactControls,
|
|
@@ -239,6 +241,7 @@ function FilterSlots({
|
|
|
239
241
|
{
|
|
240
242
|
onClearAll,
|
|
241
243
|
compact: compactControls,
|
|
244
|
+
frozen: clear.frozen,
|
|
242
245
|
testIdPrefix
|
|
243
246
|
}
|
|
244
247
|
)
|
|
@@ -248,4 +251,4 @@ function FilterSlots({
|
|
|
248
251
|
export {
|
|
249
252
|
InlineFilterControls
|
|
250
253
|
};
|
|
251
|
-
//# sourceMappingURL=chunk-
|
|
254
|
+
//# sourceMappingURL=chunk-NK6O4NE4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/DataViews/data-views-inline-bar.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The INLINE filter bar — the horizontal row of controls a grid renders instead\n * of the slide-in panel on a wide screen (`inlineFilters`): the compact keyword\n * box, one pill per facet, one pill per range, and \"Mais N\" for whatever had no\n * room.\n *\n * There is no \"Filtros ativos\" row beneath it. Listing every applied filter a\n * second time, under the controls already showing them, was the same\n * information twice — and put the ✕ that removes a filter somewhere other than\n * the control that applied it. Each pill carries its own.\n *\n * Split from `data-views-filter-panel` because they are two surfaces, not one:\n * the panel is a column of stacked fields, this is a row of pills, and the only\n * thing they share is the prop shape they are both driven by.\n */\nimport Box from \"@mui/material/Box/index.js\";\nimport { useState } from \"react\";\n\n\nimport { ClearAllControl, CloseSearchControl, useBarFrozen } from \"./data-views-bar-controls\";\nimport type { GridFilterPanelProps } from \"./data-views-filter-panel\";\nimport { MoreFilters } from \"./data-views-more-filters\";\nimport type { OverflowField, OverflowSplit } from \"./data-views-overflow\";\nimport { CollapsedSearch, InlineKeyword } from \"./data-views-search\";\nimport { PillControl } from \"./data-views-category-pill\";\nimport { isQuickActive } from \"./data-views-overflow\";\nimport { QuickChip } from \"./data-views-quick-chip\";\nimport { RangePill } from \"./data-views-range-pill\";\nimport type { QuickFilterConfig, RangeValue } from \"./data-views-types\";\n\n\n\n/* ── Inline (second-line) filter bar ─────────────────────────────────────── */\n\n/** The search, in whichever of its two forms the measurement asked for. */\nfunction SearchSlot({\n search,\n onSearchChange,\n collapsed,\n expanded,\n fill,\n onOpen,\n onEscape,\n testIdPrefix,\n}: {\n search: string;\n onSearchChange: (value: string) => void;\n collapsed: boolean;\n expanded: boolean;\n /** The box owns the cluster alone, so it may shrink below its usual floor. */\n fill: boolean;\n onOpen: () => void;\n onEscape: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n if (collapsed) {\n return (\n <CollapsedSearch active={search !== \"\"} onOpen={onOpen} testId={`${testIdPrefix}-search-all`} />\n );\n }\n return (\n <InlineKeyword\n value={search}\n onChange={onSearchChange}\n testId={`${testIdPrefix}-search-all`}\n autoFocus={expanded}\n onEscape={onEscape}\n fill={fill}\n />\n );\n}\n\n/** Props the inline bar needs (the slide-in panel's, minus its own chrome). */\ntype InlineFilterBarProps<T extends Record<string, unknown>> = Pick<\n GridFilterPanelProps<T>,\n | \"testIdPrefix\"\n | \"search\"\n | \"fields\"\n | \"rangeFields\"\n | \"pills\"\n | \"ranges\"\n | \"onSearchChange\"\n | \"onTogglePill\"\n | \"onChangeRange\"\n | \"onClearField\"\n | \"onClearAll\"\n> & {\n /** The measured degradation state, computed once in `GridShell`. */\n split: OverflowSplit<T>;\n};\n\n/**\n * One filter control on the bar: a multi-select pill or a min/max range. The\n * two are the same thing from the bar's point of view — a labelled control that\n * writes into the view state — so which one to build is decided here rather\n * than in the bar's own render.\n */\nfunction InlineControl<T extends Record<string, unknown>>({\n field,\n pills,\n ranges,\n onTogglePill,\n onChangeRange,\n onClearField,\n onToggleQuick,\n onOpenChange,\n testIdPrefix,\n}: {\n field: OverflowField<T>;\n onToggleQuick?: (quick: QuickFilterConfig) => void;\n onOpenChange?: (open: boolean) => void;\n pills: Record<string, string[]>;\n ranges: Record<string, RangeValue>;\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onChangeRange: (fieldId: string, range: RangeValue) => void;\n onClearField: (fieldId: string) => void;\n testIdPrefix: string;\n}): React.JSX.Element | null {\n if (field.group === \"quick\" && field.quick) {\n const quick = field.quick;\n return (\n <QuickChip\n quick={quick}\n active={isQuickActive(quick, pills)}\n onToggle={() => onToggleQuick?.(quick)}\n testIdPrefix={testIdPrefix}\n />\n );\n }\n if (field.group === \"pill\" && field.pill) {\n return (\n <PillControl\n fieldId={field.id}\n pill={field.pill}\n selected={pills[field.id] ?? []}\n onTogglePill={onTogglePill}\n onClearField={onClearField}\n onOpenChange={onOpenChange}\n testIdPrefix={testIdPrefix}\n />\n );\n }\n if (field.group === \"range\" && field.range) {\n return (\n <RangePill\n field={field.range}\n value={ranges[field.id] ?? {}}\n onChange={(range) => onChangeRange(field.id, range)}\n onOpenChange={onOpenChange}\n testIdPrefix={testIdPrefix}\n />\n );\n }\n return null;\n}\n\n/**\n * WHICH OF THE SEARCH'S THREE STATES THE BAR IS IN.\n *\n * Resting, expanded-and-sharing, or expanded-and-owning-the-cluster. They were\n * one boolean until a phone showed why they are not:\n *\n * - `fill` — an expanded box drops its usual 200px floor and takes whatever the\n * cluster has. That floor is right for a box that lives on the row; it is\n * wrong for one expanded into a cluster the ladder sized for an icon, where\n * insisting on it made the row scroll sideways (154px of overhang at 320px,\n * 84px at 390px, 42px at 500px).\n * - `takesOver` — the narrower case, where shrinking has run out of road and\n * what is left would be too small to read. Only then do the filters stand\n * down. A large phone has room to share, and evicting them there cost the\n * operator their filters for nothing.\n *\n * Once CLICKED the box stays open until Escape or its ✕, so typing is never\n * interrupted by a re-measure.\n */\nfunction useSearchMode<T extends Record<string, unknown>>(\n split: OverflowSplit<T>,\n): {\n showBox: boolean;\n expanded: boolean;\n fill: boolean;\n takesOver: boolean;\n open: () => void;\n close: () => void;\n} {\n const [searchOpen, setSearchOpen] = useState(false);\n return {\n showBox: !split.searchCollapsed || searchOpen,\n expanded: searchOpen,\n fill: split.searchCollapsed && searchOpen,\n takesOver: searchOpen && split.searchTakeover,\n open: () => setSearchOpen(true),\n close: () => setSearchOpen(false),\n };\n}\n\n/**\n * The filter CONTROLS alone — search, the fields that fit, and \"Mais N\" for the\n * ones that don't — with no row chrome of its own, because it is rendered ON\n * the toolbar line rather than under it (`ContentToolbar`'s `leadingControls`).\n *\n * The measurement driving the collapse lives on the toolbar ROW, not here —\n * see the note on `split` below.\n */\nexport function InlineFilterControls<T extends Record<string, unknown>>({\n testIdPrefix,\n pills,\n ranges,\n search,\n onSearchChange,\n onTogglePill,\n onChangeRange,\n onClearField,\n split,\n onClearAll,\n activeFilterCount,\n onControlOpenChange,\n onToggleQuick,\n clearKey,\n}: Omit<InlineFilterBarProps<T>, \"fields\" | \"rangeFields\"> & {\n /** Changes on every clear-all; the \"Mais\" fields are keyed on it (FUT-4144). */\n clearKey?: number;\n /** Presses or releases a quick chip — see `QuickFilterConfig`. */\n onToggleQuick?: (quick: QuickFilterConfig) => void;\n /** How many filters are applied — decides whether \"Limpar\" is on the bar at all. */\n activeFilterCount: number;\n /** Reports a control opening/closing so the shell can freeze the measurement. */\n onControlOpenChange?: (open: boolean) => void;\n}): React.JSX.Element {\n // MEASURED, not breakpointed — and measured ONCE, in the shell, because the\n // toolbar around it needs the same answer to drop its labels. The measured\n // element is the whole toolbar ROW (see `GridToolbar`), not this cluster:\n // `RESERVED` prices the counter and Exibir/Exportar, so measuring only the\n // controls would charge for that furniture a second time and collapse the\n // ladder while the row still had hundreds of free pixels.\n const { inline, overflow, compactControls, clearAllHidden } = split;\n const { showBox, expanded, fill, takesOver, open, close } = useSearchMode(split);\n return (\n <Box\n data-testid={`${testIdPrefix}-inline-filters`}\n sx={{\n display: \"flex\",\n flexWrap: \"nowrap\",\n alignItems: \"center\",\n gap: 1,\n minWidth: 0,\n // No squeezing: if the estimate over-packs, the row must overflow (and\n // the next measure sheds a control), not shrink labels to an ellipsis.\n \"& > *\": { flexShrink: 0 },\n }}\n >\n <SearchSlot\n search={search}\n onSearchChange={onSearchChange}\n collapsed={!showBox}\n expanded={expanded}\n fill={fill}\n onOpen={open}\n onEscape={close}\n testIdPrefix={testIdPrefix}\n />\n {takesOver && <CloseSearchControl onClose={close} testIdPrefix={testIdPrefix} />}\n {!takesOver && (\n <FilterSlots\n inline={inline}\n overflow={overflow}\n pills={pills}\n ranges={ranges}\n onTogglePill={onTogglePill}\n onChangeRange={onChangeRange}\n onClearField={onClearField}\n onToggleQuick={onToggleQuick}\n onClearAll={onClearAll}\n onControlOpenChange={onControlOpenChange}\n activeFilterCount={activeFilterCount}\n compactControls={compactControls}\n clearAllHidden={clearAllHidden}\n testIdPrefix={testIdPrefix}\n clearKey={clearKey}\n />\n )}\n </Box>\n );\n}\n\n/**\n * Everything to the right of the search: the fields that fit, \"Mais N\" for the\n * ones that don't, and \"Limpar\". Split out of `InlineFilterControls` only to\n * keep that function inside the size gate — the three are one cluster and the\n * order they render in is the order they shed in.\n */\nfunction FilterSlots<T extends Record<string, unknown>>({\n inline,\n overflow,\n pills,\n ranges,\n onTogglePill,\n onChangeRange,\n onClearField,\n onToggleQuick,\n onClearAll,\n onControlOpenChange,\n activeFilterCount,\n compactControls,\n clearAllHidden,\n testIdPrefix,\n clearKey,\n}: {\n clearKey?: number;\n onToggleQuick?: (quick: QuickFilterConfig) => void;\n inline: OverflowField<T>[];\n overflow: OverflowField<T>[];\n pills: Record<string, string[]>;\n ranges: Record<string, RangeValue>;\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onChangeRange: (fieldId: string, range: RangeValue) => void;\n onClearField: (fieldId: string) => void;\n onClearAll: () => void;\n onControlOpenChange?: (open: boolean) => void;\n activeFilterCount: number;\n compactControls: boolean;\n clearAllHidden: boolean;\n testIdPrefix: string;\n}): React.JSX.Element {\n const clear = useBarFrozen(onControlOpenChange);\n return (\n <>\n {inline.map((field) => (\n <InlineControl\n key={field.id}\n field={field}\n onOpenChange={clear.onOpenChange}\n pills={pills}\n ranges={ranges}\n onTogglePill={onTogglePill}\n onChangeRange={onChangeRange}\n onClearField={onClearField}\n onToggleQuick={onToggleQuick}\n testIdPrefix={testIdPrefix}\n />\n ))}\n <MoreFilters\n clearKey={clearKey}\n onOpenChange={clear.onOpenChange}\n onClearAll={onClearAll}\n anyApplied={activeFilterCount > 0}\n compact={compactControls}\n fields={overflow}\n pills={pills}\n ranges={ranges}\n onTogglePill={onTogglePill}\n onChangeRange={onChangeRange}\n onToggleQuick={onToggleQuick}\n testIdPrefix={testIdPrefix}\n />\n {activeFilterCount > 0 && !clearAllHidden && (\n <ClearAllControl\n onClearAll={onClearAll}\n compact={compactControls}\n frozen={clear.frozen}\n testIdPrefix={testIdPrefix}\n />\n )}\n </>\n );\n}\n\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Alert
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QVDEGBME.js";
|
|
4
4
|
|
|
5
5
|
// src/components/data-display/CardKit/card-actions-context.tsx
|
|
6
6
|
import { createContext, useCallback, useContext, useState } from "react";
|
|
@@ -58,4 +58,4 @@ export {
|
|
|
58
58
|
CardActionsProvider,
|
|
59
59
|
useCardActions
|
|
60
60
|
};
|
|
61
|
-
//# sourceMappingURL=chunk-
|
|
61
|
+
//# sourceMappingURL=chunk-PJNIJIE6.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
buildChartContext
|
|
3
|
-
} from "./chunk-TZC6KIK2.js";
|
|
4
1
|
import {
|
|
5
2
|
ChartLegendContent,
|
|
6
3
|
ChartTooltipContent
|
|
7
4
|
} from "./chunk-RIRTW5EU.js";
|
|
5
|
+
import {
|
|
6
|
+
buildChartContext
|
|
7
|
+
} from "./chunk-TZC6KIK2.js";
|
|
8
8
|
import {
|
|
9
9
|
uiInk
|
|
10
10
|
} from "./chunk-XJAD6E3V.js";
|
|
@@ -318,4 +318,4 @@ function renderChartByType(props, theme) {
|
|
|
318
318
|
export {
|
|
319
319
|
renderChartByType
|
|
320
320
|
};
|
|
321
|
-
//# sourceMappingURL=chunk-
|
|
321
|
+
//# sourceMappingURL=chunk-QADTI63U.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MapPreview
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CJ6XXM4X.js";
|
|
4
4
|
|
|
5
5
|
// src/components/data-display/FleetMap/FleetCanvas.tsx
|
|
6
6
|
import Box from "@mui/material/Box/index.js";
|
|
@@ -38,4 +38,4 @@ function FleetCanvas({
|
|
|
38
38
|
export {
|
|
39
39
|
FleetCanvas
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=chunk-
|
|
41
|
+
//# sourceMappingURL=chunk-QAEO52Z4.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
statusMessage
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MPWA55CF.js";
|
|
4
4
|
import {
|
|
5
5
|
DayBoundInput
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-L6YTVXGN.js";
|
|
7
7
|
|
|
8
8
|
// src/components/form/DateRangePicker/DateRangePickerFields.tsx
|
|
9
9
|
import Box from "@mui/material/Box/index.js";
|
|
@@ -64,4 +64,4 @@ function DateRangeFields({
|
|
|
64
64
|
export {
|
|
65
65
|
DateRangeFields
|
|
66
66
|
};
|
|
67
|
-
//# sourceMappingURL=chunk-
|
|
67
|
+
//# sourceMappingURL=chunk-QSOCOXVL.js.map
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AlertContent
|
|
3
|
+
} from "./chunk-7HZ36QDH.js";
|
|
1
4
|
import {
|
|
2
5
|
alertEmphasisStyles,
|
|
3
6
|
alertLayoutStyles,
|
|
@@ -6,17 +9,14 @@ import {
|
|
|
6
9
|
getColorFromTheme,
|
|
7
10
|
getVariantIcon
|
|
8
11
|
} from "./chunk-L5RS6QAT.js";
|
|
9
|
-
import {
|
|
10
|
-
resolveIconPlacement
|
|
11
|
-
} from "./chunk-QXUXO22M.js";
|
|
12
|
-
import {
|
|
13
|
-
AlertContent
|
|
14
|
-
} from "./chunk-7HZ36QDH.js";
|
|
15
12
|
import {
|
|
16
13
|
resolveAlertProps,
|
|
17
14
|
resolveAnnouncement,
|
|
18
15
|
testIdFor
|
|
19
16
|
} from "./chunk-L7VH6IMR.js";
|
|
17
|
+
import {
|
|
18
|
+
resolveIconPlacement
|
|
19
|
+
} from "./chunk-QXUXO22M.js";
|
|
20
20
|
import {
|
|
21
21
|
ACTIVE,
|
|
22
22
|
ALERT_EASING,
|
|
@@ -277,4 +277,4 @@ export {
|
|
|
277
277
|
Alert,
|
|
278
278
|
ALERT_ONLY_PROPS
|
|
279
279
|
};
|
|
280
|
-
//# sourceMappingURL=chunk-
|
|
280
|
+
//# sourceMappingURL=chunk-QVDEGBME.js.map
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-2ORD2FMN.js";
|
|
18
18
|
import {
|
|
19
19
|
Alert
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-QVDEGBME.js";
|
|
21
21
|
import {
|
|
22
22
|
Button
|
|
23
23
|
} from "./chunk-YOXYSAUI.js";
|
|
@@ -160,4 +160,4 @@ export {
|
|
|
160
160
|
SequenceStepBody,
|
|
161
161
|
SequenceDoneBody
|
|
162
162
|
};
|
|
163
|
-
//# sourceMappingURL=chunk-
|
|
163
|
+
//# sourceMappingURL=chunk-RDCIST7P.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
defaultMessages,
|
|
4
4
|
resolveDayRange,
|
|
5
5
|
resolveQuickRanges
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MPWA55CF.js";
|
|
7
7
|
import {
|
|
8
8
|
toDayString,
|
|
9
9
|
todayIn
|
|
@@ -69,4 +69,4 @@ function useDateRangePicker({
|
|
|
69
69
|
export {
|
|
70
70
|
useDateRangePicker
|
|
71
71
|
};
|
|
72
|
-
//# sourceMappingURL=chunk-
|
|
72
|
+
//# sourceMappingURL=chunk-RZ3P4X2I.js.map
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-4SQ2WCZA.js";
|
|
13
13
|
import {
|
|
14
14
|
Alert
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-QVDEGBME.js";
|
|
16
16
|
|
|
17
17
|
// src/components/data-display/DataViews/data-views-table-parts.tsx
|
|
18
18
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -121,4 +121,4 @@ export {
|
|
|
121
121
|
ViewsMenuSlot,
|
|
122
122
|
ViewDialogs
|
|
123
123
|
};
|
|
124
|
-
//# sourceMappingURL=chunk-
|
|
124
|
+
//# sourceMappingURL=chunk-SCXVTNLE.js.map
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
containerStyles,
|
|
3
|
-
frameBox
|
|
4
|
-
} from "./chunk-Z64TMGYT.js";
|
|
5
1
|
import {
|
|
6
2
|
CarouselTrack
|
|
7
3
|
} from "./chunk-6FDLBWTE.js";
|
|
@@ -10,7 +6,11 @@ import {
|
|
|
10
6
|
} from "./chunk-RUIV5TVA.js";
|
|
11
7
|
import {
|
|
12
8
|
CarouselChrome
|
|
13
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TB5CRHTF.js";
|
|
10
|
+
import {
|
|
11
|
+
containerStyles,
|
|
12
|
+
frameBox
|
|
13
|
+
} from "./chunk-Z64TMGYT.js";
|
|
14
14
|
import {
|
|
15
15
|
withDefaults
|
|
16
16
|
} from "./chunk-HPK33ACY.js";
|
|
@@ -151,4 +151,4 @@ var Carousel = (props) => {
|
|
|
151
151
|
export {
|
|
152
152
|
Carousel
|
|
153
153
|
};
|
|
154
|
-
//# sourceMappingURL=chunk-
|
|
154
|
+
//# sourceMappingURL=chunk-SK2CTB3O.js.map
|
|
@@ -18,18 +18,48 @@ import {
|
|
|
18
18
|
import CloseRoundedIcon from "@mui/icons-material/CloseRounded";
|
|
19
19
|
import FilterAltOffRoundedIcon from "@mui/icons-material/FilterAltOffRounded";
|
|
20
20
|
import Tooltip from "@mui/material/Tooltip/index.js";
|
|
21
|
+
import { useLayoutEffect, useRef, useState } from "react";
|
|
21
22
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
23
|
+
function useBarFrozen(report) {
|
|
24
|
+
const [openCount, setOpenCount] = useState(0);
|
|
25
|
+
return {
|
|
26
|
+
frozen: openCount > 0,
|
|
27
|
+
onOpenChange: (open) => {
|
|
28
|
+
setOpenCount((count) => Math.max(0, count + (open ? 1 : -1)));
|
|
29
|
+
report?.(open);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function useCutByRow(ref, frozen) {
|
|
34
|
+
const [cut, setCut] = useState(false);
|
|
35
|
+
useLayoutEffect(() => {
|
|
36
|
+
if (!frozen) {
|
|
37
|
+
setCut(false);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const button = ref.current;
|
|
41
|
+
let row = button?.parentElement ?? null;
|
|
42
|
+
while (row && getComputedStyle(row).overflowX === "visible") row = row.parentElement;
|
|
43
|
+
if (button && row && button.getBoundingClientRect().right > row.getBoundingClientRect().right + 0.5) setCut(true);
|
|
44
|
+
});
|
|
45
|
+
return cut;
|
|
46
|
+
}
|
|
22
47
|
function ClearAllControl({
|
|
23
48
|
onClearAll,
|
|
24
|
-
compact,
|
|
25
|
-
testIdPrefix
|
|
49
|
+
compact: compactRung,
|
|
50
|
+
testIdPrefix,
|
|
51
|
+
frozen = false
|
|
26
52
|
}) {
|
|
27
53
|
const copy = useDataViewsCopy();
|
|
54
|
+
const ref = useRef(null);
|
|
55
|
+
const cut = useCutByRow(ref, frozen && !compactRung);
|
|
56
|
+
const compact = compactRung || cut;
|
|
28
57
|
const button = /* @__PURE__ */ jsxs(
|
|
29
58
|
default2,
|
|
30
59
|
{
|
|
31
60
|
component: "button",
|
|
32
61
|
type: "button",
|
|
62
|
+
ref,
|
|
33
63
|
onClick: onClearAll,
|
|
34
64
|
"data-testid": `${testIdPrefix}-clear-all`,
|
|
35
65
|
"aria-label": copy.filters.clearAll,
|
|
@@ -46,6 +76,10 @@ function ClearAllControl({
|
|
|
46
76
|
font: "inherit",
|
|
47
77
|
fontSize: sxRem(13),
|
|
48
78
|
whiteSpace: "nowrap",
|
|
79
|
+
// Never squeezed: the bar is frozen while a panel is open, and when a
|
|
80
|
+
// first filter applied from inside one brought this in, the row had
|
|
81
|
+
// no room budgeted for it and cut "Limpar" to "Lin" (FUT-4144).
|
|
82
|
+
flexShrink: 0,
|
|
49
83
|
color: "text.secondary",
|
|
50
84
|
"&:hover": { color: "text.primary", bgcolor: "action.hover" }
|
|
51
85
|
},
|
|
@@ -88,7 +122,8 @@ function CloseSearchControl({
|
|
|
88
122
|
}
|
|
89
123
|
|
|
90
124
|
export {
|
|
125
|
+
useBarFrozen,
|
|
91
126
|
ClearAllControl,
|
|
92
127
|
CloseSearchControl
|
|
93
128
|
};
|
|
94
|
-
//# sourceMappingURL=chunk-
|
|
129
|
+
//# sourceMappingURL=chunk-T7OIVPCO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/DataViews/data-views-bar-controls.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * THE TWO BARE AFFORDANCES ON THE FILTER BAR.\n *\n * Neither opens anything, which is what sets them apart from every other\n * control on that row and why they are styled flat rather than as outlined\n * pills: one clears the filters, one leaves a search takeover. Giving them a\n * pill's weight made \"Limpar\" read as a sixth filter.\n *\n * Their own module because `data-views-inline-bar` outgrew the file-size gate.\n */\nimport CloseRoundedIcon from \"@mui/icons-material/CloseRounded\";\nimport FilterAltOffRoundedIcon from \"@mui/icons-material/FilterAltOffRounded\";\nimport Tooltip from \"@mui/material/Tooltip/index.js\";\nimport React, { useLayoutEffect, useRef, useState } from \"react\";\n\nimport { Box } from \"../../../mui/Box\";\nimport { fieldRadiusPx } from \"../../../tokens/field-radius\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { fieldHeight } from \"../../../tokens/field-height\";\nimport { sxRem } from \"../../../tokens/relative\";\n\n/**\n * \"Limpar\" — one gesture back to the unfiltered list.\n *\n * Present ONLY while something is applied, and last in the cluster, because it\n * is destructive and must never be where a filter control was a moment ago.\n * Each pill already carries its own ✕; this is the other job — six applied\n * filters is six ✕ hunts, and the operator who wants \"show me everything\n * again\" has no way to say it.\n *\n * Loses its label on the same rung Exibir/Exportar lose theirs, and keeps a\n * tooltip when it does: it is one of the two controls (with the search) whose\n * icon has to carry the whole meaning on a phone.\n */\n/**\n * Whether a filter control's panel is open — the stretch during which the bar\n * is measured once and then FROZEN, so the field being edited is not promoted\n * out from under the hand (FUT-4144 UI review round 2).\n *\n * Wraps the controls' `onOpenChange` to count the open panels.\n */\nexport function useBarFrozen(report?: (open: boolean) => void): {\n frozen: boolean;\n onOpenChange: (open: boolean) => void;\n} {\n const [openCount, setOpenCount] = useState(0);\n return {\n frozen: openCount > 0,\n onOpenChange: (open) => {\n setOpenCount((count) => Math.max(0, count + (open ? 1 : -1)));\n report?.(open);\n },\n };\n}\n\n/**\n * Whether the button runs past the edge of the row that holds it. Only asked\n * while the bar is frozen: a first filter applied from inside an open panel\n * brings \"Limpar\" in with no room budgeted for its label, and at 900 the row\n * cut it to \"Lin\". It then shows as its icon (the tooltip and accessible name\n * keep the word) until the panel closes and the row is measured again.\n */\nfunction useCutByRow(ref: React.RefObject<HTMLElement | null>, frozen: boolean): boolean {\n const [cut, setCut] = useState(false);\n useLayoutEffect(() => {\n if (!frozen) {\n setCut(false);\n return;\n }\n const button = ref.current;\n let row = button?.parentElement ?? null;\n while (row && getComputedStyle(row).overflowX === \"visible\") row = row.parentElement;\n if (button && row && button.getBoundingClientRect().right > row.getBoundingClientRect().right + 0.5) setCut(true);\n });\n return cut;\n}\n\nexport function ClearAllControl({\n onClearAll,\n compact: compactRung,\n testIdPrefix,\n frozen = false,\n}: {\n onClearAll: () => void;\n compact: boolean;\n testIdPrefix: string;\n /** The bar is frozen while a panel is open; see {@link useCutByRow}. */\n frozen?: boolean;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n const ref = useRef<HTMLButtonElement>(null);\n const cut = useCutByRow(ref, frozen && !compactRung);\n const compact = compactRung || cut;\n // No border, no fill. Every other control on this row is an outlined field\n // because it OPENS something; this one is an escape hatch, and giving it the\n // same weight made it read as a sixth filter. Quiet until hovered.\n const button = (\n <Box\n component=\"button\"\n type=\"button\"\n ref={ref}\n onClick={onClearAll}\n data-testid={`${testIdPrefix}-clear-all`}\n aria-label={copy.filters.clearAll}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 0.5,\n height: fieldHeight,\n px: compact ? 0.75 : 1,\n border: 0,\n borderRadius: fieldRadiusPx,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n font: \"inherit\",\n fontSize: sxRem(13),\n whiteSpace: \"nowrap\",\n // Never squeezed: the bar is frozen while a panel is open, and when a\n // first filter applied from inside one brought this in, the row had\n // no room budgeted for it and cut \"Limpar\" to \"Lin\" (FUT-4144).\n flexShrink: 0,\n color: \"text.secondary\",\n \"&:hover\": { color: \"text.primary\", bgcolor: \"action.hover\" },\n }}\n >\n <FilterAltOffRoundedIcon sx={{ fontSize: sxRem(16) }} />\n {!compact && <Box component=\"span\">{copy.filters.clear}</Box>}\n </Box>\n );\n return compact ? <Tooltip title={copy.filters.clearAll}>{button}</Tooltip> : button;\n}\n\n/**\n * The way out of a search takeover.\n *\n * A phone has no Escape key, and without this the takeover is a one-way door\n * onto a bar with no filters on it.\n\n/**\n * The way out of a search takeover.\n *\n * A phone has no Escape key, and without this the takeover is a one-way door\n * onto a bar with no filters on it.\n */\nexport function CloseSearchControl({\n onClose,\n testIdPrefix,\n}: {\n onClose: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <Tooltip title={copy.search.close}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClose}\n aria-label={copy.search.close}\n data-testid={`${testIdPrefix}-search-close`}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n height: fieldHeight,\n px: 0.75,\n border: 0,\n borderRadius: fieldRadiusPx,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n color: \"text.secondary\",\n \"&:hover\": { color: \"text.primary\", bgcolor: \"action.hover\" },\n }}\n >\n <CloseRoundedIcon sx={{ fontSize: sxRem(18) }} />\n </Box>\n </Tooltip>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAYA,OAAO,sBAAsB;AAC7B,OAAO,6BAA6B;AACpC,OAAO,aAAa;AACpB,SAAgB,iBAAiB,QAAQ,gBAAgB;AAoFrD,SA4BE,KA5BF;AAxDG,SAAS,aAAa,QAG3B;AACA,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,CAAC;AAC5C,SAAO;AAAA,IACL,QAAQ,YAAY;AAAA,IACpB,cAAc,CAAC,SAAS;AACtB,mBAAa,CAAC,UAAU,KAAK,IAAI,GAAG,SAAS,OAAO,IAAI,GAAG,CAAC;AAC5D,eAAS,IAAI;AAAA,IACf;AAAA,EACF;AACF;AASA,SAAS,YAAY,KAA0C,QAA0B;AACvF,QAAM,CAAC,KAAK,MAAM,IAAI,SAAS,KAAK;AACpC,kBAAgB,MAAM;AACpB,QAAI,CAAC,QAAQ;AACX,aAAO,KAAK;AACZ;AAAA,IACF;AACA,UAAM,SAAS,IAAI;AACnB,QAAI,MAAM,QAAQ,iBAAiB;AACnC,WAAO,OAAO,iBAAiB,GAAG,EAAE,cAAc,UAAW,OAAM,IAAI;AACvE,QAAI,UAAU,OAAO,OAAO,sBAAsB,EAAE,QAAQ,IAAI,sBAAsB,EAAE,QAAQ,IAAK,QAAO,IAAI;AAAA,EAClH,CAAC;AACD,SAAO;AACT;AAEO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,SAAS;AACX,GAMsB;AACpB,QAAM,OAAO,iBAAiB;AAC9B,QAAM,MAAM,OAA0B,IAAI;AAC1C,QAAM,MAAM,YAAY,KAAK,UAAU,CAAC,WAAW;AACnD,QAAM,UAAU,eAAe;AAI/B,QAAM,SACJ;AAAA,IAACA;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL;AAAA,MACA,SAAS;AAAA,MACT,eAAa,GAAG,YAAY;AAAA,MAC5B,cAAY,KAAK,QAAQ;AAAA,MACzB,IAAI;AAAA,QACF,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,IAAI,UAAU,OAAO;AAAA,QACrB,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,UAAU,MAAM,EAAE;AAAA,QAClB,YAAY;AAAA;AAAA;AAAA;AAAA,QAIZ,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW,EAAE,OAAO,gBAAgB,SAAS,eAAe;AAAA,MAC9D;AAAA,MAEA;AAAA,4BAAC,2BAAwB,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,GAAG;AAAA,QACrD,CAAC,WAAW,oBAACA,UAAA,EAAI,WAAU,QAAQ,eAAK,QAAQ,OAAM;AAAA;AAAA;AAAA,EACzD;AAEF,SAAO,UAAU,oBAAC,WAAQ,OAAO,KAAK,QAAQ,UAAW,kBAAO,IAAa;AAC/E;AAcO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AACF,GAGsB;AACpB,QAAM,OAAO,iBAAiB;AAC9B,SACE,oBAAC,WAAQ,OAAO,KAAK,OAAO,OAC1B;AAAA,IAACA;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAS;AAAA,MACT,cAAY,KAAK,OAAO;AAAA,MACxB,eAAa,GAAG,YAAY;AAAA,MAC5B,IAAI;AAAA,QACF,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,IAAI;AAAA,QACJ,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAW,EAAE,OAAO,gBAAgB,SAAS,eAAe;AAAA,MAC9D;AAAA,MAEA,8BAAC,oBAAiB,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,GAAG;AAAA;AAAA,EACjD,GACF;AAEJ;","names":["default"]}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
CarouselArrows,
|
|
3
3
|
CarouselIndicators,
|
|
4
4
|
CarouselThumbnails
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-M2M4IDFU.js";
|
|
6
6
|
|
|
7
7
|
// src/components/data-display/Carousel/Carousel.chrome.tsx
|
|
8
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -60,4 +60,4 @@ var CarouselChrome = ({
|
|
|
60
60
|
export {
|
|
61
61
|
CarouselChrome
|
|
62
62
|
};
|
|
63
|
-
//# sourceMappingURL=chunk-
|
|
63
|
+
//# sourceMappingURL=chunk-TB5CRHTF.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Chart
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HI7JPDD6.js";
|
|
4
4
|
import {
|
|
5
5
|
CHART_SEMANTIC_COLORS,
|
|
6
6
|
specToChartProps
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JVOEVTCZ.js";
|
|
8
8
|
import {
|
|
9
9
|
accentFor
|
|
10
10
|
} from "./chunk-B7ZHEOQQ.js";
|
|
@@ -46,4 +46,4 @@ var SpecChart = ({
|
|
|
46
46
|
export {
|
|
47
47
|
SpecChart
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=chunk-
|
|
49
|
+
//# sourceMappingURL=chunk-TIM4PXWN.js.map
|