@salutejs/plasma-new-hope 0.324.1-canary.2000.15296057389.0 → 0.324.1-canary.2001.15297455776.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.
@@ -179,6 +179,9 @@ var popoverRoot = function popoverRoot(Root) {
179
179
  if (typeof frame !== 'string' && frame && frame.current) {
180
180
  portal = frame.current;
181
181
  }
182
+ if (typeof frame === 'string' && frame) {
183
+ portal = document.getElementById(frame);
184
+ }
182
185
  if (!usePortal && /*#__PURE__*/React.isValidElement(target)) {
183
186
  portal = rootRef.current;
184
187
  }
@@ -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';\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 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","_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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"}
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 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 (typeof frame === 'string' && frame) {\n portal = document.getElementById(frame);\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","_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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"}
@@ -192,6 +192,9 @@ var popoverRoot = exports.popoverRoot = function popoverRoot(Root) {
192
192
  if (typeof frame !== 'string' && frame && frame.current) {
193
193
  portal = frame.current;
194
194
  }
195
+ if (typeof frame === 'string' && frame) {
196
+ portal = document.getElementById(frame);
197
+ }
195
198
  if (!usePortal && /*#__PURE__*/(0, _react.isValidElement)(target)) {
196
199
  portal = rootRef.current;
197
200
  }
@@ -184,6 +184,9 @@ export var popoverRoot = function popoverRoot(Root) {
184
184
  if (typeof frame !== 'string' && frame && frame.current) {
185
185
  portal = frame.current;
186
186
  }
187
+ if (typeof frame === 'string' && frame) {
188
+ portal = document.getElementById(frame);
189
+ }
187
190
  if (!usePortal && /*#__PURE__*/isValidElement(target)) {
188
191
  portal = rootRef.current;
189
192
  }
@@ -171,6 +171,9 @@ var popoverRoot = function popoverRoot(Root) {
171
171
  if (typeof frame !== 'string' && frame && frame.current) {
172
172
  portal = frame.current;
173
173
  }
174
+ if (typeof frame === 'string' && frame) {
175
+ portal = document.getElementById(frame);
176
+ }
174
177
  if (!usePortal && /*#__PURE__*/isValidElement(target)) {
175
178
  portal = rootRef.current;
176
179
  }
@@ -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';\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 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","_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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"}
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 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 (typeof frame === 'string' && frame) {\n portal = document.getElementById(frame);\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","_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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.324.1-canary.2000.15296057389.0",
3
+ "version": "0.324.1-canary.2001.15297455776.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -137,5 +137,5 @@
137
137
  "sideEffects": [
138
138
  "*.css"
139
139
  ],
140
- "gitHead": "4899d2528253e397c4453d5856c4f3705793b903"
140
+ "gitHead": "ec3b9ef59fb0b7256d6dfd86c17b5dd04cdc8d36"
141
141
  }
@@ -192,6 +192,9 @@ var popoverRoot = exports.popoverRoot = function popoverRoot(Root) {
192
192
  if (typeof frame !== 'string' && frame && frame.current) {
193
193
  portal = frame.current;
194
194
  }
195
+ if (typeof frame === 'string' && frame) {
196
+ portal = document.getElementById(frame);
197
+ }
195
198
  if (!usePortal && /*#__PURE__*/(0, _react.isValidElement)(target)) {
196
199
  portal = rootRef.current;
197
200
  }
@@ -184,6 +184,9 @@ export var popoverRoot = function popoverRoot(Root) {
184
184
  if (typeof frame !== 'string' && frame && frame.current) {
185
185
  portal = frame.current;
186
186
  }
187
+ if (typeof frame === 'string' && frame) {
188
+ portal = document.getElementById(frame);
189
+ }
187
190
  if (!usePortal && /*#__PURE__*/isValidElement(target)) {
188
191
  portal = rootRef.current;
189
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/Popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+E,MAAM,OAAO,CAAC;AAIpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMrD,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKtE,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,WAAW,SAAU,UAAU,cAAc,EAAE,YAAY,CAAC,+JAwRpE,CAAC;AAEN,eAAO,MAAM,aAAa;;;mBA1RQ,UAAU,cAAc,EAAE,YAAY,CAAC;;;;;;;;;;CAuSxE,CAAC"}
1
+ {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/Popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+E,MAAM,OAAO,CAAC;AAIpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMrD,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKtE,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,WAAW,SAAU,UAAU,cAAc,EAAE,YAAY,CAAC,+JA4RpE,CAAC;AAEN,eAAO,MAAM,aAAa;;;mBA9RQ,UAAU,cAAc,EAAE,YAAY,CAAC;;;;;;;;;;CA2SxE,CAAC"}