{"version":3,"file":"static/chunks/2335-77f9957b9cdd87c7.js","mappings":"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","sources":["webpack://_N_E/../src/scroll-area.tsx","webpack://_N_E/../src/use-state-machine.ts","webpack://_N_E/../../node_modules/@radix-ui/themes/dist/esm/components/scroll-area.props.js","webpack://_N_E/../../node_modules/@radix-ui/themes/dist/esm/helpers/extract-margin-props.js","webpack://_N_E/../../node_modules/@radix-ui/themes/dist/esm/helpers/get-margin-styles.js","webpack://_N_E/../../node_modules/@radix-ui/themes/dist/esm/components/scroll-area.js","webpack://_N_E/../../node_modules/@radix-ui/themes/dist/esm/helpers/get-subtree.js"],"sourcesContent":["/// \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 './use-state-machine';\n\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 & { __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(SCROLL_AREA_NAME);\n\ntype ScrollAreaElement = React.ElementRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface ScrollAreaProps extends PrimitiveDivProps {\n type?: ScrollAreaContextValue['type'];\n dir?: ScrollAreaContextValue['dir'];\n scrollHideDelay?: number;\n}\n\nconst ScrollArea = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = 'hover',\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const [scrollbarX, setScrollbarX] = React.useState(null);\n const [scrollbarY, setScrollbarY] = React.useState(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 \n \n \n );\n }\n);\n\nScrollArea.displayName = SCROLL_AREA_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'ScrollAreaViewport';\n\ntype ScrollAreaViewportElement = React.ElementRef;\ninterface ScrollAreaViewportProps extends PrimitiveDivProps {\n nonce?: string;\n}\n\nconst ScrollAreaViewport = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React.useRef(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 \n

\n {children}\n
\n \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(\n (props: ScopedProps, 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 \n ) : context.type === 'scroll' ? (\n \n ) : context.type === 'auto' ? (\n \n ) : context.type === 'always' ? (\n \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, 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 \n \n \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, 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 \n send('POINTER_ENTER'))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => send('POINTER_LEAVE'))}\n />\n \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, 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 \n \n \n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarVisibleElement = ScrollAreaScrollbarAxisElement;\ninterface ScrollAreaScrollbarVisibleProps\n extends Omit {\n orientation?: 'horizontal' | 'vertical';\n}\n\nconst ScrollAreaScrollbarVisible = React.forwardRef<\n ScrollAreaScrollbarVisibleElement,\n ScrollAreaScrollbarVisibleProps\n>((props: ScopedProps, forwardedRef) => {\n const { orientation = 'vertical', ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React.useRef(null);\n const pointerOffsetRef = React.useRef(0);\n const [sizes, setSizes] = React.useState({\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 = {\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 {\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 {\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,\n ScrollAreaScrollbarAxisPrivateProps {}\n\nconst ScrollAreaScrollbarX = React.forwardRef<\n ScrollAreaScrollbarAxisElement,\n ScrollAreaScrollbarAxisProps\n>((props: ScopedProps, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React.useState();\n const ref = React.useRef(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 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, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React.useState();\n const ref = React.useRef(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 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(SCROLLBAR_NAME);\n\ntype ScrollAreaScrollbarImplElement = React.ElementRef;\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 Omit,\n ScrollAreaScrollbarImplPrivateProps {}\n\nconst ScrollAreaScrollbarImpl = React.forwardRef<\n ScrollAreaScrollbarImplElement,\n ScrollAreaScrollbarImplProps\n>((props: ScopedProps, 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(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React.useRef(null);\n const prevWebkitUserSelectRef = React.useRef('');\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) {\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 \n {\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 if (context.viewport) context.viewport.style.scrollBehavior = 'auto';\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 if (context.viewport) context.viewport.style.scrollBehavior = '';\n rectRef.current = null;\n })}\n />\n \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(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return (\n \n \n \n );\n }\n);\n\ntype ScrollAreaThumbImplElement = React.ElementRef;\ninterface ScrollAreaThumbImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaThumbImpl = React.forwardRef(\n (props: ScopedProps, 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>(undefined);\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 {\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(\n (props: ScopedProps, 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 ? : null;\n }\n);\n\nScrollAreaCorner.displayName = CORNER_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaCornerImplElement = React.ElementRef;\ninterface ScrollAreaCornerImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaCornerImpl = React.forwardRef<\n ScrollAreaCornerImplElement,\n ScrollAreaCornerImplProps\n>((props: ScopedProps, 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 \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 = { [k: string]: { [k: string]: S } };\ntype MachineState = keyof T;\ntype MachineEvent = keyof UnionToIntersection;\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine(\n initialState: MachineState,\n machine: M & Machine>\n) {\n return React.useReducer((state: MachineState, event: MachineEvent): MachineState => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n","import{asChildPropDef as s}from\"../props/as-child.prop.js\";import{radiusPropDef as e}from\"../props/radius.prop.js\";const r=[\"1\",\"2\",\"3\"],o=[\"vertical\",\"horizontal\",\"both\"],t={...s,size:{type:\"enum\",className:\"rt-r-size\",values:r,default:\"1\",responsive:!0},...e,scrollbars:{type:\"enum\",values:o,default:\"both\"}};export{t as scrollAreaPropDefs};\n//# sourceMappingURL=scroll-area.props.js.map\n","function a(r){const{m:t,mx:m,my:o,mt:p,mr:n,mb:s,ml:e,...i}=r;return{m:t,mx:m,my:o,mt:p,mr:n,mb:s,ml:e,rest:i}}export{a as extractMarginProps};\n//# sourceMappingURL=extract-margin-props.js.map\n","import f from\"classnames\";import{getResponsiveStyles as m}from\"./get-responsive-styles.js\";import{mergeStyles as v}from\"./merge-styles.js\";import{marginPropDefs as y}from\"../props/margin.props.js\";const r=y.m.values;function S(s){const[e,t]=m({className:\"rt-r-m\",customProperties:[\"--margin\"],propValues:r,value:s.m}),[a,o]=m({className:\"rt-r-mx\",customProperties:[\"--margin-left\",\"--margin-right\"],propValues:r,value:s.mx}),[l,i]=m({className:\"rt-r-my\",customProperties:[\"--margin-top\",\"--margin-bottom\"],propValues:r,value:s.my}),[p,u]=m({className:\"rt-r-mt\",customProperties:[\"--margin-top\"],propValues:r,value:s.mt}),[n,c]=m({className:\"rt-r-mr\",customProperties:[\"--margin-right\"],propValues:r,value:s.mr}),[g,P]=m({className:\"rt-r-mb\",customProperties:[\"--margin-bottom\"],propValues:r,value:s.mb}),[N,C]=m({className:\"rt-r-ml\",customProperties:[\"--margin-left\"],propValues:r,value:s.ml});return[f(e,a,l,p,n,g,N),v(t,o,i,u,c,P,C)]}export{S as getMarginStyles};\n//# sourceMappingURL=get-margin-styles.js.map\n","import*as r from\"react\";import s from\"classnames\";import{ScrollArea as e}from\"radix-ui\";import{scrollAreaPropDefs as o}from\"./scroll-area.props.js\";import{extractMarginProps as h}from\"../helpers/extract-margin-props.js\";import{getMarginStyles as w}from\"../helpers/get-margin-styles.js\";import{getResponsiveClassNames as m}from\"../helpers/get-responsive-styles.js\";import{getSubtree as C}from\"../helpers/get-subtree.js\";import{mergeStyles as z}from\"../helpers/merge-styles.js\";const c=r.forwardRef((n,S)=>{const{rest:f,...P}=h(n),[u,A]=w(P),{asChild:a,children:d,className:y,style:v,type:t,scrollHideDelay:N=t!==\"scroll\"?0:void 0,dir:V,size:i=o.size.default,radius:p=o.radius.default,scrollbars:l=o.scrollbars.default,...b}=f;return r.createElement(e.Root,{type:t,scrollHideDelay:N,className:s(\"rt-ScrollAreaRoot\",u,y),style:z(A,v),asChild:a},C({asChild:a,children:d},g=>r.createElement(r.Fragment,null,r.createElement(e.Viewport,{...b,ref:S,className:\"rt-ScrollAreaViewport\"},g),r.createElement(\"div\",{className:\"rt-ScrollAreaViewportFocusRing\"}),l!==\"vertical\"?r.createElement(e.Scrollbar,{\"data-radius\":p,orientation:\"horizontal\",className:s(\"rt-ScrollAreaScrollbar\",m({className:\"rt-r-size\",value:i,propValues:o.size.values}))},r.createElement(e.Thumb,{className:\"rt-ScrollAreaThumb\"})):null,l!==\"horizontal\"?r.createElement(e.Scrollbar,{\"data-radius\":p,orientation:\"vertical\",className:s(\"rt-ScrollAreaScrollbar\",m({className:\"rt-r-size\",value:i,propValues:o.size.values}))},r.createElement(e.Thumb,{className:\"rt-ScrollAreaThumb\"})):null,l===\"both\"?r.createElement(e.Corner,{className:\"rt-ScrollAreaCorner\"}):null)))});c.displayName=\"ScrollArea\";export{c as ScrollArea};\n//# sourceMappingURL=scroll-area.js.map\n","import*as a from\"react\";function d(i,e){const{asChild:r,children:c}=i;if(!r)return typeof e==\"function\"?e(c):e;const t=a.Children.only(c);return a.cloneElement(t,{children:typeof e==\"function\"?e(t.props.children):e})}export{d as getSubtree};\n//# sourceMappingURL=get-subtree.js.map\n"],"names":["SCROLL_AREA_NAME","createScrollAreaContext","createScrollAreaScope","createContextScope","ScrollAreaProvider","useScrollAreaContext","ScrollArea","React2","props","forwardedRef","__scopeScrollArea","type","dir","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","viewport","setViewport","content","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","composedRefs","useComposedRefs","node","direction","useDirection","jsx","scope","onViewportChange","onContentChange","onScrollbarXChange","onScrollbarXEnabledChange","onScrollbarYChange","onScrollbarYEnabledChange","onCornerWidthChange","onCornerHeightChange","children","Primitive","div","ref","style","position","displayName","VIEWPORT_NAME","ScrollAreaViewport","nonce","viewportProps","context","jsxs","Fragment","dangerouslySetInnerHTML","__html","overflowX","overflowY","minWidth","display","SCROLLBAR_NAME","ScrollAreaScrollbar","forceMount","scrollbarProps","isHorizontal","orientation","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible","visible","setVisible","hideTimer","handlePointerEnter","window","clearTimeout","handlePointerLeave","setTimeout","addEventListener","removeEventListener","Presence","present","initialState","machine","debounceScrollEnd","useDebounceCallback","send","state","hidden","SCROLL","scrolling","SCROLL_END","POINTER_ENTER","interacting","POINTER_LEAVE","idle","HIDE","React","event","nextState","scrollDirection","prevScrollPos","handleScroll","scrollPos","onPointerEnter","composeEventHandlers","onPointerLeave","handleResize","isOverflowX","offsetWidth","scrollWidth","isOverflowY","offsetHeight","scrollHeight","useResizeObserver","thumbRef","pointerOffsetRef","sizes","setSizes","scrollbar","size","paddingStart","paddingEnd","thumbRatio","getThumbRatio","commonProps","onSizesChange","hasThumb","Boolean","onThumbChange","current","thumb","onThumbPointerUp","onThumbPointerDown","pointerPos","getScrollPosition","getScrollPositionFromPointer","pointerOffset","thumbSizePx","getThumbSize","offset","minPointerPos","maxPointerPos","maxScrollPos","interpolate","ScrollAreaScrollbarX","onThumbPositionChange","getThumbOffsetFromScroll","scrollLeft","transform","concat","onWheelScroll","onDragScroll","ScrollAreaScrollbarY","scrollTop","computedStyle","setComputedStyle","composeRefs","getComputedStyle","ScrollAreaScrollbarImpl","bottom","left","right","x","deltaX","preventDefault","onResize","clientWidth","toInt","paddingLeft","paddingRight","top","y","deltaY","clientHeight","paddingTop","paddingBottom","ScrollbarProvider","useScrollbarContext","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","useCallbackRef","handleThumbPositionChange","handleDragScroll","clientX","clientY","handleWheel","element","target","contains","document","passive","onPointerDown","button","setPointerCapture","pointerId","getBoundingClientRect","body","webkitUserSelect","scrollBehavior","onPointerMove","onPointerUp","hasPointerCapture","releasePointerCapture","THUMB_NAME","ScrollAreaThumb","thumbProps","scrollbarContext","ScrollAreaThumbImpl","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","listener","addUnlinkedScrollListener","width","height","onPointerDownCapture","thumbRect","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","hasCorner","ScrollAreaCornerImpl","cornerProps","setWidth","setHeight","hasSize","value","parseInt","viewportSize","contentSize","ratio","isNaN","scrollbarPadding","Math","max","scrollWithoutMomentum","clamp","linearScale","input","output","handler","prevPosition","rAF","loop","isHorizontalScroll","isVerticalScroll","requestAnimationFrame","cancelAnimationFrame","callback","delay","handleCallback","debounceTimerRef","useLayoutEffect","resizeObserver","ResizeObserver","observe","unobserve","Root","Viewport","Scrollbar","Thumb","Corner","scroll_area_props_t","as_child_prop","C","className","values","default","responsive","radius_prop","I","scrollbars","get_margin_styles_r","margin_props","E","m","c","react","forwardRef","n","S","rest","f","P","extract_margin_props_a","r","t","mx","my","o","mt","p","mr","mb","s","ml","e","i","u","A","get_margin_styles_S","get_responsive_styles","uq","customProperties","propValues","a","l","g","N","classnames","merge_styles","asChild","d","v","V","radius","b","createElement","dist","get_subtree","RE","react__WEBPACK_IMPORTED_MODULE_0__","Children","only","cloneElement"],"sourceRoot":""}