@bundle-stats/ui 4.3.0-beta.1 → 4.3.0-beta.3
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/app/app.js +10 -5
- package/lib/app/app.js.map +1 -1
- package/lib/assets/icons.svg +9 -1
- package/lib/assets/icons.svg.js +6 -0
- package/lib/assets/icons.svg.js.map +1 -1
- package/lib/components/index.js +3 -3
- package/lib/components/index.js.map +1 -1
- package/lib/components/{duplicate-packages-warning → insights}/index.js +1 -1
- package/lib/components/insights/index.js.map +1 -0
- package/lib/components/insights/insights.js +58 -0
- package/lib/components/insights/insights.js.map +1 -0
- package/lib/components/insights/insights.module.css +32 -0
- package/lib/components/job-header/job-header.js +1 -1
- package/lib/components/job-header/job-header.js.map +1 -1
- package/lib/ui/icon/icon.js +2 -0
- package/lib/ui/icon/icon.js.map +1 -1
- package/lib-esm/app/app.js +11 -5
- package/lib-esm/app/app.js.map +1 -1
- package/lib-esm/assets/icons.svg +9 -1
- package/lib-esm/assets/icons.svg.js +6 -0
- package/lib-esm/assets/icons.svg.js.map +1 -1
- package/lib-esm/components/index.js +1 -1
- package/lib-esm/components/index.js.map +1 -1
- package/lib-esm/components/insights/index.js +2 -0
- package/lib-esm/components/insights/index.js.map +1 -0
- package/lib-esm/components/insights/insights.js +51 -0
- package/lib-esm/components/insights/insights.js.map +1 -0
- package/lib-esm/components/insights/insights.module.css +32 -0
- package/lib-esm/components/job-header/job-header.js +2 -2
- package/lib-esm/components/job-header/job-header.js.map +1 -1
- package/lib-esm/ui/icon/icon.js +2 -0
- package/lib-esm/ui/icon/icon.js.map +1 -1
- package/package.json +15 -17
- package/src/app/app.jsx +19 -10
- package/src/assets/icons/error.svg +6 -0
- package/src/assets/icons/info.svg +6 -0
- package/src/assets/icons.svg +9 -1
- package/src/assets/icons.svg.jsx +26 -0
- package/src/components/index.js +1 -1
- package/src/components/insights/index.ts +1 -0
- package/src/components/insights/insights.module.css +32 -0
- package/src/components/insights/insights.stories.tsx +50 -0
- package/src/components/insights/insights.tsx +101 -0
- package/src/components/job-header/job-header.jsx +2 -2
- package/src/ui/icon/icon.jsx +2 -0
- package/tsconfig.esm.json +1 -1
- package/tsconfig.lib.json +1 -1
- package/types/components/index.d.ts +1 -1
- package/types/components/insights/index.d.ts +1 -0
- package/types/components/insights/insights.d.ts +8 -0
- package/types/ui/icon/icon.d.ts +2 -0
- package/lib/components/duplicate-packages-warning/duplicate-packages-warning.js +0 -41
- package/lib/components/duplicate-packages-warning/duplicate-packages-warning.js.map +0 -1
- package/lib/components/duplicate-packages-warning/duplicate-packages-warning.module.css +0 -22
- package/lib/components/duplicate-packages-warning/index.js.map +0 -1
- package/lib-esm/components/duplicate-packages-warning/duplicate-packages-warning.js +0 -34
- package/lib-esm/components/duplicate-packages-warning/duplicate-packages-warning.js.map +0 -1
- package/lib-esm/components/duplicate-packages-warning/duplicate-packages-warning.module.css +0 -22
- package/lib-esm/components/duplicate-packages-warning/index.js +0 -2
- package/lib-esm/components/duplicate-packages-warning/index.js.map +0 -1
- package/src/components/duplicate-packages-warning/duplicate-packages-warning.jsx +0 -60
- package/src/components/duplicate-packages-warning/duplicate-packages-warning.module.css +0 -22
- package/src/components/duplicate-packages-warning/index.js +0 -1
- package/types/components/duplicate-packages-warning/duplicate-packages-warning.d.ts +0 -21
- package/types/components/duplicate-packages-warning/index.d.ts +0 -1
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import cx from 'classnames';
|
|
4
4
|
import get from 'lodash/get';
|
|
5
|
-
import {
|
|
5
|
+
import { Source, formatDateTime } from '@bundle-stats/utils';
|
|
6
6
|
import { FlexStack } from '../../layout/flex-stack';
|
|
7
7
|
import { Stack } from '../../layout/stack';
|
|
8
8
|
import { Icon } from '../../ui/icon';
|
|
@@ -10,7 +10,7 @@ import { Tag } from '../../ui/tag';
|
|
|
10
10
|
import css from './job-header.module.css';
|
|
11
11
|
export const JobHeader = (props) => {
|
|
12
12
|
const { className, tag, job, children } = props;
|
|
13
|
-
const { builtAt, hash } = get(job, `meta.${
|
|
13
|
+
const { builtAt, hash } = get(job, `meta.${Source.webpack}`, {});
|
|
14
14
|
const rootClassName = cx(css.root, className);
|
|
15
15
|
return (React.createElement(Stack, { className: rootClassName, space: "xxsmall" },
|
|
16
16
|
React.createElement("h1", { className: css.title },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-header.js","sourceRoot":"","sources":["../../../src/components/job-header/job-header.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"job-header.js","sourceRoot":"","sources":["../../../src/components/job-header/job-header.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,GAAG,MAAM,yBAAyB,CAAC;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEhD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,QAAQ,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,CACL,oBAAC,KAAK,IAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAC,SAAS;QAC9C,4BAAI,SAAS,EAAE,GAAG,CAAC,KAAK;YACtB,kCAAO,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAQ;YAC3C,GAAG,IAAI,oBAAC,GAAG,IAAC,SAAS,EAAE,GAAG,CAAC,GAAG,IAAG,GAAG,CAAO,CACzC;QACL,oBAAC,SAAS,IAAC,KAAK,EAAC,SAAS,EAAC,SAAS,EAAE,GAAG,CAAC,IAAI;YAC3C,OAAO,IAAI,CACV,oBAAC,SAAS,IAAC,KAAK,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC,MAAM,QAAC,EAAE,EAAC,MAAM,EAAC,KAAK,EAAE,OAAO;gBAC7E,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,GAAG;gBACtB,kCACG,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,CACjE,CACG,CACb;YAEA,IAAI,IAAI,CACP,oBAAC,SAAS,IAAC,KAAK,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC,MAAM,QAAC,KAAK,EAAC,qBAAqB;gBAChF,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,GAAG;gBACvB,kCAAO,IAAI,CAAQ,CACT,CACb;YAED,6BAAK,SAAS,EAAE,GAAG,CAAC,OAAO,IAAG,QAAQ,CAAO,CACnC,CACN,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,CAAC,SAAS,GAAG;IACpB,SAAS,EAAE,SAAS,CAAC,MAAM;IAC3B,GAAG,EAAE,SAAS,CAAC,MAAM;IACrB,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC;QACnB,mBAAmB,EAAE,SAAS,CAAC,MAAM;QACrC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,SAAS,CAAC,MAAM;SAC1B,CAAC;QACF,OAAO,EAAE,SAAS,CAAC,MAAM;KAC1B,CAAC;IACF,QAAQ,EAAE,SAAS,CAAC,OAAO;CAC5B,CAAC;AAEF,SAAS,CAAC,YAAY,GAAG;IACvB,SAAS,EAAE,EAAE;IACb,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,IAAI;IACT,QAAQ,EAAE,IAAI;CACf,CAAC"}
|
package/lib-esm/ui/icon/icon.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/ui/icon/icon.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAEpC,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,OAAO;IACd,kBAAkB,EAAE,oBAAoB;IACxC,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE;IAC5B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAEtE,OAAO,CACL,oBAAC,SAAS,IAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,KAAM,SAAS;QACrE,6BAAK,SAAS,EAAE,GAAG,CAAC,IAAI;YACtB,6BAAK,SAAS,EAAE,IAAI,KAAK,EAAE,GAAI,CAC3B,CACI,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;AAC1B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;AAC1B,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAElE,IAAI,CAAC,YAAY,GAAG;IAClB,SAAS,EAAE,EAAE;IACb,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,IAAI,CAAC,WAAW;CACvB,CAAC;AAEF,IAAI,CAAC,SAAS,GAAG;IACf,SAAS,EAAE,SAAS,CAAC,MAAM;IAC3B,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;IAC9F,EAAE,EAAE,SAAS,CAAC,IAAI;IAClB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;CAClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/ui/icon/icon.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAEpC,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,OAAO;IACd,kBAAkB,EAAE,oBAAoB;IACxC,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE;IAC5B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAEtE,OAAO,CACL,oBAAC,SAAS,IAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,KAAM,SAAS;QACrE,6BAAK,SAAS,EAAE,GAAG,CAAC,IAAI;YACtB,6BAAK,SAAS,EAAE,IAAI,KAAK,EAAE,GAAI,CAC3B,CACI,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;AAC1B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;AAC1B,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAElE,IAAI,CAAC,YAAY,GAAG;IAClB,SAAS,EAAE,EAAE;IACb,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,IAAI,CAAC,WAAW;CACvB,CAAC;AAEF,IAAI,CAAC,SAAS,GAAG;IACf,SAAS,EAAE,SAAS,CAAC,MAAM;IAC3B,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;IAC9F,EAAE,EAAE,SAAS,CAAC,IAAI;IAClB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;CAClC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bundle-stats/ui",
|
|
3
|
-
"version": "4.3.0-beta.
|
|
3
|
+
"version": "4.3.0-beta.3",
|
|
4
4
|
"description": "UI components for BundleStats projects.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -20,8 +20,7 @@
|
|
|
20
20
|
"start": "cross-env NODE_ENV=development start-storybook -c ./build/storybook -p 8080",
|
|
21
21
|
"test": "npm run test:unit",
|
|
22
22
|
"test:unit": "jest src --passWithNoTests",
|
|
23
|
-
"test:storyshots": "jest build/storybook "
|
|
24
|
-
"chromatic": "chromatic --exit-zero-on-changes"
|
|
23
|
+
"test:storyshots": "jest build/storybook "
|
|
25
24
|
},
|
|
26
25
|
"repository": {
|
|
27
26
|
"type": "git",
|
|
@@ -41,17 +40,16 @@
|
|
|
41
40
|
"devDependencies": {
|
|
42
41
|
"@babel/preset-env": "7.20.2",
|
|
43
42
|
"@babel/preset-react": "7.18.6",
|
|
44
|
-
"@storybook/addon-essentials": "6.5.
|
|
43
|
+
"@storybook/addon-essentials": "6.5.16",
|
|
45
44
|
"@storybook/addon-knobs": "6.4.0",
|
|
46
45
|
"@storybook/addon-postcss": "2.0.0",
|
|
47
|
-
"@storybook/addon-storyshots": "6.5.
|
|
48
|
-
"@storybook/addons": "6.5.
|
|
49
|
-
"@storybook/builder-webpack5": "6.5.
|
|
50
|
-
"@storybook/manager-webpack5": "6.5.
|
|
51
|
-
"@storybook/react": "6.5.
|
|
46
|
+
"@storybook/addon-storyshots": "6.5.16",
|
|
47
|
+
"@storybook/addons": "6.5.16",
|
|
48
|
+
"@storybook/builder-webpack5": "6.5.16",
|
|
49
|
+
"@storybook/manager-webpack5": "6.5.16",
|
|
50
|
+
"@storybook/react": "6.5.16",
|
|
52
51
|
"@types/react": "18.0.26",
|
|
53
52
|
"babel-plugin-require-context-hook": "1.0.0",
|
|
54
|
-
"chromatic": "6.14.0",
|
|
55
53
|
"classnames": "2.3.2",
|
|
56
54
|
"colormap": "2.3.2",
|
|
57
55
|
"cross-env": "7.0.3",
|
|
@@ -60,9 +58,9 @@
|
|
|
60
58
|
"enzyme-to-json": "3.6.2",
|
|
61
59
|
"hex-rgb": "5.0.0",
|
|
62
60
|
"identity-obj-proxy": "3.0.0",
|
|
63
|
-
"jest": "29.
|
|
61
|
+
"jest": "29.4.2",
|
|
64
62
|
"jest-date-mock": "1.0.8",
|
|
65
|
-
"jest-environment-jsdom": "29.
|
|
63
|
+
"jest-environment-jsdom": "29.4.2",
|
|
66
64
|
"lodash": "4.17.21",
|
|
67
65
|
"postcss": "8.4.21",
|
|
68
66
|
"prop-types": "15.8.1",
|
|
@@ -70,8 +68,8 @@
|
|
|
70
68
|
"react-dom": "17.0.2",
|
|
71
69
|
"react-router-dom": "5.3.4",
|
|
72
70
|
"react-test-renderer": "18.2.0",
|
|
73
|
-
"rimraf": "4.1.
|
|
74
|
-
"typescript": "4.9.
|
|
71
|
+
"rimraf": "4.1.2",
|
|
72
|
+
"typescript": "4.9.5"
|
|
75
73
|
},
|
|
76
74
|
"peerDependencies": {
|
|
77
75
|
"classnames": "^2.0.0",
|
|
@@ -82,11 +80,11 @@
|
|
|
82
80
|
"react-router-dom": "^5.0.0"
|
|
83
81
|
},
|
|
84
82
|
"dependencies": {
|
|
85
|
-
"@bundle-stats/utils": "^4.3.0-beta.
|
|
83
|
+
"@bundle-stats/utils": "^4.3.0-beta.3",
|
|
86
84
|
"ariakit": "2.0.0-next.43",
|
|
87
85
|
"modern-css-reset": "1.4.0",
|
|
88
86
|
"query-string": "7.1.3",
|
|
89
|
-
"use-query-params": "2.
|
|
87
|
+
"use-query-params": "2.2.0"
|
|
90
88
|
},
|
|
91
|
-
"gitHead": "
|
|
89
|
+
"gitHead": "b9dff5b3797a3a8bb5bc5afce1900a56080c9ba4"
|
|
92
90
|
}
|
package/src/app/app.jsx
CHANGED
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
} from '../constants';
|
|
13
13
|
import { Box } from '../layout/box';
|
|
14
14
|
import { Container } from '../ui/container';
|
|
15
|
-
import { DuplicatePackagesWarning } from '../components/duplicate-packages-warning';
|
|
16
15
|
import { Summary } from '../components/summary';
|
|
17
16
|
import { BundleAssets } from '../components/bundle-assets';
|
|
18
17
|
import { BundleAssetsTotalsChartBars } from '../components/bundle-assets-totals-chart-bars';
|
|
@@ -22,11 +21,13 @@ import { Stack } from '../layout/stack';
|
|
|
22
21
|
import { BundleAssetsTotalsTable } from '../components/bundle-assets-totals-table';
|
|
23
22
|
import { BundleModules } from '../components/bundle-modules';
|
|
24
23
|
import { BundlePackages } from '../components/bundle-packages';
|
|
24
|
+
import { Insights } from '../components/insights';
|
|
25
25
|
import { TotalSizeTypeTitle } from '../components/total-size-type-title';
|
|
26
26
|
import { QueryStateProvider, useComponentQueryState } from '../query-state';
|
|
27
27
|
import I18N from '../i18n';
|
|
28
28
|
import { Header } from './header';
|
|
29
29
|
import css from './app.module.css';
|
|
30
|
+
import { MetricsTableTitle } from '../components';
|
|
30
31
|
|
|
31
32
|
const ScrollToTop = () => {
|
|
32
33
|
const { pathname } = useLocation();
|
|
@@ -68,19 +69,27 @@ JobsProvider.propTypes = {
|
|
|
68
69
|
|
|
69
70
|
const OverviewContent = () => {
|
|
70
71
|
const { jobs } = useContext(JobsContext);
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
|
|
73
|
+
const duplicatePackagesInsight = jobs[0].insights?.webpack?.duplicatePackagesV3;
|
|
74
|
+
const newPackagesInsight = jobs[0].insights?.webpack?.newPackages;
|
|
75
|
+
|
|
76
|
+
console.info(duplicatePackagesInsight, newPackagesInsight);
|
|
75
77
|
|
|
76
78
|
return (
|
|
77
79
|
<Stack space="medium">
|
|
78
|
-
{
|
|
80
|
+
{(duplicatePackagesInsight || newPackagesInsight) && (
|
|
79
81
|
<Container>
|
|
80
|
-
<
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
<Stack space="xsmall">
|
|
83
|
+
<MetricsTableTitle title="Insights" />
|
|
84
|
+
<Box padding="small" outline>
|
|
85
|
+
<Insights
|
|
86
|
+
duplicatePackages={duplicatePackagesInsight}
|
|
87
|
+
newPackages={newPackagesInsight}
|
|
88
|
+
summary={jobs[0].summary?.webpack}
|
|
89
|
+
showDelta={jobs.length > 1}
|
|
90
|
+
/>
|
|
91
|
+
</Box>
|
|
92
|
+
</Stack>
|
|
84
93
|
</Container>
|
|
85
94
|
)}
|
|
86
95
|
<Container>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<circle cx="12" cy="12" r="10"></circle>
|
|
3
|
+
<line x1="12" y1="8" x2="12" y2="12"></line>
|
|
4
|
+
<line x1="12" y1="16" x2="12.01" y2="16"></line>
|
|
5
|
+
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<circle cx="12" cy="12" r="10"></circle>
|
|
3
|
+
<line x1="12" y1="16" x2="12" y2="12"></line>
|
|
4
|
+
<line x1="12" y1="8" x2="12.01" y2="8"></line>
|
|
5
|
+
|
|
6
|
+
</svg>
|
package/src/assets/icons.svg
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg width="
|
|
1
|
+
<svg width="0" height="0" style="position:absolute">
|
|
2
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
3
|
<path d="M12 5v14M19 12l-7 7-7-7"/>
|
|
4
4
|
</symbol>
|
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
<circle cx="12" cy="12" r="4"/>
|
|
23
23
|
<path d="M1.05 12H7M17.01 12h5.95"/>
|
|
24
24
|
</symbol>
|
|
25
|
+
<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">
|
|
26
|
+
<circle cx="12" cy="12" r="10"/>
|
|
27
|
+
<path d="M12 8v4M12 16h.01"/>
|
|
28
|
+
</symbol>
|
|
25
29
|
<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">
|
|
26
30
|
<path d="M12 20V10M18 20V4M6 20v-4"/>
|
|
27
31
|
</symbol>
|
|
@@ -29,6 +33,10 @@
|
|
|
29
33
|
<circle cx="12" cy="12" r="10"/>
|
|
30
34
|
<path d="M9.09 9a3 3 0 015.83 1c0 2-3 3-3 3M12 17h.01"/>
|
|
31
35
|
</symbol>
|
|
36
|
+
<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">
|
|
37
|
+
<circle cx="12" cy="12" r="10"/>
|
|
38
|
+
<path d="M12 16v-4M12 8h.01"/>
|
|
39
|
+
</symbol>
|
|
32
40
|
<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">
|
|
33
41
|
<path d="M3 12h18M3 6h18M3 18h18"/>
|
|
34
42
|
</symbol>
|
package/src/assets/icons.svg.jsx
CHANGED
|
@@ -85,6 +85,19 @@ export const SvgIcons = (props) => (
|
|
|
85
85
|
<circle cx="12" cy="12" r="4" />
|
|
86
86
|
<path d="M1.05 12H7M17.01 12h5.95" />
|
|
87
87
|
</symbol>
|
|
88
|
+
<symbol
|
|
89
|
+
fill="none"
|
|
90
|
+
stroke="currentColor"
|
|
91
|
+
stroke-width="2"
|
|
92
|
+
stroke-linecap="round"
|
|
93
|
+
stroke-linejoin="round"
|
|
94
|
+
viewBox="0 0 24 24"
|
|
95
|
+
id="error"
|
|
96
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
97
|
+
>
|
|
98
|
+
<circle cx="12" cy="12" r="10" />
|
|
99
|
+
<path d="M12 8v4M12 16h.01" />
|
|
100
|
+
</symbol>
|
|
88
101
|
<symbol
|
|
89
102
|
viewBox="0 0 24 24"
|
|
90
103
|
fill="none"
|
|
@@ -112,6 +125,19 @@ export const SvgIcons = (props) => (
|
|
|
112
125
|
<circle cx="12" cy="12" r="10" />
|
|
113
126
|
<path d="M9.09 9a3 3 0 015.83 1c0 2-3 3-3 3M12 17h.01" />
|
|
114
127
|
</symbol>
|
|
128
|
+
<symbol
|
|
129
|
+
fill="none"
|
|
130
|
+
stroke="currentColor"
|
|
131
|
+
stroke-width="2"
|
|
132
|
+
stroke-linecap="round"
|
|
133
|
+
stroke-linejoin="round"
|
|
134
|
+
viewBox="0 0 24 24"
|
|
135
|
+
id="info"
|
|
136
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
137
|
+
>
|
|
138
|
+
<circle cx="12" cy="12" r="10" />
|
|
139
|
+
<path d="M12 16v-4M12 8h.01" />
|
|
140
|
+
</symbol>
|
|
115
141
|
<symbol
|
|
116
142
|
viewBox="0 0 24 24"
|
|
117
143
|
fill="none"
|
package/src/components/index.js
CHANGED
|
@@ -5,8 +5,8 @@ export { BundleAssetsTotalsChartBars } from './bundle-assets-totals-chart-bars';
|
|
|
5
5
|
export { BundlePackages } from './bundle-packages';
|
|
6
6
|
export { BundleModules } from './bundle-modules';
|
|
7
7
|
export { ComponentLink } from './component-link';
|
|
8
|
-
export { DuplicatePackagesWarning } from './duplicate-packages-warning';
|
|
9
8
|
export { Delta } from './delta';
|
|
9
|
+
export { Insights } from './insights';
|
|
10
10
|
export { JobName } from './job-name';
|
|
11
11
|
export { JobHeader } from './job-header';
|
|
12
12
|
export { JobsHeader } from './jobs-header';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './insights';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
.icon {
|
|
2
|
+
padding: 3px;
|
|
3
|
+
box-sizing: content-box;
|
|
4
|
+
border-radius: 50%;
|
|
5
|
+
background: var(--color-highlight);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.error .icon {
|
|
9
|
+
background: var(--color-red-50);
|
|
10
|
+
color: var(--color-danger);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.warning .icon {
|
|
14
|
+
background: var(--color-yellow-100);
|
|
15
|
+
color: var(--color-warning-dark);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.info .icon {
|
|
19
|
+
background: var(--color-highlight-info);
|
|
20
|
+
color: var(--color-info);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.entry {
|
|
24
|
+
color: inherit;
|
|
25
|
+
text-decoration: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.entry:hover,
|
|
29
|
+
.entry:active,
|
|
30
|
+
.entry:focus {
|
|
31
|
+
text-decoration: underline;
|
|
32
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { getWrapperDecorator } from '../../stories';
|
|
4
|
+
import { Insights } from '.';
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: 'Components/Insights',
|
|
8
|
+
component: Insights,
|
|
9
|
+
decorators: [getWrapperDecorator()],
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const Template = (props: any) => <Insights {...props} />;
|
|
13
|
+
|
|
14
|
+
export const Default = Template.bind({});
|
|
15
|
+
|
|
16
|
+
Default.args = {
|
|
17
|
+
duplicatePackages: {
|
|
18
|
+
type: 'error',
|
|
19
|
+
data: {
|
|
20
|
+
packages: { 'package-a': ['package-a', 'package-a~1'] },
|
|
21
|
+
text: 'Bundle introduced 1 and removed 2 duplicate packages',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
newPackages: {
|
|
25
|
+
type: 'warning',
|
|
26
|
+
data: {
|
|
27
|
+
text: 'Bundle introduced 2 new packages: package-c, package-d',
|
|
28
|
+
packages: ['package-c', 'package-d'],
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const Info = Template.bind({});
|
|
34
|
+
|
|
35
|
+
Info.args = {
|
|
36
|
+
duplicatePackages: {
|
|
37
|
+
type: 'info',
|
|
38
|
+
data: {
|
|
39
|
+
packages: { 'package-a': ['package-a', 'package-a~1'] },
|
|
40
|
+
text: 'Bundle removed 1 duplicate packages',
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
newPackages: {
|
|
44
|
+
type: 'warning',
|
|
45
|
+
data: {
|
|
46
|
+
text: 'Bundle introduced 2 new packages: package-c, package-d',
|
|
47
|
+
packages: ['package-c', 'package-d'],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
};
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
import {
|
|
4
|
+
BUNDLE_PACKAGES_DUPLICATE,
|
|
5
|
+
BUNDLE_PACKAGES_COUNT,
|
|
6
|
+
InsightType,
|
|
7
|
+
JobInsight,
|
|
8
|
+
JobInsights as JobInsightsType,
|
|
9
|
+
} from '@bundle-stats/utils';
|
|
10
|
+
|
|
11
|
+
import { FlexStack } from '../../layout/flex-stack';
|
|
12
|
+
import { Stack } from '../../layout/stack';
|
|
13
|
+
import { Icon } from '../../ui/icon';
|
|
14
|
+
import { ComponentLink } from '../component-link';
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
import css from './insights.module.css';
|
|
17
|
+
|
|
18
|
+
interface InsightEntry {
|
|
19
|
+
name: string;
|
|
20
|
+
insight: JobInsight;
|
|
21
|
+
link: any;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const normalizedInsights = ({
|
|
25
|
+
duplicatePackages,
|
|
26
|
+
newPackages,
|
|
27
|
+
}: Partial<JobInsightsType['webpack']>): Array<InsightEntry> => {
|
|
28
|
+
const insightsByLevel: Record<InsightType, Array<InsightEntry>> = {
|
|
29
|
+
[InsightType.ERROR]: [],
|
|
30
|
+
[InsightType.WARNING]: [],
|
|
31
|
+
[InsightType.INFO]: [],
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
if (duplicatePackages) {
|
|
35
|
+
insightsByLevel[duplicatePackages.type].push({
|
|
36
|
+
name: 'duplicatePackages',
|
|
37
|
+
insight: duplicatePackages,
|
|
38
|
+
link: BUNDLE_PACKAGES_DUPLICATE,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (newPackages) {
|
|
43
|
+
insightsByLevel[newPackages.type].push({
|
|
44
|
+
name: 'newPackages',
|
|
45
|
+
insight: newPackages,
|
|
46
|
+
link: BUNDLE_PACKAGES_COUNT,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return [
|
|
51
|
+
...(insightsByLevel[InsightType.ERROR] || []),
|
|
52
|
+
...(insightsByLevel[InsightType.WARNING] || []),
|
|
53
|
+
...(insightsByLevel[InsightType.INFO] || []),
|
|
54
|
+
];
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const InsightTypeIconMap = new Map([
|
|
58
|
+
[InsightType.ERROR, Icon.ICONS.ERROR],
|
|
59
|
+
[InsightType.WARNING, Icon.ICONS.WARNING],
|
|
60
|
+
[InsightType.INFO, Icon.ICONS.INFO],
|
|
61
|
+
]);
|
|
62
|
+
|
|
63
|
+
interface InsightsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
64
|
+
duplicatePackages: any;
|
|
65
|
+
newPackages: any;
|
|
66
|
+
customComponentLink?: React.ElementType;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export const Insights = (props: InsightsProps) => {
|
|
70
|
+
const {
|
|
71
|
+
duplicatePackages,
|
|
72
|
+
newPackages,
|
|
73
|
+
customComponentLink: CustomComponentLink = ComponentLink,
|
|
74
|
+
...restProps
|
|
75
|
+
} = props;
|
|
76
|
+
|
|
77
|
+
const insights = normalizedInsights({ duplicatePackages, newPackages });
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<Stack space="xxsmall" {...restProps}>
|
|
81
|
+
{insights.map(({ name, insight, link }) => {
|
|
82
|
+
const glyph = InsightTypeIconMap.get(insight.type);
|
|
83
|
+
const { text } = insight.data as { text: string };
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<FlexStack
|
|
87
|
+
key={name}
|
|
88
|
+
space="xxsmall"
|
|
89
|
+
alignItems="center"
|
|
90
|
+
as={CustomComponentLink}
|
|
91
|
+
{...link}
|
|
92
|
+
className={cx(css.entry, css[insight.type])}
|
|
93
|
+
>
|
|
94
|
+
{glyph && <Icon glyph={glyph} className={css.icon} />}
|
|
95
|
+
<span>{text}</span>
|
|
96
|
+
</FlexStack>
|
|
97
|
+
);
|
|
98
|
+
})}
|
|
99
|
+
</Stack>
|
|
100
|
+
);
|
|
101
|
+
};
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import cx from 'classnames';
|
|
4
4
|
import get from 'lodash/get';
|
|
5
|
-
import {
|
|
5
|
+
import { Source, formatDateTime } from '@bundle-stats/utils';
|
|
6
6
|
|
|
7
7
|
import { FlexStack } from '../../layout/flex-stack';
|
|
8
8
|
import { Stack } from '../../layout/stack';
|
|
@@ -13,7 +13,7 @@ import css from './job-header.module.css';
|
|
|
13
13
|
export const JobHeader = (props) => {
|
|
14
14
|
const { className, tag, job, children } = props;
|
|
15
15
|
|
|
16
|
-
const { builtAt, hash } = get(job, `meta.${
|
|
16
|
+
const { builtAt, hash } = get(job, `meta.${Source.webpack}`, {});
|
|
17
17
|
const rootClassName = cx(css.root, className);
|
|
18
18
|
|
|
19
19
|
return (
|
package/src/ui/icon/icon.jsx
CHANGED
package/tsconfig.esm.json
CHANGED
package/tsconfig.lib.json
CHANGED
|
@@ -5,8 +5,8 @@ export { BundleAssetsTotalsChartBars } from "./bundle-assets-totals-chart-bars";
|
|
|
5
5
|
export { BundlePackages } from "./bundle-packages";
|
|
6
6
|
export { BundleModules } from "./bundle-modules";
|
|
7
7
|
export { ComponentLink } from "./component-link";
|
|
8
|
-
export { DuplicatePackagesWarning } from "./duplicate-packages-warning";
|
|
9
8
|
export { Delta } from "./delta";
|
|
9
|
+
export { Insights } from "./insights";
|
|
10
10
|
export { JobName } from "./job-name";
|
|
11
11
|
export { JobHeader } from "./job-header";
|
|
12
12
|
export { JobsHeader } from "./jobs-header";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './insights';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface InsightsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
duplicatePackages: any;
|
|
4
|
+
newPackages: any;
|
|
5
|
+
customComponentLink?: React.ElementType;
|
|
6
|
+
}
|
|
7
|
+
export declare const Insights: (props: InsightsProps) => JSX.Element;
|
|
8
|
+
export {};
|
package/types/ui/icon/icon.d.ts
CHANGED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DuplicatePackagesWarning = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const prop_types_1 = __importDefault(require("prop-types"));
|
|
9
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
10
|
-
const utils_1 = require("@bundle-stats/utils");
|
|
11
|
-
const alert_1 = require("../../ui/alert");
|
|
12
|
-
const component_link_1 = require("../component-link");
|
|
13
|
-
const delta_1 = require("../delta");
|
|
14
|
-
const duplicate_packages_warning_module_css_1 = __importDefault(require("./duplicate-packages-warning.module.css"));
|
|
15
|
-
const numberMetric = utils_1.METRIC_TYPES[utils_1.METRIC_TYPE_NUMERIC];
|
|
16
|
-
const DuplicatePackagesWarning = (props) => {
|
|
17
|
-
const { className, duplicatePackagesCount, customComponentLink: CustomComponentLink, showDelta, } = props;
|
|
18
|
-
const metricRunInfo = (0, utils_1.getMetricRunInfo)(numberMetric, duplicatePackagesCount.current, duplicatePackagesCount.baseline);
|
|
19
|
-
return (react_1.default.createElement(alert_1.Alert, { kind: "warning", className: (0, classnames_1.default)(duplicate_packages_warning_module_css_1.default.root, className) },
|
|
20
|
-
`Bundle contains `,
|
|
21
|
-
react_1.default.createElement(CustomComponentLink, { ...utils_1.BUNDLE_PACKAGES_DUPLICATE },
|
|
22
|
-
metricRunInfo.value,
|
|
23
|
-
showDelta && metricRunInfo.delta !== 0 && (react_1.default.createElement(delta_1.Delta, { className: duplicate_packages_warning_module_css_1.default.titleDelta, inverted: true, displayValue: metricRunInfo.displayDelta, deltaType: metricRunInfo.deltaType })),
|
|
24
|
-
` duplicate ${metricRunInfo.value === 1 ? 'package' : 'packages'}.`)));
|
|
25
|
-
};
|
|
26
|
-
exports.DuplicatePackagesWarning = DuplicatePackagesWarning;
|
|
27
|
-
exports.DuplicatePackagesWarning.propTypes = {
|
|
28
|
-
className: prop_types_1.default.string,
|
|
29
|
-
customComponentLink: prop_types_1.default.elementType,
|
|
30
|
-
duplicatePackagesCount: prop_types_1.default.shape({
|
|
31
|
-
current: prop_types_1.default.number,
|
|
32
|
-
baseline: prop_types_1.default.number,
|
|
33
|
-
}).isRequired,
|
|
34
|
-
showDelta: prop_types_1.default.bool,
|
|
35
|
-
};
|
|
36
|
-
exports.DuplicatePackagesWarning.defaultProps = {
|
|
37
|
-
className: '',
|
|
38
|
-
customComponentLink: component_link_1.ComponentLink,
|
|
39
|
-
showDelta: true,
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=duplicate-packages-warning.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate-packages-warning.js","sourceRoot":"","sources":["../../../src/components/duplicate-packages-warning/duplicate-packages-warning.jsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAAmC;AACnC,4DAA4B;AAC5B,+CAAqH;AAErH,0CAAuC;AACvC,sDAAkD;AAClD,oCAAiC;AACjC,oHAA0D;AAE1D,MAAM,YAAY,GAAG,oBAAY,CAAC,2BAAmB,CAAC,CAAC;AAEhD,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,EAAE;IAChD,MAAM,EACJ,SAAS,EACT,sBAAsB,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,IAAA,wBAAgB,EACpC,YAAY,EACZ,sBAAsB,CAAC,OAAO,EAC9B,sBAAsB,CAAC,QAAQ,CAChC,CAAC;IAEF,OAAO,CACL,8BAAC,aAAK,IAAC,IAAI,EAAC,SAAS,EAAC,SAAS,EAAE,IAAA,oBAAE,EAAC,+CAAG,CAAC,IAAI,EAAE,SAAS,CAAC;QACrD,kBAAkB;QACnB,8BAAC,mBAAmB,OAAK,iCAAyB;YAC/C,aAAa,CAAC,KAAK;YACnB,SAAS,IAAI,aAAa,CAAC,KAAK,KAAK,CAAC,IAAI,CACzC,8BAAC,aAAK,IACJ,SAAS,EAAE,+CAAG,CAAC,UAAU,EACzB,QAAQ,QACR,YAAY,EAAE,aAAa,CAAC,YAAY,EACxC,SAAS,EAAE,aAAa,CAAC,SAAS,GAClC,CACH;YACA,cAAc,aAAa,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,CAChD,CAChB,CACT,CAAC;AACJ,CAAC,CAAC;AA/BW,QAAA,wBAAwB,4BA+BnC;AAEF,gCAAwB,CAAC,SAAS,GAAG;IACnC,SAAS,EAAE,oBAAS,CAAC,MAAM;IAC3B,mBAAmB,EAAE,oBAAS,CAAC,WAAW;IAC1C,sBAAsB,EAAE,oBAAS,CAAC,KAAK,CAAC;QACtC,OAAO,EAAE,oBAAS,CAAC,MAAM;QACzB,QAAQ,EAAE,oBAAS,CAAC,MAAM;KAC3B,CAAC,CAAC,UAAU;IACb,SAAS,EAAE,oBAAS,CAAC,IAAI;CAC1B,CAAC;AAEF,gCAAwB,CAAC,YAAY,GAAG;IACtC,SAAS,EAAE,EAAE;IACb,mBAAmB,EAAE,8BAAa;IAClC,SAAS,EAAE,IAAI;CAChB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
.root a {
|
|
2
|
-
text-decoration: none;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.root a:hover,
|
|
6
|
-
.root a:active,
|
|
7
|
-
.root a:focus {
|
|
8
|
-
text-decoration: none;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.title {
|
|
12
|
-
margin-bottom: var(--space-xxsmall);
|
|
13
|
-
font-size: var(--size-medium);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.titleDelta {
|
|
17
|
-
margin-left: var(--space-xxxsmall);
|
|
18
|
-
padding: 1px 2px;
|
|
19
|
-
vertical-align: super;
|
|
20
|
-
font-size: 9px;
|
|
21
|
-
line-height: 1;
|
|
22
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/duplicate-packages-warning/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C"}
|