@bundle-stats/ui 4.22.3 → 4.23.0-beta.10

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 (395) hide show
  1. package/lib/app/app.js +4 -0
  2. package/lib/app/app.js.map +1 -1
  3. package/lib/app/app.module.css +14 -5
  4. package/lib/app/header/header.module.css +1 -3
  5. package/lib/components/asset-name/asset-name.js +8 -7
  6. package/lib/components/asset-name/asset-name.js.map +1 -1
  7. package/lib/components/asset-name/asset-name.module.css +11 -10
  8. package/lib/components/bundle-assets/bundle-assets.js +4 -2
  9. package/lib/components/bundle-assets/bundle-assets.js.map +1 -1
  10. package/lib/components/bundle-assets/bundle-assets.module.css +0 -12
  11. package/lib/components/bundle-assets/index.js +2 -1
  12. package/lib/components/bundle-assets/index.js.map +1 -1
  13. package/lib/components/bundle-assets-totals/bundle-assets-totals.js +4 -2
  14. package/lib/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
  15. package/lib/components/bundle-modules/bundle-modules.js +5 -3
  16. package/lib/components/bundle-modules/bundle-modules.js.map +1 -1
  17. package/lib/components/bundle-modules/bundle-modules.module.css +2 -16
  18. package/lib/components/bundle-modules/index.js +2 -1
  19. package/lib/components/bundle-modules/index.js.map +1 -1
  20. package/lib/components/bundle-packages/bundle-packages.js +5 -3
  21. package/lib/components/bundle-packages/bundle-packages.js.map +1 -1
  22. package/lib/components/bundle-packages/bundle-packages.module.css +18 -22
  23. package/lib/components/delta/delta.js +3 -13
  24. package/lib/components/delta/delta.js.map +1 -1
  25. package/lib/components/delta/delta.module.css +13 -12
  26. package/lib/components/delta/index.js.map +1 -1
  27. package/lib/components/entry-info/entry-info.js +4 -2
  28. package/lib/components/entry-info/entry-info.js.map +1 -1
  29. package/lib/components/entry-info/entry-info.module.css +7 -2
  30. package/lib/components/index.js +3 -1
  31. package/lib/components/index.js.map +1 -1
  32. package/lib/components/insight-icon/insight-icon.module.css +6 -6
  33. package/lib/components/job-name/job-name.js +1 -2
  34. package/lib/components/job-name/job-name.js.map +1 -1
  35. package/lib/components/jobs-header/jobs-header.js +1 -1
  36. package/lib/components/jobs-header/jobs-header.js.map +1 -1
  37. package/lib/components/jobs-header/jobs-header.module.css +0 -1
  38. package/lib/components/metric-change-legend/index.js +18 -0
  39. package/lib/components/metric-change-legend/index.js.map +1 -0
  40. package/lib/components/metric-change-legend/metric-change-legend.js +91 -0
  41. package/lib/components/metric-change-legend/metric-change-legend.js.map +1 -0
  42. package/lib/components/metric-change-legend/metric-change-legend.module.css +80 -0
  43. package/lib/components/metric-run-info/metric-run-info.js +24 -8
  44. package/lib/components/metric-run-info/metric-run-info.js.map +1 -1
  45. package/lib/components/metrics-display-selector/metrics-display-selector.js +7 -9
  46. package/lib/components/metrics-display-selector/metrics-display-selector.js.map +1 -1
  47. package/lib/components/metrics-display-selector/metrics-display-selector.module.css +0 -27
  48. package/lib/components/metrics-table/metrics-table.js +31 -20
  49. package/lib/components/metrics-table/metrics-table.js.map +1 -1
  50. package/lib/components/metrics-table/metrics-table.module.css +4 -12
  51. package/lib/components/metrics-table-header/metrics-table-header.js +6 -6
  52. package/lib/components/metrics-table-header/metrics-table-header.js.map +1 -1
  53. package/lib/components/metrics-table-header/metrics-table-header.module.css +8 -12
  54. package/lib/components/metrics-table-options/metrics-table-options.js +4 -5
  55. package/lib/components/metrics-table-options/metrics-table-options.js.map +1 -1
  56. package/lib/components/metrics-table-row-count/index.js +18 -0
  57. package/lib/components/metrics-table-row-count/index.js.map +1 -0
  58. package/lib/components/metrics-table-row-count/metrics-table-row-count.js +17 -0
  59. package/lib/components/metrics-table-row-count/metrics-table-row-count.js.map +1 -0
  60. package/lib/components/metrics-table-row-count/metrics-table-row-count.module.css +5 -0
  61. package/lib/components/metrics-table-title/metrics-table-title.js +1 -1
  62. package/lib/components/metrics-table-title/metrics-table-title.js.map +1 -1
  63. package/lib/components/metrics-treemap/metrics-treemap.constants.js +3 -1
  64. package/lib/components/metrics-treemap/metrics-treemap.constants.js.map +1 -1
  65. package/lib/components/metrics-treemap/metrics-treemap.js +46 -113
  66. package/lib/components/metrics-treemap/metrics-treemap.js.map +1 -1
  67. package/lib/components/metrics-treemap/metrics-treemap.module.css +3 -274
  68. package/lib/components/metrics-treemap/metrics-treemap.utils.js +81 -16
  69. package/lib/components/metrics-treemap/metrics-treemap.utils.js.map +1 -1
  70. package/lib/components/metrics-treemap/tile/index.js +18 -0
  71. package/lib/components/metrics-treemap/tile/index.js.map +1 -0
  72. package/lib/components/metrics-treemap/tile/tile.js +79 -0
  73. package/lib/components/metrics-treemap/tile/tile.js.map +1 -0
  74. package/lib/components/metrics-treemap/tile/tile.module.css +145 -0
  75. package/lib/components/metrics-treemap/tile-group/index.js +18 -0
  76. package/lib/components/metrics-treemap/tile-group/index.js.map +1 -0
  77. package/lib/components/metrics-treemap/tile-group/tile-group.js +75 -0
  78. package/lib/components/metrics-treemap/tile-group/tile-group.js.map +1 -0
  79. package/lib/components/metrics-treemap/tile-group/tile-group.module.css +57 -0
  80. package/lib/components/metrics-treemap/tile-group-title/index.js +18 -0
  81. package/lib/components/metrics-treemap/tile-group-title/index.js.map +1 -0
  82. package/lib/components/metrics-treemap/tile-group-title/tile-group-title.js +24 -0
  83. package/lib/components/metrics-treemap/tile-group-title/tile-group-title.js.map +1 -0
  84. package/lib/components/metrics-treemap/tile-group-title/tile-group-title.module.css +48 -0
  85. package/lib/components/run-info/run-info.js +26 -14
  86. package/lib/components/run-info/run-info.js.map +1 -1
  87. package/lib/components/run-info/run-info.module.css +35 -26
  88. package/lib/components/sort-button/sort-button.module.css +0 -2
  89. package/lib/components/summary/summary.js +10 -10
  90. package/lib/components/summary/summary.js.map +1 -1
  91. package/lib/components/summary/summary.module.css +60 -14
  92. package/lib/constants.js +13 -1
  93. package/lib/constants.js.map +1 -1
  94. package/lib/css/default.css +7 -4
  95. package/lib/css/variables.css +84 -60
  96. package/lib/layout/flex-stack/flex-stack.js +2 -2
  97. package/lib/layout/flex-stack/flex-stack.js.map +1 -1
  98. package/lib/layout/flex-stack/flex-stack.module.css +65 -10
  99. package/lib/query-state.js +6 -3
  100. package/lib/query-state.js.map +1 -1
  101. package/lib/ui/button/button.js +3 -2
  102. package/lib/ui/button/button.js.map +1 -1
  103. package/lib/ui/button/button.module.css +38 -27
  104. package/lib/ui/control-group/control-group.js +1 -1
  105. package/lib/ui/control-group/control-group.js.map +1 -1
  106. package/lib/ui/copy-to-clipboard/copy-to-clipboard.module.css +2 -2
  107. package/lib/ui/dialog/dialog.js +7 -3
  108. package/lib/ui/dialog/dialog.js.map +1 -1
  109. package/lib/ui/dialog/dialog.module.css +27 -0
  110. package/lib/ui/dropdown/dropdown.js +13 -4
  111. package/lib/ui/dropdown/dropdown.js.map +1 -1
  112. package/lib/ui/dropdown/dropdown.module.css +60 -7
  113. package/lib/ui/filters/filters.js +28 -16
  114. package/lib/ui/filters/filters.js.map +1 -1
  115. package/lib/ui/filters/filters.module.css +3 -19
  116. package/lib/ui/hover-card/hover-card.js +7 -1
  117. package/lib/ui/hover-card/hover-card.js.map +1 -1
  118. package/lib/ui/hover-card/hover-card.module.css +18 -5
  119. package/lib/ui/input/input.module.css +2 -2
  120. package/lib/ui/table/table.module.css +12 -6
  121. package/lib/ui/tabs/tabs.module.css +13 -9
  122. package/lib/ui/tag/tag.module.css +0 -2
  123. package/lib/ui/textarea/textarea.module.css +2 -2
  124. package/lib/ui/toolbar/toolbar.js +2 -1
  125. package/lib/ui/toolbar/toolbar.js.map +1 -1
  126. package/lib/ui/toolbar/toolbar.module.css +0 -6
  127. package/lib/ui/tooltip/tooltip.js +6 -1
  128. package/lib/ui/tooltip/tooltip.js.map +1 -1
  129. package/lib/ui/tooltip/tooltip.module.css +12 -1
  130. package/lib/utils/index.js +1 -0
  131. package/lib/utils/index.js.map +1 -1
  132. package/lib/utils/portal.js +10 -0
  133. package/lib/utils/portal.js.map +1 -0
  134. package/lib-esm/app/app.js +5 -1
  135. package/lib-esm/app/app.js.map +1 -1
  136. package/lib-esm/app/app.module.css +14 -5
  137. package/lib-esm/app/header/header.module.css +1 -3
  138. package/lib-esm/components/asset-name/asset-name.js +8 -7
  139. package/lib-esm/components/asset-name/asset-name.js.map +1 -1
  140. package/lib-esm/components/asset-name/asset-name.module.css +11 -10
  141. package/lib-esm/components/bundle-assets/bundle-assets.js +4 -2
  142. package/lib-esm/components/bundle-assets/bundle-assets.js.map +1 -1
  143. package/lib-esm/components/bundle-assets/bundle-assets.module.css +0 -12
  144. package/lib-esm/components/bundle-assets/index.js +2 -1
  145. package/lib-esm/components/bundle-assets/index.js.map +1 -1
  146. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js +4 -2
  147. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
  148. package/lib-esm/components/bundle-modules/bundle-modules.js +5 -3
  149. package/lib-esm/components/bundle-modules/bundle-modules.js.map +1 -1
  150. package/lib-esm/components/bundle-modules/bundle-modules.module.css +2 -16
  151. package/lib-esm/components/bundle-modules/index.js +2 -1
  152. package/lib-esm/components/bundle-modules/index.js.map +1 -1
  153. package/lib-esm/components/bundle-packages/bundle-packages.js +5 -3
  154. package/lib-esm/components/bundle-packages/bundle-packages.js.map +1 -1
  155. package/lib-esm/components/bundle-packages/bundle-packages.module.css +18 -22
  156. package/lib-esm/components/delta/delta.js +3 -13
  157. package/lib-esm/components/delta/delta.js.map +1 -1
  158. package/lib-esm/components/delta/delta.module.css +13 -12
  159. package/lib-esm/components/delta/index.js.map +1 -1
  160. package/lib-esm/components/entry-info/entry-info.js +4 -2
  161. package/lib-esm/components/entry-info/entry-info.js.map +1 -1
  162. package/lib-esm/components/entry-info/entry-info.module.css +7 -2
  163. package/lib-esm/components/index.js +1 -0
  164. package/lib-esm/components/index.js.map +1 -1
  165. package/lib-esm/components/insight-icon/insight-icon.module.css +6 -6
  166. package/lib-esm/components/job-name/job-name.js +1 -2
  167. package/lib-esm/components/job-name/job-name.js.map +1 -1
  168. package/lib-esm/components/jobs-header/jobs-header.js +1 -1
  169. package/lib-esm/components/jobs-header/jobs-header.js.map +1 -1
  170. package/lib-esm/components/jobs-header/jobs-header.module.css +0 -1
  171. package/lib-esm/components/metric-change-legend/index.js +2 -0
  172. package/lib-esm/components/metric-change-legend/index.js.map +1 -0
  173. package/lib-esm/components/metric-change-legend/metric-change-legend.js +84 -0
  174. package/lib-esm/components/metric-change-legend/metric-change-legend.js.map +1 -0
  175. package/lib-esm/components/metric-change-legend/metric-change-legend.module.css +80 -0
  176. package/lib-esm/components/metric-run-info/metric-run-info.js +24 -8
  177. package/lib-esm/components/metric-run-info/metric-run-info.js.map +1 -1
  178. package/lib-esm/components/metrics-display-selector/metrics-display-selector.js +7 -9
  179. package/lib-esm/components/metrics-display-selector/metrics-display-selector.js.map +1 -1
  180. package/lib-esm/components/metrics-display-selector/metrics-display-selector.module.css +0 -27
  181. package/lib-esm/components/metrics-table/metrics-table.js +32 -20
  182. package/lib-esm/components/metrics-table/metrics-table.js.map +1 -1
  183. package/lib-esm/components/metrics-table/metrics-table.module.css +4 -12
  184. package/lib-esm/components/metrics-table-header/metrics-table-header.js +6 -6
  185. package/lib-esm/components/metrics-table-header/metrics-table-header.js.map +1 -1
  186. package/lib-esm/components/metrics-table-header/metrics-table-header.module.css +8 -12
  187. package/lib-esm/components/metrics-table-options/metrics-table-options.js +5 -6
  188. package/lib-esm/components/metrics-table-options/metrics-table-options.js.map +1 -1
  189. package/lib-esm/components/metrics-table-row-count/index.js +2 -0
  190. package/lib-esm/components/metrics-table-row-count/index.js.map +1 -0
  191. package/lib-esm/components/metrics-table-row-count/metrics-table-row-count.js +10 -0
  192. package/lib-esm/components/metrics-table-row-count/metrics-table-row-count.js.map +1 -0
  193. package/lib-esm/components/metrics-table-row-count/metrics-table-row-count.module.css +5 -0
  194. package/lib-esm/components/metrics-table-title/metrics-table-title.js +1 -1
  195. package/lib-esm/components/metrics-table-title/metrics-table-title.js.map +1 -1
  196. package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js +2 -0
  197. package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js.map +1 -1
  198. package/lib-esm/components/metrics-treemap/metrics-treemap.js +52 -120
  199. package/lib-esm/components/metrics-treemap/metrics-treemap.js.map +1 -1
  200. package/lib-esm/components/metrics-treemap/metrics-treemap.module.css +3 -274
  201. package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js +80 -18
  202. package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js.map +1 -1
  203. package/lib-esm/components/metrics-treemap/tile/index.js +2 -0
  204. package/lib-esm/components/metrics-treemap/tile/index.js.map +1 -0
  205. package/lib-esm/components/metrics-treemap/tile/tile.js +40 -0
  206. package/lib-esm/components/metrics-treemap/tile/tile.js.map +1 -0
  207. package/lib-esm/components/metrics-treemap/tile/tile.module.css +145 -0
  208. package/lib-esm/components/metrics-treemap/tile-group/index.js +2 -0
  209. package/lib-esm/components/metrics-treemap/tile-group/index.js.map +1 -0
  210. package/lib-esm/components/metrics-treemap/tile-group/tile-group.js +35 -0
  211. package/lib-esm/components/metrics-treemap/tile-group/tile-group.js.map +1 -0
  212. package/lib-esm/components/metrics-treemap/tile-group/tile-group.module.css +57 -0
  213. package/lib-esm/components/metrics-treemap/tile-group-title/index.js +2 -0
  214. package/lib-esm/components/metrics-treemap/tile-group-title/index.js.map +1 -0
  215. package/lib-esm/components/metrics-treemap/tile-group-title/tile-group-title.js +17 -0
  216. package/lib-esm/components/metrics-treemap/tile-group-title/tile-group-title.js.map +1 -0
  217. package/lib-esm/components/metrics-treemap/tile-group-title/tile-group-title.module.css +48 -0
  218. package/lib-esm/components/run-info/run-info.js +26 -14
  219. package/lib-esm/components/run-info/run-info.js.map +1 -1
  220. package/lib-esm/components/run-info/run-info.module.css +35 -26
  221. package/lib-esm/components/sort-button/sort-button.module.css +0 -2
  222. package/lib-esm/components/summary/summary.js +11 -11
  223. package/lib-esm/components/summary/summary.js.map +1 -1
  224. package/lib-esm/components/summary/summary.module.css +60 -14
  225. package/lib-esm/constants.js +12 -0
  226. package/lib-esm/constants.js.map +1 -1
  227. package/lib-esm/css/default.css +7 -4
  228. package/lib-esm/css/variables.css +84 -60
  229. package/lib-esm/layout/flex-stack/flex-stack.js +3 -2
  230. package/lib-esm/layout/flex-stack/flex-stack.js.map +1 -1
  231. package/lib-esm/layout/flex-stack/flex-stack.module.css +65 -10
  232. package/lib-esm/query-state.js +7 -4
  233. package/lib-esm/query-state.js.map +1 -1
  234. package/lib-esm/ui/button/button.js +3 -2
  235. package/lib-esm/ui/button/button.js.map +1 -1
  236. package/lib-esm/ui/button/button.module.css +38 -27
  237. package/lib-esm/ui/control-group/control-group.js +1 -1
  238. package/lib-esm/ui/control-group/control-group.js.map +1 -1
  239. package/lib-esm/ui/copy-to-clipboard/copy-to-clipboard.module.css +2 -2
  240. package/lib-esm/ui/dialog/dialog.js +7 -3
  241. package/lib-esm/ui/dialog/dialog.js.map +1 -1
  242. package/lib-esm/ui/dialog/dialog.module.css +27 -0
  243. package/lib-esm/ui/dropdown/dropdown.js +11 -3
  244. package/lib-esm/ui/dropdown/dropdown.js.map +1 -1
  245. package/lib-esm/ui/dropdown/dropdown.module.css +60 -7
  246. package/lib-esm/ui/filters/filters.js +29 -17
  247. package/lib-esm/ui/filters/filters.js.map +1 -1
  248. package/lib-esm/ui/filters/filters.module.css +3 -19
  249. package/lib-esm/ui/hover-card/hover-card.js +7 -1
  250. package/lib-esm/ui/hover-card/hover-card.js.map +1 -1
  251. package/lib-esm/ui/hover-card/hover-card.module.css +18 -5
  252. package/lib-esm/ui/input/input.module.css +2 -2
  253. package/lib-esm/ui/table/table.module.css +12 -6
  254. package/lib-esm/ui/tabs/tabs.module.css +13 -9
  255. package/lib-esm/ui/tag/tag.module.css +0 -2
  256. package/lib-esm/ui/textarea/textarea.module.css +2 -2
  257. package/lib-esm/ui/toolbar/toolbar.js +2 -1
  258. package/lib-esm/ui/toolbar/toolbar.js.map +1 -1
  259. package/lib-esm/ui/toolbar/toolbar.module.css +0 -6
  260. package/lib-esm/ui/tooltip/tooltip.js +6 -1
  261. package/lib-esm/ui/tooltip/tooltip.js.map +1 -1
  262. package/lib-esm/ui/tooltip/tooltip.module.css +12 -1
  263. package/lib-esm/utils/index.js +1 -0
  264. package/lib-esm/utils/index.js.map +1 -1
  265. package/lib-esm/utils/portal.js +6 -0
  266. package/lib-esm/utils/portal.js.map +1 -0
  267. package/package.json +18 -18
  268. package/src/app/app.jsx +7 -1
  269. package/src/app/app.module.css +14 -5
  270. package/src/app/header/header.module.css +1 -3
  271. package/src/components/asset-name/asset-name.module.css +11 -10
  272. package/src/components/asset-name/asset-name.tsx +17 -14
  273. package/src/components/bundle-assets/bundle-assets.module.css +0 -12
  274. package/src/components/bundle-assets/bundle-assets.tsx +8 -1
  275. package/src/components/bundle-assets/index.tsx +3 -1
  276. package/src/components/bundle-assets-totals/bundle-assets-totals.jsx +6 -4
  277. package/src/components/bundle-modules/bundle-modules.module.css +2 -16
  278. package/src/components/bundle-modules/bundle-modules.tsx +10 -3
  279. package/src/components/bundle-modules/index.tsx +3 -1
  280. package/src/components/bundle-packages/bundle-packages.jsx +14 -3
  281. package/src/components/bundle-packages/bundle-packages.module.css +18 -22
  282. package/src/components/delta/delta.module.css +13 -12
  283. package/src/components/delta/delta.tsx +32 -0
  284. package/src/components/entry-info/entry-info.module.css +7 -2
  285. package/src/components/entry-info/entry-info.tsx +9 -3
  286. package/src/components/index.ts +3 -0
  287. package/src/components/insight-icon/insight-icon.module.css +6 -6
  288. package/src/components/job-name/job-name.jsx +2 -3
  289. package/src/components/jobs-header/jobs-header.module.css +0 -1
  290. package/src/components/jobs-header/jobs-header.tsx +2 -2
  291. package/src/components/metric-change-legend/index.ts +1 -0
  292. package/src/components/metric-change-legend/metric-change-legend.module.css +80 -0
  293. package/src/components/metric-change-legend/metric-change-legend.stories.tsx +13 -0
  294. package/src/components/metric-change-legend/metric-change-legend.tsx +148 -0
  295. package/src/components/metric-run-info/metric-run-info.stories.tsx +9 -0
  296. package/src/components/metric-run-info/metric-run-info.tsx +39 -17
  297. package/src/components/metrics-display-selector/metrics-display-selector.module.css +0 -27
  298. package/src/components/metrics-display-selector/metrics-display-selector.tsx +25 -37
  299. package/src/components/metrics-table/metrics-table.module.css +4 -12
  300. package/src/components/metrics-table/metrics-table.tsx +70 -39
  301. package/src/components/metrics-table-header/metrics-table-header.module.css +8 -12
  302. package/src/components/metrics-table-header/metrics-table-header.tsx +5 -6
  303. package/src/components/metrics-table-options/metrics-table-options.tsx +13 -14
  304. package/src/components/metrics-table-row-count/index.ts +1 -0
  305. package/src/components/metrics-table-row-count/metrics-table-row-count.module.css +5 -0
  306. package/src/components/metrics-table-row-count/metrics-table-row-count.tsx +21 -0
  307. package/src/components/metrics-table-title/metrics-table-title.jsx +1 -1
  308. package/src/components/metrics-treemap/metrics-treemap.constants.ts +9 -0
  309. package/src/components/metrics-treemap/metrics-treemap.module.css +3 -274
  310. package/src/components/metrics-treemap/metrics-treemap.stories.utils.ts +46 -0
  311. package/src/components/metrics-treemap/metrics-treemap.tsx +123 -428
  312. package/src/components/metrics-treemap/metrics-treemap.utils.ts +161 -27
  313. package/src/components/metrics-treemap/tile/index.ts +1 -0
  314. package/src/components/metrics-treemap/tile/tile.module.css +145 -0
  315. package/src/components/metrics-treemap/tile/tile.stories.tsx +139 -0
  316. package/src/components/metrics-treemap/tile/tile.tsx +121 -0
  317. package/src/components/metrics-treemap/tile-group/index.ts +1 -0
  318. package/src/components/metrics-treemap/tile-group/tile-group.module.css +57 -0
  319. package/src/components/metrics-treemap/tile-group/tile-group.stories.tsx +163 -0
  320. package/src/components/metrics-treemap/tile-group/tile-group.tsx +177 -0
  321. package/src/components/metrics-treemap/tile-group-title/index.ts +1 -0
  322. package/src/components/metrics-treemap/tile-group-title/tile-group-title.module.css +48 -0
  323. package/src/components/metrics-treemap/tile-group-title/tile-group-title.stories.tsx +88 -0
  324. package/src/components/metrics-treemap/tile-group-title/tile-group-title.tsx +51 -0
  325. package/src/components/run-info/run-info.module.css +35 -26
  326. package/src/components/run-info/run-info.stories.tsx +16 -10
  327. package/src/components/run-info/run-info.tsx +132 -73
  328. package/src/components/sort-button/sort-button.module.css +0 -2
  329. package/src/components/summary/summary.module.css +60 -14
  330. package/src/components/summary/summary.tsx +50 -52
  331. package/src/constants.ts +13 -0
  332. package/src/css/default.css +7 -4
  333. package/src/css/variables.css +84 -60
  334. package/src/layout/flex-stack/flex-stack.module.css +65 -10
  335. package/src/layout/flex-stack/flex-stack.stories.tsx +68 -9
  336. package/src/layout/flex-stack/flex-stack.tsx +24 -4
  337. package/src/query-state.tsx +9 -4
  338. package/src/ui/button/button.module.css +38 -27
  339. package/src/ui/button/button.stories.tsx +1 -1
  340. package/src/ui/button/button.tsx +3 -1
  341. package/src/ui/control-group/control-group.tsx +1 -1
  342. package/src/ui/copy-to-clipboard/copy-to-clipboard.module.css +2 -2
  343. package/src/ui/dialog/dialog.module.css +27 -0
  344. package/src/ui/dialog/dialog.stories.tsx +8 -0
  345. package/src/ui/dialog/dialog.tsx +16 -2
  346. package/src/ui/dropdown/dropdown.module.css +60 -7
  347. package/src/ui/dropdown/dropdown.stories.tsx +6 -0
  348. package/src/ui/dropdown/dropdown.tsx +17 -2
  349. package/src/ui/filters/filters.module.css +3 -19
  350. package/src/ui/filters/filters.tsx +131 -67
  351. package/src/ui/hover-card/hover-card.module.css +18 -5
  352. package/src/ui/hover-card/hover-card.tsx +7 -1
  353. package/src/ui/input/input.module.css +2 -2
  354. package/src/ui/table/table.module.css +12 -6
  355. package/src/ui/tabs/tabs.module.css +13 -9
  356. package/src/ui/tag/tag.module.css +0 -2
  357. package/src/ui/textarea/textarea.module.css +2 -2
  358. package/src/ui/toolbar/toolbar.jsx +4 -1
  359. package/src/ui/toolbar/toolbar.module.css +0 -6
  360. package/src/ui/tooltip/tooltip.module.css +12 -1
  361. package/src/ui/tooltip/tooltip.tsx +6 -1
  362. package/src/utils/index.ts +1 -0
  363. package/src/utils/portal.ts +9 -0
  364. package/types/components/delta/delta.d.ts +7 -21
  365. package/types/components/delta/index.d.ts +1 -1
  366. package/types/components/index.d.ts +3 -0
  367. package/types/components/metric-change-legend/index.d.ts +1 -0
  368. package/types/components/metric-change-legend/metric-change-legend.d.ts +4 -0
  369. package/types/components/metric-run-info/metric-run-info.d.ts +3 -6
  370. package/types/components/metrics-table/metrics-table.d.ts +2 -1
  371. package/types/components/metrics-table-row-count/index.d.ts +1 -0
  372. package/types/components/metrics-table-row-count/metrics-table-row-count.d.ts +7 -0
  373. package/types/components/metrics-treemap/metrics-treemap.constants.d.ts +2 -0
  374. package/types/components/metrics-treemap/metrics-treemap.utils.d.ts +16 -5
  375. package/types/components/metrics-treemap/tile/index.d.ts +1 -0
  376. package/types/components/metrics-treemap/tile/tile.d.ts +11 -0
  377. package/types/components/metrics-treemap/tile-group/index.d.ts +1 -0
  378. package/types/components/metrics-treemap/tile-group/tile-group.d.ts +20 -0
  379. package/types/components/metrics-treemap/tile-group-title/index.d.ts +1 -0
  380. package/types/components/metrics-treemap/tile-group-title/tile-group-title.d.ts +12 -0
  381. package/types/components/run-info/run-info.d.ts +16 -7
  382. package/types/constants.d.ts +12 -0
  383. package/types/layout/flex-stack/flex-stack.d.ts +6 -2
  384. package/types/ui/button/button.d.ts +1 -0
  385. package/types/ui/dialog/dialog.d.ts +3 -2
  386. package/types/ui/dropdown/dropdown.d.ts +4 -1
  387. package/types/ui/filters/filters.d.ts +2 -1
  388. package/types/utils/index.d.ts +1 -0
  389. package/types/utils/portal.d.ts +1 -0
  390. package/vitest.config.ts +4 -0
  391. package/lib/components/metrics-table-options/metrics-table-options.module.css +0 -15
  392. package/lib-esm/components/metrics-table-options/metrics-table-options.module.css +0 -15
  393. package/src/components/delta/delta.jsx +0 -22
  394. package/src/components/metrics-table-options/metrics-table-options.module.css +0 -15
  395. /package/src/components/delta/{index.js → index.ts} +0 -0
@@ -6,7 +6,7 @@ import { FlexStack } from '../../layout/flex-stack';
6
6
  import { Stack } from '../../layout/stack';
7
7
  import { Button } from '../button';
8
8
  import { ControlGroup } from '../control-group';
9
- import { Dropdown, DropdownItem } from '../dropdown';
9
+ import { Dropdown, DropdownGroup, DropdownItem } from '../dropdown';
10
10
  import { InputSearch } from '../input-search';
11
11
  import * as I18N from './filters.i18n';
12
12
  import { getGroupFiltersLabelSuffix, LABELS } from './filters.utils';
@@ -20,12 +20,7 @@ const Filter = (props: FilterBooleanProps) => {
20
20
  const { className = '', label, name, ...inputProps } = props;
21
21
 
22
22
  return (
23
- <FlexStack
24
- space="xxxsmall"
25
- alignItems="center"
26
- as="label"
27
- className={cx(css.filter, className)}
28
- >
23
+ <FlexStack gap="xxxsmall" alignItems="center" as="label" className={cx(css.filter, className)}>
29
24
  <input
30
25
  type="checkbox"
31
26
  id={`filter-${name}`}
@@ -40,12 +35,85 @@ const Filter = (props: FilterBooleanProps) => {
40
35
  );
41
36
  };
42
37
 
38
+ const getGroupItemKey = (groupKey: string, itemKey: string): string => `${groupKey}.${itemKey}`;
39
+
40
+ type ToggleFilters = (newFilters: Record<string, boolean>) => void;
41
+
42
+ type GetOnGroupCheck = (value: boolean, overrides?: Record<string, boolean>) => () => void;
43
+
44
+ interface FilterDropdownItemProps {
45
+ className?: string;
46
+ id: string;
47
+ label: string;
48
+ checked: boolean;
49
+ disabled?: boolean;
50
+ onChange: FilterBooleanProps['onChange'];
51
+ toggleFilters: ToggleFilters;
52
+ getOnGroupCheck: GetOnGroupCheck;
53
+ }
54
+
55
+ const FilterDropdownItem = (props: FilterDropdownItemProps) => {
56
+ const { className, id, label, checked, disabled, onChange, toggleFilters, getOnGroupCheck } =
57
+ props;
58
+
59
+ /**
60
+ * Toggle the filter when the menu item itself is activated: ariakit fires a click on the menu
61
+ * item when pressing Enter/Space, and clicking the item padding targets it directly. Clicks on
62
+ * the nested label/checkbox and on the only button are handled by their own handlers.
63
+ */
64
+ const onItemClick = useCallback(
65
+ (event: React.MouseEvent<HTMLDivElement>) => {
66
+ if (disabled || event.target !== event.currentTarget) {
67
+ return;
68
+ }
69
+
70
+ toggleFilters({ [id]: !checked });
71
+ },
72
+ [disabled, toggleFilters, id, checked],
73
+ );
74
+
75
+ /**
76
+ * Check only the current filter of the group
77
+ */
78
+ const onOnlyClick = useCallback(
79
+ () => getOnGroupCheck(false, { [id]: true })(),
80
+ [getOnGroupCheck, id],
81
+ );
82
+
83
+ return (
84
+ <DropdownItem
85
+ onClick={onItemClick}
86
+ hideOnClick={false}
87
+ className={cx(css.filterGroupItem, className)}
88
+ >
89
+ <Filter
90
+ label={label}
91
+ name={id}
92
+ onChange={onChange}
93
+ checked={checked}
94
+ disabled={disabled}
95
+ className={css.filterGroupItemFilter}
96
+ />
97
+ <Button
98
+ solid
99
+ size="xsmall"
100
+ type="button"
101
+ onClick={onOnlyClick}
102
+ disabled={disabled}
103
+ className={css.filterGroupOnlyButton}
104
+ >
105
+ {I18N.ONLY}
106
+ </Button>
107
+ </DropdownItem>
108
+ );
109
+ };
110
+
43
111
  interface FilterGroupProps extends React.ComponentProps<'div'> {
44
112
  groupKey: string;
45
113
  data: FilterGroupFieldData;
46
114
  values: Record<string, boolean>;
47
115
  onCheckboxChange: FilterBooleanProps['onChange'];
48
- toggleFilters: (newFilters: Record<string, boolean>) => void;
116
+ toggleFilters: ToggleFilters;
49
117
  }
50
118
 
51
119
  const FilterGroup = (props: FilterGroupProps) => {
@@ -70,22 +138,24 @@ const FilterGroup = (props: FilterGroupProps) => {
70
138
  </>
71
139
  );
72
140
 
73
- const getOnGroupCheck =
74
- (value: boolean, overrides = {}) =>
75
- () => {
76
- const newFilters = groupItems.reduce(
77
- (agg, { key: itemKey }) => ({
78
- ...agg,
79
- [`${groupKey}.${itemKey}`]: value,
80
- }),
81
- {},
82
- );
83
-
84
- toggleFilters({
85
- ...newFilters,
86
- ...overrides,
87
- });
88
- };
141
+ const getOnGroupCheck: GetOnGroupCheck = useCallback(
142
+ (value, overrides = {}) =>
143
+ () => {
144
+ const newFilters = groupItems.reduce(
145
+ (agg, { key: itemKey }) => ({
146
+ ...agg,
147
+ [getGroupItemKey(groupKey, itemKey)]: value,
148
+ }),
149
+ {},
150
+ );
151
+
152
+ toggleFilters({
153
+ ...newFilters,
154
+ ...overrides,
155
+ });
156
+ },
157
+ [groupItems, groupKey, toggleFilters],
158
+ );
89
159
 
90
160
  const filteredGroupItems = useMemo(() => {
91
161
  if (!search) {
@@ -102,63 +172,57 @@ const FilterGroup = (props: FilterGroupProps) => {
102
172
  ariaLabel={`${groupLabel}: ${filterSuffix}`}
103
173
  >
104
174
  {groupItems.length > 10 && (
105
- <div className={css.filterGroupSearchWrapper}>
175
+ <DropdownGroup>
106
176
  <InputSearch
107
177
  defaultValue={search}
108
178
  onChange={setSearch}
109
179
  placeholder={I18N.GROUP_SEARCH}
110
180
  debounceWait={0}
111
181
  />
112
- </div>
182
+ </DropdownGroup>
113
183
  )}
114
- <div className={css.filterGroupItems}>
184
+ <DropdownGroup className={css.filterGroupItems}>
115
185
  {filteredGroupItems.length === 0 && (
116
- <Stack className={css.filterGroupSearchNotFound}>
117
- <p>{I18N.GROUP_NOT_FOUND}</p>
118
- <div>
119
- <Button
120
- size="small"
121
- kind="primary"
122
- type="button"
123
- onClick={() => setSearch('')}
124
- className={css.filterGroupSearchNotFoundClear}
125
- >
126
- {I18N.GROUP_SEARCH_CLEAR}
127
- </Button>
128
- </div>
129
- </Stack>
186
+ <FlexStack
187
+ alignItems="center"
188
+ justifyContent="center"
189
+ className={css.filterGroupSearchNotFound}
190
+ >
191
+ <Stack space="xxxsmall">
192
+ <p>{I18N.GROUP_NOT_FOUND}</p>
193
+ <div>
194
+ <Button
195
+ solid
196
+ size="xsmall"
197
+ type="button"
198
+ onClick={() => setSearch('')}
199
+ className={css.filterGroupSearchNotFoundClear}
200
+ >
201
+ {I18N.GROUP_SEARCH_CLEAR}
202
+ </Button>
203
+ </div>
204
+ </Stack>
205
+ </FlexStack>
130
206
  )}
131
207
  {filteredGroupItems.map(({ key: itemKey, ...itemData }) => {
132
- const id = [groupKey, itemKey].join('.');
133
- const getOnOnlyClick = () => getOnGroupCheck(false, { [id]: true });
208
+ const id = getGroupItemKey(groupKey, itemKey);
134
209
 
135
210
  return (
136
- <DropdownItem key={id} className={css.filterGroupItem}>
137
- <Filter
138
- label={itemData.label}
139
- name={id}
140
- onChange={onCheckboxChange}
141
- checked={values[id]}
142
- disabled={itemData.disabled}
143
- className={css.filterGroupItemFilter}
144
- />
145
- <Button
146
- kind="info"
147
- solid
148
- size="small"
149
- type="button"
150
- onClick={getOnOnlyClick()}
151
- disabled={itemData.disabled}
152
- className={css.filterGroupOnlyButton}
153
- >
154
- {I18N.ONLY}
155
- </Button>
156
- </DropdownItem>
211
+ <FilterDropdownItem
212
+ key={id}
213
+ id={id}
214
+ label={itemData.label}
215
+ checked={values[id]}
216
+ disabled={itemData.disabled}
217
+ onChange={onCheckboxChange}
218
+ toggleFilters={toggleFilters}
219
+ getOnGroupCheck={getOnGroupCheck}
220
+ />
157
221
  );
158
222
  })}
159
- </div>
223
+ </DropdownGroup>
160
224
  {filteredGroupItems.length !== 0 && (
161
- <div className={css.filterGroupActions}>
225
+ <DropdownGroup className={css.filterGroupActions}>
162
226
  {areAllGroupItemsChecked ? (
163
227
  <DropdownItem id="clear-all" onClick={getOnGroupCheck(false)} role="button">
164
228
  {I18N.CLEAR}
@@ -168,7 +232,7 @@ const FilterGroup = (props: FilterGroupProps) => {
168
232
  {I18N.CHECK}
169
233
  </DropdownItem>
170
234
  )}
171
- </div>
235
+ </DropdownGroup>
172
236
  )}
173
237
  </Dropdown>
174
238
  );
@@ -5,19 +5,21 @@
5
5
  .anchor {
6
6
  display: inline-block;
7
7
  color: inherit;
8
+ cursor: default;
8
9
  text-decoration: none;
10
+ transition: var(--transition-out);
9
11
  }
10
12
 
13
+ .anchor:focus,
14
+ .anchor:active,
11
15
  .anchor:hover {
12
- color: var(--color-primary);
13
- }
14
-
15
- .anchor:focus {
16
+ color: var(--color-accent-dark);
16
17
  outline: 0;
18
+ transition: var(--transition-in);
17
19
  }
18
20
 
19
21
  .hoverCard {
20
- z-index: var(--layer-high);
22
+ z-index: var(--layer-overlay);
21
23
  padding: var(--space-small);
22
24
  border-radius: var(--radius-medium);
23
25
  width: calc(100vw - 2 * var(--space-small));
@@ -27,4 +29,15 @@
27
29
  will-change: filter;
28
30
  background: var(--color-light);
29
31
  font-size: var(--size-small);
32
+ opacity: 0;
33
+ transition: var(--transition-out);
34
+ }
35
+
36
+ .hoverCard[data-enter] {
37
+ opacity: 1;
38
+ transition: var(--transition-in);
39
+ }
40
+
41
+ .hoverCard[data-leave] {
42
+ pointer-events: none;
30
43
  }
@@ -31,7 +31,13 @@ export const HoverCard = (props: HoverCardProps) => {
31
31
  children,
32
32
  } = props;
33
33
 
34
- const state = useHovercardState({ gutter: 8, timeout: 300, placement: 'top' });
34
+ const state = useHovercardState({
35
+ animated: true,
36
+ gutter: 8,
37
+ timeout: 300,
38
+ overflowPadding: 48,
39
+ placement: 'top',
40
+ });
35
41
  const hovercardProps = useHovercard({ state, portal: true });
36
42
 
37
43
  // Fallback to span if no href
@@ -3,7 +3,7 @@
3
3
  border-radius: var(--radius-small);
4
4
  color: var(--color-text-light);
5
5
  width: 100%;
6
- transition: var(--transition-in);
6
+ transition: var(--transition-out);
7
7
  appearance: none;
8
8
  outline: none;
9
9
  }
@@ -27,7 +27,7 @@
27
27
  .root:focus {
28
28
  border-color: var(--color-outline-dark);
29
29
  color: inherit;
30
- transition: var(--transition-out);
30
+ transition: var(--transition-in);
31
31
  }
32
32
 
33
33
  /** Size modifier */
@@ -16,7 +16,6 @@
16
16
 
17
17
  .root thead th {
18
18
  border-width: 0 0 1px;
19
- text-transform: uppercase;
20
19
  vertical-align: top;
21
20
  background: var(--color-highlight);
22
21
  }
@@ -34,21 +33,28 @@
34
33
  border-top: 0;
35
34
  }
36
35
 
37
- .root tbody td a {
36
+ .root tbody a {
38
37
  color: inherit;
39
38
  text-decoration: none;
40
39
  }
41
40
 
42
- .root tbody td a:hover,
43
- .root tbody td a:focus,
44
- .root tbody td a:active {
45
- color: var(--color-primary);
41
+ .root tbody a:focus,
42
+ .root tbody a:active,
43
+ .root tbody a:hover {
44
+ color: var(--color-accent);
46
45
  text-decoration: underline;
47
46
  }
48
47
 
48
+ /* hover current row */
49
+ .root tbody tr th,
50
+ .root tbody tr td {
51
+ transition: var(--transition-out);
52
+ }
53
+
49
54
  .root tbody tr:hover th,
50
55
  .root tbody tr:hover td {
51
56
  background-color: var(--color-highlight-warning);
57
+ transition: var(--transition-in);
52
58
  }
53
59
 
54
60
  .empty {
@@ -13,7 +13,7 @@
13
13
  color: var(--color-text-ultra-light);
14
14
  font-weight: bold;
15
15
  text-decoration: none;
16
- transition: var(--ui-transition-out);
16
+ transition: var(--transition-out);
17
17
  }
18
18
 
19
19
  .item::after {
@@ -24,27 +24,31 @@
24
24
  right: 0;
25
25
  bottom: -1px;
26
26
  height: 2px;
27
- background: transparent;
27
+ background: currentColor;
28
+ opacity: 0;
29
+ transition: var(--transition-out);
28
30
  }
29
31
 
30
- .item:hover,
32
+ .item:focus,
31
33
  .item:active,
32
- .item:focus {
33
- color: var(--color-primary);
34
+ .item:hover {
35
+ color: var(--color-accent);
34
36
  outline: none;
35
- transition: var(--ui-transition-out);
36
37
  }
37
38
 
38
39
  .item:hover::after,
39
40
  .item:active::after,
40
41
  .item:focus::after {
41
- background: currentColor;
42
+ opacity: 1;
43
+ transition: var(--transition-in);
42
44
  }
43
45
 
44
46
  .itemActive {
45
- color: var(--color-primary);
47
+ color: var(--color-accent);
48
+ transition: var(--transition-in);
46
49
  }
47
50
 
48
51
  .itemActive::after {
49
- background: currentColor;
52
+ opacity: 1;
53
+ transition: var(--transition-in);
50
54
  }
@@ -10,7 +10,6 @@
10
10
 
11
11
  a.root {
12
12
  text-decoration: none;
13
- transition: var(--transition-out);
14
13
  }
15
14
 
16
15
  a.root:hover,
@@ -19,7 +18,6 @@ a.root:active {
19
18
  opacity: 0.8;
20
19
  color: var(--color-light);
21
20
  text-decoration: none;
22
- transition: var(--transition-in);
23
21
  }
24
22
 
25
23
  /** Kind variation */
@@ -4,7 +4,7 @@
4
4
  color: var(--color-text-light);
5
5
  width: 100%;
6
6
  resize: vertical;
7
- transition: var(--transition-in);
7
+ transition: var(--transition-out);
8
8
  appearance: none;
9
9
  outline: none;
10
10
  }
@@ -28,7 +28,7 @@
28
28
  .root:focus {
29
29
  border-color: var(--color-outline-dark);
30
30
  color: inherit;
31
- transition: var(--transition-out);
31
+ transition: var(--transition-in);
32
32
  }
33
33
 
34
34
  .root[readonly=''] {
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import cx from 'classnames';
3
3
  import PropTypes from 'prop-types';
4
4
 
5
+ import { FlexStack } from '../../layout/flex-stack';
5
6
  import css from './toolbar.module.css';
6
7
 
7
8
  export const Toolbar = (props) => {
@@ -12,7 +13,9 @@ export const Toolbar = (props) => {
12
13
  <div className={rootClassName}>
13
14
  <div className={css.content}>{children}</div>
14
15
  {renderActions && (
15
- <div className={css.actions}>{renderActions({ actionClassName: css.action })}</div>
16
+ <FlexStack gap="xsmall" alignItems="center" className={css.actions}>
17
+ {renderActions({ actionClassName: css.action })}
18
+ </FlexStack>
16
19
  )}
17
20
  </div>
18
21
  );
@@ -6,18 +6,12 @@
6
6
 
7
7
  .actions {
8
8
  margin-top: var(--space-xsmall);
9
- display: flex;
10
- align-items: center;
11
9
  }
12
10
 
13
11
  .action {
14
12
  flex: 0 0 auto;
15
13
  }
16
14
 
17
- .action + .action {
18
- margin-left: var(--space-xsmall);
19
- }
20
-
21
15
  @media (min-width: 768px) {
22
16
  .root {
23
17
  display: flex;
@@ -11,7 +11,7 @@
11
11
  }
12
12
 
13
13
  .tooltip {
14
- z-index: var(--layer-high);
14
+ z-index: var(--layer-overlay);
15
15
  padding: var(--space-xxxsmall) var(--space-xxsmall);
16
16
  border-radius: var(--radius-small);
17
17
  background: var(--color-text);
@@ -21,6 +21,17 @@
21
21
  text-align: center;
22
22
  filter: drop-shadow(var(--shadow-layer));
23
23
  will-change: filter;
24
+ opacity: 0;
25
+ transition: var(--transition-out);
26
+ }
27
+
28
+ .tooltip[data-enter] {
29
+ opacity: 1;
30
+ transition: var(--transition-in);
31
+ }
32
+
33
+ .tooltip[data-leave] {
34
+ pointer-events: none;
24
35
  }
25
36
 
26
37
  .arrow svg {
@@ -29,7 +29,12 @@ export const Tooltip = <T extends React.ElementType = 'span'>(
29
29
  ...restProps
30
30
  } = props;
31
31
 
32
- const tooltip = useTooltipState({ placement: 'top', timeout: 300 });
32
+ const tooltip = useTooltipState({
33
+ animated: true,
34
+ placement: 'top',
35
+ overflowPadding: 48,
36
+ timeout: 300,
37
+ });
33
38
 
34
39
  return (
35
40
  <>
@@ -1,3 +1,4 @@
1
1
  export * from './colors';
2
2
  export * from './jobs';
3
3
  export * from './components';
4
+ export * from './portal';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Ariakit appends nested portals (tooltips, hovercards, menus) to the parent portal node,
3
+ * create the portal node with a specific class to adjust the z-index of the nested overlays
4
+ */
5
+ export const getCreatePortalElement = (className: string) => (element: HTMLElement) => {
6
+ const portalElement = element.ownerDocument.createElement('div');
7
+ portalElement.className = className;
8
+ return portalElement;
9
+ };
@@ -1,22 +1,8 @@
1
- export function Delta({ className, displayValue, deltaType, inverted }: {
2
- className?: string | undefined;
3
- displayValue: any;
4
- deltaType: any;
5
- inverted?: boolean | undefined;
6
- }): React.JSX.Element;
7
- export namespace Delta {
8
- namespace defaultProps {
9
- let className: string;
10
- let inverted: boolean;
11
- }
12
- namespace propTypes {
13
- let className_1: PropTypes.Requireable<string>;
14
- export { className_1 as className };
15
- export let displayValue: PropTypes.Validator<string>;
16
- export let deltaType: PropTypes.Validator<string>;
17
- let inverted_1: PropTypes.Requireable<boolean>;
18
- export { inverted_1 as inverted };
19
- }
20
- }
21
1
  import React from 'react';
22
- import PropTypes from 'prop-types';
2
+ import type { MetricRunInfoDeltaType } from '@bundle-stats/utils';
3
+ export interface DeltaProps {
4
+ displayValue: string;
5
+ deltaType: MetricRunInfoDeltaType;
6
+ inverted?: boolean;
7
+ }
8
+ export declare const Delta: (props: DeltaProps & React.ComponentProps<"span">) => React.JSX.Element;
@@ -1 +1 @@
1
- export * from "./delta";
1
+ export * from './delta';
@@ -5,12 +5,15 @@ export { BundlePackages } from './bundle-packages';
5
5
  export { BundleModules } from './bundle-modules';
6
6
  export { ComponentLink } from './component-link';
7
7
  export { Delta } from './delta';
8
+ export type { DeltaProps } from './delta';
8
9
  export { InsightIcon } from './insight-icon';
9
10
  export { Insights } from './insights';
10
11
  export { JobName } from './job-name';
11
12
  export { JobsHeader } from './jobs-header';
12
13
  export { LighthouseTable } from './lighthouse-table';
13
14
  export { Metric } from './metric';
15
+ export { MetricChangeLegend } from './metric-change-legend';
16
+ export type { MetricChangeLegendProps } from './metric-change-legend';
14
17
  export { MetricRunInfo } from './metric-run-info';
15
18
  export type { MetricRunInfoProps } from './metric-run-info';
16
19
  export { MetricsTable } from './metrics-table';
@@ -0,0 +1 @@
1
+ export * from './metric-change-legend';
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export interface MetricChangeLegendProps extends React.ComponentProps<'div'> {
3
+ }
4
+ export declare const MetricChangeLegend: (props: MetricChangeLegendProps) => React.JSX.Element;
@@ -1,14 +1,11 @@
1
1
  import React, { ElementType } from 'react';
2
2
  import { RunInfoProps } from '../run-info';
3
- export interface MetricRunInfoProps {
3
+ export type MetricRunInfoProps = {
4
4
  metricId: string;
5
5
  current: number;
6
6
  baseline?: number;
7
- showDelta?: boolean;
8
7
  showMetricDescription?: boolean;
9
- showBaseline?: boolean;
10
8
  titleWrapper?: ElementType;
11
- size?: RunInfoProps['size'];
12
- loading?: RunInfoProps['loading'];
13
- }
9
+ showDeltaAbsoluteValue?: boolean;
10
+ } & Pick<RunInfoProps, 'showDelta' | 'showBaseline' | 'size' | 'loading'>;
14
11
  export declare const MetricRunInfo: (props: MetricRunInfoProps & React.ComponentProps<"div">) => React.JSX.Element;
@@ -13,9 +13,10 @@ interface MetricsTableProps extends Omit<React.ComponentProps<typeof Table>, 'ti
13
13
  sort?: MetricsTableHeaderProps['sort'];
14
14
  updateSort?: MetricsTableHeaderProps['updateSort'];
15
15
  renderRowHeader?: (item: ReportMetricRow) => React.ReactNode;
16
+ onRowClick?: (item: ReportMetricRow) => void;
16
17
  emptyMessage?: React.ReactNode;
17
18
  showAllItems: boolean;
18
19
  setShowAllItems: (value: boolean) => void;
19
20
  }
20
- export declare const MetricsTable: ({ className, runs, items, showHeaderSum, title, sort, updateSort, renderRowHeader, emptyMessage, showAllItems, setShowAllItems, ...restProps }: MetricsTableProps) => React.JSX.Element;
21
+ export declare const MetricsTable: ({ className, runs, items, showHeaderSum, title, sort, updateSort, renderRowHeader, onRowClick, emptyMessage, showAllItems, setShowAllItems, ...restProps }: MetricsTableProps) => React.JSX.Element;
21
22
  export {};
@@ -0,0 +1 @@
1
+ export * from './metrics-table-row-count';
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { FlexStackProps } from '../../layout/flex-stack';
3
+ export type MetricsTableRowCountProps = {
4
+ count: number;
5
+ total: number;
6
+ } & FlexStackProps<'span'>;
7
+ export declare const MetricsTableRowCount: (props: MetricsTableRowCountProps) => React.JSX.Element;
@@ -20,6 +20,8 @@ export type TreeNode = Tree | TreeLeaf;
20
20
  export type TreeNodeChildren = Array<TreeNode>;
21
21
  export type TileGroupSizeDisplay = 'minimal' | 'small' | 'default';
22
22
  export type TileSizeDisplay = 'minimal' | 'small' | 'default';
23
+ export declare const NODE_ID_ATTRIBUTE = "data-treemap-id";
24
+ export declare const NODE_ID_SELECTOR = "[data-treemap-id]";
23
25
  export declare const SQUARIFY_RATIO = 1.66;
24
26
  export declare const PADDING_OUTER = 1;
25
27
  export declare const PADDING_INNER = 2;