@chayns-components/core 5.0.36 → 5.0.37

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.
@@ -76,6 +76,7 @@ const Popup = /*#__PURE__*/(0, _react2.forwardRef)(({
76
76
  if (!newContainer) {
77
77
  return;
78
78
  }
79
+ const HORIZONTAL_PADDING = 23;
79
80
  const {
80
81
  height: pseudoHeight,
81
82
  width: pseudoWidth
@@ -98,20 +99,26 @@ const Popup = /*#__PURE__*/(0, _react2.forwardRef)(({
98
99
  const childrenCenterX = childrenLeft + childrenWidth / 2;
99
100
  const x = (childrenCenterX - left) / zoomX + element.scrollLeft;
100
101
  const y = (childrenTop + childrenHeight / 2 - top) / zoomY + element.scrollTop - yOffset;
102
+
103
+ // Use one coordinate space for all horizontal bounds checks.
104
+ const boundaryLeft = element.scrollLeft;
105
+ const boundaryWidth = containerWidth / zoomX;
106
+ const boundaryRight = boundaryLeft + boundaryWidth;
107
+ const relativeX = x - boundaryLeft;
101
108
  const shouldShowBottom = pseudoHeight > childrenTop - 25 || alignment === _popup.PopupAlignment.BottomLeft || alignment === _popup.PopupAlignment.BottomRight || alignment === _popup.PopupAlignment.BottomCenter;
102
109
  const shouldForceRight = shouldShowBottom ? alignment === _popup.PopupAlignment.BottomRight : alignment === _popup.PopupAlignment.TopRight;
103
110
  const shouldUseCenterAlignment = shouldShowBottom ? alignment === _popup.PopupAlignment.BottomCenter : alignment === _popup.PopupAlignment.TopCenter;
104
- const hasEnoughSpaceForCenter = pseudoWidth / 2 <= childrenCenterX - 25 && pseudoWidth / 2 <= window.innerWidth - childrenCenterX - 25;
111
+ const hasEnoughSpaceForCenter = pseudoWidth / 2 <= relativeX - HORIZONTAL_PADDING && pseudoWidth / 2 <= boundaryWidth - relativeX - HORIZONTAL_PADDING;
105
112
  if (shouldUseCenterAlignment && hasEnoughSpaceForCenter) {
106
113
  setInternalAlignment(shouldShowBottom ? _popup.PopupAlignment.BottomCenter : _popup.PopupAlignment.TopCenter);
107
114
  setOffset(0);
108
115
  setCoordinates({
109
- x: x < 23 ? 23 : x,
116
+ x: Math.min(Math.max(x, boundaryLeft + HORIZONTAL_PADDING), boundaryRight - HORIZONTAL_PADDING),
110
117
  y
111
118
  });
112
119
  } else {
113
120
  let isRight = false;
114
- if (pseudoWidth > childrenCenterX - 25 || shouldForceRight) {
121
+ if (pseudoWidth > relativeX - HORIZONTAL_PADDING || shouldForceRight) {
115
122
  setInternalAlignment(shouldShowBottom ? _popup.PopupAlignment.BottomRight : _popup.PopupAlignment.TopRight);
116
123
  isRight = true;
117
124
  } else {
@@ -119,15 +126,15 @@ const Popup = /*#__PURE__*/(0, _react2.forwardRef)(({
119
126
  }
120
127
  let newOffset;
121
128
  if (isRight) {
122
- newOffset = x + pseudoWidth >= window.innerWidth ? x + pseudoWidth - window.innerWidth : 0;
129
+ newOffset = relativeX + pseudoWidth >= boundaryWidth ? relativeX + pseudoWidth - boundaryWidth : 0;
123
130
  } else {
124
- const right = window.innerWidth - childrenCenterX;
125
- newOffset = right + pseudoWidth >= window.innerWidth ? right + pseudoWidth - window.innerWidth : 0;
131
+ const right = boundaryWidth - relativeX;
132
+ newOffset = right + pseudoWidth >= boundaryWidth ? right + pseudoWidth - boundaryWidth : 0;
126
133
  }
127
134
  setOffset(newOffset);
128
135
  const newX = x - newOffset;
129
136
  setCoordinates({
130
- x: newX < 23 ? 23 : newX,
137
+ x: Math.min(Math.max(newX, boundaryLeft + HORIZONTAL_PADDING), boundaryRight - HORIZONTAL_PADDING),
131
138
  y
132
139
  });
133
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Popup.js","names":["_react","require","_react2","_interopRequireWildcard","_reactDom","_uuid","_popup","_AreaContextProvider","_interopRequireDefault","_PopupContentWrapper","_Popup","_element","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Popup","forwardRef","alignment","content","onShow","container","onHide","children","shouldHideOnChildrenLeave","shouldShowOnHover","shouldUseChildrenWidth","shouldScrollWithContent","shouldUseFullWidth","yOffset","shouldBeOpen","ref","coordinates","setCoordinates","useState","x","y","internalAlignment","setInternalAlignment","PopupAlignment","TopLeft","offset","setOffset","isOpen","setIsOpen","portal","setPortal","pseudoSize","setPseudoSize","newContainer","setNewContainer","contentMaxHeight","setContentMaxHeight","undefined","timeout","useRef","uuid","useUuid","height","width","measuredElement","useMeasuredClone","shouldPreventTextWrapping","popupContentRef","popupRef","useEffect","current","el","element","closest","Element","handleShow","useCallback","pseudoHeight","pseudoWidth","childrenHeight","left","childrenLeft","top","childrenTop","childrenWidth","getBoundingClientRect","document","body","containerHeight","containerWidth","zoomX","offsetWidth","zoomY","offsetHeight","childrenCenterX","scrollLeft","scrollTop","shouldShowBottom","BottomLeft","BottomRight","BottomCenter","shouldForceRight","TopRight","shouldUseCenterAlignment","TopCenter","hasEnoughSpaceForCenter","window","innerWidth","isRight","newOffset","right","newX","handleReposition","addEventListener","removeEventListener","viewHeight","clientHeight","includes","handleChildrenClick","handleHide","handleMouseEnter","clearTimeout","handleMouseLeave","setTimeout","handleDocumentClick","event","_popupContentRef$curr","contains","target","useImperativeHandle","hide","show","createPortal","createElement","AnimatePresence","initial","key","maxHeight","onMouseLeave","onMouseEnter","shouldChangeColor","Fragment","StyledPopup","className","onClick","$shouldUseChildrenWidth","$shouldUseFullWidth","displayName","_default","exports"],"sources":["../../../../src/components/popup/Popup.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n forwardRef,\n ReactNode,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useUuid } from '../../hooks/uuid';\nimport { PopupAlignment, PopupCoordinates, PopupRef } from '../../types/popup';\nimport AreaContextProvider from '../area-provider/AreaContextProvider';\nimport PopupContentWrapper from './popup-content-wrapper/PopupContentWrapper';\nimport { StyledPopup } from './Popup.styles';\nimport { useMeasuredClone } from '../../hooks/element';\n\nexport type PopupProps = {\n /**\n * The alignment of the popup. By default, the popup will calculate the best alignment.\n */\n alignment?: PopupAlignment;\n /**\n * The element over which the content of the `ContextMenu` should be displayed.\n */\n children?: ReactNode;\n /**\n * The element where the content of the `Popup` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * The content that should be displayed inside the popup.\n */\n content: ReactNode;\n /**\n * Function to be executed when the content of the Context menu has been hidden.\n */\n onHide?: VoidFunction;\n /**\n * Function to be executed when the content of the Context menu has been shown.\n */\n onShow?: VoidFunction;\n /**\n * Whether the tooltip should be hidden after the children is not hovered.\n */\n shouldHideOnChildrenLeave?: boolean;\n /**\n * Whether the popup should scroll with the content.\n */\n shouldScrollWithContent?: boolean;\n /**\n * Whether the popup should be opened on hover. If not, the popup will be opened on click.\n */\n shouldShowOnHover?: boolean;\n /**\n * Whether the width of the children should be used.\n */\n shouldUseChildrenWidth?: boolean;\n /**\n * Whether the popup children should use the full width.\n */\n shouldUseFullWidth?: boolean;\n /**\n * The Y offset of the popup to the children.\n */\n yOffset?: number;\n /**\n * Whether the popup should be open. This can be used to control the popup from outside.\n */\n shouldBeOpen?: boolean;\n};\n\nconst Popup = forwardRef<PopupRef, PopupProps>(\n (\n {\n alignment,\n content,\n onShow,\n container,\n onHide,\n children,\n shouldHideOnChildrenLeave,\n shouldShowOnHover = false,\n shouldUseChildrenWidth = true,\n shouldScrollWithContent = true,\n shouldUseFullWidth = false,\n yOffset = 0,\n shouldBeOpen = false,\n },\n ref,\n ) => {\n const [coordinates, setCoordinates] = useState<PopupCoordinates>({\n x: 0,\n y: 0,\n });\n\n const [internalAlignment, setInternalAlignment] = useState<PopupAlignment>(\n PopupAlignment.TopLeft,\n );\n const [offset, setOffset] = useState<number>(0);\n const [isOpen, setIsOpen] = useState(shouldBeOpen);\n const [portal, setPortal] = useState<ReactPortal>();\n const [pseudoSize, setPseudoSize] = useState<{ height: number; width: number }>();\n const [newContainer, setNewContainer] = useState<Element | null>(container ?? null);\n const [contentMaxHeight, setContentMaxHeight] = useState<number | undefined>(undefined);\n\n const timeout = useRef<number>();\n\n const uuid = useUuid();\n\n const { height, width, measuredElement } = useMeasuredClone({\n content,\n shouldPreventTextWrapping: !shouldUseChildrenWidth,\n });\n\n const popupContentRef = useRef<HTMLDivElement>(null);\n const popupRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (popupRef.current && !container) {\n const el = popupRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner, .page-provider, .tapp, body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n useEffect(() => {\n setPseudoSize({ height, width });\n }, [height, width]);\n\n const handleShow = useCallback(() => {\n if (popupRef.current && pseudoSize) {\n if (!newContainer) {\n return;\n }\n\n const { height: pseudoHeight, width: pseudoWidth } = pseudoSize;\n\n const {\n height: childrenHeight,\n left: childrenLeft,\n top: childrenTop,\n width: childrenWidth,\n } = popupRef.current.getBoundingClientRect();\n\n const element = shouldScrollWithContent ? newContainer : document.body;\n\n const {\n height: containerHeight,\n width: containerWidth,\n top,\n left,\n } = element.getBoundingClientRect();\n\n const zoomX = containerWidth / (element as HTMLElement).offsetWidth;\n const zoomY = containerHeight / (element as HTMLElement).offsetHeight;\n\n const childrenCenterX = childrenLeft + childrenWidth / 2;\n const x = (childrenCenterX - left) / zoomX + element.scrollLeft;\n const y =\n (childrenTop + childrenHeight / 2 - top) / zoomY + element.scrollTop - yOffset;\n\n const shouldShowBottom =\n pseudoHeight > childrenTop - 25 ||\n alignment === PopupAlignment.BottomLeft ||\n alignment === PopupAlignment.BottomRight ||\n alignment === PopupAlignment.BottomCenter;\n\n const shouldForceRight = shouldShowBottom\n ? alignment === PopupAlignment.BottomRight\n : alignment === PopupAlignment.TopRight;\n\n const shouldUseCenterAlignment = shouldShowBottom\n ? alignment === PopupAlignment.BottomCenter\n : alignment === PopupAlignment.TopCenter;\n\n const hasEnoughSpaceForCenter =\n pseudoWidth / 2 <= childrenCenterX - 25 &&\n pseudoWidth / 2 <= window.innerWidth - childrenCenterX - 25;\n\n if (shouldUseCenterAlignment && hasEnoughSpaceForCenter) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomCenter : PopupAlignment.TopCenter,\n );\n setOffset(0);\n setCoordinates({\n x: x < 23 ? 23 : x,\n y,\n });\n } else {\n let isRight = false;\n\n if (pseudoWidth > childrenCenterX - 25 || shouldForceRight) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomRight : PopupAlignment.TopRight,\n );\n isRight = true;\n } else {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomLeft : PopupAlignment.TopLeft,\n );\n }\n\n let newOffset;\n\n if (isRight) {\n newOffset =\n x + pseudoWidth >= window.innerWidth\n ? x + pseudoWidth - window.innerWidth\n : 0;\n } else {\n const right = window.innerWidth - childrenCenterX;\n\n newOffset =\n right + pseudoWidth >= window.innerWidth\n ? right + pseudoWidth - window.innerWidth\n : 0;\n }\n\n setOffset(newOffset);\n\n const newX = x - newOffset;\n\n setCoordinates({\n x: newX < 23 ? 23 : newX,\n y,\n });\n }\n\n setIsOpen(true);\n }\n }, [alignment, newContainer, pseudoSize, shouldScrollWithContent, yOffset]);\n\n useEffect(() => {\n if (shouldBeOpen) {\n handleShow();\n }\n }, [handleShow, shouldBeOpen]);\n\n const handleReposition = useCallback(() => {\n if (isOpen) {\n handleShow();\n }\n }, [handleShow, isOpen]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n window.addEventListener('resize', handleReposition);\n window.addEventListener('scroll', handleReposition, true);\n\n return () => {\n window.removeEventListener('resize', handleReposition);\n window.removeEventListener('scroll', handleReposition, true);\n };\n }, [handleReposition, isOpen]);\n\n useEffect(() => {\n if (!newContainer || !popupRef.current) return;\n\n const viewHeight = newContainer.clientHeight;\n const childrenHeight = popupRef.current.getBoundingClientRect().height;\n\n if (\n [\n PopupAlignment.TopLeft,\n PopupAlignment.TopRight,\n PopupAlignment.TopCenter,\n ].includes(internalAlignment)\n ) {\n setContentMaxHeight(coordinates.y - 20);\n } else {\n setContentMaxHeight(viewHeight - childrenHeight - coordinates.y - 20);\n }\n }, [coordinates.y, internalAlignment, newContainer]);\n\n const handleChildrenClick = () => {\n handleShow();\n };\n\n const handleHide = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const handleMouseEnter = useCallback(() => {\n if (shouldShowOnHover) {\n window.clearTimeout(timeout.current);\n handleShow();\n }\n }, [handleShow, shouldShowOnHover]);\n\n const handleMouseLeave = useCallback(() => {\n if (!shouldShowOnHover) {\n return;\n }\n\n if (shouldHideOnChildrenLeave) {\n handleHide();\n\n return;\n }\n\n timeout.current = window.setTimeout(() => {\n handleHide();\n }, 500);\n }, [handleHide, shouldHideOnChildrenLeave, shouldShowOnHover]);\n\n const handleDocumentClick = useCallback<EventListener>(\n (event) => {\n if (!popupContentRef.current?.contains(event.target as Node)) {\n handleHide();\n }\n },\n [handleHide],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n useEffect(() => {\n if (isOpen && !shouldBeOpen) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n\n if (typeof onShow === 'function') {\n onShow();\n }\n } else if (typeof onHide === 'function') {\n onHide();\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n };\n }, [handleDocumentClick, handleHide, isOpen, onHide, onShow, shouldBeOpen]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isOpen && (\n <PopupContentWrapper\n width={pseudoSize?.width ?? 0}\n offset={offset}\n shouldScrollWithContent={shouldScrollWithContent}\n coordinates={coordinates}\n key={`tooltip_${uuid}`}\n maxHeight={contentMaxHeight}\n alignment={internalAlignment}\n ref={popupContentRef}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n >\n <AreaContextProvider shouldChangeColor>\n {content}\n </AreaContextProvider>\n </PopupContentWrapper>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n contentMaxHeight,\n internalAlignment,\n newContainer,\n content,\n coordinates,\n handleMouseEnter,\n handleMouseLeave,\n isOpen,\n offset,\n pseudoSize?.width,\n uuid,\n shouldScrollWithContent,\n ]);\n\n return (\n <>\n {measuredElement}\n <StyledPopup\n className=\"beta-chayns-popup\"\n ref={popupRef}\n onClick={handleChildrenClick}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n $shouldUseChildrenWidth={shouldUseChildrenWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n >\n {children}\n </StyledPopup>\n {portal}\n </>\n );\n },\n);\n\nPopup.displayName = 'Popup';\n\nexport default Popup;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Popup.js","names":["_react","require","_react2","_interopRequireWildcard","_reactDom","_uuid","_popup","_AreaContextProvider","_interopRequireDefault","_PopupContentWrapper","_Popup","_element","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Popup","forwardRef","alignment","content","onShow","container","onHide","children","shouldHideOnChildrenLeave","shouldShowOnHover","shouldUseChildrenWidth","shouldScrollWithContent","shouldUseFullWidth","yOffset","shouldBeOpen","ref","coordinates","setCoordinates","useState","x","y","internalAlignment","setInternalAlignment","PopupAlignment","TopLeft","offset","setOffset","isOpen","setIsOpen","portal","setPortal","pseudoSize","setPseudoSize","newContainer","setNewContainer","contentMaxHeight","setContentMaxHeight","undefined","timeout","useRef","uuid","useUuid","height","width","measuredElement","useMeasuredClone","shouldPreventTextWrapping","popupContentRef","popupRef","useEffect","current","el","element","closest","Element","handleShow","useCallback","HORIZONTAL_PADDING","pseudoHeight","pseudoWidth","childrenHeight","left","childrenLeft","top","childrenTop","childrenWidth","getBoundingClientRect","document","body","containerHeight","containerWidth","zoomX","offsetWidth","zoomY","offsetHeight","childrenCenterX","scrollLeft","scrollTop","boundaryLeft","boundaryWidth","boundaryRight","relativeX","shouldShowBottom","BottomLeft","BottomRight","BottomCenter","shouldForceRight","TopRight","shouldUseCenterAlignment","TopCenter","hasEnoughSpaceForCenter","Math","min","max","isRight","newOffset","right","newX","handleReposition","window","addEventListener","removeEventListener","viewHeight","clientHeight","includes","handleChildrenClick","handleHide","handleMouseEnter","clearTimeout","handleMouseLeave","setTimeout","handleDocumentClick","event","_popupContentRef$curr","contains","target","useImperativeHandle","hide","show","createPortal","createElement","AnimatePresence","initial","key","maxHeight","onMouseLeave","onMouseEnter","shouldChangeColor","Fragment","StyledPopup","className","onClick","$shouldUseChildrenWidth","$shouldUseFullWidth","displayName","_default","exports"],"sources":["../../../../src/components/popup/Popup.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n forwardRef,\n ReactNode,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useUuid } from '../../hooks/uuid';\nimport { PopupAlignment, PopupCoordinates, PopupRef } from '../../types/popup';\nimport AreaContextProvider from '../area-provider/AreaContextProvider';\nimport PopupContentWrapper from './popup-content-wrapper/PopupContentWrapper';\nimport { StyledPopup } from './Popup.styles';\nimport { useMeasuredClone } from '../../hooks/element';\n\nexport type PopupProps = {\n /**\n * The alignment of the popup. By default, the popup will calculate the best alignment.\n */\n alignment?: PopupAlignment;\n /**\n * The element over which the content of the `ContextMenu` should be displayed.\n */\n children?: ReactNode;\n /**\n * The element where the content of the `Popup` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * The content that should be displayed inside the popup.\n */\n content: ReactNode;\n /**\n * Function to be executed when the content of the Context menu has been hidden.\n */\n onHide?: VoidFunction;\n /**\n * Function to be executed when the content of the Context menu has been shown.\n */\n onShow?: VoidFunction;\n /**\n * Whether the tooltip should be hidden after the children is not hovered.\n */\n shouldHideOnChildrenLeave?: boolean;\n /**\n * Whether the popup should scroll with the content.\n */\n shouldScrollWithContent?: boolean;\n /**\n * Whether the popup should be opened on hover. If not, the popup will be opened on click.\n */\n shouldShowOnHover?: boolean;\n /**\n * Whether the width of the children should be used.\n */\n shouldUseChildrenWidth?: boolean;\n /**\n * Whether the popup children should use the full width.\n */\n shouldUseFullWidth?: boolean;\n /**\n * The Y offset of the popup to the children.\n */\n yOffset?: number;\n /**\n * Whether the popup should be open. This can be used to control the popup from outside.\n */\n shouldBeOpen?: boolean;\n};\n\nconst Popup = forwardRef<PopupRef, PopupProps>(\n (\n {\n alignment,\n content,\n onShow,\n container,\n onHide,\n children,\n shouldHideOnChildrenLeave,\n shouldShowOnHover = false,\n shouldUseChildrenWidth = true,\n shouldScrollWithContent = true,\n shouldUseFullWidth = false,\n yOffset = 0,\n shouldBeOpen = false,\n },\n ref,\n ) => {\n const [coordinates, setCoordinates] = useState<PopupCoordinates>({\n x: 0,\n y: 0,\n });\n\n const [internalAlignment, setInternalAlignment] = useState<PopupAlignment>(\n PopupAlignment.TopLeft,\n );\n const [offset, setOffset] = useState<number>(0);\n const [isOpen, setIsOpen] = useState(shouldBeOpen);\n const [portal, setPortal] = useState<ReactPortal>();\n const [pseudoSize, setPseudoSize] = useState<{ height: number; width: number }>();\n const [newContainer, setNewContainer] = useState<Element | null>(container ?? null);\n const [contentMaxHeight, setContentMaxHeight] = useState<number | undefined>(undefined);\n\n const timeout = useRef<number>();\n\n const uuid = useUuid();\n\n const { height, width, measuredElement } = useMeasuredClone({\n content,\n shouldPreventTextWrapping: !shouldUseChildrenWidth,\n });\n\n const popupContentRef = useRef<HTMLDivElement>(null);\n const popupRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (popupRef.current && !container) {\n const el = popupRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner, .page-provider, .tapp, body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n useEffect(() => {\n setPseudoSize({ height, width });\n }, [height, width]);\n\n const handleShow = useCallback(() => {\n if (popupRef.current && pseudoSize) {\n if (!newContainer) {\n return;\n }\n\n const HORIZONTAL_PADDING = 23;\n\n const { height: pseudoHeight, width: pseudoWidth } = pseudoSize;\n\n const {\n height: childrenHeight,\n left: childrenLeft,\n top: childrenTop,\n width: childrenWidth,\n } = popupRef.current.getBoundingClientRect();\n\n const element = shouldScrollWithContent ? newContainer : document.body;\n\n const {\n height: containerHeight,\n width: containerWidth,\n top,\n left,\n } = element.getBoundingClientRect();\n\n const zoomX = containerWidth / (element as HTMLElement).offsetWidth;\n const zoomY = containerHeight / (element as HTMLElement).offsetHeight;\n\n const childrenCenterX = childrenLeft + childrenWidth / 2;\n const x = (childrenCenterX - left) / zoomX + element.scrollLeft;\n const y =\n (childrenTop + childrenHeight / 2 - top) / zoomY + element.scrollTop - yOffset;\n\n // Use one coordinate space for all horizontal bounds checks.\n const boundaryLeft = element.scrollLeft;\n const boundaryWidth = containerWidth / zoomX;\n const boundaryRight = boundaryLeft + boundaryWidth;\n const relativeX = x - boundaryLeft;\n\n const shouldShowBottom =\n pseudoHeight > childrenTop - 25 ||\n alignment === PopupAlignment.BottomLeft ||\n alignment === PopupAlignment.BottomRight ||\n alignment === PopupAlignment.BottomCenter;\n\n const shouldForceRight = shouldShowBottom\n ? alignment === PopupAlignment.BottomRight\n : alignment === PopupAlignment.TopRight;\n\n const shouldUseCenterAlignment = shouldShowBottom\n ? alignment === PopupAlignment.BottomCenter\n : alignment === PopupAlignment.TopCenter;\n\n const hasEnoughSpaceForCenter =\n pseudoWidth / 2 <= relativeX - HORIZONTAL_PADDING &&\n pseudoWidth / 2 <= boundaryWidth - relativeX - HORIZONTAL_PADDING;\n\n if (shouldUseCenterAlignment && hasEnoughSpaceForCenter) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomCenter : PopupAlignment.TopCenter,\n );\n setOffset(0);\n setCoordinates({\n x: Math.min(\n Math.max(x, boundaryLeft + HORIZONTAL_PADDING),\n boundaryRight - HORIZONTAL_PADDING,\n ),\n y,\n });\n } else {\n let isRight = false;\n\n if (pseudoWidth > relativeX - HORIZONTAL_PADDING || shouldForceRight) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomRight : PopupAlignment.TopRight,\n );\n isRight = true;\n } else {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomLeft : PopupAlignment.TopLeft,\n );\n }\n\n let newOffset;\n\n if (isRight) {\n newOffset =\n relativeX + pseudoWidth >= boundaryWidth\n ? relativeX + pseudoWidth - boundaryWidth\n : 0;\n } else {\n const right = boundaryWidth - relativeX;\n\n newOffset =\n right + pseudoWidth >= boundaryWidth\n ? right + pseudoWidth - boundaryWidth\n : 0;\n }\n\n setOffset(newOffset);\n\n const newX = x - newOffset;\n\n setCoordinates({\n x: Math.min(\n Math.max(newX, boundaryLeft + HORIZONTAL_PADDING),\n boundaryRight - HORIZONTAL_PADDING,\n ),\n y,\n });\n }\n\n setIsOpen(true);\n }\n }, [alignment, newContainer, pseudoSize, shouldScrollWithContent, yOffset]);\n\n useEffect(() => {\n if (shouldBeOpen) {\n handleShow();\n }\n }, [handleShow, shouldBeOpen]);\n\n const handleReposition = useCallback(() => {\n if (isOpen) {\n handleShow();\n }\n }, [handleShow, isOpen]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n window.addEventListener('resize', handleReposition);\n window.addEventListener('scroll', handleReposition, true);\n\n return () => {\n window.removeEventListener('resize', handleReposition);\n window.removeEventListener('scroll', handleReposition, true);\n };\n }, [handleReposition, isOpen]);\n\n useEffect(() => {\n if (!newContainer || !popupRef.current) return;\n\n const viewHeight = newContainer.clientHeight;\n const childrenHeight = popupRef.current.getBoundingClientRect().height;\n\n if (\n [\n PopupAlignment.TopLeft,\n PopupAlignment.TopRight,\n PopupAlignment.TopCenter,\n ].includes(internalAlignment)\n ) {\n setContentMaxHeight(coordinates.y - 20);\n } else {\n setContentMaxHeight(viewHeight - childrenHeight - coordinates.y - 20);\n }\n }, [coordinates.y, internalAlignment, newContainer]);\n\n const handleChildrenClick = () => {\n handleShow();\n };\n\n const handleHide = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const handleMouseEnter = useCallback(() => {\n if (shouldShowOnHover) {\n window.clearTimeout(timeout.current);\n handleShow();\n }\n }, [handleShow, shouldShowOnHover]);\n\n const handleMouseLeave = useCallback(() => {\n if (!shouldShowOnHover) {\n return;\n }\n\n if (shouldHideOnChildrenLeave) {\n handleHide();\n\n return;\n }\n\n timeout.current = window.setTimeout(() => {\n handleHide();\n }, 500);\n }, [handleHide, shouldHideOnChildrenLeave, shouldShowOnHover]);\n\n const handleDocumentClick = useCallback<EventListener>(\n (event) => {\n if (!popupContentRef.current?.contains(event.target as Node)) {\n handleHide();\n }\n },\n [handleHide],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n useEffect(() => {\n if (isOpen && !shouldBeOpen) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n\n if (typeof onShow === 'function') {\n onShow();\n }\n } else if (typeof onHide === 'function') {\n onHide();\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n };\n }, [handleDocumentClick, handleHide, isOpen, onHide, onShow, shouldBeOpen]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isOpen && (\n <PopupContentWrapper\n width={pseudoSize?.width ?? 0}\n offset={offset}\n shouldScrollWithContent={shouldScrollWithContent}\n coordinates={coordinates}\n key={`tooltip_${uuid}`}\n maxHeight={contentMaxHeight}\n alignment={internalAlignment}\n ref={popupContentRef}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n >\n <AreaContextProvider shouldChangeColor>\n {content}\n </AreaContextProvider>\n </PopupContentWrapper>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n contentMaxHeight,\n internalAlignment,\n newContainer,\n content,\n coordinates,\n handleMouseEnter,\n handleMouseLeave,\n isOpen,\n offset,\n pseudoSize?.width,\n uuid,\n shouldScrollWithContent,\n ]);\n\n return (\n <>\n {measuredElement}\n <StyledPopup\n className=\"beta-chayns-popup\"\n ref={popupRef}\n onClick={handleChildrenClick}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n $shouldUseChildrenWidth={shouldUseChildrenWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n >\n {children}\n </StyledPopup>\n {portal}\n </>\n );\n },\n);\n\nPopup.displayName = 'Popup';\n\nexport default Popup;\n"],"mappings":"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","ignoreList":[]}
@@ -89,7 +89,7 @@ const ProgressBar = t0 => {
89
89
  t5 = $[8];
90
90
  t6 = $[9];
91
91
  }
92
- (0, _react.useEffect)(t5, t6);
92
+ (0, _react.useLayoutEffect)(t5, t6);
93
93
  let t7;
94
94
  let t8;
95
95
  if ($[10] !== coordinates) {
@@ -149,7 +149,8 @@ const ProgressBar = t0 => {
149
149
  return /*#__PURE__*/_react.default.createElement("div", {
150
150
  ref: instance => setHostContainer(instance),
151
151
  style: {
152
- border: 0
152
+ border: 0,
153
+ position: "relative"
153
154
  }
154
155
  }, /*#__PURE__*/_react.default.createElement(_ProgressBar.StyledProgressBarProgressWrapper, {
155
156
  $isBig: shouldShowLabelInline,
@@ -200,6 +201,7 @@ const ProgressBar = t0 => {
200
201
  container: hostContainer ?? undefined,
201
202
  shouldUseChildrenWidth: true,
202
203
  shouldBeOpen: true,
204
+ shouldScrollWithContent: true,
203
205
  yOffset: -12
204
206
  })))), shouldShowLabelInline && label && /*#__PURE__*/_react.default.createElement(_ProgressBar.StyledProgressBarLabel, {
205
207
  $shouldShowLabelInline: shouldShowLabelInline,
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.js","names":["_react","_interopRequireWildcard","require","_uuid","_ProgressBar","_popup","_styledComponents","_Popup","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ProgressBar","t0","$","_reactCompilerRuntime","c","percentage","label","shouldHideProgress","t1","shouldShowLabelInline","t2","steps","colors","thumbLabel","showShine","t3","height","undefined","uuid","useUuid","coordinates","setCoordinates","useState","popupRef","useRef","hostContainer","setHostContainer","theme","useContext","ThemeContext","t4","bb0","shineCount","Math","ceil","speed","t5","Array","from","length","t6","map","_","index","createElement","StyledProgressBarShine","key","$delay","shineEffect","getBoundingClientRect","useEffect","t7","t8","_popupRef$current","current","show","t9","backgroundColor","primaryTextColor","progressColor","secondaryTextColor","stepColor","thumbLabelColor","StyledProgressBarProgressWrapper","StyledMotionProgressBarProgress","$color","initial","width","left","animate","exit","transition","type","repeat","Infinity","repeatDelay","duration","StyledProgressBarBackground","ref","instance","style","border","StyledProgressBarStepWrapper","step","StyledProgressBarStep","onUpdate","_popupRef$current2","onAnimationComplete","_popupRef$current3","StyledProgressBarThumbLabel","onClick","_temp","ThemeProvider","text","alignment","PopupAlignment","TopCenter","onHide","_popupRef$current4","container","shouldUseChildrenWidth","shouldBeOpen","yOffset","StyledProgressBarLabel","$primaryColor","$secondaryColor","progressBar","t10","t11","StyledProgressBar","displayName","_default","exports","event","stopPropagation"],"sources":["../../../../src/components/progress-bar/ProgressBar.tsx"],"sourcesContent":["import React, { FC, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport {\n StyledMotionProgressBarProgress,\n StyledProgressBar,\n StyledProgressBarBackground,\n StyledProgressBarLabel,\n StyledProgressBarProgressWrapper,\n StyledProgressBarShine,\n StyledProgressBarStep,\n StyledProgressBarStepWrapper,\n StyledProgressBarThumbLabel,\n} from './ProgressBar.styles';\nimport { PopupAlignment, PopupRef } from '../../types/popup';\nimport { ThemeContext, ThemeProvider } from 'styled-components';\nimport { Theme } from '../color-scheme-provider/ColorSchemeProvider';\nimport Popup from '../popup/Popup';\n\ntype Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N\n ? Acc[number]\n : Enumerate<N, [...Acc, Acc['length']]>;\n\ntype Range<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;\n\ninterface Colors {\n backgroundColor?: string;\n progressColor?: string;\n stepColor?: string;\n primaryTextColor?: string;\n secondaryTextColor?: string;\n thumbLabelColor?: string;\n}\n\nexport type ProgressBarProps = {\n /**\n * The colors of the ProgressBar.\n */\n colors?: Colors;\n /**\n * The label that should be displayed under the progressbar.\n */\n label?: string;\n /**\n * The percentage of the progress. Number between 0 and 100.\n */\n percentage?: Range<0, 101>;\n /**\n * Whether the progress should be hide and just display the label.\n */\n shouldHideProgress?: boolean;\n /**\n * Whether the label should be displayed inside the ProgressBar.\n */\n shouldShowLabelInline?: boolean;\n /**\n * Visual marked steps.\n */\n steps?: Range<0, 101>[];\n /**\n * The label that should be displayed on the thumb of the progress bar.\n */\n thumbLabel?: React.ReactNode;\n /**\n * Whether a shine animation should be shown on the progress bar. The amount of shine is based on the percentage value.\n */\n showShine?: boolean;\n /**\n * The height of the progress bar in pixels. If not provided, it will be 10px if shouldShowLabelInline is false and 20px if shouldShowLabelInline is true.\n */\n height?: number;\n};\n\nconst ProgressBar: FC<ProgressBarProps> = ({\n percentage,\n label,\n shouldHideProgress = false,\n shouldShowLabelInline = false,\n steps,\n colors,\n thumbLabel,\n showShine = false,\n height,\n}) => {\n 'use memo';\n\n const uuid = useUuid();\n const [coordinates, setCoordinates] = useState<{ x: number; y: number }>();\n const popupRef = useRef<PopupRef | null>(null);\n const [hostContainer, setHostContainer] = useState<HTMLDivElement | null>(null);\n\n const theme = useContext(ThemeContext) as Theme | undefined;\n\n const shineEffect = useMemo(() => {\n if (!showShine || percentage === undefined) return null;\n const MIN_ANIMATION_LENGTH = 1;\n const MAX_ANIMATION_LENGTH = 5;\n const MAX_SHINE_COUNT = 6;\n const t = percentage / 100;\n\n const shineCount = Math.ceil(MAX_SHINE_COUNT * t);\n\n const speed = MIN_ANIMATION_LENGTH + (MAX_ANIMATION_LENGTH - MIN_ANIMATION_LENGTH) * t;\n\n return Array.from({ length: shineCount }).map((_, index) => (\n <StyledProgressBarShine\n /* eslint-disable-next-line react/no-array-index-key */\n key={`progress-bar-shine__${shineCount}__${index}`}\n $speed={speed}\n $delay={-(speed / shineCount) * index}\n />\n ));\n }, [percentage, showShine]);\n\n useEffect(() => {\n if (thumbLabel) setCoordinates(hostContainer?.getBoundingClientRect());\n }, [hostContainer, thumbLabel]);\n\n useEffect(() => {\n if (coordinates) popupRef.current?.show();\n }, [coordinates]);\n\n const progressBar = useMemo(() => {\n if (shouldHideProgress) {\n return null;\n }\n\n if (percentage === undefined) {\n return (\n <StyledProgressBarProgressWrapper>\n <StyledMotionProgressBarProgress\n key={`progress-bar-loop__${uuid}`}\n $color={colors?.progressColor}\n initial={{ width: '200px', left: '-200px' }}\n animate={{ width: '200px', left: '100%' }}\n exit={{ width: '200px', left: '100%' }}\n transition={{\n type: 'tween',\n repeat: Infinity,\n repeatDelay: 0,\n duration: 1,\n }}\n />\n <StyledProgressBarBackground $color={colors?.backgroundColor} />\n </StyledProgressBarProgressWrapper>\n );\n }\n\n return (\n <div ref={(instance) => setHostContainer(instance)} style={{ border: 0 }}>\n <StyledProgressBarProgressWrapper $isBig={shouldShowLabelInline} $height={height}>\n {!!steps?.length && (\n <StyledProgressBarStepWrapper>\n {steps.map((step) => (\n <StyledProgressBarStep\n $position={step}\n key={`progress-step-${step}`}\n $color={colors?.stepColor}\n />\n ))}\n </StyledProgressBarStepWrapper>\n )}\n <StyledMotionProgressBarProgress\n $height={height}\n $color={colors?.progressColor}\n key={`progress-bar__${uuid}`}\n initial={{ width: '0%' }}\n animate={{ width: `${percentage}%` }}\n exit={{ width: '0%' }}\n transition={{ type: 'tween' }}\n onUpdate={() => popupRef.current?.show()}\n onAnimationComplete={() => popupRef.current?.show()}\n >\n {showShine && shineEffect}\n {thumbLabel && (\n <StyledProgressBarThumbLabel\n onClick={(event) => event.stopPropagation()}\n >\n <ThemeProvider\n theme={{\n '000': colors?.thumbLabelColor ?? theme?.['104'],\n text: colors?.secondaryTextColor ?? theme?.['300'],\n }}\n >\n <Popup\n ref={popupRef}\n content={thumbLabel}\n alignment={PopupAlignment.TopCenter}\n onHide={() => popupRef.current?.show()}\n container={hostContainer ?? undefined}\n shouldUseChildrenWidth\n shouldBeOpen\n yOffset={-12}\n >\n {}\n </Popup>\n </ThemeProvider>\n </StyledProgressBarThumbLabel>\n )}\n </StyledMotionProgressBarProgress>\n\n {shouldShowLabelInline && label && (\n <StyledProgressBarLabel\n $shouldShowLabelInline={shouldShowLabelInline}\n $primaryColor={colors?.primaryTextColor}\n $secondaryColor={colors?.secondaryTextColor}\n $colorSplitPosition={percentage}\n >\n {label}\n </StyledProgressBarLabel>\n )}\n\n <StyledProgressBarBackground $color={colors?.backgroundColor} />\n </StyledProgressBarProgressWrapper>\n </div>\n );\n }, [\n colors?.backgroundColor,\n colors?.primaryTextColor,\n colors?.progressColor,\n colors?.secondaryTextColor,\n colors?.stepColor,\n colors?.thumbLabelColor,\n height,\n hostContainer,\n label,\n percentage,\n shineEffect,\n shouldHideProgress,\n shouldShowLabelInline,\n showShine,\n steps,\n theme,\n thumbLabel,\n uuid,\n ]);\n\n return useMemo(\n () => (\n <StyledProgressBar>\n {progressBar}\n {label && !shouldShowLabelInline && (\n <StyledProgressBarLabel $primaryColor={colors?.primaryTextColor}>\n {label}\n </StyledProgressBarLabel>\n )}\n </StyledProgressBar>\n ),\n [colors?.primaryTextColor, label, progressBar, shouldShowLabelInline],\n );\n};\n\nProgressBar.displayName = 'ProgressBar';\n\nexport default ProgressBar;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ProgressBar.js","names":["_react","_interopRequireWildcard","require","_uuid","_ProgressBar","_popup","_styledComponents","_Popup","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ProgressBar","t0","$","_reactCompilerRuntime","c","percentage","label","shouldHideProgress","t1","shouldShowLabelInline","t2","steps","colors","thumbLabel","showShine","t3","height","undefined","uuid","useUuid","coordinates","setCoordinates","useState","popupRef","useRef","hostContainer","setHostContainer","theme","useContext","ThemeContext","t4","bb0","shineCount","Math","ceil","speed","t5","Array","from","length","t6","map","_","index","createElement","StyledProgressBarShine","key","$delay","shineEffect","getBoundingClientRect","useLayoutEffect","t7","t8","_popupRef$current","current","show","useEffect","t9","backgroundColor","primaryTextColor","progressColor","secondaryTextColor","stepColor","thumbLabelColor","StyledProgressBarProgressWrapper","StyledMotionProgressBarProgress","$color","initial","width","left","animate","exit","transition","type","repeat","Infinity","repeatDelay","duration","StyledProgressBarBackground","ref","instance","style","border","position","StyledProgressBarStepWrapper","step","StyledProgressBarStep","onUpdate","_popupRef$current2","onAnimationComplete","_popupRef$current3","StyledProgressBarThumbLabel","onClick","_temp","ThemeProvider","text","alignment","PopupAlignment","TopCenter","onHide","_popupRef$current4","container","shouldUseChildrenWidth","shouldBeOpen","shouldScrollWithContent","yOffset","StyledProgressBarLabel","$primaryColor","$secondaryColor","progressBar","t10","t11","StyledProgressBar","displayName","_default","exports","event","stopPropagation"],"sources":["../../../../src/components/progress-bar/ProgressBar.tsx"],"sourcesContent":["import React, {\n FC,\n useContext,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport {\n StyledMotionProgressBarProgress,\n StyledProgressBar,\n StyledProgressBarBackground,\n StyledProgressBarLabel,\n StyledProgressBarProgressWrapper,\n StyledProgressBarShine,\n StyledProgressBarStep,\n StyledProgressBarStepWrapper,\n StyledProgressBarThumbLabel,\n} from './ProgressBar.styles';\nimport { PopupAlignment, PopupRef } from '../../types/popup';\nimport { ThemeContext, ThemeProvider } from 'styled-components';\nimport { Theme } from '../color-scheme-provider/ColorSchemeProvider';\nimport Popup from '../popup/Popup';\n\ntype Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N\n ? Acc[number]\n : Enumerate<N, [...Acc, Acc['length']]>;\n\ntype Range<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;\n\ninterface Colors {\n backgroundColor?: string;\n progressColor?: string;\n stepColor?: string;\n primaryTextColor?: string;\n secondaryTextColor?: string;\n thumbLabelColor?: string;\n}\n\nexport type ProgressBarProps = {\n /**\n * The colors of the ProgressBar.\n */\n colors?: Colors;\n /**\n * The label that should be displayed under the progressbar.\n */\n label?: string;\n /**\n * The percentage of the progress. Number between 0 and 100.\n */\n percentage?: Range<0, 101>;\n /**\n * Whether the progress should be hide and just display the label.\n */\n shouldHideProgress?: boolean;\n /**\n * Whether the label should be displayed inside the ProgressBar.\n */\n shouldShowLabelInline?: boolean;\n /**\n * Visual marked steps.\n */\n steps?: Range<0, 101>[];\n /**\n * The label that should be displayed on the thumb of the progress bar.\n */\n thumbLabel?: React.ReactNode;\n /**\n * Whether a shine animation should be shown on the progress bar. The amount of shine is based on the percentage value.\n */\n showShine?: boolean;\n /**\n * The height of the progress bar in pixels. If not provided, it will be 10px if shouldShowLabelInline is false and 20px if shouldShowLabelInline is true.\n */\n height?: number;\n};\n\nconst ProgressBar: FC<ProgressBarProps> = ({\n percentage,\n label,\n shouldHideProgress = false,\n shouldShowLabelInline = false,\n steps,\n colors,\n thumbLabel,\n showShine = false,\n height,\n}) => {\n 'use memo';\n\n const uuid = useUuid();\n const [coordinates, setCoordinates] = useState<{ x: number; y: number }>();\n const popupRef = useRef<PopupRef | null>(null);\n const [hostContainer, setHostContainer] = useState<HTMLDivElement | null>(null);\n\n const theme = useContext(ThemeContext) as Theme | undefined;\n\n const shineEffect = useMemo(() => {\n if (!showShine || percentage === undefined) return null;\n const MIN_ANIMATION_LENGTH = 1;\n const MAX_ANIMATION_LENGTH = 5;\n const MAX_SHINE_COUNT = 6;\n const t = percentage / 100;\n\n const shineCount = Math.ceil(MAX_SHINE_COUNT * t);\n\n const speed = MIN_ANIMATION_LENGTH + (MAX_ANIMATION_LENGTH - MIN_ANIMATION_LENGTH) * t;\n\n return Array.from({ length: shineCount }).map((_, index) => (\n <StyledProgressBarShine\n /* eslint-disable-next-line react/no-array-index-key */\n key={`progress-bar-shine__${shineCount}__${index}`}\n $speed={speed}\n $delay={-(speed / shineCount) * index}\n />\n ));\n }, [percentage, showShine]);\n\n useLayoutEffect(() => {\n if (thumbLabel) setCoordinates(hostContainer?.getBoundingClientRect());\n }, [hostContainer, thumbLabel]);\n\n useEffect(() => {\n if (coordinates) popupRef.current?.show();\n }, [coordinates]);\n\n const progressBar = useMemo(() => {\n if (shouldHideProgress) {\n return null;\n }\n\n if (percentage === undefined) {\n return (\n <StyledProgressBarProgressWrapper>\n <StyledMotionProgressBarProgress\n key={`progress-bar-loop__${uuid}`}\n $color={colors?.progressColor}\n initial={{ width: '200px', left: '-200px' }}\n animate={{ width: '200px', left: '100%' }}\n exit={{ width: '200px', left: '100%' }}\n transition={{\n type: 'tween',\n repeat: Infinity,\n repeatDelay: 0,\n duration: 1,\n }}\n />\n <StyledProgressBarBackground $color={colors?.backgroundColor} />\n </StyledProgressBarProgressWrapper>\n );\n }\n\n return (\n <div\n ref={(instance) => setHostContainer(instance)}\n style={{ border: 0, position: 'relative' }}\n >\n <StyledProgressBarProgressWrapper $isBig={shouldShowLabelInline} $height={height}>\n {!!steps?.length && (\n <StyledProgressBarStepWrapper>\n {steps.map((step) => (\n <StyledProgressBarStep\n $position={step}\n key={`progress-step-${step}`}\n $color={colors?.stepColor}\n />\n ))}\n </StyledProgressBarStepWrapper>\n )}\n <StyledMotionProgressBarProgress\n $height={height}\n $color={colors?.progressColor}\n key={`progress-bar__${uuid}`}\n initial={{ width: '0%' }}\n animate={{ width: `${percentage}%` }}\n exit={{ width: '0%' }}\n transition={{ type: 'tween' }}\n onUpdate={() => popupRef.current?.show()}\n onAnimationComplete={() => popupRef.current?.show()}\n >\n {showShine && shineEffect}\n {thumbLabel && (\n <StyledProgressBarThumbLabel\n onClick={(event) => event.stopPropagation()}\n >\n <ThemeProvider\n theme={{\n '000': colors?.thumbLabelColor ?? theme?.['104'],\n text: colors?.secondaryTextColor ?? theme?.['300'],\n }}\n >\n <Popup\n ref={popupRef}\n content={thumbLabel}\n alignment={PopupAlignment.TopCenter}\n onHide={() => popupRef.current?.show()}\n container={hostContainer ?? undefined}\n shouldUseChildrenWidth\n shouldBeOpen\n shouldScrollWithContent\n yOffset={-12}\n >\n {}\n </Popup>\n </ThemeProvider>\n </StyledProgressBarThumbLabel>\n )}\n </StyledMotionProgressBarProgress>\n\n {shouldShowLabelInline && label && (\n <StyledProgressBarLabel\n $shouldShowLabelInline={shouldShowLabelInline}\n $primaryColor={colors?.primaryTextColor}\n $secondaryColor={colors?.secondaryTextColor}\n $colorSplitPosition={percentage}\n >\n {label}\n </StyledProgressBarLabel>\n )}\n\n <StyledProgressBarBackground $color={colors?.backgroundColor} />\n </StyledProgressBarProgressWrapper>\n </div>\n );\n }, [\n colors?.backgroundColor,\n colors?.primaryTextColor,\n colors?.progressColor,\n colors?.secondaryTextColor,\n colors?.stepColor,\n colors?.thumbLabelColor,\n height,\n hostContainer,\n label,\n percentage,\n shineEffect,\n shouldHideProgress,\n shouldShowLabelInline,\n showShine,\n steps,\n theme,\n thumbLabel,\n uuid,\n ]);\n\n return useMemo(\n () => (\n <StyledProgressBar>\n {progressBar}\n {label && !shouldShowLabelInline && (\n <StyledProgressBarLabel $primaryColor={colors?.primaryTextColor}>\n {label}\n </StyledProgressBarLabel>\n )}\n </StyledProgressBar>\n ),\n [colors?.primaryTextColor, label, progressBar, shouldShowLabelInline],\n );\n};\n\nProgressBar.displayName = 'ProgressBar';\n\nexport default ProgressBar;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AASA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAWA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAEA,IAAAK,MAAA,GAAAC,sBAAA,CAAAN,OAAA;AAAmC,SAAAM,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAZ,uBAAA,YAAAA,CAAAQ,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAwDnC,MAAMgB,WAAiC,GAAGC,EAAA;EAAA;;EAAA,MAAAC,CAAA,OAAAC,qBAAA,CAAAC,CAAA;EAAC;IAAAC,UAAA;IAAAC,KAAA;IAAAC,kBAAA,EAAAC,EAAA;IAAAC,qBAAA,EAAAC,EAAA;IAAAC,KAAA;IAAAC,MAAA;IAAAC,UAAA;IAAAC,SAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAf,EAU1C;EAPG,MAAAM,kBAAA,GAAAC,EAA0B,KAA1BS,SAA0B,GAA1B,KAA0B,GAA1BT,EAA0B;EAC1B,MAAAC,qBAAA,GAAAC,EAA6B,KAA7BO,SAA6B,GAA7B,KAA6B,GAA7BP,EAA6B;EAI7B,MAAAI,SAAA,GAAAC,EAAiB,KAAjBE,SAAiB,GAAjB,KAAiB,GAAjBF,EAAiB;EAKjB,MAAAG,IAAA,GAAa,IAAAC,aAAO,EAAC,CAAC;EACtB,OAAAC,WAAA,EAAAC,cAAA,IAAsC,IAAAC,eAAQ,EAA2B,CAAC;EAC1E,MAAAC,QAAA,GAAiB,IAAAC,aAAM,EAAkB,IAAI,CAAC;EAC9C,OAAAC,aAAA,EAAAC,gBAAA,IAA0C,IAAAJ,eAAQ,EAAwB,IAAI,CAAC;EAE/E,MAAAK,KAAA,GAAc,IAAAC,iBAAU,EAACC,8BAAY,CAAC;EAAsB,IAAAC,EAAA;EAAAC,GAAA;IAGxD,IAAI,CAACjB,SAAqC,IAAxBT,UAAU,KAAKY,SAAS;MAAEa,EAAA,GAAO,IAAI;MAAX,MAAAC,GAAA;IAAY;IAIxD,MAAA/C,CAAA,GAAUqB,UAAU,GAAG,GAAG;IAE1B,MAAA2B,UAAA,GAAmBC,IAAI,CAAAC,IAAK,CAHJ,CAAC,GAGsBlD,CAAC,CAAC;IAEjD,MAAAmD,KAAA,GAP6B,CAAC,GAOQ,CAA2C,GAAInD,CAAC;IAAC,IAAAoD,EAAA;IAAA,IAAAlC,CAAA,QAAA8B,UAAA;MAEhFI,EAAA,GAAAC,KAAK,CAAAC,IAAK,CAAC;QAAAC,MAAA,EAAUP;MAAW,CAAC,CAAC;MAAA9B,CAAA,MAAA8B,UAAA;MAAA9B,CAAA,MAAAkC,EAAA;IAAA;MAAAA,EAAA,GAAAlC,CAAA;IAAA;IAAA,IAAAsC,EAAA;IAAA,IAAAtC,CAAA,QAAA8B,UAAA,IAAA9B,CAAA,QAAAiC,KAAA,IAAAjC,CAAA,QAAAkC,EAAA;MAAlCI,EAAA,GAAAJ,EAAkC,CAAAK,GAAI,CAAC,CAAAC,CAAA,EAAAC,KAAA,kBAC1CvE,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAACpE,YAAA,CAAAqE,sBAAsB;QAEdC,GAA6C,EAA7C,uBAAuBd,UAAU,KAAKW,KAAK,EAAE;QAC1CR,MAAK,EAALA,KAAK;QACLY,MAA6B,EAA7B,EAAEZ,KAAK,GAAGH,UAAU,CAAC,GAAGW;MAAK,CACxC,CACJ,CAAC;MAAAzC,CAAA,MAAA8B,UAAA;MAAA9B,CAAA,MAAAiC,KAAA;MAAAjC,CAAA,MAAAkC,EAAA;MAAAlC,CAAA,MAAAsC,EAAA;IAAA;MAAAA,EAAA,GAAAtC,CAAA;IAAA;IAPF4B,EAAA,GAAOU,EAOL;EAAC;EAlBP,MAAAQ,WAAA,GAAoBlB,EAmBO;EAAC,IAAAM,EAAA;EAAA,IAAAI,EAAA;EAAA,IAAAtC,CAAA,QAAAuB,aAAA,IAAAvB,CAAA,QAAAW,UAAA;IAEZuB,EAAA,GAAAA,CAAA;MACZ,IAAIvB,UAAU;QAAEQ,cAAc,CAACI,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAAwB,qBAAyB,CAAD,CAAC,CAAC;MAAA;IAAC,CAC1E;IAAET,EAAA,IAACf,aAAa,EAAEZ,UAAU,CAAC;IAAAX,CAAA,MAAAuB,aAAA;IAAAvB,CAAA,MAAAW,UAAA;IAAAX,CAAA,MAAAkC,EAAA;IAAAlC,CAAA,MAAAsC,EAAA;EAAA;IAAAJ,EAAA,GAAAlC,CAAA;IAAAsC,EAAA,GAAAtC,CAAA;EAAA;EAF9B,IAAAgD,sBAAe,EAACd,EAEf,EAAEI,EAA2B,CAAC;EAAA,IAAAW,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAlD,CAAA,SAAAkB,WAAA;IAErB+B,EAAA,GAAAA,CAAA;MACN,IAAI/B,WAAW;QAAA,IAAAiC,iBAAA;QAAA,CAAAA,iBAAA,GAAE9B,QAAQ,CAAA+B,OAAc,cAAAD,iBAAA,eAAtBA,iBAAA,CAAAE,IAAwB,CAAD,CAAC;MAAA;IAAC,CAC7C;IAAEH,EAAA,IAAChC,WAAW,CAAC;IAAAlB,CAAA,OAAAkB,WAAA;IAAAlB,CAAA,OAAAiD,EAAA;IAAAjD,CAAA,OAAAkD,EAAA;EAAA;IAAAD,EAAA,GAAAjD,CAAA;IAAAkD,EAAA,GAAAlD,CAAA;EAAA;EAFhB,IAAAsD,gBAAS,EAACL,EAET,EAAEC,EAAa,CAAC;EAAA,IAAAK,EAAA;EAAA,IAAAvD,CAAA,UAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAA8C,eAAA,KAAAxD,CAAA,UAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAA+C,gBAAA,KAAAzD,CAAA,UAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAgD,aAAA,KAAA1D,CAAA,UAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAiD,kBAAA,KAAA3D,CAAA,UAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAkD,SAAA,KAAA5D,CAAA,UAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAmD,eAAA,KAAA7D,CAAA,SAAAc,MAAA,IAAAd,CAAA,SAAAuB,aAAA,IAAAvB,CAAA,SAAAI,KAAA,IAAAJ,CAAA,SAAAG,UAAA,IAAAH,CAAA,SAAA8C,WAAA,IAAA9C,CAAA,SAAAK,kBAAA,IAAAL,CAAA,SAAAO,qBAAA,IAAAP,CAAA,SAAAY,SAAA,IAAAZ,CAAA,SAAAS,KAAA,IAAAT,CAAA,SAAAyB,KAAA,IAAAzB,CAAA,SAAAW,UAAA,IAAAX,CAAA,SAAAgB,IAAA;IAqGbN,MAAM,aAANA,MAAM,eAANA,MAAM,CAAA8C,eAAiB;IACvB9C,MAAM,aAANA,MAAM,eAANA,MAAM,CAAA+C,gBAAkB;IACxB/C,MAAM,aAANA,MAAM,eAANA,MAAM,CAAAgD,aAAe;IACrBhD,MAAM,aAANA,MAAM,eAANA,MAAM,CAAAiD,kBAAoB;IAC1BjD,MAAM,aAANA,MAAM,eAANA,MAAM,CAAAkD,SAAW;IACjBlD,MAAM,aAANA,MAAM,eAANA,MAAM,CAAAmD,eAAiB;IAxGPN,EAAA,IAAQ;MACxB,IAAIlD,kBAAkB;QAAA,OACX,IAAI;MAAA;MAGf,IAAIF,UAAU,KAAKY,SAAS;QAAA,oBAEpB7C,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAACpE,YAAA,CAAAwF,gCAAgC,qBAC7B5F,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAACpE,YAAA,CAAAyF,+BAA+B;UACvBnB,GAA4B,EAA5B,sBAAsB5B,IAAI,EAAE;UACzBgD,MAAqB,EAArBtD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAAgD,aAAe;UACpBO,OAAkC,EAAlC;YAAAC,KAAA,EAAS,OAAO;YAAAC,IAAA,EAAQ;UAAS,CAAC;UAClCC,OAAgC,EAAhC;YAAAF,KAAA,EAAS,OAAO;YAAAC,IAAA,EAAQ;UAAO,CAAC;UACnCE,IAAgC,EAAhC;YAAAH,KAAA,EAAS,OAAO;YAAAC,IAAA,EAAQ;UAAO,CAAC;UAC1BG,UAKX,EALW;YAAAC,IAAA,EACF,OAAO;YAAAC,MAAA,EACLC,QAAQ;YAAAC,WAAA,EACH,CAAC;YAAAC,QAAA,EACJ;UACd;QAAC,CACJ,CAAC,eACFzG,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAACpE,YAAA,CAAAsG,2BAA2B;UAASZ,MAAuB,EAAvBtD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAA8C;QAAiB,CAAG,CACjC,CAAC;MAAA;MAE1C,oBAGGtF,MAAA,CAAAW,OAAA,CAAA6D,aAAA;QACSmC,GAAwC,EAAxCC,QAAA,IAActD,gBAAgB,CAACsD,QAAQ,CAAC;QACtCC,KAAmC,EAAnC;UAAAC,MAAA,EAAU,CAAC;UAAAC,QAAA,EAAY;QAAW;MAAC,gBAE1C/G,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAACpE,YAAA,CAAAwF,gCAAgC;QAASvD,MAAqB,EAArBA,qBAAqB;QAAWO,OAAM,EAANA;MAAM,GAC3E,CAAC,EAACL,KAAK,aAALA,KAAK,eAALA,KAAK,CAAA4B,MAAQ,CAUf,iBAVAnE,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CACIpE,YAAA,CAAA4G,4BAA4B,QACxBzE,KAAK,CAAA8B,GAAI,CAAC4C,IAAA,iBACPjH,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAACpE,YAAA,CAAA8G,qBAAqB;QACPD,SAAI,EAAJA,IAAI;QACVvC,GAAuB,EAAvB,iBAAiBuC,IAAI,EAAE;QACpBnB,MAAiB,EAAjBtD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAAkD;MAAW,CAC5B,CACJ,CAET,CAAC,eACD1F,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAACpE,YAAA,CAAAyF,+BAA+B;QACnBjD,OAAM,EAANA,MAAM;QACPkD,MAAqB,EAArBtD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAAgD,aAAe;QACxBd,GAAuB,EAAvB,iBAAiB5B,IAAI,EAAE;QACnBiD,OAAe,EAAf;UAAAC,KAAA,EAAS;QAAK,CAAC;QACfE,OAA2B,EAA3B;UAAAF,KAAA,EAAS,GAAG/D,UAAU;QAAI,CAAC;QAC9BkE,IAAe,EAAf;UAAAH,KAAA,EAAS;QAAK,CAAC;QACTI,UAAiB,EAAjB;UAAAC,IAAA,EAAQ;QAAQ,CAAC;QACnBc,QAA8B,EAA9BA,CAAA;UAAA,IAAAC,kBAAA;UAAA,QAAAA,kBAAA,GAAMjE,QAAQ,CAAA+B,OAAc,cAAAkC,kBAAA,uBAAtBA,kBAAA,CAAAjC,IAAwB,CAAD,CAAC;QAAA;QACnBkC,mBAA8B,EAA9BA,CAAA;UAAA,IAAAC,kBAAA;UAAA,QAAAA,kBAAA,GAAMnE,QAAQ,CAAA+B,OAAc,cAAAoC,kBAAA,uBAAtBA,kBAAA,CAAAnC,IAAwB,CAAD,CAAC;QAAA;MAAA,GAElDzC,SAAwB,IAAxBkC,WAAwB,EACxBnC,UAyBA,iBAzBAzC,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CACIpE,YAAA,CAAAmH,2BAA2B;QACfC,OAAkC,EAAlCC;MAAkC,gBAE3CzH,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAAClE,iBAAA,CAAAoH,aAAa;QACHnE,KAGN,EAHM;UAAA,OACI,CAAAf,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAAmD,eAAmC,MAAdpC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,KAAK,CAAC;UAAAoE,IAAA,EAC1C,CAAAnF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAAiD,kBAAsC,MAAdlC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,KAAK,CAAC;QACtD;MAAC,gBAEDvD,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAACjE,MAAA,CAAAI,OAAK;QACGwC,GAAQ,EAARA,QAAQ;QACJV,OAAU,EAAVA,UAAU;QACRmF,SAAwB,EAAxBC,qBAAc,CAAAC,SAAU;QAC3BC,MAA8B,EAA9BA,CAAA;UAAA,IAAAC,kBAAA;UAAA,QAAAA,kBAAA,GAAM7E,QAAQ,CAAA+B,OAAc,cAAA8C,kBAAA,uBAAtBA,kBAAA,CAAA7C,IAAwB,CAAD,CAAC;QAAA;QAC3B8C,SAA0B,EAA1B5E,aAA0B,IAA1BR,SAA0B;QACrCqF,sBAAsB,EAAtB,IAAsB;QACtBC,YAAY,EAAZ,IAAY;QACZC,uBAAuB,EAAvB,IAAuB;QACdC,OAAG,EAAH;MAAG,CAGT,CACI,CAEvB,CAC6B,CAAC,EAEjChG,qBAA8B,IAA9BH,KASA,iBATAlC,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CACIpE,YAAA,CAAAkI,sBAAsB;QACKjG,sBAAqB,EAArBA,qBAAqB;QAC9BkG,aAAwB,EAAxB/F,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAA+C,gBAAkB;QACtBiD,eAA0B,EAA1BhG,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAAiD,kBAAoB;QACtBxD,mBAAU,EAAVA;MAAU,GAE9BC,KAET,CAAC,eAEDlC,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAACpE,YAAA,CAAAsG,2BAA2B;QAASZ,MAAuB,EAAvBtD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAA8C;MAAiB,CAAG,CACjC,CACjC,CAAC;IAAA,CAEb,EAmBA,CAAC;IAAAxD,CAAA,OAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAA8C,eAAA;IAAAxD,CAAA,OAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAA+C,gBAAA;IAAAzD,CAAA,OAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAgD,aAAA;IAAA1D,CAAA,OAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAiD,kBAAA;IAAA3D,CAAA,OAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAkD,SAAA;IAAA5D,CAAA,OAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAmD,eAAA;IAAA7D,CAAA,OAAAc,MAAA;IAAAd,CAAA,OAAAuB,aAAA;IAAAvB,CAAA,OAAAI,KAAA;IAAAJ,CAAA,OAAAG,UAAA;IAAAH,CAAA,OAAA8C,WAAA;IAAA9C,CAAA,OAAAK,kBAAA;IAAAL,CAAA,OAAAO,qBAAA;IAAAP,CAAA,OAAAY,SAAA;IAAAZ,CAAA,OAAAS,KAAA;IAAAT,CAAA,OAAAyB,KAAA;IAAAzB,CAAA,OAAAW,UAAA;IAAAX,CAAA,OAAAgB,IAAA;IAAAhB,CAAA,OAAAuD,EAAA;EAAA;IAAAA,EAAA,GAAAvD,CAAA;EAAA;EArHF,MAAA2G,WAAA,GAAoBpD,EAqHlB;EAaG7C,MAAM,aAANA,MAAM,eAANA,MAAM,CAAA+C,gBAAkB;EAAA,IAAAmD,GAAA;EAAA,IAAA5G,CAAA,UAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAA+C,gBAAA,KAAAzD,CAAA,SAAAI,KAAA,IAAAJ,CAAA,SAAAO,qBAAA;IAPhBqG,GAAA,GAAAxG,KAA+B,IAA/B,CAAUG,qBAIV,iBAJArC,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CACIpE,YAAA,CAAAkI,sBAAsB;MAAgBC,aAAwB,EAAxB/F,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAA+C;IAAkB,GAC1DrD,KAET,CAAC;IAAAJ,CAAA,OAAAU,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAA+C,gBAAA;IAAAzD,CAAA,OAAAI,KAAA;IAAAJ,CAAA,OAAAO,qBAAA;IAAAP,CAAA,OAAA4G,GAAA;EAAA;IAAAA,GAAA,GAAA5G,CAAA;EAAA;EAAA,IAAA6G,GAAA;EAAA,IAAA7G,CAAA,SAAA2G,WAAA,IAAA3G,CAAA,SAAA4G,GAAA;IANLC,GAAA,gBAAA3I,MAAA,CAAAW,OAAA,CAAA6D,aAAA,CAACpE,YAAA,CAAAwI,iBAAiB,QACbH,WAAW,EACXC,GAKc,CAAC;IAAA5G,CAAA,OAAA2G,WAAA;IAAA3G,CAAA,OAAA4G,GAAA;IAAA5G,CAAA,OAAA6G,GAAA;EAAA;IAAAA,GAAA,GAAA7G,CAAA;EAAA;EAAA,OAPpB6G,GAOoB;AAAA,CAI/B;AAED/G,WAAW,CAACiH,WAAW,GAAG,aAAa;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAApI,OAAA,GAEzBiB,WAAW;AAzLgB,SAAA6F,MAAAuB,KAAA;EAAA,OA0GUA,KAAK,CAAAC,eAAgB,CAAC,CAAC;AAAA","ignoreList":[]}
@@ -68,6 +68,7 @@ const Popup = /*#__PURE__*/forwardRef(({
68
68
  if (!newContainer) {
69
69
  return;
70
70
  }
71
+ const HORIZONTAL_PADDING = 23;
71
72
  const {
72
73
  height: pseudoHeight,
73
74
  width: pseudoWidth
@@ -90,20 +91,26 @@ const Popup = /*#__PURE__*/forwardRef(({
90
91
  const childrenCenterX = childrenLeft + childrenWidth / 2;
91
92
  const x = (childrenCenterX - left) / zoomX + element.scrollLeft;
92
93
  const y = (childrenTop + childrenHeight / 2 - top) / zoomY + element.scrollTop - yOffset;
94
+
95
+ // Use one coordinate space for all horizontal bounds checks.
96
+ const boundaryLeft = element.scrollLeft;
97
+ const boundaryWidth = containerWidth / zoomX;
98
+ const boundaryRight = boundaryLeft + boundaryWidth;
99
+ const relativeX = x - boundaryLeft;
93
100
  const shouldShowBottom = pseudoHeight > childrenTop - 25 || alignment === PopupAlignment.BottomLeft || alignment === PopupAlignment.BottomRight || alignment === PopupAlignment.BottomCenter;
94
101
  const shouldForceRight = shouldShowBottom ? alignment === PopupAlignment.BottomRight : alignment === PopupAlignment.TopRight;
95
102
  const shouldUseCenterAlignment = shouldShowBottom ? alignment === PopupAlignment.BottomCenter : alignment === PopupAlignment.TopCenter;
96
- const hasEnoughSpaceForCenter = pseudoWidth / 2 <= childrenCenterX - 25 && pseudoWidth / 2 <= window.innerWidth - childrenCenterX - 25;
103
+ const hasEnoughSpaceForCenter = pseudoWidth / 2 <= relativeX - HORIZONTAL_PADDING && pseudoWidth / 2 <= boundaryWidth - relativeX - HORIZONTAL_PADDING;
97
104
  if (shouldUseCenterAlignment && hasEnoughSpaceForCenter) {
98
105
  setInternalAlignment(shouldShowBottom ? PopupAlignment.BottomCenter : PopupAlignment.TopCenter);
99
106
  setOffset(0);
100
107
  setCoordinates({
101
- x: x < 23 ? 23 : x,
108
+ x: Math.min(Math.max(x, boundaryLeft + HORIZONTAL_PADDING), boundaryRight - HORIZONTAL_PADDING),
102
109
  y
103
110
  });
104
111
  } else {
105
112
  let isRight = false;
106
- if (pseudoWidth > childrenCenterX - 25 || shouldForceRight) {
113
+ if (pseudoWidth > relativeX - HORIZONTAL_PADDING || shouldForceRight) {
107
114
  setInternalAlignment(shouldShowBottom ? PopupAlignment.BottomRight : PopupAlignment.TopRight);
108
115
  isRight = true;
109
116
  } else {
@@ -111,15 +118,15 @@ const Popup = /*#__PURE__*/forwardRef(({
111
118
  }
112
119
  let newOffset;
113
120
  if (isRight) {
114
- newOffset = x + pseudoWidth >= window.innerWidth ? x + pseudoWidth - window.innerWidth : 0;
121
+ newOffset = relativeX + pseudoWidth >= boundaryWidth ? relativeX + pseudoWidth - boundaryWidth : 0;
115
122
  } else {
116
- const right = window.innerWidth - childrenCenterX;
117
- newOffset = right + pseudoWidth >= window.innerWidth ? right + pseudoWidth - window.innerWidth : 0;
123
+ const right = boundaryWidth - relativeX;
124
+ newOffset = right + pseudoWidth >= boundaryWidth ? right + pseudoWidth - boundaryWidth : 0;
118
125
  }
119
126
  setOffset(newOffset);
120
127
  const newX = x - newOffset;
121
128
  setCoordinates({
122
- x: newX < 23 ? 23 : newX,
129
+ x: Math.min(Math.max(newX, boundaryLeft + HORIZONTAL_PADDING), boundaryRight - HORIZONTAL_PADDING),
123
130
  y
124
131
  });
125
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Popup.js","names":["AnimatePresence","React","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","createPortal","useUuid","PopupAlignment","AreaContextProvider","PopupContentWrapper","StyledPopup","useMeasuredClone","Popup","alignment","content","onShow","container","onHide","children","shouldHideOnChildrenLeave","shouldShowOnHover","shouldUseChildrenWidth","shouldScrollWithContent","shouldUseFullWidth","yOffset","shouldBeOpen","ref","coordinates","setCoordinates","x","y","internalAlignment","setInternalAlignment","TopLeft","offset","setOffset","isOpen","setIsOpen","portal","setPortal","pseudoSize","setPseudoSize","newContainer","setNewContainer","contentMaxHeight","setContentMaxHeight","undefined","timeout","uuid","height","width","measuredElement","shouldPreventTextWrapping","popupContentRef","popupRef","current","el","element","closest","Element","handleShow","pseudoHeight","pseudoWidth","childrenHeight","left","childrenLeft","top","childrenTop","childrenWidth","getBoundingClientRect","document","body","containerHeight","containerWidth","zoomX","offsetWidth","zoomY","offsetHeight","childrenCenterX","scrollLeft","scrollTop","shouldShowBottom","BottomLeft","BottomRight","BottomCenter","shouldForceRight","TopRight","shouldUseCenterAlignment","TopCenter","hasEnoughSpaceForCenter","window","innerWidth","isRight","newOffset","right","newX","handleReposition","addEventListener","removeEventListener","viewHeight","clientHeight","includes","handleChildrenClick","handleHide","handleMouseEnter","clearTimeout","handleMouseLeave","setTimeout","handleDocumentClick","event","contains","target","hide","show","createElement","initial","key","maxHeight","onMouseLeave","onMouseEnter","shouldChangeColor","Fragment","className","onClick","$shouldUseChildrenWidth","$shouldUseFullWidth","displayName"],"sources":["../../../../src/components/popup/Popup.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n forwardRef,\n ReactNode,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useUuid } from '../../hooks/uuid';\nimport { PopupAlignment, PopupCoordinates, PopupRef } from '../../types/popup';\nimport AreaContextProvider from '../area-provider/AreaContextProvider';\nimport PopupContentWrapper from './popup-content-wrapper/PopupContentWrapper';\nimport { StyledPopup } from './Popup.styles';\nimport { useMeasuredClone } from '../../hooks/element';\n\nexport type PopupProps = {\n /**\n * The alignment of the popup. By default, the popup will calculate the best alignment.\n */\n alignment?: PopupAlignment;\n /**\n * The element over which the content of the `ContextMenu` should be displayed.\n */\n children?: ReactNode;\n /**\n * The element where the content of the `Popup` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * The content that should be displayed inside the popup.\n */\n content: ReactNode;\n /**\n * Function to be executed when the content of the Context menu has been hidden.\n */\n onHide?: VoidFunction;\n /**\n * Function to be executed when the content of the Context menu has been shown.\n */\n onShow?: VoidFunction;\n /**\n * Whether the tooltip should be hidden after the children is not hovered.\n */\n shouldHideOnChildrenLeave?: boolean;\n /**\n * Whether the popup should scroll with the content.\n */\n shouldScrollWithContent?: boolean;\n /**\n * Whether the popup should be opened on hover. If not, the popup will be opened on click.\n */\n shouldShowOnHover?: boolean;\n /**\n * Whether the width of the children should be used.\n */\n shouldUseChildrenWidth?: boolean;\n /**\n * Whether the popup children should use the full width.\n */\n shouldUseFullWidth?: boolean;\n /**\n * The Y offset of the popup to the children.\n */\n yOffset?: number;\n /**\n * Whether the popup should be open. This can be used to control the popup from outside.\n */\n shouldBeOpen?: boolean;\n};\n\nconst Popup = forwardRef<PopupRef, PopupProps>(\n (\n {\n alignment,\n content,\n onShow,\n container,\n onHide,\n children,\n shouldHideOnChildrenLeave,\n shouldShowOnHover = false,\n shouldUseChildrenWidth = true,\n shouldScrollWithContent = true,\n shouldUseFullWidth = false,\n yOffset = 0,\n shouldBeOpen = false,\n },\n ref,\n ) => {\n const [coordinates, setCoordinates] = useState<PopupCoordinates>({\n x: 0,\n y: 0,\n });\n\n const [internalAlignment, setInternalAlignment] = useState<PopupAlignment>(\n PopupAlignment.TopLeft,\n );\n const [offset, setOffset] = useState<number>(0);\n const [isOpen, setIsOpen] = useState(shouldBeOpen);\n const [portal, setPortal] = useState<ReactPortal>();\n const [pseudoSize, setPseudoSize] = useState<{ height: number; width: number }>();\n const [newContainer, setNewContainer] = useState<Element | null>(container ?? null);\n const [contentMaxHeight, setContentMaxHeight] = useState<number | undefined>(undefined);\n\n const timeout = useRef<number>();\n\n const uuid = useUuid();\n\n const { height, width, measuredElement } = useMeasuredClone({\n content,\n shouldPreventTextWrapping: !shouldUseChildrenWidth,\n });\n\n const popupContentRef = useRef<HTMLDivElement>(null);\n const popupRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (popupRef.current && !container) {\n const el = popupRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner, .page-provider, .tapp, body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n useEffect(() => {\n setPseudoSize({ height, width });\n }, [height, width]);\n\n const handleShow = useCallback(() => {\n if (popupRef.current && pseudoSize) {\n if (!newContainer) {\n return;\n }\n\n const { height: pseudoHeight, width: pseudoWidth } = pseudoSize;\n\n const {\n height: childrenHeight,\n left: childrenLeft,\n top: childrenTop,\n width: childrenWidth,\n } = popupRef.current.getBoundingClientRect();\n\n const element = shouldScrollWithContent ? newContainer : document.body;\n\n const {\n height: containerHeight,\n width: containerWidth,\n top,\n left,\n } = element.getBoundingClientRect();\n\n const zoomX = containerWidth / (element as HTMLElement).offsetWidth;\n const zoomY = containerHeight / (element as HTMLElement).offsetHeight;\n\n const childrenCenterX = childrenLeft + childrenWidth / 2;\n const x = (childrenCenterX - left) / zoomX + element.scrollLeft;\n const y =\n (childrenTop + childrenHeight / 2 - top) / zoomY + element.scrollTop - yOffset;\n\n const shouldShowBottom =\n pseudoHeight > childrenTop - 25 ||\n alignment === PopupAlignment.BottomLeft ||\n alignment === PopupAlignment.BottomRight ||\n alignment === PopupAlignment.BottomCenter;\n\n const shouldForceRight = shouldShowBottom\n ? alignment === PopupAlignment.BottomRight\n : alignment === PopupAlignment.TopRight;\n\n const shouldUseCenterAlignment = shouldShowBottom\n ? alignment === PopupAlignment.BottomCenter\n : alignment === PopupAlignment.TopCenter;\n\n const hasEnoughSpaceForCenter =\n pseudoWidth / 2 <= childrenCenterX - 25 &&\n pseudoWidth / 2 <= window.innerWidth - childrenCenterX - 25;\n\n if (shouldUseCenterAlignment && hasEnoughSpaceForCenter) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomCenter : PopupAlignment.TopCenter,\n );\n setOffset(0);\n setCoordinates({\n x: x < 23 ? 23 : x,\n y,\n });\n } else {\n let isRight = false;\n\n if (pseudoWidth > childrenCenterX - 25 || shouldForceRight) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomRight : PopupAlignment.TopRight,\n );\n isRight = true;\n } else {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomLeft : PopupAlignment.TopLeft,\n );\n }\n\n let newOffset;\n\n if (isRight) {\n newOffset =\n x + pseudoWidth >= window.innerWidth\n ? x + pseudoWidth - window.innerWidth\n : 0;\n } else {\n const right = window.innerWidth - childrenCenterX;\n\n newOffset =\n right + pseudoWidth >= window.innerWidth\n ? right + pseudoWidth - window.innerWidth\n : 0;\n }\n\n setOffset(newOffset);\n\n const newX = x - newOffset;\n\n setCoordinates({\n x: newX < 23 ? 23 : newX,\n y,\n });\n }\n\n setIsOpen(true);\n }\n }, [alignment, newContainer, pseudoSize, shouldScrollWithContent, yOffset]);\n\n useEffect(() => {\n if (shouldBeOpen) {\n handleShow();\n }\n }, [handleShow, shouldBeOpen]);\n\n const handleReposition = useCallback(() => {\n if (isOpen) {\n handleShow();\n }\n }, [handleShow, isOpen]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n window.addEventListener('resize', handleReposition);\n window.addEventListener('scroll', handleReposition, true);\n\n return () => {\n window.removeEventListener('resize', handleReposition);\n window.removeEventListener('scroll', handleReposition, true);\n };\n }, [handleReposition, isOpen]);\n\n useEffect(() => {\n if (!newContainer || !popupRef.current) return;\n\n const viewHeight = newContainer.clientHeight;\n const childrenHeight = popupRef.current.getBoundingClientRect().height;\n\n if (\n [\n PopupAlignment.TopLeft,\n PopupAlignment.TopRight,\n PopupAlignment.TopCenter,\n ].includes(internalAlignment)\n ) {\n setContentMaxHeight(coordinates.y - 20);\n } else {\n setContentMaxHeight(viewHeight - childrenHeight - coordinates.y - 20);\n }\n }, [coordinates.y, internalAlignment, newContainer]);\n\n const handleChildrenClick = () => {\n handleShow();\n };\n\n const handleHide = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const handleMouseEnter = useCallback(() => {\n if (shouldShowOnHover) {\n window.clearTimeout(timeout.current);\n handleShow();\n }\n }, [handleShow, shouldShowOnHover]);\n\n const handleMouseLeave = useCallback(() => {\n if (!shouldShowOnHover) {\n return;\n }\n\n if (shouldHideOnChildrenLeave) {\n handleHide();\n\n return;\n }\n\n timeout.current = window.setTimeout(() => {\n handleHide();\n }, 500);\n }, [handleHide, shouldHideOnChildrenLeave, shouldShowOnHover]);\n\n const handleDocumentClick = useCallback<EventListener>(\n (event) => {\n if (!popupContentRef.current?.contains(event.target as Node)) {\n handleHide();\n }\n },\n [handleHide],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n useEffect(() => {\n if (isOpen && !shouldBeOpen) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n\n if (typeof onShow === 'function') {\n onShow();\n }\n } else if (typeof onHide === 'function') {\n onHide();\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n };\n }, [handleDocumentClick, handleHide, isOpen, onHide, onShow, shouldBeOpen]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isOpen && (\n <PopupContentWrapper\n width={pseudoSize?.width ?? 0}\n offset={offset}\n shouldScrollWithContent={shouldScrollWithContent}\n coordinates={coordinates}\n key={`tooltip_${uuid}`}\n maxHeight={contentMaxHeight}\n alignment={internalAlignment}\n ref={popupContentRef}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n >\n <AreaContextProvider shouldChangeColor>\n {content}\n </AreaContextProvider>\n </PopupContentWrapper>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n contentMaxHeight,\n internalAlignment,\n newContainer,\n content,\n coordinates,\n handleMouseEnter,\n handleMouseLeave,\n isOpen,\n offset,\n pseudoSize?.width,\n uuid,\n shouldScrollWithContent,\n ]);\n\n return (\n <>\n {measuredElement}\n <StyledPopup\n className=\"beta-chayns-popup\"\n ref={popupRef}\n onClick={handleChildrenClick}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n $shouldUseChildrenWidth={shouldUseChildrenWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n >\n {children}\n </StyledPopup>\n {portal}\n </>\n );\n },\n);\n\nPopup.displayName = 'Popup';\n\nexport default Popup;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Popup.js","names":["AnimatePresence","React","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","createPortal","useUuid","PopupAlignment","AreaContextProvider","PopupContentWrapper","StyledPopup","useMeasuredClone","Popup","alignment","content","onShow","container","onHide","children","shouldHideOnChildrenLeave","shouldShowOnHover","shouldUseChildrenWidth","shouldScrollWithContent","shouldUseFullWidth","yOffset","shouldBeOpen","ref","coordinates","setCoordinates","x","y","internalAlignment","setInternalAlignment","TopLeft","offset","setOffset","isOpen","setIsOpen","portal","setPortal","pseudoSize","setPseudoSize","newContainer","setNewContainer","contentMaxHeight","setContentMaxHeight","undefined","timeout","uuid","height","width","measuredElement","shouldPreventTextWrapping","popupContentRef","popupRef","current","el","element","closest","Element","handleShow","HORIZONTAL_PADDING","pseudoHeight","pseudoWidth","childrenHeight","left","childrenLeft","top","childrenTop","childrenWidth","getBoundingClientRect","document","body","containerHeight","containerWidth","zoomX","offsetWidth","zoomY","offsetHeight","childrenCenterX","scrollLeft","scrollTop","boundaryLeft","boundaryWidth","boundaryRight","relativeX","shouldShowBottom","BottomLeft","BottomRight","BottomCenter","shouldForceRight","TopRight","shouldUseCenterAlignment","TopCenter","hasEnoughSpaceForCenter","Math","min","max","isRight","newOffset","right","newX","handleReposition","window","addEventListener","removeEventListener","viewHeight","clientHeight","includes","handleChildrenClick","handleHide","handleMouseEnter","clearTimeout","handleMouseLeave","setTimeout","handleDocumentClick","event","contains","target","hide","show","createElement","initial","key","maxHeight","onMouseLeave","onMouseEnter","shouldChangeColor","Fragment","className","onClick","$shouldUseChildrenWidth","$shouldUseFullWidth","displayName"],"sources":["../../../../src/components/popup/Popup.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n forwardRef,\n ReactNode,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useUuid } from '../../hooks/uuid';\nimport { PopupAlignment, PopupCoordinates, PopupRef } from '../../types/popup';\nimport AreaContextProvider from '../area-provider/AreaContextProvider';\nimport PopupContentWrapper from './popup-content-wrapper/PopupContentWrapper';\nimport { StyledPopup } from './Popup.styles';\nimport { useMeasuredClone } from '../../hooks/element';\n\nexport type PopupProps = {\n /**\n * The alignment of the popup. By default, the popup will calculate the best alignment.\n */\n alignment?: PopupAlignment;\n /**\n * The element over which the content of the `ContextMenu` should be displayed.\n */\n children?: ReactNode;\n /**\n * The element where the content of the `Popup` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * The content that should be displayed inside the popup.\n */\n content: ReactNode;\n /**\n * Function to be executed when the content of the Context menu has been hidden.\n */\n onHide?: VoidFunction;\n /**\n * Function to be executed when the content of the Context menu has been shown.\n */\n onShow?: VoidFunction;\n /**\n * Whether the tooltip should be hidden after the children is not hovered.\n */\n shouldHideOnChildrenLeave?: boolean;\n /**\n * Whether the popup should scroll with the content.\n */\n shouldScrollWithContent?: boolean;\n /**\n * Whether the popup should be opened on hover. If not, the popup will be opened on click.\n */\n shouldShowOnHover?: boolean;\n /**\n * Whether the width of the children should be used.\n */\n shouldUseChildrenWidth?: boolean;\n /**\n * Whether the popup children should use the full width.\n */\n shouldUseFullWidth?: boolean;\n /**\n * The Y offset of the popup to the children.\n */\n yOffset?: number;\n /**\n * Whether the popup should be open. This can be used to control the popup from outside.\n */\n shouldBeOpen?: boolean;\n};\n\nconst Popup = forwardRef<PopupRef, PopupProps>(\n (\n {\n alignment,\n content,\n onShow,\n container,\n onHide,\n children,\n shouldHideOnChildrenLeave,\n shouldShowOnHover = false,\n shouldUseChildrenWidth = true,\n shouldScrollWithContent = true,\n shouldUseFullWidth = false,\n yOffset = 0,\n shouldBeOpen = false,\n },\n ref,\n ) => {\n const [coordinates, setCoordinates] = useState<PopupCoordinates>({\n x: 0,\n y: 0,\n });\n\n const [internalAlignment, setInternalAlignment] = useState<PopupAlignment>(\n PopupAlignment.TopLeft,\n );\n const [offset, setOffset] = useState<number>(0);\n const [isOpen, setIsOpen] = useState(shouldBeOpen);\n const [portal, setPortal] = useState<ReactPortal>();\n const [pseudoSize, setPseudoSize] = useState<{ height: number; width: number }>();\n const [newContainer, setNewContainer] = useState<Element | null>(container ?? null);\n const [contentMaxHeight, setContentMaxHeight] = useState<number | undefined>(undefined);\n\n const timeout = useRef<number>();\n\n const uuid = useUuid();\n\n const { height, width, measuredElement } = useMeasuredClone({\n content,\n shouldPreventTextWrapping: !shouldUseChildrenWidth,\n });\n\n const popupContentRef = useRef<HTMLDivElement>(null);\n const popupRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (popupRef.current && !container) {\n const el = popupRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner, .page-provider, .tapp, body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n useEffect(() => {\n setPseudoSize({ height, width });\n }, [height, width]);\n\n const handleShow = useCallback(() => {\n if (popupRef.current && pseudoSize) {\n if (!newContainer) {\n return;\n }\n\n const HORIZONTAL_PADDING = 23;\n\n const { height: pseudoHeight, width: pseudoWidth } = pseudoSize;\n\n const {\n height: childrenHeight,\n left: childrenLeft,\n top: childrenTop,\n width: childrenWidth,\n } = popupRef.current.getBoundingClientRect();\n\n const element = shouldScrollWithContent ? newContainer : document.body;\n\n const {\n height: containerHeight,\n width: containerWidth,\n top,\n left,\n } = element.getBoundingClientRect();\n\n const zoomX = containerWidth / (element as HTMLElement).offsetWidth;\n const zoomY = containerHeight / (element as HTMLElement).offsetHeight;\n\n const childrenCenterX = childrenLeft + childrenWidth / 2;\n const x = (childrenCenterX - left) / zoomX + element.scrollLeft;\n const y =\n (childrenTop + childrenHeight / 2 - top) / zoomY + element.scrollTop - yOffset;\n\n // Use one coordinate space for all horizontal bounds checks.\n const boundaryLeft = element.scrollLeft;\n const boundaryWidth = containerWidth / zoomX;\n const boundaryRight = boundaryLeft + boundaryWidth;\n const relativeX = x - boundaryLeft;\n\n const shouldShowBottom =\n pseudoHeight > childrenTop - 25 ||\n alignment === PopupAlignment.BottomLeft ||\n alignment === PopupAlignment.BottomRight ||\n alignment === PopupAlignment.BottomCenter;\n\n const shouldForceRight = shouldShowBottom\n ? alignment === PopupAlignment.BottomRight\n : alignment === PopupAlignment.TopRight;\n\n const shouldUseCenterAlignment = shouldShowBottom\n ? alignment === PopupAlignment.BottomCenter\n : alignment === PopupAlignment.TopCenter;\n\n const hasEnoughSpaceForCenter =\n pseudoWidth / 2 <= relativeX - HORIZONTAL_PADDING &&\n pseudoWidth / 2 <= boundaryWidth - relativeX - HORIZONTAL_PADDING;\n\n if (shouldUseCenterAlignment && hasEnoughSpaceForCenter) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomCenter : PopupAlignment.TopCenter,\n );\n setOffset(0);\n setCoordinates({\n x: Math.min(\n Math.max(x, boundaryLeft + HORIZONTAL_PADDING),\n boundaryRight - HORIZONTAL_PADDING,\n ),\n y,\n });\n } else {\n let isRight = false;\n\n if (pseudoWidth > relativeX - HORIZONTAL_PADDING || shouldForceRight) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomRight : PopupAlignment.TopRight,\n );\n isRight = true;\n } else {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomLeft : PopupAlignment.TopLeft,\n );\n }\n\n let newOffset;\n\n if (isRight) {\n newOffset =\n relativeX + pseudoWidth >= boundaryWidth\n ? relativeX + pseudoWidth - boundaryWidth\n : 0;\n } else {\n const right = boundaryWidth - relativeX;\n\n newOffset =\n right + pseudoWidth >= boundaryWidth\n ? right + pseudoWidth - boundaryWidth\n : 0;\n }\n\n setOffset(newOffset);\n\n const newX = x - newOffset;\n\n setCoordinates({\n x: Math.min(\n Math.max(newX, boundaryLeft + HORIZONTAL_PADDING),\n boundaryRight - HORIZONTAL_PADDING,\n ),\n y,\n });\n }\n\n setIsOpen(true);\n }\n }, [alignment, newContainer, pseudoSize, shouldScrollWithContent, yOffset]);\n\n useEffect(() => {\n if (shouldBeOpen) {\n handleShow();\n }\n }, [handleShow, shouldBeOpen]);\n\n const handleReposition = useCallback(() => {\n if (isOpen) {\n handleShow();\n }\n }, [handleShow, isOpen]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n window.addEventListener('resize', handleReposition);\n window.addEventListener('scroll', handleReposition, true);\n\n return () => {\n window.removeEventListener('resize', handleReposition);\n window.removeEventListener('scroll', handleReposition, true);\n };\n }, [handleReposition, isOpen]);\n\n useEffect(() => {\n if (!newContainer || !popupRef.current) return;\n\n const viewHeight = newContainer.clientHeight;\n const childrenHeight = popupRef.current.getBoundingClientRect().height;\n\n if (\n [\n PopupAlignment.TopLeft,\n PopupAlignment.TopRight,\n PopupAlignment.TopCenter,\n ].includes(internalAlignment)\n ) {\n setContentMaxHeight(coordinates.y - 20);\n } else {\n setContentMaxHeight(viewHeight - childrenHeight - coordinates.y - 20);\n }\n }, [coordinates.y, internalAlignment, newContainer]);\n\n const handleChildrenClick = () => {\n handleShow();\n };\n\n const handleHide = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const handleMouseEnter = useCallback(() => {\n if (shouldShowOnHover) {\n window.clearTimeout(timeout.current);\n handleShow();\n }\n }, [handleShow, shouldShowOnHover]);\n\n const handleMouseLeave = useCallback(() => {\n if (!shouldShowOnHover) {\n return;\n }\n\n if (shouldHideOnChildrenLeave) {\n handleHide();\n\n return;\n }\n\n timeout.current = window.setTimeout(() => {\n handleHide();\n }, 500);\n }, [handleHide, shouldHideOnChildrenLeave, shouldShowOnHover]);\n\n const handleDocumentClick = useCallback<EventListener>(\n (event) => {\n if (!popupContentRef.current?.contains(event.target as Node)) {\n handleHide();\n }\n },\n [handleHide],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n useEffect(() => {\n if (isOpen && !shouldBeOpen) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n\n if (typeof onShow === 'function') {\n onShow();\n }\n } else if (typeof onHide === 'function') {\n onHide();\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n };\n }, [handleDocumentClick, handleHide, isOpen, onHide, onShow, shouldBeOpen]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isOpen && (\n <PopupContentWrapper\n width={pseudoSize?.width ?? 0}\n offset={offset}\n shouldScrollWithContent={shouldScrollWithContent}\n coordinates={coordinates}\n key={`tooltip_${uuid}`}\n maxHeight={contentMaxHeight}\n alignment={internalAlignment}\n ref={popupContentRef}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n >\n <AreaContextProvider shouldChangeColor>\n {content}\n </AreaContextProvider>\n </PopupContentWrapper>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n contentMaxHeight,\n internalAlignment,\n newContainer,\n content,\n coordinates,\n handleMouseEnter,\n handleMouseLeave,\n isOpen,\n offset,\n pseudoSize?.width,\n uuid,\n shouldScrollWithContent,\n ]);\n\n return (\n <>\n {measuredElement}\n <StyledPopup\n className=\"beta-chayns-popup\"\n ref={popupRef}\n onClick={handleChildrenClick}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n $shouldUseChildrenWidth={shouldUseChildrenWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n >\n {children}\n </StyledPopup>\n {portal}\n </>\n );\n },\n);\n\nPopup.displayName = 'Popup';\n\nexport default Popup;\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,cAAc;AAC9C,OAAOC,KAAK,IACRC,UAAU,EAGVC,WAAW,EACXC,SAAS,EACTC,mBAAmB,EACnBC,MAAM,EACNC,QAAQ,QACL,OAAO;AACd,SAASC,YAAY,QAAQ,WAAW;AACxC,SAASC,OAAO,QAAQ,kBAAkB;AAC1C,SAASC,cAAc,QAAoC,mBAAmB;AAC9E,OAAOC,mBAAmB,MAAM,sCAAsC;AACtE,OAAOC,mBAAmB,MAAM,6CAA6C;AAC7E,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,gBAAgB,QAAQ,qBAAqB;AAyDtD,MAAMC,KAAK,gBAAGb,UAAU,CACpB,CACI;EACIc,SAAS;EACTC,OAAO;EACPC,MAAM;EACNC,SAAS;EACTC,MAAM;EACNC,QAAQ;EACRC,yBAAyB;EACzBC,iBAAiB,GAAG,KAAK;EACzBC,sBAAsB,GAAG,IAAI;EAC7BC,uBAAuB,GAAG,IAAI;EAC9BC,kBAAkB,GAAG,KAAK;EAC1BC,OAAO,GAAG,CAAC;EACXC,YAAY,GAAG;AACnB,CAAC,EACDC,GAAG,KACF;EACD,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGxB,QAAQ,CAAmB;IAC7DyB,CAAC,EAAE,CAAC;IACJC,CAAC,EAAE;EACP,CAAC,CAAC;EAEF,MAAM,CAACC,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG5B,QAAQ,CACtDG,cAAc,CAAC0B,OACnB,CAAC;EACD,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG/B,QAAQ,CAAS,CAAC,CAAC;EAC/C,MAAM,CAACgC,MAAM,EAAEC,SAAS,CAAC,GAAGjC,QAAQ,CAACqB,YAAY,CAAC;EAClD,MAAM,CAACa,MAAM,EAAEC,SAAS,CAAC,GAAGnC,QAAQ,CAAc,CAAC;EACnD,MAAM,CAACoC,UAAU,EAAEC,aAAa,CAAC,GAAGrC,QAAQ,CAAoC,CAAC;EACjF,MAAM,CAACsC,YAAY,EAAEC,eAAe,CAAC,GAAGvC,QAAQ,CAAiBY,SAAS,IAAI,IAAI,CAAC;EACnF,MAAM,CAAC4B,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGzC,QAAQ,CAAqB0C,SAAS,CAAC;EAEvF,MAAMC,OAAO,GAAG5C,MAAM,CAAS,CAAC;EAEhC,MAAM6C,IAAI,GAAG1C,OAAO,CAAC,CAAC;EAEtB,MAAM;IAAE2C,MAAM;IAAEC,KAAK;IAAEC;EAAgB,CAAC,GAAGxC,gBAAgB,CAAC;IACxDG,OAAO;IACPsC,yBAAyB,EAAE,CAAC/B;EAChC,CAAC,CAAC;EAEF,MAAMgC,eAAe,GAAGlD,MAAM,CAAiB,IAAI,CAAC;EACpD,MAAMmD,QAAQ,GAAGnD,MAAM,CAAiB,IAAI,CAAC;EAE7CF,SAAS,CAAC,MAAM;IACZ,IAAIqD,QAAQ,CAACC,OAAO,IAAI,CAACvC,SAAS,EAAE;MAChC,MAAMwC,EAAE,GAAGF,QAAQ,CAACC,OAAsB;MAE1C,MAAME,OAAO,GAAGD,EAAE,CAACE,OAAO,CAAC,4CAA4C,CAAC;MAExEf,eAAe,CAACc,OAAO,CAAC;IAC5B;EACJ,CAAC,EAAE,CAACzC,SAAS,CAAC,CAAC;EAEff,SAAS,CAAC,MAAM;IACZ,IAAIe,SAAS,YAAY2C,OAAO,EAAE;MAC9BhB,eAAe,CAAC3B,SAAS,CAAC;IAC9B;EACJ,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEff,SAAS,CAAC,MAAM;IACZwC,aAAa,CAAC;MAAEQ,MAAM;MAAEC;IAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACD,MAAM,EAAEC,KAAK,CAAC,CAAC;EAEnB,MAAMU,UAAU,GAAG5D,WAAW,CAAC,MAAM;IACjC,IAAIsD,QAAQ,CAACC,OAAO,IAAIf,UAAU,EAAE;MAChC,IAAI,CAACE,YAAY,EAAE;QACf;MACJ;MAEA,MAAMmB,kBAAkB,GAAG,EAAE;MAE7B,MAAM;QAAEZ,MAAM,EAAEa,YAAY;QAAEZ,KAAK,EAAEa;MAAY,CAAC,GAAGvB,UAAU;MAE/D,MAAM;QACFS,MAAM,EAAEe,cAAc;QACtBC,IAAI,EAAEC,YAAY;QAClBC,GAAG,EAAEC,WAAW;QAChBlB,KAAK,EAAEmB;MACX,CAAC,GAAGf,QAAQ,CAACC,OAAO,CAACe,qBAAqB,CAAC,CAAC;MAE5C,MAAMb,OAAO,GAAGnC,uBAAuB,GAAGoB,YAAY,GAAG6B,QAAQ,CAACC,IAAI;MAEtE,MAAM;QACFvB,MAAM,EAAEwB,eAAe;QACvBvB,KAAK,EAAEwB,cAAc;QACrBP,GAAG;QACHF;MACJ,CAAC,GAAGR,OAAO,CAACa,qBAAqB,CAAC,CAAC;MAEnC,MAAMK,KAAK,GAAGD,cAAc,GAAIjB,OAAO,CAAiBmB,WAAW;MACnE,MAAMC,KAAK,GAAGJ,eAAe,GAAIhB,OAAO,CAAiBqB,YAAY;MAErE,MAAMC,eAAe,GAAGb,YAAY,GAAGG,aAAa,GAAG,CAAC;MACxD,MAAMxC,CAAC,GAAG,CAACkD,eAAe,GAAGd,IAAI,IAAIU,KAAK,GAAGlB,OAAO,CAACuB,UAAU;MAC/D,MAAMlD,CAAC,GACH,CAACsC,WAAW,GAAGJ,cAAc,GAAG,CAAC,GAAGG,GAAG,IAAIU,KAAK,GAAGpB,OAAO,CAACwB,SAAS,GAAGzD,OAAO;;MAElF;MACA,MAAM0D,YAAY,GAAGzB,OAAO,CAACuB,UAAU;MACvC,MAAMG,aAAa,GAAGT,cAAc,GAAGC,KAAK;MAC5C,MAAMS,aAAa,GAAGF,YAAY,GAAGC,aAAa;MAClD,MAAME,SAAS,GAAGxD,CAAC,GAAGqD,YAAY;MAElC,MAAMI,gBAAgB,GAClBxB,YAAY,GAAGM,WAAW,GAAG,EAAE,IAC/BvD,SAAS,KAAKN,cAAc,CAACgF,UAAU,IACvC1E,SAAS,KAAKN,cAAc,CAACiF,WAAW,IACxC3E,SAAS,KAAKN,cAAc,CAACkF,YAAY;MAE7C,MAAMC,gBAAgB,GAAGJ,gBAAgB,GACnCzE,SAAS,KAAKN,cAAc,CAACiF,WAAW,GACxC3E,SAAS,KAAKN,cAAc,CAACoF,QAAQ;MAE3C,MAAMC,wBAAwB,GAAGN,gBAAgB,GAC3CzE,SAAS,KAAKN,cAAc,CAACkF,YAAY,GACzC5E,SAAS,KAAKN,cAAc,CAACsF,SAAS;MAE5C,MAAMC,uBAAuB,GACzB/B,WAAW,GAAG,CAAC,IAAIsB,SAAS,GAAGxB,kBAAkB,IACjDE,WAAW,GAAG,CAAC,IAAIoB,aAAa,GAAGE,SAAS,GAAGxB,kBAAkB;MAErE,IAAI+B,wBAAwB,IAAIE,uBAAuB,EAAE;QACrD9D,oBAAoB,CAChBsD,gBAAgB,GAAG/E,cAAc,CAACkF,YAAY,GAAGlF,cAAc,CAACsF,SACpE,CAAC;QACD1D,SAAS,CAAC,CAAC,CAAC;QACZP,cAAc,CAAC;UACXC,CAAC,EAAEkE,IAAI,CAACC,GAAG,CACPD,IAAI,CAACE,GAAG,CAACpE,CAAC,EAAEqD,YAAY,GAAGrB,kBAAkB,CAAC,EAC9CuB,aAAa,GAAGvB,kBACpB,CAAC;UACD/B;QACJ,CAAC,CAAC;MACN,CAAC,MAAM;QACH,IAAIoE,OAAO,GAAG,KAAK;QAEnB,IAAInC,WAAW,GAAGsB,SAAS,GAAGxB,kBAAkB,IAAI6B,gBAAgB,EAAE;UAClE1D,oBAAoB,CAChBsD,gBAAgB,GAAG/E,cAAc,CAACiF,WAAW,GAAGjF,cAAc,CAACoF,QACnE,CAAC;UACDO,OAAO,GAAG,IAAI;QAClB,CAAC,MAAM;UACHlE,oBAAoB,CAChBsD,gBAAgB,GAAG/E,cAAc,CAACgF,UAAU,GAAGhF,cAAc,CAAC0B,OAClE,CAAC;QACL;QAEA,IAAIkE,SAAS;QAEb,IAAID,OAAO,EAAE;UACTC,SAAS,GACLd,SAAS,GAAGtB,WAAW,IAAIoB,aAAa,GAClCE,SAAS,GAAGtB,WAAW,GAAGoB,aAAa,GACvC,CAAC;QACf,CAAC,MAAM;UACH,MAAMiB,KAAK,GAAGjB,aAAa,GAAGE,SAAS;UAEvCc,SAAS,GACLC,KAAK,GAAGrC,WAAW,IAAIoB,aAAa,GAC9BiB,KAAK,GAAGrC,WAAW,GAAGoB,aAAa,GACnC,CAAC;QACf;QAEAhD,SAAS,CAACgE,SAAS,CAAC;QAEpB,MAAME,IAAI,GAAGxE,CAAC,GAAGsE,SAAS;QAE1BvE,cAAc,CAAC;UACXC,CAAC,EAAEkE,IAAI,CAACC,GAAG,CACPD,IAAI,CAACE,GAAG,CAACI,IAAI,EAAEnB,YAAY,GAAGrB,kBAAkB,CAAC,EACjDuB,aAAa,GAAGvB,kBACpB,CAAC;UACD/B;QACJ,CAAC,CAAC;MACN;MAEAO,SAAS,CAAC,IAAI,CAAC;IACnB;EACJ,CAAC,EAAE,CAACxB,SAAS,EAAE6B,YAAY,EAAEF,UAAU,EAAElB,uBAAuB,EAAEE,OAAO,CAAC,CAAC;EAE3EvB,SAAS,CAAC,MAAM;IACZ,IAAIwB,YAAY,EAAE;MACdmC,UAAU,CAAC,CAAC;IAChB;EACJ,CAAC,EAAE,CAACA,UAAU,EAAEnC,YAAY,CAAC,CAAC;EAE9B,MAAM6E,gBAAgB,GAAGtG,WAAW,CAAC,MAAM;IACvC,IAAIoC,MAAM,EAAE;MACRwB,UAAU,CAAC,CAAC;IAChB;EACJ,CAAC,EAAE,CAACA,UAAU,EAAExB,MAAM,CAAC,CAAC;EAExBnC,SAAS,CAAC,MAAM;IACZ,IAAI,CAACmC,MAAM,EAAE;MACT;IACJ;IAEAmE,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEF,gBAAgB,CAAC;IACnDC,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEF,gBAAgB,EAAE,IAAI,CAAC;IAEzD,OAAO,MAAM;MACTC,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEH,gBAAgB,CAAC;MACtDC,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEH,gBAAgB,EAAE,IAAI,CAAC;IAChE,CAAC;EACL,CAAC,EAAE,CAACA,gBAAgB,EAAElE,MAAM,CAAC,CAAC;EAE9BnC,SAAS,CAAC,MAAM;IACZ,IAAI,CAACyC,YAAY,IAAI,CAACY,QAAQ,CAACC,OAAO,EAAE;IAExC,MAAMmD,UAAU,GAAGhE,YAAY,CAACiE,YAAY;IAC5C,MAAM3C,cAAc,GAAGV,QAAQ,CAACC,OAAO,CAACe,qBAAqB,CAAC,CAAC,CAACrB,MAAM;IAEtE,IACI,CACI1C,cAAc,CAAC0B,OAAO,EACtB1B,cAAc,CAACoF,QAAQ,EACvBpF,cAAc,CAACsF,SAAS,CAC3B,CAACe,QAAQ,CAAC7E,iBAAiB,CAAC,EAC/B;MACEc,mBAAmB,CAAClB,WAAW,CAACG,CAAC,GAAG,EAAE,CAAC;IAC3C,CAAC,MAAM;MACHe,mBAAmB,CAAC6D,UAAU,GAAG1C,cAAc,GAAGrC,WAAW,CAACG,CAAC,GAAG,EAAE,CAAC;IACzE;EACJ,CAAC,EAAE,CAACH,WAAW,CAACG,CAAC,EAAEC,iBAAiB,EAAEW,YAAY,CAAC,CAAC;EAEpD,MAAMmE,mBAAmB,GAAGA,CAAA,KAAM;IAC9BjD,UAAU,CAAC,CAAC;EAChB,CAAC;EAED,MAAMkD,UAAU,GAAG9G,WAAW,CAAC,MAAM;IACjCqC,SAAS,CAAC,KAAK,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM0E,gBAAgB,GAAG/G,WAAW,CAAC,MAAM;IACvC,IAAIoB,iBAAiB,EAAE;MACnBmF,MAAM,CAACS,YAAY,CAACjE,OAAO,CAACQ,OAAO,CAAC;MACpCK,UAAU,CAAC,CAAC;IAChB;EACJ,CAAC,EAAE,CAACA,UAAU,EAAExC,iBAAiB,CAAC,CAAC;EAEnC,MAAM6F,gBAAgB,GAAGjH,WAAW,CAAC,MAAM;IACvC,IAAI,CAACoB,iBAAiB,EAAE;MACpB;IACJ;IAEA,IAAID,yBAAyB,EAAE;MAC3B2F,UAAU,CAAC,CAAC;MAEZ;IACJ;IAEA/D,OAAO,CAACQ,OAAO,GAAGgD,MAAM,CAACW,UAAU,CAAC,MAAM;MACtCJ,UAAU,CAAC,CAAC;IAChB,CAAC,EAAE,GAAG,CAAC;EACX,CAAC,EAAE,CAACA,UAAU,EAAE3F,yBAAyB,EAAEC,iBAAiB,CAAC,CAAC;EAE9D,MAAM+F,mBAAmB,GAAGnH,WAAW,CAClCoH,KAAK,IAAK;IACP,IAAI,CAAC/D,eAAe,CAACE,OAAO,EAAE8D,QAAQ,CAACD,KAAK,CAACE,MAAc,CAAC,EAAE;MAC1DR,UAAU,CAAC,CAAC;IAChB;EACJ,CAAC,EACD,CAACA,UAAU,CACf,CAAC;EAED5G,mBAAmB,CACfwB,GAAG,EACH,OAAO;IACH6F,IAAI,EAAET,UAAU;IAChBU,IAAI,EAAE5D;EACV,CAAC,CAAC,EACF,CAACkD,UAAU,EAAElD,UAAU,CAC3B,CAAC;EAED3D,SAAS,CAAC,MAAM;IACZ,IAAImC,MAAM,IAAI,CAACX,YAAY,EAAE;MACzB8C,QAAQ,CAACiC,gBAAgB,CAAC,OAAO,EAAEW,mBAAmB,EAAE,IAAI,CAAC;MAC7DZ,MAAM,CAACC,gBAAgB,CAAC,MAAM,EAAEM,UAAU,CAAC;MAE3C,IAAI,OAAO/F,MAAM,KAAK,UAAU,EAAE;QAC9BA,MAAM,CAAC,CAAC;MACZ;IACJ,CAAC,MAAM,IAAI,OAAOE,MAAM,KAAK,UAAU,EAAE;MACrCA,MAAM,CAAC,CAAC;IACZ;IAEA,OAAO,MAAM;MACTsD,QAAQ,CAACkC,mBAAmB,CAAC,OAAO,EAAEU,mBAAmB,EAAE,IAAI,CAAC;MAChEZ,MAAM,CAACE,mBAAmB,CAAC,MAAM,EAAEK,UAAU,CAAC;IAClD,CAAC;EACL,CAAC,EAAE,CAACK,mBAAmB,EAAEL,UAAU,EAAE1E,MAAM,EAAEnB,MAAM,EAAEF,MAAM,EAAEU,YAAY,CAAC,CAAC;EAE3ExB,SAAS,CAAC,MAAM;IACZ,IAAI,CAACyC,YAAY,EAAE;MACf;IACJ;IAEAH,SAAS,CAAC,mBACNlC,YAAY,cACRP,KAAA,CAAA2H,aAAA,CAAC5H,eAAe;MAAC6H,OAAO,EAAE;IAAM,GAC3BtF,MAAM,iBACHtC,KAAA,CAAA2H,aAAA,CAAChH,mBAAmB;MAChByC,KAAK,EAAEV,UAAU,EAAEU,KAAK,IAAI,CAAE;MAC9BhB,MAAM,EAAEA,MAAO;MACfZ,uBAAuB,EAAEA,uBAAwB;MACjDK,WAAW,EAAEA,WAAY;MACzBgG,GAAG,EAAE,WAAW3E,IAAI,EAAG;MACvB4E,SAAS,EAAEhF,gBAAiB;MAC5B/B,SAAS,EAAEkB,iBAAkB;MAC7BL,GAAG,EAAE2B,eAAgB;MACrBwE,YAAY,EAAEZ,gBAAiB;MAC/Ba,YAAY,EAAEf;IAAiB,gBAE/BjH,KAAA,CAAA2H,aAAA,CAACjH,mBAAmB;MAACuH,iBAAiB;IAAA,GACjCjH,OACgB,CACJ,CAEZ,CAAC,EAClB4B,YACJ,CACJ,CAAC;EACL,CAAC,EAAE,CACCE,gBAAgB,EAChBb,iBAAiB,EACjBW,YAAY,EACZ5B,OAAO,EACPa,WAAW,EACXoF,gBAAgB,EAChBE,gBAAgB,EAChB7E,MAAM,EACNF,MAAM,EACNM,UAAU,EAAEU,KAAK,EACjBF,IAAI,EACJ1B,uBAAuB,CAC1B,CAAC;EAEF,oBACIxB,KAAA,CAAA2H,aAAA,CAAA3H,KAAA,CAAAkI,QAAA,QACK7E,eAAe,eAChBrD,KAAA,CAAA2H,aAAA,CAAC/G,WAAW;IACRuH,SAAS,EAAC,mBAAmB;IAC7BvG,GAAG,EAAE4B,QAAS;IACd4E,OAAO,EAAErB,mBAAoB;IAC7BgB,YAAY,EAAEZ,gBAAiB;IAC/Ba,YAAY,EAAEf,gBAAiB;IAC/BoB,uBAAuB,EAAE9G,sBAAuB;IAChD+G,mBAAmB,EAAE7G;EAAmB,GAEvCL,QACQ,CAAC,EACboB,MACH,CAAC;AAEX,CACJ,CAAC;AAED1B,KAAK,CAACyH,WAAW,GAAG,OAAO;AAE3B,eAAezH,KAAK","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { c as _c } from "react-compiler-runtime";
2
- import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
2
+ import React, { useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
3
3
  import { useUuid } from '../../hooks/uuid';
4
4
  import { StyledMotionProgressBarProgress, StyledProgressBar, StyledProgressBarBackground, StyledProgressBarLabel, StyledProgressBarProgressWrapper, StyledProgressBarShine, StyledProgressBarStep, StyledProgressBarStepWrapper, StyledProgressBarThumbLabel } from './ProgressBar.styles';
5
5
  import { PopupAlignment } from '../../types/popup';
@@ -81,7 +81,7 @@ const ProgressBar = t0 => {
81
81
  t5 = $[8];
82
82
  t6 = $[9];
83
83
  }
84
- useEffect(t5, t6);
84
+ useLayoutEffect(t5, t6);
85
85
  let t7;
86
86
  let t8;
87
87
  if ($[10] !== coordinates) {
@@ -140,7 +140,8 @@ const ProgressBar = t0 => {
140
140
  return /*#__PURE__*/React.createElement("div", {
141
141
  ref: instance => setHostContainer(instance),
142
142
  style: {
143
- border: 0
143
+ border: 0,
144
+ position: "relative"
144
145
  }
145
146
  }, /*#__PURE__*/React.createElement(StyledProgressBarProgressWrapper, {
146
147
  $isBig: shouldShowLabelInline,
@@ -182,6 +183,7 @@ const ProgressBar = t0 => {
182
183
  container: hostContainer ?? undefined,
183
184
  shouldUseChildrenWidth: true,
184
185
  shouldBeOpen: true,
186
+ shouldScrollWithContent: true,
185
187
  yOffset: -12
186
188
  })))), shouldShowLabelInline && label && /*#__PURE__*/React.createElement(StyledProgressBarLabel, {
187
189
  $shouldShowLabelInline: shouldShowLabelInline,
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.js","names":["React","useContext","useEffect","useMemo","useRef","useState","useUuid","StyledMotionProgressBarProgress","StyledProgressBar","StyledProgressBarBackground","StyledProgressBarLabel","StyledProgressBarProgressWrapper","StyledProgressBarShine","StyledProgressBarStep","StyledProgressBarStepWrapper","StyledProgressBarThumbLabel","PopupAlignment","ThemeContext","ThemeProvider","Popup","ProgressBar","t0","$","_c","percentage","label","shouldHideProgress","t1","shouldShowLabelInline","t2","steps","colors","thumbLabel","showShine","t3","height","undefined","uuid","coordinates","setCoordinates","popupRef","hostContainer","setHostContainer","theme","t4","bb0","t","shineCount","Math","ceil","speed","t5","Array","from","length","t6","map","_","index","createElement","key","$delay","shineEffect","getBoundingClientRect","t7","t8","current","show","t9","backgroundColor","primaryTextColor","progressColor","secondaryTextColor","stepColor","thumbLabelColor","$color","initial","width","left","animate","exit","transition","type","repeat","Infinity","repeatDelay","duration","ref","instance","style","border","step","onUpdate","onAnimationComplete","onClick","_temp","text","alignment","TopCenter","onHide","container","shouldUseChildrenWidth","shouldBeOpen","yOffset","$primaryColor","$secondaryColor","progressBar","t10","t11","displayName","event","stopPropagation"],"sources":["../../../../src/components/progress-bar/ProgressBar.tsx"],"sourcesContent":["import React, { FC, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport {\n StyledMotionProgressBarProgress,\n StyledProgressBar,\n StyledProgressBarBackground,\n StyledProgressBarLabel,\n StyledProgressBarProgressWrapper,\n StyledProgressBarShine,\n StyledProgressBarStep,\n StyledProgressBarStepWrapper,\n StyledProgressBarThumbLabel,\n} from './ProgressBar.styles';\nimport { PopupAlignment, PopupRef } from '../../types/popup';\nimport { ThemeContext, ThemeProvider } from 'styled-components';\nimport { Theme } from '../color-scheme-provider/ColorSchemeProvider';\nimport Popup from '../popup/Popup';\n\ntype Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N\n ? Acc[number]\n : Enumerate<N, [...Acc, Acc['length']]>;\n\ntype Range<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;\n\ninterface Colors {\n backgroundColor?: string;\n progressColor?: string;\n stepColor?: string;\n primaryTextColor?: string;\n secondaryTextColor?: string;\n thumbLabelColor?: string;\n}\n\nexport type ProgressBarProps = {\n /**\n * The colors of the ProgressBar.\n */\n colors?: Colors;\n /**\n * The label that should be displayed under the progressbar.\n */\n label?: string;\n /**\n * The percentage of the progress. Number between 0 and 100.\n */\n percentage?: Range<0, 101>;\n /**\n * Whether the progress should be hide and just display the label.\n */\n shouldHideProgress?: boolean;\n /**\n * Whether the label should be displayed inside the ProgressBar.\n */\n shouldShowLabelInline?: boolean;\n /**\n * Visual marked steps.\n */\n steps?: Range<0, 101>[];\n /**\n * The label that should be displayed on the thumb of the progress bar.\n */\n thumbLabel?: React.ReactNode;\n /**\n * Whether a shine animation should be shown on the progress bar. The amount of shine is based on the percentage value.\n */\n showShine?: boolean;\n /**\n * The height of the progress bar in pixels. If not provided, it will be 10px if shouldShowLabelInline is false and 20px if shouldShowLabelInline is true.\n */\n height?: number;\n};\n\nconst ProgressBar: FC<ProgressBarProps> = ({\n percentage,\n label,\n shouldHideProgress = false,\n shouldShowLabelInline = false,\n steps,\n colors,\n thumbLabel,\n showShine = false,\n height,\n}) => {\n 'use memo';\n\n const uuid = useUuid();\n const [coordinates, setCoordinates] = useState<{ x: number; y: number }>();\n const popupRef = useRef<PopupRef | null>(null);\n const [hostContainer, setHostContainer] = useState<HTMLDivElement | null>(null);\n\n const theme = useContext(ThemeContext) as Theme | undefined;\n\n const shineEffect = useMemo(() => {\n if (!showShine || percentage === undefined) return null;\n const MIN_ANIMATION_LENGTH = 1;\n const MAX_ANIMATION_LENGTH = 5;\n const MAX_SHINE_COUNT = 6;\n const t = percentage / 100;\n\n const shineCount = Math.ceil(MAX_SHINE_COUNT * t);\n\n const speed = MIN_ANIMATION_LENGTH + (MAX_ANIMATION_LENGTH - MIN_ANIMATION_LENGTH) * t;\n\n return Array.from({ length: shineCount }).map((_, index) => (\n <StyledProgressBarShine\n /* eslint-disable-next-line react/no-array-index-key */\n key={`progress-bar-shine__${shineCount}__${index}`}\n $speed={speed}\n $delay={-(speed / shineCount) * index}\n />\n ));\n }, [percentage, showShine]);\n\n useEffect(() => {\n if (thumbLabel) setCoordinates(hostContainer?.getBoundingClientRect());\n }, [hostContainer, thumbLabel]);\n\n useEffect(() => {\n if (coordinates) popupRef.current?.show();\n }, [coordinates]);\n\n const progressBar = useMemo(() => {\n if (shouldHideProgress) {\n return null;\n }\n\n if (percentage === undefined) {\n return (\n <StyledProgressBarProgressWrapper>\n <StyledMotionProgressBarProgress\n key={`progress-bar-loop__${uuid}`}\n $color={colors?.progressColor}\n initial={{ width: '200px', left: '-200px' }}\n animate={{ width: '200px', left: '100%' }}\n exit={{ width: '200px', left: '100%' }}\n transition={{\n type: 'tween',\n repeat: Infinity,\n repeatDelay: 0,\n duration: 1,\n }}\n />\n <StyledProgressBarBackground $color={colors?.backgroundColor} />\n </StyledProgressBarProgressWrapper>\n );\n }\n\n return (\n <div ref={(instance) => setHostContainer(instance)} style={{ border: 0 }}>\n <StyledProgressBarProgressWrapper $isBig={shouldShowLabelInline} $height={height}>\n {!!steps?.length && (\n <StyledProgressBarStepWrapper>\n {steps.map((step) => (\n <StyledProgressBarStep\n $position={step}\n key={`progress-step-${step}`}\n $color={colors?.stepColor}\n />\n ))}\n </StyledProgressBarStepWrapper>\n )}\n <StyledMotionProgressBarProgress\n $height={height}\n $color={colors?.progressColor}\n key={`progress-bar__${uuid}`}\n initial={{ width: '0%' }}\n animate={{ width: `${percentage}%` }}\n exit={{ width: '0%' }}\n transition={{ type: 'tween' }}\n onUpdate={() => popupRef.current?.show()}\n onAnimationComplete={() => popupRef.current?.show()}\n >\n {showShine && shineEffect}\n {thumbLabel && (\n <StyledProgressBarThumbLabel\n onClick={(event) => event.stopPropagation()}\n >\n <ThemeProvider\n theme={{\n '000': colors?.thumbLabelColor ?? theme?.['104'],\n text: colors?.secondaryTextColor ?? theme?.['300'],\n }}\n >\n <Popup\n ref={popupRef}\n content={thumbLabel}\n alignment={PopupAlignment.TopCenter}\n onHide={() => popupRef.current?.show()}\n container={hostContainer ?? undefined}\n shouldUseChildrenWidth\n shouldBeOpen\n yOffset={-12}\n >\n {}\n </Popup>\n </ThemeProvider>\n </StyledProgressBarThumbLabel>\n )}\n </StyledMotionProgressBarProgress>\n\n {shouldShowLabelInline && label && (\n <StyledProgressBarLabel\n $shouldShowLabelInline={shouldShowLabelInline}\n $primaryColor={colors?.primaryTextColor}\n $secondaryColor={colors?.secondaryTextColor}\n $colorSplitPosition={percentage}\n >\n {label}\n </StyledProgressBarLabel>\n )}\n\n <StyledProgressBarBackground $color={colors?.backgroundColor} />\n </StyledProgressBarProgressWrapper>\n </div>\n );\n }, [\n colors?.backgroundColor,\n colors?.primaryTextColor,\n colors?.progressColor,\n colors?.secondaryTextColor,\n colors?.stepColor,\n colors?.thumbLabelColor,\n height,\n hostContainer,\n label,\n percentage,\n shineEffect,\n shouldHideProgress,\n shouldShowLabelInline,\n showShine,\n steps,\n theme,\n thumbLabel,\n uuid,\n ]);\n\n return useMemo(\n () => (\n <StyledProgressBar>\n {progressBar}\n {label && !shouldShowLabelInline && (\n <StyledProgressBarLabel $primaryColor={colors?.primaryTextColor}>\n {label}\n </StyledProgressBarLabel>\n )}\n </StyledProgressBar>\n ),\n [colors?.primaryTextColor, label, progressBar, shouldShowLabelInline],\n );\n};\n\nProgressBar.displayName = 'ProgressBar';\n\nexport default ProgressBar;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ProgressBar.js","names":["React","useContext","useEffect","useLayoutEffect","useMemo","useRef","useState","useUuid","StyledMotionProgressBarProgress","StyledProgressBar","StyledProgressBarBackground","StyledProgressBarLabel","StyledProgressBarProgressWrapper","StyledProgressBarShine","StyledProgressBarStep","StyledProgressBarStepWrapper","StyledProgressBarThumbLabel","PopupAlignment","ThemeContext","ThemeProvider","Popup","ProgressBar","t0","$","_c","percentage","label","shouldHideProgress","t1","shouldShowLabelInline","t2","steps","colors","thumbLabel","showShine","t3","height","undefined","uuid","coordinates","setCoordinates","popupRef","hostContainer","setHostContainer","theme","t4","bb0","t","shineCount","Math","ceil","speed","t5","Array","from","length","t6","map","_","index","createElement","key","$delay","shineEffect","getBoundingClientRect","t7","t8","current","show","t9","backgroundColor","primaryTextColor","progressColor","secondaryTextColor","stepColor","thumbLabelColor","$color","initial","width","left","animate","exit","transition","type","repeat","Infinity","repeatDelay","duration","ref","instance","style","border","position","step","onUpdate","onAnimationComplete","onClick","_temp","text","alignment","TopCenter","onHide","container","shouldUseChildrenWidth","shouldBeOpen","shouldScrollWithContent","yOffset","$primaryColor","$secondaryColor","progressBar","t10","t11","displayName","event","stopPropagation"],"sources":["../../../../src/components/progress-bar/ProgressBar.tsx"],"sourcesContent":["import React, {\n FC,\n useContext,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport {\n StyledMotionProgressBarProgress,\n StyledProgressBar,\n StyledProgressBarBackground,\n StyledProgressBarLabel,\n StyledProgressBarProgressWrapper,\n StyledProgressBarShine,\n StyledProgressBarStep,\n StyledProgressBarStepWrapper,\n StyledProgressBarThumbLabel,\n} from './ProgressBar.styles';\nimport { PopupAlignment, PopupRef } from '../../types/popup';\nimport { ThemeContext, ThemeProvider } from 'styled-components';\nimport { Theme } from '../color-scheme-provider/ColorSchemeProvider';\nimport Popup from '../popup/Popup';\n\ntype Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N\n ? Acc[number]\n : Enumerate<N, [...Acc, Acc['length']]>;\n\ntype Range<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;\n\ninterface Colors {\n backgroundColor?: string;\n progressColor?: string;\n stepColor?: string;\n primaryTextColor?: string;\n secondaryTextColor?: string;\n thumbLabelColor?: string;\n}\n\nexport type ProgressBarProps = {\n /**\n * The colors of the ProgressBar.\n */\n colors?: Colors;\n /**\n * The label that should be displayed under the progressbar.\n */\n label?: string;\n /**\n * The percentage of the progress. Number between 0 and 100.\n */\n percentage?: Range<0, 101>;\n /**\n * Whether the progress should be hide and just display the label.\n */\n shouldHideProgress?: boolean;\n /**\n * Whether the label should be displayed inside the ProgressBar.\n */\n shouldShowLabelInline?: boolean;\n /**\n * Visual marked steps.\n */\n steps?: Range<0, 101>[];\n /**\n * The label that should be displayed on the thumb of the progress bar.\n */\n thumbLabel?: React.ReactNode;\n /**\n * Whether a shine animation should be shown on the progress bar. The amount of shine is based on the percentage value.\n */\n showShine?: boolean;\n /**\n * The height of the progress bar in pixels. If not provided, it will be 10px if shouldShowLabelInline is false and 20px if shouldShowLabelInline is true.\n */\n height?: number;\n};\n\nconst ProgressBar: FC<ProgressBarProps> = ({\n percentage,\n label,\n shouldHideProgress = false,\n shouldShowLabelInline = false,\n steps,\n colors,\n thumbLabel,\n showShine = false,\n height,\n}) => {\n 'use memo';\n\n const uuid = useUuid();\n const [coordinates, setCoordinates] = useState<{ x: number; y: number }>();\n const popupRef = useRef<PopupRef | null>(null);\n const [hostContainer, setHostContainer] = useState<HTMLDivElement | null>(null);\n\n const theme = useContext(ThemeContext) as Theme | undefined;\n\n const shineEffect = useMemo(() => {\n if (!showShine || percentage === undefined) return null;\n const MIN_ANIMATION_LENGTH = 1;\n const MAX_ANIMATION_LENGTH = 5;\n const MAX_SHINE_COUNT = 6;\n const t = percentage / 100;\n\n const shineCount = Math.ceil(MAX_SHINE_COUNT * t);\n\n const speed = MIN_ANIMATION_LENGTH + (MAX_ANIMATION_LENGTH - MIN_ANIMATION_LENGTH) * t;\n\n return Array.from({ length: shineCount }).map((_, index) => (\n <StyledProgressBarShine\n /* eslint-disable-next-line react/no-array-index-key */\n key={`progress-bar-shine__${shineCount}__${index}`}\n $speed={speed}\n $delay={-(speed / shineCount) * index}\n />\n ));\n }, [percentage, showShine]);\n\n useLayoutEffect(() => {\n if (thumbLabel) setCoordinates(hostContainer?.getBoundingClientRect());\n }, [hostContainer, thumbLabel]);\n\n useEffect(() => {\n if (coordinates) popupRef.current?.show();\n }, [coordinates]);\n\n const progressBar = useMemo(() => {\n if (shouldHideProgress) {\n return null;\n }\n\n if (percentage === undefined) {\n return (\n <StyledProgressBarProgressWrapper>\n <StyledMotionProgressBarProgress\n key={`progress-bar-loop__${uuid}`}\n $color={colors?.progressColor}\n initial={{ width: '200px', left: '-200px' }}\n animate={{ width: '200px', left: '100%' }}\n exit={{ width: '200px', left: '100%' }}\n transition={{\n type: 'tween',\n repeat: Infinity,\n repeatDelay: 0,\n duration: 1,\n }}\n />\n <StyledProgressBarBackground $color={colors?.backgroundColor} />\n </StyledProgressBarProgressWrapper>\n );\n }\n\n return (\n <div\n ref={(instance) => setHostContainer(instance)}\n style={{ border: 0, position: 'relative' }}\n >\n <StyledProgressBarProgressWrapper $isBig={shouldShowLabelInline} $height={height}>\n {!!steps?.length && (\n <StyledProgressBarStepWrapper>\n {steps.map((step) => (\n <StyledProgressBarStep\n $position={step}\n key={`progress-step-${step}`}\n $color={colors?.stepColor}\n />\n ))}\n </StyledProgressBarStepWrapper>\n )}\n <StyledMotionProgressBarProgress\n $height={height}\n $color={colors?.progressColor}\n key={`progress-bar__${uuid}`}\n initial={{ width: '0%' }}\n animate={{ width: `${percentage}%` }}\n exit={{ width: '0%' }}\n transition={{ type: 'tween' }}\n onUpdate={() => popupRef.current?.show()}\n onAnimationComplete={() => popupRef.current?.show()}\n >\n {showShine && shineEffect}\n {thumbLabel && (\n <StyledProgressBarThumbLabel\n onClick={(event) => event.stopPropagation()}\n >\n <ThemeProvider\n theme={{\n '000': colors?.thumbLabelColor ?? theme?.['104'],\n text: colors?.secondaryTextColor ?? theme?.['300'],\n }}\n >\n <Popup\n ref={popupRef}\n content={thumbLabel}\n alignment={PopupAlignment.TopCenter}\n onHide={() => popupRef.current?.show()}\n container={hostContainer ?? undefined}\n shouldUseChildrenWidth\n shouldBeOpen\n shouldScrollWithContent\n yOffset={-12}\n >\n {}\n </Popup>\n </ThemeProvider>\n </StyledProgressBarThumbLabel>\n )}\n </StyledMotionProgressBarProgress>\n\n {shouldShowLabelInline && label && (\n <StyledProgressBarLabel\n $shouldShowLabelInline={shouldShowLabelInline}\n $primaryColor={colors?.primaryTextColor}\n $secondaryColor={colors?.secondaryTextColor}\n $colorSplitPosition={percentage}\n >\n {label}\n </StyledProgressBarLabel>\n )}\n\n <StyledProgressBarBackground $color={colors?.backgroundColor} />\n </StyledProgressBarProgressWrapper>\n </div>\n );\n }, [\n colors?.backgroundColor,\n colors?.primaryTextColor,\n colors?.progressColor,\n colors?.secondaryTextColor,\n colors?.stepColor,\n colors?.thumbLabelColor,\n height,\n hostContainer,\n label,\n percentage,\n shineEffect,\n shouldHideProgress,\n shouldShowLabelInline,\n showShine,\n steps,\n theme,\n thumbLabel,\n uuid,\n ]);\n\n return useMemo(\n () => (\n <StyledProgressBar>\n {progressBar}\n {label && !shouldShowLabelInline && (\n <StyledProgressBarLabel $primaryColor={colors?.primaryTextColor}>\n {label}\n </StyledProgressBarLabel>\n )}\n </StyledProgressBar>\n ),\n [colors?.primaryTextColor, label, progressBar, shouldShowLabelInline],\n );\n};\n\nProgressBar.displayName = 'ProgressBar';\n\nexport default ProgressBar;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/core",
3
- "version": "5.0.36",
3
+ "version": "5.0.37",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "files": [
36
36
  "lib",
37
- "AI_USAGE.md"
37
+ "AGENTS.md"
38
38
  ],
39
39
  "repository": {
40
40
  "type": "git",
@@ -87,5 +87,5 @@
87
87
  "publishConfig": {
88
88
  "access": "public"
89
89
  },
90
- "gitHead": "9c66e5f8085e1ed2d91992413e4113cc0a16923d"
90
+ "gitHead": "c9337c5068c5387dc3d79e661d1ddc00a276313e"
91
91
  }
File without changes