@bundle-stats/ui 4.15.1 → 4.16.0-beta.1
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.
- package/lib/assets/icons.svg +84 -70
- package/lib/assets/icons.svg.js +10 -0
- package/lib/assets/icons.svg.js.map +1 -1
- package/lib/components/bundle-assets/bundle-assets.js +9 -2
- package/lib/components/bundle-assets/bundle-assets.js.map +1 -1
- package/lib/components/bundle-assets-totals/bundle-assets-totals.js +21 -9
- package/lib/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
- package/lib/components/bundle-modules/bundle-modules.js +9 -2
- package/lib/components/bundle-modules/bundle-modules.js.map +1 -1
- package/lib/components/bundle-packages/bundle-packages.js +9 -2
- package/lib/components/bundle-packages/bundle-packages.js.map +1 -1
- package/lib/components/entry-info/entry-info.js +8 -4
- package/lib/components/entry-info/entry-info.js.map +1 -1
- package/lib/components/entry-info/entry-info.module.css +1 -1
- package/lib/components/metrics-table-export/index.js +18 -0
- package/lib/components/metrics-table-export/index.js.map +1 -0
- package/lib/components/metrics-table-export/metrics-table-export.js +86 -0
- package/lib/components/metrics-table-export/metrics-table-export.js.map +1 -0
- package/lib/components/metrics-table-export/metrics-table-export.module.css +8 -0
- package/lib/components/metrics-table-options/index.js.map +1 -1
- package/lib/components/metrics-table-options/metrics-table-options.js +7 -15
- package/lib/components/metrics-table-options/metrics-table-options.js.map +1 -1
- package/lib/components/preview-source/index.js +18 -0
- package/lib/components/preview-source/index.js.map +1 -0
- package/lib/components/preview-source/preview-source.js +25 -0
- package/lib/components/preview-source/preview-source.js.map +1 -0
- package/lib/components/preview-source/preview-source.module.css +28 -0
- package/lib/css/variables.css +1 -0
- package/lib/i18n.js +3 -0
- package/lib/i18n.js.map +1 -1
- package/lib/ui/button/button.js +2 -1
- package/lib/ui/button/button.js.map +1 -1
- package/lib/ui/copy-to-clipboard/copy-to-clipboard.js +56 -0
- package/lib/ui/copy-to-clipboard/copy-to-clipboard.js.map +1 -0
- package/lib/ui/copy-to-clipboard/copy-to-clipboard.module.css +15 -0
- package/lib/ui/copy-to-clipboard/index.js +18 -0
- package/lib/ui/copy-to-clipboard/index.js.map +1 -0
- package/lib/ui/dialog/dialog.js +27 -0
- package/lib/ui/dialog/dialog.js.map +1 -0
- package/lib/ui/dialog/dialog.module.css +89 -0
- package/lib/ui/dialog/index.js +18 -0
- package/lib/ui/dialog/index.js.map +1 -0
- package/lib/ui/icon/icon.js +3 -0
- package/lib/ui/icon/icon.js.map +1 -1
- package/lib/ui/index.js +7 -1
- package/lib/ui/index.js.map +1 -1
- package/lib/ui/tabs/tabs.js +2 -2
- package/lib/ui/tabs/tabs.js.map +1 -1
- package/lib/ui/textarea/index.js +18 -0
- package/lib/ui/textarea/index.js.map +1 -0
- package/lib/ui/textarea/textarea.js +16 -0
- package/lib/ui/textarea/textarea.js.map +1 -0
- package/lib/ui/textarea/textarea.module.css +64 -0
- package/lib-esm/assets/icons.svg +84 -70
- package/lib-esm/assets/icons.svg.js +10 -0
- package/lib-esm/assets/icons.svg.js.map +1 -1
- package/lib-esm/components/bundle-assets/bundle-assets.js +9 -2
- package/lib-esm/components/bundle-assets/bundle-assets.js.map +1 -1
- package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js +21 -9
- package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
- package/lib-esm/components/bundle-modules/bundle-modules.js +9 -2
- package/lib-esm/components/bundle-modules/bundle-modules.js.map +1 -1
- package/lib-esm/components/bundle-packages/bundle-packages.js +9 -2
- package/lib-esm/components/bundle-packages/bundle-packages.js.map +1 -1
- package/lib-esm/components/entry-info/entry-info.js +9 -5
- package/lib-esm/components/entry-info/entry-info.js.map +1 -1
- package/lib-esm/components/entry-info/entry-info.module.css +1 -1
- package/lib-esm/components/metrics-table-export/index.js +2 -0
- package/lib-esm/components/metrics-table-export/index.js.map +1 -0
- package/lib-esm/components/metrics-table-export/metrics-table-export.js +61 -0
- package/lib-esm/components/metrics-table-export/metrics-table-export.js.map +1 -0
- package/lib-esm/components/metrics-table-export/metrics-table-export.module.css +8 -0
- package/lib-esm/components/metrics-table-options/index.js.map +1 -1
- package/lib-esm/components/metrics-table-options/metrics-table-options.js +7 -15
- package/lib-esm/components/metrics-table-options/metrics-table-options.js.map +1 -1
- package/lib-esm/components/preview-source/index.js +2 -0
- package/lib-esm/components/preview-source/index.js.map +1 -0
- package/lib-esm/components/preview-source/preview-source.js +18 -0
- package/lib-esm/components/preview-source/preview-source.js.map +1 -0
- package/lib-esm/components/preview-source/preview-source.module.css +28 -0
- package/lib-esm/css/variables.css +1 -0
- package/lib-esm/i18n.js +3 -0
- package/lib-esm/i18n.js.map +1 -1
- package/lib-esm/ui/button/button.js +1 -0
- package/lib-esm/ui/button/button.js.map +1 -1
- package/lib-esm/ui/copy-to-clipboard/copy-to-clipboard.js +26 -0
- package/lib-esm/ui/copy-to-clipboard/copy-to-clipboard.js.map +1 -0
- package/lib-esm/ui/copy-to-clipboard/copy-to-clipboard.module.css +15 -0
- package/lib-esm/ui/copy-to-clipboard/index.js +2 -0
- package/lib-esm/ui/copy-to-clipboard/index.js.map +1 -0
- package/lib-esm/ui/dialog/dialog.js +19 -0
- package/lib-esm/ui/dialog/dialog.js.map +1 -0
- package/lib-esm/ui/dialog/dialog.module.css +89 -0
- package/lib-esm/ui/dialog/index.js +2 -0
- package/lib-esm/ui/dialog/index.js.map +1 -0
- package/lib-esm/ui/icon/icon.js +3 -0
- package/lib-esm/ui/icon/icon.js.map +1 -1
- package/lib-esm/ui/index.js +3 -0
- package/lib-esm/ui/index.js.map +1 -1
- package/lib-esm/ui/tabs/tabs.js +2 -2
- package/lib-esm/ui/tabs/tabs.js.map +1 -1
- package/lib-esm/ui/textarea/index.js +2 -0
- package/lib-esm/ui/textarea/index.js.map +1 -0
- package/lib-esm/ui/textarea/textarea.js +9 -0
- package/lib-esm/ui/textarea/textarea.js.map +1 -0
- package/lib-esm/ui/textarea/textarea.module.css +64 -0
- package/package.json +11 -11
- package/src/assets/icons/clipboard-check.svg +5 -0
- package/src/assets/icons/clipboard.svg +5 -0
- package/src/assets/icons/download.svg +4 -0
- package/src/assets/icons.svg +84 -70
- package/src/assets/icons.svg.jsx +36 -0
- package/src/components/bundle-assets/bundle-assets.jsx +15 -2
- package/src/components/bundle-assets-totals/bundle-assets-totals.jsx +54 -35
- package/src/components/bundle-modules/bundle-modules.tsx +15 -2
- package/src/components/bundle-packages/bundle-packages.jsx +15 -2
- package/src/components/entry-info/entry-info.module.css +1 -1
- package/src/components/entry-info/entry-info.tsx +23 -9
- package/src/components/metrics-table-export/index.ts +1 -0
- package/src/components/metrics-table-export/metrics-table-export.module.css +8 -0
- package/src/components/metrics-table-export/metrics-table-export.stories.tsx +30 -0
- package/src/components/metrics-table-export/metrics-table-export.tsx +103 -0
- package/src/components/metrics-table-options/metrics-table-options.stories.tsx +22 -0
- package/src/components/metrics-table-options/metrics-table-options.tsx +25 -0
- package/src/components/preview-source/index.ts +1 -0
- package/src/components/preview-source/preview-source.module.css +28 -0
- package/src/components/preview-source/preview-source.stories.tsx +35 -0
- package/src/components/preview-source/preview-source.tsx +47 -0
- package/src/css/variables.css +1 -0
- package/src/i18n.js +4 -0
- package/src/ui/button/button.tsx +2 -1
- package/src/ui/copy-to-clipboard/copy-to-clipboard.module.css +15 -0
- package/src/ui/copy-to-clipboard/copy-to-clipboard.stories.tsx +33 -0
- package/src/ui/copy-to-clipboard/copy-to-clipboard.tsx +53 -0
- package/src/ui/copy-to-clipboard/index.ts +1 -0
- package/src/ui/dialog/dialog.module.css +89 -0
- package/src/ui/dialog/dialog.stories.tsx +67 -0
- package/src/ui/dialog/dialog.tsx +62 -0
- package/src/ui/dialog/index.ts +1 -0
- package/src/ui/icon/icon.tsx +3 -0
- package/src/ui/index.js +3 -0
- package/src/ui/tabs/tabs.jsx +2 -2
- package/src/ui/textarea/index.ts +1 -0
- package/src/ui/textarea/textarea.module.css +64 -0
- package/src/ui/textarea/textarea.stories.tsx +37 -0
- package/src/ui/textarea/textarea.tsx +23 -0
- package/types/components/metrics-table-export/index.d.ts +1 -0
- package/types/components/metrics-table-export/metrics-table-export.d.ts +10 -0
- package/types/components/metrics-table-options/index.d.ts +1 -1
- package/types/components/metrics-table-options/metrics-table-options.d.ts +9 -17
- package/types/components/preview-source/index.d.ts +1 -0
- package/types/components/preview-source/preview-source.d.ts +8 -0
- package/types/i18n.d.ts +3 -0
- package/types/ui/button/button.d.ts +26 -0
- package/types/ui/copy-to-clipboard/copy-to-clipboard.d.ts +7 -0
- package/types/ui/copy-to-clipboard/index.d.ts +1 -0
- package/types/ui/dialog/dialog.d.ts +13 -0
- package/types/ui/dialog/index.d.ts +1 -0
- package/types/ui/icon/icon.d.ts +6 -0
- package/types/ui/index.d.ts +3 -0
- package/types/ui/tabs/tabs.d.ts +3 -3
- package/types/ui/textarea/index.d.ts +1 -0
- package/types/ui/textarea/textarea.d.ts +7 -0
- package/src/components/metrics-table-options/metrics-table-options.jsx +0 -30
- /package/src/components/metrics-table-options/{index.js → index.ts} +0 -0
package/src/assets/icons.svg
CHANGED
|
@@ -1,72 +1,86 @@
|
|
|
1
1
|
<svg width="0" height="0" style="position:absolute">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
2
|
+
<symbol viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down" id="arrow" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path d="M12 5v14M19 12l-7 7-7-7"/>
|
|
4
|
+
</symbol>
|
|
5
|
+
<symbol fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right-circle" viewBox="0 0 24 24" id="arrow-right-circle" xmlns="http://www.w3.org/2000/svg">
|
|
6
|
+
<circle cx="12" cy="12" r="10"/>
|
|
7
|
+
<path d="m12 16 4-4-4-4M8 12h8"/>
|
|
8
|
+
</symbol>
|
|
9
|
+
<symbol viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="check" xmlns="http://www.w3.org/2000/svg">
|
|
10
|
+
<path d="M20 6 9 17l-5-5"/>
|
|
11
|
+
</symbol>
|
|
12
|
+
<symbol fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" viewBox="0 0 24 24" id="chevron-down" xmlns="http://www.w3.org/2000/svg">
|
|
13
|
+
<path d="m6 9 6 6 6-6"/>
|
|
14
|
+
</symbol>
|
|
15
|
+
<symbol fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up" viewBox="0 0 24 24" id="chevron-up" xmlns="http://www.w3.org/2000/svg">
|
|
16
|
+
<path d="m18 15-6-6-6 6"/>
|
|
17
|
+
</symbol>
|
|
18
|
+
<symbol fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" id="clipboard" xmlns="http://www.w3.org/2000/svg">
|
|
19
|
+
<rect width="8" height="4" x="8" y="2" rx="1" ry="1"/>
|
|
20
|
+
<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/>
|
|
21
|
+
</symbol>
|
|
22
|
+
<symbol fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" id="clipboard-check" xmlns="http://www.w3.org/2000/svg">
|
|
23
|
+
<rect width="8" height="4" x="8" y="2" rx="1" ry="1"/>
|
|
24
|
+
<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/>
|
|
25
|
+
<path d="m9.277 15.145 2 2 4-4"/>
|
|
26
|
+
</symbol>
|
|
27
|
+
<symbol viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-clock" id="clock" xmlns="http://www.w3.org/2000/svg">
|
|
28
|
+
<circle cx="12" cy="12" r="10"/>
|
|
29
|
+
<path d="M12 6v6l4 2"/>
|
|
30
|
+
</symbol>
|
|
31
|
+
<symbol fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x-circle" viewBox="0 0 24 24" id="close" xmlns="http://www.w3.org/2000/svg">
|
|
32
|
+
<circle cx="12" cy="12" r="10"/>
|
|
33
|
+
<path d="m15 9-6 6M9 9l6 6"/>
|
|
34
|
+
</symbol>
|
|
35
|
+
<symbol viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-git-commit" id="commit" xmlns="http://www.w3.org/2000/svg">
|
|
36
|
+
<circle cx="12" cy="12" r="4"/>
|
|
37
|
+
<path d="M1.05 12H7M17.01 12h5.95"/>
|
|
38
|
+
</symbol>
|
|
39
|
+
<symbol fill="currentColor" viewBox="0 0 24 24" id="download" xmlns="http://www.w3.org/2000/svg">
|
|
40
|
+
<path d="M0 0h24v24H0z" fill="none"/>
|
|
41
|
+
<path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z"/>
|
|
42
|
+
</symbol>
|
|
43
|
+
<symbol fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" id="error" xmlns="http://www.w3.org/2000/svg">
|
|
44
|
+
<circle cx="12" cy="12" r="10"/>
|
|
45
|
+
<path d="M12 8v4M12 16h.01"/>
|
|
46
|
+
</symbol>
|
|
47
|
+
<symbol fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link" viewBox="0 0 24 24" id="external-link" xmlns="http://www.w3.org/2000/svg">
|
|
48
|
+
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14 21 3"/>
|
|
49
|
+
</symbol>
|
|
50
|
+
<symbol viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bar-chart" id="filter" xmlns="http://www.w3.org/2000/svg">
|
|
51
|
+
<path d="M12 20V10M18 20V4M6 20v-4"/>
|
|
52
|
+
</symbol>
|
|
53
|
+
<symbol viewBox="0 0 98 96" id="github" xmlns="http://www.w3.org/2000/svg">
|
|
54
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="currentColor"/>
|
|
55
|
+
</symbol>
|
|
56
|
+
<symbol viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle" id="help" xmlns="http://www.w3.org/2000/svg">
|
|
57
|
+
<circle cx="12" cy="12" r="10"/>
|
|
58
|
+
<path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3M12 17h.01"/>
|
|
59
|
+
</symbol>
|
|
60
|
+
<symbol fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" id="info" xmlns="http://www.w3.org/2000/svg">
|
|
61
|
+
<circle cx="12" cy="12" r="10"/>
|
|
62
|
+
<path d="M12 16v-4M12 8h.01"/>
|
|
63
|
+
</symbol>
|
|
64
|
+
<symbol viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu" id="menu" xmlns="http://www.w3.org/2000/svg">
|
|
65
|
+
<path d="M3 12h18M3 6h18M3 18h18"/>
|
|
66
|
+
</symbol>
|
|
67
|
+
<symbol fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" id="more-vertical" xmlns="http://www.w3.org/2000/svg">
|
|
68
|
+
<circle cx="12" cy="12" r="1"/>
|
|
69
|
+
<circle cx="12" cy="5" r="1"/>
|
|
70
|
+
<circle cx="12" cy="19" r="1"/>
|
|
71
|
+
</symbol>
|
|
72
|
+
<symbol viewBox="0 0 24 24" fill="currentColor" id="sort" xmlns="http://www.w3.org/2000/svg">
|
|
73
|
+
<path d="M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h12v-2H3v2z"/>
|
|
74
|
+
<path d="M0 0h24v24H0z" fill="none"/>
|
|
75
|
+
</symbol>
|
|
76
|
+
<symbol fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24" id="table" xmlns="http://www.w3.org/2000/svg">
|
|
77
|
+
<path d="M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18"/>
|
|
78
|
+
</symbol>
|
|
79
|
+
<symbol fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" id="treemap" xmlns="http://www.w3.org/2000/svg">
|
|
80
|
+
<path d="M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 21h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9M12.025 3.422 12 20.652ZM12.85 9l7.347.025zm-.153 6 7.576.025zm4.334.764L17 20.326Z"/>
|
|
81
|
+
</symbol>
|
|
82
|
+
<symbol viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-triangle" id="warning" xmlns="http://www.w3.org/2000/svg">
|
|
83
|
+
<path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0zM12 9v4M12 17h.01"/>
|
|
84
|
+
</symbol>
|
|
72
85
|
</svg>
|
|
86
|
+
|
package/src/assets/icons.svg.jsx
CHANGED
|
@@ -63,6 +63,33 @@ export const SvgIcons = (props) => (
|
|
|
63
63
|
>
|
|
64
64
|
<path d="m18 15-6-6-6 6" />
|
|
65
65
|
</symbol>
|
|
66
|
+
<symbol
|
|
67
|
+
fill="none"
|
|
68
|
+
stroke="currentColor"
|
|
69
|
+
strokeLinecap="round"
|
|
70
|
+
strokeLinejoin="round"
|
|
71
|
+
strokeWidth="2"
|
|
72
|
+
viewBox="0 0 24 24"
|
|
73
|
+
id="clipboard"
|
|
74
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
75
|
+
>
|
|
76
|
+
<rect width="8" height="4" x="8" y="2" rx="1" ry="1" />
|
|
77
|
+
<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" />
|
|
78
|
+
</symbol>
|
|
79
|
+
<symbol
|
|
80
|
+
fill="none"
|
|
81
|
+
stroke="currentColor"
|
|
82
|
+
strokeLinecap="round"
|
|
83
|
+
strokeLinejoin="round"
|
|
84
|
+
strokeWidth="2"
|
|
85
|
+
viewBox="0 0 24 24"
|
|
86
|
+
id="clipboard-check"
|
|
87
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
88
|
+
>
|
|
89
|
+
<rect width="8" height="4" x="8" y="2" rx="1" ry="1" />
|
|
90
|
+
<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" />
|
|
91
|
+
<path d="m9.277 15.145 2 2 4-4" />
|
|
92
|
+
</symbol>
|
|
66
93
|
<symbol
|
|
67
94
|
viewBox="0 0 24 24"
|
|
68
95
|
fill="none"
|
|
@@ -102,6 +129,15 @@ export const SvgIcons = (props) => (
|
|
|
102
129
|
<circle cx="12" cy="12" r="4" />
|
|
103
130
|
<path d="M1.05 12H7M17.01 12h5.95" />
|
|
104
131
|
</symbol>
|
|
132
|
+
<symbol
|
|
133
|
+
fill="currentColor"
|
|
134
|
+
viewBox="0 0 24 24"
|
|
135
|
+
id="download"
|
|
136
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
137
|
+
>
|
|
138
|
+
<path d="M0 0h24v24H0z" fill="none" />
|
|
139
|
+
<path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z" />
|
|
140
|
+
</symbol>
|
|
105
141
|
<symbol
|
|
106
142
|
fill="none"
|
|
107
143
|
stroke="currentColor"
|
|
@@ -19,6 +19,7 @@ import { useMetricsDisplayType } from '../../hooks/metrics-display-type';
|
|
|
19
19
|
import { Box } from '../../layout/box';
|
|
20
20
|
import { FlexStack } from '../../layout/flex-stack';
|
|
21
21
|
import { Stack } from '../../layout/stack';
|
|
22
|
+
import { Dialog, useDialogState } from '../../ui/dialog';
|
|
22
23
|
import { Icon } from '../../ui/icon';
|
|
23
24
|
import { InputSearch } from '../../ui/input-search';
|
|
24
25
|
import { FileName } from '../../ui/file-name';
|
|
@@ -32,6 +33,7 @@ import { AssetInfo } from '../asset-info';
|
|
|
32
33
|
import { AssetNotPredictive } from '../asset-not-predictive';
|
|
33
34
|
import { ComponentLink } from '../component-link';
|
|
34
35
|
import { MetricsTable } from '../metrics-table';
|
|
36
|
+
import { MetricsTableExport } from '../metrics-table-export';
|
|
35
37
|
import { MetricsTableOptions } from '../metrics-table-options';
|
|
36
38
|
import { MetricsTableTitle } from '../metrics-table-title';
|
|
37
39
|
import { MetricsDisplaySelector } from '../metrics-display-selector';
|
|
@@ -313,6 +315,12 @@ export const BundleAssets = (props) => {
|
|
|
313
315
|
return allItems.find(({ key }) => key === entryId);
|
|
314
316
|
}, [allItems, entryId]);
|
|
315
317
|
|
|
318
|
+
const exportDialog = useDialogState();
|
|
319
|
+
|
|
320
|
+
const handleExportClick = useCallback(() => {
|
|
321
|
+
exportDialog.toggle();
|
|
322
|
+
}, []);
|
|
323
|
+
|
|
316
324
|
return (
|
|
317
325
|
<>
|
|
318
326
|
<Stack space="xsmall" as="section" className={cx(css.root, className)}>
|
|
@@ -326,8 +334,9 @@ export const BundleAssets = (props) => {
|
|
|
326
334
|
onSelect={setDisplayType}
|
|
327
335
|
/>
|
|
328
336
|
<MetricsTableOptions
|
|
329
|
-
|
|
330
|
-
|
|
337
|
+
onViewAllClick={resetAllFilters}
|
|
338
|
+
onResetClick={resetFilters}
|
|
339
|
+
onExportClick={handleExportClick}
|
|
331
340
|
/>
|
|
332
341
|
</FlexStack>
|
|
333
342
|
)}
|
|
@@ -385,6 +394,10 @@ export const BundleAssets = (props) => {
|
|
|
385
394
|
onClose={hideEntryInfo}
|
|
386
395
|
/>
|
|
387
396
|
)}
|
|
397
|
+
|
|
398
|
+
<Dialog title={I18N.EXPORT} width="wide" state={exportDialog}>
|
|
399
|
+
{exportDialog.open && <MetricsTableExport items={items} download="bundle-stats--assets"/>}
|
|
400
|
+
</Dialog>
|
|
388
401
|
</>
|
|
389
402
|
);
|
|
390
403
|
};
|
|
@@ -15,12 +15,16 @@ import { Toolbar } from '../../ui/toolbar';
|
|
|
15
15
|
import { Table } from '../../ui/table';
|
|
16
16
|
import { Box } from '../../layout/box';
|
|
17
17
|
import { Stack } from '../../layout/stack';
|
|
18
|
+
import { Dialog, useDialogState } from '../../ui/dialog';
|
|
18
19
|
import { MetricsDisplaySelector } from '../metrics-display-selector';
|
|
19
20
|
import { MetricsTable } from '../metrics-table';
|
|
20
|
-
import {
|
|
21
|
+
import { MetricsTableExport } from '../metrics-table-export';
|
|
21
22
|
import { MetricsTableHeader } from '../metrics-table-header';
|
|
23
|
+
import { MetricsTableOptions } from '../metrics-table-options';
|
|
24
|
+
import { MetricsTableTitle } from '../metrics-table-title';
|
|
22
25
|
import { MetricsTreemap, getTreemapNodes } from '../metrics-treemap';
|
|
23
26
|
import { ComponentLink } from '../component-link';
|
|
27
|
+
import { FlexStack } from '../../layout';
|
|
24
28
|
|
|
25
29
|
const metricsTableTitle = (
|
|
26
30
|
<MetricsTableTitle
|
|
@@ -68,42 +72,57 @@ export const BundleAssetsTotals = ({
|
|
|
68
72
|
[history],
|
|
69
73
|
);
|
|
70
74
|
|
|
75
|
+
const exportDialog = useDialogState();
|
|
76
|
+
|
|
77
|
+
const handleExportClick = useCallback(() => {
|
|
78
|
+
exportDialog.toggle();
|
|
79
|
+
}, []);
|
|
80
|
+
|
|
71
81
|
return (
|
|
72
|
-
|
|
73
|
-
<
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
<Table compact>
|
|
92
|
-
<MetricsTableHeader
|
|
93
|
-
metricTitle={metricsTableTitle}
|
|
94
|
-
showSum
|
|
95
|
-
jobs={jobs}
|
|
96
|
-
rows={items}
|
|
97
|
-
/>
|
|
98
|
-
</Table>
|
|
99
|
-
<MetricsTreemap
|
|
100
|
-
treeNodes={getTreemapNodes(items)}
|
|
101
|
-
onItemClick={onTreemapItemClick || handleMetricsTreemapItemClick}
|
|
82
|
+
<>
|
|
83
|
+
<Stack space="xsmall" as="section" className={className}>
|
|
84
|
+
<Toolbar
|
|
85
|
+
renderActions={() => (
|
|
86
|
+
<FlexStack space="xxsmall">
|
|
87
|
+
<MetricsDisplaySelector onSelect={setDisplayType} value={displayType.value} />
|
|
88
|
+
<MetricsTableOptions onExportClick={handleExportClick} />
|
|
89
|
+
</FlexStack>
|
|
90
|
+
)}
|
|
91
|
+
/>
|
|
92
|
+
<Box outline as="main">
|
|
93
|
+
{displayType.value === MetricsDisplayType.TABLE && (
|
|
94
|
+
<MetricsTable
|
|
95
|
+
title={metricsTableTitle}
|
|
96
|
+
runs={jobs}
|
|
97
|
+
items={items}
|
|
98
|
+
renderRowHeader={renderRowHeader}
|
|
99
|
+
showHeaderSum
|
|
100
|
+
{...restProps}
|
|
102
101
|
/>
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
102
|
+
)}
|
|
103
|
+
{displayType.value === MetricsDisplayType.TREEMAP && (
|
|
104
|
+
<>
|
|
105
|
+
<Table compact>
|
|
106
|
+
<MetricsTableHeader
|
|
107
|
+
metricTitle={metricsTableTitle}
|
|
108
|
+
showSum
|
|
109
|
+
jobs={jobs}
|
|
110
|
+
rows={items}
|
|
111
|
+
/>
|
|
112
|
+
</Table>
|
|
113
|
+
<MetricsTreemap
|
|
114
|
+
treeNodes={getTreemapNodes(items)}
|
|
115
|
+
onItemClick={onTreemapItemClick || handleMetricsTreemapItemClick}
|
|
116
|
+
/>
|
|
117
|
+
</>
|
|
118
|
+
)}
|
|
119
|
+
</Box>
|
|
120
|
+
</Stack>
|
|
121
|
+
|
|
122
|
+
<Dialog title={I18N.EXPORT} width="wide" state={exportDialog}>
|
|
123
|
+
{exportDialog.open && <MetricsTableExport items={items} download="bundle-stats--totals" />}
|
|
124
|
+
</Dialog>
|
|
125
|
+
</>
|
|
107
126
|
);
|
|
108
127
|
};
|
|
109
128
|
|
|
@@ -13,6 +13,7 @@ import { FlexStack } from '../../layout/flex-stack';
|
|
|
13
13
|
import { Stack } from '../../layout/stack';
|
|
14
14
|
import { Button } from '../../ui/button';
|
|
15
15
|
import { ControlGroup } from '../../ui/control-group';
|
|
16
|
+
import { Dialog, useDialogState } from '../../ui/dialog';
|
|
16
17
|
import { EmptySet } from '../../ui/empty-set';
|
|
17
18
|
import { FileName } from '../../ui/file-name';
|
|
18
19
|
import { Filters } from '../../ui/filters';
|
|
@@ -23,6 +24,7 @@ import { Toolbar } from '../../ui/toolbar';
|
|
|
23
24
|
import { Tooltip } from '../../ui/tooltip';
|
|
24
25
|
import { ComponentLink } from '../component-link';
|
|
25
26
|
import { MetricsTable } from '../metrics-table';
|
|
27
|
+
import { MetricsTableExport } from '../metrics-table-export';
|
|
26
28
|
import { MetricsTableHeader } from '../metrics-table-header';
|
|
27
29
|
import { MetricsTreemap, getTreemapNodes, getTreemapNodesGroupedByPath } from '../metrics-treemap';
|
|
28
30
|
import { MetricsTableOptions } from '../metrics-table-options';
|
|
@@ -252,6 +254,12 @@ export const BundleModules = (props: BundleModulesProps) => {
|
|
|
252
254
|
return allItems.find(({ key }) => key === entryId);
|
|
253
255
|
}, [allItems, entryId]);
|
|
254
256
|
|
|
257
|
+
const exportDialog = useDialogState();
|
|
258
|
+
|
|
259
|
+
const handleExportClick = useCallback(() => {
|
|
260
|
+
exportDialog.toggle();
|
|
261
|
+
}, []);
|
|
262
|
+
|
|
255
263
|
return (
|
|
256
264
|
<>
|
|
257
265
|
<Stack space="xsmall" as="section" className={rootClassName}>
|
|
@@ -266,8 +274,9 @@ export const BundleModules = (props: BundleModulesProps) => {
|
|
|
266
274
|
groups={DISPLAY_TYPE_GROUPS}
|
|
267
275
|
/>
|
|
268
276
|
<MetricsTableOptions
|
|
269
|
-
|
|
270
|
-
|
|
277
|
+
onViewAllClick={resetAllFilters}
|
|
278
|
+
onResetClick={resetFilters}
|
|
279
|
+
onExportClick={handleExportClick}
|
|
271
280
|
/>
|
|
272
281
|
</FlexStack>
|
|
273
282
|
)}
|
|
@@ -363,6 +372,10 @@ export const BundleModules = (props: BundleModulesProps) => {
|
|
|
363
372
|
onClose={hideEntryInfo}
|
|
364
373
|
/>
|
|
365
374
|
)}
|
|
375
|
+
|
|
376
|
+
<Dialog title={I18N.EXPORT} width="wide" state={exportDialog}>
|
|
377
|
+
{exportDialog.open && <MetricsTableExport items={items} download="bundle-stats--modules"/>}
|
|
378
|
+
</Dialog>
|
|
366
379
|
</>
|
|
367
380
|
);
|
|
368
381
|
};
|
|
@@ -9,6 +9,7 @@ import I18N from '../../i18n';
|
|
|
9
9
|
import { Box } from '../../layout/box';
|
|
10
10
|
import { FlexStack } from '../../layout/flex-stack';
|
|
11
11
|
import { Stack } from '../../layout/stack';
|
|
12
|
+
import { Dialog, useDialogState } from '../../ui/dialog';
|
|
12
13
|
import { InputSearch } from '../../ui/input-search';
|
|
13
14
|
import { EmptySet } from '../../ui/empty-set';
|
|
14
15
|
import { Filters } from '../../ui/filters';
|
|
@@ -17,6 +18,7 @@ import { Table } from '../../ui/table';
|
|
|
17
18
|
import { Toolbar } from '../../ui/toolbar';
|
|
18
19
|
import { ComponentLink } from '../component-link';
|
|
19
20
|
import { MetricsTable } from '../metrics-table';
|
|
21
|
+
import { MetricsTableExport } from '../metrics-table-export';
|
|
20
22
|
import { MetricsTableHeader } from '../metrics-table-header';
|
|
21
23
|
import { MetricsTableOptions } from '../metrics-table-options';
|
|
22
24
|
import { MetricsTableTitle } from '../metrics-table-title';
|
|
@@ -261,6 +263,12 @@ export const BundlePackages = (props) => {
|
|
|
261
263
|
return allItems.find(({ key }) => key === entryId)
|
|
262
264
|
}, [allItems, entryId]);
|
|
263
265
|
|
|
266
|
+
const exportDialog = useDialogState();
|
|
267
|
+
|
|
268
|
+
const handleExportClick = useCallback(() => {
|
|
269
|
+
exportDialog.toggle();
|
|
270
|
+
}, []);
|
|
271
|
+
|
|
264
272
|
return (
|
|
265
273
|
<>
|
|
266
274
|
<Stack space="xsmall" as="section" className={cx(css.root, className)}>
|
|
@@ -270,8 +278,9 @@ export const BundlePackages = (props) => {
|
|
|
270
278
|
<FlexStack space="xxsmall" className={cx(css.dropdown, actionClassName)}>
|
|
271
279
|
<MetricsDisplaySelector onSelect={setDisplayType} value={displayType.value} groupBy={displayType.groupBy} groups={DISPLAY_TYPE_GROUPS} />
|
|
272
280
|
<MetricsTableOptions
|
|
273
|
-
|
|
274
|
-
|
|
281
|
+
onViewAllClick={resetAllFilters}
|
|
282
|
+
onResetClick={resetFilters}
|
|
283
|
+
onExportClick={handleExportClick}
|
|
275
284
|
/>
|
|
276
285
|
</FlexStack>
|
|
277
286
|
)}
|
|
@@ -327,6 +336,10 @@ export const BundlePackages = (props) => {
|
|
|
327
336
|
onClose={hideEntryInfo}
|
|
328
337
|
/>
|
|
329
338
|
)}
|
|
339
|
+
|
|
340
|
+
<Dialog title={I18N.EXPORT} width="wide" state={exportDialog}>
|
|
341
|
+
{exportDialog.open && <MetricsTableExport items={items} download="bundle-stats--packages"/>}
|
|
342
|
+
</Dialog>
|
|
330
343
|
</>
|
|
331
344
|
);
|
|
332
345
|
};
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
/** header */
|
|
29
29
|
.header {
|
|
30
30
|
/** space for close icon */
|
|
31
|
-
padding-right: calc(var(--space-
|
|
31
|
+
padding-right: calc(var(--space-xlarge) + var(--space-xxxsmall) + var(--space-xsmall));
|
|
32
32
|
border-bottom: 1px solid var(--color-outline);
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -6,6 +6,7 @@ import type { MetricRunInfo, ReportMetricRow } from '@bundle-stats/utils';
|
|
|
6
6
|
import { METRIC_TYPE_CONFIGS, getMetricRunInfo } from '@bundle-stats/utils';
|
|
7
7
|
|
|
8
8
|
import { Box } from '../../layout/box';
|
|
9
|
+
import { FlexStack } from '../../layout/flex-stack';
|
|
9
10
|
import { Stack } from '../../layout/stack';
|
|
10
11
|
import { FileName } from '../../ui/file-name';
|
|
11
12
|
import { Button } from '../../ui/button';
|
|
@@ -14,7 +15,7 @@ import { Table } from '../../ui/table';
|
|
|
14
15
|
import { RunInfo } from '../run-info';
|
|
15
16
|
import * as I18N from './entry-info.i18n';
|
|
16
17
|
import css from './entry-info.module.css';
|
|
17
|
-
import { Tooltip } from '../../ui';
|
|
18
|
+
import { CopyToClipboard, Tooltip } from '../../ui';
|
|
18
19
|
|
|
19
20
|
interface EntryInfoMetaLinkProps {
|
|
20
21
|
as?: ElementType;
|
|
@@ -102,10 +103,10 @@ export const EntryInfo = (props: EntryInfoProps & React.ComponentProps<'div'>) =
|
|
|
102
103
|
<Portal className={cx(css.root, className)}>
|
|
103
104
|
<Box padding="medium" as="header" className={css.header}>
|
|
104
105
|
<Stack space="small">
|
|
105
|
-
<h3 className={css.label}>
|
|
106
|
+
<FlexStack space="xxxsmall" alignItems="center" as="h3" className={css.label}>
|
|
106
107
|
<FileName as="code" name={itemTitle || item.label} className={css.fileName} />
|
|
107
|
-
|
|
108
|
-
|
|
108
|
+
<CopyToClipboard text={item.label} size="small" />
|
|
109
|
+
</FlexStack>
|
|
109
110
|
<div>{renderRunInfo(item)}</div>
|
|
110
111
|
</Stack>
|
|
111
112
|
<Button
|
|
@@ -135,6 +136,7 @@ export const EntryInfo = (props: EntryInfoProps & React.ComponentProps<'div'>) =
|
|
|
135
136
|
<Table.TBody>
|
|
136
137
|
{item.runs.map((run, index) => {
|
|
137
138
|
const key = `info-${run?.name || index}-${index}`;
|
|
139
|
+
const rowRun = run as any;
|
|
138
140
|
|
|
139
141
|
return (
|
|
140
142
|
<Table.Tr key={key}>
|
|
@@ -142,11 +144,23 @@ export const EntryInfo = (props: EntryInfoProps & React.ComponentProps<'div'>) =
|
|
|
142
144
|
{labels[index]}
|
|
143
145
|
</Table.Th>
|
|
144
146
|
<Table.Td className={cx(css.runsCell, css.runsColName)}>
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
147
|
+
{rowRun?.[runNameSelector] ? (
|
|
148
|
+
<FlexStack
|
|
149
|
+
space="xxxsmall"
|
|
150
|
+
alignItems="center"
|
|
151
|
+
as="h3"
|
|
152
|
+
className={css.label}
|
|
153
|
+
>
|
|
154
|
+
<FileName
|
|
155
|
+
as="code"
|
|
156
|
+
name={rowRun[runNameSelector]}
|
|
157
|
+
className={css.fileName}
|
|
158
|
+
/>
|
|
159
|
+
<CopyToClipboard text={item.label} size="small" />
|
|
160
|
+
</FlexStack>
|
|
161
|
+
) : (
|
|
162
|
+
'-'
|
|
163
|
+
)}
|
|
150
164
|
</Table.Td>
|
|
151
165
|
<Table.Td className={cx(css.runsCell, css.runsColSize)}>
|
|
152
166
|
<span className={css.size}>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './metrics-table-export';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
|
|
3
|
+
import { getWrapperDecorator } from '../../stories';
|
|
4
|
+
import { MetricsTableExport } from '.';
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof MetricsTableExport> = {
|
|
7
|
+
title: 'Components/MetricsTableExport',
|
|
8
|
+
component: MetricsTableExport,
|
|
9
|
+
decorators: [getWrapperDecorator()],
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export default meta;
|
|
13
|
+
|
|
14
|
+
type Story = StoryObj<typeof meta>;
|
|
15
|
+
|
|
16
|
+
const ITEMS = [
|
|
17
|
+
{
|
|
18
|
+
label: 'Hey',
|
|
19
|
+
runs: [
|
|
20
|
+
{ value: 1, name: 'a' },
|
|
21
|
+
{ value: 2, name: 'b' },
|
|
22
|
+
],
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
export const Default: Story = {
|
|
27
|
+
args: {
|
|
28
|
+
items: ITEMS,
|
|
29
|
+
},
|
|
30
|
+
};
|