@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
@@ -5,6 +5,8 @@ import { alpha, styled } from '@mui/material/styles/index.js';
5
5
  import type { FC } from 'react';
6
6
  import React, { useMemo } from 'react';
7
7
 
8
+ import type { TimingDiagramCopy } from '../../../copy';
9
+
8
10
  import type { TimingData, TimingDiagramProps } from './TimingDiagram.types';
9
11
  import type { Phase, PhaseKey, TimingViewProps } from './TimingDiagram.views';
10
12
  import {
@@ -63,13 +65,13 @@ const calculatePercentages = (data: TimingData): Record<string, number> => {
63
65
 
64
66
  // A phase with no recorded time never happened — an HTTP request has no SSL
65
67
  // handshake, for instance — so it gets no bar and no legend entry.
66
- const phasesOf = (data: TimingData): Phase[] =>
68
+ const phasesOf = (data: TimingData, copy: TimingDiagramCopy): Phase[] =>
67
69
  [
68
- { key: 'dns', label: 'DNS Lookup', value: data.dns },
69
- { key: 'connect', label: 'Connection', value: data.connect },
70
- { key: 'ssl', label: 'SSL/TLS', value: data.ssl },
71
- { key: 'request', label: 'Request', value: data.request },
72
- { key: 'response', label: 'Response', value: data.response },
70
+ { key: 'dns', label: copy.dns, value: data.dns },
71
+ { key: 'connect', label: copy.connect, value: data.connect },
72
+ { key: 'ssl', label: copy.ssl, value: data.ssl },
73
+ { key: 'request', label: copy.request, value: data.request },
74
+ { key: 'response', label: copy.response, value: data.response },
73
75
  ].filter((phase) => phase.value !== undefined && phase.value > 0);
74
76
 
75
77
  const VIEWS: Record<string, FC<TimingViewProps>> = {
@@ -89,7 +91,7 @@ export const TimingDiagram: FC<TimingDiagramProps> = ({
89
91
  variant = 'waterfall',
90
92
  }) => {
91
93
  const percentages = useMemo(() => calculatePercentages(data), [data]);
92
- const phases = phasesOf(data);
94
+ const phases = phasesOf(data, copy);
93
95
  const View = VIEWS[variant];
94
96
 
95
97
  return (
@@ -103,6 +105,7 @@ export const TimingDiagram: FC<TimingDiagramProps> = ({
103
105
  phases={phases}
104
106
  percentages={percentages}
105
107
  data={data}
108
+ copy={copy}
106
109
  animated={animated}
107
110
  showLabels={showLabels}
108
111
  showTooltips={showTooltips}
@@ -7,6 +7,7 @@ import type { FC, ReactElement } from 'react';
7
7
  import React from 'react';
8
8
 
9
9
  import type { TimingData } from './TimingDiagram.types';
10
+ import type { TimingDiagramCopy } from '../../../copy';
10
11
  import { onMedia, sheen, uiInk } from '../../../tokens/ink';
11
12
  import { rem, rems } from '../../../tokens/relative';
12
13
 
@@ -34,6 +35,7 @@ export interface TimingViewProps {
34
35
  phases: Phase[];
35
36
  percentages: Record<string, number>;
36
37
  data: TimingData;
38
+ copy: TimingDiagramCopy;
37
39
  animated: boolean;
38
40
  showLabels: boolean;
39
41
  showTooltips: boolean;
@@ -227,6 +229,7 @@ export const StackedView: FC<TimingViewProps> = ({
227
229
  phases,
228
230
  percentages,
229
231
  data,
232
+ copy,
230
233
  animated,
231
234
  showLabels,
232
235
  showTooltips,
@@ -260,7 +263,7 @@ export const StackedView: FC<TimingViewProps> = ({
260
263
  0ms
261
264
  </Typography>
262
265
  <Typography variant="caption" color="text.secondary" fontWeight="bold">
263
- Total: {formatTime(data.total)}
266
+ {copy.total(formatTime(data.total))}
264
267
  </Typography>
265
268
  </Box>
266
269
  </Box>
@@ -328,6 +331,7 @@ export const HorizontalView: FC<TimingViewProps> = ({
328
331
  phases,
329
332
  percentages,
330
333
  data,
334
+ copy,
331
335
  animated,
332
336
  }) => {
333
337
  const theme = useTheme();
@@ -352,7 +356,7 @@ export const HorizontalView: FC<TimingViewProps> = ({
352
356
  ))}
353
357
  <Box sx={{ mt: 2, pt: 2, borderTop: `1px solid ${alpha(theme.palette.divider, 0.2)}` }}>
354
358
  <Typography variant="body2" fontWeight="bold" color="primary">
355
- Total Time: {formatTime(data.total)}
359
+ {copy.totalTime(formatTime(data.total))}
356
360
  </Typography>
357
361
  </Box>
358
362
  </HorizontalBar>
@@ -109,7 +109,7 @@ const TutorialStepNav: React.FC<{
109
109
  endIcon={<NextIcon />}
110
110
  onClick={onNext}
111
111
  disabled={requiresActionBeforeNext}
112
- title={requiresActionBeforeNext ? 'Complete the required action first' : ''}
112
+ title={requiresActionBeforeNext ? copy.requiresAction : ''}
113
113
  data-testid="tutorial-next-button"
114
114
  >
115
115
  {copy.next}
@@ -126,7 +126,7 @@ const TutorialStepNav: React.FC<{
126
126
  }}
127
127
  data-testid="tutorial-finish-button"
128
128
  >
129
- {stepCount === 1 ? 'Complete' : 'Finish'}
129
+ {stepCount === 1 ? copy.complete : copy.finish}
130
130
  </Button>
131
131
  )}
132
132
  </Stack>
@@ -52,24 +52,32 @@ export interface DashboardHeaderProps {
52
52
 
53
53
  /** Props for `<Dashboard.Info>` — an `[i]` popover summarising the page. */
54
54
  export interface DashboardInfoProps {
55
- /** Popover heading. Defaults to `"About this page"`. */
56
- title?: ReactNode;
55
+ /** Popover heading. REQUIRED — the fallback was the English "About this page". */
56
+ title: ReactNode;
57
57
  /** Popover body content. */
58
58
  children: ReactNode;
59
- /** Accessible label for the trigger. Defaults to `"Page information"`. */
60
- ariaLabel?: string;
59
+ /** Accessible label for the trigger. REQUIRED — the fallback was the English "Page information". */
60
+ ariaLabel: string;
61
61
  }
62
62
 
63
63
  /** Props for `<Dashboard.FilterToggle>` — the funnel icon. */
64
64
  export interface DashboardFilterToggleProps {
65
- /** Accessible label. Defaults to a show/hide string based on state. */
66
- ariaLabel?: string;
65
+ /**
66
+ * Accessible label while `<Dashboard.Filters>` is expanded. REQUIRED — the
67
+ * fallback was the English "Hide filters".
68
+ */
69
+ hideLabel: string;
70
+ /**
71
+ * Accessible label while `<Dashboard.Filters>` is collapsed. REQUIRED — the
72
+ * fallback was the English "Show filters".
73
+ */
74
+ showLabel: string;
67
75
  }
68
76
 
69
77
  /** Shared props for both modes of `<Dashboard.Settings>`. */
70
78
  interface DashboardSettingsBaseProps {
71
- /** Accessible label for the trigger. Defaults to `"Settings"`. */
72
- ariaLabel?: string;
79
+ /** Accessible label for the trigger. REQUIRED — the fallback was the English "Settings". */
80
+ ariaLabel: string;
73
81
  }
74
82
 
75
83
  /**
@@ -79,8 +87,8 @@ interface DashboardSettingsBaseProps {
79
87
  export interface DashboardSettingsDialogProps extends DashboardSettingsBaseProps {
80
88
  /** The dialog's close button — a glyph with no visible label. REQUIRED. */
81
89
  closeLabel: string;
82
- /** Dialog title. Defaults to `"Settings"`. */
83
- title?: ReactNode;
90
+ /** Dialog title. REQUIRED — the fallback was the English "Settings". */
91
+ title: ReactNode;
84
92
  /** Dialog body. */
85
93
  children: ReactNode;
86
94
  href?: never;
@@ -132,8 +140,10 @@ export interface DashboardExportProps {
132
140
  formats?: DashboardExportFormat[];
133
141
  /** Invoked with the chosen format id. */
134
142
  onExport: (formatId: string) => void;
135
- /** Button label. Defaults to `"Export"`. */
136
- label?: ReactNode;
143
+ /**
144
+ * Button label. REQUIRED — the fallback was the English "Export" (FUT-2568).
145
+ */
146
+ label: ReactNode;
137
147
  }
138
148
 
139
149
  /** Props for `<Dashboard.Action>` — a slot for a primary/secondary button. */
@@ -38,9 +38,9 @@ export const DashboardSpacer = (): React.JSX.Element => <Box sx={{ flex: 1 }} ar
38
38
  DashboardSpacer.displayName = 'Dashboard.Spacer';
39
39
 
40
40
  export const DashboardInfo = ({
41
- title = 'About this page',
41
+ title,
42
42
  children,
43
- ariaLabel = 'Page information',
43
+ ariaLabel,
44
44
  }: DashboardInfoProps): React.JSX.Element => {
45
45
  const { testIdPrefix } = useDashboardContext();
46
46
  const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null);
@@ -78,9 +78,12 @@ export const DashboardInfo = ({
78
78
  };
79
79
  DashboardInfo.displayName = 'Dashboard.Info';
80
80
 
81
- export const DashboardFilterToggle = ({ ariaLabel }: DashboardFilterToggleProps): React.JSX.Element => {
81
+ export const DashboardFilterToggle = ({
82
+ hideLabel,
83
+ showLabel,
84
+ }: DashboardFilterToggleProps): React.JSX.Element => {
82
85
  const { filtersVisible, toggleFilters, activeFilterCount, testIdPrefix } = useDashboardContext();
83
- const label = ariaLabel ?? (filtersVisible ? 'Hide filters' : 'Show filters');
86
+ const label = filtersVisible ? hideLabel : showLabel;
84
87
  return (
85
88
  <Tooltip title={label}>
86
89
  <IconButton
@@ -101,10 +104,10 @@ export const DashboardFilterToggle = ({ ariaLabel }: DashboardFilterToggleProps)
101
104
  DashboardFilterToggle.displayName = 'Dashboard.FilterToggle';
102
105
 
103
106
  export const DashboardSettings = ({
104
- title = 'Settings',
107
+ title,
105
108
  closeLabel,
106
109
  children,
107
- ariaLabel = 'Settings',
110
+ ariaLabel,
108
111
  href,
109
112
  linkComponent,
110
113
  }: DashboardSettingsProps): React.JSX.Element => {
@@ -168,7 +171,7 @@ const DEFAULT_EXPORT_FORMATS: DashboardExportFormat[] = [
168
171
  export const DashboardExport = ({
169
172
  formats = DEFAULT_EXPORT_FORMATS,
170
173
  onExport,
171
- label = 'Export',
174
+ label,
172
175
  }: DashboardExportProps): React.JSX.Element => {
173
176
  const { testIdPrefix } = useDashboardContext();
174
177
  const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);
@@ -24,6 +24,16 @@ export interface LightboxCopy {
24
24
  /** The slideshow toggle, in its two states. */
25
25
  play: string;
26
26
  pause: string;
27
+ /** The dialog's own accessible name, read out before its hidden title. */
28
+ dialogLabel: string;
29
+ /** The hidden title's item count, when the current item has no `alt`. */
30
+ itemPosition: (index: number, total: number) => string;
31
+ /** A `<video>`'s accessible name, when the item has no `alt`. */
32
+ videoFallback: (index: number, total: number) => string;
33
+ /** An `<img>`'s `alt`, when the item has no `alt`. */
34
+ imageFallback: (index: number, total: number) => string;
35
+ /** A filmstrip thumbnail's `alt`, when the item has no `alt`. */
36
+ thumbnailFallback: (index: number) => string;
27
37
  }
28
38
 
29
39
  /** The map preview's control bar — same shape, same reason, as the lightbox. */
@@ -42,10 +52,40 @@ export interface CarouselCopy {
42
52
  next: string;
43
53
  }
44
54
 
45
- /** The request-timing diagram's own two strings. */
55
+ /** The request-timing diagram's own words: its region, its phases, its totals. */
46
56
  export interface TimingDiagramCopy {
47
57
  regionLabel: string;
48
58
  heading: string;
59
+ /** The five phases a waterfall/stacked/horizontal bar can show. */
60
+ dns: string;
61
+ connect: string;
62
+ ssl: string;
63
+ request: string;
64
+ response: string;
65
+ /** The stacked view's own total sentence, e.g. "Total: 1.20s". */
66
+ total: (formatted: string) => string;
67
+ /** The horizontal view's own total sentence, e.g. "Total Time: 1.20s". */
68
+ totalTime: (formatted: string) => string;
69
+ }
70
+
71
+ /**
72
+ * The DataGrid's own words — every one a fallback the caller can still
73
+ * override: `column.ariaLabel`, `expansion.expandLabel`/`collapseLabel` and
74
+ * the grid's own `ariaLabel` all win when given. REQUIRED: the fallbacks were
75
+ * English literals with no way to localise them at all.
76
+ */
77
+ export interface DataGridCopy {
78
+ /** A sortable header button's accessible name, unless the column's own `ariaLabel` wins. */
79
+ sortBy: (header: string) => string;
80
+ /** A row's selection checkbox, unless `selection` is off. */
81
+ selectRow: (rowNumber: number) => string;
82
+ /** The header's select-all checkbox. */
83
+ selectAllRows: string;
84
+ /** The expand chevron's two states, unless `expansion.expandLabel`/`collapseLabel` win. */
85
+ expandRow: string;
86
+ collapseRow: string;
87
+ /** The grid's own accessible name, unless the caller's `ariaLabel` wins. */
88
+ gridLabel: string;
49
89
  }
50
90
 
51
91
  export interface DataStateCopy {
@@ -15,12 +15,18 @@
15
15
  * table, the grid, the async container, the hover card and the infinite
16
16
  * scroller each rendered their own copy of.
17
17
  */
18
- /** The guided tour's four controls, and the toast/modal chrome around it. */
18
+ /** The guided tour's controls, and the toast/modal chrome around it. */
19
19
  export interface TutorialCopy {
20
20
  skip: string;
21
21
  previous: string;
22
22
  next: string;
23
23
  restart: string;
24
+ /** The last step's own next button, when it is the tour's only step. */
25
+ complete: string;
26
+ /** The last step's own next button, in a tour of more than one step. */
27
+ finish: string;
28
+ /** The next/finish button's title while `requiresActionBeforeNext` blocks it. */
29
+ requiresAction: string;
24
30
  }
25
31
 
26
32
  /** Chrome that carries a glyph and no text, across several small surfaces. */
@@ -5,6 +5,7 @@
5
5
  import type { DataViewsCopy } from "./components/data-display/DataViews/data-views-copy";
6
6
  import type {
7
7
  CarouselCopy,
8
+ DataGridCopy,
8
9
  DataStateCopy,
9
10
  LightboxCopy,
10
11
  MapPreviewCopy,
@@ -26,6 +27,20 @@ export const EN_US_LIGHTBOX_COPY: LightboxCopy = {
26
27
  resetZoom: "Reset zoom",
27
28
  play: "Start the slideshow",
28
29
  pause: "Pause the slideshow",
30
+ dialogLabel: "Lightbox",
31
+ itemPosition: (index, total) => `Item ${index} of ${total}`,
32
+ videoFallback: (index, total) => `Video ${index} of ${total}`,
33
+ imageFallback: (index, total) => `Image ${index} of ${total}`,
34
+ thumbnailFallback: (index) => `Thumbnail ${index}`,
35
+ };
36
+
37
+ export const EN_US_DATA_GRID_COPY: DataGridCopy = {
38
+ sortBy: (header) => `Sort by ${header}`,
39
+ selectRow: (rowNumber) => `Select row ${rowNumber}`,
40
+ selectAllRows: "Select all rows",
41
+ expandRow: "Expand row",
42
+ collapseRow: "Collapse row",
43
+ gridLabel: "Data grid",
29
44
  };
30
45
 
31
46
  export const EN_US_MAP_PREVIEW_COPY: MapPreviewCopy = {
@@ -45,6 +60,13 @@ export const EN_US_CAROUSEL_COPY: CarouselCopy = {
45
60
  export const EN_US_TIMING_DIAGRAM_COPY: TimingDiagramCopy = {
46
61
  regionLabel: "Timing diagram",
47
62
  heading: "Request timing",
63
+ dns: "DNS Lookup",
64
+ connect: "Connection",
65
+ ssl: "SSL/TLS",
66
+ request: "Request",
67
+ response: "Response",
68
+ total: (formatted) => `Total: ${formatted}`,
69
+ totalTime: (formatted) => `Total Time: ${formatted}`,
48
70
  };
49
71
 
50
72
  export const EN_US_DATA_STATE_COPY: DataStateCopy = {
@@ -161,6 +183,7 @@ export const EN_US_DATA_VIEWS_COPY: DataViewsCopy = {
161
183
  },
162
184
  tableFilter: EN_US_TABLE_FILTER_COPY,
163
185
  grid: {
186
+ ...EN_US_DATA_GRID_COPY,
164
187
  rowActions: "Actions",
165
188
  bulkActions: (selectedCount) => `Actions (${selectedCount}) ▾`,
166
189
  emptyFilteredTitle: "No results for these filters",
@@ -13,6 +13,9 @@ export const EN_US_TUTORIAL_COPY: TutorialCopy = {
13
13
  previous: "Back",
14
14
  next: "Next",
15
15
  restart: "Start over",
16
+ complete: "Complete",
17
+ finish: "Finish",
18
+ requiresAction: "Complete the required action first",
16
19
  };
17
20
 
18
21
  export const EN_US_CHROME_COPY: ChromeCopy = {
package/src/locales.ts CHANGED
@@ -30,6 +30,7 @@ import type {
30
30
  CodeEditorCopy,
31
31
  CommandPaletteCopy,
32
32
  ConfirmActionCopy,
33
+ DataGridCopy,
33
34
  DataStateCopy,
34
35
  InstallPromptCopy,
35
36
  LightboxCopy,
@@ -69,6 +70,7 @@ export const DATA_STATE_COPY = pack<DataStateCopy>(
69
70
  pt.PT_BR_DATA_STATE_COPY,
70
71
  en.EN_US_DATA_STATE_COPY,
71
72
  );
73
+ export const DATA_GRID_COPY = pack<DataGridCopy>(pt.PT_BR_DATA_GRID_COPY, en.EN_US_DATA_GRID_COPY);
72
74
  export const DATA_VIEWS_COPY = pack<DataViewsCopy>(
73
75
  pt.PT_BR_DATA_VIEWS_COPY,
74
76
  en.EN_US_DATA_VIEWS_COPY,
@@ -5,6 +5,7 @@
5
5
  import type { DataViewsCopy } from "./components/data-display/DataViews/data-views-copy";
6
6
  import type {
7
7
  CarouselCopy,
8
+ DataGridCopy,
8
9
  DataStateCopy,
9
10
  LightboxCopy,
10
11
  MapPreviewCopy,
@@ -26,6 +27,20 @@ export const PT_BR_LIGHTBOX_COPY: LightboxCopy = {
26
27
  resetZoom: "Restaurar o zoom",
27
28
  play: "Iniciar a apresentação",
28
29
  pause: "Pausar a apresentação",
30
+ dialogLabel: "Galeria de imagens",
31
+ itemPosition: (index, total) => `Item ${index} de ${total}`,
32
+ videoFallback: (index, total) => `Vídeo ${index} de ${total}`,
33
+ imageFallback: (index, total) => `Imagem ${index} de ${total}`,
34
+ thumbnailFallback: (index) => `Miniatura ${index}`,
35
+ };
36
+
37
+ export const PT_BR_DATA_GRID_COPY: DataGridCopy = {
38
+ sortBy: (header) => `Ordenar por ${header}`,
39
+ selectRow: (rowNumber) => `Selecionar linha ${rowNumber}`,
40
+ selectAllRows: "Selecionar todas as linhas",
41
+ expandRow: "Expandir linha",
42
+ collapseRow: "Recolher linha",
43
+ gridLabel: "Grade de dados",
29
44
  };
30
45
 
31
46
  export const PT_BR_MAP_PREVIEW_COPY: MapPreviewCopy = {
@@ -45,6 +60,13 @@ export const PT_BR_CAROUSEL_COPY: CarouselCopy = {
45
60
  export const PT_BR_TIMING_DIAGRAM_COPY: TimingDiagramCopy = {
46
61
  regionLabel: "Diagrama de tempos",
47
62
  heading: "Tempo da requisição",
63
+ dns: "Busca de DNS",
64
+ connect: "Conexão",
65
+ ssl: "SSL/TLS",
66
+ request: "Requisição",
67
+ response: "Resposta",
68
+ total: (formatted) => `Total: ${formatted}`,
69
+ totalTime: (formatted) => `Tempo total: ${formatted}`,
48
70
  };
49
71
 
50
72
  export const PT_BR_DATA_STATE_COPY: DataStateCopy = {
@@ -158,6 +180,7 @@ export const PT_BR_DATA_VIEWS_COPY: DataViewsCopy = {
158
180
  },
159
181
  tableFilter: PT_BR_TABLE_FILTER_COPY,
160
182
  grid: {
183
+ ...PT_BR_DATA_GRID_COPY,
161
184
  rowActions: "Ações",
162
185
  bulkActions: (selectedCount) => `Ações (${selectedCount}) ▾`,
163
186
  emptyFilteredTitle: "Nenhum resultado para esses filtros",
@@ -13,6 +13,9 @@ export const PT_BR_TUTORIAL_COPY: TutorialCopy = {
13
13
  previous: "Anterior",
14
14
  next: "Próximo",
15
15
  restart: "Recomeçar",
16
+ complete: "Concluir",
17
+ finish: "Finalizar",
18
+ requiresAction: "Conclua a ação obrigatória primeiro",
16
19
  };
17
20
 
18
21
  export const PT_BR_CHROME_COPY: ChromeCopy = {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/en-US.data-display.ts"],"sourcesContent":["/**\n * The en-US pack for the data-display family. Split the same way\n * `pt-BR.data-display.ts` is — see `en-US.ts` for why.\n */\nimport type { DataViewsCopy } from \"./components/data-display/DataViews/data-views-copy\";\nimport type {\n CarouselCopy,\n DataStateCopy,\n LightboxCopy,\n MapPreviewCopy,\n TimingDiagramCopy,\n} from './copy';\nimport { EN_US_TABLE_FILTER_COPY } from './en-US.layout';\nimport {\n EN_US_CATEGORY_SELECT_COPY,\n EN_US_CONFIRM_ACTION_COPY,\n EN_US_SAVED_VIEWS_LABELS,\n} from './en-US.shared';\n\nexport const EN_US_LIGHTBOX_COPY: LightboxCopy = {\n close: \"Close\",\n previous: \"Previous\",\n next: \"Next\",\n zoomIn: \"Zoom in\",\n zoomOut: \"Zoom out\",\n resetZoom: \"Reset zoom\",\n play: \"Start the slideshow\",\n pause: \"Pause the slideshow\",\n};\n\nexport const EN_US_MAP_PREVIEW_COPY: MapPreviewCopy = {\n zoomIn: \"Zoom in\",\n zoomOut: \"Zoom out\",\n center: \"Centre the map\",\n mapType: \"Change the map type\",\n fullscreen: \"Full screen\",\n search: \"Search for an address\",\n};\n\nexport const EN_US_CAROUSEL_COPY: CarouselCopy = {\n previous: \"Previous\",\n next: \"Next\",\n};\n\nexport const EN_US_TIMING_DIAGRAM_COPY: TimingDiagramCopy = {\n regionLabel: \"Timing diagram\",\n heading: \"Request timing\",\n};\n\nexport const EN_US_DATA_STATE_COPY: DataStateCopy = {\n empty: \"Nothing here\",\n loading: \"Loading…\",\n endOfList: \"No more items to load\",\n dismissAlert: \"Dismiss\",\n dismissBanner: \"Dismiss this banner\",\n};\n\nexport const EN_US_DATA_VIEWS_COPY: DataViewsCopy = {\n savedViewsMenu: EN_US_SAVED_VIEWS_LABELS,\n confirmAction: EN_US_CONFIRM_ACTION_COPY,\n categorySelect: EN_US_CATEGORY_SELECT_COPY,\n board: {\n countOnPage: (label, count) => `${label}: ${count} on this page`,\n onThisPage: (count) => `${count} on this page`,\n pageSum: (sum) => `This page totals ${sum}`,\n emptyColumn: \"Nothing at this stage\",\n pageScopeNote: \"The counts and totals below cover only the items on this page.\",\n },\n deleteView: {\n title: \"Delete view\",\n target: (viewName) => `Delete \"${viewName}\"?`,\n sharedWarning: \"This view is shared — the team will lose access to it.\",\n // `entityLabel` is the HOST's word for what the rows are, so the sentence is\n // built around it rather than naming a noun of its own.\n rowsUnaffected: (entityLabel) =>\n `${entityLabel} are not affected; only the saved slice is removed.`,\n confirm: \"Delete view\",\n cancel: \"Cancel\",\n },\n manageViews: {\n title: \"Manage views\",\n empty: \"No saved views.\",\n edit: \"Edit\",\n defaultTag: \"Default\",\n otherUserTag: \"Another user's\",\n deleteTitle: \"Delete this saved view?\",\n deleteBody: \"The filters and columns it holds are lost. This cannot be undone.\",\n deleteConfirm: \"Delete\",\n },\n saveView: {\n sharedDescription: \"Anyone in the store will be able to open and use this view.\",\n setDefaultTitle: \"Set as default\",\n setDefaultDescription: \"This screen opens on this view instead of the Main view.\",\n previewHeading: \"What this view holds\",\n previewUnchanged: \"Nothing has changed — this view will match the Main view.\",\n sortRowLabel: \"Sorting\",\n saveFailed: \"Could not save the view.\",\n titleEditing: \"Edit view\",\n titleCreating: \"Save view\",\n descriptionLabel: \"Description — optional\",\n descriptionPlaceholder: \"What this view is for\",\n submitEditing: \"Save changes\",\n submitCreating: \"Save view\",\n nameLabel: \"Name\",\n cancel: \"Cancel\",\n pinnedTitle: \"Pin to the sidebar\",\n pinnedDescription: \"Appears as a shortcut in the menu, under this screen.\",\n sharedTitle: \"Share with the team\",\n namePlaceholder: \"e.g. Declined card payments this week\",\n previewFilters: \"Filters\",\n previewHiddenColumns: \"Hidden columns\",\n },\n columns: {\n visibleCount: (visible, total) => `${visible} of ${total} visible`,\n reset: \"Default\",\n showAll: \"Show all\",\n dragHint: \"Drag to reorder the columns.\",\n moveUp: (columnLabel) => `Move ${columnLabel} up`,\n moveDown: (columnLabel) => `Move ${columnLabel} down`,\n },\n display: {\n sortTab: \"Sort\",\n columnsTab: \"Columns\",\n panelTab: \"Display\",\n direction: \"Direction\",\n layoutHints: {\n table: \"Comparable columns, good for scanning numbers.\",\n list: \"One row per item, with the key fields.\",\n cards: \"Larger blocks, good for a handful of items.\",\n board: \"A column per stage, for tracking what is where.\",\n },\n densityHeadings: {\n table: \"Row height\",\n list: \"Row height\",\n cards: \"Cards per row\",\n board: \"Column width\",\n },\n densityLabels: {\n table: { compact: \"Low\", cozy: \"Medium\", comfortable: \"High\" },\n list: { compact: \"Low\", cozy: \"Medium\", comfortable: \"High\" },\n cards: { compact: \"Many\", cozy: \"Some\", comfortable: \"Few\" },\n board: { compact: \"Narrow\", cozy: \"Medium\", comfortable: \"Wide\" },\n },\n boardUnavailable: \"This screen declares no stages, so it offers no board.\",\n densityUnavailableNarrow:\n \"One card per row at this width — density returns on larger screens.\",\n trigger: \"Display\",\n fieldHeading: \"Field\",\n formatHeading: \"Format\",\n cardZoom: \"Card size\",\n },\n export: {\n formats: {\n // The extension is the file's, not a word: it stays as it is written on\n // disk in every language.\n json: { label: \"JSON (.json)\", hint: \"For integrations\" },\n },\n visibleColumns: (columnCount) => `${columnCount} visible columns, in their current order`,\n trigger: \"Export\",\n triggerLabel: \"Export\",\n },\n tableFilter: EN_US_TABLE_FILTER_COPY,\n grid: {\n rowActions: \"Actions\",\n bulkActions: (selectedCount) => `Actions (${selectedCount}) ▾`,\n emptyFilteredTitle: \"No results for these filters\",\n emptyFilteredHint: \"Adjust or remove the filters.\",\n emptyFilteredAction: \"Clear filters\",\n },\n filters: {\n moreFilters: (count) => `More filters: ${count} did not fit in the bar`,\n moreFiltersApplied: (count, appliedCount) =>\n `More filters: ${count} did not fit in the bar, ${appliedCount} applied`,\n moreTriggerLabel: \"More\",\n moreHeading: \"More filters\",\n overflowNote: \"did not fit in the bar\",\n rangeEnd: \"To\",\n rangeInvalid: \"The start must be earlier than the end.\",\n rangeInclusiveNote: \"Both dates are included in the result.\",\n rangeStart: \"From\",\n // The mask is what the reader TYPES, so it follows their own date order\n // rather than being carried over. A translated label above an unchanged\n // mask is the shape that gets a date entered backwards.\n dayMask: \"mm/dd/yyyy\",\n clearAllFilters: \"Clear all filters\",\n // The KEYS are the package's own preset ids and stay as they are — the\n // surface matches on them. Only the labels beside them are words.\n rangePresets: {\n hoje: \"Today\",\n ontem: \"Yesterday\",\n semana: \"This week\",\n mes: \"This month\",\n ano: \"This year\",\n },\n scopesLabel: \"Status\",\n panelTitle: \"Filters\",\n clear: \"Clear\",\n clearAll: \"Clear filters\",\n clearRange: (label) => `Clear ${label}`,\n allOption: \"All\",\n optionSearchPlaceholder: \"Search…\",\n optionsEmpty: \"No results\",\n optionsHeading: \"Options\",\n },\n selection: {\n selectAllOnPage: \"Select all on this page\",\n clearSelection: \"Clear selection\",\n selectAll: \"Select all\",\n onThisPage: (count) => `${count} on this page`,\n selectRow: \"Select\",\n expandRow: \"Expand details\",\n collapseRow: \"Collapse details\",\n },\n nav: {\n mainView: \"Main view\",\n defaultTag: \"Default\",\n viewOptions: (viewName) => `${viewName} options`,\n emptyHint: \"No saved views. Adjust filters, columns or sorting and save below.\",\n setDefault: \"Set as default\",\n deleteView: \"Delete view\",\n unsavedChanges: \"Unsaved changes\",\n label: \"View\",\n update: \"Update view\",\n save: \"Save view\",\n saveAs: \"Save as new\",\n reset: \"Reset\",\n updateFailed: \"Could not update the view\",\n dismissError: \"Dismiss\",\n goBack: \"Back\",\n pageSize: \"Show:\",\n saveFailed: \"Could not save the change to the view.\",\n editView: \"Rename and edit\",\n pinToSidebar: \"Pin to the sidebar\",\n shareWithTeam: \"Share with the team\",\n },\n search: {\n placeholder: \"Search…\",\n allColumnsLabel: \"Search every column\",\n keywordPlaceholder: \"Press Enter to filter\",\n open: \"Search\",\n close: \"Close search\",\n clear: \"Clear search\",\n },\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/TimingDiagram/TimingDiagram.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport Paper from '@mui/material/Paper/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React, { useMemo } from 'react';\n\nimport type { TimingData, TimingDiagramProps } from './TimingDiagram.types';\nimport type { Phase, PhaseKey, TimingViewProps } from './TimingDiagram.views';\nimport {\n HorizontalView,\n phaseColors,\n StackedView,\n WaterfallView,\n} from './TimingDiagram.views';\nimport { rem } from '../../../tokens/relative';\n\n// Styled components\nconst DiagramContainer = styled(Paper)(({ theme }) => ({\n padding: theme.spacing(3),\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.9)} 0%, ${alpha(theme.palette.background.paper, 0.8)} 100%)`,\n backdropFilter: `blur(${rem(theme, 10)})`,\n WebkitBackdropFilter: `blur(${rem(theme, 10)})`,\n border: `1px solid ${alpha(theme.palette.divider, 0.18)}`,\n borderRadius: theme.shape.borderRadius * 2,\n}));\n\nconst Legend = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2),\n marginTop: theme.spacing(2),\n paddingTop: theme.spacing(2),\n borderTop: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n}));\n\nconst LegendItem = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n '& .color': {\n width: rem(theme, 12),\n height: rem(theme, 12),\n borderRadius: rem(theme, 2),\n },\n '& .label': {\n fontSize: rem(theme, 12.8),\n color: theme.palette.text.secondary,\n },\n}));\n\n// Helper functions\nconst calculatePercentages = (data: TimingData): Record<string, number> => {\n const total = data.total || 1;\n return {\n dns: ((data.dns || 0) / total) * 100,\n connect: ((data.connect || 0) / total) * 100,\n ssl: ((data.ssl || 0) / total) * 100,\n request: ((data.request || 0) / total) * 100,\n response: ((data.response || 0) / total) * 100,\n };\n};\n\n// A phase with no recorded time never happened — an HTTP request has no SSL\n// handshake, for instance — so it gets no bar and no legend entry.\nconst phasesOf = (data: TimingData): Phase[] =>\n [\n { key: 'dns', label: 'DNS Lookup', value: data.dns },\n { key: 'connect', label: 'Connection', value: data.connect },\n { key: 'ssl', label: 'SSL/TLS', value: data.ssl },\n { key: 'request', label: 'Request', value: data.request },\n { key: 'response', label: 'Response', value: data.response },\n ].filter((phase) => phase.value !== undefined && phase.value > 0);\n\nconst VIEWS: Record<string, FC<TimingViewProps>> = {\n waterfall: WaterfallView,\n stacked: StackedView,\n horizontal: HorizontalView,\n};\n\n// Main component\nexport const TimingDiagram: FC<TimingDiagramProps> = ({\n copy,\n data,\n showLabels = true,\n height,\n animated = true,\n showTooltips = true,\n variant = 'waterfall',\n}) => {\n const percentages = useMemo(() => calculatePercentages(data), [data]);\n const phases = phasesOf(data);\n const View = VIEWS[variant];\n\n return (\n <DiagramContainer elevation={2} role=\"region\" aria-label={copy.regionLabel} tabIndex={0}>\n <Typography variant=\"h6\" fontWeight=\"bold\" gutterBottom>\n {copy.heading}\n </Typography>\n\n {View && (\n <View\n phases={phases}\n percentages={percentages}\n data={data}\n animated={animated}\n showLabels={showLabels}\n showTooltips={showTooltips}\n // The waterfall's plot height, 40 design px unless the caller says otherwise.\n plotHeightPx={height ?? 40}\n />\n )}\n\n {showLabels && (\n <Legend>\n {phases.map((phase) => (\n <LegendItem key={phase.key}>\n <Box\n className=\"color\"\n sx={(theme) => ({ backgroundColor: phaseColors(theme)[phase.key as PhaseKey] })}\n />\n <Typography className=\"label\">{phase.label}</Typography>\n </LegendItem>\n ))}\n </Legend>\n )}\n </DiagramContainer>\n );\n};\n\n// Export default\nexport default TimingDiagram;\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/pt-BR.feedback.ts"],"sourcesContent":["/**\n * The pt-BR pack for the feedback family. Split out of `pt-BR.ts`, which is a\n * barrel over this folder — see that file for why.\n */\nimport type {\n ChromeCopy,\n NotificationUnblockCopy,\n TutorialCopy,\n} from './copy';\n\nexport const PT_BR_TUTORIAL_COPY: TutorialCopy = {\n skip: \"Pular\",\n previous: \"Anterior\",\n next: \"Próximo\",\n restart: \"Recomeçar\",\n};\n\nexport const PT_BR_CHROME_COPY: ChromeCopy = {\n dismissToast: \"Fechar o aviso\",\n goBack: \"Voltar\",\n closePanel: \"Fechar\",\n closeTab: \"Fechar a aba\",\n scrollRegion: \"Conteúdo rolável\",\n scrollToTop: \"Voltar ao topo\",\n share: \"Compartilhar\",\n};\n\nconst PT_BR_CHROMIUM_DESKTOP = [\n \"Clique no ícone à esquerda do endereço do site.\",\n \"Abra \\\"Configurações do site\\\".\",\n \"Em \\\"Notificações\\\", escolha \\\"Permitir\\\".\",\n \"Volte a esta página e recarregue.\",\n] as const;\n\nconst PT_BR_CHROMIUM_ANDROID = [\n \"Toque no ícone à esquerda do endereço do site.\",\n \"Toque em \\\"Permissões\\\".\",\n \"Toque em \\\"Notificações\\\" e escolha \\\"Permitir\\\".\",\n \"Volte a esta página e recarregue.\",\n] as const;\n\nexport const PT_BR_NOTIFICATION_UNBLOCK_COPY: NotificationUnblockCopy = {\n ios: [\n \"Abra os Ajustes do iPhone.\",\n \"Toque em \\\"Notificações\\\".\",\n \"Encontre este app na lista e ative \\\"Permitir Notificações\\\".\",\n ],\n chrome: { desktop: PT_BR_CHROMIUM_DESKTOP, android: PT_BR_CHROMIUM_ANDROID },\n edge: {\n desktop: [\n \"Clique no cadeado à esquerda do endereço do site.\",\n \"Abra \\\"Permissões para este site\\\".\",\n \"Em \\\"Notificações\\\", escolha \\\"Permitir\\\".\",\n \"Volte a esta página e recarregue.\",\n ],\n android: PT_BR_CHROMIUM_ANDROID,\n },\n firefox: {\n desktop: [\n \"Clique no ícone de permissões à esquerda do endereço do site.\",\n \"Ao lado de \\\"Enviar notificações\\\", clique no X para tirar o bloqueio.\",\n \"Recarregue a página e ative as notificações de novo.\",\n ],\n android: [\n \"Abra o menu do navegador e toque em \\\"Configurações\\\".\",\n \"Toque em \\\"Permissões de sites\\\" e depois em \\\"Notificações\\\".\",\n \"Encontre este site e escolha \\\"Permitir\\\".\",\n \"Volte a esta página e recarregue.\",\n ],\n },\n opera: { desktop: PT_BR_CHROMIUM_DESKTOP, android: PT_BR_CHROMIUM_ANDROID },\n safari: {\n desktop: [\n \"No menu Safari, abra \\\"Ajustes\\\".\",\n \"Vá na aba \\\"Sites\\\" e, na lateral, em \\\"Notificações\\\".\",\n \"Encontre este site e escolha \\\"Permitir\\\".\",\n \"Volte a esta página e recarregue.\",\n ],\n },\n samsung: {\n android: [\n \"Abra o menu do navegador e toque em \\\"Configurações\\\".\",\n \"Toque em \\\"Sites e downloads\\\" e depois em \\\"Notificações\\\".\",\n \"Encontre este site e permita as notificações.\",\n \"Volte a esta página e recarregue.\",\n ],\n },\n other: [\n \"Abra as configurações do navegador.\",\n \"Procure as permissões dos sites e depois \\\"Notificações\\\".\",\n \"Permita as notificações para este site.\",\n \"Volte a esta página e recarregue.\",\n ],\n};\n"],"mappings":";AAUO,IAAM,sBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,SAAS;AACX;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 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/Lightbox/LightboxMedia.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport React from 'react';\n\nimport type { LightboxItem } from './Lightbox.types';\n\nexport interface LightboxMediaProps {\n item: LightboxItem;\n index: number;\n total: number;\n zoomLevel: number;\n panOffset: { x: number; y: number };\n zoomable: boolean;\n isDragging: boolean;\n testId: (suffix: string) => string;\n onLoadStart: () => void;\n onLoaded: () => void;\n onWheel: (event: React.WheelEvent) => void;\n onDoubleClick: () => void;\n}\n\nconst cursorFor = (zoomLevel: number, zoomable: boolean): string => {\n if (zoomLevel > 1) return 'move';\n return zoomable ? 'zoom-in' : 'default';\n};\n\nexport const LightboxMedia: FC<LightboxMediaProps> = ({\n item,\n index,\n total,\n zoomLevel,\n panOffset,\n zoomable,\n isDragging,\n testId,\n onLoadStart,\n onLoaded,\n onWheel,\n onDoubleClick,\n}) => {\n if (item.type === 'video') {\n return (\n <video\n src={item.src}\n controls\n style={{ maxWidth: '90vw', maxHeight: '80vh', objectFit: 'contain' }}\n onLoadStart={onLoadStart}\n onLoadedData={onLoaded}\n aria-label={item.alt || `Video ${index + 1} of ${total}`}\n data-testid={testId('video')}\n />\n );\n }\n\n return (\n <img\n src={item.src}\n alt={item.alt || `Image ${index + 1} of ${total}`}\n style={{\n // At 1x the image is bounded by the viewport; once zoomed it is allowed\n // to overflow so there is something to pan around.\n maxWidth: zoomLevel === 1 ? '90vw' : 'none',\n maxHeight: zoomLevel === 1 ? '80vh' : 'none',\n transform: `scale(${zoomLevel}) translate(${panOffset.x}px, ${panOffset.y}px)`,\n transformOrigin: 'center',\n cursor: cursorFor(zoomLevel, zoomable),\n transition: isDragging ? 'none' : 'transform 0.2s ease',\n objectFit: 'contain',\n }}\n onLoad={onLoaded}\n onWheel={onWheel}\n onDoubleClick={onDoubleClick}\n draggable={false}\n data-testid={testId('image')}\n />\n );\n};\n"],"mappings":";AAyCM;AArBN,IAAM,YAAY,CAAC,WAAmB,aAA8B;AAClE,MAAI,YAAY,EAAG,QAAO;AAC1B,SAAO,WAAW,YAAY;AAChC;AAEO,IAAM,gBAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,MAAI,KAAK,SAAS,SAAS;AACzB,WACE;AAAA,MAAC;AAAA;AAAA,QACC,KAAK,KAAK;AAAA,QACV,UAAQ;AAAA,QACR,OAAO,EAAE,UAAU,QAAQ,WAAW,QAAQ,WAAW,UAAU;AAAA,QACnE;AAAA,QACA,cAAc;AAAA,QACd,cAAY,KAAK,OAAO,SAAS,QAAQ,CAAC,OAAO,KAAK;AAAA,QACtD,eAAa,OAAO,OAAO;AAAA;AAAA,IAC7B;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,KAAK;AAAA,MACV,KAAK,KAAK,OAAO,SAAS,QAAQ,CAAC,OAAO,KAAK;AAAA,MAC/C,OAAO;AAAA;AAAA;AAAA,QAGL,UAAU,cAAc,IAAI,SAAS;AAAA,QACrC,WAAW,cAAc,IAAI,SAAS;AAAA,QACtC,WAAW,SAAS,SAAS,eAAe,UAAU,CAAC,OAAO,UAAU,CAAC;AAAA,QACzE,iBAAiB;AAAA,QACjB,QAAQ,UAAU,WAAW,QAAQ;AAAA,QACrC,YAAY,aAAa,SAAS;AAAA,QAClC,WAAW;AAAA,MACb;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,eAAa,OAAO,OAAO;AAAA;AAAA,EAC7B;AAEJ;","names":[]}
@@ -1 +0,0 @@
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};\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;AACX;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,86 +0,0 @@
1
- import {
2
- thumbnailStripSx
3
- } from "./chunk-3KA6MYIR.js";
4
- import {
5
- onMedia,
6
- sheen
7
- } from "./chunk-FQ6UW7IY.js";
8
- import {
9
- rem,
10
- sxRem
11
- } from "./chunk-YKCAJ2TN.js";
12
-
13
- // src/components/data-display/Lightbox/LightboxThumbnails.tsx
14
- import PlayIcon from "@mui/icons-material/PlayArrow";
15
- import Box from "@mui/material/Box/index.js";
16
- import { jsx } from "react/jsx-runtime";
17
- var THUMB = { widthPx: 60, heightPx: 40 };
18
- var frame = (theme, color) => `${rem(theme, 2)} solid ${color}`;
19
- var VideoThumbnail = () => /* @__PURE__ */ jsx(
20
- Box,
21
- {
22
- sx: {
23
- width: "100%",
24
- height: "100%",
25
- background: (theme) => sheen(theme, 0.1),
26
- display: "flex",
27
- alignItems: "center",
28
- justifyContent: "center"
29
- },
30
- children: /* @__PURE__ */ jsx(PlayIcon, { sx: { color: onMedia, fontSize: sxRem(16) } })
31
- }
32
- );
33
- var LightboxThumbnails = ({
34
- items,
35
- currentIndex,
36
- testId,
37
- onSelect
38
- }) => /* @__PURE__ */ jsx(
39
- Box,
40
- {
41
- sx: {
42
- ...thumbnailStripSx,
43
- position: "absolute",
44
- bottom: sxRem(16),
45
- left: "50%",
46
- transform: "translateX(-50%)",
47
- display: "flex",
48
- gap: 1,
49
- maxWidth: "90vw",
50
- overflowX: "auto",
51
- padding: 1
52
- },
53
- "data-testid": testId("thumbnails"),
54
- children: items.map((item, index) => /* @__PURE__ */ jsx(
55
- Box,
56
- {
57
- onClick: () => onSelect(index),
58
- sx: {
59
- width: sxRem(THUMB.widthPx),
60
- height: sxRem(THUMB.heightPx),
61
- cursor: "pointer",
62
- border: (theme) => frame(theme, currentIndex === index ? onMedia(theme) : "transparent"),
63
- borderRadius: 0.5,
64
- overflow: "hidden",
65
- flexShrink: 0,
66
- "&:hover": { border: (theme) => frame(theme, sheen(theme, 0.7)) }
67
- },
68
- "data-testid": testId(`thumbnail-${index}`),
69
- children: item.type === "video" ? /* @__PURE__ */ jsx(VideoThumbnail, {}) : /* @__PURE__ */ jsx(
70
- "img",
71
- {
72
- src: item.src,
73
- alt: item.alt || `Thumbnail ${index + 1}`,
74
- style: { width: "100%", height: "100%", objectFit: "cover" }
75
- }
76
- )
77
- },
78
- `${item.src}-${index}`
79
- ))
80
- }
81
- );
82
-
83
- export {
84
- LightboxThumbnails
85
- };
86
- //# sourceMappingURL=chunk-BAFDSAWY.js.map
@@ -1 +0,0 @@
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 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 <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 || `Thumbnail ${index + 1}`}\n style={{ width: '100%', height: '100%', objectFit: 'cover' }}\n />\n )}\n </Box>\n ))}\n </Box>\n);\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,cAAc;AACrB,OAAO,SAAS;AA0BZ;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,MACE;AAAA,EAAC;AAAA;AAAA,IACC,IAAI;AAAA,MACF,GAAG;AAAA,MACH,UAAU;AAAA,MACV,QAAQ,MAAM,EAAE;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,MACX,SAAS;AAAA,MACT,KAAK;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,SAAS;AAAA,IACX;AAAA,IACA,eAAa,OAAO,YAAY;AAAA,IAE/B,gBAAM,IAAI,CAAC,MAAM,UAChB;AAAA,MAAC;AAAA;AAAA,QAEC,SAAS,MAAM,SAAS,KAAK;AAAA,QAC7B,IAAI;AAAA,UACF,OAAO,MAAM,MAAM,OAAO;AAAA,UAC1B,QAAQ,MAAM,MAAM,QAAQ;AAAA,UAC5B,QAAQ;AAAA,UACR,QAAQ,CAAC,UAAiB,MAAM,OAAO,iBAAiB,QAAQ,QAAQ,KAAK,IAAI,aAAa;AAAA,UAC9F,cAAc;AAAA,UACd,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,WAAW,EAAE,QAAQ,CAAC,UAAiB,MAAM,OAAO,MAAM,OAAO,GAAG,CAAC,EAAE;AAAA,QACzE;AAAA,QACA,eAAa,OAAO,aAAa,KAAK,EAAE;AAAA,QAEvC,eAAK,SAAS,UACb,oBAAC,kBAAe,IAEhB;AAAA,UAAC;AAAA;AAAA,YACC,KAAK,KAAK;AAAA,YACV,KAAK,KAAK,OAAO,aAAa,QAAQ,CAAC;AAAA,YACvC,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,WAAW,QAAQ;AAAA;AAAA,QAC7D;AAAA;AAAA,MArBG,GAAG,KAAK,GAAG,IAAI,KAAK;AAAA,IAuB3B,CACD;AAAA;AACH;","names":[]}