@bundle-stats/ui 4.13.0-beta.16 → 4.13.0-beta.17

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 (81) hide show
  1. package/lib/assets/icons.svg +70 -67
  2. package/lib/assets/icons.svg.js +14 -12
  3. package/lib/assets/icons.svg.js.map +1 -1
  4. package/lib/components/bundle-assets/bundle-assets.js +39 -7
  5. package/lib/components/bundle-assets/bundle-assets.js.map +1 -1
  6. package/lib/components/bundle-assets-totals/bundle-assets-totals.js +4 -4
  7. package/lib/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
  8. package/lib/components/bundle-modules/bundle-modules.js +28 -7
  9. package/lib/components/bundle-modules/bundle-modules.js.map +1 -1
  10. package/lib/components/bundle-packages/bundle-packages.js +39 -7
  11. package/lib/components/bundle-packages/bundle-packages.js.map +1 -1
  12. package/lib/components/metrics-display-selector/metrics-display-selector.js +41 -4
  13. package/lib/components/metrics-display-selector/metrics-display-selector.js.map +1 -1
  14. package/lib/components/metrics-display-selector/metrics-display-selector.module.css +15 -7
  15. package/lib/components/metrics-treemap/index.js +4 -0
  16. package/lib/components/metrics-treemap/index.js.map +1 -1
  17. package/lib/components/metrics-treemap/metrics-treemap.constants.js +3 -0
  18. package/lib/components/metrics-treemap/metrics-treemap.constants.js.map +1 -0
  19. package/lib/components/metrics-treemap/metrics-treemap.js +57 -38
  20. package/lib/components/metrics-treemap/metrics-treemap.js.map +1 -1
  21. package/lib/components/metrics-treemap/metrics-treemap.module.css +55 -25
  22. package/lib/components/metrics-treemap/metrics-treemap.utils.js +70 -0
  23. package/lib/components/metrics-treemap/metrics-treemap.utils.js.map +1 -0
  24. package/lib/hooks/metrics-display-type.js +56 -24
  25. package/lib/hooks/metrics-display-type.js.map +1 -1
  26. package/lib/ui/icon/icon.js +1 -0
  27. package/lib/ui/icon/icon.js.map +1 -1
  28. package/lib-esm/assets/icons.svg +70 -67
  29. package/lib-esm/assets/icons.svg.js +14 -12
  30. package/lib-esm/assets/icons.svg.js.map +1 -1
  31. package/lib-esm/components/bundle-assets/bundle-assets.js +40 -8
  32. package/lib-esm/components/bundle-assets/bundle-assets.js.map +1 -1
  33. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js +5 -5
  34. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
  35. package/lib-esm/components/bundle-modules/bundle-modules.js +29 -8
  36. package/lib-esm/components/bundle-modules/bundle-modules.js.map +1 -1
  37. package/lib-esm/components/bundle-packages/bundle-packages.js +40 -8
  38. package/lib-esm/components/bundle-packages/bundle-packages.js.map +1 -1
  39. package/lib-esm/components/metrics-display-selector/metrics-display-selector.js +41 -4
  40. package/lib-esm/components/metrics-display-selector/metrics-display-selector.js.map +1 -1
  41. package/lib-esm/components/metrics-display-selector/metrics-display-selector.module.css +15 -7
  42. package/lib-esm/components/metrics-treemap/index.js +1 -0
  43. package/lib-esm/components/metrics-treemap/index.js.map +1 -1
  44. package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js +2 -0
  45. package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js.map +1 -0
  46. package/lib-esm/components/metrics-treemap/metrics-treemap.js +58 -39
  47. package/lib-esm/components/metrics-treemap/metrics-treemap.js.map +1 -1
  48. package/lib-esm/components/metrics-treemap/metrics-treemap.module.css +55 -25
  49. package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js +65 -0
  50. package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js.map +1 -0
  51. package/lib-esm/hooks/metrics-display-type.js +57 -24
  52. package/lib-esm/hooks/metrics-display-type.js.map +1 -1
  53. package/lib-esm/ui/icon/icon.js +1 -0
  54. package/lib-esm/ui/icon/icon.js.map +1 -1
  55. package/package.json +7 -7
  56. package/src/assets/icons/check.svg +4 -0
  57. package/src/assets/icons.svg +70 -67
  58. package/src/assets/icons.svg.jsx +12 -12
  59. package/src/components/bundle-assets/bundle-assets.jsx +76 -20
  60. package/src/components/bundle-assets-totals/bundle-assets-totals.jsx +5 -4
  61. package/src/components/bundle-modules/bundle-modules.tsx +76 -16
  62. package/src/components/bundle-packages/bundle-packages.jsx +71 -16
  63. package/src/components/metrics-display-selector/metrics-display-selector.module.css +15 -7
  64. package/src/components/metrics-display-selector/metrics-display-selector.stories.tsx +33 -0
  65. package/src/components/metrics-display-selector/metrics-display-selector.tsx +83 -25
  66. package/src/components/metrics-treemap/__tests__/metrics-treemap.utils.ts +143 -0
  67. package/src/components/metrics-treemap/index.ts +1 -0
  68. package/src/components/metrics-treemap/metrics-treemap.constants.ts +43 -0
  69. package/src/components/metrics-treemap/metrics-treemap.module.css +55 -25
  70. package/src/components/metrics-treemap/metrics-treemap.stories.tsx +44 -10
  71. package/src/components/metrics-treemap/metrics-treemap.tsx +247 -84
  72. package/src/components/metrics-treemap/metrics-treemap.utils.ts +107 -0
  73. package/src/hooks/metrics-display-type.ts +87 -29
  74. package/src/ui/icon/icon.tsx +1 -0
  75. package/types/components/metrics-display-selector/metrics-display-selector.d.ts +3 -1
  76. package/types/components/metrics-treemap/index.d.ts +1 -0
  77. package/types/components/metrics-treemap/metrics-treemap.constants.d.ts +15 -0
  78. package/types/components/metrics-treemap/metrics-treemap.d.ts +7 -5
  79. package/types/components/metrics-treemap/metrics-treemap.utils.d.ts +4 -0
  80. package/types/hooks/metrics-display-type.d.ts +8 -2
  81. package/types/ui/icon/icon.d.ts +2 -0
@@ -3,7 +3,9 @@ import { MetricsDisplayType } from '../../constants';
3
3
  import { ControlGroup } from '../../ui/control-group';
4
4
  interface MetricsDisplaySelectorProps {
5
5
  value: MetricsDisplayType;
6
- onSelect: (newValue: MetricsDisplayType) => void;
6
+ groupBy?: string;
7
+ groups?: Partial<Record<MetricsDisplayType, Array<string>>>;
8
+ onSelect: (newValue: MetricsDisplayType, groupBy?: string) => void;
7
9
  }
8
10
  export declare const MetricsDisplaySelector: (props: MetricsDisplaySelectorProps & Omit<React.ComponentProps<typeof ControlGroup>, 'onSelect' | 'value'>) => React.JSX.Element;
9
11
  export {};
@@ -1 +1,2 @@
1
1
  export * from './metrics-treemap';
2
+ export { getTreemapNodes, getTreemapNodesGroupedByPath } from './metrics-treemap.utils';
@@ -0,0 +1,15 @@
1
+ import type { ReportMetricRow } from '@bundle-stats/utils';
2
+ export interface TreeLeaf {
3
+ id: string;
4
+ label: string;
5
+ value: number;
6
+ item: ReportMetricRow;
7
+ }
8
+ export interface Tree {
9
+ id: string;
10
+ label: string;
11
+ value: number;
12
+ children: TreeNodeChildren;
13
+ }
14
+ export type TreeNode = Tree | TreeLeaf;
15
+ export type TreeNodeChildren = Array<TreeNode>;
@@ -1,9 +1,11 @@
1
- import React from 'react';
2
- import type { ReportMetricRow } from '@bundle-stats/utils';
1
+ import React, { type ComponentProps, type ReactNode } from 'react';
2
+ import type { Tree } from './metrics-treemap.constants';
3
3
  interface MetricsTreemapProps {
4
- items: Array<ReportMetricRow>;
5
- emptyMessage?: React.ReactNode;
4
+ treeNodes: Tree;
5
+ emptyMessage?: ReactNode;
6
+ nested?: boolean;
6
7
  onItemClick?: (entryId: string) => void;
8
+ onGroupClick?: (entryId: string) => void;
7
9
  }
8
- export declare const MetricsTreemap: (props: MetricsTreemapProps & React.ComponentProps<'div'>) => React.JSX.Element;
10
+ export declare const MetricsTreemap: (props: MetricsTreemapProps & ComponentProps<'div'>) => React.JSX.Element;
9
11
  export {};
@@ -0,0 +1,4 @@
1
+ import type { ReportMetricRow } from '@bundle-stats/utils';
2
+ import type { Tree } from './metrics-treemap.constants';
3
+ export declare function getTreemapNodes(items: Array<ReportMetricRow>): Tree;
4
+ export declare function getTreemapNodesGroupedByPath(items: Array<ReportMetricRow>): Tree;
@@ -1,4 +1,10 @@
1
1
  import { MetricsDisplayType } from '../constants';
2
- type UseMetricsDisplayType = [MetricsDisplayType, (value: MetricsDisplayType) => void];
3
- export declare const useMetricsDisplayType: () => UseMetricsDisplayType;
2
+ type UseMetricsDisplayType = [
3
+ {
4
+ value: MetricsDisplayType;
5
+ groupBy?: string;
6
+ },
7
+ (value: MetricsDisplayType, newGroupBy?: string) => void
8
+ ];
9
+ export declare const useMetricsDisplayType: (groups?: Partial<Record<MetricsDisplayType, Array<string>>>) => UseMetricsDisplayType;
4
10
  export {};
@@ -5,6 +5,7 @@ declare const ICONS: {
5
5
  readonly CANCEL: "close";
6
6
  readonly CHEVRON_DOWN: "chevron-down";
7
7
  readonly CHEVRON_UP: "chevron-up";
8
+ readonly CHECK: "check";
8
9
  readonly CLOSE: "close";
9
10
  readonly CLOCK: "clock";
10
11
  readonly COMMIT: "commit";
@@ -40,6 +41,7 @@ export declare const Icon: {
40
41
  readonly CANCEL: "close";
41
42
  readonly CHEVRON_DOWN: "chevron-down";
42
43
  readonly CHEVRON_UP: "chevron-up";
44
+ readonly CHECK: "check";
43
45
  readonly CLOSE: "close";
44
46
  readonly CLOCK: "clock";
45
47
  readonly COMMIT: "commit";