{"version":3,"file":"ThreadsNavbar-Bct56Jdf.js","sources":["../../../node_modules/@mantine/hooks/esm/use-callback-ref/use-callback-ref.mjs","../../../node_modules/@mantine/hooks/esm/use-debounced-callback/use-debounced-callback.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollArea.context.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/use-resize-observer.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/utils/get-thumb-ratio.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/utils/get-thumb-size.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/utils/linear-scale.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/utils/get-thumb-offset-from-scroll.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/utils/get-scroll-position-from-pointer.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/utils/is-scrolling-within-scrollbar-bounds.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/utils/to-int.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/utils/compose-event-handlers.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.context.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/utils/add-unlinked-scroll-listener.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollArea.module.css.mjs","../../../node_modules/@mantine/core/esm/components/ScrollArea/ScrollArea.mjs","../../../node_modules/@mantine/core/esm/components/Flex/flex-props.mjs","../../../node_modules/@mantine/core/esm/components/Flex/Flex.module.css.mjs","../../../node_modules/@mantine/core/esm/components/Flex/Flex.mjs","../../../app/components/EmptyCard.tsx","../../../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","../../../app/helpers/url.ts","../../../app/components/ThreadsNavbar.tsx"],"sourcesContent":["'use client';\nimport { useRef, useEffect, useMemo } from 'react';\n\nfunction useCallbackRef(callback) {\n const callbackRef = useRef(callback);\n useEffect(() => {\n callbackRef.current = callback;\n });\n return useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\n\nexport { useCallbackRef };\n//# sourceMappingURL=use-callback-ref.mjs.map\n","'use client';\nimport { useRef, useEffect, useCallback } from 'react';\nimport { useCallbackRef } from '../use-callback-ref/use-callback-ref.mjs';\n\nfunction useDebouncedCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = useRef(0);\n useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return useCallback(\n (...args) => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(() => handleCallback(...args), delay);\n },\n [handleCallback, delay]\n );\n}\n\nexport { useDebouncedCallback };\n//# sourceMappingURL=use-debounced-callback.mjs.map\n","'use client';\nimport 'react';\nimport { createSafeContext } from '../../core/utils/create-safe-context/create-safe-context.mjs';\nimport '@mantine/hooks';\nimport 'clsx';\nimport '../../core/MantineProvider/Mantine.context.mjs';\nimport '../../core/MantineProvider/default-theme.mjs';\nimport '../../core/MantineProvider/MantineProvider.mjs';\nimport '../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';\nimport '../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';\nimport '../../core/Box/Box.mjs';\nimport '../../core/DirectionProvider/DirectionProvider.mjs';\n\nconst [ScrollAreaProvider, useScrollAreaContext] = createSafeContext(\n \"ScrollArea.Root component was not found in tree\"\n);\n\nexport { ScrollAreaProvider, useScrollAreaContext };\n//# sourceMappingURL=ScrollArea.context.mjs.map\n","'use client';\nimport { useCallbackRef, useIsomorphicEffect } from '@mantine/hooks';\n\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useIsomorphicEffect(() => {\n let rAF = 0;\n if (element) {\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 return void 0;\n }, [element, handleResize]);\n}\n\nexport { useResizeObserver };\n//# sourceMappingURL=use-resize-observer.mjs.map\n","'use client';\nimport React from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\nimport { useResizeObserver } from '../use-resize-observer.mjs';\n\nconst Corner = React.forwardRef((props, ref) => {\n const { style, ...others } = props;\n const ctx = useScrollAreaContext();\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(ctx.scrollbarX, () => {\n const h = ctx.scrollbarX?.offsetHeight || 0;\n ctx.onCornerHeightChange(h);\n setHeight(h);\n });\n useResizeObserver(ctx.scrollbarY, () => {\n const w = ctx.scrollbarY?.offsetWidth || 0;\n ctx.onCornerWidthChange(w);\n setWidth(w);\n });\n return hasSize ? /* @__PURE__ */ React.createElement(\"div\", { ...others, ref, style: { ...style, width, height } }) : null;\n});\nconst ScrollAreaCorner = React.forwardRef(\n (props, ref) => {\n const ctx = useScrollAreaContext();\n const hasBothScrollbarsVisible = Boolean(ctx.scrollbarX && ctx.scrollbarY);\n const hasCorner = ctx.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ React.createElement(Corner, { ...props, ref }) : null;\n }\n);\n\nexport { Corner, ScrollAreaCorner };\n//# sourceMappingURL=ScrollAreaCorner.mjs.map\n","'use client';\nimport React, { forwardRef, useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport 'clsx';\nimport '../../../core/MantineProvider/Mantine.context.mjs';\nimport '../../../core/MantineProvider/default-theme.mjs';\nimport '../../../core/MantineProvider/MantineProvider.mjs';\nimport '../../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';\nimport { useProps } from '../../../core/MantineProvider/use-props/use-props.mjs';\nimport '../../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';\nimport { Box } from '../../../core/Box/Box.mjs';\nimport '../../../core/DirectionProvider/DirectionProvider.mjs';\nimport { ScrollAreaProvider } from '../ScrollArea.context.mjs';\n\nconst defaultProps = {\n scrollHideDelay: 1e3,\n type: \"hover\"\n};\nconst ScrollAreaRoot = forwardRef((_props, ref) => {\n const props = useProps(\"ScrollAreaRoot\", defaultProps, _props);\n const { type, scrollHideDelay, scrollbars, ...others } = props;\n const [scrollArea, setScrollArea] = useState(null);\n const [viewport, setViewport] = useState(null);\n const [content, setContent] = useState(null);\n const [scrollbarX, setScrollbarX] = useState(null);\n const [scrollbarY, setScrollbarY] = useState(null);\n const [cornerWidth, setCornerWidth] = useState(0);\n const [cornerHeight, setCornerHeight] = useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = useState(false);\n const rootRef = useMergedRef(ref, (node) => setScrollArea(node));\n return /* @__PURE__ */ React.createElement(\n ScrollAreaProvider,\n {\n value: {\n type,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight\n }\n },\n /* @__PURE__ */ React.createElement(\n Box,\n {\n ...others,\n ref: rootRef,\n __vars: {\n \"--sa-corner-width\": scrollbars !== \"xy\" ? \"0px\" : `${cornerWidth}px`,\n \"--sa-corner-height\": scrollbars !== \"xy\" ? \"0px\" : `${cornerHeight}px`\n }\n }\n )\n );\n});\nScrollAreaRoot.displayName = \"@mantine/core/ScrollAreaRoot\";\n\nexport { ScrollAreaRoot };\n//# sourceMappingURL=ScrollAreaRoot.mjs.map\n","'use client';\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return Number.isNaN(ratio) ? 0 : ratio;\n}\n\nexport { getThumbRatio };\n//# sourceMappingURL=get-thumb-ratio.mjs.map\n","'use client';\nimport { getThumbRatio } from './get-thumb-ratio.mjs';\n\nfunction getThumbSize(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 return Math.max(thumbSize, 18);\n}\n\nexport { getThumbSize };\n//# sourceMappingURL=get-thumb-size.mjs.map\n","'use client';\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1])\n 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\nexport { linearScale };\n//# sourceMappingURL=linear-scale.mjs.map\n","'use client';\nimport { getThumbSize } from './get-thumb-size.mjs';\nimport { linearScale } from './linear-scale.mjs';\n\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"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);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\n\nexport { getThumbOffsetFromScroll };\n//# sourceMappingURL=get-thumb-offset-from-scroll.mjs.map\n","'use client';\nimport { getThumbSize } from './get-thumb-size.mjs';\nimport { linearScale } from './linear-scale.mjs';\n\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\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);\n return interpolate(pointerPos);\n}\n\nexport { getScrollPositionFromPointer };\n//# sourceMappingURL=get-scroll-position-from-pointer.mjs.map\n","'use client';\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\n\nexport { isScrollingWithinScrollbarBounds };\n//# sourceMappingURL=is-scrolling-within-scrollbar-bounds.mjs.map\n","'use client';\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\n\nexport { toInt };\n//# sourceMappingURL=to-int.mjs.map\n","'use client';\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return (event) => {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n ourEventHandler?.(event);\n }\n };\n}\n\nexport { composeEventHandlers };\n//# sourceMappingURL=compose-event-handlers.mjs.map\n","'use client';\nimport 'react';\nimport { createSafeContext } from '../../../core/utils/create-safe-context/create-safe-context.mjs';\nimport '@mantine/hooks';\nimport 'clsx';\nimport '../../../core/MantineProvider/Mantine.context.mjs';\nimport '../../../core/MantineProvider/default-theme.mjs';\nimport '../../../core/MantineProvider/MantineProvider.mjs';\nimport '../../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';\nimport '../../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';\nimport '../../../core/Box/Box.mjs';\nimport '../../../core/DirectionProvider/DirectionProvider.mjs';\n\nconst [ScrollbarProvider, useScrollbarContext] = createSafeContext(\n \"ScrollAreaScrollbar was not found in tree\"\n);\n\nexport { ScrollbarProvider, useScrollbarContext };\n//# sourceMappingURL=Scrollbar.context.mjs.map\n","'use client';\nimport React, { forwardRef, useEffect } from 'react';\nimport { useMergedRef, useCallbackRef, useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\nimport { useResizeObserver } from '../use-resize-observer.mjs';\nimport { composeEventHandlers } from '../utils/compose-event-handlers.mjs';\nimport { ScrollbarProvider } from './Scrollbar.context.mjs';\n\nconst Scrollbar = forwardRef((props, forwardedRef) => {\n const {\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();\n const [scrollbar, setScrollbar] = React.useState(null);\n const composeRefs = useMergedRef(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React.useRef(null);\n const prevWebkitUserSelectRef = React.useRef(\"\");\n const { viewport } = context;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebouncedCallback(onResize, 10);\n const handleDragScroll = (event) => {\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 useEffect(() => {\n const handleWheel = (event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel)\n handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ React.createElement(\n ScrollbarProvider,\n {\n value: {\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown)\n }\n },\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\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;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\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;\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 )\n );\n});\n\nexport { Scrollbar };\n//# sourceMappingURL=Scrollbar.mjs.map\n","'use client';\nimport React, { forwardRef, useState, useRef, useEffect } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\nimport { isScrollingWithinScrollbarBounds } from '../utils/is-scrolling-within-scrollbar-bounds.mjs';\nimport { getThumbSize } from '../utils/get-thumb-size.mjs';\nimport { toInt } from '../utils/to-int.mjs';\nimport { Scrollbar } from './Scrollbar.mjs';\n\nconst ScrollAreaScrollbarX = forwardRef(\n (props, forwardedRef) => {\n const { sizes, onSizesChange, style, ...others } = props;\n const ctx = useScrollAreaContext();\n const [computedStyle, setComputedStyle] = useState();\n const ref = useRef(null);\n const composeRefs = useMergedRef(forwardedRef, ref, ctx.onScrollbarXChange);\n useEffect(() => {\n if (ref.current)\n setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ React.createElement(\n Scrollbar,\n {\n \"data-orientation\": \"horizontal\",\n ...others,\n ref: composeRefs,\n sizes,\n style: {\n ...style,\n [\"--sa-thumb-width\"]: `${getThumbSize(sizes)}px`\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (ctx.viewport) {\n const scrollPos = ctx.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && ctx.viewport && computedStyle) {\n onSizesChange({\n content: ctx.viewport.scrollWidth,\n viewport: ctx.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);\n\nexport { ScrollAreaScrollbarX };\n//# sourceMappingURL=ScrollbarX.mjs.map\n","'use client';\nimport React, { forwardRef, useRef, useEffect } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\nimport { isScrollingWithinScrollbarBounds } from '../utils/is-scrolling-within-scrollbar-bounds.mjs';\nimport { getThumbSize } from '../utils/get-thumb-size.mjs';\nimport { toInt } from '../utils/to-int.mjs';\nimport { Scrollbar } from './Scrollbar.mjs';\n\nconst ScrollAreaScrollbarY = forwardRef(\n (props, forwardedRef) => {\n const { sizes, onSizesChange, style, ...others } = props;\n const context = useScrollAreaContext();\n const [computedStyle, setComputedStyle] = React.useState();\n const ref = useRef(null);\n const composeRefs = useMergedRef(forwardedRef, ref, context.onScrollbarYChange);\n useEffect(() => {\n if (ref.current)\n setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ React.createElement(\n Scrollbar,\n {\n ...others,\n \"data-orientation\": \"vertical\",\n ref: composeRefs,\n sizes,\n style: {\n [\"--sa-thumb-height\"]: `${getThumbSize(sizes)}px`,\n ...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 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\nexport { ScrollAreaScrollbarY };\n//# sourceMappingURL=ScrollbarY.mjs.map\n","'use client';\nimport React, { forwardRef, useRef, useState } from 'react';\nimport '@mantine/hooks';\nimport 'clsx';\nimport '../../../core/MantineProvider/Mantine.context.mjs';\nimport '../../../core/MantineProvider/default-theme.mjs';\nimport '../../../core/MantineProvider/MantineProvider.mjs';\nimport '../../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';\nimport '../../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';\nimport '../../../core/Box/Box.mjs';\nimport { useDirection } from '../../../core/DirectionProvider/DirectionProvider.mjs';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\nimport { getThumbRatio } from '../utils/get-thumb-ratio.mjs';\nimport { getThumbOffsetFromScroll } from '../utils/get-thumb-offset-from-scroll.mjs';\nimport { getScrollPositionFromPointer } from '../utils/get-scroll-position-from-pointer.mjs';\nimport { ScrollAreaScrollbarX } from './ScrollbarX.mjs';\nimport { ScrollAreaScrollbarY } from './ScrollbarY.mjs';\n\nconst ScrollAreaScrollbarVisible = forwardRef((props, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const { dir } = useDirection();\n const context = useScrollAreaContext();\n const thumbRef = useRef(null);\n const pointerOffsetRef = useRef(0);\n const [sizes, setSizes] = 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 const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => {\n thumbRef.current = thumb;\n },\n onThumbPointerUp: () => {\n pointerOffsetRef.current = 0;\n },\n onThumbPointerDown: (pointerPos) => {\n pointerOffsetRef.current = pointerPos;\n }\n };\n const getScrollPosition = (pointerPos, direction) => getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, direction);\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ React.createElement(\n ScrollAreaScrollbarX,\n {\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, dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport)\n context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ React.createElement(\n ScrollAreaScrollbarY,\n {\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)\n context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport)\n context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n});\n\nexport { ScrollAreaScrollbarVisible };\n//# sourceMappingURL=ScrollAreaScrollbarVisible.mjs.map\n","'use client';\nimport React, { forwardRef, useState } from 'react';\nimport { useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\nimport { useResizeObserver } from '../use-resize-observer.mjs';\nimport { ScrollAreaScrollbarVisible } from './ScrollAreaScrollbarVisible.mjs';\n\nconst ScrollAreaScrollbarAuto = forwardRef(\n (props, ref) => {\n const context = useScrollAreaContext();\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebouncedCallback(() => {\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 useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n if (forceMount || visible) {\n return /* @__PURE__ */ React.createElement(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref\n }\n );\n }\n return null;\n }\n);\n\nexport { ScrollAreaScrollbarAuto };\n//# sourceMappingURL=ScrollAreaScrollbarAuto.mjs.map\n","'use client';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\nimport { ScrollAreaScrollbarAuto } from './ScrollAreaScrollbarAuto.mjs';\n\nconst ScrollAreaScrollbarHover = forwardRef(\n (props, ref) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const [visible, setVisible] = useState(false);\n useEffect(() => {\n const { scrollArea } = context;\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 return void 0;\n }, [context.scrollArea, context.scrollHideDelay]);\n if (forceMount || visible) {\n return /* @__PURE__ */ React.createElement(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref\n }\n );\n }\n return null;\n }\n);\n\nexport { ScrollAreaScrollbarHover };\n//# sourceMappingURL=ScrollAreaScrollbarHover.mjs.map\n","'use client';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport { useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\nimport { composeEventHandlers } from '../utils/compose-event-handlers.mjs';\nimport { ScrollAreaScrollbarVisible } from './ScrollAreaScrollbarVisible.mjs';\n\nconst ScrollAreaScrollbarScroll = forwardRef(\n (props, red) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const isHorizontal = props.orientation === \"horizontal\";\n const [state, setState] = useState(\"hidden\");\n const debounceScrollEnd = useDebouncedCallback(() => setState(\"idle\"), 100);\n useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => setState(\"hidden\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n return void 0;\n }, [state, context.scrollHideDelay]);\n useEffect(() => {\n const { viewport } = context;\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 setState(\"scrolling\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n return void 0;\n }, [context.viewport, isHorizontal, debounceScrollEnd]);\n if (forceMount || state !== \"hidden\") {\n return /* @__PURE__ */ React.createElement(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: red,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => setState(\"interacting\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => setState(\"idle\"))\n }\n );\n }\n return null;\n }\n);\n\nexport { ScrollAreaScrollbarScroll };\n//# sourceMappingURL=ScrollAreaScrollbarScroll.mjs.map\n","'use client';\nimport React from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\nimport { ScrollAreaScrollbarAuto } from './ScrollAreaScrollbarAuto.mjs';\nimport { ScrollAreaScrollbarHover } from './ScrollAreaScrollbarHover.mjs';\nimport { ScrollAreaScrollbarScroll } from './ScrollAreaScrollbarScroll.mjs';\nimport { ScrollAreaScrollbarVisible } from './ScrollAreaScrollbarVisible.mjs';\n\nconst ScrollAreaScrollbar = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React.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__ */ React.createElement(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ React.createElement(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ React.createElement(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ React.createElement(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n }\n);\n\nexport { ScrollAreaScrollbar };\n//# sourceMappingURL=ScrollAreaScrollbar.mjs.map\n","'use client';\nfunction addUnlinkedScrollListener(node, handler = () => {\n}) {\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)\n handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n}\n\nexport { addUnlinkedScrollListener };\n//# sourceMappingURL=add-unlinked-scroll-listener.mjs.map\n","'use client';\nimport React, { forwardRef, useRef, useEffect } from 'react';\nimport { useMergedRef, useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\nimport { useScrollbarContext } from '../ScrollAreaScrollbar/Scrollbar.context.mjs';\nimport { composeEventHandlers } from '../utils/compose-event-handlers.mjs';\nimport { addUnlinkedScrollListener } from '../utils/add-unlinked-scroll-listener.mjs';\n\nconst Thumb = forwardRef((props, forwardedRef) => {\n const { style, ...others } = props;\n const scrollAreaContext = useScrollAreaContext();\n const scrollbarContext = useScrollbarContext();\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useMergedRef(forwardedRef, (node) => scrollbarContext.onThumbChange(node));\n const removeUnlinkedScrollListenerRef = useRef();\n const debounceScrollEnd = useDebouncedCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n useEffect(() => {\n const { viewport } = scrollAreaContext;\n if (viewport) {\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 return void 0;\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...others,\n ref: composedRef,\n style: {\n width: \"var(--sa-thumb-width)\",\n height: \"var(--sa-thumb-height)\",\n ...style\n },\n onPointerDownCapture: 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({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n});\nconst ScrollAreaThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext();\n if (forceMount || scrollbarContext.hasThumb) {\n return /* @__PURE__ */ React.createElement(Thumb, { ref: forwardedRef, ...thumbProps });\n }\n return null;\n }\n);\n\nexport { ScrollAreaThumb, Thumb };\n//# sourceMappingURL=ScrollAreaThumb.mjs.map\n","'use client';\nimport React, { forwardRef } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport 'clsx';\nimport '../../../core/MantineProvider/Mantine.context.mjs';\nimport '../../../core/MantineProvider/default-theme.mjs';\nimport '../../../core/MantineProvider/MantineProvider.mjs';\nimport '../../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';\nimport '../../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';\nimport { Box } from '../../../core/Box/Box.mjs';\nimport '../../../core/DirectionProvider/DirectionProvider.mjs';\nimport { useScrollAreaContext } from '../ScrollArea.context.mjs';\n\nconst ScrollAreaViewport = forwardRef(\n ({ children, style, ...others }, ref) => {\n const ctx = useScrollAreaContext();\n const rootRef = useMergedRef(ref, ctx.onViewportChange);\n return /* @__PURE__ */ React.createElement(\n Box,\n {\n ...others,\n ref: rootRef,\n style: {\n overflowX: ctx.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: ctx.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...style\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { style: { minWidth: \"100%\", display: \"table\" }, ref: ctx.onContentChange }, children)\n );\n }\n);\nScrollAreaViewport.displayName = \"@mantine/core/ScrollAreaViewport\";\n\nexport { ScrollAreaViewport };\n//# sourceMappingURL=ScrollAreaViewport.mjs.map\n","'use client';\nvar classes = {\"root\":\"m_d57069b5\",\"viewport\":\"m_c0783ff9\",\"viewportInner\":\"m_f8f631dd\",\"scrollbar\":\"m_c44ba933\",\"thumb\":\"m_d8b5e363\",\"corner\":\"m_21657268\"};\n\nexport { classes as default };\n//# sourceMappingURL=ScrollArea.module.css.mjs.map\n","'use client';\nimport React, { useState } from 'react';\nimport { rem } from '../../core/utils/units-converters/rem.mjs';\nimport '@mantine/hooks';\nimport { createVarsResolver } from '../../core/styles-api/create-vars-resolver/create-vars-resolver.mjs';\nimport 'clsx';\nimport '../../core/MantineProvider/Mantine.context.mjs';\nimport '../../core/MantineProvider/default-theme.mjs';\nimport '../../core/MantineProvider/MantineProvider.mjs';\nimport '../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';\nimport { useProps } from '../../core/MantineProvider/use-props/use-props.mjs';\nimport '../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';\nimport { useStyles } from '../../core/styles-api/use-styles/use-styles.mjs';\nimport { Box } from '../../core/Box/Box.mjs';\nimport { factory } from '../../core/factory/factory.mjs';\nimport '../../core/DirectionProvider/DirectionProvider.mjs';\nimport { ScrollAreaCorner } from './ScrollAreaCorner/ScrollAreaCorner.mjs';\nimport { ScrollAreaRoot } from './ScrollAreaRoot/ScrollAreaRoot.mjs';\nimport { ScrollAreaScrollbar } from './ScrollAreaScrollbar/ScrollAreaScrollbar.mjs';\nimport { ScrollAreaThumb } from './ScrollAreaThumb/ScrollAreaThumb.mjs';\nimport { ScrollAreaViewport } from './ScrollAreaViewport/ScrollAreaViewport.mjs';\nimport classes from './ScrollArea.module.css.mjs';\n\nconst defaultProps = {\n scrollHideDelay: 1e3,\n type: \"hover\",\n scrollbars: \"xy\"\n};\nconst varsResolver = createVarsResolver((_, { scrollbarSize }) => ({\n root: {\n \"--scrollarea-scrollbar-size\": rem(scrollbarSize)\n }\n}));\nconst ScrollArea = factory((_props, ref) => {\n const props = useProps(\"ScrollArea\", defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n scrollbarSize,\n vars,\n type,\n scrollHideDelay,\n viewportProps,\n viewportRef,\n onScrollPositionChange,\n children,\n offsetScrollbars,\n scrollbars,\n ...others\n } = props;\n const [scrollbarHovered, setScrollbarHovered] = useState(false);\n const getStyles = useStyles({\n name: \"ScrollArea\",\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver\n });\n return /* @__PURE__ */ React.createElement(\n ScrollAreaRoot,\n {\n type: type === \"never\" ? \"always\" : type,\n scrollHideDelay,\n ref,\n scrollbars,\n ...getStyles(\"root\"),\n ...others\n },\n /* @__PURE__ */ React.createElement(\n ScrollAreaViewport,\n {\n ...viewportProps,\n ...getStyles(\"viewport\", { style: viewportProps?.style }),\n ref: viewportRef,\n \"data-offset-scrollbars\": offsetScrollbars === true ? \"xy\" : offsetScrollbars || void 0,\n \"data-scrollbars\": scrollbars || void 0,\n onScroll: (e) => {\n viewportProps?.onScroll?.(e);\n onScrollPositionChange?.({ x: e.currentTarget.scrollLeft, y: e.currentTarget.scrollTop });\n }\n },\n children\n ),\n (scrollbars === \"xy\" || scrollbars === \"x\") && /* @__PURE__ */ React.createElement(\n ScrollAreaScrollbar,\n {\n ...getStyles(\"scrollbar\"),\n orientation: \"horizontal\",\n \"data-hidden\": type === \"never\" || void 0,\n forceMount: true,\n onMouseEnter: () => setScrollbarHovered(true),\n onMouseLeave: () => setScrollbarHovered(false)\n },\n /* @__PURE__ */ React.createElement(ScrollAreaThumb, { ...getStyles(\"thumb\") })\n ),\n (scrollbars === \"xy\" || scrollbars === \"y\") && /* @__PURE__ */ React.createElement(\n ScrollAreaScrollbar,\n {\n ...getStyles(\"scrollbar\"),\n orientation: \"vertical\",\n \"data-hidden\": type === \"never\" || void 0,\n forceMount: true,\n onMouseEnter: () => setScrollbarHovered(true),\n onMouseLeave: () => setScrollbarHovered(false)\n },\n /* @__PURE__ */ React.createElement(ScrollAreaThumb, { ...getStyles(\"thumb\") })\n ),\n /* @__PURE__ */ React.createElement(\n ScrollAreaCorner,\n {\n ...getStyles(\"corner\"),\n \"data-hovered\": scrollbarHovered || void 0,\n \"data-hidden\": type === \"never\" || void 0\n }\n )\n );\n});\nScrollArea.displayName = \"@mantine/core/ScrollArea\";\nconst ScrollAreaAutosize = factory((props, ref) => {\n const {\n children,\n classNames,\n styles,\n scrollbarSize,\n scrollHideDelay,\n type,\n dir,\n offsetScrollbars,\n viewportRef,\n onScrollPositionChange,\n unstyled,\n variant,\n viewportProps,\n scrollbars,\n style,\n vars,\n ...others\n } = useProps(\"ScrollAreaAutosize\", defaultProps, props);\n return /* @__PURE__ */ React.createElement(Box, { ...others, ref, style: [{ display: \"flex\", overflow: \"auto\" }, style] }, /* @__PURE__ */ React.createElement(Box, { style: { display: \"flex\", flexDirection: \"column\", flex: 1 } }, /* @__PURE__ */ React.createElement(\n ScrollArea,\n {\n classNames,\n styles,\n scrollHideDelay,\n scrollbarSize,\n type,\n dir,\n offsetScrollbars,\n viewportRef,\n onScrollPositionChange,\n unstyled,\n variant,\n viewportProps,\n vars,\n scrollbars\n },\n children\n )));\n});\nScrollArea.classes = classes;\nScrollAreaAutosize.displayName = \"@mantine/core/ScrollAreaAutosize\";\nScrollAreaAutosize.classes = classes;\nScrollArea.Autosize = ScrollAreaAutosize;\n\nexport { ScrollArea, ScrollAreaAutosize };\n//# sourceMappingURL=ScrollArea.mjs.map\n","'use client';\nconst FLEX_STYLE_PROPS_DATA = {\n gap: { type: \"spacing\", property: \"gap\" },\n rowGap: { type: \"spacing\", property: \"rowGap\" },\n columnGap: { type: \"spacing\", property: \"columnGap\" },\n align: { type: \"identity\", property: \"alignItems\" },\n justify: { type: \"identity\", property: \"justifyContent\" },\n wrap: { type: \"identity\", property: \"flexWrap\" },\n direction: { type: \"identity\", property: \"flexDirection\" }\n};\n\nexport { FLEX_STYLE_PROPS_DATA };\n//# sourceMappingURL=flex-props.mjs.map\n","'use client';\nvar classes = {\"root\":\"m_8bffd616\"};\n\nexport { classes as default };\n//# sourceMappingURL=Flex.module.css.mjs.map\n","'use client';\nimport React from 'react';\nimport { filterProps } from '../../core/utils/filter-props/filter-props.mjs';\nimport '@mantine/hooks';\nimport 'clsx';\nimport '../../core/MantineProvider/Mantine.context.mjs';\nimport '../../core/MantineProvider/default-theme.mjs';\nimport '../../core/MantineProvider/MantineProvider.mjs';\nimport { useMantineTheme } from '../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';\nimport { useProps } from '../../core/MantineProvider/use-props/use-props.mjs';\nimport '../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';\nimport { useStyles } from '../../core/styles-api/use-styles/use-styles.mjs';\nimport { InlineStyles } from '../../core/InlineStyles/InlineStyles.mjs';\nimport { parseStyleProps } from '../../core/Box/style-props/parse-style-props/parse-style-props.mjs';\nimport { useRandomClassName } from '../../core/Box/use-random-classname/use-random-classname.mjs';\nimport { Box } from '../../core/Box/Box.mjs';\nimport { polymorphicFactory } from '../../core/factory/polymorphic-factory.mjs';\nimport '../../core/DirectionProvider/DirectionProvider.mjs';\nimport { FLEX_STYLE_PROPS_DATA } from './flex-props.mjs';\nimport classes from './Flex.module.css.mjs';\n\nconst defaultProps = {};\nconst Flex = polymorphicFactory((_props, ref) => {\n const props = useProps(\"Flex\", defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n gap,\n rowGap,\n columnGap,\n align,\n justify,\n wrap,\n direction,\n ...others\n } = props;\n const getStyles = useStyles({\n name: \"Flex\",\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars\n });\n const theme = useMantineTheme();\n const responsiveClassName = useRandomClassName();\n const parsedStyleProps = parseStyleProps({\n styleProps: { gap, rowGap, columnGap, align, justify, wrap, direction },\n theme,\n data: FLEX_STYLE_PROPS_DATA\n });\n return /* @__PURE__ */ React.createElement(React.Fragment, null, parsedStyleProps.hasResponsiveStyles && /* @__PURE__ */ React.createElement(\n InlineStyles,\n {\n selector: `.${responsiveClassName}`,\n styles: parsedStyleProps.styles,\n media: parsedStyleProps.media\n }\n ), /* @__PURE__ */ React.createElement(\n Box,\n {\n ref,\n ...getStyles(\"root\", {\n className: responsiveClassName,\n style: filterProps(parsedStyleProps.inlineStyles)\n }),\n ...others\n }\n ));\n});\nFlex.classes = classes;\nFlex.displayName = \"@mantine/core/Flex\";\n\nexport { Flex };\n//# sourceMappingURL=Flex.mjs.map\n","import type { FC } from \"react\";\nimport { Text } from \"@mantine/core\";\nimport type { CardProps } from \"@mantine/core\";\n\nimport EmptyIcon from \"~icons/heroicons/inbox-20-solid\";\n\nexport type EmptyCardProps = CardProps & {\n readonly itemLabel: string;\n};\n\nconst EmptyCard: FC = ({ itemLabel, ...otherProps }) => (\n \n \n \n \n \n \n No {itemLabel} to show\n \n \n \n);\n\nexport default EmptyCard;\n","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPosition = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n var computedBodyPaddingRight = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'), 10);\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = computedBodyPaddingRight + scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\nvar setPositionFixed = function setPositionFixed() {\n return window.requestAnimationFrame(function () {\n // If previousBodyPosition is already set, don't set it again.\n if (previousBodyPosition === undefined) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left\n };\n\n // Update the dom inside an animation frame \n var _window = window,\n scrollY = _window.scrollY,\n scrollX = _window.scrollX,\n innerHeight = _window.innerHeight;\n\n document.body.style.position = 'fixed';\n document.body.style.top = -scrollY;\n document.body.style.left = -scrollX;\n\n setTimeout(function () {\n return window.requestAnimationFrame(function () {\n // Attempt to check if the bottom bar appeared due to the position change\n var bottomBarHeight = innerHeight - window.innerHeight;\n if (bottomBarHeight && scrollY >= innerHeight) {\n // Move the content further up so that the bottom bar doesn't hide it\n document.body.style.top = -(scrollY + bottomBarHeight);\n }\n });\n }, 300);\n }\n });\n};\n\nvar restorePositionSetting = function restorePositionSetting() {\n if (previousBodyPosition !== undefined) {\n // Convert the position from \"px\" to Int\n var y = -parseInt(document.body.style.top, 10);\n var x = -parseInt(document.body.style.left, 10);\n\n // Restore styles\n document.body.style.position = previousBodyPosition.position;\n document.body.style.top = previousBodyPosition.top;\n document.body.style.left = previousBodyPosition.left;\n\n // Restore scroll\n window.scrollTo(x, y);\n\n previousBodyPosition = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n setPositionFixed();\n } else {\n setOverflowHidden(options);\n }\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n }\n\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n }\n\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n};\n\n","export { default as isUrl } from \"is-url\";\n\nexport const pathFromUrl = (url: string) =>\n new URL(\"http://localhost\" + url).pathname;\n","import type { FC } from \"react\";\nimport { pathFromUrl } from \"~/helpers/url\";\nimport { useNavbar } from \"~/helpers/navbar\";\n\nimport type { AppShellNavbarProps } from \"@mantine/core\";\nimport { AppShell, ScrollArea, Text, rgba } from \"@mantine/core\";\n\nimport LoadMoreIcon from \"~icons/heroicons/arrow-down-circle-20-solid\";\nimport SegmentIcon from \"~icons/heroicons/chat-bubble-left-right-20-solid\";\nimport NetworkIcon from \"~icons/lucide/network\";\n\nimport {\n ThreadsNavbarCurrentThreadUpdatedSubscriptionDocument,\n ThreadsNavbarCurrentThreadUpdatedSubscriptionVariables,\n ThreadsNavbarQueryDocument,\n ThreadsNavbarThreadCreatedSubscriptionDocument,\n} from \"~/helpers/graphql\";\n\nimport classes from \"./ThreadsNavbar.module.css\";\n\nexport type ThreadsNavbarProps = Omit & {\n readonly userId: string;\n readonly currentThreadId?: string;\n};\n\nconst ThreadsNavbar: FC = ({\n userId,\n currentThreadId,\n ...otherProps\n}) => {\n // == Page\n const { url } = usePage();\n const path = useMemo(() => pathFromUrl(url), [url]);\n const showingGraph = path.startsWith(\"/graph\");\n\n // == Navbar\n const { close: closeNavbar } = useNavbar();\n\n // == Threads Loading\n const onLoadThreadsError = useApolloAlertCallback(\"Failed to load threads\");\n const {\n data: threadsData,\n previousData: previousThreadsData,\n refetch: refetchThreads,\n fetchMore,\n } = useQuery(ThreadsNavbarQueryDocument, {\n variables: { userId },\n onError: onLoadThreadsError,\n });\n const threadsConnection = (threadsData ?? previousThreadsData)?.user?.threads;\n\n // == Watching Thread Creation\n const onWatchThreadCreationError = useApolloAlertCallback(\n \"Failed to subscribe to thread creation events\",\n );\n useSubscription(ThreadsNavbarThreadCreatedSubscriptionDocument, {\n variables: { userId },\n onData: ({ data: { data } }) => {\n if (data) {\n const { thread } = data.payload;\n if (thread) {\n refetchThreads();\n }\n }\n },\n onError: onWatchThreadCreationError,\n });\n\n // == Watching Thread Updated\n const onWatchThreadUpdatedError = useApolloAlertCallback(\n \"Failed to subscribe to current thread update events\",\n );\n const currentThreadUpdatedSubscriptionVariables:\n | ThreadsNavbarCurrentThreadUpdatedSubscriptionVariables\n | undefined = currentThreadId ? { currentThreadId } : undefined;\n useSubscription(ThreadsNavbarCurrentThreadUpdatedSubscriptionDocument, {\n variables: currentThreadUpdatedSubscriptionVariables,\n skip: !currentThreadUpdatedSubscriptionVariables,\n onError: onWatchThreadUpdatedError,\n });\n\n return (\n \n \n \n }\n h=\"unset\"\n py={8}\n styles={{\n root: {\n ...(showingGraph && {\n pointerEvents: \"none\",\n border: `${rem(1)} solid ${rgba(\"var(--mantine-color-primary-outline)\", 0.5)}`,\n }),\n },\n inner: {\n justifyContent: \"start\",\n },\n label: {\n textAlign: \"start\",\n },\n }}\n >\n \n Graph\n \n Connections between your snippets\n \n \n \n \n \n Your Threads\n \n {threadsConnection ? (\n !isEmpty(threadsConnection.edges) ? (\n <>\n {threadsConnection.edges.map(\n ({\n node: {\n id: threadId,\n url,\n createdAt,\n title,\n segmentsCount,\n },\n }) => {\n const currentThread = currentThreadId === threadId;\n return (\n \n \n {title ?? \"Untitled thread\"}\n \n \n {createdAt}\n \n }\n >\n {segmentsCount}\n \n \n \n \n );\n },\n )}\n {threadsConnection.pageInfo.hasNextPage && (\n }\n style={{ alignSelf: \"center\" }}\n onClick={() => {\n fetchMore({\n variables: {\n after: threadsConnection.pageInfo.endCursor,\n },\n });\n }}\n >\n Load more\n \n )}\n \n ) : (\n \n )\n ) : (\n [...new Array(3)].map((value, i) => (\n \n ))\n )}\n \n \n \n \n );\n};\n\nexport default ThreadsNavbar;\n"],"names":["useCallbackRef","callback","callbackRef","useRef","useEffect","useMemo","args","_a","useDebouncedCallback","delay","handleCallback","debounceTimerRef","useCallback","ScrollAreaProvider","useScrollAreaContext","createSafeContext","useResizeObserver","element","onResize","handleResize","useIsomorphicEffect","rAF","resizeObserver","Corner","React","props","ref","style","others","ctx","width","setWidth","height","setHeight","hasSize","h","w","ScrollAreaCorner","hasBothScrollbarsVisible","defaultProps","ScrollAreaRoot","forwardRef","_props","useProps","type","scrollHideDelay","scrollbars","scrollArea","setScrollArea","useState","viewport","setViewport","content","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","rootRef","useMergedRef","node","Box","getThumbRatio","viewportSize","contentSize","ratio","getThumbSize","sizes","scrollbarPadding","thumbSize","linearScale","input","output","value","clamp","min","max","getThumbOffsetFromScroll","scrollPos","dir","thumbSizePx","scrollbar","maxScrollPos","maxThumbPos","scrollClampRange","scrollWithoutMomentum","getScrollPositionFromPointer","pointerPos","pointerOffset","thumbCenter","offset","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","isScrollingWithinScrollbarBounds","toInt","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","ScrollbarProvider","useScrollbarContext","Scrollbar","forwardedRef","hasThumb","onThumbChange","onThumbPointerUp","onThumbPointerDown","onThumbPositionChange","onDragScroll","onWheelScroll","scrollbarProps","context","setScrollbar","composeRefs","rectRef","prevWebkitUserSelectRef","handleWheelScroll","handleThumbPositionChange","handleDragScroll","x","y","handleWheel","ScrollAreaScrollbarX","onSizesChange","computedStyle","setComputedStyle","ScrollAreaScrollbarY","ScrollAreaScrollbarVisible","orientation","useDirection","thumbRef","pointerOffsetRef","setSizes","thumbRatio","commonProps","thumb","getScrollPosition","direction","ScrollAreaScrollbarAuto","forceMount","visible","setVisible","isHorizontal","isOverflowX","isOverflowY","ScrollAreaScrollbarHover","hideTimer","handlePointerEnter","handlePointerLeave","ScrollAreaScrollbarScroll","red","state","setState","debounceScrollEnd","scrollDirection","prevScrollPos","handleScroll","ScrollAreaScrollbar","onScrollbarXEnabledChange","onScrollbarYEnabledChange","addUnlinkedScrollListener","handler","prevPosition","loop","position","isHorizontalScroll","isVerticalScroll","Thumb","scrollAreaContext","scrollbarContext","composedRef","removeUnlinkedScrollListenerRef","listener","thumbRect","ScrollAreaThumb","thumbProps","ScrollAreaViewport","children","classes","varsResolver","createVarsResolver","_","scrollbarSize","rem","ScrollArea","factory","classNames","className","styles","unstyled","vars","viewportProps","viewportRef","onScrollPositionChange","offsetScrollbars","scrollbarHovered","setScrollbarHovered","getStyles","useStyles","e","ScrollAreaAutosize","variant","FLEX_STYLE_PROPS_DATA","Flex","polymorphicFactory","gap","rowGap","columnGap","align","justify","wrap","theme","useMantineTheme","responsiveClassName","useRandomClassName","parsedStyleProps","parseStyleProps","InlineStyles","filterProps","EmptyCard","itemLabel","otherProps","Card","jsxs","jsx","EmptyIcon","Text","_toConsumableArray","arr","i","arr2","hasPassiveEvents","passiveTestOptions","isIosDevice","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPosition","previousBodyPaddingRight","allowTouchMove","el","lock","preventDefault","rawEvent","setOverflowHidden","options","_reserveScrollBarGap","scrollBarGap","computedBodyPaddingRight","restoreOverflowSetting","setPositionFixed","_window","scrollY","scrollX","innerHeight","bottomBarHeight","restorePositionSetting","isTargetElementTotallyScrolled","targetElement","clientY","disableBodyScroll","clearAllBodyScrollLocks","pathFromUrl","url","ThreadsNavbar","userId","currentThreadId","usePage","showingGraph","closeNavbar","useNavbar","onLoadThreadsError","useApolloAlertCallback","threadsData","previousThreadsData","refetchThreads","fetchMore","useQuery","ThreadsNavbarQueryDocument","threadsConnection","_b","onWatchThreadCreationError","useSubscription","ThreadsNavbarThreadCreatedSubscriptionDocument","data","thread","onWatchThreadUpdatedError","currentThreadUpdatedSubscriptionVariables","ThreadsNavbarCurrentThreadUpdatedSubscriptionDocument","AppShell","Stack","Button","Link","NetworkIcon","rgba","Title","isEmpty","Fragment","threadId","createdAt","title","segmentsCount","currentThread","Group","Time","DateTime","Badge","SegmentIcon","LoadMoreIcon","Skeleton"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32]}