@bundle-stats/ui 4.23.0-beta.10 → 4.23.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/app/app.js +15 -5
- package/lib/app/app.js.map +1 -1
- package/lib/app/app.module.css +8 -3
- package/lib/components/entry-info/entry-info.module.css +1 -0
- package/lib/components/metrics-display-selector/metrics-display-selector.module.css +4 -2
- package/lib/components/metrics-treemap/tile/tile.module.css +5 -4
- package/lib/components/metrics-treemap/tile-group/tile-group.module.css +7 -5
- package/lib/components/metrics-treemap/tile-group-title/tile-group-title.module.css +2 -6
- package/lib/components/run-info/run-info.module.css +6 -6
- package/lib/components/sort-button/sort-button.module.css +5 -2
- package/lib/components/summary/summary.module.css +8 -4
- package/lib/css/default.css +4 -2
- package/lib/css/variables.css +6 -3
- package/lib/layout/box/box.module.css +4 -2
- package/lib/ui/button/button.module.css +4 -2
- package/lib/ui/copy-to-clipboard/copy-to-clipboard.module.css +4 -2
- package/lib/ui/dialog/dialog.module.css +11 -5
- package/lib/ui/dropdown/dropdown.module.css +10 -5
- package/lib/ui/filters/filters.module.css +4 -2
- package/lib/ui/hover-card/hover-card.module.css +10 -5
- package/lib/ui/input/input.module.css +4 -2
- package/lib/ui/table/table.module.css +4 -2
- package/lib/ui/tabs/tabs.module.css +9 -5
- package/lib/ui/textarea/textarea.module.css +4 -2
- package/lib/ui/tooltip/tooltip.module.css +4 -2
- package/lib/utils/portal.js +17 -1
- package/lib/utils/portal.js.map +1 -1
- package/lib-esm/app/app.js +15 -5
- package/lib-esm/app/app.js.map +1 -1
- package/lib-esm/app/app.module.css +8 -3
- package/lib-esm/components/entry-info/entry-info.module.css +1 -0
- package/lib-esm/components/metrics-display-selector/metrics-display-selector.module.css +4 -2
- package/lib-esm/components/metrics-treemap/tile/tile.module.css +5 -4
- package/lib-esm/components/metrics-treemap/tile-group/tile-group.module.css +7 -5
- package/lib-esm/components/metrics-treemap/tile-group-title/tile-group-title.module.css +2 -6
- package/lib-esm/components/run-info/run-info.module.css +6 -6
- package/lib-esm/components/sort-button/sort-button.module.css +5 -2
- package/lib-esm/components/summary/summary.module.css +8 -4
- package/lib-esm/css/default.css +4 -2
- package/lib-esm/css/variables.css +6 -3
- package/lib-esm/layout/box/box.module.css +4 -2
- package/lib-esm/ui/button/button.module.css +4 -2
- package/lib-esm/ui/copy-to-clipboard/copy-to-clipboard.module.css +4 -2
- package/lib-esm/ui/dialog/dialog.module.css +11 -5
- package/lib-esm/ui/dropdown/dropdown.module.css +10 -5
- package/lib-esm/ui/filters/filters.module.css +4 -2
- package/lib-esm/ui/hover-card/hover-card.module.css +10 -5
- package/lib-esm/ui/input/input.module.css +4 -2
- package/lib-esm/ui/table/table.module.css +4 -2
- package/lib-esm/ui/tabs/tabs.module.css +9 -5
- package/lib-esm/ui/textarea/textarea.module.css +4 -2
- package/lib-esm/ui/tooltip/tooltip.module.css +4 -2
- package/lib-esm/utils/portal.js +15 -0
- package/lib-esm/utils/portal.js.map +1 -1
- package/package.json +8 -8
- package/src/app/app.jsx +30 -12
- package/src/app/app.module.css +8 -3
- package/src/components/entry-info/entry-info.module.css +1 -0
- package/src/components/metrics-display-selector/metrics-display-selector.module.css +4 -2
- package/src/components/metrics-treemap/tile/tile.module.css +5 -4
- package/src/components/metrics-treemap/tile-group/tile-group.module.css +7 -5
- package/src/components/metrics-treemap/tile-group-title/tile-group-title.module.css +2 -6
- package/src/components/run-info/run-info.module.css +6 -6
- package/src/components/sort-button/sort-button.module.css +5 -2
- package/src/components/summary/summary.module.css +8 -4
- package/src/css/default.css +4 -2
- package/src/css/variables.css +6 -3
- package/src/layout/box/box.module.css +4 -2
- package/src/ui/button/button.module.css +4 -2
- package/src/ui/copy-to-clipboard/copy-to-clipboard.module.css +4 -2
- package/src/ui/dialog/dialog.module.css +11 -5
- package/src/ui/dropdown/dropdown.module.css +10 -5
- package/src/ui/filters/filters.module.css +4 -2
- package/src/ui/hover-card/hover-card.module.css +10 -5
- package/src/ui/input/input.module.css +4 -2
- package/src/ui/table/table.module.css +4 -2
- package/src/ui/tabs/tabs.module.css +9 -5
- package/src/ui/textarea/textarea.module.css +4 -2
- package/src/ui/tooltip/tooltip.module.css +4 -2
- package/src/utils/portal.ts +25 -0
- package/types/utils/portal.d.ts +1 -0
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
border-radius: var(--radius-small);
|
|
4
4
|
color: var(--color-text-light);
|
|
5
5
|
width: 100%;
|
|
6
|
-
transition:
|
|
6
|
+
transition-property: color, border-color;
|
|
7
|
+
transition-duration: var(--transition-duration-out);
|
|
8
|
+
transition-timing-function: var(--transition-timing-function);
|
|
7
9
|
appearance: none;
|
|
8
10
|
outline: none;
|
|
9
11
|
}
|
|
@@ -27,7 +29,7 @@
|
|
|
27
29
|
.root:focus {
|
|
28
30
|
border-color: var(--color-outline-dark);
|
|
29
31
|
color: inherit;
|
|
30
|
-
transition: var(--transition-in);
|
|
32
|
+
transition-duration: var(--transition-duration-in);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
/** Size modifier */
|
|
@@ -48,13 +48,15 @@
|
|
|
48
48
|
/* hover current row */
|
|
49
49
|
.root tbody tr th,
|
|
50
50
|
.root tbody tr td {
|
|
51
|
-
transition:
|
|
51
|
+
transition-property: background-color;
|
|
52
|
+
transition-duration: var(--transition-duration-out);
|
|
53
|
+
transition-timing-function: var(--transition-timing-function);
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
.root tbody tr:hover th,
|
|
55
57
|
.root tbody tr:hover td {
|
|
56
58
|
background-color: var(--color-highlight-warning);
|
|
57
|
-
transition: var(--transition-in);
|
|
59
|
+
transition-duration: var(--transition-duration-in);
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
.empty {
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
color: var(--color-text-ultra-light);
|
|
14
14
|
font-weight: bold;
|
|
15
15
|
text-decoration: none;
|
|
16
|
-
transition:
|
|
16
|
+
transition-property: color;
|
|
17
|
+
transition-duration: var(--transition-duration-out);
|
|
18
|
+
transition-timing-function: var(--transition-timing-function);
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
.item::after {
|
|
@@ -26,7 +28,9 @@
|
|
|
26
28
|
height: 2px;
|
|
27
29
|
background: currentColor;
|
|
28
30
|
opacity: 0;
|
|
29
|
-
transition:
|
|
31
|
+
transition-property: opacity;
|
|
32
|
+
transition-duration: var(--transition-duration-out);
|
|
33
|
+
transition-timing-function: var(--transition-timing-function);
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
.item:focus,
|
|
@@ -40,15 +44,15 @@
|
|
|
40
44
|
.item:active::after,
|
|
41
45
|
.item:focus::after {
|
|
42
46
|
opacity: 1;
|
|
43
|
-
transition: var(--transition-in);
|
|
47
|
+
transition-duration: var(--transition-duration-in);
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
.itemActive {
|
|
47
51
|
color: var(--color-accent);
|
|
48
|
-
transition: var(--transition-in);
|
|
52
|
+
transition-duration: var(--transition-duration-in);
|
|
49
53
|
}
|
|
50
54
|
|
|
51
55
|
.itemActive::after {
|
|
52
56
|
opacity: 1;
|
|
53
|
-
transition: var(--transition-in);
|
|
57
|
+
transition-duration: var(--transition-duration-in);
|
|
54
58
|
}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
color: var(--color-text-light);
|
|
5
5
|
width: 100%;
|
|
6
6
|
resize: vertical;
|
|
7
|
-
transition:
|
|
7
|
+
transition-property: color, border-color;
|
|
8
|
+
transition-duration: var(--transition-duration-out);
|
|
9
|
+
transition-timing-function: var(--transition-timing-function);
|
|
8
10
|
appearance: none;
|
|
9
11
|
outline: none;
|
|
10
12
|
}
|
|
@@ -28,7 +30,7 @@
|
|
|
28
30
|
.root:focus {
|
|
29
31
|
border-color: var(--color-outline-dark);
|
|
30
32
|
color: inherit;
|
|
31
|
-
transition: var(--transition-in);
|
|
33
|
+
transition-duration: var(--transition-duration-in);
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
.root[readonly=''] {
|
|
@@ -22,12 +22,14 @@
|
|
|
22
22
|
filter: drop-shadow(var(--shadow-layer));
|
|
23
23
|
will-change: filter;
|
|
24
24
|
opacity: 0;
|
|
25
|
-
transition:
|
|
25
|
+
transition-property: opacity;
|
|
26
|
+
transition-duration: var(--transition-duration-out);
|
|
27
|
+
transition-timing-function: var(--transition-timing-function);
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
.tooltip[data-enter] {
|
|
29
31
|
opacity: 1;
|
|
30
|
-
transition: var(--transition-in);
|
|
32
|
+
transition-duration: var(--transition-duration-in);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
.tooltip[data-leave] {
|
package/lib-esm/utils/portal.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
1
2
|
export const getCreatePortalElement = (className) => (element) => {
|
|
2
3
|
const portalElement = element.ownerDocument.createElement('div');
|
|
3
4
|
portalElement.className = className;
|
|
4
5
|
return portalElement;
|
|
5
6
|
};
|
|
7
|
+
export const usePortalRoot = (className) => {
|
|
8
|
+
const [portalRoot, setPortalRoot] = useState(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const element = document.createElement('div');
|
|
11
|
+
element.className = className;
|
|
12
|
+
document.body.appendChild(element);
|
|
13
|
+
setPortalRoot(element);
|
|
14
|
+
return () => {
|
|
15
|
+
element.remove();
|
|
16
|
+
setPortalRoot(null);
|
|
17
|
+
};
|
|
18
|
+
}, [className]);
|
|
19
|
+
return portalRoot;
|
|
20
|
+
};
|
|
6
21
|
//# sourceMappingURL=portal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.js","sourceRoot":"","sources":["../../src/utils/portal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"portal.js","sourceRoot":"","sources":["../../src/utils/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAM5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC,OAAoB,EAAE,EAAE;IACpF,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACjE,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAsB,EAAE;IACrE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAEvE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEvB,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bundle-stats/ui",
|
|
3
|
-
"version": "4.23.0-beta.
|
|
3
|
+
"version": "4.23.0-beta.11",
|
|
4
4
|
"description": "UI components for BundleStats projects.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"@babel/preset-env": "8.0.7",
|
|
42
42
|
"@babel/preset-react": "8.0.1",
|
|
43
43
|
"@babel/preset-typescript": "8.0.7",
|
|
44
|
-
"@storybook/addon-vitest": "10.6.
|
|
45
|
-
"@storybook/react": "10.6.
|
|
46
|
-
"@storybook/react-vite": "10.6.
|
|
44
|
+
"@storybook/addon-vitest": "10.6.5",
|
|
45
|
+
"@storybook/react": "10.6.5",
|
|
46
|
+
"@storybook/react-vite": "10.6.5",
|
|
47
47
|
"@types/d3": "7.4.3",
|
|
48
48
|
"@types/react": "18.3.13",
|
|
49
49
|
"@types/react-router-dom": "5.3.3",
|
|
@@ -68,9 +68,9 @@
|
|
|
68
68
|
"react-dom": "18.3.1",
|
|
69
69
|
"react-router-dom": "5.3.4",
|
|
70
70
|
"rimraf": "6.1.3",
|
|
71
|
-
"storybook": "10.6.
|
|
71
|
+
"storybook": "10.6.5",
|
|
72
72
|
"typescript": "5.9.3",
|
|
73
|
-
"vite": "8.3.
|
|
73
|
+
"vite": "8.3.5",
|
|
74
74
|
"vite-plugin-svgr": "5.2.0",
|
|
75
75
|
"vitest": "5.0.5"
|
|
76
76
|
},
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"react-router-dom": "^5.0.0"
|
|
84
84
|
},
|
|
85
85
|
"dependencies": {
|
|
86
|
-
"@bundle-stats/utils": "^4.23.0-beta.
|
|
86
|
+
"@bundle-stats/utils": "^4.23.0-beta.11",
|
|
87
87
|
"ariakit": "2.0.0-next.44",
|
|
88
88
|
"d3": "7.9.0",
|
|
89
89
|
"modern-css-reset": "1.4.0",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"snarkdown": "2.0.0",
|
|
92
92
|
"use-query-params": "2.2.2"
|
|
93
93
|
},
|
|
94
|
-
"gitHead": "
|
|
94
|
+
"gitHead": "7d3dc3eccafa5d78fbf1a2884e70355a518db9fb"
|
|
95
95
|
}
|
package/src/app/app.jsx
CHANGED
|
@@ -2,6 +2,7 @@ import React, { useContext, useEffect, useMemo } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import isEmpty from 'lodash/isEmpty';
|
|
4
4
|
import { HashRouter, NavLink, Route, Switch, useLocation } from 'react-router-dom';
|
|
5
|
+
import { PortalContext } from 'ariakit/portal';
|
|
5
6
|
import { COMPONENT } from '@bundle-stats/utils';
|
|
6
7
|
|
|
7
8
|
import { URLS } from '../constants';
|
|
@@ -19,6 +20,7 @@ import { Stack } from '../layout/stack';
|
|
|
19
20
|
import { Container } from '../ui/container';
|
|
20
21
|
import { Tabs } from '../ui/tabs';
|
|
21
22
|
import { QueryStateProvider, useComponentQueryState } from '../query-state';
|
|
23
|
+
import { usePortalRoot } from '../utils/portal';
|
|
22
24
|
import I18N from '../i18n';
|
|
23
25
|
import { Header } from './header';
|
|
24
26
|
import css from './app.module.css';
|
|
@@ -137,6 +139,20 @@ const PackagesRoute = () => {
|
|
|
137
139
|
);
|
|
138
140
|
};
|
|
139
141
|
|
|
142
|
+
/**
|
|
143
|
+
* Render the overlays (hovercards, tooltips) of the content above the tabs
|
|
144
|
+
* (metric change legend, summary) above the sticky tabs
|
|
145
|
+
*/
|
|
146
|
+
const RaisedOverlaysProvider = ({ children }) => {
|
|
147
|
+
const portalRoot = usePortalRoot(css.raisedOverlaysPortal);
|
|
148
|
+
|
|
149
|
+
return <PortalContext.Provider value={portalRoot}>{children}</PortalContext.Provider>;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
RaisedOverlaysProvider.propTypes = {
|
|
153
|
+
children: PropTypes.node.isRequired,
|
|
154
|
+
};
|
|
155
|
+
|
|
140
156
|
const AppComponent = ({ version, jobs }) => {
|
|
141
157
|
if (jobs?.length === 0) {
|
|
142
158
|
return (
|
|
@@ -151,18 +167,20 @@ const AppComponent = ({ version, jobs }) => {
|
|
|
151
167
|
return (
|
|
152
168
|
<JobsProvider jobs={jobs}>
|
|
153
169
|
<Layout jobs={jobs} version={version}>
|
|
154
|
-
<
|
|
155
|
-
<
|
|
156
|
-
<
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
<
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
170
|
+
<RaisedOverlaysProvider>
|
|
171
|
+
<Container className={css.metricChangeLegendContainer}>
|
|
172
|
+
<FlexStack justifyContent="flex-end">
|
|
173
|
+
<MetricChangeLegend />
|
|
174
|
+
</FlexStack>
|
|
175
|
+
</Container>
|
|
176
|
+
<Container className={css.summaryContainer}>
|
|
177
|
+
<Summary
|
|
178
|
+
data={jobs[0].summary}
|
|
179
|
+
showSummaryItemDelta={jobs.length !== 1}
|
|
180
|
+
showSummaryItemBaseline={jobs?.length !== 1}
|
|
181
|
+
/>
|
|
182
|
+
</Container>
|
|
183
|
+
</RaisedOverlaysProvider>
|
|
166
184
|
|
|
167
185
|
<Container className={css.tabsContainer}>
|
|
168
186
|
<Tabs className={css.tabs}>
|
package/src/app/app.module.css
CHANGED
|
@@ -27,6 +27,11 @@
|
|
|
27
27
|
padding-bottom: var(--space-xxsmall);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
/** legend and summary overlays: above the sticky tabs, below the header */
|
|
31
|
+
.raisedOverlaysPortal {
|
|
32
|
+
--layer-overlay: calc(var(--layer-xhigh) + 2);
|
|
33
|
+
}
|
|
34
|
+
|
|
30
35
|
.tabsContainer {
|
|
31
36
|
border-bottom: 1px solid var(--color-outline);
|
|
32
37
|
background: var(--color-light);
|
|
@@ -38,12 +43,12 @@
|
|
|
38
43
|
|
|
39
44
|
.tabActive {
|
|
40
45
|
color: var(--color-accent);
|
|
41
|
-
transition: var(--transition-in);
|
|
46
|
+
transition-duration: var(--transition-duration-in);
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
.tabActive::after {
|
|
45
50
|
opacity: 1;
|
|
46
|
-
transition: var(--transition-in);
|
|
51
|
+
transition-duration: var(--transition-duration-in);
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
.tabsContent {
|
|
@@ -70,7 +75,7 @@
|
|
|
70
75
|
.tabsContainer {
|
|
71
76
|
position: sticky;
|
|
72
77
|
top: var(--header-height);
|
|
73
|
-
/** above the overlays (tooltips, hovercards, dropdowns) */
|
|
78
|
+
/** above the overlays (tooltips, hovercards, dropdowns), except the legend and summary overlays */
|
|
74
79
|
z-index: var(--layer-xhigh);
|
|
75
80
|
}
|
|
76
81
|
}
|
|
@@ -27,10 +27,12 @@
|
|
|
27
27
|
|
|
28
28
|
.dropdownItemIcon {
|
|
29
29
|
opacity: 0;
|
|
30
|
-
transition:
|
|
30
|
+
transition-property: opacity;
|
|
31
|
+
transition-duration: var(--transition-duration-out);
|
|
32
|
+
transition-timing-function: var(--transition-timing-function);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
.dropdownItemActive .dropdownItemIcon {
|
|
34
36
|
opacity: 1;
|
|
35
|
-
transition: var(--transition-in);
|
|
37
|
+
transition-duration: var(--transition-duration-in);
|
|
36
38
|
}
|
|
@@ -12,8 +12,9 @@
|
|
|
12
12
|
font-size: var(--size-small);
|
|
13
13
|
line-height: var(--line-height-heading);
|
|
14
14
|
text-align: left;
|
|
15
|
-
transition: var(--transition-out);
|
|
16
15
|
transition-property: opacity, background-color;
|
|
16
|
+
transition-duration: var(--transition-duration-out);
|
|
17
|
+
transition-timing-function: var(--transition-timing-function);
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
.root::before {
|
|
@@ -92,14 +93,14 @@
|
|
|
92
93
|
|
|
93
94
|
.root::before {
|
|
94
95
|
color: var(--color-highlight);
|
|
95
|
-
transition: var(--transition-out);
|
|
96
96
|
transition-property: opacity;
|
|
97
|
+
transition-duration: var(--transition-duration-out);
|
|
98
|
+
transition-timing-function: var(--transition-timing-function);
|
|
97
99
|
opacity: 0.6;
|
|
98
100
|
}
|
|
99
101
|
|
|
100
102
|
.root:hover::before {
|
|
101
|
-
transition: var(--transition-in);
|
|
102
|
-
transition-property: opacity;
|
|
103
|
+
transition-duration: var(--transition-duration-in);
|
|
103
104
|
opacity: 0.8;
|
|
104
105
|
}
|
|
105
106
|
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
/** Tile group size variation */
|
|
7
7
|
.root {
|
|
8
|
-
transition:
|
|
9
|
-
transition-
|
|
8
|
+
transition-property: background-color, outline-color;
|
|
9
|
+
transition-duration: var(--transition-duration-out);
|
|
10
|
+
transition-timing-function: var(--transition-timing-function);
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
/** Tile group nested variation */
|
|
@@ -19,8 +20,7 @@
|
|
|
19
20
|
.root.nested:has(> [data-treemap-tile]:hover) {
|
|
20
21
|
background-color: rgba(27, 26, 33, 0.06);
|
|
21
22
|
outline: 1px solid rgba(255, 255, 255, 1);
|
|
22
|
-
transition: var(--transition-in);
|
|
23
|
-
transition-property: background-color, outline;
|
|
23
|
+
transition-duration: var(--transition-duration-in);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
.nested.tileGroup--NEGATIVE {
|
|
@@ -51,7 +51,9 @@
|
|
|
51
51
|
.nested.tileGroup--POSITIVE > .tileGroup--NO_CHANGE:has(> [data-treemap-tile-group-title]:hover),
|
|
52
52
|
.nested.tileGroup--POSITIVE > .tileGroup--NO_CHANGE:has(> [data-treemap-tile]:hover),
|
|
53
53
|
.nested.tileGroup--NEGATIVE > .tileGroup--NO_CHANGE:has(> [data-treemap-tile-group-title]:hover),
|
|
54
|
-
.nested.tileGroup--NEGATIVE
|
|
54
|
+
.nested.tileGroup--NEGATIVE
|
|
55
|
+
> .tileGroup--NEGATIVE
|
|
56
|
+
> .tileGroup--NO_CHANGE:has(> [data-treemap-tile]:hover) {
|
|
55
57
|
background-color: var(--color-background);
|
|
56
58
|
background-image: linear-gradient(rgba(27, 26, 33, 0.1), rgba(27, 26, 33, 0.1));
|
|
57
59
|
}
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
.tileGroupTitleContent {
|
|
7
7
|
width: 100%;
|
|
8
|
-
padding: var(--space-xxxsmall) calc(var(--space-xxxsmall) / 2) var(--space-xxxsmall)
|
|
8
|
+
padding: var(--space-xxxsmall) calc(var(--space-xxxsmall) / 2) var(--space-xxxsmall)
|
|
9
|
+
var(--space-xxsmall);
|
|
9
10
|
border-radius: var(--radius-xsmall);
|
|
10
11
|
display: flex;
|
|
11
12
|
align-items: center;
|
|
@@ -29,13 +30,8 @@
|
|
|
29
30
|
color: var(--color-text-light);
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
.root {
|
|
33
|
-
transition: var(--transition-out);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
33
|
.root:hover .tileGroupTitleText {
|
|
37
34
|
text-decoration: underline;
|
|
38
|
-
transition: var(--transition-in);
|
|
39
35
|
}
|
|
40
36
|
|
|
41
37
|
/** Fill variation */
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
line-height: inherit;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
|
|
47
46
|
.delta {
|
|
48
47
|
font-weight: bold;
|
|
49
48
|
font-size: var(--size-small);
|
|
@@ -62,10 +61,11 @@
|
|
|
62
61
|
.titleTooltipIcon[aria-controls=''] {
|
|
63
62
|
opacity: 0;
|
|
64
63
|
visibility: hidden;
|
|
64
|
+
/* delay hiding until the fade-out completes */
|
|
65
65
|
transition:
|
|
66
|
-
opacity var(--transition-duration-out)
|
|
67
|
-
color var(--transition-duration-out)
|
|
68
|
-
visibility 0s;
|
|
66
|
+
opacity var(--transition-duration-out) var(--transition-timing-function),
|
|
67
|
+
color var(--transition-duration-out) var(--transition-timing-function),
|
|
68
|
+
visibility 0s linear var(--transition-duration-out);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
.root:hover .titleHoverCardIcon span,
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
opacity: 1;
|
|
74
74
|
visibility: visible;
|
|
75
75
|
transition:
|
|
76
|
-
opacity var(--transition-duration-in)
|
|
77
|
-
color var(--transition-duration-in)
|
|
76
|
+
opacity var(--transition-duration-in) var(--transition-timing-function),
|
|
77
|
+
color var(--transition-duration-in) var(--transition-timing-function),
|
|
78
78
|
visibility 0s;
|
|
79
79
|
}
|
|
80
80
|
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
.directionActive {
|
|
30
30
|
color: var(--color-text);
|
|
31
|
-
transition: var(--transition-in);
|
|
31
|
+
transition-duration: var(--transition-duration-in);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.direction:hover,
|
|
@@ -69,6 +69,9 @@
|
|
|
69
69
|
.direction {
|
|
70
70
|
pointer-events: none;
|
|
71
71
|
opacity: 0;
|
|
72
|
+
transition-property: color, opacity;
|
|
73
|
+
transition-duration: var(--transition-duration-out);
|
|
74
|
+
transition-timing-function: var(--transition-timing-function);
|
|
72
75
|
}
|
|
73
76
|
|
|
74
77
|
.active .direction,
|
|
@@ -77,5 +80,5 @@
|
|
|
77
80
|
.interactive:hover:focus .direction {
|
|
78
81
|
pointer-events: auto;
|
|
79
82
|
opacity: 1;
|
|
80
|
-
transition: var(--transition-in);
|
|
83
|
+
transition-duration: var(--transition-duration-in);
|
|
81
84
|
}
|
|
@@ -42,14 +42,16 @@
|
|
|
42
42
|
bottom: calc(0px - var(--space-xsmall));
|
|
43
43
|
left: calc(0px - var(--space-xsmall));
|
|
44
44
|
opacity: 0;
|
|
45
|
-
transition:
|
|
45
|
+
transition-property: opacity;
|
|
46
|
+
transition-duration: var(--transition-duration-out);
|
|
47
|
+
transition-timing-function: var(--transition-timing-function);
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
.item:focus::before,
|
|
49
51
|
.item:active::before,
|
|
50
52
|
.item:hover::before {
|
|
51
53
|
opacity: 1;
|
|
52
|
-
transition: var(--transition-in);
|
|
54
|
+
transition-duration: var(--transition-duration-in);
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
.item + .item::after {
|
|
@@ -63,7 +65,9 @@
|
|
|
63
65
|
top: var(--space-xxsmall);
|
|
64
66
|
bottom: var(--space-xxsmall);
|
|
65
67
|
opacity: 1;
|
|
66
|
-
transition:
|
|
68
|
+
transition-property: opacity;
|
|
69
|
+
transition-duration: var(--transition-duration-out);
|
|
70
|
+
transition-timing-function: var(--transition-timing-function);
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
.item:focus::after,
|
|
@@ -73,5 +77,5 @@
|
|
|
73
77
|
.item:active + .item::after,
|
|
74
78
|
.item:hover + .item::after {
|
|
75
79
|
opacity: 0;
|
|
76
|
-
transition: var(--transition-in);
|
|
80
|
+
transition-duration: var(--transition-duration-in);
|
|
77
81
|
}
|
package/src/css/default.css
CHANGED
|
@@ -61,7 +61,9 @@ code {
|
|
|
61
61
|
|
|
62
62
|
a {
|
|
63
63
|
color: var(--color-accent);
|
|
64
|
-
transition:
|
|
64
|
+
transition-property: color;
|
|
65
|
+
transition-duration: var(--transition-duration-out);
|
|
66
|
+
transition-timing-function: var(--transition-timing-function);
|
|
65
67
|
}
|
|
66
68
|
|
|
67
69
|
a:focus,
|
|
@@ -69,5 +71,5 @@ a:active,
|
|
|
69
71
|
a:hover {
|
|
70
72
|
color: var(--color-accent-dark);
|
|
71
73
|
outline: none;
|
|
72
|
-
transition: var(--transition-in);
|
|
74
|
+
transition-duration: var(--transition-duration-in);
|
|
73
75
|
}
|
package/src/css/variables.css
CHANGED
|
@@ -190,12 +190,15 @@ body {
|
|
|
190
190
|
--color-outline-danger: var(--color-red-100);
|
|
191
191
|
|
|
192
192
|
--color-backdrop: rgba(0, 0, 0, 0.05);
|
|
193
|
-
--color-shadow: rgba(0, 0, 0, 0.
|
|
193
|
+
--color-shadow: rgba(0, 0, 0, 0.1);
|
|
194
194
|
|
|
195
|
+
/**
|
|
196
|
+
* Transitions: set `transition-property` explicitly on the base rule, use the `out` duration
|
|
197
|
+
* on the base rule and switch only `transition-duration` to `in` on the active/hover rule
|
|
198
|
+
*/
|
|
195
199
|
--transition-duration-in: 120ms;
|
|
196
200
|
--transition-duration-out: 80ms;
|
|
197
|
-
--transition-
|
|
198
|
-
--transition-out: all var(--transition-duration-out) ease-out;
|
|
201
|
+
--transition-timing-function: ease-out;
|
|
199
202
|
|
|
200
203
|
--layer-xlow: 1;
|
|
201
204
|
--layer-low: 10;
|
|
@@ -18,14 +18,16 @@
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
.outlineHover {
|
|
21
|
-
transition:
|
|
21
|
+
transition-property: border-color;
|
|
22
|
+
transition-duration: var(--transition-duration-out);
|
|
23
|
+
transition-timing-function: var(--transition-timing-function);
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
.outlineHover:focus,
|
|
25
27
|
.outlineHover:active,
|
|
26
28
|
.outlineHover:hover {
|
|
27
29
|
border-color: var(--color-outline-dark);
|
|
28
|
-
transition: var(--transition-in);
|
|
30
|
+
transition-duration: var(--transition-duration-in);
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
.padding-xxxsmall {
|
|
@@ -19,7 +19,9 @@
|
|
|
19
19
|
font-family: var(--font-family);
|
|
20
20
|
line-height: var(--line-height);
|
|
21
21
|
white-space: nowrap;
|
|
22
|
-
transition:
|
|
22
|
+
transition-property: color, background-color, border-color;
|
|
23
|
+
transition-duration: var(--transition-duration-out);
|
|
24
|
+
transition-timing-function: var(--transition-timing-function);
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
a.root {
|
|
@@ -31,7 +33,7 @@ a.root {
|
|
|
31
33
|
.root:active {
|
|
32
34
|
outline: none;
|
|
33
35
|
color: var(--color-text-light);
|
|
34
|
-
transition: var(--transition-in);
|
|
36
|
+
transition-duration: var(--transition-duration-in);
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
.glyph {
|
|
@@ -6,10 +6,12 @@
|
|
|
6
6
|
|
|
7
7
|
/** done state */
|
|
8
8
|
.root svg {
|
|
9
|
-
transition:
|
|
9
|
+
transition-property: color;
|
|
10
|
+
transition-duration: var(--transition-duration-out);
|
|
11
|
+
transition-timing-function: var(--transition-timing-function);
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
.done svg {
|
|
13
15
|
color: var(--color-success);
|
|
14
|
-
transition: var(--transition-in);
|
|
16
|
+
transition-duration: var(--transition-duration-in);
|
|
15
17
|
}
|
|
@@ -9,12 +9,14 @@
|
|
|
9
9
|
justify-content: center;
|
|
10
10
|
z-index: var(--layer-xxhigh);
|
|
11
11
|
opacity: 0;
|
|
12
|
-
transition:
|
|
12
|
+
transition-property: opacity;
|
|
13
|
+
transition-duration: var(--transition-duration-out);
|
|
14
|
+
transition-timing-function: var(--transition-timing-function);
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
.backdrop[data-enter] {
|
|
16
18
|
opacity: 1;
|
|
17
|
-
transition: var(--transition-in);
|
|
19
|
+
transition-duration: var(--transition-duration-in);
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
.backdrop[data-leave] {
|
|
@@ -39,17 +41,20 @@
|
|
|
39
41
|
width: calc(100vw - 2 * var(--dialog-padding));
|
|
40
42
|
position: relative;
|
|
41
43
|
border-radius: var(--radius-medium);
|
|
42
|
-
|
|
44
|
+
border: 1px solid var(--color-outline);
|
|
45
|
+
padding: calc(var(--dialog-padding) - 1px);
|
|
43
46
|
background: var(--color-background);
|
|
44
47
|
box-shadow: 0 0 var(--space-medium) var(--color-shadow);
|
|
45
48
|
z-index: var(--layer-xxhigh);
|
|
46
49
|
opacity: 0;
|
|
47
|
-
transition:
|
|
50
|
+
transition-property: opacity;
|
|
51
|
+
transition-duration: var(--transition-duration-out);
|
|
52
|
+
transition-timing-function: var(--transition-timing-function);
|
|
48
53
|
}
|
|
49
54
|
|
|
50
55
|
.dialog[data-enter] {
|
|
51
56
|
opacity: 1;
|
|
52
|
-
transition: var(--transition-in);
|
|
57
|
+
transition-duration: var(--transition-duration-in);
|
|
53
58
|
}
|
|
54
59
|
|
|
55
60
|
.digalog[data-leave] {
|
|
@@ -91,6 +96,7 @@
|
|
|
91
96
|
);
|
|
92
97
|
padding-bottom: 0.3em; /* extra space to compensate for the title line-height and allow to show focus state correctly on buttons */
|
|
93
98
|
overflow: auto;
|
|
99
|
+
overscroll-behavior: contain;
|
|
94
100
|
}
|
|
95
101
|
|
|
96
102
|
/** Width variation */
|