@veracity/vui 1.2.0 → 1.2.2-rc.0
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/dist/cjs/popover/usePopover.d.ts.map +1 -1
- package/dist/cjs/popover/usePopover.js +11 -8
- package/dist/cjs/popover/usePopover.types.d.ts +2 -0
- package/dist/cjs/popover/usePopover.types.d.ts.map +1 -1
- package/dist/cjs/toast/index.d.ts +1 -1
- package/dist/cjs/toast/index.d.ts.map +1 -1
- package/dist/cjs/toast/index.js +2 -2
- package/dist/cjs/toast/{Toaster.d.ts → toast.d.ts} +1 -1
- package/dist/cjs/toast/toast.d.ts.map +1 -0
- package/dist/cjs/tooltip/tooltip.d.ts.map +1 -1
- package/dist/cjs/tooltip/tooltip.js +17 -11
- package/dist/cjs/tooltip/tooltipContent.d.ts +3 -0
- package/dist/cjs/tooltip/tooltipContent.d.ts.map +1 -0
- package/dist/cjs/tooltip/tooltipContent.js +14 -0
- package/dist/esm/popover/usePopover.d.ts.map +1 -1
- package/dist/esm/popover/usePopover.js +11 -8
- package/dist/esm/popover/usePopover.types.d.ts +2 -0
- package/dist/esm/popover/usePopover.types.d.ts.map +1 -1
- package/dist/esm/toast/index.d.ts +1 -1
- package/dist/esm/toast/index.d.ts.map +1 -1
- package/dist/esm/toast/index.js +1 -1
- package/dist/esm/toast/{Toaster.d.ts → toast.d.ts} +1 -1
- package/dist/esm/toast/toast.d.ts.map +1 -0
- package/dist/esm/tooltip/tooltip.d.ts.map +1 -1
- package/dist/esm/tooltip/tooltip.js +16 -10
- package/dist/esm/tooltip/tooltipContent.d.ts +3 -0
- package/dist/esm/tooltip/tooltipContent.d.ts.map +1 -0
- package/dist/esm/tooltip/tooltipContent.js +7 -0
- package/package.json +2 -1
- package/src/popover/usePopover.ts +11 -7
- package/src/popover/usePopover.types.ts +2 -1
- package/src/toast/index.ts +1 -1
- package/src/tooltip/tooltip.tsx +49 -32
- package/src/tooltip/tooltipContent.tsx +27 -0
- package/dist/cjs/toast/Toaster.d.ts.map +0 -1
- package/dist/esm/toast/Toaster.d.ts.map +0 -1
- /package/dist/cjs/toast/{Toaster.js → toast.js} +0 -0
- /package/dist/esm/toast/{Toaster.js → toast.js} +0 -0
- /package/src/toast/{Toaster.tsx → toast.tsx} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePopover.d.ts","sourceRoot":"","sources":["../../../src/popover/usePopover.ts"],"names":[],"mappings":";AACA,OAAc,EAAE,QAAQ,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAI/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,GAAE,eAAoB;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"usePopover.d.ts","sourceRoot":"","sources":["../../../src/popover/usePopover.ts"],"names":[],"mappings":";AACA,OAAc,EAAE,QAAQ,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAI/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,GAAE,eAAoB;;;;;;;;;EA+G7D;AAED,oBAAY,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA"}
|
|
@@ -24,9 +24,7 @@ const consts_1 = require("./consts");
|
|
|
24
24
|
* Exposes functions used for ref callbacks on consuming components, programatic open/close methods and properties.
|
|
25
25
|
*/
|
|
26
26
|
function usePopover(props = {}) {
|
|
27
|
-
const { closeOnBlur = true, closeOnEsc = true, defaultIsOpen = false,
|
|
28
|
-
// disablePortal,
|
|
29
|
-
isOpen: isOpenProp, matchWidth, offset, onClose: onCloseProp, onOpen: onOpenProp, options, placement = 'bottom-start', trigger = 'click' } = props;
|
|
27
|
+
const { closeOnBlur = true, closeOnEsc = true, defaultIsOpen = false, flip = true, isOpen: isOpenProp, matchWidth, offset, onClose: onCloseProp, onOpen: onOpenProp, options, placement = 'bottom-start', trigger = 'click' } = props;
|
|
30
28
|
const [isOpen, setIsOpen] = (0, react_1.useState)(isOpenProp !== null && isOpenProp !== void 0 ? isOpenProp : defaultIsOpen);
|
|
31
29
|
const [instance, setInstance] = (0, react_1.useState)(null);
|
|
32
30
|
const [reference, setReference] = (0, react_1.useState)(null);
|
|
@@ -49,7 +47,14 @@ function usePopover(props = {}) {
|
|
|
49
47
|
setIsOpen(true);
|
|
50
48
|
onOpen(instance);
|
|
51
49
|
onShow === null || onShow === void 0 ? void 0 : onShow(instance);
|
|
52
|
-
}, placement, plugins: [...(!isControlled && closeOnEsc ? [consts_1.closeOnEscPlugin] : []), ...plugins], popperOptions: Object.assign(Object.assign({}, popperOptions), { modifiers: [
|
|
50
|
+
}, placement, plugins: [...(!isControlled && closeOnEsc ? [consts_1.closeOnEscPlugin] : []), ...plugins], popperOptions: Object.assign(Object.assign({}, popperOptions), { modifiers: [
|
|
51
|
+
{
|
|
52
|
+
name: 'flip',
|
|
53
|
+
enabled: flip
|
|
54
|
+
},
|
|
55
|
+
Object.assign(Object.assign({}, consts_1.matchWidthModifier), { enabled: !!matchWidth }),
|
|
56
|
+
...((_b = popperOptions.modifiers) !== null && _b !== void 0 ? _b : [])
|
|
57
|
+
] }), showOnCreate: isOpenProp !== null && isOpenProp !== void 0 ? isOpenProp : defaultIsOpen, trigger: !isControlled ? trigger : 'manual' }, otherOptions);
|
|
53
58
|
}, [closeOnBlur, closeOnEsc, offset, options, placement, trigger]);
|
|
54
59
|
// Create a new Tippy instance
|
|
55
60
|
(0, react_1.useEffect)(() => {
|
|
@@ -63,12 +68,10 @@ function usePopover(props = {}) {
|
|
|
63
68
|
// Handle showing/hiding popup in controlled mode
|
|
64
69
|
(0, react_1.useEffect)(() => {
|
|
65
70
|
if (isControlled) {
|
|
66
|
-
if (isOpenProp)
|
|
71
|
+
if (isOpenProp)
|
|
67
72
|
instance === null || instance === void 0 ? void 0 : instance.show();
|
|
68
|
-
|
|
69
|
-
else {
|
|
73
|
+
else
|
|
70
74
|
instance === null || instance === void 0 ? void 0 : instance.hide();
|
|
71
|
-
}
|
|
72
75
|
}
|
|
73
76
|
}, [isOpenProp]);
|
|
74
77
|
return {
|
|
@@ -8,6 +8,8 @@ export declare type UsePopoverProps = {
|
|
|
8
8
|
closeOnEsc?: boolean;
|
|
9
9
|
/** Content is opened on first render. Uncontrolled mode. */
|
|
10
10
|
defaultIsOpen?: boolean;
|
|
11
|
+
/** Content placement could be changed to the opposite depending on available space. */
|
|
12
|
+
flip?: boolean;
|
|
11
13
|
/** Content is opened/closed by the consumer. Controlled mode. */
|
|
12
14
|
isOpen?: boolean;
|
|
13
15
|
/** Sets the content element width to be the same as trigger element. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePopover.types.d.ts","sourceRoot":"","sources":["../../../src/popover/usePopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,oBAAY,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAA;AAEpF,oBAAY,eAAe,GAAG;IAC5B,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"usePopover.types.d.ts","sourceRoot":"","sources":["../../../src/popover/usePopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,oBAAY,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAA;AAEpF,oBAAY,eAAe,GAAG;IAC5B,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,uFAAuF;IACvF,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iEAAiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,oDAAoD;IACpD,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAClD,2CAA2C;IAC3C,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IACjD,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7B,gFAAgF;IAChF,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;CACrC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,SAAS,CAAA;AAE5C,cAAc,YAAY,CAAA"}
|
package/dist/cjs/toast/index.js
CHANGED
|
@@ -18,6 +18,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
20
|
exports.Toaster = void 0;
|
|
21
|
-
var
|
|
22
|
-
Object.defineProperty(exports, "Toaster", { enumerable: true, get: function () { return __importDefault(
|
|
21
|
+
var toast_1 = require("./toast");
|
|
22
|
+
Object.defineProperty(exports, "Toaster", { enumerable: true, get: function () { return __importDefault(toast_1).default; } });
|
|
23
23
|
__exportStar(require("./useToast"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/toast/toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;;AA8BzB,wBAAkC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/tooltip/tooltip.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/tooltip/tooltip.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C;;;;;KAKK;AACL,eAAO,MAAM,OAAO,UAAW,YAAY,gBA0D1C,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -4,12 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Tooltip = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const react_1 = __importDefault(require("@tippyjs/react"));
|
|
8
|
+
const react_2 = __importDefault(require("react"));
|
|
8
9
|
const box_1 = __importDefault(require("../box"));
|
|
9
10
|
const core_1 = require("../core");
|
|
10
11
|
const link_1 = require("../link");
|
|
11
|
-
const popover_1 = __importDefault(require("../popover"));
|
|
12
12
|
const tooltip_setup_1 = require("./tooltip.setup");
|
|
13
|
+
const tooltipContent_1 = require("./tooltipContent");
|
|
13
14
|
/**
|
|
14
15
|
* A simple text popup hint.
|
|
15
16
|
*
|
|
@@ -19,15 +20,20 @@ const tooltip_setup_1 = require("./tooltip.setup");
|
|
|
19
20
|
const Tooltip = (props) => {
|
|
20
21
|
const { children, fontSize = '16px', linkText, linkProps, maxWidth = '400px', text = 'demo', placement = 'top' } = props;
|
|
21
22
|
const isDesktop = (0, core_1.useUp)('md');
|
|
22
|
-
return (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
return (react_2.default.createElement(react_1.default, { content: react_2.default.createElement(tooltipContent_1.TooltipContent, { fontSize: fontSize, maxWidth: maxWidth },
|
|
24
|
+
isDesktop && (react_2.default.createElement(box_1.default, { bg: tooltip_setup_1.color, bottom: tooltip_setup_1.pointerPlacement[placement].bottom, h: `${tooltip_setup_1.pointerSize}px`, left: tooltip_setup_1.pointerPlacement[placement].left, position: "absolute", right: tooltip_setup_1.pointerPlacement[placement].right, top: tooltip_setup_1.pointerPlacement[placement].top, transform: `translate(${tooltip_setup_1.pointerPlacement[placement].translate}) rotate(45deg)`, w: `${tooltip_setup_1.pointerSize}px` })),
|
|
25
|
+
react_2.default.createElement(core_1.v.div, null,
|
|
26
|
+
text,
|
|
27
|
+
!!linkText && (react_2.default.createElement(react_2.default.Fragment, null,
|
|
28
|
+
"\u00A0",
|
|
29
|
+
react_2.default.createElement(link_1.Link, Object.assign({ variant: "light" }, linkProps), linkText))))), interactive: true, offset: [0, 2], placement: placement, popperOptions: {
|
|
30
|
+
modifiers: [
|
|
31
|
+
{
|
|
32
|
+
name: 'flip',
|
|
33
|
+
enabled: false
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
} }, children));
|
|
31
37
|
};
|
|
32
38
|
exports.Tooltip = Tooltip;
|
|
33
39
|
exports.default = exports.Tooltip;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltipContent.d.ts","sourceRoot":"","sources":["../../../src/tooltip/tooltipContent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,eAAO,MAAM,cAAc,UAAW,YAAY,gBAoBjD,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TooltipContent = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const box_1 = __importDefault(require("../box"));
|
|
9
|
+
const tooltip_setup_1 = require("./tooltip.setup");
|
|
10
|
+
const TooltipContent = (props) => {
|
|
11
|
+
const { children, fontSize = '16px', maxWidth = '400px' } = props;
|
|
12
|
+
return (react_1.default.createElement(box_1.default, { bg: tooltip_setup_1.color, borderRadius: "md", boxShadow: "2", className: "vui-tooltip-content", color: "white", fontSize: fontSize, m: 1, maxW: maxWidth, overflowY: "auto", p: 1, pl: 2, pr: 2 }, children));
|
|
13
|
+
};
|
|
14
|
+
exports.TooltipContent = TooltipContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePopover.d.ts","sourceRoot":"","sources":["../../../src/popover/usePopover.ts"],"names":[],"mappings":";AACA,OAAc,EAAE,QAAQ,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAI/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,GAAE,eAAoB;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"usePopover.d.ts","sourceRoot":"","sources":["../../../src/popover/usePopover.ts"],"names":[],"mappings":";AACA,OAAc,EAAE,QAAQ,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAI/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,GAAE,eAAoB;;;;;;;;;EA+G7D;AAED,oBAAY,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA"}
|
|
@@ -8,9 +8,7 @@ import { closeOnEscPlugin, matchWidthModifier } from './consts';
|
|
|
8
8
|
* Exposes functions used for ref callbacks on consuming components, programatic open/close methods and properties.
|
|
9
9
|
*/
|
|
10
10
|
export default function usePopover(props = {}) {
|
|
11
|
-
const { closeOnBlur = true, closeOnEsc = true, defaultIsOpen = false,
|
|
12
|
-
// disablePortal,
|
|
13
|
-
isOpen: isOpenProp, matchWidth, offset, onClose: onCloseProp, onOpen: onOpenProp, options, placement = 'bottom-start', trigger = 'click' } = props;
|
|
11
|
+
const { closeOnBlur = true, closeOnEsc = true, defaultIsOpen = false, flip = true, isOpen: isOpenProp, matchWidth, offset, onClose: onCloseProp, onOpen: onOpenProp, options, placement = 'bottom-start', trigger = 'click' } = props;
|
|
14
12
|
const [isOpen, setIsOpen] = useState(isOpenProp ?? defaultIsOpen);
|
|
15
13
|
const [instance, setInstance] = useState(null);
|
|
16
14
|
const [reference, setReference] = useState(null);
|
|
@@ -46,7 +44,14 @@ export default function usePopover(props = {}) {
|
|
|
46
44
|
plugins: [...(!isControlled && closeOnEsc ? [closeOnEscPlugin] : []), ...plugins],
|
|
47
45
|
popperOptions: {
|
|
48
46
|
...popperOptions,
|
|
49
|
-
modifiers: [
|
|
47
|
+
modifiers: [
|
|
48
|
+
{
|
|
49
|
+
name: 'flip',
|
|
50
|
+
enabled: flip
|
|
51
|
+
},
|
|
52
|
+
{ ...matchWidthModifier, enabled: !!matchWidth },
|
|
53
|
+
...(popperOptions.modifiers ?? [])
|
|
54
|
+
]
|
|
50
55
|
},
|
|
51
56
|
showOnCreate: isOpenProp ?? defaultIsOpen,
|
|
52
57
|
trigger: !isControlled ? trigger : 'manual',
|
|
@@ -68,12 +73,10 @@ export default function usePopover(props = {}) {
|
|
|
68
73
|
// Handle showing/hiding popup in controlled mode
|
|
69
74
|
useEffect(() => {
|
|
70
75
|
if (isControlled) {
|
|
71
|
-
if (isOpenProp)
|
|
76
|
+
if (isOpenProp)
|
|
72
77
|
instance?.show();
|
|
73
|
-
|
|
74
|
-
else {
|
|
78
|
+
else
|
|
75
79
|
instance?.hide();
|
|
76
|
-
}
|
|
77
80
|
}
|
|
78
81
|
}, [isOpenProp]);
|
|
79
82
|
return {
|
|
@@ -8,6 +8,8 @@ export declare type UsePopoverProps = {
|
|
|
8
8
|
closeOnEsc?: boolean;
|
|
9
9
|
/** Content is opened on first render. Uncontrolled mode. */
|
|
10
10
|
defaultIsOpen?: boolean;
|
|
11
|
+
/** Content placement could be changed to the opposite depending on available space. */
|
|
12
|
+
flip?: boolean;
|
|
11
13
|
/** Content is opened/closed by the consumer. Controlled mode. */
|
|
12
14
|
isOpen?: boolean;
|
|
13
15
|
/** Sets the content element width to be the same as trigger element. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePopover.types.d.ts","sourceRoot":"","sources":["../../../src/popover/usePopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,oBAAY,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAA;AAEpF,oBAAY,eAAe,GAAG;IAC5B,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"usePopover.types.d.ts","sourceRoot":"","sources":["../../../src/popover/usePopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,oBAAY,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAA;AAEpF,oBAAY,eAAe,GAAG;IAC5B,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,uFAAuF;IACvF,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iEAAiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,oDAAoD;IACpD,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAClD,2CAA2C;IAC3C,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IACjD,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7B,gFAAgF;IAChF,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;CACrC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,SAAS,CAAA;AAE5C,cAAc,YAAY,CAAA"}
|
package/dist/esm/toast/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default as Toaster } from './
|
|
1
|
+
export { default as Toaster } from './toast';
|
|
2
2
|
export * from './useToast';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/toast/toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;;AA8BzB,wBAAkC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/tooltip/tooltip.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/tooltip/tooltip.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C;;;;;KAKK;AACL,eAAO,MAAM,OAAO,UAAW,YAAY,gBA0D1C,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import Tippy from '@tippyjs/react';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import Box from '../box';
|
|
3
|
-
import { useUp } from '../core';
|
|
4
|
+
import { useUp, v } from '../core';
|
|
4
5
|
import { Link } from '../link';
|
|
5
|
-
import Popover from '../popover';
|
|
6
6
|
import { color, pointerPlacement, pointerSize } from './tooltip.setup';
|
|
7
|
+
import { TooltipContent } from './tooltipContent';
|
|
7
8
|
/**
|
|
8
9
|
* A simple text popup hint.
|
|
9
10
|
*
|
|
@@ -13,14 +14,19 @@ import { color, pointerPlacement, pointerSize } from './tooltip.setup';
|
|
|
13
14
|
export const Tooltip = (props) => {
|
|
14
15
|
const { children, fontSize = '16px', linkText, linkProps, maxWidth = '400px', text = 'demo', placement = 'top' } = props;
|
|
15
16
|
const isDesktop = useUp('md');
|
|
16
|
-
return (React.createElement(
|
|
17
|
-
React.createElement(Popover.Trigger, { as: Box, display: "inline-block" },
|
|
18
|
-
React.createElement(Box, { display: "inline-block" }, children)),
|
|
19
|
-
React.createElement(Popover.Content, { bg: color, color: "white", fontSize: fontSize, m: 1, maxW: maxWidth, p: 1, pl: 2, pr: 2 },
|
|
17
|
+
return (React.createElement(Tippy, { content: React.createElement(TooltipContent, { fontSize: fontSize, maxWidth: maxWidth },
|
|
20
18
|
isDesktop && (React.createElement(Box, { bg: color, bottom: pointerPlacement[placement].bottom, h: `${pointerSize}px`, left: pointerPlacement[placement].left, position: "absolute", right: pointerPlacement[placement].right, top: pointerPlacement[placement].top, transform: `translate(${pointerPlacement[placement].translate}) rotate(45deg)`, w: `${pointerSize}px` })),
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
React.createElement(v.div, null,
|
|
20
|
+
text,
|
|
21
|
+
!!linkText && (React.createElement(React.Fragment, null,
|
|
22
|
+
"\u00A0",
|
|
23
|
+
React.createElement(Link, { variant: "light", ...linkProps }, linkText))))), interactive: true, offset: [0, 2], placement: placement, popperOptions: {
|
|
24
|
+
modifiers: [
|
|
25
|
+
{
|
|
26
|
+
name: 'flip',
|
|
27
|
+
enabled: false
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
} }, children));
|
|
25
31
|
};
|
|
26
32
|
export default Tooltip;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltipContent.d.ts","sourceRoot":"","sources":["../../../src/tooltip/tooltipContent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,eAAO,MAAM,cAAc,UAAW,YAAY,gBAoBjD,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Box from '../box';
|
|
3
|
+
import { color } from './tooltip.setup';
|
|
4
|
+
export const TooltipContent = (props) => {
|
|
5
|
+
const { children, fontSize = '16px', maxWidth = '400px' } = props;
|
|
6
|
+
return (React.createElement(Box, { bg: color, borderRadius: "md", boxShadow: "2", className: "vui-tooltip-content", color: "white", fontSize: fontSize, m: 1, maxW: maxWidth, overflowY: "auto", p: 1, pl: 2, pr: 2 }, children));
|
|
7
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veracity/vui",
|
|
3
|
-
"version": "1.2.0",
|
|
3
|
+
"version": "1.2.2-rc.0",
|
|
4
4
|
"description": "Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"url": "https://dnvgl-one.visualstudio.com/DefaultCollection/Veracity/_git/WEB-VUI"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
+
"@tippyjs/react": "4.2.6",
|
|
23
24
|
"@types/styled-components": "5.1.24",
|
|
24
25
|
"@xstyled/core": "2.5.0",
|
|
25
26
|
"@xstyled/styled-components": "2.5.0",
|
|
@@ -15,7 +15,7 @@ export default function usePopover(props: UsePopoverProps = {}) {
|
|
|
15
15
|
closeOnBlur = true,
|
|
16
16
|
closeOnEsc = true,
|
|
17
17
|
defaultIsOpen = false,
|
|
18
|
-
|
|
18
|
+
flip = true,
|
|
19
19
|
isOpen: isOpenProp,
|
|
20
20
|
matchWidth,
|
|
21
21
|
offset,
|
|
@@ -73,7 +73,14 @@ export default function usePopover(props: UsePopoverProps = {}) {
|
|
|
73
73
|
plugins: [...(!isControlled && closeOnEsc ? [closeOnEscPlugin] : []), ...plugins],
|
|
74
74
|
popperOptions: {
|
|
75
75
|
...popperOptions,
|
|
76
|
-
modifiers: [
|
|
76
|
+
modifiers: [
|
|
77
|
+
{
|
|
78
|
+
name: 'flip',
|
|
79
|
+
enabled: flip
|
|
80
|
+
},
|
|
81
|
+
{ ...matchWidthModifier, enabled: !!matchWidth },
|
|
82
|
+
...(popperOptions.modifiers ?? [])
|
|
83
|
+
]
|
|
77
84
|
},
|
|
78
85
|
showOnCreate: isOpenProp ?? defaultIsOpen,
|
|
79
86
|
trigger: !isControlled ? trigger : 'manual',
|
|
@@ -99,11 +106,8 @@ export default function usePopover(props: UsePopoverProps = {}) {
|
|
|
99
106
|
// Handle showing/hiding popup in controlled mode
|
|
100
107
|
useEffect(() => {
|
|
101
108
|
if (isControlled) {
|
|
102
|
-
if (isOpenProp)
|
|
103
|
-
|
|
104
|
-
} else {
|
|
105
|
-
instance?.hide()
|
|
106
|
-
}
|
|
109
|
+
if (isOpenProp) instance?.show()
|
|
110
|
+
else instance?.hide()
|
|
107
111
|
}
|
|
108
112
|
}, [isOpenProp])
|
|
109
113
|
|
|
@@ -11,7 +11,8 @@ export type UsePopoverProps = {
|
|
|
11
11
|
closeOnEsc?: boolean
|
|
12
12
|
/** Content is opened on first render. Uncontrolled mode. */
|
|
13
13
|
defaultIsOpen?: boolean
|
|
14
|
-
|
|
14
|
+
/** Content placement could be changed to the opposite depending on available space. */
|
|
15
|
+
flip?: boolean
|
|
15
16
|
/** Content is opened/closed by the consumer. Controlled mode. */
|
|
16
17
|
isOpen?: boolean
|
|
17
18
|
/** Sets the content element width to be the same as trigger element. */
|
package/src/toast/index.ts
CHANGED
package/src/tooltip/tooltip.tsx
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Tippy from '@tippyjs/react'
|
|
2
|
+
import React, { JSXElementConstructor, ReactElement } from 'react'
|
|
2
3
|
|
|
3
4
|
import Box from '../box'
|
|
4
|
-
import { useUp } from '../core'
|
|
5
|
+
import { useUp, v } from '../core'
|
|
5
6
|
import { Link } from '../link'
|
|
6
|
-
import Popover from '../popover'
|
|
7
7
|
import { color, pointerPlacement, pointerSize } from './tooltip.setup'
|
|
8
8
|
import { TooltipProps } from './tooltip.types'
|
|
9
|
+
import { TooltipContent } from './tooltipContent'
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* A simple text popup hint.
|
|
@@ -23,37 +24,53 @@ export const Tooltip = (props: TooltipProps) => {
|
|
|
23
24
|
text = 'demo',
|
|
24
25
|
placement = 'top'
|
|
25
26
|
} = props
|
|
27
|
+
|
|
26
28
|
const isDesktop = useUp('md')
|
|
29
|
+
|
|
27
30
|
return (
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
31
|
+
<Tippy
|
|
32
|
+
content={
|
|
33
|
+
<TooltipContent fontSize={fontSize} maxWidth={maxWidth}>
|
|
34
|
+
{isDesktop && (
|
|
35
|
+
<Box
|
|
36
|
+
bg={color}
|
|
37
|
+
bottom={pointerPlacement[placement].bottom}
|
|
38
|
+
h={`${pointerSize}px`}
|
|
39
|
+
left={pointerPlacement[placement].left}
|
|
40
|
+
position="absolute"
|
|
41
|
+
right={pointerPlacement[placement].right}
|
|
42
|
+
top={pointerPlacement[placement].top}
|
|
43
|
+
transform={`translate(${pointerPlacement[placement].translate}) rotate(45deg)`}
|
|
44
|
+
w={`${pointerSize}px`}
|
|
45
|
+
/>
|
|
46
|
+
)}
|
|
47
|
+
<v.div>
|
|
48
|
+
{text}
|
|
49
|
+
{!!linkText && (
|
|
50
|
+
<>
|
|
51
|
+
|
|
52
|
+
<Link variant="light" {...linkProps}>
|
|
53
|
+
{linkText}
|
|
54
|
+
</Link>
|
|
55
|
+
</>
|
|
56
|
+
)}
|
|
57
|
+
</v.div>
|
|
58
|
+
</TooltipContent>
|
|
59
|
+
}
|
|
60
|
+
interactive
|
|
61
|
+
offset={[0, 2]}
|
|
62
|
+
placement={placement}
|
|
63
|
+
popperOptions={{
|
|
64
|
+
modifiers: [
|
|
65
|
+
{
|
|
66
|
+
name: 'flip',
|
|
67
|
+
enabled: false
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}}
|
|
71
|
+
>
|
|
72
|
+
{children as ReactElement<any, string | JSXElementConstructor<any>> | undefined}
|
|
73
|
+
</Tippy>
|
|
57
74
|
)
|
|
58
75
|
}
|
|
59
76
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import Box from '../box'
|
|
4
|
+
import { color } from './tooltip.setup'
|
|
5
|
+
import { TooltipProps } from './tooltip.types'
|
|
6
|
+
|
|
7
|
+
export const TooltipContent = (props: TooltipProps) => {
|
|
8
|
+
const { children, fontSize = '16px', maxWidth = '400px' } = props
|
|
9
|
+
return (
|
|
10
|
+
<Box
|
|
11
|
+
bg={color}
|
|
12
|
+
borderRadius="md"
|
|
13
|
+
boxShadow="2"
|
|
14
|
+
className="vui-tooltip-content"
|
|
15
|
+
color="white"
|
|
16
|
+
fontSize={fontSize}
|
|
17
|
+
m={1}
|
|
18
|
+
maxW={maxWidth}
|
|
19
|
+
overflowY="auto"
|
|
20
|
+
p={1}
|
|
21
|
+
pl={2}
|
|
22
|
+
pr={2}
|
|
23
|
+
>
|
|
24
|
+
{children}
|
|
25
|
+
</Box>
|
|
26
|
+
)
|
|
27
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toaster.d.ts","sourceRoot":"","sources":["../../../src/toast/Toaster.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;;AA8BzB,wBAAkC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toaster.d.ts","sourceRoot":"","sources":["../../../src/toast/Toaster.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;;AA8BzB,wBAAkC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|