@12-apps/ui 6.56.0 → 6.57.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.
Files changed (134) hide show
  1. package/NATIVE.md +2 -2
  2. package/components-catalog.md +2 -2
  3. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +5 -5
  4. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +12 -12
  5. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  6. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +3 -3
  7. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +3 -3
  8. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +3 -3
  9. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +4 -4
  10. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +5 -5
  11. package/dist/_internal/components/data-display/Progress/Progress.js +1 -1
  12. package/dist/_internal/components/data-display/index.js +1 -1
  13. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  14. package/dist/_internal/components/feedback/Dialog/Dialog.styles.js +1 -1
  15. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +2 -2
  16. package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +1 -1
  17. package/dist/_internal/components/feedback/index.js +4 -4
  18. package/dist/_internal/components/index.js +15 -15
  19. package/dist/_internal/components/layout/SettingCard/SettingCard.js +5 -5
  20. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +3 -3
  21. package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +4 -4
  22. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +4 -4
  23. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +6 -6
  24. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +5 -5
  25. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +6 -6
  26. package/dist/_internal/components/layout/index.js +9 -9
  27. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +3 -3
  28. package/dist/_internal/components/navigation/index.js +3 -3
  29. package/dist/_internal/icons/Icon.js +2 -2
  30. package/dist/_internal/icons/paths.generated.js +1 -1
  31. package/dist/{chunk-4EJBLJZK.js → chunk-2KGYTJCN.js} +50 -29
  32. package/dist/chunk-2KGYTJCN.js.map +1 -0
  33. package/dist/{chunk-MQSI57HY.js → chunk-45PGSVOH.js} +2 -2
  34. package/dist/{chunk-CLC4VIOF.js → chunk-4PYEDDYV.js} +2 -2
  35. package/dist/{chunk-JWXGZ4VM.js → chunk-6J27G2HT.js} +2 -2
  36. package/dist/{chunk-WGFHZNFR.js → chunk-AEIJSEVV.js} +4 -1
  37. package/dist/{chunk-WGFHZNFR.js.map → chunk-AEIJSEVV.js.map} +1 -1
  38. package/dist/{chunk-3S44O3WI.js → chunk-BJMNAPKH.js} +4 -4
  39. package/dist/{chunk-6E4XNOAC.js → chunk-CCCILWYZ.js} +4 -4
  40. package/dist/{chunk-Y2HCYT5W.js → chunk-GRRW5NSR.js} +2 -2
  41. package/dist/{chunk-NZZ2BTIK.js → chunk-H7R6UKOE.js} +2 -2
  42. package/dist/{chunk-DSDZIBLQ.js → chunk-ICSXPZXT.js} +2 -2
  43. package/dist/{chunk-AL3Z24VG.js → chunk-ILQVNZ5B.js} +2 -2
  44. package/dist/{chunk-5PN5MY2X.js → chunk-INQO5AYV.js} +3 -3
  45. package/dist/{chunk-2DV64INT.js → chunk-KEDZTZCV.js} +2 -2
  46. package/dist/{chunk-ZJC5COCE.js → chunk-N4MR4EMC.js} +3 -3
  47. package/dist/{chunk-KMW7GGX6.js → chunk-OGBLNORM.js} +2 -2
  48. package/dist/{chunk-44JLXXWQ.js → chunk-PPITQH3C.js} +2 -2
  49. package/dist/{chunk-JC244QQF.js → chunk-SEWUYHSG.js} +2 -2
  50. package/dist/{chunk-XTHDWW4M.js → chunk-VAY6KESM.js} +7 -4
  51. package/dist/chunk-VAY6KESM.js.map +1 -0
  52. package/dist/{chunk-5XZEGI35.js → chunk-X7HCS3HP.js} +3 -3
  53. package/dist/{chunk-6ZLP7BA7.js → chunk-XC7YHO7Z.js} +3 -1
  54. package/dist/{chunk-6ZLP7BA7.js.map → chunk-XC7YHO7Z.js.map} +1 -1
  55. package/dist/{chunk-T2S7NIUG.js → chunk-XE4JVTM6.js} +2 -2
  56. package/dist/{chunk-SIWXMNQT.js → chunk-YDTCM5F6.js} +4 -4
  57. package/dist/{chunk-BQGWY577.js → chunk-ZCUVZ5PR.js} +3 -3
  58. package/dist/data-display/DataViews.js +12 -12
  59. package/dist/data-display/Progress.js +1 -1
  60. package/dist/feedback/Dialog.js +2 -2
  61. package/dist/feedback/StackedModal.js +2 -2
  62. package/dist/icons.js +2 -2
  63. package/dist/layout/SettingCard.js +9 -9
  64. package/dist/native/chunks/{chunk-QGTZGL7P.js → chunk-BUFQXX27.js} +2 -2
  65. package/dist/native/chunks/{chunk-EZO2KJF7.js → chunk-JFKH5YHF.js} +3 -1
  66. package/dist/native/chunks/{chunk-EZO2KJF7.js.map → chunk-JFKH5YHF.js.map} +1 -1
  67. package/dist/native/data-display/Alert.js +1 -1
  68. package/dist/native/data-display/Avatar.js +1 -1
  69. package/dist/native/data-display/Badge.js +1 -1
  70. package/dist/native/data-display/Chip.js +1 -1
  71. package/dist/native/data-display/EmptyState.js +2 -2
  72. package/dist/native/data-display/ErrorState.js +1 -1
  73. package/dist/native/data-display/FleetMap.js +2 -2
  74. package/dist/native/data-display/Progress.js +11 -5
  75. package/dist/native/data-display/Progress.js.map +1 -1
  76. package/dist/native/feedback/Dialog.js +2 -1
  77. package/dist/native/feedback/Dialog.js.map +1 -1
  78. package/dist/native/form/Checkbox.js +1 -1
  79. package/dist/native/form/Select.js +1 -1
  80. package/dist/native/icons.js +1 -1
  81. package/dist/navigation/AppHeader.js +3 -3
  82. package/dist/types/components/data-display/Progress/Progress.base.d.ts +8 -0
  83. package/dist/types/components/data-display/Progress/Progress.base.d.ts.map +1 -1
  84. package/dist/types/components/data-display/Progress/Progress.d.ts.map +1 -1
  85. package/dist/types/components/feedback/Dialog/Dialog.base.d.ts +2 -1
  86. package/dist/types/components/feedback/Dialog/Dialog.base.d.ts.map +1 -1
  87. package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts.map +1 -1
  88. package/dist/types/components/feedback/StackedModal/StackedModal.parts.d.ts.map +1 -1
  89. package/dist/types/icons/paths.generated.d.ts +2 -0
  90. package/dist/types/icons/paths.generated.d.ts.map +1 -1
  91. package/dist/types-native/components/data-display/Progress/Progress.base.d.ts +8 -0
  92. package/dist/types-native/components/data-display/Progress/Progress.base.d.ts.map +1 -1
  93. package/dist/types-native/components/data-display/Progress/Progress.native.d.ts.map +1 -1
  94. package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts +2 -1
  95. package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts.map +1 -1
  96. package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts.map +1 -1
  97. package/dist/types-native/icons/paths.generated.d.ts +2 -0
  98. package/dist/types-native/icons/paths.generated.d.ts.map +1 -1
  99. package/package.json +1 -1
  100. package/src/components/data-display/Progress/Progress.base.ts +10 -0
  101. package/src/components/data-display/Progress/Progress.md +23 -0
  102. package/src/components/data-display/Progress/Progress.native.tsx +35 -25
  103. package/src/components/data-display/Progress/Progress.tsx +8 -5
  104. package/src/components/feedback/Dialog/Dialog.base.ts +2 -1
  105. package/src/components/feedback/Dialog/Dialog.look.native.ts +1 -0
  106. package/src/components/feedback/Dialog/Dialog.md +25 -1
  107. package/src/components/feedback/Dialog/Dialog.styles.ts +3 -0
  108. package/src/components/feedback/StackedModal/StackedModal.md +17 -2
  109. package/src/components/feedback/StackedModal/StackedModal.parts.tsx +19 -3
  110. package/src/icons/Icon.md +4 -0
  111. package/src/icons/glyphs.json +2 -0
  112. package/src/icons/paths.generated.ts +2 -0
  113. package/dist/chunk-4EJBLJZK.js.map +0 -1
  114. package/dist/chunk-XTHDWW4M.js.map +0 -1
  115. /package/dist/{chunk-MQSI57HY.js.map → chunk-45PGSVOH.js.map} +0 -0
  116. /package/dist/{chunk-CLC4VIOF.js.map → chunk-4PYEDDYV.js.map} +0 -0
  117. /package/dist/{chunk-JWXGZ4VM.js.map → chunk-6J27G2HT.js.map} +0 -0
  118. /package/dist/{chunk-3S44O3WI.js.map → chunk-BJMNAPKH.js.map} +0 -0
  119. /package/dist/{chunk-6E4XNOAC.js.map → chunk-CCCILWYZ.js.map} +0 -0
  120. /package/dist/{chunk-Y2HCYT5W.js.map → chunk-GRRW5NSR.js.map} +0 -0
  121. /package/dist/{chunk-NZZ2BTIK.js.map → chunk-H7R6UKOE.js.map} +0 -0
  122. /package/dist/{chunk-DSDZIBLQ.js.map → chunk-ICSXPZXT.js.map} +0 -0
  123. /package/dist/{chunk-AL3Z24VG.js.map → chunk-ILQVNZ5B.js.map} +0 -0
  124. /package/dist/{chunk-5PN5MY2X.js.map → chunk-INQO5AYV.js.map} +0 -0
  125. /package/dist/{chunk-2DV64INT.js.map → chunk-KEDZTZCV.js.map} +0 -0
  126. /package/dist/{chunk-ZJC5COCE.js.map → chunk-N4MR4EMC.js.map} +0 -0
  127. /package/dist/{chunk-KMW7GGX6.js.map → chunk-OGBLNORM.js.map} +0 -0
  128. /package/dist/{chunk-44JLXXWQ.js.map → chunk-PPITQH3C.js.map} +0 -0
  129. /package/dist/{chunk-JC244QQF.js.map → chunk-SEWUYHSG.js.map} +0 -0
  130. /package/dist/{chunk-5XZEGI35.js.map → chunk-X7HCS3HP.js.map} +0 -0
  131. /package/dist/{chunk-T2S7NIUG.js.map → chunk-XE4JVTM6.js.map} +0 -0
  132. /package/dist/{chunk-SIWXMNQT.js.map → chunk-YDTCM5F6.js.map} +0 -0
  133. /package/dist/{chunk-BQGWY577.js.map → chunk-ZCUVZ5PR.js.map} +0 -0
  134. /package/dist/native/chunks/{chunk-QGTZGL7P.js.map → chunk-BUFQXX27.js.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  SettingToggle
3
- } from "../../../../chunk-2DV64INT.js";
4
- import "../../../../chunk-5PN5MY2X.js";
3
+ } from "../../../../chunk-KEDZTZCV.js";
4
+ import "../../../../chunk-INQO5AYV.js";
5
5
  import "../../../../chunk-XJQNSMGA.js";
6
6
  import "../../../../chunk-SALQ65SM.js";
7
- import "../../../../chunk-BQGWY577.js";
8
- import "../../../../chunk-CLC4VIOF.js";
7
+ import "../../../../chunk-ZCUVZ5PR.js";
8
+ import "../../../../chunk-4PYEDDYV.js";
9
9
  import "../../../../chunk-IQWPVPV5.js";
10
10
  import "../../../../chunk-BFRVMCQM.js";
11
11
  import "../../../../chunk-RN7UJI7S.js";
@@ -30,8 +30,8 @@ import "../../../../chunk-RIEV4VXF.js";
30
30
  import "../../../../chunk-LV7LSPBF.js";
31
31
  import "../../../../chunk-PUFA7FQ7.js";
32
32
  import "../../../../chunk-PGGGKYWG.js";
33
- import "../../../../chunk-JC244QQF.js";
34
- import "../../../../chunk-6ZLP7BA7.js";
33
+ import "../../../../chunk-SEWUYHSG.js";
34
+ import "../../../../chunk-XC7YHO7Z.js";
35
35
  import "../../../../chunk-QWBQVQRG.js";
36
36
  import "../../../../chunk-RTSK5OZT.js";
37
37
  import "../../../../chunk-Q3HYEAVQ.js";
@@ -48,22 +48,22 @@ import "../../../chunk-4VMFS3VJ.js";
48
48
  import "../../../chunk-QGUNUXTT.js";
49
49
  import {
50
50
  SettingGroup
51
- } from "../../../chunk-6E4XNOAC.js";
51
+ } from "../../../chunk-CCCILWYZ.js";
52
52
  import {
53
53
  SETTING_GRID_CONTAINER,
54
54
  SettingGrid
55
- } from "../../../chunk-44JLXXWQ.js";
55
+ } from "../../../chunk-PPITQH3C.js";
56
56
  import {
57
57
  SettingCard
58
- } from "../../../chunk-SIWXMNQT.js";
58
+ } from "../../../chunk-YDTCM5F6.js";
59
59
  import {
60
60
  SettingToggle
61
- } from "../../../chunk-2DV64INT.js";
62
- import "../../../chunk-5PN5MY2X.js";
61
+ } from "../../../chunk-KEDZTZCV.js";
62
+ import "../../../chunk-INQO5AYV.js";
63
63
  import "../../../chunk-XJQNSMGA.js";
64
64
  import "../../../chunk-SALQ65SM.js";
65
- import "../../../chunk-BQGWY577.js";
66
- import "../../../chunk-CLC4VIOF.js";
65
+ import "../../../chunk-ZCUVZ5PR.js";
66
+ import "../../../chunk-4PYEDDYV.js";
67
67
  import "../../../chunk-IQWPVPV5.js";
68
68
  import "../../../chunk-BFRVMCQM.js";
69
69
  import "../../../chunk-QS5OHHBY.js";
@@ -141,8 +141,8 @@ import "../../../chunk-7WDPC46N.js";
141
141
  import "../../../chunk-OJSJ4BKM.js";
142
142
  import "../../../chunk-EMPVMZAB.js";
143
143
  import "../../../chunk-PGGGKYWG.js";
144
- import "../../../chunk-JC244QQF.js";
145
- import "../../../chunk-6ZLP7BA7.js";
144
+ import "../../../chunk-SEWUYHSG.js";
145
+ import "../../../chunk-XC7YHO7Z.js";
146
146
  import "../../../chunk-QWBQVQRG.js";
147
147
  import "../../../chunk-RTSK5OZT.js";
148
148
  import "../../../chunk-Q3HYEAVQ.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  AppHeaderDetails
4
- } from "../../../../chunk-T2S7NIUG.js";
4
+ } from "../../../../chunk-XE4JVTM6.js";
5
5
  import "../../../../chunk-ERTXRK6S.js";
6
6
  import "../../../../chunk-HC7ITMP4.js";
7
7
  import "../../../../chunk-LYVTJLCF.js";
@@ -9,9 +9,9 @@ import "../../../../chunk-CRN4KKNI.js";
9
9
  import "../../../../chunk-26DSSWTT.js";
10
10
  import "../../../../chunk-BDQCCW4N.js";
11
11
  import "../../../../chunk-IM4DMKH4.js";
12
- import "../../../../chunk-AL3Z24VG.js";
12
+ import "../../../../chunk-ILQVNZ5B.js";
13
13
  import "../../../../chunk-GYXUCS37.js";
14
- import "../../../../chunk-WGFHZNFR.js";
14
+ import "../../../../chunk-AEIJSEVV.js";
15
15
  import "../../../../chunk-AL5E624U.js";
16
16
  import "../../../../chunk-Z2JH5KW5.js";
17
17
  import "../../../../chunk-LV7LSPBF.js";
@@ -52,7 +52,7 @@ import {
52
52
  } from "../../../chunk-47VRDPR2.js";
53
53
  import {
54
54
  AppHeaderDetails
55
- } from "../../../chunk-T2S7NIUG.js";
55
+ } from "../../../chunk-XE4JVTM6.js";
56
56
  import {
57
57
  AppHeaderBrand
58
58
  } from "../../../chunk-GWFAINQ7.js";
@@ -86,9 +86,9 @@ import {
86
86
  import "../../../chunk-BWMHGENX.js";
87
87
  import "../../../chunk-LYB6YYTG.js";
88
88
  import "../../../chunk-Z6TIAVEG.js";
89
- import "../../../chunk-AL3Z24VG.js";
89
+ import "../../../chunk-ILQVNZ5B.js";
90
90
  import "../../../chunk-GYXUCS37.js";
91
- import "../../../chunk-WGFHZNFR.js";
91
+ import "../../../chunk-AEIJSEVV.js";
92
92
  import "../../../chunk-AL5E624U.js";
93
93
  import "../../../chunk-Z2JH5KW5.js";
94
94
  import "../../../chunk-LV7LSPBF.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Icon
3
- } from "../../chunk-JC244QQF.js";
4
- import "../../chunk-6ZLP7BA7.js";
3
+ } from "../../chunk-SEWUYHSG.js";
4
+ import "../../chunk-XC7YHO7Z.js";
5
5
  import "../../chunk-QWBQVQRG.js";
6
6
  import "../../chunk-RTSK5OZT.js";
7
7
  import "../../chunk-Q3HYEAVQ.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ICON_NAMES,
3
3
  ICON_PATHS
4
- } from "../../chunk-6ZLP7BA7.js";
4
+ } from "../../chunk-XC7YHO7Z.js";
5
5
  import "../../chunk-PZ5AY32C.js";
6
6
  export {
7
7
  ICON_NAMES,
@@ -114,34 +114,55 @@ var ModalHeader = ({
114
114
  headerActions,
115
115
  rtl,
116
116
  dataTestId
117
- }) => /* @__PURE__ */ jsxs(StyledDialogTitle, { id: titleId, rtl, "data-testid": testId(dataTestId, "header"), children: [
118
- /* @__PURE__ */ jsxs(DialogTitleLeft, { children: [
119
- /* @__PURE__ */ jsx(
120
- HeaderLeadingButton,
121
- {
122
- canGoBack,
123
- onBack,
124
- backLabel,
125
- onClose,
126
- hideClose,
127
- rtl,
128
- dataTestId
129
- }
130
- ),
131
- navigationTitle && /* @__PURE__ */ jsx(
132
- Typography,
133
- {
134
- variant: "h6",
135
- component: "h2",
136
- noWrap: true,
137
- sx: { ml: canGoBack || !hideClose ? 1 : 0 },
138
- "data-testid": testId(dataTestId, "title"),
139
- children: navigationTitle
140
- }
141
- )
142
- ] }),
143
- /* @__PURE__ */ jsx(DialogTitleRight, { "data-testid": testId(dataTestId, "header-actions"), children: headerActions })
144
- ] });
117
+ }) => (
118
+ // The BAR is not a heading: it holds the ✕ or back button and the header
119
+ // actions. The title inside it is the panel's one heading and carries the id
120
+ // the dialog's `aria-labelledby` names, so the dialog is named by the title
121
+ // alone — not "close Title Save" — and a screen reader hears it once.
122
+ //
123
+ // The bar's id is stated, never left to MUI: `DialogTitle` falls back to the
124
+ // Dialog's `aria-labelledby` and would claim the title's id a second time.
125
+ // With NO title the bar is drawn exactly as it always was — MUI's own `h2`,
126
+ // holding the id — so an untitled panel keeps its markup and its name.
127
+ /* @__PURE__ */ jsxs(
128
+ StyledDialogTitle,
129
+ {
130
+ component: navigationTitle ? "div" : "h2",
131
+ id: navigationTitle ? `${titleId}-bar` : titleId,
132
+ rtl,
133
+ "data-testid": testId(dataTestId, "header"),
134
+ children: [
135
+ /* @__PURE__ */ jsxs(DialogTitleLeft, { children: [
136
+ /* @__PURE__ */ jsx(
137
+ HeaderLeadingButton,
138
+ {
139
+ canGoBack,
140
+ onBack,
141
+ backLabel,
142
+ onClose,
143
+ hideClose,
144
+ rtl,
145
+ dataTestId
146
+ }
147
+ ),
148
+ navigationTitle && /* @__PURE__ */ jsx(
149
+ Typography,
150
+ {
151
+ id: titleId,
152
+ variant: "h6",
153
+ component: "h2",
154
+ noWrap: true,
155
+ sx: { ml: canGoBack || !hideClose ? 1 : 0 },
156
+ "data-testid": testId(dataTestId, "title"),
157
+ children: navigationTitle
158
+ }
159
+ )
160
+ ] }),
161
+ /* @__PURE__ */ jsx(DialogTitleRight, { "data-testid": testId(dataTestId, "header-actions"), children: headerActions })
162
+ ]
163
+ }
164
+ )
165
+ );
145
166
  var ContentSkeleton = () => {
146
167
  const theme = useTheme();
147
168
  return /* @__PURE__ */ jsxs(Box, { sx: { p: 3 }, children: [
@@ -231,4 +252,4 @@ export {
231
252
  ModalFooter,
232
253
  ModalPanelContents
233
254
  };
234
- //# sourceMappingURL=chunk-4EJBLJZK.js.map
255
+ //# sourceMappingURL=chunk-2KGYTJCN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/feedback/StackedModal/StackedModal.parts.tsx"],"sourcesContent":["import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport DialogActions from '@mui/material/DialogActions/index.js';\nimport DialogContent from '@mui/material/DialogContent/index.js';\nimport DialogTitle from '@mui/material/DialogTitle/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Skeleton from '@mui/material/Skeleton/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { styled, useTheme } from '@mui/material/styles/index.js';\nimport type { ElementType, FC, ReactNode } from 'react';\nimport React from 'react';\nimport { rem } from '../../../tokens/relative';\nimport { safeAreaBottom } from '../../../utils/viewport';\nimport {\n loadingOverlayStyles,\n modalContentStyles,\n titleLeftStyles,\n titleRightStyles,\n titleStyles,\n} from './StackedModal.styles';\n\n// `component` typed through: the bar is a `div` when it holds a title (`ModalHeader`).\nconst StyledDialogTitle = styled(DialogTitle, {\n shouldForwardProp: (prop) => prop !== 'rtl',\n})<{ rtl?: boolean; component?: ElementType }>(({ theme, rtl }) => titleStyles(theme, rtl));\n\nconst DialogTitleLeft = styled(Box)(({ theme }) => titleLeftStyles(theme));\nconst DialogTitleRight = styled(Box)(({ theme }) => titleRightStyles(theme));\nconst LoadingOverlay = styled(Box)(({ theme }) => loadingOverlayStyles(theme));\n\n/**\n * The padded content wrapper callers put inside a StackedModal. The explicit\n * `typeof DialogContent` annotation keeps its type nameable across package\n * boundaries (TS2742) now that it is re-exported from the barrel.\n */\nexport const StackedModalContent: typeof DialogContent = styled(DialogContent)(({ theme }) =>\n modalContentStyles(theme),\n) as typeof DialogContent;\n\n/** Sub-element test IDs derive from the modal's own, or stay off when it has none. */\nexport const testId = (base: string | undefined, suffix: string): string | undefined =>\n base ? `${base}-${suffix}` : undefined;\n\n/**\n * A wrapper marking the subtree that should render as modal actions — the\n * StackedModal pulls it out of `children` and places it by device.\n */\nexport const StackedModalActions: FC<{ children?: ReactNode }> = ({ children }) => <>{children}</>;\n\n/** Separates the `StackedModalActions` subtree from the rest of the content. */\nconst splitModalChildren = (children: ReactNode): { content: ReactNode; actions: ReactNode } => {\n let actions: ReactNode = null;\n\n React.Children.forEach(children, (child) => {\n if (React.isValidElement<{ children?: ReactNode }>(child) && child.type === StackedModalActions) {\n actions = child.props.children;\n }\n });\n\n const content = React.Children.toArray(children).filter(\n (child) => !(React.isValidElement(child) && child.type === StackedModalActions),\n );\n\n return { content, actions };\n};\n\n/**\n * Works out what renders where: a `StackedModalActions` child wins over the\n * `actions` prop, and on phones those actions move out of the header into a\n * pinned bottom bar.\n */\nexport const resolveModalContent = (\n children: ReactNode,\n actions: ReactNode,\n isMobile: boolean,\n): {\n content: ReactNode;\n modalActions: ReactNode;\n headerActions: ReactNode;\n hasMobileActions: boolean;\n} => {\n const { content, actions: childActions } = splitModalChildren(children);\n const modalActions = childActions ?? actions;\n return {\n content,\n modalActions,\n headerActions: isMobile ? null : modalActions,\n hasMobileActions: Boolean(isMobile && modalActions),\n };\n};\n\n/** The panel's own ARIA ids, unless the caller wired it to its own labels. */\nexport const modalAriaIds = (\n modalId: string,\n ariaLabelledBy?: string,\n ariaDescribedBy?: string,\n): { titleId: string; descId: string } => ({\n titleId: ariaLabelledBy || `modal-title-${modalId}`,\n descId: ariaDescribedBy || `modal-desc-${modalId}`,\n});\n\nexport const ModalLoadingOverlay: FC<{ loadingText?: string; dataTestId?: string }> = ({\n loadingText,\n dataTestId,\n}) => {\n const theme = useTheme();\n return (\n <LoadingOverlay data-testid={testId(dataTestId, 'loading-overlay')}>\n <CircularProgress size={rem(theme, 40)} data-testid={testId(dataTestId, 'loading-spinner')} />\n {loadingText && (\n <Typography variant=\"body2\" sx={{ mt: 2 }} data-testid={testId(dataTestId, 'loading-text')}>\n {loadingText}\n </Typography>\n )}\n </LoadingOverlay>\n );\n};\n\ninterface ModalHeaderProps {\n titleId: string;\n navigationTitle?: ReactNode;\n /** Deeper than the first panel, so the leading button goes back instead of closing. */\n canGoBack: boolean;\n onBack: () => void;\n /** The back arrow's accessible name — it carries a glyph only. REQUIRED. */\n backLabel: string;\n onClose: () => void;\n /** Renders the bar without its ✕ — the panel's content owns the dismiss. */\n hideClose?: boolean;\n /** Header actions — desktop only; on phones they move to the footer. */\n headerActions?: ReactNode;\n rtl?: boolean;\n dataTestId?: string;\n}\n\n/**\n * The bar's leading control: back at depth ≥2, otherwise close — and nothing at\n * all when the panel's content carries its own ✕ (`hideClose`).\n */\nconst HeaderLeadingButton: FC<\n Pick<\n ModalHeaderProps,\n 'canGoBack' | 'onBack' | 'backLabel' | 'onClose' | 'hideClose' | 'rtl' | 'dataTestId'\n >\n> = ({ canGoBack, onBack, backLabel, onClose, hideClose, rtl, dataTestId }) => {\n if (canGoBack) {\n return (\n <IconButton\n edge=\"start\"\n color=\"inherit\"\n onClick={onBack}\n aria-label={backLabel}\n size=\"small\"\n sx={{ transform: rtl ? 'rotate(180deg)' : 'none' }}\n data-testid={testId(dataTestId, 'back-button')}\n >\n <ChevronLeftIcon />\n </IconButton>\n );\n }\n if (hideClose) return null;\n return (\n <IconButton\n edge=\"start\"\n color=\"inherit\"\n onClick={onClose}\n aria-label=\"close\"\n size=\"small\"\n data-testid={testId(dataTestId, 'close-button')}\n >\n <CloseIcon />\n </IconButton>\n );\n};\n\nexport const ModalHeader: FC<ModalHeaderProps> = ({\n titleId,\n navigationTitle,\n canGoBack,\n onBack,\n onClose,\n hideClose,\n backLabel,\n headerActions,\n rtl,\n dataTestId,\n}) => (\n // The BAR is not a heading: it holds the ✕ or back button and the header\n // actions. The title inside it is the panel's one heading and carries the id\n // the dialog's `aria-labelledby` names, so the dialog is named by the title\n // alone — not \"close Title Save\" — and a screen reader hears it once.\n //\n // The bar's id is stated, never left to MUI: `DialogTitle` falls back to the\n // Dialog's `aria-labelledby` and would claim the title's id a second time.\n // With NO title the bar is drawn exactly as it always was — MUI's own `h2`,\n // holding the id — so an untitled panel keeps its markup and its name.\n <StyledDialogTitle\n component={navigationTitle ? 'div' : 'h2'}\n id={navigationTitle ? `${titleId}-bar` : titleId}\n rtl={rtl}\n data-testid={testId(dataTestId, 'header')}\n >\n <DialogTitleLeft>\n <HeaderLeadingButton\n canGoBack={canGoBack}\n onBack={onBack}\n backLabel={backLabel}\n onClose={onClose}\n hideClose={hideClose}\n rtl={rtl}\n dataTestId={dataTestId}\n />\n {navigationTitle && (\n <Typography\n id={titleId}\n variant=\"h6\"\n component=\"h2\"\n noWrap\n sx={{ ml: canGoBack || !hideClose ? 1 : 0 }}\n data-testid={testId(dataTestId, 'title')}\n >\n {navigationTitle}\n </Typography>\n )}\n </DialogTitleLeft>\n <DialogTitleRight data-testid={testId(dataTestId, 'header-actions')}>\n {headerActions}\n </DialogTitleRight>\n </StyledDialogTitle>\n);\n\nconst ContentSkeleton: FC = () => {\n const theme = useTheme();\n return (\n <Box sx={{ p: 3 }}>\n <Skeleton variant=\"text\" width=\"60%\" height={rem(theme, 32)} />\n <Skeleton variant=\"text\" width=\"100%\" />\n <Skeleton variant=\"text\" width=\"100%\" />\n <Skeleton variant=\"rectangular\" height={rem(theme, 200)} sx={{ mt: 2 }} />\n </Box>\n );\n};\n\ninterface ModalBodyProps {\n descId: string;\n showSkeleton: boolean;\n /** When there is no action bar, the body is what reaches the bottom of the panel. */\n endsPanel: boolean;\n dataTestId?: string;\n children?: ReactNode;\n}\n\nexport const ModalBody: FC<ModalBodyProps> = ({\n descId,\n showSkeleton,\n endsPanel,\n dataTestId,\n children,\n}) => (\n <Box\n id={descId}\n sx={{\n position: 'relative',\n flex: 1,\n overflow: 'auto',\n // iOS momentum scrolling, and no scroll-chaining to the page behind —\n // without `contain`, an overscroll at the end of the list rubber-bands the\n // whole panel and springs back before the last row can be tapped.\n WebkitOverflowScrolling: 'touch',\n overscrollBehavior: 'contain',\n // The content itself ends the panel when there is no action bar, so it has\n // to clear the home indicator on its own.\n ...(endsPanel ? safeAreaBottom(0) : {}),\n }}\n data-testid={testId(dataTestId, 'content')}\n >\n {showSkeleton ? <ContentSkeleton /> : children}\n </Box>\n);\n\n/** The phone-only pinned action bar; on desktop the actions live in the header. */\nexport const ModalFooter: FC<{ dataTestId?: string; children?: ReactNode }> = ({\n dataTestId,\n children,\n}) => (\n <DialogActions\n sx={{\n borderTop: (theme) => `1px solid ${theme.palette.divider}`,\n padding: 2,\n // Never let the action row sit under the iOS home indicator.\n flexShrink: 0,\n ...safeAreaBottom(16),\n }}\n data-testid={testId(dataTestId, 'footer')}\n >\n {children}\n </DialogActions>\n);\n\ninterface PanelContentsProps extends ModalHeaderProps {\n showSkeleton: boolean;\n loadingText?: string;\n descId: string;\n content: ReactNode;\n /** The resolved actions, already placed in the header or destined for the footer. */\n modalActions: ReactNode;\n hasMobileActions: boolean;\n}\n\n/** Everything inside the sliding panel: the loading veil, header, body and action bar. */\nexport const ModalPanelContents: FC<PanelContentsProps> = ({\n showSkeleton,\n loadingText,\n descId,\n content,\n modalActions,\n hasMobileActions,\n ...header\n}) => (\n <>\n {showSkeleton && (\n <ModalLoadingOverlay loadingText={loadingText} dataTestId={header.dataTestId} />\n )}\n <ModalHeader {...header} />\n <ModalBody\n descId={descId}\n showSkeleton={showSkeleton}\n endsPanel={!hasMobileActions}\n dataTestId={header.dataTestId}\n >\n {content}\n </ModalBody>\n {hasMobileActions && (\n <ModalFooter dataTestId={header.dataTestId}>{modalActions}</ModalFooter>\n )}\n </>\n);\n"],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,qBAAqB;AAC5B,OAAO,eAAe;AACtB,OAAO,SAAS;AAChB,OAAO,sBAAsB;AAC7B,OAAO,mBAAmB;AAC1B,OAAO,mBAAmB;AAC1B,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AACvB,OAAO,cAAc;AACrB,OAAO,gBAAgB;AACvB,SAAS,QAAQ,gBAAgB;AAEjC,OAAO,WAAW;AAqCiE,wBA4D/E,YA5D+E;AAzBnF,IAAM,oBAAoB,OAAO,aAAa;AAAA,EAC5C,mBAAmB,CAAC,SAAS,SAAS;AACxC,CAAC,EAA8C,CAAC,EAAE,OAAO,IAAI,MAAM,YAAY,OAAO,GAAG,CAAC;AAE1F,IAAM,kBAAkB,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,MAAM,gBAAgB,KAAK,CAAC;AACzE,IAAM,mBAAmB,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,MAAM,iBAAiB,KAAK,CAAC;AAC3E,IAAM,iBAAiB,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,MAAM,qBAAqB,KAAK,CAAC;AAOtE,IAAM,sBAA4C,OAAO,aAAa;AAAA,EAAE,CAAC,EAAE,MAAM,MACtF,mBAAmB,KAAK;AAC1B;AAGO,IAAM,SAAS,CAAC,MAA0B,WAC/C,OAAO,GAAG,IAAI,IAAI,MAAM,KAAK;AAMxB,IAAM,sBAAoD,CAAC,EAAE,SAAS,MAAM,gCAAG,UAAS;AAG/F,IAAM,qBAAqB,CAAC,aAAoE;AAC9F,MAAI,UAAqB;AAEzB,QAAM,SAAS,QAAQ,UAAU,CAAC,UAAU;AAC1C,QAAI,MAAM,eAAyC,KAAK,KAAK,MAAM,SAAS,qBAAqB;AAC/F,gBAAU,MAAM,MAAM;AAAA,IACxB;AAAA,EACF,CAAC;AAED,QAAM,UAAU,MAAM,SAAS,QAAQ,QAAQ,EAAE;AAAA,IAC/C,CAAC,UAAU,EAAE,MAAM,eAAe,KAAK,KAAK,MAAM,SAAS;AAAA,EAC7D;AAEA,SAAO,EAAE,SAAS,QAAQ;AAC5B;AAOO,IAAM,sBAAsB,CACjC,UACA,SACA,aAMG;AACH,QAAM,EAAE,SAAS,SAAS,aAAa,IAAI,mBAAmB,QAAQ;AACtE,QAAM,eAAe,gBAAgB;AACrC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,eAAe,WAAW,OAAO;AAAA,IACjC,kBAAkB,QAAQ,YAAY,YAAY;AAAA,EACpD;AACF;AAGO,IAAM,eAAe,CAC1B,SACA,gBACA,qBACyC;AAAA,EACzC,SAAS,kBAAkB,eAAe,OAAO;AAAA,EACjD,QAAQ,mBAAmB,cAAc,OAAO;AAClD;AAEO,IAAM,sBAAyE,CAAC;AAAA,EACrF;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,SAAS;AACvB,SACE,qBAAC,kBAAe,eAAa,OAAO,YAAY,iBAAiB,GAC/D;AAAA,wBAAC,oBAAiB,MAAM,IAAI,OAAO,EAAE,GAAG,eAAa,OAAO,YAAY,iBAAiB,GAAG;AAAA,IAC3F,eACC,oBAAC,cAAW,SAAQ,SAAQ,IAAI,EAAE,IAAI,EAAE,GAAG,eAAa,OAAO,YAAY,cAAc,GACtF,uBACH;AAAA,KAEJ;AAEJ;AAuBA,IAAM,sBAKF,CAAC,EAAE,WAAW,QAAQ,WAAW,SAAS,WAAW,KAAK,WAAW,MAAM;AAC7E,MAAI,WAAW;AACb,WACE;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAAS;AAAA,QACT,cAAY;AAAA,QACZ,MAAK;AAAA,QACL,IAAI,EAAE,WAAW,MAAM,mBAAmB,OAAO;AAAA,QACjD,eAAa,OAAO,YAAY,aAAa;AAAA,QAE7C,8BAAC,mBAAgB;AAAA;AAAA,IACnB;AAAA,EAEJ;AACA,MAAI,UAAW,QAAO;AACtB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,OAAM;AAAA,MACN,SAAS;AAAA,MACT,cAAW;AAAA,MACX,MAAK;AAAA,MACL,eAAa,OAAO,YAAY,cAAc;AAAA,MAE9C,8BAAC,aAAU;AAAA;AAAA,EACb;AAEJ;AAEO,IAAM,cAAoC,CAAC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,kBAAkB,QAAQ;AAAA,MACrC,IAAI,kBAAkB,GAAG,OAAO,SAAS;AAAA,MACzC;AAAA,MACA,eAAa,OAAO,YAAY,QAAQ;AAAA,MAExC;AAAA,6BAAC,mBACC;AAAA;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAAA,UACF;AAAA,UACC,mBACC;AAAA,YAAC;AAAA;AAAA,cACC,IAAI;AAAA,cACJ,SAAQ;AAAA,cACR,WAAU;AAAA,cACV,QAAM;AAAA,cACN,IAAI,EAAE,IAAI,aAAa,CAAC,YAAY,IAAI,EAAE;AAAA,cAC1C,eAAa,OAAO,YAAY,OAAO;AAAA,cAEtC;AAAA;AAAA,UACH;AAAA,WAEJ;AAAA,QACA,oBAAC,oBAAiB,eAAa,OAAO,YAAY,gBAAgB,GAC/D,yBACH;AAAA;AAAA;AAAA,EACF;AAAA;AAGF,IAAM,kBAAsB,MAAM;AAChC,QAAM,QAAQ,SAAS;AACvB,SACE,qBAAC,OAAI,IAAI,EAAE,GAAG,EAAE,GACd;AAAA,wBAAC,YAAS,SAAQ,QAAO,OAAM,OAAM,QAAQ,IAAI,OAAO,EAAE,GAAG;AAAA,IAC7D,oBAAC,YAAS,SAAQ,QAAO,OAAM,QAAO;AAAA,IACtC,oBAAC,YAAS,SAAQ,QAAO,OAAM,QAAO;AAAA,IACtC,oBAAC,YAAS,SAAQ,eAAc,QAAQ,IAAI,OAAO,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG;AAAA,KAC1E;AAEJ;AAWO,IAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE;AAAA,EAAC;AAAA;AAAA,IACC,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,UAAU;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA;AAAA;AAAA;AAAA,MAIV,yBAAyB;AAAA,MACzB,oBAAoB;AAAA;AAAA;AAAA,MAGpB,GAAI,YAAY,eAAe,CAAC,IAAI,CAAC;AAAA,IACvC;AAAA,IACA,eAAa,OAAO,YAAY,SAAS;AAAA,IAExC,yBAAe,oBAAC,mBAAgB,IAAK;AAAA;AACxC;AAIK,IAAM,cAAiE,CAAC;AAAA,EAC7E;AAAA,EACA;AACF,MACE;AAAA,EAAC;AAAA;AAAA,IACC,IAAI;AAAA,MACF,WAAW,CAAC,UAAU,aAAa,MAAM,QAAQ,OAAO;AAAA,MACxD,SAAS;AAAA;AAAA,MAET,YAAY;AAAA,MACZ,GAAG,eAAe,EAAE;AAAA,IACtB;AAAA,IACA,eAAa,OAAO,YAAY,QAAQ;AAAA,IAEvC;AAAA;AACH;AAcK,IAAM,qBAA6C,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACE,iCACG;AAAA,kBACC,oBAAC,uBAAoB,aAA0B,YAAY,OAAO,YAAY;AAAA,EAEhF,oBAAC,eAAa,GAAG,QAAQ;AAAA,EACzB;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW,CAAC;AAAA,MACZ,YAAY,OAAO;AAAA,MAElB;AAAA;AAAA,EACH;AAAA,EACC,oBACC,oBAAC,eAAY,YAAY,OAAO,YAAa,wBAAa;AAAA,GAE9D;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  FilterDialog,
3
3
  GridFilterPanel
4
- } from "./chunk-ZJC5COCE.js";
4
+ } from "./chunk-N4MR4EMC.js";
5
5
  import {
6
6
  DataViewsEmpty
7
7
  } from "./chunk-6NWFX2XJ.js";
@@ -238,4 +238,4 @@ function GridShell(props) {
238
238
  export {
239
239
  GridShell
240
240
  };
241
- //# sourceMappingURL=chunk-MQSI57HY.js.map
241
+ //# sourceMappingURL=chunk-45PGSVOH.js.map
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-OYHLSFFQ.js";
16
16
  import {
17
17
  Icon
18
- } from "./chunk-JC244QQF.js";
18
+ } from "./chunk-SEWUYHSG.js";
19
19
  import {
20
20
  Button
21
21
  } from "./chunk-JE6FNSQV.js";
@@ -139,4 +139,4 @@ export {
139
139
  PendingSpinner,
140
140
  LearnMore
141
141
  };
142
- //# sourceMappingURL=chunk-CLC4VIOF.js.map
142
+ //# sourceMappingURL=chunk-4PYEDDYV.js.map
@@ -16,7 +16,7 @@ import {
16
16
  import {
17
17
  Dialog,
18
18
  DialogContent
19
- } from "./chunk-AL3Z24VG.js";
19
+ } from "./chunk-ILQVNZ5B.js";
20
20
  import {
21
21
  default as default2
22
22
  } from "./chunk-6DPAWXZ3.js";
@@ -268,4 +268,4 @@ function SaveViewModal({
268
268
  export {
269
269
  SaveViewModal
270
270
  };
271
- //# sourceMappingURL=chunk-JWXGZ4VM.js.map
271
+ //# sourceMappingURL=chunk-6J27G2HT.js.map
@@ -144,6 +144,9 @@ function variantStylesOf(theme, opts) {
144
144
  default:
145
145
  return {
146
146
  ...baseStylesOf(theme, opts),
147
+ // An auto cross-axis margin consumes the space above the paper while
148
+ // preserving the same themed bottom/side inset and modal focus path.
149
+ ...opts.variant === "bottom-sheet" ? { marginTop: "auto" } : {},
147
150
  ...decorations,
148
151
  ...defaultVariantStyles(theme, opts),
149
152
  ...NO_FOCUS_OUTLINE
@@ -161,4 +164,4 @@ export {
161
164
  variantStylesOf,
162
165
  backdropSxOf
163
166
  };
164
- //# sourceMappingURL=chunk-WGFHZNFR.js.map
167
+ //# sourceMappingURL=chunk-AEIJSEVV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/feedback/Dialog/Dialog.styles.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles/index.js';\nimport { alpha, keyframes } from '@mui/material/styles/index.js';\n\nimport type { DialogBorderRadius, DialogSize, DialogVariant } from './Dialog.base';\nimport {\n DIALOG_BACKDROP,\n DIALOG_BORDER_WIDTH,\n DIALOG_GLASS,\n DIALOG_GLOW,\n DIALOG_GRADIENT,\n DIALOG_MARGIN_UNITS,\n DIALOG_MAX_WIDTH,\n DIALOG_PULSE,\n DIALOG_RADIUS_UNITS,\n DIALOG_WIDTH_PERCENT,\n} from './Dialog.metrics';\nimport { scrim, shadowInk } from '../../../tokens/ink';\nimport { rem, rems } from '../../../tokens/relative';\nimport { dynamicViewportHeight } from '../../../utils/viewport';\n\n/**\n * Paper/backdrop styling for the Dialog component (FUT-181 gate cleanup):\n * pure helpers so `Dialog.tsx` stays within the size/complexity budget.\n *\n * Every number comes from `Dialog.metrics.ts`, which the native renderer reads\n * too — so a paper cannot be 800px wide on one side and 780 on the other.\n */\n\n// Define pulse animation — a function of the theme so the ring's spread follows the type scale.\nconst pulseAnimation = (theme: Theme) => keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 ${rem(theme, DIALOG_PULSE.spread)} currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\n/** Style toggles that shape the dialog paper (extracted so each fn stays small). */\ninterface VariantStyleOptions {\n variant: DialogVariant;\n size: DialogSize;\n borderRadius: DialogBorderRadius;\n glass: boolean;\n gradient: boolean;\n glow: boolean;\n pulse: boolean;\n}\n\nfunction borderRadiusOf(theme: Theme, borderRadius: VariantStyleOptions['borderRadius']) {\n const units = DIALOG_RADIUS_UNITS[borderRadius] ?? DIALOG_RADIUS_UNITS.lg;\n // `none` is a bare 0 rather than `spacing(0)`, as this has always written it.\n return units === 0 ? '0' : theme.spacing(units);\n}\n\nfunction maxWidthOf(theme: Theme, size: VariantStyleOptions['size']): string {\n return rem(theme, DIALOG_MAX_WIDTH[size] ?? DIALOG_MAX_WIDTH.md);\n}\n\nfunction baseStylesOf(theme: Theme, opts: VariantStyleOptions) {\n return {\n borderRadius: borderRadiusOf(theme, opts.borderRadius),\n maxWidth: maxWidthOf(theme, opts.size),\n width: `${DIALOG_WIDTH_PERCENT}vw`,\n margin: theme.spacing(DIALOG_MARGIN_UNITS),\n transition: theme.transitions.create(\n ['box-shadow', 'background-color', 'backdrop-filter'],\n { duration: theme.transitions.duration.standard },\n ),\n };\n}\n\nfunction glowStylesOf(theme: Theme, glow: boolean) {\n return glow\n ? {\n boxShadow: `${rems(theme, 0, 0, DIALOG_GLOW.blurRadius)} ${alpha(theme.palette.primary.main, DIALOG_GLOW.alpha)}`,\n }\n : {};\n}\n\nfunction pulseStylesOf(theme: Theme, pulse: boolean) {\n if (!pulse) return {};\n return {\n position: 'relative' as const,\n '&::after': {\n content: '\"\"',\n position: 'absolute' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n borderRadius: 'inherit',\n backgroundColor: theme.palette.primary.main,\n opacity: DIALOG_PULSE.alpha,\n animation: `${pulseAnimation(theme)} ${DIALOG_PULSE.durationMs / 1000}s infinite`,\n pointerEvents: 'none' as const,\n zIndex: DIALOG_PULSE.zIndex,\n },\n };\n}\n\n/** The default variant's paper: optional gradient/glass over the base styles. */\nfunction defaultVariantStyles(theme: Theme, opts: VariantStyleOptions) {\n const gradientStyles = opts.gradient\n ? {\n background: `linear-gradient(${DIALOG_GRADIENT.angleDeg}deg, ${alpha(theme.palette.primary.main, DIALOG_GRADIENT.stopAlpha)}, ${alpha(theme.palette.secondary.main, DIALOG_GRADIENT.stopAlpha)})`,\n backdropFilter: `blur(${rem(theme, DIALOG_GRADIENT.blurPx)})`,\n }\n : {};\n return {\n ...gradientStyles,\n backgroundColor: opts.glass\n ? alpha(theme.palette.background.paper, DIALOG_GLASS.backgroundAlpha)\n : theme.palette.background.paper,\n backdropFilter: opts.glass ? `blur(${rem(theme, DIALOG_GLASS.blurPx)})` : 'none',\n border: opts.glass\n ? `${DIALOG_BORDER_WIDTH}px solid ${alpha(theme.palette.primary.main, DIALOG_GLASS.borderAlpha)}`\n : 'none',\n };\n}\n\n/**\n * The paper never grows an outline of its own — same as `.MuiDialog-container`\n * (`outline: 0`, unconditionally, in MUI's own `Dialog.js`). It matters once\n * `focusDialogOnEntered` (FUT-2696) falls back to focusing the paper itself: a\n * browser's default `:focus`/`:focus-visible` ring is drawn OUTSIDE the box\n * model — it never resizes a box or shifts a sibling — but this keeps the\n * paper visually identical whether or not that fallback ever fires, rather\n * than relying on that guarantee.\n */\nconst NO_FOCUS_OUTLINE = { outline: 0 } as const;\n\nexport function variantStylesOf(theme: Theme, opts: VariantStyleOptions): SxProps<Theme> {\n const decorations = {\n ...glowStylesOf(theme, opts.glow),\n ...pulseStylesOf(theme, opts.pulse),\n };\n switch (opts.variant) {\n case 'glass':\n return {\n ...baseStylesOf(theme, opts),\n ...decorations,\n ...NO_FOCUS_OUTLINE,\n backgroundColor: alpha(theme.palette.background.paper, DIALOG_GLASS.backgroundAlpha),\n backdropFilter: `blur(${rem(theme, DIALOG_GLASS.blurPx)})`,\n border: `${DIALOG_BORDER_WIDTH}px solid ${alpha(theme.palette.primary.main, DIALOG_GLASS.borderAlpha)}`,\n boxShadow: `${rems(theme, 0, DIALOG_GLASS.shadow.offsetY, DIALOG_GLASS.shadow.blurRadius)} ${shadowInk(theme, DIALOG_GLASS.shadow.alpha)}`,\n };\n case 'fullscreen':\n return {\n borderRadius: 0,\n margin: 0,\n width: '100vw',\n // `100dvh`, not `100vh` — see `dynamicViewportHeight`.\n ...dynamicViewportHeight('height'),\n maxWidth: 'none',\n maxHeight: 'none',\n ...decorations,\n ...NO_FOCUS_OUTLINE,\n };\n case 'drawer': {\n const radius = borderRadiusOf(theme, opts.borderRadius);\n return {\n // `radius` is already a length (`theme.spacing(n)` → '16px', or 0): gluing\n // another `px` on wrote '16pxpx', which the browser dropped, leaving the\n // panel's leading corners square.\n borderRadius: `${radius} 0 0 ${radius}`,\n margin: 0,\n width: maxWidthOf(theme, opts.size),\n // Never wider than the screen: a 600px panel on a 375px phone put its\n // title and the start of every line off the left edge.\n maxWidth: '100%',\n ...dynamicViewportHeight('height'),\n maxHeight: 'none',\n ...decorations,\n ...NO_FOCUS_OUTLINE,\n };\n }\n default:\n return {\n ...baseStylesOf(theme, opts),\n ...decorations,\n ...defaultVariantStyles(theme, opts),\n ...NO_FOCUS_OUTLINE,\n };\n }\n}\n\nexport function backdropSxOf(theme: Theme, glass: boolean) {\n return {\n backgroundColor: scrim(theme, glass ? DIALOG_BACKDROP.alpha.glass : DIALOG_BACKDROP.alpha.plain),\n backdropFilter: glass ? `blur(${rem(theme, DIALOG_BACKDROP.blurPx)})` : 'none',\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/components/feedback/Dialog/Dialog.styles.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles/index.js';\nimport { alpha, keyframes } from '@mui/material/styles/index.js';\n\nimport type { DialogBorderRadius, DialogSize, DialogVariant } from './Dialog.base';\nimport {\n DIALOG_BACKDROP,\n DIALOG_BORDER_WIDTH,\n DIALOG_GLASS,\n DIALOG_GLOW,\n DIALOG_GRADIENT,\n DIALOG_MARGIN_UNITS,\n DIALOG_MAX_WIDTH,\n DIALOG_PULSE,\n DIALOG_RADIUS_UNITS,\n DIALOG_WIDTH_PERCENT,\n} from './Dialog.metrics';\nimport { scrim, shadowInk } from '../../../tokens/ink';\nimport { rem, rems } from '../../../tokens/relative';\nimport { dynamicViewportHeight } from '../../../utils/viewport';\n\n/**\n * Paper/backdrop styling for the Dialog component (FUT-181 gate cleanup):\n * pure helpers so `Dialog.tsx` stays within the size/complexity budget.\n *\n * Every number comes from `Dialog.metrics.ts`, which the native renderer reads\n * too — so a paper cannot be 800px wide on one side and 780 on the other.\n */\n\n// Define pulse animation — a function of the theme so the ring's spread follows the type scale.\nconst pulseAnimation = (theme: Theme) => keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 ${rem(theme, DIALOG_PULSE.spread)} currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\n/** Style toggles that shape the dialog paper (extracted so each fn stays small). */\ninterface VariantStyleOptions {\n variant: DialogVariant;\n size: DialogSize;\n borderRadius: DialogBorderRadius;\n glass: boolean;\n gradient: boolean;\n glow: boolean;\n pulse: boolean;\n}\n\nfunction borderRadiusOf(theme: Theme, borderRadius: VariantStyleOptions['borderRadius']) {\n const units = DIALOG_RADIUS_UNITS[borderRadius] ?? DIALOG_RADIUS_UNITS.lg;\n // `none` is a bare 0 rather than `spacing(0)`, as this has always written it.\n return units === 0 ? '0' : theme.spacing(units);\n}\n\nfunction maxWidthOf(theme: Theme, size: VariantStyleOptions['size']): string {\n return rem(theme, DIALOG_MAX_WIDTH[size] ?? DIALOG_MAX_WIDTH.md);\n}\n\nfunction baseStylesOf(theme: Theme, opts: VariantStyleOptions) {\n return {\n borderRadius: borderRadiusOf(theme, opts.borderRadius),\n maxWidth: maxWidthOf(theme, opts.size),\n width: `${DIALOG_WIDTH_PERCENT}vw`,\n margin: theme.spacing(DIALOG_MARGIN_UNITS),\n transition: theme.transitions.create(\n ['box-shadow', 'background-color', 'backdrop-filter'],\n { duration: theme.transitions.duration.standard },\n ),\n };\n}\n\nfunction glowStylesOf(theme: Theme, glow: boolean) {\n return glow\n ? {\n boxShadow: `${rems(theme, 0, 0, DIALOG_GLOW.blurRadius)} ${alpha(theme.palette.primary.main, DIALOG_GLOW.alpha)}`,\n }\n : {};\n}\n\nfunction pulseStylesOf(theme: Theme, pulse: boolean) {\n if (!pulse) return {};\n return {\n position: 'relative' as const,\n '&::after': {\n content: '\"\"',\n position: 'absolute' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n borderRadius: 'inherit',\n backgroundColor: theme.palette.primary.main,\n opacity: DIALOG_PULSE.alpha,\n animation: `${pulseAnimation(theme)} ${DIALOG_PULSE.durationMs / 1000}s infinite`,\n pointerEvents: 'none' as const,\n zIndex: DIALOG_PULSE.zIndex,\n },\n };\n}\n\n/** The default variant's paper: optional gradient/glass over the base styles. */\nfunction defaultVariantStyles(theme: Theme, opts: VariantStyleOptions) {\n const gradientStyles = opts.gradient\n ? {\n background: `linear-gradient(${DIALOG_GRADIENT.angleDeg}deg, ${alpha(theme.palette.primary.main, DIALOG_GRADIENT.stopAlpha)}, ${alpha(theme.palette.secondary.main, DIALOG_GRADIENT.stopAlpha)})`,\n backdropFilter: `blur(${rem(theme, DIALOG_GRADIENT.blurPx)})`,\n }\n : {};\n return {\n ...gradientStyles,\n backgroundColor: opts.glass\n ? alpha(theme.palette.background.paper, DIALOG_GLASS.backgroundAlpha)\n : theme.palette.background.paper,\n backdropFilter: opts.glass ? `blur(${rem(theme, DIALOG_GLASS.blurPx)})` : 'none',\n border: opts.glass\n ? `${DIALOG_BORDER_WIDTH}px solid ${alpha(theme.palette.primary.main, DIALOG_GLASS.borderAlpha)}`\n : 'none',\n };\n}\n\n/**\n * The paper never grows an outline of its own — same as `.MuiDialog-container`\n * (`outline: 0`, unconditionally, in MUI's own `Dialog.js`). It matters once\n * `focusDialogOnEntered` (FUT-2696) falls back to focusing the paper itself: a\n * browser's default `:focus`/`:focus-visible` ring is drawn OUTSIDE the box\n * model — it never resizes a box or shifts a sibling — but this keeps the\n * paper visually identical whether or not that fallback ever fires, rather\n * than relying on that guarantee.\n */\nconst NO_FOCUS_OUTLINE = { outline: 0 } as const;\n\nexport function variantStylesOf(theme: Theme, opts: VariantStyleOptions): SxProps<Theme> {\n const decorations = {\n ...glowStylesOf(theme, opts.glow),\n ...pulseStylesOf(theme, opts.pulse),\n };\n switch (opts.variant) {\n case 'glass':\n return {\n ...baseStylesOf(theme, opts),\n ...decorations,\n ...NO_FOCUS_OUTLINE,\n backgroundColor: alpha(theme.palette.background.paper, DIALOG_GLASS.backgroundAlpha),\n backdropFilter: `blur(${rem(theme, DIALOG_GLASS.blurPx)})`,\n border: `${DIALOG_BORDER_WIDTH}px solid ${alpha(theme.palette.primary.main, DIALOG_GLASS.borderAlpha)}`,\n boxShadow: `${rems(theme, 0, DIALOG_GLASS.shadow.offsetY, DIALOG_GLASS.shadow.blurRadius)} ${shadowInk(theme, DIALOG_GLASS.shadow.alpha)}`,\n };\n case 'fullscreen':\n return {\n borderRadius: 0,\n margin: 0,\n width: '100vw',\n // `100dvh`, not `100vh` — see `dynamicViewportHeight`.\n ...dynamicViewportHeight('height'),\n maxWidth: 'none',\n maxHeight: 'none',\n ...decorations,\n ...NO_FOCUS_OUTLINE,\n };\n case 'drawer': {\n const radius = borderRadiusOf(theme, opts.borderRadius);\n return {\n // `radius` is already a length (`theme.spacing(n)` → '16px', or 0): gluing\n // another `px` on wrote '16pxpx', which the browser dropped, leaving the\n // panel's leading corners square.\n borderRadius: `${radius} 0 0 ${radius}`,\n margin: 0,\n width: maxWidthOf(theme, opts.size),\n // Never wider than the screen: a 600px panel on a 375px phone put its\n // title and the start of every line off the left edge.\n maxWidth: '100%',\n ...dynamicViewportHeight('height'),\n maxHeight: 'none',\n ...decorations,\n ...NO_FOCUS_OUTLINE,\n };\n }\n default:\n return {\n ...baseStylesOf(theme, opts),\n // An auto cross-axis margin consumes the space above the paper while\n // preserving the same themed bottom/side inset and modal focus path.\n ...(opts.variant === 'bottom-sheet' ? { marginTop: 'auto' } : {}),\n ...decorations,\n ...defaultVariantStyles(theme, opts),\n ...NO_FOCUS_OUTLINE,\n };\n }\n}\n\nexport function backdropSxOf(theme: Theme, glass: boolean) {\n return {\n backgroundColor: scrim(theme, glass ? DIALOG_BACKDROP.alpha.glass : DIALOG_BACKDROP.alpha.plain),\n backdropFilter: glass ? `blur(${rem(theme, DIALOG_BACKDROP.blurPx)})` : 'none',\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  DeleteViewDialog
3
- } from "./chunk-NZZ2BTIK.js";
3
+ } from "./chunk-H7R6UKOE.js";
4
4
  import {
5
5
  DataViewsGrid
6
- } from "./chunk-DSDZIBLQ.js";
6
+ } from "./chunk-ICSXPZXT.js";
7
7
  import {
8
8
  viewStateKey
9
9
  } from "./chunk-ZOLAYP2D.js";
10
10
  import {
11
11
  ViewDialogs,
12
12
  ViewMutationErrorAlert
13
- } from "./chunk-5XZEGI35.js";
13
+ } from "./chunk-X7HCS3HP.js";
14
14
  import {
15
15
  useSavedViewsController
16
16
  } from "./chunk-HR7YTBR7.js";
@@ -178,4 +178,4 @@ function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
178
178
  export {
179
179
  DataViewsTableBase
180
180
  };
181
- //# sourceMappingURL=chunk-3S44O3WI.js.map
181
+ //# sourceMappingURL=chunk-BJMNAPKH.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SettingSwitchBlock,
3
3
  useSettingSwitchIds
4
- } from "./chunk-5PN5MY2X.js";
4
+ } from "./chunk-INQO5AYV.js";
5
5
  import {
6
6
  SettingGroupContext
7
7
  } from "./chunk-XJQNSMGA.js";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-SALQ65SM.js";
11
11
  import {
12
12
  partTestId
13
- } from "./chunk-CLC4VIOF.js";
13
+ } from "./chunk-4PYEDDYV.js";
14
14
  import {
15
15
  dependentsStyles,
16
16
  hintStyles,
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-IQWPVPV5.js";
20
20
  import {
21
21
  Icon
22
- } from "./chunk-JC244QQF.js";
22
+ } from "./chunk-SEWUYHSG.js";
23
23
 
24
24
  // src/components/layout/SettingCard/SettingGroup.tsx
25
25
  import Box from "@mui/material/Box/index.js";
@@ -84,4 +84,4 @@ SettingGroup.displayName = "SettingGroup";
84
84
  export {
85
85
  SettingGroup
86
86
  };
87
- //# sourceMappingURL=chunk-6E4XNOAC.js.map
87
+ //# sourceMappingURL=chunk-CCCILWYZ.js.map
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  Dialog,
9
9
  DialogContent
10
- } from "./chunk-AL3Z24VG.js";
10
+ } from "./chunk-ILQVNZ5B.js";
11
11
  import {
12
12
  default as default2
13
13
  } from "./chunk-6DPAWXZ3.js";
@@ -128,4 +128,4 @@ function ManageViewsDialog({
128
128
  export {
129
129
  ManageViewsDialog
130
130
  };
131
- //# sourceMappingURL=chunk-Y2HCYT5W.js.map
131
+ //# sourceMappingURL=chunk-GRRW5NSR.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  Dialog,
6
6
  DialogContent
7
- } from "./chunk-AL3Z24VG.js";
7
+ } from "./chunk-ILQVNZ5B.js";
8
8
  import {
9
9
  default as default2
10
10
  } from "./chunk-WEBEOBN5.js";
@@ -69,4 +69,4 @@ function DeleteViewDialog({
69
69
  export {
70
70
  DeleteViewDialog
71
71
  };
72
- //# sourceMappingURL=chunk-NZZ2BTIK.js.map
72
+ //# sourceMappingURL=chunk-H7R6UKOE.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  GridShell
3
- } from "./chunk-MQSI57HY.js";
3
+ } from "./chunk-45PGSVOH.js";
4
4
  import {
5
5
  useDataViewsState
6
6
  } from "./chunk-2W2MWEP2.js";
@@ -27,4 +27,4 @@ function DataViewsGrid(props) {
27
27
  export {
28
28
  DataViewsGrid
29
29
  };
30
- //# sourceMappingURL=chunk-DSDZIBLQ.js.map
30
+ //# sourceMappingURL=chunk-ICSXPZXT.js.map
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  backdropSxOf,
7
7
  variantStylesOf
8
- } from "./chunk-WGFHZNFR.js";
8
+ } from "./chunk-AEIJSEVV.js";
9
9
  import {
10
10
  DIALOG_ACTIONS,
11
11
  DIALOG_BODY_PADDING_UNITS,
@@ -303,4 +303,4 @@ export {
303
303
  DialogContent,
304
304
  DialogActions
305
305
  };
306
- //# sourceMappingURL=chunk-AL3Z24VG.js.map
306
+ //# sourceMappingURL=chunk-ILQVNZ5B.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  useSummaryInfo
3
- } from "./chunk-BQGWY577.js";
3
+ } from "./chunk-ZCUVZ5PR.js";
4
4
  import {
5
5
  PendingSpinner,
6
6
  SaveError,
7
7
  SettingHeader,
8
8
  partTestId
9
- } from "./chunk-CLC4VIOF.js";
9
+ } from "./chunk-4PYEDDYV.js";
10
10
  import {
11
11
  clampStyles,
12
12
  descriptionStyles
@@ -87,4 +87,4 @@ export {
87
87
  useSettingSwitchIds,
88
88
  SettingSwitchBlock
89
89
  };
90
- //# sourceMappingURL=chunk-5PN5MY2X.js.map
90
+ //# sourceMappingURL=chunk-INQO5AYV.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SettingSwitchBlock,
3
3
  useSettingSwitchIds
4
- } from "./chunk-5PN5MY2X.js";
4
+ } from "./chunk-INQO5AYV.js";
5
5
  import {
6
6
  useSettingGroup
7
7
  } from "./chunk-XJQNSMGA.js";
@@ -44,4 +44,4 @@ SettingToggle.displayName = "SettingToggle";
44
44
  export {
45
45
  SettingToggle
46
46
  };
47
- //# sourceMappingURL=chunk-2DV64INT.js.map
47
+ //# sourceMappingURL=chunk-KEDZTZCV.js.map
@@ -12,10 +12,10 @@ import {
12
12
  } from "./chunk-7LOCLC24.js";
13
13
  import {
14
14
  StackedModal
15
- } from "./chunk-KMW7GGX6.js";
15
+ } from "./chunk-OGBLNORM.js";
16
16
  import {
17
17
  StackedModalContent
18
- } from "./chunk-4EJBLJZK.js";
18
+ } from "./chunk-2KGYTJCN.js";
19
19
  import {
20
20
  sxRem
21
21
  } from "./chunk-YKCAJ2TN.js";
@@ -157,4 +157,4 @@ export {
157
157
  GridFilterPanel,
158
158
  FilterDialog
159
159
  };
160
- //# sourceMappingURL=chunk-ZJC5COCE.js.map
160
+ //# sourceMappingURL=chunk-N4MR4EMC.js.map
@@ -5,7 +5,7 @@ import {
5
5
  ModalPanelContents,
6
6
  modalAriaIds,
7
7
  resolveModalContent
8
- } from "./chunk-4EJBLJZK.js";
8
+ } from "./chunk-2KGYTJCN.js";
9
9
  import {
10
10
  STYLE_ONLY_PROPS,
11
11
  dialogRootStyles
@@ -158,4 +158,4 @@ var StackedModal = (props) => {
158
158
  export {
159
159
  StackedModal
160
160
  };
161
- //# sourceMappingURL=chunk-KMW7GGX6.js.map
161
+ //# sourceMappingURL=chunk-OGBLNORM.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  partTestId
3
- } from "./chunk-CLC4VIOF.js";
3
+ } from "./chunk-4PYEDDYV.js";
4
4
  import {
5
5
  SETTING_CARD_OPEN_ATTR,
6
6
  withCallerSx
@@ -79,4 +79,4 @@ export {
79
79
  settingGridStyles,
80
80
  SettingGrid
81
81
  };
82
- //# sourceMappingURL=chunk-44JLXXWQ.js.map
82
+ //# sourceMappingURL=chunk-PPITQH3C.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ICON_PATHS
3
- } from "./chunk-6ZLP7BA7.js";
3
+ } from "./chunk-XC7YHO7Z.js";
4
4
  import {
5
5
  iconFill
6
6
  } from "./chunk-QWBQVQRG.js";
@@ -48,4 +48,4 @@ Icon.displayName = "Icon";
48
48
  export {
49
49
  Icon
50
50
  };
51
- //# sourceMappingURL=chunk-JC244QQF.js.map
51
+ //# sourceMappingURL=chunk-SEWUYHSG.js.map