@bundle-stats/ui 4.3.2 → 4.3.4

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.
@@ -12,6 +12,11 @@
12
12
  text-align: center;
13
13
  }
14
14
 
15
+ .header {
16
+ background-color: var(--color-background);
17
+ border-bottom: 1px solid var(--color-outline);
18
+ }
19
+
15
20
  .summaryContainer {
16
21
  padding-top: var(--space-medium);
17
22
  padding-bottom: var(--space-xsmall);
@@ -52,8 +57,6 @@
52
57
  top: 0;
53
58
  right: 0;
54
59
  height: var(--header-height);
55
- background-color: var(--color-background);
56
- border-bottom: 1px solid var(--color-outline);
57
60
  }
58
61
 
59
62
  .tabsContainer {
@@ -9,7 +9,6 @@ const classnames_1 = __importDefault(require("classnames"));
9
9
  const utils_1 = require("@bundle-stats/utils");
10
10
  const i18n_1 = __importDefault(require("../../i18n"));
11
11
  const flex_stack_1 = require("../../layout/flex-stack");
12
- const stack_1 = require("../../layout/stack");
13
12
  const icon_1 = require("../../ui/icon");
14
13
  const tag_1 = require("../../ui/tag");
15
14
  const jobs_header_module_css_1 = __importDefault(require("./jobs-header.module.css"));
@@ -17,23 +16,22 @@ const Item = (props) => {
17
16
  const { className, tag, job } = props;
18
17
  const { builtAt, hash } = job.meta?.webpack || {};
19
18
  const rootClassName = (0, classnames_1.default)(jobs_header_module_css_1.default.item, className);
20
- return (react_1.default.createElement(stack_1.Stack, { className: rootClassName, space: "xxsmall" },
21
- react_1.default.createElement(flex_stack_1.FlexStack, { space: "xsmall", alignItems: "center" },
22
- react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxxsmall", as: "h1", className: jobs_header_module_css_1.default.itemTitle },
23
- react_1.default.createElement("span", null, `#${job.internalBuildNumber}`),
24
- tag && react_1.default.createElement(tag_1.Tag, { className: jobs_header_module_css_1.default.itemTag }, tag)),
25
- builtAt && (react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxxsmall", alignItems: "center", inline: true, as: "span", title: builtAt, className: jobs_header_module_css_1.default.itemMeta },
26
- react_1.default.createElement(icon_1.Icon, { glyph: "clock", className: jobs_header_module_css_1.default.itemMetaIcon }),
27
- react_1.default.createElement("span", { className: jobs_header_module_css_1.default.itemMetaText }, (0, utils_1.formatDateTime)({ dateStyle: 'medium', timeStyle: 'medium' }, builtAt)))),
28
- hash && (react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxxsmall", alignItems: "center", inline: true, title: "Webpack bundle hash", className: jobs_header_module_css_1.default.itemMeta },
29
- react_1.default.createElement(icon_1.Icon, { glyph: "commit", className: jobs_header_module_css_1.default.itemMetaIcon }),
30
- react_1.default.createElement("span", { className: jobs_header_module_css_1.default.itemMetaText }, hash.slice(0, 7)))))));
19
+ return (react_1.default.createElement(flex_stack_1.FlexStack, { space: "xsmall", alignItems: "center", className: rootClassName },
20
+ react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxxsmall", as: "h1", className: jobs_header_module_css_1.default.itemTitle },
21
+ react_1.default.createElement("span", null, `#${job.internalBuildNumber}`),
22
+ tag && react_1.default.createElement(tag_1.Tag, { className: jobs_header_module_css_1.default.itemTag }, tag)),
23
+ builtAt && (react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxxsmall", alignItems: "center", inline: true, as: "span", title: builtAt, className: jobs_header_module_css_1.default.itemMeta },
24
+ react_1.default.createElement(icon_1.Icon, { glyph: "clock", className: jobs_header_module_css_1.default.itemMetaIcon }),
25
+ react_1.default.createElement("span", { className: jobs_header_module_css_1.default.itemMetaText }, (0, utils_1.formatDateTime)({ dateStyle: 'medium', timeStyle: 'medium' }, builtAt)))),
26
+ hash && (react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxxsmall", alignItems: "center", inline: true, as: "span", title: "Webpack bundle hash", className: jobs_header_module_css_1.default.itemMeta },
27
+ react_1.default.createElement(icon_1.Icon, { glyph: "commit", className: jobs_header_module_css_1.default.itemMetaIcon }),
28
+ react_1.default.createElement("span", { className: jobs_header_module_css_1.default.itemMetaText }, hash.slice(0, 7))))));
31
29
  };
32
30
  exports.Item = Item;
33
31
  const JobsHeader = (props) => {
34
32
  const { className, jobs } = props;
35
33
  const rootClassName = (0, classnames_1.default)(jobs_header_module_css_1.default.root, className);
36
- return (react_1.default.createElement(flex_stack_1.FlexStack, { className: rootClassName }, jobs?.map((job, index) => (react_1.default.createElement(exports.Item, { key: job.internalBuildNumber || index, job: job, tag: index === 0 ? i18n_1.default.CURRENT : i18n_1.default.BASELINE })))));
34
+ return (react_1.default.createElement("header", { className: rootClassName }, jobs?.map((job, index) => (react_1.default.createElement(exports.Item, { key: job.internalBuildNumber || index, job: job, tag: index === 0 ? i18n_1.default.CURRENT : i18n_1.default.BASELINE })))));
37
35
  };
38
36
  exports.JobsHeader = JobsHeader;
39
37
  //# sourceMappingURL=jobs-header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jobs-header.js","sourceRoot":"","sources":["../../../src/components/jobs-header/jobs-header.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAA4B;AAC5B,+CAAqD;AAErD,sDAA8B;AAC9B,wDAAoD;AACpD,8CAA2C;AAC3C,wCAAqC;AACrC,sCAAmC;AACnC,sFAA2C;AAepC,MAAM,IAAI,GAAG,CAAC,KAA8C,EAAE,EAAE;IACrE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAEtC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;IAClD,MAAM,aAAa,GAAG,IAAA,oBAAE,EAAC,gCAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,CACL,8BAAC,aAAK,IAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAC,SAAS;QAC9C,8BAAC,sBAAS,IAAC,KAAK,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ;YAC3C,8BAAC,sBAAS,IAAC,KAAK,EAAC,UAAU,EAAC,EAAE,EAAC,IAAI,EAAC,SAAS,EAAE,gCAAG,CAAC,SAAS;gBAC1D,4CAAO,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAQ;gBAC3C,GAAG,IAAI,8BAAC,SAAG,IAAC,SAAS,EAAE,gCAAG,CAAC,OAAO,IAAG,GAAG,CAAO,CACtC;YAEX,OAAO,IAAI,CACV,8BAAC,sBAAS,IACR,KAAK,EAAC,UAAU,EAChB,UAAU,EAAC,QAAQ,EACnB,MAAM,QACN,EAAE,EAAC,MAAM,EACT,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,gCAAG,CAAC,QAAQ;gBAEvB,8BAAC,WAAI,IAAC,KAAK,EAAC,OAAO,EAAC,SAAS,EAAE,gCAAG,CAAC,YAAY,GAAI;gBACnD,wCAAM,SAAS,EAAE,gCAAG,CAAC,YAAY,IAC9B,IAAA,sBAAc,EAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,CACjE,CACG,CACb;YAEA,IAAI,IAAI,CACP,8BAAC,sBAAS,IACR,KAAK,EAAC,UAAU,EAChB,UAAU,EAAC,QAAQ,EACnB,MAAM,QACN,KAAK,EAAC,qBAAqB,EAC3B,SAAS,EAAE,gCAAG,CAAC,QAAQ;gBAEvB,8BAAC,WAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAE,gCAAG,CAAC,YAAY,GAAI;gBACpD,wCAAM,SAAS,EAAE,gCAAG,CAAC,YAAY,IAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAQ,CAClD,CACb,CACS,CACN,CACT,CAAC;AACJ,CAAC,CAAC;AA7CW,QAAA,IAAI,QA6Cf;AAMK,MAAM,UAAU,GAAG,CAAC,KAAuD,EAAE,EAAE;IACpF,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,aAAa,GAAG,IAAA,oBAAE,EAAC,gCAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,CACL,8BAAC,sBAAS,IAAC,SAAS,EAAE,aAAa,IAChC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACzB,8BAAC,YAAI,IACH,GAAG,EAAE,GAAG,CAAC,mBAAmB,IAAI,KAAK,EACrC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,cAAI,CAAC,QAAQ,GAC/C,CACH,CAAC,CACQ,CACb,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,UAAU,cAerB"}
1
+ {"version":3,"file":"jobs-header.js","sourceRoot":"","sources":["../../../src/components/jobs-header/jobs-header.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAA4B;AAC5B,+CAAqD;AAErD,sDAA8B;AAC9B,wDAAoD;AAEpD,wCAAqC;AACrC,sCAAmC;AACnC,sFAA2C;AAepC,MAAM,IAAI,GAAG,CAAC,KAA8C,EAAE,EAAE;IACrE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAEtC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;IAClD,MAAM,aAAa,GAAG,IAAA,oBAAE,EAAC,gCAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,CACL,8BAAC,sBAAS,IAAC,KAAK,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAE,aAAa;QACpE,8BAAC,sBAAS,IAAC,KAAK,EAAC,UAAU,EAAC,EAAE,EAAC,IAAI,EAAC,SAAS,EAAE,gCAAG,CAAC,SAAS;YAC1D,4CAAO,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAQ;YAC3C,GAAG,IAAI,8BAAC,SAAG,IAAC,SAAS,EAAE,gCAAG,CAAC,OAAO,IAAG,GAAG,CAAO,CACtC;QAEX,OAAO,IAAI,CACV,8BAAC,sBAAS,IACR,KAAK,EAAC,UAAU,EAChB,UAAU,EAAC,QAAQ,EACnB,MAAM,QACN,EAAE,EAAC,MAAM,EACT,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,gCAAG,CAAC,QAAQ;YAEvB,8BAAC,WAAI,IAAC,KAAK,EAAC,OAAO,EAAC,SAAS,EAAE,gCAAG,CAAC,YAAY,GAAI;YACnD,wCAAM,SAAS,EAAE,gCAAG,CAAC,YAAY,IAC9B,IAAA,sBAAc,EAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,CACjE,CACG,CACb;QAEA,IAAI,IAAI,CACP,8BAAC,sBAAS,IACR,KAAK,EAAC,UAAU,EAChB,UAAU,EAAC,QAAQ,EACnB,MAAM,QACN,EAAE,EAAC,MAAM,EACT,KAAK,EAAC,qBAAqB,EAC3B,SAAS,EAAE,gCAAG,CAAC,QAAQ;YAEvB,8BAAC,WAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAE,gCAAG,CAAC,YAAY,GAAI;YACpD,wCAAM,SAAS,EAAE,gCAAG,CAAC,YAAY,IAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAQ,CAClD,CACb,CACS,CACb,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,IAAI,QA4Cf;AAMK,MAAM,UAAU,GAAG,CAAC,KAAuD,EAAE,EAAE;IACpF,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,aAAa,GAAG,IAAA,oBAAE,EAAC,gCAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,CACL,0CAAQ,SAAS,EAAE,aAAa,IAC7B,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACzB,8BAAC,YAAI,IACH,GAAG,EAAE,GAAG,CAAC,mBAAmB,IAAI,KAAK,EACrC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,cAAI,CAAC,QAAQ,GAC/C,CACH,CAAC,CACK,CACV,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,UAAU,cAerB"}
@@ -1,13 +1,33 @@
1
1
  .root {
2
2
  padding: var(--space-small) 0;
3
+ width: 100%;
4
+ display: flex;
3
5
  }
4
6
 
5
7
  .item {
6
- flex: 0 0 auto;
8
+ position: relative;
9
+ flex: 1 0 10%;
10
+ max-width: 50%;
11
+ overflow: hidden;
7
12
  padding: 0 var(--space-small);
8
13
  border-left: 1px solid var(--color-outline);
9
14
  }
10
15
 
16
+ .item::after {
17
+ content: '';
18
+ display: block;
19
+ position: absolute;
20
+ top: 0;
21
+ right: 0;
22
+ bottom: 0;
23
+ width: var(--space-xxsmall);
24
+ background: linear-gradient(90deg, transparent, var(--color-background));
25
+ }
26
+
27
+ .item + .item {
28
+ margin-left: var(--space-small);
29
+ }
30
+
11
31
  .item:first-child {
12
32
  border-left: 0;
13
33
  padding-left: 0;
@@ -32,3 +52,12 @@
32
52
  font-size: var(--size-small);
33
53
  color: var(--color-text-light);
34
54
  }
55
+
56
+ .itemMetaIcon {
57
+ flex: 0 0 auto;
58
+ }
59
+
60
+ .itemMetaText {
61
+ flex: 0 0 auto;
62
+ white-space: nowrap;
63
+ }
@@ -10,7 +10,6 @@ const get_1 = __importDefault(require("lodash/get"));
10
10
  const utils_1 = require("@bundle-stats/utils");
11
11
  const constants_1 = require("../../constants");
12
12
  const box_1 = require("../../layout/box");
13
- const flex_stack_1 = require("../../layout/flex-stack");
14
13
  const component_link_1 = require("../component-link");
15
14
  const metric_run_info_1 = require("../metric-run-info");
16
15
  const summary_module_css_1 = __importDefault(require("./summary.module.css"));
@@ -22,6 +21,6 @@ const SummaryItem = (props) => {
22
21
  react_1.default.createElement(metric_run_info_1.MetricRunInfo, { metricId: metricId, current: metricData.current, baseline: metricData.baseline, showDelta: showDelta && componentLink?.showDelta, showBaseline: showBaseline, size: size, loading: loading })));
23
22
  };
24
23
  const Summary = ({ className = '', size = 'medium', keys = constants_1.METRICS_WEBPACK_GENERAL, data = null, loading = false, showSummaryItemDelta = true, showSummaryItemBaseline = true, summaryItemLink = component_link_1.ComponentLink, }) => (react_1.default.createElement(box_1.Box, { className: (0, classnames_1.default)(summary_module_css_1.default.root, className) },
25
- react_1.default.createElement(flex_stack_1.FlexStack, { space: "small", className: summary_module_css_1.default.items }, keys.map((metricId) => (react_1.default.createElement(SummaryItem, { key: metricId, className: summary_module_css_1.default.item, metricId: metricId, data: data, customLink: summaryItemLink, size: size, loading: loading, showDelta: showSummaryItemDelta, showBaseline: showSummaryItemBaseline }))))));
24
+ react_1.default.createElement("div", { className: summary_module_css_1.default.items }, keys.map((metricId) => (react_1.default.createElement(SummaryItem, { key: metricId, className: summary_module_css_1.default.item, metricId: metricId, data: data, customLink: summaryItemLink, size: size, loading: loading, showDelta: showSummaryItemDelta, showBaseline: showSummaryItemBaseline }))))));
26
25
  exports.Summary = Summary;
27
26
  //# sourceMappingURL=summary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/components/summary/summary.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA2C;AAC3C,4DAA4B;AAC5B,qDAA6B;AAC7B,+CAA6D;AAE7D,+CAA0D;AAC1D,0CAAuC;AACvC,wDAAoD;AACpD,sDAAkD;AAClD,wDAAuE;AACvE,8EAAuC;AAYvC,MAAM,WAAW,GAAG,CAAC,KAAqD,EAAE,EAAE;IAC5E,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,IAAI,EACJ,UAAU,EAAE,qBAAqB,EACjC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,YAAY,GACb,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,8BAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAEpE,OAAO,CACL,8BAAC,SAAG,IACF,GAAG,EAAE,QAAQ,EACb,OAAO,QACP,YAAY,QACZ,OAAO,EAAC,OAAO,EACf,EAAE,EAAE,qBAAqB,KACrB,aAAa,EAAE,IAAI,EACvB,SAAS,EAAE,SAAS;QAEpB,8BAAC,+BAAa,IACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAC7B,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,SAAS,EAChD,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,GAChB,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAiBK,MAAM,OAAO,GAAG,CAAC,EACtB,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,QAAQ,EACf,IAAI,GAAG,mCAAuB,EAC9B,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,KAAK,EACf,oBAAoB,GAAG,IAAI,EAC3B,uBAAuB,GAAG,IAAI,EAC9B,eAAe,GAAG,8BAAa,GACY,EAAE,EAAE,CAAC,CAChD,8BAAC,SAAG,IAAC,SAAS,EAAE,IAAA,oBAAE,EAAC,4BAAG,CAAC,IAAI,EAAE,SAAS,CAAC;IACrC,8BAAC,sBAAS,IAAC,KAAK,EAAC,OAAO,EAAC,SAAS,EAAE,4BAAG,CAAC,KAAK,IAC1C,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtB,8BAAC,WAAW,IACV,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,4BAAG,CAAC,IAAI,EACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,oBAAoB,EAC/B,YAAY,EAAE,uBAAuB,GACrC,CACH,CAAC,CACQ,CACR,CACP,CAAC;AA3BW,QAAA,OAAO,WA2BlB"}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/components/summary/summary.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA2C;AAC3C,4DAA4B;AAC5B,qDAA6B;AAC7B,+CAA6D;AAE7D,+CAA0D;AAC1D,0CAAuC;AAEvC,sDAAkD;AAClD,wDAAuE;AACvE,8EAAuC;AAYvC,MAAM,WAAW,GAAG,CAAC,KAAqD,EAAE,EAAE;IAC5E,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,IAAI,EACJ,UAAU,EAAE,qBAAqB,EACjC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,YAAY,GACb,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,8BAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAEpE,OAAO,CACL,8BAAC,SAAG,IACF,GAAG,EAAE,QAAQ,EACb,OAAO,QACP,YAAY,QACZ,OAAO,EAAC,OAAO,EACf,EAAE,EAAE,qBAAqB,KACrB,aAAa,EAAE,IAAI,EACvB,SAAS,EAAE,SAAS;QAEpB,8BAAC,+BAAa,IACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAC7B,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,SAAS,EAChD,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,GAChB,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAiBK,MAAM,OAAO,GAAG,CAAC,EACtB,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,QAAQ,EACf,IAAI,GAAG,mCAAuB,EAC9B,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,KAAK,EACf,oBAAoB,GAAG,IAAI,EAC3B,uBAAuB,GAAG,IAAI,EAC9B,eAAe,GAAG,8BAAa,GACY,EAAE,EAAE,CAAC,CAChD,8BAAC,SAAG,IAAC,SAAS,EAAE,IAAA,oBAAE,EAAC,4BAAG,CAAC,IAAI,EAAE,SAAS,CAAC;IACrC,uCAAK,SAAS,EAAE,4BAAG,CAAC,KAAK,IACpB,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtB,8BAAC,WAAW,IACV,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,4BAAG,CAAC,IAAI,EACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,oBAAoB,EAC/B,YAAY,EAAE,uBAAuB,GACrC,CACH,CAAC,CACE,CACJ,CACP,CAAC;AA3BW,QAAA,OAAO,WA2BlB"}
@@ -1,10 +1,20 @@
1
1
  .root {
2
+ --summary-gap: var(--space-small);
2
3
  width: 100%;
3
4
  }
4
5
 
6
+ .items {
7
+ display: flex;
8
+ flex-wrap: wrap;
9
+ width: calc(100% + var(--summary-gap));
10
+ margin-top: calc(0px - var(--summary-gap));
11
+ margin-left: calc(0px - var(--summary-gap));
12
+ }
13
+
5
14
  .item {
15
+ margin: var(--summary-gap) 0 0 var(--summary-gap);
6
16
  flex: 1 0 10%; /* force equal sizes */
7
- min-width: 16em;
17
+ min-width: 14em;
8
18
  text-decoration: none;
9
19
  }
10
20
 
@@ -25,4 +35,3 @@
25
35
  color: var(--color-primary-dark);
26
36
  text-decoration: none;
27
37
  }
28
-
@@ -3,6 +3,8 @@
3
3
  display: flex;
4
4
  align-items: stretch;
5
5
  justify-content: flex-start;
6
+ width: 100%;
7
+ overflow: hidden;
6
8
  }
7
9
 
8
10
  .item {
@@ -12,6 +12,11 @@
12
12
  text-align: center;
13
13
  }
14
14
 
15
+ .header {
16
+ background-color: var(--color-background);
17
+ border-bottom: 1px solid var(--color-outline);
18
+ }
19
+
15
20
  .summaryContainer {
16
21
  padding-top: var(--space-medium);
17
22
  padding-bottom: var(--space-xsmall);
@@ -52,8 +57,6 @@
52
57
  top: 0;
53
58
  right: 0;
54
59
  height: var(--header-height);
55
- background-color: var(--color-background);
56
- border-bottom: 1px solid var(--color-outline);
57
60
  }
58
61
 
59
62
  .tabsContainer {
@@ -3,7 +3,6 @@ import cx from 'classnames';
3
3
  import { formatDateTime } from '@bundle-stats/utils';
4
4
  import I18N from '../../i18n';
5
5
  import { FlexStack } from '../../layout/flex-stack';
6
- import { Stack } from '../../layout/stack';
7
6
  import { Icon } from '../../ui/icon';
8
7
  import { Tag } from '../../ui/tag';
9
8
  import css from './jobs-header.module.css';
@@ -12,21 +11,20 @@ export const Item = (props) => {
12
11
  const { className, tag, job } = props;
13
12
  const { builtAt, hash } = ((_a = job.meta) === null || _a === void 0 ? void 0 : _a.webpack) || {};
14
13
  const rootClassName = cx(css.item, className);
15
- return (React.createElement(Stack, { className: rootClassName, space: "xxsmall" },
16
- React.createElement(FlexStack, { space: "xsmall", alignItems: "center" },
17
- React.createElement(FlexStack, { space: "xxxsmall", as: "h1", className: css.itemTitle },
18
- React.createElement("span", null, `#${job.internalBuildNumber}`),
19
- tag && React.createElement(Tag, { className: css.itemTag }, tag)),
20
- builtAt && (React.createElement(FlexStack, { space: "xxxsmall", alignItems: "center", inline: true, as: "span", title: builtAt, className: css.itemMeta },
21
- React.createElement(Icon, { glyph: "clock", className: css.itemMetaIcon }),
22
- React.createElement("span", { className: css.itemMetaText }, formatDateTime({ dateStyle: 'medium', timeStyle: 'medium' }, builtAt)))),
23
- hash && (React.createElement(FlexStack, { space: "xxxsmall", alignItems: "center", inline: true, title: "Webpack bundle hash", className: css.itemMeta },
24
- React.createElement(Icon, { glyph: "commit", className: css.itemMetaIcon }),
25
- React.createElement("span", { className: css.itemMetaText }, hash.slice(0, 7)))))));
14
+ return (React.createElement(FlexStack, { space: "xsmall", alignItems: "center", className: rootClassName },
15
+ React.createElement(FlexStack, { space: "xxxsmall", as: "h1", className: css.itemTitle },
16
+ React.createElement("span", null, `#${job.internalBuildNumber}`),
17
+ tag && React.createElement(Tag, { className: css.itemTag }, tag)),
18
+ builtAt && (React.createElement(FlexStack, { space: "xxxsmall", alignItems: "center", inline: true, as: "span", title: builtAt, className: css.itemMeta },
19
+ React.createElement(Icon, { glyph: "clock", className: css.itemMetaIcon }),
20
+ React.createElement("span", { className: css.itemMetaText }, formatDateTime({ dateStyle: 'medium', timeStyle: 'medium' }, builtAt)))),
21
+ hash && (React.createElement(FlexStack, { space: "xxxsmall", alignItems: "center", inline: true, as: "span", title: "Webpack bundle hash", className: css.itemMeta },
22
+ React.createElement(Icon, { glyph: "commit", className: css.itemMetaIcon }),
23
+ React.createElement("span", { className: css.itemMetaText }, hash.slice(0, 7))))));
26
24
  };
27
25
  export const JobsHeader = (props) => {
28
26
  const { className, jobs } = props;
29
27
  const rootClassName = cx(css.root, className);
30
- return (React.createElement(FlexStack, { className: rootClassName }, jobs === null || jobs === void 0 ? void 0 : jobs.map((job, index) => (React.createElement(Item, { key: job.internalBuildNumber || index, job: job, tag: index === 0 ? I18N.CURRENT : I18N.BASELINE })))));
28
+ return (React.createElement("header", { className: rootClassName }, jobs === null || jobs === void 0 ? void 0 : jobs.map((job, index) => (React.createElement(Item, { key: job.internalBuildNumber || index, job: job, tag: index === 0 ? I18N.CURRENT : I18N.BASELINE })))));
31
29
  };
32
30
  //# sourceMappingURL=jobs-header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jobs-header.js","sourceRoot":"","sources":["../../../src/components/jobs-header/jobs-header.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobs-header.js","sourceRoot":"","sources":["../../../src/components/jobs-header/jobs-header.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,33 @@
1
1
  .root {
2
2
  padding: var(--space-small) 0;
3
+ width: 100%;
4
+ display: flex;
3
5
  }
4
6
 
5
7
  .item {
6
- flex: 0 0 auto;
8
+ position: relative;
9
+ flex: 1 0 10%;
10
+ max-width: 50%;
11
+ overflow: hidden;
7
12
  padding: 0 var(--space-small);
8
13
  border-left: 1px solid var(--color-outline);
9
14
  }
10
15
 
16
+ .item::after {
17
+ content: '';
18
+ display: block;
19
+ position: absolute;
20
+ top: 0;
21
+ right: 0;
22
+ bottom: 0;
23
+ width: var(--space-xxsmall);
24
+ background: linear-gradient(90deg, transparent, var(--color-background));
25
+ }
26
+
27
+ .item + .item {
28
+ margin-left: var(--space-small);
29
+ }
30
+
11
31
  .item:first-child {
12
32
  border-left: 0;
13
33
  padding-left: 0;
@@ -32,3 +52,12 @@
32
52
  font-size: var(--size-small);
33
53
  color: var(--color-text-light);
34
54
  }
55
+
56
+ .itemMetaIcon {
57
+ flex: 0 0 auto;
58
+ }
59
+
60
+ .itemMetaText {
61
+ flex: 0 0 auto;
62
+ white-space: nowrap;
63
+ }
@@ -4,7 +4,6 @@ import get from 'lodash/get';
4
4
  import { METRIC_COMPONENT_LINKS } from '@bundle-stats/utils';
5
5
  import { METRICS_WEBPACK_GENERAL } from '../../constants';
6
6
  import { Box } from '../../layout/box';
7
- import { FlexStack } from '../../layout/flex-stack';
8
7
  import { ComponentLink } from '../component-link';
9
8
  import { MetricRunInfo } from '../metric-run-info';
10
9
  import css from './summary.module.css';
@@ -16,5 +15,5 @@ const SummaryItem = (props) => {
16
15
  React.createElement(MetricRunInfo, { metricId: metricId, current: metricData.current, baseline: metricData.baseline, showDelta: showDelta && (componentLink === null || componentLink === void 0 ? void 0 : componentLink.showDelta), showBaseline: showBaseline, size: size, loading: loading })));
17
16
  };
18
17
  export const Summary = ({ className = '', size = 'medium', keys = METRICS_WEBPACK_GENERAL, data = null, loading = false, showSummaryItemDelta = true, showSummaryItemBaseline = true, summaryItemLink = ComponentLink, }) => (React.createElement(Box, { className: cx(css.root, className) },
19
- React.createElement(FlexStack, { space: "small", className: css.items }, keys.map((metricId) => (React.createElement(SummaryItem, { key: metricId, className: css.item, metricId: metricId, data: data, customLink: summaryItemLink, size: size, loading: loading, showDelta: showSummaryItemDelta, showBaseline: showSummaryItemBaseline }))))));
18
+ React.createElement("div", { className: css.items }, keys.map((metricId) => (React.createElement(SummaryItem, { key: metricId, className: css.item, metricId: metricId, data: data, customLink: summaryItemLink, size: size, loading: loading, showDelta: showSummaryItemDelta, showBaseline: showSummaryItemBaseline }))))));
20
19
  //# sourceMappingURL=summary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/components/summary/summary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAsB,MAAM,oBAAoB,CAAC;AACvE,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAYvC,MAAM,WAAW,GAAG,CAAC,KAAqD,EAAE,EAAE;IAC5E,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,IAAI,EACJ,UAAU,EAAE,qBAAqB,EACjC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,YAAY,GACb,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAEpE,OAAO,CACL,oBAAC,GAAG,IACF,GAAG,EAAE,QAAQ,EACb,OAAO,QACP,YAAY,QACZ,OAAO,EAAC,OAAO,EACf,EAAE,EAAE,qBAAqB,KACrB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,EACvB,SAAS,EAAE,SAAS;QAEpB,oBAAC,aAAa,IACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAC7B,SAAS,EAAE,SAAS,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,CAAA,EAChD,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,GAChB,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAiBF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,QAAQ,EACf,IAAI,GAAG,uBAAuB,EAC9B,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,KAAK,EACf,oBAAoB,GAAG,IAAI,EAC3B,uBAAuB,GAAG,IAAI,EAC9B,eAAe,GAAG,aAAa,GACY,EAAE,EAAE,CAAC,CAChD,oBAAC,GAAG,IAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;IACrC,oBAAC,SAAS,IAAC,KAAK,EAAC,OAAO,EAAC,SAAS,EAAE,GAAG,CAAC,KAAK,IAC1C,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtB,oBAAC,WAAW,IACV,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,GAAG,CAAC,IAAI,EACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,oBAAoB,EAC/B,YAAY,EAAE,uBAAuB,GACrC,CACH,CAAC,CACQ,CACR,CACP,CAAC"}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/components/summary/summary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAsB,MAAM,oBAAoB,CAAC;AACvE,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAYvC,MAAM,WAAW,GAAG,CAAC,KAAqD,EAAE,EAAE;IAC5E,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,IAAI,EACJ,UAAU,EAAE,qBAAqB,EACjC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,YAAY,GACb,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAEpE,OAAO,CACL,oBAAC,GAAG,IACF,GAAG,EAAE,QAAQ,EACb,OAAO,QACP,YAAY,QACZ,OAAO,EAAC,OAAO,EACf,EAAE,EAAE,qBAAqB,KACrB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,EACvB,SAAS,EAAE,SAAS;QAEpB,oBAAC,aAAa,IACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAC7B,SAAS,EAAE,SAAS,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,CAAA,EAChD,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,GAChB,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAiBF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,QAAQ,EACf,IAAI,GAAG,uBAAuB,EAC9B,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,KAAK,EACf,oBAAoB,GAAG,IAAI,EAC3B,uBAAuB,GAAG,IAAI,EAC9B,eAAe,GAAG,aAAa,GACY,EAAE,EAAE,CAAC,CAChD,oBAAC,GAAG,IAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;IACrC,6BAAK,SAAS,EAAE,GAAG,CAAC,KAAK,IACpB,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtB,oBAAC,WAAW,IACV,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,GAAG,CAAC,IAAI,EACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,oBAAoB,EAC/B,YAAY,EAAE,uBAAuB,GACrC,CACH,CAAC,CACE,CACJ,CACP,CAAC"}
@@ -1,10 +1,20 @@
1
1
  .root {
2
+ --summary-gap: var(--space-small);
2
3
  width: 100%;
3
4
  }
4
5
 
6
+ .items {
7
+ display: flex;
8
+ flex-wrap: wrap;
9
+ width: calc(100% + var(--summary-gap));
10
+ margin-top: calc(0px - var(--summary-gap));
11
+ margin-left: calc(0px - var(--summary-gap));
12
+ }
13
+
5
14
  .item {
15
+ margin: var(--summary-gap) 0 0 var(--summary-gap);
6
16
  flex: 1 0 10%; /* force equal sizes */
7
- min-width: 16em;
17
+ min-width: 14em;
8
18
  text-decoration: none;
9
19
  }
10
20
 
@@ -25,4 +35,3 @@
25
35
  color: var(--color-primary-dark);
26
36
  text-decoration: none;
27
37
  }
28
-
@@ -3,6 +3,8 @@
3
3
  display: flex;
4
4
  align-items: stretch;
5
5
  justify-content: flex-start;
6
+ width: 100%;
7
+ overflow: hidden;
6
8
  }
7
9
 
8
10
  .item {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bundle-stats/ui",
3
- "version": "4.3.2",
3
+ "version": "4.3.4",
4
4
  "description": "UI components for BundleStats projects.",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "homepage": "https://github.com/relative-ci/bundle-stats/blob/master/packages/ui#readme",
38
38
  "devDependencies": {
39
- "@babel/preset-env": "7.21.4",
39
+ "@babel/preset-env": "7.21.5",
40
40
  "@babel/preset-react": "7.18.6",
41
41
  "@storybook/addon-essentials": "6.5.16",
42
42
  "@storybook/addon-knobs": "6.4.0",
@@ -45,7 +45,7 @@
45
45
  "@storybook/builder-webpack5": "6.5.16",
46
46
  "@storybook/manager-webpack5": "6.5.16",
47
47
  "@storybook/react": "6.5.16",
48
- "@types/react": "18.0.35",
48
+ "@types/react": "18.0.37",
49
49
  "babel-plugin-require-context-hook": "1.0.0",
50
50
  "classnames": "2.3.2",
51
51
  "colormap": "2.3.2",
@@ -56,7 +56,7 @@
56
56
  "jest-date-mock": "1.0.8",
57
57
  "jest-environment-jsdom": "29.5.0",
58
58
  "lodash": "4.17.21",
59
- "postcss": "8.4.21",
59
+ "postcss": "8.4.23",
60
60
  "prop-types": "15.8.1",
61
61
  "react": "17.0.2",
62
62
  "react-docgen-typescript-plugin": "^1.0.5",
@@ -76,11 +76,11 @@
76
76
  "react-router-dom": "^5.0.0"
77
77
  },
78
78
  "dependencies": {
79
- "@bundle-stats/utils": "^4.3.2",
79
+ "@bundle-stats/utils": "^4.3.4",
80
80
  "ariakit": "2.0.0-next.44",
81
81
  "modern-css-reset": "1.4.0",
82
82
  "query-string": "7.1.3",
83
83
  "use-query-params": "2.2.1"
84
84
  },
85
- "gitHead": "9c09c9504f6cf796860662a1db9617a5b70e9f47"
85
+ "gitHead": "f8a5178fdbb6967cb76d607341b0a45912da98d1"
86
86
  }
@@ -12,6 +12,11 @@
12
12
  text-align: center;
13
13
  }
14
14
 
15
+ .header {
16
+ background-color: var(--color-background);
17
+ border-bottom: 1px solid var(--color-outline);
18
+ }
19
+
15
20
  .summaryContainer {
16
21
  padding-top: var(--space-medium);
17
22
  padding-bottom: var(--space-xsmall);
@@ -52,8 +57,6 @@
52
57
  top: 0;
53
58
  right: 0;
54
59
  height: var(--header-height);
55
- background-color: var(--color-background);
56
- border-bottom: 1px solid var(--color-outline);
57
60
  }
58
61
 
59
62
  .tabsContainer {
@@ -1,13 +1,33 @@
1
1
  .root {
2
2
  padding: var(--space-small) 0;
3
+ width: 100%;
4
+ display: flex;
3
5
  }
4
6
 
5
7
  .item {
6
- flex: 0 0 auto;
8
+ position: relative;
9
+ flex: 1 0 10%;
10
+ max-width: 50%;
11
+ overflow: hidden;
7
12
  padding: 0 var(--space-small);
8
13
  border-left: 1px solid var(--color-outline);
9
14
  }
10
15
 
16
+ .item::after {
17
+ content: '';
18
+ display: block;
19
+ position: absolute;
20
+ top: 0;
21
+ right: 0;
22
+ bottom: 0;
23
+ width: var(--space-xxsmall);
24
+ background: linear-gradient(90deg, transparent, var(--color-background));
25
+ }
26
+
27
+ .item + .item {
28
+ margin-left: var(--space-small);
29
+ }
30
+
11
31
  .item:first-child {
12
32
  border-left: 0;
13
33
  padding-left: 0;
@@ -32,3 +52,12 @@
32
52
  font-size: var(--size-small);
33
53
  color: var(--color-text-light);
34
54
  }
55
+
56
+ .itemMetaIcon {
57
+ flex: 0 0 auto;
58
+ }
59
+
60
+ .itemMetaText {
61
+ flex: 0 0 auto;
62
+ white-space: nowrap;
63
+ }
@@ -29,43 +29,42 @@ export const Item = (props: ItemProps & React.ComponentProps<'div'>) => {
29
29
  const rootClassName = cx(css.item, className);
30
30
 
31
31
  return (
32
- <Stack className={rootClassName} space="xxsmall">
33
- <FlexStack space="xsmall" alignItems="center">
34
- <FlexStack space="xxxsmall" as="h1" className={css.itemTitle}>
35
- <span>{`#${job.internalBuildNumber}`}</span>
36
- {tag && <Tag className={css.itemTag}>{tag}</Tag>}
37
- </FlexStack>
32
+ <FlexStack space="xsmall" alignItems="center" className={rootClassName}>
33
+ <FlexStack space="xxxsmall" as="h1" className={css.itemTitle}>
34
+ <span>{`#${job.internalBuildNumber}`}</span>
35
+ {tag && <Tag className={css.itemTag}>{tag}</Tag>}
36
+ </FlexStack>
38
37
 
39
- {builtAt && (
40
- <FlexStack
41
- space="xxxsmall"
42
- alignItems="center"
43
- inline
44
- as="span"
45
- title={builtAt}
46
- className={css.itemMeta}
47
- >
48
- <Icon glyph="clock" className={css.itemMetaIcon} />
49
- <span className={css.itemMetaText}>
50
- {formatDateTime({ dateStyle: 'medium', timeStyle: 'medium' }, builtAt)}
51
- </span>
52
- </FlexStack>
53
- )}
38
+ {builtAt && (
39
+ <FlexStack
40
+ space="xxxsmall"
41
+ alignItems="center"
42
+ inline
43
+ as="span"
44
+ title={builtAt}
45
+ className={css.itemMeta}
46
+ >
47
+ <Icon glyph="clock" className={css.itemMetaIcon} />
48
+ <span className={css.itemMetaText}>
49
+ {formatDateTime({ dateStyle: 'medium', timeStyle: 'medium' }, builtAt)}
50
+ </span>
51
+ </FlexStack>
52
+ )}
54
53
 
55
- {hash && (
56
- <FlexStack
57
- space="xxxsmall"
58
- alignItems="center"
59
- inline
60
- title="Webpack bundle hash"
61
- className={css.itemMeta}
62
- >
63
- <Icon glyph="commit" className={css.itemMetaIcon} />
64
- <span className={css.itemMetaText}>{hash.slice(0, 7)}</span>
65
- </FlexStack>
66
- )}
67
- </FlexStack>
68
- </Stack>
54
+ {hash && (
55
+ <FlexStack
56
+ space="xxxsmall"
57
+ alignItems="center"
58
+ inline
59
+ as="span"
60
+ title="Webpack bundle hash"
61
+ className={css.itemMeta}
62
+ >
63
+ <Icon glyph="commit" className={css.itemMetaIcon} />
64
+ <span className={css.itemMetaText}>{hash.slice(0, 7)}</span>
65
+ </FlexStack>
66
+ )}
67
+ </FlexStack>
69
68
  );
70
69
  };
71
70
 
@@ -78,7 +77,7 @@ export const JobsHeader = (props: JobsHeaderProps & React.ComponentProps<'header
78
77
  const rootClassName = cx(css.root, className);
79
78
 
80
79
  return (
81
- <FlexStack className={rootClassName}>
80
+ <header className={rootClassName}>
82
81
  {jobs?.map((job, index) => (
83
82
  <Item
84
83
  key={job.internalBuildNumber || index}
@@ -86,6 +85,6 @@ export const JobsHeader = (props: JobsHeaderProps & React.ComponentProps<'header
86
85
  tag={index === 0 ? I18N.CURRENT : I18N.BASELINE}
87
86
  />
88
87
  ))}
89
- </FlexStack>
88
+ </header>
90
89
  );
91
90
  };
@@ -1,10 +1,20 @@
1
1
  .root {
2
+ --summary-gap: var(--space-small);
2
3
  width: 100%;
3
4
  }
4
5
 
6
+ .items {
7
+ display: flex;
8
+ flex-wrap: wrap;
9
+ width: calc(100% + var(--summary-gap));
10
+ margin-top: calc(0px - var(--summary-gap));
11
+ margin-left: calc(0px - var(--summary-gap));
12
+ }
13
+
5
14
  .item {
15
+ margin: var(--summary-gap) 0 0 var(--summary-gap);
6
16
  flex: 1 0 10%; /* force equal sizes */
7
- min-width: 16em;
17
+ min-width: 14em;
8
18
  text-decoration: none;
9
19
  }
10
20
 
@@ -25,4 +35,3 @@
25
35
  color: var(--color-primary-dark);
26
36
  text-decoration: none;
27
37
  }
28
-
@@ -84,20 +84,20 @@ export const Summary = ({
84
84
  summaryItemLink = ComponentLink,
85
85
  }: SummaryProps & React.ComponentProps<'div'>) => (
86
86
  <Box className={cx(css.root, className)}>
87
- <FlexStack space="small" className={css.items}>
88
- {keys.map((metricId) => (
89
- <SummaryItem
90
- key={metricId}
91
- className={css.item}
92
- metricId={metricId}
93
- data={data}
94
- customLink={summaryItemLink}
95
- size={size}
96
- loading={loading}
97
- showDelta={showSummaryItemDelta}
98
- showBaseline={showSummaryItemBaseline}
99
- />
100
- ))}
101
- </FlexStack>
87
+ <div className={css.items}>
88
+ {keys.map((metricId) => (
89
+ <SummaryItem
90
+ key={metricId}
91
+ className={css.item}
92
+ metricId={metricId}
93
+ data={data}
94
+ customLink={summaryItemLink}
95
+ size={size}
96
+ loading={loading}
97
+ showDelta={showSummaryItemDelta}
98
+ showBaseline={showSummaryItemBaseline}
99
+ />
100
+ ))}
101
+ </div>
102
102
  </Box>
103
103
  );
@@ -3,6 +3,8 @@
3
3
  display: flex;
4
4
  align-items: stretch;
5
5
  justify-content: flex-start;
6
+ width: 100%;
7
+ overflow: hidden;
6
8
  }
7
9
 
8
10
  .item {