{"ast":null,"code":"import $fnFM9$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport { forwardRef as $fnFM9$forwardRef, useState as $fnFM9$useState, createElement as $fnFM9$createElement, useRef as $fnFM9$useRef, Fragment as $fnFM9$Fragment, useEffect as $fnFM9$useEffect, useCallback as $fnFM9$useCallback, useReducer as $fnFM9$useReducer } from \"react\";\nimport { Primitive as $fnFM9$Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence as $fnFM9$Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope as $fnFM9$createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs as $fnFM9$useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef as $fnFM9$useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection as $fnFM9$useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect as $fnFM9$useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp as $fnFM9$clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers as $fnFM9$composeEventHandlers } from \"@radix-ui/primitive\";\nfunction $6c2e24571c90391f$export$3e6543de14f8614f(initialState, machine) {\n  return $fnFM9$useReducer((state, event) => {\n    const nextState = machine[state][event];\n    return nextState !== null && nextState !== void 0 ? nextState : state;\n  }, initialState);\n}\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollArea\n * -----------------------------------------------------------------------------------------------*/\nconst $57acba87d6e25586$var$SCROLL_AREA_NAME = 'ScrollArea';\nconst [$57acba87d6e25586$var$createScrollAreaContext, $57acba87d6e25586$export$488468afe3a6f2b1] = $fnFM9$createContextScope($57acba87d6e25586$var$SCROLL_AREA_NAME);\nconst [$57acba87d6e25586$var$ScrollAreaProvider, $57acba87d6e25586$var$useScrollAreaContext] = $57acba87d6e25586$var$createScrollAreaContext($57acba87d6e25586$var$SCROLL_AREA_NAME);\nconst $57acba87d6e25586$export$ccf8d8d7bbf3c2cc = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    __scopeScrollArea: __scopeScrollArea,\n    type = 'hover',\n    dir: dir,\n    scrollHideDelay = 600,\n    ...scrollAreaProps\n  } = props;\n  const [scrollArea, setScrollArea] = $fnFM9$useState(null);\n  const [viewport, setViewport] = $fnFM9$useState(null);\n  const [content, setContent] = $fnFM9$useState(null);\n  const [scrollbarX, setScrollbarX] = $fnFM9$useState(null);\n  const [scrollbarY, setScrollbarY] = $fnFM9$useState(null);\n  const [cornerWidth, setCornerWidth] = $fnFM9$useState(0);\n  const [cornerHeight, setCornerHeight] = $fnFM9$useState(0);\n  const [scrollbarXEnabled, setScrollbarXEnabled] = $fnFM9$useState(false);\n  const [scrollbarYEnabled, setScrollbarYEnabled] = $fnFM9$useState(false);\n  const composedRefs = $fnFM9$useComposedRefs(forwardedRef, node => setScrollArea(node));\n  const direction = $fnFM9$useDirection(dir);\n  return /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaProvider, {\n    scope: __scopeScrollArea,\n    type: type,\n    dir: direction,\n    scrollHideDelay: scrollHideDelay,\n    scrollArea: scrollArea,\n    viewport: viewport,\n    onViewportChange: setViewport,\n    content: content,\n    onContentChange: setContent,\n    scrollbarX: scrollbarX,\n    onScrollbarXChange: setScrollbarX,\n    scrollbarXEnabled: scrollbarXEnabled,\n    onScrollbarXEnabledChange: setScrollbarXEnabled,\n    scrollbarY: scrollbarY,\n    onScrollbarYChange: setScrollbarY,\n    scrollbarYEnabled: scrollbarYEnabled,\n    onScrollbarYEnabledChange: setScrollbarYEnabled,\n    onCornerWidthChange: setCornerWidth,\n    onCornerHeightChange: setCornerHeight\n  }, /*#__PURE__*/$fnFM9$createElement($fnFM9$Primitive.div, $fnFM9$babelruntimehelpersesmextends({\n    dir: direction\n  }, scrollAreaProps, {\n    ref: composedRefs,\n    style: {\n      position: 'relative',\n      // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n      ['--radix-scroll-area-corner-width']: cornerWidth + 'px',\n      ['--radix-scroll-area-corner-height']: cornerHeight + 'px',\n      ...props.style\n    }\n  })));\n});\n/*#__PURE__*/\nObject.assign($57acba87d6e25586$export$ccf8d8d7bbf3c2cc, {\n  displayName: $57acba87d6e25586$var$SCROLL_AREA_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaViewport\n * -----------------------------------------------------------------------------------------------*/\nconst $57acba87d6e25586$var$VIEWPORT_NAME = 'ScrollAreaViewport';\nconst $57acba87d6e25586$export$a21cbf9f11fca853 = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    __scopeScrollArea: __scopeScrollArea,\n    children: children,\n    ...viewportProps\n  } = props;\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$VIEWPORT_NAME, __scopeScrollArea);\n  const ref = $fnFM9$useRef(null);\n  const composedRefs = $fnFM9$useComposedRefs(forwardedRef, ref, context.onViewportChange);\n  return /*#__PURE__*/$fnFM9$createElement($fnFM9$Fragment, null, /*#__PURE__*/$fnFM9$createElement(\"style\", {\n    dangerouslySetInnerHTML: {\n      __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n    }\n  }), /*#__PURE__*/$fnFM9$createElement($fnFM9$Primitive.div, $fnFM9$babelruntimehelpersesmextends({\n    \"data-radix-scroll-area-viewport\": \"\"\n  }, viewportProps, {\n    ref: composedRefs,\n    style: {\n      /**\n      * We don't support `visible` because the intention is to have at least one scrollbar\n      * if this component is used and `visible` will behave like `auto` in that case\n      * https://developer.mozilla.org/en-US/docs/Web/CSS/overflowed#description\n      *\n      * We don't handle `auto` because the intention is for the native implementation\n      * to be hidden if using this component. We just want to ensure the node is scrollable\n      * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n      * the browser from having to work out whether to render native scrollbars or not,\n      * we tell it to with the intention of hiding them in CSS.\n      */\n      overflowX: context.scrollbarXEnabled ? 'scroll' : 'hidden',\n      overflowY: context.scrollbarYEnabled ? 'scroll' : 'hidden',\n      ...props.style\n    }\n  }), /*#__PURE__*/$fnFM9$createElement(\"div\", {\n    ref: context.onContentChange,\n    style: {\n      minWidth: '100%',\n      display: 'table'\n    }\n  }, children)));\n});\n/*#__PURE__*/\nObject.assign($57acba87d6e25586$export$a21cbf9f11fca853, {\n  displayName: $57acba87d6e25586$var$VIEWPORT_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaScrollbar\n * -----------------------------------------------------------------------------------------------*/\nconst $57acba87d6e25586$var$SCROLLBAR_NAME = 'ScrollAreaScrollbar';\nconst $57acba87d6e25586$export$2fabd85d0eba3c57 = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    forceMount: forceMount,\n    ...scrollbarProps\n  } = props;\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n  const {\n    onScrollbarXEnabledChange: onScrollbarXEnabledChange,\n    onScrollbarYEnabledChange: onScrollbarYEnabledChange\n  } = context;\n  const isHorizontal = props.orientation === 'horizontal';\n  $fnFM9$useEffect(() => {\n    isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n    return () => {\n      isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n    };\n  }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n  return context.type === 'hover' ? /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarHover, $fnFM9$babelruntimehelpersesmextends({}, scrollbarProps, {\n    ref: forwardedRef,\n    forceMount: forceMount\n  })) : context.type === 'scroll' ? /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarScroll, $fnFM9$babelruntimehelpersesmextends({}, scrollbarProps, {\n    ref: forwardedRef,\n    forceMount: forceMount\n  })) : context.type === 'auto' ? /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarAuto, $fnFM9$babelruntimehelpersesmextends({}, scrollbarProps, {\n    ref: forwardedRef,\n    forceMount: forceMount\n  })) : context.type === 'always' ? /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarVisible, $fnFM9$babelruntimehelpersesmextends({}, scrollbarProps, {\n    ref: forwardedRef\n  })) : null;\n});\n/*#__PURE__*/\nObject.assign($57acba87d6e25586$export$2fabd85d0eba3c57, {\n  displayName: $57acba87d6e25586$var$SCROLLBAR_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/\nconst $57acba87d6e25586$var$ScrollAreaScrollbarHover = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    forceMount: forceMount,\n    ...scrollbarProps\n  } = props;\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n  const [visible, setVisible] = $fnFM9$useState(false);\n  $fnFM9$useEffect(() => {\n    const scrollArea = context.scrollArea;\n    let hideTimer = 0;\n    if (scrollArea) {\n      const handlePointerEnter = () => {\n        window.clearTimeout(hideTimer);\n        setVisible(true);\n      };\n      const handlePointerLeave = () => {\n        hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n      };\n      scrollArea.addEventListener('pointerenter', handlePointerEnter);\n      scrollArea.addEventListener('pointerleave', handlePointerLeave);\n      return () => {\n        window.clearTimeout(hideTimer);\n        scrollArea.removeEventListener('pointerenter', handlePointerEnter);\n        scrollArea.removeEventListener('pointerleave', handlePointerLeave);\n      };\n    }\n  }, [context.scrollArea, context.scrollHideDelay]);\n  return /*#__PURE__*/$fnFM9$createElement($fnFM9$Presence, {\n    present: forceMount || visible\n  }, /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarAuto, $fnFM9$babelruntimehelpersesmextends({\n    \"data-state\": visible ? 'visible' : 'hidden'\n  }, scrollbarProps, {\n    ref: forwardedRef\n  })));\n});\nconst $57acba87d6e25586$var$ScrollAreaScrollbarScroll = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    forceMount: forceMount,\n    ...scrollbarProps\n  } = props;\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n  const isHorizontal = props.orientation === 'horizontal';\n  const debounceScrollEnd = $57acba87d6e25586$var$useDebounceCallback(() => send('SCROLL_END'), 100);\n  const [state, send] = $6c2e24571c90391f$export$3e6543de14f8614f('hidden', {\n    hidden: {\n      SCROLL: 'scrolling'\n    },\n    scrolling: {\n      SCROLL_END: 'idle',\n      POINTER_ENTER: 'interacting'\n    },\n    interacting: {\n      SCROLL: 'interacting',\n      POINTER_LEAVE: 'idle'\n    },\n    idle: {\n      HIDE: 'hidden',\n      SCROLL: 'scrolling',\n      POINTER_ENTER: 'interacting'\n    }\n  });\n  $fnFM9$useEffect(() => {\n    if (state === 'idle') {\n      const hideTimer = window.setTimeout(() => send('HIDE'), context.scrollHideDelay);\n      return () => window.clearTimeout(hideTimer);\n    }\n  }, [state, context.scrollHideDelay, send]);\n  $fnFM9$useEffect(() => {\n    const viewport = context.viewport;\n    const scrollDirection = isHorizontal ? 'scrollLeft' : 'scrollTop';\n    if (viewport) {\n      let prevScrollPos = viewport[scrollDirection];\n      const handleScroll = () => {\n        const scrollPos = viewport[scrollDirection];\n        const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n        if (hasScrollInDirectionChanged) {\n          send('SCROLL');\n          debounceScrollEnd();\n        }\n        prevScrollPos = scrollPos;\n      };\n      viewport.addEventListener('scroll', handleScroll);\n      return () => viewport.removeEventListener('scroll', handleScroll);\n    }\n  }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n  return /*#__PURE__*/$fnFM9$createElement($fnFM9$Presence, {\n    present: forceMount || state !== 'hidden'\n  }, /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarVisible, $fnFM9$babelruntimehelpersesmextends({\n    \"data-state\": state === 'hidden' ? 'hidden' : 'visible'\n  }, scrollbarProps, {\n    ref: forwardedRef,\n    onPointerEnter: $fnFM9$composeEventHandlers(props.onPointerEnter, () => send('POINTER_ENTER')),\n    onPointerLeave: $fnFM9$composeEventHandlers(props.onPointerLeave, () => send('POINTER_LEAVE'))\n  })));\n});\nconst $57acba87d6e25586$var$ScrollAreaScrollbarAuto = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n  const {\n    forceMount: forceMount,\n    ...scrollbarProps\n  } = props;\n  const [visible, setVisible] = $fnFM9$useState(false);\n  const isHorizontal = props.orientation === 'horizontal';\n  const handleResize = $57acba87d6e25586$var$useDebounceCallback(() => {\n    if (context.viewport) {\n      const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n      const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n      setVisible(isHorizontal ? isOverflowX : isOverflowY);\n    }\n  }, 10);\n  $57acba87d6e25586$var$useResizeObserver(context.viewport, handleResize);\n  $57acba87d6e25586$var$useResizeObserver(context.content, handleResize);\n  return /*#__PURE__*/$fnFM9$createElement($fnFM9$Presence, {\n    present: forceMount || visible\n  }, /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarVisible, $fnFM9$babelruntimehelpersesmextends({\n    \"data-state\": visible ? 'visible' : 'hidden'\n  }, scrollbarProps, {\n    ref: forwardedRef\n  })));\n});\n/* -----------------------------------------------------------------------------------------------*/\nconst $57acba87d6e25586$var$ScrollAreaScrollbarVisible = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    orientation = 'vertical',\n    ...scrollbarProps\n  } = props;\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n  const thumbRef = $fnFM9$useRef(null);\n  const pointerOffsetRef = $fnFM9$useRef(0);\n  const [sizes, setSizes] = $fnFM9$useState({\n    content: 0,\n    viewport: 0,\n    scrollbar: {\n      size: 0,\n      paddingStart: 0,\n      paddingEnd: 0\n    }\n  });\n  const thumbRatio = $57acba87d6e25586$var$getThumbRatio(sizes.viewport, sizes.content);\n  const commonProps = {\n    ...scrollbarProps,\n    sizes: sizes,\n    onSizesChange: setSizes,\n    hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n    onThumbChange: thumb => thumbRef.current = thumb,\n    onThumbPointerUp: () => pointerOffsetRef.current = 0,\n    onThumbPointerDown: pointerPos => pointerOffsetRef.current = pointerPos\n  };\n  function getScrollPosition(pointerPos, dir) {\n    return $57acba87d6e25586$var$getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n  }\n  if (orientation === 'horizontal') return /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarX, $fnFM9$babelruntimehelpersesmextends({}, commonProps, {\n    ref: forwardedRef,\n    onThumbPositionChange: () => {\n      if (context.viewport && thumbRef.current) {\n        const scrollPos = context.viewport.scrollLeft;\n        const offset = $57acba87d6e25586$var$getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n        thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n      }\n    },\n    onWheelScroll: scrollPos => {\n      if (context.viewport) context.viewport.scrollLeft = scrollPos;\n    },\n    onDragScroll: pointerPos => {\n      if (context.viewport) context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n    }\n  }));\n  if (orientation === 'vertical') return /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarY, $fnFM9$babelruntimehelpersesmextends({}, commonProps, {\n    ref: forwardedRef,\n    onThumbPositionChange: () => {\n      if (context.viewport && thumbRef.current) {\n        const scrollPos = context.viewport.scrollTop;\n        const offset = $57acba87d6e25586$var$getThumbOffsetFromScroll(scrollPos, sizes);\n        thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n      }\n    },\n    onWheelScroll: scrollPos => {\n      if (context.viewport) context.viewport.scrollTop = scrollPos;\n    },\n    onDragScroll: pointerPos => {\n      if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n    }\n  }));\n  return null;\n});\n/* -----------------------------------------------------------------------------------------------*/\nconst $57acba87d6e25586$var$ScrollAreaScrollbarX = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    sizes: sizes,\n    onSizesChange: onSizesChange,\n    ...scrollbarProps\n  } = props;\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n  const [computedStyle, setComputedStyle] = $fnFM9$useState();\n  const ref = $fnFM9$useRef(null);\n  const composeRefs = $fnFM9$useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n  $fnFM9$useEffect(() => {\n    if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n  }, [ref]);\n  return /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarImpl, $fnFM9$babelruntimehelpersesmextends({\n    \"data-orientation\": \"horizontal\"\n  }, scrollbarProps, {\n    ref: composeRefs,\n    sizes: sizes,\n    style: {\n      bottom: 0,\n      left: context.dir === 'rtl' ? 'var(--radix-scroll-area-corner-width)' : 0,\n      right: context.dir === 'ltr' ? 'var(--radix-scroll-area-corner-width)' : 0,\n      ['--radix-scroll-area-thumb-width']: $57acba87d6e25586$var$getThumbSize(sizes) + 'px',\n      ...props.style\n    },\n    onThumbPointerDown: pointerPos => props.onThumbPointerDown(pointerPos.x),\n    onDragScroll: pointerPos => props.onDragScroll(pointerPos.x),\n    onWheelScroll: (event, maxScrollPos) => {\n      if (context.viewport) {\n        const scrollPos = context.viewport.scrollLeft + event.deltaX;\n        props.onWheelScroll(scrollPos); // prevent window scroll when wheeling on scrollbar\n        if ($57acba87d6e25586$var$isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) event.preventDefault();\n      }\n    },\n    onResize: () => {\n      if (ref.current && context.viewport && computedStyle) onSizesChange({\n        content: context.viewport.scrollWidth,\n        viewport: context.viewport.offsetWidth,\n        scrollbar: {\n          size: ref.current.clientWidth,\n          paddingStart: $57acba87d6e25586$var$toInt(computedStyle.paddingLeft),\n          paddingEnd: $57acba87d6e25586$var$toInt(computedStyle.paddingRight)\n        }\n      });\n    }\n  }));\n});\nconst $57acba87d6e25586$var$ScrollAreaScrollbarY = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    sizes: sizes,\n    onSizesChange: onSizesChange,\n    ...scrollbarProps\n  } = props;\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n  const [computedStyle, setComputedStyle] = $fnFM9$useState();\n  const ref = $fnFM9$useRef(null);\n  const composeRefs = $fnFM9$useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n  $fnFM9$useEffect(() => {\n    if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n  }, [ref]);\n  return /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarImpl, $fnFM9$babelruntimehelpersesmextends({\n    \"data-orientation\": \"vertical\"\n  }, scrollbarProps, {\n    ref: composeRefs,\n    sizes: sizes,\n    style: {\n      top: 0,\n      right: context.dir === 'ltr' ? 0 : undefined,\n      left: context.dir === 'rtl' ? 0 : undefined,\n      bottom: 'var(--radix-scroll-area-corner-height)',\n      ['--radix-scroll-area-thumb-height']: $57acba87d6e25586$var$getThumbSize(sizes) + 'px',\n      ...props.style\n    },\n    onThumbPointerDown: pointerPos => props.onThumbPointerDown(pointerPos.y),\n    onDragScroll: pointerPos => props.onDragScroll(pointerPos.y),\n    onWheelScroll: (event, maxScrollPos) => {\n      if (context.viewport) {\n        const scrollPos = context.viewport.scrollTop + event.deltaY;\n        props.onWheelScroll(scrollPos); // prevent window scroll when wheeling on scrollbar\n        if ($57acba87d6e25586$var$isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) event.preventDefault();\n      }\n    },\n    onResize: () => {\n      if (ref.current && context.viewport && computedStyle) onSizesChange({\n        content: context.viewport.scrollHeight,\n        viewport: context.viewport.offsetHeight,\n        scrollbar: {\n          size: ref.current.clientHeight,\n          paddingStart: $57acba87d6e25586$var$toInt(computedStyle.paddingTop),\n          paddingEnd: $57acba87d6e25586$var$toInt(computedStyle.paddingBottom)\n        }\n      });\n    }\n  }));\n});\n/* -----------------------------------------------------------------------------------------------*/\nconst [$57acba87d6e25586$var$ScrollbarProvider, $57acba87d6e25586$var$useScrollbarContext] = $57acba87d6e25586$var$createScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME);\nconst $57acba87d6e25586$var$ScrollAreaScrollbarImpl = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    __scopeScrollArea: __scopeScrollArea,\n    sizes: sizes,\n    hasThumb: hasThumb,\n    onThumbChange: onThumbChange,\n    onThumbPointerUp: onThumbPointerUp,\n    onThumbPointerDown: onThumbPointerDown,\n    onThumbPositionChange: onThumbPositionChange,\n    onDragScroll: onDragScroll,\n    onWheelScroll: onWheelScroll,\n    onResize: onResize,\n    ...scrollbarProps\n  } = props;\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, __scopeScrollArea);\n  const [scrollbar, setScrollbar] = $fnFM9$useState(null);\n  const composeRefs = $fnFM9$useComposedRefs(forwardedRef, node => setScrollbar(node));\n  const rectRef = $fnFM9$useRef(null);\n  const prevWebkitUserSelectRef = $fnFM9$useRef('');\n  const viewport = context.viewport;\n  const maxScrollPos = sizes.content - sizes.viewport;\n  const handleWheelScroll = $fnFM9$useCallbackRef(onWheelScroll);\n  const handleThumbPositionChange = $fnFM9$useCallbackRef(onThumbPositionChange);\n  const handleResize = $57acba87d6e25586$var$useDebounceCallback(onResize, 10);\n  function handleDragScroll(event) {\n    if (rectRef.current) {\n      const x = event.clientX - rectRef.current.left;\n      const y = event.clientY - rectRef.current.top;\n      onDragScroll({\n        x: x,\n        y: y\n      });\n    }\n  }\n  /**\n  * We bind wheel event imperatively so we can switch off passive\n  * mode for document wheel event to allow it to be prevented\n  */\n  $fnFM9$useEffect(() => {\n    const handleWheel = event => {\n      const element = event.target;\n      const isScrollbarWheel = scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.contains(element);\n      if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n    };\n    document.addEventListener('wheel', handleWheel, {\n      passive: false\n    });\n    return () => document.removeEventListener('wheel', handleWheel, {\n      passive: false\n    });\n  }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n  /**\n  * Update thumb position on sizes change\n  */\n  $fnFM9$useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n  $57acba87d6e25586$var$useResizeObserver(scrollbar, handleResize);\n  $57acba87d6e25586$var$useResizeObserver(context.content, handleResize);\n  return /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollbarProvider, {\n    scope: __scopeScrollArea,\n    scrollbar: scrollbar,\n    hasThumb: hasThumb,\n    onThumbChange: $fnFM9$useCallbackRef(onThumbChange),\n    onThumbPointerUp: $fnFM9$useCallbackRef(onThumbPointerUp),\n    onThumbPositionChange: handleThumbPositionChange,\n    onThumbPointerDown: $fnFM9$useCallbackRef(onThumbPointerDown)\n  }, /*#__PURE__*/$fnFM9$createElement($fnFM9$Primitive.div, $fnFM9$babelruntimehelpersesmextends({}, scrollbarProps, {\n    ref: composeRefs,\n    style: {\n      position: 'absolute',\n      ...scrollbarProps.style\n    },\n    onPointerDown: $fnFM9$composeEventHandlers(props.onPointerDown, event => {\n      const mainPointer = 0;\n      if (event.button === mainPointer) {\n        const element = event.target;\n        element.setPointerCapture(event.pointerId);\n        rectRef.current = scrollbar.getBoundingClientRect(); // pointer capture doesn't prevent text selection in Safari\n        // so we remove text selection manually when scrolling\n        prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n        document.body.style.webkitUserSelect = 'none';\n        handleDragScroll(event);\n      }\n    }),\n    onPointerMove: $fnFM9$composeEventHandlers(props.onPointerMove, handleDragScroll),\n    onPointerUp: $fnFM9$composeEventHandlers(props.onPointerUp, event => {\n      const element = event.target;\n      if (element.hasPointerCapture(event.pointerId)) element.releasePointerCapture(event.pointerId);\n      document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n      rectRef.current = null;\n    })\n  })));\n});\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaThumb\n * -----------------------------------------------------------------------------------------------*/\nconst $57acba87d6e25586$var$THUMB_NAME = 'ScrollAreaThumb';\nconst $57acba87d6e25586$export$9fba1154677d7cd2 = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    forceMount: forceMount,\n    ...thumbProps\n  } = props;\n  const scrollbarContext = $57acba87d6e25586$var$useScrollbarContext($57acba87d6e25586$var$THUMB_NAME, props.__scopeScrollArea);\n  return /*#__PURE__*/$fnFM9$createElement($fnFM9$Presence, {\n    present: forceMount || scrollbarContext.hasThumb\n  }, /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaThumbImpl, $fnFM9$babelruntimehelpersesmextends({\n    ref: forwardedRef\n  }, thumbProps)));\n});\nconst $57acba87d6e25586$var$ScrollAreaThumbImpl = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    __scopeScrollArea: __scopeScrollArea,\n    style: style,\n    ...thumbProps\n  } = props;\n  const scrollAreaContext = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$THUMB_NAME, __scopeScrollArea);\n  const scrollbarContext = $57acba87d6e25586$var$useScrollbarContext($57acba87d6e25586$var$THUMB_NAME, __scopeScrollArea);\n  const {\n    onThumbPositionChange: onThumbPositionChange\n  } = scrollbarContext;\n  const composedRef = $fnFM9$useComposedRefs(forwardedRef, node => scrollbarContext.onThumbChange(node));\n  const removeUnlinkedScrollListenerRef = $fnFM9$useRef();\n  const debounceScrollEnd = $57acba87d6e25586$var$useDebounceCallback(() => {\n    if (removeUnlinkedScrollListenerRef.current) {\n      removeUnlinkedScrollListenerRef.current();\n      removeUnlinkedScrollListenerRef.current = undefined;\n    }\n  }, 100);\n  $fnFM9$useEffect(() => {\n    const viewport = scrollAreaContext.viewport;\n    if (viewport) {\n      /**\n      * We only bind to native scroll event so we know when scroll starts and ends.\n      * When scroll starts we start a requestAnimationFrame loop that checks for\n      * changes to scroll position. That rAF loop triggers our thumb position change\n      * when relevant to avoid scroll-linked effects. We cancel the loop when scroll ends.\n      * https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\n      */\n      const handleScroll = () => {\n        debounceScrollEnd();\n        if (!removeUnlinkedScrollListenerRef.current) {\n          const listener = $57acba87d6e25586$var$addUnlinkedScrollListener(viewport, onThumbPositionChange);\n          removeUnlinkedScrollListenerRef.current = listener;\n          onThumbPositionChange();\n        }\n      };\n      onThumbPositionChange();\n      viewport.addEventListener('scroll', handleScroll);\n      return () => viewport.removeEventListener('scroll', handleScroll);\n    }\n  }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n  return /*#__PURE__*/$fnFM9$createElement($fnFM9$Primitive.div, $fnFM9$babelruntimehelpersesmextends({\n    \"data-state\": scrollbarContext.hasThumb ? 'visible' : 'hidden'\n  }, thumbProps, {\n    ref: composedRef,\n    style: {\n      width: 'var(--radix-scroll-area-thumb-width)',\n      height: 'var(--radix-scroll-area-thumb-height)',\n      ...style\n    },\n    onPointerDownCapture: $fnFM9$composeEventHandlers(props.onPointerDownCapture, event => {\n      const thumb = event.target;\n      const thumbRect = thumb.getBoundingClientRect();\n      const x = event.clientX - thumbRect.left;\n      const y = event.clientY - thumbRect.top;\n      scrollbarContext.onThumbPointerDown({\n        x: x,\n        y: y\n      });\n    }),\n    onPointerUp: $fnFM9$composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n  }));\n});\n/*#__PURE__*/\nObject.assign($57acba87d6e25586$export$9fba1154677d7cd2, {\n  displayName: $57acba87d6e25586$var$THUMB_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaCorner\n * -----------------------------------------------------------------------------------------------*/\nconst $57acba87d6e25586$var$CORNER_NAME = 'ScrollAreaCorner';\nconst $57acba87d6e25586$export$56969d565df7cc4b = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$CORNER_NAME, props.__scopeScrollArea);\n  const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n  const hasCorner = context.type !== 'scroll' && hasBothScrollbarsVisible;\n  return hasCorner ? /*#__PURE__*/$fnFM9$createElement($57acba87d6e25586$var$ScrollAreaCornerImpl, $fnFM9$babelruntimehelpersesmextends({}, props, {\n    ref: forwardedRef\n  })) : null;\n});\n/*#__PURE__*/\nObject.assign($57acba87d6e25586$export$56969d565df7cc4b, {\n  displayName: $57acba87d6e25586$var$CORNER_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/\nconst $57acba87d6e25586$var$ScrollAreaCornerImpl = /*#__PURE__*/$fnFM9$forwardRef((props, forwardedRef) => {\n  const {\n    __scopeScrollArea: __scopeScrollArea,\n    ...cornerProps\n  } = props;\n  const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$CORNER_NAME, __scopeScrollArea);\n  const [width1, setWidth] = $fnFM9$useState(0);\n  const [height1, setHeight] = $fnFM9$useState(0);\n  const hasSize = Boolean(width1 && height1);\n  $57acba87d6e25586$var$useResizeObserver(context.scrollbarX, () => {\n    var _context$scrollbarX;\n    const height = ((_context$scrollbarX = context.scrollbarX) === null || _context$scrollbarX === void 0 ? void 0 : _context$scrollbarX.offsetHeight) || 0;\n    context.onCornerHeightChange(height);\n    setHeight(height);\n  });\n  $57acba87d6e25586$var$useResizeObserver(context.scrollbarY, () => {\n    var _context$scrollbarY;\n    const width = ((_context$scrollbarY = context.scrollbarY) === null || _context$scrollbarY === void 0 ? void 0 : _context$scrollbarY.offsetWidth) || 0;\n    context.onCornerWidthChange(width);\n    setWidth(width);\n  });\n  return hasSize ? /*#__PURE__*/$fnFM9$createElement($fnFM9$Primitive.div, $fnFM9$babelruntimehelpersesmextends({}, cornerProps, {\n    ref: forwardedRef,\n    style: {\n      width: width1,\n      height: height1,\n      position: 'absolute',\n      right: context.dir === 'ltr' ? 0 : undefined,\n      left: context.dir === 'rtl' ? 0 : undefined,\n      bottom: 0,\n      ...props.style\n    }\n  })) : null;\n});\n/* -----------------------------------------------------------------------------------------------*/\nfunction $57acba87d6e25586$var$toInt(value) {\n  return value ? parseInt(value, 10) : 0;\n}\nfunction $57acba87d6e25586$var$getThumbRatio(viewportSize, contentSize) {\n  const ratio = viewportSize / contentSize;\n  return isNaN(ratio) ? 0 : ratio;\n}\nfunction $57acba87d6e25586$var$getThumbSize(sizes) {\n  const ratio = $57acba87d6e25586$var$getThumbRatio(sizes.viewport, sizes.content);\n  const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n  const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio; // minimum of 18 matches macOS minimum\n  return Math.max(thumbSize, 18);\n}\nfunction $57acba87d6e25586$var$getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = 'ltr') {\n  const thumbSizePx = $57acba87d6e25586$var$getThumbSize(sizes);\n  const thumbCenter = thumbSizePx / 2;\n  const offset = pointerOffset || thumbCenter;\n  const thumbOffsetFromEnd = thumbSizePx - offset;\n  const minPointerPos = sizes.scrollbar.paddingStart + offset;\n  const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n  const maxScrollPos = sizes.content - sizes.viewport;\n  const scrollRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n  const interpolate = $57acba87d6e25586$var$linearScale([minPointerPos, maxPointerPos], scrollRange);\n  return interpolate(pointerPos);\n}\nfunction $57acba87d6e25586$var$getThumbOffsetFromScroll(scrollPos, sizes, dir = 'ltr') {\n  const thumbSizePx = $57acba87d6e25586$var$getThumbSize(sizes);\n  const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n  const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n  const maxScrollPos = sizes.content - sizes.viewport;\n  const maxThumbPos = scrollbar - thumbSizePx;\n  const scrollClampRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n  const scrollWithoutMomentum = $fnFM9$clamp(scrollPos, scrollClampRange);\n  const interpolate = $57acba87d6e25586$var$linearScale([0, maxScrollPos], [0, maxThumbPos]);\n  return interpolate(scrollWithoutMomentum);\n} // https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction $57acba87d6e25586$var$linearScale(input, output) {\n  return value => {\n    if (input[0] === input[1] || output[0] === output[1]) return output[0];\n    const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n    return output[0] + ratio * (value - input[0]);\n  };\n}\nfunction $57acba87d6e25586$var$isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n  return scrollPos > 0 && scrollPos < maxScrollPos;\n} // Custom scroll handler to avoid scroll-linked effects\n// https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\nconst $57acba87d6e25586$var$addUnlinkedScrollListener = (node, handler = () => {}) => {\n  let prevPosition = {\n    left: node.scrollLeft,\n    top: node.scrollTop\n  };\n  let rAF = 0;\n  (function loop() {\n    const position = {\n      left: node.scrollLeft,\n      top: node.scrollTop\n    };\n    const isHorizontalScroll = prevPosition.left !== position.left;\n    const isVerticalScroll = prevPosition.top !== position.top;\n    if (isHorizontalScroll || isVerticalScroll) handler();\n    prevPosition = position;\n    rAF = window.requestAnimationFrame(loop);\n  })();\n  return () => window.cancelAnimationFrame(rAF);\n};\nfunction $57acba87d6e25586$var$useDebounceCallback(callback, delay) {\n  const handleCallback = $fnFM9$useCallbackRef(callback);\n  const debounceTimerRef = $fnFM9$useRef(0);\n  $fnFM9$useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n  return $fnFM9$useCallback(() => {\n    window.clearTimeout(debounceTimerRef.current);\n    debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n  }, [handleCallback, delay]);\n}\nfunction $57acba87d6e25586$var$useResizeObserver(element, onResize) {\n  const handleResize = $fnFM9$useCallbackRef(onResize);\n  $fnFM9$useLayoutEffect(() => {\n    let rAF = 0;\n    if (element) {\n      /**\n      * Resize Observer will throw an often benign error that says `ResizeObserver loop\n      * completed with undelivered notifications`. This means that ResizeObserver was not\n      * able to deliver all observations within a single animation frame, so we use\n      * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n      * Further reading: https://github.com/WICG/resize-observer/issues/38\n      */\n      const resizeObserver = new ResizeObserver(() => {\n        cancelAnimationFrame(rAF);\n        rAF = window.requestAnimationFrame(handleResize);\n      });\n      resizeObserver.observe(element);\n      return () => {\n        window.cancelAnimationFrame(rAF);\n        resizeObserver.unobserve(element);\n      };\n    }\n  }, [element, handleResize]);\n}\n/* -----------------------------------------------------------------------------------------------*/\nconst $57acba87d6e25586$export$be92b6f5f03c0fe9 = $57acba87d6e25586$export$ccf8d8d7bbf3c2cc;\nconst $57acba87d6e25586$export$d5c6c08dc2d3ca7 = $57acba87d6e25586$export$a21cbf9f11fca853;\nconst $57acba87d6e25586$export$9a4e88b92edfce6b = $57acba87d6e25586$export$2fabd85d0eba3c57;\nconst $57acba87d6e25586$export$6521433ed15a34db = $57acba87d6e25586$export$9fba1154677d7cd2;\nconst $57acba87d6e25586$export$ac61190d9fc311a9 = $57acba87d6e25586$export$56969d565df7cc4b;\nexport { $57acba87d6e25586$export$488468afe3a6f2b1 as createScrollAreaScope, $57acba87d6e25586$export$ccf8d8d7bbf3c2cc as ScrollArea, $57acba87d6e25586$export$a21cbf9f11fca853 as ScrollAreaViewport, $57acba87d6e25586$export$2fabd85d0eba3c57 as ScrollAreaScrollbar, $57acba87d6e25586$export$9fba1154677d7cd2 as ScrollAreaThumb, $57acba87d6e25586$export$56969d565df7cc4b as ScrollAreaCorner, $57acba87d6e25586$export$be92b6f5f03c0fe9 as Root, $57acba87d6e25586$export$d5c6c08dc2d3ca7 as Viewport, $57acba87d6e25586$export$9a4e88b92edfce6b as Scrollbar, $57acba87d6e25586$export$6521433ed15a34db as Thumb, $57acba87d6e25586$export$ac61190d9fc311a9 as Corner };","map":{"version":3,"names":["$6c2e24571c90391f$export$3e6543de14f8614f","useStateMachine","initialState","machine","$fnFM9$useReducer","state","event","nextState","$57acba87d6e25586$var$SCROLL_AREA_NAME","$57acba87d6e25586$var$createScrollAreaContext","$57acba87d6e25586$export$488468afe3a6f2b1","$fnFM9$createContextScope","$57acba87d6e25586$var$ScrollAreaProvider","$57acba87d6e25586$var$useScrollAreaContext","$57acba87d6e25586$export$ccf8d8d7bbf3c2cc","$fnFM9$forwardRef","props","forwardedRef","__scopeScrollArea","type","dir","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","$fnFM9$useState","viewport","setViewport","content","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","composedRefs","$fnFM9$useComposedRefs","node","direction","$fnFM9$useDirection","$fnFM9$createElement","scope","onViewportChange","onContentChange","onScrollbarXChange","onScrollbarXEnabledChange","onScrollbarYChange","onScrollbarYEnabledChange","onCornerWidthChange","onCornerHeightChange","$fnFM9$Primitive","div","$fnFM9$babelruntimehelpersesmextends","ref","style","position","Object","assign","displayName","$57acba87d6e25586$var$VIEWPORT_NAME","$57acba87d6e25586$export$a21cbf9f11fca853","children","viewportProps","context","$fnFM9$useRef","$fnFM9$Fragment","dangerouslySetInnerHTML","__html","overflowX","overflowY","minWidth","display","$57acba87d6e25586$var$SCROLLBAR_NAME","$57acba87d6e25586$export$2fabd85d0eba3c57","forceMount","scrollbarProps","isHorizontal","orientation","$fnFM9$useEffect","$57acba87d6e25586$var$ScrollAreaScrollbarHover","$57acba87d6e25586$var$ScrollAreaScrollbarScroll","$57acba87d6e25586$var$ScrollAreaScrollbarAuto","$57acba87d6e25586$var$ScrollAreaScrollbarVisible","visible","setVisible","hideTimer","handlePointerEnter","window","clearTimeout","handlePointerLeave","setTimeout","addEventListener","removeEventListener","$fnFM9$Presence","present","debounceScrollEnd","$57acba87d6e25586$var$useDebounceCallback","send","hidden","SCROLL","scrolling","SCROLL_END","POINTER_ENTER","interacting","POINTER_LEAVE","idle","HIDE","scrollDirection","prevScrollPos","handleScroll","scrollPos","hasScrollInDirectionChanged","onPointerEnter","$fnFM9$composeEventHandlers","onPointerLeave","handleResize","isOverflowX","offsetWidth","scrollWidth","isOverflowY","offsetHeight","scrollHeight","$57acba87d6e25586$var$useResizeObserver","thumbRef","pointerOffsetRef","sizes","setSizes","scrollbar","size","paddingStart","paddingEnd","thumbRatio","$57acba87d6e25586$var$getThumbRatio","commonProps","onSizesChange","hasThumb","Boolean","onThumbChange","thumb","current","onThumbPointerUp","onThumbPointerDown","pointerPos","getScrollPosition","$57acba87d6e25586$var$getScrollPositionFromPointer","$57acba87d6e25586$var$ScrollAreaScrollbarX","onThumbPositionChange","scrollLeft","offset","$57acba87d6e25586$var$getThumbOffsetFromScroll","transform","onWheelScroll","onDragScroll","$57acba87d6e25586$var$ScrollAreaScrollbarY","scrollTop","computedStyle","setComputedStyle","composeRefs","getComputedStyle","$57acba87d6e25586$var$ScrollAreaScrollbarImpl","bottom","left","right","$57acba87d6e25586$var$getThumbSize","x","maxScrollPos","deltaX","$57acba87d6e25586$var$isScrollingWithinScrollbarBounds","preventDefault","onResize","clientWidth","$57acba87d6e25586$var$toInt","paddingLeft","paddingRight","top","undefined","y","deltaY","clientHeight","paddingTop","paddingBottom","$57acba87d6e25586$var$ScrollbarProvider","$57acba87d6e25586$var$useScrollbarContext","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","$fnFM9$useCallbackRef","handleThumbPositionChange","handleDragScroll","clientX","clientY","handleWheel","element","target","isScrollbarWheel","contains","document","passive","onPointerDown","mainPointer","button","setPointerCapture","pointerId","getBoundingClientRect","body","webkitUserSelect","onPointerMove","onPointerUp","hasPointerCapture","releasePointerCapture","$57acba87d6e25586$var$THUMB_NAME","$57acba87d6e25586$export$9fba1154677d7cd2","thumbProps","scrollbarContext","$57acba87d6e25586$var$ScrollAreaThumbImpl","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","listener","$57acba87d6e25586$var$addUnlinkedScrollListener","width","height","onPointerDownCapture","thumbRect","$57acba87d6e25586$var$CORNER_NAME","$57acba87d6e25586$export$56969d565df7cc4b","hasBothScrollbarsVisible","hasCorner","$57acba87d6e25586$var$ScrollAreaCornerImpl","cornerProps","width1","setWidth","height1","setHeight","hasSize","_context$scrollbarX","_context$scrollbarY","toInt","value","parseInt","getThumbRatio","viewportSize","contentSize","ratio","isNaN","getThumbSize","scrollbarPadding","thumbSize","Math","max","getScrollPositionFromPointer","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","interpolate","$57acba87d6e25586$var$linearScale","getThumbOffsetFromScroll","maxThumbPos","scrollClampRange","scrollWithoutMomentum","$fnFM9$clamp","linearScale","input","output","isScrollingWithinScrollbarBounds","addUnlinkedScrollListener","handler","prevPosition","rAF","loop","isHorizontalScroll","isVerticalScroll","requestAnimationFrame","cancelAnimationFrame","useDebounceCallback","callback","delay","handleCallback","debounceTimerRef","$fnFM9$useCallback","useResizeObserver","$fnFM9$useLayoutEffect","resizeObserver","ResizeObserver","observe","unobserve","$57acba87d6e25586$export$be92b6f5f03c0fe9","$57acba87d6e25586$export$d5c6c08dc2d3ca7","$57acba87d6e25586$export$9a4e88b92edfce6b","$57acba87d6e25586$export$6521433ed15a34db","$57acba87d6e25586$export$ac61190d9fc311a9"],"sources":["C:\\Users\\user\\Desktop\\000newport\\node_modules\\@radix-ui\\react-scroll-area\\dist\\packages\\react\\scroll-area\\src\\index.ts","C:\\Users\\user\\Desktop\\000newport\\node_modules\\@radix-ui\\react-scroll-area\\dist\\packages\\react\\scroll-area\\src\\ScrollArea.tsx","C:\\Users\\user\\Desktop\\000newport\\node_modules\\@radix-ui\\react-scroll-area\\dist\\packages\\react\\scroll-area\\src\\useStateMachine.ts"],"sourcesContent":["export {\n  createScrollAreaScope,\n  //\n  ScrollArea,\n  ScrollAreaViewport,\n  ScrollAreaScrollbar,\n  ScrollAreaThumb,\n  ScrollAreaCorner,\n  //\n  Root,\n  Viewport,\n  Scrollbar,\n  Thumb,\n  Corner,\n} from './ScrollArea';\nexport type {\n  ScrollAreaProps,\n  ScrollAreaViewportProps,\n  ScrollAreaScrollbarProps,\n  ScrollAreaThumbProps,\n  ScrollAreaCornerProps,\n} from './ScrollArea';\n","/// <reference types=\"resize-observer-browser\" />\n\nimport * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Presence } from '@radix-ui/react-presence';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useStateMachine } from './useStateMachine';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\ntype Sizes = {\n  content: number;\n  viewport: number;\n  scrollbar: {\n    size: number;\n    paddingStart: number;\n    paddingEnd: number;\n  };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollArea\n * -----------------------------------------------------------------------------------------------*/\n\nconst SCROLL_AREA_NAME = 'ScrollArea';\n\ntype ScopedProps<P> = P & { __scopeScrollArea?: Scope };\nconst [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\n\ntype ScrollAreaContextValue = {\n  type: 'auto' | 'always' | 'scroll' | 'hover';\n  dir: Direction;\n  scrollHideDelay: number;\n  scrollArea: ScrollAreaElement | null;\n  viewport: ScrollAreaViewportElement | null;\n  onViewportChange(viewport: ScrollAreaViewportElement | null): void;\n  content: HTMLDivElement | null;\n  onContentChange(content: HTMLDivElement): void;\n  scrollbarX: ScrollAreaScrollbarElement | null;\n  onScrollbarXChange(scrollbar: ScrollAreaScrollbarElement | null): void;\n  scrollbarXEnabled: boolean;\n  onScrollbarXEnabledChange(rendered: boolean): void;\n  scrollbarY: ScrollAreaScrollbarElement | null;\n  onScrollbarYChange(scrollbar: ScrollAreaScrollbarElement | null): void;\n  scrollbarYEnabled: boolean;\n  onScrollbarYEnabledChange(rendered: boolean): void;\n  onCornerWidthChange(width: number): void;\n  onCornerHeightChange(height: number): void;\n};\n\nconst [ScrollAreaProvider, useScrollAreaContext] =\n  createScrollAreaContext<ScrollAreaContextValue>(SCROLL_AREA_NAME);\n\ntype ScrollAreaElement = React.ElementRef<typeof Primitive.div>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface ScrollAreaProps extends PrimitiveDivProps {\n  type?: ScrollAreaContextValue['type'];\n  dir?: ScrollAreaContextValue['dir'];\n  scrollHideDelay?: number;\n}\n\nconst ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>(\n  (props: ScopedProps<ScrollAreaProps>, forwardedRef) => {\n    const {\n      __scopeScrollArea,\n      type = 'hover',\n      dir,\n      scrollHideDelay = 600,\n      ...scrollAreaProps\n    } = props;\n    const [scrollArea, setScrollArea] = React.useState<ScrollAreaElement | null>(null);\n    const [viewport, setViewport] = React.useState<ScrollAreaViewportElement | null>(null);\n    const [content, setContent] = React.useState<HTMLDivElement | null>(null);\n    const [scrollbarX, setScrollbarX] = React.useState<ScrollAreaScrollbarElement | null>(null);\n    const [scrollbarY, setScrollbarY] = React.useState<ScrollAreaScrollbarElement | null>(null);\n    const [cornerWidth, setCornerWidth] = React.useState(0);\n    const [cornerHeight, setCornerHeight] = React.useState(0);\n    const [scrollbarXEnabled, setScrollbarXEnabled] = React.useState(false);\n    const [scrollbarYEnabled, setScrollbarYEnabled] = React.useState(false);\n    const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n    const direction = useDirection(dir);\n\n    return (\n      <ScrollAreaProvider\n        scope={__scopeScrollArea}\n        type={type}\n        dir={direction}\n        scrollHideDelay={scrollHideDelay}\n        scrollArea={scrollArea}\n        viewport={viewport}\n        onViewportChange={setViewport}\n        content={content}\n        onContentChange={setContent}\n        scrollbarX={scrollbarX}\n        onScrollbarXChange={setScrollbarX}\n        scrollbarXEnabled={scrollbarXEnabled}\n        onScrollbarXEnabledChange={setScrollbarXEnabled}\n        scrollbarY={scrollbarY}\n        onScrollbarYChange={setScrollbarY}\n        scrollbarYEnabled={scrollbarYEnabled}\n        onScrollbarYEnabledChange={setScrollbarYEnabled}\n        onCornerWidthChange={setCornerWidth}\n        onCornerHeightChange={setCornerHeight}\n      >\n        <Primitive.div\n          dir={direction}\n          {...scrollAreaProps}\n          ref={composedRefs}\n          style={{\n            position: 'relative',\n            // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n            ['--radix-scroll-area-corner-width' as any]: cornerWidth + 'px',\n            ['--radix-scroll-area-corner-height' as any]: cornerHeight + 'px',\n            ...props.style,\n          }}\n        />\n      </ScrollAreaProvider>\n    );\n  }\n);\n\nScrollArea.displayName = SCROLL_AREA_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'ScrollAreaViewport';\n\ntype ScrollAreaViewportElement = React.ElementRef<typeof Primitive.div>;\ninterface ScrollAreaViewportProps extends PrimitiveDivProps {}\n\nconst ScrollAreaViewport = React.forwardRef<ScrollAreaViewportElement, ScrollAreaViewportProps>(\n  (props: ScopedProps<ScrollAreaViewportProps>, forwardedRef) => {\n    const { __scopeScrollArea, children, ...viewportProps } = props;\n    const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n    const ref = React.useRef<ScrollAreaViewportElement>(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n    return (\n      <>\n        {/* Hide scrollbars cross-browser and enable momentum scroll for touch devices */}\n        <style\n          dangerouslySetInnerHTML={{\n            __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`,\n          }}\n        />\n        <Primitive.div\n          data-radix-scroll-area-viewport=\"\"\n          {...viewportProps}\n          ref={composedRefs}\n          style={{\n            /**\n             * We don't support `visible` because the intention is to have at least one scrollbar\n             * if this component is used and `visible` will behave like `auto` in that case\n             * https://developer.mozilla.org/en-US/docs/Web/CSS/overflowed#description\n             *\n             * We don't handle `auto` because the intention is for the native implementation\n             * to be hidden if using this component. We just want to ensure the node is scrollable\n             * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n             * the browser from having to work out whether to render native scrollbars or not,\n             * we tell it to with the intention of hiding them in CSS.\n             */\n            overflowX: context.scrollbarXEnabled ? 'scroll' : 'hidden',\n            overflowY: context.scrollbarYEnabled ? 'scroll' : 'hidden',\n            ...props.style,\n          }}\n        >\n          {/**\n           * `display: table` ensures our content div will match the size of its children in both\n           * horizontal and vertical axis so we can determine if scroll width/height changed and\n           * recalculate thumb sizes. This doesn't account for children with *percentage*\n           * widths that change. We'll wait to see what use-cases consumers come up with there\n           * before trying to resolve it.\n           */}\n          <div ref={context.onContentChange} style={{ minWidth: '100%', display: 'table' }}>\n            {children}\n          </div>\n        </Primitive.div>\n      </>\n    );\n  }\n);\n\nScrollAreaViewport.displayName = VIEWPORT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaScrollbar\n * -----------------------------------------------------------------------------------------------*/\n\nconst SCROLLBAR_NAME = 'ScrollAreaScrollbar';\n\ntype ScrollAreaScrollbarElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarProps extends ScrollAreaScrollbarVisibleProps {\n  forceMount?: true;\n}\n\nconst ScrollAreaScrollbar = React.forwardRef<ScrollAreaScrollbarElement, ScrollAreaScrollbarProps>(\n  (props: ScopedProps<ScrollAreaScrollbarProps>, forwardedRef) => {\n    const { forceMount, ...scrollbarProps } = props;\n    const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n    const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n    const isHorizontal = props.orientation === 'horizontal';\n\n    React.useEffect(() => {\n      isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n      return () => {\n        isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n      };\n    }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n\n    return context.type === 'hover' ? (\n      <ScrollAreaScrollbarHover {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n    ) : context.type === 'scroll' ? (\n      <ScrollAreaScrollbarScroll {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n    ) : context.type === 'auto' ? (\n      <ScrollAreaScrollbarAuto {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n    ) : context.type === 'always' ? (\n      <ScrollAreaScrollbarVisible {...scrollbarProps} ref={forwardedRef} />\n    ) : null;\n  }\n);\n\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarHoverElement = ScrollAreaScrollbarAutoElement;\ninterface ScrollAreaScrollbarHoverProps extends ScrollAreaScrollbarAutoProps {\n  forceMount?: true;\n}\n\nconst ScrollAreaScrollbarHover = React.forwardRef<\n  ScrollAreaScrollbarHoverElement,\n  ScrollAreaScrollbarHoverProps\n>((props: ScopedProps<ScrollAreaScrollbarHoverProps>, forwardedRef) => {\n  const { forceMount, ...scrollbarProps } = props;\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const [visible, setVisible] = React.useState(false);\n\n  React.useEffect(() => {\n    const scrollArea = context.scrollArea;\n    let hideTimer = 0;\n    if (scrollArea) {\n      const handlePointerEnter = () => {\n        window.clearTimeout(hideTimer);\n        setVisible(true);\n      };\n      const handlePointerLeave = () => {\n        hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n      };\n      scrollArea.addEventListener('pointerenter', handlePointerEnter);\n      scrollArea.addEventListener('pointerleave', handlePointerLeave);\n      return () => {\n        window.clearTimeout(hideTimer);\n        scrollArea.removeEventListener('pointerenter', handlePointerEnter);\n        scrollArea.removeEventListener('pointerleave', handlePointerLeave);\n      };\n    }\n  }, [context.scrollArea, context.scrollHideDelay]);\n\n  return (\n    <Presence present={forceMount || visible}>\n      <ScrollAreaScrollbarAuto\n        data-state={visible ? 'visible' : 'hidden'}\n        {...scrollbarProps}\n        ref={forwardedRef}\n      />\n    </Presence>\n  );\n});\n\ntype ScrollAreaScrollbarScrollElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarScrollProps extends ScrollAreaScrollbarVisibleProps {\n  forceMount?: true;\n}\n\nconst ScrollAreaScrollbarScroll = React.forwardRef<\n  ScrollAreaScrollbarScrollElement,\n  ScrollAreaScrollbarScrollProps\n>((props: ScopedProps<ScrollAreaScrollbarScrollProps>, forwardedRef) => {\n  const { forceMount, ...scrollbarProps } = props;\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const isHorizontal = props.orientation === 'horizontal';\n  const debounceScrollEnd = useDebounceCallback(() => send('SCROLL_END'), 100);\n  const [state, send] = useStateMachine('hidden', {\n    hidden: {\n      SCROLL: 'scrolling',\n    },\n    scrolling: {\n      SCROLL_END: 'idle',\n      POINTER_ENTER: 'interacting',\n    },\n    interacting: {\n      SCROLL: 'interacting',\n      POINTER_LEAVE: 'idle',\n    },\n    idle: {\n      HIDE: 'hidden',\n      SCROLL: 'scrolling',\n      POINTER_ENTER: 'interacting',\n    },\n  });\n\n  React.useEffect(() => {\n    if (state === 'idle') {\n      const hideTimer = window.setTimeout(() => send('HIDE'), context.scrollHideDelay);\n      return () => window.clearTimeout(hideTimer);\n    }\n  }, [state, context.scrollHideDelay, send]);\n\n  React.useEffect(() => {\n    const viewport = context.viewport;\n    const scrollDirection = isHorizontal ? 'scrollLeft' : 'scrollTop';\n\n    if (viewport) {\n      let prevScrollPos = viewport[scrollDirection];\n      const handleScroll = () => {\n        const scrollPos = viewport[scrollDirection];\n        const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n        if (hasScrollInDirectionChanged) {\n          send('SCROLL');\n          debounceScrollEnd();\n        }\n        prevScrollPos = scrollPos;\n      };\n      viewport.addEventListener('scroll', handleScroll);\n      return () => viewport.removeEventListener('scroll', handleScroll);\n    }\n  }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n\n  return (\n    <Presence present={forceMount || state !== 'hidden'}>\n      <ScrollAreaScrollbarVisible\n        data-state={state === 'hidden' ? 'hidden' : 'visible'}\n        {...scrollbarProps}\n        ref={forwardedRef}\n        onPointerEnter={composeEventHandlers(props.onPointerEnter, () => send('POINTER_ENTER'))}\n        onPointerLeave={composeEventHandlers(props.onPointerLeave, () => send('POINTER_LEAVE'))}\n      />\n    </Presence>\n  );\n});\n\ntype ScrollAreaScrollbarAutoElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarAutoProps extends ScrollAreaScrollbarVisibleProps {\n  forceMount?: true;\n}\n\nconst ScrollAreaScrollbarAuto = React.forwardRef<\n  ScrollAreaScrollbarAutoElement,\n  ScrollAreaScrollbarAutoProps\n>((props: ScopedProps<ScrollAreaScrollbarAutoProps>, forwardedRef) => {\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const { forceMount, ...scrollbarProps } = props;\n  const [visible, setVisible] = React.useState(false);\n  const isHorizontal = props.orientation === 'horizontal';\n  const handleResize = useDebounceCallback(() => {\n    if (context.viewport) {\n      const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n      const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n      setVisible(isHorizontal ? isOverflowX : isOverflowY);\n    }\n  }, 10);\n\n  useResizeObserver(context.viewport, handleResize);\n  useResizeObserver(context.content, handleResize);\n\n  return (\n    <Presence present={forceMount || visible}>\n      <ScrollAreaScrollbarVisible\n        data-state={visible ? 'visible' : 'hidden'}\n        {...scrollbarProps}\n        ref={forwardedRef}\n      />\n    </Presence>\n  );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarVisibleElement = ScrollAreaScrollbarAxisElement;\ninterface ScrollAreaScrollbarVisibleProps\n  extends Omit<ScrollAreaScrollbarAxisProps, keyof ScrollAreaScrollbarAxisPrivateProps> {\n  orientation?: 'horizontal' | 'vertical';\n}\n\nconst ScrollAreaScrollbarVisible = React.forwardRef<\n  ScrollAreaScrollbarVisibleElement,\n  ScrollAreaScrollbarVisibleProps\n>((props: ScopedProps<ScrollAreaScrollbarVisibleProps>, forwardedRef) => {\n  const { orientation = 'vertical', ...scrollbarProps } = props;\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const thumbRef = React.useRef<ScrollAreaThumbElement | null>(null);\n  const pointerOffsetRef = React.useRef(0);\n  const [sizes, setSizes] = React.useState<Sizes>({\n    content: 0,\n    viewport: 0,\n    scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 },\n  });\n  const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n\n  type UncommonProps = 'onThumbPositionChange' | 'onDragScroll' | 'onWheelScroll';\n  const commonProps: Omit<ScrollAreaScrollbarAxisPrivateProps, UncommonProps> = {\n    ...scrollbarProps,\n    sizes,\n    onSizesChange: setSizes,\n    hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n    onThumbChange: (thumb) => (thumbRef.current = thumb),\n    onThumbPointerUp: () => (pointerOffsetRef.current = 0),\n    onThumbPointerDown: (pointerPos) => (pointerOffsetRef.current = pointerPos),\n  };\n\n  function getScrollPosition(pointerPos: number, dir?: Direction) {\n    return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n  }\n\n  if (orientation === 'horizontal') {\n    return (\n      <ScrollAreaScrollbarX\n        {...commonProps}\n        ref={forwardedRef}\n        onThumbPositionChange={() => {\n          if (context.viewport && thumbRef.current) {\n            const scrollPos = context.viewport.scrollLeft;\n            const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n            thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n          }\n        }}\n        onWheelScroll={(scrollPos) => {\n          if (context.viewport) context.viewport.scrollLeft = scrollPos;\n        }}\n        onDragScroll={(pointerPos) => {\n          if (context.viewport) {\n            context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n          }\n        }}\n      />\n    );\n  }\n\n  if (orientation === 'vertical') {\n    return (\n      <ScrollAreaScrollbarY\n        {...commonProps}\n        ref={forwardedRef}\n        onThumbPositionChange={() => {\n          if (context.viewport && thumbRef.current) {\n            const scrollPos = context.viewport.scrollTop;\n            const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n            thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n          }\n        }}\n        onWheelScroll={(scrollPos) => {\n          if (context.viewport) context.viewport.scrollTop = scrollPos;\n        }}\n        onDragScroll={(pointerPos) => {\n          if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n        }}\n      />\n    );\n  }\n\n  return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarAxisPrivateProps = {\n  hasThumb: boolean;\n  sizes: Sizes;\n  onSizesChange(sizes: Sizes): void;\n  onThumbChange(thumb: ScrollAreaThumbElement | null): void;\n  onThumbPointerDown(pointerPos: number): void;\n  onThumbPointerUp(): void;\n  onThumbPositionChange(): void;\n  onWheelScroll(scrollPos: number): void;\n  onDragScroll(pointerPos: number): void;\n};\n\ntype ScrollAreaScrollbarAxisElement = ScrollAreaScrollbarImplElement;\ninterface ScrollAreaScrollbarAxisProps\n  extends Omit<ScrollAreaScrollbarImplProps, keyof ScrollAreaScrollbarImplPrivateProps>,\n    ScrollAreaScrollbarAxisPrivateProps {}\n\nconst ScrollAreaScrollbarX = React.forwardRef<\n  ScrollAreaScrollbarAxisElement,\n  ScrollAreaScrollbarAxisProps\n>((props: ScopedProps<ScrollAreaScrollbarAxisProps>, forwardedRef) => {\n  const { sizes, onSizesChange, ...scrollbarProps } = props;\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const [computedStyle, setComputedStyle] = React.useState<CSSStyleDeclaration>();\n  const ref = React.useRef<ScrollAreaScrollbarAxisElement>(null);\n  const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n\n  React.useEffect(() => {\n    if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n  }, [ref]);\n\n  return (\n    <ScrollAreaScrollbarImpl\n      data-orientation=\"horizontal\"\n      {...scrollbarProps}\n      ref={composeRefs}\n      sizes={sizes}\n      style={{\n        bottom: 0,\n        left: context.dir === 'rtl' ? 'var(--radix-scroll-area-corner-width)' : 0,\n        right: context.dir === 'ltr' ? 'var(--radix-scroll-area-corner-width)' : 0,\n        ['--radix-scroll-area-thumb-width' as any]: getThumbSize(sizes) + 'px',\n        ...props.style,\n      }}\n      onThumbPointerDown={(pointerPos) => props.onThumbPointerDown(pointerPos.x)}\n      onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.x)}\n      onWheelScroll={(event, maxScrollPos) => {\n        if (context.viewport) {\n          const scrollPos = context.viewport.scrollLeft + event.deltaX;\n          props.onWheelScroll(scrollPos);\n          // prevent window scroll when wheeling on scrollbar\n          if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n            event.preventDefault();\n          }\n        }\n      }}\n      onResize={() => {\n        if (ref.current && context.viewport && computedStyle) {\n          onSizesChange({\n            content: context.viewport.scrollWidth,\n            viewport: context.viewport.offsetWidth,\n            scrollbar: {\n              size: ref.current.clientWidth,\n              paddingStart: toInt(computedStyle.paddingLeft),\n              paddingEnd: toInt(computedStyle.paddingRight),\n            },\n          });\n        }\n      }}\n    />\n  );\n});\n\nconst ScrollAreaScrollbarY = React.forwardRef<\n  ScrollAreaScrollbarAxisElement,\n  ScrollAreaScrollbarAxisProps\n>((props: ScopedProps<ScrollAreaScrollbarAxisProps>, forwardedRef) => {\n  const { sizes, onSizesChange, ...scrollbarProps } = props;\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const [computedStyle, setComputedStyle] = React.useState<CSSStyleDeclaration>();\n  const ref = React.useRef<ScrollAreaScrollbarAxisElement>(null);\n  const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n\n  React.useEffect(() => {\n    if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n  }, [ref]);\n\n  return (\n    <ScrollAreaScrollbarImpl\n      data-orientation=\"vertical\"\n      {...scrollbarProps}\n      ref={composeRefs}\n      sizes={sizes}\n      style={{\n        top: 0,\n        right: context.dir === 'ltr' ? 0 : undefined,\n        left: context.dir === 'rtl' ? 0 : undefined,\n        bottom: 'var(--radix-scroll-area-corner-height)',\n        ['--radix-scroll-area-thumb-height' as any]: getThumbSize(sizes) + 'px',\n        ...props.style,\n      }}\n      onThumbPointerDown={(pointerPos) => props.onThumbPointerDown(pointerPos.y)}\n      onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.y)}\n      onWheelScroll={(event, maxScrollPos) => {\n        if (context.viewport) {\n          const scrollPos = context.viewport.scrollTop + event.deltaY;\n          props.onWheelScroll(scrollPos);\n          // prevent window scroll when wheeling on scrollbar\n          if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n            event.preventDefault();\n          }\n        }\n      }}\n      onResize={() => {\n        if (ref.current && context.viewport && computedStyle) {\n          onSizesChange({\n            content: context.viewport.scrollHeight,\n            viewport: context.viewport.offsetHeight,\n            scrollbar: {\n              size: ref.current.clientHeight,\n              paddingStart: toInt(computedStyle.paddingTop),\n              paddingEnd: toInt(computedStyle.paddingBottom),\n            },\n          });\n        }\n      }}\n    />\n  );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollbarContext = {\n  hasThumb: boolean;\n  scrollbar: ScrollAreaScrollbarElement | null;\n  onThumbChange(thumb: ScrollAreaThumbElement | null): void;\n  onThumbPointerUp(): void;\n  onThumbPointerDown(pointerPos: { x: number; y: number }): void;\n  onThumbPositionChange(): void;\n};\n\nconst [ScrollbarProvider, useScrollbarContext] =\n  createScrollAreaContext<ScrollbarContext>(SCROLLBAR_NAME);\n\ntype ScrollAreaScrollbarImplElement = React.ElementRef<typeof Primitive.div>;\ntype ScrollAreaScrollbarImplPrivateProps = {\n  sizes: Sizes;\n  hasThumb: boolean;\n  onThumbChange: ScrollbarContext['onThumbChange'];\n  onThumbPointerUp: ScrollbarContext['onThumbPointerUp'];\n  onThumbPointerDown: ScrollbarContext['onThumbPointerDown'];\n  onThumbPositionChange: ScrollbarContext['onThumbPositionChange'];\n  onWheelScroll(event: WheelEvent, maxScrollPos: number): void;\n  onDragScroll(pointerPos: { x: number; y: number }): void;\n  onResize(): void;\n};\ninterface ScrollAreaScrollbarImplProps\n  extends PrimitiveDivProps,\n    ScrollAreaScrollbarImplPrivateProps {}\n\nconst ScrollAreaScrollbarImpl = React.forwardRef<\n  ScrollAreaScrollbarImplElement,\n  ScrollAreaScrollbarImplProps\n>((props: ScopedProps<ScrollAreaScrollbarImplProps>, forwardedRef) => {\n  const {\n    __scopeScrollArea,\n    sizes,\n    hasThumb,\n    onThumbChange,\n    onThumbPointerUp,\n    onThumbPointerDown,\n    onThumbPositionChange,\n    onDragScroll,\n    onWheelScroll,\n    onResize,\n    ...scrollbarProps\n  } = props;\n  const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n  const [scrollbar, setScrollbar] = React.useState<ScrollAreaScrollbarElement | null>(null);\n  const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n  const rectRef = React.useRef<ClientRect | null>(null);\n  const prevWebkitUserSelectRef = React.useRef<string>('');\n  const viewport = context.viewport;\n  const maxScrollPos = sizes.content - sizes.viewport;\n  const handleWheelScroll = useCallbackRef(onWheelScroll);\n  const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n  const handleResize = useDebounceCallback(onResize, 10);\n\n  function handleDragScroll(event: React.PointerEvent<HTMLElement>) {\n    if (rectRef.current) {\n      const x = event.clientX - rectRef.current.left;\n      const y = event.clientY - rectRef.current.top;\n      onDragScroll({ x, y });\n    }\n  }\n\n  /**\n   * We bind wheel event imperatively so we can switch off passive\n   * mode for document wheel event to allow it to be prevented\n   */\n  React.useEffect(() => {\n    const handleWheel = (event: WheelEvent) => {\n      const element = event.target as HTMLElement;\n      const isScrollbarWheel = scrollbar?.contains(element);\n      if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n    };\n    document.addEventListener('wheel', handleWheel, { passive: false });\n    return () => document.removeEventListener('wheel', handleWheel, { passive: false } as any);\n  }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n\n  /**\n   * Update thumb position on sizes change\n   */\n  React.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n\n  useResizeObserver(scrollbar, handleResize);\n  useResizeObserver(context.content, handleResize);\n\n  return (\n    <ScrollbarProvider\n      scope={__scopeScrollArea}\n      scrollbar={scrollbar}\n      hasThumb={hasThumb}\n      onThumbChange={useCallbackRef(onThumbChange)}\n      onThumbPointerUp={useCallbackRef(onThumbPointerUp)}\n      onThumbPositionChange={handleThumbPositionChange}\n      onThumbPointerDown={useCallbackRef(onThumbPointerDown)}\n    >\n      <Primitive.div\n        {...scrollbarProps}\n        ref={composeRefs}\n        style={{ position: 'absolute', ...scrollbarProps.style }}\n        onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n          const mainPointer = 0;\n          if (event.button === mainPointer) {\n            const element = event.target as HTMLElement;\n            element.setPointerCapture(event.pointerId);\n            rectRef.current = scrollbar!.getBoundingClientRect();\n            // pointer capture doesn't prevent text selection in Safari\n            // so we remove text selection manually when scrolling\n            prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n            document.body.style.webkitUserSelect = 'none';\n            handleDragScroll(event);\n          }\n        })}\n        onPointerMove={composeEventHandlers(props.onPointerMove, handleDragScroll)}\n        onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n          const element = event.target as HTMLElement;\n          if (element.hasPointerCapture(event.pointerId)) {\n            element.releasePointerCapture(event.pointerId);\n          }\n          document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n          rectRef.current = null;\n        })}\n      />\n    </ScrollbarProvider>\n  );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'ScrollAreaThumb';\n\ntype ScrollAreaThumbElement = ScrollAreaThumbImplElement;\ninterface ScrollAreaThumbProps extends ScrollAreaThumbImplProps {\n  /**\n   * Used to force mounting when more control is needed. Useful when\n   * controlling animation with React animation libraries.\n   */\n  forceMount?: true;\n}\n\nconst ScrollAreaThumb = React.forwardRef<ScrollAreaThumbElement, ScrollAreaThumbProps>(\n  (props: ScopedProps<ScrollAreaThumbProps>, forwardedRef) => {\n    const { forceMount, ...thumbProps } = props;\n    const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n    return (\n      <Presence present={forceMount || scrollbarContext.hasThumb}>\n        <ScrollAreaThumbImpl ref={forwardedRef} {...thumbProps} />\n      </Presence>\n    );\n  }\n);\n\ntype ScrollAreaThumbImplElement = React.ElementRef<typeof Primitive.div>;\ninterface ScrollAreaThumbImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaThumbImpl = React.forwardRef<ScrollAreaThumbImplElement, ScrollAreaThumbImplProps>(\n  (props: ScopedProps<ScrollAreaThumbImplProps>, forwardedRef) => {\n    const { __scopeScrollArea, style, ...thumbProps } = props;\n    const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n    const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n    const { onThumbPositionChange } = scrollbarContext;\n    const composedRef = useComposedRefs(forwardedRef, (node) =>\n      scrollbarContext.onThumbChange(node)\n    );\n    const removeUnlinkedScrollListenerRef = React.useRef<() => void>();\n    const debounceScrollEnd = useDebounceCallback(() => {\n      if (removeUnlinkedScrollListenerRef.current) {\n        removeUnlinkedScrollListenerRef.current();\n        removeUnlinkedScrollListenerRef.current = undefined;\n      }\n    }, 100);\n\n    React.useEffect(() => {\n      const viewport = scrollAreaContext.viewport;\n      if (viewport) {\n        /**\n         * We only bind to native scroll event so we know when scroll starts and ends.\n         * When scroll starts we start a requestAnimationFrame loop that checks for\n         * changes to scroll position. That rAF loop triggers our thumb position change\n         * when relevant to avoid scroll-linked effects. We cancel the loop when scroll ends.\n         * https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\n         */\n        const handleScroll = () => {\n          debounceScrollEnd();\n          if (!removeUnlinkedScrollListenerRef.current) {\n            const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n            removeUnlinkedScrollListenerRef.current = listener;\n            onThumbPositionChange();\n          }\n        };\n        onThumbPositionChange();\n        viewport.addEventListener('scroll', handleScroll);\n        return () => viewport.removeEventListener('scroll', handleScroll);\n      }\n    }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n\n    return (\n      <Primitive.div\n        data-state={scrollbarContext.hasThumb ? 'visible' : 'hidden'}\n        {...thumbProps}\n        ref={composedRef}\n        style={{\n          width: 'var(--radix-scroll-area-thumb-width)',\n          height: 'var(--radix-scroll-area-thumb-height)',\n          ...style,\n        }}\n        onPointerDownCapture={composeEventHandlers(props.onPointerDownCapture, (event) => {\n          const thumb = event.target as HTMLElement;\n          const thumbRect = thumb.getBoundingClientRect();\n          const x = event.clientX - thumbRect.left;\n          const y = event.clientY - thumbRect.top;\n          scrollbarContext.onThumbPointerDown({ x, y });\n        })}\n        onPointerUp={composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)}\n      />\n    );\n  }\n);\n\nScrollAreaThumb.displayName = THUMB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaCorner\n * -----------------------------------------------------------------------------------------------*/\n\nconst CORNER_NAME = 'ScrollAreaCorner';\n\ntype ScrollAreaCornerElement = ScrollAreaCornerImplElement;\ninterface ScrollAreaCornerProps extends ScrollAreaCornerImplProps {}\n\nconst ScrollAreaCorner = React.forwardRef<ScrollAreaCornerElement, ScrollAreaCornerProps>(\n  (props: ScopedProps<ScrollAreaCornerProps>, forwardedRef) => {\n    const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n    const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n    const hasCorner = context.type !== 'scroll' && hasBothScrollbarsVisible;\n    return hasCorner ? <ScrollAreaCornerImpl {...props} ref={forwardedRef} /> : null;\n  }\n);\n\nScrollAreaCorner.displayName = CORNER_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaCornerImplElement = React.ElementRef<typeof Primitive.div>;\ninterface ScrollAreaCornerImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaCornerImpl = React.forwardRef<\n  ScrollAreaCornerImplElement,\n  ScrollAreaCornerImplProps\n>((props: ScopedProps<ScrollAreaCornerImplProps>, forwardedRef) => {\n  const { __scopeScrollArea, ...cornerProps } = props;\n  const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n  const [width, setWidth] = React.useState(0);\n  const [height, setHeight] = React.useState(0);\n  const hasSize = Boolean(width && height);\n\n  useResizeObserver(context.scrollbarX, () => {\n    const height = context.scrollbarX?.offsetHeight || 0;\n    context.onCornerHeightChange(height);\n    setHeight(height);\n  });\n\n  useResizeObserver(context.scrollbarY, () => {\n    const width = context.scrollbarY?.offsetWidth || 0;\n    context.onCornerWidthChange(width);\n    setWidth(width);\n  });\n\n  return hasSize ? (\n    <Primitive.div\n      {...cornerProps}\n      ref={forwardedRef}\n      style={{\n        width,\n        height,\n        position: 'absolute',\n        right: context.dir === 'ltr' ? 0 : undefined,\n        left: context.dir === 'rtl' ? 0 : undefined,\n        bottom: 0,\n        ...props.style,\n      }}\n    />\n  ) : null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction toInt(value?: string) {\n  return value ? parseInt(value, 10) : 0;\n}\n\nfunction getThumbRatio(viewportSize: number, contentSize: number) {\n  const ratio = viewportSize / contentSize;\n  return isNaN(ratio) ? 0 : ratio;\n}\n\nfunction getThumbSize(sizes: Sizes) {\n  const ratio = getThumbRatio(sizes.viewport, sizes.content);\n  const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n  const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n  // minimum of 18 matches macOS minimum\n  return Math.max(thumbSize, 18);\n}\n\nfunction getScrollPositionFromPointer(\n  pointerPos: number,\n  pointerOffset: number,\n  sizes: Sizes,\n  dir: Direction = 'ltr'\n) {\n  const thumbSizePx = getThumbSize(sizes);\n  const thumbCenter = thumbSizePx / 2;\n  const offset = pointerOffset || thumbCenter;\n  const thumbOffsetFromEnd = thumbSizePx - offset;\n  const minPointerPos = sizes.scrollbar.paddingStart + offset;\n  const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n  const maxScrollPos = sizes.content - sizes.viewport;\n  const scrollRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n  const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange as [number, number]);\n  return interpolate(pointerPos);\n}\n\nfunction getThumbOffsetFromScroll(scrollPos: number, sizes: Sizes, dir: Direction = 'ltr') {\n  const thumbSizePx = getThumbSize(sizes);\n  const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n  const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n  const maxScrollPos = sizes.content - sizes.viewport;\n  const maxThumbPos = scrollbar - thumbSizePx;\n  const scrollClampRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n  const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange as [number, number]);\n  const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n  return interpolate(scrollWithoutMomentum);\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n  return (value: number) => {\n    if (input[0] === input[1] || output[0] === output[1]) return output[0];\n    const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n    return output[0] + ratio * (value - input[0]);\n  };\n}\n\nfunction isScrollingWithinScrollbarBounds(scrollPos: number, maxScrollPos: number) {\n  return scrollPos > 0 && scrollPos < maxScrollPos;\n}\n\n// Custom scroll handler to avoid scroll-linked effects\n// https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\nconst addUnlinkedScrollListener = (node: HTMLElement, handler = () => {}) => {\n  let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n  let rAF = 0;\n  (function loop() {\n    const position = { left: node.scrollLeft, top: node.scrollTop };\n    const isHorizontalScroll = prevPosition.left !== position.left;\n    const isVerticalScroll = prevPosition.top !== position.top;\n    if (isHorizontalScroll || isVerticalScroll) handler();\n    prevPosition = position;\n    rAF = window.requestAnimationFrame(loop);\n  })();\n  return () => window.cancelAnimationFrame(rAF);\n};\n\nfunction useDebounceCallback(callback: () => void, delay: number) {\n  const handleCallback = useCallbackRef(callback);\n  const debounceTimerRef = React.useRef(0);\n  React.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n  return React.useCallback(() => {\n    window.clearTimeout(debounceTimerRef.current);\n    debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n  }, [handleCallback, delay]);\n}\n\nfunction useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n  const handleResize = useCallbackRef(onResize);\n  useLayoutEffect(() => {\n    let rAF = 0;\n    if (element) {\n      /**\n       * Resize Observer will throw an often benign error that says `ResizeObserver loop\n       * completed with undelivered notifications`. This means that ResizeObserver was not\n       * able to deliver all observations within a single animation frame, so we use\n       * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n       * Further reading: https://github.com/WICG/resize-observer/issues/38\n       */\n      const resizeObserver = new ResizeObserver(() => {\n        cancelAnimationFrame(rAF);\n        rAF = window.requestAnimationFrame(handleResize);\n      });\n      resizeObserver.observe(element);\n      return () => {\n        window.cancelAnimationFrame(rAF);\n        resizeObserver.unobserve(element);\n      };\n    }\n  }, [element, handleResize]);\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = ScrollArea;\nconst Viewport = ScrollAreaViewport;\nconst Scrollbar = ScrollAreaScrollbar;\nconst Thumb = ScrollAreaThumb;\nconst Corner = ScrollAreaCorner;\n\nexport {\n  createScrollAreaScope,\n  //\n  ScrollArea,\n  ScrollAreaViewport,\n  ScrollAreaScrollbar,\n  ScrollAreaThumb,\n  ScrollAreaCorner,\n  //\n  Root,\n  Viewport,\n  Scrollbar,\n  Thumb,\n  Corner,\n};\nexport type {\n  ScrollAreaProps,\n  ScrollAreaViewportProps,\n  ScrollAreaScrollbarProps,\n  ScrollAreaThumbProps,\n  ScrollAreaCornerProps,\n};\n","import * as React from 'react';\n\ntype Machine<S> = { [k: string]: { [k: string]: S } };\ntype MachineState<T> = keyof T;\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>;\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n  ? R\n  : never;\n\nexport function useStateMachine<M>(\n  initialState: MachineState<M>,\n  machine: M & Machine<MachineState<M>>\n) {\n  return React.useReducer((state: MachineState<M>, event: MachineEvent<M>): MachineState<M> => {\n    const nextState = (machine[state] as any)[event];\n    return nextState ?? state;\n  }, initialState);\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}