@veeqo/ui 15.7.1 → 15.9.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.
Files changed (58) hide show
  1. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs +2 -1
  2. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs.map +1 -1
  3. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js +2 -1
  4. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js.map +1 -1
  5. package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.cjs +2 -1
  6. package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.cjs.map +1 -1
  7. package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.js +2 -1
  8. package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.js.map +1 -1
  9. package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs +2 -1
  10. package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs.map +1 -1
  11. package/dist/components/DataGrid/components/GridContainer/GridContainer.js +2 -1
  12. package/dist/components/DataGrid/components/GridContainer/GridContainer.js.map +1 -1
  13. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs +2 -1
  14. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs.map +1 -1
  15. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js +2 -1
  16. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js.map +1 -1
  17. package/dist/components/Popover/Popover.cjs +1 -0
  18. package/dist/components/Popover/Popover.cjs.map +1 -1
  19. package/dist/components/Popover/Popover.js +1 -0
  20. package/dist/components/Popover/Popover.js.map +1 -1
  21. package/dist/components/Popup/Popup.cjs +1 -0
  22. package/dist/components/Popup/Popup.cjs.map +1 -1
  23. package/dist/components/Popup/Popup.js +1 -0
  24. package/dist/components/Popup/Popup.js.map +1 -1
  25. package/dist/components/Portal/Portal.cjs +31 -1
  26. package/dist/components/Portal/Portal.cjs.map +1 -1
  27. package/dist/components/Portal/Portal.d.ts +27 -6
  28. package/dist/components/Portal/Portal.js +31 -1
  29. package/dist/components/Portal/Portal.js.map +1 -1
  30. package/dist/components/Portal/PortalContext.cjs +27 -0
  31. package/dist/components/Portal/PortalContext.cjs.map +1 -0
  32. package/dist/components/Portal/PortalContext.d.ts +18 -0
  33. package/dist/components/Portal/PortalContext.js +20 -0
  34. package/dist/components/Portal/PortalContext.js.map +1 -0
  35. package/dist/components/Portal/index.d.ts +1 -0
  36. package/dist/components/Portal/types.d.ts +13 -0
  37. package/dist/components/Tooltip/Tooltip.cjs +14 -5
  38. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  39. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  40. package/dist/components/Tooltip/Tooltip.js +14 -5
  41. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  42. package/dist/components/Tooltip/Tooltip.module.scss.cjs +2 -2
  43. package/dist/components/Tooltip/Tooltip.module.scss.cjs.map +1 -1
  44. package/dist/components/Tooltip/Tooltip.module.scss.js +2 -2
  45. package/dist/components/Tooltip/Tooltip.module.scss.js.map +1 -1
  46. package/dist/components/Tooltip/components/TooltipPopover.cjs +5 -5
  47. package/dist/components/Tooltip/components/TooltipPopover.cjs.map +1 -1
  48. package/dist/components/Tooltip/components/TooltipPopover.js +5 -5
  49. package/dist/components/Tooltip/components/TooltipPopover.js.map +1 -1
  50. package/dist/components/Tooltip/types.cjs.map +1 -1
  51. package/dist/components/Tooltip/types.d.ts +1 -6
  52. package/dist/components/Tooltip/types.js.map +1 -1
  53. package/dist/components/index.d.ts +1 -1
  54. package/dist/index.cjs +2 -0
  55. package/dist/index.cjs.map +1 -1
  56. package/dist/index.js +1 -0
  57. package/dist/index.js.map +1 -1
  58. package/package.json +1 -1
@@ -1,10 +1,33 @@
1
1
  import { PureComponent } from 'react';
2
2
  import { createPortal } from 'react-dom';
3
3
  import { generateId } from '../../utils/generateId.js';
4
+ import { PortalContext } from './PortalContext.js';
4
5
  import { getLastOpenDialog } from './utils.js';
5
6
 
6
7
  /**
7
- * The portal component renders content on the document `body` unless `rootElementRef` is passed.
8
+ * Renders children into a node appended to `rootElementRef`, the last open dialog, or `document.body`
9
+ * — escaping the current CSS stacking context.
10
+ * Used internally by overlay components (Popover, Dropdown, ActionMenu).
11
+ *
12
+ * Respects `DisablePortals` context — when a `DisablePortals` ancestor is present, children are
13
+ * rendered inline instead, preventing stacking-context conflicts in already-portalled containers
14
+ * such as Toast.
15
+ *
16
+ * @example
17
+ * // Standard usage — renders into document.body
18
+ * <Portal>
19
+ * <div>Overlay content</div>
20
+ * </Portal>
21
+ *
22
+ * @example
23
+ * // Inside an already-portalled container — renders inline
24
+ * <DisablePortals>
25
+ * <SomeComponent>
26
+ * <Portal>
27
+ * <div>Inline content</div>
28
+ * </Portal>
29
+ * </SomeComponent>
30
+ * </DisablePortals>
8
31
  */
9
32
  class Portal extends PureComponent {
10
33
  constructor(props) {
@@ -17,6 +40,9 @@ class Portal extends PureComponent {
17
40
  };
18
41
  }
19
42
  componentDidMount() {
43
+ const { disablePortal } = this.context;
44
+ if (disablePortal)
45
+ return;
20
46
  const { rootElementRef } = this.props;
21
47
  this.portalNode = document.createElement('div');
22
48
  this.portalNode.id = `portal-${this.id}`;
@@ -33,11 +59,15 @@ class Portal extends PureComponent {
33
59
  }
34
60
  }
35
61
  render() {
62
+ const { disablePortal } = this.context;
36
63
  const { children } = this.props;
37
64
  const { isMounted } = this.state;
65
+ if (disablePortal)
66
+ return children;
38
67
  return this.portalNode && isMounted ? createPortal(children, this.portalNode) : null;
39
68
  }
40
69
  }
70
+ Portal.contextType = PortalContext;
41
71
 
42
72
  export { Portal };
43
73
  //# sourceMappingURL=Portal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Portal.js","sources":["../../../src/components/Portal/Portal.tsx"],"sourcesContent":["import { PureComponent, ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport { generateId } from '../../utils/generateId';\nimport { getLastOpenDialog } from './utils';\n\ntype PortalProps = {\n children: ReactNode;\n rootElementRef?: HTMLElement;\n};\n\ntype PortalState = {\n isMounted: boolean;\n};\n\n/**\n * The portal component renders content on the document `body` unless `rootElementRef` is passed.\n */\nexport class Portal extends PureComponent<PortalProps, PortalState> {\n id = generateId('portal');\n\n portalNode: HTMLElement | null = null;\n\n attachTo: HTMLElement | null = null;\n\n constructor(props: PortalProps) {\n super(props);\n this.state = {\n isMounted: false,\n };\n }\n\n componentDidMount() {\n const { rootElementRef } = this.props;\n\n this.portalNode = document.createElement('div');\n this.portalNode.id = `portal-${this.id}`;\n this.portalNode.style.cssText = 'position: absolute; top: 0; left: 0;';\n\n this.attachTo = rootElementRef || getLastOpenDialog() || document.body;\n this.attachTo.appendChild(this.portalNode);\n\n this.setState({ isMounted: true });\n }\n\n componentWillUnmount() {\n if (this.portalNode && this.attachTo) {\n if (document.contains(this.attachTo) && this.attachTo.contains(this.portalNode)) {\n this.attachTo.removeChild(this.portalNode);\n }\n }\n }\n\n render(): React.ReactPortal | null {\n const { children } = this.props;\n const { isMounted } = this.state;\n\n return this.portalNode && isMounted ? createPortal(children, this.portalNode) : null;\n }\n}\n"],"names":[],"mappings":";;;;;AAcA;;AAEG;AACG,MAAO,MAAO,SAAQ,aAAuC,CAAA;AAOjE,IAAA,WAAA,CAAY,KAAkB,EAAA;QAC5B,KAAK,CAAC,KAAK,CAAC;AAPd,QAAA,IAAA,CAAA,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;QAEzB,IAAA,CAAA,UAAU,GAAuB,IAAI;QAErC,IAAA,CAAA,QAAQ,GAAuB,IAAI;QAIjC,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,SAAS,EAAE,KAAK;SACjB;IACH;IAEA,iBAAiB,GAAA;AACf,QAAA,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK;QAErC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,UAAU,IAAI,CAAC,EAAE,CAAA,CAAE;QACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,sCAAsC;QAEtE,IAAI,CAAC,QAAQ,GAAG,cAAc,IAAI,iBAAiB,EAAE,IAAI,QAAQ,CAAC,IAAI;QACtE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;QAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACpC;IAEA,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAC/E,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C,YAAA;AACF,QAAA;IACH;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK;AAC/B,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK;QAEhC,OAAO,IAAI,CAAC,UAAU,IAAI,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI;IACtF;AACD;;;;"}
1
+ {"version":3,"file":"Portal.js","sources":["../../../src/components/Portal/Portal.tsx"],"sourcesContent":["import { PureComponent, ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport { generateId } from '../../utils/generateId';\nimport { PortalContext } from './PortalContext';\nimport type { PortalProps } from './types';\nimport { getLastOpenDialog } from './utils';\n\ntype PortalState = {\n isMounted: boolean;\n};\n\n/**\n * Renders children into a node appended to `rootElementRef`, the last open dialog, or `document.body`\n * — escaping the current CSS stacking context.\n * Used internally by overlay components (Popover, Dropdown, ActionMenu).\n *\n * Respects `DisablePortals` context — when a `DisablePortals` ancestor is present, children are\n * rendered inline instead, preventing stacking-context conflicts in already-portalled containers\n * such as Toast.\n *\n * @example\n * // Standard usage — renders into document.body\n * <Portal>\n * <div>Overlay content</div>\n * </Portal>\n *\n * @example\n * // Inside an already-portalled container — renders inline\n * <DisablePortals>\n * <SomeComponent>\n * <Portal>\n * <div>Inline content</div>\n * </Portal>\n * </SomeComponent>\n * </DisablePortals>\n */\nexport class Portal extends PureComponent<PortalProps, PortalState> {\n // eslint-disable-next-line react/static-property-placement\n declare context: React.ContextType<typeof PortalContext>;\n\n id = generateId('portal');\n\n portalNode: HTMLElement | null = null;\n\n attachTo: HTMLElement | null = null;\n\n constructor(props: PortalProps) {\n super(props);\n this.state = {\n isMounted: false,\n };\n }\n\n componentDidMount() {\n const { disablePortal } = this.context;\n if (disablePortal) return;\n\n const { rootElementRef } = this.props;\n\n this.portalNode = document.createElement('div');\n this.portalNode.id = `portal-${this.id}`;\n this.portalNode.style.cssText = 'position: absolute; top: 0; left: 0;';\n\n this.attachTo = rootElementRef || getLastOpenDialog() || document.body;\n this.attachTo.appendChild(this.portalNode);\n\n this.setState({ isMounted: true });\n }\n\n componentWillUnmount() {\n if (this.portalNode && this.attachTo) {\n if (document.contains(this.attachTo) && this.attachTo.contains(this.portalNode)) {\n this.attachTo.removeChild(this.portalNode);\n }\n }\n }\n\n render(): React.ReactPortal | ReactNode | null {\n const { disablePortal } = this.context;\n const { children } = this.props;\n const { isMounted } = this.state;\n\n if (disablePortal) return children;\n\n return this.portalNode && isMounted ? createPortal(children, this.portalNode) : null;\n }\n}\n\nPortal.contextType = PortalContext;\n"],"names":[],"mappings":";;;;;;AAWA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACG,MAAO,MAAO,SAAQ,aAAuC,CAAA;AAUjE,IAAA,WAAA,CAAY,KAAkB,EAAA;QAC5B,KAAK,CAAC,KAAK,CAAC;AAPd,QAAA,IAAA,CAAA,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;QAEzB,IAAA,CAAA,UAAU,GAAuB,IAAI;QAErC,IAAA,CAAA,QAAQ,GAAuB,IAAI;QAIjC,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,SAAS,EAAE,KAAK;SACjB;IACH;IAEA,iBAAiB,GAAA;AACf,QAAA,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,OAAO;AACtC,QAAA,IAAI,aAAa;YAAE;AAEnB,QAAA,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK;QAErC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,UAAU,IAAI,CAAC,EAAE,CAAA,CAAE;QACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,sCAAsC;QAEtE,IAAI,CAAC,QAAQ,GAAG,cAAc,IAAI,iBAAiB,EAAE,IAAI,QAAQ,CAAC,IAAI;QACtE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;QAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACpC;IAEA,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAC/E,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C,YAAA;AACF,QAAA;IACH;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,OAAO;AACtC,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK;AAC/B,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK;AAEhC,QAAA,IAAI,aAAa;AAAE,YAAA,OAAO,QAAQ;QAElC,OAAO,IAAI,CAAC,UAAU,IAAI,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI;IACtF;AACD;AAED,MAAM,CAAC,WAAW,GAAG,aAAa;;;;"}
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
6
+
7
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
8
+
9
+ const PortalContext = React.createContext({ disablePortal: false });
10
+ const DISABLE_PORTAL_VALUE = { disablePortal: true };
11
+ /**
12
+ * Instructs all descendant `Portal` instances to render inline instead of into a portal node.
13
+ *
14
+ * Use this when rendering portal-using components (e.g. `ActionMenu`) inside an already-portalled
15
+ * container (e.g. `ToastsLayout`) to prevent z-index and stacking-context conflicts. No prop drilling
16
+ * required — any `Portal` anywhere in the subtree will automatically opt out of portalling.
17
+ *
18
+ * @example
19
+ * <DisablePortals>
20
+ * <ActionMenu /> {/* ActionMenu's internal Portal renders inline *\/}
21
+ * </DisablePortals>
22
+ */
23
+ const DisablePortals = ({ children }) => (React__default.default.createElement(PortalContext.Provider, { value: DISABLE_PORTAL_VALUE }, children));
24
+
25
+ exports.DisablePortals = DisablePortals;
26
+ exports.PortalContext = PortalContext;
27
+ //# sourceMappingURL=PortalContext.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PortalContext.cjs","sources":["../../../src/components/Portal/PortalContext.tsx"],"sourcesContent":["import React, { createContext, ReactNode } from 'react';\nimport type { PortalContextValue } from './types';\n\nexport const PortalContext = createContext<PortalContextValue>({ disablePortal: false });\n\nconst DISABLE_PORTAL_VALUE = { disablePortal: true };\n\n/**\n * Instructs all descendant `Portal` instances to render inline instead of into a portal node.\n *\n * Use this when rendering portal-using components (e.g. `ActionMenu`) inside an already-portalled\n * container (e.g. `ToastsLayout`) to prevent z-index and stacking-context conflicts. No prop drilling\n * required — any `Portal` anywhere in the subtree will automatically opt out of portalling.\n *\n * @example\n * <DisablePortals>\n * <ActionMenu /> {/* ActionMenu's internal Portal renders inline *\\/}\n * </DisablePortals>\n */\nexport const DisablePortals = ({ children }: { children: ReactNode }) => (\n <PortalContext.Provider value={DISABLE_PORTAL_VALUE}>{children}</PortalContext.Provider>\n);\n"],"names":["createContext","React"],"mappings":";;;;;;;;AAGO,MAAM,aAAa,GAAGA,mBAAa,CAAqB,EAAE,aAAa,EAAE,KAAK,EAAE;AAEvF,MAAM,oBAAoB,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE;AAEpD;;;;;;;;;;;AAWG;AACI,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAA2B,MAClEC,qCAAC,aAAa,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,oBAAoB,EAAA,EAAG,QAAQ,CAA0B;;;;;"}
@@ -0,0 +1,18 @@
1
+ import React, { ReactNode } from 'react';
2
+ import type { PortalContextValue } from './types';
3
+ export declare const PortalContext: React.Context<PortalContextValue>;
4
+ /**
5
+ * Instructs all descendant `Portal` instances to render inline instead of into a portal node.
6
+ *
7
+ * Use this when rendering portal-using components (e.g. `ActionMenu`) inside an already-portalled
8
+ * container (e.g. `ToastsLayout`) to prevent z-index and stacking-context conflicts. No prop drilling
9
+ * required — any `Portal` anywhere in the subtree will automatically opt out of portalling.
10
+ *
11
+ * @example
12
+ * <DisablePortals>
13
+ * <ActionMenu /> {/* ActionMenu's internal Portal renders inline *\/}
14
+ * </DisablePortals>
15
+ */
16
+ export declare const DisablePortals: ({ children }: {
17
+ children: ReactNode;
18
+ }) => React.JSX.Element;
@@ -0,0 +1,20 @@
1
+ import React__default, { createContext } from 'react';
2
+
3
+ const PortalContext = createContext({ disablePortal: false });
4
+ const DISABLE_PORTAL_VALUE = { disablePortal: true };
5
+ /**
6
+ * Instructs all descendant `Portal` instances to render inline instead of into a portal node.
7
+ *
8
+ * Use this when rendering portal-using components (e.g. `ActionMenu`) inside an already-portalled
9
+ * container (e.g. `ToastsLayout`) to prevent z-index and stacking-context conflicts. No prop drilling
10
+ * required — any `Portal` anywhere in the subtree will automatically opt out of portalling.
11
+ *
12
+ * @example
13
+ * <DisablePortals>
14
+ * <ActionMenu /> {/* ActionMenu's internal Portal renders inline *\/}
15
+ * </DisablePortals>
16
+ */
17
+ const DisablePortals = ({ children }) => (React__default.createElement(PortalContext.Provider, { value: DISABLE_PORTAL_VALUE }, children));
18
+
19
+ export { DisablePortals, PortalContext };
20
+ //# sourceMappingURL=PortalContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PortalContext.js","sources":["../../../src/components/Portal/PortalContext.tsx"],"sourcesContent":["import React, { createContext, ReactNode } from 'react';\nimport type { PortalContextValue } from './types';\n\nexport const PortalContext = createContext<PortalContextValue>({ disablePortal: false });\n\nconst DISABLE_PORTAL_VALUE = { disablePortal: true };\n\n/**\n * Instructs all descendant `Portal` instances to render inline instead of into a portal node.\n *\n * Use this when rendering portal-using components (e.g. `ActionMenu`) inside an already-portalled\n * container (e.g. `ToastsLayout`) to prevent z-index and stacking-context conflicts. No prop drilling\n * required — any `Portal` anywhere in the subtree will automatically opt out of portalling.\n *\n * @example\n * <DisablePortals>\n * <ActionMenu /> {/* ActionMenu's internal Portal renders inline *\\/}\n * </DisablePortals>\n */\nexport const DisablePortals = ({ children }: { children: ReactNode }) => (\n <PortalContext.Provider value={DISABLE_PORTAL_VALUE}>{children}</PortalContext.Provider>\n);\n"],"names":["React"],"mappings":";;AAGO,MAAM,aAAa,GAAG,aAAa,CAAqB,EAAE,aAAa,EAAE,KAAK,EAAE;AAEvF,MAAM,oBAAoB,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE;AAEpD;;;;;;;;;;;AAWG;AACI,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAA2B,MAClEA,6BAAC,aAAa,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,oBAAoB,EAAA,EAAG,QAAQ,CAA0B;;;;"}
@@ -1 +1,2 @@
1
1
  export { Portal } from './Portal';
2
+ export { DisablePortals } from './PortalContext';
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from 'react';
2
+ /** Props for the Portal component */
3
+ export type PortalProps = {
4
+ /** Content to render inside the portal */
5
+ children: ReactNode;
6
+ /** Optional element to attach the portal node to. Defaults to `document.body` or the last open dialog. */
7
+ rootElementRef?: HTMLElement;
8
+ };
9
+ /** Internal context value consumed by Portal to determine whether to skip portalling */
10
+ export type PortalContextValue = {
11
+ /** When `true`, Portal renders children inline instead of into a portal */
12
+ disablePortal: boolean;
13
+ };
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var React = require('react');
4
3
  var framerMotion = require('framer-motion');
5
- var TooltipPopover = require('./components/TooltipPopover.cjs');
6
- var Portal = require('../Portal/Portal.cjs');
4
+ var React = require('react');
7
5
  var buildClassnames = require('../../utils/buildClassnames.cjs');
8
6
  require('uid/secure');
7
+ var Portal = require('../Portal/Portal.cjs');
8
+ require('../Portal/PortalContext.cjs');
9
+ var TooltipPopover = require('./components/TooltipPopover.cjs');
9
10
  var Tooltip_module = require('./Tooltip.module.scss.cjs');
10
11
 
11
12
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -33,10 +34,18 @@ const Tooltip = ({ children, text, content, config, reversed = false, className,
33
34
  return children;
34
35
  const show = () => setShouldShow(true);
35
36
  const hide = () => setShouldShow(false);
36
- return (React__default.default.createElement("div", { className: buildClassnames.buildClassnames([Tooltip_module.container, className, className && `${className}-container`]) },
37
+ return (React__default.default.createElement("div", { className: buildClassnames.buildClassnames([
38
+ Tooltip_module.container,
39
+ className,
40
+ className && `${className}-container`,
41
+ ]) },
37
42
  React__default.default.createElement(framerMotion.AnimatePresence, null, shouldShow && (React__default.default.createElement(WithOptionalPortal, { usePortal: useReactPortal },
38
43
  React__default.default.createElement(TooltipPopover.TooltipPopover, { key: "tooltip-popover", hoverableElement: hoverableElement, config: config, reversed: reversed, withTriangle: withTriangle, text: text, content: content, legacyClassNames: legacyClassNames })))),
39
- React__default.default.createElement("div", { ref: setHoverableElement, className: buildClassnames.buildClassnames([Tooltip_module.hoverable, hoverableClassName, className && `${className}-hoverable`]), onMouseEnter: show, onMouseLeave: hide }, children)));
44
+ React__default.default.createElement("div", { ref: setHoverableElement, className: buildClassnames.buildClassnames([
45
+ Tooltip_module.hoverable,
46
+ hoverableClassName,
47
+ className && `${className}-hoverable`,
48
+ ]), onMouseEnter: show, onMouseLeave: hide, onFocus: show, onBlur: hide }, children)));
40
49
  };
41
50
 
42
51
  exports.Tooltip = Tooltip;
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.cjs","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useState } from 'react';\nimport { AnimatePresence } from 'framer-motion';\nimport { TooltipProps } from './types';\nimport { TooltipPopover } from './components/TooltipPopover';\nimport { LegacyClassNames } from './components/types';\nimport { Portal } from '../Portal';\nimport { buildClassnames } from '../../utils';\nimport tooltipStyles from './Tooltip.module.scss';\n\nconst WithOptionalPortal: React.FC<{ usePortal: boolean; children: ReactNode }> = ({\n usePortal = false,\n children,\n // eslint-disable-next-line react/jsx-no-useless-fragment\n}) => (usePortal ? <Portal>{children}</Portal> : <>{children}</>);\n\nexport const Tooltip = ({\n children,\n text,\n content,\n config,\n reversed = false,\n className,\n hoverableClassName,\n withTriangle,\n initialShouldShow = false,\n useReactPortal = true,\n}: TooltipProps): ReactElement | null => {\n const [shouldShow, setShouldShow] = useState(initialShouldShow);\n const [hoverableElement, setHoverableElement] = useState<HTMLDivElement | null>(null);\n\n const hasText = text ? text.trim().length > 0 : false;\n const hasContent = !!(content || hasText);\n\n // Backward-compatible suffix classes for monolith consumers that\n // target sub-elements via the className prefix convention.\n const legacyClassNames: LegacyClassNames | undefined = className\n ? {\n tip: `${className}-tip`,\n wrap: `${className}-wrap`,\n triangle: `${className}-triangle`,\n }\n : undefined;\n\n if (!hasContent) return children;\n\n const show = () => setShouldShow(true);\n const hide = () => setShouldShow(false);\n\n return (\n <div className={buildClassnames([tooltipStyles.container, className, className && `${className}-container`])}>\n <AnimatePresence>\n {shouldShow && (\n <WithOptionalPortal usePortal={useReactPortal}>\n <TooltipPopover\n key=\"tooltip-popover\"\n hoverableElement={hoverableElement}\n config={config}\n reversed={reversed}\n withTriangle={withTriangle}\n text={text}\n content={content}\n legacyClassNames={legacyClassNames}\n />\n </WithOptionalPortal>\n )}\n </AnimatePresence>\n\n <div\n ref={setHoverableElement}\n className={buildClassnames([tooltipStyles.hoverable, hoverableClassName, className && `${className}-hoverable`])}\n onMouseEnter={show}\n onMouseLeave={hide}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["React","Portal","useState","buildClassnames","tooltipStyles","AnimatePresence","TooltipPopover"],"mappings":";;;;;;;;;;;;;;AASA,MAAM,kBAAkB,GAA0D,CAAC,EACjF,SAAS,GAAG,KAAK,EACjB,QAAQ;AACR;AACD,EAAA,MAAM,SAAS,GAAGA,sBAAA,CAAA,aAAA,CAACC,aAAM,QAAE,QAAQ,CAAU,GAAGD,4EAAG,QAAQ,CAAI,CAAC;AAE1D,MAAM,OAAO,GAAG,CAAC,EACtB,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAAG,KAAK,EACzB,cAAc,GAAG,IAAI,GACR,KAAyB;IACtC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGE,cAAQ,CAAC,iBAAiB,CAAC;IAC/D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAGA,cAAQ,CAAwB,IAAI,CAAC;AAErF,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK;IACrD,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC;;;IAIzC,MAAM,gBAAgB,GAAiC;AACrD,UAAE;YACE,GAAG,EAAE,CAAA,EAAG,SAAS,CAAA,IAAA,CAAM;YACvB,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,KAAA,CAAO;YACzB,QAAQ,EAAE,CAAA,EAAG,SAAS,CAAA,SAAA,CAAW;AAClC;UACD,SAAS;AAEb,IAAA,IAAI,CAAC,UAAU;AAAE,QAAA,OAAO,QAAQ;IAEhC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC;AAEvC,IAAA,QACEF,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEG,+BAAe,CAAC,CAACC,cAAa,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,GAAG,SAAS,CAAA,UAAA,CAAY,CAAC,CAAC,EAAA;QAC1GJ,sBAAA,CAAA,aAAA,CAACK,4BAAe,EAAA,IAAA,EACb,UAAU,KACTL,qCAAC,kBAAkB,EAAA,EAAC,SAAS,EAAE,cAAc,EAAA;AAC3C,YAAAA,sBAAA,CAAA,aAAA,CAACM,6BAAc,EAAA,EACb,GAAG,EAAC,iBAAiB,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,gBAAgB,EAAA,CAClC,CACiB,CACtB,CACe;AAElB,QAAAN,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAEG,+BAAe,CAAC,CAACC,cAAa,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,IAAI,CAAA,EAAG,SAAS,YAAY,CAAC,CAAC,EAChH,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,EAAA,EAEjB,QAAQ,CACL,CACF;AAEV;;;;"}
1
+ {"version":3,"file":"Tooltip.cjs","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import { AnimatePresence } from 'framer-motion';\nimport React, { ReactNode, useState } from 'react';\nimport { buildClassnames } from '../../utils';\nimport { Portal } from '../Portal';\nimport { TooltipPopover } from './components/TooltipPopover';\nimport { LegacyClassNames } from './components/types';\nimport tooltipStyles from './Tooltip.module.scss';\nimport { TooltipProps } from './types';\n\nconst WithOptionalPortal: React.FC<{ usePortal: boolean; children: ReactNode }> = ({\n usePortal = false,\n children,\n // eslint-disable-next-line react/jsx-no-useless-fragment\n}) => (usePortal ? <Portal>{children}</Portal> : <>{children}</>);\n\nexport const Tooltip = ({\n children,\n text,\n content,\n config,\n reversed = false,\n className,\n hoverableClassName,\n withTriangle,\n initialShouldShow = false,\n useReactPortal = true,\n}: TooltipProps): ReactNode => {\n const [shouldShow, setShouldShow] = useState(initialShouldShow);\n const [hoverableElement, setHoverableElement] = useState<HTMLDivElement | null>(null);\n\n const hasText = text ? text.trim().length > 0 : false;\n const hasContent = !!(content || hasText);\n\n // Backward-compatible suffix classes for monolith consumers that\n // target sub-elements via the className prefix convention.\n const legacyClassNames: LegacyClassNames | undefined = className\n ? {\n tip: `${className}-tip`,\n wrap: `${className}-wrap`,\n triangle: `${className}-triangle`,\n }\n : undefined;\n\n if (!hasContent) return children;\n\n const show = () => setShouldShow(true);\n const hide = () => setShouldShow(false);\n\n return (\n <div\n className={buildClassnames([\n tooltipStyles.container,\n className,\n className && `${className}-container`,\n ])}\n >\n <AnimatePresence>\n {shouldShow && (\n <WithOptionalPortal usePortal={useReactPortal}>\n <TooltipPopover\n key=\"tooltip-popover\"\n hoverableElement={hoverableElement}\n config={config}\n reversed={reversed}\n withTriangle={withTriangle}\n text={text}\n content={content}\n legacyClassNames={legacyClassNames}\n />\n </WithOptionalPortal>\n )}\n </AnimatePresence>\n\n <div\n ref={setHoverableElement}\n className={buildClassnames([\n tooltipStyles.hoverable,\n hoverableClassName,\n className && `${className}-hoverable`,\n ])}\n onMouseEnter={show}\n onMouseLeave={hide}\n onFocus={show}\n onBlur={hide}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["React","Portal","useState","buildClassnames","tooltipStyles","AnimatePresence","TooltipPopover"],"mappings":";;;;;;;;;;;;;;;AASA,MAAM,kBAAkB,GAA0D,CAAC,EACjF,SAAS,GAAG,KAAK,EACjB,QAAQ;AACR;AACD,EAAA,MAAM,SAAS,GAAGA,sBAAA,CAAA,aAAA,CAACC,aAAM,QAAE,QAAQ,CAAU,GAAGD,4EAAG,QAAQ,CAAI,CAAC;AAE1D,MAAM,OAAO,GAAG,CAAC,EACtB,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAAG,KAAK,EACzB,cAAc,GAAG,IAAI,GACR,KAAe;IAC5B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGE,cAAQ,CAAC,iBAAiB,CAAC;IAC/D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAGA,cAAQ,CAAwB,IAAI,CAAC;AAErF,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK;IACrD,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC;;;IAIzC,MAAM,gBAAgB,GAAiC;AACrD,UAAE;YACE,GAAG,EAAE,CAAA,EAAG,SAAS,CAAA,IAAA,CAAM;YACvB,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,KAAA,CAAO;YACzB,QAAQ,EAAE,CAAA,EAAG,SAAS,CAAA,SAAA,CAAW;AAClC;UACD,SAAS;AAEb,IAAA,IAAI,CAAC,UAAU;AAAE,QAAA,OAAO,QAAQ;IAEhC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC;AAEvC,IAAA,QACEF,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEG,+BAAe,CAAC;AACzB,YAAAC,cAAa,CAAC,SAAS;YACvB,SAAS;YACT,SAAS,IAAI,CAAA,EAAG,SAAS,CAAA,UAAA,CAAY;SACtC,CAAC,EAAA;QAEFJ,sBAAA,CAAA,aAAA,CAACK,4BAAe,EAAA,IAAA,EACb,UAAU,KACTL,qCAAC,kBAAkB,EAAA,EAAC,SAAS,EAAE,cAAc,EAAA;AAC3C,YAAAA,sBAAA,CAAA,aAAA,CAACM,6BAAc,EAAA,EACb,GAAG,EAAC,iBAAiB,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,gBAAgB,EAAA,CAClC,CACiB,CACtB,CACe;AAElB,QAAAN,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAEG,+BAAe,CAAC;AACzB,gBAAAC,cAAa,CAAC,SAAS;gBACvB,kBAAkB;gBAClB,SAAS,IAAI,CAAA,EAAG,SAAS,CAAA,UAAA,CAAY;aACtC,CAAC,EACF,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,IAAI,EACb,MAAM,EAAE,IAAI,IAEX,QAAQ,CACL,CACF;AAEV;;;;"}
@@ -1,3 +1,3 @@
1
- import { ReactElement } from 'react';
1
+ import { ReactNode } from 'react';
2
2
  import { TooltipProps } from './types';
3
- export declare const Tooltip: ({ children, text, content, config, reversed, className, hoverableClassName, withTriangle, initialShouldShow, useReactPortal, }: TooltipProps) => ReactElement | null;
3
+ export declare const Tooltip: ({ children, text, content, config, reversed, className, hoverableClassName, withTriangle, initialShouldShow, useReactPortal, }: TooltipProps) => ReactNode;
@@ -1,9 +1,10 @@
1
- import React__default, { useState } from 'react';
2
1
  import { AnimatePresence } from 'framer-motion';
3
- import { TooltipPopover } from './components/TooltipPopover.js';
4
- import { Portal } from '../Portal/Portal.js';
2
+ import React__default, { useState } from 'react';
5
3
  import { buildClassnames } from '../../utils/buildClassnames.js';
6
4
  import 'uid/secure';
5
+ import { Portal } from '../Portal/Portal.js';
6
+ import '../Portal/PortalContext.js';
7
+ import { TooltipPopover } from './components/TooltipPopover.js';
7
8
  import tooltipStyles from './Tooltip.module.scss.js';
8
9
 
9
10
  const WithOptionalPortal = ({ usePortal = false, children,
@@ -27,10 +28,18 @@ const Tooltip = ({ children, text, content, config, reversed = false, className,
27
28
  return children;
28
29
  const show = () => setShouldShow(true);
29
30
  const hide = () => setShouldShow(false);
30
- return (React__default.createElement("div", { className: buildClassnames([tooltipStyles.container, className, className && `${className}-container`]) },
31
+ return (React__default.createElement("div", { className: buildClassnames([
32
+ tooltipStyles.container,
33
+ className,
34
+ className && `${className}-container`,
35
+ ]) },
31
36
  React__default.createElement(AnimatePresence, null, shouldShow && (React__default.createElement(WithOptionalPortal, { usePortal: useReactPortal },
32
37
  React__default.createElement(TooltipPopover, { key: "tooltip-popover", hoverableElement: hoverableElement, config: config, reversed: reversed, withTriangle: withTriangle, text: text, content: content, legacyClassNames: legacyClassNames })))),
33
- React__default.createElement("div", { ref: setHoverableElement, className: buildClassnames([tooltipStyles.hoverable, hoverableClassName, className && `${className}-hoverable`]), onMouseEnter: show, onMouseLeave: hide }, children)));
38
+ React__default.createElement("div", { ref: setHoverableElement, className: buildClassnames([
39
+ tooltipStyles.hoverable,
40
+ hoverableClassName,
41
+ className && `${className}-hoverable`,
42
+ ]), onMouseEnter: show, onMouseLeave: hide, onFocus: show, onBlur: hide }, children)));
34
43
  };
35
44
 
36
45
  export { Tooltip };
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useState } from 'react';\nimport { AnimatePresence } from 'framer-motion';\nimport { TooltipProps } from './types';\nimport { TooltipPopover } from './components/TooltipPopover';\nimport { LegacyClassNames } from './components/types';\nimport { Portal } from '../Portal';\nimport { buildClassnames } from '../../utils';\nimport tooltipStyles from './Tooltip.module.scss';\n\nconst WithOptionalPortal: React.FC<{ usePortal: boolean; children: ReactNode }> = ({\n usePortal = false,\n children,\n // eslint-disable-next-line react/jsx-no-useless-fragment\n}) => (usePortal ? <Portal>{children}</Portal> : <>{children}</>);\n\nexport const Tooltip = ({\n children,\n text,\n content,\n config,\n reversed = false,\n className,\n hoverableClassName,\n withTriangle,\n initialShouldShow = false,\n useReactPortal = true,\n}: TooltipProps): ReactElement | null => {\n const [shouldShow, setShouldShow] = useState(initialShouldShow);\n const [hoverableElement, setHoverableElement] = useState<HTMLDivElement | null>(null);\n\n const hasText = text ? text.trim().length > 0 : false;\n const hasContent = !!(content || hasText);\n\n // Backward-compatible suffix classes for monolith consumers that\n // target sub-elements via the className prefix convention.\n const legacyClassNames: LegacyClassNames | undefined = className\n ? {\n tip: `${className}-tip`,\n wrap: `${className}-wrap`,\n triangle: `${className}-triangle`,\n }\n : undefined;\n\n if (!hasContent) return children;\n\n const show = () => setShouldShow(true);\n const hide = () => setShouldShow(false);\n\n return (\n <div className={buildClassnames([tooltipStyles.container, className, className && `${className}-container`])}>\n <AnimatePresence>\n {shouldShow && (\n <WithOptionalPortal usePortal={useReactPortal}>\n <TooltipPopover\n key=\"tooltip-popover\"\n hoverableElement={hoverableElement}\n config={config}\n reversed={reversed}\n withTriangle={withTriangle}\n text={text}\n content={content}\n legacyClassNames={legacyClassNames}\n />\n </WithOptionalPortal>\n )}\n </AnimatePresence>\n\n <div\n ref={setHoverableElement}\n className={buildClassnames([tooltipStyles.hoverable, hoverableClassName, className && `${className}-hoverable`])}\n onMouseEnter={show}\n onMouseLeave={hide}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;AASA,MAAM,kBAAkB,GAA0D,CAAC,EACjF,SAAS,GAAG,KAAK,EACjB,QAAQ;AACR;AACD,EAAA,MAAM,SAAS,GAAGA,cAAA,CAAA,aAAA,CAAC,MAAM,QAAE,QAAQ,CAAU,GAAGA,4DAAG,QAAQ,CAAI,CAAC;AAE1D,MAAM,OAAO,GAAG,CAAC,EACtB,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAAG,KAAK,EACzB,cAAc,GAAG,IAAI,GACR,KAAyB;IACtC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAC/D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC;AAErF,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK;IACrD,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC;;;IAIzC,MAAM,gBAAgB,GAAiC;AACrD,UAAE;YACE,GAAG,EAAE,CAAA,EAAG,SAAS,CAAA,IAAA,CAAM;YACvB,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,KAAA,CAAO;YACzB,QAAQ,EAAE,CAAA,EAAG,SAAS,CAAA,SAAA,CAAW;AAClC;UACD,SAAS;AAEb,IAAA,IAAI,CAAC,UAAU;AAAE,QAAA,OAAO,QAAQ;IAEhC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC;AAEvC,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,GAAG,SAAS,CAAA,UAAA,CAAY,CAAC,CAAC,EAAA;QAC1GA,cAAA,CAAA,aAAA,CAAC,eAAe,EAAA,IAAA,EACb,UAAU,KACTA,6BAAC,kBAAkB,EAAA,EAAC,SAAS,EAAE,cAAc,EAAA;AAC3C,YAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,EACb,GAAG,EAAC,iBAAiB,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,gBAAgB,EAAA,CAClC,CACiB,CACtB,CACe;AAElB,QAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,IAAI,CAAA,EAAG,SAAS,YAAY,CAAC,CAAC,EAChH,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,EAAA,EAEjB,QAAQ,CACL,CACF;AAEV;;;;"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import { AnimatePresence } from 'framer-motion';\nimport React, { ReactNode, useState } from 'react';\nimport { buildClassnames } from '../../utils';\nimport { Portal } from '../Portal';\nimport { TooltipPopover } from './components/TooltipPopover';\nimport { LegacyClassNames } from './components/types';\nimport tooltipStyles from './Tooltip.module.scss';\nimport { TooltipProps } from './types';\n\nconst WithOptionalPortal: React.FC<{ usePortal: boolean; children: ReactNode }> = ({\n usePortal = false,\n children,\n // eslint-disable-next-line react/jsx-no-useless-fragment\n}) => (usePortal ? <Portal>{children}</Portal> : <>{children}</>);\n\nexport const Tooltip = ({\n children,\n text,\n content,\n config,\n reversed = false,\n className,\n hoverableClassName,\n withTriangle,\n initialShouldShow = false,\n useReactPortal = true,\n}: TooltipProps): ReactNode => {\n const [shouldShow, setShouldShow] = useState(initialShouldShow);\n const [hoverableElement, setHoverableElement] = useState<HTMLDivElement | null>(null);\n\n const hasText = text ? text.trim().length > 0 : false;\n const hasContent = !!(content || hasText);\n\n // Backward-compatible suffix classes for monolith consumers that\n // target sub-elements via the className prefix convention.\n const legacyClassNames: LegacyClassNames | undefined = className\n ? {\n tip: `${className}-tip`,\n wrap: `${className}-wrap`,\n triangle: `${className}-triangle`,\n }\n : undefined;\n\n if (!hasContent) return children;\n\n const show = () => setShouldShow(true);\n const hide = () => setShouldShow(false);\n\n return (\n <div\n className={buildClassnames([\n tooltipStyles.container,\n className,\n className && `${className}-container`,\n ])}\n >\n <AnimatePresence>\n {shouldShow && (\n <WithOptionalPortal usePortal={useReactPortal}>\n <TooltipPopover\n key=\"tooltip-popover\"\n hoverableElement={hoverableElement}\n config={config}\n reversed={reversed}\n withTriangle={withTriangle}\n text={text}\n content={content}\n legacyClassNames={legacyClassNames}\n />\n </WithOptionalPortal>\n )}\n </AnimatePresence>\n\n <div\n ref={setHoverableElement}\n className={buildClassnames([\n tooltipStyles.hoverable,\n hoverableClassName,\n className && `${className}-hoverable`,\n ])}\n onMouseEnter={show}\n onMouseLeave={hide}\n onFocus={show}\n onBlur={hide}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;;AASA,MAAM,kBAAkB,GAA0D,CAAC,EACjF,SAAS,GAAG,KAAK,EACjB,QAAQ;AACR;AACD,EAAA,MAAM,SAAS,GAAGA,cAAA,CAAA,aAAA,CAAC,MAAM,QAAE,QAAQ,CAAU,GAAGA,4DAAG,QAAQ,CAAI,CAAC;AAE1D,MAAM,OAAO,GAAG,CAAC,EACtB,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAAG,KAAK,EACzB,cAAc,GAAG,IAAI,GACR,KAAe;IAC5B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAC/D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC;AAErF,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK;IACrD,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC;;;IAIzC,MAAM,gBAAgB,GAAiC;AACrD,UAAE;YACE,GAAG,EAAE,CAAA,EAAG,SAAS,CAAA,IAAA,CAAM;YACvB,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,KAAA,CAAO;YACzB,QAAQ,EAAE,CAAA,EAAG,SAAS,CAAA,SAAA,CAAW;AAClC;UACD,SAAS;AAEb,IAAA,IAAI,CAAC,UAAU;AAAE,QAAA,OAAO,QAAQ;IAEhC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC;AAEvC,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,eAAe,CAAC;AACzB,YAAA,aAAa,CAAC,SAAS;YACvB,SAAS;YACT,SAAS,IAAI,CAAA,EAAG,SAAS,CAAA,UAAA,CAAY;SACtC,CAAC,EAAA;QAEFA,cAAA,CAAA,aAAA,CAAC,eAAe,EAAA,IAAA,EACb,UAAU,KACTA,6BAAC,kBAAkB,EAAA,EAAC,SAAS,EAAE,cAAc,EAAA;AAC3C,YAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,EACb,GAAG,EAAC,iBAAiB,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,gBAAgB,EAAA,CAClC,CACiB,CACtB,CACe;AAElB,QAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,eAAe,CAAC;AACzB,gBAAA,aAAa,CAAC,SAAS;gBACvB,kBAAkB;gBAClB,SAAS,IAAI,CAAA,EAAG,SAAS,CAAA,UAAA,CAAY;aACtC,CAAC,EACF,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,IAAI,EACb,MAAM,EAAE,IAAI,IAEX,QAAQ,CACL,CACF;AAEV;;;;"}
@@ -2,8 +2,8 @@
2
2
 
3
3
  var ___$insertStyle = require('../../_virtual/____insertStyle.cjs');
4
4
 
5
- ___$insertStyle("._container_1jkfb_1 {\n display: inline-block;\n}\n\n._hoverable_1jkfb_5 {\n display: inline-block;\n}\n\n._tip_1jkfb_9 {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n}\n._tip_1jkfb_9[data-placement^=top-start] > ._triangle_1jkfb_15 {\n left: 8px;\n bottom: 0;\n}\n._tip_1jkfb_9[data-placement^=top-end] > ._triangle_1jkfb_15 {\n right: 8px;\n bottom: 0;\n}\n._tip_1jkfb_9[data-placement^=bottom-start] > ._triangle_1jkfb_15 {\n left: 8px;\n top: -4px;\n}\n._tip_1jkfb_9[data-placement^=bottom-end] > ._triangle_1jkfb_15 {\n right: 8px;\n top: -4px;\n}\n\n._wrap_1jkfb_32 {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: 10;\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--sizes-sm);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n._triangle_1jkfb_15 {\n background-color: var(--colors-neutral-ink-dark);\n height: 16px;\n width: 16px;\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}");
6
- var tooltipStyles = {"container":"_container_1jkfb_1","hoverable":"_hoverable_1jkfb_5","tip":"_tip_1jkfb_9","triangle":"_triangle_1jkfb_15","wrap":"_wrap_1jkfb_32"};
5
+ ___$insertStyle("._container_1ko1n_1 {\n display: inline-block;\n}\n\n._hoverable_1ko1n_5 {\n display: inline-block;\n}\n\n._tip_1ko1n_9 {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n}\n._tip_1ko1n_9[data-placement^=top-start] > ._triangle_1ko1n_15 {\n left: var(--sizes-sm);\n bottom: 0;\n}\n._tip_1ko1n_9[data-placement^=top-end] > ._triangle_1ko1n_15 {\n right: var(--sizes-sm);\n bottom: 0;\n}\n._tip_1ko1n_9[data-placement^=bottom-start] > ._triangle_1ko1n_15 {\n left: var(--sizes-sm);\n top: calc(var(--sizes-xs) * -1);\n}\n._tip_1ko1n_9[data-placement^=bottom-end] > ._triangle_1ko1n_15 {\n right: var(--sizes-sm);\n top: calc(var(--sizes-xs) * -1);\n}\n\n._wrap_1ko1n_32 {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: var(--layers-tooltip);\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--radius-md);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n._triangle_1ko1n_15 {\n background-color: var(--colors-neutral-ink-dark);\n height: var(--sizes-base);\n width: var(--sizes-base);\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}");
6
+ var tooltipStyles = {"container":"_container_1ko1n_1","hoverable":"_hoverable_1ko1n_5","tip":"_tip_1ko1n_9","triangle":"_triangle_1ko1n_15","wrap":"_wrap_1ko1n_32"};
7
7
 
8
8
  module.exports = tooltipStyles;
9
9
  //# sourceMappingURL=Tooltip.module.scss.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.module.scss.cjs","sources":["../../../src/components/Tooltip/Tooltip.module.scss"],"sourcesContent":[".container {\n display: inline-block;\n}\n\n.hoverable {\n display: inline-block;\n}\n\n.tip {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n\n &[data-placement^='top-start'] > .triangle {\n left: 8px;\n bottom: 0;\n }\n\n &[data-placement^='top-end'] > .triangle {\n right: 8px;\n bottom: 0;\n }\n\n &[data-placement^='bottom-start'] > .triangle {\n left: 8px;\n top: -4px;\n }\n\n &[data-placement^='bottom-end'] > .triangle {\n right: 8px;\n top: -4px;\n }\n}\n\n.wrap {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: 10;\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--sizes-sm);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n.triangle {\n background-color: var(--colors-neutral-ink-dark);\n height: 16px;\n width: 16px;\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}\n"],"names":[],"mappings":";;;;AACE,eAAA,CAAA,2pCAAA;;;;;"}
1
+ {"version":3,"file":"Tooltip.module.scss.cjs","sources":["../../../src/components/Tooltip/Tooltip.module.scss"],"sourcesContent":[".container {\n display: inline-block;\n}\n\n.hoverable {\n display: inline-block;\n}\n\n.tip {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n\n &[data-placement^='top-start'] > .triangle {\n left: var(--sizes-sm);\n bottom: 0;\n }\n\n &[data-placement^='top-end'] > .triangle {\n right: var(--sizes-sm);\n bottom: 0;\n }\n\n &[data-placement^='bottom-start'] > .triangle {\n left: var(--sizes-sm);\n top: calc(var(--sizes-xs) * -1);\n }\n\n &[data-placement^='bottom-end'] > .triangle {\n right: var(--sizes-sm);\n top: calc(var(--sizes-xs) * -1);\n }\n}\n\n.wrap {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: var(--layers-tooltip);\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--radius-md);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n.triangle {\n background-color: var(--colors-neutral-ink-dark);\n height: var(--sizes-base);\n width: var(--sizes-base);\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}\n"],"names":[],"mappings":";;;;AACE,eAAA,CAAA,qyCAAA;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import insertStyle from '../../_virtual/____insertStyle.js';
2
2
 
3
- insertStyle("._container_1jkfb_1 {\n display: inline-block;\n}\n\n._hoverable_1jkfb_5 {\n display: inline-block;\n}\n\n._tip_1jkfb_9 {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n}\n._tip_1jkfb_9[data-placement^=top-start] > ._triangle_1jkfb_15 {\n left: 8px;\n bottom: 0;\n}\n._tip_1jkfb_9[data-placement^=top-end] > ._triangle_1jkfb_15 {\n right: 8px;\n bottom: 0;\n}\n._tip_1jkfb_9[data-placement^=bottom-start] > ._triangle_1jkfb_15 {\n left: 8px;\n top: -4px;\n}\n._tip_1jkfb_9[data-placement^=bottom-end] > ._triangle_1jkfb_15 {\n right: 8px;\n top: -4px;\n}\n\n._wrap_1jkfb_32 {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: 10;\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--sizes-sm);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n._triangle_1jkfb_15 {\n background-color: var(--colors-neutral-ink-dark);\n height: 16px;\n width: 16px;\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}");
4
- var tooltipStyles = {"container":"_container_1jkfb_1","hoverable":"_hoverable_1jkfb_5","tip":"_tip_1jkfb_9","triangle":"_triangle_1jkfb_15","wrap":"_wrap_1jkfb_32"};
3
+ insertStyle("._container_1ko1n_1 {\n display: inline-block;\n}\n\n._hoverable_1ko1n_5 {\n display: inline-block;\n}\n\n._tip_1ko1n_9 {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n}\n._tip_1ko1n_9[data-placement^=top-start] > ._triangle_1ko1n_15 {\n left: var(--sizes-sm);\n bottom: 0;\n}\n._tip_1ko1n_9[data-placement^=top-end] > ._triangle_1ko1n_15 {\n right: var(--sizes-sm);\n bottom: 0;\n}\n._tip_1ko1n_9[data-placement^=bottom-start] > ._triangle_1ko1n_15 {\n left: var(--sizes-sm);\n top: calc(var(--sizes-xs) * -1);\n}\n._tip_1ko1n_9[data-placement^=bottom-end] > ._triangle_1ko1n_15 {\n right: var(--sizes-sm);\n top: calc(var(--sizes-xs) * -1);\n}\n\n._wrap_1ko1n_32 {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: var(--layers-tooltip);\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--radius-md);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n._triangle_1ko1n_15 {\n background-color: var(--colors-neutral-ink-dark);\n height: var(--sizes-base);\n width: var(--sizes-base);\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}");
4
+ var tooltipStyles = {"container":"_container_1ko1n_1","hoverable":"_hoverable_1ko1n_5","tip":"_tip_1ko1n_9","triangle":"_triangle_1ko1n_15","wrap":"_wrap_1ko1n_32"};
5
5
 
6
6
  export { tooltipStyles as default };
7
7
  //# sourceMappingURL=Tooltip.module.scss.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.module.scss.js","sources":["../../../src/components/Tooltip/Tooltip.module.scss"],"sourcesContent":[".container {\n display: inline-block;\n}\n\n.hoverable {\n display: inline-block;\n}\n\n.tip {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n\n &[data-placement^='top-start'] > .triangle {\n left: 8px;\n bottom: 0;\n }\n\n &[data-placement^='top-end'] > .triangle {\n right: 8px;\n bottom: 0;\n }\n\n &[data-placement^='bottom-start'] > .triangle {\n left: 8px;\n top: -4px;\n }\n\n &[data-placement^='bottom-end'] > .triangle {\n right: 8px;\n top: -4px;\n }\n}\n\n.wrap {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: 10;\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--sizes-sm);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n.triangle {\n background-color: var(--colors-neutral-ink-dark);\n height: 16px;\n width: 16px;\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}\n"],"names":["___$insertStyle"],"mappings":";;AACEA,WAAA,CAAA,2pCAAA;;;;;"}
1
+ {"version":3,"file":"Tooltip.module.scss.js","sources":["../../../src/components/Tooltip/Tooltip.module.scss"],"sourcesContent":[".container {\n display: inline-block;\n}\n\n.hoverable {\n display: inline-block;\n}\n\n.tip {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n\n &[data-placement^='top-start'] > .triangle {\n left: var(--sizes-sm);\n bottom: 0;\n }\n\n &[data-placement^='top-end'] > .triangle {\n right: var(--sizes-sm);\n bottom: 0;\n }\n\n &[data-placement^='bottom-start'] > .triangle {\n left: var(--sizes-sm);\n top: calc(var(--sizes-xs) * -1);\n }\n\n &[data-placement^='bottom-end'] > .triangle {\n right: var(--sizes-sm);\n top: calc(var(--sizes-xs) * -1);\n }\n}\n\n.wrap {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: var(--layers-tooltip);\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--radius-md);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n.triangle {\n background-color: var(--colors-neutral-ink-dark);\n height: var(--sizes-base);\n width: var(--sizes-base);\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}\n"],"names":["___$insertStyle"],"mappings":";;AACEA,WAAA,CAAA,qyCAAA;;;;;"}
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var React = require('react');
4
- var framerMotion = require('framer-motion');
5
3
  var react = require('@floating-ui/react');
6
- var types = require('../types.cjs');
7
- var Text = require('../../Text/Text.cjs');
4
+ var framerMotion = require('framer-motion');
5
+ var React = require('react');
8
6
  var buildClassnames = require('../../../utils/buildClassnames.cjs');
9
7
  require('uid/secure');
10
8
  var assignCssVars = require('../../../utils/assignCssVars.cjs');
9
+ var Text = require('../../Text/Text.cjs');
11
10
  var Tooltip_module = require('../Tooltip.module.scss.cjs');
11
+ var types = require('../types.cjs');
12
12
 
13
13
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
14
14
 
@@ -30,7 +30,7 @@ const TooltipPopover = ({ content, text, hoverableElement, config, reversed, wit
30
30
  });
31
31
  return (React__default.default.createElement(framerMotion.motion.div, { key: "tooltip-tip", className: buildClassnames.buildClassnames([Tooltip_module.tip, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.tip]), ref: refs.setFloating, style: floatingStyles, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.15 }, "data-placement": placement, role: "tooltip" },
32
32
  React__default.default.createElement("div", { className: buildClassnames.buildClassnames([Tooltip_module.wrap, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.wrap]), style: assignCssVars.assignCssVars({ tipMinWidth: `${tipMinWidth}px`, tipMaxWidth: `${tipMaxWidth}px` }) }, content !== null && content !== void 0 ? content : (React__default.default.createElement(Text.Text, { variant: "bodySmall", style: { color: 'white' } }, text))),
33
- withTriangle && React__default.default.createElement("div", { id: "veeqo-components-triangle", className: buildClassnames.buildClassnames([Tooltip_module.triangle, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.triangle]) })));
33
+ withTriangle && (React__default.default.createElement("div", { "data-testid": "tooltip-triangle", className: buildClassnames.buildClassnames([Tooltip_module.triangle, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.triangle]) }))));
34
34
  };
35
35
 
36
36
  exports.TooltipPopover = TooltipPopover;
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipPopover.cjs","sources":["../../../../src/components/Tooltip/components/TooltipPopover.tsx"],"sourcesContent":["import React from 'react';\nimport { motion } from 'framer-motion';\nimport { useFloating, offset, flip, shift, limitShift, autoUpdate, Placement } from '@floating-ui/react';\nimport { IConfig, Sides } from '../types';\nimport { TooltipPopoverProps } from './types';\nimport { Text } from '../../Text';\nimport { assignCssVars, buildClassnames } from '../../../utils';\nimport tooltipStyles from '../Tooltip.module.scss';\n\nconst defaultConfig: IConfig = {\n side: Sides.TOP,\n tipMinWidth: 60,\n tipMaxWidth: 340,\n};\n\nexport const TooltipPopover = ({\n content,\n text,\n hoverableElement,\n config,\n reversed,\n withTriangle,\n legacyClassNames,\n}: TooltipPopoverProps) => {\n const usedConfig = { ...defaultConfig, ...config };\n const { side, tipMinWidth, tipMaxWidth } = usedConfig;\n\n const { refs, floatingStyles, placement } = useFloating({\n elements: { reference: hoverableElement },\n placement: `${side}-${reversed ? 'end' : 'start'}` as Placement,\n middleware: [offset(8), flip(), shift({ limiter: limitShift() })],\n whileElementsMounted: autoUpdate,\n });\n\n return (\n <motion.div\n key=\"tooltip-tip\"\n className={buildClassnames([tooltipStyles.tip, legacyClassNames?.tip])}\n ref={refs.setFloating}\n style={floatingStyles}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.15 }}\n data-placement={placement}\n role=\"tooltip\"\n >\n <div\n className={buildClassnames([tooltipStyles.wrap, legacyClassNames?.wrap])}\n style={assignCssVars({ tipMinWidth: `${tipMinWidth}px`, tipMaxWidth: `${tipMaxWidth}px` })}\n >\n {content ?? (\n <Text variant=\"bodySmall\" style={{ color: 'white' }}>\n {text}\n </Text>\n )}\n </div>\n {withTriangle && <div id=\"veeqo-components-triangle\" className={buildClassnames([tooltipStyles.triangle, legacyClassNames?.triangle])} />}\n </motion.div>\n );\n};\n"],"names":["Sides","useFloating","offset","flip","shift","limitShift","autoUpdate","React","motion","buildClassnames","tooltipStyles","assignCssVars","Text"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAEA,WAAK,CAAC,GAAG;AACf,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,WAAW,EAAE,GAAG;CACjB;MAEY,cAAc,GAAG,CAAC,EAC7B,OAAO,EACP,IAAI,EACJ,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACI,KAAI;IACxB,MAAM,UAAU,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,UAAU;IAErD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,GAAGC,iBAAW,CAAC;AACtD,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;AACzC,QAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA,CAAe;AAC/D,QAAA,UAAU,EAAE,CAACC,YAAM,CAAC,CAAC,CAAC,EAAEC,UAAI,EAAE,EAAEC,WAAK,CAAC,EAAE,OAAO,EAAEC,gBAAU,EAAE,EAAE,CAAC,CAAC;AACjE,QAAA,oBAAoB,EAAEC,gBAAU;AACjC,KAAA,CAAC;AAEF,IAAA,QACEC,sBAAA,CAAA,aAAA,CAACC,mBAAM,CAAC,GAAG,EAAA,EACT,GAAG,EAAC,aAAa,EACjB,SAAS,EAAEC,+BAAe,CAAC,CAACC,cAAa,CAAC,GAAG,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,GAAG,CAAC,CAAC,EACtE,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACpB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAA,gBAAA,EACd,SAAS,EACzB,IAAI,EAAC,SAAS,EAAA;AAEd,QAAAH,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEE,+BAAe,CAAC,CAACC,cAAa,CAAC,IAAI,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,EACxE,KAAK,EAAEC,2BAAa,CAAC,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,IAAI,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,EAAA,CAAI,EAAE,CAAC,EAAA,EAEzF,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAP,OAAO,IACNJ,qCAACK,SAAI,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,EAChD,IAAI,CACA,CACR,CACG;QACL,YAAY,IAAIL,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,EAAE,EAAC,2BAA2B,EAAC,SAAS,EAAEE,+BAAe,CAAC,CAACC,cAAa,CAAC,QAAQ,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,QAAQ,CAAC,CAAC,EAAA,CAAI,CAC9H;AAEjB;;;;"}
1
+ {"version":3,"file":"TooltipPopover.cjs","sources":["../../../../src/components/Tooltip/components/TooltipPopover.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n limitShift,\n offset,\n Placement,\n shift,\n useFloating,\n} from '@floating-ui/react';\nimport { motion } from 'framer-motion';\nimport React from 'react';\nimport { assignCssVars, buildClassnames } from '../../../utils';\nimport { Text } from '../../Text';\nimport tooltipStyles from '../Tooltip.module.scss';\nimport { IConfig, Sides } from '../types';\nimport { TooltipPopoverProps } from './types';\n\nconst defaultConfig: IConfig = {\n side: Sides.TOP,\n tipMinWidth: 60,\n tipMaxWidth: 340,\n};\n\nexport const TooltipPopover = ({\n content,\n text,\n hoverableElement,\n config,\n reversed,\n withTriangle,\n legacyClassNames,\n}: TooltipPopoverProps) => {\n const usedConfig = { ...defaultConfig, ...config };\n const { side, tipMinWidth, tipMaxWidth } = usedConfig;\n\n const { refs, floatingStyles, placement } = useFloating({\n elements: { reference: hoverableElement },\n placement: `${side}-${reversed ? 'end' : 'start'}` as Placement,\n middleware: [offset(8), flip(), shift({ limiter: limitShift() })],\n whileElementsMounted: autoUpdate,\n });\n\n return (\n <motion.div\n key=\"tooltip-tip\"\n className={buildClassnames([tooltipStyles.tip, legacyClassNames?.tip])}\n ref={refs.setFloating}\n style={floatingStyles}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.15 }}\n data-placement={placement}\n role=\"tooltip\"\n >\n <div\n className={buildClassnames([tooltipStyles.wrap, legacyClassNames?.wrap])}\n style={assignCssVars({ tipMinWidth: `${tipMinWidth}px`, tipMaxWidth: `${tipMaxWidth}px` })}\n >\n {content ?? (\n <Text variant=\"bodySmall\" style={{ color: 'white' }}>\n {text}\n </Text>\n )}\n </div>\n {withTriangle && (\n <div\n data-testid=\"tooltip-triangle\"\n className={buildClassnames([tooltipStyles.triangle, legacyClassNames?.triangle])}\n />\n )}\n </motion.div>\n );\n};\n"],"names":["Sides","useFloating","offset","flip","shift","limitShift","autoUpdate","React","motion","buildClassnames","tooltipStyles","assignCssVars","Text"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAEA,WAAK,CAAC,GAAG;AACf,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,WAAW,EAAE,GAAG;CACjB;MAEY,cAAc,GAAG,CAAC,EAC7B,OAAO,EACP,IAAI,EACJ,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACI,KAAI;IACxB,MAAM,UAAU,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,UAAU;IAErD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,GAAGC,iBAAW,CAAC;AACtD,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;AACzC,QAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA,CAAe;AAC/D,QAAA,UAAU,EAAE,CAACC,YAAM,CAAC,CAAC,CAAC,EAAEC,UAAI,EAAE,EAAEC,WAAK,CAAC,EAAE,OAAO,EAAEC,gBAAU,EAAE,EAAE,CAAC,CAAC;AACjE,QAAA,oBAAoB,EAAEC,gBAAU;AACjC,KAAA,CAAC;AAEF,IAAA,QACEC,sBAAA,CAAA,aAAA,CAACC,mBAAM,CAAC,GAAG,EAAA,EACT,GAAG,EAAC,aAAa,EACjB,SAAS,EAAEC,+BAAe,CAAC,CAACC,cAAa,CAAC,GAAG,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,GAAG,CAAC,CAAC,EACtE,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACpB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAA,gBAAA,EACd,SAAS,EACzB,IAAI,EAAC,SAAS,EAAA;AAEd,QAAAH,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEE,+BAAe,CAAC,CAACC,cAAa,CAAC,IAAI,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,EACxE,KAAK,EAAEC,2BAAa,CAAC,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,IAAI,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,EAAA,CAAI,EAAE,CAAC,EAAA,EAEzF,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAP,OAAO,IACNJ,qCAACK,SAAI,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,EAChD,IAAI,CACA,CACR,CACG;QACL,YAAY,KACXL,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EACc,kBAAkB,EAC9B,SAAS,EAAEE,+BAAe,CAAC,CAACC,cAAa,CAAC,QAAQ,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,QAAQ,CAAC,CAAC,EAAA,CAChF,CACH,CACU;AAEjB;;;;"}
@@ -1,12 +1,12 @@
1
- import React__default from 'react';
2
- import { motion } from 'framer-motion';
3
1
  import { useFloating, autoUpdate, offset, flip, shift, limitShift } from '@floating-ui/react';
4
- import { Sides } from '../types.js';
5
- import { Text } from '../../Text/Text.js';
2
+ import { motion } from 'framer-motion';
3
+ import React__default from 'react';
6
4
  import { buildClassnames } from '../../../utils/buildClassnames.js';
7
5
  import 'uid/secure';
8
6
  import { assignCssVars } from '../../../utils/assignCssVars.js';
7
+ import { Text } from '../../Text/Text.js';
9
8
  import tooltipStyles from '../Tooltip.module.scss.js';
9
+ import { Sides } from '../types.js';
10
10
 
11
11
  const defaultConfig = {
12
12
  side: Sides.TOP,
@@ -24,7 +24,7 @@ const TooltipPopover = ({ content, text, hoverableElement, config, reversed, wit
24
24
  });
25
25
  return (React__default.createElement(motion.div, { key: "tooltip-tip", className: buildClassnames([tooltipStyles.tip, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.tip]), ref: refs.setFloating, style: floatingStyles, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.15 }, "data-placement": placement, role: "tooltip" },
26
26
  React__default.createElement("div", { className: buildClassnames([tooltipStyles.wrap, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.wrap]), style: assignCssVars({ tipMinWidth: `${tipMinWidth}px`, tipMaxWidth: `${tipMaxWidth}px` }) }, content !== null && content !== void 0 ? content : (React__default.createElement(Text, { variant: "bodySmall", style: { color: 'white' } }, text))),
27
- withTriangle && React__default.createElement("div", { id: "veeqo-components-triangle", className: buildClassnames([tooltipStyles.triangle, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.triangle]) })));
27
+ withTriangle && (React__default.createElement("div", { "data-testid": "tooltip-triangle", className: buildClassnames([tooltipStyles.triangle, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.triangle]) }))));
28
28
  };
29
29
 
30
30
  export { TooltipPopover };
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipPopover.js","sources":["../../../../src/components/Tooltip/components/TooltipPopover.tsx"],"sourcesContent":["import React from 'react';\nimport { motion } from 'framer-motion';\nimport { useFloating, offset, flip, shift, limitShift, autoUpdate, Placement } from '@floating-ui/react';\nimport { IConfig, Sides } from '../types';\nimport { TooltipPopoverProps } from './types';\nimport { Text } from '../../Text';\nimport { assignCssVars, buildClassnames } from '../../../utils';\nimport tooltipStyles from '../Tooltip.module.scss';\n\nconst defaultConfig: IConfig = {\n side: Sides.TOP,\n tipMinWidth: 60,\n tipMaxWidth: 340,\n};\n\nexport const TooltipPopover = ({\n content,\n text,\n hoverableElement,\n config,\n reversed,\n withTriangle,\n legacyClassNames,\n}: TooltipPopoverProps) => {\n const usedConfig = { ...defaultConfig, ...config };\n const { side, tipMinWidth, tipMaxWidth } = usedConfig;\n\n const { refs, floatingStyles, placement } = useFloating({\n elements: { reference: hoverableElement },\n placement: `${side}-${reversed ? 'end' : 'start'}` as Placement,\n middleware: [offset(8), flip(), shift({ limiter: limitShift() })],\n whileElementsMounted: autoUpdate,\n });\n\n return (\n <motion.div\n key=\"tooltip-tip\"\n className={buildClassnames([tooltipStyles.tip, legacyClassNames?.tip])}\n ref={refs.setFloating}\n style={floatingStyles}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.15 }}\n data-placement={placement}\n role=\"tooltip\"\n >\n <div\n className={buildClassnames([tooltipStyles.wrap, legacyClassNames?.wrap])}\n style={assignCssVars({ tipMinWidth: `${tipMinWidth}px`, tipMaxWidth: `${tipMaxWidth}px` })}\n >\n {content ?? (\n <Text variant=\"bodySmall\" style={{ color: 'white' }}>\n {text}\n </Text>\n )}\n </div>\n {withTriangle && <div id=\"veeqo-components-triangle\" className={buildClassnames([tooltipStyles.triangle, legacyClassNames?.triangle])} />}\n </motion.div>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;;;AASA,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAE,KAAK,CAAC,GAAG;AACf,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,WAAW,EAAE,GAAG;CACjB;MAEY,cAAc,GAAG,CAAC,EAC7B,OAAO,EACP,IAAI,EACJ,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACI,KAAI;IACxB,MAAM,UAAU,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,UAAU;IAErD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;AACtD,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;AACzC,QAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA,CAAe;AAC/D,QAAA,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;AACjE,QAAA,oBAAoB,EAAE,UAAU;AACjC,KAAA,CAAC;AAEF,IAAA,QACEA,cAAA,CAAA,aAAA,CAAC,MAAM,CAAC,GAAG,EAAA,EACT,GAAG,EAAC,aAAa,EACjB,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,GAAG,CAAC,CAAC,EACtE,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACpB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAA,gBAAA,EACd,SAAS,EACzB,IAAI,EAAC,SAAS,EAAA;AAEd,QAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,EACxE,KAAK,EAAE,aAAa,CAAC,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,IAAI,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,EAAA,CAAI,EAAE,CAAC,EAAA,EAEzF,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAP,OAAO,IACNA,6BAAC,IAAI,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,EAChD,IAAI,CACA,CACR,CACG;QACL,YAAY,IAAIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,EAAE,EAAC,2BAA2B,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,QAAQ,CAAC,CAAC,EAAA,CAAI,CAC9H;AAEjB;;;;"}
1
+ {"version":3,"file":"TooltipPopover.js","sources":["../../../../src/components/Tooltip/components/TooltipPopover.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n limitShift,\n offset,\n Placement,\n shift,\n useFloating,\n} from '@floating-ui/react';\nimport { motion } from 'framer-motion';\nimport React from 'react';\nimport { assignCssVars, buildClassnames } from '../../../utils';\nimport { Text } from '../../Text';\nimport tooltipStyles from '../Tooltip.module.scss';\nimport { IConfig, Sides } from '../types';\nimport { TooltipPopoverProps } from './types';\n\nconst defaultConfig: IConfig = {\n side: Sides.TOP,\n tipMinWidth: 60,\n tipMaxWidth: 340,\n};\n\nexport const TooltipPopover = ({\n content,\n text,\n hoverableElement,\n config,\n reversed,\n withTriangle,\n legacyClassNames,\n}: TooltipPopoverProps) => {\n const usedConfig = { ...defaultConfig, ...config };\n const { side, tipMinWidth, tipMaxWidth } = usedConfig;\n\n const { refs, floatingStyles, placement } = useFloating({\n elements: { reference: hoverableElement },\n placement: `${side}-${reversed ? 'end' : 'start'}` as Placement,\n middleware: [offset(8), flip(), shift({ limiter: limitShift() })],\n whileElementsMounted: autoUpdate,\n });\n\n return (\n <motion.div\n key=\"tooltip-tip\"\n className={buildClassnames([tooltipStyles.tip, legacyClassNames?.tip])}\n ref={refs.setFloating}\n style={floatingStyles}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.15 }}\n data-placement={placement}\n role=\"tooltip\"\n >\n <div\n className={buildClassnames([tooltipStyles.wrap, legacyClassNames?.wrap])}\n style={assignCssVars({ tipMinWidth: `${tipMinWidth}px`, tipMaxWidth: `${tipMaxWidth}px` })}\n >\n {content ?? (\n <Text variant=\"bodySmall\" style={{ color: 'white' }}>\n {text}\n </Text>\n )}\n </div>\n {withTriangle && (\n <div\n data-testid=\"tooltip-triangle\"\n className={buildClassnames([tooltipStyles.triangle, legacyClassNames?.triangle])}\n />\n )}\n </motion.div>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;;;AAiBA,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAE,KAAK,CAAC,GAAG;AACf,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,WAAW,EAAE,GAAG;CACjB;MAEY,cAAc,GAAG,CAAC,EAC7B,OAAO,EACP,IAAI,EACJ,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACI,KAAI;IACxB,MAAM,UAAU,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,UAAU;IAErD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;AACtD,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;AACzC,QAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA,CAAe;AAC/D,QAAA,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;AACjE,QAAA,oBAAoB,EAAE,UAAU;AACjC,KAAA,CAAC;AAEF,IAAA,QACEA,cAAA,CAAA,aAAA,CAAC,MAAM,CAAC,GAAG,EAAA,EACT,GAAG,EAAC,aAAa,EACjB,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,GAAG,CAAC,CAAC,EACtE,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACpB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAA,gBAAA,EACd,SAAS,EACzB,IAAI,EAAC,SAAS,EAAA;AAEd,QAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,EACxE,KAAK,EAAE,aAAa,CAAC,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,IAAI,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,EAAA,CAAI,EAAE,CAAC,EAAA,EAEzF,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAP,OAAO,IACNA,6BAAC,IAAI,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,EAChD,IAAI,CACA,CACR,CACG;QACL,YAAY,KACXA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EACc,kBAAkB,EAC9B,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,QAAQ,CAAC,CAAC,EAAA,CAChF,CACH,CACU;AAEjB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sources":["../../../src/components/Tooltip/types.ts"],"sourcesContent":["import { ReactNode } from 'react';\n\nexport enum Sides {\n BOTTOM = 'bottom',\n TOP = 'top',\n}\n\nexport interface IConfig {\n side: Sides.TOP | Sides.BOTTOM;\n /** @deprecated No longer used. Triangle positioning is handled by CSS Module classes. */\n triangleOffset?: number;\n tipMinWidth: number;\n tipMaxWidth: number;\n tipOffset?: number;\n}\n\nexport interface TooltipProps {\n children?: any;\n text?: string;\n content?: ReactNode;\n config?: IConfig;\n reversed?: boolean;\n additionalOffset?: number;\n className?: string;\n hoverableClassName?: string;\n withTriangle?: boolean;\n unmountOnExit?: boolean;\n initialShouldShow?: boolean;\n useReactPortal?: boolean;\n}\n"],"names":["Sides"],"mappings":";;AAEYA;AAAZ,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACb,CAAC,EAHWA,aAAK,KAALA,aAAK,GAAA,EAAA,CAAA,CAAA;;"}
1
+ {"version":3,"file":"types.cjs","sources":["../../../src/components/Tooltip/types.ts"],"sourcesContent":["import { ReactNode } from 'react';\n\nexport enum Sides {\n BOTTOM = 'bottom',\n TOP = 'top',\n}\n\nexport interface IConfig {\n side: Sides.TOP | Sides.BOTTOM;\n tipMinWidth: number;\n tipMaxWidth: number;\n}\n\nexport interface TooltipProps {\n children?: ReactNode;\n text?: string;\n content?: ReactNode;\n config?: IConfig;\n reversed?: boolean;\n className?: string;\n hoverableClassName?: string;\n withTriangle?: boolean;\n initialShouldShow?: boolean;\n useReactPortal?: boolean;\n}\n"],"names":["Sides"],"mappings":";;AAEYA;AAAZ,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACb,CAAC,EAHWA,aAAK,KAALA,aAAK,GAAA,EAAA,CAAA,CAAA;;"}
@@ -5,23 +5,18 @@ export declare enum Sides {
5
5
  }
6
6
  export interface IConfig {
7
7
  side: Sides.TOP | Sides.BOTTOM;
8
- /** @deprecated No longer used. Triangle positioning is handled by CSS Module classes. */
9
- triangleOffset?: number;
10
8
  tipMinWidth: number;
11
9
  tipMaxWidth: number;
12
- tipOffset?: number;
13
10
  }
14
11
  export interface TooltipProps {
15
- children?: any;
12
+ children?: ReactNode;
16
13
  text?: string;
17
14
  content?: ReactNode;
18
15
  config?: IConfig;
19
16
  reversed?: boolean;
20
- additionalOffset?: number;
21
17
  className?: string;
22
18
  hoverableClassName?: string;
23
19
  withTriangle?: boolean;
24
- unmountOnExit?: boolean;
25
20
  initialShouldShow?: boolean;
26
21
  useReactPortal?: boolean;
27
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../src/components/Tooltip/types.ts"],"sourcesContent":["import { ReactNode } from 'react';\n\nexport enum Sides {\n BOTTOM = 'bottom',\n TOP = 'top',\n}\n\nexport interface IConfig {\n side: Sides.TOP | Sides.BOTTOM;\n /** @deprecated No longer used. Triangle positioning is handled by CSS Module classes. */\n triangleOffset?: number;\n tipMinWidth: number;\n tipMaxWidth: number;\n tipOffset?: number;\n}\n\nexport interface TooltipProps {\n children?: any;\n text?: string;\n content?: ReactNode;\n config?: IConfig;\n reversed?: boolean;\n additionalOffset?: number;\n className?: string;\n hoverableClassName?: string;\n withTriangle?: boolean;\n unmountOnExit?: boolean;\n initialShouldShow?: boolean;\n useReactPortal?: boolean;\n}\n"],"names":[],"mappings":"IAEY;AAAZ,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACb,CAAC,EAHW,KAAK,KAAL,KAAK,GAAA,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../../../src/components/Tooltip/types.ts"],"sourcesContent":["import { ReactNode } from 'react';\n\nexport enum Sides {\n BOTTOM = 'bottom',\n TOP = 'top',\n}\n\nexport interface IConfig {\n side: Sides.TOP | Sides.BOTTOM;\n tipMinWidth: number;\n tipMaxWidth: number;\n}\n\nexport interface TooltipProps {\n children?: ReactNode;\n text?: string;\n content?: ReactNode;\n config?: IConfig;\n reversed?: boolean;\n className?: string;\n hoverableClassName?: string;\n withTriangle?: boolean;\n initialShouldShow?: boolean;\n useReactPortal?: boolean;\n}\n"],"names":[],"mappings":"IAEY;AAAZ,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACb,CAAC,EAHW,KAAK,KAAL,KAAK,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -44,7 +44,7 @@ export { Modal, type Action as ModalAction } from './Modal';
44
44
  export { Pagination } from './Pagination';
45
45
  export { Popover } from './Popover';
46
46
  export { Popup, type PopupProps } from './Popup';
47
- export { Portal } from './Portal';
47
+ export { Portal, DisablePortals } from './Portal';
48
48
  export { PriceInput } from './PriceInput';
49
49
  export { Radio } from './Radio';
50
50
  export { ScreenReaderOnly } from './ScreenReaderOnly';
package/dist/index.cjs CHANGED
@@ -53,6 +53,7 @@ var Pagination = require('./components/Pagination/Pagination.cjs');
53
53
  var Popover = require('./components/Popover/Popover.cjs');
54
54
  var Popup = require('./components/Popup/Popup.cjs');
55
55
  var Portal = require('./components/Portal/Portal.cjs');
56
+ var PortalContext = require('./components/Portal/PortalContext.cjs');
56
57
  var PriceInput = require('./components/PriceInput/PriceInput.cjs');
57
58
  var Radio = require('./components/Radio/Radio.cjs');
58
59
  var ScreenReaderOnly = require('./components/ScreenReaderOnly/ScreenReaderOnly.cjs');
@@ -412,6 +413,7 @@ exports.Pagination = Pagination.Pagination;
412
413
  exports.Popover = Popover.Popover;
413
414
  exports.Popup = Popup.Popup;
414
415
  exports.Portal = Portal.Portal;
416
+ exports.DisablePortals = PortalContext.DisablePortals;
415
417
  exports.PriceInput = PriceInput.PriceInput;
416
418
  exports.Radio = Radio.Radio;
417
419
  exports.ScreenReaderOnly = ScreenReaderOnly.ScreenReaderOnly;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.js CHANGED
@@ -51,6 +51,7 @@ export { Pagination } from './components/Pagination/Pagination.js';
51
51
  export { Popover } from './components/Popover/Popover.js';
52
52
  export { Popup } from './components/Popup/Popup.js';
53
53
  export { Portal } from './components/Portal/Portal.js';
54
+ export { DisablePortals } from './components/Portal/PortalContext.js';
54
55
  export { PriceInput } from './components/PriceInput/PriceInput.js';
55
56
  export { Radio } from './components/Radio/Radio.js';
56
57
  export { ScreenReaderOnly } from './components/ScreenReaderOnly/ScreenReaderOnly.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veeqo/ui",
3
- "version": "15.7.1",
3
+ "version": "15.9.0",
4
4
  "description": "New optimised component library for Veeqo.",
5
5
  "author": "Robert Wealthall",
6
6
  "license": "ISC",