datocms-react-ui 2.1.0-alpha.1 → 2.1.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/HotKey/index.js +105 -0
- package/dist/cjs/HotKey/index.js.map +1 -0
- package/dist/cjs/HotKey/styles.module.css.json +1 -0
- package/dist/cjs/Tooltip/Tooltip/index.js +116 -0
- package/dist/cjs/Tooltip/Tooltip/index.js.map +1 -0
- package/dist/cjs/Tooltip/TooltipContent/index.js +147 -0
- package/dist/cjs/Tooltip/TooltipContent/index.js.map +1 -0
- package/dist/cjs/Tooltip/TooltipContent/styles.module.css.json +1 -0
- package/dist/cjs/Tooltip/TooltipDelayGroup/index.js +140 -0
- package/dist/cjs/Tooltip/TooltipDelayGroup/index.js.map +1 -0
- package/dist/cjs/Tooltip/TooltipTrigger/index.js +102 -0
- package/dist/cjs/Tooltip/TooltipTrigger/index.js.map +1 -0
- package/dist/cjs/Tooltip/index.js +12 -0
- package/dist/cjs/Tooltip/index.js.map +1 -0
- package/dist/cjs/Tooltip/utils.js +165 -0
- package/dist/cjs/Tooltip/utils.js.map +1 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/HotKey/index.d.ts +70 -0
- package/dist/esm/HotKey/index.js +75 -0
- package/dist/esm/HotKey/index.js.map +1 -0
- package/dist/esm/HotKey/styles.module.css.json +1 -0
- package/dist/esm/Tooltip/Tooltip/index.d.ts +74 -0
- package/dist/esm/Tooltip/Tooltip/index.js +89 -0
- package/dist/esm/Tooltip/Tooltip/index.js.map +1 -0
- package/dist/esm/Tooltip/TooltipContent/index.d.ts +68 -0
- package/dist/esm/Tooltip/TooltipContent/index.js +118 -0
- package/dist/esm/Tooltip/TooltipContent/index.js.map +1 -0
- package/dist/esm/Tooltip/TooltipContent/styles.module.css.json +1 -0
- package/dist/esm/Tooltip/TooltipDelayGroup/index.d.ts +118 -0
- package/dist/esm/Tooltip/TooltipDelayGroup/index.js +113 -0
- package/dist/esm/Tooltip/TooltipDelayGroup/index.js.map +1 -0
- package/dist/esm/Tooltip/TooltipTrigger/index.d.ts +45 -0
- package/dist/esm/Tooltip/TooltipTrigger/index.js +76 -0
- package/dist/esm/Tooltip/TooltipTrigger/index.js.map +1 -0
- package/dist/esm/Tooltip/index.d.ts +8 -0
- package/dist/esm/Tooltip/index.js +5 -0
- package/dist/esm/Tooltip/index.js.map +1 -0
- package/dist/esm/Tooltip/utils.d.ts +166 -0
- package/dist/esm/Tooltip/utils.js +135 -0
- package/dist/esm/Tooltip/utils.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/types/HotKey/index.d.ts +70 -0
- package/dist/types/Tooltip/Tooltip/index.d.ts +74 -0
- package/dist/types/Tooltip/TooltipContent/index.d.ts +68 -0
- package/dist/types/Tooltip/TooltipDelayGroup/index.d.ts +118 -0
- package/dist/types/Tooltip/TooltipTrigger/index.d.ts +45 -0
- package/dist/types/Tooltip/index.d.ts +8 -0
- package/dist/types/Tooltip/utils.d.ts +166 -0
- package/dist/types/index.d.ts +2 -0
- package/package.json +4 -3
- package/src/HotKey/index.tsx +95 -0
- package/src/HotKey/styles.module.css +22 -0
- package/src/HotKey/styles.module.css.json +1 -0
- package/src/Tooltip/Tooltip/index.tsx +85 -0
- package/src/Tooltip/TooltipContent/index.tsx +145 -0
- package/src/Tooltip/TooltipContent/styles.module.css +10 -0
- package/src/Tooltip/TooltipContent/styles.module.css.json +1 -0
- package/src/Tooltip/TooltipDelayGroup/index.tsx +128 -0
- package/src/Tooltip/TooltipTrigger/index.tsx +71 -0
- package/src/Tooltip/index.ts +8 -0
- package/src/Tooltip/utils.ts +176 -0
- package/src/global.css +2 -0
- package/src/index.ts +2 -0
- package/styles.css +1 -1
- package/types.json +5247 -3436
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.HotKey = void 0;
|
|
30
|
+
var React = __importStar(require("react"));
|
|
31
|
+
var styles_module_css_json_1 = __importDefault(require("./styles.module.css.json"));
|
|
32
|
+
var isMac = navigator.platform.indexOf('Mac') > -1;
|
|
33
|
+
var modifierKey = isMac ? '⌘' : 'Ctrl';
|
|
34
|
+
/**
|
|
35
|
+
* HotKey component displays keyboard shortcuts in a platform-aware format.
|
|
36
|
+
*
|
|
37
|
+
* The component automatically detects the user's platform and renders appropriate
|
|
38
|
+
* modifier key symbols (⌘ for Mac, Ctrl for Windows/Linux).
|
|
39
|
+
*
|
|
40
|
+
* @example Basic usage
|
|
41
|
+
*
|
|
42
|
+
* Display a simple keyboard shortcut without a label:
|
|
43
|
+
*
|
|
44
|
+
* ```js
|
|
45
|
+
* <Canvas ctx={ctx}>
|
|
46
|
+
* <HotKey hotkey="mod+s" />
|
|
47
|
+
* </Canvas>;
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @example With label
|
|
51
|
+
*
|
|
52
|
+
* Include a descriptive label to explain what the keyboard shortcut does:
|
|
53
|
+
*
|
|
54
|
+
* ```js
|
|
55
|
+
* <Canvas ctx={ctx}>
|
|
56
|
+
* <HotKey hotkey="mod+s" label="Save" />
|
|
57
|
+
* </Canvas>;
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @example Multiple hotkeys
|
|
61
|
+
*
|
|
62
|
+
* Display a list of keyboard shortcuts with labels for documenting available commands:
|
|
63
|
+
*
|
|
64
|
+
* ```js
|
|
65
|
+
* <Canvas ctx={ctx}>
|
|
66
|
+
* <div style={{ display: 'flex', flexDirection: 'column', gap: 'var(--spacing-m)' }}>
|
|
67
|
+
* <HotKey hotkey="mod+c" label="Copy" />
|
|
68
|
+
* <HotKey hotkey="mod+v" label="Paste" />
|
|
69
|
+
* <HotKey hotkey="mod+shift+z" label="Redo" />
|
|
70
|
+
* <HotKey hotkey="alt+enter" label="Submit" />
|
|
71
|
+
* </div>
|
|
72
|
+
* </Canvas>;
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @example Platform-specific rendering
|
|
76
|
+
*
|
|
77
|
+
* The component automatically adapts modifier keys based on the user's platform:
|
|
78
|
+
* - `mod` renders as `⌘` on Mac and `Ctrl` on Windows/Linux
|
|
79
|
+
* - `alt` renders as `⌥` on Mac and `Alt` on Windows/Linux
|
|
80
|
+
*
|
|
81
|
+
* This ensures the correct symbols are displayed for the user's operating system:
|
|
82
|
+
*
|
|
83
|
+
* ```js
|
|
84
|
+
* <Canvas ctx={ctx}>
|
|
85
|
+
* <div style={{ display: 'flex', flexDirection: 'column', gap: 'var(--spacing-m)' }}>
|
|
86
|
+
* <HotKey hotkey="mod+k" label="Open command palette" />
|
|
87
|
+
* <HotKey hotkey="alt+enter" label="Submit form" />
|
|
88
|
+
* <HotKey hotkey="mod+alt+f" label="Find and replace" />
|
|
89
|
+
* </div>
|
|
90
|
+
* </Canvas>;
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
function HotKey(_a) {
|
|
94
|
+
var hotkey = _a.hotkey, label = _a.label;
|
|
95
|
+
var keys = hotkey
|
|
96
|
+
.replace('mod', modifierKey)
|
|
97
|
+
.replace('alt', isMac ? '⌥' : 'Alt')
|
|
98
|
+
.split(/\+/)
|
|
99
|
+
.map(function (e) { return e.charAt(0).toUpperCase() + e.slice(1); });
|
|
100
|
+
return (React.createElement("div", { className: styles_module_css_json_1.default.hotKey },
|
|
101
|
+
label && React.createElement("span", { className: styles_module_css_json_1.default.label }, label),
|
|
102
|
+
React.createElement("div", { className: styles_module_css_json_1.default.keys }, keys.map(function (key) { return (React.createElement("span", { key: key, className: styles_module_css_json_1.default.hotKeyKey }, key)); }))));
|
|
103
|
+
}
|
|
104
|
+
exports.HotKey = HotKey;
|
|
105
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/HotKey/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+B;AAC/B,oFAA8C;AAE9C,IAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,IAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AAYzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,SAAgB,MAAM,CAAC,EAA8B;QAA5B,MAAM,YAAA,EAAE,KAAK,WAAA;IACpC,IAAM,IAAI,GAAG,MAAM;SAChB,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;SACnC,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAtC,CAAsC,CAAC,CAAC;IAEtD,OAAO,CACL,6BAAK,SAAS,EAAE,gCAAM,CAAC,MAAM;QAC1B,KAAK,IAAI,8BAAM,SAAS,EAAE,gCAAM,CAAC,KAAK,IAAG,KAAK,CAAQ;QACvD,6BAAK,SAAS,EAAE,gCAAM,CAAC,IAAI,IACxB,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,CACjB,8BAAM,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,gCAAM,CAAC,SAAS,IACxC,GAAG,CACC,CACR,EAJkB,CAIlB,CAAC,CACE,CACF,CACP,CAAC;AACJ,CAAC;AAnBD,wBAmBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "hotKey": "_hotKey_1eko8_1", "label": "_label_1eko8_7", "keys": "_keys_1eko8_12", "hotKeyKey": "_hotKeyKey_1eko8_18" }
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
26
|
+
var t = {};
|
|
27
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
28
|
+
t[p] = s[p];
|
|
29
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
30
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
31
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
32
|
+
t[p[i]] = s[p[i]];
|
|
33
|
+
}
|
|
34
|
+
return t;
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.Tooltip = void 0;
|
|
38
|
+
var React = __importStar(require("react"));
|
|
39
|
+
var utils_1 = require("../utils");
|
|
40
|
+
/**
|
|
41
|
+
* Tooltip wrapper component that provides context for TooltipTrigger and TooltipContent.
|
|
42
|
+
*
|
|
43
|
+
* This is a compound component pattern. The Tooltip component itself doesn't render anything,
|
|
44
|
+
* but provides the necessary context for its children (TooltipTrigger and TooltipContent).
|
|
45
|
+
*
|
|
46
|
+
* @example Basic tooltip
|
|
47
|
+
*
|
|
48
|
+
* Create a simple tooltip that appears when hovering over a button:
|
|
49
|
+
*
|
|
50
|
+
* ```js
|
|
51
|
+
* <Canvas ctx={ctx}>
|
|
52
|
+
* <Tooltip>
|
|
53
|
+
* <TooltipTrigger>
|
|
54
|
+
* <Button>Hover me</Button>
|
|
55
|
+
* </TooltipTrigger>
|
|
56
|
+
* <TooltipContent>
|
|
57
|
+
* This is helpful information!
|
|
58
|
+
* </TooltipContent>
|
|
59
|
+
* </Tooltip>
|
|
60
|
+
* </Canvas>;
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* @example Tooltip with custom placement
|
|
64
|
+
*
|
|
65
|
+
* Control where the tooltip appears relative to its trigger using the `placement` prop:
|
|
66
|
+
*
|
|
67
|
+
* ```js
|
|
68
|
+
* <Canvas ctx={ctx}>
|
|
69
|
+
* <Tooltip placement="right">
|
|
70
|
+
* <TooltipTrigger>
|
|
71
|
+
* <Button>Right tooltip</Button>
|
|
72
|
+
* </TooltipTrigger>
|
|
73
|
+
* <TooltipContent>
|
|
74
|
+
* Appears on the right side
|
|
75
|
+
* </TooltipContent>
|
|
76
|
+
* </Tooltip>
|
|
77
|
+
* </Canvas>;
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @example Multiple tooltips
|
|
81
|
+
*
|
|
82
|
+
* Use multiple tooltips on the same page to provide contextual help for different actions:
|
|
83
|
+
*
|
|
84
|
+
* ```js
|
|
85
|
+
* <Canvas ctx={ctx}>
|
|
86
|
+
* <div style={{ display: 'flex', gap: 'var(--spacing-m)' }}>
|
|
87
|
+
* <Tooltip>
|
|
88
|
+
* <TooltipTrigger>
|
|
89
|
+
* <Button leftIcon={<SaveIcon />} />
|
|
90
|
+
* </TooltipTrigger>
|
|
91
|
+
* <TooltipContent>
|
|
92
|
+
* Save changes (⌘S)
|
|
93
|
+
* </TooltipContent>
|
|
94
|
+
* </Tooltip>
|
|
95
|
+
*
|
|
96
|
+
* <Tooltip>
|
|
97
|
+
* <TooltipTrigger>
|
|
98
|
+
* <Button leftIcon={<DeleteIcon />} />
|
|
99
|
+
* </TooltipTrigger>
|
|
100
|
+
* <TooltipContent>
|
|
101
|
+
* Delete item
|
|
102
|
+
* </TooltipContent>
|
|
103
|
+
* </Tooltip>
|
|
104
|
+
* </div>
|
|
105
|
+
* </Canvas>;
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
function Tooltip(_a) {
|
|
109
|
+
var children = _a.children, options = __rest(_a, ["children"]);
|
|
110
|
+
// This can accept any props as options, e.g. `placement`,
|
|
111
|
+
// or other positioning options.
|
|
112
|
+
var tooltip = (0, utils_1.useTooltip)(options);
|
|
113
|
+
return (React.createElement(utils_1.TooltipContext.Provider, { value: tooltip }, children));
|
|
114
|
+
}
|
|
115
|
+
exports.Tooltip = Tooltip;
|
|
116
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Tooltip/Tooltip/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+B;AAC/B,kCAAsE;AAMtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,SAAgB,OAAO,CAAC,EAAsC;IAApC,IAAA,QAAQ,cAAA,EAAK,OAAO,cAAtB,YAAwB,CAAF;IAC5C,0DAA0D;IAC1D,gCAAgC;IAChC,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;IACpC,OAAO,CACL,oBAAC,sBAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,IACpC,QAAQ,CACe,CAC3B,CAAC;AACJ,CAAC;AATD,0BASC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.TooltipContent = void 0;
|
|
41
|
+
var react_1 = require("@floating-ui/react");
|
|
42
|
+
var React = __importStar(require("react"));
|
|
43
|
+
var Canvas_1 = require("../../Canvas");
|
|
44
|
+
var utils_1 = require("../utils");
|
|
45
|
+
var styles_module_css_json_1 = __importDefault(require("./styles.module.css.json"));
|
|
46
|
+
/**
|
|
47
|
+
* TooltipContent contains the content displayed in the floating tooltip.
|
|
48
|
+
*
|
|
49
|
+
* The content is automatically wrapped in a Canvas component to inherit the DatoCMS
|
|
50
|
+
* theme and styling. The tooltip uses a portal to render outside the normal DOM
|
|
51
|
+
* hierarchy, ensuring proper positioning and z-index stacking.
|
|
52
|
+
*
|
|
53
|
+
* @example Simple text tooltip
|
|
54
|
+
*
|
|
55
|
+
* Display plain text in a tooltip to provide helpful information:
|
|
56
|
+
*
|
|
57
|
+
* ```js
|
|
58
|
+
* <Canvas ctx={ctx}>
|
|
59
|
+
* <Tooltip>
|
|
60
|
+
* <TooltipTrigger>
|
|
61
|
+
* <Button>Delete</Button>
|
|
62
|
+
* </TooltipTrigger>
|
|
63
|
+
* <TooltipContent>
|
|
64
|
+
* This action cannot be undone
|
|
65
|
+
* </TooltipContent>
|
|
66
|
+
* </Tooltip>
|
|
67
|
+
* </Canvas>;
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @example Rich content tooltip
|
|
71
|
+
*
|
|
72
|
+
* Include formatted content with custom styles for more detailed information:
|
|
73
|
+
*
|
|
74
|
+
* ```js
|
|
75
|
+
* <Canvas ctx={ctx}>
|
|
76
|
+
* <Tooltip placement="right">
|
|
77
|
+
* <TooltipTrigger>
|
|
78
|
+
* <Button leftIcon={<HelpIcon />}>Help</Button>
|
|
79
|
+
* </TooltipTrigger>
|
|
80
|
+
* <TooltipContent>
|
|
81
|
+
* <div>
|
|
82
|
+
* <strong>Need assistance?</strong>
|
|
83
|
+
* <p style={{ margin: '5px 0 0 0', fontSize: 'var(--font-size-xs)' }}>
|
|
84
|
+
* Contact support@example.com
|
|
85
|
+
* </p>
|
|
86
|
+
* </div>
|
|
87
|
+
* </TooltipContent>
|
|
88
|
+
* </Tooltip>
|
|
89
|
+
* </Canvas>;
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* @example Tooltip with keyboard shortcut
|
|
93
|
+
*
|
|
94
|
+
* Combine tooltips with the HotKey component to show keyboard shortcuts:
|
|
95
|
+
*
|
|
96
|
+
* ```js
|
|
97
|
+
* <Canvas ctx={ctx}>
|
|
98
|
+
* <Tooltip>
|
|
99
|
+
* <TooltipTrigger>
|
|
100
|
+
* <Button leftIcon={<SaveIcon />}>Save</Button>
|
|
101
|
+
* </TooltipTrigger>
|
|
102
|
+
* <TooltipContent>
|
|
103
|
+
* <HotKey hotkey="mod+s" label="Save changes" />
|
|
104
|
+
* </TooltipContent>
|
|
105
|
+
* </Tooltip>
|
|
106
|
+
* </Canvas>;
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
exports.TooltipContent = React.forwardRef(function TooltipContent(_a, propRef) {
|
|
110
|
+
var children = _a.children;
|
|
111
|
+
var ctx = (0, Canvas_1.useCtx)();
|
|
112
|
+
var state = (0, utils_1.useTooltipState)();
|
|
113
|
+
var _b = (0, react_1.useDelayGroupContext)(), isInstantPhase = _b.isInstantPhase, currentId = _b.currentId;
|
|
114
|
+
var ref = (0, react_1.useMergeRefs)([state.refs.setFloating, propRef]);
|
|
115
|
+
// Use the shared portal root
|
|
116
|
+
var portalRootRef = React.useRef(null);
|
|
117
|
+
React.useEffect(function () {
|
|
118
|
+
// Get the shared portal root and increment ref count
|
|
119
|
+
portalRootRef.current = (0, utils_1.getSharedPortalRoot)();
|
|
120
|
+
// Cleanup function to release the shared portal root
|
|
121
|
+
return function () {
|
|
122
|
+
(0, utils_1.releaseSharedPortalRoot)();
|
|
123
|
+
};
|
|
124
|
+
}, []);
|
|
125
|
+
(0, react_1.useDelayGroup)(state.context, { id: state.context.floatingId });
|
|
126
|
+
var instantDuration = 0;
|
|
127
|
+
var duration = 250;
|
|
128
|
+
var _c = (0, react_1.useTransitionStyles)(state.context, {
|
|
129
|
+
duration: isInstantPhase
|
|
130
|
+
? {
|
|
131
|
+
open: instantDuration,
|
|
132
|
+
// `id` is this component's `id`
|
|
133
|
+
// `currentId` is the current group's `id`
|
|
134
|
+
close: currentId === state.context.floatingId ? duration : instantDuration,
|
|
135
|
+
}
|
|
136
|
+
: duration,
|
|
137
|
+
initial: {
|
|
138
|
+
opacity: 0,
|
|
139
|
+
},
|
|
140
|
+
}), isMounted = _c.isMounted, styles = _c.styles;
|
|
141
|
+
if (!isMounted)
|
|
142
|
+
return null;
|
|
143
|
+
return (React.createElement(react_1.FloatingPortal, { root: portalRootRef },
|
|
144
|
+
React.createElement(Canvas_1.Canvas, { ctx: ctx, noAutoResizer: true },
|
|
145
|
+
React.createElement("div", __assign({ ref: ref, style: __assign(__assign({}, state.floatingStyles), styles) }, state.getFloatingProps(), { className: styles_module_css_json_1.default.tooltip }), children))));
|
|
146
|
+
});
|
|
147
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Tooltip/TooltipContent/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAM4B;AAC5B,2CAA+B;AAC/B,uCAA8C;AAC9C,kCAIkB;AAClB,oFAAyC;AAMzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACU,QAAA,cAAc,GAAG,KAAK,CAAC,UAAU,CAG5C,SAAS,cAAc,CAAC,EAAY,EAAE,OAAO;QAAnB,QAAQ,cAAA;IAClC,IAAM,GAAG,GAAG,IAAA,eAAM,GAAE,CAAC;IACrB,IAAM,KAAK,GAAG,IAAA,uBAAe,GAAE,CAAC;IAC1B,IAAA,KAAgC,IAAA,4BAAoB,GAAE,EAApD,cAAc,oBAAA,EAAE,SAAS,eAA2B,CAAC;IAC7D,IAAM,GAAG,GAAG,IAAA,oBAAY,EAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAE5D,6BAA6B;IAC7B,IAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAC;IAEhE,KAAK,CAAC,SAAS,CAAC;QACd,qDAAqD;QACrD,aAAa,CAAC,OAAO,GAAG,IAAA,2BAAmB,GAAE,CAAC;QAE9C,qDAAqD;QACrD,OAAO;YACL,IAAA,+BAAuB,GAAE,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,qBAAa,EAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAE/D,IAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,IAAM,QAAQ,GAAG,GAAG,CAAC;IAEf,IAAA,KAAwB,IAAA,2BAAmB,EAAC,KAAK,CAAC,OAAO,EAAE;QAC/D,QAAQ,EAAE,cAAc;YACtB,CAAC,CAAC;gBACE,IAAI,EAAE,eAAe;gBACrB,gCAAgC;gBAChC,0CAA0C;gBAC1C,KAAK,EACH,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe;aACtE;YACH,CAAC,CAAC,QAAQ;QACZ,OAAO,EAAE;YACP,OAAO,EAAE,CAAC;SACX;KACF,CAAC,EAbM,SAAS,eAAA,EAAE,MAAM,YAavB,CAAC;IAEH,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,OAAO,CACL,oBAAC,sBAAc,IAAC,IAAI,EAAE,aAAa;QACjC,oBAAC,eAAM,IAAC,GAAG,EAAE,GAAG,EAAE,aAAa;YAC7B,sCACE,GAAG,EAAE,GAAG,EACR,KAAK,wBACA,KAAK,CAAC,cAAc,GACpB,MAAM,KAEP,KAAK,CAAC,gBAAgB,EAAE,IAC5B,SAAS,EAAE,gCAAC,CAAC,OAAO,KAEnB,QAAQ,CACL,CACC,CACM,CAClB,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "tooltip": "_tooltip_3z5rn_1" }
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.TooltipDelayGroup = void 0;
|
|
27
|
+
var react_1 = require("@floating-ui/react");
|
|
28
|
+
var React = __importStar(require("react"));
|
|
29
|
+
/**
|
|
30
|
+
* TooltipDelayGroup synchronizes hover delays across multiple tooltips.
|
|
31
|
+
*
|
|
32
|
+
* When tooltips are wrapped in a delay group, hovering over the first tooltip
|
|
33
|
+
* will use the configured delay, but subsequent tooltips in the group will
|
|
34
|
+
* open instantly. This creates a smoother UX when users explore multiple
|
|
35
|
+
* interactive elements with tooltips.
|
|
36
|
+
*
|
|
37
|
+
* @example Basic delay group
|
|
38
|
+
*
|
|
39
|
+
* Group multiple tooltips together so they open instantly after the first one:
|
|
40
|
+
*
|
|
41
|
+
* ```js
|
|
42
|
+
* <Canvas ctx={ctx}>
|
|
43
|
+
* <TooltipDelayGroup delay={500}>
|
|
44
|
+
* <div style={{ display: 'flex', gap: 'var(--spacing-m)' }}>
|
|
45
|
+
* <Tooltip>
|
|
46
|
+
* <TooltipTrigger>
|
|
47
|
+
* <Button leftIcon={<SaveIcon />} />
|
|
48
|
+
* </TooltipTrigger>
|
|
49
|
+
* <TooltipContent>Save changes</TooltipContent>
|
|
50
|
+
* </Tooltip>
|
|
51
|
+
*
|
|
52
|
+
* <Tooltip>
|
|
53
|
+
* <TooltipTrigger>
|
|
54
|
+
* <Button leftIcon={<UndoIcon />} />
|
|
55
|
+
* </TooltipTrigger>
|
|
56
|
+
* <TooltipContent>Undo</TooltipContent>
|
|
57
|
+
* </Tooltip>
|
|
58
|
+
*
|
|
59
|
+
* <Tooltip>
|
|
60
|
+
* <TooltipTrigger>
|
|
61
|
+
* <Button leftIcon={<RedoIcon />} />
|
|
62
|
+
* </TooltipTrigger>
|
|
63
|
+
* <TooltipContent>Redo</TooltipContent>
|
|
64
|
+
* </Tooltip>
|
|
65
|
+
* </div>
|
|
66
|
+
* </TooltipDelayGroup>
|
|
67
|
+
* </Canvas>;
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @example Custom delay configuration
|
|
71
|
+
*
|
|
72
|
+
* Configure different delays for opening and closing tooltips in the group:
|
|
73
|
+
*
|
|
74
|
+
* ```js
|
|
75
|
+
* <Canvas ctx={ctx}>
|
|
76
|
+
* <TooltipDelayGroup delay={{ open: 800, close: 200 }} timeoutMs={500}>
|
|
77
|
+
* <div style={{ display: 'flex', gap: 'var(--spacing-s)' }}>
|
|
78
|
+
* <Tooltip>
|
|
79
|
+
* <TooltipTrigger>
|
|
80
|
+
* <Button>Action 1</Button>
|
|
81
|
+
* </TooltipTrigger>
|
|
82
|
+
* <TooltipContent>First action</TooltipContent>
|
|
83
|
+
* </Tooltip>
|
|
84
|
+
*
|
|
85
|
+
* <Tooltip>
|
|
86
|
+
* <TooltipTrigger>
|
|
87
|
+
* <Button>Action 2</Button>
|
|
88
|
+
* </TooltipTrigger>
|
|
89
|
+
* <TooltipContent>Second action</TooltipContent>
|
|
90
|
+
* </Tooltip>
|
|
91
|
+
* </div>
|
|
92
|
+
* </TooltipDelayGroup>
|
|
93
|
+
* </Canvas>;
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* @example Toolbar with grouped tooltips
|
|
97
|
+
*
|
|
98
|
+
* Create a toolbar where hovering between tools feels instant and responsive:
|
|
99
|
+
*
|
|
100
|
+
* ```js
|
|
101
|
+
* <Canvas ctx={ctx}>
|
|
102
|
+
* <TooltipDelayGroup delay={600}>
|
|
103
|
+
* <div style={{
|
|
104
|
+
* display: 'flex',
|
|
105
|
+
* gap: 'var(--spacing-xs)',
|
|
106
|
+
* padding: 'var(--spacing-s)',
|
|
107
|
+
* borderRadius: 'var(--border-radius-m)',
|
|
108
|
+
* backgroundColor: 'var(--light-bg-color)'
|
|
109
|
+
* }}>
|
|
110
|
+
* <Tooltip>
|
|
111
|
+
* <TooltipTrigger>
|
|
112
|
+
* <Button buttonSize="s" leftIcon={<BoldIcon />} />
|
|
113
|
+
* </TooltipTrigger>
|
|
114
|
+
* <TooltipContent>Bold</TooltipContent>
|
|
115
|
+
* </Tooltip>
|
|
116
|
+
*
|
|
117
|
+
* <Tooltip>
|
|
118
|
+
* <TooltipTrigger>
|
|
119
|
+
* <Button buttonSize="s" leftIcon={<ItalicIcon />} />
|
|
120
|
+
* </TooltipTrigger>
|
|
121
|
+
* <TooltipContent>Italic</TooltipContent>
|
|
122
|
+
* </Tooltip>
|
|
123
|
+
*
|
|
124
|
+
* <Tooltip>
|
|
125
|
+
* <TooltipTrigger>
|
|
126
|
+
* <Button buttonSize="s" leftIcon={<UnderlineIcon />} />
|
|
127
|
+
* </TooltipTrigger>
|
|
128
|
+
* <TooltipContent>Underline</TooltipContent>
|
|
129
|
+
* </Tooltip>
|
|
130
|
+
* </div>
|
|
131
|
+
* </TooltipDelayGroup>
|
|
132
|
+
* </Canvas>;
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
function TooltipDelayGroup(_a) {
|
|
136
|
+
var children = _a.children, _b = _a.delay, delay = _b === void 0 ? 1000 : _b, _c = _a.timeoutMs, timeoutMs = _c === void 0 ? 0 : _c;
|
|
137
|
+
return (React.createElement(react_1.FloatingDelayGroup, { delay: delay, timeoutMs: timeoutMs }, children));
|
|
138
|
+
}
|
|
139
|
+
exports.TooltipDelayGroup = TooltipDelayGroup;
|
|
140
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Tooltip/TooltipDelayGroup/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAwD;AACxD,2CAA+B;AAU/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AACH,SAAgB,iBAAiB,CAAC,EAIT;QAHvB,QAAQ,cAAA,EACR,aAAY,EAAZ,KAAK,mBAAG,IAAI,KAAA,EACZ,iBAAa,EAAb,SAAS,mBAAG,CAAC,KAAA;IAEb,OAAO,CACL,oBAAC,0BAAkB,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,IACnD,QAAQ,CACU,CACtB,CAAC;AACJ,CAAC;AAVD,8CAUC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
37
|
+
var t = {};
|
|
38
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
39
|
+
t[p] = s[p];
|
|
40
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
41
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
42
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
43
|
+
t[p[i]] = s[p[i]];
|
|
44
|
+
}
|
|
45
|
+
return t;
|
|
46
|
+
};
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.TooltipTrigger = void 0;
|
|
49
|
+
var react_1 = require("@floating-ui/react");
|
|
50
|
+
var React = __importStar(require("react"));
|
|
51
|
+
var utils_1 = require("../utils");
|
|
52
|
+
/**
|
|
53
|
+
* TooltipTrigger wraps the element that triggers the tooltip on hover/focus.
|
|
54
|
+
*
|
|
55
|
+
* The child must be a single React element that accepts ref and event handler props.
|
|
56
|
+
* Common triggers include buttons, icons, or other interactive elements.
|
|
57
|
+
*
|
|
58
|
+
* @example With Button component
|
|
59
|
+
*
|
|
60
|
+
* Wrap a button to show a tooltip when the user hovers over it:
|
|
61
|
+
*
|
|
62
|
+
* ```js
|
|
63
|
+
* <Canvas ctx={ctx}>
|
|
64
|
+
* <Tooltip>
|
|
65
|
+
* <TooltipTrigger>
|
|
66
|
+
* <Button>Hover for info</Button>
|
|
67
|
+
* </TooltipTrigger>
|
|
68
|
+
* <TooltipContent>
|
|
69
|
+
* Additional information appears here
|
|
70
|
+
* </TooltipContent>
|
|
71
|
+
* </Tooltip>
|
|
72
|
+
* </Canvas>;
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @example With icon button
|
|
76
|
+
*
|
|
77
|
+
* Use tooltips with icon-only buttons to explain their purpose:
|
|
78
|
+
*
|
|
79
|
+
* ```js
|
|
80
|
+
* <Canvas ctx={ctx}>
|
|
81
|
+
* <Tooltip placement="bottom">
|
|
82
|
+
* <TooltipTrigger>
|
|
83
|
+
* <Button buttonSize="s" leftIcon={<InfoIcon />} />
|
|
84
|
+
* </TooltipTrigger>
|
|
85
|
+
* <TooltipContent>
|
|
86
|
+
* Click for more details
|
|
87
|
+
* </TooltipContent>
|
|
88
|
+
* </Tooltip>
|
|
89
|
+
* </Canvas>;
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
exports.TooltipTrigger = React.forwardRef(function TooltipTrigger(_a, propRef) {
|
|
93
|
+
var children = _a.children, props = __rest(_a, ["children"]);
|
|
94
|
+
var state = (0, utils_1.useTooltipState)();
|
|
95
|
+
var childrenRef = children.ref;
|
|
96
|
+
var ref = (0, react_1.useMergeRefs)([state.refs.setReference, propRef, childrenRef]);
|
|
97
|
+
if (!React.isValidElement(children)) {
|
|
98
|
+
throw new Error('TooltipTrigger children must be a valid React element');
|
|
99
|
+
}
|
|
100
|
+
return React.cloneElement(children, state.getReferenceProps(__assign(__assign(__assign({ ref: ref }, props), children.props), { 'data-state': state.open ? 'open' : 'closed' })));
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Tooltip/TooltipTrigger/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAkD;AAClD,2CAA+B;AAC/B,kCAA2C;AAM3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACU,QAAA,cAAc,GAAG,KAAK,CAAC,UAAU,CAG5C,SAAS,cAAc,CAAC,EAAsB,EAAE,OAAO;IAA7B,IAAA,QAAQ,cAAA,EAAK,KAAK,cAApB,YAAsB,CAAF;IAC5C,IAAM,KAAK,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEhC,IAAM,WAAW,GAAI,QAAgB,CAAC,GAAG,CAAC;IAC1C,IAAM,GAAG,GAAG,IAAA,oBAAY,EAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAE1E,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;KAC1E;IAED,OAAO,KAAK,CAAC,YAAY,CACvB,QAAQ,EACR,KAAK,CAAC,iBAAiB,8BACrB,GAAG,KAAA,IACA,KAAK,GACL,QAAQ,CAAC,KAAK,KACjB,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,IAC5C,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TooltipTrigger = exports.TooltipDelayGroup = exports.TooltipContent = exports.Tooltip = void 0;
|
|
4
|
+
var Tooltip_1 = require("./Tooltip");
|
|
5
|
+
Object.defineProperty(exports, "Tooltip", { enumerable: true, get: function () { return Tooltip_1.Tooltip; } });
|
|
6
|
+
var TooltipContent_1 = require("./TooltipContent");
|
|
7
|
+
Object.defineProperty(exports, "TooltipContent", { enumerable: true, get: function () { return TooltipContent_1.TooltipContent; } });
|
|
8
|
+
var TooltipDelayGroup_1 = require("./TooltipDelayGroup");
|
|
9
|
+
Object.defineProperty(exports, "TooltipDelayGroup", { enumerable: true, get: function () { return TooltipDelayGroup_1.TooltipDelayGroup; } });
|
|
10
|
+
var TooltipTrigger_1 = require("./TooltipTrigger");
|
|
11
|
+
Object.defineProperty(exports, "TooltipTrigger", { enumerable: true, get: function () { return TooltipTrigger_1.TooltipTrigger; } });
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Tooltip/index.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAEhB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAE1B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
|