@12-apps/ui 6.92.0 → 6.92.2

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.
Files changed (59) hide show
  1. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +10 -10
  2. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +11 -11
  3. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +5 -5
  4. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +9 -9
  5. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +7 -7
  6. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +13 -7
  7. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +6 -6
  8. package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +2 -2
  9. package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js +1 -1
  10. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +4 -4
  11. package/dist/_internal/components/data-display/DataViews/data-views-range-summary.js +1 -1
  12. package/dist/{chunk-W2KOP27S.js → chunk-3I5PHWKQ.js} +2 -2
  13. package/dist/{chunk-3OHZAZEE.js → chunk-3WYEENUH.js} +9 -4
  14. package/dist/chunk-3WYEENUH.js.map +1 -0
  15. package/dist/{chunk-R4LCPPKA.js → chunk-CNUO2BRV.js} +2 -2
  16. package/dist/{chunk-MZAYIG2I.js → chunk-D2JQF2WC.js} +66 -16
  17. package/dist/chunk-D2JQF2WC.js.map +1 -0
  18. package/dist/{chunk-HS662RLW.js → chunk-DWH4TQXK.js} +4 -3
  19. package/dist/chunk-DWH4TQXK.js.map +1 -0
  20. package/dist/{chunk-FORAVDJF.js → chunk-FC7UCFFA.js} +35 -7
  21. package/dist/chunk-FC7UCFFA.js.map +1 -0
  22. package/dist/{chunk-CKQOYPH3.js → chunk-FYUNROLW.js} +2 -2
  23. package/dist/{chunk-MICX23P4.js → chunk-HRES2S3Q.js} +85 -8
  24. package/dist/chunk-HRES2S3Q.js.map +1 -0
  25. package/dist/{chunk-X3GD3TFI.js → chunk-KQDBOZQE.js} +3 -3
  26. package/dist/{chunk-AI7XWBNG.js → chunk-QE4KYG5I.js} +3 -3
  27. package/dist/chunk-WLDP7C4K.js +44 -0
  28. package/dist/chunk-WLDP7C4K.js.map +1 -0
  29. package/dist/data-display/DataViews.js +11 -11
  30. package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts +80 -0
  31. package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
  32. package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts.map +1 -1
  33. package/dist/types/components/data-display/DataViews/data-views-range-bounds.d.ts +6 -1
  34. package/dist/types/components/data-display/DataViews/data-views-range-bounds.d.ts.map +1 -1
  35. package/dist/types/components/data-display/DataViews/data-views-range-calendar.d.ts +13 -1
  36. package/dist/types/components/data-display/DataViews/data-views-range-calendar.d.ts.map +1 -1
  37. package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts.map +1 -1
  38. package/dist/types/components/data-display/DataViews/data-views-range-summary.d.ts +4 -5
  39. package/dist/types/components/data-display/DataViews/data-views-range-summary.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/src/components/data-display/DataViews/RESPONSIVE-BEHAVIOUR.md +8 -4
  42. package/src/components/data-display/DataViews/data-views-more-fields.tsx +90 -14
  43. package/src/components/data-display/DataViews/data-views-more-filters.tsx +2 -2
  44. package/src/components/data-display/DataViews/data-views-range-bounds.tsx +57 -3
  45. package/src/components/data-display/DataViews/data-views-range-calendar.tsx +122 -8
  46. package/src/components/data-display/DataViews/data-views-range-pill.tsx +5 -0
  47. package/src/components/data-display/DataViews/data-views-range-summary.tsx +9 -22
  48. package/dist/chunk-3OHZAZEE.js.map +0 -1
  49. package/dist/chunk-FORAVDJF.js.map +0 -1
  50. package/dist/chunk-HS662RLW.js.map +0 -1
  51. package/dist/chunk-J2AVWIMM.js +0 -60
  52. package/dist/chunk-J2AVWIMM.js.map +0 -1
  53. package/dist/chunk-MICX23P4.js.map +0 -1
  54. package/dist/chunk-MZAYIG2I.js.map +0 -1
  55. /package/dist/{chunk-W2KOP27S.js.map → chunk-3I5PHWKQ.js.map} +0 -0
  56. /package/dist/{chunk-R4LCPPKA.js.map → chunk-CNUO2BRV.js.map} +0 -0
  57. /package/dist/{chunk-CKQOYPH3.js.map → chunk-FYUNROLW.js.map} +0 -0
  58. /package/dist/{chunk-X3GD3TFI.js.map → chunk-KQDBOZQE.js.map} +0 -0
  59. /package/dist/{chunk-AI7XWBNG.js.map → chunk-QE4KYG5I.js.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import {
3
3
  DataViewsGrid
4
- } from "../../../../chunk-R4LCPPKA.js";
5
- import "../../../../chunk-X3GD3TFI.js";
6
- import "../../../../chunk-CKQOYPH3.js";
4
+ } from "../../../../chunk-CNUO2BRV.js";
5
+ import "../../../../chunk-KQDBOZQE.js";
6
+ import "../../../../chunk-FYUNROLW.js";
7
7
  import "../../../../chunk-MKVDHR3B.js";
8
- import "../../../../chunk-AI7XWBNG.js";
8
+ import "../../../../chunk-QE4KYG5I.js";
9
9
  import "../../../../chunk-T7OIVPCO.js";
10
10
  import "../../../../chunk-X3AFXHY5.js";
11
11
  import "../../../../chunk-XNAI7QGU.js";
@@ -13,19 +13,19 @@ import "../../../../chunk-7TCOYCD7.js";
13
13
  import "../../../../chunk-4ZQQUICR.js";
14
14
  import "../../../../chunk-XZFTRGRW.js";
15
15
  import "../../../../chunk-WWH674WU.js";
16
- import "../../../../chunk-HS662RLW.js";
17
- import "../../../../chunk-MZAYIG2I.js";
16
+ import "../../../../chunk-DWH4TQXK.js";
17
+ import "../../../../chunk-D2JQF2WC.js";
18
18
  import "../../../../chunk-AJ6KFHEE.js";
19
19
  import "../../../../chunk-KYUEO2IO.js";
20
20
  import "../../../../chunk-GZOW6HNN.js";
21
- import "../../../../chunk-3OHZAZEE.js";
22
- import "../../../../chunk-J2AVWIMM.js";
23
- import "../../../../chunk-FORAVDJF.js";
21
+ import "../../../../chunk-3WYEENUH.js";
22
+ import "../../../../chunk-WLDP7C4K.js";
23
+ import "../../../../chunk-FC7UCFFA.js";
24
24
  import "../../../../chunk-LZNUBQ5I.js";
25
25
  import "../../../../chunk-2FKWKLSC.js";
26
26
  import "../../../../chunk-YOPMXGHY.js";
27
27
  import "../../../../chunk-CBOB5AV6.js";
28
- import "../../../../chunk-MICX23P4.js";
28
+ import "../../../../chunk-HRES2S3Q.js";
29
29
  import "../../../../chunk-AT6UKTH4.js";
30
30
  import "../../../../chunk-5YDS6HO3.js";
31
31
  import "../../../../chunk-OY437NRJ.js";
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import {
3
3
  DataViewsTableBase
4
- } from "../../../../chunk-W2KOP27S.js";
4
+ } from "../../../../chunk-3I5PHWKQ.js";
5
5
  import "../../../../chunk-YNVTUQ5B.js";
6
- import "../../../../chunk-R4LCPPKA.js";
6
+ import "../../../../chunk-CNUO2BRV.js";
7
7
  import "../../../../chunk-ZOLAYP2D.js";
8
- import "../../../../chunk-X3GD3TFI.js";
9
- import "../../../../chunk-CKQOYPH3.js";
8
+ import "../../../../chunk-KQDBOZQE.js";
9
+ import "../../../../chunk-FYUNROLW.js";
10
10
  import "../../../../chunk-MKVDHR3B.js";
11
- import "../../../../chunk-AI7XWBNG.js";
11
+ import "../../../../chunk-QE4KYG5I.js";
12
12
  import "../../../../chunk-T7OIVPCO.js";
13
13
  import "../../../../chunk-X3AFXHY5.js";
14
14
  import "../../../../chunk-XNAI7QGU.js";
@@ -16,19 +16,19 @@ import "../../../../chunk-7TCOYCD7.js";
16
16
  import "../../../../chunk-4ZQQUICR.js";
17
17
  import "../../../../chunk-XZFTRGRW.js";
18
18
  import "../../../../chunk-WWH674WU.js";
19
- import "../../../../chunk-HS662RLW.js";
20
- import "../../../../chunk-MZAYIG2I.js";
19
+ import "../../../../chunk-DWH4TQXK.js";
20
+ import "../../../../chunk-D2JQF2WC.js";
21
21
  import "../../../../chunk-AJ6KFHEE.js";
22
22
  import "../../../../chunk-KYUEO2IO.js";
23
23
  import "../../../../chunk-GZOW6HNN.js";
24
- import "../../../../chunk-3OHZAZEE.js";
25
- import "../../../../chunk-J2AVWIMM.js";
26
- import "../../../../chunk-FORAVDJF.js";
24
+ import "../../../../chunk-3WYEENUH.js";
25
+ import "../../../../chunk-WLDP7C4K.js";
26
+ import "../../../../chunk-FC7UCFFA.js";
27
27
  import "../../../../chunk-LZNUBQ5I.js";
28
28
  import "../../../../chunk-2FKWKLSC.js";
29
29
  import "../../../../chunk-YOPMXGHY.js";
30
30
  import "../../../../chunk-CBOB5AV6.js";
31
- import "../../../../chunk-MICX23P4.js";
31
+ import "../../../../chunk-HRES2S3Q.js";
32
32
  import "../../../../chunk-AT6UKTH4.js";
33
33
  import "../../../../chunk-5YDS6HO3.js";
34
34
  import "../../../../chunk-OY437NRJ.js";
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  FilterDialog,
4
4
  GridFilterPanel
5
- } from "../../../../chunk-CKQOYPH3.js";
5
+ } from "../../../../chunk-FYUNROLW.js";
6
6
  import "../../../../chunk-AJ6KFHEE.js";
7
- import "../../../../chunk-3OHZAZEE.js";
8
- import "../../../../chunk-J2AVWIMM.js";
9
- import "../../../../chunk-FORAVDJF.js";
7
+ import "../../../../chunk-3WYEENUH.js";
8
+ import "../../../../chunk-WLDP7C4K.js";
9
+ import "../../../../chunk-FC7UCFFA.js";
10
10
  import "../../../../chunk-LZNUBQ5I.js";
11
11
  import "../../../../chunk-2FKWKLSC.js";
12
12
  import "../../../../chunk-YOPMXGHY.js";
13
13
  import "../../../../chunk-CBOB5AV6.js";
14
- import "../../../../chunk-MICX23P4.js";
14
+ import "../../../../chunk-HRES2S3Q.js";
15
15
  import "../../../../chunk-GCZJH4XL.js";
16
16
  import "../../../../chunk-7CUZTWKW.js";
17
17
  import "../../../../chunk-KHG57NAE.js";
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  GridShell
4
- } from "../../../../chunk-X3GD3TFI.js";
5
- import "../../../../chunk-CKQOYPH3.js";
4
+ } from "../../../../chunk-KQDBOZQE.js";
5
+ import "../../../../chunk-FYUNROLW.js";
6
6
  import "../../../../chunk-MKVDHR3B.js";
7
- import "../../../../chunk-AI7XWBNG.js";
7
+ import "../../../../chunk-QE4KYG5I.js";
8
8
  import "../../../../chunk-T7OIVPCO.js";
9
9
  import "../../../../chunk-X3AFXHY5.js";
10
10
  import "../../../../chunk-XNAI7QGU.js";
@@ -12,19 +12,19 @@ import "../../../../chunk-7TCOYCD7.js";
12
12
  import "../../../../chunk-4ZQQUICR.js";
13
13
  import "../../../../chunk-XZFTRGRW.js";
14
14
  import "../../../../chunk-WWH674WU.js";
15
- import "../../../../chunk-HS662RLW.js";
16
- import "../../../../chunk-MZAYIG2I.js";
15
+ import "../../../../chunk-DWH4TQXK.js";
16
+ import "../../../../chunk-D2JQF2WC.js";
17
17
  import "../../../../chunk-AJ6KFHEE.js";
18
18
  import "../../../../chunk-KYUEO2IO.js";
19
19
  import "../../../../chunk-GZOW6HNN.js";
20
- import "../../../../chunk-3OHZAZEE.js";
21
- import "../../../../chunk-J2AVWIMM.js";
22
- import "../../../../chunk-FORAVDJF.js";
20
+ import "../../../../chunk-3WYEENUH.js";
21
+ import "../../../../chunk-WLDP7C4K.js";
22
+ import "../../../../chunk-FC7UCFFA.js";
23
23
  import "../../../../chunk-LZNUBQ5I.js";
24
24
  import "../../../../chunk-2FKWKLSC.js";
25
25
  import "../../../../chunk-YOPMXGHY.js";
26
26
  import "../../../../chunk-CBOB5AV6.js";
27
- import "../../../../chunk-MICX23P4.js";
27
+ import "../../../../chunk-HRES2S3Q.js";
28
28
  import "../../../../chunk-AT6UKTH4.js";
29
29
  import "../../../../chunk-5YDS6HO3.js";
30
30
  import "../../../../chunk-OY437NRJ.js";
@@ -1,22 +1,22 @@
1
1
  "use client";
2
2
  import {
3
3
  InlineFilterControls
4
- } from "../../../../chunk-AI7XWBNG.js";
4
+ } from "../../../../chunk-QE4KYG5I.js";
5
5
  import "../../../../chunk-T7OIVPCO.js";
6
6
  import "../../../../chunk-WWH674WU.js";
7
- import "../../../../chunk-HS662RLW.js";
8
- import "../../../../chunk-MZAYIG2I.js";
7
+ import "../../../../chunk-DWH4TQXK.js";
8
+ import "../../../../chunk-D2JQF2WC.js";
9
9
  import "../../../../chunk-AJ6KFHEE.js";
10
10
  import "../../../../chunk-KYUEO2IO.js";
11
11
  import "../../../../chunk-GZOW6HNN.js";
12
- import "../../../../chunk-3OHZAZEE.js";
13
- import "../../../../chunk-J2AVWIMM.js";
14
- import "../../../../chunk-FORAVDJF.js";
12
+ import "../../../../chunk-3WYEENUH.js";
13
+ import "../../../../chunk-WLDP7C4K.js";
14
+ import "../../../../chunk-FC7UCFFA.js";
15
15
  import "../../../../chunk-LZNUBQ5I.js";
16
16
  import "../../../../chunk-2FKWKLSC.js";
17
17
  import "../../../../chunk-YOPMXGHY.js";
18
18
  import "../../../../chunk-CBOB5AV6.js";
19
- import "../../../../chunk-MICX23P4.js";
19
+ import "../../../../chunk-HRES2S3Q.js";
20
20
  import "../../../../chunk-AT6UKTH4.js";
21
21
  import "../../../../chunk-ACBHZG3Z.js";
22
22
  import "../../../../chunk-GCZJH4XL.js";
@@ -1,20 +1,23 @@
1
1
  "use client";
2
2
  import {
3
+ MORE_SPACING,
3
4
  MoreGroup,
4
5
  MoreQuick,
5
- fieldClearing
6
- } from "../../../../chunk-MZAYIG2I.js";
6
+ clearTargetSx,
7
+ fieldClearing,
8
+ moreHeaderSx
9
+ } from "../../../../chunk-D2JQF2WC.js";
7
10
  import "../../../../chunk-AJ6KFHEE.js";
8
11
  import "../../../../chunk-KYUEO2IO.js";
9
12
  import "../../../../chunk-GZOW6HNN.js";
10
- import "../../../../chunk-3OHZAZEE.js";
11
- import "../../../../chunk-J2AVWIMM.js";
12
- import "../../../../chunk-FORAVDJF.js";
13
+ import "../../../../chunk-3WYEENUH.js";
14
+ import "../../../../chunk-WLDP7C4K.js";
15
+ import "../../../../chunk-FC7UCFFA.js";
13
16
  import "../../../../chunk-LZNUBQ5I.js";
14
17
  import "../../../../chunk-2FKWKLSC.js";
15
18
  import "../../../../chunk-YOPMXGHY.js";
16
19
  import "../../../../chunk-CBOB5AV6.js";
17
- import "../../../../chunk-MICX23P4.js";
20
+ import "../../../../chunk-HRES2S3Q.js";
18
21
  import "../../../../chunk-AT6UKTH4.js";
19
22
  import "../../../../chunk-GCZJH4XL.js";
20
23
  import "../../../../chunk-7CUZTWKW.js";
@@ -97,8 +100,11 @@ import "../../../../chunk-YKCAJ2TN.js";
97
100
  import "../../../../chunk-MFU4Y25U.js";
98
101
  import "../../../../chunk-PZ5AY32C.js";
99
102
  export {
103
+ MORE_SPACING,
100
104
  MoreGroup,
101
105
  MoreQuick,
102
- fieldClearing
106
+ clearTargetSx,
107
+ fieldClearing,
108
+ moreHeaderSx
103
109
  };
104
110
  //# sourceMappingURL=data-views-more-fields.js.map
@@ -1,19 +1,19 @@
1
1
  "use client";
2
2
  import {
3
3
  MoreFilters
4
- } from "../../../../chunk-HS662RLW.js";
5
- import "../../../../chunk-MZAYIG2I.js";
4
+ } from "../../../../chunk-DWH4TQXK.js";
5
+ import "../../../../chunk-D2JQF2WC.js";
6
6
  import "../../../../chunk-AJ6KFHEE.js";
7
7
  import "../../../../chunk-KYUEO2IO.js";
8
8
  import "../../../../chunk-GZOW6HNN.js";
9
- import "../../../../chunk-3OHZAZEE.js";
10
- import "../../../../chunk-J2AVWIMM.js";
11
- import "../../../../chunk-FORAVDJF.js";
9
+ import "../../../../chunk-3WYEENUH.js";
10
+ import "../../../../chunk-WLDP7C4K.js";
11
+ import "../../../../chunk-FC7UCFFA.js";
12
12
  import "../../../../chunk-LZNUBQ5I.js";
13
13
  import "../../../../chunk-2FKWKLSC.js";
14
14
  import "../../../../chunk-YOPMXGHY.js";
15
15
  import "../../../../chunk-CBOB5AV6.js";
16
- import "../../../../chunk-MICX23P4.js";
16
+ import "../../../../chunk-HRES2S3Q.js";
17
17
  import "../../../../chunk-AT6UKTH4.js";
18
18
  import "../../../../chunk-GCZJH4XL.js";
19
19
  import "../../../../chunk-7CUZTWKW.js";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import {
3
3
  RangeBounds
4
- } from "../../../../chunk-FORAVDJF.js";
4
+ } from "../../../../chunk-FC7UCFFA.js";
5
5
  import "../../../../chunk-LZNUBQ5I.js";
6
6
  import "../../../../chunk-2FKWKLSC.js";
7
7
  import "../../../../chunk-YOPMXGHY.js";
8
8
  import "../../../../chunk-CBOB5AV6.js";
9
- import "../../../../chunk-MICX23P4.js";
9
+ import "../../../../chunk-HRES2S3Q.js";
10
10
  import "../../../../chunk-GCZJH4XL.js";
11
11
  import "../../../../chunk-KHG57NAE.js";
12
12
  import "../../../../chunk-L6YTVXGN.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  DayRangeCalendar,
4
4
  rangeFromCalendar
5
- } from "../../../../chunk-MICX23P4.js";
5
+ } from "../../../../chunk-HRES2S3Q.js";
6
6
  import "../../../../chunk-KHG57NAE.js";
7
7
  import "../../../../chunk-SUTOAW7I.js";
8
8
  import "../../../../chunk-BO6S47KI.js";
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  PanelRangeField,
4
4
  RangePill
5
- } from "../../../../chunk-3OHZAZEE.js";
6
- import "../../../../chunk-J2AVWIMM.js";
5
+ } from "../../../../chunk-3WYEENUH.js";
6
+ import "../../../../chunk-WLDP7C4K.js";
7
7
  import {
8
8
  RangeBounds
9
- } from "../../../../chunk-FORAVDJF.js";
9
+ } from "../../../../chunk-FC7UCFFA.js";
10
10
  import "../../../../chunk-LZNUBQ5I.js";
11
11
  import "../../../../chunk-2FKWKLSC.js";
12
12
  import "../../../../chunk-YOPMXGHY.js";
13
13
  import "../../../../chunk-CBOB5AV6.js";
14
- import "../../../../chunk-MICX23P4.js";
14
+ import "../../../../chunk-HRES2S3Q.js";
15
15
  import "../../../../chunk-GCZJH4XL.js";
16
16
  import "../../../../chunk-7CUZTWKW.js";
17
17
  import "../../../../chunk-KHG57NAE.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  RangeSummary
4
- } from "../../../../chunk-J2AVWIMM.js";
4
+ } from "../../../../chunk-WLDP7C4K.js";
5
5
  import "../../../../chunk-GCZJH4XL.js";
6
6
  import "../../../../chunk-KHG57NAE.js";
7
7
  import "../../../../chunk-YKCAJ2TN.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-YNVTUQ5B.js";
4
4
  import {
5
5
  DataViewsGrid
6
- } from "./chunk-R4LCPPKA.js";
6
+ } from "./chunk-CNUO2BRV.js";
7
7
  import {
8
8
  viewStateKey
9
9
  } from "./chunk-ZOLAYP2D.js";
@@ -166,4 +166,4 @@ function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
166
166
  export {
167
167
  DataViewsTableBase
168
168
  };
169
- //# sourceMappingURL=chunk-W2KOP27S.js.map
169
+ //# sourceMappingURL=chunk-3I5PHWKQ.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  RangeSummary
3
- } from "./chunk-J2AVWIMM.js";
3
+ } from "./chunk-WLDP7C4K.js";
4
4
  import {
5
5
  RangeBounds
6
- } from "./chunk-FORAVDJF.js";
6
+ } from "./chunk-FC7UCFFA.js";
7
7
  import {
8
8
  RangePresets
9
9
  } from "./chunk-LZNUBQ5I.js";
@@ -137,6 +137,10 @@ var DAY_PAPER_SX = (theme) => ({
137
137
  // 280px seven 40px day columns need: at 320 it had 256 and every day was a
138
138
  // 33px target (FUT-4144 UI review).
139
139
  maxWidth: { xs: `calc(100% - ${rem(theme, 16)})`, sm: `calc(100% - ${rem(theme, 32)})` },
140
+ // And as tall as those same margins allow: MUI's default keeps 16px off the
141
+ // top and bottom, so a refused day's message at 320×568 made the popover
142
+ // 1px taller than its cap and it scrolled (FUT-4144 code review).
143
+ maxHeight: { xs: `calc(100% - ${rem(theme, 16)})`, sm: `calc(100% - ${rem(theme, 32)})` },
140
144
  p: { xs: 1, sm: 2 }
141
145
  });
142
146
  function RangePill({
@@ -184,7 +188,8 @@ function RangePill({
184
188
  value,
185
189
  onChange,
186
190
  testId,
187
- calendarMonths
191
+ calendarMonths,
192
+ summaryOnHint: true
188
193
  }
189
194
  ),
190
195
  /* @__PURE__ */ jsx(RangeSummary, { field, value, onClear: () => onChange({}), testId })
@@ -235,4 +240,4 @@ export {
235
240
  RangePill,
236
241
  PanelRangeField
237
242
  };
238
- //# sourceMappingURL=chunk-3OHZAZEE.js.map
243
+ //# sourceMappingURL=chunk-3WYEENUH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataViews/data-views-range-pill.tsx"],"sourcesContent":["'use client';\n\n/**\n * A range filter as a PILL in the inline filter bar — the same affordance the\n * multi-select facets use, so \"Data\" and \"Valor\" sit in the filter row beside\n * \"Pagamento\"/\"Situação\"/\"Método\" instead of floating above the grid.\n *\n * Before this the inline bar rendered pills only, and `rangeFields` had a\n * surface on the slide-in panel alone — which `inlineFilters` REPLACES on a wide\n * screen. So a range filter was invisible on exactly the screens that use it,\n * and a page wanting one had to hang its own inputs outside the grid, outside\n * `DataViewState`, and outside the grid's \"Limpar filtros\" (FUT-668).\n */\nimport CloseIcon from '@mui/icons-material/Close';\nimport ChevronDownIcon from '@mui/icons-material/KeyboardArrowDown';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Popover from '@mui/material/Popover/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport useMediaQuery from '@mui/material/useMediaQuery/index.js';\nimport { useTheme, type Theme } from '@mui/material/styles/index.js';\nimport React, { useContext } from 'react';\n\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { TableFilter } from '../../layout/TableFilter';\nimport { TableFilterContext } from '../../layout/TableFilter/TableFilterContext';\nimport { RangePresets } from './data-views-preset-chips';\nimport { RangeBounds } from './data-views-range-bounds';\nimport { RangeSummary } from './data-views-range-summary';\nimport { useStillAnchor } from './data-views-still-anchor';\nimport { presetsFor } from './data-views-range-presets';\nimport {\n isRangeInverted,\n isRangeSet,\n numericRange,\n rangeChipLabel,\n} from './data-views-range-values';\nimport type { RangeFieldConfig, RangeValue } from './data-views-types';\nimport { fieldRadiusPx } from '../../../tokens/field-radius';\nimport { fieldHeight } from '../../../tokens/field-height';\nimport { fieldEdge } from '../../../tokens/field-edge';\nimport { rem, remPx, sxRem } from '../../../tokens/relative';\n\n// Re-exported: the pair moved to its own file, and its importers keep their path.\nexport { RangeBounds };\n\n/**\n * The pill + its popover. Bounds commit on change (the list is server-driven, so\n * each edit is a query) and the popover stays open, which is what lets a\n * merchant set \"de\" and then \"até\" without re-opening it.\n */\n/** An applied range clears from the pill itself — re-opening to empty two fields is three gestures for one intent. */\nfunction ClearAffordance({\n label,\n onClear,\n testId,\n}: {\n label: string;\n onClear: () => void;\n testId: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n const clear = (event: React.SyntheticEvent): void => {\n event.stopPropagation();\n onClear();\n };\n return (\n <Box\n component=\"span\"\n role=\"button\"\n tabIndex={0}\n aria-label={copy.filters.clearRange(label)}\n data-testid={testId}\n onClick={clear}\n onKeyDown={(event: React.KeyboardEvent) => {\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n clear(event);\n }}\n sx={{ display: 'inline-flex', borderRadius: 999, p: 0.125, '&:hover': { bgcolor: 'action.selected' } }}\n >\n <CloseIcon sx={{ fontSize: sxRem(14) }} />\n </Box>\n );\n}\n\n/** The pill button: its label carries the applied window, and its tone the state. */\nfunction RangeTrigger<T extends Record<string, unknown>>({\n field,\n value,\n onChange,\n onOpen,\n open,\n testId,\n}: {\n field: RangeFieldConfig<T>;\n value: RangeValue;\n onChange: (range: RangeValue) => void;\n onOpen: (anchor: HTMLElement) => void;\n open: boolean;\n testId: string;\n}): React.JSX.Element {\n const active = isRangeSet(value);\n const inverted = isRangeInverted(value);\n // An INVERTED window gets its own tone rather than the ordinary \"applied\"\n // one: it is applied, and it matches nothing, and those are different states.\n // At rest the pill draws the one field border (`fieldEdge`).\n const tone = inverted ? 'error.main' : active ? 'primary.main' : null;\n return (\n <Button\n variant=\"outlined\"\n color=\"inherit\"\n size=\"small\"\n data-testid={testId}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n onClick={(event) => onOpen(event.currentTarget)}\n // ✕ FIRST, chevron LAST — the same shape as every other pill. It used to\n // replace the chevron at the end, so a range pill and a multi-select pill\n // put the clear in different places, and an applied range lost the\n // affordance that says it opens.\n startIcon={\n active ? (\n <ClearAffordance label={field.label} onClear={() => onChange({})} testId={`${testId}-clear-inline`} />\n ) : undefined\n }\n endIcon={<ChevronDownIcon sx={{ fontSize: sxRem(16) }} />}\n sx={{\n borderRadius: fieldRadiusPx,\n height: fieldHeight,\n px: 1.5,\n maxWidth: sxRem(280),\n color: inverted ? 'error.main' : 'text.primary',\n fontWeight: 600,\n fontSize: sxRem(13),\n textTransform: 'none',\n whiteSpace: 'nowrap',\n borderColor: (theme) => tone ?? fieldEdge(theme),\n bgcolor: active ? 'action.selected' : 'background.paper',\n '&:hover': {\n borderColor: active ? tone : 'text.primary',\n bgcolor: active ? 'action.selected' : 'action.hover',\n },\n }}\n >\n {/* The applied bounds, in the label — a pill reading only \"Valor\" hides\n the very thing that is narrowing the list. */}\n <Box component=\"span\" sx={{ overflow: 'hidden', textOverflow: 'ellipsis' }}>\n {active ? rangeChipLabel(field, value) : field.label}\n </Box>\n </Button>\n );\n}\n\n/**\n * How many months the pill's calendar shows: two from the theme's `md` up,\n * where the popover has the ~670px they take; one below it.\n *\n * A media query, not an `sx` breakpoint, because it decides what to RENDER —\n * CSS cannot un-render a second month. `up('md')` so that where nothing can be\n * measured (a test, the server) the answer is the one month that always fits.\n */\nfunction useCalendarMonths(): 1 | 2 {\n const theme = useTheme();\n return useMediaQuery(theme.breakpoints.up('md')) ? 2 : 1;\n}\n\n/**\n * The day popover's width. Below `sm` it takes the screen's (less the\n * popover's own 16px margins, which its `maxWidth` already keeps), so the boxes\n * and the month share it instead of leaving a strip of grid beside a narrow\n * card. From `sm` to `md` it holds one month, and sized to its content the\n * preset row alone stretched it to ~515px with the month hugging the left and\n * a band of nothing beside it; 400 keeps the month and the boxes one width.\n * From `md` its content — two months — sets it.\n */\nconst DAY_PAPER_SX = (theme: Theme) => ({\n width: { xs: '100%', sm: rem(theme, 400), md: 'auto' },\n // Below `sm` 8px from each edge and 8px of padding, so the month gets the\n // 280px seven 40px day columns need: at 320 it had 256 and every day was a\n // 33px target (FUT-4144 UI review).\n maxWidth: { xs: `calc(100% - ${rem(theme, 16)})`, sm: `calc(100% - ${rem(theme, 32)})` },\n // And as tall as those same margins allow: MUI's default keeps 16px off the\n // top and bottom, so a refused day's message at 320×568 made the popover\n // 1px taller than its cap and it scrolled (FUT-4144 code review).\n maxHeight: { xs: `calc(100% - ${rem(theme, 16)})`, sm: `calc(100% - ${rem(theme, 32)})` },\n p: { xs: 1, sm: 2 },\n});\n\n\nexport function RangePill<T extends Record<string, unknown>>({\n field,\n value,\n onChange,\n onOpenChange,\n testIdPrefix,\n}: {\n field: RangeFieldConfig<T>;\n value: RangeValue;\n onChange: (range: RangeValue) => void;\n /** So a measured toolbar can hold still while this is open. */\n onOpenChange?: (open: boolean) => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const still = useStillAnchor();\n const testId = `${testIdPrefix}-range-${field.id}`;\n const calendarMonths = useCalendarMonths();\n const theme = useTheme();\n const phone = useMediaQuery(theme.breakpoints.down('sm'));\n return (\n <>\n <RangeTrigger\n field={field}\n value={value}\n onChange={onChange}\n onOpen={(element) => {\n still.open(element);\n onOpenChange?.(true);\n }}\n open={Boolean(still.anchor)}\n testId={testId}\n />\n <Popover\n {...still.popoverProps}\n onClose={() => {\n still.close();\n onOpenChange?.(false);\n }}\n // Below `sm` a day popover keeps 8px from the screen's edges instead of 16.\n marginThreshold={field.kind === 'day' && phone ? remPx(theme, 8) : undefined}\n slotProps={{ paper: { ref: still.paperRef, sx: [{ p: 2, mt: 0.5 }, field.kind === 'day' && DAY_PAPER_SX] } }}\n >\n <RangeBounds\n field={field}\n value={value}\n onChange={onChange}\n testId={testId}\n calendarMonths={calendarMonths}\n summaryOnHint\n />\n <RangeSummary field={field} value={value} onClear={() => onChange({})} testId={testId} />\n </Popover>\n </>\n );\n}\n\n\n/**\n * One range on the SLIDE-IN panel (and the narrow-screen modal): the numeric\n * control the panel already had, or — for a day range, which that control cannot\n * express — the same `De`/`Até` pair the pill's popover uses.\n */\nexport function PanelRangeField<T extends Record<string, unknown>>({\n field,\n value,\n onChange,\n testId,\n}: {\n field: RangeFieldConfig<T>;\n value: RangeValue;\n onChange: (range: RangeValue) => void;\n testId: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n // The slide-in panel stays mounted while closed; its calendar does not.\n // Outside a `TableFilter` (the \"Mais\" sheet, a test) the pair is on screen.\n const panel = useContext(TableFilterContext);\n if (field.kind === \"day\") {\n return (\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 1 }}>\n <Typography component=\"span\" sx={{ fontSize: sxRem(12), fontWeight: 500, color: \"text.secondary\" }}>\n {field.label}\n </Typography>\n <RangeBounds\n field={field}\n value={value}\n onChange={onChange}\n testId={testId}\n showCalendar={panel ? panel.open : true}\n />\n </Box>\n );\n }\n return (\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 1 }}>\n <TableFilter.RangeField\n label={field.label}\n unit={field.unit}\n value={numericRange(value)}\n onChange={(range) => onChange(range)}\n testId={testId}\n />\n {/* Below the numeric control here, unlike the pill's popover: this one\n renders its own label, and chips above it would separate the label\n from the field it names. */}\n <RangePresets presets={presetsFor(field, copy)} value={value} onChange={onChange} testId={testId} />\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  GridShell
3
- } from "./chunk-X3GD3TFI.js";
3
+ } from "./chunk-KQDBOZQE.js";
4
4
  import {
5
5
  useDataViewsState
6
6
  } from "./chunk-ZCNR4DN5.js";
@@ -27,4 +27,4 @@ function DataViewsGrid(props) {
27
27
  export {
28
28
  DataViewsGrid
29
29
  };
30
- //# sourceMappingURL=chunk-R4LCPPKA.js.map
30
+ //# sourceMappingURL=chunk-CNUO2BRV.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-KYUEO2IO.js";
7
7
  import {
8
8
  RangeBounds
9
- } from "./chunk-FORAVDJF.js";
9
+ } from "./chunk-FC7UCFFA.js";
10
10
  import {
11
11
  QuickRow
12
12
  } from "./chunk-AT6UKTH4.js";
@@ -148,13 +148,18 @@ function fieldClearing({
148
148
  clear: () => values.forEach((value) => onTogglePill(field.id, value, false))
149
149
  };
150
150
  }
151
+ var quickSx = (theme) => ({
152
+ mb: MORE_SPACING.underQuick,
153
+ [theme.breakpoints.up("sm")]: { mb: 1 },
154
+ "&:last-of-type": { mb: 0 }
155
+ });
151
156
  function MoreQuick({
152
157
  quick,
153
158
  pills,
154
159
  onToggleQuick,
155
160
  testIdPrefix
156
161
  }) {
157
- return /* @__PURE__ */ jsx(default2, { sx: { mb: 1, "&:last-of-type": { mb: 0 } }, children: /* @__PURE__ */ jsx(
162
+ return /* @__PURE__ */ jsx(default2, { sx: quickSx, children: /* @__PURE__ */ jsx(
158
163
  QuickRow,
159
164
  {
160
165
  quick,
@@ -164,6 +169,45 @@ function MoreQuick({
164
169
  }
165
170
  ) });
166
171
  }
172
+ var MORE_SPACING = {
173
+ /** Under a group. */
174
+ underGroup: 1.5,
175
+ /** Under a shed quick chip, below `sm` (8px from `sm` up, as before). */
176
+ underQuick: 1.5,
177
+ /**
178
+ * The scroller's top inset (`data-views-more-filters.tsx`), at every width:
179
+ * the first group's overlay reaches into it. Not part of a responsive `p`,
180
+ * whose `xs` value is emitted as a media query and would win over it.
181
+ */
182
+ aboveFirst: 1.5,
183
+ /** Under a group's header, below `sm`, applied or not, so nothing moves on apply. */
184
+ underHeader: 1.25,
185
+ /** Under a group's header from `sm` up, as it always was. */
186
+ underHeaderFromSm: 0.5,
187
+ reachUp: 1.5,
188
+ reachDown: 1.25,
189
+ reachSide: 0.25
190
+ };
191
+ var moreHeaderSx = (theme) => ({
192
+ display: "flex",
193
+ alignItems: "center",
194
+ gap: 1,
195
+ mb: MORE_SPACING.underHeader,
196
+ [theme.breakpoints.up("sm")]: { mb: MORE_SPACING.underHeaderFromSm }
197
+ });
198
+ var clearTargetSx = (theme) => ({
199
+ position: "relative",
200
+ [theme.breakpoints.up("sm")]: { position: "static" },
201
+ "&::before": {
202
+ content: '""',
203
+ position: "absolute",
204
+ top: `-${theme.spacing(MORE_SPACING.reachUp)}`,
205
+ bottom: `-${theme.spacing(MORE_SPACING.reachDown)}`,
206
+ left: `-${theme.spacing(MORE_SPACING.reachSide)}`,
207
+ right: `-${theme.spacing(MORE_SPACING.reachSide)}`,
208
+ [theme.breakpoints.up("sm")]: { display: "none" }
209
+ }
210
+ });
167
211
  function MoreGroup({
168
212
  field,
169
213
  pills,
@@ -174,8 +218,8 @@ function MoreGroup({
174
218
  }) {
175
219
  const copy = useDataViewsCopy();
176
220
  const { applied, clear } = fieldClearing({ field, pills, ranges, onTogglePill, onChangeRange });
177
- return /* @__PURE__ */ jsxs(default2, { sx: { mb: 1.5, "&:last-of-type": { mb: 0 } }, children: [
178
- /* @__PURE__ */ jsxs(default2, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 0.5 }, children: [
221
+ return /* @__PURE__ */ jsxs(default2, { sx: { mb: MORE_SPACING.underGroup, "&:last-of-type": { mb: 0 } }, children: [
222
+ /* @__PURE__ */ jsxs(default2, { sx: moreHeaderSx, children: [
179
223
  /* @__PURE__ */ jsx(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsxs(default2, { component: "span", sx: { color: "text.secondary" }, children: [
180
224
  field.label,
181
225
  field.group === "range" && isRangeSet(ranges[field.id] ?? {}) ? " \u2022" : ""
@@ -187,17 +231,20 @@ function MoreGroup({
187
231
  type: "button",
188
232
  onClick: clear,
189
233
  "data-testid": `${testIdPrefix}-more-${field.id}-clear`,
190
- sx: {
191
- ml: "auto",
192
- border: 0,
193
- p: 0,
194
- bgcolor: "transparent",
195
- cursor: "pointer",
196
- font: "inherit",
197
- fontSize: sxRem(12),
198
- color: "primary.main",
199
- "&:hover": { textDecoration: "underline" }
200
- },
234
+ sx: [
235
+ {
236
+ ml: "auto",
237
+ border: 0,
238
+ p: 0,
239
+ bgcolor: "transparent",
240
+ cursor: "pointer",
241
+ font: "inherit",
242
+ fontSize: sxRem(12),
243
+ color: "primary.main",
244
+ "&:hover": { textDecoration: "underline" }
245
+ },
246
+ clearTargetSx
247
+ ],
201
248
  children: copy.filters.clear
202
249
  }
203
250
  )
@@ -226,6 +273,9 @@ function MoreGroup({
226
273
  export {
227
274
  fieldClearing,
228
275
  MoreQuick,
276
+ MORE_SPACING,
277
+ moreHeaderSx,
278
+ clearTargetSx,
229
279
  MoreGroup
230
280
  };
231
- //# sourceMappingURL=chunk-MZAYIG2I.js.map
281
+ //# sourceMappingURL=chunk-D2JQF2WC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataViews/data-views-more-fields.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * ONE FIELD, RENDERED INSIDE THE \"MAIS\" PANEL.\n *\n * Split from `data-views-more-filters` at the file-size gate, along the seam\n * that was already there: that module is the trigger, the panel and its\n * footer — the chrome — and this is what goes in it.\n *\n * A field with one or two options renders FLAT: inside a panel there is no\n * space to win back, and two labelled checkboxes are faster than a dropdown\n * needing a second click. Past that — or whenever the field asks for a tree or\n * a search — it is the bar's own {@link PillControl}; see `sharesBarControl`.\n */\nimport Checkbox from \"@mui/material/Checkbox/index.js\";\nimport type { Theme } from \"@mui/material/styles/index.js\";\n\nimport { Box } from \"../../../mui/Box\";\nimport { Text } from \"../../typography/Text\";\n\nimport { PillControl } from \"./data-views-category-pill\";\nimport type { OverflowField } from \"./data-views-overflow\";\nimport { RangeBounds } from \"./data-views-range-pill\";\nimport { isRangeSet } from \"./data-views-range-values\";\nimport type { QuickFilterConfig, RangeValue } from \"./data-views-types\";\nimport { QuickRow } from \"./data-views-quick-chip\";\nimport { isQuickActive } from \"./data-views-overflow-fields\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { fieldRadiusPx } from \"../../../tokens/field-radius\";\nimport { fieldHeight } from \"../../../tokens/field-height\";\nimport { fieldEdge } from \"../../../tokens/field-edge\";\nimport { sxRem } from \"../../../tokens/relative\";\n\n/** What each field's control needs, minus the panel's own chrome. */\nexport interface MoreFieldProps {\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 /** Presses or releases a quick chip shed into the panel. */\n onToggleQuick?: (quick: QuickFilterConfig) => void;\n testIdPrefix: string;\n}\n\n/**\n * Above this many options a field is a DROPDOWN rather than a flat row of\n * checkboxes. Two options cost two lines and read faster laid out; a \"Cliente\"\n * with a dozen turns the panel into a scrolling wall and buries every field\n * under it, which is exactly what the overflow was meant to avoid.\n */\nconst INLINE_OPTION_LIMIT = 2;\n\n/**\n * Whether an overflowed pill keeps the SAME control it has on the bar.\n *\n * The panel used to build its own flat dropdown for every field past two\n * options, so a field's config only held while it fitted: `control:\n * \"category\"` lost its tree (subcategories flattened into one list, no\n * \"Marcar tudo\", no count footer) and `searchEnabled` lost its search, on\n * exactly the phone widths where most filters live in here. Anything the bar\n * would render as a dropdown now renders as the bar's own {@link PillControl};\n * only a plain two-option field — one that did not ask for a dropdown, a tree\n * or a search — stays a flat checkbox row, which is a panel layout rather than\n * a different control (the filter panel draws the same line).\n */\nfunction sharesBarControl<T extends Record<string, unknown>>(field: OverflowField<T>): boolean {\n const pill = field.pill;\n if (!pill) return false;\n return (\n pill.control === \"category\" ||\n pill.control === \"multiselect\" ||\n pill.searchEnabled === true ||\n pill.options.length > INLINE_OPTION_LIMIT\n );\n}\n\n/** One overflowed pill: the bar's control, or its options as checkboxes. */\nfunction OverflowPill<T extends Record<string, unknown>>({\n field,\n values,\n onTogglePill,\n onClear,\n testIdPrefix,\n}: {\n field: OverflowField<T>;\n values: string[];\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onClear: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const testId = `${testIdPrefix}-more-${field.id}`;\n if (field.pill && sharesBarControl(field)) {\n return (\n <PillControl\n fieldId={field.id}\n pill={field.pill}\n selected={values}\n onTogglePill={onTogglePill}\n onClearField={onClear}\n testIdPrefix={testIdPrefix}\n testId={testId}\n />\n );\n }\n const onToggle = (value: string, checked: boolean) => onTogglePill(field.id, value, checked);\n return (\n <Box sx={{ display: \"flex\", flexWrap: \"wrap\", gap: 0.75 }}>\n {(field.pill?.options ?? []).map((option) => {\n const checked = values.includes(option.value);\n return (\n <Box\n key={option.value}\n component=\"label\"\n data-testid={`${testId}-${option.value}`}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 0.25,\n pr: 1,\n border: 1,\n borderStyle: \"solid\",\n minHeight: fieldHeight,\n borderColor: (theme) => (checked ? theme.palette.primary.main : fieldEdge(theme)),\n bgcolor: checked ? \"action.selected\" : \"transparent\",\n borderRadius: fieldRadiusPx,\n cursor: \"pointer\",\n fontSize: sxRem(13),\n color: checked ? \"primary.main\" : \"text.secondary\",\n }}\n >\n <Checkbox\n size=\"small\"\n checked={checked}\n onChange={(event) => onToggle(option.value, event.target.checked)}\n inputProps={{ \"aria-label\": `${field.label}: ${option.label}` }}\n />\n {option.label}\n </Box>\n );\n })}\n </Box>\n );\n}\n\n\n/**\n * One overflowed range: its presets and its two bounds, as the same controls\n * the pill uses.\n *\n * The whole control DELEGATES to {@link RangeBounds} rather than being built\n * here, which is the point — this panel used to render a raw\n * `<input type=\"date\">`, so the masked `dd/mm/aaaa` field existed only while\n * the filter FITTED on the bar. The moment \"Data\" overflowed it reverted to the\n * native control the mask replaced, and a merchant on a narrow screen never saw\n * the fix at all (FUT-744). `Valor` had the twin bug: a bare `type=\"number\"`\n * plus `Number(raw)` dropped the decimal comma this panel is meant to accept.\n *\n * That also retires the intrinsic-width workaround this pair used to need — a\n * native date input reports a wide minimum (its own mask plus the picker\n * glyph), which is what made two of them refuse to shrink and scrolled the\n * panel sideways. A text input has no such minimum.\n *\n * `RangeBounds` renders the preset chips ITSELF, above the inputs. This panel\n * must NOT render its own row as well: when the delegation above landed, the\n * chips it used to draw by hand stayed behind, and \"Data\" showed Hoje/Ontem/\n * Esta semana/Este mês/Este ano twice — two rows, duplicated test ids, and half\n * the panel's height spent saying the same thing (FUT-751).\n */\nfunction OverflowRange<T extends Record<string, unknown>>({\n field,\n value,\n onChange,\n testIdPrefix,\n}: {\n field: OverflowField<T>;\n value: RangeValue;\n onChange: (range: RangeValue) => void;\n testIdPrefix: string;\n}): React.JSX.Element | null {\n // `group === \"range\"` is what selects this component, so `range` is always\n // set; the guard is for the type, not for a state the caller can reach.\n if (!field.range) return null;\n return (\n <RangeBounds\n field={field.range}\n value={value}\n onChange={onChange}\n testId={`${testIdPrefix}-more-${field.id}`}\n fillRow\n />\n );\n}\n\n/**\n * Whether a field has anything applied, and how to unapply it — the two shapes\n * (a pill's selected values, a range's bounds) answered in one place so the\n * group that renders them stays a renderer.\n */\nexport function fieldClearing<T extends Record<string, unknown>>({\n field,\n pills,\n ranges,\n onTogglePill,\n onChangeRange,\n}: {\n field: OverflowField<T>;\n} & Pick<MoreFieldProps, \"pills\" | \"ranges\" | \"onTogglePill\" | \"onChangeRange\">): {\n applied: boolean;\n clear: () => void;\n} {\n if (field.group === \"quick\" && field.quick) {\n const quick = field.quick;\n // A `default` chip lit by an empty field has nothing to clear.\n const applied = isQuickActive(quick, pills) && (pills[quick.fieldId]?.length ?? 0) > 0;\n return { applied, clear: () => onTogglePill(quick.fieldId, quick.value, false) };\n }\n if (field.group === \"range\") {\n return {\n applied: isRangeSet(ranges[field.id] ?? {}),\n clear: () => onChangeRange(field.id, {}),\n };\n }\n const values = pills[field.id] ?? [];\n return {\n applied: values.length > 0,\n clear: () => values.forEach((value) => onTogglePill(field.id, value, false)),\n };\n}\n\n\n/**\n * Under a shed quick chip: 12px below `sm`, the gap a following group's\n * \"Limpar\" target reaches into (its 8px let the target cover the chip's\n * label); 8px from `sm` up, as before.\n */\nconst quickSx = (theme: Theme) => ({\n mb: MORE_SPACING.underQuick,\n [theme.breakpoints.up(\"sm\")]: { mb: 1 },\n \"&:last-of-type\": { mb: 0 },\n});\n\n/**\n * A quick chip shed into the panel: its own line, because label and count are\n * already the whole control — no heading above it, no \"Limpar\" beside it.\n */\nexport function MoreQuick({\n quick,\n pills,\n onToggleQuick,\n testIdPrefix,\n}: {\n quick: QuickFilterConfig;\n} & Pick<MoreFieldProps, \"pills\" | \"onToggleQuick\" | \"testIdPrefix\">): React.JSX.Element {\n return (\n <Box sx={quickSx}>\n <QuickRow\n quick={quick}\n active={isQuickActive(quick, pills)}\n onToggle={() => onToggleQuick?.(quick)}\n testIdPrefix={testIdPrefix}\n />\n </Box>\n );\n}\n\n/**\n * The \"Mais\" panel's vertical rhythm, in the theme's spacing units: the unit\n * the header \"Limpar\"'s phone target reaches into (FUT-4144). The target is\n * the button's 18px of text plus `reachUp` and `reachDown`, 40px at the\n * default type scale, and it may never reach further than the gap that is\n * there: under the group or quick chip above it (or the scroller's own top\n * inset, for the first group) and under its own header. Sideways it reaches\n * into the header row's empty gap and the scroller's padding, so a 37px\n * \"Limpar\" is 41px wide.\n */\nexport const MORE_SPACING = {\n /** Under a group. */\n underGroup: 1.5,\n /** Under a shed quick chip, below `sm` (8px from `sm` up, as before). */\n underQuick: 1.5,\n /**\n * The scroller's top inset (`data-views-more-filters.tsx`), at every width:\n * the first group's overlay reaches into it. Not part of a responsive `p`,\n * whose `xs` value is emitted as a media query and would win over it.\n */\n aboveFirst: 1.5,\n /** Under a group's header, below `sm`, applied or not, so nothing moves on apply. */\n underHeader: 1.25,\n /** Under a group's header from `sm` up, as it always was. */\n underHeaderFromSm: 0.5,\n reachUp: 1.5,\n reachDown: 1.25,\n reachSide: 0.25,\n} as const;\n\n/** A group's header row: the field's name, and \"Limpar\" while it is applied. */\nexport const moreHeaderSx = (theme: Theme) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: 1,\n mb: MORE_SPACING.underHeader,\n [theme.breakpoints.up(\"sm\")]: { mb: MORE_SPACING.underHeaderFromSm },\n});\n\n/**\n * \"Limpar\" is 12px text, a 37×18 button: on a phone that was the whole target\n * (FUT-4144, measured in the admin at 320–900). Below `sm` an overlay makes it\n * at least 40×40 without moving the text, reaching only into gaps\n * {@link MORE_SPACING} guarantees, in the same unit, so it grows and shrinks\n * with them and covers nothing else. From `sm` up there is no overlay and the\n * button is exactly as it was.\n */\nexport const clearTargetSx = (theme: Theme) => ({\n position: \"relative\" as const,\n [theme.breakpoints.up(\"sm\")]: { position: \"static\" as const },\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\" as const,\n top: `-${theme.spacing(MORE_SPACING.reachUp)}`,\n bottom: `-${theme.spacing(MORE_SPACING.reachDown)}`,\n left: `-${theme.spacing(MORE_SPACING.reachSide)}`,\n right: `-${theme.spacing(MORE_SPACING.reachSide)}`,\n [theme.breakpoints.up(\"sm\")]: { display: \"none\" },\n },\n});\n\n/** One labelled group in the panel: the field's name, then its control. */\nexport function MoreGroup<T extends Record<string, unknown>>({\n field,\n pills,\n ranges,\n onTogglePill,\n onChangeRange,\n testIdPrefix,\n}: {\n field: OverflowField<T>;\n} & MoreFieldProps): React.JSX.Element {\n const copy = useDataViewsCopy();\n const { applied, clear } = fieldClearing({ field, pills, ranges, onTogglePill, onChangeRange });\n return (\n <Box sx={{ mb: MORE_SPACING.underGroup, \"&:last-of-type\": { mb: 0 } }}>\n <Box sx={moreHeaderSx}>\n <Text variant=\"caption\" as=\"span\">\n <Box component=\"span\" sx={{ color: \"text.secondary\" }}>\n {field.label}\n {field.group === \"range\" && isRangeSet(ranges[field.id] ?? {}) ? \" •\" : \"\"}\n </Box>\n </Text>\n {/* The panel's equivalent of the pill's ✕. Without it a field applied\n in here could only be cleared by finding it again on the bar —\n which is where it goes the moment it becomes active, so the\n operator has to close this panel to undo what they just did. */}\n {applied && (\n <Box\n component=\"button\"\n type=\"button\"\n onClick={clear}\n data-testid={`${testIdPrefix}-more-${field.id}-clear`}\n sx={[\n {\n ml: \"auto\",\n border: 0,\n p: 0,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n font: \"inherit\",\n fontSize: sxRem(12),\n color: \"primary.main\",\n \"&:hover\": { textDecoration: \"underline\" },\n },\n clearTargetSx,\n ]}\n >\n {copy.filters.clear}\n </Box>\n )}\n </Box>\n {field.group === \"pill\" ? (\n <OverflowPill\n field={field}\n values={pills[field.id] ?? []}\n onTogglePill={onTogglePill}\n onClear={() => (pills[field.id] ?? []).forEach((v) => onTogglePill(field.id, v, false))}\n testIdPrefix={testIdPrefix}\n />\n ) : (\n <OverflowRange\n field={field}\n value={ranges[field.id] ?? {}}\n onChange={(range) => onChangeRange(field.id, range)}\n testIdPrefix={testIdPrefix}\n />\n )}\n </Box>\n );\n}\n\n"],"mappings":"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","names":["default"]}
@@ -1,8 +1,9 @@
1
1
  import {
2
+ MORE_SPACING,
2
3
  MoreGroup,
3
4
  MoreQuick,
4
5
  fieldClearing
5
- } from "./chunk-MZAYIG2I.js";
6
+ } from "./chunk-D2JQF2WC.js";
6
7
  import {
7
8
  useStillAnchor
8
9
  } from "./chunk-7CUZTWKW.js";
@@ -211,7 +212,7 @@ function MoreFilters({
211
212
  slotProps: { paper: { ref: still.paperRef, sx: phone ? PHONE_PAPER_SX : PAPER_SX } },
212
213
  children: /* @__PURE__ */ jsxs(default2, { "data-testid": `${rest.testIdPrefix}-more-panel`, sx: { ...COLUMN_SX, flex: "1 1 auto", minHeight: 0 }, children: [
213
214
  /* @__PURE__ */ jsx(MoreHeading, {}),
214
- /* @__PURE__ */ jsx(default2, { sx: { flex: "1 1 auto", minHeight: 0, overflowY: "auto", overflowX: "hidden", p: { xs: 1, sm: 1.5 }, minWidth: 0 }, children: /* @__PURE__ */ jsx(MoreFields, { fields, ...rest }, clearKey) }),
215
+ /* @__PURE__ */ jsx(default2, { sx: { flex: "1 1 auto", minHeight: 0, overflowY: "auto", overflowX: "hidden", px: { xs: 1, sm: 1.5 }, pb: { xs: 1, sm: 1.5 }, pt: MORE_SPACING.aboveFirst, minWidth: 0 }, children: /* @__PURE__ */ jsx(MoreFields, { fields, ...rest }, clearKey) }),
215
216
  (anyApplied || holdsDayRange) && /* @__PURE__ */ jsx(MoreFooter, { onClearAll, testIdPrefix: rest.testIdPrefix, reserved: !anyApplied })
216
217
  ] })
217
218
  }
@@ -222,4 +223,4 @@ function MoreFilters({
222
223
  export {
223
224
  MoreFilters
224
225
  };
225
- //# sourceMappingURL=chunk-HS662RLW.js.map
226
+ //# sourceMappingURL=chunk-DWH4TQXK.js.map