@sis-cc/dotstatsuite-visions 15.14.0 → 15.16.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 (171) hide show
  1. package/dist/CollapseButtons/CollapseButtons.js +14 -12
  2. package/dist/CollapseButtons/CollapseButtons.js.map +1 -1
  3. package/dist/DynamicDrawer/DynamicDrawer.js +77 -32
  4. package/dist/DynamicDrawer/DynamicDrawer.js.map +1 -1
  5. package/dist/assets/{Alert-CtMJl0ZI.js → Alert-IPQAoHYr.js} +1 -1
  6. package/dist/assets/Alert.stories-Y8v0avYW.js +3 -0
  7. package/dist/assets/{ApiQueries.stories-BoEfZfd9.js → ApiQueries.stories-CvzlPUH7.js} +1 -1
  8. package/dist/assets/ArrowForward-Ds3Q_qYA.js +1 -0
  9. package/dist/assets/{Asterisk-Chkkty0y.js → Asterisk-BQwBWYq7.js} +1 -1
  10. package/dist/assets/{AuthDialog.stories-BsjMz-D1.js → AuthDialog.stories-DTafhjap.js} +1 -1
  11. package/dist/assets/{Box-BY_bjpNR.js → Box-DjtPY7HN.js} +1 -1
  12. package/dist/assets/{Breadcrumbs.stories-BZAdpNLJ.js → Breadcrumbs.stories-JY6mqWA_.js} +1 -1
  13. package/dist/assets/{Button-CGsC-S_2.js → Button-BItbgchF.js} +1 -1
  14. package/dist/assets/{Button-DEF1LF9i.js → Button-zXjf4--a.js} +1 -1
  15. package/dist/assets/{Button.stories-AEkx2Li4.js → Button.stories-Rn61G6wE.js} +1 -1
  16. package/dist/assets/{ButtonBase-BkXzX1bG.js → ButtonBase-B89-wwNH.js} +1 -1
  17. package/dist/assets/{CardContent-DEvOYWj3.js → CardContent-BsjVCg9y.js} +1 -1
  18. package/dist/assets/{ChartsConfig.stories-BFpZbwe7.js → ChartsConfig.stories-kksoy8uF.js} +1 -1
  19. package/dist/assets/{Checkbox-6BnwOx8T.js → Checkbox-Bcv783w_.js} +1 -1
  20. package/dist/assets/{Chips.stories-Bu5B6zz8.js → Chips.stories-CPzu8Koh.js} +1 -1
  21. package/dist/assets/{CircularProgress-CiseJonC.js → CircularProgress-wZe6Fk-_.js} +1 -1
  22. package/dist/assets/Close-uRF-qXjR.js +1 -0
  23. package/dist/assets/{Collapse-TMEEfKx2.js → Collapse-bvNG888p.js} +1 -1
  24. package/dist/assets/CollapseButtons.stories-CJ1iyTtn.js +1 -0
  25. package/dist/assets/{CollapsibleTree.stories-BLZngXUv.js → CollapsibleTree.stories-B-9OcxY7.js} +1 -1
  26. package/dist/assets/{Color-6AOWCN3U-CE7hIZ7C.js → Color-6AOWCN3U-BpDp9H_j.js} +1 -1
  27. package/dist/assets/{Contact.stories-DllCm0N6.js → Contact.stories-CJ244QB5.js} +1 -1
  28. package/dist/assets/{Container-DbnsEhu6.js → Container-7W7TDD3R.js} +1 -1
  29. package/dist/assets/{Cross-CFJ--hO3.js → Cross-BQTseYTV.js} +1 -1
  30. package/dist/assets/{CustomChip-iEEuWabq.js → CustomChip-CgVbfDkW.js} +1 -1
  31. package/dist/assets/{DataEdit-BGb9DooX.js → DataEdit-Dj7fvNmU.js} +1 -1
  32. package/dist/assets/DataEdit.stories-5h5k6Qpy.js +1 -0
  33. package/dist/assets/{DataFooter.stories-VjqFFfnD.js → DataFooter.stories-aP4ncKJy.js} +1 -1
  34. package/dist/assets/{DataHeader.stories-DiaWqX3-.js → DataHeader.stories-Ca4xTF8w.js} +1 -1
  35. package/dist/assets/{Dataflow.stories-Dk88CTWu.js → Dataflow.stories-DSaNk7pn.js} +1 -1
  36. package/dist/assets/{DeleteAllChip.stories-CKozCO5D.js → DeleteAllChip.stories-C2--_3z-.js} +1 -1
  37. package/dist/assets/{Dialog-DNrJEP0H.js → Dialog-CPJ45lOb.js} +1 -1
  38. package/dist/assets/{Divider-DMGKzLi0.js → Divider-Dltndy7b.js} +1 -1
  39. package/dist/assets/{DocsRenderer-JROSPFPF-DBOhd8Kg.js → DocsRenderer-JROSPFPF-DPJkkcm5.js} +5 -5
  40. package/dist/assets/Done-T4hYmIBj.js +1 -0
  41. package/dist/assets/DynamicDrawer.stories-CKwhV8-z.js +37 -0
  42. package/dist/assets/{EmojiObjects-Ckwk51Jg.js → EmojiObjects-DO_8zmV4.js} +1 -1
  43. package/dist/assets/ExpandLess-CGbPBPpS.js +1 -0
  44. package/dist/assets/ExpandMore-Dv7EiJW3.js +1 -0
  45. package/dist/assets/{ExpansionPanel-D6DABXqI.js → ExpansionPanel-BlnvG4xS.js} +1 -1
  46. package/dist/assets/ExpansionPanel.stories-Ce6UXPmu.js +1 -0
  47. package/dist/assets/{FormControlLabel-CcnKQNmx.js → FormControlLabel-DSDMjmD2.js} +1 -1
  48. package/dist/assets/{Grid-Blm23c8Z.js → Grid-VSLJzrv2.js} +1 -1
  49. package/dist/assets/{GroupedChips.stories-CDVqm2sQ.js → GroupedChips.stories-D2bjPdLa.js} +1 -1
  50. package/dist/assets/{Grow-C-wuYi6h.js → Grow-DXPF28Tq.js} +1 -1
  51. package/dist/assets/{HierarchicalFilter.stories-RvCcGQFT.js → HierarchicalFilter.stories-BUTqxM27.js} +1 -1
  52. package/dist/assets/{IconButton-B5lp8oB8.js → IconButton-Bu2NCjQA.js} +1 -1
  53. package/dist/assets/Info-BoEqoVQD.js +1 -0
  54. package/dist/assets/{Input-B1UxJjWU.js → Input-CIxBn0gc.js} +1 -1
  55. package/dist/assets/Input.stories-ChcL1rg6.js +1 -0
  56. package/dist/assets/{InputAdornment-2mnhakZy.js → InputAdornment-CbyM--ln.js} +1 -1
  57. package/dist/assets/{InputNumber.stories-CVqwmd1H.js → InputNumber.stories-FqeCYGF4.js} +1 -1
  58. package/dist/assets/{KeyboardArrowUp-B4PD9IEI.js → KeyboardArrowUp-942sHLgR.js} +1 -1
  59. package/dist/assets/{LabelDivider.stories-BNWqxFIj.js → LabelDivider.stories-BlbIqP-C.js} +1 -1
  60. package/dist/assets/Lens-C5dL2pNG.js +1 -0
  61. package/dist/assets/{Link-jXnjwo7X.js → Link-C37Mzttm.js} +1 -1
  62. package/dist/assets/ListContext-G38OoGJX.js +1 -0
  63. package/dist/assets/{Loading.stories-D_-Ys7R-.js → Loading.stories-DGgO8-e6.js} +1 -1
  64. package/dist/assets/{Logo.stories-BoPlv_hf.js → Logo.stories-BJEpRVWi.js} +1 -1
  65. package/dist/assets/{MenuItem-nGNTVxW_.js → MenuItem-DKGed2cB.js} +1 -1
  66. package/dist/assets/{Mode-CWRRVkzs.js → Mode-kOEyckAB.js} +1 -1
  67. package/dist/assets/Mode.stories-BweAZHP6.js +1 -0
  68. package/dist/assets/{NoData-Da5zmwKG.js → NoData-B381yhis.js} +1 -1
  69. package/dist/assets/NoData.stories-C5FPA8ih.js +1 -0
  70. package/dist/assets/{Pagination.stories-BvAGBaOV.js → Pagination.stories-C5SVceYh.js} +1 -1
  71. package/dist/assets/{Paper-C7oE1m6r.js → Paper-CjMptIvz.js} +1 -1
  72. package/dist/assets/{PeriodPicker.stories-VCvL1CKK.js → PeriodPicker.stories-BmYPdyaQ.js} +1 -1
  73. package/dist/assets/{Popover-CmuJCs_s.js → Popover-C31E74vG.js} +1 -1
  74. package/dist/assets/{RadioGroup-B8TeMiN3.js → RadioGroup-C__XJsUJ.js} +1 -1
  75. package/dist/assets/{Select-RkiIRX8A.js → Select--vT737ku.js} +1 -1
  76. package/dist/assets/{Select-CLL4LsMb.js → Select-ZNVOKOGO.js} +1 -1
  77. package/dist/assets/Select.stories-ap6_1xEg.js +1 -0
  78. package/dist/assets/{Share.stories-C2Bvc4G1.js → Share.stories-CdabOE2M.js} +1 -1
  79. package/dist/assets/{ShortUrls.stories-8Z7l4-94.js → ShortUrls.stories-z9AIq5ut.js} +1 -1
  80. package/dist/assets/{SisccFooter.stories-J1659skk.js → SisccFooter.stories-DWtNytK9.js} +1 -1
  81. package/dist/assets/{Spotlight-BfcbFpvA.js → Spotlight-BxwULrxo.js} +1 -1
  82. package/dist/assets/Spotlight.stories-DxwUUoNf.js +1 -0
  83. package/dist/assets/{SvgIcon-B-eqM-E3.js → SvgIcon-DNfGjVPv.js} +1 -1
  84. package/dist/assets/{SwitchBase-D5jw7pDZ.js → SwitchBase-CGXrI5-T.js} +1 -1
  85. package/dist/assets/{TableFooter.stories-ZeV3aLLJ.js → TableFooter.stories-CjWtNvoS.js} +1 -1
  86. package/dist/assets/{TableHeader.stories-DLH3Sy1Z.js → TableHeader.stories-dr1wtFBR.js} +1 -1
  87. package/dist/assets/{TableHtml5.stories-DIH-tI4V.js → TableHtml5.stories-Ce7LaKB_.js} +1 -1
  88. package/dist/assets/{TableLayout.stories-DWWkFiaS.js → TableLayout.stories-DRZLn8g7.js} +1 -1
  89. package/dist/assets/{TablePreview-99pKoibu.js → TablePreview-xyuhKp-o.js} +1 -1
  90. package/dist/assets/{TablePreview.stories-Bdx8-11F.js → TablePreview.stories-BtWlbbyH.js} +1 -1
  91. package/dist/assets/{TableRow-CqYJcnsQ.js → TableRow-BRSe7vYU.js} +1 -1
  92. package/dist/assets/{Tag-d88BQdeA.js → Tag-DTtmGZ-8.js} +1 -1
  93. package/dist/assets/{Tag.stories-CUUl90sm.js → Tag.stories-C8Ogmy56.js} +1 -1
  94. package/dist/assets/{TextField-Du2Fdfnu.js → TextField-DBYQPAJN.js} +1 -1
  95. package/dist/assets/{TextareaAutosize-DZAjjhX5.js → TextareaAutosize-C8ucbrk0.js} +1 -1
  96. package/dist/assets/{ToggleButton-CtB4NhB4.js → ToggleButton-CniKq3RY.js} +1 -1
  97. package/dist/assets/ToggleButton.stories-CRGiraSc.js +1 -0
  98. package/dist/assets/{Tooltip-T-5XcrTX.js → Tooltip-CdHmozSP.js} +1 -1
  99. package/dist/assets/{Tooltip-BR9gEJDr.js → Tooltip-vqeY087-.js} +1 -1
  100. package/dist/assets/Tooltip.stories-DeG8jNYP.js +1 -0
  101. package/dist/assets/{TransitionGroupContext-CgOfs0dR.js → TransitionGroupContext-BAmPiltF.js} +1 -1
  102. package/dist/assets/{Typography-8VV_MbT6.js → Typography-DQrJfGLV.js} +1 -1
  103. package/dist/assets/{UserRightForm.stories-tzAgjU51.js → UserRightForm.stories-CfFvSyj5.js} +1 -1
  104. package/dist/assets/{VerticalButton-Dp2CUTPO.js → VerticalButton-XHBSoGbw.js} +1 -1
  105. package/dist/assets/VerticalButton.stories-DesTkuwF.js +1 -0
  106. package/dist/assets/{VirtualizedTree-BGR-Z0wZ.js → VirtualizedTree-D4J5Y0jb.js} +1 -1
  107. package/dist/assets/{VirtualizedTree.stories-DdNplsqV.js → VirtualizedTree.stories-KbqtRhdR.js} +1 -1
  108. package/dist/assets/{Warning-CFzVxgpX.js → Warning-DNqTFfps.js} +1 -1
  109. package/dist/assets/{WithTooltip-7X4HQR7L-Bv_C7yqk.js → WithTooltip-7X4HQR7L-D-jkQgmd.js} +1 -1
  110. package/dist/assets/{axe-DFQ6Oe3L.js → axe-BoL0gtaE.js} +1 -1
  111. package/dist/assets/{client-CY5XkToe.js → client-uzJZgENy.js} +1 -1
  112. package/dist/assets/{colorManipulator-C2Wob2Mt.js → colorManipulator-BmLcJd1B.js} +1 -1
  113. package/dist/assets/{createSvgIcon-BEYF_RRB.js → createSvgIcon-Cpgf49FH.js} +1 -1
  114. package/dist/assets/{dividerClasses-BTVF98sm.js → dividerClasses-at713CFU.js} +1 -1
  115. package/dist/assets/{formControlState-DM_xOeOK.js → formControlState-CrM6jhOj.js} +1 -1
  116. package/dist/assets/formatter-L2YTDE3Q-COZI1L4A.js +1 -0
  117. package/dist/assets/{getThemeProps-BptNwghS.js → getThemeProps-CCv2uqLF.js} +1 -1
  118. package/dist/assets/{iframe-DzFk7Yi_.js → iframe-BUu-eJ7e.js} +4 -4
  119. package/dist/assets/index-9e-b9HMP.js +1 -0
  120. package/dist/assets/{index-gc59XWVn.js → index-CY7HedGH.js} +1 -1
  121. package/dist/assets/{index-BaU_aMNo.js → index-CaK8Ws5X.js} +1 -1
  122. package/dist/assets/{index-PfALvNzm.js → index-D2QuY68H.js} +1 -1
  123. package/dist/assets/{index-BmzO_rOc.js → index-D96Cunv4.js} +1 -1
  124. package/dist/assets/{index-C9mrMLCu.js → index-Xvxwi9ow.js} +1 -1
  125. package/dist/assets/{isMuiElement-P2lAqK3I.js → isMuiElement-B12KInF1.js} +1 -1
  126. package/dist/assets/{listItemTextClasses-H1by-bqS.js → listItemTextClasses-D8MaRgHN.js} +1 -1
  127. package/dist/assets/{makeStyles-C7AAxZE8.js → makeStyles-2NkWO2U8.js} +1 -1
  128. package/dist/assets/{react-18-D9NpMs3h.js → react-18-CPxgx1Is.js} +1 -1
  129. package/dist/assets/{styled-mSaA45JV.js → styled-Bdta3zPx.js} +1 -1
  130. package/dist/assets/{syntaxhighlighter-YFXUGROL-C8rfywBN.js → syntaxhighlighter-YFXUGROL-C5fmwJUW.js} +1 -1
  131. package/dist/assets/{useControlled-B928HkjW.js → useControlled-D66hb7P5.js} +1 -1
  132. package/dist/assets/{useKeybordEscapeHandler-JjqlsnGl.js → useKeybordEscapeHandler-Bb4F3A6C.js} +1 -1
  133. package/dist/assets/{useMediaQuery-BNqgIET9.js → useMediaQuery-oDnW0-Gn.js} +1 -1
  134. package/dist/assets/{useSlotProps-DncND8fg.js → useSlotProps-BvQH5-rD.js} +1 -1
  135. package/dist/assets/useTheme-CzzPhTJ0.js +1 -0
  136. package/dist/assets/{useThemeProps-_4kinabK.js → useThemeProps-oG41tgp2.js} +1 -1
  137. package/dist/assets/{utils-B8fsuTSx.js → utils-BteVqkV8.js} +1 -1
  138. package/dist/assets/{utils-C1As6W_N.js → utils-Gv-Ax-Hh.js} +1 -1
  139. package/dist/assets/{with-input-sHT8xNEM.js → with-input-8p2KYn3Z.js} +1 -1
  140. package/dist/assets/{withSpotlight-CpqJMM1Q.js → withSpotlight-BRLMZfdk.js} +1 -1
  141. package/dist/iframe.html +1 -1
  142. package/dist/manifests/components.html +1 -1
  143. package/dist/manifests/components.json +1 -1
  144. package/dist/project.json +1 -1
  145. package/dist/theme/theme.js +1 -1
  146. package/dist/theme/theme.js.map +1 -1
  147. package/package.json +1 -1
  148. package/dist/assets/Alert.stories-vfazdC2h.js +0 -3
  149. package/dist/assets/ArrowForward-dlNFFBkT.js +0 -1
  150. package/dist/assets/Close-qhi3XGkX.js +0 -1
  151. package/dist/assets/CollapseButtons.stories-DJZzXhqo.js +0 -1
  152. package/dist/assets/DataEdit.stories-CyBvHqOW.js +0 -1
  153. package/dist/assets/Done-CrLP7f7d.js +0 -1
  154. package/dist/assets/DynamicDrawer.stories-B-Fc9nT2.js +0 -37
  155. package/dist/assets/ExpandLess-B22kNjSC.js +0 -1
  156. package/dist/assets/ExpandMore-C5W8Fnxx.js +0 -1
  157. package/dist/assets/ExpansionPanel.stories-6WDSfQ5C.js +0 -1
  158. package/dist/assets/Info-CuVHf9vr.js +0 -1
  159. package/dist/assets/Input.stories-DPitoHYd.js +0 -1
  160. package/dist/assets/Lens-MIpHex8g.js +0 -1
  161. package/dist/assets/ListContext-D-3XFycw.js +0 -1
  162. package/dist/assets/Mode.stories-Bm4yI8Ya.js +0 -1
  163. package/dist/assets/NoData.stories-C4NXx1ku.js +0 -1
  164. package/dist/assets/Select.stories-RL_AxTsa.js +0 -1
  165. package/dist/assets/Spotlight.stories-ChFNe7Hj.js +0 -1
  166. package/dist/assets/ToggleButton.stories-CQpiVHgR.js +0 -1
  167. package/dist/assets/Tooltip.stories-BD_j-nVx.js +0 -1
  168. package/dist/assets/VerticalButton.stories-DwXdX5xg.js +0 -1
  169. package/dist/assets/formatter-L2YTDE3Q-BpwNsOkL.js +0 -1
  170. package/dist/assets/index-DfsAjfBH.js +0 -1
  171. package/dist/assets/useTheme-Bflr0z89.js +0 -1
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import React, { useState, useCallback, createElement } from 'react';
2
+ import React, { useState, useRef, useCallback, createElement } from 'react';
3
3
  import useMediaQuery from '@mui/material/useMediaQuery';
4
4
  import Grid from '@mui/material/Grid';
5
5
  import Typography$1 from '@mui/material/Typography';
@@ -176,12 +176,9 @@ Item.propTypes = {
176
176
 
177
177
  const CustomPaper = ({
178
178
  isMobileView,
179
- children,
180
- onClose
179
+ children
181
180
  }) => {
182
- return /* @__PURE__ */ jsx(Paper, { onKeyDown: (e) => {
183
- if (e.key === "Escape" && onClose) onClose();
184
- }, sx: {
181
+ return /* @__PURE__ */ jsx(Paper, { sx: {
185
182
  padding: 2.5,
186
183
  // Multiplies by theme.spacing (2.5 * 8px = 20px)
187
184
  margin: 1.25,
@@ -247,19 +244,24 @@ const CollapseButtons = ({
247
244
  }) => {
248
245
  const isMobileView = useMediaQuery(breakpoint);
249
246
  const [toggleId, setIsOpen] = useState(selectedItemId);
247
+ const containerRef = useRef(null);
250
248
  const mdGridSize = COLUMNS[nbColumns] ?? 3;
251
249
  const handleToggle = useCallback((id) => {
252
250
  setIsOpen((prevId) => prevId === id ? null : id);
253
251
  }, []);
254
- return /* @__PURE__ */ jsxs(Grid, { container: true, "data-testid": testId, justifyContent: justify, tabIndex: 0, sx: {
252
+ const handleKeyDown = useCallback((event) => {
253
+ if (event.key !== "Escape" || !toggleId) return;
254
+ event.stopPropagation();
255
+ containerRef.current?.querySelector('[aria-expanded="true"]')?.focus();
256
+ setIsOpen(null);
257
+ }, [toggleId]);
258
+ return /* @__PURE__ */ jsxs(Grid, { container: true, ref: containerRef, "data-testid": testId, justifyContent: justify, onKeyDown: handleKeyDown, sx: {
255
259
  ...accessibility && {
256
- "&:focus": {
260
+ "& .MuiButton-root:focus-visible, & .MuiLink-root:focus-visible": {
257
261
  outlineColor: "highlight.hl1",
258
262
  // Safely pulls theme.palette.highlight.hl1 automatically
259
263
  outlineWidth: 2,
260
- outlineStyle: "auto",
261
- paddingBottom: 2
262
- // 2 * 8px = 16px
264
+ outlineStyle: "auto"
263
265
  }
264
266
  }
265
267
  }, children: [
@@ -271,7 +273,7 @@ const CollapseButtons = ({
271
273
  p: 1
272
274
  // Adds 8px padding evenly inside every item box without layout shifting
273
275
  } }, /* @__PURE__ */ jsxs(Typography$1, { variant: "h3", children: [
274
- /* @__PURE__ */ jsx(ToggleButton, { textTransform, label, tabIndex: toggleId ? 0 : -1, isOpen: toggleId === id, toggle: () => handleToggle(id), testId: `${testId}_${id}`, id }),
276
+ /* @__PURE__ */ jsx(ToggleButton, { textTransform, label, isOpen: toggleId === id, toggle: () => handleToggle(id), testId: `${testId}_${id}`, id }),
275
277
  isMobileView && /* @__PURE__ */ jsx(CollapseSection$1, { id, toggleId, values, isMobileView, action, isSecondLevelClikable, labelAccessor, testId })
276
278
  ] }))),
277
279
  !isMobileView && items.map(({
@@ -1 +1 @@
1
- {"version":3,"file":"CollapseButtons.js","sources":["../../src/ToggleButton/ToggleButton.jsx","../../src/CollapseButtons/Item.jsx","../../src/CollapseButtons/Paper.jsx","../../src/CollapseButtons/CollapseSection.jsx","../../src/CollapseButtons/CollapseButtons.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Button from '@mui/material/Button';\nimport { KeyboardArrowDown, KeyboardArrowUp } from '@mui/icons-material';\n\nconst useStyles = makeStyles((theme) => {\n const color1 = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;\n return {\n root: {\n minHeight: '43px',\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(0.75, 2, 0.5, 2),\n color: theme.palette.getContrastText(theme.palette.primary.main),\n backgroundColor:\n R.path(['palette', 'button', 'mainOpacity'], theme) || theme.palette.primary.main,\n display: 'flex',\n justifyContent: 'space-between',\n '&:hover': {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n },\n label: {\n textAlign: 'left',\n fontSize: '0.9375rem',\n lineHeight: '1.0',\n },\n selected: {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n };\n});\n\nexport const ToggleButton = ({\n isOpen,\n label,\n toggle,\n testId,\n tabIndex = 0,\n textTransform = 'capitalize',\n}) => {\n const classes = useStyles();\n return (\n <Button\n aria-expanded={isOpen}\n aria-label={label}\n tabIndex={tabIndex}\n data-testid={testId}\n classes={{ root: classes.root, label: classes.label }}\n className={cx({ [classes.selected]: isOpen })}\n style={{ textTransform }}\n fullWidth\n variant=\"text\"\n onClick={R.is(Function)(toggle) ? toggle : null}\n >\n {label}\n {isOpen ? <KeyboardArrowUp /> : <KeyboardArrowDown />}\n </Button>\n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\nimport Link from '@mui/material/Link';\nimport makeStyles from '@mui/styles/makeStyles';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport { Typography } from '@mui/material';\n\nconst useStyles = makeStyles((theme) => ({\n paperItem: {\n alignItems: 'baseline',\n },\n itemTitle: {\n ...theme.typography.body2,\n color: theme.palette.primary.main,\n },\n button: {\n '&:hover': {\n backgroundColor:\n R.path(['palette', 'tertiary', 'light'])(theme) || theme.palette.secondary.light,\n },\n padding: theme.spacing(1.25),\n textAlign: 'left',\n textTransform: 'none',\n justifyContent: 'flex-start',\n display: 'flex',\n },\n itemSubtitle: {\n ...theme.typography.body1,\n display: 'flex',\n flexDirection: 'column',\n color: theme.palette.grey[800],\n },\n itemSubtitleLink: {\n ...theme.typography.body1,\n color: theme.palette.grey[800],\n '&:hover': {\n color: theme.palette.primary.main,\n },\n },\n svg: {\n color: theme.palette.grey[600],\n fontSize: '1rem',\n marginRight: theme.spacing(0.5),\n marginTop: theme.spacing(0.25),\n marginBottom: 'auto',\n },\n}));\n\nconst Item = ({ parentId, item, action, testId, isSecondLevelClikable, labelAccessor }) => {\n const classes = useStyles();\n const mapIndexed = R.addIndex(R.map);\n return (\n <Grid className={classes.paperItem}>\n <Typography variant=\"h4\">\n <Button\n aria-label={R.prop('label')(item)}\n className={classes.button}\n fullWidth\n data-testid={testId}\n // eslint-disable-next-line jsx-a11y/prefer-tag-over-role -- no href target, navigation is handled via onClick/onKeyDown\n role=\"link\"\n onClick={() => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, R.prop('id')(item));\n }}\n tabIndex={0}\n >\n <SvgIcon className={classes.svg}>\n <path d={R.prop('svgPath')(item)} />\n </SvgIcon>\n <Grid container item xs={12} direction=\"column\">\n <span className={classes.itemTitle}>{labelAccessor(item, parentId)}</span>\n <span className={classes.itemSubtitle}>\n {mapIndexed((subtopic, index) => {\n if (R.not(R.is(Object)(subtopic))) return subtopic;\n if (R.not(isSecondLevelClikable)) return labelAccessor(subtopic, parentId);\n const id = R.prop('id')(subtopic);\n return (\n <Typography variant=\"h5\" key={`${id}::${index}`}>\n <Link\n className={classes.itemSubtitleLink}\n // eslint-disable-next-line jsx-a11y/prefer-tag-over-role -- no href target, navigation is handled via onClick/onKeyDown\n role=\"link\"\n onClick={(e) => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }\n }}\n tabIndex={0}\n underline=\"none\"\n style={{ display: 'list-item' }}\n >\n {labelAccessor(subtopic, parentId)}\n </Link>\n </Typography>\n );\n })(\n R.pipe(\n R.propOr([], 'subtopics'),\n R.ifElse(R.always(isSecondLevelClikable), R.identity, R.intersperse(' • '))\n )(item)\n )}\n </span>\n </Grid>\n </Button>\n </Typography>\n </Grid>\n );\n};\n\nItem.propTypes = {\n parentId: PropTypes.string,\n testId: PropTypes.string,\n item: PropTypes.object,\n action: PropTypes.func,\n isSecondLevelClikable: PropTypes.bool,\n labelAccessor: PropTypes.func,\n};\n\nexport default Item;\n","import React from 'react';\nimport Paper from '@mui/material/Paper';\nimport Grid from '@mui/material/Grid';\n\nconst CustomPaper = ({ isMobileView, children, onClose }) => {\n return (\n <Paper\n onKeyDown={(e) => {\n if (e.key === 'Escape' && onClose) onClose();\n }}\n sx={{\n padding: 2.5, // Multiplies by theme.spacing (2.5 * 8px = 20px)\n margin: 1.25, // Multiplies by theme.spacing (1.25 * 8px = 10px)\n borderRadius: 'unset',\n ...(isMobileView && {\n display: 'flex',\n flexDirection: 'column',\n columnCount: 'unset',\n }),\n }}\n >\n <Grid\n sx={{\n columnCount: isMobileView ? 'unset' : 3,\n columnFill: 'balance',\n ...(isMobileView && {\n display: 'flex',\n flexDirection: 'column',\n }),\n }}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n\nexport default CustomPaper;\n","import React from 'react';\nimport Collapse from '@mui/material/Collapse';\nimport Item from './Item';\nimport Paper from './Paper';\n\nconst EMPTY_VALUES = [];\n\nconst CollapseSection = ({\n id,\n toggleId,\n values = EMPTY_VALUES,\n isMobileView,\n action,\n isSecondLevelClikable,\n labelAccessor,\n testId,\n}) => {\n const isOpen = toggleId === id;\n\n return (\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit sx={{ width: '100%' }}>\n <Paper elevation={10} isMobileView={isMobileView}>\n {values.map((item, index) => {\n const itemId = item?.id ?? index;\n return (\n <Item\n key={`${index}-${itemId}`}\n testId={`${testId}_${id}_value_${itemId}`}\n parentId={id}\n item={item}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n />\n );\n })}\n </Paper>\n </Collapse>\n );\n};\n\n// Optimizes re-rendering cycles\nexport default React.memo(CollapseSection);\n","import React, { useState, useCallback } from 'react';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport { ToggleButton } from '../ToggleButton/ToggleButton';\nimport CollapseSection from './CollapseSection';\n\nexport const MAX_COLUMNS = 12;\nexport const COLUMNS = [12, 12, 6, 4, 3, 3, 2, 2, 2, 2, 2, 2, 1];\n\nconst EMPTY_ITEMS = [];\nconst EMPTY_GRID_BUTTONS_PROPS = {};\nconst noop = () => {};\nconst defaultBreakpoint = (theme) => theme.breakpoints.down('md');\nconst defaultLabelAccessor = (obj) => obj?.label;\n\nexport const CollapseButtons = ({\n items = EMPTY_ITEMS,\n action = noop,\n nbColumns = 3,\n testId = 'collapseButton',\n isSecondLevelClikable,\n gridButtonsProps = EMPTY_GRID_BUTTONS_PROPS,\n breakpoint = defaultBreakpoint,\n justify,\n textTransform = 'none',\n labelAccessor = defaultLabelAccessor,\n accessibility,\n selectedItemId,\n}) => {\n const isMobileView = useMediaQuery(breakpoint);\n const [toggleId, setIsOpen] = useState(selectedItemId);\n\n // Safe fallback translation of R.nth(nbColumns)(COLUMNS)\n const mdGridSize = COLUMNS[nbColumns] ?? 3;\n\n // Optimize callback references\n const handleToggle = useCallback((id) => {\n setIsOpen((prevId) => (prevId === id ? null : id));\n }, []);\n\n return (\n <Grid\n container\n data-testid={testId}\n justifyContent={justify}\n tabIndex={0}\n sx={{\n ...(accessibility && {\n '&:focus': {\n outlineColor: 'highlight.hl1', // Safely pulls theme.palette.highlight.hl1 automatically\n outlineWidth: 2,\n outlineStyle: 'auto',\n paddingBottom: 2, // 2 * 8px = 16px\n },\n }),\n }}\n >\n {items.map(({ id, label, values = [] }, index) => (\n <Grid\n item\n xs={12}\n sm={12}\n md={mdGridSize}\n {...gridButtonsProps}\n key={`${index}::${id}`}\n sx={{\n p: 1, // Adds 8px padding evenly inside every item box without layout shifting\n }}\n >\n <Typography variant=\"h3\">\n <ToggleButton\n textTransform={textTransform}\n label={label}\n tabIndex={toggleId ? 0 : -1}\n isOpen={toggleId === id}\n toggle={() => handleToggle(id)}\n testId={`${testId}_${id}`}\n id={id}\n />\n {isMobileView && (\n <CollapseSection\n id={id}\n toggleId={toggleId}\n values={values}\n isMobileView={isMobileView}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n testId={testId}\n />\n )}\n </Typography>\n </Grid>\n ))}\n\n {!isMobileView &&\n items.map(({ id, values = [] }) => (\n <CollapseSection\n key={`desktop-collapse-${id}`}\n id={id}\n toggleId={toggleId}\n values={values}\n isMobileView={isMobileView}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n testId={testId}\n />\n ))}\n </Grid>\n );\n};\n"],"names":["useStyles","makeStyles","theme","color1","R","path","palette","primary","dark","root","minHeight","borderRadius","shape","padding","spacing","color","getContrastText","main","backgroundColor","display","justifyContent","label","textAlign","fontSize","lineHeight","selected","ToggleButton","isOpen","toggle","testId","tabIndex","textTransform","classes","cx","is","Function","paperItem","alignItems","itemTitle","typography","body2","button","secondary","light","itemSubtitle","body1","flexDirection","grey","itemSubtitleLink","svg","marginRight","marginTop","marginBottom","Item","parentId","item","action","isSecondLevelClikable","labelAccessor","mapIndexed","addIndex","map","prop","not","subtopic","index","Object","id","e","stopPropagation","key","pipe","propOr","ifElse","always","identity","intersperse","propTypes","PropTypes","string","object","func","bool","CustomPaper","isMobileView","children","onClose","margin","columnCount","columnFill","EMPTY_VALUES","CollapseSection","toggleId","values","width","Paper","itemId","React","memo","MAX_COLUMNS","COLUMNS","EMPTY_ITEMS","EMPTY_GRID_BUTTONS_PROPS","noop","defaultBreakpoint","breakpoints","down","defaultLabelAccessor","obj","CollapseButtons","items","nbColumns","gridButtonsProps","breakpoint","justify","accessibility","selectedItemId","useMediaQuery","setIsOpen","useState","mdGridSize","handleToggle","useCallback","prevId","outlineColor","outlineWidth","outlineStyle","paddingBottom","p","Typography"],"mappings":"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"}
1
+ {"version":3,"file":"CollapseButtons.js","sources":["../../src/ToggleButton/ToggleButton.jsx","../../src/CollapseButtons/Item.jsx","../../src/CollapseButtons/Paper.jsx","../../src/CollapseButtons/CollapseSection.jsx","../../src/CollapseButtons/CollapseButtons.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Button from '@mui/material/Button';\nimport { KeyboardArrowDown, KeyboardArrowUp } from '@mui/icons-material';\n\nconst useStyles = makeStyles((theme) => {\n const color1 = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;\n return {\n root: {\n minHeight: '43px',\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(0.75, 2, 0.5, 2),\n color: theme.palette.getContrastText(theme.palette.primary.main),\n backgroundColor:\n R.path(['palette', 'button', 'mainOpacity'], theme) || theme.palette.primary.main,\n display: 'flex',\n justifyContent: 'space-between',\n '&:hover': {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n },\n label: {\n textAlign: 'left',\n fontSize: '0.9375rem',\n lineHeight: '1.0',\n },\n selected: {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n };\n});\n\nexport const ToggleButton = ({\n isOpen,\n label,\n toggle,\n testId,\n tabIndex = 0,\n textTransform = 'capitalize',\n}) => {\n const classes = useStyles();\n return (\n <Button\n aria-expanded={isOpen}\n aria-label={label}\n tabIndex={tabIndex}\n data-testid={testId}\n classes={{ root: classes.root, label: classes.label }}\n className={cx({ [classes.selected]: isOpen })}\n style={{ textTransform }}\n fullWidth\n variant=\"text\"\n onClick={R.is(Function)(toggle) ? toggle : null}\n >\n {label}\n {isOpen ? <KeyboardArrowUp /> : <KeyboardArrowDown />}\n </Button>\n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\nimport Link from '@mui/material/Link';\nimport makeStyles from '@mui/styles/makeStyles';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport { Typography } from '@mui/material';\n\nconst useStyles = makeStyles((theme) => ({\n paperItem: {\n alignItems: 'baseline',\n },\n itemTitle: {\n ...theme.typography.body2,\n color: theme.palette.primary.main,\n },\n button: {\n '&:hover': {\n backgroundColor:\n R.path(['palette', 'tertiary', 'light'])(theme) || theme.palette.secondary.light,\n },\n padding: theme.spacing(1.25),\n textAlign: 'left',\n textTransform: 'none',\n justifyContent: 'flex-start',\n display: 'flex',\n },\n itemSubtitle: {\n ...theme.typography.body1,\n display: 'flex',\n flexDirection: 'column',\n color: theme.palette.grey[800],\n },\n itemSubtitleLink: {\n ...theme.typography.body1,\n color: theme.palette.grey[800],\n '&:hover': {\n color: theme.palette.primary.main,\n },\n },\n svg: {\n color: theme.palette.grey[600],\n fontSize: '1rem',\n marginRight: theme.spacing(0.5),\n marginTop: theme.spacing(0.25),\n marginBottom: 'auto',\n },\n}));\n\nconst Item = ({ parentId, item, action, testId, isSecondLevelClikable, labelAccessor }) => {\n const classes = useStyles();\n const mapIndexed = R.addIndex(R.map);\n return (\n <Grid className={classes.paperItem}>\n <Typography variant=\"h4\">\n <Button\n aria-label={R.prop('label')(item)}\n className={classes.button}\n fullWidth\n data-testid={testId}\n // eslint-disable-next-line jsx-a11y/prefer-tag-over-role -- no href target, navigation is handled via onClick/onKeyDown\n role=\"link\"\n onClick={() => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, R.prop('id')(item));\n }}\n tabIndex={0}\n >\n <SvgIcon className={classes.svg}>\n <path d={R.prop('svgPath')(item)} />\n </SvgIcon>\n <Grid container item xs={12} direction=\"column\">\n <span className={classes.itemTitle}>{labelAccessor(item, parentId)}</span>\n <span className={classes.itemSubtitle}>\n {mapIndexed((subtopic, index) => {\n if (R.not(R.is(Object)(subtopic))) return subtopic;\n if (R.not(isSecondLevelClikable)) return labelAccessor(subtopic, parentId);\n const id = R.prop('id')(subtopic);\n return (\n <Typography variant=\"h5\" key={`${id}::${index}`}>\n <Link\n className={classes.itemSubtitleLink}\n // eslint-disable-next-line jsx-a11y/prefer-tag-over-role -- no href target, navigation is handled via onClick/onKeyDown\n role=\"link\"\n onClick={(e) => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }\n }}\n tabIndex={0}\n underline=\"none\"\n style={{ display: 'list-item' }}\n >\n {labelAccessor(subtopic, parentId)}\n </Link>\n </Typography>\n );\n })(\n R.pipe(\n R.propOr([], 'subtopics'),\n R.ifElse(R.always(isSecondLevelClikable), R.identity, R.intersperse(' • '))\n )(item)\n )}\n </span>\n </Grid>\n </Button>\n </Typography>\n </Grid>\n );\n};\n\nItem.propTypes = {\n parentId: PropTypes.string,\n testId: PropTypes.string,\n item: PropTypes.object,\n action: PropTypes.func,\n isSecondLevelClikable: PropTypes.bool,\n labelAccessor: PropTypes.func,\n};\n\nexport default Item;\n","import React from 'react';\nimport Paper from '@mui/material/Paper';\nimport Grid from '@mui/material/Grid';\n\nconst CustomPaper = ({ isMobileView, children }) => {\n return (\n <Paper\n sx={{\n padding: 2.5, // Multiplies by theme.spacing (2.5 * 8px = 20px)\n margin: 1.25, // Multiplies by theme.spacing (1.25 * 8px = 10px)\n borderRadius: 'unset',\n ...(isMobileView && {\n display: 'flex',\n flexDirection: 'column',\n columnCount: 'unset',\n }),\n }}\n >\n <Grid\n sx={{\n columnCount: isMobileView ? 'unset' : 3,\n columnFill: 'balance',\n ...(isMobileView && {\n display: 'flex',\n flexDirection: 'column',\n }),\n }}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n\nexport default CustomPaper;\n","import React from 'react';\nimport Collapse from '@mui/material/Collapse';\nimport Item from './Item';\nimport Paper from './Paper';\n\nconst EMPTY_VALUES = [];\n\nconst CollapseSection = ({\n id,\n toggleId,\n values = EMPTY_VALUES,\n isMobileView,\n action,\n isSecondLevelClikable,\n labelAccessor,\n testId,\n}) => {\n const isOpen = toggleId === id;\n\n return (\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit sx={{ width: '100%' }}>\n <Paper elevation={10} isMobileView={isMobileView}>\n {values.map((item, index) => {\n const itemId = item?.id ?? index;\n return (\n <Item\n key={`${index}-${itemId}`}\n testId={`${testId}_${id}_value_${itemId}`}\n parentId={id}\n item={item}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n />\n );\n })}\n </Paper>\n </Collapse>\n );\n};\n\n// Optimizes re-rendering cycles\nexport default React.memo(CollapseSection);\n","import React, { useState, useCallback, useRef } from 'react';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport { ToggleButton } from '../ToggleButton/ToggleButton';\nimport CollapseSection from './CollapseSection';\n\nexport const MAX_COLUMNS = 12;\nexport const COLUMNS = [12, 12, 6, 4, 3, 3, 2, 2, 2, 2, 2, 2, 1];\n\nconst EMPTY_ITEMS = [];\nconst EMPTY_GRID_BUTTONS_PROPS = {};\nconst noop = () => {};\nconst defaultBreakpoint = (theme) => theme.breakpoints.down('md');\nconst defaultLabelAccessor = (obj) => obj?.label;\n\nexport const CollapseButtons = ({\n items = EMPTY_ITEMS,\n action = noop,\n nbColumns = 3,\n testId = 'collapseButton',\n isSecondLevelClikable,\n gridButtonsProps = EMPTY_GRID_BUTTONS_PROPS,\n breakpoint = defaultBreakpoint,\n justify,\n textTransform = 'none',\n labelAccessor = defaultLabelAccessor,\n accessibility,\n selectedItemId,\n}) => {\n const isMobileView = useMediaQuery(breakpoint);\n const [toggleId, setIsOpen] = useState(selectedItemId);\n const containerRef = useRef(null);\n\n // Safe fallback translation of R.nth(nbColumns)(COLUMNS)\n const mdGridSize = COLUMNS[nbColumns] ?? 3;\n\n // Optimize callback references\n const handleToggle = useCallback((id) => {\n setIsOpen((prevId) => (prevId === id ? null : id));\n }, []);\n\n // Escape, from the open section or from its button, closes the section and hands\n // the focus back to that button (the only one flagged as expanded).\n const handleKeyDown = useCallback(\n (event) => {\n if (event.key !== 'Escape' || !toggleId) return;\n event.stopPropagation();\n containerRef.current?.querySelector('[aria-expanded=\"true\"]')?.focus();\n setIsOpen(null);\n },\n [toggleId]\n );\n\n return (\n <Grid\n container\n ref={containerRef}\n data-testid={testId}\n justifyContent={justify}\n onKeyDown={handleKeyDown}\n sx={{\n ...(accessibility && {\n '& .MuiButton-root:focus-visible, & .MuiLink-root:focus-visible': {\n outlineColor: 'highlight.hl1', // Safely pulls theme.palette.highlight.hl1 automatically\n outlineWidth: 2,\n outlineStyle: 'auto',\n },\n }),\n }}\n >\n {items.map(({ id, label, values = [] }, index) => (\n <Grid\n item\n xs={12}\n sm={12}\n md={mdGridSize}\n {...gridButtonsProps}\n key={`${index}::${id}`}\n sx={{\n p: 1, // Adds 8px padding evenly inside every item box without layout shifting\n }}\n >\n <Typography variant=\"h3\">\n <ToggleButton\n textTransform={textTransform}\n label={label}\n isOpen={toggleId === id}\n toggle={() => handleToggle(id)}\n testId={`${testId}_${id}`}\n id={id}\n />\n {isMobileView && (\n <CollapseSection\n id={id}\n toggleId={toggleId}\n values={values}\n isMobileView={isMobileView}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n testId={testId}\n />\n )}\n </Typography>\n </Grid>\n ))}\n\n {!isMobileView &&\n items.map(({ id, values = [] }) => (\n <CollapseSection\n key={`desktop-collapse-${id}`}\n id={id}\n toggleId={toggleId}\n values={values}\n isMobileView={isMobileView}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n testId={testId}\n />\n ))}\n </Grid>\n );\n};\n"],"names":["useStyles","makeStyles","theme","color1","R","path","palette","primary","dark","root","minHeight","borderRadius","shape","padding","spacing","color","getContrastText","main","backgroundColor","display","justifyContent","label","textAlign","fontSize","lineHeight","selected","ToggleButton","isOpen","toggle","testId","tabIndex","textTransform","classes","cx","is","Function","paperItem","alignItems","itemTitle","typography","body2","button","secondary","light","itemSubtitle","body1","flexDirection","grey","itemSubtitleLink","svg","marginRight","marginTop","marginBottom","Item","parentId","item","action","isSecondLevelClikable","labelAccessor","mapIndexed","addIndex","map","prop","not","subtopic","index","Object","id","e","stopPropagation","key","pipe","propOr","ifElse","always","identity","intersperse","propTypes","PropTypes","string","object","func","bool","CustomPaper","isMobileView","children","margin","columnCount","columnFill","EMPTY_VALUES","CollapseSection","toggleId","values","width","Paper","itemId","React","memo","MAX_COLUMNS","COLUMNS","EMPTY_ITEMS","EMPTY_GRID_BUTTONS_PROPS","noop","defaultBreakpoint","breakpoints","down","defaultLabelAccessor","obj","CollapseButtons","items","nbColumns","gridButtonsProps","breakpoint","justify","accessibility","selectedItemId","useMediaQuery","setIsOpen","useState","containerRef","useRef","mdGridSize","handleToggle","useCallback","prevId","handleKeyDown","event","current","querySelector","focus","outlineColor","outlineWidth","outlineStyle","p","Typography"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import React, { useState, useRef, useEffect, useLayoutEffect, startTransition, useMemo } from 'react';
2
+ import React, { useState, useRef, useLayoutEffect, useEffect, startTransition, useMemo } from 'react';
3
3
  import * as R from 'ramda';
4
4
  import cx from 'classnames';
5
+ import useSize from '@react-hook/size';
5
6
  import Box from '@mui/material/Box';
6
7
  import PropTypes from 'prop-types';
7
8
  import { w as withSpotlight, a as withExpansionTree, g as getHierarchicalId, b as getEvolvedDisableAccessor, c as getScopeGetters, V as VirtualizedTree } from '../chunks/withSpotlight-CA0xvW0v.js';
@@ -481,15 +482,14 @@ const useStyles = makeStyles((theme) => ({
481
482
  chipBorder: {
482
483
  border: `solid 1px ${dynamicDrawerMixin(theme, "chips", "outlineColor")}`
483
484
  },
484
- // Pill radius for standalone chips (value, count, "All items"). Kept off
485
- // "Remove all" (removeAllChip below) and off in-group chips, whose own
486
- // radius is zeroed by concatenatedChipsRow's `& > *` so only the group's
487
- // outer corners round.
488
485
  chipRadius: {
489
486
  borderRadius: dynamicDrawerMixin(theme, "chips", "radius")
490
487
  },
491
- removeAllChip: {
492
- borderRadius: dynamicDrawerMixin(theme, "chips", "removeAllBorderRadius")
488
+ chipDeleteIcon: {
489
+ padding: "2px !important",
490
+ "& svg": {
491
+ fontSize: dynamicDrawerMixin(theme, "chips", "deleteIconSize")
492
+ }
493
493
  },
494
494
  // #1789: a long value truncates on one line and exposes its full text via
495
495
  // the native title tooltip, instead of wrapping the chip over several
@@ -498,28 +498,16 @@ const useStyles = makeStyles((theme) => ({
498
498
  ellipsisLabel: {
499
499
  ...R.pathOr({}, ["mixins", "dynamicDrawer", "chips", "ellipsisLabel"], theme)
500
500
  },
501
- // #1787: the outer frame around the count chip + toggle (collapsed), and
502
- // around that same row stacked over the expanded value-chip row — one
503
- // continuous rounded card either way, never two floating pieces.
504
501
  concatenatedChips: {
505
502
  display: "flex",
506
503
  border: `solid 1px ${dynamicDrawerMixin(theme, "chips", "dividerColor")}`,
507
504
  borderRadius: dynamicDrawerMixin(theme, "chips", "groupBorderRadius"),
508
505
  overflow: "hidden"
509
506
  },
510
- concatenatedChipsExpanded: {
511
- flexDirection: "column",
512
- "& > *:not(:last-child)": {
513
- borderBottom: `solid 1px ${dynamicDrawerMixin(theme, "chips", "dividerColor")}`
514
- }
515
- },
516
- // One row inside the frame: the header (count chip + toggle) is one row,
517
- // the expanded value chips (which themselves wrap onto several lines) are
518
- // another. Dividers and the zeroed child radius are per-row, so wrapped
519
- // chips only ever get a right-hand divider, never a stray corner radius.
507
+ // The items of one such line: a divider between them, and their own
508
+ // radius zeroed so only the frame's outer corners round.
520
509
  concatenatedChipsRow: {
521
510
  display: "flex",
522
- flexWrap: "wrap",
523
511
  alignItems: "stretch",
524
512
  flex: 1,
525
513
  minWidth: 0,
@@ -564,6 +552,9 @@ const useStyles = makeStyles((theme) => ({
564
552
  toggleLabel: {
565
553
  ...R.pathOr({}, ["mixins", "dynamicDrawer", "toggleButton", "label"], theme)
566
554
  },
555
+ toggleIconPlus: {
556
+ transform: "translateY(-2px)"
557
+ },
567
558
  list: {
568
559
  display: "flex",
569
560
  flexDirection: "column",
@@ -684,6 +675,57 @@ const TabPanel = (props) => {
684
675
  children
685
676
  ] }) });
686
677
  };
678
+ const ChipRuns = ({
679
+ id,
680
+ items,
681
+ classes
682
+ }) => {
683
+ const sizeRef = useRef(null);
684
+ const measureRef = useRef(null);
685
+ const [width] = useSize(sizeRef);
686
+ const [rows, setRows] = useState(null);
687
+ useLayoutEffect(() => {
688
+ setRows(null);
689
+ }, [items, width]);
690
+ useLayoutEffect(() => {
691
+ const container = measureRef.current;
692
+ if (!container) return;
693
+ const children = Array.from(container.children);
694
+ if (R.isEmpty(children)) {
695
+ setRows([]);
696
+ return;
697
+ }
698
+ const SAME_ROW_TOLERANCE_PX = 10;
699
+ const grouped = [];
700
+ let currentRow = [];
701
+ let rowAnchorTop = null;
702
+ children.forEach((child, index) => {
703
+ if (rowAnchorTop !== null && Math.abs(child.offsetTop - rowAnchorTop) > SAME_ROW_TOLERANCE_PX) {
704
+ grouped.push(currentRow);
705
+ currentRow = [];
706
+ rowAnchorTop = null;
707
+ }
708
+ if (rowAnchorTop === null) rowAnchorTop = child.offsetTop;
709
+ currentRow.push(index);
710
+ });
711
+ grouped.push(currentRow);
712
+ setRows(grouped);
713
+ });
714
+ const safeRows = rows && R.sum(R.map(R.length, rows)) === R.length(items) ? rows : null;
715
+ return /* @__PURE__ */ jsx(Box, { id, ref: sizeRef, sx: {
716
+ width: "100%"
717
+ }, children: safeRows ? /* @__PURE__ */ jsx(Box, { sx: {
718
+ display: "flex",
719
+ flexDirection: "column",
720
+ alignItems: "flex-start",
721
+ gap: 0.5
722
+ }, children: safeRows.map((rowIndices) => /* @__PURE__ */ jsx(Box, { className: classes.concatenatedChips, children: /* @__PURE__ */ jsx(Box, { className: classes.concatenatedChipsRow, children: rowIndices.map((index) => /* @__PURE__ */ jsx(React.Fragment, { children: items[index].node }, items[index].key)) }) }, rowIndices.map((index) => items[index].key).join("-"))) }) : /* @__PURE__ */ jsx(Box, { ref: measureRef, className: cx(classes.concatenatedChips, classes.concatenatedChipsRow), sx: {
723
+ flexWrap: "wrap"
724
+ }, children: items.map(({
725
+ key,
726
+ node
727
+ }) => /* @__PURE__ */ jsx(React.Fragment, { children: node }, key)) }) });
728
+ };
687
729
  const DimensionCard = React.forwardRef(({
688
730
  label,
689
731
  labels,
@@ -733,8 +775,8 @@ const DimensionCard = React.forwardRef(({
733
775
  } = {}) => /* @__PURE__ */ jsx(CustomChip, { id, parentId: dimId, label: itemLabel, items, renderer: myTooltipRenderer({
734
776
  isRtl,
735
777
  labelRenderer
736
- }), labelRenderer, chipClasses: cx(chipClasses.secondaryChip, chipClasses.chip, classes.chipDeleteLeft, bordered && classes.chipBorder, bordered && classes.chipRadius), iconClasses: chipClasses.icon, labelClasses: cx(chipClasses.spaceLabel, classes.ellipsisLabel), title: R.is(String, itemLabel) ? itemLabel : void 0, onDelete: R.is(Function, onDeleteValue) && isEditMode && !isNotRemovable ? onDeleteValue : void 0 }, id);
737
- const countChip = /* @__PURE__ */ jsx(CustomChip, { label: nItemsLabel, chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipDeleteLeft), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: chipClasses.icon, onDelete: R.is(Function, onDeleteAllDimValues) && isEditMode ? () => onDeleteAllDimValues(dimId, selectedItems) : void 0 });
778
+ }), labelRenderer, chipClasses: cx(chipClasses.secondaryChip, chipClasses.chip, classes.chipDeleteLeft, bordered && classes.chipBorder, bordered && classes.chipRadius), iconClasses: cx(chipClasses.icon, classes.chipDeleteIcon), labelClasses: cx(chipClasses.spaceLabel, classes.ellipsisLabel), title: R.is(String, itemLabel) ? itemLabel : void 0, onDelete: R.is(Function, onDeleteValue) && isEditMode && !isNotRemovable ? onDeleteValue : void 0 }, id);
779
+ const countChip = /* @__PURE__ */ jsx(CustomChip, { label: nItemsLabel, chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipDeleteLeft), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: cx(chipClasses.icon, classes.chipDeleteIcon), onDelete: R.is(Function, onDeleteAllDimValues) && isEditMode ? () => onDeleteAllDimValues(dimId, selectedItems) : void 0 });
738
780
  return /* @__PURE__ */ jsx(Paper, { ...rest, ref, className: cx(rest.className, classes.frame), children: /* @__PURE__ */ jsxs(Box, { sx: {
739
781
  display: "flex",
740
782
  flexDirection: "column",
@@ -757,16 +799,19 @@ const DimensionCard = React.forwardRef(({
757
799
  flexWrap: "wrap",
758
800
  alignItems: "center",
759
801
  gap: 0.5
760
- }, children: R.isEmpty(selectedItems) ? /* @__PURE__ */ jsx(CustomChip, { label: R.propOr("All items", "allItems", labels), chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipBorder, classes.chipRadius), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: chipClasses.icon }) : showCollapseToggle ? /* @__PURE__ */ jsxs(Box, { className: cx(classes.concatenatedChips, expanded && classes.concatenatedChipsExpanded), children: [
761
- /* @__PURE__ */ jsxs(Box, { className: classes.concatenatedChipsRow, children: [
762
- countChip,
763
- expanded ? toggle(/* @__PURE__ */ jsx(Remove, { fontSize: "small" }), R.propOr("Show less", "showLess", labels)) : toggle(/* @__PURE__ */ jsx(Add, { fontSize: "small" }), R.propOr("Show more", "showMore", labels))
764
- ] }),
765
- expanded && /* @__PURE__ */ jsx(Box, { id: chipsId, className: classes.concatenatedChipsRow, children: R.map((chip) => valueChip(chip, {
802
+ }, children: R.isEmpty(selectedItems) ? /* @__PURE__ */ jsx(CustomChip, { label: R.propOr("All items", "allItems", labels), chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipBorder, classes.chipRadius), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: chipClasses.icon }) : showCollapseToggle ? /* @__PURE__ */ jsx(ChipRuns, { id: chipsId, classes, items: [{
803
+ key: "count",
804
+ node: countChip
805
+ }, {
806
+ key: "toggle",
807
+ node: expanded ? toggle(/* @__PURE__ */ jsx(Remove, { fontSize: "small" }), R.propOr("Show less", "showLess", labels)) : toggle(/* @__PURE__ */ jsx(Add, { fontSize: "small", className: classes.toggleIconPlus }), R.propOr("Show more", "showMore", labels))
808
+ }, ...expanded ? R.map((chip) => ({
809
+ key: chip.id,
810
+ node: valueChip(chip, {
766
811
  bordered: false
767
- }))(selectedItems) })
768
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
769
- showRemoveAll && isEditMode && /* @__PURE__ */ jsx(CustomChip, { label: R.propOr("Remove all", "removeAll", labels), chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipDeleteLeft, classes.removeAllChip, classes.chipBorder), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: chipClasses.icon, onDelete: R.is(Function, onDeleteAllDimValues) ? () => onDeleteAllDimValues(dimId, selectedItems) : void 0 }),
812
+ })
813
+ }), selectedItems) : []] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
814
+ showRemoveAll && isEditMode && /* @__PURE__ */ jsx(CustomChip, { label: R.propOr("Remove all", "removeAll", labels), chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipDeleteLeft, classes.chipBorder, classes.chipRadius), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: cx(chipClasses.icon, classes.chipDeleteIcon), onDelete: R.is(Function, onDeleteAllDimValues) ? () => onDeleteAllDimValues(dimId, selectedItems) : void 0 }),
770
815
  R.map((chip) => valueChip(chip))(selectedItems)
771
816
  ] }) })
772
817
  ] }) });