{"version":3,"file":"static/chunks/1186-e8f7b119f1196c42.js","mappings":"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","sources":["webpack://_N_E/./node_modules/next-view-transitions/dist/index.js","webpack://_N_E/../../../src/icons/IconCategory.ts","webpack://_N_E/../../../src/icons/IconSearch.ts","webpack://_N_E/./node_modules/next/dist/api/navigation.js","webpack://_N_E/../../../src/icons/IconX.ts","webpack://_N_E/../../../src/icons/IconBookmark.ts","webpack://_N_E/../../../src/icons/IconPresentation.ts","webpack://_N_E/../../../src/icons/IconHash.ts","webpack://_N_E/../defaultAttributes.ts","webpack://_N_E/../createReactComponent.ts","webpack://_N_E/./node_modules/@radix-ui/number/dist/index.mjs","webpack://_N_E/../src/scroll-area.tsx","webpack://_N_E/../src/use-state-machine.ts","webpack://_N_E/./node_modules/@radix-ui/react-direction/dist/index.mjs","webpack://_N_E/../../../src/icons/IconChevronRight.ts"],"sourcesContent":["'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport NextLink from 'next/link';\nimport { usePathname, useRouter } from 'next/navigation';\nimport { useSyncExternalStore, useRef, useState, useEffect, use, createContext, useCallback, startTransition, useMemo } from 'react';\n\nfunction useHash() {\n return useSyncExternalStore(subscribeHash, getHashSnapshot, getServerHashSnapshot);\n}\nfunction getHashSnapshot() {\n return window.location.hash;\n}\nfunction getServerHashSnapshot() {\n return '';\n}\nfunction subscribeHash(onStoreChange) {\n window.addEventListener('hashchange', onStoreChange);\n return ()=>window.removeEventListener('hashchange', onStoreChange);\n}\n\n// TODO: This implementation might not be complete when there are nested\n// Suspense boundaries during a route transition. But it should work fine for\n// the most common use cases.\nfunction useBrowserNativeTransitions() {\n const pathname = usePathname();\n const currentPathname = useRef(pathname);\n // This is a global state to keep track of the view transition state.\n const [currentViewTransition, setCurrentViewTransition] = useState(null);\n useEffect(()=>{\n if (!('startViewTransition' in document)) {\n return ()=>{};\n }\n const onPopState = ()=>{\n let pendingViewTransitionResolve;\n const pendingViewTransition = new Promise((resolve)=>{\n pendingViewTransitionResolve = resolve;\n });\n const pendingStartViewTransition = new Promise((resolve)=>{\n // @ts-ignore\n document.startViewTransition(()=>{\n resolve();\n return pendingViewTransition;\n });\n });\n setCurrentViewTransition([\n pendingStartViewTransition,\n pendingViewTransitionResolve\n ]);\n };\n window.addEventListener('popstate', onPopState);\n return ()=>{\n window.removeEventListener('popstate', onPopState);\n };\n }, []);\n if (currentViewTransition && currentPathname.current !== pathname) {\n // Whenever the pathname changes, we block the rendering of the new route\n // until the view transition is started (i.e. DOM screenshotted).\n use(currentViewTransition[0]);\n }\n // Keep the transition reference up-to-date.\n const transitionRef = useRef(currentViewTransition);\n useEffect(()=>{\n transitionRef.current = currentViewTransition;\n }, [\n currentViewTransition\n ]);\n const hash = useHash();\n useEffect(()=>{\n // When the new route component is actually mounted, we finish the view\n // transition.\n currentPathname.current = pathname;\n if (transitionRef.current) {\n transitionRef.current[1]();\n transitionRef.current = null;\n }\n }, [\n hash,\n pathname\n ]);\n}\n\nconst ViewTransitionsContext = /*#__PURE__*/ createContext(()=>()=>{});\nfunction ViewTransitions({ children }) {\n const [finishViewTransition, setFinishViewTransition] = useState(null);\n useEffect(()=>{\n if (finishViewTransition) {\n finishViewTransition();\n setFinishViewTransition(null);\n }\n }, [\n finishViewTransition\n ]);\n useBrowserNativeTransitions();\n return /*#__PURE__*/ jsx(ViewTransitionsContext.Provider, {\n value: setFinishViewTransition,\n children: children\n });\n}\nfunction useSetFinishViewTransition() {\n return use(ViewTransitionsContext);\n}\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends$1.apply(this, arguments);\n}\nfunction _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction useTransitionRouter() {\n const router = useRouter();\n const finishViewTransition = useSetFinishViewTransition();\n const triggerTransition = useCallback((cb, { onTransitionReady } = {})=>{\n if ('startViewTransition' in document) {\n // @ts-ignore\n const transition = document.startViewTransition(()=>new Promise((resolve)=>{\n startTransition(()=>{\n cb();\n finishViewTransition(()=>resolve);\n });\n }));\n if (onTransitionReady) {\n transition.ready.then(onTransitionReady);\n }\n } else {\n return cb();\n }\n }, []);\n const push = useCallback((href, _param = {})=>{\n var { onTransitionReady } = _param, options = _object_without_properties_loose(_param, [\n \"onTransitionReady\"\n ]);\n triggerTransition(()=>router.push(href, options), {\n onTransitionReady\n });\n }, [\n triggerTransition,\n router\n ]);\n const replace = useCallback((href, _param = {})=>{\n var { onTransitionReady } = _param, options = _object_without_properties_loose(_param, [\n \"onTransitionReady\"\n ]);\n triggerTransition(()=>router.replace(href, options), {\n onTransitionReady\n });\n }, [\n triggerTransition,\n router\n ]);\n return useMemo(()=>_extends$1({}, router, {\n push,\n replace\n }), [\n push,\n replace,\n router\n ]);\n}\n\nfunction _extends() {\n _extends = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n// copied from https://github.com/vercel/next.js/blob/66f8ffaa7a834f6591a12517618dce1fd69784f6/packages/next/src/client/link.tsx#L180-L191\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute('target');\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download\n event.nativeEvent && event.nativeEvent.which === 2;\n}\n// copied from https://github.com/vercel/next.js/blob/66f8ffaa7a834f6591a12517618dce1fd69784f6/packages/next/src/client/link.tsx#L204-L217\nfunction shouldPreserveDefault(e) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A';\n if (isAnchorNodeName && isModifiedEvent(e)) {\n // ignore click for browser’s default behavior\n return true;\n }\n return false;\n}\n// This is a wrapper around next/link that explicitly uses the router APIs\n// to navigate, and trigger a view transition.\nfunction Link(props) {\n const router = useTransitionRouter();\n const { href, as, replace, scroll } = props;\n const onClick = useCallback((e)=>{\n if (props.onClick) {\n props.onClick(e);\n }\n if ('startViewTransition' in document) {\n if (shouldPreserveDefault(e)) {\n return;\n }\n e.preventDefault();\n const navigate = replace ? router.replace : router.push;\n navigate(as || href, {\n scroll: scroll != null ? scroll : true\n });\n }\n }, [\n props.onClick,\n href,\n as,\n replace,\n scroll\n ]);\n return /*#__PURE__*/ jsx(NextLink, _extends({}, props, {\n onClick: onClick\n }));\n}\n\nexport { Link, ViewTransitions, useTransitionRouter };\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('outline', 'category', 'IconCategory', [[\"path\",{\"d\":\"M4 4h6v6h-6z\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M14 4h6v6h-6z\",\"key\":\"svg-1\"}],[\"path\",{\"d\":\"M4 14h6v6h-6z\",\"key\":\"svg-2\"}],[\"path\",{\"d\":\"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0\",\"key\":\"svg-3\"}]]);","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('outline', 'search', 'IconSearch', [[\"path\",{\"d\":\"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M21 21l-6 -6\",\"key\":\"svg-1\"}]]);","export * from '../client/components/navigation';\n\n//# sourceMappingURL=navigation.js.map","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('outline', 'x', 'IconX', [[\"path\",{\"d\":\"M18 6l-12 12\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M6 6l12 12\",\"key\":\"svg-1\"}]]);","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('outline', 'bookmark', 'IconBookmark', [[\"path\",{\"d\":\"M18 7v14l-6 -4l-6 4v-14a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4z\",\"key\":\"svg-0\"}]]);","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('outline', 'presentation', 'IconPresentation', [[\"path\",{\"d\":\"M3 4l18 0\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M4 4v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-10\",\"key\":\"svg-1\"}],[\"path\",{\"d\":\"M12 16l0 4\",\"key\":\"svg-2\"}],[\"path\",{\"d\":\"M9 20l6 0\",\"key\":\"svg-3\"}],[\"path\",{\"d\":\"M8 12l3 -3l2 2l3 -3\",\"key\":\"svg-4\"}]]);","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('outline', 'hash', 'IconHash', [[\"path\",{\"d\":\"M5 9l14 0\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M5 15l14 0\",\"key\":\"svg-1\"}],[\"path\",{\"d\":\"M11 4l-4 16\",\"key\":\"svg-2\"}],[\"path\",{\"d\":\"M17 4l-4 16\",\"key\":\"svg-3\"}]]);","export default {\n outline: {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n filled: {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n stroke: 'none',\n },\n};\n","import { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport type { IconNode, IconProps, Icon } from './types';\n\nconst createReactComponent = (\n type: 'outline' | 'filled',\n iconName: string,\n iconNamePascal: string,\n iconNode: IconNode,\n) => {\n const Component = forwardRef(\n (\n { color = 'currentColor', size = 24, stroke = 2, title, className, children, ...rest }: IconProps,\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes[type],\n width: size,\n height: size,\n className: [`tabler-icon`, `tabler-icon-${iconName}`, className].join(' '),\n ...(type === 'filled'\n ? {\n fill: color,\n }\n : {\n strokeWidth: stroke,\n stroke: color,\n }),\n ...rest,\n },\n [\n title && createElement('title', { key: 'svg-title' }, title),\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n );\n\n Component.displayName = `${iconNamePascal}`;\n\n return Component;\n};\n\nexport default createReactComponent;\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","/// \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","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('outline', 'chevron-right', 'IconChevronRight', [[\"path\",{\"d\":\"M9 6l6 6l-6 6\",\"key\":\"svg-0\"}]]);"],"names":["ViewTransitionsContext","createContext","_extends$1","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_object_without_properties_loose","excluded","sourceKeys","keys","indexOf","_extends","Link","props","router","useTransitionRouter","useRouter","finishViewTransition","use","triggerTransition","useCallback","useSetFinishViewTransition","cb","onTransitionReady","document","transition","startViewTransition","Promise","resolve","startTransition","ready","then","href","_param","options","push","replace","useMemo","as","scroll","onClick","e","shouldPreserveDefault","nodeName","currentTarget","isAnchorNodeName","toUpperCase","isModifiedEvent","event","getAttribute","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","preventDefault","navigate","jsx","NextLink","height","width"],"sourceRoot":"","ignoreList":[0,3,10,13]}