datocms-react-ui 2.0.17 → 2.0.18

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.
Files changed (61) hide show
  1. package/dist/cjs/HotKey/index.js +105 -0
  2. package/dist/cjs/HotKey/index.js.map +1 -0
  3. package/dist/cjs/HotKey/styles.module.css.json +1 -0
  4. package/dist/cjs/Tooltip/Tooltip/index.js +116 -0
  5. package/dist/cjs/Tooltip/Tooltip/index.js.map +1 -0
  6. package/dist/cjs/Tooltip/TooltipContent/index.js +147 -0
  7. package/dist/cjs/Tooltip/TooltipContent/index.js.map +1 -0
  8. package/dist/cjs/Tooltip/TooltipContent/styles.module.css.json +1 -0
  9. package/dist/cjs/Tooltip/TooltipTrigger/index.js +102 -0
  10. package/dist/cjs/Tooltip/TooltipTrigger/index.js.map +1 -0
  11. package/dist/cjs/Tooltip/index.js +10 -0
  12. package/dist/cjs/Tooltip/index.js.map +1 -0
  13. package/dist/cjs/Tooltip/utils.js +165 -0
  14. package/dist/cjs/Tooltip/utils.js.map +1 -0
  15. package/dist/cjs/index.js +2 -0
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/esm/HotKey/index.d.ts +70 -0
  18. package/dist/esm/HotKey/index.js +75 -0
  19. package/dist/esm/HotKey/index.js.map +1 -0
  20. package/dist/esm/HotKey/styles.module.css.json +1 -0
  21. package/dist/esm/Tooltip/Tooltip/index.d.ts +74 -0
  22. package/dist/esm/Tooltip/Tooltip/index.js +89 -0
  23. package/dist/esm/Tooltip/Tooltip/index.js.map +1 -0
  24. package/dist/esm/Tooltip/TooltipContent/index.d.ts +68 -0
  25. package/dist/esm/Tooltip/TooltipContent/index.js +118 -0
  26. package/dist/esm/Tooltip/TooltipContent/index.js.map +1 -0
  27. package/dist/esm/Tooltip/TooltipContent/styles.module.css.json +1 -0
  28. package/dist/esm/Tooltip/TooltipTrigger/index.d.ts +43 -0
  29. package/dist/esm/Tooltip/TooltipTrigger/index.js +76 -0
  30. package/dist/esm/Tooltip/TooltipTrigger/index.js.map +1 -0
  31. package/dist/esm/Tooltip/index.d.ts +6 -0
  32. package/dist/esm/Tooltip/index.js +4 -0
  33. package/dist/esm/Tooltip/index.js.map +1 -0
  34. package/dist/esm/Tooltip/utils.d.ts +166 -0
  35. package/dist/esm/Tooltip/utils.js +135 -0
  36. package/dist/esm/Tooltip/utils.js.map +1 -0
  37. package/dist/esm/index.d.ts +2 -0
  38. package/dist/esm/index.js +2 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/types/HotKey/index.d.ts +70 -0
  41. package/dist/types/Tooltip/Tooltip/index.d.ts +74 -0
  42. package/dist/types/Tooltip/TooltipContent/index.d.ts +68 -0
  43. package/dist/types/Tooltip/TooltipTrigger/index.d.ts +43 -0
  44. package/dist/types/Tooltip/index.d.ts +6 -0
  45. package/dist/types/Tooltip/utils.d.ts +166 -0
  46. package/dist/types/index.d.ts +2 -0
  47. package/package.json +4 -3
  48. package/src/HotKey/index.tsx +95 -0
  49. package/src/HotKey/styles.module.css +22 -0
  50. package/src/HotKey/styles.module.css.json +1 -0
  51. package/src/Tooltip/Tooltip/index.tsx +85 -0
  52. package/src/Tooltip/TooltipContent/index.tsx +140 -0
  53. package/src/Tooltip/TooltipContent/styles.module.css +10 -0
  54. package/src/Tooltip/TooltipContent/styles.module.css.json +1 -0
  55. package/src/Tooltip/TooltipTrigger/index.tsx +68 -0
  56. package/src/Tooltip/index.ts +6 -0
  57. package/src/Tooltip/utils.ts +176 -0
  58. package/src/global.css +2 -0
  59. package/src/index.ts +2 -0
  60. package/styles.css +1 -1
  61. package/types.json +7549 -1770
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/Tooltip/utils.ts"],"names":[],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -25,6 +25,7 @@ __exportStar(require("./FieldHint"), exports);
25
25
  __exportStar(require("./FieldWrapper"), exports);
26
26
  __exportStar(require("./Form"), exports);
27
27
  __exportStar(require("./FormLabel"), exports);
28
+ __exportStar(require("./HotKey"), exports);
28
29
  __exportStar(require("./icons"), exports);
29
30
  __exportStar(require("./Section"), exports);
30
31
  __exportStar(require("./SelectField"), exports);
@@ -39,6 +40,7 @@ __exportStar(require("./TextareaInput"), exports);
39
40
  __exportStar(require("./TextField"), exports);
40
41
  __exportStar(require("./TextInput"), exports);
41
42
  __exportStar(require("./Toolbar"), exports);
43
+ __exportStar(require("./Tooltip"), exports);
42
44
  __exportStar(require("./useClickOutside"), exports);
43
45
  __exportStar(require("./useMediaQuery"), exports);
44
46
  __exportStar(require("./VerticalSplit"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,gDAA8B;AAC9B,2CAAyB;AACzB,qDAAmC;AACnC,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAC5B,iDAA+B;AAC/B,yCAAuB;AACvB,8CAA4B;AAC5B,0CAAwB;AACxB,4CAA0B;AAC1B,gDAA8B;AAC9B,gDAA8B;AAC9B,iDAA+B;AAC/B,4CAA0B;AAC1B,8CAA4B;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC;AAChC,8CAA4B;AAC5B,8CAA4B;AAC5B,4CAA0B;AAC1B,oDAAkC;AAClC,kDAAgC;AAChC,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,gDAA8B;AAC9B,2CAAyB;AACzB,qDAAmC;AACnC,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAC5B,iDAA+B;AAC/B,yCAAuB;AACvB,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,gDAA8B;AAC9B,gDAA8B;AAC9B,iDAA+B;AAC/B,4CAA0B;AAC1B,8CAA4B;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC;AAChC,8CAA4B;AAC5B,8CAA4B;AAC5B,4CAA0B;AAC1B,4CAA0B;AAC1B,oDAAkC;AAClC,kDAAgC;AAChC,kDAAgC"}
@@ -0,0 +1,70 @@
1
+ /// <reference types="react" />
2
+ export declare type HotKeyProps = {
3
+ /**
4
+ * Keyboard shortcut string. Use "mod" for platform-specific modifier (Cmd on Mac, Ctrl elsewhere).
5
+ * Separate keys with "+". Examples: "mod+s", "mod+shift+p", "alt+enter"
6
+ */
7
+ hotkey: string;
8
+ /** Optional label to display before the key combination */
9
+ label?: string;
10
+ };
11
+ /**
12
+ * HotKey component displays keyboard shortcuts in a platform-aware format.
13
+ *
14
+ * The component automatically detects the user's platform and renders appropriate
15
+ * modifier key symbols (⌘ for Mac, Ctrl for Windows/Linux).
16
+ *
17
+ * @example Basic usage
18
+ *
19
+ * Display a simple keyboard shortcut without a label:
20
+ *
21
+ * ```js
22
+ * <Canvas ctx={ctx}>
23
+ * <HotKey hotkey="mod+s" />
24
+ * </Canvas>;
25
+ * ```
26
+ *
27
+ * @example With label
28
+ *
29
+ * Include a descriptive label to explain what the keyboard shortcut does:
30
+ *
31
+ * ```js
32
+ * <Canvas ctx={ctx}>
33
+ * <HotKey hotkey="mod+s" label="Save" />
34
+ * </Canvas>;
35
+ * ```
36
+ *
37
+ * @example Multiple hotkeys
38
+ *
39
+ * Display a list of keyboard shortcuts with labels for documenting available commands:
40
+ *
41
+ * ```js
42
+ * <Canvas ctx={ctx}>
43
+ * <div style={{ display: 'flex', flexDirection: 'column', gap: 'var(--spacing-m)' }}>
44
+ * <HotKey hotkey="mod+c" label="Copy" />
45
+ * <HotKey hotkey="mod+v" label="Paste" />
46
+ * <HotKey hotkey="mod+shift+z" label="Redo" />
47
+ * <HotKey hotkey="alt+enter" label="Submit" />
48
+ * </div>
49
+ * </Canvas>;
50
+ * ```
51
+ *
52
+ * @example Platform-specific rendering
53
+ *
54
+ * The component automatically adapts modifier keys based on the user's platform:
55
+ * - `mod` renders as `⌘` on Mac and `Ctrl` on Windows/Linux
56
+ * - `alt` renders as `⌥` on Mac and `Alt` on Windows/Linux
57
+ *
58
+ * This ensures the correct symbols are displayed for the user's operating system:
59
+ *
60
+ * ```js
61
+ * <Canvas ctx={ctx}>
62
+ * <div style={{ display: 'flex', flexDirection: 'column', gap: 'var(--spacing-m)' }}>
63
+ * <HotKey hotkey="mod+k" label="Open command palette" />
64
+ * <HotKey hotkey="alt+enter" label="Submit form" />
65
+ * <HotKey hotkey="mod+alt+f" label="Find and replace" />
66
+ * </div>
67
+ * </Canvas>;
68
+ * ```
69
+ */
70
+ export declare function HotKey({ hotkey, label }: HotKeyProps): JSX.Element;
@@ -0,0 +1,75 @@
1
+ import * as React from 'react';
2
+ import styles from './styles.module.css.json';
3
+ var isMac = navigator.platform.indexOf('Mac') > -1;
4
+ var modifierKey = isMac ? '⌘' : 'Ctrl';
5
+ /**
6
+ * HotKey component displays keyboard shortcuts in a platform-aware format.
7
+ *
8
+ * The component automatically detects the user's platform and renders appropriate
9
+ * modifier key symbols (⌘ for Mac, Ctrl for Windows/Linux).
10
+ *
11
+ * @example Basic usage
12
+ *
13
+ * Display a simple keyboard shortcut without a label:
14
+ *
15
+ * ```js
16
+ * <Canvas ctx={ctx}>
17
+ * <HotKey hotkey="mod+s" />
18
+ * </Canvas>;
19
+ * ```
20
+ *
21
+ * @example With label
22
+ *
23
+ * Include a descriptive label to explain what the keyboard shortcut does:
24
+ *
25
+ * ```js
26
+ * <Canvas ctx={ctx}>
27
+ * <HotKey hotkey="mod+s" label="Save" />
28
+ * </Canvas>;
29
+ * ```
30
+ *
31
+ * @example Multiple hotkeys
32
+ *
33
+ * Display a list of keyboard shortcuts with labels for documenting available commands:
34
+ *
35
+ * ```js
36
+ * <Canvas ctx={ctx}>
37
+ * <div style={{ display: 'flex', flexDirection: 'column', gap: 'var(--spacing-m)' }}>
38
+ * <HotKey hotkey="mod+c" label="Copy" />
39
+ * <HotKey hotkey="mod+v" label="Paste" />
40
+ * <HotKey hotkey="mod+shift+z" label="Redo" />
41
+ * <HotKey hotkey="alt+enter" label="Submit" />
42
+ * </div>
43
+ * </Canvas>;
44
+ * ```
45
+ *
46
+ * @example Platform-specific rendering
47
+ *
48
+ * The component automatically adapts modifier keys based on the user's platform:
49
+ * - `mod` renders as `⌘` on Mac and `Ctrl` on Windows/Linux
50
+ * - `alt` renders as `⌥` on Mac and `Alt` on Windows/Linux
51
+ *
52
+ * This ensures the correct symbols are displayed for the user's operating system:
53
+ *
54
+ * ```js
55
+ * <Canvas ctx={ctx}>
56
+ * <div style={{ display: 'flex', flexDirection: 'column', gap: 'var(--spacing-m)' }}>
57
+ * <HotKey hotkey="mod+k" label="Open command palette" />
58
+ * <HotKey hotkey="alt+enter" label="Submit form" />
59
+ * <HotKey hotkey="mod+alt+f" label="Find and replace" />
60
+ * </div>
61
+ * </Canvas>;
62
+ * ```
63
+ */
64
+ export function HotKey(_a) {
65
+ var hotkey = _a.hotkey, label = _a.label;
66
+ var keys = hotkey
67
+ .replace('mod', modifierKey)
68
+ .replace('alt', isMac ? '⌥' : 'Alt')
69
+ .split(/\+/)
70
+ .map(function (e) { return e.charAt(0).toUpperCase() + e.slice(1); });
71
+ return (React.createElement("div", { className: styles.hotKey },
72
+ label && React.createElement("span", { className: styles.label }, label),
73
+ React.createElement("div", { className: styles.keys }, keys.map(function (key) { return (React.createElement("span", { key: key, className: styles.hotKeyKey }, key)); }))));
74
+ }
75
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/HotKey/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,MAAM,MAAM,0BAA0B,CAAC;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,MAAM,UAAU,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,MAAM,CAAC,MAAM;QAC1B,KAAK,IAAI,8BAAM,SAAS,EAAE,MAAM,CAAC,KAAK,IAAG,KAAK,CAAQ;QACvD,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,IACxB,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,CACjB,8BAAM,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IACxC,GAAG,CACC,CACR,EAJkB,CAIlB,CAAC,CACE,CACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ { "hotKey": "_hotKey_1eko8_1", "label": "_label_1eko8_7", "keys": "_keys_1eko8_12", "hotKeyKey": "_hotKeyKey_1eko8_18" }
@@ -0,0 +1,74 @@
1
+ import * as React from 'react';
2
+ import { TooltipOptions } from '../utils';
3
+ export declare type TooltipProps = {
4
+ children?: React.ReactNode;
5
+ } & TooltipOptions;
6
+ /**
7
+ * Tooltip wrapper component that provides context for TooltipTrigger and TooltipContent.
8
+ *
9
+ * This is a compound component pattern. The Tooltip component itself doesn't render anything,
10
+ * but provides the necessary context for its children (TooltipTrigger and TooltipContent).
11
+ *
12
+ * @example Basic tooltip
13
+ *
14
+ * Create a simple tooltip that appears when hovering over a button:
15
+ *
16
+ * ```js
17
+ * <Canvas ctx={ctx}>
18
+ * <Tooltip>
19
+ * <TooltipTrigger>
20
+ * <Button>Hover me</Button>
21
+ * </TooltipTrigger>
22
+ * <TooltipContent>
23
+ * This is helpful information!
24
+ * </TooltipContent>
25
+ * </Tooltip>
26
+ * </Canvas>;
27
+ * ```
28
+ *
29
+ * @example Tooltip with custom placement
30
+ *
31
+ * Control where the tooltip appears relative to its trigger using the `placement` prop:
32
+ *
33
+ * ```js
34
+ * <Canvas ctx={ctx}>
35
+ * <Tooltip placement="right">
36
+ * <TooltipTrigger>
37
+ * <Button>Right tooltip</Button>
38
+ * </TooltipTrigger>
39
+ * <TooltipContent>
40
+ * Appears on the right side
41
+ * </TooltipContent>
42
+ * </Tooltip>
43
+ * </Canvas>;
44
+ * ```
45
+ *
46
+ * @example Multiple tooltips
47
+ *
48
+ * Use multiple tooltips on the same page to provide contextual help for different actions:
49
+ *
50
+ * ```js
51
+ * <Canvas ctx={ctx}>
52
+ * <div style={{ display: 'flex', gap: 'var(--spacing-m)' }}>
53
+ * <Tooltip>
54
+ * <TooltipTrigger>
55
+ * <Button leftIcon={<SaveIcon />} />
56
+ * </TooltipTrigger>
57
+ * <TooltipContent>
58
+ * Save changes (⌘S)
59
+ * </TooltipContent>
60
+ * </Tooltip>
61
+ *
62
+ * <Tooltip>
63
+ * <TooltipTrigger>
64
+ * <Button leftIcon={<DeleteIcon />} />
65
+ * </TooltipTrigger>
66
+ * <TooltipContent>
67
+ * Delete item
68
+ * </TooltipContent>
69
+ * </Tooltip>
70
+ * </div>
71
+ * </Canvas>;
72
+ * ```
73
+ */
74
+ export declare function Tooltip({ children, ...options }: TooltipProps): JSX.Element;
@@ -0,0 +1,89 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import * as React from 'react';
13
+ import { TooltipContext, useTooltip } from '../utils';
14
+ /**
15
+ * Tooltip wrapper component that provides context for TooltipTrigger and TooltipContent.
16
+ *
17
+ * This is a compound component pattern. The Tooltip component itself doesn't render anything,
18
+ * but provides the necessary context for its children (TooltipTrigger and TooltipContent).
19
+ *
20
+ * @example Basic tooltip
21
+ *
22
+ * Create a simple tooltip that appears when hovering over a button:
23
+ *
24
+ * ```js
25
+ * <Canvas ctx={ctx}>
26
+ * <Tooltip>
27
+ * <TooltipTrigger>
28
+ * <Button>Hover me</Button>
29
+ * </TooltipTrigger>
30
+ * <TooltipContent>
31
+ * This is helpful information!
32
+ * </TooltipContent>
33
+ * </Tooltip>
34
+ * </Canvas>;
35
+ * ```
36
+ *
37
+ * @example Tooltip with custom placement
38
+ *
39
+ * Control where the tooltip appears relative to its trigger using the `placement` prop:
40
+ *
41
+ * ```js
42
+ * <Canvas ctx={ctx}>
43
+ * <Tooltip placement="right">
44
+ * <TooltipTrigger>
45
+ * <Button>Right tooltip</Button>
46
+ * </TooltipTrigger>
47
+ * <TooltipContent>
48
+ * Appears on the right side
49
+ * </TooltipContent>
50
+ * </Tooltip>
51
+ * </Canvas>;
52
+ * ```
53
+ *
54
+ * @example Multiple tooltips
55
+ *
56
+ * Use multiple tooltips on the same page to provide contextual help for different actions:
57
+ *
58
+ * ```js
59
+ * <Canvas ctx={ctx}>
60
+ * <div style={{ display: 'flex', gap: 'var(--spacing-m)' }}>
61
+ * <Tooltip>
62
+ * <TooltipTrigger>
63
+ * <Button leftIcon={<SaveIcon />} />
64
+ * </TooltipTrigger>
65
+ * <TooltipContent>
66
+ * Save changes (⌘S)
67
+ * </TooltipContent>
68
+ * </Tooltip>
69
+ *
70
+ * <Tooltip>
71
+ * <TooltipTrigger>
72
+ * <Button leftIcon={<DeleteIcon />} />
73
+ * </TooltipTrigger>
74
+ * <TooltipContent>
75
+ * Delete item
76
+ * </TooltipContent>
77
+ * </Tooltip>
78
+ * </div>
79
+ * </Canvas>;
80
+ * ```
81
+ */
82
+ export function Tooltip(_a) {
83
+ var children = _a.children, options = __rest(_a, ["children"]);
84
+ // This can accept any props as options, e.g. `placement`,
85
+ // or other positioning options.
86
+ var tooltip = useTooltip(options);
87
+ return (React.createElement(TooltipContext.Provider, { value: tooltip }, children));
88
+ }
89
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Tooltip/Tooltip/index.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAkB,MAAM,UAAU,CAAC;AAMtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,MAAM,UAAU,OAAO,CAAC,EAAsC;IAApC,IAAA,QAAQ,cAAA,EAAK,OAAO,cAAtB,YAAwB,CAAF;IAC5C,0DAA0D;IAC1D,gCAAgC;IAChC,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,CACL,oBAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,IACpC,QAAQ,CACe,CAC3B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,68 @@
1
+ import * as React from 'react';
2
+ export declare type TooltipContentProps = {
3
+ children?: React.ReactNode;
4
+ };
5
+ /**
6
+ * TooltipContent contains the content displayed in the floating tooltip.
7
+ *
8
+ * The content is automatically wrapped in a Canvas component to inherit the DatoCMS
9
+ * theme and styling. The tooltip uses a portal to render outside the normal DOM
10
+ * hierarchy, ensuring proper positioning and z-index stacking.
11
+ *
12
+ * @example Simple text tooltip
13
+ *
14
+ * Display plain text in a tooltip to provide helpful information:
15
+ *
16
+ * ```js
17
+ * <Canvas ctx={ctx}>
18
+ * <Tooltip>
19
+ * <TooltipTrigger>
20
+ * <Button>Delete</Button>
21
+ * </TooltipTrigger>
22
+ * <TooltipContent>
23
+ * This action cannot be undone
24
+ * </TooltipContent>
25
+ * </Tooltip>
26
+ * </Canvas>;
27
+ * ```
28
+ *
29
+ * @example Rich content tooltip
30
+ *
31
+ * Include formatted content with custom styles for more detailed information:
32
+ *
33
+ * ```js
34
+ * <Canvas ctx={ctx}>
35
+ * <Tooltip placement="right">
36
+ * <TooltipTrigger>
37
+ * <Button leftIcon={<HelpIcon />}>Help</Button>
38
+ * </TooltipTrigger>
39
+ * <TooltipContent>
40
+ * <div>
41
+ * <strong>Need assistance?</strong>
42
+ * <p style={{ margin: '5px 0 0 0', fontSize: 'var(--font-size-xs)' }}>
43
+ * Contact support@example.com
44
+ * </p>
45
+ * </div>
46
+ * </TooltipContent>
47
+ * </Tooltip>
48
+ * </Canvas>;
49
+ * ```
50
+ *
51
+ * @example Tooltip with keyboard shortcut
52
+ *
53
+ * Combine tooltips with the HotKey component to show keyboard shortcuts:
54
+ *
55
+ * ```js
56
+ * <Canvas ctx={ctx}>
57
+ * <Tooltip>
58
+ * <TooltipTrigger>
59
+ * <Button leftIcon={<SaveIcon />}>Save</Button>
60
+ * </TooltipTrigger>
61
+ * <TooltipContent>
62
+ * <HotKey hotkey="mod+s" label="Save changes" />
63
+ * </TooltipContent>
64
+ * </Tooltip>
65
+ * </Canvas>;
66
+ * ```
67
+ */
68
+ export declare const TooltipContent: React.ForwardRefExoticComponent<TooltipContentProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,118 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import * as React from 'react';
13
+ import { FloatingPortal, useMergeRefs, useDelayGroup, useDelayGroupContext, useTransitionStyles, } from '@floating-ui/react';
14
+ import { Canvas, useCtx } from '../../Canvas';
15
+ import { useTooltipState, getSharedPortalRoot, releaseSharedPortalRoot } from '../utils';
16
+ import s from './styles.module.css.json';
17
+ /**
18
+ * TooltipContent contains the content displayed in the floating tooltip.
19
+ *
20
+ * The content is automatically wrapped in a Canvas component to inherit the DatoCMS
21
+ * theme and styling. The tooltip uses a portal to render outside the normal DOM
22
+ * hierarchy, ensuring proper positioning and z-index stacking.
23
+ *
24
+ * @example Simple text tooltip
25
+ *
26
+ * Display plain text in a tooltip to provide helpful information:
27
+ *
28
+ * ```js
29
+ * <Canvas ctx={ctx}>
30
+ * <Tooltip>
31
+ * <TooltipTrigger>
32
+ * <Button>Delete</Button>
33
+ * </TooltipTrigger>
34
+ * <TooltipContent>
35
+ * This action cannot be undone
36
+ * </TooltipContent>
37
+ * </Tooltip>
38
+ * </Canvas>;
39
+ * ```
40
+ *
41
+ * @example Rich content tooltip
42
+ *
43
+ * Include formatted content with custom styles for more detailed information:
44
+ *
45
+ * ```js
46
+ * <Canvas ctx={ctx}>
47
+ * <Tooltip placement="right">
48
+ * <TooltipTrigger>
49
+ * <Button leftIcon={<HelpIcon />}>Help</Button>
50
+ * </TooltipTrigger>
51
+ * <TooltipContent>
52
+ * <div>
53
+ * <strong>Need assistance?</strong>
54
+ * <p style={{ margin: '5px 0 0 0', fontSize: 'var(--font-size-xs)' }}>
55
+ * Contact support@example.com
56
+ * </p>
57
+ * </div>
58
+ * </TooltipContent>
59
+ * </Tooltip>
60
+ * </Canvas>;
61
+ * ```
62
+ *
63
+ * @example Tooltip with keyboard shortcut
64
+ *
65
+ * Combine tooltips with the HotKey component to show keyboard shortcuts:
66
+ *
67
+ * ```js
68
+ * <Canvas ctx={ctx}>
69
+ * <Tooltip>
70
+ * <TooltipTrigger>
71
+ * <Button leftIcon={<SaveIcon />}>Save</Button>
72
+ * </TooltipTrigger>
73
+ * <TooltipContent>
74
+ * <HotKey hotkey="mod+s" label="Save changes" />
75
+ * </TooltipContent>
76
+ * </Tooltip>
77
+ * </Canvas>;
78
+ * ```
79
+ */
80
+ export var TooltipContent = React.forwardRef(function TooltipContent(_a, propRef) {
81
+ var children = _a.children;
82
+ var ctx = useCtx();
83
+ var state = useTooltipState();
84
+ var _b = useDelayGroupContext(), isInstantPhase = _b.isInstantPhase, currentId = _b.currentId;
85
+ var ref = useMergeRefs([state.refs.setFloating, propRef]);
86
+ // Use the shared portal root
87
+ var portalRootRef = React.useRef(null);
88
+ React.useEffect(function () {
89
+ // Get the shared portal root and increment ref count
90
+ portalRootRef.current = getSharedPortalRoot();
91
+ // Cleanup function to release the shared portal root
92
+ return function () {
93
+ releaseSharedPortalRoot();
94
+ };
95
+ }, []);
96
+ useDelayGroup(state.context, { id: state.context.floatingId });
97
+ var instantDuration = 0;
98
+ var duration = 250;
99
+ var _c = useTransitionStyles(state.context, {
100
+ duration: isInstantPhase
101
+ ? {
102
+ open: instantDuration,
103
+ // `id` is this component's `id`
104
+ // `currentId` is the current group's `id`
105
+ close: currentId === state.context.floatingId ? duration : instantDuration,
106
+ }
107
+ : duration,
108
+ initial: {
109
+ opacity: 0,
110
+ },
111
+ }), isMounted = _c.isMounted, styles = _c.styles;
112
+ if (!isMounted)
113
+ return null;
114
+ return (React.createElement(FloatingPortal, { root: portalRootRef },
115
+ React.createElement(Canvas, { ctx: ctx, noAutoResizer: true },
116
+ React.createElement("div", __assign({ ref: ref, style: __assign(__assign({}, state.floatingStyles), styles) }, state.getFloatingProps(), { className: s.tooltip }), children))));
117
+ });
118
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Tooltip/TooltipContent/index.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,CAAC,MAAM,0BAA0B,CAAC;AAMzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,MAAM,CAAC,IAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAC5C,SAAS,cAAc,CAAC,EAAY,EAAE,OAAO;QAAnB,QAAQ,cAAA;IAClC,IAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAC1B,IAAA,KAAgC,oBAAoB,EAAE,EAApD,cAAc,oBAAA,EAAE,SAAS,eAA2B,CAAC;IAC7D,IAAM,GAAG,GAAG,YAAY,CAAC,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,mBAAmB,EAAE,CAAC;QAE9C,qDAAqD;QACrD,OAAO;YACL,uBAAuB,EAAE,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,aAAa,CAAC,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,mBAAmB,CAAC,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,cAAc,IAAC,IAAI,EAAE,aAAa;QACjC,oBAAC,MAAM,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,CAAC,CAAC,OAAO,KAEnB,QAAQ,CACL,CACC,CACM,CAClB,CAAC;AACF,CAAC,CACF,CAAC"}
@@ -0,0 +1 @@
1
+ { "tooltip": "_tooltip_3z5rn_1" }
@@ -0,0 +1,43 @@
1
+ import * as React from 'react';
2
+ export declare type TooltipTriggerProps = React.HTMLProps<HTMLElement>;
3
+ /**
4
+ * TooltipTrigger wraps the element that triggers the tooltip on hover/focus.
5
+ *
6
+ * The child must be a single React element that accepts ref and event handler props.
7
+ * Common triggers include buttons, icons, or other interactive elements.
8
+ *
9
+ * @example With Button component
10
+ *
11
+ * Wrap a button to show a tooltip when the user hovers over it:
12
+ *
13
+ * ```js
14
+ * <Canvas ctx={ctx}>
15
+ * <Tooltip>
16
+ * <TooltipTrigger>
17
+ * <Button>Hover for info</Button>
18
+ * </TooltipTrigger>
19
+ * <TooltipContent>
20
+ * Additional information appears here
21
+ * </TooltipContent>
22
+ * </Tooltip>
23
+ * </Canvas>;
24
+ * ```
25
+ *
26
+ * @example With icon button
27
+ *
28
+ * Use tooltips with icon-only buttons to explain their purpose:
29
+ *
30
+ * ```js
31
+ * <Canvas ctx={ctx}>
32
+ * <Tooltip placement="bottom">
33
+ * <TooltipTrigger>
34
+ * <Button buttonSize="s" leftIcon={<InfoIcon />} />
35
+ * </TooltipTrigger>
36
+ * <TooltipContent>
37
+ * Click for more details
38
+ * </TooltipContent>
39
+ * </Tooltip>
40
+ * </Canvas>;
41
+ * ```
42
+ */
43
+ export declare const TooltipTrigger: React.ForwardRefExoticComponent<Pick<TooltipTriggerProps, "width" | "height" | "style" | "className" | "cite" | "data" | "form" | "label" | "slot" | "span" | "summary" | "title" | "pattern" | "type" | "muted" | "children" | "disabled" | "onClick" | "target" | "href" | "selected" | "value" | "open" | "name" | "rel" | "useMap" | "color" | "hidden" | "onChange" | "onKeyDown" | "placeholder" | "id" | "required" | "htmlFor" | "default" | "onSubmit" | "alt" | "aria-errormessage" | "aria-invalid" | "aria-label" | "aria-labelledby" | "aria-live" | "autoFocus" | "onBlur" | "onFocus" | "tabIndex" | "defaultValue" | "content" | "translate" | "start" | "size" | "wrap" | "multiple" | "onMouseDown" | "onMouseMove" | "onMouseUp" | "action" | "list" | "role" | "onTouchStart" | "sizes" | "onDragStart" | "onDragEnd" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "lang" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-keyshortcuts" | "aria-level" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "step" | "key" | "autoComplete" | "cols" | "maxLength" | "minLength" | "readOnly" | "rows" | "accept" | "capture" | "checked" | "crossOrigin" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "max" | "min" | "src" | "acceptCharset" | "allowFullScreen" | "allowTransparency" | "as" | "async" | "autoPlay" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "colSpan" | "controls" | "coords" | "dateTime" | "defer" | "download" | "encType" | "frameBorder" | "headers" | "high" | "hrefLang" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "media" | "mediaGroup" | "method" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "shape" | "srcDoc" | "srcLang" | "srcSet" | "wmode"> & React.RefAttributes<HTMLElement>>;