@bundle-stats/ui 4.3.3 → 4.3.5
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/components/run-info/run-info.module.css +22 -1
- package/lib/ui/hover-card/hover-card.js +2 -20
- package/lib/ui/hover-card/hover-card.js.map +1 -1
- package/lib/ui/hover-card/index.js.map +1 -1
- package/lib/ui/tooltip/tooltip.js +1 -1
- package/lib/ui/tooltip/tooltip.js.map +1 -1
- package/lib-esm/components/run-info/run-info.module.css +22 -1
- package/lib-esm/ui/hover-card/hover-card.js +2 -20
- package/lib-esm/ui/hover-card/hover-card.js.map +1 -1
- package/lib-esm/ui/hover-card/index.js.map +1 -1
- package/lib-esm/ui/tooltip/tooltip.js +2 -1
- package/lib-esm/ui/tooltip/tooltip.js.map +1 -1
- package/package.json +5 -5
- package/src/components/run-info/run-info.module.css +22 -1
- package/src/components/run-info/run-info.stories.tsx +9 -0
- package/src/components/run-info/run-info.tsx +1 -1
- package/src/ui/hover-card/hover-card.stories.tsx +41 -0
- package/src/ui/hover-card/{hover-card.jsx → hover-card.tsx} +21 -29
- package/src/ui/tooltip/tooltip.tsx +1 -0
- package/types/components/run-info/run-info.d.ts +1 -1
- package/types/ui/hover-card/hover-card.d.ts +12 -26
- package/types/ui/hover-card/index.d.ts +1 -1
- /package/src/ui/hover-card/{index.js → index.ts} +0 -0
|
@@ -39,7 +39,28 @@
|
|
|
39
39
|
width: 5em;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
/*
|
|
42
|
+
/* Hover state */
|
|
43
|
+
.titleIcon span[aria-controls=""] {
|
|
44
|
+
opacity: 0;
|
|
45
|
+
visibility: none;
|
|
46
|
+
transition: var(--ui-transition-out);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.root:hover .titleIcon span {
|
|
50
|
+
opacity: 1;
|
|
51
|
+
visibility: visible;
|
|
52
|
+
transition: var(--ui-transition-in);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Size variation */
|
|
56
|
+
.small .info {
|
|
57
|
+
margin-top: var(--space-xxxsmall);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.small .currentMetric {
|
|
61
|
+
font-size: var(--size-xlarge);
|
|
62
|
+
}
|
|
63
|
+
|
|
43
64
|
.large .info {
|
|
44
65
|
margin-top: var(--space-xxsmall);
|
|
45
66
|
}
|
|
@@ -28,12 +28,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.HoverCard = void 0;
|
|
30
30
|
const react_1 = __importStar(require("react"));
|
|
31
|
-
const prop_types_1 = __importDefault(require("prop-types"));
|
|
32
31
|
const classnames_1 = __importDefault(require("classnames"));
|
|
33
32
|
const hovercard_1 = require("ariakit/hovercard");
|
|
34
33
|
const hover_card_module_css_1 = __importDefault(require("./hover-card.module.css"));
|
|
35
34
|
const HoverCard = (props) => {
|
|
36
|
-
const { className, anchorClassName, hoverCardClassName, href, as, label, children } = props;
|
|
35
|
+
const { className = '', anchorClassName = '', hoverCardClassName = '', href = '', as = null, label, children, } = props;
|
|
37
36
|
const state = (0, hovercard_1.useHovercardState)({ gutter: 8, timeout: 800 });
|
|
38
37
|
const hovercardProps = (0, hovercard_1.useHovercard)({ state, portal: true });
|
|
39
38
|
const Component = (0, react_1.useMemo)(() => {
|
|
@@ -46,27 +45,10 @@ const HoverCard = (props) => {
|
|
|
46
45
|
return 'span';
|
|
47
46
|
}, [as, href]);
|
|
48
47
|
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(hover_card_module_css_1.default.root, className) },
|
|
49
|
-
react_1.default.createElement(hovercard_1.HovercardAnchor, { state: state, href: href, className: (0, classnames_1.default)(hover_card_module_css_1.default.anchor, anchorClassName), as: Component }, label),
|
|
48
|
+
react_1.default.createElement(hovercard_1.HovercardAnchor, { state: state, href: href, className: (0, classnames_1.default)(hover_card_module_css_1.default.anchor, anchorClassName), as: Component, "aria-controls": state.open ? hovercardProps.id : '' }, label),
|
|
50
49
|
react_1.default.createElement(hovercard_1.Hovercard, { ...hovercardProps, state: state, className: (0, classnames_1.default)(hover_card_module_css_1.default.hoverCard, hoverCardClassName), style: { zIndex: 10000 } },
|
|
51
50
|
react_1.default.createElement(hovercard_1.HovercardArrow, { size: 24 }),
|
|
52
51
|
typeof children === 'function' ? children({ close: state.hide }) : children)));
|
|
53
52
|
};
|
|
54
53
|
exports.HoverCard = HoverCard;
|
|
55
|
-
exports.HoverCard.propTypes = {
|
|
56
|
-
className: prop_types_1.default.string,
|
|
57
|
-
hoverCardClassName: prop_types_1.default.string,
|
|
58
|
-
anchorClassName: prop_types_1.default.string,
|
|
59
|
-
label: prop_types_1.default.node,
|
|
60
|
-
href: prop_types_1.default.string,
|
|
61
|
-
as: prop_types_1.default.elementType,
|
|
62
|
-
children: prop_types_1.default.oneOfType([prop_types_1.default.node, prop_types_1.default.func]).isRequired,
|
|
63
|
-
};
|
|
64
|
-
exports.HoverCard.defaultProps = {
|
|
65
|
-
className: '',
|
|
66
|
-
hoverCardClassName: '',
|
|
67
|
-
anchorClassName: '',
|
|
68
|
-
label: '',
|
|
69
|
-
as: '',
|
|
70
|
-
href: '',
|
|
71
|
-
};
|
|
72
54
|
//# sourceMappingURL=hover-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-card.js","sourceRoot":"","sources":["../../../src/ui/hover-card/hover-card.
|
|
1
|
+
{"version":3,"file":"hover-card.js","sourceRoot":"","sources":["../../../src/ui/hover-card/hover-card.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAuC;AACvC,4DAA4B;AAC5B,iDAM2B;AAE3B,oFAA0C;AAYnC,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IACjD,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,eAAe,GAAG,EAAE,EACpB,kBAAkB,GAAG,EAAE,EACvB,IAAI,GAAG,EAAE,EACT,EAAE,GAAG,IAAI,EACT,KAAK,EACL,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAA,wBAAY,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAG7D,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC7B,IAAI,EAAE,EAAE;YACN,OAAO,EAAE,CAAC;SACX;QAED,IAAI,IAAI,EAAE;YACR,OAAO,GAAG,CAAC;SACZ;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,oBAAE,EAAC,+BAAG,CAAC,IAAI,EAAE,SAAS,CAAC;QACrC,8BAAC,2BAAe,IACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAA,oBAAE,EAAC,+BAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAC1C,EAAE,EAAE,SAAS,mBACE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAEjD,KAAK,CACU;QAClB,8BAAC,qBAAS,OACJ,cAAc,EAClB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAE,EAAC,+BAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAChD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAExB,8BAAC,0BAAc,IAAC,IAAI,EAAE,EAAE,GAAI;YAC3B,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAClE,CACR,CACP,CAAC;AACJ,CAAC,CAAC;AAjDW,QAAA,SAAS,aAiDpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/hover-card/index.
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/hover-card/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B"}
|
|
@@ -12,7 +12,7 @@ const Tooltip = (props) => {
|
|
|
12
12
|
const { className = '', tooltipClassName = '', title = '', as: Component = 'span', containerRef: ref, darkMode = true, ...restProps } = props;
|
|
13
13
|
const tooltip = (0, tooltip_1.useTooltipState)({ placement: 'top', timeout: 300 });
|
|
14
14
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
15
|
-
react_1.default.createElement(tooltip_1.TooltipAnchor, { as: Component, className: (0, classnames_1.default)(tooltip_module_css_1.default.root, className), state: tooltip, ...(ref ? { ref } : {}), ...restProps }),
|
|
15
|
+
react_1.default.createElement(tooltip_1.TooltipAnchor, { as: Component, className: (0, classnames_1.default)(tooltip_module_css_1.default.root, className), state: tooltip, "aria-controls": tooltip.open ? tooltip.contentElement?.id : '', ...(ref ? { ref } : {}), ...restProps }),
|
|
16
16
|
title && (react_1.default.createElement(tooltip_1.Tooltip, { state: tooltip, className: (0, classnames_1.default)(tooltip_module_css_1.default.tooltip, tooltipClassName, darkMode && tooltip_module_css_1.default.tooltipDarkMode) },
|
|
17
17
|
react_1.default.createElement(tooltip_1.TooltipArrow, { state: tooltip, className: tooltip_module_css_1.default.arrow, size: 12 }),
|
|
18
18
|
title))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/ui/tooltip/tooltip.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAA4B;AAC5B,6CAKyB;AAEzB,8EAAuC;AAWhC,MAAM,OAAO,GAAG,CACrB,KAA6E,EAC7E,EAAE;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,gBAAgB,GAAG,EAAE,EACrB,KAAK,GAAG,EAAE,EACV,EAAE,EAAE,SAAS,GAAG,MAAM,EACtB,YAAY,EAAE,GAAG,EACjB,QAAQ,GAAG,IAAI,EACf,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAEV,MAAM,OAAO,GAAG,IAAA,yBAAe,EAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAEpE,OAAO,CACL;QACE,8BAAC,uBAAe,IACd,EAAE,EAAE,SAA8B,EAClC,SAAS,EAAE,IAAA,oBAAE,EAAC,4BAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAClC,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/ui/tooltip/tooltip.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAA4B;AAC5B,6CAKyB;AAEzB,8EAAuC;AAWhC,MAAM,OAAO,GAAG,CACrB,KAA6E,EAC7E,EAAE;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,gBAAgB,GAAG,EAAE,EACrB,KAAK,GAAG,EAAE,EACV,EAAE,EAAE,SAAS,GAAG,MAAM,EACtB,YAAY,EAAE,GAAG,EACjB,QAAQ,GAAG,IAAI,EACf,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAEV,MAAM,OAAO,GAAG,IAAA,yBAAe,EAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAEpE,OAAO,CACL;QACE,8BAAC,uBAAe,IACd,EAAE,EAAE,SAA8B,EAClC,SAAS,EAAE,IAAA,oBAAE,EAAC,4BAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAClC,KAAK,EAAE,OAAO,mBACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KACzD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACpB,SAAS,GACb;QACD,KAAK,IAAI,CACR,8BAAC,iBAAS,IACR,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,IAAA,oBAAE,EAAC,4BAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,IAAI,4BAAG,CAAC,eAAe,CAAC;YAE7E,8BAAC,sBAAc,IAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,4BAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAI;YACjE,KAAK,CACI,CACb,CACA,CACJ,CAAC;AACJ,CAAC,CAAC;AApCW,QAAA,OAAO,WAoClB"}
|
|
@@ -39,7 +39,28 @@
|
|
|
39
39
|
width: 5em;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
/*
|
|
42
|
+
/* Hover state */
|
|
43
|
+
.titleIcon span[aria-controls=""] {
|
|
44
|
+
opacity: 0;
|
|
45
|
+
visibility: none;
|
|
46
|
+
transition: var(--ui-transition-out);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.root:hover .titleIcon span {
|
|
50
|
+
opacity: 1;
|
|
51
|
+
visibility: visible;
|
|
52
|
+
transition: var(--ui-transition-in);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Size variation */
|
|
56
|
+
.small .info {
|
|
57
|
+
margin-top: var(--space-xxxsmall);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.small .currentMetric {
|
|
61
|
+
font-size: var(--size-xlarge);
|
|
62
|
+
}
|
|
63
|
+
|
|
43
64
|
.large .info {
|
|
44
65
|
margin-top: var(--space-xxsmall);
|
|
45
66
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
2
|
import cx from 'classnames';
|
|
4
3
|
import { Hovercard, HovercardAnchor, HovercardArrow, useHovercard, useHovercardState, } from 'ariakit/hovercard';
|
|
5
4
|
import css from './hover-card.module.css';
|
|
6
5
|
export const HoverCard = (props) => {
|
|
7
|
-
const { className, anchorClassName, hoverCardClassName, href, as, label, children } = props;
|
|
6
|
+
const { className = '', anchorClassName = '', hoverCardClassName = '', href = '', as = null, label, children, } = props;
|
|
8
7
|
const state = useHovercardState({ gutter: 8, timeout: 800 });
|
|
9
8
|
const hovercardProps = useHovercard({ state, portal: true });
|
|
10
9
|
const Component = useMemo(() => {
|
|
@@ -17,26 +16,9 @@ export const HoverCard = (props) => {
|
|
|
17
16
|
return 'span';
|
|
18
17
|
}, [as, href]);
|
|
19
18
|
return (React.createElement("div", { className: cx(css.root, className) },
|
|
20
|
-
React.createElement(HovercardAnchor, { state: state, href: href, className: cx(css.anchor, anchorClassName), as: Component }, label),
|
|
19
|
+
React.createElement(HovercardAnchor, { state: state, href: href, className: cx(css.anchor, anchorClassName), as: Component, "aria-controls": state.open ? hovercardProps.id : '' }, label),
|
|
21
20
|
React.createElement(Hovercard, { ...hovercardProps, state: state, className: cx(css.hoverCard, hoverCardClassName), style: { zIndex: 10000 } },
|
|
22
21
|
React.createElement(HovercardArrow, { size: 24 }),
|
|
23
22
|
typeof children === 'function' ? children({ close: state.hide }) : children)));
|
|
24
23
|
};
|
|
25
|
-
HoverCard.propTypes = {
|
|
26
|
-
className: PropTypes.string,
|
|
27
|
-
hoverCardClassName: PropTypes.string,
|
|
28
|
-
anchorClassName: PropTypes.string,
|
|
29
|
-
label: PropTypes.node,
|
|
30
|
-
href: PropTypes.string,
|
|
31
|
-
as: PropTypes.elementType,
|
|
32
|
-
children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,
|
|
33
|
-
};
|
|
34
|
-
HoverCard.defaultProps = {
|
|
35
|
-
className: '',
|
|
36
|
-
hoverCardClassName: '',
|
|
37
|
-
anchorClassName: '',
|
|
38
|
-
label: '',
|
|
39
|
-
as: '',
|
|
40
|
-
href: '',
|
|
41
|
-
};
|
|
42
24
|
//# sourceMappingURL=hover-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-card.js","sourceRoot":"","sources":["../../../src/ui/hover-card/hover-card.
|
|
1
|
+
{"version":3,"file":"hover-card.js","sourceRoot":"","sources":["../../../src/ui/hover-card/hover-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,YAAY,EACZ,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,GAAG,MAAM,yBAAyB,CAAC;AAY1C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IACjD,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,eAAe,GAAG,EAAE,EACpB,kBAAkB,GAAG,EAAE,EACvB,IAAI,GAAG,EAAE,EACT,EAAE,GAAG,IAAI,EACT,KAAK,EACL,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAG7D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,IAAI,EAAE,EAAE;YACN,OAAO,EAAE,CAAC;SACX;QAED,IAAI,IAAI,EAAE;YACR,OAAO,GAAG,CAAC;SACZ;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,6BAAK,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;QACrC,oBAAC,eAAe,IACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAC1C,EAAE,EAAE,SAAS,mBACE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAEjD,KAAK,CACU;QAClB,oBAAC,SAAS,OACJ,cAAc,EAClB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAChD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAExB,oBAAC,cAAc,IAAC,IAAI,EAAE,EAAE,GAAI;YAC3B,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAClE,CACR,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/hover-card/index.
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/hover-card/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -3,10 +3,11 @@ import cx from 'classnames';
|
|
|
3
3
|
import { Tooltip as UITooltip, TooltipAnchor as UITooltipAnchor, TooltipArrow as UITooltipArrow, useTooltipState, } from 'ariakit/tooltip';
|
|
4
4
|
import css from './tooltip.module.css';
|
|
5
5
|
export const Tooltip = (props) => {
|
|
6
|
+
var _a;
|
|
6
7
|
const { className = '', tooltipClassName = '', title = '', as: Component = 'span', containerRef: ref, darkMode = true, ...restProps } = props;
|
|
7
8
|
const tooltip = useTooltipState({ placement: 'top', timeout: 300 });
|
|
8
9
|
return (React.createElement(React.Fragment, null,
|
|
9
|
-
React.createElement(UITooltipAnchor, { as: Component, className: cx(css.root, className), state: tooltip, ...(ref ? { ref } : {}), ...restProps }),
|
|
10
|
+
React.createElement(UITooltipAnchor, { as: Component, className: cx(css.root, className), state: tooltip, "aria-controls": tooltip.open ? (_a = tooltip.contentElement) === null || _a === void 0 ? void 0 : _a.id : '', ...(ref ? { ref } : {}), ...restProps }),
|
|
10
11
|
title && (React.createElement(UITooltip, { state: tooltip, className: cx(css.tooltip, tooltipClassName, darkMode && css.tooltipDarkMode) },
|
|
11
12
|
React.createElement(UITooltipArrow, { state: tooltip, className: css.arrow, size: 12 }),
|
|
12
13
|
title))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/ui/tooltip/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,aAAa,IAAI,eAAe,EAChC,YAAY,IAAI,cAAc,EAC9B,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAWvC,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAA6E,EAC7E,EAAE
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/ui/tooltip/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,aAAa,IAAI,eAAe,EAChC,YAAY,IAAI,cAAc,EAC9B,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAWvC,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAA6E,EAC7E,EAAE;;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,gBAAgB,GAAG,EAAE,EACrB,KAAK,GAAG,EAAE,EACV,EAAE,EAAE,SAAS,GAAG,MAAM,EACtB,YAAY,EAAE,GAAG,EACjB,QAAQ,GAAG,IAAI,EACf,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAEV,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAEpE,OAAO,CACL;QACE,oBAAC,eAAe,IACd,EAAE,EAAE,SAA8B,EAClC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAClC,KAAK,EAAE,OAAO,mBACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,cAAc,0CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KACzD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACpB,SAAS,GACb;QACD,KAAK,IAAI,CACR,oBAAC,SAAS,IACR,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,IAAI,GAAG,CAAC,eAAe,CAAC;YAE7E,oBAAC,cAAc,IAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAI;YACjE,KAAK,CACI,CACb,CACA,CACJ,CAAC;AACJ,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bundle-stats/ui",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.5",
|
|
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.
|
|
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",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"react-dom": "17.0.2",
|
|
64
64
|
"react-router-dom": "5.3.4",
|
|
65
65
|
"react-test-renderer": "18.2.0",
|
|
66
|
-
"rimraf": "5.0.
|
|
66
|
+
"rimraf": "5.0.1",
|
|
67
67
|
"typescript": "5.0.4",
|
|
68
68
|
"typescript-plugin-css-modules": "5.0.1"
|
|
69
69
|
},
|
|
@@ -76,11 +76,11 @@
|
|
|
76
76
|
"react-router-dom": "^5.0.0"
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@bundle-stats/utils": "^4.3.
|
|
79
|
+
"@bundle-stats/utils": "^4.3.5",
|
|
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": "
|
|
85
|
+
"gitHead": "b055f5b56eb0f1bc0b7229b39e64ae35f51eb986"
|
|
86
86
|
}
|
|
@@ -39,7 +39,28 @@
|
|
|
39
39
|
width: 5em;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
/*
|
|
42
|
+
/* Hover state */
|
|
43
|
+
.titleIcon span[aria-controls=""] {
|
|
44
|
+
opacity: 0;
|
|
45
|
+
visibility: none;
|
|
46
|
+
transition: var(--ui-transition-out);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.root:hover .titleIcon span {
|
|
50
|
+
opacity: 1;
|
|
51
|
+
visibility: visible;
|
|
52
|
+
transition: var(--ui-transition-in);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Size variation */
|
|
56
|
+
.small .info {
|
|
57
|
+
margin-top: var(--space-xxxsmall);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.small .currentMetric {
|
|
61
|
+
font-size: var(--size-xlarge);
|
|
62
|
+
}
|
|
63
|
+
|
|
43
64
|
.large .info {
|
|
44
65
|
margin-top: var(--space-xxsmall);
|
|
45
66
|
}
|
|
@@ -6,6 +6,15 @@ import { RunInfo } from './run-info';
|
|
|
6
6
|
export default {
|
|
7
7
|
title: 'Components/RunInfo',
|
|
8
8
|
component: RunInfo,
|
|
9
|
+
args: {
|
|
10
|
+
size: 'medium',
|
|
11
|
+
},
|
|
12
|
+
argTypes: {
|
|
13
|
+
size: {
|
|
14
|
+
options: ['small', 'medium', 'large'],
|
|
15
|
+
control: { type: 'select' },
|
|
16
|
+
},
|
|
17
|
+
},
|
|
9
18
|
} as Meta;
|
|
10
19
|
|
|
11
20
|
const Template: Story = (args) => <RunInfo id="webpack.totalSizeByTypeALL" {...args} />;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Meta, Story } from '@storybook/react';
|
|
3
|
+
|
|
4
|
+
import { HoverCard, HoverCardProps } from '.';
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: 'UI/HoverCard',
|
|
8
|
+
component: HoverCard,
|
|
9
|
+
} as Meta;
|
|
10
|
+
|
|
11
|
+
const Template: Story<HoverCardProps> = (props) => (
|
|
12
|
+
<>
|
|
13
|
+
<HoverCard {...props} />
|
|
14
|
+
<p style={{ position: 'relative', zIndex: 1, maxWidth: 360 }}>
|
|
15
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras in neque ante. Curabitur
|
|
16
|
+
vehicula, lorem sit amet fringilla dapibus, justo mauris varius elit, ut fermentum leo velit
|
|
17
|
+
eget risus
|
|
18
|
+
</p>
|
|
19
|
+
</>
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
export const Default = () => (
|
|
23
|
+
<Template label="main.js">
|
|
24
|
+
<h1>main.js</h1>
|
|
25
|
+
<p>info</p>
|
|
26
|
+
</Template>
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
export const WithRenderFn = () => (
|
|
30
|
+
<Template label="main.js">
|
|
31
|
+
{({ close }) => (
|
|
32
|
+
<div>
|
|
33
|
+
<h1>main.js</h1>
|
|
34
|
+
<p>info</p>
|
|
35
|
+
<button type="button" onClick={close}>
|
|
36
|
+
close
|
|
37
|
+
</button>
|
|
38
|
+
</div>
|
|
39
|
+
)}
|
|
40
|
+
</Template>
|
|
41
|
+
);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
2
|
import cx from 'classnames';
|
|
4
3
|
import {
|
|
5
4
|
Hovercard,
|
|
@@ -11,8 +10,26 @@ import {
|
|
|
11
10
|
|
|
12
11
|
import css from './hover-card.module.css';
|
|
13
12
|
|
|
14
|
-
export
|
|
15
|
-
|
|
13
|
+
export interface HoverCardProps {
|
|
14
|
+
className?: string;
|
|
15
|
+
anchorClassName?: string;
|
|
16
|
+
hoverCardClassName?: string;
|
|
17
|
+
href?: string;
|
|
18
|
+
as?: React.ElementType;
|
|
19
|
+
label: React.ReactNode;
|
|
20
|
+
children?: React.ReactNode | (({ close }: { close: () => void }) => React.ReactNode);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const HoverCard = (props: HoverCardProps) => {
|
|
24
|
+
const {
|
|
25
|
+
className = '',
|
|
26
|
+
anchorClassName = '',
|
|
27
|
+
hoverCardClassName = '',
|
|
28
|
+
href = '',
|
|
29
|
+
as = null,
|
|
30
|
+
label,
|
|
31
|
+
children,
|
|
32
|
+
} = props;
|
|
16
33
|
|
|
17
34
|
const state = useHovercardState({ gutter: 8, timeout: 800 });
|
|
18
35
|
const hovercardProps = useHovercard({ state, portal: true });
|
|
@@ -37,6 +54,7 @@ export const HoverCard = (props) => {
|
|
|
37
54
|
href={href}
|
|
38
55
|
className={cx(css.anchor, anchorClassName)}
|
|
39
56
|
as={Component}
|
|
57
|
+
aria-controls={state.open ? hovercardProps.id : ''}
|
|
40
58
|
>
|
|
41
59
|
{label}
|
|
42
60
|
</HovercardAnchor>
|
|
@@ -52,29 +70,3 @@ export const HoverCard = (props) => {
|
|
|
52
70
|
</div>
|
|
53
71
|
);
|
|
54
72
|
};
|
|
55
|
-
|
|
56
|
-
HoverCard.propTypes = {
|
|
57
|
-
/** Adopted child class name */
|
|
58
|
-
className: PropTypes.string,
|
|
59
|
-
/** Adopted child class name for hover card */
|
|
60
|
-
hoverCardClassName: PropTypes.string,
|
|
61
|
-
/** Adopted child class name for anchor */
|
|
62
|
-
anchorClassName: PropTypes.string,
|
|
63
|
-
/** Anchor label */
|
|
64
|
-
label: PropTypes.node,
|
|
65
|
-
/** Anchor href */
|
|
66
|
-
href: PropTypes.string,
|
|
67
|
-
/** Anchor component */
|
|
68
|
-
as: PropTypes.elementType,
|
|
69
|
-
/** Hover card component */
|
|
70
|
-
children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
HoverCard.defaultProps = {
|
|
74
|
-
className: '',
|
|
75
|
-
hoverCardClassName: '',
|
|
76
|
-
anchorClassName: '',
|
|
77
|
-
label: '',
|
|
78
|
-
as: '',
|
|
79
|
-
href: '',
|
|
80
|
-
};
|
|
@@ -39,6 +39,7 @@ export const Tooltip = <T extends React.ElementType = 'span'>(
|
|
|
39
39
|
as={Component as React.ElementType}
|
|
40
40
|
className={cx(css.root, className)}
|
|
41
41
|
state={tooltip}
|
|
42
|
+
aria-controls={tooltip.open ? tooltip.contentElement?.id : ''}
|
|
42
43
|
{...(ref ? { ref } : {})}
|
|
43
44
|
{...restProps}
|
|
44
45
|
/>
|
|
@@ -1,27 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
namespace defaultProps {
|
|
13
|
-
const className_1: string;
|
|
14
|
-
export { className_1 as className };
|
|
15
|
-
const hoverCardClassName_1: string;
|
|
16
|
-
export { hoverCardClassName_1 as hoverCardClassName };
|
|
17
|
-
const anchorClassName_1: string;
|
|
18
|
-
export { anchorClassName_1 as anchorClassName };
|
|
19
|
-
const label_1: string;
|
|
20
|
-
export { label_1 as label };
|
|
21
|
-
const as_1: string;
|
|
22
|
-
export { as_1 as as };
|
|
23
|
-
const href_1: string;
|
|
24
|
-
export { href_1 as href };
|
|
25
|
-
}
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface HoverCardProps {
|
|
3
|
+
className?: string;
|
|
4
|
+
anchorClassName?: string;
|
|
5
|
+
hoverCardClassName?: string;
|
|
6
|
+
href?: string;
|
|
7
|
+
as?: React.ElementType;
|
|
8
|
+
label: React.ReactNode;
|
|
9
|
+
children?: React.ReactNode | (({ close }: {
|
|
10
|
+
close: () => void;
|
|
11
|
+
}) => React.ReactNode);
|
|
26
12
|
}
|
|
27
|
-
|
|
13
|
+
export declare const HoverCard: (props: HoverCardProps) => JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from './hover-card';
|
|
File without changes
|