@12-apps/ui 6.57.0 → 6.59.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 (210) hide show
  1. package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -2
  2. package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
  3. package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
  4. package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
  5. package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
  6. package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
  7. package/dist/_internal/components/data-display/Chart/chart-format.js +5 -1
  8. package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
  9. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  10. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  11. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +18 -18
  12. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +20 -19
  13. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +5 -3
  14. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +45 -0
  15. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js.map +1 -0
  16. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +2 -2
  17. package/dist/_internal/components/data-display/DataViews/base-list-card.js +5 -4
  18. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +1 -1
  19. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +4 -4
  20. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +4 -4
  21. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +17 -17
  22. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +6 -6
  23. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +4 -4
  24. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +5 -5
  25. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  26. package/dist/_internal/components/data-display/DataViews/data-views-selection-extra.js +3 -1
  27. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +3 -3
  28. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +1 -1
  29. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +2 -2
  30. package/dist/_internal/components/data-display/DataViews/data-views-url-echo.js +13 -0
  31. package/dist/_internal/components/data-display/DataViews/data-views-url-echo.js.map +1 -0
  32. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +1 -1
  33. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +1 -1
  34. package/dist/_internal/components/data-display/index.js +16 -16
  35. package/dist/_internal/components/index.js +24 -24
  36. package/dist/_internal/components/layout/ContentToolbar/ContentToolbar.js +1 -1
  37. package/dist/_internal/components/layout/index.js +1 -1
  38. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +6 -6
  39. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +9 -9
  40. package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +3 -3
  41. package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +4 -4
  42. package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +5 -5
  43. package/dist/_internal/components/navigation/SectionNav/SectionNav.railCreate.js +4 -4
  44. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +4 -4
  45. package/dist/_internal/components/navigation/index.js +9 -9
  46. package/dist/_internal/en-US.data-display.js +1 -1
  47. package/dist/_internal/pt-BR.data-display.js +1 -1
  48. package/dist/_internal/user-avatar/user-avatar.js +3 -3
  49. package/dist/charts.js +8 -8
  50. package/dist/{chunk-RBHBJDOZ.js → chunk-3FMWQQW6.js} +5 -5
  51. package/dist/chunk-3FMWQQW6.js.map +1 -0
  52. package/dist/{chunk-MKAA3YIJ.js → chunk-3K7WN2PO.js} +3 -3
  53. package/dist/{chunk-GI24X7XA.js → chunk-4PPNCZWY.js} +3 -3
  54. package/dist/{chunk-573XC4HK.js → chunk-4QKS5Y35.js} +2 -2
  55. package/dist/{chunk-KX75HM5U.js → chunk-5YDS6HO3.js} +7 -2
  56. package/dist/{chunk-KX75HM5U.js.map → chunk-5YDS6HO3.js.map} +1 -1
  57. package/dist/{chunk-N4MR4EMC.js → chunk-6D2PFC5C.js} +2 -2
  58. package/dist/{chunk-QVWNK4JO.js → chunk-6GPNZSAE.js} +19 -2
  59. package/dist/chunk-6GPNZSAE.js.map +1 -0
  60. package/dist/{chunk-LJKWWXZD.js → chunk-6OSUK2C7.js} +28 -22
  61. package/dist/chunk-6OSUK2C7.js.map +1 -0
  62. package/dist/{chunk-ICSXPZXT.js → chunk-6QBT5TPS.js} +2 -2
  63. package/dist/{chunk-A6EUQDRK.js → chunk-ARJIKW56.js} +4 -2
  64. package/dist/chunk-ARJIKW56.js.map +1 -0
  65. package/dist/{chunk-53ACGKBW.js → chunk-EDBP62WG.js} +3 -3
  66. package/dist/{chunk-YXIVQFNW.js → chunk-EWIKSTJV.js} +4 -4
  67. package/dist/{chunk-LWZ2K225.js → chunk-FXZUVZON.js} +6 -6
  68. package/dist/chunk-G6EJLEVV.js +75 -0
  69. package/dist/chunk-G6EJLEVV.js.map +1 -0
  70. package/dist/{chunk-IK2ZVV3M.js → chunk-GK7JNSMK.js} +2 -2
  71. package/dist/{chunk-HFBQCJNP.js → chunk-HCYRCU4W.js} +2 -2
  72. package/dist/{chunk-BJMNAPKH.js → chunk-HH7PM5HT.js} +10 -22
  73. package/dist/chunk-HH7PM5HT.js.map +1 -0
  74. package/dist/{chunk-7AAJYWC3.js → chunk-HPO7PB4F.js} +2 -2
  75. package/dist/{chunk-WF3P7GE5.js → chunk-I3CQBEKS.js} +2 -2
  76. package/dist/{chunk-RREWYOKS.js → chunk-IL4FCC54.js} +2 -2
  77. package/dist/{chunk-7M3DRP7Q.js → chunk-ILNO4ZJ6.js} +3 -3
  78. package/dist/{chunk-R6SBP5M5.js → chunk-JVOEVTCZ.js} +4 -2
  79. package/dist/chunk-JVOEVTCZ.js.map +1 -0
  80. package/dist/{chunk-2CJZLL5Y.js → chunk-NHVL2QPG.js} +2 -1
  81. package/dist/{chunk-2CJZLL5Y.js.map → chunk-NHVL2QPG.js.map} +1 -1
  82. package/dist/{chunk-45PGSVOH.js → chunk-NTJUAPJM.js} +10 -8
  83. package/dist/chunk-NTJUAPJM.js.map +1 -0
  84. package/dist/{chunk-EUPUEMFX.js → chunk-PC4H5LVB.js} +7 -7
  85. package/dist/{chunk-KEKOPD43.js → chunk-PQ7RWH7L.js} +4 -2
  86. package/dist/chunk-PQ7RWH7L.js.map +1 -0
  87. package/dist/{chunk-HRMB72E4.js → chunk-QHP5PZNC.js} +2 -1
  88. package/dist/{chunk-HRMB72E4.js.map → chunk-QHP5PZNC.js.map} +1 -1
  89. package/dist/{chunk-GNBCSTXF.js → chunk-QKAYXAQE.js} +6 -6
  90. package/dist/{chunk-GNBCSTXF.js.map → chunk-QKAYXAQE.js.map} +1 -1
  91. package/dist/{chunk-TZFBJ47T.js → chunk-SFLNHCA2.js} +39 -15
  92. package/dist/chunk-SFLNHCA2.js.map +1 -0
  93. package/dist/{chunk-OBMPE6PW.js → chunk-SSDYEOU4.js} +5 -5
  94. package/dist/{chunk-I6ESCBY3.js → chunk-TF27Z27K.js} +2 -2
  95. package/dist/{chunk-JF5LQOGB.js → chunk-U47KRLEW.js} +57 -45
  96. package/dist/chunk-U47KRLEW.js.map +1 -0
  97. package/dist/chunk-V4V2N6YJ.js +55 -0
  98. package/dist/chunk-V4V2N6YJ.js.map +1 -0
  99. package/dist/{chunk-C67FDYG7.js → chunk-W7N4ORCV.js} +16 -6
  100. package/dist/chunk-W7N4ORCV.js.map +1 -0
  101. package/dist/{chunk-JL77BSOL.js → chunk-WBDQSBLV.js} +2 -2
  102. package/dist/{chunk-G76BNXWE.js → chunk-XW5SEW3H.js} +6 -6
  103. package/dist/{chunk-46ZATLQV.js → chunk-YIKFYWKD.js} +3 -3
  104. package/dist/{chunk-4JBS6NOT.js → chunk-ZWBGQYVO.js} +35 -6
  105. package/dist/chunk-ZWBGQYVO.js.map +1 -0
  106. package/dist/{chunk-VWW2EXH7.js → chunk-ZYJZHXFU.js} +4 -4
  107. package/dist/data-display/Avatar.js +2 -2
  108. package/dist/data-display/Badge.js +2 -2
  109. package/dist/data-display/CardKit.js +10 -10
  110. package/dist/data-display/Carousel.js +2 -2
  111. package/dist/data-display/Chart.js +8 -8
  112. package/dist/data-display/DataGrid.js +2 -2
  113. package/dist/data-display/DataViews.js +25 -23
  114. package/dist/en-US.js +1 -1
  115. package/dist/layout/ContentToolbar.js +1 -1
  116. package/dist/locales.js +2 -2
  117. package/dist/navigation/SectionNav.js +9 -9
  118. package/dist/pt-BR.js +1 -1
  119. package/dist/types/components/data-display/Chart/Chart.types.d.ts +5 -0
  120. package/dist/types/components/data-display/Chart/Chart.types.d.ts.map +1 -1
  121. package/dist/types/components/data-display/Chart/chart-context.d.ts.map +1 -1
  122. package/dist/types/components/data-display/Chart/chart-format.d.ts +14 -0
  123. package/dist/types/components/data-display/Chart/chart-format.d.ts.map +1 -1
  124. package/dist/types/components/data-display/Chart/chart-spec.d.ts.map +1 -1
  125. package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts.map +1 -1
  126. package/dist/types/components/data-display/DataViews/base-list-card-geometry.d.ts +29 -1
  127. package/dist/types/components/data-display/DataViews/base-list-card-geometry.d.ts.map +1 -1
  128. package/dist/types/components/data-display/DataViews/base-list-card-layout.d.ts +46 -0
  129. package/dist/types/components/data-display/DataViews/base-list-card-layout.d.ts.map +1 -0
  130. package/dist/types/components/data-display/DataViews/base-list-card-slots.d.ts +5 -2
  131. package/dist/types/components/data-display/DataViews/base-list-card-slots.d.ts.map +1 -1
  132. package/dist/types/components/data-display/DataViews/base-list-card.d.ts +10 -1
  133. package/dist/types/components/data-display/DataViews/base-list-card.d.ts.map +1 -1
  134. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +7 -0
  135. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts.map +1 -1
  136. package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts.map +1 -1
  137. package/dist/types/components/data-display/DataViews/data-views-selection-extra.d.ts +2 -0
  138. package/dist/types/components/data-display/DataViews/data-views-selection-extra.d.ts.map +1 -1
  139. package/dist/types/components/data-display/DataViews/data-views-shell-toolbar.d.ts +3 -1
  140. package/dist/types/components/data-display/DataViews/data-views-shell-toolbar.d.ts.map +1 -1
  141. package/dist/types/components/data-display/DataViews/data-views-toolbar.d.ts +2 -0
  142. package/dist/types/components/data-display/DataViews/data-views-toolbar.d.ts.map +1 -1
  143. package/dist/types/components/data-display/DataViews/data-views-url-echo.d.ts +47 -0
  144. package/dist/types/components/data-display/DataViews/data-views-url-echo.d.ts.map +1 -0
  145. package/dist/types/components/data-display/DataViews/list-card-rails.d.ts +17 -2
  146. package/dist/types/components/data-display/DataViews/list-card-rails.d.ts.map +1 -1
  147. package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts +3 -2
  148. package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts.map +1 -1
  149. package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts +14 -0
  150. package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts.map +1 -1
  151. package/dist/types/en-US.data-display.d.ts.map +1 -1
  152. package/dist/types/pt-BR.data-display.d.ts.map +1 -1
  153. package/dist/user-avatar.js +3 -3
  154. package/package.json +1 -1
  155. package/src/components/data-display/Chart/Chart.md +5 -1
  156. package/src/components/data-display/Chart/Chart.types.ts +5 -0
  157. package/src/components/data-display/Chart/chart-context.ts +21 -1
  158. package/src/components/data-display/Chart/chart-format.ts +31 -0
  159. package/src/components/data-display/Chart/chart-renderers.tsx +1 -1
  160. package/src/components/data-display/Chart/chart-spec.ts +2 -1
  161. package/src/components/data-display/DataViews/DataViewsTableBase.tsx +7 -36
  162. package/src/components/data-display/DataViews/base-list-card-geometry.tsx +114 -40
  163. package/src/components/data-display/DataViews/base-list-card-layout.tsx +104 -0
  164. package/src/components/data-display/DataViews/base-list-card-slots.tsx +47 -3
  165. package/src/components/data-display/DataViews/base-list-card.tsx +65 -68
  166. package/src/components/data-display/DataViews/data-views-copy.ts +7 -0
  167. package/src/components/data-display/DataViews/data-views-grid-parts.tsx +2 -1
  168. package/src/components/data-display/DataViews/data-views-selection-extra.ts +10 -1
  169. package/src/components/data-display/DataViews/data-views-shell-toolbar.tsx +4 -0
  170. package/src/components/data-display/DataViews/data-views-toolbar.tsx +4 -0
  171. package/src/components/data-display/DataViews/data-views-url-echo.ts +134 -0
  172. package/src/components/data-display/DataViews/list-card-rails.tsx +22 -6
  173. package/src/components/layout/ContentToolbar/ContentToolbar.md +5 -2
  174. package/src/components/layout/ContentToolbar/ContentToolbar.tsx +51 -10
  175. package/src/components/layout/ContentToolbar/ContentToolbar.types.ts +14 -0
  176. package/src/en-US.data-display.ts +1 -0
  177. package/src/pt-BR.data-display.ts +1 -0
  178. package/dist/chunk-45PGSVOH.js.map +0 -1
  179. package/dist/chunk-4JBS6NOT.js.map +0 -1
  180. package/dist/chunk-A6EUQDRK.js.map +0 -1
  181. package/dist/chunk-BJMNAPKH.js.map +0 -1
  182. package/dist/chunk-C67FDYG7.js.map +0 -1
  183. package/dist/chunk-JF5LQOGB.js.map +0 -1
  184. package/dist/chunk-KEKOPD43.js.map +0 -1
  185. package/dist/chunk-LJKWWXZD.js.map +0 -1
  186. package/dist/chunk-QVWNK4JO.js.map +0 -1
  187. package/dist/chunk-R6SBP5M5.js.map +0 -1
  188. package/dist/chunk-RBHBJDOZ.js.map +0 -1
  189. package/dist/chunk-TZFBJ47T.js.map +0 -1
  190. /package/dist/{chunk-MKAA3YIJ.js.map → chunk-3K7WN2PO.js.map} +0 -0
  191. /package/dist/{chunk-GI24X7XA.js.map → chunk-4PPNCZWY.js.map} +0 -0
  192. /package/dist/{chunk-573XC4HK.js.map → chunk-4QKS5Y35.js.map} +0 -0
  193. /package/dist/{chunk-N4MR4EMC.js.map → chunk-6D2PFC5C.js.map} +0 -0
  194. /package/dist/{chunk-ICSXPZXT.js.map → chunk-6QBT5TPS.js.map} +0 -0
  195. /package/dist/{chunk-53ACGKBW.js.map → chunk-EDBP62WG.js.map} +0 -0
  196. /package/dist/{chunk-YXIVQFNW.js.map → chunk-EWIKSTJV.js.map} +0 -0
  197. /package/dist/{chunk-LWZ2K225.js.map → chunk-FXZUVZON.js.map} +0 -0
  198. /package/dist/{chunk-IK2ZVV3M.js.map → chunk-GK7JNSMK.js.map} +0 -0
  199. /package/dist/{chunk-HFBQCJNP.js.map → chunk-HCYRCU4W.js.map} +0 -0
  200. /package/dist/{chunk-7AAJYWC3.js.map → chunk-HPO7PB4F.js.map} +0 -0
  201. /package/dist/{chunk-WF3P7GE5.js.map → chunk-I3CQBEKS.js.map} +0 -0
  202. /package/dist/{chunk-RREWYOKS.js.map → chunk-IL4FCC54.js.map} +0 -0
  203. /package/dist/{chunk-7M3DRP7Q.js.map → chunk-ILNO4ZJ6.js.map} +0 -0
  204. /package/dist/{chunk-EUPUEMFX.js.map → chunk-PC4H5LVB.js.map} +0 -0
  205. /package/dist/{chunk-OBMPE6PW.js.map → chunk-SSDYEOU4.js.map} +0 -0
  206. /package/dist/{chunk-I6ESCBY3.js.map → chunk-TF27Z27K.js.map} +0 -0
  207. /package/dist/{chunk-JL77BSOL.js.map → chunk-WBDQSBLV.js.map} +0 -0
  208. /package/dist/{chunk-G76BNXWE.js.map → chunk-XW5SEW3H.js.map} +0 -0
  209. /package/dist/{chunk-46ZATLQV.js.map → chunk-YIKFYWKD.js.map} +0 -0
  210. /package/dist/{chunk-VWW2EXH7.js.map → chunk-ZYJZHXFU.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/ContentToolbar/ContentToolbar.tsx"],"sourcesContent":["'use client';\n\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Checkbox from '@mui/material/Checkbox/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport React from 'react';\n\nimport type { ContentToolbarProps } from './ContentToolbar.types';\nimport { fieldRadiusPx } from '../../../tokens/field-radius';\nimport { sxRem } from '../../../tokens/relative';\n\nconst selectionButtonSx = {\n minWidth: 0,\n height: 'auto',\n borderRadius: fieldRadiusPx,\n fontWeight: 600,\n py: 0.5,\n px: 1.5,\n fontSize: sxRem(12),\n textTransform: 'none',\n color: 'text.primary',\n} as const;\n\ntype SelectionClusterProps = Pick<\n ContentToolbarProps,\n | 'hasSelection'\n | 'selectedCount'\n | 'selectAll'\n | 'clearSelection'\n | 'actions'\n | 'selectionExtra'\n | 'selectAllTestId'\n | 'clearAllTestId'\n | 'edgeAlign'\n | 'selectAllLabel'\n | 'selectAllText'\n | 'clearAllText'\n>;\n\n/** The left cluster: Select All + (when selecting) Clear All / count / actions. */\nfunction SelectionCluster({\n hasSelection,\n selectedCount,\n selectAll,\n clearSelection,\n actions,\n selectionExtra,\n selectAllTestId,\n clearAllTestId,\n edgeAlign = false,\n selectAllLabel,\n selectAllText,\n clearAllText,\n}: SelectionClusterProps): React.JSX.Element {\n const actionsSlot = actions !== undefined && (\n <Box sx={{ ml: 0.5, display: 'flex', flexShrink: 0, alignItems: 'center' }}>{actions}</Box>\n );\n return (\n <Box\n sx={{\n display: 'flex',\n minWidth: 0,\n // Browsing (mobile): don't grow, so the controls sit on the SAME line as\n // the checkbox (no orphaned selection row). Desktop: grow to push\n // controls right.\n //\n // SELECTING (mobile) it must be able to shrink instead. Its children are\n // all `flex-shrink: 0`, so a cluster pinned at content width cannot wrap\n // and the row painted past the toolbar's own edge — on Produtos at 390px\n // that took \"Ações\" off-screen behind a sideways scroll, which is the\n // one control the selection exists to reach.\n flex: { xs: hasSelection ? '1 1 auto' : '0 0 auto', md: 1 },\n alignItems: 'center',\n // Wrapping is the phone's answer, and only the phone's: below `md` the\n // cluster carries the count, the scope control and \"Ações\" at once, and\n // no combination of those fits 320px on one line. From `md` up it stays\n // a single line, where it always fitted.\n flexWrap: { xs: 'wrap', md: 'nowrap' },\n columnGap: 1.5,\n rowGap: 1,\n ml: edgeAlign ? -1.5 : 0,\n }}\n >\n {/* Desktop: a \"Select All\" text button (md+). Mobile: a compact checkbox\n that toggles select-all/clear — the text would eat the tight row. */}\n <Button\n variant=\"text\"\n size=\"small\"\n color=\"inherit\"\n onClick={selectAll}\n data-testid={selectAllTestId}\n sx={{ ...selectionButtonSx, display: { xs: 'none', md: 'inline-flex' } }}\n >\n {selectAllText}\n </Button>\n <Checkbox\n size=\"small\"\n checked={hasSelection}\n onChange={(event) => (event.target.checked ? selectAll() : clearSelection())}\n data-testid={`${selectAllTestId}-checkbox`}\n inputProps={{ 'aria-label': selectAllLabel }}\n sx={{ p: 0.5, display: { xs: 'inline-flex', md: 'none' } }}\n />\n {hasSelection ? (\n <SelectionState\n selectedCount={selectedCount}\n clearSelection={clearSelection}\n clearAllTestId={clearAllTestId}\n clearAllText={clearAllText}\n selectionExtra={selectionExtra}\n />\n ) : null}\n {actionsSlot}\n </Box>\n );\n}\n\n/**\n * What the cluster shows once something IS ticked: Clear All, the count, and\n * the host's own `selectionExtra`.\n *\n * Its own component only because the cluster around it is at the complexity\n * gate's line ceiling — but the split falls where the meaning does. Everything\n * here exists only while a selection does, and the `actions` slot deliberately\n * stays OUTSIDE it: a toolbar may carry actions while browsing too.\n */\nfunction SelectionState({\n selectedCount,\n clearSelection,\n clearAllTestId,\n clearAllText,\n selectionExtra,\n}: Pick<\n ContentToolbarProps,\n 'selectedCount' | 'clearSelection' | 'clearAllTestId' | 'clearAllText' | 'selectionExtra'\n>): React.JSX.Element {\n return (\n <>\n <Button\n variant=\"text\"\n size=\"small\"\n color=\"inherit\"\n onClick={clearSelection}\n data-testid={clearAllTestId}\n sx={selectionButtonSx}\n >\n {clearAllText}\n </Button>\n <Divider orientation=\"vertical\" flexItem sx={{ height: sxRem(16), alignSelf: 'center' }} />\n <Typography\n component=\"span\"\n data-testid=\"selected-count-indicator\"\n sx={{ fontSize: sxRem(14), color: 'text.secondary', whiteSpace: 'nowrap', flexShrink: 0 }}\n >\n {selectedCount} {selectedCount === 1 ? 'item' : 'items'} selected\n </Typography>\n {selectionExtra !== undefined && (\n <>\n {/* A DELIBERATE break, not a wrap that happened to land here. What\n follows — \"Seleção: 48 produtos — todas as páginas\", its \"Limpar\n seleção\", and \"Ações\" — is a sentence about the selection plus the\n control that acts on it, and letting the phone break it wherever it\n ran out of room split that sentence mid-phrase. Zero height so it\n costs nothing but the row gap, and `display:none` from `md` up,\n where the line still fits. */}\n <Box\n aria-hidden\n sx={{ flexBasis: '100%', height: 0, display: { xs: 'block', md: 'none' } }}\n />\n {selectionExtra}\n </>\n )}\n </>\n );\n}\n\n/**\n * The BROWSING half of the toolbar: search + filters on the left, the page's\n * own controls on the right. Split out of {@link ContentToolbar} so that\n * function stays inside the complexity gate — it is layout only, and the\n * decision of whether to show it at all is made by the caller.\n */\nfunction BrowsingClusters({\n leadingControls,\n rightControls,\n hasSelection,\n edgeAlign,\n}: {\n leadingControls?: React.ReactNode;\n rightControls: React.ReactNode;\n hasSelection: boolean;\n edgeAlign: boolean;\n}): React.JSX.Element {\n return (\n <>\n {/* minWidth:0 lets this cluster be the one that gives up width as the row\n * tightens, which is what the filter overflow measures against. */}\n {leadingControls !== undefined && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1,\n minWidth: 0,\n // The collapse ladder has a FLOOR — below roughly 400px even the\n // fully-collapsed row does not fit, and its controls cannot shrink\n // (they are flexShrink:0 so an over-packed row sheds instead of\n // squeezing). Past that point this scrolls rather than letting them\n // paint outside the toolbar, which is what a narrow phone did.\n overflowX: 'auto',\n // No scrollbar gutter stealing height on the common case.\n scrollbarWidth: 'thin',\n }}\n >\n {leadingControls}\n </Box>\n )}\n {/* ml:auto keeps the controls right-aligned even when the cluster wraps to\n * its own row (where justify-content:space-between would otherwise snap a\n * lone item to the left); it's a no-op on a shared row. */}\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n // Same single-line rule as the row itself: this cluster wrapping\n // INTERNALLY buys a second line just as surely as the row wrapping\n // does. It bit at exactly 900px, the `md` breakpoint where the \"N de\n // N\" counter appears and pushes Exibir/Exportar over the edge.\n flexWrap: leadingControls === undefined ? 'wrap' : 'nowrap',\n // Tight (5px) when browsing so the controls fit one line beside the\n // checkbox; roomier (14px) in selection mode where they get their own row.\n gap: hasSelection ? sxRem(14) : sxRem(5),\n ml: 'auto',\n mr: edgeAlign ? -1.5 : 0,\n '& > *': { flexShrink: 0 },\n }}\n >\n {rightControls}\n </Box>\n </>\n );\n}\n\n/**\n * Shared toolbar for content pages (Favorites, Personal Space, Recents, …). The\n * left cluster owns selection chrome — **Select All**, and once items are\n * selected, **Clear All** + an \"N items selected\" count + an optional `actions`\n * slot. The right cluster is a free `rightControls` slot for page-specific\n * controls (ViewSelector, SortByDropdown, MultiSelectDropdown, FilterTrigger).\n *\n * Faithful, generic MUI port of the reference `ContentPageToolbar` — the\n * domain-specific default actions are intentionally left to the consumer via\n * the `actions` slot so this stays agnostic and reusable across projects.\n *\n * @example\n * ```tsx\n * <ContentToolbar\n * hasSelection={selected.size > 0}\n * selectedCount={selected.size}\n * selectAll={selectAll}\n * clearSelection={clear}\n * rightControls={\n * <>\n * <ViewSelector viewMode={view} onViewModeChange={setView} zoom={zoom} onZoomChange={setZoom} />\n * <SortByDropdown fields={FIELDS} activeField={field} onFieldChange={setField} />\n * <MultiSelectDropdown label=\"Content Type\" options={types} selected={typeSet} onToggle={toggle} onClear={clear} />\n * <FilterTrigger open={panelOpen} onOpenChange={setPanelOpen} hasActiveFilters={hasFilters} />\n * </>\n * }\n * />\n * ```\n */\nexport function ContentToolbar({\n hasSelection,\n selectedCount,\n selectAll,\n clearSelection,\n rightControls,\n leadingControls,\n actions,\n selectionExtra,\n selectAllTestId,\n clearAllTestId,\n edgeAlign = false,\n exclusiveSelection = false,\n selectAllLabel,\n selectAllText,\n clearAllText,\n}: ContentToolbarProps): React.JSX.Element {\n // Under `exclusiveSelection` the two states are alternatives, not neighbours:\n // browsing shows the controls and no checkbox, selecting shows the checkbox\n // and no controls. Anything else double-books the row.\n const showSelection = !exclusiveSelection || hasSelection;\n const showControls = !exclusiveSelection || !hasSelection;\n return (\n // Two clusters on one line. They may wrap onto separate rows ONLY for a\n // toolbar without `leadingControls` — one carrying search + filters is\n // driven by a measured collapse ladder (see `useFilterOverflow`), and a\n // wrap there is the ladder having failed: it would silently buy a second\n // row instead of shedding a control into \"Mais\", which is the one outcome\n // the ladder exists to prevent.\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 2,\n flexWrap: leadingControls === undefined ? 'wrap' : 'nowrap',\n rowGap: 1,\n }}\n >\n {showSelection && (\n <SelectionCluster\n selectAllText={selectAllText}\n clearAllText={clearAllText}\n hasSelection={hasSelection}\n selectedCount={selectedCount}\n selectAll={selectAll}\n clearSelection={clearSelection}\n actions={actions}\n selectionExtra={selectionExtra}\n selectAllTestId={selectAllTestId}\n clearAllTestId={clearAllTestId}\n selectAllLabel={selectAllLabel}\n edgeAlign={edgeAlign}\n />\n )}\n\n {showControls && (\n <BrowsingClusters\n leadingControls={leadingControls}\n rightControls={rightControls}\n hasSelection={hasSelection}\n edgeAlign={edgeAlign}\n />\n )}\n </Box>\n );\n}\n"],"mappings":"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","names":[]}