@12-apps/ui 6.41.2 → 6.43.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 (510) hide show
  1. package/dist/_internal/components/data-display/Alert/Alert.js +3 -3
  2. package/dist/_internal/components/data-display/Alert/Alert.metrics.js +3 -3
  3. package/dist/_internal/components/data-display/Alert/Alert.styles.js +3 -3
  4. package/dist/_internal/components/data-display/Badge/Badge.js +4 -4
  5. package/dist/_internal/components/data-display/Badge/Badge.styles.js +4 -4
  6. package/dist/_internal/components/data-display/Badge/BadgeContent.js +4 -4
  7. package/dist/_internal/components/data-display/Banner/Banner.js +3 -3
  8. package/dist/_internal/components/data-display/Banner/Banner.styles.js +3 -3
  9. package/dist/_internal/components/data-display/CardKit/CardKebab.js +3 -3
  10. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +3 -3
  11. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +3 -3
  12. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +3 -3
  13. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +4 -4
  14. package/dist/_internal/components/data-display/Carousel/Carousel.js +4 -4
  15. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +4 -4
  16. package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +4 -4
  17. package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
  18. package/dist/_internal/components/data-display/Chart/SpecChart.js +4 -4
  19. package/dist/_internal/components/data-display/Chart/chart-context.js +4 -4
  20. package/dist/_internal/components/data-display/Chart/chart-internals.js +4 -4
  21. package/dist/_internal/components/data-display/Chart/chart-renderers.js +4 -4
  22. package/dist/_internal/components/data-display/DataGrid/DataGrid.body.js +2 -2
  23. package/dist/_internal/components/data-display/DataGrid/DataGrid.cells.js +1 -1
  24. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +13 -4
  25. package/dist/_internal/components/data-display/DataGrid/DataGrid.model.js +12 -1
  26. package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +6 -6
  27. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +30 -29
  28. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +36 -35
  29. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +6 -6
  30. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +6 -6
  31. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +7 -7
  32. package/dist/_internal/components/data-display/DataViews/base-card.js +6 -6
  33. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +15 -10
  34. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +14 -9
  35. package/dist/_internal/components/data-display/DataViews/base-list-card.js +16 -11
  36. package/dist/_internal/components/data-display/DataViews/data-views-bar-controls.js +1 -1
  37. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +1 -1
  38. package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +6 -6
  39. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +3 -3
  40. package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +1 -1
  41. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +11 -10
  42. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +12 -7
  43. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +6 -6
  44. package/dist/_internal/components/data-display/DataViews/data-views-export.js +6 -6
  45. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +1 -1
  46. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +15 -14
  47. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +3 -3
  48. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +29 -28
  49. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +6 -6
  50. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +8 -8
  51. package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +11 -1
  52. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +6 -6
  53. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +7 -7
  54. package/dist/_internal/components/data-display/DataViews/data-views-number-input.js +1 -1
  55. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +1 -1
  56. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +1 -1
  57. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +10 -2
  58. package/dist/_internal/components/data-display/DataViews/data-views-search.js +1 -1
  59. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +6 -6
  60. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +14 -13
  61. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +9 -9
  62. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +13 -12
  63. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +6 -6
  64. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +10 -2
  65. package/dist/_internal/components/data-display/DataViews/save-view-preview.js +6 -6
  66. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +3 -3
  67. package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +6 -6
  68. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +1 -1
  69. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +1 -1
  70. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +1 -1
  71. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +4 -4
  72. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +7 -7
  73. package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +2 -2
  74. package/dist/_internal/components/data-display/Lightbox/LightboxCurrentMedia.js +3 -2
  75. package/dist/_internal/components/data-display/Lightbox/LightboxMedia.js +2 -1
  76. package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +3 -3
  77. package/dist/_internal/components/data-display/Lightbox/LightboxThumbnails.js +2 -1
  78. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +1 -1
  79. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +1 -1
  80. package/dist/_internal/components/data-display/MapPreview/MapSearchBar.js +1 -1
  81. package/dist/_internal/components/data-display/Progress/Progress.js +6 -6
  82. package/dist/_internal/components/data-display/Progress/Progress.metrics.js +4 -4
  83. package/dist/_internal/components/data-display/Progress/Progress.styles.js +5 -5
  84. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +4 -4
  85. package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -4
  86. package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +4 -4
  87. package/dist/_internal/components/data-display/Table/Table.helpers.js +3 -1
  88. package/dist/_internal/components/data-display/Table/Table.js +11 -3
  89. package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -2
  90. package/dist/_internal/components/data-display/Table/TableParts.js +2 -2
  91. package/dist/_internal/components/data-display/TimingDiagram/TimingDiagram.js +2 -2
  92. package/dist/_internal/components/data-display/TimingDiagram/TimingDiagram.views.js +1 -1
  93. package/dist/_internal/components/data-display/index.js +26 -26
  94. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
  95. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +3 -3
  96. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  97. package/dist/_internal/components/feedback/TutorialOverlay/TutorialStepBody.js +1 -1
  98. package/dist/_internal/components/feedback/index.js +5 -5
  99. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +1 -1
  100. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +1 -1
  101. package/dist/_internal/components/form/AddressAutocomplete/AddressFallbackField.js +1 -1
  102. package/dist/_internal/components/form/AddressAutocomplete/AddressInputField.js +1 -1
  103. package/dist/_internal/components/form/AddressAutocomplete/AddressTextField.js +1 -1
  104. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +1 -1
  105. package/dist/_internal/components/form/Autocomplete/Autocomplete.parts.js +1 -1
  106. package/dist/_internal/components/form/Button/Button.js +3 -3
  107. package/dist/_internal/components/form/Button/Button.styles.js +3 -3
  108. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +1 -1
  109. package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +1 -1
  110. package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +1 -1
  111. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +1 -1
  112. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +1 -1
  113. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +1 -1
  114. package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +1 -1
  115. package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +1 -1
  116. package/dist/_internal/components/form/CepField/CepField.js +1 -1
  117. package/dist/_internal/components/form/Command/Command.js +4 -4
  118. package/dist/_internal/components/form/Command/Command.styles.js +4 -4
  119. package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +1 -1
  120. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +1 -1
  121. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +1 -1
  122. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +1 -1
  123. package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +1 -1
  124. package/dist/_internal/components/form/Input/Input.js +1 -1
  125. package/dist/_internal/components/form/Input/Input.styles.js +1 -1
  126. package/dist/_internal/components/form/InputOTP/InputOTP.js +1 -1
  127. package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +1 -1
  128. package/dist/_internal/components/form/Label/Label.js +4 -4
  129. package/dist/_internal/components/form/Label/Label.styles.js +4 -4
  130. package/dist/_internal/components/form/Menubar/Menubar.item.js +4 -4
  131. package/dist/_internal/components/form/Menubar/Menubar.js +4 -4
  132. package/dist/_internal/components/form/Menubar/Menubar.styles.js +4 -4
  133. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +4 -4
  134. package/dist/_internal/components/form/NumberField/NumberField.js +1 -1
  135. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +1 -1
  136. package/dist/_internal/components/form/RadioGroup/RadioGroup.js +1 -1
  137. package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +1 -1
  138. package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +1 -1
  139. package/dist/_internal/components/form/Select/Select.js +1 -1
  140. package/dist/_internal/components/form/Switch/Switch.js +3 -3
  141. package/dist/_internal/components/form/Switch/Switch.parts.js +3 -3
  142. package/dist/_internal/components/form/Switch/Switch.styles.js +3 -3
  143. package/dist/_internal/components/form/Textarea/Textarea.js +2 -2
  144. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +1 -1
  145. package/dist/_internal/components/form/Toggle/Toggle.js +1 -1
  146. package/dist/_internal/components/form/Toggle/Toggle.styles.js +1 -1
  147. package/dist/_internal/components/form/ToggleGroup/ToggleGroup.js +1 -1
  148. package/dist/_internal/components/form/index.js +5 -5
  149. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +1 -1
  150. package/dist/_internal/components/form/total-form/Fields/CepField.js +1 -1
  151. package/dist/_internal/components/form/total-form/Fields/SelectField.js +1 -1
  152. package/dist/_internal/components/form/total-form/Fields/TextField.js +1 -1
  153. package/dist/_internal/components/form/total-form/Fields/ToggleField.js +1 -1
  154. package/dist/_internal/components/form/total-form/Fields/index.js +1 -1
  155. package/dist/_internal/components/form/total-form/SubmitButton.js +3 -3
  156. package/dist/_internal/components/index.js +43 -43
  157. package/dist/_internal/components/layout/Box/Box.js +7 -7
  158. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +1 -1
  159. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +1 -1
  160. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +1 -1
  161. package/dist/_internal/components/layout/ContentToolbar/MultiSelectTriggers.js +1 -1
  162. package/dist/_internal/components/layout/ContentToolbar/SavedViewsMenu.js +1 -1
  163. package/dist/_internal/components/layout/ContentToolbar/SortByDropdown.js +1 -1
  164. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +1 -1
  165. package/dist/_internal/components/layout/Dashboard/Dashboard.js +2 -2
  166. package/dist/_internal/components/layout/Dashboard/DashboardParts.js +1 -1
  167. package/dist/_internal/components/layout/SettingCard/SettingCard.js +9 -9
  168. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +8 -8
  169. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +9 -9
  170. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +10 -10
  171. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +9 -9
  172. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +10 -10
  173. package/dist/_internal/components/layout/Stack/Stack.js +8 -8
  174. package/dist/_internal/components/layout/TableFilter/TableFilter.js +1 -1
  175. package/dist/_internal/components/layout/index.js +15 -15
  176. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +4 -4
  177. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +4 -4
  178. package/dist/_internal/components/navigation/Pagination/Pagination.js +1 -1
  179. package/dist/_internal/components/navigation/Pagination/PaginationParts.js +1 -1
  180. package/dist/_internal/components/navigation/Tabs/Tabs.js +1 -1
  181. package/dist/_internal/components/navigation/Tabs/Tabs.styles.js +1 -1
  182. package/dist/_internal/components/navigation/index.js +4 -4
  183. package/dist/_internal/components/typography/Heading/Heading.js +6 -6
  184. package/dist/_internal/components/typography/Heading/Heading.metrics.js +4 -4
  185. package/dist/_internal/components/typography/Heading/Heading.styles.js +5 -5
  186. package/dist/_internal/components/typography/Text/Text.js +5 -5
  187. package/dist/_internal/components/typography/Text/Text.metrics.js +4 -4
  188. package/dist/_internal/components/typography/index.js +8 -8
  189. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +4 -4
  190. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +4 -4
  191. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +4 -4
  192. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +4 -4
  193. package/dist/_internal/components/utility/index.js +4 -4
  194. package/dist/_internal/en-US.data-display.js +3 -1
  195. package/dist/_internal/en-US.feedback.js +1 -1
  196. package/dist/_internal/icons/Icon.js +7 -7
  197. package/dist/_internal/provider/UiProvider.js +6 -6
  198. package/dist/_internal/provider/mui-bridge.js +5 -5
  199. package/dist/_internal/provider/use-ui-theme.js +6 -6
  200. package/dist/_internal/pt-BR.data-display.js +3 -1
  201. package/dist/_internal/pt-BR.feedback.js +1 -1
  202. package/dist/_internal/social-login-button/social-login-button.js +9 -9
  203. package/dist/_internal/tokens/density.js +1 -1
  204. package/dist/_internal/tokens/field-height.js +1 -1
  205. package/dist/_internal/tokens/theme.js +3 -3
  206. package/dist/_internal/user-avatar/user-avatar.js +6 -6
  207. package/dist/charts.js +4 -4
  208. package/dist/{chunk-K4L42FF6.js → chunk-24JOJJ2J.js} +3 -3
  209. package/dist/chunk-24JOJJ2J.js.map +1 -0
  210. package/dist/{chunk-YPIVLPXF.js → chunk-33NBMNTB.js} +2 -2
  211. package/dist/{chunk-JE6GQB5J.js → chunk-4Z2HIHA5.js} +4 -4
  212. package/dist/{chunk-FHW3ATT7.js → chunk-53HQNN3C.js} +2 -2
  213. package/dist/{chunk-53O2TNSR.js → chunk-5DAVXZPY.js} +3 -3
  214. package/dist/{chunk-DH5UJD2I.js → chunk-5FHPZOYK.js} +2 -2
  215. package/dist/{chunk-NSVSC6ZC.js → chunk-5PJM772Y.js} +4 -4
  216. package/dist/{chunk-VYM2GPR6.js → chunk-5PTCT3LF.js} +2 -2
  217. package/dist/{chunk-ZH2SZ6B3.js → chunk-652PYSML.js} +6 -6
  218. package/dist/{chunk-PEOOCQ2T.js → chunk-6IRJAIS4.js} +2 -2
  219. package/dist/{chunk-PAT2BQOQ.js → chunk-6IWO7CM2.js} +2 -2
  220. package/dist/{chunk-YFODI4KT.js → chunk-6WZUZHJM.js} +8 -8
  221. package/dist/{chunk-KCDNOMMT.js → chunk-6Z6PUG4C.js} +9 -3
  222. package/dist/chunk-6Z6PUG4C.js.map +1 -0
  223. package/dist/{chunk-QEI5DC6S.js → chunk-7KJOODQB.js} +1 -1
  224. package/dist/{chunk-6ZD3FI5P.js → chunk-AOFI3GDS.js} +4 -4
  225. package/dist/{chunk-H72YKEGD.js → chunk-AOKLEE64.js} +2 -2
  226. package/dist/{chunk-RDFPM2AQ.js → chunk-BJGUDLWZ.js} +4 -4
  227. package/dist/{chunk-X66E5WSX.js → chunk-C4QKXFZN.js} +3 -3
  228. package/dist/{chunk-OJUORFGO.js → chunk-C6JUGWAU.js} +4 -4
  229. package/dist/{chunk-DLWLIPCP.js → chunk-CKFZQQ6T.js} +2 -2
  230. package/dist/{chunk-Z2NN53E5.js → chunk-DCT2PKMQ.js} +2 -2
  231. package/dist/{chunk-G6ZPQHBL.js → chunk-DSHM7VN6.js} +2 -2
  232. package/dist/{chunk-WV62BSWA.js → chunk-F5BYZNXY.js} +2 -2
  233. package/dist/{chunk-RDZGXJOD.js → chunk-F5GXWK6B.js} +2 -2
  234. package/dist/{chunk-4Z7GEO2R.js → chunk-G7RYAWPZ.js} +2 -2
  235. package/dist/{chunk-UFNIS7KC.js → chunk-GGBFDHXE.js} +11 -8
  236. package/dist/chunk-GGBFDHXE.js.map +1 -0
  237. package/dist/{chunk-4S2LWZ7L.js → chunk-GO6XDMBB.js} +2 -2
  238. package/dist/{chunk-2XHIF3M3.js → chunk-GXQDWHPN.js} +25 -3
  239. package/dist/chunk-GXQDWHPN.js.map +1 -0
  240. package/dist/{chunk-KHOAXZW2.js → chunk-H3GYVR7S.js} +3 -3
  241. package/dist/{chunk-XZJM6EPC.js → chunk-HUAQQ5ZL.js} +12 -2
  242. package/dist/chunk-HUAQQ5ZL.js.map +1 -0
  243. package/dist/{chunk-C6OVO6AT.js → chunk-I6MVJWUO.js} +2 -2
  244. package/dist/{chunk-F7JTIHV5.js → chunk-ICDAYOJ6.js} +6 -5
  245. package/dist/chunk-ICDAYOJ6.js.map +1 -0
  246. package/dist/{chunk-ASCUWG55.js → chunk-IOCY5G43.js} +8 -3
  247. package/dist/chunk-IOCY5G43.js.map +1 -0
  248. package/dist/{chunk-4XHVGUOM.js → chunk-J2SFOLGZ.js} +2 -2
  249. package/dist/{chunk-7TE4TMS3.js → chunk-JSOJKHEI.js} +3 -3
  250. package/dist/{chunk-ZNBLGS66.js → chunk-K62RHTFB.js} +3 -3
  251. package/dist/{chunk-6N2EDWMG.js → chunk-KWU62UPM.js} +2 -2
  252. package/dist/{chunk-NHEWST3N.js → chunk-L3MRRAZM.js} +3 -2
  253. package/dist/chunk-L3MRRAZM.js.map +1 -0
  254. package/dist/{chunk-3MEIGSDK.js → chunk-LTTYUSJ2.js} +5 -2
  255. package/dist/chunk-LTTYUSJ2.js.map +1 -0
  256. package/dist/{chunk-CJ45OL7L.js → chunk-M2GVHVE4.js} +2 -2
  257. package/dist/{chunk-3AQD2EA6.js → chunk-M42ZOCO7.js} +10 -9
  258. package/dist/chunk-M42ZOCO7.js.map +1 -0
  259. package/dist/{chunk-MEBQKYH4.js → chunk-MBNXCCRG.js} +4 -4
  260. package/dist/{chunk-UT73NGRS.js → chunk-MLUUF7OZ.js} +2 -2
  261. package/dist/{chunk-KW3H5FUS.js → chunk-MPYIEIBA.js} +2 -2
  262. package/dist/{chunk-DFI2RKVQ.js → chunk-MRWYKNBY.js} +2 -2
  263. package/dist/{chunk-HFVYWHJT.js → chunk-NYT3UVOH.js} +8 -8
  264. package/dist/{chunk-YWJDUJAR.js → chunk-O6IF4BZT.js} +2 -2
  265. package/dist/{chunk-3UEZ6NUI.js → chunk-OCQ6GDCF.js} +2 -2
  266. package/dist/{chunk-JAGAFEZL.js → chunk-OD3L6GX5.js} +2 -2
  267. package/dist/{chunk-RPBGUWNF.js → chunk-ON4TRXCM.js} +3 -3
  268. package/dist/{chunk-GJFAI3J5.js → chunk-OOB3YWPX.js} +17 -10
  269. package/dist/chunk-OOB3YWPX.js.map +1 -0
  270. package/dist/{chunk-TZASFX6G.js → chunk-P53KRCKW.js} +4 -4
  271. package/dist/{chunk-NOLSQK4J.js → chunk-PGV2FLE3.js} +2 -2
  272. package/dist/{chunk-C2TERIB4.js → chunk-QSNLIWEB.js} +2 -2
  273. package/dist/{chunk-2DWBJJK6.js → chunk-RBGUS7WO.js} +2 -2
  274. package/dist/{chunk-XZY7O7JJ.js → chunk-RHKT2XW2.js} +2 -2
  275. package/dist/{chunk-4SHMSLFA.js → chunk-RRG75JJS.js} +2 -2
  276. package/dist/{chunk-6MD5QXXJ.js → chunk-RWRPF24F.js} +4 -4
  277. package/dist/{chunk-VPAOVEI2.js → chunk-SJGYMI6Y.js} +3 -3
  278. package/dist/chunk-SV4FYSDL.js +92 -0
  279. package/dist/chunk-SV4FYSDL.js.map +1 -0
  280. package/dist/{chunk-EQXIW5MQ.js → chunk-TCMH3FXD.js} +2 -2
  281. package/dist/{chunk-STTULW2K.js → chunk-TE3XYCX7.js} +2 -2
  282. package/dist/{chunk-TJ3334AJ.js → chunk-TMW7RBW7.js} +3 -3
  283. package/dist/{chunk-DGMDQHMI.js → chunk-U6DOF5CR.js} +14 -2
  284. package/dist/chunk-U6DOF5CR.js.map +1 -0
  285. package/dist/{chunk-ASHXIAJO.js → chunk-UGH2DDST.js} +5 -2
  286. package/dist/chunk-UGH2DDST.js.map +1 -0
  287. package/dist/{chunk-LODMNSLR.js → chunk-UP7SSTCZ.js} +8 -7
  288. package/dist/chunk-UP7SSTCZ.js.map +1 -0
  289. package/dist/{chunk-WFAJTO2B.js → chunk-UVFZQCC7.js} +5 -9
  290. package/dist/chunk-UVFZQCC7.js.map +1 -0
  291. package/dist/{chunk-U5SH3VRJ.js → chunk-V5ZLUJV7.js} +25 -3
  292. package/dist/chunk-V5ZLUJV7.js.map +1 -0
  293. package/dist/{chunk-VCBV5JM7.js → chunk-VNOXUWK7.js} +2 -2
  294. package/dist/{chunk-IVJKILIX.js → chunk-VZ4VAQX3.js} +2 -2
  295. package/dist/{chunk-IWGW2E35.js → chunk-WF4XK5AS.js} +2 -2
  296. package/dist/{chunk-6REPQ352.js → chunk-WL7IG7TT.js} +2 -2
  297. package/dist/{chunk-5QAJ3Y5F.js → chunk-XQWUVQ2F.js} +2 -2
  298. package/dist/{chunk-U67ZQ6VM.js → chunk-YIWVHEPW.js} +2 -2
  299. package/dist/{chunk-DH77PLFF.js → chunk-YTVXT5TD.js} +2 -2
  300. package/dist/{chunk-MKLIMY3D.js → chunk-YZHX2HTC.js} +2 -2
  301. package/dist/{chunk-ZEYUSS3W.js → chunk-Z6LTEJ7F.js} +10 -7
  302. package/dist/chunk-Z6LTEJ7F.js.map +1 -0
  303. package/dist/{chunk-H5ZTIELC.js → chunk-ZFXTRPQO.js} +5 -4
  304. package/dist/chunk-ZFXTRPQO.js.map +1 -0
  305. package/dist/data-display/Alert.js +3 -3
  306. package/dist/data-display/Badge.js +4 -4
  307. package/dist/data-display/Banner.js +3 -3
  308. package/dist/data-display/CardKit.js +3 -3
  309. package/dist/data-display/Carousel.js +4 -4
  310. package/dist/data-display/Chart.js +4 -4
  311. package/dist/data-display/DataGrid.js +13 -4
  312. package/dist/data-display/DataViews.js +41 -40
  313. package/dist/data-display/DescriptionItem.js +6 -6
  314. package/dist/data-display/FleetMap.js +4 -4
  315. package/dist/data-display/Lightbox.js +7 -7
  316. package/dist/data-display/MapPreview.js +1 -1
  317. package/dist/data-display/Progress.js +6 -6
  318. package/dist/data-display/Sheet.js +4 -4
  319. package/dist/data-display/Table.js +11 -3
  320. package/dist/data-display/TimingDiagram.js +2 -2
  321. package/dist/en-US.js +4 -2
  322. package/dist/feedback/ConfirmAction.js +3 -3
  323. package/dist/feedback/NotificationStatusNotice.js +3 -3
  324. package/dist/feedback/TutorialOverlay.js +2 -2
  325. package/dist/form/AddressAutocomplete.js +1 -1
  326. package/dist/form/Autocomplete.js +1 -1
  327. package/dist/form/Button.js +3 -3
  328. package/dist/form/CategorySelect.js +1 -1
  329. package/dist/form/CepField.js +1 -1
  330. package/dist/form/Command.js +4 -4
  331. package/dist/form/CreatableSelect.js +1 -1
  332. package/dist/form/DateRangePicker.js +1 -1
  333. package/dist/form/Input.js +1 -1
  334. package/dist/form/InputOTP.js +1 -1
  335. package/dist/form/Label.js +4 -4
  336. package/dist/form/Menubar.js +4 -4
  337. package/dist/form/NumberField.js +1 -1
  338. package/dist/form/PhoneInput.js +1 -1
  339. package/dist/form/RadioGroup.js +1 -1
  340. package/dist/form/Select.js +1 -1
  341. package/dist/form/Switch.js +3 -3
  342. package/dist/form/Textarea.js +2 -2
  343. package/dist/form/Toggle.js +1 -1
  344. package/dist/form/ToggleGroup.js +1 -1
  345. package/dist/form/total-form.js +3 -3
  346. package/dist/icons.js +7 -7
  347. package/dist/layout/Box.js +7 -7
  348. package/dist/layout/ContentToolbar.js +1 -1
  349. package/dist/layout/Dashboard.js +2 -2
  350. package/dist/layout/SettingCard.js +13 -13
  351. package/dist/layout/Stack.js +8 -8
  352. package/dist/layout/TableFilter.js +1 -1
  353. package/dist/locales.js +8 -4
  354. package/dist/locales.js.map +1 -1
  355. package/dist/navigation/AppHeader.js +4 -4
  356. package/dist/navigation/Pagination.js +1 -1
  357. package/dist/navigation/Tabs.js +1 -1
  358. package/dist/provider.js +7 -7
  359. package/dist/pt-BR.js +4 -2
  360. package/dist/social-login-button.js +9 -9
  361. package/dist/tokens.js +15 -15
  362. package/dist/types/components/data-display/DataGrid/DataGrid.body.d.ts.map +1 -1
  363. package/dist/types/components/data-display/DataGrid/DataGrid.cells.d.ts +3 -1
  364. package/dist/types/components/data-display/DataGrid/DataGrid.cells.d.ts.map +1 -1
  365. package/dist/types/components/data-display/DataGrid/DataGrid.d.ts +1 -1
  366. package/dist/types/components/data-display/DataGrid/DataGrid.d.ts.map +1 -1
  367. package/dist/types/components/data-display/DataGrid/DataGrid.model.d.ts +19 -1
  368. package/dist/types/components/data-display/DataGrid/DataGrid.model.d.ts.map +1 -1
  369. package/dist/types/components/data-display/DataGrid/DataGrid.types.d.ts +12 -2
  370. package/dist/types/components/data-display/DataGrid/DataGrid.types.d.ts.map +1 -1
  371. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +8 -2
  372. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts.map +1 -1
  373. package/dist/types/components/data-display/DataViews/data-views-grid-bodies.d.ts.map +1 -1
  374. package/dist/types/components/data-display/DataViews/data-views-layout-context.d.ts +12 -0
  375. package/dist/types/components/data-display/DataViews/data-views-layout-context.d.ts.map +1 -1
  376. package/dist/types/components/data-display/Lightbox/Lightbox.d.ts.map +1 -1
  377. package/dist/types/components/data-display/Lightbox/LightboxMedia.d.ts.map +1 -1
  378. package/dist/types/components/data-display/Lightbox/LightboxThumbnails.d.ts.map +1 -1
  379. package/dist/types/components/data-display/Table/Table.d.ts.map +1 -1
  380. package/dist/types/components/data-display/Table/Table.helpers.d.ts +10 -1
  381. package/dist/types/components/data-display/Table/Table.helpers.d.ts.map +1 -1
  382. package/dist/types/components/data-display/TimingDiagram/TimingDiagram.d.ts.map +1 -1
  383. package/dist/types/components/data-display/TimingDiagram/TimingDiagram.views.d.ts +2 -0
  384. package/dist/types/components/data-display/TimingDiagram/TimingDiagram.views.d.ts.map +1 -1
  385. package/dist/types/components/layout/Dashboard/Dashboard.d.ts +1 -1
  386. package/dist/types/components/layout/Dashboard/Dashboard.types.d.ts +22 -12
  387. package/dist/types/components/layout/Dashboard/Dashboard.types.d.ts.map +1 -1
  388. package/dist/types/components/layout/Dashboard/DashboardParts.d.ts +1 -1
  389. package/dist/types/components/layout/Dashboard/DashboardParts.d.ts.map +1 -1
  390. package/dist/types/copy/data-display.d.ts +40 -1
  391. package/dist/types/copy/data-display.d.ts.map +1 -1
  392. package/dist/types/copy/feedback.d.ts +7 -1
  393. package/dist/types/copy/feedback.d.ts.map +1 -1
  394. package/dist/types/en-US.data-display.d.ts +2 -1
  395. package/dist/types/en-US.data-display.d.ts.map +1 -1
  396. package/dist/types/en-US.feedback.d.ts.map +1 -1
  397. package/dist/types/locales.d.ts +2 -1
  398. package/dist/types/locales.d.ts.map +1 -1
  399. package/dist/types/pt-BR.data-display.d.ts +2 -1
  400. package/dist/types/pt-BR.data-display.d.ts.map +1 -1
  401. package/dist/types/pt-BR.feedback.d.ts.map +1 -1
  402. package/dist/typography/Heading.js +6 -6
  403. package/dist/typography/Text.js +5 -5
  404. package/dist/user-avatar.js +6 -6
  405. package/dist/utility/WorkflowStep.js +4 -4
  406. package/package.json +1 -1
  407. package/src/components/data-display/DataGrid/DataGrid.body.tsx +2 -1
  408. package/src/components/data-display/DataGrid/DataGrid.cells.tsx +7 -4
  409. package/src/components/data-display/DataGrid/DataGrid.model.ts +30 -1
  410. package/src/components/data-display/DataGrid/DataGrid.tsx +11 -5
  411. package/src/components/data-display/DataGrid/DataGrid.types.ts +13 -2
  412. package/src/components/data-display/DataViews/data-views-copy.ts +8 -2
  413. package/src/components/data-display/DataViews/data-views-grid-bodies.tsx +1 -0
  414. package/src/components/data-display/DataViews/data-views-layout-context.tsx +24 -1
  415. package/src/components/data-display/Lightbox/Lightbox.tsx +8 -2
  416. package/src/components/data-display/Lightbox/LightboxMedia.tsx +5 -2
  417. package/src/components/data-display/Lightbox/LightboxThumbnails.tsx +7 -3
  418. package/src/components/data-display/Table/Table.helpers.ts +20 -2
  419. package/src/components/data-display/Table/Table.tsx +5 -2
  420. package/src/components/data-display/TimingDiagram/TimingDiagram.tsx +10 -7
  421. package/src/components/data-display/TimingDiagram/TimingDiagram.views.tsx +6 -2
  422. package/src/components/feedback/TutorialOverlay/TutorialStepBody.tsx +2 -2
  423. package/src/components/layout/Dashboard/Dashboard.types.ts +22 -12
  424. package/src/components/layout/Dashboard/DashboardParts.tsx +10 -7
  425. package/src/copy/data-display.ts +41 -1
  426. package/src/copy/feedback.ts +7 -1
  427. package/src/en-US.data-display.ts +23 -0
  428. package/src/en-US.feedback.ts +3 -0
  429. package/src/locales.ts +2 -0
  430. package/src/pt-BR.data-display.ts +23 -0
  431. package/src/pt-BR.feedback.ts +3 -0
  432. package/dist/chunk-2XHIF3M3.js.map +0 -1
  433. package/dist/chunk-3AQD2EA6.js.map +0 -1
  434. package/dist/chunk-3MEIGSDK.js.map +0 -1
  435. package/dist/chunk-ASCUWG55.js.map +0 -1
  436. package/dist/chunk-ASHXIAJO.js.map +0 -1
  437. package/dist/chunk-BAFDSAWY.js +0 -86
  438. package/dist/chunk-BAFDSAWY.js.map +0 -1
  439. package/dist/chunk-DGMDQHMI.js.map +0 -1
  440. package/dist/chunk-F7JTIHV5.js.map +0 -1
  441. package/dist/chunk-GJFAI3J5.js.map +0 -1
  442. package/dist/chunk-H5ZTIELC.js.map +0 -1
  443. package/dist/chunk-K4L42FF6.js.map +0 -1
  444. package/dist/chunk-KCDNOMMT.js.map +0 -1
  445. package/dist/chunk-LODMNSLR.js.map +0 -1
  446. package/dist/chunk-NHEWST3N.js.map +0 -1
  447. package/dist/chunk-U5SH3VRJ.js.map +0 -1
  448. package/dist/chunk-UFNIS7KC.js.map +0 -1
  449. package/dist/chunk-WFAJTO2B.js.map +0 -1
  450. package/dist/chunk-XZJM6EPC.js.map +0 -1
  451. package/dist/chunk-ZEYUSS3W.js.map +0 -1
  452. /package/dist/{chunk-YPIVLPXF.js.map → chunk-33NBMNTB.js.map} +0 -0
  453. /package/dist/{chunk-JE6GQB5J.js.map → chunk-4Z2HIHA5.js.map} +0 -0
  454. /package/dist/{chunk-FHW3ATT7.js.map → chunk-53HQNN3C.js.map} +0 -0
  455. /package/dist/{chunk-53O2TNSR.js.map → chunk-5DAVXZPY.js.map} +0 -0
  456. /package/dist/{chunk-DH5UJD2I.js.map → chunk-5FHPZOYK.js.map} +0 -0
  457. /package/dist/{chunk-NSVSC6ZC.js.map → chunk-5PJM772Y.js.map} +0 -0
  458. /package/dist/{chunk-VYM2GPR6.js.map → chunk-5PTCT3LF.js.map} +0 -0
  459. /package/dist/{chunk-ZH2SZ6B3.js.map → chunk-652PYSML.js.map} +0 -0
  460. /package/dist/{chunk-PEOOCQ2T.js.map → chunk-6IRJAIS4.js.map} +0 -0
  461. /package/dist/{chunk-PAT2BQOQ.js.map → chunk-6IWO7CM2.js.map} +0 -0
  462. /package/dist/{chunk-YFODI4KT.js.map → chunk-6WZUZHJM.js.map} +0 -0
  463. /package/dist/{chunk-QEI5DC6S.js.map → chunk-7KJOODQB.js.map} +0 -0
  464. /package/dist/{chunk-6ZD3FI5P.js.map → chunk-AOFI3GDS.js.map} +0 -0
  465. /package/dist/{chunk-H72YKEGD.js.map → chunk-AOKLEE64.js.map} +0 -0
  466. /package/dist/{chunk-RDFPM2AQ.js.map → chunk-BJGUDLWZ.js.map} +0 -0
  467. /package/dist/{chunk-X66E5WSX.js.map → chunk-C4QKXFZN.js.map} +0 -0
  468. /package/dist/{chunk-OJUORFGO.js.map → chunk-C6JUGWAU.js.map} +0 -0
  469. /package/dist/{chunk-DLWLIPCP.js.map → chunk-CKFZQQ6T.js.map} +0 -0
  470. /package/dist/{chunk-Z2NN53E5.js.map → chunk-DCT2PKMQ.js.map} +0 -0
  471. /package/dist/{chunk-G6ZPQHBL.js.map → chunk-DSHM7VN6.js.map} +0 -0
  472. /package/dist/{chunk-WV62BSWA.js.map → chunk-F5BYZNXY.js.map} +0 -0
  473. /package/dist/{chunk-RDZGXJOD.js.map → chunk-F5GXWK6B.js.map} +0 -0
  474. /package/dist/{chunk-4Z7GEO2R.js.map → chunk-G7RYAWPZ.js.map} +0 -0
  475. /package/dist/{chunk-4S2LWZ7L.js.map → chunk-GO6XDMBB.js.map} +0 -0
  476. /package/dist/{chunk-KHOAXZW2.js.map → chunk-H3GYVR7S.js.map} +0 -0
  477. /package/dist/{chunk-C6OVO6AT.js.map → chunk-I6MVJWUO.js.map} +0 -0
  478. /package/dist/{chunk-4XHVGUOM.js.map → chunk-J2SFOLGZ.js.map} +0 -0
  479. /package/dist/{chunk-7TE4TMS3.js.map → chunk-JSOJKHEI.js.map} +0 -0
  480. /package/dist/{chunk-ZNBLGS66.js.map → chunk-K62RHTFB.js.map} +0 -0
  481. /package/dist/{chunk-6N2EDWMG.js.map → chunk-KWU62UPM.js.map} +0 -0
  482. /package/dist/{chunk-CJ45OL7L.js.map → chunk-M2GVHVE4.js.map} +0 -0
  483. /package/dist/{chunk-MEBQKYH4.js.map → chunk-MBNXCCRG.js.map} +0 -0
  484. /package/dist/{chunk-UT73NGRS.js.map → chunk-MLUUF7OZ.js.map} +0 -0
  485. /package/dist/{chunk-KW3H5FUS.js.map → chunk-MPYIEIBA.js.map} +0 -0
  486. /package/dist/{chunk-DFI2RKVQ.js.map → chunk-MRWYKNBY.js.map} +0 -0
  487. /package/dist/{chunk-HFVYWHJT.js.map → chunk-NYT3UVOH.js.map} +0 -0
  488. /package/dist/{chunk-YWJDUJAR.js.map → chunk-O6IF4BZT.js.map} +0 -0
  489. /package/dist/{chunk-3UEZ6NUI.js.map → chunk-OCQ6GDCF.js.map} +0 -0
  490. /package/dist/{chunk-JAGAFEZL.js.map → chunk-OD3L6GX5.js.map} +0 -0
  491. /package/dist/{chunk-RPBGUWNF.js.map → chunk-ON4TRXCM.js.map} +0 -0
  492. /package/dist/{chunk-TZASFX6G.js.map → chunk-P53KRCKW.js.map} +0 -0
  493. /package/dist/{chunk-NOLSQK4J.js.map → chunk-PGV2FLE3.js.map} +0 -0
  494. /package/dist/{chunk-C2TERIB4.js.map → chunk-QSNLIWEB.js.map} +0 -0
  495. /package/dist/{chunk-2DWBJJK6.js.map → chunk-RBGUS7WO.js.map} +0 -0
  496. /package/dist/{chunk-XZY7O7JJ.js.map → chunk-RHKT2XW2.js.map} +0 -0
  497. /package/dist/{chunk-4SHMSLFA.js.map → chunk-RRG75JJS.js.map} +0 -0
  498. /package/dist/{chunk-6MD5QXXJ.js.map → chunk-RWRPF24F.js.map} +0 -0
  499. /package/dist/{chunk-VPAOVEI2.js.map → chunk-SJGYMI6Y.js.map} +0 -0
  500. /package/dist/{chunk-EQXIW5MQ.js.map → chunk-TCMH3FXD.js.map} +0 -0
  501. /package/dist/{chunk-STTULW2K.js.map → chunk-TE3XYCX7.js.map} +0 -0
  502. /package/dist/{chunk-TJ3334AJ.js.map → chunk-TMW7RBW7.js.map} +0 -0
  503. /package/dist/{chunk-VCBV5JM7.js.map → chunk-VNOXUWK7.js.map} +0 -0
  504. /package/dist/{chunk-IVJKILIX.js.map → chunk-VZ4VAQX3.js.map} +0 -0
  505. /package/dist/{chunk-IWGW2E35.js.map → chunk-WF4XK5AS.js.map} +0 -0
  506. /package/dist/{chunk-6REPQ352.js.map → chunk-WL7IG7TT.js.map} +0 -0
  507. /package/dist/{chunk-5QAJ3Y5F.js.map → chunk-XQWUVQ2F.js.map} +0 -0
  508. /package/dist/{chunk-U67ZQ6VM.js.map → chunk-YIWVHEPW.js.map} +0 -0
  509. /package/dist/{chunk-DH77PLFF.js.map → chunk-YTVXT5TD.js.map} +0 -0
  510. /package/dist/{chunk-MKLIMY3D.js.map → chunk-YZHX2HTC.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/Lightbox/Lightbox.tsx"],"sourcesContent":["import Dialog from '@mui/material/Dialog/index.js';\nimport Fade from '@mui/material/Fade/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { makeTestId } from './Lightbox.constants';\nimport { resolveLightboxProps } from './Lightbox.helpers';\nimport { LightboxCopyProvider } from './lightbox-copy-context';\nimport type { LightboxProps, LightboxRef } from './Lightbox.types';\nimport { LightboxCurrentMedia } from './LightboxCurrentMedia';\nimport { LightboxOverlay } from './LightboxOverlay';\nimport { LightboxStage } from './LightboxStage';\nimport { LightboxThumbnails } from './LightboxThumbnails';\nimport { useLightbox } from './useLightbox';\nimport { scrim } from '../../../tokens/ink';\nimport { rem, sxRem } from '../../../tokens/relative';\n\nconst DIALOG_STATIC_PROPS = {\n maxWidth: false,\n fullScreen: true,\n TransitionComponent: Fade,\n TransitionProps: { timeout: 300 },\n PaperProps: { sx: { background: (theme: Theme) => scrim(theme, 0.9), backdropFilter: (theme: Theme) => `blur(${rem(theme, 2)})` } },\n // `aria-labelledby` is the one accessible name for the modal itself: MUI\n // forwards it (with `aria-modal` and its own `role=\"dialog\"`) onto the\n // Paper, the element that is actually the WAI-ARIA dialog. A plain\n // `aria-label` alongside it would land on the OUTER root instead — a\n // second, non-modal `role=\"dialog\"` this component sets of its own accord\n // — duplicating (and, as a static English literal, contradicting) the name\n // the Paper already carries.\n 'aria-labelledby': 'lightbox-title',\n role: 'dialog',\n 'aria-modal': 'true',\n} as const;\n\nexport const Lightbox = React.forwardRef<LightboxRef, LightboxProps>((componentProps, ref) => {\n const props = resolveLightboxProps(componentProps);\n const { isOpen, items, loop, autoplay, showControls, showCaptions, thumbnails, zoomable } = props;\n const { className, style, dataTestId } = props;\n\n const testId = makeTestId(dataTestId);\n const lightbox = useLightbox(props, ref);\n const { currentIndex, currentItem, zoom } = lightbox;\n\n return (\n <LightboxCopyProvider copy={props.copy}>\n <Dialog\n open={isOpen}\n onClose={lightbox.close}\n {...DIALOG_STATIC_PROPS}\n className={className}\n style={style}\n onTouchStart={lightbox.handleTouchStart}\n onTouchEnd={lightbox.handleTouchEnd}\n data-testid={dataTestId || 'lightbox'}\n >\n {/* Visually hidden title for screen readers */}\n <Typography id=\"lightbox-title\" variant=\"h6\" sx={{ position: 'absolute', left: sxRem(-10000) }}>\n {props.copy.dialogLabel} - {currentItem?.alt || props.copy.itemPosition(currentIndex + 1, items.length)}\n </Typography>\n\n <LightboxOverlay\n testId={testId}\n itemCount={items.length}\n currentIndex={currentIndex}\n showControls={showControls}\n loop={loop}\n autoplay={autoplay}\n canZoom={lightbox.canZoom}\n isAutoPlaying={lightbox.isAutoPlaying}\n onClose={lightbox.close}\n onPrev={lightbox.prev}\n onNext={lightbox.next}\n onZoomIn={zoom.zoomIn}\n onZoomOut={zoom.zoomOut}\n onResetZoom={zoom.resetZoom}\n onToggleAutoplay={() => lightbox.setIsAutoPlaying((playing) => !playing)}\n />\n\n <LightboxStage\n items={items}\n currentItem={currentItem}\n currentIndex={currentIndex}\n isLoading={lightbox.isLoading}\n showCaptions={showCaptions}\n thumbnails={thumbnails}\n testId={testId}\n media={\n <LightboxCurrentMedia\n item={currentItem}\n index={currentIndex}\n total={items.length}\n zoomable={zoomable}\n zoom={zoom}\n testId={testId}\n onLoadingChange={lightbox.setIsLoading}\n onWheel={lightbox.handleWheel}\n />\n }\n thumbnailStrip={\n thumbnails &&\n items.length > 1 && (\n <LightboxThumbnails\n items={items}\n currentIndex={currentIndex}\n testId={testId}\n onSelect={lightbox.goToIndex}\n />\n )\n }\n />\n </Dialog>\n </LightboxCopyProvider>\n );\n});\n\nLightbox.displayName = 'Lightbox';\n\nexport default Lightbox;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,YAAY;AACnB,OAAO,UAAU;AACjB,OAAO,gBAAgB;AAEvB,OAAO,WAAW;AAsDZ,SAIA,KAJA;AAxCN,IAAM,sBAAsB;AAAA,EAC1B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,qBAAqB;AAAA,EACrB,iBAAiB,EAAE,SAAS,IAAI;AAAA,EAChC,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,UAAiB,MAAM,OAAO,GAAG,GAAG,gBAAgB,CAAC,UAAiB,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlI,mBAAmB;AAAA,EACnB,MAAM;AAAA,EACN,cAAc;AAChB;AAEO,IAAM,WAAW,MAAM,WAAuC,CAAC,gBAAgB,QAAQ;AAC5F,QAAM,QAAQ,qBAAqB,cAAc;AACjD,QAAM,EAAE,QAAQ,OAAO,MAAM,UAAU,cAAc,cAAc,YAAY,SAAS,IAAI;AAC5F,QAAM,EAAE,WAAW,OAAO,WAAW,IAAI;AAEzC,QAAM,SAAS,WAAW,UAAU;AACpC,QAAM,WAAW,YAAY,OAAO,GAAG;AACvC,QAAM,EAAE,cAAc,aAAa,KAAK,IAAI;AAE5C,SACE,oBAAC,wBAAqB,MAAM,MAAM,MAClC;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,SAAS,SAAS;AAAA,MACjB,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,cAAc,SAAS;AAAA,MACvB,YAAY,SAAS;AAAA,MACrB,eAAa,cAAc;AAAA,MAG3B;AAAA,6BAAC,cAAW,IAAG,kBAAiB,SAAQ,MAAK,IAAI,EAAE,UAAU,YAAY,MAAM,MAAM,IAAM,EAAE,GAC1F;AAAA,gBAAM,KAAK;AAAA,UAAY;AAAA,UAAI,aAAa,OAAO,MAAM,KAAK,aAAa,eAAe,GAAG,MAAM,MAAM;AAAA,WACxG;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAW,MAAM;AAAA,YACjB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,SAAS,SAAS;AAAA,YAClB,eAAe,SAAS;AAAA,YACxB,SAAS,SAAS;AAAA,YAClB,QAAQ,SAAS;AAAA,YACjB,QAAQ,SAAS;AAAA,YACjB,UAAU,KAAK;AAAA,YACf,WAAW,KAAK;AAAA,YAChB,aAAa,KAAK;AAAA,YAClB,kBAAkB,MAAM,SAAS,iBAAiB,CAAC,YAAY,CAAC,OAAO;AAAA;AAAA,QACzE;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA,WAAW,SAAS;AAAA,YACpB;AAAA,YACA;AAAA,YACA;AAAA,YACA,OACE;AAAA,cAAC;AAAA;AAAA,gBACC,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,OAAO,MAAM;AAAA,gBACb;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,iBAAiB,SAAS;AAAA,gBAC1B,SAAS,SAAS;AAAA;AAAA,YACpB;AAAA,YAEF,gBACE,cACA,MAAM,SAAS,KACb;AAAA,cAAC;AAAA;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,UAAU,SAAS;AAAA;AAAA,YACrB;AAAA;AAAA,QAGN;AAAA;AAAA;AAAA,EACF,GACA;AAEJ,CAAC;AAED,SAAS,cAAc;AAEvB,IAAO,mBAAQ;","names":[]}
@@ -1,11 +1,11 @@
1
- import {
2
- useLightboxCopy
3
- } from "./chunk-TEQYTEM2.js";
4
1
  import {
5
2
  OVERLAY_Z_INDEX,
6
3
  navButtonSx,
7
4
  overlayButtonSx
8
5
  } from "./chunk-3KA6MYIR.js";
6
+ import {
7
+ useLightboxCopy
8
+ } from "./chunk-TEQYTEM2.js";
9
9
  import {
10
10
  sxRem
11
11
  } from "./chunk-YKCAJ2TN.js";
@@ -156,4 +156,4 @@ export {
156
156
  LightboxZoomControls,
157
157
  LightboxAutoplayButton
158
158
  };
159
- //# sourceMappingURL=chunk-TZASFX6G.js.map
159
+ //# sourceMappingURL=chunk-P53KRCKW.js.map
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-6DPAWXZ3.js";
16
16
  import {
17
17
  Text
18
- } from "./chunk-MKLIMY3D.js";
18
+ } from "./chunk-YZHX2HTC.js";
19
19
  import {
20
20
  fieldHeight
21
21
  } from "./chunk-M47ZOUGF.js";
@@ -199,4 +199,4 @@ export {
199
199
  fieldClearing,
200
200
  MoreGroup
201
201
  };
202
- //# sourceMappingURL=chunk-NOLSQK4J.js.map
202
+ //# sourceMappingURL=chunk-PGV2FLE3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  uiThemeFromMui
3
- } from "./chunk-ZH2SZ6B3.js";
3
+ } from "./chunk-652PYSML.js";
4
4
 
5
5
  // src/provider/use-ui-theme.ts
6
6
  import { useTheme } from "@mui/material/styles/index.js";
@@ -13,4 +13,4 @@ function useUiTheme() {
13
13
  export {
14
14
  useUiTheme
15
15
  };
16
- //# sourceMappingURL=chunk-C2TERIB4.js.map
16
+ //# sourceMappingURL=chunk-QSNLIWEB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LightboxMedia
3
- } from "./chunk-ASCUWG55.js";
3
+ } from "./chunk-IOCY5G43.js";
4
4
 
5
5
  // src/components/data-display/Lightbox/LightboxCurrentMedia.tsx
6
6
  import { jsx } from "react/jsx-runtime";
@@ -37,4 +37,4 @@ var LightboxCurrentMedia = ({
37
37
  export {
38
38
  LightboxCurrentMedia
39
39
  };
40
- //# sourceMappingURL=chunk-2DWBJJK6.js.map
40
+ //# sourceMappingURL=chunk-RBGUS7WO.js.map
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-K6LNHHSH.js";
20
20
  import {
21
21
  Text
22
- } from "./chunk-MKLIMY3D.js";
22
+ } from "./chunk-YZHX2HTC.js";
23
23
 
24
24
  // src/components/data-display/DataViews/ManageViewsDialog.tsx
25
25
  import { useMemo } from "react";
@@ -128,4 +128,4 @@ function ManageViewsDialog({
128
128
  export {
129
129
  ManageViewsDialog
130
130
  };
131
- //# sourceMappingURL=chunk-XZY7O7JJ.js.map
131
+ //# sourceMappingURL=chunk-RHKT2XW2.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-6DPAWXZ3.js";
7
7
  import {
8
8
  Text
9
- } from "./chunk-MKLIMY3D.js";
9
+ } from "./chunk-YZHX2HTC.js";
10
10
  import {
11
11
  sxRem
12
12
  } from "./chunk-YKCAJ2TN.js";
@@ -184,4 +184,4 @@ function MoveButton({
184
184
  export {
185
185
  ColumnsTab
186
186
  };
187
- //# sourceMappingURL=chunk-4SHMSLFA.js.map
187
+ //# sourceMappingURL=chunk-RRG75JJS.js.map
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  ColumnsTab
3
- } from "./chunk-4SHMSLFA.js";
3
+ } from "./chunk-RRG75JJS.js";
4
4
  import {
5
5
  DisplayTab,
6
6
  SortTab
7
- } from "./chunk-VPAOVEI2.js";
7
+ } from "./chunk-SJGYMI6Y.js";
8
8
  import {
9
9
  ViewActions,
10
10
  ViewFooter,
11
11
  ViewHeader,
12
12
  ViewsList
13
- } from "./chunk-YPIVLPXF.js";
13
+ } from "./chunk-33NBMNTB.js";
14
14
  import {
15
15
  useDataViewsCopy
16
16
  } from "./chunk-KHG57NAE.js";
@@ -265,4 +265,4 @@ function DataViewsDisplayPanel({
265
265
  export {
266
266
  DataViewsDisplayPanel
267
267
  };
268
- //# sourceMappingURL=chunk-6MD5QXXJ.js.map
268
+ //# sourceMappingURL=chunk-RWRPF24F.js.map
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-YLGY3D52.js";
9
9
  import {
10
10
  useDataViewsLayout
11
- } from "./chunk-XZJM6EPC.js";
11
+ } from "./chunk-HUAQQ5ZL.js";
12
12
  import {
13
13
  useDataViewsCopy
14
14
  } from "./chunk-KHG57NAE.js";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-6DPAWXZ3.js";
18
18
  import {
19
19
  Text
20
- } from "./chunk-MKLIMY3D.js";
20
+ } from "./chunk-YZHX2HTC.js";
21
21
  import {
22
22
  sxRem
23
23
  } from "./chunk-YKCAJ2TN.js";
@@ -246,4 +246,4 @@ export {
246
246
  SortTab,
247
247
  DisplayTab
248
248
  };
249
- //# sourceMappingURL=chunk-VPAOVEI2.js.map
249
+ //# sourceMappingURL=chunk-SJGYMI6Y.js.map
@@ -0,0 +1,92 @@
1
+ import {
2
+ thumbnailStripSx
3
+ } from "./chunk-3KA6MYIR.js";
4
+ import {
5
+ useLightboxCopy
6
+ } from "./chunk-TEQYTEM2.js";
7
+ import {
8
+ onMedia,
9
+ sheen
10
+ } from "./chunk-FQ6UW7IY.js";
11
+ import {
12
+ rem,
13
+ sxRem
14
+ } from "./chunk-YKCAJ2TN.js";
15
+
16
+ // src/components/data-display/Lightbox/LightboxThumbnails.tsx
17
+ import PlayIcon from "@mui/icons-material/PlayArrow";
18
+ import Box from "@mui/material/Box/index.js";
19
+ import { jsx } from "react/jsx-runtime";
20
+ var THUMB = { widthPx: 60, heightPx: 40 };
21
+ var frame = (theme, color) => `${rem(theme, 2)} solid ${color}`;
22
+ var VideoThumbnail = () => /* @__PURE__ */ jsx(
23
+ Box,
24
+ {
25
+ sx: {
26
+ width: "100%",
27
+ height: "100%",
28
+ background: (theme) => sheen(theme, 0.1),
29
+ display: "flex",
30
+ alignItems: "center",
31
+ justifyContent: "center"
32
+ },
33
+ children: /* @__PURE__ */ jsx(PlayIcon, { sx: { color: onMedia, fontSize: sxRem(16) } })
34
+ }
35
+ );
36
+ var LightboxThumbnails = ({
37
+ items,
38
+ currentIndex,
39
+ testId,
40
+ onSelect
41
+ }) => {
42
+ const copy = useLightboxCopy();
43
+ return /* @__PURE__ */ jsx(
44
+ Box,
45
+ {
46
+ sx: {
47
+ ...thumbnailStripSx,
48
+ position: "absolute",
49
+ bottom: sxRem(16),
50
+ left: "50%",
51
+ transform: "translateX(-50%)",
52
+ display: "flex",
53
+ gap: 1,
54
+ maxWidth: "90vw",
55
+ overflowX: "auto",
56
+ padding: 1
57
+ },
58
+ "data-testid": testId("thumbnails"),
59
+ children: items.map((item, index) => /* @__PURE__ */ jsx(
60
+ Box,
61
+ {
62
+ onClick: () => onSelect(index),
63
+ sx: {
64
+ width: sxRem(THUMB.widthPx),
65
+ height: sxRem(THUMB.heightPx),
66
+ cursor: "pointer",
67
+ border: (theme) => frame(theme, currentIndex === index ? onMedia(theme) : "transparent"),
68
+ borderRadius: 0.5,
69
+ overflow: "hidden",
70
+ flexShrink: 0,
71
+ "&:hover": { border: (theme) => frame(theme, sheen(theme, 0.7)) }
72
+ },
73
+ "data-testid": testId(`thumbnail-${index}`),
74
+ children: item.type === "video" ? /* @__PURE__ */ jsx(VideoThumbnail, {}) : /* @__PURE__ */ jsx(
75
+ "img",
76
+ {
77
+ src: item.src,
78
+ alt: item.alt || copy.thumbnailFallback(index + 1),
79
+ style: { width: "100%", height: "100%", objectFit: "cover" }
80
+ }
81
+ )
82
+ },
83
+ `${item.src}-${index}`
84
+ ))
85
+ }
86
+ );
87
+ };
88
+
89
+ export {
90
+ LightboxThumbnails
91
+ };
92
+ //# sourceMappingURL=chunk-SV4FYSDL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/Lightbox/LightboxThumbnails.tsx"],"sourcesContent":["import PlayIcon from '@mui/icons-material/PlayArrow';\nimport Box from '@mui/material/Box/index.js';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport { thumbnailStripSx } from './Lightbox.constants';\nimport { useLightboxCopy } from './lightbox-copy-context';\nimport type { LightboxItem } from './Lightbox.types';\nimport { onMedia, sheen } from '../../../tokens/ink';\nimport { rem, sxRem } from '../../../tokens/relative';\n\n/** One filmstrip frame, in design px. */\nconst THUMB = { widthPx: 60, heightPx: 40 } as const;\n\nconst frame = (theme: Theme, color: string): string => `${rem(theme, 2)} solid ${color}`;\n\nconst VideoThumbnail: FC = () => (\n <Box\n sx={{\n width: '100%',\n height: '100%',\n background: (theme: Theme) => sheen(theme, 0.1),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <PlayIcon sx={{ color: onMedia, fontSize: sxRem(16) }} />\n </Box>\n);\n\nexport interface LightboxThumbnailsProps {\n items: LightboxItem[];\n currentIndex: number;\n testId: (suffix: string) => string;\n onSelect: (index: number) => void;\n}\n\nexport const LightboxThumbnails: FC<LightboxThumbnailsProps> = ({\n items,\n currentIndex,\n testId,\n onSelect,\n}) => {\n const copy = useLightboxCopy();\n return (\n <Box\n sx={{\n ...thumbnailStripSx,\n position: 'absolute',\n bottom: sxRem(16),\n left: '50%',\n transform: 'translateX(-50%)',\n display: 'flex',\n gap: 1,\n maxWidth: '90vw',\n overflowX: 'auto',\n padding: 1,\n }}\n data-testid={testId('thumbnails')}\n >\n {items.map((item, index) => (\n <Box\n key={`${item.src}-${index}`}\n onClick={() => onSelect(index)}\n sx={{\n width: sxRem(THUMB.widthPx),\n height: sxRem(THUMB.heightPx),\n cursor: 'pointer',\n border: (theme: Theme) => frame(theme, currentIndex === index ? onMedia(theme) : 'transparent'),\n borderRadius: 0.5,\n overflow: 'hidden',\n flexShrink: 0,\n '&:hover': { border: (theme: Theme) => frame(theme, sheen(theme, 0.7)) },\n }}\n data-testid={testId(`thumbnail-${index}`)}\n >\n {item.type === 'video' ? (\n <VideoThumbnail />\n ) : (\n <img\n src={item.src}\n alt={item.alt || copy.thumbnailFallback(index + 1)}\n style={{ width: '100%', height: '100%', objectFit: 'cover' }}\n />\n )}\n </Box>\n ))}\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,cAAc;AACrB,OAAO,SAAS;AA2BZ;AAfJ,IAAM,QAAQ,EAAE,SAAS,IAAI,UAAU,GAAG;AAE1C,IAAM,QAAQ,CAAC,OAAc,UAA0B,GAAG,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK;AAEtF,IAAM,iBAAqB,MACzB;AAAA,EAAC;AAAA;AAAA,IACC,IAAI;AAAA,MACF,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY,CAAC,UAAiB,MAAM,OAAO,GAAG;AAAA,MAC9C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,IAClB;AAAA,IAEA,8BAAC,YAAS,IAAI,EAAE,OAAO,SAAS,UAAU,MAAM,EAAE,EAAE,GAAG;AAAA;AACzD;AAUK,IAAM,qBAAkD,CAAC;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,OAAO,gBAAgB;AAC7B,SACA;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,QACF,GAAG;AAAA,QACH,UAAU;AAAA,QACV,QAAQ,MAAM,EAAE;AAAA,QAChB,MAAM;AAAA,QACN,WAAW;AAAA,QACX,SAAS;AAAA,QACT,KAAK;AAAA,QACL,UAAU;AAAA,QACV,WAAW;AAAA,QACX,SAAS;AAAA,MACX;AAAA,MACA,eAAa,OAAO,YAAY;AAAA,MAE/B,gBAAM,IAAI,CAAC,MAAM,UAChB;AAAA,QAAC;AAAA;AAAA,UAEC,SAAS,MAAM,SAAS,KAAK;AAAA,UAC7B,IAAI;AAAA,YACF,OAAO,MAAM,MAAM,OAAO;AAAA,YAC1B,QAAQ,MAAM,MAAM,QAAQ;AAAA,YAC5B,QAAQ;AAAA,YACR,QAAQ,CAAC,UAAiB,MAAM,OAAO,iBAAiB,QAAQ,QAAQ,KAAK,IAAI,aAAa;AAAA,YAC9F,cAAc;AAAA,YACd,UAAU;AAAA,YACV,YAAY;AAAA,YACZ,WAAW,EAAE,QAAQ,CAAC,UAAiB,MAAM,OAAO,MAAM,OAAO,GAAG,CAAC,EAAE;AAAA,UACzE;AAAA,UACA,eAAa,OAAO,aAAa,KAAK,EAAE;AAAA,UAEvC,eAAK,SAAS,UACb,oBAAC,kBAAe,IAEhB;AAAA,YAAC;AAAA;AAAA,cACC,KAAK,KAAK;AAAA,cACV,KAAK,KAAK,OAAO,KAAK,kBAAkB,QAAQ,CAAC;AAAA,cACjD,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,WAAW,QAAQ;AAAA;AAAA,UAC7D;AAAA;AAAA,QArBG,GAAG,KAAK,GAAG,IAAI,KAAK;AAAA,MAuB3B,CACD;AAAA;AAAA,EACH;AAEF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DENSITY_ROW_PADDING
3
- } from "./chunk-XZJM6EPC.js";
3
+ } from "./chunk-HUAQQ5ZL.js";
4
4
  import {
5
5
  CellConfigProvider,
6
6
  cellTracks
@@ -129,4 +129,4 @@ export {
129
129
  cellRailCount,
130
130
  ListCardGroup
131
131
  };
132
- //# sourceMappingURL=chunk-EQXIW5MQ.js.map
132
+ //# sourceMappingURL=chunk-TCMH3FXD.js.map
@@ -5,7 +5,7 @@ import {
5
5
  getColorFromTheme,
6
6
  getSizeStyles,
7
7
  pulseAnimation
8
- } from "./chunk-6REPQ352.js";
8
+ } from "./chunk-WL7IG7TT.js";
9
9
  import {
10
10
  progressLabelText,
11
11
  resolveProgressProps
@@ -243,4 +243,4 @@ Progress.displayName = "Progress";
243
243
  export {
244
244
  Progress
245
245
  };
246
- //# sourceMappingURL=chunk-STTULW2K.js.map
246
+ //# sourceMappingURL=chunk-TE3XYCX7.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  MoreGroup,
3
3
  fieldClearing
4
- } from "./chunk-NOLSQK4J.js";
4
+ } from "./chunk-PGV2FLE3.js";
5
5
  import {
6
6
  useDataViewsCopy
7
7
  } from "./chunk-KHG57NAE.js";
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-K6LNHHSH.js";
14
14
  import {
15
15
  Text
16
- } from "./chunk-MKLIMY3D.js";
16
+ } from "./chunk-YZHX2HTC.js";
17
17
  import {
18
18
  rem,
19
19
  sxRem
@@ -184,4 +184,4 @@ function MoreFilters({
184
184
  export {
185
185
  MoreFilters
186
186
  };
187
- //# sourceMappingURL=chunk-TJ3334AJ.js.map
187
+ //# sourceMappingURL=chunk-TMW7RBW7.js.map
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  processRows
3
3
  } from "./chunk-G3E66C6J.js";
4
+ import {
5
+ useDensity
6
+ } from "./chunk-DJKVSUXH.js";
4
7
  import {
5
8
  rem,
6
9
  remPx
@@ -19,6 +22,11 @@ function densityHeight(base, density) {
19
22
  if (density === "spacious") return base * 1.2;
20
23
  return base;
21
24
  }
25
+ function mapThemeToGridDensity(level) {
26
+ if (level === "compact") return "compact";
27
+ if (level === "comfortable") return "spacious";
28
+ return "comfortable";
29
+ }
22
30
  function useProcessedRows(props, columnMap, sortBy, filters) {
23
31
  const { rows, filtering = {}, sorting = {}, pagination, virtualizeRows = true } = props;
24
32
  const pageIndex = pagination?.pageIndex ?? 0;
@@ -156,10 +164,12 @@ function useSortAndFilter(props) {
156
164
  function useDataGridModel(props) {
157
165
  const { columns } = props;
158
166
  const theme = useTheme();
167
+ const themeDensity = useDensity();
159
168
  const containerRef = useRef(null);
160
169
  const [editingCell, setEditingCell] = useState(null);
161
170
  const { sortBy, filters, setInternalSortBy } = useSortAndFilter(props);
162
- const designRowHeight = densityHeight(props.rowHeight ?? 52, props.density);
171
+ const density = props.density ?? mapThemeToGridDensity(themeDensity.level ?? "normal");
172
+ const designRowHeight = densityHeight(props.rowHeight ?? 52, density);
163
173
  const rowPitch = remPx(theme, designRowHeight);
164
174
  const columnMap = useMemo(
165
175
  () => new Map(columns.map((column) => [column.id, column])),
@@ -172,6 +182,7 @@ function useDataGridModel(props) {
172
182
  const onSort = useSortHandler(props, sortBy, filters, setInternalSortBy);
173
183
  return {
174
184
  containerRef,
185
+ density,
175
186
  rowHeight: rem(theme, designRowHeight),
176
187
  rowPitch,
177
188
  visibleColumns,
@@ -189,6 +200,7 @@ function useDataGridModel(props) {
189
200
  }
190
201
 
191
202
  export {
203
+ mapThemeToGridDensity,
192
204
  useDataGridModel
193
205
  };
194
- //# sourceMappingURL=chunk-DGMDQHMI.js.map
206
+ //# sourceMappingURL=chunk-U6DOF5CR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataGrid/DataGrid.model.ts"],"sourcesContent":["/**\n * The DataGrid's STATE, in one hook.\n *\n * The component used to hold all of it inline, which made its body 700 lines\n * long and put the row pipeline, the virtualization window and the JSX in one\n * scope where any of them could reach any other. Split out, each piece is a\n * hook with named inputs and the render is left with nothing to do but render.\n *\n * Controlled/uncontrolled is resolved in ONE place per feature: a caller that\n * passes `sorting.sortBy` owns the sort, and a caller that does not gets the\n * internal state — the component never holds a second, divergent copy.\n */\nimport { useTheme } from '@mui/material/styles/index.js';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type React from 'react';\n\nimport { rem, remPx } from '../../../tokens/relative';\nimport { useDensity, type DensityLevel } from '../../../tokens/density';\n\nimport { processRows } from './DataGrid.rows';\nimport type {\n DataGridProps,\n GridColumn,\n GridDensity,\n GridFilter,\n GridSort,\n SortDirection,\n} from './DataGrid.types';\n\nconst DEFAULT_PAGE_SIZE = 50;\n/** Rows rendered on either side of the window, so a fast scroll stays filled. */\nconst OVERSCAN_COUNT = 20;\n/** Below this many rows, virtualization costs more than it saves. */\nconst VIRTUALIZATION_THRESHOLD = 100;\n/** The initial (and reset) window size, before a scroll has measured anything. */\nconst INITIAL_WINDOW = 50;\n/** Re-window only past this much drift, so a scroll is not one setState per pixel. */\nconst WINDOW_DRIFT = 5;\n\n/** Which id is being edited, or `null`. */\nexport interface EditingCell {\n rowId: string | number;\n colId: string;\n}\n\n/** The visible slice of a virtualized body. */\nexport interface VisibleRange {\n start: number;\n end: number;\n}\n\n/** Everything the render needs, and nothing it has to derive. */\nexport interface DataGridModel<T extends Record<string, unknown>> {\n containerRef: React.RefObject<HTMLDivElement | null>;\n /**\n * The density this render actually used: `props.density`, else the\n * theme-driven default (FUT-2769, {@link mapThemeToGridDensity}). The same\n * value `rowHeight` was scaled by — read it here rather than re-deriving it,\n * so the reported default and the geometry can never disagree.\n */\n density: GridDensity;\n /** A row's height as CSS: the design height, density applied, through `rem`. */\n rowHeight: string;\n /**\n * The same height in px (`remPx`) — what the window divides `scrollTop` by.\n * One design number drawn two ways, so the rows and the window never disagree.\n */\n rowPitch: number;\n visibleColumns: GridColumn<T>[];\n processedRows: T[];\n visibleRows: T[];\n visibleRange: VisibleRange;\n virtualized: boolean;\n sortBy: readonly GridSort[];\n selectedRowIds: Array<string | number>;\n selectedRowIdsSet: ReadonlySet<string | number>;\n expandedRowIdsSet: ReadonlySet<string | number>;\n editingCell: EditingCell | null;\n setEditingCell: (cell: EditingCell | null) => void;\n setSelectedRowIds: (ids: Array<string | number>) => void;\n onSort: (columnId: string) => void;\n onToggleRow: (rowId: string | number, isSelected: boolean) => void;\n onToggleExpansion: (rowId: string | number) => void;\n onScroll: (event: React.UIEvent<HTMLDivElement>) => void;\n}\n\n/** The row height a density implies, in design px. */\nfunction densityHeight(base: number, density: DataGridProps['density']): number {\n if (density === 'compact') return Math.max(base * 0.8, 32);\n if (density === 'spacious') return base * 1.2;\n return base;\n}\n\n/**\n * The theme's density level, aliased to `GridDensity` (FUT-2769 — umbrella\n * Decision 7, non-breaking): `GridDensity`'s three names are not the theme's\n * three names, so this is an alias table rather than a verbatim read.\n * `'normal'` (the theme's own default, and what a theme with no density at\n * all resolves to) maps to `'comfortable'` — today's literal default,\n * unchanged — so the mapping is a no-op exactly when nothing about density\n * has been said.\n */\nexport function mapThemeToGridDensity(level: DensityLevel): GridDensity {\n if (level === 'compact') return 'compact';\n if (level === 'comfortable') return 'spacious';\n return 'comfortable';\n}\n\n/** The rows this render should show, with every client-mode step resolved. */\nfunction useProcessedRows<T extends Record<string, unknown>>(\n props: DataGridProps<T>,\n columnMap: ReadonlyMap<string, GridColumn<T>>,\n sortBy: readonly GridSort[],\n filters: readonly GridFilter[],\n): T[] {\n const { rows, filtering = {}, sorting = {}, pagination, virtualizeRows = true } = props;\n const pageIndex = pagination?.pageIndex ?? 0;\n const pageSize = pagination?.pageSize ?? DEFAULT_PAGE_SIZE;\n return useMemo(\n () =>\n processRows({\n rows,\n columnMap,\n filters,\n sortBy,\n needsFiltering: filtering.mode === 'client' && filters.length > 0,\n needsSorting: sorting.mode === 'client' && sortBy.length > 0,\n // Virtualization already slices; doing both would page a page.\n needsPagination: pagination?.mode === 'client' && !virtualizeRows,\n pageIndex,\n pageSize,\n }),\n [\n rows,\n columnMap,\n filters,\n sortBy,\n filtering.mode,\n sorting.mode,\n pagination?.mode,\n virtualizeRows,\n pageIndex,\n pageSize,\n ],\n );\n}\n\n/**\n * The virtualization window and the scroll handler that moves it. `rowPitch` is\n * px, like the `scrollTop` and `clientHeight` it is divided into.\n *\n * Throttled through `requestAnimationFrame`, and only committed once the window\n * has drifted meaningfully — a `setState` per scroll event re-renders every\n * visible row for a movement the eye cannot see.\n */\nfunction useRowWindow(\n rowCount: number,\n rowPitch: number,\n enabled: boolean,\n): { range: VisibleRange; onScroll: (event: React.UIEvent<HTMLDivElement>) => void } {\n const [range, setRange] = useState<VisibleRange>({ start: 0, end: INITIAL_WINDOW });\n const rafRef = useRef<number | null>(null);\n\n useEffect(() => {\n if (rowCount < range.end) setRange({ start: 0, end: Math.min(INITIAL_WINDOW, rowCount) });\n }, [rowCount, range.end]);\n\n useEffect(\n () => () => {\n if (rafRef.current !== null) window.cancelAnimationFrame(rafRef.current);\n },\n [],\n );\n\n const onScroll = useCallback(\n (event: React.UIEvent<HTMLDivElement>) => {\n if (!enabled) return;\n const { scrollTop, clientHeight } = event.currentTarget;\n if (rafRef.current !== null) window.cancelAnimationFrame(rafRef.current);\n rafRef.current = window.requestAnimationFrame(() => {\n const first = Math.floor(scrollTop / rowPitch);\n const visible = Math.ceil(clientHeight / rowPitch);\n const start = Math.max(0, first - OVERSCAN_COUNT);\n const end = Math.min(first + visible + OVERSCAN_COUNT, rowCount);\n setRange((current) =>\n Math.abs(start - current.start) > WINDOW_DRIFT ||\n Math.abs(end - current.end) > WINDOW_DRIFT\n ? { start, end }\n : current,\n );\n rafRef.current = null;\n });\n },\n [enabled, rowPitch, rowCount],\n );\n\n return { range, onScroll };\n}\n\n/** The next `sortBy` for a header press: asc → desc → unsorted. */\nfunction nextSortBy(current: readonly GridSort[], columnId: string): GridSort[] {\n const existing = current.find((sort) => sort.id === columnId);\n let dir: SortDirection = 'asc';\n if (existing?.dir === 'asc') dir = 'desc';\n else if (existing?.dir === 'desc') dir = null;\n return dir ? [{ id: columnId, dir }] : current.filter((sort) => sort.id !== columnId);\n}\n\n/** Selection + expansion, each resolved once against its controlled prop. */\nfunction useRowFlags<T extends Record<string, unknown>>(\n props: DataGridProps<T>,\n): Pick<\n DataGridModel<T>,\n | 'selectedRowIds'\n | 'selectedRowIdsSet'\n | 'expandedRowIdsSet'\n | 'setSelectedRowIds'\n | 'onToggleRow'\n | 'onToggleExpansion'\n> {\n const { selection = { mode: 'none' }, expansion } = props;\n const [internalSelected, setInternalSelected] = useState(selection.defaultSelectedRowIds ?? []);\n const [internalExpanded, setInternalExpanded] = useState(expansion?.defaultExpandedRowIds ?? []);\n const selectedRowIds = selection.selectedRowIds ?? internalSelected;\n const expandedRowIds = expansion?.expandedRowIds ?? internalExpanded;\n\n const commitSelected = useCallback(\n (ids: Array<string | number>) => {\n if (selection.onChangeSelected) selection.onChangeSelected(ids);\n else setInternalSelected(ids);\n },\n [selection],\n );\n\n return {\n selectedRowIds,\n selectedRowIdsSet: useMemo(() => new Set(selectedRowIds), [selectedRowIds]),\n expandedRowIdsSet: useMemo(() => new Set(expandedRowIds), [expandedRowIds]),\n setSelectedRowIds: commitSelected,\n onToggleRow: (rowId, isSelected) => {\n if (selection.mode === 'single') commitSelected(isSelected ? [rowId] : []);\n else if (selection.mode === 'multi') {\n commitSelected(\n isSelected\n ? [...selectedRowIds, rowId]\n : selectedRowIds.filter((id) => id !== rowId),\n );\n }\n },\n onToggleExpansion: (rowId) => {\n if (!expansion) return;\n const next = expandedRowIds.includes(rowId)\n ? expandedRowIds.filter((id) => id !== rowId)\n : [...expandedRowIds, rowId];\n if (expansion.onChangeExpanded) expansion.onChangeExpanded(next);\n else setInternalExpanded(next);\n },\n };\n}\n\n/**\n * A header press, routed to whoever owns the sort: the server (which must\n * re-query — sorting the current page locally would reorder one page of a\n * dataset and call it sorted), the caller's `onChangeSortBy`, or internal state.\n */\nfunction useSortHandler<T extends Record<string, unknown>>(\n props: DataGridProps<T>,\n sortBy: readonly GridSort[],\n filters: readonly GridFilter[],\n setInternalSortBy: (next: GridSort[]) => void,\n): (columnId: string) => void {\n const { sorting = {}, pagination, onRequestData } = props;\n return useCallback(\n (columnId: string) => {\n const next = nextSortBy(sortBy, columnId);\n if (sorting.mode === 'server' && onRequestData) {\n onRequestData({\n pageIndex: pagination?.pageIndex ?? 0,\n pageSize: pagination?.pageSize ?? DEFAULT_PAGE_SIZE,\n sortBy: next,\n filters: [...filters],\n });\n return;\n }\n if (sorting.onChangeSortBy) sorting.onChangeSortBy(next);\n else setInternalSortBy(next);\n },\n [sortBy, sorting, onRequestData, pagination, filters, setInternalSortBy],\n );\n}\n\n/**\n * Sort and filter, each resolved ONCE against its controlled prop: a caller\n * that passes `sorting.sortBy` owns the sort, and one that does not gets the\n * internal state. The grid never holds a second, divergent copy.\n */\nfunction useSortAndFilter<T extends Record<string, unknown>>(\n props: DataGridProps<T>,\n): {\n sortBy: readonly GridSort[];\n filters: readonly GridFilter[];\n setInternalSortBy: (next: GridSort[]) => void;\n} {\n const { sorting = {}, filtering = {} } = props;\n const [internalSortBy, setInternalSortBy] = useState<GridSort[]>(sorting.defaultSortBy ?? []);\n const [internalFilters] = useState<GridFilter[]>(filtering.defaultFilters ?? []);\n return {\n sortBy: sorting.sortBy ?? internalSortBy,\n filters: filtering.filters ?? internalFilters,\n setInternalSortBy,\n };\n}\n\nexport function useDataGridModel<T extends Record<string, unknown>>(\n props: DataGridProps<T>,\n): DataGridModel<T> {\n const { columns } = props;\n const theme = useTheme();\n const themeDensity = useDensity();\n const containerRef = useRef<HTMLDivElement>(null);\n const [editingCell, setEditingCell] = useState<EditingCell | null>(null);\n const { sortBy, filters, setInternalSortBy } = useSortAndFilter(props);\n // An explicit `density` prop wins; otherwise the theme's own level, aliased\n // to this grid's three names (FUT-2769).\n const density = props.density ?? mapThemeToGridDensity(themeDensity.level ?? 'normal');\n // 52 design px unless the caller says; the density scales it, then the type scale does.\n const designRowHeight = densityHeight(props.rowHeight ?? 52, density);\n const rowPitch = remPx(theme, designRowHeight);\n const columnMap = useMemo(\n () => new Map(columns.map((column) => [column.id, column])),\n [columns],\n );\n const visibleColumns = useMemo(() => columns.filter((column) => !column.hidden), [columns]);\n const processedRows = useProcessedRows(props, columnMap, sortBy, filters);\n const virtualized =\n (props.virtualizeRows ?? true) && processedRows.length > VIRTUALIZATION_THRESHOLD;\n const { range, onScroll } = useRowWindow(processedRows.length, rowPitch, virtualized);\n const onSort = useSortHandler(props, sortBy, filters, setInternalSortBy);\n\n return {\n containerRef,\n density,\n rowHeight: rem(theme, designRowHeight),\n rowPitch,\n visibleColumns,\n processedRows,\n visibleRows: virtualized ? processedRows.slice(range.start, range.end) : processedRows,\n visibleRange: range,\n virtualized,\n sortBy,\n editingCell,\n setEditingCell,\n onSort,\n onScroll,\n ...useRowFlags(props),\n };\n}\n"],"mappings":"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","names":[]}
@@ -3,7 +3,10 @@ var EN_US_TUTORIAL_COPY = {
3
3
  skip: "Skip",
4
4
  previous: "Back",
5
5
  next: "Next",
6
- restart: "Start over"
6
+ restart: "Start over",
7
+ complete: "Complete",
8
+ finish: "Finish",
9
+ requiresAction: "Complete the required action first"
7
10
  };
8
11
  var EN_US_CHROME_COPY = {
9
12
  dismissToast: "Dismiss",
@@ -85,4 +88,4 @@ export {
85
88
  EN_US_CHROME_COPY,
86
89
  EN_US_NOTIFICATION_UNBLOCK_COPY
87
90
  };
88
- //# sourceMappingURL=chunk-ASHXIAJO.js.map
91
+ //# sourceMappingURL=chunk-UGH2DDST.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/en-US.feedback.ts"],"sourcesContent":["/**\n * The en-US pack for the feedback family. Split the same way\n * `pt-BR.feedback.ts` is — see `en-US.ts` for why.\n */\nimport type {\n ChromeCopy,\n NotificationUnblockCopy,\n TutorialCopy,\n} from './copy';\n\nexport const EN_US_TUTORIAL_COPY: TutorialCopy = {\n skip: \"Skip\",\n previous: \"Back\",\n next: \"Next\",\n restart: \"Start over\",\n complete: \"Complete\",\n finish: \"Finish\",\n requiresAction: \"Complete the required action first\",\n};\n\nexport const EN_US_CHROME_COPY: ChromeCopy = {\n dismissToast: \"Dismiss\",\n goBack: \"Back\",\n closePanel: \"Close\",\n closeTab: \"Close tab\",\n scrollRegion: \"Scrollable content\",\n scrollToTop: \"Back to top\",\n share: \"Share\",\n};\n\nconst EN_US_CHROMIUM_DESKTOP = [\n \"Click the icon to the left of the site's address.\",\n \"Open \\\"Site settings\\\".\",\n \"Under \\\"Notifications\\\", choose \\\"Allow\\\".\",\n \"Come back to this page and reload it.\",\n] as const;\n\nconst EN_US_CHROMIUM_ANDROID = [\n \"Tap the icon to the left of the site's address.\",\n \"Tap \\\"Permissions\\\".\",\n \"Tap \\\"Notifications\\\" and choose \\\"Allow\\\".\",\n \"Come back to this page and reload it.\",\n] as const;\n\nexport const EN_US_NOTIFICATION_UNBLOCK_COPY: NotificationUnblockCopy = {\n ios: [\n \"Open the iPhone's Settings.\",\n \"Tap \\\"Notifications\\\".\",\n \"Find this app in the list and turn on \\\"Allow Notifications\\\".\",\n ],\n chrome: { desktop: EN_US_CHROMIUM_DESKTOP, android: EN_US_CHROMIUM_ANDROID },\n edge: {\n desktop: [\n \"Click the lock to the left of the site's address.\",\n \"Open \\\"Permissions for this site\\\".\",\n \"Under \\\"Notifications\\\", choose \\\"Allow\\\".\",\n \"Come back to this page and reload it.\",\n ],\n android: EN_US_CHROMIUM_ANDROID,\n },\n firefox: {\n desktop: [\n \"Click the permissions icon to the left of the site's address.\",\n \"Next to \\\"Send notifications\\\", click the X to clear the block.\",\n \"Reload the page and turn notifications on again.\",\n ],\n android: [\n \"Open the browser menu and tap \\\"Settings\\\".\",\n \"Tap \\\"Site permissions\\\", then \\\"Notifications\\\".\",\n \"Find this site and choose \\\"Allow\\\".\",\n \"Come back to this page and reload it.\",\n ],\n },\n opera: { desktop: EN_US_CHROMIUM_DESKTOP, android: EN_US_CHROMIUM_ANDROID },\n safari: {\n desktop: [\n \"In the Safari menu, open \\\"Settings\\\".\",\n \"Go to the \\\"Websites\\\" tab and pick \\\"Notifications\\\" in the sidebar.\",\n \"Find this site and choose \\\"Allow\\\".\",\n \"Come back to this page and reload it.\",\n ],\n },\n samsung: {\n android: [\n \"Open the browser menu and tap \\\"Settings\\\".\",\n \"Tap \\\"Sites and downloads\\\", then \\\"Notifications\\\".\",\n \"Find this site and allow notifications.\",\n \"Come back to this page and reload it.\",\n ],\n },\n other: [\n \"Open the browser's settings.\",\n \"Look for site permissions, then \\\"Notifications\\\".\",\n \"Allow notifications for this site.\",\n \"Come back to this page and reload it.\",\n ],\n};\n"],"mappings":";AAUO,IAAM,sBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,gBAAgB;AAClB;AAEO,IAAM,oBAAgC;AAAA,EAC3C,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAAA,EACd,aAAa;AAAA,EACb,OAAO;AACT;AAEA,IAAM,yBAAyB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,yBAAyB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,kCAA2D;AAAA,EACtE,KAAK;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,QAAQ,EAAE,SAAS,wBAAwB,SAAS,uBAAuB;AAAA,EAC3E,MAAM;AAAA,IACJ,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,EACX;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO,EAAE,SAAS,wBAAwB,SAAS,uBAAuB;AAAA,EAC1E,QAAQ;AAAA,IACN,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
@@ -1,31 +1,31 @@
1
1
  import {
2
2
  DataViewsBoard
3
- } from "./chunk-4XHVGUOM.js";
3
+ } from "./chunk-J2SFOLGZ.js";
4
4
  import {
5
5
  toGridExpansion
6
6
  } from "./chunk-O5UGAL2V.js";
7
7
  import {
8
8
  SelectAllStrip
9
- } from "./chunk-H72YKEGD.js";
9
+ } from "./chunk-AOKLEE64.js";
10
10
  import {
11
11
  cardGridTracks
12
12
  } from "./chunk-NQ7NMCRI.js";
13
13
  import {
14
14
  ListCardGroup
15
- } from "./chunk-EQXIW5MQ.js";
15
+ } from "./chunk-TCMH3FXD.js";
16
16
  import {
17
17
  DENSITY_BOARD_SCALE,
18
18
  DENSITY_ROW_PADDING,
19
19
  cardScaleForZoom,
20
20
  cardTargetWidthFor,
21
21
  useDataViewsLayout
22
- } from "./chunk-XZJM6EPC.js";
22
+ } from "./chunk-HUAQQ5ZL.js";
23
23
  import {
24
24
  useDataViewsCopy
25
25
  } from "./chunk-KHG57NAE.js";
26
26
  import {
27
27
  DataGrid
28
- } from "./chunk-ZEYUSS3W.js";
28
+ } from "./chunk-Z6LTEJ7F.js";
29
29
  import {
30
30
  default as default2
31
31
  } from "./chunk-6DPAWXZ3.js";
@@ -79,7 +79,8 @@ function GridBody({
79
79
  expansion: toGridExpansion(rowDetail, copy),
80
80
  "data-testid": dataTestId,
81
81
  emptyState,
82
- emptyText: copy.grid.emptyFilteredTitle
82
+ emptyText: copy.grid.emptyFilteredTitle,
83
+ copy: copy.grid
83
84
  }
84
85
  )
85
86
  }
@@ -273,4 +274,4 @@ function GridMain(props) {
273
274
  export {
274
275
  GridMain
275
276
  };
276
- //# sourceMappingURL=chunk-LODMNSLR.js.map
277
+ //# sourceMappingURL=chunk-UP7SSTCZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataViews/data-views-grid-bodies.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\nimport { DataGrid, type GridColumn, type GridSort } from \"../DataGrid\";\nimport { Box } from \"../../../mui/Box\";\n\nimport {\n cardTargetWidthFor,\n cardScaleForZoom,\n DENSITY_BOARD_SCALE,\n DENSITY_ROW_PADDING,\n useDataViewsLayout,\n type DataViewsDensity,\n} from \"./data-views-layout-context\";\nimport { cardGridTracks } from \"./data-views-grid-helpers\";\nimport { DataViewsBoard, type BoardConfig } from \"./DataViewsBoard\";\nimport { SelectAllStrip } from \"./data-views-select-all-strip\";\nimport { ListCardGroup, type ListGroupConfig } from \"./list-card-rails\";\nimport type { DataViewCardSelection } from \"./data-views-types\";\nimport { toGridExpansion, type DataViewRowDetail } from \"./data-views-row-detail\";\nimport type { DataViewsController } from \"./use-data-views-state\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { sxRem } from \"../../../tokens/relative\";\n\n/* ── Body (grid) ─────────────────────────────────────────────────────────── */\n\ninterface GridBodyProps<T extends Record<string, unknown>> {\n rows: T[];\n columns: GridColumn<T>[];\n getRowId: (row: T) => string | number;\n selectedIds: Array<string | number>;\n onChangeSelected: (ids: Array<string | number>) => void;\n sortBy: GridSort[];\n onChangeSortBy: (next: GridSort[]) => void;\n /** \"server\" defers ordering to the backend (rows render as-is); \"client\" sorts in-grid. */\n sortMode: \"client\" | \"server\";\n /** Vertical cell padding, from the density preference. */\n rowPadding: number;\n rowDetail?: DataViewRowDetail<T>;\n dataTestId?: string;\n emptyState?: React.ReactNode;\n}\n\n/** The dense DataGrid with multi-select, wrapped in the scrollable table region. */\nfunction GridBody<T extends Record<string, unknown>>({\n rows,\n columns,\n getRowId,\n selectedIds,\n onChangeSelected,\n sortBy,\n onChangeSortBy,\n sortMode,\n rowPadding,\n rowDetail,\n dataTestId,\n emptyState,\n}: GridBodyProps<T>): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <Box\n sx={{\n width: \"100%\",\n overflowX: \"auto\",\n mt: 1.5,\n // Tabwoah-style dense rows: MUI's default TableCell padding keeps rows\n // tall regardless of rowHeight, so the DENSITY preference is applied\n // here rather than through `rowHeight`, which it would fight.\n \"& .MuiTableCell-root\": { py: rowPadding, fontSize: sxRem(13) },\n \"& .MuiTableCell-head\": { py: 0.5, fontSize: sxRem(12) },\n }}\n >\n <DataGrid<T>\n rows={rows}\n columns={columns}\n getRowId={(row) => getRowId(row)}\n virtualizeRows={false}\n density=\"compact\"\n rowHeight={36}\n headerHeight={36}\n selection={{ mode: \"multi\", selectedRowIds: selectedIds, onChangeSelected }}\n sorting={{ mode: sortMode, sortBy, onChangeSortBy }}\n expansion={toGridExpansion(rowDetail, copy)}\n data-testid={dataTestId}\n emptyState={emptyState}\n emptyText={copy.grid.emptyFilteredTitle}\n copy={copy.grid}\n />\n </Box>\n );\n}\n\n/* ── Body (cards) ────────────────────────────────────────────────────────── */\n\ninterface CardBodyProps<T extends Record<string, unknown>> {\n rows: T[];\n renderCard: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n getRowId: (row: T) => string | number;\n selectedIds: Set<string | number>;\n onToggleId: (id: string | number) => void;\n /** The width each card asks for; `auto-fill` turns it into a column count. */\n targetCardWidth: number;\n /** Content scale (padding + type) handed to each card, from the zoom slider. */\n cardScale: number;\n dataTestId?: string;\n emptyState?: React.ReactNode;\n}\n\n/**\n * The \"Grade\" layout: the filtered/sorted rows rendered as an auto-filling grid\n * of entity-supplied cards. Reuses `rows` (= `c.matched`), so search/filter/sort\n * apply; the column width comes from the zoom slider, and each card is handed its\n * selection state so it can drive its own checkbox (BaseCard) — the same\n * selection model as the table.\n */\nfunction CardBody<T extends Record<string, unknown>>({\n rows,\n renderCard,\n getRowId,\n selectedIds,\n onToggleId,\n targetCardWidth,\n cardScale,\n dataTestId,\n emptyState,\n}: CardBodyProps<T>): React.JSX.Element {\n if (rows.length === 0) {\n return <Box sx={{ mt: 1.5 }}>{emptyState}</Box>;\n }\n return (\n <Box\n sx={{\n mt: 1.5,\n display: \"grid\",\n // Fixed inter-card gap — deliberately NOT scaled by the zoom slider, so\n // only the cards grow while the space between them stays constant.\n gap: 1.5,\n ...cardGridTracks(targetCardWidth),\n }}\n data-testid={dataTestId ? `${dataTestId}-cards` : \"data-views-cards\"}\n >\n {rows.map((row) => {\n const id = getRowId(row);\n return (\n <Box key={id}>\n {renderCard(row, {\n selected: selectedIds.has(id),\n onToggleSelect: () => onToggleId(id),\n scale: cardScale,\n })}\n </Box>\n );\n })}\n </Box>\n );\n}\n\n/* ── Body (list) ─────────────────────────────────────────────────────────── */\n\ninterface ListBodyProps<T extends Record<string, unknown>> {\n rows: T[];\n renderListRow: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n getRowId: (row: T) => string | number;\n selectedIds: Set<string | number>;\n onToggleId: (id: string | number) => void;\n /** Gap between rows, from the density preference. */\n rowGap: number;\n /** The list's shared column config. See {@link ListGroupConfig}. */\n group?: ListGroupConfig<T>;\n /** The density every row answers, handed to the group when there is one. */\n density: DataViewsDensity;\n dataTestId?: string;\n emptyState?: React.ReactNode;\n}\n\n/**\n * The \"Lista\" layout: one FULL-WIDTH row per record, rendered by the entity — a\n * marker, a title, a subtitle and a value on the right is the shape it was\n * designed for (FUT-733).\n *\n * It sits between the table and the cards rather than replacing either: the\n * table is for comparing many columns, the cards are for browsing, and the list\n * is for scanning a queue on a narrow screen. Selection is the SAME model as\n * both — each row receives its selection state, so it can drive its own\n * checkbox and the bulk menu behaves identically in every layout.\n *\n * `scale` is handed over as 1 rather than the zoom multiplier, and the zoom\n * slider is hidden in this layout: a full-width row has no card size to\n * multiply. See {@link DataViewsZoomSlider}.\n */\nfunction ListBody<T extends Record<string, unknown>>({\n rows,\n renderListRow,\n getRowId,\n selectedIds,\n onToggleId,\n rowGap,\n group,\n density,\n dataTestId,\n emptyState,\n}: ListBodyProps<T>): React.JSX.Element {\n if (rows.length === 0) {\n return <Box sx={{ mt: 1.5 }}>{emptyState}</Box>;\n }\n const testId = dataTestId ? `${dataTestId}-list` : \"data-views-list\";\n const selectionFor = (id: string | number): DataViewCardSelection => ({\n selected: selectedIds.has(id),\n onToggleSelect: () => onToggleId(id),\n scale: 1,\n });\n\n if (group) {\n return (\n <Box sx={{ mt: 1.5 }}>\n <ListCardGroup\n cells={group.cells}\n metaColumns={group.metaColumns}\n rails={group.rails}\n reserveGutters={group.reserveGutters}\n density={density}\n gap={rowGap}\n dataTestId={testId}\n >\n {rows.map((row) => {\n const id = getRowId(row);\n // A FRAGMENT, NOT A BOX. The row is subgrid over the group's tracks\n // (`gridColumn: span railCount`), which only resolves while the card\n // is a DIRECT child of the group's grid. One wrapper element and the\n // span is measured against a grid that isn't there, so every rail\n // collapses — the exact failure the group exists to prevent.\n return (\n <React.Fragment key={id}>\n {renderListRow(row, selectionFor(id))}\n </React.Fragment>\n );\n })}\n </ListCardGroup>\n </Box>\n );\n }\n\n return (\n <Box\n sx={{ mt: 1.5, display: \"flex\", flexDirection: \"column\", gap: rowGap }}\n data-testid={testId}\n >\n {rows.map((row) => {\n const id = getRowId(row);\n return <Box key={id}>{renderListRow(row, selectionFor(id))}</Box>;\n })}\n </Box>\n );\n}\n\n/* ── Body selector (board vs list vs cards vs table, from context) ───────── */\n\ninterface GridMainProps<T extends Record<string, unknown>> {\n c: DataViewsController<T>;\n getRowId: (row: T) => string | number;\n renderCard?: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n /** Opt-in \"Lista\" layout — one full-width row per record. */\n renderListRow?: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n /** The Lista's shared columns. Omitted, each row resolves its own tracks. */\n listGroup?: ListGroupConfig<T>;\n /** Opt-in \"Quadro\" (board) layout — needs `renderCard`, since it reuses the card. */\n board?: BoardConfig<T>;\n /** Opt-in expandable rows — the TABLE only; the headerless layouts ignore it. */\n rowDetail?: DataViewRowDetail<T>;\n dataTestId?: string;\n emptyState?: React.ReactNode;\n testIdPrefix: string;\n}\n\n/**\n * The headerless layouts, each preceded by its own select-all.\n *\n * The strip is rendered HERE rather than inside each body so all three agree on\n * where it sits and what it says — and so the table, which already has one in\n * its `<thead>`, never gets a second.\n */\nfunction Headerless<T extends Record<string, unknown>>({\n c,\n getRowId,\n testIdPrefix,\n children,\n}: {\n c: DataViewsController<T>;\n getRowId: (row: T) => string | number;\n testIdPrefix: string;\n children: React.ReactNode;\n}): React.JSX.Element {\n return (\n <>\n <SelectAllStrip\n rows={c.matched}\n getRowId={getRowId}\n selectedIds={c.selectedIds}\n onChange={(next) => c.setSelectedIds(next)}\n testIdPrefix={testIdPrefix}\n />\n {children}\n </>\n );\n}\n\n/**\n * The body for one of the three HEADERLESS layouts, or `null` for the table.\n *\n * Split out from {@link GridMain} so the select-all strip is wrapped around the\n * result exactly once instead of being repeated identically in every branch —\n * which is also what keeps either function inside the line budget.\n */\nfunction headerlessBody<T extends Record<string, unknown>>(\n { c, getRowId, renderCard, renderListRow, listGroup, board, dataTestId, emptyState }: GridMainProps<T>,\n { layout, zoom, density }: ReturnType<typeof useDataViewsLayout>,\n): React.ReactNode | null {\n if (layout === \"list\" && renderListRow) {\n return (\n <ListBody\n rows={c.matched}\n renderListRow={renderListRow}\n getRowId={getRowId}\n selectedIds={c.selectedIds}\n onToggleId={c.toggleId}\n rowGap={DENSITY_ROW_PADDING[density]}\n group={listGroup}\n density={density}\n dataTestId={dataTestId}\n emptyState={emptyState}\n />\n );\n }\n if (layout === \"board\" && board && renderCard) {\n return (\n <DataViewsBoard\n rows={c.matched}\n board={board}\n getRowId={getRowId}\n renderCard={renderCard}\n selectedIds={c.selectedIds}\n onToggleId={c.toggleId}\n // DENSITY, not zoom: the board's own knob in the Exibição tab is how\n // wide its columns are, and it is the only sizing control the board\n // has since the zoom slider was removed.\n cardScale={DENSITY_BOARD_SCALE[density]}\n dataTestId={dataTestId}\n />\n );\n }\n if (layout === \"cards\" && renderCard) {\n return (\n <CardBody\n rows={c.matched}\n renderCard={renderCard}\n getRowId={getRowId}\n selectedIds={c.selectedIds}\n onToggleId={c.toggleId}\n targetCardWidth={cardTargetWidthFor(zoom, density)}\n cardScale={cardScaleForZoom(zoom)}\n dataTestId={dataTestId}\n emptyState={emptyState}\n />\n );\n }\n return null;\n}\n\n/** Picks the body from the layout context: board, list, cards, or the dense grid. */\nexport function GridMain<T extends Record<string, unknown>>(props: GridMainProps<T>): React.JSX.Element {\n const { c, getRowId, dataTestId, emptyState, testIdPrefix } = props;\n const layoutState = useDataViewsLayout();\n const body = headerlessBody(props, layoutState);\n if (body) {\n return (\n <Headerless c={c} getRowId={getRowId} testIdPrefix={testIdPrefix}>\n {body}\n </Headerless>\n );\n }\n return (\n <GridBody\n rows={c.matched}\n columns={c.gridColumns}\n getRowId={getRowId}\n selectedIds={[...c.selectedIds]}\n onChangeSelected={(ids) => c.setSelectedIds(new Set(ids))}\n sortBy={c.state.sortBy}\n onChangeSortBy={(next: GridSort[]) => c.patch({ sortBy: next })}\n sortMode={c.serverMode ? \"server\" : \"client\"}\n rowPadding={DENSITY_ROW_PADDING[layoutState.density]}\n rowDetail={props.rowDetail}\n dataTestId={dataTestId}\n emptyState={emptyState}\n />\n );\n}\n\n"],"mappings":"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","names":["default"]}
@@ -179,6 +179,7 @@ var StackedView = ({
179
179
  phases,
180
180
  percentages,
181
181
  data,
182
+ copy,
182
183
  animated,
183
184
  showLabels,
184
185
  showTooltips
@@ -205,10 +206,7 @@ var StackedView = ({
205
206
  }) }),
206
207
  /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", justifyContent: "space-between", mt: 1 }, children: [
207
208
  /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "text.secondary", children: "0ms" }),
208
- /* @__PURE__ */ jsxs(Typography, { variant: "caption", color: "text.secondary", fontWeight: "bold", children: [
209
- "Total: ",
210
- formatTime(data.total)
211
- ] })
209
+ /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "text.secondary", fontWeight: "bold", children: copy.total(formatTime(data.total)) })
212
210
  ] })
213
211
  ] });
214
212
  };
@@ -267,6 +265,7 @@ var HorizontalView = ({
267
265
  phases,
268
266
  percentages,
269
267
  data,
268
+ copy,
270
269
  animated
271
270
  }) => {
272
271
  const theme = useTheme();
@@ -287,10 +286,7 @@ var HorizontalView = ({
287
286
  },
288
287
  phase.key
289
288
  )),
290
- /* @__PURE__ */ jsx(Box, { sx: { mt: 2, pt: 2, borderTop: `1px solid ${alpha(theme.palette.divider, 0.2)}` }, children: /* @__PURE__ */ jsxs(Typography, { variant: "body2", fontWeight: "bold", color: "primary", children: [
291
- "Total Time: ",
292
- formatTime(data.total)
293
- ] }) })
289
+ /* @__PURE__ */ jsx(Box, { sx: { mt: 2, pt: 2, borderTop: `1px solid ${alpha(theme.palette.divider, 0.2)}` }, children: /* @__PURE__ */ jsx(Typography, { variant: "body2", fontWeight: "bold", color: "primary", children: copy.totalTime(formatTime(data.total)) }) })
294
290
  ] });
295
291
  };
296
292
 
@@ -301,4 +297,4 @@ export {
301
297
  StackedView,
302
298
  HorizontalView
303
299
  };
304
- //# sourceMappingURL=chunk-WFAJTO2B.js.map
300
+ //# sourceMappingURL=chunk-UVFZQCC7.js.map