@salutejs/plasma-new-hope 0.264.0-canary.1760.13286965233.0 → 0.264.1-canary.1775.13296417008.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. package/cjs/components/Popover/Popover.js +15 -2
  2. package/cjs/components/Popover/Popover.js.map +1 -1
  3. package/cjs/components/Popover/hooks/usePopoverOffset.js +45 -0
  4. package/cjs/components/Popover/hooks/usePopoverOffset.js.map +1 -0
  5. package/cjs/components/Tooltip/Tooltip.js +1 -1
  6. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  7. package/emotion/cjs/components/Popover/Popover.js +15 -2
  8. package/emotion/cjs/components/Popover/hooks/usePopoverOffset.js +48 -0
  9. package/emotion/cjs/components/Tooltip/Tooltip.js +2 -2
  10. package/emotion/cjs/examples/plasma_b2c/components/Popover/Popover.stories.tsx +75 -2
  11. package/emotion/es/components/Popover/Popover.js +15 -2
  12. package/emotion/es/components/Popover/hooks/usePopoverOffset.js +42 -0
  13. package/emotion/es/components/Tooltip/Tooltip.js +2 -2
  14. package/emotion/es/examples/plasma_b2c/components/Popover/Popover.stories.tsx +75 -2
  15. package/es/components/Popover/Popover.js +15 -2
  16. package/es/components/Popover/Popover.js.map +1 -1
  17. package/es/components/Popover/hooks/usePopoverOffset.js +41 -0
  18. package/es/components/Popover/hooks/usePopoverOffset.js.map +1 -0
  19. package/es/components/Tooltip/Tooltip.js +1 -1
  20. package/es/components/Tooltip/Tooltip.js.map +1 -1
  21. package/package.json +2 -2
  22. package/styled-components/cjs/components/Popover/Popover.js +15 -2
  23. package/styled-components/cjs/components/Popover/hooks/usePopoverOffset.js +48 -0
  24. package/styled-components/cjs/components/Tooltip/Tooltip.js +1 -1
  25. package/styled-components/cjs/examples/plasma_b2c/components/Popover/Popover.stories.tsx +75 -2
  26. package/styled-components/es/components/Popover/Popover.js +15 -2
  27. package/styled-components/es/components/Popover/hooks/usePopoverOffset.js +42 -0
  28. package/styled-components/es/components/Tooltip/Tooltip.js +1 -1
  29. package/styled-components/es/examples/plasma_b2c/components/Popover/Popover.stories.tsx +75 -2
  30. package/types/components/Popover/Popover.d.ts.map +1 -1
  31. package/types/components/Popover/hooks/usePopoverOffset.d.ts +9 -0
  32. package/types/components/Popover/hooks/usePopoverOffset.d.ts.map +1 -0
@@ -10,6 +10,7 @@ var index = require('../../utils/index.js');
10
10
  var base = require('./variations/_view/base.js');
11
11
  var Popover_styles = require('./Popover.styles.js');
12
12
  var Popover_tokens = require('./Popover.tokens.js');
13
+ var usePopoverOffset = require('./hooks/usePopoverOffset.js');
13
14
  var useFocusTrap = require('../../hooks/useFocusTrap.js');
14
15
  var Portal = require('../Portal/Portal.js');
15
16
 
@@ -61,6 +62,7 @@ var popoverRoot = function popoverRoot(Root) {
61
62
  var popoverRef = React.useRef(null);
62
63
  var handleRef = plasmaCore.useForkRef(rootRef, outerRootRef);
63
64
  var portalRef = React.useRef(null);
65
+ var targetRef = React.useRef(null);
64
66
  var trapRef = useFocusTrap.useFocusTrap(innerIsOpen && isFocusTrapped);
65
67
  var popoverForkRef = plasmaCore.useForkRef(popoverRef, trapRef);
66
68
  var _useState = React.useState(null),
@@ -79,6 +81,16 @@ var popoverRoot = function popoverRoot(Root) {
79
81
  var isAuto = isAutoArray || placement.startsWith('auto');
80
82
  var openClass = innerIsOpen && shouldRender ? Popover_tokens.classes.open : undefined;
81
83
  var animatedClass = animated ? Popover_tokens.classes.animate : undefined;
84
+ var offsetInner = usePopoverOffset.usePopoverOffset({
85
+ handleRef: targetRef,
86
+ placement: placement,
87
+ offsetOuter: offset
88
+ });
89
+
90
+ // console.log(offsetInner);
91
+ // const offsetInner = [7, 8];
92
+
93
+ console.log(offsetInner);
82
94
  var _usePopper = reactPopper.usePopper(rootRef.current, popoverRef.current, {
83
95
  // TODO: #1121
84
96
  // eslint-disable-next-line no-nested-ternary
@@ -91,7 +103,7 @@ var popoverRoot = function popoverRoot(Root) {
91
103
  }, {
92
104
  name: 'offset',
93
105
  options: {
94
- offset: [offset[0], offset[1]]
106
+ offset: [offsetInner[0], offsetInner[1]]
95
107
  }
96
108
  }, {
97
109
  name: 'flip',
@@ -222,7 +234,8 @@ var popoverRoot = function popoverRoot(Root) {
222
234
  }, /*#__PURE__*/React__default.default.createElement(Popover_styles.StyledWrapper, {
223
235
  className: index.cx(Popover_tokens.classes.wrapper, ! /*#__PURE__*/React.isValidElement(target) && Popover_tokens.classes.targetAsRef),
224
236
  onMouseEnter: onMouseEnter,
225
- onMouseLeave: onMouseLeave
237
+ onMouseLeave: onMouseLeave,
238
+ ref: targetRef
226
239
  }, /*#__PURE__*/React__default.default.createElement(Popover_styles.StyledRoot, {
227
240
  ref: handleRef,
228
241
  onClick: onClick,
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, { useRef, useCallback, useEffect, useState, forwardRef, isValidElement } from 'react';\nimport { usePopper } from 'react-popper';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../engines/types';\nimport { useFocusTrap } from '../../hooks';\nimport { cx } from '../../utils';\nimport { Portal } from '../Portal';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport type { PopoverPlacement, PopoverProps } from './Popover.types';\nimport { StyledArrow, StyledPopover, StyledRoot, StyledWrapper } from './Popover.styles';\nimport { classes } from './Popover.tokens';\n\nexport const ESCAPE_KEYCODE = 27;\nexport const POPOVER_PORTAL_ID = 'plasma-popover-root';\n\n/**\n * Всплывающее окно с возможностью позиционирования\n * и вызова по клику либо ховеру.\n */\nexport const popoverRoot = (Root: RootProps<HTMLDivElement, PopoverProps>) =>\n forwardRef<HTMLDivElement, PopoverProps>(\n (\n {\n target,\n children,\n animated,\n isOpen,\n opened,\n trigger = 'click',\n hasArrow,\n frame = 'document',\n className,\n placement = 'auto',\n offset = [0, 0],\n zIndex,\n isFocusTrapped = true,\n closeOnEsc = true,\n preventOverflow = true,\n usePortal = false,\n view,\n onToggle,\n closeOnOverlayClick,\n ...rest\n },\n outerRootRef,\n ) => {\n const innerIsOpen = Boolean(isOpen || opened);\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const popoverRef = useRef<HTMLDivElement | null>(null);\n const handleRef = useForkRef<HTMLDivElement>(rootRef, outerRootRef);\n const portalRef = useRef<HTMLElement | null>(null);\n\n const trapRef = useFocusTrap(innerIsOpen && isFocusTrapped);\n\n const popoverForkRef = useForkRef<HTMLDivElement>(popoverRef, trapRef);\n\n const [arrowElement, setArrowElement] = useState<HTMLSpanElement | null>(null);\n\n const [, forceRender] = useState(false);\n const [shouldRender, setShouldRender] = useState(innerIsOpen);\n\n const portalContainer =\n (typeof target === 'object' && target !== null && 'current' in target && target.current) || undefined;\n\n const isAutoArray = Array.isArray(placement);\n const isAuto = isAutoArray || (placement as PopoverPlacement).startsWith('auto');\n\n const openClass = innerIsOpen && shouldRender ? classes.open : undefined;\n const animatedClass = animated ? classes.animate : undefined;\n\n const { styles, attributes, forceUpdate } = usePopper(rootRef.current, popoverRef.current, {\n // TODO: #1121\n // eslint-disable-next-line no-nested-ternary\n placement: isAutoArray\n ? placement[0]?.endsWith('start')\n ? 'auto-start'\n : 'auto'\n : (placement as PopoverPlacement),\n modifiers: [\n {\n name: 'preventOverflow',\n options: {\n mainAxis: preventOverflow,\n },\n },\n { name: 'offset', options: { offset: [offset[0], offset[1]] } },\n {\n name: 'flip',\n enabled: isAuto,\n options: {\n allowedAutoPlacements: isAutoArray ? (placement as PopoverPlacement[]) : [],\n },\n },\n {\n name: 'arrow',\n options: {\n element: arrowElement,\n },\n },\n ],\n });\n\n const onEscape = useCallback(\n (event: KeyboardEvent) => {\n if (innerIsOpen && closeOnEsc && event.keyCode === ESCAPE_KEYCODE) {\n onToggle?.(false, event);\n }\n },\n [closeOnEsc, innerIsOpen, onToggle],\n );\n\n const onDocumentClick = useCallback(\n (event: MouseEvent) => {\n if (innerIsOpen && closeOnOverlayClick && onToggle) {\n const targetIsRoot = event.target === rootRef.current;\n const rootHasTarget = rootRef.current?.contains(event.target as Element);\n const popoverRootHasTarget = popoverRef.current?.contains(event.target as Element);\n\n if (!targetIsRoot && !rootHasTarget && !popoverRootHasTarget) {\n onToggle(false, event);\n }\n }\n },\n [closeOnOverlayClick, innerIsOpen, onToggle],\n );\n\n const onClick = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'click') {\n const targetIsPopover = event.target === popoverRef.current;\n const rootHasTarget = popoverRef.current?.contains(event.target as Element);\n\n if (!targetIsPopover && !rootHasTarget) {\n onToggle?.(!innerIsOpen, event);\n }\n }\n },\n [trigger, innerIsOpen, onToggle],\n );\n\n const onMouseEnter = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(true, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onMouseLeave = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(false, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onFocus = useCallback<React.FocusEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(true, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onBlur = useCallback<React.FocusEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(false, event);\n }\n },\n [trigger, onToggle],\n );\n\n useEffect(() => {\n document.addEventListener('click', onDocumentClick);\n return () => document.removeEventListener('click', onDocumentClick);\n }, [innerIsOpen, onToggle]);\n\n useEffect(() => {\n window.addEventListener('keydown', onEscape);\n return () => window.removeEventListener('keydown', onEscape);\n }, [closeOnEsc, innerIsOpen, onToggle]);\n\n useEffect(() => {\n let portal = document.getElementById(POPOVER_PORTAL_ID);\n\n if (typeof frame !== 'string' && frame && frame.current) {\n portal = frame.current;\n }\n\n if (!usePortal && isValidElement(target)) {\n portal = rootRef.current;\n }\n\n if (!portal) {\n portal = document.createElement('div');\n portal.setAttribute('id', POPOVER_PORTAL_ID);\n\n if (typeof frame === 'string' && frame !== 'document') {\n document.getElementById(frame)?.appendChild(portal);\n } else {\n document.body.appendChild(portal);\n }\n }\n\n portalRef.current = portal;\n\n /**\n * Изменение стейта нужно для того, чтобы Popup\n * отобразился после записи DOM элемента в portalRef.current\n */\n forceRender(true);\n }, []);\n\n useEffect(() => {\n if (!innerIsOpen || !forceUpdate) {\n return;\n }\n\n /*\n * INFO: Метод forceUpdate содержит в себе flushSync и приводит\n * к повторному рендеру компонента, который уже находится в процессе рендера.\n * Данный хак, нужен для того, чтобы это поведение избежать и перенаправить\n * вызов метода в очередь микрозадач.\n */\n Promise.resolve().then(forceUpdate);\n }, [innerIsOpen, children, forceUpdate]);\n\n const handleTransitionEnd = () => {\n if (!innerIsOpen) {\n setShouldRender(false);\n }\n };\n\n useEffect(() => {\n if (innerIsOpen) {\n setShouldRender(true);\n }\n }, [innerIsOpen]);\n\n return (\n <Portal container={portalContainer} disabled={isValidElement(target)}>\n <StyledWrapper\n className={cx(classes.wrapper, !isValidElement(target) && classes.targetAsRef)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <StyledRoot\n ref={handleRef}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n className={cx(className, classes.target)}\n >\n {isValidElement(target) && target}\n </StyledRoot>\n {children && portalRef.current && (\n <Portal container={portalRef.current}>\n <Root view={view} className={className} {...rest}>\n <StyledPopover\n {...attributes.popper}\n onTransitionEnd={handleTransitionEnd}\n className={cx(classes.root, openClass, animatedClass)}\n ref={popoverForkRef}\n style={{\n ...styles.popper,\n display: shouldRender || innerIsOpen ? 'block' : 'none',\n }}\n zIndex={zIndex}\n >\n {hasArrow && (\n <StyledArrow\n className={classes.arrow}\n ref={setArrowElement}\n style={styles.arrow}\n {...attributes.arrow}\n />\n )}\n {children}\n </StyledPopover>\n </Root>\n </Portal>\n )}\n </StyledWrapper>\n </Portal>\n );\n },\n );\n\nexport const popoverConfig = {\n name: 'Popover',\n tag: 'div',\n layout: popoverRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n view: 'default',\n },\n};\n"],"names":["ESCAPE_KEYCODE","POPOVER_PORTAL_ID","popoverRoot","Root","forwardRef","_ref","outerRootRef","_placement$","target","children","animated","isOpen","opened","_ref$trigger","trigger","hasArrow","_ref$frame","frame","className","_ref$placement","placement","_ref$offset","offset","zIndex","_ref$isFocusTrapped","isFocusTrapped","_ref$closeOnEsc","closeOnEsc","_ref$preventOverflow","preventOverflow","_ref$usePortal","usePortal","view","onToggle","closeOnOverlayClick","rest","_objectWithoutProperties","_excluded","innerIsOpen","Boolean","rootRef","useRef","popoverRef","handleRef","useForkRef","portalRef","trapRef","useFocusTrap","popoverForkRef","_useState","useState","_useState2","_slicedToArray","arrowElement","setArrowElement","_useState3","_useState4","forceRender","_useState5","_useState6","shouldRender","setShouldRender","portalContainer","_typeof","current","undefined","isAutoArray","Array","isArray","isAuto","startsWith","openClass","classes","open","animatedClass","animate","_usePopper","usePopper","endsWith","modifiers","name","options","mainAxis","enabled","allowedAutoPlacements","element","styles","attributes","forceUpdate","onEscape","useCallback","event","keyCode","onDocumentClick","_rootRef$current","_popoverRef$current","targetIsRoot","rootHasTarget","contains","popoverRootHasTarget","onClick","_popoverRef$current2","targetIsPopover","onMouseEnter","onMouseLeave","onFocus","onBlur","useEffect","document","addEventListener","removeEventListener","window","portal","getElementById","isValidElement","createElement","setAttribute","_document$getElementB","appendChild","body","Promise","resolve","then","handleTransitionEnd","React","Portal","container","disabled","StyledWrapper","cx","wrapper","targetAsRef","StyledRoot","ref","_extends","StyledPopover","popper","onTransitionEnd","root","style","_objectSpread","display","StyledArrow","arrow","popoverConfig","tag","layout","base","variations","css","viewCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.js","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, { useRef, useCallback, useEffect, useState, forwardRef, isValidElement } from 'react';\nimport { usePopper } from 'react-popper';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../engines/types';\nimport { useFocusTrap } from '../../hooks';\nimport { cx } from '../../utils';\nimport { Portal } from '../Portal';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport type { PopoverPlacement, PopoverProps } from './Popover.types';\nimport { StyledArrow, StyledPopover, StyledRoot, StyledWrapper } from './Popover.styles';\nimport { classes } from './Popover.tokens';\nimport { usePopoverOffset } from './hooks/usePopoverOffset';\n\nexport const ESCAPE_KEYCODE = 27;\nexport const POPOVER_PORTAL_ID = 'plasma-popover-root';\n\n/**\n * Всплывающее окно с возможностью позиционирования\n * и вызова по клику либо ховеру.\n */\nexport const popoverRoot = (Root: RootProps<HTMLDivElement, PopoverProps>) =>\n forwardRef<HTMLDivElement, PopoverProps>(\n (\n {\n target,\n children,\n animated,\n isOpen,\n opened,\n trigger = 'click',\n hasArrow,\n frame = 'document',\n className,\n placement = 'auto',\n offset = [0, 0],\n zIndex,\n isFocusTrapped = true,\n closeOnEsc = true,\n preventOverflow = true,\n usePortal = false,\n view,\n onToggle,\n closeOnOverlayClick,\n ...rest\n },\n outerRootRef,\n ) => {\n const innerIsOpen = Boolean(isOpen || opened);\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const popoverRef = useRef<HTMLDivElement | null>(null);\n const handleRef = useForkRef<HTMLDivElement>(rootRef, outerRootRef);\n const portalRef = useRef<HTMLElement | null>(null);\n const targetRef = useRef<HTMLDivElement | null>(null);\n\n const trapRef = useFocusTrap(innerIsOpen && isFocusTrapped);\n\n const popoverForkRef = useForkRef<HTMLDivElement>(popoverRef, trapRef);\n\n const [arrowElement, setArrowElement] = useState<HTMLSpanElement | null>(null);\n\n const [, forceRender] = useState(false);\n const [shouldRender, setShouldRender] = useState(innerIsOpen);\n\n const portalContainer =\n (typeof target === 'object' && target !== null && 'current' in target && target.current) || undefined;\n\n const isAutoArray = Array.isArray(placement);\n const isAuto = isAutoArray || (placement as PopoverPlacement).startsWith('auto');\n\n const openClass = innerIsOpen && shouldRender ? classes.open : undefined;\n const animatedClass = animated ? classes.animate : undefined;\n\n const offsetInner = usePopoverOffset({\n handleRef: targetRef,\n placement: placement as string,\n offsetOuter: offset,\n });\n\n // console.log(offsetInner);\n // const offsetInner = [7, 8];\n\n console.log(offsetInner);\n\n const { styles, attributes, forceUpdate } = usePopper(rootRef.current, popoverRef.current, {\n // TODO: #1121\n // eslint-disable-next-line no-nested-ternary\n placement: isAutoArray\n ? placement[0]?.endsWith('start')\n ? 'auto-start'\n : 'auto'\n : (placement as PopoverPlacement),\n modifiers: [\n {\n name: 'preventOverflow',\n options: {\n mainAxis: preventOverflow,\n },\n },\n { name: 'offset', options: { offset: [offsetInner[0], offsetInner[1]] } },\n {\n name: 'flip',\n enabled: isAuto,\n options: {\n allowedAutoPlacements: isAutoArray ? (placement as PopoverPlacement[]) : [],\n },\n },\n {\n name: 'arrow',\n options: {\n element: arrowElement,\n },\n },\n ],\n });\n\n const onEscape = useCallback(\n (event: KeyboardEvent) => {\n if (innerIsOpen && closeOnEsc && event.keyCode === ESCAPE_KEYCODE) {\n onToggle?.(false, event);\n }\n },\n [closeOnEsc, innerIsOpen, onToggle],\n );\n\n const onDocumentClick = useCallback(\n (event: MouseEvent) => {\n if (innerIsOpen && closeOnOverlayClick && onToggle) {\n const targetIsRoot = event.target === rootRef.current;\n const rootHasTarget = rootRef.current?.contains(event.target as Element);\n const popoverRootHasTarget = popoverRef.current?.contains(event.target as Element);\n\n if (!targetIsRoot && !rootHasTarget && !popoverRootHasTarget) {\n onToggle(false, event);\n }\n }\n },\n [closeOnOverlayClick, innerIsOpen, onToggle],\n );\n\n const onClick = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'click') {\n const targetIsPopover = event.target === popoverRef.current;\n const rootHasTarget = popoverRef.current?.contains(event.target as Element);\n\n if (!targetIsPopover && !rootHasTarget) {\n onToggle?.(!innerIsOpen, event);\n }\n }\n },\n [trigger, innerIsOpen, onToggle],\n );\n\n const onMouseEnter = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(true, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onMouseLeave = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(false, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onFocus = useCallback<React.FocusEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(true, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onBlur = useCallback<React.FocusEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(false, event);\n }\n },\n [trigger, onToggle],\n );\n\n useEffect(() => {\n document.addEventListener('click', onDocumentClick);\n return () => document.removeEventListener('click', onDocumentClick);\n }, [innerIsOpen, onToggle]);\n\n useEffect(() => {\n window.addEventListener('keydown', onEscape);\n return () => window.removeEventListener('keydown', onEscape);\n }, [closeOnEsc, innerIsOpen, onToggle]);\n\n useEffect(() => {\n let portal = document.getElementById(POPOVER_PORTAL_ID);\n\n if (typeof frame !== 'string' && frame && frame.current) {\n portal = frame.current;\n }\n\n if (!usePortal && isValidElement(target)) {\n portal = rootRef.current;\n }\n\n if (!portal) {\n portal = document.createElement('div');\n portal.setAttribute('id', POPOVER_PORTAL_ID);\n\n if (typeof frame === 'string' && frame !== 'document') {\n document.getElementById(frame)?.appendChild(portal);\n } else {\n document.body.appendChild(portal);\n }\n }\n\n portalRef.current = portal;\n\n /**\n * Изменение стейта нужно для того, чтобы Popup\n * отобразился после записи DOM элемента в portalRef.current\n */\n forceRender(true);\n }, []);\n\n useEffect(() => {\n if (!innerIsOpen || !forceUpdate) {\n return;\n }\n\n /*\n * INFO: Метод forceUpdate содержит в себе flushSync и приводит\n * к повторному рендеру компонента, который уже находится в процессе рендера.\n * Данный хак, нужен для того, чтобы это поведение избежать и перенаправить\n * вызов метода в очередь микрозадач.\n */\n Promise.resolve().then(forceUpdate);\n }, [innerIsOpen, children, forceUpdate]);\n\n const handleTransitionEnd = () => {\n if (!innerIsOpen) {\n setShouldRender(false);\n }\n };\n\n useEffect(() => {\n if (innerIsOpen) {\n setShouldRender(true);\n }\n }, [innerIsOpen]);\n\n return (\n <Portal container={portalContainer} disabled={isValidElement(target)}>\n <StyledWrapper\n className={cx(classes.wrapper, !isValidElement(target) && classes.targetAsRef)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n ref={targetRef}\n >\n <StyledRoot\n ref={handleRef}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n className={cx(className, classes.target)}\n >\n {isValidElement(target) && target}\n </StyledRoot>\n {children && portalRef.current && (\n <Portal container={portalRef.current}>\n <Root view={view} className={className} {...rest}>\n <StyledPopover\n {...attributes.popper}\n onTransitionEnd={handleTransitionEnd}\n className={cx(classes.root, openClass, animatedClass)}\n ref={popoverForkRef}\n style={{\n ...styles.popper,\n display: shouldRender || innerIsOpen ? 'block' : 'none',\n }}\n zIndex={zIndex}\n >\n {hasArrow && (\n <StyledArrow\n className={classes.arrow}\n ref={setArrowElement}\n style={styles.arrow}\n {...attributes.arrow}\n />\n )}\n {children}\n </StyledPopover>\n </Root>\n </Portal>\n )}\n </StyledWrapper>\n </Portal>\n );\n },\n );\n\nexport const popoverConfig = {\n name: 'Popover',\n tag: 'div',\n layout: popoverRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n view: 'default',\n },\n};\n"],"names":["ESCAPE_KEYCODE","POPOVER_PORTAL_ID","popoverRoot","Root","forwardRef","_ref","outerRootRef","_placement$","target","children","animated","isOpen","opened","_ref$trigger","trigger","hasArrow","_ref$frame","frame","className","_ref$placement","placement","_ref$offset","offset","zIndex","_ref$isFocusTrapped","isFocusTrapped","_ref$closeOnEsc","closeOnEsc","_ref$preventOverflow","preventOverflow","_ref$usePortal","usePortal","view","onToggle","closeOnOverlayClick","rest","_objectWithoutProperties","_excluded","innerIsOpen","Boolean","rootRef","useRef","popoverRef","handleRef","useForkRef","portalRef","targetRef","trapRef","useFocusTrap","popoverForkRef","_useState","useState","_useState2","_slicedToArray","arrowElement","setArrowElement","_useState3","_useState4","forceRender","_useState5","_useState6","shouldRender","setShouldRender","portalContainer","_typeof","current","undefined","isAutoArray","Array","isArray","isAuto","startsWith","openClass","classes","open","animatedClass","animate","offsetInner","usePopoverOffset","offsetOuter","console","log","_usePopper","usePopper","endsWith","modifiers","name","options","mainAxis","enabled","allowedAutoPlacements","element","styles","attributes","forceUpdate","onEscape","useCallback","event","keyCode","onDocumentClick","_rootRef$current","_popoverRef$current","targetIsRoot","rootHasTarget","contains","popoverRootHasTarget","onClick","_popoverRef$current2","targetIsPopover","onMouseEnter","onMouseLeave","onFocus","onBlur","useEffect","document","addEventListener","removeEventListener","window","portal","getElementById","isValidElement","createElement","setAttribute","_document$getElementB","appendChild","body","Promise","resolve","then","handleTransitionEnd","React","Portal","container","disabled","StyledWrapper","cx","wrapper","targetAsRef","ref","StyledRoot","_extends","StyledPopover","popper","onTransitionEnd","root","style","_objectSpread","display","StyledArrow","arrow","popoverConfig","tag","layout","base","variations","css","viewCSS","defaults"],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
+ var React = require('react');
7
+
8
+ var allowedPlacements = ['top-start', 'top-end', 'bottom-start', 'bottom-end', 'left-start', 'left-end', 'right-start', 'right-end'];
9
+ var usePopoverOffset = function usePopoverOffset(_ref) {
10
+ var handleRef = _ref.handleRef,
11
+ placement = _ref.placement,
12
+ offsetOuter = _ref.offsetOuter;
13
+ var _useState = React.useState(offsetOuter),
14
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
15
+ offset = _useState2[0],
16
+ setOffset = _useState2[1];
17
+ React.useEffect(function () {
18
+ var refElement = handleRef.current;
19
+ if (!refElement || !allowedPlacements.includes(placement)) {
20
+ setOffset(offsetOuter);
21
+ return;
22
+ }
23
+ var _refElement$getBoundi = refElement.getBoundingClientRect(),
24
+ width = _refElement$getBoundi.width,
25
+ height = _refElement$getBoundi.height;
26
+ var isVertical = (placement === null || placement === void 0 ? void 0 : placement.startsWith('top')) || (placement === null || placement === void 0 ? void 0 : placement.startsWith('bottom'));
27
+ var isEnd = placement === null || placement === void 0 ? void 0 : placement.endsWith('end');
28
+ var isStart = placement === null || placement === void 0 ? void 0 : placement.endsWith('start');
29
+ var offsetX = offsetOuter[0];
30
+ var offsetY = offsetOuter[1];
31
+ if (isVertical) {
32
+ if ((isStart || isEnd) && width < 28) {
33
+ offsetX = isEnd ? 17 - width / 2 + offsetOuter[0] : -17 + width / 2 - offsetOuter[0];
34
+ }
35
+ }
36
+ if (!isVertical && (isStart || isEnd) && height < 28) {
37
+ offsetX = isStart ? -19 + height / 2 : 19 - height / 2;
38
+ }
39
+ setOffset([offsetX, offsetY]);
40
+ }, [handleRef, placement, offsetOuter]);
41
+ return offset;
42
+ };
43
+
44
+ exports.usePopoverOffset = usePopoverOffset;
45
+ //# sourceMappingURL=usePopoverOffset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePopoverOffset.js","sources":["../../../../src/components/Popover/hooks/usePopoverOffset.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\ntype Placement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'left-start'\n | 'left-end'\n | 'right-start'\n | 'right-end';\n\nconst allowedPlacements: Placement[] = [\n 'top-start',\n 'top-end',\n 'bottom-start',\n 'bottom-end',\n 'left-start',\n 'left-end',\n 'right-start',\n 'right-end',\n];\n\ninterface UsePopoverOffsetOptions {\n handleRef: React.RefObject<HTMLDivElement>;\n placement?: string;\n offsetOuter: [number, number];\n}\n\nexport const usePopoverOffset = ({ handleRef, placement, offsetOuter }: UsePopoverOffsetOptions): [number, number] => {\n const [offset, setOffset] = useState<[number, number]>(offsetOuter);\n\n useEffect(() => {\n const refElement = handleRef.current;\n\n if (!refElement || !allowedPlacements.includes(placement as Placement)) {\n setOffset(offsetOuter);\n return;\n }\n\n const { width, height } = refElement.getBoundingClientRect();\n\n const isVertical = placement?.startsWith('top') || placement?.startsWith('bottom');\n const isEnd = placement?.endsWith('end');\n const isStart = placement?.endsWith('start');\n\n let offsetX = offsetOuter[0];\n const offsetY = offsetOuter[1];\n\n if (isVertical) {\n if ((isStart || isEnd) && width < 28) {\n offsetX = isEnd ? 17 - width / 2 + offsetOuter[0] : -17 + width / 2 - offsetOuter[0];\n }\n }\n\n if (!isVertical && (isStart || isEnd) && height < 28) {\n offsetX = isStart ? -19 + height / 2 : 19 - height / 2;\n }\n\n setOffset([offsetX, offsetY]);\n }, [handleRef, placement, offsetOuter]);\n\n return offset;\n};\n"],"names":["allowedPlacements","usePopoverOffset","_ref","handleRef","placement","offsetOuter","_useState","useState","_useState2","_slicedToArray","offset","setOffset","useEffect","refElement","current","includes","_refElement$getBoundi","getBoundingClientRect","width","height","isVertical","startsWith","isEnd","endsWith","isStart","offsetX","offsetY"],"mappings":"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"}
@@ -48,7 +48,7 @@ var tooltipRoot = function tooltipRoot(Root) {
48
48
  arrow = _ref.arrow,
49
49
  animated = _ref.animated,
50
50
  _ref$offset = _ref.offset,
51
- offset = _ref$offset === void 0 ? [0, 8] : _ref$offset,
51
+ offset = _ref$offset === void 0 ? [3, 8] : _ref$offset,
52
52
  minWidth = _ref.minWidth,
53
53
  maxWidth = _ref.maxWidth,
54
54
  _ref$placement = _ref.placement,
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useEffect, forwardRef, useState, useRef } from 'react';\nimport { styled } from '@linaria/react';\n\nimport { RootProps, component } from '../../engines';\nimport { popoverConfig, popoverTokens } from '../Popover';\nimport { cx } from '../../utils';\n\nimport { TooltipProps } from './Tooltip.types';\nimport { StyledContentLeft, TooltipRoot } from './Tooltip.styles';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { tokens } from './Tooltip.tokens';\n\nconst ESCAPE_KEYCODE = 27;\n\nconst getStringValue = (value?: number | string) => {\n return typeof value === 'number' ? `${value}rem` : value;\n};\n\nconst Popover = component(popoverConfig);\n\nconst StyledPopover = styled(Popover)`\n ${popoverTokens.arrowMaskWidth}: var(${tokens.arrowMaskWidth});\n ${popoverTokens.arrowMaskHeight}: var(${tokens.arrowMaskHeight});\n ${popoverTokens.arrowMaskImage}: var(${tokens.arrowMaskImage});\n ${popoverTokens.arrowBackground}: var(${tokens.arrowBackground});\n ${popoverTokens.arrowHeight}: var(${tokens.arrowHeight});\n ${popoverTokens.arrowEdgeMargin}: var(${tokens.arrowEdgeMargin});\n`;\n\n/**\n * Компонент для текстовых подсказок. Основное предназначение — подписи к блокам.\n */\n\nexport const tooltipRoot = (Root: RootProps<HTMLDivElement, Omit<TooltipProps, 'opened' | 'text'>>) =>\n forwardRef<HTMLDivElement, TooltipProps>(\n (\n {\n id,\n text,\n opened,\n isVisible,\n isOpen,\n hasArrow = true,\n arrow,\n animated,\n offset = [0, 8],\n minWidth,\n maxWidth,\n placement = 'bottom',\n usePortal = true,\n target,\n children,\n onDismiss,\n view,\n size,\n contentLeft,\n zIndex = '9200',\n className,\n style,\n hoverTimeout = 300,\n trigger,\n ...rest\n },\n outerRef,\n ) => {\n const [ref, setRef] = useState<HTMLDivElement | null>(null);\n const timeoutRef = useRef<number | undefined>();\n const [isOpened, setIsOpened] = useState(false);\n const [isHovered, setIsHovered] = useState(false);\n\n // TODO убрать после отказа от старого API\n const innerIsOpen = Boolean(isVisible || isOpen || opened);\n const innerHasArrow = arrow || hasArrow;\n const showTooltip = innerIsOpen && Boolean(text);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.keyCode === ESCAPE_KEYCODE) {\n onDismiss?.();\n }\n };\n\n window.addEventListener('keydown', onKeyDown);\n\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, []);\n\n const onMouseEnter = () => {\n clearTimeout(timeoutRef.current);\n setIsHovered(true);\n };\n\n const onMouseLeave = () => {\n timeoutRef.current = setTimeout(() => {\n setIsHovered(false);\n }, hoverTimeout);\n };\n\n useEffect(() => {\n return () => clearTimeout(timeoutRef.current);\n }, [trigger]);\n\n const onToggle = (isOpen: boolean) => {\n if (trigger === 'hover') {\n if (isOpen) {\n clearTimeout(timeoutRef.current);\n setIsOpened(true);\n } else {\n timeoutRef.current = setTimeout(() => {\n setIsOpened(false);\n }, hoverTimeout);\n }\n } else {\n setIsOpened(isOpen);\n }\n };\n\n return (\n <StyledPopover\n opened={showTooltip || isOpened || isHovered}\n placement={placement}\n offset={offset}\n zIndex={zIndex}\n target={target || children}\n usePortal={usePortal}\n hasArrow={innerHasArrow}\n aria-hidden={!innerIsOpen}\n aria-live=\"polite\"\n role=\"tooltip\"\n animated={animated}\n className={cx(ref?.classList.toString())}\n {...((trigger === 'hover' || trigger === 'click') && { trigger, onToggle })}\n {...rest}\n >\n <Root\n view={view}\n size={size}\n ref={setRef}\n className={className}\n style={style}\n {...(trigger === 'hover' && { onMouseEnter, onMouseLeave })}\n >\n <TooltipRoot\n ref={outerRef}\n id={id}\n maxWidth={getStringValue(maxWidth)}\n minWidth={getStringValue(minWidth)}\n >\n {contentLeft && <StyledContentLeft>{contentLeft}</StyledContentLeft>}\n {text}\n </TooltipRoot>\n </Root>\n </StyledPopover>\n );\n },\n );\n\nexport const tooltipConfig = {\n name: 'Tooltip',\n tag: 'div',\n layout: tooltipRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["ESCAPE_KEYCODE","getStringValue","value","concat","Popover","component","popoverConfig","_exp","StyledPopover","styled","name","class","propsAsIs","tooltipRoot","Root","forwardRef","_ref","outerRef","id","text","opened","isVisible","isOpen","_ref$hasArrow","hasArrow","arrow","animated","_ref$offset","offset","minWidth","maxWidth","_ref$placement","placement","_ref$usePortal","usePortal","target","children","onDismiss","view","size","contentLeft","_ref$zIndex","zIndex","className","style","_ref$hoverTimeout","hoverTimeout","trigger","rest","_useState","useState","_useState2","_slicedToArray","ref","setRef","timeoutRef","useRef","_useState3","_useState4","isOpened","setIsOpened","_useState5","_useState6","isHovered","setIsHovered","innerIsOpen","Boolean","innerHasArrow","showTooltip","useEffect","onKeyDown","event","keyCode","window","addEventListener","removeEventListener","onMouseEnter","clearTimeout","current","onMouseLeave","setTimeout","onToggle","React","createElement","_extends","role","cx","classList","toString","TooltipRoot","StyledContentLeft","tooltipConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useEffect, forwardRef, useState, useRef } from 'react';\nimport { styled } from '@linaria/react';\n\nimport { RootProps, component } from '../../engines';\nimport { popoverConfig, popoverTokens } from '../Popover';\nimport { cx } from '../../utils';\n\nimport { TooltipProps } from './Tooltip.types';\nimport { StyledContentLeft, TooltipRoot } from './Tooltip.styles';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { tokens } from './Tooltip.tokens';\n\nconst ESCAPE_KEYCODE = 27;\n\nconst getStringValue = (value?: number | string) => {\n return typeof value === 'number' ? `${value}rem` : value;\n};\n\nconst Popover = component(popoverConfig);\n\nconst StyledPopover = styled(Popover)`\n ${popoverTokens.arrowMaskWidth}: var(${tokens.arrowMaskWidth});\n ${popoverTokens.arrowMaskHeight}: var(${tokens.arrowMaskHeight});\n ${popoverTokens.arrowMaskImage}: var(${tokens.arrowMaskImage});\n ${popoverTokens.arrowBackground}: var(${tokens.arrowBackground});\n ${popoverTokens.arrowHeight}: var(${tokens.arrowHeight});\n ${popoverTokens.arrowEdgeMargin}: var(${tokens.arrowEdgeMargin});\n`;\n\n/**\n * Компонент для текстовых подсказок. Основное предназначение — подписи к блокам.\n */\n\nexport const tooltipRoot = (Root: RootProps<HTMLDivElement, Omit<TooltipProps, 'opened' | 'text'>>) =>\n forwardRef<HTMLDivElement, TooltipProps>(\n (\n {\n id,\n text,\n opened,\n isVisible,\n isOpen,\n hasArrow = true,\n arrow,\n animated,\n offset = [3, 8],\n minWidth,\n maxWidth,\n placement = 'bottom',\n usePortal = true,\n target,\n children,\n onDismiss,\n view,\n size,\n contentLeft,\n zIndex = '9200',\n className,\n style,\n hoverTimeout = 300,\n trigger,\n ...rest\n },\n outerRef,\n ) => {\n const [ref, setRef] = useState<HTMLDivElement | null>(null);\n const timeoutRef = useRef<number | undefined>();\n const [isOpened, setIsOpened] = useState(false);\n const [isHovered, setIsHovered] = useState(false);\n\n // TODO убрать после отказа от старого API\n const innerIsOpen = Boolean(isVisible || isOpen || opened);\n const innerHasArrow = arrow || hasArrow;\n const showTooltip = innerIsOpen && Boolean(text);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.keyCode === ESCAPE_KEYCODE) {\n onDismiss?.();\n }\n };\n\n window.addEventListener('keydown', onKeyDown);\n\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, []);\n\n const onMouseEnter = () => {\n clearTimeout(timeoutRef.current);\n setIsHovered(true);\n };\n\n const onMouseLeave = () => {\n timeoutRef.current = setTimeout(() => {\n setIsHovered(false);\n }, hoverTimeout);\n };\n\n useEffect(() => {\n return () => clearTimeout(timeoutRef.current);\n }, [trigger]);\n\n const onToggle = (isOpen: boolean) => {\n if (trigger === 'hover') {\n if (isOpen) {\n clearTimeout(timeoutRef.current);\n setIsOpened(true);\n } else {\n timeoutRef.current = setTimeout(() => {\n setIsOpened(false);\n }, hoverTimeout);\n }\n } else {\n setIsOpened(isOpen);\n }\n };\n\n return (\n <StyledPopover\n opened={showTooltip || isOpened || isHovered}\n placement={placement}\n offset={offset}\n zIndex={zIndex}\n target={target || children}\n usePortal={usePortal}\n hasArrow={innerHasArrow}\n aria-hidden={!innerIsOpen}\n aria-live=\"polite\"\n role=\"tooltip\"\n animated={animated}\n className={cx(ref?.classList.toString())}\n {...((trigger === 'hover' || trigger === 'click') && { trigger, onToggle })}\n {...rest}\n >\n <Root\n view={view}\n size={size}\n ref={setRef}\n className={className}\n style={style}\n {...(trigger === 'hover' && { onMouseEnter, onMouseLeave })}\n >\n <TooltipRoot\n ref={outerRef}\n id={id}\n maxWidth={getStringValue(maxWidth)}\n minWidth={getStringValue(minWidth)}\n >\n {contentLeft && <StyledContentLeft>{contentLeft}</StyledContentLeft>}\n {text}\n </TooltipRoot>\n </Root>\n </StyledPopover>\n );\n },\n );\n\nexport const tooltipConfig = {\n name: 'Tooltip',\n tag: 'div',\n layout: tooltipRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["ESCAPE_KEYCODE","getStringValue","value","concat","Popover","component","popoverConfig","_exp","StyledPopover","styled","name","class","propsAsIs","tooltipRoot","Root","forwardRef","_ref","outerRef","id","text","opened","isVisible","isOpen","_ref$hasArrow","hasArrow","arrow","animated","_ref$offset","offset","minWidth","maxWidth","_ref$placement","placement","_ref$usePortal","usePortal","target","children","onDismiss","view","size","contentLeft","_ref$zIndex","zIndex","className","style","_ref$hoverTimeout","hoverTimeout","trigger","rest","_useState","useState","_useState2","_slicedToArray","ref","setRef","timeoutRef","useRef","_useState3","_useState4","isOpened","setIsOpened","_useState5","_useState6","isHovered","setIsHovered","innerIsOpen","Boolean","innerHasArrow","showTooltip","useEffect","onKeyDown","event","keyCode","window","addEventListener","removeEventListener","onMouseEnter","clearTimeout","current","onMouseLeave","setTimeout","onToggle","React","createElement","_extends","role","cx","classList","toString","TooltipRoot","StyledContentLeft","tooltipConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
@@ -13,6 +13,7 @@ var _Portal = /*#__PURE__*/require("../Portal");
13
13
  var _base = /*#__PURE__*/require("./variations/_view/base");
14
14
  var _Popover = /*#__PURE__*/require("./Popover.styles");
15
15
  var _Popover2 = /*#__PURE__*/require("./Popover.tokens");
16
+ var _usePopoverOffset = /*#__PURE__*/require("./hooks/usePopoverOffset");
16
17
  var _excluded = ["target", "children", "animated", "isOpen", "opened", "trigger", "hasArrow", "frame", "className", "placement", "offset", "zIndex", "isFocusTrapped", "closeOnEsc", "preventOverflow", "usePortal", "view", "onToggle", "closeOnOverlayClick"];
17
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
@@ -74,6 +75,7 @@ var popoverRoot = exports.popoverRoot = function popoverRoot(Root) {
74
75
  var popoverRef = (0, _react.useRef)(null);
75
76
  var handleRef = (0, _plasmaCore.useForkRef)(rootRef, outerRootRef);
76
77
  var portalRef = (0, _react.useRef)(null);
78
+ var targetRef = (0, _react.useRef)(null);
77
79
  var trapRef = (0, _hooks.useFocusTrap)(innerIsOpen && isFocusTrapped);
78
80
  var popoverForkRef = (0, _plasmaCore.useForkRef)(popoverRef, trapRef);
79
81
  var _useState = (0, _react.useState)(null),
@@ -92,6 +94,16 @@ var popoverRoot = exports.popoverRoot = function popoverRoot(Root) {
92
94
  var isAuto = isAutoArray || placement.startsWith('auto');
93
95
  var openClass = innerIsOpen && shouldRender ? _Popover2.classes.open : undefined;
94
96
  var animatedClass = animated ? _Popover2.classes.animate : undefined;
97
+ var offsetInner = (0, _usePopoverOffset.usePopoverOffset)({
98
+ handleRef: targetRef,
99
+ placement: placement,
100
+ offsetOuter: offset
101
+ });
102
+
103
+ // console.log(offsetInner);
104
+ // const offsetInner = [7, 8];
105
+
106
+ console.log(offsetInner);
95
107
  var _usePopper = (0, _reactPopper.usePopper)(rootRef.current, popoverRef.current, {
96
108
  // TODO: #1121
97
109
  // eslint-disable-next-line no-nested-ternary
@@ -104,7 +116,7 @@ var popoverRoot = exports.popoverRoot = function popoverRoot(Root) {
104
116
  }, {
105
117
  name: 'offset',
106
118
  options: {
107
- offset: [offset[0], offset[1]]
119
+ offset: [offsetInner[0], offsetInner[1]]
108
120
  }
109
121
  }, {
110
122
  name: 'flip',
@@ -235,7 +247,8 @@ var popoverRoot = exports.popoverRoot = function popoverRoot(Root) {
235
247
  }, /*#__PURE__*/_react["default"].createElement(_Popover.StyledWrapper, {
236
248
  className: (0, _utils.cx)(_Popover2.classes.wrapper, ! /*#__PURE__*/(0, _react.isValidElement)(target) && _Popover2.classes.targetAsRef),
237
249
  onMouseEnter: onMouseEnter,
238
- onMouseLeave: onMouseLeave
250
+ onMouseLeave: onMouseLeave,
251
+ ref: targetRef
239
252
  }, /*#__PURE__*/_react["default"].createElement(_Popover.StyledRoot, {
240
253
  ref: handleRef,
241
254
  onClick: onClick,
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.usePopoverOffset = void 0;
7
+ var _react = /*#__PURE__*/require("react");
8
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+ var allowedPlacements = ['top-start', 'top-end', 'bottom-start', 'bottom-end', 'left-start', 'left-end', 'right-start', 'right-end'];
15
+ var usePopoverOffset = exports.usePopoverOffset = function usePopoverOffset(_ref) {
16
+ var handleRef = _ref.handleRef,
17
+ placement = _ref.placement,
18
+ offsetOuter = _ref.offsetOuter;
19
+ var _useState = (0, _react.useState)(offsetOuter),
20
+ _useState2 = _slicedToArray(_useState, 2),
21
+ offset = _useState2[0],
22
+ setOffset = _useState2[1];
23
+ (0, _react.useEffect)(function () {
24
+ var refElement = handleRef.current;
25
+ if (!refElement || !allowedPlacements.includes(placement)) {
26
+ setOffset(offsetOuter);
27
+ return;
28
+ }
29
+ var _refElement$getBoundi = refElement.getBoundingClientRect(),
30
+ width = _refElement$getBoundi.width,
31
+ height = _refElement$getBoundi.height;
32
+ var isVertical = (placement === null || placement === void 0 ? void 0 : placement.startsWith('top')) || (placement === null || placement === void 0 ? void 0 : placement.startsWith('bottom'));
33
+ var isEnd = placement === null || placement === void 0 ? void 0 : placement.endsWith('end');
34
+ var isStart = placement === null || placement === void 0 ? void 0 : placement.endsWith('start');
35
+ var offsetX = offsetOuter[0];
36
+ var offsetY = offsetOuter[1];
37
+ if (isVertical) {
38
+ if ((isStart || isEnd) && width < 28) {
39
+ offsetX = isEnd ? 17 - width / 2 + offsetOuter[0] : -17 + width / 2 - offsetOuter[0];
40
+ }
41
+ }
42
+ if (!isVertical && (isStart || isEnd) && height < 28) {
43
+ offsetX = isStart ? -19 + height / 2 : 19 - height / 2;
44
+ }
45
+ setOffset([offsetX, offsetY]);
46
+ }, [handleRef, placement, offsetOuter]);
47
+ return offset;
48
+ };
@@ -35,7 +35,7 @@ var Popover = /*#__PURE__*/(0, _engines.component)(_Popover.popoverConfig);
35
35
  var StyledPopover = /*#__PURE__*/(0, _base["default"])(Popover, {
36
36
  target: "ecc7g4f0",
37
37
  label: "plasma-new-hope__StyledPopover"
38
- })(_Popover.popoverTokens.arrowMaskWidth, ":var(", _Tooltip2.tokens.arrowMaskWidth, ");", _Popover.popoverTokens.arrowMaskHeight, ":var(", _Tooltip2.tokens.arrowMaskHeight, ");", _Popover.popoverTokens.arrowMaskImage, ":var(", _Tooltip2.tokens.arrowMaskImage, ");", _Popover.popoverTokens.arrowBackground, ":var(", _Tooltip2.tokens.arrowBackground, ");", _Popover.popoverTokens.arrowHeight, ":var(", _Tooltip2.tokens.arrowHeight, ");", _Popover.popoverTokens.arrowEdgeMargin, ":var(", _Tooltip2.tokens.arrowEdgeMargin, ");" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQnFDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIGZvcndhcmRSZWYsIHVzZVN0YXRlLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IFJvb3RQcm9wcywgY29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZW5naW5lcyc7XG5pbXBvcnQgeyBwb3BvdmVyQ29uZmlnLCBwb3BvdmVyVG9rZW5zIH0gZnJvbSAnLi4vUG9wb3Zlcic7XG5pbXBvcnQgeyBjeCB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHsgVG9vbHRpcFByb3BzIH0gZnJvbSAnLi9Ub29sdGlwLnR5cGVzJztcbmltcG9ydCB7IFN0eWxlZENvbnRlbnRMZWZ0LCBUb29sdGlwUm9vdCB9IGZyb20gJy4vVG9vbHRpcC5zdHlsZXMnO1xuaW1wb3J0IHsgYmFzZSBhcyB2aWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL192aWV3L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBzaXplQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19zaXplL2Jhc2UnO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi9Ub29sdGlwLnRva2Vucyc7XG5cbmNvbnN0IEVTQ0FQRV9LRVlDT0RFID0gMjc7XG5cbmNvbnN0IGdldFN0cmluZ1ZhbHVlID0gKHZhbHVlPzogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyBgJHt2YWx1ZX1yZW1gIDogdmFsdWU7XG59O1xuXG5jb25zdCBQb3BvdmVyID0gY29tcG9uZW50KHBvcG92ZXJDb25maWcpO1xuXG5jb25zdCBTdHlsZWRQb3BvdmVyID0gc3R5bGVkKFBvcG92ZXIpYFxuICAgICR7cG9wb3ZlclRva2Vucy5hcnJvd01hc2tXaWR0aH06IHZhcigke3Rva2Vucy5hcnJvd01hc2tXaWR0aH0pO1xuICAgICR7cG9wb3ZlclRva2Vucy5hcnJvd01hc2tIZWlnaHR9OiB2YXIoJHt0b2tlbnMuYXJyb3dNYXNrSGVpZ2h0fSk7XG4gICAgJHtwb3BvdmVyVG9rZW5zLmFycm93TWFza0ltYWdlfTogdmFyKCR7dG9rZW5zLmFycm93TWFza0ltYWdlfSk7XG4gICAgJHtwb3BvdmVyVG9rZW5zLmFycm93QmFja2dyb3VuZH06IHZhcigke3Rva2Vucy5hcnJvd0JhY2tncm91bmR9KTtcbiAgICAke3BvcG92ZXJUb2tlbnMuYXJyb3dIZWlnaHR9OiB2YXIoJHt0b2tlbnMuYXJyb3dIZWlnaHR9KTtcbiAgICAke3BvcG92ZXJUb2tlbnMuYXJyb3dFZGdlTWFyZ2lufTogdmFyKCR7dG9rZW5zLmFycm93RWRnZU1hcmdpbn0pO1xuYDtcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LTQu9GPINGC0LXQutGB0YLQvtCy0YvRhSDQv9C+0LTRgdC60LDQt9C+0LouINCe0YHQvdC+0LLQvdC+0LUg0L/RgNC10LTQvdCw0LfQvdCw0YfQtdC90LjQtSDigJQg0L/QvtC00L/QuNGB0Lgg0Log0LHQu9C+0LrQsNC8LlxuICovXG5cbmV4cG9ydCBjb25zdCB0b29sdGlwUm9vdCA9IChSb290OiBSb290UHJvcHM8SFRNTERpdkVsZW1lbnQsIE9taXQ8VG9vbHRpcFByb3BzLCAnb3BlbmVkJyB8ICd0ZXh0Jz4+KSA9PlxuICAgIGZvcndhcmRSZWY8SFRNTERpdkVsZW1lbnQsIFRvb2x0aXBQcm9wcz4oXG4gICAgICAgIChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgICAgIG9wZW5lZCxcbiAgICAgICAgICAgICAgICBpc1Zpc2libGUsXG4gICAgICAgICAgICAgICAgaXNPcGVuLFxuICAgICAgICAgICAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgICAgICAgICAgICBhcnJvdyxcbiAgICAgICAgICAgICAgICBhbmltYXRlZCxcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBbMCwgOF0sXG4gICAgICAgICAgICAgICAgbWluV2lkdGgsXG4gICAgICAgICAgICAgICAgbWF4V2lkdGgsXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50ID0gJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgdXNlUG9ydGFsID0gdHJ1ZSxcbiAgICAgICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgb25EaXNtaXNzLFxuICAgICAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgICAgICBjb250ZW50TGVmdCxcbiAgICAgICAgICAgICAgICB6SW5kZXggPSAnOTIwMCcsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgICAgIGhvdmVyVGltZW91dCA9IDMwMCxcbiAgICAgICAgICAgICAgICB0cmlnZ2VyLFxuICAgICAgICAgICAgICAgIC4uLnJlc3RcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvdXRlclJlZixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbcmVmLCBzZXRSZWZdID0gdXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVvdXRSZWYgPSB1c2VSZWY8bnVtYmVyIHwgdW5kZWZpbmVkPigpO1xuICAgICAgICAgICAgY29uc3QgW2lzT3BlbmVkLCBzZXRJc09wZW5lZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCBbaXNIb3ZlcmVkLCBzZXRJc0hvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgICAgICAgICAvLyBUT0RPINGD0LHRgNCw0YLRjCDQv9C+0YHQu9C1INC+0YLQutCw0LfQsCDQvtGCINGB0YLQsNGA0L7Qs9C+IEFQSVxuICAgICAgICAgICAgY29uc3QgaW5uZXJJc09wZW4gPSBCb29sZWFuKGlzVmlzaWJsZSB8fCBpc09wZW4gfHwgb3BlbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVySGFzQXJyb3cgPSBhcnJvdyB8fCBoYXNBcnJvdztcbiAgICAgICAgICAgIGNvbnN0IHNob3dUb29sdGlwID0gaW5uZXJJc09wZW4gJiYgQm9vbGVhbih0ZXh0KTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvbktleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRV9LRVlDT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkRpc21pc3M/LigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSwgW10pO1xuXG4gICAgICAgICAgICBjb25zdCBvbk1vdXNlRW50ZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgc2V0SXNIb3ZlcmVkKHRydWUpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3Qgb25Nb3VzZUxlYXZlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRJc0hvdmVyZWQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0sIGhvdmVyVGltZW91dCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIH0sIFt0cmlnZ2VyXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IG9uVG9nZ2xlID0gKGlzT3BlbjogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0cmlnZ2VyID09PSAnaG92ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNPcGVuZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc09wZW5lZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBob3ZlclRpbWVvdXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNPcGVuZWQoaXNPcGVuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRQb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgIG9wZW5lZD17c2hvd1Rvb2x0aXAgfHwgaXNPcGVuZWQgfHwgaXNIb3ZlcmVkfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9e3BsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PXtvZmZzZXR9XG4gICAgICAgICAgICAgICAgICAgIHpJbmRleD17ekluZGV4fVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldCB8fCBjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgdXNlUG9ydGFsPXt1c2VQb3J0YWx9XG4gICAgICAgICAgICAgICAgICAgIGhhc0Fycm93PXtpbm5lckhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj17IWlubmVySXNPcGVufVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwidG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkPXthbmltYXRlZH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChyZWY/LmNsYXNzTGlzdC50b1N0cmluZygpKX1cbiAgICAgICAgICAgICAgICAgICAgey4uLigodHJpZ2dlciA9PT0gJ2hvdmVyJyB8fCB0cmlnZ2VyID09PSAnY2xpY2snKSAmJiB7IHRyaWdnZXIsIG9uVG9nZ2xlIH0pfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxSb290XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17c2V0UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4uKHRyaWdnZXIgPT09ICdob3ZlcicgJiYgeyBvbk1vdXNlRW50ZXIsIG9uTW91c2VMZWF2ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBSb290XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtvdXRlclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg9e2dldFN0cmluZ1ZhbHVlKG1heFdpZHRoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aD17Z2V0U3RyaW5nVmFsdWUobWluV2lkdGgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50TGVmdCAmJiA8U3R5bGVkQ29udGVudExlZnQ+e2NvbnRlbnRMZWZ0fTwvU3R5bGVkQ29udGVudExlZnQ+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwUm9vdD5cbiAgICAgICAgICAgICAgICAgICAgPC9Sb290PlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkUG9wb3Zlcj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgKTtcblxuZXhwb3J0IGNvbnN0IHRvb2x0aXBDb25maWcgPSB7XG4gICAgbmFtZTogJ1Rvb2x0aXAnLFxuICAgIHRhZzogJ2RpdicsXG4gICAgbGF5b3V0OiB0b29sdGlwUm9vdCxcbiAgICBiYXNlOiAnJyxcbiAgICB2YXJpYXRpb25zOiB7XG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGNzczogdmlld0NTUyxcbiAgICAgICAgfSxcbiAgICAgICAgc2l6ZToge1xuICAgICAgICAgICAgY3NzOiBzaXplQ1NTLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgdmlldzogJ2RlZmF1bHQnLFxuICAgICAgICBzaXplOiAnbScsXG4gICAgfSxcbn07XG4iXX0= */"));
38
+ })(_Popover.popoverTokens.arrowMaskWidth, ":var(", _Tooltip2.tokens.arrowMaskWidth, ");", _Popover.popoverTokens.arrowMaskHeight, ":var(", _Tooltip2.tokens.arrowMaskHeight, ");", _Popover.popoverTokens.arrowMaskImage, ":var(", _Tooltip2.tokens.arrowMaskImage, ");", _Popover.popoverTokens.arrowBackground, ":var(", _Tooltip2.tokens.arrowBackground, ");", _Popover.popoverTokens.arrowHeight, ":var(", _Tooltip2.tokens.arrowHeight, ");", _Popover.popoverTokens.arrowEdgeMargin, ":var(", _Tooltip2.tokens.arrowEdgeMargin, ");" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQnFDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIGZvcndhcmRSZWYsIHVzZVN0YXRlLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IFJvb3RQcm9wcywgY29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZW5naW5lcyc7XG5pbXBvcnQgeyBwb3BvdmVyQ29uZmlnLCBwb3BvdmVyVG9rZW5zIH0gZnJvbSAnLi4vUG9wb3Zlcic7XG5pbXBvcnQgeyBjeCB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHsgVG9vbHRpcFByb3BzIH0gZnJvbSAnLi9Ub29sdGlwLnR5cGVzJztcbmltcG9ydCB7IFN0eWxlZENvbnRlbnRMZWZ0LCBUb29sdGlwUm9vdCB9IGZyb20gJy4vVG9vbHRpcC5zdHlsZXMnO1xuaW1wb3J0IHsgYmFzZSBhcyB2aWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL192aWV3L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBzaXplQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19zaXplL2Jhc2UnO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi9Ub29sdGlwLnRva2Vucyc7XG5cbmNvbnN0IEVTQ0FQRV9LRVlDT0RFID0gMjc7XG5cbmNvbnN0IGdldFN0cmluZ1ZhbHVlID0gKHZhbHVlPzogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyBgJHt2YWx1ZX1yZW1gIDogdmFsdWU7XG59O1xuXG5jb25zdCBQb3BvdmVyID0gY29tcG9uZW50KHBvcG92ZXJDb25maWcpO1xuXG5jb25zdCBTdHlsZWRQb3BvdmVyID0gc3R5bGVkKFBvcG92ZXIpYFxuICAgICR7cG9wb3ZlclRva2Vucy5hcnJvd01hc2tXaWR0aH06IHZhcigke3Rva2Vucy5hcnJvd01hc2tXaWR0aH0pO1xuICAgICR7cG9wb3ZlclRva2Vucy5hcnJvd01hc2tIZWlnaHR9OiB2YXIoJHt0b2tlbnMuYXJyb3dNYXNrSGVpZ2h0fSk7XG4gICAgJHtwb3BvdmVyVG9rZW5zLmFycm93TWFza0ltYWdlfTogdmFyKCR7dG9rZW5zLmFycm93TWFza0ltYWdlfSk7XG4gICAgJHtwb3BvdmVyVG9rZW5zLmFycm93QmFja2dyb3VuZH06IHZhcigke3Rva2Vucy5hcnJvd0JhY2tncm91bmR9KTtcbiAgICAke3BvcG92ZXJUb2tlbnMuYXJyb3dIZWlnaHR9OiB2YXIoJHt0b2tlbnMuYXJyb3dIZWlnaHR9KTtcbiAgICAke3BvcG92ZXJUb2tlbnMuYXJyb3dFZGdlTWFyZ2lufTogdmFyKCR7dG9rZW5zLmFycm93RWRnZU1hcmdpbn0pO1xuYDtcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LTQu9GPINGC0LXQutGB0YLQvtCy0YvRhSDQv9C+0LTRgdC60LDQt9C+0LouINCe0YHQvdC+0LLQvdC+0LUg0L/RgNC10LTQvdCw0LfQvdCw0YfQtdC90LjQtSDigJQg0L/QvtC00L/QuNGB0Lgg0Log0LHQu9C+0LrQsNC8LlxuICovXG5cbmV4cG9ydCBjb25zdCB0b29sdGlwUm9vdCA9IChSb290OiBSb290UHJvcHM8SFRNTERpdkVsZW1lbnQsIE9taXQ8VG9vbHRpcFByb3BzLCAnb3BlbmVkJyB8ICd0ZXh0Jz4+KSA9PlxuICAgIGZvcndhcmRSZWY8SFRNTERpdkVsZW1lbnQsIFRvb2x0aXBQcm9wcz4oXG4gICAgICAgIChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgICAgIG9wZW5lZCxcbiAgICAgICAgICAgICAgICBpc1Zpc2libGUsXG4gICAgICAgICAgICAgICAgaXNPcGVuLFxuICAgICAgICAgICAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgICAgICAgICAgICBhcnJvdyxcbiAgICAgICAgICAgICAgICBhbmltYXRlZCxcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBbMywgOF0sXG4gICAgICAgICAgICAgICAgbWluV2lkdGgsXG4gICAgICAgICAgICAgICAgbWF4V2lkdGgsXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50ID0gJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgdXNlUG9ydGFsID0gdHJ1ZSxcbiAgICAgICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgb25EaXNtaXNzLFxuICAgICAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgICAgICBjb250ZW50TGVmdCxcbiAgICAgICAgICAgICAgICB6SW5kZXggPSAnOTIwMCcsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgICAgIGhvdmVyVGltZW91dCA9IDMwMCxcbiAgICAgICAgICAgICAgICB0cmlnZ2VyLFxuICAgICAgICAgICAgICAgIC4uLnJlc3RcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvdXRlclJlZixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbcmVmLCBzZXRSZWZdID0gdXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVvdXRSZWYgPSB1c2VSZWY8bnVtYmVyIHwgdW5kZWZpbmVkPigpO1xuICAgICAgICAgICAgY29uc3QgW2lzT3BlbmVkLCBzZXRJc09wZW5lZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCBbaXNIb3ZlcmVkLCBzZXRJc0hvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgICAgICAgICAvLyBUT0RPINGD0LHRgNCw0YLRjCDQv9C+0YHQu9C1INC+0YLQutCw0LfQsCDQvtGCINGB0YLQsNGA0L7Qs9C+IEFQSVxuICAgICAgICAgICAgY29uc3QgaW5uZXJJc09wZW4gPSBCb29sZWFuKGlzVmlzaWJsZSB8fCBpc09wZW4gfHwgb3BlbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVySGFzQXJyb3cgPSBhcnJvdyB8fCBoYXNBcnJvdztcbiAgICAgICAgICAgIGNvbnN0IHNob3dUb29sdGlwID0gaW5uZXJJc09wZW4gJiYgQm9vbGVhbih0ZXh0KTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvbktleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRV9LRVlDT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkRpc21pc3M/LigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSwgW10pO1xuXG4gICAgICAgICAgICBjb25zdCBvbk1vdXNlRW50ZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgc2V0SXNIb3ZlcmVkKHRydWUpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3Qgb25Nb3VzZUxlYXZlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRJc0hvdmVyZWQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0sIGhvdmVyVGltZW91dCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIH0sIFt0cmlnZ2VyXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IG9uVG9nZ2xlID0gKGlzT3BlbjogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0cmlnZ2VyID09PSAnaG92ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNPcGVuZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc09wZW5lZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBob3ZlclRpbWVvdXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNPcGVuZWQoaXNPcGVuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRQb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgIG9wZW5lZD17c2hvd1Rvb2x0aXAgfHwgaXNPcGVuZWQgfHwgaXNIb3ZlcmVkfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9e3BsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PXtvZmZzZXR9XG4gICAgICAgICAgICAgICAgICAgIHpJbmRleD17ekluZGV4fVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldCB8fCBjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgdXNlUG9ydGFsPXt1c2VQb3J0YWx9XG4gICAgICAgICAgICAgICAgICAgIGhhc0Fycm93PXtpbm5lckhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj17IWlubmVySXNPcGVufVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwidG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkPXthbmltYXRlZH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChyZWY/LmNsYXNzTGlzdC50b1N0cmluZygpKX1cbiAgICAgICAgICAgICAgICAgICAgey4uLigodHJpZ2dlciA9PT0gJ2hvdmVyJyB8fCB0cmlnZ2VyID09PSAnY2xpY2snKSAmJiB7IHRyaWdnZXIsIG9uVG9nZ2xlIH0pfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxSb290XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17c2V0UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4uKHRyaWdnZXIgPT09ICdob3ZlcicgJiYgeyBvbk1vdXNlRW50ZXIsIG9uTW91c2VMZWF2ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBSb290XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtvdXRlclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg9e2dldFN0cmluZ1ZhbHVlKG1heFdpZHRoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aD17Z2V0U3RyaW5nVmFsdWUobWluV2lkdGgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50TGVmdCAmJiA8U3R5bGVkQ29udGVudExlZnQ+e2NvbnRlbnRMZWZ0fTwvU3R5bGVkQ29udGVudExlZnQ+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwUm9vdD5cbiAgICAgICAgICAgICAgICAgICAgPC9Sb290PlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkUG9wb3Zlcj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgKTtcblxuZXhwb3J0IGNvbnN0IHRvb2x0aXBDb25maWcgPSB7XG4gICAgbmFtZTogJ1Rvb2x0aXAnLFxuICAgIHRhZzogJ2RpdicsXG4gICAgbGF5b3V0OiB0b29sdGlwUm9vdCxcbiAgICBiYXNlOiAnJyxcbiAgICB2YXJpYXRpb25zOiB7XG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGNzczogdmlld0NTUyxcbiAgICAgICAgfSxcbiAgICAgICAgc2l6ZToge1xuICAgICAgICAgICAgY3NzOiBzaXplQ1NTLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgdmlldzogJ2RlZmF1bHQnLFxuICAgICAgICBzaXplOiAnbScsXG4gICAgfSxcbn07XG4iXX0= */"));
39
39
 
40
40
  /**
41
41
  * Компонент для текстовых подсказок. Основное предназначение — подписи к блокам.
@@ -53,7 +53,7 @@ var tooltipRoot = exports.tooltipRoot = function tooltipRoot(Root) {
53
53
  arrow = _ref.arrow,
54
54
  animated = _ref.animated,
55
55
  _ref$offset = _ref.offset,
56
- offset = _ref$offset === void 0 ? [0, 8] : _ref$offset,
56
+ offset = _ref$offset === void 0 ? [3, 8] : _ref$offset,
57
57
  minWidth = _ref.minWidth,
58
58
  maxWidth = _ref.maxWidth,
59
59
  _ref$placement = _ref.placement,
@@ -5,8 +5,30 @@ import type { StoryObj, Meta } from '@storybook/react';
5
5
 
6
6
  import { Button } from '../Button/Button';
7
7
  import { WithTheme } from '../../../_helpers';
8
+ import { IconDisclosureRight } from '../../../../components/_Icon';
9
+ import { IconButton } from '../IconButton/IconButton';
8
10
 
9
- import { Popover } from './Popover';
11
+ import { Popover, PopoverPlacement } from './Popover';
12
+
13
+ const placements: Array<PopoverPlacement> = [
14
+ 'top',
15
+ 'top-start',
16
+ 'top-end',
17
+
18
+ 'bottom',
19
+ 'bottom-start',
20
+ 'bottom-end',
21
+
22
+ 'left',
23
+ 'left-start',
24
+ 'left-end',
25
+
26
+ 'right',
27
+ 'right-start',
28
+ 'right-end',
29
+
30
+ 'auto',
31
+ ];
10
32
 
11
33
  import './style.css';
12
34
 
@@ -16,7 +38,7 @@ const meta: Meta<typeof Popover> = {
16
38
  component: Popover,
17
39
  argTypes: {
18
40
  placement: {
19
- options: ['top', 'bottom', 'right', 'left', 'auto'],
41
+ options: placements,
20
42
  control: {
21
43
  type: 'select',
22
44
  },
@@ -116,5 +138,56 @@ const StoryDefault = (args: StoryPopoverProps) => {
116
138
  };
117
139
 
118
140
  export const Default: StoryObj<StoryPopoverProps> = {
141
+ args: {
142
+ placement: 'bottom-start',
143
+ },
119
144
  render: (args) => <StoryDefault {...args} />,
120
145
  };
146
+
147
+ const StoryIcon = (args: StoryPopoverProps) => {
148
+ const { skidding = 0, distance = 0 } = args;
149
+
150
+ const [isOpen, setIsOpen] = useState(false);
151
+
152
+ return (
153
+ <div
154
+ style={{
155
+ marginLeft: '250px',
156
+ marginTop: '250px',
157
+ }}
158
+ >
159
+ <Popover
160
+ opened={isOpen}
161
+ onToggle={(is) => setIsOpen(is)}
162
+ frame="theme-root"
163
+ usePortal={false}
164
+ role="presentation"
165
+ id="popover"
166
+ target={
167
+ <IconButton
168
+ size="xs"
169
+ view="success"
170
+ style={{
171
+ width: '1rem',
172
+ height: '1rem',
173
+ }}
174
+ >
175
+ <IconDisclosureRight size="xs" />
176
+ </IconButton>
177
+ }
178
+ offset={[skidding, distance]}
179
+ {...args}
180
+ distance={6}
181
+ >
182
+ <StyledContent>
183
+ <>Content</>
184
+ <Button onClick={() => setIsOpen(false)}>Close</Button>
185
+ </StyledContent>
186
+ </Popover>
187
+ </div>
188
+ );
189
+ };
190
+
191
+ export const Icon: StoryObj<StoryPopoverProps> = {
192
+ render: (args) => <StoryIcon {...args} />,
193
+ };