@bundle-stats/ui 4.23.0-beta.1 → 4.23.0-beta.11

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 (330) hide show
  1. package/lib/app/app.js +16 -5
  2. package/lib/app/app.js.map +1 -1
  3. package/lib/app/app.module.css +13 -9
  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/entry-info/entry-info.js +4 -2
  24. package/lib/components/entry-info/entry-info.js.map +1 -1
  25. package/lib/components/entry-info/entry-info.module.css +8 -2
  26. package/lib/components/jobs-header/jobs-header.js +1 -1
  27. package/lib/components/jobs-header/jobs-header.js.map +1 -1
  28. package/lib/components/jobs-header/jobs-header.module.css +0 -1
  29. package/lib/components/metric-change-legend/metric-change-legend.js +2 -2
  30. package/lib/components/metric-change-legend/metric-change-legend.js.map +1 -1
  31. package/lib/components/metric-change-legend/metric-change-legend.module.css +11 -0
  32. package/lib/components/metric-run-info/metric-run-info.js +4 -11
  33. package/lib/components/metric-run-info/metric-run-info.js.map +1 -1
  34. package/lib/components/metrics-display-selector/metrics-display-selector.module.css +4 -4
  35. package/lib/components/metrics-table/metrics-table.js +31 -20
  36. package/lib/components/metrics-table/metrics-table.js.map +1 -1
  37. package/lib/components/metrics-table/metrics-table.module.css +4 -12
  38. package/lib/components/metrics-table-options/metrics-table-options.js +5 -6
  39. package/lib/components/metrics-table-options/metrics-table-options.js.map +1 -1
  40. package/lib/components/metrics-table-row-count/index.js +18 -0
  41. package/lib/components/metrics-table-row-count/index.js.map +1 -0
  42. package/lib/components/metrics-table-row-count/metrics-table-row-count.js +17 -0
  43. package/lib/components/metrics-table-row-count/metrics-table-row-count.js.map +1 -0
  44. package/lib/components/metrics-table-row-count/metrics-table-row-count.module.css +5 -0
  45. package/lib/components/metrics-treemap/metrics-treemap.constants.js +3 -1
  46. package/lib/components/metrics-treemap/metrics-treemap.constants.js.map +1 -1
  47. package/lib/components/metrics-treemap/metrics-treemap.js +46 -113
  48. package/lib/components/metrics-treemap/metrics-treemap.js.map +1 -1
  49. package/lib/components/metrics-treemap/metrics-treemap.module.css +3 -274
  50. package/lib/components/metrics-treemap/metrics-treemap.utils.js +81 -16
  51. package/lib/components/metrics-treemap/metrics-treemap.utils.js.map +1 -1
  52. package/lib/components/metrics-treemap/tile/index.js +18 -0
  53. package/lib/components/metrics-treemap/tile/index.js.map +1 -0
  54. package/lib/components/metrics-treemap/tile/tile.js +79 -0
  55. package/lib/components/metrics-treemap/tile/tile.js.map +1 -0
  56. package/lib/components/metrics-treemap/tile/tile.module.css +146 -0
  57. package/lib/components/metrics-treemap/tile-group/index.js +18 -0
  58. package/lib/components/metrics-treemap/tile-group/index.js.map +1 -0
  59. package/lib/components/metrics-treemap/tile-group/tile-group.js +75 -0
  60. package/lib/components/metrics-treemap/tile-group/tile-group.js.map +1 -0
  61. package/lib/components/metrics-treemap/tile-group/tile-group.module.css +59 -0
  62. package/lib/components/metrics-treemap/tile-group-title/index.js +18 -0
  63. package/lib/components/metrics-treemap/tile-group-title/index.js.map +1 -0
  64. package/lib/components/metrics-treemap/tile-group-title/tile-group-title.js +24 -0
  65. package/lib/components/metrics-treemap/tile-group-title/tile-group-title.js.map +1 -0
  66. package/lib/components/metrics-treemap/tile-group-title/tile-group-title.module.css +44 -0
  67. package/lib/components/run-info/run-info.module.css +6 -6
  68. package/lib/components/sort-button/sort-button.module.css +5 -4
  69. package/lib/components/summary/summary.js +5 -4
  70. package/lib/components/summary/summary.js.map +1 -1
  71. package/lib/components/summary/summary.module.css +18 -18
  72. package/lib/css/default.css +9 -4
  73. package/lib/css/variables.css +42 -28
  74. package/lib/layout/box/box.module.css +4 -2
  75. package/lib/layout/flex-stack/flex-stack.js +2 -2
  76. package/lib/layout/flex-stack/flex-stack.js.map +1 -1
  77. package/lib/layout/flex-stack/flex-stack.module.css +65 -10
  78. package/lib/query-state.js +6 -3
  79. package/lib/query-state.js.map +1 -1
  80. package/lib/ui/button/button.js +3 -2
  81. package/lib/ui/button/button.js.map +1 -1
  82. package/lib/ui/button/button.module.css +41 -28
  83. package/lib/ui/control-group/control-group.js +1 -1
  84. package/lib/ui/control-group/control-group.js.map +1 -1
  85. package/lib/ui/copy-to-clipboard/copy-to-clipboard.module.css +4 -2
  86. package/lib/ui/dialog/dialog.js +3 -1
  87. package/lib/ui/dialog/dialog.js.map +1 -1
  88. package/lib/ui/dialog/dialog.module.css +16 -5
  89. package/lib/ui/dropdown/dropdown.js +11 -3
  90. package/lib/ui/dropdown/dropdown.js.map +1 -1
  91. package/lib/ui/dropdown/dropdown.module.css +56 -9
  92. package/lib/ui/filters/filters.js +28 -16
  93. package/lib/ui/filters/filters.js.map +1 -1
  94. package/lib/ui/filters/filters.module.css +7 -21
  95. package/lib/ui/hover-card/hover-card.js +7 -1
  96. package/lib/ui/hover-card/hover-card.js.map +1 -1
  97. package/lib/ui/hover-card/hover-card.module.css +14 -10
  98. package/lib/ui/input/input.module.css +4 -2
  99. package/lib/ui/table/table.module.css +14 -5
  100. package/lib/ui/tabs/tabs.module.css +17 -9
  101. package/lib/ui/tag/tag.module.css +0 -2
  102. package/lib/ui/textarea/textarea.module.css +4 -2
  103. package/lib/ui/toolbar/toolbar.js +2 -1
  104. package/lib/ui/toolbar/toolbar.js.map +1 -1
  105. package/lib/ui/toolbar/toolbar.module.css +0 -6
  106. package/lib/ui/tooltip/tooltip.js +6 -1
  107. package/lib/ui/tooltip/tooltip.js.map +1 -1
  108. package/lib/ui/tooltip/tooltip.module.css +5 -3
  109. package/lib/utils/index.js +1 -0
  110. package/lib/utils/index.js.map +1 -1
  111. package/lib/utils/portal.js +26 -0
  112. package/lib/utils/portal.js.map +1 -0
  113. package/lib-esm/app/app.js +16 -5
  114. package/lib-esm/app/app.js.map +1 -1
  115. package/lib-esm/app/app.module.css +13 -9
  116. package/lib-esm/app/header/header.module.css +1 -3
  117. package/lib-esm/components/asset-name/asset-name.js +8 -7
  118. package/lib-esm/components/asset-name/asset-name.js.map +1 -1
  119. package/lib-esm/components/asset-name/asset-name.module.css +11 -10
  120. package/lib-esm/components/bundle-assets/bundle-assets.js +4 -2
  121. package/lib-esm/components/bundle-assets/bundle-assets.js.map +1 -1
  122. package/lib-esm/components/bundle-assets/bundle-assets.module.css +0 -12
  123. package/lib-esm/components/bundle-assets/index.js +2 -1
  124. package/lib-esm/components/bundle-assets/index.js.map +1 -1
  125. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js +4 -2
  126. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
  127. package/lib-esm/components/bundle-modules/bundle-modules.js +5 -3
  128. package/lib-esm/components/bundle-modules/bundle-modules.js.map +1 -1
  129. package/lib-esm/components/bundle-modules/bundle-modules.module.css +2 -16
  130. package/lib-esm/components/bundle-modules/index.js +2 -1
  131. package/lib-esm/components/bundle-modules/index.js.map +1 -1
  132. package/lib-esm/components/bundle-packages/bundle-packages.js +5 -3
  133. package/lib-esm/components/bundle-packages/bundle-packages.js.map +1 -1
  134. package/lib-esm/components/bundle-packages/bundle-packages.module.css +18 -22
  135. package/lib-esm/components/entry-info/entry-info.js +4 -2
  136. package/lib-esm/components/entry-info/entry-info.js.map +1 -1
  137. package/lib-esm/components/entry-info/entry-info.module.css +8 -2
  138. package/lib-esm/components/jobs-header/jobs-header.js +1 -1
  139. package/lib-esm/components/jobs-header/jobs-header.js.map +1 -1
  140. package/lib-esm/components/jobs-header/jobs-header.module.css +0 -1
  141. package/lib-esm/components/metric-change-legend/metric-change-legend.js +2 -2
  142. package/lib-esm/components/metric-change-legend/metric-change-legend.js.map +1 -1
  143. package/lib-esm/components/metric-change-legend/metric-change-legend.module.css +11 -0
  144. package/lib-esm/components/metric-run-info/metric-run-info.js +5 -12
  145. package/lib-esm/components/metric-run-info/metric-run-info.js.map +1 -1
  146. package/lib-esm/components/metrics-display-selector/metrics-display-selector.module.css +4 -4
  147. package/lib-esm/components/metrics-table/metrics-table.js +32 -20
  148. package/lib-esm/components/metrics-table/metrics-table.js.map +1 -1
  149. package/lib-esm/components/metrics-table/metrics-table.module.css +4 -12
  150. package/lib-esm/components/metrics-table-options/metrics-table-options.js +6 -7
  151. package/lib-esm/components/metrics-table-options/metrics-table-options.js.map +1 -1
  152. package/lib-esm/components/metrics-table-row-count/index.js +2 -0
  153. package/lib-esm/components/metrics-table-row-count/index.js.map +1 -0
  154. package/lib-esm/components/metrics-table-row-count/metrics-table-row-count.js +10 -0
  155. package/lib-esm/components/metrics-table-row-count/metrics-table-row-count.js.map +1 -0
  156. package/lib-esm/components/metrics-table-row-count/metrics-table-row-count.module.css +5 -0
  157. package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js +2 -0
  158. package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js.map +1 -1
  159. package/lib-esm/components/metrics-treemap/metrics-treemap.js +52 -120
  160. package/lib-esm/components/metrics-treemap/metrics-treemap.js.map +1 -1
  161. package/lib-esm/components/metrics-treemap/metrics-treemap.module.css +3 -274
  162. package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js +80 -18
  163. package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js.map +1 -1
  164. package/lib-esm/components/metrics-treemap/tile/index.js +2 -0
  165. package/lib-esm/components/metrics-treemap/tile/index.js.map +1 -0
  166. package/lib-esm/components/metrics-treemap/tile/tile.js +40 -0
  167. package/lib-esm/components/metrics-treemap/tile/tile.js.map +1 -0
  168. package/lib-esm/components/metrics-treemap/tile/tile.module.css +146 -0
  169. package/lib-esm/components/metrics-treemap/tile-group/index.js +2 -0
  170. package/lib-esm/components/metrics-treemap/tile-group/index.js.map +1 -0
  171. package/lib-esm/components/metrics-treemap/tile-group/tile-group.js +35 -0
  172. package/lib-esm/components/metrics-treemap/tile-group/tile-group.js.map +1 -0
  173. package/lib-esm/components/metrics-treemap/tile-group/tile-group.module.css +59 -0
  174. package/lib-esm/components/metrics-treemap/tile-group-title/index.js +2 -0
  175. package/lib-esm/components/metrics-treemap/tile-group-title/index.js.map +1 -0
  176. package/lib-esm/components/metrics-treemap/tile-group-title/tile-group-title.js +17 -0
  177. package/lib-esm/components/metrics-treemap/tile-group-title/tile-group-title.js.map +1 -0
  178. package/lib-esm/components/metrics-treemap/tile-group-title/tile-group-title.module.css +44 -0
  179. package/lib-esm/components/run-info/run-info.module.css +6 -6
  180. package/lib-esm/components/sort-button/sort-button.module.css +5 -4
  181. package/lib-esm/components/summary/summary.js +5 -4
  182. package/lib-esm/components/summary/summary.js.map +1 -1
  183. package/lib-esm/components/summary/summary.module.css +18 -18
  184. package/lib-esm/css/default.css +9 -4
  185. package/lib-esm/css/variables.css +42 -28
  186. package/lib-esm/layout/box/box.module.css +4 -2
  187. package/lib-esm/layout/flex-stack/flex-stack.js +3 -2
  188. package/lib-esm/layout/flex-stack/flex-stack.js.map +1 -1
  189. package/lib-esm/layout/flex-stack/flex-stack.module.css +65 -10
  190. package/lib-esm/query-state.js +7 -4
  191. package/lib-esm/query-state.js.map +1 -1
  192. package/lib-esm/ui/button/button.js +3 -2
  193. package/lib-esm/ui/button/button.js.map +1 -1
  194. package/lib-esm/ui/button/button.module.css +41 -28
  195. package/lib-esm/ui/control-group/control-group.js +1 -1
  196. package/lib-esm/ui/control-group/control-group.js.map +1 -1
  197. package/lib-esm/ui/copy-to-clipboard/copy-to-clipboard.module.css +4 -2
  198. package/lib-esm/ui/dialog/dialog.js +3 -1
  199. package/lib-esm/ui/dialog/dialog.js.map +1 -1
  200. package/lib-esm/ui/dialog/dialog.module.css +16 -5
  201. package/lib-esm/ui/dropdown/dropdown.js +9 -2
  202. package/lib-esm/ui/dropdown/dropdown.js.map +1 -1
  203. package/lib-esm/ui/dropdown/dropdown.module.css +56 -9
  204. package/lib-esm/ui/filters/filters.js +29 -17
  205. package/lib-esm/ui/filters/filters.js.map +1 -1
  206. package/lib-esm/ui/filters/filters.module.css +7 -21
  207. package/lib-esm/ui/hover-card/hover-card.js +7 -1
  208. package/lib-esm/ui/hover-card/hover-card.js.map +1 -1
  209. package/lib-esm/ui/hover-card/hover-card.module.css +14 -10
  210. package/lib-esm/ui/input/input.module.css +4 -2
  211. package/lib-esm/ui/table/table.module.css +14 -5
  212. package/lib-esm/ui/tabs/tabs.module.css +17 -9
  213. package/lib-esm/ui/tag/tag.module.css +0 -2
  214. package/lib-esm/ui/textarea/textarea.module.css +4 -2
  215. package/lib-esm/ui/toolbar/toolbar.js +2 -1
  216. package/lib-esm/ui/toolbar/toolbar.js.map +1 -1
  217. package/lib-esm/ui/toolbar/toolbar.module.css +0 -6
  218. package/lib-esm/ui/tooltip/tooltip.js +6 -1
  219. package/lib-esm/ui/tooltip/tooltip.js.map +1 -1
  220. package/lib-esm/ui/tooltip/tooltip.module.css +5 -3
  221. package/lib-esm/utils/index.js +1 -0
  222. package/lib-esm/utils/index.js.map +1 -1
  223. package/lib-esm/utils/portal.js +21 -0
  224. package/lib-esm/utils/portal.js.map +1 -0
  225. package/package.json +17 -17
  226. package/src/app/app.jsx +31 -12
  227. package/src/app/app.module.css +13 -9
  228. package/src/app/header/header.module.css +1 -3
  229. package/src/components/asset-name/asset-name.module.css +11 -10
  230. package/src/components/asset-name/asset-name.tsx +17 -14
  231. package/src/components/bundle-assets/bundle-assets.module.css +0 -12
  232. package/src/components/bundle-assets/bundle-assets.tsx +8 -1
  233. package/src/components/bundle-assets/index.tsx +3 -1
  234. package/src/components/bundle-assets-totals/bundle-assets-totals.jsx +6 -4
  235. package/src/components/bundle-modules/bundle-modules.module.css +2 -16
  236. package/src/components/bundle-modules/bundle-modules.tsx +10 -3
  237. package/src/components/bundle-modules/index.tsx +3 -1
  238. package/src/components/bundle-packages/bundle-packages.jsx +14 -3
  239. package/src/components/bundle-packages/bundle-packages.module.css +18 -22
  240. package/src/components/entry-info/entry-info.module.css +8 -2
  241. package/src/components/entry-info/entry-info.tsx +9 -3
  242. package/src/components/jobs-header/jobs-header.module.css +0 -1
  243. package/src/components/jobs-header/jobs-header.tsx +2 -2
  244. package/src/components/metric-change-legend/metric-change-legend.module.css +11 -0
  245. package/src/components/metric-change-legend/metric-change-legend.tsx +2 -2
  246. package/src/components/metric-run-info/metric-run-info.stories.tsx +9 -0
  247. package/src/components/metric-run-info/metric-run-info.tsx +10 -12
  248. package/src/components/metrics-display-selector/metrics-display-selector.module.css +4 -4
  249. package/src/components/metrics-table/metrics-table.module.css +4 -12
  250. package/src/components/metrics-table/metrics-table.tsx +70 -39
  251. package/src/components/metrics-table-options/metrics-table-options.tsx +14 -15
  252. package/src/components/metrics-table-row-count/index.ts +1 -0
  253. package/src/components/metrics-table-row-count/metrics-table-row-count.module.css +5 -0
  254. package/src/components/metrics-table-row-count/metrics-table-row-count.tsx +21 -0
  255. package/src/components/metrics-treemap/metrics-treemap.constants.ts +9 -0
  256. package/src/components/metrics-treemap/metrics-treemap.module.css +3 -274
  257. package/src/components/metrics-treemap/metrics-treemap.stories.utils.ts +46 -0
  258. package/src/components/metrics-treemap/metrics-treemap.tsx +123 -428
  259. package/src/components/metrics-treemap/metrics-treemap.utils.ts +161 -27
  260. package/src/components/metrics-treemap/tile/index.ts +1 -0
  261. package/src/components/metrics-treemap/tile/tile.module.css +146 -0
  262. package/src/components/metrics-treemap/tile/tile.stories.tsx +139 -0
  263. package/src/components/metrics-treemap/tile/tile.tsx +121 -0
  264. package/src/components/metrics-treemap/tile-group/index.ts +1 -0
  265. package/src/components/metrics-treemap/tile-group/tile-group.module.css +59 -0
  266. package/src/components/metrics-treemap/tile-group/tile-group.stories.tsx +163 -0
  267. package/src/components/metrics-treemap/tile-group/tile-group.tsx +177 -0
  268. package/src/components/metrics-treemap/tile-group-title/index.ts +1 -0
  269. package/src/components/metrics-treemap/tile-group-title/tile-group-title.module.css +44 -0
  270. package/src/components/metrics-treemap/tile-group-title/tile-group-title.stories.tsx +88 -0
  271. package/src/components/metrics-treemap/tile-group-title/tile-group-title.tsx +51 -0
  272. package/src/components/run-info/run-info.module.css +6 -6
  273. package/src/components/sort-button/sort-button.module.css +5 -4
  274. package/src/components/summary/summary.module.css +18 -18
  275. package/src/components/summary/summary.tsx +9 -8
  276. package/src/css/default.css +9 -4
  277. package/src/css/variables.css +42 -28
  278. package/src/layout/box/box.module.css +4 -2
  279. package/src/layout/flex-stack/flex-stack.module.css +65 -10
  280. package/src/layout/flex-stack/flex-stack.stories.tsx +68 -9
  281. package/src/layout/flex-stack/flex-stack.tsx +24 -4
  282. package/src/query-state.tsx +9 -4
  283. package/src/ui/button/button.module.css +41 -28
  284. package/src/ui/button/button.stories.tsx +1 -1
  285. package/src/ui/button/button.tsx +3 -1
  286. package/src/ui/control-group/control-group.tsx +1 -1
  287. package/src/ui/copy-to-clipboard/copy-to-clipboard.module.css +4 -2
  288. package/src/ui/dialog/dialog.module.css +16 -5
  289. package/src/ui/dialog/dialog.stories.tsx +8 -0
  290. package/src/ui/dialog/dialog.tsx +7 -0
  291. package/src/ui/dropdown/dropdown.module.css +56 -9
  292. package/src/ui/dropdown/dropdown.stories.tsx +6 -0
  293. package/src/ui/dropdown/dropdown.tsx +13 -2
  294. package/src/ui/filters/filters.module.css +7 -21
  295. package/src/ui/filters/filters.tsx +131 -67
  296. package/src/ui/hover-card/hover-card.module.css +14 -10
  297. package/src/ui/hover-card/hover-card.tsx +7 -1
  298. package/src/ui/input/input.module.css +4 -2
  299. package/src/ui/table/table.module.css +14 -5
  300. package/src/ui/tabs/tabs.module.css +17 -9
  301. package/src/ui/tag/tag.module.css +0 -2
  302. package/src/ui/textarea/textarea.module.css +4 -2
  303. package/src/ui/toolbar/toolbar.jsx +4 -1
  304. package/src/ui/toolbar/toolbar.module.css +0 -6
  305. package/src/ui/tooltip/tooltip.module.css +5 -3
  306. package/src/ui/tooltip/tooltip.tsx +6 -1
  307. package/src/utils/index.ts +1 -0
  308. package/src/utils/portal.ts +34 -0
  309. package/types/components/metric-run-info/metric-run-info.d.ts +1 -0
  310. package/types/components/metrics-table/metrics-table.d.ts +2 -1
  311. package/types/components/metrics-table-row-count/index.d.ts +1 -0
  312. package/types/components/metrics-table-row-count/metrics-table-row-count.d.ts +7 -0
  313. package/types/components/metrics-treemap/metrics-treemap.constants.d.ts +2 -0
  314. package/types/components/metrics-treemap/metrics-treemap.utils.d.ts +16 -5
  315. package/types/components/metrics-treemap/tile/index.d.ts +1 -0
  316. package/types/components/metrics-treemap/tile/tile.d.ts +11 -0
  317. package/types/components/metrics-treemap/tile-group/index.d.ts +1 -0
  318. package/types/components/metrics-treemap/tile-group/tile-group.d.ts +20 -0
  319. package/types/components/metrics-treemap/tile-group-title/index.d.ts +1 -0
  320. package/types/components/metrics-treemap/tile-group-title/tile-group-title.d.ts +12 -0
  321. package/types/layout/flex-stack/flex-stack.d.ts +6 -2
  322. package/types/ui/button/button.d.ts +1 -0
  323. package/types/ui/dropdown/dropdown.d.ts +3 -1
  324. package/types/ui/filters/filters.d.ts +2 -1
  325. package/types/utils/index.d.ts +1 -0
  326. package/types/utils/portal.d.ts +2 -0
  327. package/vitest.config.ts +4 -0
  328. package/lib/components/metrics-table-options/metrics-table-options.module.css +0 -15
  329. package/lib-esm/components/metrics-table-options/metrics-table-options.module.css +0 -15
  330. package/src/components/metrics-table-options/metrics-table-options.module.css +0 -15
@@ -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
  );
@@ -7,21 +7,23 @@
7
7
  color: inherit;
8
8
  cursor: default;
9
9
  text-decoration: none;
10
- transition: var(--transition-out);
10
+ transition-property: color;
11
+ transition-duration: var(--transition-duration-out);
12
+ transition-timing-function: var(--transition-timing-function);
11
13
  }
12
14
 
15
+ .anchor:focus,
16
+ .anchor:active,
13
17
  .anchor:hover {
14
- color: var(--color-primary);
15
- transition: var(--transition-in);
16
- }
17
-
18
- .anchor:focus {
18
+ color: var(--color-accent-dark);
19
19
  outline: 0;
20
+ transition-duration: var(--transition-duration-in);
20
21
  }
21
22
 
22
23
  .hoverCard {
23
- z-index: var(--layer-high);
24
- padding: var(--space-small);
24
+ z-index: var(--layer-overlay);
25
+ padding: calc(var(--space-small) - 1px);
26
+ border: 1px solid var(--color-outline);
25
27
  border-radius: var(--radius-medium);
26
28
  width: calc(100vw - 2 * var(--space-small));
27
29
  max-width: 340px;
@@ -31,12 +33,14 @@
31
33
  background: var(--color-light);
32
34
  font-size: var(--size-small);
33
35
  opacity: 0;
34
- transition: var(--transition-out);
36
+ transition-property: opacity;
37
+ transition-duration: var(--transition-duration-out);
38
+ transition-timing-function: var(--transition-timing-function);
35
39
  }
36
40
 
37
41
  .hoverCard[data-enter] {
38
42
  opacity: 1;
39
- transition: var(--transition-in);
43
+ transition-duration: var(--transition-duration-in);
40
44
  }
41
45
 
42
46
  .hoverCard[data-leave] {
@@ -31,7 +31,13 @@ export const HoverCard = (props: HoverCardProps) => {
31
31
  children,
32
32
  } = props;
33
33
 
34
- const state = useHovercardState({ animated: true, 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,9 @@
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-property: color, border-color;
7
+ transition-duration: var(--transition-duration-out);
8
+ transition-timing-function: var(--transition-timing-function);
7
9
  appearance: none;
8
10
  outline: none;
9
11
  }
@@ -27,7 +29,7 @@
27
29
  .root:focus {
28
30
  border-color: var(--color-outline-dark);
29
31
  color: inherit;
30
- transition: var(--transition-out);
32
+ transition-duration: var(--transition-duration-in);
31
33
  }
32
34
 
33
35
  /** Size modifier */
@@ -33,21 +33,30 @@
33
33
  border-top: 0;
34
34
  }
35
35
 
36
- .root tbody td a {
36
+ .root tbody a {
37
37
  color: inherit;
38
38
  text-decoration: none;
39
39
  }
40
40
 
41
- .root tbody td a:hover,
42
- .root tbody td a:focus,
43
- .root tbody td a:active {
44
- color: var(--color-primary);
41
+ .root tbody a:focus,
42
+ .root tbody a:active,
43
+ .root tbody a:hover {
44
+ color: var(--color-accent);
45
45
  text-decoration: underline;
46
46
  }
47
47
 
48
+ /* hover current row */
49
+ .root tbody tr th,
50
+ .root tbody tr td {
51
+ transition-property: background-color;
52
+ transition-duration: var(--transition-duration-out);
53
+ transition-timing-function: var(--transition-timing-function);
54
+ }
55
+
48
56
  .root tbody tr:hover th,
49
57
  .root tbody tr:hover td {
50
58
  background-color: var(--color-highlight-warning);
59
+ transition-duration: var(--transition-duration-in);
51
60
  }
52
61
 
53
62
  .empty {
@@ -13,7 +13,9 @@
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-property: color;
17
+ transition-duration: var(--transition-duration-out);
18
+ transition-timing-function: var(--transition-timing-function);
17
19
  }
18
20
 
19
21
  .item::after {
@@ -24,27 +26,33 @@
24
26
  right: 0;
25
27
  bottom: -1px;
26
28
  height: 2px;
27
- background: transparent;
29
+ background: currentColor;
30
+ opacity: 0;
31
+ transition-property: opacity;
32
+ transition-duration: var(--transition-duration-out);
33
+ transition-timing-function: var(--transition-timing-function);
28
34
  }
29
35
 
30
- .item:hover,
36
+ .item:focus,
31
37
  .item:active,
32
- .item:focus {
33
- color: var(--color-primary);
38
+ .item:hover {
39
+ color: var(--color-accent);
34
40
  outline: none;
35
- transition: var(--ui-transition-out);
36
41
  }
37
42
 
38
43
  .item:hover::after,
39
44
  .item:active::after,
40
45
  .item:focus::after {
41
- background: currentColor;
46
+ opacity: 1;
47
+ transition-duration: var(--transition-duration-in);
42
48
  }
43
49
 
44
50
  .itemActive {
45
- color: var(--color-primary);
51
+ color: var(--color-accent);
52
+ transition-duration: var(--transition-duration-in);
46
53
  }
47
54
 
48
55
  .itemActive::after {
49
- background: currentColor;
56
+ opacity: 1;
57
+ transition-duration: var(--transition-duration-in);
50
58
  }
@@ -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,9 @@
4
4
  color: var(--color-text-light);
5
5
  width: 100%;
6
6
  resize: vertical;
7
- transition: var(--transition-in);
7
+ transition-property: color, border-color;
8
+ transition-duration: var(--transition-duration-out);
9
+ transition-timing-function: var(--transition-timing-function);
8
10
  appearance: none;
9
11
  outline: none;
10
12
  }
@@ -28,7 +30,7 @@
28
30
  .root:focus {
29
31
  border-color: var(--color-outline-dark);
30
32
  color: inherit;
31
- transition: var(--transition-out);
33
+ transition-duration: var(--transition-duration-in);
32
34
  }
33
35
 
34
36
  .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);
@@ -22,12 +22,14 @@
22
22
  filter: drop-shadow(var(--shadow-layer));
23
23
  will-change: filter;
24
24
  opacity: 0;
25
- transition: var(--transition-out);
25
+ transition-property: opacity;
26
+ transition-duration: var(--transition-duration-out);
27
+ transition-timing-function: var(--transition-timing-function);
26
28
  }
27
29
 
28
30
  .tooltip[data-enter] {
29
31
  opacity: 1;
30
- transition: var(--transition-in);
32
+ transition-duration: var(--transition-duration-in);
31
33
  }
32
34
 
33
35
  .tooltip[data-leave] {
@@ -29,7 +29,12 @@ export const Tooltip = <T extends React.ElementType = 'span'>(
29
29
  ...restProps
30
30
  } = props;
31
31
 
32
- const tooltip = useTooltipState({ animated: true, 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,34 @@
1
+ import { useEffect, useState } from 'react';
2
+
3
+ /**
4
+ * Ariakit appends nested portals (tooltips, hovercards, menus) to the parent portal node,
5
+ * create the portal node with a specific class to adjust the z-index of the nested overlays
6
+ */
7
+ export const getCreatePortalElement = (className: string) => (element: HTMLElement) => {
8
+ const portalElement = element.ownerDocument.createElement('div');
9
+ portalElement.className = className;
10
+ return portalElement;
11
+ };
12
+
13
+ /**
14
+ * Create a body level portal root with a specific class, to be passed to Ariakit `PortalContext`
15
+ * Overlays (tooltips, hovercards, menus) rendered inside the context are appended to the root,
16
+ * so the class can adjust their z-index without affecting the overlays from other sections
17
+ */
18
+ export const usePortalRoot = (className: string): HTMLElement | null => {
19
+ const [portalRoot, setPortalRoot] = useState<HTMLElement | null>(null);
20
+
21
+ useEffect(() => {
22
+ const element = document.createElement('div');
23
+ element.className = className;
24
+ document.body.appendChild(element);
25
+ setPortalRoot(element);
26
+
27
+ return () => {
28
+ element.remove();
29
+ setPortalRoot(null);
30
+ };
31
+ }, [className]);
32
+
33
+ return portalRoot;
34
+ };
@@ -6,5 +6,6 @@ export type MetricRunInfoProps = {
6
6
  baseline?: number;
7
7
  showMetricDescription?: boolean;
8
8
  titleWrapper?: ElementType;
9
+ showDeltaAbsoluteValue?: boolean;
9
10
  } & Pick<RunInfoProps, 'showDelta' | 'showBaseline' | 'size' | 'loading'>;
10
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;
@@ -1,15 +1,26 @@
1
- import { type RefObject } from 'react';
2
1
  import { DeltaType, type MetricRunInfoBaseline, type MetricRunInfo, type ReportMetricRow } from '@bundle-stats/utils';
3
- import { type Tree, type TileSizeDisplay, type TileGroupSizeDisplay } from './metrics-treemap.constants';
2
+ import { type TreeNode, type Tree, type TreeTotal, type TileSizeDisplay, type TileGroupSizeDisplay } from './metrics-treemap.constants';
4
3
  export declare function getTreemapNodes(items: Array<ReportMetricRow>): Tree;
5
4
  export declare function getTreemapNodesGroupedByPath(items: Array<ReportMetricRow>): Tree;
5
+ export declare function getTreemapNodesIndex(node: Tree, index?: Map<string, TreeNode>): Map<string, TreeNode>;
6
6
  export declare function resolveGroupDeltaType(metricRunInfo?: MetricRunInfo | MetricRunInfoBaseline): DeltaType.NO_CHANGE | DeltaType.NEGATIVE | DeltaType.POSITIVE;
7
+ export declare function getGroupRunInfo(total: TreeTotal): {
8
+ runInfo: MetricRunInfo;
9
+ baselineDisplayValue: string;
10
+ deltaType: DeltaType.NEGATIVE | DeltaType.NO_CHANGE | DeltaType.POSITIVE;
11
+ };
7
12
  export declare function resolveTileGroupSizeDisplay(width: number, height: number): TileGroupSizeDisplay;
8
13
  export declare function resolveTileSizeDisplay(width: number, height: number): TileSizeDisplay;
9
- interface UseTooltipStateWithMouseFollowOptions {
10
- parentRef: RefObject<Element>;
14
+ interface UseTreemapTooltipStateOptions {
11
15
  gutter?: number;
12
16
  timeout?: number;
17
+ hideTimeout?: number;
13
18
  }
14
- export declare function useTooltipStateWithMouseFollow(options: UseTooltipStateWithMouseFollowOptions): import("ariakit/tooltip").TooltipState;
19
+ export declare function useTreemapTooltipState(options?: UseTreemapTooltipStateOptions): {
20
+ tooltipState: import("ariakit/tooltip").TooltipState;
21
+ setPointer: (x: number, y: number) => void;
22
+ hoveredNodeId: string | null;
23
+ setHoveredNode: (nodeId: string | null) => void;
24
+ clearHoveredNode: () => void;
25
+ };
15
26
  export {};
@@ -0,0 +1 @@
1
+ export * from './tile';