@pipi-kit/ui 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +21 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +55 -1
- package/dist/index.d.ts +55 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../node_modules/next/src/shared/lib/utils/warn-once.ts","../node_modules/next/src/shared/lib/image-blur-svg.ts","../node_modules/next/src/shared/lib/image-config.ts","../node_modules/next/src/shared/lib/get-img-props.ts","../node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../node_modules/next/src/shared/lib/side-effect.tsx","../node_modules/next/src/shared/lib/amp-context.shared-runtime.ts","../node_modules/next/src/shared/lib/head-manager-context.shared-runtime.ts","../node_modules/next/src/shared/lib/amp-mode.ts","../node_modules/next/src/shared/lib/head.tsx","../node_modules/next/src/shared/lib/image-config-context.shared-runtime.ts","../node_modules/next/src/shared/lib/router-context.shared-runtime.ts","../node_modules/next/dist/compiled/picomatch/index.js","../node_modules/next/src/shared/lib/match-local-pattern.ts","../node_modules/next/src/shared/lib/match-remote-pattern.ts","../node_modules/next/src/shared/lib/image-loader.ts","../node_modules/next/src/client/use-merged-ref.ts","../node_modules/next/src/client/image-component.tsx","../node_modules/next/src/shared/lib/image-external.tsx","../node_modules/next/image.js","../src/hooks/use-copy-to-clipboard.ts","../src/hooks/use-auto-scroll.ts","../src/hooks/use-autosize-textarea.ts","../src/hooks/use-mobile.ts","../src/hooks/use-narrow.ts","../src/lib/cn.ts","../src/components/button/button.styles.ts","../src/components/button/button.tsx","../src/components/input/input.tsx","../src/components/label/label.tsx","../src/components/badge/badge.tsx","../src/components/card/card.tsx","../src/components/checkbox/checkbox.tsx","../src/components/switch/switch.tsx","../src/components/tooltip/tooltip.tsx","../src/components/slider/slider.tsx","../src/components/progress/progress.tsx","../src/components/textarea/textarea.tsx","../src/components/radio-group/radio-group.tsx","../src/components/separator/separator.tsx","../src/components/skeleton/skeleton.tsx","../src/components/avatar/avatar.tsx","../src/components/aspect-ratio/aspect-ratio.tsx","../src/components/visually-hidden/visually-hidden.tsx","../src/components/svg/CloseIcon3.tsx","../src/components/dialog/dialog.tsx","../src/components/select/select.tsx","../src/components/popover/popover.tsx","../src/components/hover-card/hover-card.tsx","../src/components/sheet/sheet.tsx","../src/components/sheet/sheet.styles.ts","../src/components/drawer/drawer.tsx","../src/components/alert-dialog/alert-dialog.tsx","../src/components/scroll-area/scroll-area.tsx","../src/components/toggle/toggle.tsx","../src/components/toggle-group/toggle-group.tsx","../src/components/collapsible/collapsible.tsx","../src/components/alert/alert.tsx","../src/components/toast/toast.tsx","../src/components/toast/toast.styles.ts","../src/hooks/use-toast.ts","../src/components/toaster/toaster.tsx","../src/components/sonner/sonner.tsx","../src/components/table/table.tsx","../src/components/tabs/tabs.tsx","../src/components/accordion/accordion.tsx","../src/components/breadcrumb/breadcrumb.tsx","../src/components/navigation-menu/navigation-menu.tsx","../src/components/menubar/menubar.tsx","../src/components/dropdown-menu/dropdown-menu.tsx","../src/components/context-menu/context-menu.tsx","../src/components/sidebar/sidebar.tsx","../src/components/command/command.tsx","../src/components/calendar/calendar.tsx","../src/components/carousel/carousel.tsx","../src/components/pagination/pagination.tsx","../src/components/form/form.tsx","../src/components/resizable/resizable.tsx","../src/components/copy-button/copy-button.tsx","../src/components/interrupt-prompt/interrupt-prompt.tsx","../src/components/message-input/message-input.tsx","../src/components/markdown-renderer/markdown-renderer.tsx","../src/components/chat-message/chat-message.tsx","../src/components/typing-indicator/typing-indicator.tsx","../src/components/message-list/message-list.tsx","../src/components/prompt-suggestions/prompt-suggestions.tsx","../src/components/chat/chat.tsx","../src/components/autosize-input/autosize-input.tsx","../src/components/shell/shell.tsx","../src/components/input-otp/input-otp.tsx","../src/components/border-beam/border-beam.tsx","../src/components/glowing-effect/glowing-effect.tsx","../src/components/image-loading/image-loading.tsx","../src/components/image-skeleton/image-skeleton.tsx","../src/components/droppable/droppable.tsx","../src/components/file-preview/file-preview.tsx","../src/components/chart/chart.tsx","../src/components/horizontal-scroll/horizontal-scroll.tsx"],"names":["exports","warnOnce","_","process","env","NODE_ENV","warnings","Set","msg","has","console","warn","add","getImageBlurSvg","widthInt","heightInt","blurWidth","blurHeight","blurDataURL","objectFit","std","svgWidth","svgHeight","viewBox","preserveAspectRatio","VALID_LOADERS","imageConfigDefault","deviceSizes","imageSizes","path","loader","loaderFile","domains","disableStaticImages","minimumCacheTTL","formats","dangerouslyAllowSVG","contentSecurityPolicy","contentDispositionType","localPatterns","undefined","remotePatterns","qualities","unoptimized","getImgProps","VALID_LOADING_VALUES","INVALID_BACKGROUND_SIZE_VALUES","isStaticRequire","src","default","isStaticImageData","isStaticImport","allImgs","Map","perfObserver","getInt","x","Number","isFinite","NaN","test","parseInt","getWidths","width","sizes","allSizes","viewportWidthRe","percentSizes","match","exec","push","length","smallestRatio","Math","min","widths","filter","s","kind","map","w","find","p","generateImgAttrs","config","quality","srcSet","last","i","join","_state","priority","loading","className","height","fill","style","overrideSrc","onLoad","onLoadingComplete","placeholder","fetchPriority","decoding","layout","objectPosition","lazyBoundary","lazyRoot","rest","imgConf","showAltText","blurComplete","defaultLoader","c","sort","a","b","Error","isDefaultLoader","customImageLoader","obj","opts","layoutToStyle","intrinsic","maxWidth","responsive","layoutToSizes","layoutStyle","layoutSizes","staticSrc","staticImageData","JSON","stringify","ratio","round","isLazy","startsWith","split","endsWith","qualityInt","output","position","isNaN","includes","String","pathname","VALID_BLUR_EXT","urlStr","url","URL","err","search","legacyKey","legacyValue","Object","entries","window","PerformanceObserver","entryList","entry","getEntries","imgSrc","element","lcpImage","get","observe","type","buffered","error","imgStyle","assign","left","top","right","bottom","color","backgroundImage","backgroundSize","placeholderStyle","backgroundPosition","backgroundRepeat","imgAttributes","fullUrl","e","location","href","set","props","meta","nodeInterop","SideEffect","isServer","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","Boolean","updateHead","children","delete","_pendingUpdate","AmpStateContext","React","createContext","displayName","HeadManagerContext","isInAmpMode","ampFirst","hybrid","hasQuery","defaultHead","inAmpMode","head","charSet","name","content","onlyReactElement","list","child","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","len","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","srcMessage","cloneElement","Head","ampState","useContext","Effect","ImageConfigContext","RouterContext","t","u","n","o","r","X","hasLocalMatch","matchLocalPattern","pattern","makeRe","dot","urlPathAndQuery","some","hasRemoteMatch","matchRemotePattern","protocol","replace","port","hostname","domain","DEFAULT_Q","missingValues","NEXT_RUNTIME","require","parsedSrc","q","prev","cur","abs","encodeURIComponent","NEXT_DEPLOYMENT_ID","__next_img_default","useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","Image","configEnv","__NEXT_IMAGE_OPTS","globalThis","__NEXT_IMAGE_IMPORTED","handleLoading","img","onLoadRef","onLoadingCompleteRef","setBlurComplete","sizesInput","decode","Promise","resolve","catch","then","parentElement","isConnected","event","Event","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","origSrc","searchParams","getAttribute","widthViewportRatio","getBoundingClientRect","innerWidth","getComputedStyle","valid","heightModified","toString","widthModified","getDynamicProps","use","fetchpriority","ImageElement","forwardRef","forwardedRef","setShowAltText","onError","ownRef","complete","ref","data-nimg","ImagePreload","isAppRouter","as","imageSrcSet","crossOrigin","referrerPolicy","ReactDOM","preload","link","rel","pagesRouter","configContext","useMemo","useState","imgMeta","getImageProps","imgProps","toast","React2","twMerge","clsx","cva","React3","Slot","jsxs","jsx","Loader2","React4","EyeOff","Eye","React5","LabelPrimitive","React6","React7","CheckboxPrimitive","Check","React8","SwitchPrimitives","TooltipPrimitive","React9","React10","SliderPrimitive","AnimatePresence","motion","React11","ProgressPrimitive","React12","React13","RadioGroupPrimitive","Circle","React14","SeparatorPrimitive","React15","AvatarPrimitive","AspectRatioPrimitive","React16","DialogPrimitive","React17","React18","SelectPrimitive","ChevronDownIcon","ChevronUpIcon","CheckIcon","PopoverPrimitive","React19","HoverCardPrimitive","React20","SheetPrimitive","React21","sheetVariants","DrawerPrimitive","React22","AlertDialogPrimitive","React23","React24","ScrollAreaPrimitive","React25","TogglePrimitive","React26","ToggleGroupPrimitive","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","React27","ToastPrimitives","React28","toastVariants","React29","Toaster","useTheme","Sonner","React30","TabsPrimitive","React31","AccordionPrimitive","React32","ChevronDown","React33","ChevronRight","MoreHorizontal","React34","NavigationMenuPrimitive","MenubarPrimitive","React35","DropdownMenuPrimitive","React36","ContextMenuPrimitive","React37","React38","open","PanelLeft","React39","CommandPrimitive","Search","DayPicker","ChevronLeft","React40","useEmblaCarousel","api","ArrowLeft","ArrowRight","React41","FormProvider","React42","Controller","useFormContext","ResizablePrimitive","GripVertical","Copy","Square","ArrowUp","Markdown","remarkGfm","Suspense","Ban","Terminal","Code2","Dot","ThumbsUp","ThumbsDown","ArrowDown","React47","OTPInput","OTPInputContext","Minus","memo","animate","useTranslations","React48","Dropzone","PlusIcon","FileIcon","React50","RechartsPrimitive"],"mappings":"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","file":"index.cjs","sourcesContent":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */\nexport function getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number\n heightInt?: number\n blurWidth?: number\n blurHeight?: number\n blurDataURL: string\n objectFit?: string\n}): string {\n const std = 20\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''\n const preserveAspectRatio = viewBox\n ? 'none'\n : objectFit === 'contain'\n ? 'xMidYMid'\n : objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`\n}\n","export const VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom',\n] as const\n\nexport type LoaderValue = (typeof VALID_LOADERS)[number]\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nexport type ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nexport type LocalPattern = {\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\nexport type RemotePattern = {\n /**\n * Must be `http` or `https`.\n */\n protocol?: 'http' | 'https'\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single subdomain.\n * Double `**` matches any number of subdomains.\n */\n hostname: string\n\n /**\n * Can be literal port such as `8080` or empty string\n * meaning no port.\n */\n port?: string\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\ntype ImageFormat = 'image/avif' | 'image/webp'\n\n/**\n * Image configurations\n *\n * @see [Image configuration options](https://nextjs.org/docs/api-reference/next/image#configuration-options)\n */\nexport type ImageConfigComplete = {\n /** @see [Device sizes documentation](https://nextjs.org/docs/api-reference/next/image#device-sizes) */\n deviceSizes: number[]\n\n /** @see [Image sizing documentation](https://nextjs.org/docs/app/building-your-application/optimizing/images#image-sizing) */\n imageSizes: number[]\n\n /** @see [Image loaders configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader) */\n loader: LoaderValue\n\n /** @see [Image loader configuration](https://nextjs.org/docs/app/api-reference/components/image#path) */\n path: string\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/image#loader-configuration) */\n loaderFile: string\n\n /**\n * @deprecated Use `remotePatterns` instead.\n */\n domains: string[]\n\n /** @see [Disable static image import configuration](https://nextjs.org/docs/api-reference/next/image#disable-static-imports) */\n disableStaticImages: boolean\n\n /** @see [Cache behavior](https://nextjs.org/docs/api-reference/next/image#caching-behavior) */\n minimumCacheTTL: number\n\n /** @see [Acceptable formats](https://nextjs.org/docs/api-reference/next/image#acceptable-formats) */\n formats: ImageFormat[]\n\n /** @see [Dangerously Allow SVG](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-svg) */\n dangerouslyAllowSVG: boolean\n\n /** @see [Content Security Policy](https://nextjs.org/docs/api-reference/next/image#contentsecuritypolicy) */\n contentSecurityPolicy: string\n\n /** @see [Content Disposition Type](https://nextjs.org/docs/api-reference/next/image#contentdispositiontype) */\n contentDispositionType: 'inline' | 'attachment'\n\n /** @see [Remote Patterns](https://nextjs.org/docs/api-reference/next/image#remotepatterns) */\n remotePatterns: Array<URL | RemotePattern>\n\n /** @see [Local Patterns](https://nextjs.org/docs/api-reference/next/image#localPatterns) */\n localPatterns: LocalPattern[] | undefined\n\n /** @see [Qualities](https://nextjs.org/docs/api-reference/next/image#qualities) */\n qualities: number[] | undefined\n\n /** @see [Unoptimized](https://nextjs.org/docs/api-reference/next/image#unoptimized) */\n unoptimized: boolean\n}\n\nexport type ImageConfig = Partial<ImageConfigComplete>\n\nexport const imageConfigDefault: ImageConfigComplete = {\n deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 60,\n formats: ['image/webp'],\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,\n contentDispositionType: 'attachment',\n localPatterns: undefined, // default: allow all local images\n remotePatterns: [], // default: allow no remote images\n qualities: undefined, // default: allow all qualities\n unoptimized: false,\n}\n","import { warnOnce } from './utils/warn-once'\nimport { getImageBlurSvg } from './image-blur-svg'\nimport { imageConfigDefault } from './image-config'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderPropsWithConfig,\n} from './image-config'\n\nimport type { CSSProperties, JSX } from 'react'\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n blurWidth?: number\n blurHeight?: number\n}\n\nexport interface StaticRequire {\n default: StaticImageData\n}\n\nexport type StaticImport = StaticRequire | StaticImageData\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n alt: string\n width?: number | `${number}`\n height?: number | `${number}`\n fill?: boolean\n loader?: ImageLoader\n quality?: number | `${number}`\n priority?: boolean\n loading?: LoadingValue\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n overrideSrc?: string\n /**\n * @deprecated Use `onLoad` instead.\n * @see https://nextjs.org/docs/app/api-reference/components/image#onload\n */\n onLoadingComplete?: OnLoadingComplete\n /**\n * @deprecated Use `fill` prop instead of `layout=\"fill\"` or change import to `next/legacy/image`.\n * @see https://nextjs.org/docs/api-reference/next/legacy/image\n */\n layout?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectFit?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectPosition?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyBoundary?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyRoot?: string\n}\n\nexport type ImgProps = Omit<ImageProps, 'src' | 'loader'> & {\n loading: LoadingValue\n width: number | undefined\n height: number | undefined\n style: NonNullable<JSX.IntrinsicElements['img']['style']>\n sizes: string | undefined\n srcSet: string | undefined\n src: string\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\n\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined,\n]\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & {\n allSizes: number[]\n output?: 'standalone' | 'export'\n}\n\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (p: ImageLoaderPropsWithConfig) => string\n\nexport type PlaceholderValue = 'blur' | 'empty' | `data:image/${string}`\nexport type OnLoad = React.ReactEventHandler<HTMLImageElement> | undefined\nexport type OnLoadingComplete = (img: HTMLImageElement) => void\n\nexport type PlaceholderStyle = Partial<\n Pick<\n CSSProperties,\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundRepeat'\n | 'backgroundImage'\n >\n>\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nconst allImgs = new Map<\n string,\n { src: string; priority: boolean; placeholder: PlaceholderValue }\n>()\nlet perfObserver: PerformanceObserver | undefined\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'undefined') {\n return x\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10)\n }\n return NaN\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (typeof width !== 'number') {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */\nexport function getImgProps(\n {\n src,\n sizes,\n unoptimized = false,\n priority = false,\n loading,\n className,\n quality,\n width,\n height,\n fill = false,\n style,\n overrideSrc,\n onLoad,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n fetchPriority,\n decoding = 'async',\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n ...rest\n }: ImageProps,\n _state: {\n defaultLoader: ImageLoaderWithConfig\n imgConf: ImageConfigComplete\n showAltText?: boolean\n blurComplete?: boolean\n }\n): {\n props: ImgProps\n meta: {\n unoptimized: boolean\n priority: boolean\n placeholder: NonNullable<ImageProps['placeholder']>\n fill: boolean\n }\n} {\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state\n let config: ImageConfig\n let c = imgConf || imageConfigDefault\n if ('allSizes' in c) {\n config = c as ImageConfig\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n config = { ...c, allSizes, deviceSizes, qualities }\n }\n\n if (typeof defaultLoader === 'undefined') {\n throw new Error(\n 'images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'\n )\n }\n let loader: ImageLoaderWithConfig = rest.loader || defaultLoader\n\n // Remove property so it's not spread on <img> element\n delete rest.loader\n delete (rest as any).srcSet\n\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader\n\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader as ImageLoader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n return customImageLoader(opts)\n }\n }\n\n if (layout) {\n if (layout === 'fill') {\n fill = true\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: '100%', height: 'auto' },\n responsive: { width: '100%', height: 'auto' },\n }\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: '100vw',\n fill: '100vw',\n }\n const layoutStyle = layoutToStyle[layout]\n if (layoutStyle) {\n style = { ...style, ...layoutStyle }\n }\n const layoutSizes = layoutToSizes[layout]\n if (layoutSizes && !sizes) {\n sizes = layoutSizes\n }\n }\n\n let staticSrc = ''\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n let blurWidth: number | undefined\n let blurHeight: number | undefined\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n\n blurWidth = staticImageData.blurWidth\n blurHeight = staticImageData.blurHeight\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width\n heightInt = staticImageData.height\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width\n heightInt = Math.round(staticImageData.height * ratio)\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height\n widthInt = Math.round(staticImageData.width * ratio)\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority && (loading === 'lazy' || typeof loading === 'undefined')\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n if (\n isDefaultLoader &&\n !config.dangerouslyAllowSVG &&\n src.split('?', 1)[0].endsWith('.svg')\n ) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true\n }\n\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true\n } else {\n if (fill) {\n if (width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (style?.position && style.position !== 'absolute') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`\n )\n }\n if (style?.width && style.width !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`\n )\n }\n if (style?.height && style.height !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`\n )\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`\n )\n } else if (isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${width}\".`\n )\n }\n if (typeof heightInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`\n )\n } else if (isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${height}\".`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (\n placeholder !== 'empty' &&\n placeholder !== 'blur' &&\n !placeholder.startsWith('data:image/')\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n )\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n )\n }\n }\n if (qualityInt && qualityInt !== 75 && !config.qualities) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities. This config will be required starting in Next.js 16.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n if (\n src.startsWith('/') &&\n src.includes('?') &&\n (!config?.localPatterns?.length ||\n (config.localPatterns.length === 1 &&\n config.localPatterns[0].pathname === '/_next/static/media/**'))\n ) {\n warnOnce(\n `Image with src \"${src}\" is using a query string which is not configured in images.localPatterns. This config will be required starting in Next.js 16.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`\n )\n }\n\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`\n )\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n !lcpImage.priority &&\n lcpImage.placeholder === 'empty' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \"priority\" property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/api-reference/next/image#priority`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n const imgStyle = Object.assign(\n fill\n ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition,\n }\n : {},\n showAltText ? {} : { color: 'transparent' },\n style\n )\n\n const backgroundImage =\n !blurComplete && placeholder !== 'empty'\n ? placeholder === 'blur'\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '', // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${placeholder}\")` // assume `data:image/`\n : null\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === 'fill'\n ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover'\n\n let placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage,\n }\n : {}\n\n if (process.env.NODE_ENV === 'development') {\n if (\n placeholderStyle.backgroundImage &&\n placeholder === 'blur' &&\n blurDataURL?.startsWith('/')\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = `url(\"${blurDataURL}\")`\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, priority, placeholder })\n }\n }\n\n const props: ImgProps = {\n ...rest,\n loading: isLazy ? 'lazy' : loading,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src,\n }\n const meta = { unoptimized, priority, placeholder, fill }\n return { props, meta }\n}\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: <T extends {}>(\n components: Array<React.ReactElement<any>>,\n props: T\n ) => State\n handleStateChange?: (state: State) => void\n headManager: any\n inAmpMode?: boolean\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements, props))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","import React from 'react'\n\nexport const AmpStateContext: React.Context<any> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n AmpStateContext.displayName = 'AmpStateContext'\n}\n","import React from 'react'\n\nexport const HeadManagerContext: React.Context<{\n updateHead?: (state: any) => void\n mountedInstances?: any\n updateScripts?: (state: any) => void\n scripts?: any\n getIsSsr?: () => boolean\n\n // Used in app directory, to render script tags as server components.\n appDir?: boolean\n nonce?: string\n}> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n HeadManagerContext.displayName = 'HeadManagerContext'\n}\n","export function isInAmpMode({\n ampFirst = false,\n hybrid = false,\n hasQuery = false,\n} = {}): boolean {\n return ampFirst || (hybrid && hasQuery)\n}\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { AmpStateContext } from './amp-context.shared-runtime'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { isInAmpMode } from './amp-mode'\nimport { warnOnce } from './utils/warn-once'\n\ntype WithInAmpMode = {\n inAmpMode?: boolean\n}\n\nexport function defaultHead(inAmpMode = false): JSX.Element[] {\n const head = [<meta charSet=\"utf-8\" key=\"charset\" />]\n if (!inAmpMode) {\n head.push(\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />\n )\n }\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents<T extends {} & WithInAmpMode>(\n headChildrenElements: Array<React.ReactElement<any>>,\n props: T\n) {\n const { inAmpMode } = props\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead(inAmpMode).reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const ampState = useContext(AmpStateContext)\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n inAmpMode={isInAmpMode(ampState)}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","import React from 'react'\nimport type { ImageConfigComplete } from './image-config'\nimport { imageConfigDefault } from './image-config'\n\nexport const ImageConfigContext =\n React.createContext<ImageConfigComplete>(imageConfigDefault)\n\nif (process.env.NODE_ENV !== 'production') {\n ImageConfigContext.displayName = 'ImageConfigContext'\n}\n","import React from 'react'\nimport type { NextRouter } from './router/router'\n\nexport const RouterContext = React.createContext<NextRouter | null>(null)\n\nif (process.env.NODE_ENV !== 'production') {\n RouterContext.displayName = 'RouterContext'\n}\n","(()=>{\"use strict\";var t={170:(t,e,u)=>{const n=u(510);const isWindows=()=>{if(typeof navigator!==\"undefined\"&&navigator.platform){const t=navigator.platform.toLowerCase();return t===\"win32\"||t===\"windows\"}if(typeof process!==\"undefined\"&&process.platform){return process.platform===\"win32\"}return false};function picomatch(t,e,u=false){if(e&&(e.windows===null||e.windows===undefined)){e={...e,windows:isWindows()}}return n(t,e,u)}Object.assign(picomatch,n);t.exports=picomatch},154:t=>{const e=\"\\\\\\\\/\";const u=`[^${e}]`;const n=\"\\\\.\";const o=\"\\\\+\";const s=\"\\\\?\";const r=\"\\\\/\";const a=\"(?=.)\";const i=\"[^/]\";const c=`(?:${r}|$)`;const p=`(?:^|${r})`;const l=`${n}{1,2}${c}`;const f=`(?!${n})`;const A=`(?!${p}${l})`;const _=`(?!${n}{0,1}${c})`;const R=`(?!${l})`;const E=`[^.${r}]`;const h=`${i}*?`;const g=\"/\";const b={DOT_LITERAL:n,PLUS_LITERAL:o,QMARK_LITERAL:s,SLASH_LITERAL:r,ONE_CHAR:a,QMARK:i,END_ANCHOR:c,DOTS_SLASH:l,NO_DOT:f,NO_DOTS:A,NO_DOT_SLASH:_,NO_DOTS_SLASH:R,QMARK_NO_DOT:E,STAR:h,START_ANCHOR:p,SEP:g};const C={...b,SLASH_LITERAL:`[${e}]`,QMARK:u,STAR:`${u}*?`,DOTS_SLASH:`${n}{1,2}(?:[${e}]|$)`,NO_DOT:`(?!${n})`,NO_DOTS:`(?!(?:^|[${e}])${n}{1,2}(?:[${e}]|$))`,NO_DOT_SLASH:`(?!${n}{0,1}(?:[${e}]|$))`,NO_DOTS_SLASH:`(?!${n}{1,2}(?:[${e}]|$))`,QMARK_NO_DOT:`[^.${e}]`,START_ANCHOR:`(?:^|[${e}])`,END_ANCHOR:`(?:[${e}]|$)`,SEP:\"\\\\\"};const y={alnum:\"a-zA-Z0-9\",alpha:\"a-zA-Z\",ascii:\"\\\\x00-\\\\x7F\",blank:\" \\\\t\",cntrl:\"\\\\x00-\\\\x1F\\\\x7F\",digit:\"0-9\",graph:\"\\\\x21-\\\\x7E\",lower:\"a-z\",print:\"\\\\x20-\\\\x7E \",punct:\"\\\\-!\\\"#$%&'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~\",space:\" \\\\t\\\\r\\\\n\\\\v\\\\f\",upper:\"A-Z\",word:\"A-Za-z0-9_\",xdigit:\"A-Fa-f0-9\"};t.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:y,REGEX_BACKSLASH:/\\\\(?![*+?^${}(|)[\\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\\].,$*+?^{}()|\\\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\\\?)((\\W)(\\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,REPLACEMENTS:{\"***\":\"*\",\"**/**\":\"**\",\"**/**/**\":\"**\"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(t){return{\"!\":{type:\"negate\",open:\"(?:(?!(?:\",close:`))${t.STAR})`},\"?\":{type:\"qmark\",open:\"(?:\",close:\")?\"},\"+\":{type:\"plus\",open:\"(?:\",close:\")+\"},\"*\":{type:\"star\",open:\"(?:\",close:\")*\"},\"@\":{type:\"at\",open:\"(?:\",close:\")\"}}},globChars(t){return t===true?C:b}}},697:(t,e,u)=>{const n=u(154);const o=u(96);const{MAX_LENGTH:s,POSIX_REGEX_SOURCE:r,REGEX_NON_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_BACKREF:i,REPLACEMENTS:c}=n;const expandRange=(t,e)=>{if(typeof e.expandRange===\"function\"){return e.expandRange(...t,e)}t.sort();const u=`[${t.join(\"-\")}]`;try{new RegExp(u)}catch(e){return t.map((t=>o.escapeRegex(t))).join(\"..\")}return u};const syntaxError=(t,e)=>`Missing ${t}: \"${e}\" - use \"\\\\\\\\${e}\" to match literal characters`;const parse=(t,e)=>{if(typeof t!==\"string\"){throw new TypeError(\"Expected a string\")}t=c[t]||t;const u={...e};const p=typeof u.maxLength===\"number\"?Math.min(s,u.maxLength):s;let l=t.length;if(l>p){throw new SyntaxError(`Input length: ${l}, exceeds maximum allowed length: ${p}`)}const f={type:\"bos\",value:\"\",output:u.prepend||\"\"};const A=[f];const _=u.capture?\"\":\"?:\";const R=n.globChars(u.windows);const E=n.extglobChars(R);const{DOT_LITERAL:h,PLUS_LITERAL:g,SLASH_LITERAL:b,ONE_CHAR:C,DOTS_SLASH:y,NO_DOT:$,NO_DOT_SLASH:x,NO_DOTS_SLASH:S,QMARK:H,QMARK_NO_DOT:v,STAR:d,START_ANCHOR:L}=R;const globstar=t=>`(${_}(?:(?!${L}${t.dot?y:h}).)*?)`;const T=u.dot?\"\":$;const O=u.dot?H:v;let k=u.bash===true?globstar(u):d;if(u.capture){k=`(${k})`}if(typeof u.noext===\"boolean\"){u.noextglob=u.noext}const m={input:t,index:-1,start:0,dot:u.dot===true,consumed:\"\",output:\"\",prefix:\"\",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:A};t=o.removePrefix(t,m);l=t.length;const w=[];const N=[];const I=[];let B=f;let G;const eos=()=>m.index===l-1;const D=m.peek=(e=1)=>t[m.index+e];const M=m.advance=()=>t[++m.index]||\"\";const remaining=()=>t.slice(m.index+1);const consume=(t=\"\",e=0)=>{m.consumed+=t;m.index+=e};const append=t=>{m.output+=t.output!=null?t.output:t.value;consume(t.value)};const negate=()=>{let t=1;while(D()===\"!\"&&(D(2)!==\"(\"||D(3)===\"?\")){M();m.start++;t++}if(t%2===0){return false}m.negated=true;m.start++;return true};const increment=t=>{m[t]++;I.push(t)};const decrement=t=>{m[t]--;I.pop()};const push=t=>{if(B.type===\"globstar\"){const e=m.braces>0&&(t.type===\"comma\"||t.type===\"brace\");const u=t.extglob===true||w.length&&(t.type===\"pipe\"||t.type===\"paren\");if(t.type!==\"slash\"&&t.type!==\"paren\"&&!e&&!u){m.output=m.output.slice(0,-B.output.length);B.type=\"star\";B.value=\"*\";B.output=k;m.output+=B.output}}if(w.length&&t.type!==\"paren\"){w[w.length-1].inner+=t.value}if(t.value||t.output)append(t);if(B&&B.type===\"text\"&&t.type===\"text\"){B.output=(B.output||B.value)+t.value;B.value+=t.value;return}t.prev=B;A.push(t);B=t};const extglobOpen=(t,e)=>{const n={...E[e],conditions:1,inner:\"\"};n.prev=B;n.parens=m.parens;n.output=m.output;const o=(u.capture?\"(\":\"\")+n.open;increment(\"parens\");push({type:t,value:e,output:m.output?\"\":C});push({type:\"paren\",extglob:true,value:M(),output:o});w.push(n)};const extglobClose=t=>{let n=t.close+(u.capture?\")\":\"\");let o;if(t.type===\"negate\"){let s=k;if(t.inner&&t.inner.length>1&&t.inner.includes(\"/\")){s=globstar(u)}if(s!==k||eos()||/^\\)+$/.test(remaining())){n=t.close=`)$))${s}`}if(t.inner.includes(\"*\")&&(o=remaining())&&/^\\.[^\\\\/.]+$/.test(o)){const u=parse(o,{...e,fastpaths:false}).output;n=t.close=`)${u})${s})`}if(t.prev.type===\"bos\"){m.negatedExtglob=true}}push({type:\"paren\",extglob:true,value:G,output:n});decrement(\"parens\")};if(u.fastpaths!==false&&!/(^[*!]|[/()[\\]{}\"])/.test(t)){let n=false;let s=t.replace(i,((t,e,u,o,s,r)=>{if(o===\"\\\\\"){n=true;return t}if(o===\"?\"){if(e){return e+o+(s?H.repeat(s.length):\"\")}if(r===0){return O+(s?H.repeat(s.length):\"\")}return H.repeat(u.length)}if(o===\".\"){return h.repeat(u.length)}if(o===\"*\"){if(e){return e+o+(s?k:\"\")}return k}return e?t:`\\\\${t}`}));if(n===true){if(u.unescape===true){s=s.replace(/\\\\/g,\"\")}else{s=s.replace(/\\\\+/g,(t=>t.length%2===0?\"\\\\\\\\\":t?\"\\\\\":\"\"))}}if(s===t&&u.contains===true){m.output=t;return m}m.output=o.wrapOutput(s,m,e);return m}while(!eos()){G=M();if(G===\"\\0\"){continue}if(G===\"\\\\\"){const t=D();if(t===\"/\"&&u.bash!==true){continue}if(t===\".\"||t===\";\"){continue}if(!t){G+=\"\\\\\";push({type:\"text\",value:G});continue}const e=/^\\\\+/.exec(remaining());let n=0;if(e&&e[0].length>2){n=e[0].length;m.index+=n;if(n%2!==0){G+=\"\\\\\"}}if(u.unescape===true){G=M()}else{G+=M()}if(m.brackets===0){push({type:\"text\",value:G});continue}}if(m.brackets>0&&(G!==\"]\"||B.value===\"[\"||B.value===\"[^\")){if(u.posix!==false&&G===\":\"){const t=B.value.slice(1);if(t.includes(\"[\")){B.posix=true;if(t.includes(\":\")){const t=B.value.lastIndexOf(\"[\");const e=B.value.slice(0,t);const u=B.value.slice(t+2);const n=r[u];if(n){B.value=e+n;m.backtrack=true;M();if(!f.output&&A.indexOf(B)===1){f.output=C}continue}}}}if(G===\"[\"&&D()!==\":\"||G===\"-\"&&D()===\"]\"){G=`\\\\${G}`}if(G===\"]\"&&(B.value===\"[\"||B.value===\"[^\")){G=`\\\\${G}`}if(u.posix===true&&G===\"!\"&&B.value===\"[\"){G=\"^\"}B.value+=G;append({value:G});continue}if(m.quotes===1&&G!=='\"'){G=o.escapeRegex(G);B.value+=G;append({value:G});continue}if(G==='\"'){m.quotes=m.quotes===1?0:1;if(u.keepQuotes===true){push({type:\"text\",value:G})}continue}if(G===\"(\"){increment(\"parens\");push({type:\"paren\",value:G});continue}if(G===\")\"){if(m.parens===0&&u.strictBrackets===true){throw new SyntaxError(syntaxError(\"opening\",\"(\"))}const t=w[w.length-1];if(t&&m.parens===t.parens+1){extglobClose(w.pop());continue}push({type:\"paren\",value:G,output:m.parens?\")\":\"\\\\)\"});decrement(\"parens\");continue}if(G===\"[\"){if(u.nobracket===true||!remaining().includes(\"]\")){if(u.nobracket!==true&&u.strictBrackets===true){throw new SyntaxError(syntaxError(\"closing\",\"]\"))}G=`\\\\${G}`}else{increment(\"brackets\")}push({type:\"bracket\",value:G});continue}if(G===\"]\"){if(u.nobracket===true||B&&B.type===\"bracket\"&&B.value.length===1){push({type:\"text\",value:G,output:`\\\\${G}`});continue}if(m.brackets===0){if(u.strictBrackets===true){throw new SyntaxError(syntaxError(\"opening\",\"[\"))}push({type:\"text\",value:G,output:`\\\\${G}`});continue}decrement(\"brackets\");const t=B.value.slice(1);if(B.posix!==true&&t[0]===\"^\"&&!t.includes(\"/\")){G=`/${G}`}B.value+=G;append({value:G});if(u.literalBrackets===false||o.hasRegexChars(t)){continue}const e=o.escapeRegex(B.value);m.output=m.output.slice(0,-B.value.length);if(u.literalBrackets===true){m.output+=e;B.value=e;continue}B.value=`(${_}${e}|${B.value})`;m.output+=B.value;continue}if(G===\"{\"&&u.nobrace!==true){increment(\"braces\");const t={type:\"brace\",value:G,output:\"(\",outputIndex:m.output.length,tokensIndex:m.tokens.length};N.push(t);push(t);continue}if(G===\"}\"){const t=N[N.length-1];if(u.nobrace===true||!t){push({type:\"text\",value:G,output:G});continue}let e=\")\";if(t.dots===true){const t=A.slice();const n=[];for(let e=t.length-1;e>=0;e--){A.pop();if(t[e].type===\"brace\"){break}if(t[e].type!==\"dots\"){n.unshift(t[e].value)}}e=expandRange(n,u);m.backtrack=true}if(t.comma!==true&&t.dots!==true){const u=m.output.slice(0,t.outputIndex);const n=m.tokens.slice(t.tokensIndex);t.value=t.output=\"\\\\{\";G=e=\"\\\\}\";m.output=u;for(const t of n){m.output+=t.output||t.value}}push({type:\"brace\",value:G,output:e});decrement(\"braces\");N.pop();continue}if(G===\"|\"){if(w.length>0){w[w.length-1].conditions++}push({type:\"text\",value:G});continue}if(G===\",\"){let t=G;const e=N[N.length-1];if(e&&I[I.length-1]===\"braces\"){e.comma=true;t=\"|\"}push({type:\"comma\",value:G,output:t});continue}if(G===\"/\"){if(B.type===\"dot\"&&m.index===m.start+1){m.start=m.index+1;m.consumed=\"\";m.output=\"\";A.pop();B=f;continue}push({type:\"slash\",value:G,output:b});continue}if(G===\".\"){if(m.braces>0&&B.type===\"dot\"){if(B.value===\".\")B.output=h;const t=N[N.length-1];B.type=\"dots\";B.output+=G;B.value+=G;t.dots=true;continue}if(m.braces+m.parens===0&&B.type!==\"bos\"&&B.type!==\"slash\"){push({type:\"text\",value:G,output:h});continue}push({type:\"dot\",value:G,output:h});continue}if(G===\"?\"){const t=B&&B.value===\"(\";if(!t&&u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){extglobOpen(\"qmark\",G);continue}if(B&&B.type===\"paren\"){const t=D();let e=G;if(B.value===\"(\"&&!/[!=<:]/.test(t)||t===\"<\"&&!/<([!=]|\\w+>)/.test(remaining())){e=`\\\\${G}`}push({type:\"text\",value:G,output:e});continue}if(u.dot!==true&&(B.type===\"slash\"||B.type===\"bos\")){push({type:\"qmark\",value:G,output:v});continue}push({type:\"qmark\",value:G,output:H});continue}if(G===\"!\"){if(u.noextglob!==true&&D()===\"(\"){if(D(2)!==\"?\"||!/[!=<:]/.test(D(3))){extglobOpen(\"negate\",G);continue}}if(u.nonegate!==true&&m.index===0){negate();continue}}if(G===\"+\"){if(u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){extglobOpen(\"plus\",G);continue}if(B&&B.value===\"(\"||u.regex===false){push({type:\"plus\",value:G,output:g});continue}if(B&&(B.type===\"bracket\"||B.type===\"paren\"||B.type===\"brace\")||m.parens>0){push({type:\"plus\",value:G});continue}push({type:\"plus\",value:g});continue}if(G===\"@\"){if(u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){push({type:\"at\",extglob:true,value:G,output:\"\"});continue}push({type:\"text\",value:G});continue}if(G!==\"*\"){if(G===\"$\"||G===\"^\"){G=`\\\\${G}`}const t=a.exec(remaining());if(t){G+=t[0];m.index+=t[0].length}push({type:\"text\",value:G});continue}if(B&&(B.type===\"globstar\"||B.star===true)){B.type=\"star\";B.star=true;B.value+=G;B.output=k;m.backtrack=true;m.globstar=true;consume(G);continue}let e=remaining();if(u.noextglob!==true&&/^\\([^?]/.test(e)){extglobOpen(\"star\",G);continue}if(B.type===\"star\"){if(u.noglobstar===true){consume(G);continue}const n=B.prev;const o=n.prev;const s=n.type===\"slash\"||n.type===\"bos\";const r=o&&(o.type===\"star\"||o.type===\"globstar\");if(u.bash===true&&(!s||e[0]&&e[0]!==\"/\")){push({type:\"star\",value:G,output:\"\"});continue}const a=m.braces>0&&(n.type===\"comma\"||n.type===\"brace\");const i=w.length&&(n.type===\"pipe\"||n.type===\"paren\");if(!s&&n.type!==\"paren\"&&!a&&!i){push({type:\"star\",value:G,output:\"\"});continue}while(e.slice(0,3)===\"/**\"){const u=t[m.index+4];if(u&&u!==\"/\"){break}e=e.slice(3);consume(\"/**\",3)}if(n.type===\"bos\"&&eos()){B.type=\"globstar\";B.value+=G;B.output=globstar(u);m.output=B.output;m.globstar=true;consume(G);continue}if(n.type===\"slash\"&&n.prev.type!==\"bos\"&&!r&&eos()){m.output=m.output.slice(0,-(n.output+B.output).length);n.output=`(?:${n.output}`;B.type=\"globstar\";B.output=globstar(u)+(u.strictSlashes?\")\":\"|$)\");B.value+=G;m.globstar=true;m.output+=n.output+B.output;consume(G);continue}if(n.type===\"slash\"&&n.prev.type!==\"bos\"&&e[0]===\"/\"){const t=e[1]!==void 0?\"|$\":\"\";m.output=m.output.slice(0,-(n.output+B.output).length);n.output=`(?:${n.output}`;B.type=\"globstar\";B.output=`${globstar(u)}${b}|${b}${t})`;B.value+=G;m.output+=n.output+B.output;m.globstar=true;consume(G+M());push({type:\"slash\",value:\"/\",output:\"\"});continue}if(n.type===\"bos\"&&e[0]===\"/\"){B.type=\"globstar\";B.value+=G;B.output=`(?:^|${b}|${globstar(u)}${b})`;m.output=B.output;m.globstar=true;consume(G+M());push({type:\"slash\",value:\"/\",output:\"\"});continue}m.output=m.output.slice(0,-B.output.length);B.type=\"globstar\";B.output=globstar(u);B.value+=G;m.output+=B.output;m.globstar=true;consume(G);continue}const n={type:\"star\",value:G,output:k};if(u.bash===true){n.output=\".*?\";if(B.type===\"bos\"||B.type===\"slash\"){n.output=T+n.output}push(n);continue}if(B&&(B.type===\"bracket\"||B.type===\"paren\")&&u.regex===true){n.output=G;push(n);continue}if(m.index===m.start||B.type===\"slash\"||B.type===\"dot\"){if(B.type===\"dot\"){m.output+=x;B.output+=x}else if(u.dot===true){m.output+=S;B.output+=S}else{m.output+=T;B.output+=T}if(D()!==\"*\"){m.output+=C;B.output+=C}}push(n)}while(m.brackets>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\"]\"));m.output=o.escapeLast(m.output,\"[\");decrement(\"brackets\")}while(m.parens>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\")\"));m.output=o.escapeLast(m.output,\"(\");decrement(\"parens\")}while(m.braces>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\"}\"));m.output=o.escapeLast(m.output,\"{\");decrement(\"braces\")}if(u.strictSlashes!==true&&(B.type===\"star\"||B.type===\"bracket\")){push({type:\"maybe_slash\",value:\"\",output:`${b}?`})}if(m.backtrack===true){m.output=\"\";for(const t of m.tokens){m.output+=t.output!=null?t.output:t.value;if(t.suffix){m.output+=t.suffix}}}return m};parse.fastpaths=(t,e)=>{const u={...e};const r=typeof u.maxLength===\"number\"?Math.min(s,u.maxLength):s;const a=t.length;if(a>r){throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${r}`)}t=c[t]||t;const{DOT_LITERAL:i,SLASH_LITERAL:p,ONE_CHAR:l,DOTS_SLASH:f,NO_DOT:A,NO_DOTS:_,NO_DOTS_SLASH:R,STAR:E,START_ANCHOR:h}=n.globChars(u.windows);const g=u.dot?_:A;const b=u.dot?R:A;const C=u.capture?\"\":\"?:\";const y={negated:false,prefix:\"\"};let $=u.bash===true?\".*?\":E;if(u.capture){$=`(${$})`}const globstar=t=>{if(t.noglobstar===true)return $;return`(${C}(?:(?!${h}${t.dot?f:i}).)*?)`};const create=t=>{switch(t){case\"*\":return`${g}${l}${$}`;case\".*\":return`${i}${l}${$}`;case\"*.*\":return`${g}${$}${i}${l}${$}`;case\"*/*\":return`${g}${$}${p}${l}${b}${$}`;case\"**\":return g+globstar(u);case\"**/*\":return`(?:${g}${globstar(u)}${p})?${b}${l}${$}`;case\"**/*.*\":return`(?:${g}${globstar(u)}${p})?${b}${$}${i}${l}${$}`;case\"**/.*\":return`(?:${g}${globstar(u)}${p})?${i}${l}${$}`;default:{const e=/^(.*?)\\.(\\w+)$/.exec(t);if(!e)return;const u=create(e[1]);if(!u)return;return u+i+e[2]}}};const x=o.removePrefix(t,y);let S=create(x);if(S&&u.strictSlashes!==true){S+=`${p}?`}return S};t.exports=parse},510:(t,e,u)=>{const n=u(716);const o=u(697);const s=u(96);const r=u(154);const isObject=t=>t&&typeof t===\"object\"&&!Array.isArray(t);const picomatch=(t,e,u=false)=>{if(Array.isArray(t)){const n=t.map((t=>picomatch(t,e,u)));const arrayMatcher=t=>{for(const e of n){const u=e(t);if(u)return u}return false};return arrayMatcher}const n=isObject(t)&&t.tokens&&t.input;if(t===\"\"||typeof t!==\"string\"&&!n){throw new TypeError(\"Expected pattern to be a non-empty string\")}const o=e||{};const s=o.windows;const r=n?picomatch.compileRe(t,e):picomatch.makeRe(t,e,false,true);const a=r.state;delete r.state;let isIgnored=()=>false;if(o.ignore){const t={...e,ignore:null,onMatch:null,onResult:null};isIgnored=picomatch(o.ignore,t,u)}const matcher=(u,n=false)=>{const{isMatch:i,match:c,output:p}=picomatch.test(u,r,e,{glob:t,posix:s});const l={glob:t,state:a,regex:r,posix:s,input:u,output:p,match:c,isMatch:i};if(typeof o.onResult===\"function\"){o.onResult(l)}if(i===false){l.isMatch=false;return n?l:false}if(isIgnored(u)){if(typeof o.onIgnore===\"function\"){o.onIgnore(l)}l.isMatch=false;return n?l:false}if(typeof o.onMatch===\"function\"){o.onMatch(l)}return n?l:true};if(u){matcher.state=a}return matcher};picomatch.test=(t,e,u,{glob:n,posix:o}={})=>{if(typeof t!==\"string\"){throw new TypeError(\"Expected input to be a string\")}if(t===\"\"){return{isMatch:false,output:\"\"}}const r=u||{};const a=r.format||(o?s.toPosixSlashes:null);let i=t===n;let c=i&&a?a(t):t;if(i===false){c=a?a(t):t;i=c===n}if(i===false||r.capture===true){if(r.matchBase===true||r.basename===true){i=picomatch.matchBase(t,e,u,o)}else{i=e.exec(c)}}return{isMatch:Boolean(i),match:i,output:c}};picomatch.matchBase=(t,e,u)=>{const n=e instanceof RegExp?e:picomatch.makeRe(e,u);return n.test(s.basename(t))};picomatch.isMatch=(t,e,u)=>picomatch(e,u)(t);picomatch.parse=(t,e)=>{if(Array.isArray(t))return t.map((t=>picomatch.parse(t,e)));return o(t,{...e,fastpaths:false})};picomatch.scan=(t,e)=>n(t,e);picomatch.compileRe=(t,e,u=false,n=false)=>{if(u===true){return t.output}const o=e||{};const s=o.contains?\"\":\"^\";const r=o.contains?\"\":\"$\";let a=`${s}(?:${t.output})${r}`;if(t&&t.negated===true){a=`^(?!${a}).*$`}const i=picomatch.toRegex(a,e);if(n===true){i.state=t}return i};picomatch.makeRe=(t,e={},u=false,n=false)=>{if(!t||typeof t!==\"string\"){throw new TypeError(\"Expected a non-empty string\")}let s={negated:false,fastpaths:true};if(e.fastpaths!==false&&(t[0]===\".\"||t[0]===\"*\")){s.output=o.fastpaths(t,e)}if(!s.output){s=o(t,e)}return picomatch.compileRe(s,e,u,n)};picomatch.toRegex=(t,e)=>{try{const u=e||{};return new RegExp(t,u.flags||(u.nocase?\"i\":\"\"))}catch(t){if(e&&e.debug===true)throw t;return/$^/}};picomatch.constants=r;t.exports=picomatch},716:(t,e,u)=>{const n=u(96);const{CHAR_ASTERISK:o,CHAR_AT:s,CHAR_BACKWARD_SLASH:r,CHAR_COMMA:a,CHAR_DOT:i,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:p,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:f,CHAR_LEFT_SQUARE_BRACKET:A,CHAR_PLUS:_,CHAR_QUESTION_MARK:R,CHAR_RIGHT_CURLY_BRACE:E,CHAR_RIGHT_PARENTHESES:h,CHAR_RIGHT_SQUARE_BRACKET:g}=u(154);const isPathSeparator=t=>t===p||t===r;const depth=t=>{if(t.isPrefix!==true){t.depth=t.isGlobstar?Infinity:1}};const scan=(t,e)=>{const u=e||{};const b=t.length-1;const C=u.parts===true||u.scanToEnd===true;const y=[];const $=[];const x=[];let S=t;let H=-1;let v=0;let d=0;let L=false;let T=false;let O=false;let k=false;let m=false;let w=false;let N=false;let I=false;let B=false;let G=false;let D=0;let M;let P;let K={value:\"\",depth:0,isGlob:false};const eos=()=>H>=b;const peek=()=>S.charCodeAt(H+1);const advance=()=>{M=P;return S.charCodeAt(++H)};while(H<b){P=advance();let t;if(P===r){N=K.backslashes=true;P=advance();if(P===l){w=true}continue}if(w===true||P===l){D++;while(eos()!==true&&(P=advance())){if(P===r){N=K.backslashes=true;advance();continue}if(P===l){D++;continue}if(w!==true&&P===i&&(P=advance())===i){L=K.isBrace=true;O=K.isGlob=true;G=true;if(C===true){continue}break}if(w!==true&&P===a){L=K.isBrace=true;O=K.isGlob=true;G=true;if(C===true){continue}break}if(P===E){D--;if(D===0){w=false;L=K.isBrace=true;G=true;break}}}if(C===true){continue}break}if(P===p){y.push(H);$.push(K);K={value:\"\",depth:0,isGlob:false};if(G===true)continue;if(M===i&&H===v+1){v+=2;continue}d=H+1;continue}if(u.noext!==true){const t=P===_||P===s||P===o||P===R||P===c;if(t===true&&peek()===f){O=K.isGlob=true;k=K.isExtglob=true;G=true;if(P===c&&H===v){B=true}if(C===true){while(eos()!==true&&(P=advance())){if(P===r){N=K.backslashes=true;P=advance();continue}if(P===h){O=K.isGlob=true;G=true;break}}continue}break}}if(P===o){if(M===o)m=K.isGlobstar=true;O=K.isGlob=true;G=true;if(C===true){continue}break}if(P===R){O=K.isGlob=true;G=true;if(C===true){continue}break}if(P===A){while(eos()!==true&&(t=advance())){if(t===r){N=K.backslashes=true;advance();continue}if(t===g){T=K.isBracket=true;O=K.isGlob=true;G=true;break}}if(C===true){continue}break}if(u.nonegate!==true&&P===c&&H===v){I=K.negated=true;v++;continue}if(u.noparen!==true&&P===f){O=K.isGlob=true;if(C===true){while(eos()!==true&&(P=advance())){if(P===f){N=K.backslashes=true;P=advance();continue}if(P===h){G=true;break}}continue}break}if(O===true){G=true;if(C===true){continue}break}}if(u.noext===true){k=false;O=false}let U=S;let X=\"\";let F=\"\";if(v>0){X=S.slice(0,v);S=S.slice(v);d-=v}if(U&&O===true&&d>0){U=S.slice(0,d);F=S.slice(d)}else if(O===true){U=\"\";F=S}else{U=S}if(U&&U!==\"\"&&U!==\"/\"&&U!==S){if(isPathSeparator(U.charCodeAt(U.length-1))){U=U.slice(0,-1)}}if(u.unescape===true){if(F)F=n.removeBackslashes(F);if(U&&N===true){U=n.removeBackslashes(U)}}const Q={prefix:X,input:t,start:v,base:U,glob:F,isBrace:L,isBracket:T,isGlob:O,isExtglob:k,isGlobstar:m,negated:I,negatedExtglob:B};if(u.tokens===true){Q.maxDepth=0;if(!isPathSeparator(P)){$.push(K)}Q.tokens=$}if(u.parts===true||u.tokens===true){let e;for(let n=0;n<y.length;n++){const o=e?e+1:v;const s=y[n];const r=t.slice(o,s);if(u.tokens){if(n===0&&v!==0){$[n].isPrefix=true;$[n].value=X}else{$[n].value=r}depth($[n]);Q.maxDepth+=$[n].depth}if(n!==0||r!==\"\"){x.push(r)}e=s}if(e&&e+1<t.length){const n=t.slice(e+1);x.push(n);if(u.tokens){$[$.length-1].value=n;depth($[$.length-1]);Q.maxDepth+=$[$.length-1].depth}}Q.slashes=y;Q.parts=x}return Q};t.exports=scan},96:(t,e,u)=>{const{REGEX_BACKSLASH:n,REGEX_REMOVE_BACKSLASH:o,REGEX_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_GLOBAL:r}=u(154);e.isObject=t=>t!==null&&typeof t===\"object\"&&!Array.isArray(t);e.hasRegexChars=t=>s.test(t);e.isRegexChar=t=>t.length===1&&e.hasRegexChars(t);e.escapeRegex=t=>t.replace(r,\"\\\\$1\");e.toPosixSlashes=t=>t.replace(n,\"/\");e.removeBackslashes=t=>t.replace(o,(t=>t===\"\\\\\"?\"\":t));e.escapeLast=(t,u,n)=>{const o=t.lastIndexOf(u,n);if(o===-1)return t;if(t[o-1]===\"\\\\\")return e.escapeLast(t,u,o-1);return`${t.slice(0,o)}\\\\${t.slice(o)}`};e.removePrefix=(t,e={})=>{let u=t;if(u.startsWith(\"./\")){u=u.slice(2);e.prefix=\"./\"}return u};e.wrapOutput=(t,e={},u={})=>{const n=u.contains?\"\":\"^\";const o=u.contains?\"\":\"$\";let s=`${n}(?:${t})${o}`;if(e.negated===true){s=`(?:^(?!${s}).*$)`}return s};e.basename=(t,{windows:e}={})=>{const u=t.split(e?/[\\\\/]/:\"/\");const n=u[u.length-1];if(n===\"\"){return u[u.length-2]}return n}}};var e={};function __nccwpck_require__(u){var n=e[u];if(n!==undefined){return n.exports}var o=e[u]={exports:{}};var s=true;try{t[u](o,o.exports,__nccwpck_require__);s=false}finally{if(s)delete e[u]}return o.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var u=__nccwpck_require__(170);module.exports=u})();","import type { LocalPattern } from './image-config'\nimport { makeRe } from 'next/dist/compiled/picomatch'\n\n// Modifying this function should also modify writeImagesManifest()\nexport function matchLocalPattern(pattern: LocalPattern, url: URL): boolean {\n if (pattern.search !== undefined) {\n if (pattern.search !== url.search) {\n return false\n }\n }\n\n if (!makeRe(pattern.pathname ?? '**', { dot: true }).test(url.pathname)) {\n return false\n }\n\n return true\n}\n\nexport function hasLocalMatch(\n localPatterns: LocalPattern[] | undefined,\n urlPathAndQuery: string\n): boolean {\n if (!localPatterns) {\n // if the user didn't define \"localPatterns\", we allow all local images\n return true\n }\n const url = new URL(urlPathAndQuery, 'http://n')\n return localPatterns.some((p) => matchLocalPattern(p, url))\n}\n","import type { RemotePattern } from './image-config'\nimport { makeRe } from 'next/dist/compiled/picomatch'\n\n// Modifying this function should also modify writeImagesManifest()\nexport function matchRemotePattern(\n pattern: RemotePattern | URL,\n url: URL\n): boolean {\n if (pattern.protocol !== undefined) {\n if (pattern.protocol.replace(/:$/, '') !== url.protocol.replace(/:$/, '')) {\n return false\n }\n }\n if (pattern.port !== undefined) {\n if (pattern.port !== url.port) {\n return false\n }\n }\n\n if (pattern.hostname === undefined) {\n throw new Error(\n `Pattern should define hostname but found\\n${JSON.stringify(pattern)}`\n )\n } else {\n if (!makeRe(pattern.hostname).test(url.hostname)) {\n return false\n }\n }\n\n if (pattern.search !== undefined) {\n if (pattern.search !== url.search) {\n return false\n }\n }\n\n // Should be the same as writeImagesManifest()\n if (!makeRe(pattern.pathname ?? '**', { dot: true }).test(url.pathname)) {\n return false\n }\n\n return true\n}\n\nexport function hasRemoteMatch(\n domains: string[],\n remotePatterns: Array<RemotePattern | URL>,\n url: URL\n): boolean {\n return (\n domains.some((domain) => url.hostname === domain) ||\n remotePatterns.some((p) => matchRemotePattern(p, url))\n )\n}\n","import type { ImageLoaderPropsWithConfig } from './image-config'\n\nconst DEFAULT_Q = 75\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('./match-local-pattern') as typeof import('./match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('./match-remote-pattern') as typeof import('./match-remote-pattern')\n if (\n !hasRemoteMatch(config.domains!, config.remotePatterns!, parsedSrc)\n ) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n\n if (quality && config.qualities && !config.qualities.includes(quality)) {\n throw new Error(\n `Invalid quality prop (${quality}) on \\`next/image\\` does not match \\`images.qualities\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n }\n\n const q =\n quality ||\n config.qualities?.reduce((prev, cur) =>\n Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q) ? cur : prev\n ) ||\n DEFAULT_Q\n\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${\n src.startsWith('/_next/static/media/') && process.env.NEXT_DEPLOYMENT_ID\n ? `&dpl=${process.env.NEXT_DEPLOYMENT_ID}`\n : ''\n }`\n}\n\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true\n\nexport default defaultLoader\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n forwardRef,\n use,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Head from '../shared/lib/head'\nimport { getImgProps } from '../shared/lib/get-img-props'\nimport type {\n ImageProps,\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from '../shared/lib/get-img-props'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n} from '../shared/lib/image-config'\nimport { imageConfigDefault } from '../shared/lib/image-config'\nimport { ImageConfigContext } from '../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../shared/lib/utils/warn-once'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\nimport { useMergedRef } from './use-merged-ref'\n\n// This is replaced by webpack define plugin\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nexport type { ImageLoaderProps }\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\ntype ImageElementProps = ImgProps & {\n unoptimized: boolean\n placeholder: PlaceholderValue\n onLoadRef: React.MutableRefObject<OnLoad | undefined>\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>\n setBlurComplete: (b: boolean) => void\n setShowAltText: (b: boolean) => void\n sizesInput: string | undefined\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n placeholder: PlaceholderValue,\n onLoadRef: React.MutableRefObject<OnLoad | undefined>,\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>,\n setBlurComplete: (b: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined\n) {\n const src = img?.src\n if (!img || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true)\n }\n if (onLoadRef?.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load')\n Object.defineProperty(event, 'target', { writable: false, value: img })\n let prevented = false\n let stopped = false\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: () => prevented,\n isPropagationStopped: () => stopped,\n persist: () => {},\n preventDefault: () => {\n prevented = true\n event.preventDefault()\n },\n stopPropagation: () => {\n stopped = true\n event.stopPropagation()\n },\n })\n }\n if (onLoadingCompleteRef?.current) {\n onLoadingCompleteRef.current(img)\n }\n if (process.env.NODE_ENV !== 'production') {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n } else {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement)\n const valid = ['absolute', 'fixed', 'relative']\n if (!valid.includes(position)) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and parent element with invalid \"position\". Provided \"${position}\" should be one of ${valid\n .map(String)\n .join(',')}.`\n )\n }\n }\n if (img.height === 0) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`\n )\n }\n }\n\n const heightModified =\n img.height.toString() !== img.getAttribute('height')\n const widthModified = img.width.toString() !== img.getAttribute('width')\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n warnOnce(\n `Image with src \"${origSrc}\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: \"auto\"' or 'height: \"auto\"' to maintain the aspect ratio.`\n )\n }\n }\n })\n}\n\nfunction getDynamicProps(\n fetchPriority?: string\n): Record<string, string | undefined> {\n if (Boolean(use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return { fetchPriority }\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return { fetchpriority: fetchPriority }\n}\n\nconst ImageElement = forwardRef<HTMLImageElement | null, ImageElementProps>(\n (\n {\n src,\n srcSet,\n sizes,\n height,\n width,\n decoding,\n className,\n style,\n fetchPriority,\n placeholder,\n loading,\n unoptimized,\n fill,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n sizesInput,\n onLoad,\n onError,\n ...rest\n },\n forwardedRef\n ) => {\n const ownRef = useCallback(\n (img: ImgElementWithDataProp | null) => {\n if (!img) {\n return\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n if (img.getAttribute('alt') === null) {\n console.error(\n `Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.`\n )\n }\n }\n if (img.complete) {\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }\n },\n [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput,\n ]\n )\n\n const ref = useMergedRef(forwardedRef, ownRef)\n\n return (\n <img\n {...rest}\n {...getDynamicProps(fetchPriority)}\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading={loading}\n width={width}\n height={height}\n decoding={decoding}\n data-nimg={fill ? 'fill' : '1'}\n className={className}\n style={style}\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes={sizes}\n srcSet={srcSet}\n src={src}\n ref={ref}\n onLoad={(event) => {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }}\n onError={(event) => {\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true)\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n )\n }\n)\n\nfunction ImagePreload({\n isAppRouter,\n imgAttributes,\n}: {\n isAppRouter: boolean\n imgAttributes: ImgProps\n}) {\n const opts: ReactDOM.PreloadOptions = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority),\n }\n\n if (isAppRouter && ReactDOM.preload) {\n ReactDOM.preload(imgAttributes.src, opts)\n return null\n }\n\n return (\n <Head>\n <link\n key={\n '__nimg-' +\n imgAttributes.src +\n imgAttributes.srcSet +\n imgAttributes.sizes\n }\n rel=\"preload\"\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href={imgAttributes.srcSet ? undefined : imgAttributes.src}\n {...opts}\n />\n </Head>\n )\n}\n\n/**\n * The `Image` component is used to optimize images.\n *\n * Read more: [Next.js docs: `Image`](https://nextjs.org/docs/app/api-reference/components/image)\n */\nexport const Image = forwardRef<HTMLImageElement | null, ImageProps>(\n (props, forwardedRef) => {\n const pagesRouter = useContext(RouterContext)\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter\n\n const configContext = useContext(ImageConfigContext)\n const config = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return { ...c, allSizes, deviceSizes, qualities }\n }, [configContext])\n\n const { onLoad, onLoadingComplete } = props\n const onLoadRef = useRef(onLoad)\n\n useEffect(() => {\n onLoadRef.current = onLoad\n }, [onLoad])\n\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [showAltText, setShowAltText] = useState(false)\n\n const { props: imgAttributes, meta: imgMeta } = getImgProps(props, {\n defaultLoader,\n imgConf: config,\n blurComplete,\n showAltText,\n })\n\n return (\n <>\n {\n <ImageElement\n {...imgAttributes}\n unoptimized={imgMeta.unoptimized}\n placeholder={imgMeta.placeholder}\n fill={imgMeta.fill}\n onLoadRef={onLoadRef}\n onLoadingCompleteRef={onLoadingCompleteRef}\n setBlurComplete={setBlurComplete}\n setShowAltText={setShowAltText}\n sizesInput={props.sizes}\n ref={forwardedRef}\n />\n }\n {imgMeta.priority ? (\n <ImagePreload\n isAppRouter={isAppRouter}\n imgAttributes={imgAttributes}\n />\n ) : null}\n </>\n )\n }\n)\n","import type { ImageConfigComplete, ImageLoaderProps } from './image-config'\nimport type { ImageProps, ImageLoader, StaticImageData } from './get-img-props'\n\nimport { getImgProps } from './get-img-props'\nimport { Image } from '../../client/image-component'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\n\n/**\n * For more advanced use cases, you can call `getImageProps()`\n * to get the props that would be passed to the underlying `<img>` element,\n * and instead pass to them to another component, style, canvas, etc.\n *\n * Read more: [Next.js docs: `getImageProps`](https://nextjs.org/docs/app/api-reference/components/image#getimageprops)\n */\nexport function getImageProps(imgProps: ImageProps) {\n const { props } = getImgProps(imgProps, {\n defaultLoader,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete,\n })\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)) {\n if (value === undefined) {\n delete props[key as keyof typeof props]\n }\n }\n return { props }\n}\n\nexport default Image\n\nexport type { ImageProps, ImageLoaderProps, ImageLoader, StaticImageData }\n","module.exports = require('./dist/shared/lib/image-external')\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { toast } from 'sonner'\r\n\r\ntype UseCopyToClipboardProps = {\r\n text: string\r\n copyMessage?: string\r\n}\r\n\r\nexport function useCopyToClipboard({\r\n text,\r\n copyMessage = 'Copied to clipboard!'\r\n}: UseCopyToClipboardProps) {\r\n const [isCopied, setIsCopied] = useState(false)\r\n\r\n useEffect(() => {\r\n if (isCopied) {\r\n const timer = setTimeout(() => {\r\n setIsCopied(false)\r\n }, 2000)\r\n return () => clearTimeout(timer)\r\n }\r\n return undefined\r\n }, [isCopied])\r\n\r\n const handleCopy = useCallback(() => {\r\n navigator.clipboard\r\n .writeText(text)\r\n .then(() => {\r\n toast.success(copyMessage)\r\n setIsCopied(true)\r\n })\r\n .catch(() => {\r\n toast.error('Failed to copy to clipboard.', {\r\n style: {\r\n color: 'red'\r\n }\r\n })\r\n })\r\n }, [text, copyMessage])\r\n\r\n return { isCopied, handleCopy }\r\n}\r\n","import { useEffect, useRef, useState } from 'react'\r\n\r\n// How many pixels from the bottom of the container to enable auto-scroll\r\nconst ACTIVATION_THRESHOLD = 50\r\n// Minimum pixels of scroll-up movement required to disable auto-scroll\r\nconst MIN_SCROLL_UP_THRESHOLD = 10\r\n\r\nexport function useAutoScroll(dependencies: React.DependencyList) {\r\n const containerRef = useRef<HTMLDivElement | null>(null)\r\n const previousScrollTop = useRef<number | null>(null)\r\n const [shouldAutoScroll, setShouldAutoScroll] = useState(true)\r\n\r\n const scrollToBottom = () => {\r\n if (containerRef.current) {\r\n containerRef.current.scrollTop = containerRef.current.scrollHeight\r\n }\r\n }\r\n\r\n const handleScroll = () => {\r\n if (containerRef.current) {\r\n const { scrollTop, scrollHeight, clientHeight } = containerRef.current\r\n\r\n const distanceFromBottom = Math.abs(scrollHeight - scrollTop - clientHeight)\r\n\r\n const isScrollingUp = previousScrollTop.current\r\n ? scrollTop < previousScrollTop.current\r\n : false\r\n\r\n const scrollUpDistance = previousScrollTop.current ? previousScrollTop.current - scrollTop : 0\r\n\r\n const isDeliberateScrollUp = isScrollingUp && scrollUpDistance > MIN_SCROLL_UP_THRESHOLD\r\n\r\n if (isDeliberateScrollUp) {\r\n setShouldAutoScroll(false)\r\n } else {\r\n const isScrolledToBottom = distanceFromBottom < ACTIVATION_THRESHOLD\r\n setShouldAutoScroll(isScrolledToBottom)\r\n }\r\n\r\n previousScrollTop.current = scrollTop\r\n }\r\n }\r\n\r\n const handleTouchStart = () => {\r\n setShouldAutoScroll(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (containerRef.current) {\r\n previousScrollTop.current = containerRef.current.scrollTop\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (shouldAutoScroll) {\r\n scrollToBottom()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, dependencies)\r\n\r\n return {\r\n containerRef,\r\n scrollToBottom,\r\n handleScroll,\r\n shouldAutoScroll,\r\n handleTouchStart\r\n }\r\n}\r\n","import { useLayoutEffect, useRef } from 'react'\r\n\r\ninterface UseAutosizeTextAreaProps {\r\n ref: React.RefObject<HTMLTextAreaElement>\r\n maxHeight?: number\r\n borderWidth?: number\r\n dependencies: React.DependencyList\r\n}\r\n\r\nexport function useAutosizeTextArea({\r\n ref,\r\n maxHeight = Number.MAX_SAFE_INTEGER,\r\n borderWidth = 0,\r\n dependencies\r\n}: UseAutosizeTextAreaProps) {\r\n const originalHeight = useRef<number | null>(null)\r\n\r\n useLayoutEffect(() => {\r\n if (!ref.current) return\r\n\r\n const currentRef = ref.current\r\n const borderAdjustment = borderWidth * 2\r\n\r\n // 1. 在计算前隐藏滚动条,防止闪烁\r\n currentRef.style.overflow = 'hidden'\r\n\r\n if (originalHeight.current === null) {\r\n originalHeight.current = currentRef.scrollHeight - borderAdjustment\r\n }\r\n\r\n // 重置高度以获取准确的 scrollHeight\r\n currentRef.style.removeProperty('height')\r\n const scrollHeight = currentRef.scrollHeight\r\n\r\n const clampedToMax = Math.min(scrollHeight, maxHeight)\r\n const clampedToMin = Math.max(clampedToMax, originalHeight.current)\r\n\r\n // 设置新的高度\r\n currentRef.style.height = `${clampedToMin + borderAdjustment}px`\r\n\r\n // 2. 恢复 overflow 属性,以便在达到 maxHeight 后可以滚动\r\n currentRef.style.overflow = 'auto'\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [maxHeight, borderWidth, ref, ...dependencies]) // 别忘了把 borderWidth 加入依赖项\r\n}\r\n","import * as React from 'react'\r\n\r\nconst MOBILE_BREAKPOINT = 768\r\n\r\nconst getIsMobile = () => {\r\n if (typeof window === 'undefined') return false\r\n return window.innerWidth < MOBILE_BREAKPOINT\r\n}\r\n\r\nexport function useIsMobile() {\r\n const [isMobile, setIsMobile] = React.useState<boolean>(getIsMobile)\r\n\r\n React.useEffect(() => {\r\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\r\n const onChange = () => {\r\n setIsMobile(mql.matches)\r\n }\r\n onChange()\r\n mql.addEventListener('change', onChange)\r\n return () => mql.removeEventListener('change', onChange)\r\n }, [])\r\n\r\n return isMobile\r\n}\r\n","import * as React from 'react'\r\n\r\nconst NARROW_BREAKPOINT = 1280\r\n\r\nconst getIsNarrow = () => {\r\n if (typeof window === 'undefined') return false\r\n return window.innerWidth < NARROW_BREAKPOINT\r\n}\r\n\r\nexport function useIsNarrow() {\r\n const [isNarrow, setIsNarrow] = React.useState<boolean>(getIsNarrow)\r\n\r\n React.useEffect(() => {\r\n const mql = window.matchMedia(`(max-width: ${NARROW_BREAKPOINT - 1}px)`)\r\n const onChange = () => {\r\n setIsNarrow(mql.matches)\r\n }\r\n onChange()\r\n mql.addEventListener('change', onChange)\r\n return () => mql.removeEventListener('change', onChange)\r\n }, [])\r\n\r\n return isNarrow\r\n}\r\n","import { clsx, type ClassValue } from 'clsx'\r\nimport { twMerge } from 'tailwind-merge'\r\n\r\n/**\r\n * 合并 Tailwind CSS 类名的工具函数\r\n * 结合 clsx 和 tailwind-merge,避免类名冲突\r\n */\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n","import { cva } from 'class-variance-authority'\r\n\r\n/**\r\n * Button 样式变体\r\n *\r\n * 直接使用 nextify-coo globals.css 中定义的按钮样式类\r\n */\r\nexport const buttonVariants = cva(\r\n // 基础类:使用 Tailwind 工具类 + 通用样式\r\n 'cursor-pointer inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-button-radius text-sm font-medium transition-all duration-200 disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\r\n {\r\n variants: {\r\n variant: {\r\n // default: 'default-button',\r\n default: 'outline-button', // 默认按钮样式\r\n defaultShade: 'default-shade-button',// 默认阴影按钮样式 (globals.css:1210)\r\n submit: 'submit-rect-button', // 提交按钮样式 (globals.css:1229)\r\n submitRect: 'submit2-rect-button w-10 h-10', // 提交矩形按钮样式\r\n submitGenerate: 'submit2-rect-button',// 生成提交按钮样式 (globals.css:1250)\r\n outline: 'outline-button', // 轮廓按钮样式 (globals.css:1268)\r\n ghost: 'outline-button', // 幽灵按钮样式\r\n outlineRect: 'outline-button w-10 h-10', // 轮廓矩形按钮\r\n colourful: 'gradient-btn', // 彩色渐变按钮\r\n primary: 'primary-button', // 主要按钮样式 (globals.css:1288)\r\n chrome: 'chrome-button !h-11', // Chrome 风格按钮 (globals.css:1301)\r\n lightColor: 'lightColor-button h-10',// 浅色按钮样式 (globals.css:1351)\r\n close: 'close-button', // 关闭按钮样式 (globals.css:1316)\r\n destructive: 'danger-button', // 危险按钮样式 (globals.css:1331)\r\n lightBlue: 'light-blue-button', // 浅蓝按钮样式 (globals.css:1361)\r\n pricePrimary: 'price-primary-button',// 价格主按钮样式 (globals.css:1374)\r\n none: '', // 无样式\r\n\r\n // 下面的暂时待删除\r\n // destructive:\r\n // 'bg-gradient-to-b from-[#E36323] to-[#DF5A18] hover:from-[#F9712D] text-background shadow-[inset_0_1px_0_0_rgba(255,255,255,0.33),0_0_0_1px_#BF4A0F,0_3px_4px_-1px_rgba(252,96,16,0.95)] hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.33),0_0_0_1px_#BF4A0F,0_3px_4px_-1px_rgba(226,79,5,0.95)]',\r\n // outline:\r\n // 'text-foreground bg-gradient-gray hover:bg-[linear-gradient(180deg,rgba(229,229,229,0.8)_0%,#E2E2E2_100%),linear-gradient(0deg,rgba(255,255,255,0.4),rgba(255,255,255,0.4))] active:bg-foreground/4 shadow-[0px_0px_0px_1px_rgba(212,212,212,1),inset_0px_1px_0px_0px_rgba(255,255,255,0.33),0px_3px_4px_-1px_rgba(0,0,0,0.15)] hover:shadow-[0px_0px_0px_1px_rgba(230,230,230,1),inset_0px_1px_0px_0px_rgba(255,255,255,0.7),0px_3px_8px_-2px_rgba(0,0,0,0.3)]',\r\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\r\n // ghost: 'hover:bg-foreground/8 hover:text-foreground active:bg-foreground/4',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n neutral: 'bg-white/5 text-foreground shadow-sm hover:bg-white/10 active:bg-white/3',\r\n empty: 'text-white hover:bg-[#1B1B1B]',\r\n green: 'bg-[#16613B] text-white hover:opacity-80',\r\n cancel: 'text-white border border-primary hover:bg-[#1B1B1B]',\r\n darkgray: 'bg-[#242424] text-white hover:bg-[#242424]/80 rounded-normal',\r\n white: 'bg-white text-black hover:bg-white/80',\r\n },\r\n size: {\r\n default: 'h-10 px-5 py-[10px]',\r\n sm: 'h-9 px-5 py-2',\r\n lg: 'h-11 rounded-normal px-8',\r\n icon: 'h-9 w-9'\r\n }\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'default'\r\n }\r\n }\r\n)\r\n","import * as React from 'react'\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { buttonVariants } from './button.styles'\r\nimport type { ButtonProps } from './button.types'\r\nimport { cn } from '@/lib/cn'\r\nimport { Loader2 } from 'lucide-react'\r\n\r\n/**\r\n * Button 组件\r\n *\r\n * 基于 Radix UI Slot 实现的按钮组件,支持多种变体和尺寸\r\n * 支持 asChild 模式用于组合其他组件\r\n * 支持 loading 状态显示加载图标\r\n */\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n (\r\n {\r\n className,\r\n variant,\r\n size,\r\n asChild = false,\r\n loading = false,\r\n children,\r\n disabled,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const Comp = asChild ? Slot : 'button'\r\n\r\n const content = loading ? (\r\n <>\r\n <Loader2 className=\"animate-spin\" />\r\n {children}\r\n </>\r\n ) : (\r\n children\r\n )\r\n\r\n const finalContent =\r\n asChild && loading ? <span className=\"inline-flex items-center gap-2\">{content}</span> : content\r\n\r\n return (\r\n <Comp\r\n className={cn(buttonVariants({ variant, size }), className)}\r\n ref={ref}\r\n disabled={disabled || loading}\r\n {...props}\r\n >\r\n {finalContent}\r\n </Comp>\r\n )\r\n }\r\n)\r\n\r\nButton.displayName = 'Button'\r\n\r\nexport { Button }\r\n","import * as React from 'react'\r\nimport { Eye, EyeOff } from 'lucide-react'\r\nimport { cn } from '@/lib/cn'\r\nimport type { InputProps } from './input.types'\r\nimport { useState } from 'react'\r\n\r\n/**\r\n * Input 组件\r\n *\r\n * 支持密码显示/隐藏切换\r\n * 支持前缀和后缀图标\r\n */\r\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\r\n ({ className, type, prependIcon, suffixIcon, ...props }, ref) => {\r\n const [isPasswordVisible, setIsPasswordVisible] = useState(type !== 'password')\r\n\r\n const togglePasswordVisibility = () => {\r\n setIsPasswordVisible(!isPasswordVisible)\r\n }\r\n\r\n return (\r\n <div className=\"relative\">\r\n <input\r\n type={isPasswordVisible ? 'text' : 'password'}\r\n className={cn(\r\n 'flex h-12 w-full rounded-normal text-input-foreground border border-border bg-input-bg py-3 text-base transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-input-placeholder placeholder:text-sm placeholder:font-medium disabled:cursor-not-allowed disabled:opacity-50 md:text-sm input-shadow focus-visible:outline-none',\r\n `${type === 'password' ? 'pl-6 pr-10' : 'px-6'}`,\r\n `${prependIcon ? suffixIcon ? 'pl-10 pr-10' : 'pl-10 pr-6' : suffixIcon ? 'pl-6 pr-10' : 'px-6' }`,\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n />\r\n {type === 'password' && (\r\n <span\r\n className=\"absolute right-[14px] top-1/2 transform -translate-y-1/2 cursor-pointer\"\r\n onClick={togglePasswordVisibility}\r\n >\r\n {isPasswordVisible ? (\r\n <EyeOff size={16} color={'var(--input-icon)'} />\r\n ) : (\r\n <Eye size={16} color={'var(--input-icon)'} />\r\n )}\r\n </span>\r\n )}\r\n {prependIcon && (\r\n <span className=\"absolute left-[14px] top-1/2 transform -translate-y-1/2 cursor-pointer\">\r\n {prependIcon}\r\n </span>\r\n )}\r\n {suffixIcon && (\r\n <span className=\"absolute right-[14px] top-1/2 transform -translate-y-1/2 cursor-pointer\">\r\n {suffixIcon}\r\n </span>\r\n )}\r\n </div>\r\n )\r\n }\r\n)\r\nInput.displayName = 'Input'\r\n\r\n/**\r\n * EditInput 组件\r\n *\r\n * 深色主题的输入框,用于编辑场景\r\n * 与 nextify-coo 中的 EditInput 保持一致\r\n */\r\nconst EditInput = React.forwardRef<HTMLInputElement, React.ComponentProps<'input'>>(\r\n ({ className, type, ...props }, ref) => {\r\n return (\r\n <input\r\n type={type}\r\n className={cn(\r\n 'file:text-foreground placeholder:text-muted-foreground bg-[#242424] flex h-9 w-full min-w-0 rounded-normal border px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm text-white border-zinc-700',\r\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\r\n 'aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\r\n // 隐藏数字输入框的上下控件\r\n '[&[type=number]]:[-moz-appearance:textfield] [&[type=number]]:[&::-webkit-outer-spin-button]:appearance-none [&[type=number]]:[&::-webkit-inner-spin-button]:appearance-none',\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nEditInput.displayName = 'Input'\r\n\r\nexport { Input, EditInput }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as LabelPrimitive from '@radix-ui/react-label'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst labelVariants = cva(\r\n 'text-sm text-foreground font-normal inline-block peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\r\n)\r\n\r\nconst Label = React.forwardRef<\r\n React.ElementRef<typeof LabelPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\r\n>(({ className, ...props }, ref) => (\r\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\r\n))\r\nLabel.displayName = LabelPrimitive.Root.displayName\r\n\r\nexport { Label }\r\n","import * as React from 'react'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst badgeVariants = cva(\r\n 'inline-flex items-center rounded-normal border px-2.5 py-0.5 text-xs font-medium transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:opacity-80',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'badge-default',\r\n secondary: 'badge-secondary',\r\n destructive: 'badge-destructive',\r\n outline: 'badge-outline'\r\n }\r\n },\r\n defaultVariants: {\r\n variant: 'default'\r\n }\r\n }\r\n)\r\n\r\nexport interface BadgeProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof badgeVariants> {}\r\n\r\nfunction Badge({ className, variant, ...props }: BadgeProps) {\r\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />\r\n}\r\n\r\nexport { Badge, badgeVariants }\r\n","import * as React from 'react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'rounded-card-radius border border-border bg-card text-card-foreground default-card-shadow',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n)\r\nCard.displayName = 'Card'\r\n\r\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\r\n )\r\n)\r\nCardHeader.displayName = 'CardHeader'\r\n\r\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('font-medium leading-none', className)} {...props} />\r\n )\r\n)\r\nCardTitle.displayName = 'CardTitle'\r\n\r\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('text-sm text-secondary-foreground', className)} {...props} />\r\n )\r\n)\r\nCardDescription.displayName = 'CardDescription'\r\n\r\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\r\n )\r\n)\r\nCardContent.displayName = 'CardContent'\r\n\r\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\r\n )\r\n)\r\nCardFooter.displayName = 'CardFooter'\r\n\r\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\r\nimport { Check } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Checkbox = React.forwardRef<\r\n React.ElementRef<typeof CheckboxPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <CheckboxPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n 'peer h-4 w-4 shrink-0 rounded-sm border border-checkbox-border shadow-sm focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-checkbox-bg data-[state=checked]:text-checkbox-foreground',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <CheckboxPrimitive.Indicator className={cn('flex items-center justify-center text-current')}>\r\n <Check className=\"h-4 w-4\" />\r\n </CheckboxPrimitive.Indicator>\r\n </CheckboxPrimitive.Root>\r\n))\r\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\r\n\r\nexport { Checkbox }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as SwitchPrimitives from '@radix-ui/react-switch'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Switch = React.forwardRef<\r\n React.ElementRef<typeof SwitchPrimitives.Root>,\r\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\r\n>(({ className, ...props }, ref) => (\r\n <SwitchPrimitives.Root\r\n className={cn(\r\n 'peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-switch-active-bg data-[state=unchecked]:bg-switch-bg',\r\n className\r\n )}\r\n {...props}\r\n ref={ref}\r\n >\r\n <SwitchPrimitives.Thumb\r\n className={cn(\r\n 'pointer-events-none block h-4 w-4 rounded-full bg-switch-btn data-[state=checked]:bg-switch-btn shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0'\r\n )}\r\n />\r\n </SwitchPrimitives.Root>\r\n))\r\nSwitch.displayName = SwitchPrimitives.Root.displayName\r\n\r\nexport { Switch }\r\n","'use client'\n\nimport * as React from 'react'\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\n\nimport { cn } from '@/lib/cn'\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = ({ delayDuration = 0, ...props }) => (\n <TooltipPrimitive.Root delayDuration={delayDuration} {...props} />\n)\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\nconst TooltipPortal = TooltipPrimitive.Portal\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & {\n container?: HTMLElement | null\n }\n>(({ className, sideOffset = 4, container, ...props }, ref) => (\n <TooltipPrimitive.Portal container={container}>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 overflow-hidden rounded-normal bg-tooltip-bg backdrop-blur-sm px-3 py-1.5 text-xs text-tooltip-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, TooltipPortal }","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as SliderPrimitive from '@radix-ui/react-slider'\r\nimport { Loader2 } from 'lucide-react'\r\nimport { cn } from '@/lib/cn'\r\nimport { motion, AnimatePresence } from 'framer-motion'\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipTrigger,\r\n} from '@/components/tooltip'\r\n\r\n/**\r\n * Slider 组件\r\n *\r\n * 基于 Radix UI Slider 的滑块组件\r\n * 支持 loading 状态和 tooltip 显示\r\n */\r\nconst Slider = React.forwardRef<\r\n React.ElementRef<typeof SliderPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> & {\r\n hiddenThumb?: boolean\r\n loading?: boolean\r\n showTooltip?: boolean\r\n formatTooltip?: (value: number) => string\r\n thumbClassName?: string\r\n trackClassName?: string\r\n rangeClassName?: string\r\n }\r\n>(({ className, hiddenThumb = false, loading = false, showTooltip = false, formatTooltip, thumbClassName, trackClassName, rangeClassName, ...props }, ref) => {\r\n const [currentValue, setCurrentValue] = React.useState<number>(\r\n Array.isArray(props.value) ? props.value[0] : props.defaultValue ? (Array.isArray(props.defaultValue) ? props.defaultValue[0] : props.defaultValue) : 0\r\n )\r\n\r\n React.useEffect(() => {\r\n if (props.value !== undefined) {\r\n setCurrentValue(Array.isArray(props.value) ? props.value[0] : props.value)\r\n }\r\n }, [props.value])\r\n\r\n const handleValueChange = (value: number[]) => {\r\n setCurrentValue(value[0])\r\n if (props.onValueChange) {\r\n props.onValueChange(value)\r\n }\r\n }\r\n\r\n return (\r\n <SliderPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n 'relative cursor-pointer flex w-full touch-none select-none items-center',\r\n className\r\n )}\r\n {...props}\r\n onValueChange={handleValueChange}\r\n >\r\n <SliderPrimitive.Track className={cn(\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-slider-bg\", trackClassName)}>\r\n <SliderPrimitive.Range className={cn(\"absolute h-full bg-slider-process\", rangeClassName)} />\r\n </SliderPrimitive.Track>\r\n {!hiddenThumb && (\r\n showTooltip ? (\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <SliderPrimitive.Thumb\r\n className={cn(\r\n 'block h-[26px] w-4 rounded-[4px] border border-slider-btn-border bg-slider-btn-bg shadow-sm transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\r\n loading && 'border-transparent',\r\n thumbClassName\r\n )}\r\n >\r\n <AnimatePresence>\r\n {loading && (\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n transition={{\r\n duration: 0.2,\r\n ease: 'easeInOut'\r\n }}\r\n className=\"absolute inset-0 flex items-center justify-center\"\r\n >\r\n <Loader2 className=\"h-5 w-5 animate-spin stroke-3 text-primary\" />\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </SliderPrimitive.Thumb>\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n <p>{formatTooltip ? formatTooltip(currentValue) : currentValue.toFixed(1)}</p>\r\n </TooltipContent>\r\n </Tooltip>\r\n ) : (\r\n <SliderPrimitive.Thumb\r\n className={cn(\r\n 'block h-[26px] w-4 rounded-[4px] border border-slider-btn-border bg-slider-btn-bg shadow-sm transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\r\n loading && 'border-transparent',\r\n thumbClassName\r\n )}\r\n >\r\n <AnimatePresence>\r\n {loading && (\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n transition={{\r\n duration: 0.2,\r\n ease: 'easeInOut'\r\n }}\r\n className=\"absolute inset-0 flex items-center justify-center\"\r\n >\r\n <Loader2 className=\"h-5 w-5 animate-spin stroke-3 text-primary\" />\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </SliderPrimitive.Thumb>\r\n )\r\n )}\r\n </SliderPrimitive.Root>\r\n )\r\n})\r\nSlider.displayName = SliderPrimitive.Root.displayName\r\n\r\nexport { Slider }\r\n","'use client'\n\nimport * as React from 'react'\nimport * as ProgressPrimitive from '@radix-ui/react-progress'\n\nimport { cn } from '@/lib/cn'\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn('relative h-2 w-full overflow-hidden rounded-full bg-process-bg/10', className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full flex-1 bg-process-bg\"\n style={{\n transform: `translateX(-${100 - (value || 0)}%)`,\n transition: 'transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n willChange: 'transform'\n }}\n />\n </ProgressPrimitive.Root>\n))\nProgress.displayName = ProgressPrimitive.Root.displayName\n\nexport { Progress }\n","import * as React from 'react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nexport interface TextareaProps extends React.ComponentProps<'textarea'> {\r\n shadow?: boolean\r\n}\r\n\r\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\r\n ({ className, shadow = true, ...props }, ref) => {\r\n return (\r\n <textarea\r\n className={cn(\r\n 'flex min-h-[60px] w-full rounded-normal text-input-foreground border border-border bg-input-bg px-6 py-3 text-base placeholder:text-sm placeholder:font-input-placeholder placeholder:text-secondary-foreground disabled:cursor-not-allowed disabled:opacity-30 md:text-sm focus-visible:outline-none',\r\n { 'input-shadow': shadow },\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nTextarea.displayName = 'Textarea'\r\n\r\nexport { Textarea }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\r\nimport { Circle } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst RadioGroup = React.forwardRef<\r\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\r\n>(({ className, ...props }, ref) => {\r\n return <RadioGroupPrimitive.Root className={cn('grid gap-2', className)} {...props} ref={ref} />\r\n})\r\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\r\n\r\nconst RadioGroupItem = React.forwardRef<\r\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <RadioGroupPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n 'aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow-sm focus:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\r\n <Circle className=\"h-2 w-2 fill-primary\" />\r\n </RadioGroupPrimitive.Indicator>\r\n </RadioGroupPrimitive.Item>\r\n )\r\n})\r\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\r\n\r\nexport { RadioGroup, RadioGroupItem }\r\n","'use client'\n\nimport * as React from 'react'\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\n\nimport { cn } from '@/lib/cn'\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-separator',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n))\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n","import { cn } from '@/lib/cn'\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: 'default' | 'purai'\n}\n\nfunction Skeleton({ className, variant = 'default', ...props }: SkeletonProps) {\n const variantClass = variant === 'default' ? 'skeleton-card' : 'skeleton-card-purai'\n return <div className={cn(variantClass, 'rounded-normal', className)} {...props} />\n}\n\nexport { Skeleton }\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Avatar = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Root\r\n ref={ref}\r\n className={cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', className)}\r\n {...props}\r\n />\r\n))\r\nAvatar.displayName = AvatarPrimitive.Root.displayName\r\n\r\nconst AvatarImage = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Image>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Image\r\n ref={ref}\r\n className={cn('aspect-square h-full w-full', className)}\r\n {...props}\r\n />\r\n))\r\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\r\n\r\nconst AvatarFallback = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Fallback\r\n ref={ref}\r\n className={cn(\r\n 'flex h-full w-full items-center justify-center rounded-full bg-avatar-bg',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\r\n\r\nexport { Avatar, AvatarImage, AvatarFallback }\r\n","'use client'\r\n\r\nimport * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio'\r\n\r\nconst AspectRatio = AspectRatioPrimitive.Root\r\n\r\nexport { AspectRatio }\r\n","import * as React from \"react\";\nimport { cn } from \"@/lib/cn\";\n\nconst VisuallyHidden = React.forwardRef<\n\tHTMLSpanElement,\n\tReact.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => {\n\treturn (\n\t\t<span\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0\",\n\t\t\t\t\"clip-[rect(0,0,0,0)]\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nVisuallyHidden.displayName = \"VisuallyHidden\";\n\nexport { VisuallyHidden };\n","export default function CloseIcon3(props: React.SVGProps<SVGSVGElement>) {\r\n return (\r\n <svg width=\"100\" height=\"100\" viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\r\n<path d=\"M91.4059 1.40589C93.2804 -0.468629 96.3204 -0.468629 98.1949 1.40589C100.069 3.2804 100.069 6.32043 98.1949 8.19495L56.5895 49.8004L98.1949 91.4059C100.069 93.2804 100.069 96.3204 98.1949 98.1949C96.3204 100.069 93.2804 100.069 91.4059 98.1949L49.8004 56.5895L8.19495 98.1949C6.32043 100.069 3.2804 100.069 1.40589 98.1949C-0.468629 96.3204 -0.468629 93.2804 1.40589 91.4059L43.0114 49.8004L1.40589 8.19495C-0.468629 6.32043 -0.468629 3.2804 1.40589 1.40589C3.2804 -0.468629 6.32043 -0.468629 8.19495 1.40589L49.8004 43.0114L91.4059 1.40589Z\" fill=\"currentColor\"/>\r\n</svg>\r\n )\r\n}\r\n","'use client'\n\nimport * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { Button } from '@/components/button'\nimport CloseIcon3 from '@/components/svg/CloseIcon3'\n\nimport { cn } from '@/lib/cn'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-dialog-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 ',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\ninterface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n disableOutsideClick?: boolean\n hideCloseButton?: boolean\n}\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, children, disableOutsideClick = true, hideCloseButton = false, onInteractOutside, ...props }, ref) => {\n const handleInteractOutside = (e: any) => {\n if (disableOutsideClick) {\n e.preventDefault()\n return\n }\n onInteractOutside?.(e)\n }\n\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-dialog-bg p-6 shadow-dialog duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-normal sm:rounded-dialog',\n className\n )}\n onInteractOutside={handleInteractOutside}\n {...props}\n >\n {children}\n\n {/* shadcn 原始dialog 关闭按钮 */}\n {/* <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-normal opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close> */}\n\n {!hideCloseButton && (\n <DialogPrimitive.Close className=\"absolute right-4 top-4\">\n <Button variant={'close'} asChild className='px-0 w-10 h-10'>\n <div className=\"flex items-center\">\n <CloseIcon3 className='!w-3 !h-3' />\n </div>\n </Button>\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n})\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-medium leading-none', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription\n}\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as SelectPrimitive from '@radix-ui/react-select'\r\nimport { cn } from '@/lib/cn'\r\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\r\n\r\n// 全局状态管理:记录当前打开的 select\r\nlet currentOpenSelect: string | null = null\r\nconst selectListeners = new Set<(id: string | null) => void>()\r\n\r\nconst notifySelectOpen = (id: string | null) => {\r\n currentOpenSelect = id\r\n selectListeners.forEach(listener => listener(id))\r\n}\r\n\r\nconst Select: React.FC<React.ComponentPropsWithoutRef<typeof SelectPrimitive.Root>> = (props) => {\r\n const selectId = React.useId()\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n\r\n React.useEffect(() => {\r\n const listener = (openId: string | null) => {\r\n if (openId !== selectId && isOpen) {\r\n setIsOpen(false)\r\n }\r\n }\r\n selectListeners.add(listener)\r\n return () => {\r\n selectListeners.delete(listener)\r\n }\r\n }, [selectId, isOpen])\r\n\r\n const handleOpenChange = React.useCallback((open: boolean) => {\r\n setIsOpen(open)\r\n if (open) {\r\n notifySelectOpen(selectId)\r\n } else if (currentOpenSelect === selectId) {\r\n notifySelectOpen(null)\r\n }\r\n props.onOpenChange?.(open)\r\n }, [selectId, props])\r\n\r\n return (\r\n <SelectPrimitive.Root\r\n {...props}\r\n open={props.open !== undefined ? props.open : isOpen}\r\n onOpenChange={handleOpenChange}\r\n />\r\n )\r\n}\r\n\r\nconst SelectGroup = SelectPrimitive.Group\r\n\r\nconst SelectValue = SelectPrimitive.Value\r\n\r\nconst SelectTrigger = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n <SelectPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n 'flex h-10 w-full items-center justify-between whitespace-nowrap rounded-normal border border-border bg-background px-2.5 py-1 text-sm text-foreground ring-offset-background data-placeholder:text-secondary-foreground focus:outline-none cursor-pointer disabled:cursor-not-allowed disabled:opacity-30 [&>span]:line-clamp-1',\r\n `${props.name === 'secondary' ? 'select-secondary' : 'select-primary'}`,\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {\r\n props.nonce !== 'noIcon' &&\r\n <SelectPrimitive.Icon asChild>\r\n <ChevronDownIcon className=\"h-4 w-4 opacity-50 ml-2\" />\r\n </SelectPrimitive.Icon>\r\n }\r\n </SelectPrimitive.Trigger>\r\n))\r\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\r\n\r\nconst SelectScrollUpButton = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\r\n>(({ className, ...props }, ref) => (\r\n <SelectPrimitive.ScrollUpButton\r\n ref={ref}\r\n className={cn('flex cursor-default items-center justify-center py-1', className)}\r\n {...props}\r\n >\r\n <ChevronUpIcon className=\"h-4 w-4\" />\r\n </SelectPrimitive.ScrollUpButton>\r\n))\r\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\r\n\r\nconst SelectScrollDownButton = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\r\n>(({ className, ...props }, ref) => (\r\n <SelectPrimitive.ScrollDownButton\r\n ref={ref}\r\n className={cn('flex cursor-default items-center justify-center py-1', className)}\r\n {...props}\r\n >\r\n <ChevronDownIcon className=\"h-4 w-4\" />\r\n </SelectPrimitive.ScrollDownButton>\r\n))\r\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName\r\n\r\nconst SelectContent = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> & {\r\n /**\r\n * 是否限制下拉框宽度为 trigger 的宽度\r\n * @default false\r\n */\r\n limitWidth?: boolean\r\n }\r\n>(({ className, children, position = 'popper', limitWidth = false, ...props }, ref) => (\r\n <SelectPrimitive.Portal>\r\n <SelectPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n 'relative z-50 rounded-select-radius p-2 max-h-[var(--radix-select-content-available-height)] min-w-[8rem] overflow-hidden border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n position === 'popper' &&\r\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\r\n className\r\n )}\r\n position={position}\r\n {...props}\r\n >\r\n <SelectScrollUpButton />\r\n <SelectPrimitive.Viewport\r\n className={cn(\r\n 'p-1',\r\n position === 'popper' &&\r\n limitWidth\r\n ? 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] max-w-[var(--radix-select-trigger-width)]'\r\n : 'h-[var(--radix-select-trigger-height)] w-full min-w-[calc(var(--radix-select-trigger-width)-18px)]'\r\n )}\r\n >\r\n {children}\r\n </SelectPrimitive.Viewport>\r\n <SelectScrollDownButton />\r\n </SelectPrimitive.Content>\r\n </SelectPrimitive.Portal>\r\n))\r\nSelectContent.displayName = SelectPrimitive.Content.displayName\r\n\r\nconst SelectLabel = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Label>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\r\n>(({ className, ...props }, ref) => (\r\n <SelectPrimitive.Label\r\n ref={ref}\r\n className={cn('px-2 py-1.5 text-sm font-medium', className)}\r\n {...props}\r\n />\r\n))\r\nSelectLabel.displayName = SelectPrimitive.Label.displayName\r\n\r\nconst SelectItem = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> & {\r\n /**\r\n * 是否截断文本并显示省略号\r\n * @default false\r\n */\r\n truncate?: boolean\r\n }\r\n>(({ className, children, truncate = false, ...props }, ref) => (\r\n <SelectPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n 'relative flex w-full cursor-pointer select-none items-center rounded-select-item-radius py-[10px] pl-3 pr-8 text-sm text-foreground outline-none focus:bg-option-hover focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-30',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <SelectPrimitive.ItemIndicator>\r\n <CheckIcon className=\"h-4 w-4\" />\r\n </SelectPrimitive.ItemIndicator>\r\n </span>\r\n {truncate ? (\r\n <SelectPrimitive.ItemText asChild>\r\n <span className=\"block truncate\">{children}</span>\r\n </SelectPrimitive.ItemText>\r\n ) : (\r\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\r\n )}\r\n </SelectPrimitive.Item>\r\n))\r\nSelectItem.displayName = SelectPrimitive.Item.displayName\r\n\r\nconst SelectSeparator = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <SelectPrimitive.Separator\r\n ref={ref}\r\n className={cn('-mx-1 my-1 h-px bg-muted', className)}\r\n {...props}\r\n />\r\n))\r\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\r\n\r\nexport {\r\n Select,\r\n SelectGroup,\r\n SelectValue,\r\n SelectTrigger,\r\n SelectContent,\r\n SelectLabel,\r\n SelectItem,\r\n SelectSeparator,\r\n SelectScrollUpButton,\r\n SelectScrollDownButton\r\n}\r\n","'use client'\n\nimport * as React from 'react'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\n\nimport { cn } from '@/lib/cn'\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n container?: HTMLElement | null\n }\n>(({ className, align = 'center', sideOffset = 4, container, ...props }, ref) => (\n <PopoverPrimitive.Portal container={container}>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 rounded-normal border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","'use client'\n\nimport * as React from 'react'\nimport * as HoverCardPrimitive from '@radix-ui/react-hover-card'\n\nimport { cn } from '@/lib/cn'\n\nconst HoverCard = HoverCardPrimitive.Root\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\nconst HoverCardContent = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Portal>\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-64 rounded-normal border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n))\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","'use client'\n\nimport * as React from 'react'\nimport * as SheetPrimitive from '@radix-ui/react-dialog'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { X } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm'\n }\n },\n defaultVariants: {\n side: 'right'\n }\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content ref={ref} className={cn(sheetVariants({ side }), className)} {...props}>\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-normal opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\n)\nSheetHeader.displayName = 'SheetHeader'\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nSheetFooter.displayName = 'SheetFooter'\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-foreground', className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription\n}\n","import { cva } from 'class-variance-authority'\r\n\r\nexport const sheetVariants = cva(\r\n 'fixed z-50 gap-4 bg-dialog-bg p-6 shadow-[var(--dialog-shadow)] transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out',\r\n {\r\n variants: {\r\n side: {\r\n top: 'inset-x-0 top-0 border-b border-shade-5 data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\r\n bottom:\r\n 'inset-x-0 bottom-0 border-t border-shade-5 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\r\n left: 'inset-y-0 left-0 h-full w-3/4 border-r border-shade-5 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\r\n right:\r\n 'inset-y-0 right-0 h-full w-3/4 border-l border-shade-5 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\r\n },\r\n },\r\n defaultVariants: {\r\n side: 'right',\r\n },\r\n }\r\n)\r\n","'use client'\n\nimport * as React from 'react'\nimport { Drawer as DrawerPrimitive } from 'vaul'\n\nimport { cn } from '@/lib/cn'\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root shouldScaleBackground={shouldScaleBackground} {...props} />\n)\nDrawer.displayName = 'Drawer'\n\nconst DrawerTrigger = DrawerPrimitive.Trigger\n\nconst DrawerPortal = DrawerPrimitive.Portal\n\nconst DrawerClose = DrawerPrimitive.Close\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn('fixed inset-0 z-50 bg-black/80', className)}\n {...props}\n />\n))\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background',\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n))\nDrawerContent.displayName = 'DrawerContent'\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('grid gap-1.5 p-4 text-center sm:text-left', className)} {...props} />\n)\nDrawerHeader.displayName = 'DrawerHeader'\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('mt-auto flex flex-col gap-2 p-4', className)} {...props} />\n)\nDrawerFooter.displayName = 'DrawerFooter'\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none', className)}\n {...props}\n />\n))\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription\n}\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog'\r\n\r\nimport { cn } from '@/lib/cn'\r\nimport { buttonVariants } from '@/components/button'\r\n\r\nconst AlertDialog = AlertDialogPrimitive.Root\r\n\r\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\r\n\r\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\r\n\r\nconst AlertDialogOverlay = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Overlay\r\n className={cn(\r\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\r\n className\r\n )}\r\n {...props}\r\n ref={ref}\r\n />\r\n))\r\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\r\n\r\nconst AlertDialogContent = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPortal>\r\n <AlertDialogOverlay />\r\n <AlertDialogPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-normal',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </AlertDialogPortal>\r\n))\r\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\r\n\r\nconst AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\r\n)\r\nAlertDialogHeader.displayName = 'AlertDialogHeader'\r\n\r\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\r\n {...props}\r\n />\r\n)\r\nAlertDialogFooter.displayName = 'AlertDialogFooter'\r\n\r\nconst AlertDialogTitle = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Title\r\n ref={ref}\r\n className={cn('text-lg font-medium', className)}\r\n {...props}\r\n />\r\n))\r\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\r\n\r\nconst AlertDialogDescription = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Description\r\n ref={ref}\r\n className={cn('text-sm text-muted-foreground', className)}\r\n {...props}\r\n />\r\n))\r\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName\r\n\r\nconst AlertDialogAction = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Action ref={ref} className={cn(buttonVariants(), className)} {...props} />\r\n))\r\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\r\n\r\nconst AlertDialogCancel = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Cancel\r\n ref={ref}\r\n className={cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', className)}\r\n {...props}\r\n />\r\n))\r\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\r\n\r\nexport {\r\n AlertDialog,\r\n AlertDialogPortal,\r\n AlertDialogOverlay,\r\n AlertDialogTrigger,\r\n AlertDialogContent,\r\n AlertDialogHeader,\r\n AlertDialogFooter,\r\n AlertDialogTitle,\r\n AlertDialogDescription,\r\n AlertDialogAction,\r\n AlertDialogCancel\r\n}\r\n","'use client'\n\nimport * as React from 'react'\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\n\nimport { cn } from '@/lib/cn'\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn('relative overflow-hidden', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as TogglePrimitive from '@radix-ui/react-toggle'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst toggleVariants = cva(\r\n 'inline-flex items-center justify-center gap-2 rounded-normal text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-toggle-bg text-toggle-foreground hover:bg-toggle-hover-bg hover:text-toggle-foreground data-[state=on]:bg-toggle-active-bg data-[state=on]:text-toggle-active-foreground',\r\n },\r\n size: {\r\n default: 'h-9 px-2 min-w-9',\r\n sm: 'h-8 px-1.5 min-w-8',\r\n lg: 'h-10 px-2.5 min-w-10'\r\n }\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'default'\r\n }\r\n }\r\n)\r\n\r\nconst Toggle = React.forwardRef<\r\n React.ElementRef<typeof TogglePrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>\r\n>(({ className, variant, size, ...props }, ref) => (\r\n <TogglePrimitive.Root\r\n ref={ref}\r\n className={cn(toggleVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n))\r\n\r\nToggle.displayName = TogglePrimitive.Root.displayName\r\n\r\nexport { Toggle, toggleVariants }\r\n","'use client'\n\nimport * as React from 'react'\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group'\nimport { type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/cn'\nimport { toggleVariants } from '@/components/toggle'\n\nconst ToggleGroupContext = React.createContext<VariantProps<typeof toggleVariants>>({\n size: 'default',\n variant: 'default'\n})\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn('flex items-center justify-center gap-1', className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>{children}</ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n))\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>\n>(({ className, children, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size\n }),\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\n\nexport { ToggleGroup, ToggleGroupItem }\n","'use client'\r\n\r\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible'\r\n\r\nconst Collapsible = CollapsiblePrimitive.Root\r\n\r\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\r\n\r\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\r\n\r\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\r\n","import * as React from 'react'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst alertVariants = cva(\r\n 'relative w-full rounded-normal border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-background text-foreground',\r\n destructive:\r\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive'\r\n }\r\n },\r\n defaultVariants: {\r\n variant: 'default'\r\n }\r\n }\r\n)\r\n\r\nconst Alert = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\r\n>(({ className, variant, ...props }, ref) => (\r\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\r\n))\r\nAlert.displayName = 'Alert'\r\n\r\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\r\n ({ className, ...props }, ref) => (\r\n <h5 ref={ref} className={cn('mb-1 font-medium leading-none', className)} {...props} />\r\n )\r\n)\r\nAlertTitle.displayName = 'AlertTitle'\r\n\r\nconst AlertDescription = React.forwardRef<\r\n HTMLParagraphElement,\r\n React.HTMLAttributes<HTMLParagraphElement>\r\n>(({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\r\n))\r\nAlertDescription.displayName = 'AlertDescription'\r\n\r\nexport { Alert, AlertTitle, AlertDescription }\r\n","'use client'\n\nimport * as React from 'react'\nimport * as ToastPrimitives from '@radix-ui/react-toast'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { X } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst ToastProvider = ToastPrimitives.Provider\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n 'fixed top-0 z-100 flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]',\n className\n )}\n {...props}\n />\n))\nToastViewport.displayName = ToastPrimitives.Viewport.displayName\n\nconst toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-normal border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full sm:data-[state=open]:slide-in-from-bottom-full',\n {\n variants: {\n variant: {\n default: 'border bg-background text-foreground',\n destructive:\n 'destructive group border-destructive bg-destructive text-foreground'\n }\n },\n defaultVariants: {\n variant: 'default'\n }\n }\n)\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <ToastPrimitives.Root\n ref={ref}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n )\n})\nToast.displayName = ToastPrimitives.Root.displayName\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n 'inline-flex h-8 shrink-0 items-center justify-center rounded-normal border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-hidden focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 hover:group-[.destructive]:border-destructive/30 hover:group-[.destructive]:bg-destructive hover:group-[.destructive]:text-foreground focus:group-[.destructive]:ring-destructive',\n className\n )}\n {...props}\n />\n))\nToastAction.displayName = ToastPrimitives.Action.displayName\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n 'absolute right-1 top-1 rounded-normal p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-hidden focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 hover:group-[.destructive]:text-red-50 focus:group-[.destructive]:ring-red-400 focus:group-[.destructive]:ring-offset-red-600',\n className\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n))\nToastClose.displayName = ToastPrimitives.Close.displayName\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title\n ref={ref}\n className={cn('text-sm font-semibold [&+div]:text-xs', className)}\n {...props}\n />\n))\nToastTitle.displayName = ToastPrimitives.Title.displayName\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description\n ref={ref}\n className={cn('text-sm opacity-90', className)}\n {...props}\n />\n))\nToastDescription.displayName = ToastPrimitives.Description.displayName\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>\n\nexport {\n type ToastProps,\n type ToastActionElement,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction\n}\n","import { cva } from 'class-variance-authority'\r\n\r\nexport const toastVariants = cva(\r\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border border-shade-5 p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'border bg-background text-foreground',\r\n destructive:\r\n 'destructive group border-destructive bg-destructive text-destructive-foreground',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n)\r\n","'use client'\n\n// Inspired by react-hot-toast library\nimport * as React from 'react'\n\nimport type { ToastActionElement, ToastProps } from '@/components/toast'\n\nconst TOAST_LIMIT = 1\nconst TOAST_REMOVE_DELAY = 1000000\n\ntype ToasterToast = ToastProps & {\n id: string\n title?: React.ReactNode\n description?: React.ReactNode\n action?: ToastActionElement\n}\n\nconst actionTypes = {\n ADD_TOAST: 'ADD_TOAST',\n UPDATE_TOAST: 'UPDATE_TOAST',\n DISMISS_TOAST: 'DISMISS_TOAST',\n REMOVE_TOAST: 'REMOVE_TOAST'\n} as const\n\nlet count = 0\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER\n return count.toString()\n}\n\ntype ActionType = typeof actionTypes\n\ntype Action =\n | {\n type: ActionType['ADD_TOAST']\n toast: ToasterToast\n }\n | {\n type: ActionType['UPDATE_TOAST']\n toast: Partial<ToasterToast>\n }\n | {\n type: ActionType['DISMISS_TOAST']\n toastId?: ToasterToast['id']\n }\n | {\n type: ActionType['REMOVE_TOAST']\n toastId?: ToasterToast['id']\n }\n\ninterface State {\n toasts: ToasterToast[]\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>()\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId)\n dispatch({\n type: 'REMOVE_TOAST',\n toastId: toastId\n })\n }, TOAST_REMOVE_DELAY)\n\n toastTimeouts.set(toastId, timeout)\n}\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case 'ADD_TOAST':\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT)\n }\n\n case 'UPDATE_TOAST':\n return {\n ...state,\n toasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t))\n }\n\n case 'DISMISS_TOAST': {\n const { toastId } = action\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId)\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id)\n })\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false\n }\n : t\n )\n }\n }\n case 'REMOVE_TOAST':\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: []\n }\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId)\n }\n }\n}\n\nconst listeners: Array<(state: State) => void> = []\n\nlet memoryState: State = { toasts: [] }\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action)\n listeners.forEach((listener) => {\n listener(memoryState)\n })\n}\n\ntype Toast = Omit<ToasterToast, 'id'>\n\nfunction toast({ ...props }: Toast) {\n const id = genId()\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: 'UPDATE_TOAST',\n toast: { ...props, id }\n })\n const dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id })\n\n dispatch({\n type: 'ADD_TOAST',\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss()\n }\n }\n })\n\n return {\n id: id,\n dismiss,\n update\n }\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState)\n\n React.useEffect(() => {\n listeners.push(setState)\n return () => {\n const index = listeners.indexOf(setState)\n if (index > -1) {\n listeners.splice(index, 1)\n }\n }\n }, [state])\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId })\n }\n}\n\nexport { useToast, toast }\n","'use client'\n\nimport { useToast } from '@/hooks/use-toast'\nimport {\n Toast,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport\n} from '@/components/toast'\n\nexport function Toaster() {\n const { toasts } = useToast()\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && <ToastDescription>{description}</ToastDescription>}\n </div>\n {action}\n <ToastClose />\n </Toast>\n )\n })}\n <ToastViewport />\n </ToastProvider>\n )\n}\n","'use client'\n\nimport { useTheme } from 'next-themes'\nimport { Toaster as Sonner } from 'sonner'\n\ntype ToasterProps = React.ComponentProps<typeof Sonner>\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n description: 'group-[.toast]:text-muted-foreground',\n actionButton: 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',\n cancelButton: 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground'\n }\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","import * as React from 'react'\n\nimport { cn } from '@/lib/cn'\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn('w-full caption-bottom text-sm', className)} {...props} />\n </div>\n )\n)\nTable.displayName = 'Table'\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n))\nTableHeader.displayName = 'TableHeader'\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n))\nTableBody.displayName = 'TableBody'\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn('border-t bg-table-hover/50 font-normal last:[&>tr]:border-b-0', className)}\n {...props}\n />\n))\nTableFooter.displayName = 'TableFooter'\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-table-hover/50 data-[state=selected]:bg-table-hover',\n className\n )}\n {...props}\n />\n )\n)\nTableRow.displayName = 'TableRow'\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-10 px-2 text-left align-middle font-normal text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = 'TableHead'\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = 'TableCell'\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-foreground', className)} {...props} />\n))\nTableCaption.displayName = 'TableCaption'\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Tabs = TabsPrimitive.Root\r\n\r\nconst TabsList = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.List>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.List\r\n ref={ref}\r\n className={cn(\r\n 'inline-flex h-11 border border-border items-center justify-center rounded-normal bg-tabs-bg p-1 text-tabs-foreground',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsList.displayName = TabsPrimitive.List.displayName\r\n\r\nconst TabsTrigger = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n 'inline-flex text-sm font-medium h-9 rounded-normal items-center justify-center whitespace-nowrap rounded-normal px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-tabs-active-bg data-[state=active]:text-tabs-active-foreground hover:text-tabs-hover-foreground data-[state=active]:shadow-sm',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\r\n\r\nconst TabsContent = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n 'mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsContent.displayName = TabsPrimitive.Content.displayName\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\r\nimport { ChevronDown } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Accordion = AccordionPrimitive.Root\r\n\r\nconst AccordionItem = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\r\n>(({ className, ...props }, ref) => (\r\n <AccordionPrimitive.Item ref={ref} className={cn('border-b', className)} {...props} />\r\n))\r\nAccordionItem.displayName = 'AccordionItem'\r\n\r\nconst AccordionTrigger = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n <AccordionPrimitive.Header className=\"flex\">\r\n <AccordionPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n 'flex flex-1 items-center justify-between py-4 text-sm font-normal transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronDown className=\"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200\" />\r\n </AccordionPrimitive.Trigger>\r\n </AccordionPrimitive.Header>\r\n))\r\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\r\n\r\nconst AccordionContent = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\r\n>(({ className, children, ...props }, ref) => (\r\n <AccordionPrimitive.Content\r\n ref={ref}\r\n className=\"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\r\n {...props}\r\n >\r\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\r\n </AccordionPrimitive.Content>\r\n))\r\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\r\n\r\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\r\n","import * as React from 'react'\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { ChevronRight, MoreHorizontal } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Breadcrumb = React.forwardRef<\r\n HTMLElement,\r\n React.ComponentPropsWithoutRef<'nav'> & {\r\n separator?: React.ReactNode\r\n }\r\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\r\nBreadcrumb.displayName = 'Breadcrumb'\r\n\r\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\r\n ({ className, ...props }, ref) => (\r\n <ol\r\n ref={ref}\r\n className={cn(\r\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n)\r\nBreadcrumbList.displayName = 'BreadcrumbList'\r\n\r\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\r\n ({ className, ...props }, ref) => (\r\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\r\n )\r\n)\r\nBreadcrumbItem.displayName = 'BreadcrumbItem'\r\n\r\nconst BreadcrumbLink = React.forwardRef<\r\n HTMLAnchorElement,\r\n React.ComponentPropsWithoutRef<'a'> & {\r\n asChild?: boolean\r\n }\r\n>(({ asChild, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : 'a'\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n className={cn('transition-colors hover:text-foreground', className)}\r\n {...props}\r\n />\r\n )\r\n})\r\nBreadcrumbLink.displayName = 'BreadcrumbLink'\r\n\r\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\r\n ({ className, ...props }, ref) => (\r\n <span\r\n ref={ref}\r\n role=\"link\"\r\n aria-disabled=\"true\"\r\n aria-current=\"page\"\r\n className={cn('font-normal text-foreground', className)}\r\n {...props}\r\n />\r\n )\r\n)\r\nBreadcrumbPage.displayName = 'BreadcrumbPage'\r\n\r\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\r\n <li\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn('[&>svg]:w-3.5 [&>svg]:h-3.5', className)}\r\n {...props}\r\n >\r\n {children ?? <ChevronRight />}\r\n </li>\r\n)\r\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\r\n\r\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\r\n <span\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn('flex h-9 w-9 items-center justify-center', className)}\r\n {...props}\r\n >\r\n <MoreHorizontal className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">More</span>\r\n </span>\r\n)\r\nBreadcrumbEllipsis.displayName = 'BreadcrumbElipssis'\r\n\r\nexport {\r\n Breadcrumb,\r\n BreadcrumbList,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n BreadcrumbEllipsis\r\n}\r\n","import * as React from 'react'\nimport * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu'\nimport { cva } from 'class-variance-authority'\nimport { ChevronDown } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn('relative z-10 flex max-w-max flex-1 items-center justify-center', className)}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n))\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn('group flex flex-1 list-none items-center justify-center space-x-1', className)}\n {...props}\n />\n))\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\nconst navigationMenuTriggerStyle = cva(\n 'group inline-flex h-9 w-max items-center justify-center rounded-normal bg-background px-4 py-2 text-sm font-normal transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 data-[state=open]:bg-accent/50'\n)\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDown\n className=\"relative top-[1px] ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n))\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ',\n className\n )}\n {...props}\n />\n))\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn('absolute left-0 top-full flex justify-center')}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n 'origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-normal border bg-popover text-popover-foreground shadow-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]',\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n))\nNavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n 'top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in',\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n))\nNavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as MenubarPrimitive from '@radix-ui/react-menubar'\nimport { Check, ChevronRight, Circle } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst MenubarMenu = MenubarPrimitive.Menu\n\nconst MenubarGroup = MenubarPrimitive.Group\n\nconst MenubarPortal = MenubarPrimitive.Portal\n\nconst MenubarSub = MenubarPrimitive.Sub\n\nconst MenubarRadioGroup = MenubarPrimitive.RadioGroup\n\nconst Menubar = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Root\n ref={ref}\n className={cn(\n 'flex h-9 items-center space-x-1 rounded-normal border bg-background p-1 shadow-xs',\n className\n )}\n {...props}\n />\n))\nMenubar.displayName = MenubarPrimitive.Root.displayName\n\nconst MenubarTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex cursor-default select-none items-center rounded-normal px-3 py-1 text-sm font-normal outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n className\n )}\n {...props}\n />\n))\nMenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName\n\nconst MenubarSubTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'flex cursor-default select-none items-center rounded-normal px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n))\nMenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName\n\nconst MenubarSubContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.SubContent\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-normal border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n))\nMenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName\n\nconst MenubarContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>\n>(({ className, align = 'start', alignOffset = -4, sideOffset = 8, ...props }, ref) => (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 min-w-[12rem] overflow-hidden rounded-normal border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </MenubarPrimitive.Portal>\n))\nMenubarContent.displayName = MenubarPrimitive.Content.displayName\n\nconst MenubarItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n))\nMenubarItem.displayName = MenubarPrimitive.Item.displayName\n\nconst MenubarCheckboxItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n))\nMenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName\n\nconst MenubarRadioItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <MenubarPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"h-4 w-4 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n))\nMenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName\n\nconst MenubarLabel = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-medium', inset && 'pl-8', className)}\n {...props}\n />\n))\nMenubarLabel.displayName = MenubarPrimitive.Label.displayName\n\nconst MenubarSeparator = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-muted', className)}\n {...props}\n />\n))\nMenubarSeparator.displayName = MenubarPrimitive.Separator.displayName\n\nconst MenubarShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n )\n}\nMenubarShortcut.displayname = 'MenubarShortcut'\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarPortal,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarSub,\n MenubarShortcut\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { Check, ChevronRight, Circle } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'flex cursor-default gap-2 select-none items-center rounded-dropdown-menu-item px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-dropdown-menu border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n))\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-dropdown-menu border border-border bg-dropdown-menu-bg backdrop-blur-sm p-1 text-dropdown-menu-foreground shadow-md',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 rounded-dropdown-menu-item px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-dropdown-menu-hover-bg focus:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-dropdown-menu-item py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-dropdown-menu-item py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-medium', inset && 'pl-8', className)}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-separator', className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return <span className={cn('ml-auto text-xs tracking-widest opacity-60', className)} {...props} />\n}\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut'\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as ContextMenuPrimitive from '@radix-ui/react-context-menu'\nimport { Check, ChevronRight, Circle } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst ContextMenu = ContextMenuPrimitive.Root\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'flex cursor-default select-none items-center rounded-normal px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n))\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-normal border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n))\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-normal border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n))\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n))\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n))\nContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-4 w-4 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n))\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-semibold text-foreground', inset && 'pl-8', className)}\n {...props}\n />\n))\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n))\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\n\nconst ContextMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n )\n}\nContextMenuShortcut.displayName = 'ContextMenuShortcut'\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { VariantProps, cva } from 'class-variance-authority'\nimport { PanelLeft } from 'lucide-react'\n\nimport { useIsMobile } from '@/hooks/use-mobile'\nimport { useIsNarrow } from '@/hooks/use-narrow'\nimport { cn } from '@/lib/cn'\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Separator } from '@/components/separator'\nimport { Sheet, SheetContent } from '@/components/sheet'\nimport { Skeleton } from '@/components/skeleton'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/tooltip'\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar:state'\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = '16.06rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3.5rem'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b'\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.')\n }\n\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const isMobile = useIsMobile()\n const isNarrow = useIsNarrow()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return (isMobile || isNarrow) ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, isNarrow, setOpen, setOpenMobile])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed'\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile: isMobile || isNarrow,\n openMobile,\n setOpenMobile,\n toggleSidebar\n }),\n [state, open, setOpen, isMobile, isNarrow, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n }\n)\nSidebarProvider.displayName = 'SidebarProvider'\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n }\n>(\n (\n {\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n forceMount\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden xl:block text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'duration-200 relative h-svh w-(--sidebar-width) bg-transparent transition-[width] ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)'\n )}\n />\n <div\n className={cn(\n 'duration-200 fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] ease-linear xl:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-normal group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n }\n)\nSidebar.displayName = 'Sidebar'\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n const isNarrow = useIsNarrow()\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant={ isNarrow ? 'neutral' : 'none'}\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n})\nSidebarTrigger.displayName = 'SidebarTrigger'\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarRail.displayName = 'SidebarRail'\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))] md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-normal md:peer-data-[variant=inset]:shadow-sm',\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarInset.displayName = 'SidebarInset'\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none',\n className\n )}\n {...props}\n />\n )\n})\nSidebarInput.displayName = 'SidebarInput'\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-1 pt-3 pb-1 px-3', className)}\n {...props}\n />\n )\n }\n)\nSidebarHeader.displayName = 'SidebarHeader'\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-3', className)}\n {...props}\n />\n )\n }\n)\nSidebarFooter.displayName = 'SidebarFooter'\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n )\n})\nSidebarSeparator.displayName = 'SidebarSeparator'\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-1 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarContent.displayName = 'SidebarContent'\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col py-0 px-3 gap-[2px]', className)}\n {...props}\n />\n )\n }\n)\nSidebarGroup.displayName = 'SidebarGroup'\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'duration-200 flex h-8 shrink-0 items-center rounded-normal px-2.5 text-xs font-normal text-sidebar-secondary-foreground outline-hidden ring-sidebar-ring transition-[margin,opa] ease-linear [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupLabel.displayName = 'SidebarGroupLabel'\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-normal p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = 'SidebarGroupAction'\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n )\n)\nSidebarGroupContent.displayName = 'SidebarGroupContent'\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-[2px]', className)}\n {...props}\n />\n )\n)\nSidebarMenu.displayName = 'SidebarMenu'\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n )\n)\nSidebarMenuItem.displayName = 'SidebarMenuItem'\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full !h-10 items-center gap-2 overflow-hidden rounded-normal p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:[&_svg]:text-foreground [&_svg]:text-sidebar-secondary-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-normal data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2 group-data-[collapsible=icon]:pl-1.5 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]'\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!'\n }\n },\n defaultVariants: {\n variant: 'default',\n size: 'default'\n }\n }\n)\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : 'button'\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className, 'sidebar-item-radius pl-1 pr-2')}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n }\n)\nSidebarMenuButton.displayName = 'SidebarMenuButton'\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean\n showOnHover?: boolean\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-normal p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = 'SidebarMenuAction'\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-normal px-1 text-xs font-normal tabular-nums text-sidebar-foreground select-none pointer-events-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n)\nSidebarMenuBadge.displayName = 'SidebarMenuBadge'\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('rounded-normal h-8 flex gap-2 px-2 items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-normal\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 flex-1 max-w-(--skeleton-width)\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width\n } as React.CSSProperties\n }\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton'\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n ' flex min-w-0 translate-x-px flex-col gap-[2px] my-0.5 sidebar-item-radius',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n)\nSidebarMenuSub.displayName = 'SidebarMenuSub'\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ ...props }, ref) => <li ref={ref} {...props} />\n)\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem'\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-10 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-r-md px-1 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n 'data-[active=true]:border-foreground hover:border-foreground/50 sidebar-item-radius',\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton'\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar\n}\n","'use client'\n\nimport * as React from 'react'\nimport { type DialogProps } from '@radix-ui/react-dialog'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Search } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { Dialog, DialogContent } from '@/components/dialog'\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-normal bg-popover text-popover-foreground command-shadow',\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-normal bg-transparent py-3 text-sm outline-hidden placeholder:text-secondary-foreground disabled:cursor-not-allowed disabled:opacity-30',\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-2 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-secondary-foreground',\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 h-px bg-border', className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex gap-2 select-none cursor-pointer items-center rounded-normal p-2 text-sm text-foreground outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-option-hover data-[selected=true]:text-foreground data-[selected=true]:rounded-normal data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator\n}\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\r\nimport { DayPicker } from 'react-day-picker'\r\n\r\nimport { cn } from '@/lib/cn'\r\nimport { buttonVariants } from '@/components/button'\r\n\r\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>\r\n\r\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\r\n return (\r\n <DayPicker\r\n showOutsideDays={showOutsideDays}\r\n className={cn('p-3', className)}\r\n classNames={{\r\n months: 'flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0',\r\n month: 'space-y-4',\r\n caption: 'flex justify-center pt-1 relative items-center',\r\n caption_label: 'text-sm font-medium',\r\n nav: 'space-x-1 flex items-center',\r\n nav_button: cn(\r\n buttonVariants({ variant: 'outline' }),\r\n 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100'\r\n ),\r\n nav_button_previous: 'absolute left-1',\r\n nav_button_next: 'absolute right-1',\r\n table: 'w-full border-collapse space-y-1',\r\n head_row: 'flex',\r\n head_cell: 'text-muted-foreground rounded-normal w-8 font-normal text-[0.8rem]',\r\n row: 'flex w-full mt-2',\r\n cell: cn(\r\n 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md',\r\n props.mode === 'range'\r\n ? '[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md'\r\n : '[&:has([aria-selected])]:rounded-normal'\r\n ),\r\n day: cn(\r\n buttonVariants({ variant: 'ghost' }),\r\n 'h-8 w-8 p-0 font-normal aria-selected:opacity-100'\r\n ),\r\n day_range_start: 'day-range-start',\r\n day_range_end: 'day-range-end',\r\n day_selected:\r\n 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground',\r\n day_today: 'bg-accent text-accent-foreground',\r\n day_outside:\r\n 'day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground',\r\n day_disabled: 'text-muted-foreground opacity-50',\r\n day_range_middle: 'aria-selected:bg-accent aria-selected:text-accent-foreground',\r\n day_hidden: 'invisible',\r\n ...classNames\r\n }}\r\n components={{\r\n IconLeft: ({ className, ...props }) => (\r\n <ChevronLeft className={cn('h-4 w-4', className)} {...props} />\r\n ),\r\n IconRight: ({ className, ...props }) => (\r\n <ChevronRight className={cn('h-4 w-4', className)} {...props} />\r\n )\r\n }}\r\n {...props}\r\n />\r\n )\r\n}\r\nCalendar.displayName = 'Calendar'\r\n\r\nexport { Calendar }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react'\r\nimport { ArrowLeft, ArrowRight } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/cn'\r\nimport { Button } from '@/components/button'\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: 'horizontal' | 'vertical'\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error('useCarousel must be used within a <Carousel />')\r\n }\r\n\r\n return context\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\r\n>(({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }, ref) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === 'horizontal' ? 'x' : 'y'\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n\r\n const onSelect = React.useCallback((api: CarouselApi) => {\r\n if (!api) {\r\n return\r\n }\r\n\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n }, [])\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'ArrowLeft') {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === 'ArrowRight') {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) {\r\n return\r\n }\r\n\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) {\r\n return\r\n }\r\n\r\n onSelect(api)\r\n api.on('reInit', onSelect)\r\n api.on('select', onSelect)\r\n\r\n return () => {\r\n api?.off('select', onSelect)\r\n }\r\n }, [api, onSelect])\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn('relative', className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n})\r\nCarousel.displayName = 'Carousel'\r\n\r\nconst CarouselContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'flex',\r\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n }\r\n)\r\nCarouselContent.displayName = 'CarouselContent'\r\n\r\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n 'min-w-0 shrink-0 grow-0 basis-full',\r\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nCarouselItem.displayName = 'CarouselItem'\r\n\r\nconst CarouselPrevious = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\r\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-left-12 top-1/2 -translate-y-1/2'\r\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ArrowLeft className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n }\r\n)\r\nCarouselPrevious.displayName = 'CarouselPrevious'\r\n\r\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\r\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-right-12 top-1/2 -translate-y-1/2'\r\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ArrowRight className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n }\r\n)\r\nCarouselNext.displayName = 'CarouselNext'\r\n\r\nexport { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext }\r\n","import * as React from 'react'\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { ButtonProps, buttonVariants } from '@/components/button'\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n)\nPagination.displayName = 'Pagination'\n\nconst PaginationContent = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul ref={ref} className={cn('flex flex-row items-center gap-1', className)} {...props} />\n )\n)\nPaginationContent.displayName = 'PaginationContent'\n\nconst PaginationItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => <li ref={ref} className={cn('', className)} {...props} />\n)\nPaginationItem.displayName = 'PaginationItem'\n\ntype PaginationLinkProps = {\n isActive?: boolean\n size?: ButtonProps['size']\n} & React.ComponentProps<'a'>\n\nconst PaginationLink = ({ className, isActive, size = 'icon', ...props }: PaginationLinkProps) => (\n <a\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n buttonVariants({\n variant: 'outline',\n size\n }),\n className\n )}\n {...props}\n />\n)\nPaginationLink.displayName = 'PaginationLink'\n\nconst PaginationPrevious = ({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn('gap-1 pl-2.5 hover:cursor-pointer', className)}\n {...props}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span className=\"hover:cursor-pointer\">{children ?? 'Previous'}</span>\n </PaginationLink>\n)\nPaginationPrevious.displayName = 'PaginationPrevious'\n\nconst PaginationNext = ({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn('gap-1 pr-2.5 hover:cursor-pointer', className)}\n {...props}\n >\n <span className=\"hover:cursor-pointer\">{children ?? 'Next'}</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n)\nPaginationNext.displayName = 'PaginationNext'\n\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n aria-hidden\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n)\nPaginationEllipsis.displayName = 'PaginationEllipsis'\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\nimport { Slot } from '@radix-ui/react-slot'\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext\n} from 'react-hook-form'\n\nimport { cn } from '@/lib/cn'\nimport { Label } from '@/components/label'\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>({} as FormFieldContextValue)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState, formState } = useFormContext()\n\n const fieldState = getFieldState(fieldContext.name, formState)\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>')\n }\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState\n }\n}\n\ntype FormItemContextValue = {\n id: string\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>({} as FormItemContextValue)\n\nconst FormItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const id = React.useId()\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn('space-y-2', className)} {...props} />\n </FormItemContext.Provider>\n )\n }\n)\nFormItem.displayName = 'FormItem'\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n ref={ref}\n className={cn(error && 'text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n )\n})\nFormLabel.displayName = 'FormLabel'\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n )\n})\nFormControl.displayName = 'FormControl'\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn('text-[0.8rem] text-muted-foreground', className)}\n {...props}\n />\n )\n})\nFormDescription.displayName = 'FormDescription'\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message) : children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn('text-sm font-medium text-destructive', className)}\n {...props}\n >\n {body}\n </p>\n )\n})\nFormMessage.displayName = 'FormMessage'\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField\n}\n","'use client'\n\nimport { GripVertical } from 'lucide-react'\nimport * as ResizablePrimitive from 'react-resizable-panels'\n\nimport { cn } from '@/lib/cn'\n\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (\n <ResizablePrimitive.PanelGroup\n className={cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', className)}\n {...props}\n />\n)\n\nconst ResizablePanel = ResizablePrimitive.Panel\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n withHandle?: boolean\n}) => (\n <ResizablePrimitive.PanelResizeHandle\n className={cn(\n 'relative flex w-px items-center justify-center bg-primary',\n 'after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2',\n 'focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1',\n 'data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full',\n 'data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:top-1/2',\n 'data-[panel-group-direction=vertical]:after:h-2 data-[panel-group-direction=vertical]:after:w-full',\n 'data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0',\n '[&[data-panel-group-direction=vertical]>div]:rotate-90',\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-normal border bg-border cursor-grab active:cursor-grabbing\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n)\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n","'use client'\n\nimport { Check, Copy } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard'\nimport { Button } from '@/components/button'\n\ntype CopyButtonProps = {\n content: string\n copyMessage?: string\n}\n\nexport function CopyButton({ content, copyMessage }: CopyButtonProps) {\n const { isCopied, handleCopy } = useCopyToClipboard({\n text: content,\n copyMessage\n })\n\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"relative h-6 w-6\"\n aria-label=\"Copy to clipboard\"\n onClick={handleCopy}\n >\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <Check\n className={cn(\n 'h-4 w-4 transition-transform ease-in-out',\n isCopied ? 'scale-100' : 'scale-0'\n )}\n />\n </div>\n <Copy\n className={cn(\n 'h-4 w-4 transition-transform ease-in-out',\n isCopied ? 'scale-0' : 'scale-100'\n )}\n />\n </Button>\n )\n}\n","'use client'\n\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { X } from 'lucide-react'\n\ninterface InterruptPromptProps {\n isOpen: boolean\n close: () => void\n}\n\nexport function InterruptPrompt({ isOpen, close }: InterruptPromptProps) {\n return (\n <AnimatePresence>\n {isOpen && (\n <motion.div\n initial={{ top: 0, filter: 'blur(5px)' }}\n animate={{\n top: -40,\n filter: 'blur(0px)',\n transition: {\n type: 'spring',\n filter: { type: 'tween' }\n }\n }}\n exit={{ top: 0, filter: 'blur(5px)' }}\n className=\"absolute left-1/2 flex -translate-x-1/2 overflow-hidden whitespace-nowrap rounded-full border bg-background py-1 text-center text-sm text-muted-foreground\"\n >\n <span className=\"ml-2.5\">Press Enter again to interrupt</span>\n <button\n className=\"ml-1 mr-2.5 flex items-center\"\n type=\"button\"\n onClick={close}\n aria-label=\"Close\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n </motion.div>\n )}\n </AnimatePresence>\n )\n}\n","'use client'\n\nimport React, { useEffect, useRef, useState } from 'react'\nimport { ArrowUp, Square } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { useAutosizeTextArea } from '@/hooks/use-autosize-textarea'\nimport { Button } from '@/components/button'\nimport { InterruptPrompt } from '@/components/interrupt-prompt'\n\ninterface MessageInputBaseProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n value: string\n submitOnEnter?: boolean\n stop?: () => void\n isGenerating: boolean\n enableInterrupt?: boolean\n}\n\ninterface MessageInputWithoutAttachmentProps extends MessageInputBaseProps {\n allowAttachments?: false\n}\n\ntype MessageInputProps = MessageInputWithoutAttachmentProps\n\nexport function MessageInput({\n placeholder = 'Ask AI...',\n className,\n onKeyDown: onKeyDownProp,\n submitOnEnter = true,\n stop,\n isGenerating,\n enableInterrupt = true,\n ...props\n}: MessageInputProps) {\n const [showInterruptPrompt, setShowInterruptPrompt] = useState(false)\n\n useEffect(() => {\n if (!isGenerating) {\n setShowInterruptPrompt(false)\n }\n }, [isGenerating])\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (submitOnEnter && event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault()\n\n if (isGenerating && stop && enableInterrupt) {\n if (showInterruptPrompt) {\n stop()\n setShowInterruptPrompt(false)\n event.currentTarget.form?.requestSubmit()\n } else if (props.value) {\n setShowInterruptPrompt(true)\n return\n }\n }\n\n event.currentTarget.form?.requestSubmit()\n }\n\n onKeyDownProp?.(event)\n }\n\n const textAreaRef = useRef<HTMLTextAreaElement>(null)\n const [, setTextAreaHeight] = useState<number>(0)\n\n useEffect(() => {\n if (textAreaRef.current) {\n setTextAreaHeight(textAreaRef.current.offsetHeight)\n }\n }, [props.value])\n\n useAutosizeTextArea({\n ref: textAreaRef as React.RefObject<HTMLTextAreaElement>,\n maxHeight: 240,\n borderWidth: 1,\n dependencies: [props.value]\n })\n\n return (\n <div className=\"relative flex w-full\">\n {enableInterrupt && (\n <InterruptPrompt isOpen={showInterruptPrompt} close={() => setShowInterruptPrompt(false)} />\n )}\n\n <div className=\"relative flex w-full items-center space-x-2\">\n <div className=\"relative flex-1\">\n <textarea\n aria-label=\"Write your prompt here\"\n placeholder={placeholder}\n ref={textAreaRef}\n onKeyDown={onKeyDown}\n className={cn(\n 'z-10 w-full grow resize-none rounded-normal border border-input bg-background p-3 pr-24 text-sm ring-offset-background transition-[border] placeholder:text-muted-foreground focus-visible:border-primary focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n />\n </div>\n </div>\n\n <div className=\"absolute right-3 top-3 z-20 flex gap-2\">\n {isGenerating && stop ? (\n <Button\n type=\"button\"\n size=\"icon\"\n className=\"h-8 w-8\"\n aria-label=\"Stop generating\"\n onClick={stop}\n >\n <Square className=\"h-3 w-3 animate-pulse\" fill=\"currentColor\" />\n </Button>\n ) : (\n <Button\n type=\"submit\"\n size=\"icon\"\n className=\"h-8 w-8 transition-opacity\"\n aria-label=\"Send message\"\n disabled={props.value === '' || isGenerating}\n >\n <ArrowUp className=\"h-5 w-5\" />\n </Button>\n )}\n </div>\n </div>\n )\n}\nMessageInput.displayName = 'MessageInput'\n","import React, { Suspense } from 'react'\r\nimport Markdown from 'react-markdown'\r\nimport remarkGfm from 'remark-gfm'\r\n\r\nimport { cn } from '@/lib/cn'\r\nimport { CopyButton } from '@/components/copy-button'\r\n\r\ninterface MarkdownRendererProps {\r\n children: string\r\n}\r\n\r\nexport function MarkdownRenderer({ children }: MarkdownRendererProps) {\r\n return (\r\n <div className=\"space-y-3\">\r\n <Markdown remarkPlugins={[remarkGfm]} components={COMPONENTS}>\r\n {children}\r\n </Markdown>\r\n </div>\r\n )\r\n}\r\n\r\ninterface HighlightedPre extends React.HTMLAttributes<HTMLPreElement> {\r\n children: string\r\n language: string\r\n}\r\n\r\n// @ts-expect-error - Async component with React.memo works in Next.js RSC environment\r\nconst HighlightedPre = React.memo(async ({ children, language, ...props }: HighlightedPre) => {\r\n const { codeToTokens, bundledLanguages } = await import('shiki')\r\n\r\n if (!(language in bundledLanguages)) {\r\n return <pre {...props}>{children}</pre>\r\n }\r\n\r\n const { tokens } = await codeToTokens(children, {\r\n lang: language as keyof typeof bundledLanguages,\r\n defaultColor: false,\r\n themes: {\r\n light: 'github-light',\r\n dark: 'github-dark'\r\n }\r\n })\r\n\r\n return (\r\n <pre {...props}>\r\n <code>\r\n {tokens.map((line, lineIndex) => (\r\n <>\r\n <span key={lineIndex}>\r\n {line.map((token, tokenIndex) => {\r\n const style = typeof token.htmlStyle === 'string' ? undefined : token.htmlStyle\r\n\r\n return (\r\n <span\r\n key={tokenIndex}\r\n className=\"text-shiki-light bg-shiki-light-bg dark:text-shiki-dark dark:bg-shiki-dark-bg\"\r\n style={style}\r\n >\r\n {token.content}\r\n </span>\r\n )\r\n })}\r\n </span>\r\n {lineIndex !== tokens.length - 1 && '\\n'}\r\n </>\r\n ))}\r\n </code>\r\n </pre>\r\n )\r\n})\r\nHighlightedPre.displayName = 'HighlightedCode'\r\n\r\ninterface CodeBlockProps extends React.HTMLAttributes<HTMLPreElement> {\r\n children: React.ReactNode\r\n className?: string\r\n language: string\r\n}\r\n\r\nconst CodeBlock = ({ children, className, language, ...restProps }: CodeBlockProps) => {\r\n const code = typeof children === 'string' ? children : childrenTakeAllStringContents(children)\r\n\r\n const preClass = cn(\r\n 'overflow-x-scroll rounded-normal border bg-background/50 p-4 font-mono text-sm [scrollbar-width:none]',\r\n className\r\n )\r\n\r\n return (\r\n <div className=\"group/code relative mb-4\">\r\n <Suspense\r\n fallback={\r\n <pre className={preClass} {...restProps}>\r\n {children}\r\n </pre>\r\n }\r\n >\r\n <HighlightedPre language={language} className={preClass}>\r\n {code}\r\n </HighlightedPre>\r\n </Suspense>\r\n\r\n <div className=\"invisible absolute right-2 top-2 flex space-x-1 rounded-normal p-1 opacity-0 transition-all duration-200 group-hover/code:visible group-hover/code:opacity-100\">\r\n <CopyButton content={code} copyMessage=\"Copied code to clipboard\" />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nfunction childrenTakeAllStringContents(element: any): string {\r\n if (typeof element === 'string') {\r\n return element\r\n }\r\n\r\n if (element?.props?.children) {\r\n let children = element.props.children\r\n\r\n if (Array.isArray(children)) {\r\n return children.map((child) => childrenTakeAllStringContents(child)).join('')\r\n } else {\r\n return childrenTakeAllStringContents(children)\r\n }\r\n }\r\n\r\n return ''\r\n}\r\n\r\nconst COMPONENTS = {\r\n h1: withClass('h1', 'text-2xl font-medium'),\r\n h2: withClass('h2', 'font-medium text-xl'),\r\n h3: withClass('h3', 'font-medium text-lg'),\r\n h4: withClass('h4', 'font-medium text-base'),\r\n h5: withClass('h5', 'font-normal'),\r\n strong: withClass('strong', 'font-medium'),\r\n a: withClass('a', 'text-primary underline underline-offset-2'),\r\n blockquote: withClass('blockquote', 'border-l-2 border-primary pl-4'),\r\n code: ({ children, className, node, ...rest }: any) => {\r\n const match = /language-(\\w+)/.exec(className || '')\r\n return match ? (\r\n <CodeBlock className={className} language={match[1]} {...rest}>\r\n {children}\r\n </CodeBlock>\r\n ) : (\r\n <code\r\n className={cn(\r\n 'font-mono [:not(pre)>&]:rounded-normal [:not(pre)>&]:bg-background/50 [:not(pre)>&]:px-1 [:not(pre)>&]:py-0.5'\r\n )}\r\n {...rest}\r\n >\r\n {children}\r\n </code>\r\n )\r\n },\r\n pre: ({ children, ...props }: React.HTMLAttributes<HTMLPreElement>) => (\r\n <pre {...props}>{children}</pre>\r\n ),\r\n ol: withClass('ol', 'list-decimal space-y-2 pl-6'),\r\n ul: withClass('ul', 'list-disc space-y-2 pl-6'),\r\n li: withClass('li', 'my-1.5'),\r\n table: withClass(\r\n 'table',\r\n 'w-full border-collapse overflow-y-auto rounded-normal border border-foreground/20'\r\n ),\r\n th: withClass(\r\n 'th',\r\n 'border border-foreground/20 px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right'\r\n ),\r\n td: withClass(\r\n 'td',\r\n 'border border-foreground/20 px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right'\r\n ),\r\n tr: withClass('tr', 'm-0 border-t p-0 even:bg-muted'),\r\n p: withClass('p', 'whitespace-pre-wrap'),\r\n hr: withClass('hr', 'border-foreground/20')\r\n}\r\n\r\nfunction withClass(Tag: keyof React.JSX.IntrinsicElements, classes: string) {\r\n const Component = ({ node, ...props }: any) => <Tag className={classes} {...props} />\r\n Component.displayName = Tag\r\n return Component\r\n}\r\n\r\nexport default MarkdownRenderer\r\n","'use client'\n\nimport React, { useState } from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { motion } from 'framer-motion'\nimport { Ban, ChevronRight, Code2, Loader2, Terminal } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\nimport { MarkdownRenderer } from '@/components/markdown-renderer'\n\nconst chatBubbleVariants = cva(\n 'group/message relative break-words rounded-normal p-3 text-sm sm:max-w-[70%]',\n {\n variants: {\n isUser: {\n true: 'bg-primary text-primary-foreground',\n false: 'bg-muted text-foreground'\n },\n animation: {\n none: '',\n slide: 'duration-300 animate-in fade-in-0',\n scale: 'duration-300 animate-in fade-in-0 zoom-in-75',\n fade: 'duration-500 animate-in fade-in-0'\n }\n },\n compoundVariants: [\n {\n isUser: true,\n animation: 'slide',\n class: 'slide-in-from-right'\n },\n {\n isUser: false,\n animation: 'slide',\n class: 'slide-in-from-left'\n },\n {\n isUser: true,\n animation: 'scale',\n class: 'origin-bottom-right'\n },\n {\n isUser: false,\n animation: 'scale',\n class: 'origin-bottom-left'\n }\n ]\n }\n)\n\ntype Animation = VariantProps<typeof chatBubbleVariants>['animation']\n\ninterface PartialToolCall {\n state: 'partial-call'\n toolName: string\n}\n\ninterface ToolCall {\n state: 'call'\n toolName: string\n}\n\ninterface ToolResult {\n state: 'result'\n toolName: string\n result: {\n __cancelled?: boolean\n [key: string]: any\n }\n}\n\ntype ToolInvocation = PartialToolCall | ToolCall | ToolResult\n\ninterface ReasoningPart {\n type: 'reasoning'\n reasoning: string\n}\n\ninterface ToolInvocationPart {\n type: 'tool-invocation'\n toolInvocation: ToolInvocation\n}\n\ninterface TextPart {\n type: 'text'\n text: string\n}\n\n// For compatibility with AI SDK types, not used\ninterface SourcePart {\n type: 'source'\n}\n\nexport type MessagePart = TextPart | ReasoningPart | ToolInvocationPart | SourcePart\n\nexport interface Message {\n id: string\n role: 'user' | 'assistant' | (string & {})\n content: string\n createdAt?: Date\n toolInvocations?: ToolInvocation[]\n parts?: MessagePart[]\n}\n\nexport interface ChatMessageProps extends Message {\n showTimeStamp?: boolean\n animation?: Animation\n actions?: React.ReactNode\n}\n\nexport const ChatMessage: React.FC<ChatMessageProps> = ({\n role,\n content,\n createdAt,\n showTimeStamp = false,\n animation = 'scale',\n actions,\n toolInvocations,\n parts\n}) => {\n const isUser = role === 'user'\n\n const formattedTime = createdAt?.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit'\n })\n\n if (isUser) {\n return (\n <div className={cn('flex flex-col', isUser ? 'items-end' : 'items-start')}>\n <div className={cn(chatBubbleVariants({ isUser, animation }))}>\n <MarkdownRenderer>{content}</MarkdownRenderer>\n </div>\n\n {showTimeStamp && createdAt ? (\n <time\n dateTime={createdAt.toISOString()}\n className={cn(\n 'mt-1 block px-1 text-xs opacity-50',\n animation !== 'none' && 'duration-500 animate-in fade-in-0'\n )}\n >\n {formattedTime}\n </time>\n ) : null}\n </div>\n )\n }\n\n if (parts && parts.length > 0) {\n return parts.map((part, index) => {\n if (part.type === 'text') {\n return (\n <div\n className={cn('flex flex-col', isUser ? 'items-end' : 'items-start')}\n key={`text-${index}`}\n >\n <div className={cn(chatBubbleVariants({ isUser, animation }))}>\n <MarkdownRenderer>{part.text}</MarkdownRenderer>\n {actions ? (\n <div className=\"absolute -bottom-4 right-2 flex space-x-1 rounded-normal border bg-background p-1 text-foreground opacity-0 transition-opacity group-hover/message:opacity-100\">\n {actions}\n </div>\n ) : null}\n </div>\n\n {showTimeStamp && createdAt ? (\n <time\n dateTime={createdAt.toISOString()}\n className={cn(\n 'mt-1 block px-1 text-xs opacity-50',\n animation !== 'none' && 'duration-500 animate-in fade-in-0'\n )}\n >\n {formattedTime}\n </time>\n ) : null}\n </div>\n )\n } else if (part.type === 'reasoning') {\n return <ReasoningBlock key={`reasoning-${index}`} part={part} />\n } else if (part.type === 'tool-invocation') {\n return <ToolCall key={`tool-${index}`} toolInvocations={[part.toolInvocation]} />\n }\n return null\n })\n }\n\n if (toolInvocations && toolInvocations.length > 0) {\n return <ToolCall toolInvocations={toolInvocations} />\n }\n\n return (\n <div className={cn('flex flex-col', isUser ? 'items-end' : 'items-start')}>\n <div className={cn(chatBubbleVariants({ isUser, animation }))}>\n <MarkdownRenderer>{content}</MarkdownRenderer>\n {actions ? (\n <div className=\"absolute -bottom-4 right-2 flex space-x-1 rounded-normal border bg-background p-1 text-foreground opacity-0 transition-opacity group-hover/message:opacity-100\">\n {actions}\n </div>\n ) : null}\n </div>\n\n {showTimeStamp && createdAt ? (\n <time\n dateTime={createdAt.toISOString()}\n className={cn(\n 'mt-1 block px-1 text-xs opacity-50',\n animation !== 'none' && 'duration-500 animate-in fade-in-0'\n )}\n >\n {formattedTime}\n </time>\n ) : null}\n </div>\n )\n}\n\nconst ReasoningBlock = ({ part }: { part: ReasoningPart }) => {\n const [isOpen, setIsOpen] = useState(false)\n\n return (\n <div className=\"mb-2 flex flex-col items-start sm:max-w-[70%]\">\n <Collapsible\n open={isOpen}\n onOpenChange={setIsOpen}\n className=\"group w-full overflow-hidden rounded-normal border bg-muted/50\"\n >\n <div className=\"flex items-center p-2\">\n <CollapsibleTrigger asChild>\n <button className=\"flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground\">\n <ChevronRight className=\"h-4 w-4 transition-transform group-data-[state=open]:rotate-90\" />\n <span>Thinking</span>\n </button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent forceMount>\n <motion.div\n initial={false}\n animate={isOpen ? 'open' : 'closed'}\n variants={{\n open: { height: 'auto', opacity: 1 },\n closed: { height: 0, opacity: 0 }\n }}\n transition={{ duration: 0.3, ease: [0.04, 0.62, 0.23, 0.98] }}\n className=\"border-t\"\n >\n <div className=\"p-2\">\n <div className=\"whitespace-pre-wrap text-xs\">{part.reasoning}</div>\n </div>\n </motion.div>\n </CollapsibleContent>\n </Collapsible>\n </div>\n )\n}\n\nfunction ToolCall({ toolInvocations }: Pick<ChatMessageProps, 'toolInvocations'>) {\n if (!toolInvocations?.length) return null\n\n return (\n <div className=\"flex flex-col items-start gap-2\">\n {toolInvocations.map((invocation, index) => {\n const isCancelled = invocation.state === 'result' && invocation.result.__cancelled === true\n\n if (isCancelled) {\n return (\n <div\n key={index}\n className=\"flex items-center gap-2 rounded-normal border bg-muted/50 px-3 py-2 text-sm text-muted-foreground\"\n >\n <Ban className=\"h-4 w-4\" />\n <span>\n Cancelled{' '}\n <span className=\"font-mono\">\n {'`'}\n {invocation.toolName}\n {'`'}\n </span>\n </span>\n </div>\n )\n }\n\n switch (invocation.state) {\n case 'partial-call':\n case 'call':\n return (\n <div\n key={index}\n className=\"flex items-center gap-2 rounded-normal border bg-muted/50 px-3 py-2 text-sm text-muted-foreground\"\n >\n <Terminal className=\"h-4 w-4\" />\n <span>\n Calling{' '}\n <span className=\"font-mono\">\n {'`'}\n {invocation.toolName}\n {'`'}\n </span>\n ...\n </span>\n <Loader2 className=\"h-3 w-3 animate-spin\" />\n </div>\n )\n case 'result':\n return (\n <div\n key={index}\n className=\"flex flex-col gap-1.5 rounded-normal border bg-muted/50 px-3 py-2 text-sm\"\n >\n <div className=\"flex items-center gap-2 text-muted-foreground\">\n <Code2 className=\"h-4 w-4\" />\n <span>\n Result from{' '}\n <span className=\"font-mono\">\n {'`'}\n {invocation.toolName}\n {'`'}\n </span>\n </span>\n </div>\n <pre className=\"overflow-x-auto whitespace-pre-wrap text-foreground\">\n {JSON.stringify(invocation.result, null, 2)}\n </pre>\n </div>\n )\n default:\n return null\n }\n })}\n </div>\n )\n}\n","import { Dot } from 'lucide-react'\n\nexport function TypingIndicator() {\n return (\n <div className=\"justify-left flex space-x-1\">\n <div className=\"rounded-normal bg-muted p-3\">\n <div className=\"flex -space-x-2.5 text-muted-foreground\">\n <Dot className=\"h-5 w-5 animate-typing-dot-bounce\" />\n <Dot className=\"h-5 w-5 animate-typing-dot-bounce [animation-delay:90ms]\" />\n <Dot className=\"h-5 w-5 animate-typing-dot-bounce [animation-delay:180ms]\" />\n </div>\n </div>\n </div>\n )\n}\n","import { ChatMessage, type ChatMessageProps, type Message } from '@/components/chat-message'\nimport { TypingIndicator } from '@/components/typing-indicator'\n\ntype AdditionalMessageOptions = Omit<ChatMessageProps, keyof Message>\n\ninterface MessageListProps {\n messages: Message[]\n showTimeStamps?: boolean\n isTyping?: boolean\n messageOptions?: AdditionalMessageOptions | ((message: Message) => AdditionalMessageOptions)\n}\n\nexport function MessageList({\n messages,\n showTimeStamps = true,\n isTyping = false,\n messageOptions\n}: MessageListProps) {\n return (\n <div className=\"space-y-4 overflow-visible\">\n {messages.map((message, index) => {\n const additionalOptions =\n typeof messageOptions === 'function' ? messageOptions(message) : messageOptions\n\n return (\n <ChatMessage\n key={index}\n showTimeStamp={showTimeStamps}\n {...message}\n {...additionalOptions}\n />\n )\n })}\n {isTyping && <TypingIndicator />}\n </div>\n )\n}\n","interface PromptSuggestionsProps {\n label: string\n append: (message: { role: 'user'; content: string }) => void\n suggestions: string[]\n}\n\nexport function PromptSuggestions({ label, append, suggestions }: PromptSuggestionsProps) {\n return (\n <div className=\"space-y-6\">\n <h2 className=\"text-center text-2xl font-bold\">{label}</h2>\n <div className=\"flex gap-6 text-sm\">\n {suggestions.map((suggestion) => (\n <button\n key={suggestion}\n onClick={() => append({ role: 'user', content: suggestion })}\n className=\"h-max flex-1 rounded-normal border bg-background p-4 hover:bg-muted\"\n >\n <p>{suggestion}</p>\n </button>\n ))}\n </div>\n </div>\n )\n}\n","'use client'\n\nimport { forwardRef, useCallback, useRef, type ReactElement } from 'react'\nimport { ArrowDown, ThumbsDown, ThumbsUp } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { useAutoScroll } from '@/hooks/use-auto-scroll'\nimport { Button } from '@/components/button'\nimport { type Message } from '@/components/chat-message'\nimport { CopyButton } from '@/components/copy-button'\nimport { MessageInput } from '@/components/message-input'\nimport { MessageList } from '@/components/message-list'\nimport { PromptSuggestions } from '@/components/prompt-suggestions'\n\ninterface ChatPropsBase {\n handleSubmit: (event?: { preventDefault?: () => void }) => void\n messages: Array<Message>\n input: string\n className?: string\n handleInputChange: React.ChangeEventHandler<HTMLTextAreaElement>\n isGenerating: boolean\n stop?: () => void\n onRateResponse?: (messageId: string, rating: 'thumbs-up' | 'thumbs-down') => void\n setMessages?: (messages: any[]) => void\n transcribeAudio?: (blob: Blob) => Promise<string>\n}\n\ninterface ChatPropsWithoutSuggestions extends ChatPropsBase {\n append?: never\n suggestions?: never\n}\n\ninterface ChatPropsWithSuggestions extends ChatPropsBase {\n append: (message: { role: 'user'; content: string }) => void\n suggestions: string[]\n}\n\ntype ChatProps = ChatPropsWithoutSuggestions | ChatPropsWithSuggestions\n\nexport function Chat({\n messages,\n handleSubmit,\n input,\n handleInputChange,\n stop,\n isGenerating,\n append,\n suggestions,\n className,\n onRateResponse,\n setMessages\n}: ChatProps) {\n const lastMessage = messages.at(-1)\n const isEmpty = messages.length === 0\n const isTyping = lastMessage?.role === 'user'\n\n const messagesRef = useRef(messages)\n messagesRef.current = messages\n\n // Enhanced stop function that marks pending tool calls as cancelled\n const handleStop = useCallback(() => {\n stop?.()\n\n if (!setMessages) return\n\n const latestMessages = [...messagesRef.current]\n const lastAssistantMessage = latestMessages.findLast((m) => m.role === 'assistant')\n\n if (!lastAssistantMessage) return\n\n let needsUpdate = false\n let updatedMessage = { ...lastAssistantMessage }\n\n if (lastAssistantMessage.toolInvocations) {\n const updatedToolInvocations = lastAssistantMessage.toolInvocations.map((toolInvocation) => {\n if (toolInvocation.state === 'call') {\n needsUpdate = true\n return {\n ...toolInvocation,\n state: 'result',\n result: {\n content: 'Tool execution was cancelled',\n __cancelled: true // Special marker to indicate cancellation\n }\n } as const\n }\n return toolInvocation\n })\n\n if (needsUpdate) {\n updatedMessage = {\n ...updatedMessage,\n toolInvocations: updatedToolInvocations\n }\n }\n }\n\n if (lastAssistantMessage.parts && lastAssistantMessage.parts?.length > 0) {\n const updatedParts = lastAssistantMessage.parts.map((part: any) => {\n if (\n part.type === 'tool-invocation' &&\n part.toolInvocation &&\n part.toolInvocation.state === 'call'\n ) {\n needsUpdate = true\n return {\n ...part,\n toolInvocation: {\n ...part.toolInvocation,\n state: 'result',\n result: {\n content: 'Tool execution was cancelled',\n __cancelled: true\n }\n }\n }\n }\n return part\n })\n\n if (needsUpdate) {\n updatedMessage = {\n ...updatedMessage,\n parts: updatedParts\n }\n }\n }\n\n if (needsUpdate) {\n const messageIndex = latestMessages.findIndex((m) => m.id === lastAssistantMessage.id)\n if (messageIndex !== -1) {\n latestMessages[messageIndex] = updatedMessage\n setMessages(latestMessages)\n }\n }\n }, [stop, setMessages, messagesRef])\n\n const messageOptions = useCallback(\n (message: Message) => ({\n actions: onRateResponse ? (\n <>\n <div className=\"border-r pr-1\">\n <CopyButton content={message.content} copyMessage=\"Copied response to clipboard!\" />\n </div>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n className=\"h-6 w-6\"\n onClick={() => onRateResponse(message.id, 'thumbs-up')}\n >\n <ThumbsUp className=\"h-4 w-4\" />\n </Button>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n className=\"h-6 w-6\"\n onClick={() => onRateResponse(message.id, 'thumbs-down')}\n >\n <ThumbsDown className=\"h-4 w-4\" />\n </Button>\n </>\n ) : (\n <CopyButton content={message.content} copyMessage=\"Copied response to clipboard!\" />\n )\n }),\n [onRateResponse]\n )\n\n return (\n <ChatContainer className={className}>\n {isEmpty && append && suggestions ? (\n <PromptSuggestions label=\"Try these prompts ✨\" append={append} suggestions={suggestions} />\n ) : null}\n\n {messages.length > 0 ? (\n <ChatMessages messages={messages}>\n <MessageList messages={messages} isTyping={isTyping} messageOptions={messageOptions} />\n </ChatMessages>\n ) : null}\n\n <ChatForm\n className=\"mt-auto\"\n isPending={isGenerating || isTyping}\n handleSubmit={handleSubmit}\n >\n <MessageInput\n value={input}\n onChange={handleInputChange}\n stop={handleStop}\n isGenerating={isGenerating}\n />\n </ChatForm>\n </ChatContainer>\n )\n}\nChat.displayName = 'Chat'\n\nfunction ChatMessages({\n messages,\n children\n}: React.PropsWithChildren<{\n messages: Message[]\n}>) {\n const { containerRef, scrollToBottom, handleScroll, shouldAutoScroll, handleTouchStart } =\n useAutoScroll([messages])\n\n return (\n <div\n className=\"grid grid-cols-1 overflow-y-auto pb-4\"\n ref={containerRef}\n onScroll={handleScroll}\n onTouchStart={handleTouchStart}\n >\n <div className=\"max-w-full [grid-column:1/1] [grid-row:1/1]\">{children}</div>\n\n {!shouldAutoScroll && (\n <div className=\"pointer-events-none flex flex-1 items-end justify-end [grid-column:1/1] [grid-row:1/1]\">\n <div className=\"sticky bottom-0 left-0 flex w-full justify-end\">\n <Button\n onClick={scrollToBottom}\n className=\"pointer-events-auto h-8 w-8 rounded-full ease-in-out animate-in fade-in-0 slide-in-from-bottom-1\"\n size=\"icon\"\n variant=\"ghost\"\n >\n <ArrowDown className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n )}\n </div>\n )\n}\n\nexport const ChatContainer = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('grid max-h-full w-full grid-rows-[1fr_auto]', className)}\n {...props}\n />\n )\n }\n)\nChatContainer.displayName = 'ChatContainer'\n\ninterface ChatFormProps {\n className?: string\n isPending: boolean\n handleSubmit: (event?: { preventDefault?: () => void }) => void\n children: ReactElement\n}\n\nexport const ChatForm = forwardRef<HTMLFormElement, ChatFormProps>(\n ({ children, handleSubmit, className }, ref) => {\n const onSubmit = (event: React.FormEvent) => {\n handleSubmit(event)\n }\n\n return (\n <form ref={ref} onSubmit={onSubmit} className={className}>\n {children}\n </form>\n )\n }\n)\nChatForm.displayName = 'ChatForm'\n","import React, { useEffect, useRef, useState } from \"react\";\n\nconst sizerStyle: React.CSSProperties = {\n\tposition: \"absolute\",\n\ttop: 0,\n\tleft: 0,\n\tvisibility: \"hidden\",\n\theight: 0,\n\toverflow: \"scroll\",\n\twhiteSpace: \"pre\",\n};\n\nconst INPUT_PROPS_BLACKLIST: Array<keyof AutosizeInputProps> = [\n\t\"extraWidth\",\n\t\"injectStyles\",\n\t\"inputClassName\",\n\t\"inputRef\",\n\t\"inputStyle\",\n\t\"minWidth\",\n\t\"onAutosize\",\n\t\"placeholderIsMinWidth\",\n];\n\ninterface AutosizeInputProps\n\textends React.InputHTMLAttributes<HTMLInputElement> {\n\tclassName?: string;\n\textraWidth?: number | string;\n\tinjectStyles?: boolean;\n\tinputClassName?: string;\n\tinputRef?: React.RefCallback<HTMLInputElement | null>;\n\tinputStyle?: React.CSSProperties;\n\tminWidth?: number | string;\n\tonAutosize?: (newWidth: number) => void;\n\tplaceholderIsMinWidth?: boolean;\n}\n\nconst cleanInputProps = (\n\tinputProps: AutosizeInputProps,\n): AutosizeInputProps => {\n\tconst cleanedProps = { ...inputProps };\n\tfor (const field of INPUT_PROPS_BLACKLIST) {\n\t\tdelete cleanedProps[field];\n\t}\n\treturn cleanedProps;\n};\n\nconst copyStyles = (styles: CSSStyleDeclaration, node: HTMLElement) => {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nconst AutosizeInput: React.FC<AutosizeInputProps> = (props) => {\n\tconst {\n\t\tclassName,\n\t\tstyle,\n\t\tinputStyle,\n\t\tinputClassName,\n\t\tid,\n\t\tminWidth = 1,\n\t\tinjectStyles = true,\n\t\tonAutosize,\n\t\textraWidth,\n\t\tinputRef,\n\t\tplaceholder,\n\t\tvalue,\n\t\tdefaultValue,\n\t\tplaceholderIsMinWidth,\n\t\t...rest\n\t} = props;\n\n\tconst [inputWidth, setInputWidth] = useState<number>(\n\t\ttypeof minWidth === \"number\" ? minWidth : Number.parseInt(minWidth),\n\t);\n\tconst [inputId] = useState<string>(id || \"uniqueid\");\n\tconst inputEl = useRef<HTMLInputElement | null>(null);\n\tconst sizerEl = useRef<HTMLDivElement | null>(null);\n\tconst placeHolderSizerEl = useRef<HTMLDivElement | null>(null);\n\n\tuseEffect(() => {\n\t\tconst updateInputWidth = () => {\n\t\t\tif (\n\t\t\t\t!sizerEl.current ||\n\t\t\t\ttypeof sizerEl.current.scrollWidth === \"undefined\"\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tlet newInputWidth: number;\n\t\t\tif (placeholder && (!value || (value && placeholderIsMinWidth))) {\n\t\t\t\tnewInputWidth =\n\t\t\t\t\tMath.max(\n\t\t\t\t\t\tsizerEl.current.scrollWidth,\n\t\t\t\t\t\tplaceHolderSizerEl.current?.scrollWidth || 0,\n\t\t\t\t\t) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = sizerEl.current.scrollWidth + 2;\n\t\t\t}\n\n\t\t\tconst calculatedExtraWidth =\n\t\t\t\tprops.type === \"number\" && extraWidth === undefined\n\t\t\t\t\t? 16\n\t\t\t\t\t: Number.parseInt(extraWidth as string) || 0;\n\t\t\tnewInputWidth += calculatedExtraWidth;\n\n\t\t\tif (\n\t\t\t\tnewInputWidth <\n\t\t\t\t(typeof minWidth === \"number\" ? minWidth : Number.parseInt(minWidth))\n\t\t\t) {\n\t\t\t\tnewInputWidth =\n\t\t\t\t\ttypeof minWidth === \"number\" ? minWidth : Number.parseInt(minWidth);\n\t\t\t}\n\n\t\t\tif (newInputWidth !== inputWidth) {\n\t\t\t\tsetInputWidth(newInputWidth);\n\t\t\t\tif (onAutosize) {\n\t\t\t\t\tonAutosize(newInputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst handleCopyInputStyles = () => {\n\t\t\tif (!window.getComputedStyle) return;\n\t\t\tconst inputStyles =\n\t\t\t\tinputEl.current && window.getComputedStyle(inputEl.current);\n\t\t\tif (!inputStyles) return;\n\t\t\tif (sizerEl.current) {\n\t\t\t\tcopyStyles(inputStyles, sizerEl.current);\n\t\t\t}\n\t\t\tif (placeHolderSizerEl.current) {\n\t\t\t\tcopyStyles(inputStyles, placeHolderSizerEl.current);\n\t\t\t}\n\t\t};\n\n\t\thandleCopyInputStyles();\n\t\tupdateInputWidth();\n\t}, [\n\t\tvalue,\n\t\tplaceholder,\n\t\tplaceholderIsMinWidth,\n\t\textraWidth,\n\t\tminWidth,\n\t\tinputWidth,\n\t\tonAutosize,\n\t]);\n\n\tconst sizerValue = [defaultValue, value, \"\"].reduce<any>(\n\t\t(previousValue, currentValue) => {\n\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\treturn previousValue;\n\t\t\t}\n\t\t\treturn currentValue;\n\t\t},\n\t\tundefined, // Initial value for reduce\n\t);\n\n\treturn (\n\t\t<div className={className} style={{ display: \"inline-block\", ...style }}>\n\t\t\t<input\n\t\t\t\t{...cleanInputProps(rest)}\n\t\t\t\tclassName={inputClassName}\n\t\t\t\tid={inputId}\n\t\t\t\tvalue={value}\n\t\t\t\tstyle={{\n\t\t\t\t\tboxSizing: \"content-box\",\n\t\t\t\t\twidth: `${inputWidth}px`,\n\t\t\t\t\t...inputStyle,\n\t\t\t\t}}\n\t\t\t\tref={(el) => {\n\t\t\t\t\tinputEl.current = el;\n\t\t\t\t\tif (inputRef) inputRef(el);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<div ref={sizerEl} style={sizerStyle}>\n\t\t\t\t{sizerValue}\n\t\t\t</div>\n\t\t\t{placeholder && (\n\t\t\t\t<div ref={placeHolderSizerEl} style={sizerStyle}>\n\t\t\t\t\t{placeholder}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default AutosizeInput;\n","import * as React from 'react'\nimport { cn } from '@/lib/cn'\n\ninterface ShellProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport function Shell({ className, children, ...props }: ShellProps) {\n return (\n <div className={cn('w-full h-full', className)} {...props}>\n {children}\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport { OTPInput, OTPInputContext } from 'input-otp'\nimport { Minus } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn('flex items-center gap-2 has-disabled:opacity-50', containerClassName)}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n))\nInputOTP.displayName = 'InputOTP'\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center', className)} {...props} />\n))\nInputOTPGroup.displayName = 'InputOTPGroup'\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n\n return (\n <div\n ref={ref}\n className={cn(\n 'relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-sm shadow-xs transition-all first:rounded-l-md first:border-l last:rounded-r-md',\n isActive && 'z-10 ring-1 ring-ring',\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n})\nInputOTPSlot.displayName = 'InputOTPSlot'\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Minus />\n </div>\n))\nInputOTPSeparator.displayName = 'InputOTPSeparator'\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import { cn } from \"@/lib/cn\";\n\ninterface BorderBeamProps {\n\tclassName?: string;\n\tsize?: number;\n\tduration?: number;\n\tborderWidth?: number;\n\tanchor?: number;\n\tcolorFrom?: string;\n\tcolorTo?: string;\n\tdelay?: number;\n}\n\nexport function BorderBeam({\n\tclassName,\n\tsize = 200,\n\tduration = 15,\n\tanchor = 90,\n\tborderWidth = 1.5,\n\tcolorFrom = \"#ffaa40\",\n\tcolorTo = \"#9c40ff\",\n\tdelay = 0,\n}: BorderBeamProps) {\n\treturn (\n\t\t<div\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\t\"--size\": size,\n\t\t\t\t\t\"--duration\": duration,\n\t\t\t\t\t\"--anchor\": anchor,\n\t\t\t\t\t\"--border-width\": borderWidth,\n\t\t\t\t\t\"--color-from\": colorFrom,\n\t\t\t\t\t\"--color-to\": colorTo,\n\t\t\t\t\t\"--delay\": `-${delay}s`,\n\t\t\t\t} as React.CSSProperties\n\t\t\t}\n\t\t\tclassName={cn(\n\t\t\t\t\"pointer-events-none absolute inset-0 rounded-[inherit] [border:calc(var(--border-width)*1px)_solid_transparent]\",\n\n\t\t\t\t// mask styles\n\t\t\t\t\"![mask-clip:padding-box,border-box] ![mask-composite:intersect] [mask:linear-gradient(transparent,transparent),linear-gradient(white,white)]\",\n\n\t\t\t\t// pseudo styles\n\t\t\t\t\"after:animate-border-beam after:absolute after:aspect-square after:w-[calc(var(--size)*1px)] after:[animation-delay:var(--delay)] after:[background:linear-gradient(to_left,var(--color-from),var(--color-to),transparent)] after:[offset-anchor:calc(var(--anchor)*1%)_50%] after:[offset-path:rect(0_auto_auto_0_round_calc(var(--size)*1px))]\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t/>\n\t);\n}\n","\"use client\";\n\nimport { memo, useCallback, useEffect, useRef } from \"react\";\nimport { cn } from \"@/lib/cn\";\nimport { animate } from \"motion/react\";\n\ninterface GlowingEffectProps {\n\tblur?: number;\n\tinactiveZone?: number;\n\tproximity?: number;\n\tspread?: number;\n\tvariant?: \"default\" | \"white\";\n\tglow?: boolean;\n\tclassName?: string;\n\tdisabled?: boolean;\n\tmovementDuration?: number;\n\tborderWidth?: number;\n}\nconst GlowingEffect = memo(\n\t({\n\t\tblur = 0,\n\t\tinactiveZone = 0.7,\n\t\tproximity = 0,\n\t\tspread = 20,\n\t\tvariant = \"default\",\n\t\tglow = false,\n\t\tclassName,\n\t\tmovementDuration = 2,\n\t\tborderWidth = 1,\n\t\tdisabled = true,\n\t}: GlowingEffectProps) => {\n\t\tconst containerRef = useRef<HTMLDivElement>(null);\n\t\tconst lastPosition = useRef({ x: 0, y: 0 });\n\t\tconst animationFrameRef = useRef<number>(0);\n\n\t\tconst handleMove = useCallback(\n\t\t\t(e?: MouseEvent | { x: number; y: number }) => {\n\t\t\t\tif (!containerRef.current) return;\n\n\t\t\t\tif (animationFrameRef.current) {\n\t\t\t\t\tcancelAnimationFrame(animationFrameRef.current);\n\t\t\t\t}\n\n\t\t\t\tanimationFrameRef.current = requestAnimationFrame(() => {\n\t\t\t\t\tconst element = containerRef.current;\n\t\t\t\t\tif (!element) return;\n\n\t\t\t\t\tconst { left, top, width, height } = element.getBoundingClientRect();\n\t\t\t\t\tconst mouseX = e?.x ?? lastPosition.current.x;\n\t\t\t\t\tconst mouseY = e?.y ?? lastPosition.current.y;\n\n\t\t\t\t\tif (e) {\n\t\t\t\t\t\tlastPosition.current = { x: mouseX, y: mouseY };\n\t\t\t\t\t}\n\n\t\t\t\t\tconst center = [left + width * 0.5, top + height * 0.5];\n\t\t\t\t\tconst distanceFromCenter = Math.hypot(\n\t\t\t\t\t\tmouseX - center[0],\n\t\t\t\t\t\tmouseY - center[1],\n\t\t\t\t\t);\n\t\t\t\t\tconst inactiveRadius = 0.5 * Math.min(width, height) * inactiveZone;\n\n\t\t\t\t\tif (distanceFromCenter < inactiveRadius) {\n\t\t\t\t\t\telement.style.setProperty(\"--active\", \"0\");\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst isActive =\n\t\t\t\t\t\tmouseX > left - proximity &&\n\t\t\t\t\t\tmouseX < left + width + proximity &&\n\t\t\t\t\t\tmouseY > top - proximity &&\n\t\t\t\t\t\tmouseY < top + height + proximity;\n\n\t\t\t\t\telement.style.setProperty(\"--active\", isActive ? \"1\" : \"0\");\n\n\t\t\t\t\tif (!isActive) return;\n\n\t\t\t\t\tconst currentAngle =\n\t\t\t\t\t\tNumber.parseFloat(element.style.getPropertyValue(\"--start\")) || 0;\n\t\t\t\t\tconst targetAngle =\n\t\t\t\t\t\t(180 * Math.atan2(mouseY - center[1], mouseX - center[0])) /\n\t\t\t\t\t\t\tMath.PI +\n\t\t\t\t\t\t90;\n\n\t\t\t\t\tconst angleDiff = ((targetAngle - currentAngle + 180) % 360) - 180;\n\t\t\t\t\tconst newAngle = currentAngle + angleDiff;\n\n\t\t\t\t\tanimate(currentAngle, newAngle, {\n\t\t\t\t\t\tduration: movementDuration,\n\t\t\t\t\t\tease: [0.16, 1, 0.3, 1],\n\t\t\t\t\t\tonUpdate: (value) => {\n\t\t\t\t\t\t\telement.style.setProperty(\"--start\", String(value));\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\t[inactiveZone, proximity, movementDuration],\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\tif (disabled) return;\n\n\t\t\tconst handleScroll = () => handleMove();\n\t\t\tconst handlePointerMove = (e: PointerEvent) => handleMove(e);\n\n\t\t\twindow.addEventListener(\"scroll\", handleScroll, { passive: true });\n\t\t\tdocument.body.addEventListener(\"pointermove\", handlePointerMove, {\n\t\t\t\tpassive: true,\n\t\t\t});\n\n\t\t\treturn () => {\n\t\t\t\tif (animationFrameRef.current) {\n\t\t\t\t\tcancelAnimationFrame(animationFrameRef.current);\n\t\t\t\t}\n\t\t\t\twindow.removeEventListener(\"scroll\", handleScroll);\n\t\t\t\tdocument.body.removeEventListener(\"pointermove\", handlePointerMove);\n\t\t\t};\n\t\t}, [handleMove, disabled]);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"pointer-events-none absolute -inset-px hidden rounded-[inherit] border opacity-0 transition-opacity\",\n\t\t\t\t\t\tglow && \"opacity-100\",\n\t\t\t\t\t\tvariant === \"white\" && \"border-white\",\n\t\t\t\t\t\tdisabled && \"!block\",\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t\t<div\n\t\t\t\t\tref={containerRef}\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--blur\": `${blur}px`,\n\t\t\t\t\t\t\t\"--spread\": spread,\n\t\t\t\t\t\t\t\"--start\": \"0\",\n\t\t\t\t\t\t\t\"--active\": \"0\",\n\t\t\t\t\t\t\t\"--glowingeffect-border-width\": `${borderWidth}px`,\n\t\t\t\t\t\t\t\"--repeating-conic-gradient-times\": \"5\",\n\t\t\t\t\t\t\t\"--gradient\":\n\t\t\t\t\t\t\t\tvariant === \"white\"\n\t\t\t\t\t\t\t\t\t? `repeating-conic-gradient(\n from 236.84deg at 50% 50%,\n var(--black),\n var(--black) calc(25% / var(--repeating-conic-gradient-times))\n )`\n\t\t\t\t\t\t\t\t\t: `radial-gradient(circle, #dd7bbb 10%, #dd7bbb00 20%),\n radial-gradient(circle at 40% 40%, #d79f1e 5%, #d79f1e00 15%),\n radial-gradient(circle at 60% 60%, #5a922c 10%, #5a922c00 20%), \n radial-gradient(circle at 40% 60%, #4c7894 10%, #4c789400 20%),\n repeating-conic-gradient(\n from 236.84deg at 50% 50%,\n #dd7bbb 0%,\n #d79f1e calc(25% / var(--repeating-conic-gradient-times)),\n #5a922c calc(50% / var(--repeating-conic-gradient-times)), \n #4c7894 calc(75% / var(--repeating-conic-gradient-times)),\n #dd7bbb calc(100% / var(--repeating-conic-gradient-times))\n )`,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"pointer-events-none absolute inset-0 rounded-[inherit] opacity-100 transition-opacity\",\n\t\t\t\t\t\tglow && \"opacity-100\",\n\t\t\t\t\t\tblur > 0 && \"blur-[var(--blur)] \",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\tdisabled && \"!hidden\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"glow\",\n\t\t\t\t\t\t\t\"rounded-[inherit]\",\n\t\t\t\t\t\t\t'after:content-[\"\"] after:rounded-[inherit] after:absolute after:inset-[calc(-1*var(--glowingeffect-border-width))]',\n\t\t\t\t\t\t\t\"after:[border:var(--glowingeffect-border-width)_solid_transparent]\",\n\t\t\t\t\t\t\t\"after:[background:var(--gradient)] after:[background-attachment:fixed]\",\n\t\t\t\t\t\t\t\"after:opacity-[var(--active)] after:transition-opacity after:duration-300\",\n\t\t\t\t\t\t\t\"after:[mask-clip:padding-box,border-box]\",\n\t\t\t\t\t\t\t\"after:[mask-composite:intersect]\",\n\t\t\t\t\t\t\t\"after:[mask-image:linear-gradient(#0000,#0000),conic-gradient(from_calc((var(--start)-var(--spread))*1deg),#00000000_0deg,#fff,#00000000_calc(var(--spread)*2deg))]\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t},\n);\n\nGlowingEffect.displayName = \"GlowingEffect\";\n\nexport { GlowingEffect };\n","import { Loader2 } from \"lucide-react\";\n\ninterface ImageLoadingProps {\n\tmessage?: string;\n}\n\nexport function ImageLoading({\n\tmessage = \"Loading images...\",\n}: ImageLoadingProps) {\n\treturn (\n\t\t<div className=\"flex flex-col items-center justify-center p-8 text-center\">\n\t\t\t<Loader2 className=\"h-8 w-8 animate-spin text-muted-foreground mb-4\" />\n\t\t\t<p className=\"text-sm text-muted-foreground\">{message}</p>\n\t\t</div>\n\t);\n}\n","'use client'\n\nimport { useState } from 'react'\nimport Image, { ImageProps } from 'next/image'\nimport { cn } from '@/lib/cn'\n\ninterface ImageSkeletonProps extends ImageProps {\n skeletonClassName?: string\n containerClassName?: string\n}\n\nexport default function ImageSkeleton({\n className,\n skeletonClassName,\n containerClassName,\n alt,\n ...props\n}: ImageSkeletonProps) {\n const [isLoading, setIsLoading] = useState(true)\n\n const handleLoad = () => {\n setIsLoading(false)\n }\n\n return (\n <div\n className={cn('relative overflow-hidden', containerClassName)}\n style={{\n width: props.width || '100%',\n height: props.height || 'auto'\n }}\n >\n {/* 骨架屏 */}\n {isLoading && (\n <div\n className={cn(\n 'absolute inset-0 animate-pulse bg-gray-200 dark:bg-gray-700 rounded-normal overflow-hidden',\n skeletonClassName\n )}\n >\n <div className=\"h-full w-full bg-gradient-to-r from-gray-200 via-gray-100 to-gray-200 animate-shimmer bg-[length:200%_100%]\" />\n </div>\n )}\n\n {/* Next.js Image 组件 */}\n <Image\n {...props}\n alt={alt}\n className={cn(\n 'transition-opacity duration-300',\n isLoading ? 'opacity-0' : 'opacity-100',\n className\n )}\n onLoad={handleLoad}\n />\n\n {/* @ts-ignore */}\n <style jsx global>{`\n @keyframes shimmer {\n 0% {\n background-position: -200% 0;\n }\n 100% {\n background-position: 200% 0;\n }\n }\n .animate-shimmer {\n animation: shimmer 2s infinite linear;\n }\n `}</style>\n </div>\n )\n}\n","import * as React from \"react\";\nimport Dropzone, {\n\ttype DropzoneProps,\n\ttype FileRejection,\n} from \"react-dropzone\";\nimport { cn } from \"@/lib/cn\";\nimport { PlusIcon } from \"lucide-react\";\nimport { useTranslations } from \"next-intl\";\nimport { toast } from 'sonner'\n\ninterface DroppableProps extends React.HTMLAttributes<HTMLDivElement> {\n\tonValueChange?: (files: File[]) => void;\n\taccept?: DropzoneProps[\"accept\"];\n\tmaxSize?: DropzoneProps[\"maxSize\"];\n\tmaxFileCount?: DropzoneProps[\"maxFiles\"];\n\tmultiple?: boolean;\n\tdisabled?: boolean;\n\tchildren?: React.ReactNode;\n}\n\nexport function Droppable(props: DroppableProps) {\n\tconst t = useTranslations();\n\tconst {\n\t\tonValueChange,\n\t\taccept = {\n\t\t\t\"image/*\": [],\n\t\t},\n\t\tmaxSize = 1024 * 1024 * 50,\n\t\tmaxFileCount = 5,\n\t\tmultiple = true,\n\t\tdisabled = false,\n\t\tclassName,\n\t\tchildren,\n\t\t...dropzoneProps\n\t} = props;\n\n\tconst onDrop = React.useCallback(\n\t\t(acceptedFiles: File[], rejectedFiles: FileRejection[]) => {\n\t\t\tif (acceptedFiles.length + rejectedFiles.length > maxFileCount) {\n\t\t\t\ttoast.error(t('editor_maxFileCount', {num: maxFileCount}), {\n\t\t\t\t\tposition: 'top-center',\n style: {\n color: 'red'\n }\n })\n\t\t\t\treturn;\n\t\t\t}else if (rejectedFiles.length > 0) {\n\t\t\t\tconst code = rejectedFiles[0].errors[0].code\n\t\t\t\tif(code === 'file-invalid-type') {\n\t\t\t\t\ttoast.error(t('editor_fileType', {types: Object.keys(accept).join('、')}), {\n\t\t\t\t\t\tposition: 'top-center',\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: 'red'\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}else if(code === 'file-too-large') {\n\t\t\t\t\ttoast.error(t('editor_fileTooLarge', {size: Math.floor(maxSize / 1024 / 1024) + 'MB'}), {\n\t\t\t\t\t\tposition: 'top-center',\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: 'red'\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\tonValueChange?.(acceptedFiles);\n\t\t},\n\t\t[maxFileCount, multiple],\n\t);\n\n\treturn (\n\t\t<Dropzone\n\t\t\tonDrop={onDrop}\n\t\t\taccept={accept}\n\t\t\tmaxSize={maxSize}\n\t\t\tmaxFiles={maxFileCount}\n\t\t\tmultiple={maxFileCount > 1 || multiple}\n\t\t\tdisabled={disabled}\n\t\t\t// noClick\n\t\t>\n\t\t\t{({ getRootProps, getInputProps, isDragActive }) => (\n\t\t\t\t<div\n\t\t\t\t\t{...getRootProps()}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n\t\t\t\t\t\tdisabled && \"pointer-events-none opacity-60\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...dropzoneProps}\n\t\t\t\t>\n\t\t\t\t\t<input {...getInputProps()} />\n\t\t\t\t\t{isDragActive ? (\n\t\t\t\t\t\t<div className=\"flex h-full flex-col items-center justify-center gap-4 border-2 border-dashed border-zinc-600 bg-zinc-900\">\n\t\t\t\t\t\t\t<div className=\"rounded-full border border-dashed p-3\">\n\t\t\t\t\t\t\t\t<PlusIcon\n\t\t\t\t\t\t\t\t\tclassName=\"size-5 text-muted-foreground\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<p className=\"font-medium text-muted-foreground\">\n\t\t\t\t\t\t\t\t{t('editor_dragFileHere')}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>{children}</>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Dropzone>\n\t);\n}\n","\"use client\";\n\nimport React, { useEffect } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { FileIcon, X } from \"lucide-react\";\n\ninterface FilePreviewProps {\n\tfile: File;\n\tonRemove?: () => void;\n}\n\nexport const FilePreview = React.forwardRef<HTMLDivElement, FilePreviewProps>(\n\t(props, ref) => {\n\t\tif (props.file.type.startsWith(\"image/\")) {\n\t\t\treturn <ImageFilePreview {...props} ref={ref} />;\n\t\t}\n\n\t\tif (\n\t\t\tprops.file.type.startsWith(\"text/\") ||\n\t\t\tprops.file.name.endsWith(\".txt\") ||\n\t\t\tprops.file.name.endsWith(\".md\")\n\t\t) {\n\t\t\treturn <TextFilePreview {...props} ref={ref} />;\n\t\t}\n\n\t\treturn <GenericFilePreview {...props} ref={ref} />;\n\t},\n);\nFilePreview.displayName = \"FilePreview\";\n\nconst ImageFilePreview = React.forwardRef<HTMLDivElement, FilePreviewProps>(\n\t({ file, onRemove }, ref) => {\n\t\treturn (\n\t\t\t<motion.div\n\t\t\t\tref={ref}\n\t\t\t\tclassName=\"relative flex max-w-[200px] rounded-normal border p-1.5 pr-2 text-xs\"\n\t\t\t\tlayout\n\t\t\t\tinitial={{ opacity: 0, y: \"100%\" }}\n\t\t\t\tanimate={{ opacity: 1, y: 0 }}\n\t\t\t\texit={{ opacity: 0, y: \"100%\" }}\n\t\t\t>\n\t\t\t\t<div className=\"flex w-full items-center space-x-2\">\n\t\t\t\t\t{/* eslint-disable-next-line @next/next/no-img-element */}\n\t\t\t\t\t<img\n\t\t\t\t\t\talt={`Attachment ${file.name}`}\n\t\t\t\t\t\tclassName=\"grid h-10 w-10 shrink-0 place-items-center rounded-normal border bg-muted object-cover\"\n\t\t\t\t\t\tsrc={URL.createObjectURL(file)}\n\t\t\t\t\t/>\n\t\t\t\t\t<span className=\"w-full truncate text-muted-foreground\">\n\t\t\t\t\t\t{file.name}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t{onRemove ? (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"absolute -right-2 -top-2 flex h-4 w-4 items-center justify-center rounded-full border bg-background\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\taria-label=\"Remove attachment\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<X className=\"h-2.5 w-2.5\" />\n\t\t\t\t\t</button>\n\t\t\t\t) : null}\n\t\t\t</motion.div>\n\t\t);\n\t},\n);\nImageFilePreview.displayName = \"ImageFilePreview\";\n\nconst TextFilePreview = React.forwardRef<HTMLDivElement, FilePreviewProps>(\n\t({ file, onRemove }, ref) => {\n\t\tconst [preview, setPreview] = React.useState<string>(\"\");\n\n\t\tuseEffect(() => {\n\t\t\tconst reader = new FileReader();\n\t\t\treader.onload = (e) => {\n\t\t\t\tconst text = e.target?.result as string;\n\t\t\t\tsetPreview(text.slice(0, 50) + (text.length > 50 ? \"...\" : \"\"));\n\t\t\t};\n\t\t\treader.readAsText(file);\n\t\t}, [file]);\n\n\t\treturn (\n\t\t\t<motion.div\n\t\t\t\tref={ref}\n\t\t\t\tclassName=\"relative flex max-w-[200px] rounded-normal border p-1.5 pr-2 text-xs\"\n\t\t\t\tlayout\n\t\t\t\tinitial={{ opacity: 0, y: \"100%\" }}\n\t\t\t\tanimate={{ opacity: 1, y: 0 }}\n\t\t\t\texit={{ opacity: 0, y: \"100%\" }}\n\t\t\t>\n\t\t\t\t<div className=\"flex w-full items-center space-x-2\">\n\t\t\t\t\t<div className=\"grid h-10 w-10 shrink-0 place-items-center rounded-normal border bg-muted p-0.5\">\n\t\t\t\t\t\t<div className=\"h-full w-full overflow-hidden text-[6px] leading-none text-muted-foreground\">\n\t\t\t\t\t\t\t{preview || \"Loading...\"}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span className=\"w-full truncate text-muted-foreground\">\n\t\t\t\t\t\t{file.name}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t{onRemove ? (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"absolute -right-2 -top-2 flex h-4 w-4 items-center justify-center rounded-full border bg-background\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\taria-label=\"Remove attachment\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<X className=\"h-2.5 w-2.5\" />\n\t\t\t\t\t</button>\n\t\t\t\t) : null}\n\t\t\t</motion.div>\n\t\t);\n\t},\n);\nTextFilePreview.displayName = \"TextFilePreview\";\n\nconst GenericFilePreview = React.forwardRef<HTMLDivElement, FilePreviewProps>(\n\t({ file, onRemove }, ref) => {\n\t\treturn (\n\t\t\t<motion.div\n\t\t\t\tref={ref}\n\t\t\t\tclassName=\"relative flex max-w-[200px] rounded-normal border p-1.5 pr-2 text-xs\"\n\t\t\t\tlayout\n\t\t\t\tinitial={{ opacity: 0, y: \"100%\" }}\n\t\t\t\tanimate={{ opacity: 1, y: 0 }}\n\t\t\t\texit={{ opacity: 0, y: \"100%\" }}\n\t\t\t>\n\t\t\t\t<div className=\"flex w-full items-center space-x-2\">\n\t\t\t\t\t<div className=\"grid h-10 w-10 shrink-0 place-items-center rounded-normal border bg-muted\">\n\t\t\t\t\t\t<FileIcon className=\"h-6 w-6 text-foreground\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<span className=\"w-full truncate text-muted-foreground\">\n\t\t\t\t\t\t{file.name}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t{onRemove ? (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"absolute -right-2 -top-2 flex h-4 w-4 items-center justify-center rounded-full border bg-background\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\taria-label=\"Remove attachment\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<X className=\"h-2.5 w-2.5\" />\n\t\t\t\t\t</button>\n\t\t\t\t) : null}\n\t\t\t</motion.div>\n\t\t);\n\t},\n);\nGenericFilePreview.displayName = \"GenericFilePreview\";\n","'use client'\n\nimport * as React from 'react'\nimport * as RechartsPrimitive from 'recharts'\n\nimport { cn } from '@/lib/cn'\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />')\n }\n\n return context\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n config: ChartConfig\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children']\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n})\nChartContainer.displayName = 'Chart'\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color)\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join('\\n')}\n}\n`\n )\n .join('\\n')\n }}\n />\n )\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: 'line' | 'dot' | 'dashed'\n nameKey?: string\n labelKey?: string\n }\n>(\n (\n {\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey\n },\n ref\n ) => {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey || item.dataKey || item.name || 'value'}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot'\n\n return (\n <div\n ref={ref}\n className={cn(\n 'grid min-w-[8rem] items-start gap-1.5 rounded-normal border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || item.payload.fill || item.color\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n 'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\n indicator === 'dot' && 'items-center'\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n 'shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)',\n {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent':\n indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed'\n }\n )}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center'\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n }\n)\nChartTooltipContent.displayName = 'ChartTooltip'\n\nconst ChartLegend = RechartsPrimitive.Legend\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\n hideIcon?: boolean\n nameKey?: string\n }\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center justify-center gap-4',\n verticalAlign === 'top' ? 'pb-3' : 'pt-3',\n className\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || 'value'}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={item.value}\n className={cn(\n 'flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground'\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n})\nChartLegendContent.displayName = 'ChartLegend'\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (key in payload && typeof payload[key as keyof typeof payload] === 'string') {\n configLabelKey = payload[key as keyof typeof payload] as string\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === 'string'\n ) {\n configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle\n}\n","import React, { useState, useEffect, useRef, ReactNode } from \"react\";\r\n\r\ninterface HorizontalScrollProps {\r\n\tchildren: ReactNode;\r\n\tclassName?: string;\r\n\tshowShadows?: boolean;\r\n\tshadowColor?: string;\r\n\tshadowWidth?: number;\r\n\tdebug?: boolean;\r\n}\r\n\r\nexport const HorizontalScroll: React.FC<HorizontalScrollProps> = ({\r\n\tchildren,\r\n\tclassName = \"\",\r\n\tshowShadows = true,\r\n\tshadowColor = \"black\",\r\n\tshadowWidth = 6,\r\n\tdebug = false,\r\n}) => {\r\n\tconst [showLeftShadow, setShowLeftShadow] = useState(false);\r\n\tconst [showRightShadow, setShowRightShadow] = useState(false);\r\n\tconst scrollRef = useRef<HTMLDivElement>(null);\r\n\r\n\tconst checkShadows = () => {\r\n\t\tif (!scrollRef.current) return;\r\n\r\n\t\tconst { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;\r\n\t\tconst shouldShowLeft = scrollLeft > 0;\r\n\t\tconst shouldShowRight = scrollLeft < scrollWidth - clientWidth - 1;\r\n\r\n\t\tsetShowLeftShadow(shouldShowLeft);\r\n\t\tsetShowRightShadow(shouldShowRight);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tconst element = scrollRef.current;\r\n\t\tif (!element) return;\r\n\r\n\t\tcheckShadows();\r\n\t\telement.addEventListener(\"scroll\", checkShadows);\r\n\t\twindow.addEventListener(\"resize\", checkShadows);\r\n\r\n\t\treturn () => {\r\n\t\t\telement.removeEventListener(\"scroll\", checkShadows);\r\n\t\t\twindow.removeEventListener(\"resize\", checkShadows);\r\n\t\t};\r\n\t}, [debug]);\r\n\r\n\treturn (\r\n\t\t<div className={`relative ${className}`}>\r\n\t\t\t{/* Debug indicator */}\r\n\t\t\t{debug && (\r\n\t\t\t\t<div className=\"absolute -top-6 left-0 text-xs text-red-400\">\r\n\t\t\t\t\tLeft: {showLeftShadow ? \"ON\" : \"OFF\"} | Right:{\" \"}\r\n\t\t\t\t\t{showRightShadow ? \"ON\" : \"OFF\"}\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\r\n\t\t\t{/* Left shadow */}\r\n\t\t\t{showShadows && showLeftShadow && (\r\n\t\t\t\t<div className=\"absolute left-0 top-0 bottom-0 w-6 bg-gradient-to-r from-black/50 via-black/30 to-transparent pointer-events-none z-20\" />\r\n\t\t\t)}\r\n\r\n\t\t\t{/* Right shadow */}\r\n\t\t\t{showShadows && showRightShadow && (\r\n\t\t\t\t<div className=\"absolute right-0 top-0 bottom-0 w-6 bg-gradient-to-l from-black/50 via-black/30 to-transparent pointer-events-none z-20\" />\r\n\t\t\t)}\r\n\r\n\t\t\t{/* Scrollable content */}\r\n\t\t\t<div\r\n\t\t\t\tref={scrollRef}\r\n\t\t\t\tclassName=\"overflow-x-auto [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]\"\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../node_modules/next/src/shared/lib/utils/warn-once.ts","../node_modules/next/src/shared/lib/image-blur-svg.ts","../node_modules/next/src/shared/lib/image-config.ts","../node_modules/next/src/shared/lib/get-img-props.ts","../node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../node_modules/next/src/shared/lib/side-effect.tsx","../node_modules/next/src/shared/lib/amp-context.shared-runtime.ts","../node_modules/next/src/shared/lib/head-manager-context.shared-runtime.ts","../node_modules/next/src/shared/lib/amp-mode.ts","../node_modules/next/src/shared/lib/head.tsx","../node_modules/next/src/shared/lib/image-config-context.shared-runtime.ts","../node_modules/next/src/shared/lib/router-context.shared-runtime.ts","../node_modules/next/dist/compiled/picomatch/index.js","../node_modules/next/src/shared/lib/match-local-pattern.ts","../node_modules/next/src/shared/lib/match-remote-pattern.ts","../node_modules/next/src/shared/lib/image-loader.ts","../node_modules/next/src/client/use-merged-ref.ts","../node_modules/next/src/client/image-component.tsx","../node_modules/next/src/shared/lib/image-external.tsx","../node_modules/next/image.js","../src/hooks/use-copy-to-clipboard.ts","../src/hooks/use-auto-scroll.ts","../src/hooks/use-autosize-textarea.ts","../src/hooks/use-mobile.ts","../src/hooks/use-narrow.ts","../src/lib/cn.ts","../src/components/button/button.styles.ts","../src/components/button/button.tsx","../src/components/input/input.tsx","../src/components/label/label.tsx","../src/components/badge/badge.tsx","../src/components/card/card.tsx","../src/components/checkbox/checkbox.tsx","../src/components/switch/switch.tsx","../src/components/tooltip/tooltip.tsx","../src/components/slider/slider.tsx","../src/components/progress/progress.tsx","../src/components/textarea/textarea.tsx","../src/components/radio-group/radio-group.tsx","../src/components/separator/separator.tsx","../src/components/skeleton/skeleton.tsx","../src/components/avatar/avatar.tsx","../src/components/aspect-ratio/aspect-ratio.tsx","../src/components/visually-hidden/visually-hidden.tsx","../src/components/svg/CloseIcon3.tsx","../src/components/dialog/dialog.tsx","../src/components/select/select.tsx","../src/components/popover/popover.tsx","../src/components/hover-card/hover-card.tsx","../src/components/sheet/sheet.tsx","../src/components/sheet/sheet.styles.ts","../src/components/drawer/drawer.tsx","../src/components/alert-dialog/alert-dialog.tsx","../src/components/scroll-area/scroll-area.tsx","../src/components/toggle/toggle.tsx","../src/components/toggle-group/toggle-group.tsx","../src/components/collapsible/collapsible.tsx","../src/components/alert/alert.tsx","../src/components/toast/toast.tsx","../src/components/toast/toast.styles.ts","../src/hooks/use-toast.ts","../src/components/toaster/toaster.tsx","../src/components/sonner/sonner.tsx","../src/components/table/table.tsx","../src/components/tabs/tabs.tsx","../src/components/accordion/accordion.tsx","../src/components/breadcrumb/breadcrumb.tsx","../src/components/navigation-menu/navigation-menu.tsx","../src/components/menubar/menubar.tsx","../src/components/dropdown-menu/dropdown-menu.tsx","../src/components/context-menu/context-menu.tsx","../src/components/sidebar/sidebar.tsx","../src/components/command/command.tsx","../src/components/calendar/calendar.tsx","../src/components/carousel/carousel.tsx","../src/components/pagination/pagination.tsx","../src/components/form/form.tsx","../src/components/resizable/resizable.tsx","../src/components/copy-button/copy-button.tsx","../src/components/interrupt-prompt/interrupt-prompt.tsx","../src/components/message-input/message-input.tsx","../src/components/markdown-renderer/markdown-renderer.tsx","../src/components/chat-message/chat-message.tsx","../src/components/typing-indicator/typing-indicator.tsx","../src/components/message-list/message-list.tsx","../src/components/prompt-suggestions/prompt-suggestions.tsx","../src/components/chat/chat.tsx","../src/components/autosize-input/autosize-input.tsx","../src/components/shell/shell.tsx","../src/components/input-otp/input-otp.tsx","../src/components/border-beam/border-beam.tsx","../src/components/glowing-effect/glowing-effect.tsx","../src/components/image-loading/image-loading.tsx","../src/components/image-skeleton/image-skeleton.tsx","../src/components/droppable/droppable.tsx","../src/components/file-preview/file-preview.tsx","../src/components/chart/chart.tsx","../src/components/horizontal-scroll/horizontal-scroll.tsx"],"names":["exports","warnOnce","_","process","env","NODE_ENV","warnings","Set","msg","has","console","warn","add","getImageBlurSvg","widthInt","heightInt","blurWidth","blurHeight","blurDataURL","objectFit","std","svgWidth","svgHeight","viewBox","preserveAspectRatio","VALID_LOADERS","imageConfigDefault","deviceSizes","imageSizes","path","loader","loaderFile","domains","disableStaticImages","minimumCacheTTL","formats","dangerouslyAllowSVG","contentSecurityPolicy","contentDispositionType","localPatterns","undefined","remotePatterns","qualities","unoptimized","getImgProps","VALID_LOADING_VALUES","INVALID_BACKGROUND_SIZE_VALUES","isStaticRequire","src","default","isStaticImageData","isStaticImport","allImgs","Map","perfObserver","getInt","x","Number","isFinite","NaN","test","parseInt","getWidths","width","sizes","allSizes","viewportWidthRe","percentSizes","match","exec","push","length","smallestRatio","Math","min","widths","filter","s","kind","map","w","find","p","generateImgAttrs","config","quality","srcSet","last","i","join","_state","priority","loading","className","height","fill","style","overrideSrc","onLoad","onLoadingComplete","placeholder","fetchPriority","decoding","layout","objectPosition","lazyBoundary","lazyRoot","rest","imgConf","showAltText","blurComplete","defaultLoader","c","sort","a","b","Error","isDefaultLoader","customImageLoader","obj","opts","layoutToStyle","intrinsic","maxWidth","responsive","layoutToSizes","layoutStyle","layoutSizes","staticSrc","staticImageData","JSON","stringify","ratio","round","isLazy","startsWith","split","endsWith","qualityInt","output","position","isNaN","includes","String","pathname","VALID_BLUR_EXT","urlStr","url","URL","err","search","legacyKey","legacyValue","Object","entries","window","PerformanceObserver","entryList","entry","getEntries","imgSrc","element","lcpImage","get","observe","type","buffered","error","imgStyle","assign","left","top","right","bottom","color","backgroundImage","backgroundSize","placeholderStyle","backgroundPosition","backgroundRepeat","imgAttributes","fullUrl","e","location","href","set","props","meta","nodeInterop","SideEffect","isServer","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","Boolean","updateHead","children","delete","_pendingUpdate","AmpStateContext","React","createContext","displayName","HeadManagerContext","isInAmpMode","ampFirst","hybrid","hasQuery","defaultHead","inAmpMode","head","charSet","name","content","onlyReactElement","list","child","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","len","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","srcMessage","cloneElement","Head","ampState","useContext","Effect","ImageConfigContext","RouterContext","t","u","n","o","r","X","hasLocalMatch","matchLocalPattern","pattern","makeRe","dot","urlPathAndQuery","some","hasRemoteMatch","matchRemotePattern","protocol","replace","port","hostname","domain","DEFAULT_Q","missingValues","NEXT_RUNTIME","require","parsedSrc","q","prev","cur","abs","encodeURIComponent","NEXT_DEPLOYMENT_ID","__next_img_default","useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","Image","configEnv","__NEXT_IMAGE_OPTS","globalThis","__NEXT_IMAGE_IMPORTED","handleLoading","img","onLoadRef","onLoadingCompleteRef","setBlurComplete","sizesInput","decode","Promise","resolve","catch","then","parentElement","isConnected","event","Event","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","origSrc","searchParams","getAttribute","widthViewportRatio","getBoundingClientRect","innerWidth","getComputedStyle","valid","heightModified","toString","widthModified","getDynamicProps","use","fetchpriority","ImageElement","forwardRef","forwardedRef","setShowAltText","onError","ownRef","complete","ref","data-nimg","ImagePreload","isAppRouter","as","imageSrcSet","crossOrigin","referrerPolicy","ReactDOM","preload","link","rel","pagesRouter","configContext","useMemo","useState","imgMeta","getImageProps","imgProps","toast","React2","twMerge","clsx","cva","React3","Slot","jsxs","jsx","Loader2","React4","EyeOff","Eye","React5","LabelPrimitive","React6","React7","CheckboxPrimitive","Check","React8","SwitchPrimitives","TooltipPrimitive","React9","React10","SliderPrimitive","AnimatePresence","motion","React11","ProgressPrimitive","React12","React13","RadioGroupPrimitive","Circle","React14","SeparatorPrimitive","React15","AvatarPrimitive","AspectRatioPrimitive","React16","DialogPrimitive","React17","React18","SelectPrimitive","ChevronDownIcon","ChevronUpIcon","CheckIcon","PopoverPrimitive","React19","HoverCardPrimitive","React20","SheetPrimitive","React21","sheetVariants","DrawerPrimitive","React22","AlertDialogPrimitive","React23","React24","ScrollAreaPrimitive","React25","TogglePrimitive","React26","ToggleGroupPrimitive","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","React27","ToastPrimitives","React28","toastVariants","React29","Toaster","useTheme","Sonner","React30","TabsPrimitive","React31","AccordionPrimitive","React32","ChevronDown","React33","ChevronRight","MoreHorizontal","React34","NavigationMenuPrimitive","MenubarPrimitive","React35","DropdownMenuPrimitive","React36","ContextMenuPrimitive","React37","React38","open","PanelLeft","React39","CommandPrimitive","Search","DayPicker","ChevronLeft","React40","useEmblaCarousel","api","ArrowLeft","ArrowRight","React41","FormProvider","React42","Controller","useFormContext","ResizablePrimitive","GripVertical","Copy","Square","ArrowUp","Markdown","remarkGfm","Suspense","Ban","Terminal","Code2","Dot","ThumbsUp","ThumbsDown","ArrowDown","React47","OTPInput","OTPInputContext","Minus","memo","animate","useTranslations","React48","Dropzone","PlusIcon","FileIcon","React50","RechartsPrimitive"],"mappings":"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","file":"index.cjs","sourcesContent":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */\nexport function getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number\n heightInt?: number\n blurWidth?: number\n blurHeight?: number\n blurDataURL: string\n objectFit?: string\n}): string {\n const std = 20\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''\n const preserveAspectRatio = viewBox\n ? 'none'\n : objectFit === 'contain'\n ? 'xMidYMid'\n : objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`\n}\n","export const VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom',\n] as const\n\nexport type LoaderValue = (typeof VALID_LOADERS)[number]\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nexport type ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nexport type LocalPattern = {\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\nexport type RemotePattern = {\n /**\n * Must be `http` or `https`.\n */\n protocol?: 'http' | 'https'\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single subdomain.\n * Double `**` matches any number of subdomains.\n */\n hostname: string\n\n /**\n * Can be literal port such as `8080` or empty string\n * meaning no port.\n */\n port?: string\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\ntype ImageFormat = 'image/avif' | 'image/webp'\n\n/**\n * Image configurations\n *\n * @see [Image configuration options](https://nextjs.org/docs/api-reference/next/image#configuration-options)\n */\nexport type ImageConfigComplete = {\n /** @see [Device sizes documentation](https://nextjs.org/docs/api-reference/next/image#device-sizes) */\n deviceSizes: number[]\n\n /** @see [Image sizing documentation](https://nextjs.org/docs/app/building-your-application/optimizing/images#image-sizing) */\n imageSizes: number[]\n\n /** @see [Image loaders configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader) */\n loader: LoaderValue\n\n /** @see [Image loader configuration](https://nextjs.org/docs/app/api-reference/components/image#path) */\n path: string\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/image#loader-configuration) */\n loaderFile: string\n\n /**\n * @deprecated Use `remotePatterns` instead.\n */\n domains: string[]\n\n /** @see [Disable static image import configuration](https://nextjs.org/docs/api-reference/next/image#disable-static-imports) */\n disableStaticImages: boolean\n\n /** @see [Cache behavior](https://nextjs.org/docs/api-reference/next/image#caching-behavior) */\n minimumCacheTTL: number\n\n /** @see [Acceptable formats](https://nextjs.org/docs/api-reference/next/image#acceptable-formats) */\n formats: ImageFormat[]\n\n /** @see [Dangerously Allow SVG](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-svg) */\n dangerouslyAllowSVG: boolean\n\n /** @see [Content Security Policy](https://nextjs.org/docs/api-reference/next/image#contentsecuritypolicy) */\n contentSecurityPolicy: string\n\n /** @see [Content Disposition Type](https://nextjs.org/docs/api-reference/next/image#contentdispositiontype) */\n contentDispositionType: 'inline' | 'attachment'\n\n /** @see [Remote Patterns](https://nextjs.org/docs/api-reference/next/image#remotepatterns) */\n remotePatterns: Array<URL | RemotePattern>\n\n /** @see [Local Patterns](https://nextjs.org/docs/api-reference/next/image#localPatterns) */\n localPatterns: LocalPattern[] | undefined\n\n /** @see [Qualities](https://nextjs.org/docs/api-reference/next/image#qualities) */\n qualities: number[] | undefined\n\n /** @see [Unoptimized](https://nextjs.org/docs/api-reference/next/image#unoptimized) */\n unoptimized: boolean\n}\n\nexport type ImageConfig = Partial<ImageConfigComplete>\n\nexport const imageConfigDefault: ImageConfigComplete = {\n deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 60,\n formats: ['image/webp'],\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,\n contentDispositionType: 'attachment',\n localPatterns: undefined, // default: allow all local images\n remotePatterns: [], // default: allow no remote images\n qualities: undefined, // default: allow all qualities\n unoptimized: false,\n}\n","import { warnOnce } from './utils/warn-once'\nimport { getImageBlurSvg } from './image-blur-svg'\nimport { imageConfigDefault } from './image-config'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderPropsWithConfig,\n} from './image-config'\n\nimport type { CSSProperties, JSX } from 'react'\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n blurWidth?: number\n blurHeight?: number\n}\n\nexport interface StaticRequire {\n default: StaticImageData\n}\n\nexport type StaticImport = StaticRequire | StaticImageData\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n alt: string\n width?: number | `${number}`\n height?: number | `${number}`\n fill?: boolean\n loader?: ImageLoader\n quality?: number | `${number}`\n priority?: boolean\n loading?: LoadingValue\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n overrideSrc?: string\n /**\n * @deprecated Use `onLoad` instead.\n * @see https://nextjs.org/docs/app/api-reference/components/image#onload\n */\n onLoadingComplete?: OnLoadingComplete\n /**\n * @deprecated Use `fill` prop instead of `layout=\"fill\"` or change import to `next/legacy/image`.\n * @see https://nextjs.org/docs/api-reference/next/legacy/image\n */\n layout?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectFit?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectPosition?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyBoundary?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyRoot?: string\n}\n\nexport type ImgProps = Omit<ImageProps, 'src' | 'loader'> & {\n loading: LoadingValue\n width: number | undefined\n height: number | undefined\n style: NonNullable<JSX.IntrinsicElements['img']['style']>\n sizes: string | undefined\n srcSet: string | undefined\n src: string\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\n\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined,\n]\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & {\n allSizes: number[]\n output?: 'standalone' | 'export'\n}\n\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (p: ImageLoaderPropsWithConfig) => string\n\nexport type PlaceholderValue = 'blur' | 'empty' | `data:image/${string}`\nexport type OnLoad = React.ReactEventHandler<HTMLImageElement> | undefined\nexport type OnLoadingComplete = (img: HTMLImageElement) => void\n\nexport type PlaceholderStyle = Partial<\n Pick<\n CSSProperties,\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundRepeat'\n | 'backgroundImage'\n >\n>\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nconst allImgs = new Map<\n string,\n { src: string; priority: boolean; placeholder: PlaceholderValue }\n>()\nlet perfObserver: PerformanceObserver | undefined\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'undefined') {\n return x\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10)\n }\n return NaN\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (typeof width !== 'number') {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */\nexport function getImgProps(\n {\n src,\n sizes,\n unoptimized = false,\n priority = false,\n loading,\n className,\n quality,\n width,\n height,\n fill = false,\n style,\n overrideSrc,\n onLoad,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n fetchPriority,\n decoding = 'async',\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n ...rest\n }: ImageProps,\n _state: {\n defaultLoader: ImageLoaderWithConfig\n imgConf: ImageConfigComplete\n showAltText?: boolean\n blurComplete?: boolean\n }\n): {\n props: ImgProps\n meta: {\n unoptimized: boolean\n priority: boolean\n placeholder: NonNullable<ImageProps['placeholder']>\n fill: boolean\n }\n} {\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state\n let config: ImageConfig\n let c = imgConf || imageConfigDefault\n if ('allSizes' in c) {\n config = c as ImageConfig\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n config = { ...c, allSizes, deviceSizes, qualities }\n }\n\n if (typeof defaultLoader === 'undefined') {\n throw new Error(\n 'images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'\n )\n }\n let loader: ImageLoaderWithConfig = rest.loader || defaultLoader\n\n // Remove property so it's not spread on <img> element\n delete rest.loader\n delete (rest as any).srcSet\n\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader\n\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader as ImageLoader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n return customImageLoader(opts)\n }\n }\n\n if (layout) {\n if (layout === 'fill') {\n fill = true\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: '100%', height: 'auto' },\n responsive: { width: '100%', height: 'auto' },\n }\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: '100vw',\n fill: '100vw',\n }\n const layoutStyle = layoutToStyle[layout]\n if (layoutStyle) {\n style = { ...style, ...layoutStyle }\n }\n const layoutSizes = layoutToSizes[layout]\n if (layoutSizes && !sizes) {\n sizes = layoutSizes\n }\n }\n\n let staticSrc = ''\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n let blurWidth: number | undefined\n let blurHeight: number | undefined\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n\n blurWidth = staticImageData.blurWidth\n blurHeight = staticImageData.blurHeight\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width\n heightInt = staticImageData.height\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width\n heightInt = Math.round(staticImageData.height * ratio)\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height\n widthInt = Math.round(staticImageData.width * ratio)\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority && (loading === 'lazy' || typeof loading === 'undefined')\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n if (\n isDefaultLoader &&\n !config.dangerouslyAllowSVG &&\n src.split('?', 1)[0].endsWith('.svg')\n ) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true\n }\n\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true\n } else {\n if (fill) {\n if (width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (style?.position && style.position !== 'absolute') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`\n )\n }\n if (style?.width && style.width !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`\n )\n }\n if (style?.height && style.height !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`\n )\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`\n )\n } else if (isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${width}\".`\n )\n }\n if (typeof heightInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`\n )\n } else if (isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${height}\".`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (\n placeholder !== 'empty' &&\n placeholder !== 'blur' &&\n !placeholder.startsWith('data:image/')\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n )\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n )\n }\n }\n if (qualityInt && qualityInt !== 75 && !config.qualities) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities. This config will be required starting in Next.js 16.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n if (\n src.startsWith('/') &&\n src.includes('?') &&\n (!config?.localPatterns?.length ||\n (config.localPatterns.length === 1 &&\n config.localPatterns[0].pathname === '/_next/static/media/**'))\n ) {\n warnOnce(\n `Image with src \"${src}\" is using a query string which is not configured in images.localPatterns. This config will be required starting in Next.js 16.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`\n )\n }\n\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`\n )\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n !lcpImage.priority &&\n lcpImage.placeholder === 'empty' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \"priority\" property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/api-reference/next/image#priority`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n const imgStyle = Object.assign(\n fill\n ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition,\n }\n : {},\n showAltText ? {} : { color: 'transparent' },\n style\n )\n\n const backgroundImage =\n !blurComplete && placeholder !== 'empty'\n ? placeholder === 'blur'\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '', // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${placeholder}\")` // assume `data:image/`\n : null\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === 'fill'\n ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover'\n\n let placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage,\n }\n : {}\n\n if (process.env.NODE_ENV === 'development') {\n if (\n placeholderStyle.backgroundImage &&\n placeholder === 'blur' &&\n blurDataURL?.startsWith('/')\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = `url(\"${blurDataURL}\")`\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, priority, placeholder })\n }\n }\n\n const props: ImgProps = {\n ...rest,\n loading: isLazy ? 'lazy' : loading,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src,\n }\n const meta = { unoptimized, priority, placeholder, fill }\n return { props, meta }\n}\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: <T extends {}>(\n components: Array<React.ReactElement<any>>,\n props: T\n ) => State\n handleStateChange?: (state: State) => void\n headManager: any\n inAmpMode?: boolean\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements, props))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","import React from 'react'\n\nexport const AmpStateContext: React.Context<any> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n AmpStateContext.displayName = 'AmpStateContext'\n}\n","import React from 'react'\n\nexport const HeadManagerContext: React.Context<{\n updateHead?: (state: any) => void\n mountedInstances?: any\n updateScripts?: (state: any) => void\n scripts?: any\n getIsSsr?: () => boolean\n\n // Used in app directory, to render script tags as server components.\n appDir?: boolean\n nonce?: string\n}> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n HeadManagerContext.displayName = 'HeadManagerContext'\n}\n","export function isInAmpMode({\n ampFirst = false,\n hybrid = false,\n hasQuery = false,\n} = {}): boolean {\n return ampFirst || (hybrid && hasQuery)\n}\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { AmpStateContext } from './amp-context.shared-runtime'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { isInAmpMode } from './amp-mode'\nimport { warnOnce } from './utils/warn-once'\n\ntype WithInAmpMode = {\n inAmpMode?: boolean\n}\n\nexport function defaultHead(inAmpMode = false): JSX.Element[] {\n const head = [<meta charSet=\"utf-8\" key=\"charset\" />]\n if (!inAmpMode) {\n head.push(\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />\n )\n }\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents<T extends {} & WithInAmpMode>(\n headChildrenElements: Array<React.ReactElement<any>>,\n props: T\n) {\n const { inAmpMode } = props\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead(inAmpMode).reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const ampState = useContext(AmpStateContext)\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n inAmpMode={isInAmpMode(ampState)}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","import React from 'react'\nimport type { ImageConfigComplete } from './image-config'\nimport { imageConfigDefault } from './image-config'\n\nexport const ImageConfigContext =\n React.createContext<ImageConfigComplete>(imageConfigDefault)\n\nif (process.env.NODE_ENV !== 'production') {\n ImageConfigContext.displayName = 'ImageConfigContext'\n}\n","import React from 'react'\nimport type { NextRouter } from './router/router'\n\nexport const RouterContext = React.createContext<NextRouter | null>(null)\n\nif (process.env.NODE_ENV !== 'production') {\n RouterContext.displayName = 'RouterContext'\n}\n","(()=>{\"use strict\";var t={170:(t,e,u)=>{const n=u(510);const isWindows=()=>{if(typeof navigator!==\"undefined\"&&navigator.platform){const t=navigator.platform.toLowerCase();return t===\"win32\"||t===\"windows\"}if(typeof process!==\"undefined\"&&process.platform){return process.platform===\"win32\"}return false};function picomatch(t,e,u=false){if(e&&(e.windows===null||e.windows===undefined)){e={...e,windows:isWindows()}}return n(t,e,u)}Object.assign(picomatch,n);t.exports=picomatch},154:t=>{const e=\"\\\\\\\\/\";const u=`[^${e}]`;const n=\"\\\\.\";const o=\"\\\\+\";const s=\"\\\\?\";const r=\"\\\\/\";const a=\"(?=.)\";const i=\"[^/]\";const c=`(?:${r}|$)`;const p=`(?:^|${r})`;const l=`${n}{1,2}${c}`;const f=`(?!${n})`;const A=`(?!${p}${l})`;const _=`(?!${n}{0,1}${c})`;const R=`(?!${l})`;const E=`[^.${r}]`;const h=`${i}*?`;const g=\"/\";const b={DOT_LITERAL:n,PLUS_LITERAL:o,QMARK_LITERAL:s,SLASH_LITERAL:r,ONE_CHAR:a,QMARK:i,END_ANCHOR:c,DOTS_SLASH:l,NO_DOT:f,NO_DOTS:A,NO_DOT_SLASH:_,NO_DOTS_SLASH:R,QMARK_NO_DOT:E,STAR:h,START_ANCHOR:p,SEP:g};const C={...b,SLASH_LITERAL:`[${e}]`,QMARK:u,STAR:`${u}*?`,DOTS_SLASH:`${n}{1,2}(?:[${e}]|$)`,NO_DOT:`(?!${n})`,NO_DOTS:`(?!(?:^|[${e}])${n}{1,2}(?:[${e}]|$))`,NO_DOT_SLASH:`(?!${n}{0,1}(?:[${e}]|$))`,NO_DOTS_SLASH:`(?!${n}{1,2}(?:[${e}]|$))`,QMARK_NO_DOT:`[^.${e}]`,START_ANCHOR:`(?:^|[${e}])`,END_ANCHOR:`(?:[${e}]|$)`,SEP:\"\\\\\"};const y={alnum:\"a-zA-Z0-9\",alpha:\"a-zA-Z\",ascii:\"\\\\x00-\\\\x7F\",blank:\" \\\\t\",cntrl:\"\\\\x00-\\\\x1F\\\\x7F\",digit:\"0-9\",graph:\"\\\\x21-\\\\x7E\",lower:\"a-z\",print:\"\\\\x20-\\\\x7E \",punct:\"\\\\-!\\\"#$%&'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~\",space:\" \\\\t\\\\r\\\\n\\\\v\\\\f\",upper:\"A-Z\",word:\"A-Za-z0-9_\",xdigit:\"A-Fa-f0-9\"};t.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:y,REGEX_BACKSLASH:/\\\\(?![*+?^${}(|)[\\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\\].,$*+?^{}()|\\\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\\\?)((\\W)(\\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,REPLACEMENTS:{\"***\":\"*\",\"**/**\":\"**\",\"**/**/**\":\"**\"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(t){return{\"!\":{type:\"negate\",open:\"(?:(?!(?:\",close:`))${t.STAR})`},\"?\":{type:\"qmark\",open:\"(?:\",close:\")?\"},\"+\":{type:\"plus\",open:\"(?:\",close:\")+\"},\"*\":{type:\"star\",open:\"(?:\",close:\")*\"},\"@\":{type:\"at\",open:\"(?:\",close:\")\"}}},globChars(t){return t===true?C:b}}},697:(t,e,u)=>{const n=u(154);const o=u(96);const{MAX_LENGTH:s,POSIX_REGEX_SOURCE:r,REGEX_NON_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_BACKREF:i,REPLACEMENTS:c}=n;const expandRange=(t,e)=>{if(typeof e.expandRange===\"function\"){return e.expandRange(...t,e)}t.sort();const u=`[${t.join(\"-\")}]`;try{new RegExp(u)}catch(e){return t.map((t=>o.escapeRegex(t))).join(\"..\")}return u};const syntaxError=(t,e)=>`Missing ${t}: \"${e}\" - use \"\\\\\\\\${e}\" to match literal characters`;const parse=(t,e)=>{if(typeof t!==\"string\"){throw new TypeError(\"Expected a string\")}t=c[t]||t;const u={...e};const p=typeof u.maxLength===\"number\"?Math.min(s,u.maxLength):s;let l=t.length;if(l>p){throw new SyntaxError(`Input length: ${l}, exceeds maximum allowed length: ${p}`)}const f={type:\"bos\",value:\"\",output:u.prepend||\"\"};const A=[f];const _=u.capture?\"\":\"?:\";const R=n.globChars(u.windows);const E=n.extglobChars(R);const{DOT_LITERAL:h,PLUS_LITERAL:g,SLASH_LITERAL:b,ONE_CHAR:C,DOTS_SLASH:y,NO_DOT:$,NO_DOT_SLASH:x,NO_DOTS_SLASH:S,QMARK:H,QMARK_NO_DOT:v,STAR:d,START_ANCHOR:L}=R;const globstar=t=>`(${_}(?:(?!${L}${t.dot?y:h}).)*?)`;const T=u.dot?\"\":$;const O=u.dot?H:v;let k=u.bash===true?globstar(u):d;if(u.capture){k=`(${k})`}if(typeof u.noext===\"boolean\"){u.noextglob=u.noext}const m={input:t,index:-1,start:0,dot:u.dot===true,consumed:\"\",output:\"\",prefix:\"\",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:A};t=o.removePrefix(t,m);l=t.length;const w=[];const N=[];const I=[];let B=f;let G;const eos=()=>m.index===l-1;const D=m.peek=(e=1)=>t[m.index+e];const M=m.advance=()=>t[++m.index]||\"\";const remaining=()=>t.slice(m.index+1);const consume=(t=\"\",e=0)=>{m.consumed+=t;m.index+=e};const append=t=>{m.output+=t.output!=null?t.output:t.value;consume(t.value)};const negate=()=>{let t=1;while(D()===\"!\"&&(D(2)!==\"(\"||D(3)===\"?\")){M();m.start++;t++}if(t%2===0){return false}m.negated=true;m.start++;return true};const increment=t=>{m[t]++;I.push(t)};const decrement=t=>{m[t]--;I.pop()};const push=t=>{if(B.type===\"globstar\"){const e=m.braces>0&&(t.type===\"comma\"||t.type===\"brace\");const u=t.extglob===true||w.length&&(t.type===\"pipe\"||t.type===\"paren\");if(t.type!==\"slash\"&&t.type!==\"paren\"&&!e&&!u){m.output=m.output.slice(0,-B.output.length);B.type=\"star\";B.value=\"*\";B.output=k;m.output+=B.output}}if(w.length&&t.type!==\"paren\"){w[w.length-1].inner+=t.value}if(t.value||t.output)append(t);if(B&&B.type===\"text\"&&t.type===\"text\"){B.output=(B.output||B.value)+t.value;B.value+=t.value;return}t.prev=B;A.push(t);B=t};const extglobOpen=(t,e)=>{const n={...E[e],conditions:1,inner:\"\"};n.prev=B;n.parens=m.parens;n.output=m.output;const o=(u.capture?\"(\":\"\")+n.open;increment(\"parens\");push({type:t,value:e,output:m.output?\"\":C});push({type:\"paren\",extglob:true,value:M(),output:o});w.push(n)};const extglobClose=t=>{let n=t.close+(u.capture?\")\":\"\");let o;if(t.type===\"negate\"){let s=k;if(t.inner&&t.inner.length>1&&t.inner.includes(\"/\")){s=globstar(u)}if(s!==k||eos()||/^\\)+$/.test(remaining())){n=t.close=`)$))${s}`}if(t.inner.includes(\"*\")&&(o=remaining())&&/^\\.[^\\\\/.]+$/.test(o)){const u=parse(o,{...e,fastpaths:false}).output;n=t.close=`)${u})${s})`}if(t.prev.type===\"bos\"){m.negatedExtglob=true}}push({type:\"paren\",extglob:true,value:G,output:n});decrement(\"parens\")};if(u.fastpaths!==false&&!/(^[*!]|[/()[\\]{}\"])/.test(t)){let n=false;let s=t.replace(i,((t,e,u,o,s,r)=>{if(o===\"\\\\\"){n=true;return t}if(o===\"?\"){if(e){return e+o+(s?H.repeat(s.length):\"\")}if(r===0){return O+(s?H.repeat(s.length):\"\")}return H.repeat(u.length)}if(o===\".\"){return h.repeat(u.length)}if(o===\"*\"){if(e){return e+o+(s?k:\"\")}return k}return e?t:`\\\\${t}`}));if(n===true){if(u.unescape===true){s=s.replace(/\\\\/g,\"\")}else{s=s.replace(/\\\\+/g,(t=>t.length%2===0?\"\\\\\\\\\":t?\"\\\\\":\"\"))}}if(s===t&&u.contains===true){m.output=t;return m}m.output=o.wrapOutput(s,m,e);return m}while(!eos()){G=M();if(G===\"\\0\"){continue}if(G===\"\\\\\"){const t=D();if(t===\"/\"&&u.bash!==true){continue}if(t===\".\"||t===\";\"){continue}if(!t){G+=\"\\\\\";push({type:\"text\",value:G});continue}const e=/^\\\\+/.exec(remaining());let n=0;if(e&&e[0].length>2){n=e[0].length;m.index+=n;if(n%2!==0){G+=\"\\\\\"}}if(u.unescape===true){G=M()}else{G+=M()}if(m.brackets===0){push({type:\"text\",value:G});continue}}if(m.brackets>0&&(G!==\"]\"||B.value===\"[\"||B.value===\"[^\")){if(u.posix!==false&&G===\":\"){const t=B.value.slice(1);if(t.includes(\"[\")){B.posix=true;if(t.includes(\":\")){const t=B.value.lastIndexOf(\"[\");const e=B.value.slice(0,t);const u=B.value.slice(t+2);const n=r[u];if(n){B.value=e+n;m.backtrack=true;M();if(!f.output&&A.indexOf(B)===1){f.output=C}continue}}}}if(G===\"[\"&&D()!==\":\"||G===\"-\"&&D()===\"]\"){G=`\\\\${G}`}if(G===\"]\"&&(B.value===\"[\"||B.value===\"[^\")){G=`\\\\${G}`}if(u.posix===true&&G===\"!\"&&B.value===\"[\"){G=\"^\"}B.value+=G;append({value:G});continue}if(m.quotes===1&&G!=='\"'){G=o.escapeRegex(G);B.value+=G;append({value:G});continue}if(G==='\"'){m.quotes=m.quotes===1?0:1;if(u.keepQuotes===true){push({type:\"text\",value:G})}continue}if(G===\"(\"){increment(\"parens\");push({type:\"paren\",value:G});continue}if(G===\")\"){if(m.parens===0&&u.strictBrackets===true){throw new SyntaxError(syntaxError(\"opening\",\"(\"))}const t=w[w.length-1];if(t&&m.parens===t.parens+1){extglobClose(w.pop());continue}push({type:\"paren\",value:G,output:m.parens?\")\":\"\\\\)\"});decrement(\"parens\");continue}if(G===\"[\"){if(u.nobracket===true||!remaining().includes(\"]\")){if(u.nobracket!==true&&u.strictBrackets===true){throw new SyntaxError(syntaxError(\"closing\",\"]\"))}G=`\\\\${G}`}else{increment(\"brackets\")}push({type:\"bracket\",value:G});continue}if(G===\"]\"){if(u.nobracket===true||B&&B.type===\"bracket\"&&B.value.length===1){push({type:\"text\",value:G,output:`\\\\${G}`});continue}if(m.brackets===0){if(u.strictBrackets===true){throw new SyntaxError(syntaxError(\"opening\",\"[\"))}push({type:\"text\",value:G,output:`\\\\${G}`});continue}decrement(\"brackets\");const t=B.value.slice(1);if(B.posix!==true&&t[0]===\"^\"&&!t.includes(\"/\")){G=`/${G}`}B.value+=G;append({value:G});if(u.literalBrackets===false||o.hasRegexChars(t)){continue}const e=o.escapeRegex(B.value);m.output=m.output.slice(0,-B.value.length);if(u.literalBrackets===true){m.output+=e;B.value=e;continue}B.value=`(${_}${e}|${B.value})`;m.output+=B.value;continue}if(G===\"{\"&&u.nobrace!==true){increment(\"braces\");const t={type:\"brace\",value:G,output:\"(\",outputIndex:m.output.length,tokensIndex:m.tokens.length};N.push(t);push(t);continue}if(G===\"}\"){const t=N[N.length-1];if(u.nobrace===true||!t){push({type:\"text\",value:G,output:G});continue}let e=\")\";if(t.dots===true){const t=A.slice();const n=[];for(let e=t.length-1;e>=0;e--){A.pop();if(t[e].type===\"brace\"){break}if(t[e].type!==\"dots\"){n.unshift(t[e].value)}}e=expandRange(n,u);m.backtrack=true}if(t.comma!==true&&t.dots!==true){const u=m.output.slice(0,t.outputIndex);const n=m.tokens.slice(t.tokensIndex);t.value=t.output=\"\\\\{\";G=e=\"\\\\}\";m.output=u;for(const t of n){m.output+=t.output||t.value}}push({type:\"brace\",value:G,output:e});decrement(\"braces\");N.pop();continue}if(G===\"|\"){if(w.length>0){w[w.length-1].conditions++}push({type:\"text\",value:G});continue}if(G===\",\"){let t=G;const e=N[N.length-1];if(e&&I[I.length-1]===\"braces\"){e.comma=true;t=\"|\"}push({type:\"comma\",value:G,output:t});continue}if(G===\"/\"){if(B.type===\"dot\"&&m.index===m.start+1){m.start=m.index+1;m.consumed=\"\";m.output=\"\";A.pop();B=f;continue}push({type:\"slash\",value:G,output:b});continue}if(G===\".\"){if(m.braces>0&&B.type===\"dot\"){if(B.value===\".\")B.output=h;const t=N[N.length-1];B.type=\"dots\";B.output+=G;B.value+=G;t.dots=true;continue}if(m.braces+m.parens===0&&B.type!==\"bos\"&&B.type!==\"slash\"){push({type:\"text\",value:G,output:h});continue}push({type:\"dot\",value:G,output:h});continue}if(G===\"?\"){const t=B&&B.value===\"(\";if(!t&&u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){extglobOpen(\"qmark\",G);continue}if(B&&B.type===\"paren\"){const t=D();let e=G;if(B.value===\"(\"&&!/[!=<:]/.test(t)||t===\"<\"&&!/<([!=]|\\w+>)/.test(remaining())){e=`\\\\${G}`}push({type:\"text\",value:G,output:e});continue}if(u.dot!==true&&(B.type===\"slash\"||B.type===\"bos\")){push({type:\"qmark\",value:G,output:v});continue}push({type:\"qmark\",value:G,output:H});continue}if(G===\"!\"){if(u.noextglob!==true&&D()===\"(\"){if(D(2)!==\"?\"||!/[!=<:]/.test(D(3))){extglobOpen(\"negate\",G);continue}}if(u.nonegate!==true&&m.index===0){negate();continue}}if(G===\"+\"){if(u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){extglobOpen(\"plus\",G);continue}if(B&&B.value===\"(\"||u.regex===false){push({type:\"plus\",value:G,output:g});continue}if(B&&(B.type===\"bracket\"||B.type===\"paren\"||B.type===\"brace\")||m.parens>0){push({type:\"plus\",value:G});continue}push({type:\"plus\",value:g});continue}if(G===\"@\"){if(u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){push({type:\"at\",extglob:true,value:G,output:\"\"});continue}push({type:\"text\",value:G});continue}if(G!==\"*\"){if(G===\"$\"||G===\"^\"){G=`\\\\${G}`}const t=a.exec(remaining());if(t){G+=t[0];m.index+=t[0].length}push({type:\"text\",value:G});continue}if(B&&(B.type===\"globstar\"||B.star===true)){B.type=\"star\";B.star=true;B.value+=G;B.output=k;m.backtrack=true;m.globstar=true;consume(G);continue}let e=remaining();if(u.noextglob!==true&&/^\\([^?]/.test(e)){extglobOpen(\"star\",G);continue}if(B.type===\"star\"){if(u.noglobstar===true){consume(G);continue}const n=B.prev;const o=n.prev;const s=n.type===\"slash\"||n.type===\"bos\";const r=o&&(o.type===\"star\"||o.type===\"globstar\");if(u.bash===true&&(!s||e[0]&&e[0]!==\"/\")){push({type:\"star\",value:G,output:\"\"});continue}const a=m.braces>0&&(n.type===\"comma\"||n.type===\"brace\");const i=w.length&&(n.type===\"pipe\"||n.type===\"paren\");if(!s&&n.type!==\"paren\"&&!a&&!i){push({type:\"star\",value:G,output:\"\"});continue}while(e.slice(0,3)===\"/**\"){const u=t[m.index+4];if(u&&u!==\"/\"){break}e=e.slice(3);consume(\"/**\",3)}if(n.type===\"bos\"&&eos()){B.type=\"globstar\";B.value+=G;B.output=globstar(u);m.output=B.output;m.globstar=true;consume(G);continue}if(n.type===\"slash\"&&n.prev.type!==\"bos\"&&!r&&eos()){m.output=m.output.slice(0,-(n.output+B.output).length);n.output=`(?:${n.output}`;B.type=\"globstar\";B.output=globstar(u)+(u.strictSlashes?\")\":\"|$)\");B.value+=G;m.globstar=true;m.output+=n.output+B.output;consume(G);continue}if(n.type===\"slash\"&&n.prev.type!==\"bos\"&&e[0]===\"/\"){const t=e[1]!==void 0?\"|$\":\"\";m.output=m.output.slice(0,-(n.output+B.output).length);n.output=`(?:${n.output}`;B.type=\"globstar\";B.output=`${globstar(u)}${b}|${b}${t})`;B.value+=G;m.output+=n.output+B.output;m.globstar=true;consume(G+M());push({type:\"slash\",value:\"/\",output:\"\"});continue}if(n.type===\"bos\"&&e[0]===\"/\"){B.type=\"globstar\";B.value+=G;B.output=`(?:^|${b}|${globstar(u)}${b})`;m.output=B.output;m.globstar=true;consume(G+M());push({type:\"slash\",value:\"/\",output:\"\"});continue}m.output=m.output.slice(0,-B.output.length);B.type=\"globstar\";B.output=globstar(u);B.value+=G;m.output+=B.output;m.globstar=true;consume(G);continue}const n={type:\"star\",value:G,output:k};if(u.bash===true){n.output=\".*?\";if(B.type===\"bos\"||B.type===\"slash\"){n.output=T+n.output}push(n);continue}if(B&&(B.type===\"bracket\"||B.type===\"paren\")&&u.regex===true){n.output=G;push(n);continue}if(m.index===m.start||B.type===\"slash\"||B.type===\"dot\"){if(B.type===\"dot\"){m.output+=x;B.output+=x}else if(u.dot===true){m.output+=S;B.output+=S}else{m.output+=T;B.output+=T}if(D()!==\"*\"){m.output+=C;B.output+=C}}push(n)}while(m.brackets>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\"]\"));m.output=o.escapeLast(m.output,\"[\");decrement(\"brackets\")}while(m.parens>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\")\"));m.output=o.escapeLast(m.output,\"(\");decrement(\"parens\")}while(m.braces>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\"}\"));m.output=o.escapeLast(m.output,\"{\");decrement(\"braces\")}if(u.strictSlashes!==true&&(B.type===\"star\"||B.type===\"bracket\")){push({type:\"maybe_slash\",value:\"\",output:`${b}?`})}if(m.backtrack===true){m.output=\"\";for(const t of m.tokens){m.output+=t.output!=null?t.output:t.value;if(t.suffix){m.output+=t.suffix}}}return m};parse.fastpaths=(t,e)=>{const u={...e};const r=typeof u.maxLength===\"number\"?Math.min(s,u.maxLength):s;const a=t.length;if(a>r){throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${r}`)}t=c[t]||t;const{DOT_LITERAL:i,SLASH_LITERAL:p,ONE_CHAR:l,DOTS_SLASH:f,NO_DOT:A,NO_DOTS:_,NO_DOTS_SLASH:R,STAR:E,START_ANCHOR:h}=n.globChars(u.windows);const g=u.dot?_:A;const b=u.dot?R:A;const C=u.capture?\"\":\"?:\";const y={negated:false,prefix:\"\"};let $=u.bash===true?\".*?\":E;if(u.capture){$=`(${$})`}const globstar=t=>{if(t.noglobstar===true)return $;return`(${C}(?:(?!${h}${t.dot?f:i}).)*?)`};const create=t=>{switch(t){case\"*\":return`${g}${l}${$}`;case\".*\":return`${i}${l}${$}`;case\"*.*\":return`${g}${$}${i}${l}${$}`;case\"*/*\":return`${g}${$}${p}${l}${b}${$}`;case\"**\":return g+globstar(u);case\"**/*\":return`(?:${g}${globstar(u)}${p})?${b}${l}${$}`;case\"**/*.*\":return`(?:${g}${globstar(u)}${p})?${b}${$}${i}${l}${$}`;case\"**/.*\":return`(?:${g}${globstar(u)}${p})?${i}${l}${$}`;default:{const e=/^(.*?)\\.(\\w+)$/.exec(t);if(!e)return;const u=create(e[1]);if(!u)return;return u+i+e[2]}}};const x=o.removePrefix(t,y);let S=create(x);if(S&&u.strictSlashes!==true){S+=`${p}?`}return S};t.exports=parse},510:(t,e,u)=>{const n=u(716);const o=u(697);const s=u(96);const r=u(154);const isObject=t=>t&&typeof t===\"object\"&&!Array.isArray(t);const picomatch=(t,e,u=false)=>{if(Array.isArray(t)){const n=t.map((t=>picomatch(t,e,u)));const arrayMatcher=t=>{for(const e of n){const u=e(t);if(u)return u}return false};return arrayMatcher}const n=isObject(t)&&t.tokens&&t.input;if(t===\"\"||typeof t!==\"string\"&&!n){throw new TypeError(\"Expected pattern to be a non-empty string\")}const o=e||{};const s=o.windows;const r=n?picomatch.compileRe(t,e):picomatch.makeRe(t,e,false,true);const a=r.state;delete r.state;let isIgnored=()=>false;if(o.ignore){const t={...e,ignore:null,onMatch:null,onResult:null};isIgnored=picomatch(o.ignore,t,u)}const matcher=(u,n=false)=>{const{isMatch:i,match:c,output:p}=picomatch.test(u,r,e,{glob:t,posix:s});const l={glob:t,state:a,regex:r,posix:s,input:u,output:p,match:c,isMatch:i};if(typeof o.onResult===\"function\"){o.onResult(l)}if(i===false){l.isMatch=false;return n?l:false}if(isIgnored(u)){if(typeof o.onIgnore===\"function\"){o.onIgnore(l)}l.isMatch=false;return n?l:false}if(typeof o.onMatch===\"function\"){o.onMatch(l)}return n?l:true};if(u){matcher.state=a}return matcher};picomatch.test=(t,e,u,{glob:n,posix:o}={})=>{if(typeof t!==\"string\"){throw new TypeError(\"Expected input to be a string\")}if(t===\"\"){return{isMatch:false,output:\"\"}}const r=u||{};const a=r.format||(o?s.toPosixSlashes:null);let i=t===n;let c=i&&a?a(t):t;if(i===false){c=a?a(t):t;i=c===n}if(i===false||r.capture===true){if(r.matchBase===true||r.basename===true){i=picomatch.matchBase(t,e,u,o)}else{i=e.exec(c)}}return{isMatch:Boolean(i),match:i,output:c}};picomatch.matchBase=(t,e,u)=>{const n=e instanceof RegExp?e:picomatch.makeRe(e,u);return n.test(s.basename(t))};picomatch.isMatch=(t,e,u)=>picomatch(e,u)(t);picomatch.parse=(t,e)=>{if(Array.isArray(t))return t.map((t=>picomatch.parse(t,e)));return o(t,{...e,fastpaths:false})};picomatch.scan=(t,e)=>n(t,e);picomatch.compileRe=(t,e,u=false,n=false)=>{if(u===true){return t.output}const o=e||{};const s=o.contains?\"\":\"^\";const r=o.contains?\"\":\"$\";let a=`${s}(?:${t.output})${r}`;if(t&&t.negated===true){a=`^(?!${a}).*$`}const i=picomatch.toRegex(a,e);if(n===true){i.state=t}return i};picomatch.makeRe=(t,e={},u=false,n=false)=>{if(!t||typeof t!==\"string\"){throw new TypeError(\"Expected a non-empty string\")}let s={negated:false,fastpaths:true};if(e.fastpaths!==false&&(t[0]===\".\"||t[0]===\"*\")){s.output=o.fastpaths(t,e)}if(!s.output){s=o(t,e)}return picomatch.compileRe(s,e,u,n)};picomatch.toRegex=(t,e)=>{try{const u=e||{};return new RegExp(t,u.flags||(u.nocase?\"i\":\"\"))}catch(t){if(e&&e.debug===true)throw t;return/$^/}};picomatch.constants=r;t.exports=picomatch},716:(t,e,u)=>{const n=u(96);const{CHAR_ASTERISK:o,CHAR_AT:s,CHAR_BACKWARD_SLASH:r,CHAR_COMMA:a,CHAR_DOT:i,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:p,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:f,CHAR_LEFT_SQUARE_BRACKET:A,CHAR_PLUS:_,CHAR_QUESTION_MARK:R,CHAR_RIGHT_CURLY_BRACE:E,CHAR_RIGHT_PARENTHESES:h,CHAR_RIGHT_SQUARE_BRACKET:g}=u(154);const isPathSeparator=t=>t===p||t===r;const depth=t=>{if(t.isPrefix!==true){t.depth=t.isGlobstar?Infinity:1}};const scan=(t,e)=>{const u=e||{};const b=t.length-1;const C=u.parts===true||u.scanToEnd===true;const y=[];const $=[];const x=[];let S=t;let H=-1;let v=0;let d=0;let L=false;let T=false;let O=false;let k=false;let m=false;let w=false;let N=false;let I=false;let B=false;let G=false;let D=0;let M;let P;let K={value:\"\",depth:0,isGlob:false};const eos=()=>H>=b;const peek=()=>S.charCodeAt(H+1);const advance=()=>{M=P;return S.charCodeAt(++H)};while(H<b){P=advance();let t;if(P===r){N=K.backslashes=true;P=advance();if(P===l){w=true}continue}if(w===true||P===l){D++;while(eos()!==true&&(P=advance())){if(P===r){N=K.backslashes=true;advance();continue}if(P===l){D++;continue}if(w!==true&&P===i&&(P=advance())===i){L=K.isBrace=true;O=K.isGlob=true;G=true;if(C===true){continue}break}if(w!==true&&P===a){L=K.isBrace=true;O=K.isGlob=true;G=true;if(C===true){continue}break}if(P===E){D--;if(D===0){w=false;L=K.isBrace=true;G=true;break}}}if(C===true){continue}break}if(P===p){y.push(H);$.push(K);K={value:\"\",depth:0,isGlob:false};if(G===true)continue;if(M===i&&H===v+1){v+=2;continue}d=H+1;continue}if(u.noext!==true){const t=P===_||P===s||P===o||P===R||P===c;if(t===true&&peek()===f){O=K.isGlob=true;k=K.isExtglob=true;G=true;if(P===c&&H===v){B=true}if(C===true){while(eos()!==true&&(P=advance())){if(P===r){N=K.backslashes=true;P=advance();continue}if(P===h){O=K.isGlob=true;G=true;break}}continue}break}}if(P===o){if(M===o)m=K.isGlobstar=true;O=K.isGlob=true;G=true;if(C===true){continue}break}if(P===R){O=K.isGlob=true;G=true;if(C===true){continue}break}if(P===A){while(eos()!==true&&(t=advance())){if(t===r){N=K.backslashes=true;advance();continue}if(t===g){T=K.isBracket=true;O=K.isGlob=true;G=true;break}}if(C===true){continue}break}if(u.nonegate!==true&&P===c&&H===v){I=K.negated=true;v++;continue}if(u.noparen!==true&&P===f){O=K.isGlob=true;if(C===true){while(eos()!==true&&(P=advance())){if(P===f){N=K.backslashes=true;P=advance();continue}if(P===h){G=true;break}}continue}break}if(O===true){G=true;if(C===true){continue}break}}if(u.noext===true){k=false;O=false}let U=S;let X=\"\";let F=\"\";if(v>0){X=S.slice(0,v);S=S.slice(v);d-=v}if(U&&O===true&&d>0){U=S.slice(0,d);F=S.slice(d)}else if(O===true){U=\"\";F=S}else{U=S}if(U&&U!==\"\"&&U!==\"/\"&&U!==S){if(isPathSeparator(U.charCodeAt(U.length-1))){U=U.slice(0,-1)}}if(u.unescape===true){if(F)F=n.removeBackslashes(F);if(U&&N===true){U=n.removeBackslashes(U)}}const Q={prefix:X,input:t,start:v,base:U,glob:F,isBrace:L,isBracket:T,isGlob:O,isExtglob:k,isGlobstar:m,negated:I,negatedExtglob:B};if(u.tokens===true){Q.maxDepth=0;if(!isPathSeparator(P)){$.push(K)}Q.tokens=$}if(u.parts===true||u.tokens===true){let e;for(let n=0;n<y.length;n++){const o=e?e+1:v;const s=y[n];const r=t.slice(o,s);if(u.tokens){if(n===0&&v!==0){$[n].isPrefix=true;$[n].value=X}else{$[n].value=r}depth($[n]);Q.maxDepth+=$[n].depth}if(n!==0||r!==\"\"){x.push(r)}e=s}if(e&&e+1<t.length){const n=t.slice(e+1);x.push(n);if(u.tokens){$[$.length-1].value=n;depth($[$.length-1]);Q.maxDepth+=$[$.length-1].depth}}Q.slashes=y;Q.parts=x}return Q};t.exports=scan},96:(t,e,u)=>{const{REGEX_BACKSLASH:n,REGEX_REMOVE_BACKSLASH:o,REGEX_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_GLOBAL:r}=u(154);e.isObject=t=>t!==null&&typeof t===\"object\"&&!Array.isArray(t);e.hasRegexChars=t=>s.test(t);e.isRegexChar=t=>t.length===1&&e.hasRegexChars(t);e.escapeRegex=t=>t.replace(r,\"\\\\$1\");e.toPosixSlashes=t=>t.replace(n,\"/\");e.removeBackslashes=t=>t.replace(o,(t=>t===\"\\\\\"?\"\":t));e.escapeLast=(t,u,n)=>{const o=t.lastIndexOf(u,n);if(o===-1)return t;if(t[o-1]===\"\\\\\")return e.escapeLast(t,u,o-1);return`${t.slice(0,o)}\\\\${t.slice(o)}`};e.removePrefix=(t,e={})=>{let u=t;if(u.startsWith(\"./\")){u=u.slice(2);e.prefix=\"./\"}return u};e.wrapOutput=(t,e={},u={})=>{const n=u.contains?\"\":\"^\";const o=u.contains?\"\":\"$\";let s=`${n}(?:${t})${o}`;if(e.negated===true){s=`(?:^(?!${s}).*$)`}return s};e.basename=(t,{windows:e}={})=>{const u=t.split(e?/[\\\\/]/:\"/\");const n=u[u.length-1];if(n===\"\"){return u[u.length-2]}return n}}};var e={};function __nccwpck_require__(u){var n=e[u];if(n!==undefined){return n.exports}var o=e[u]={exports:{}};var s=true;try{t[u](o,o.exports,__nccwpck_require__);s=false}finally{if(s)delete e[u]}return o.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var u=__nccwpck_require__(170);module.exports=u})();","import type { LocalPattern } from './image-config'\nimport { makeRe } from 'next/dist/compiled/picomatch'\n\n// Modifying this function should also modify writeImagesManifest()\nexport function matchLocalPattern(pattern: LocalPattern, url: URL): boolean {\n if (pattern.search !== undefined) {\n if (pattern.search !== url.search) {\n return false\n }\n }\n\n if (!makeRe(pattern.pathname ?? '**', { dot: true }).test(url.pathname)) {\n return false\n }\n\n return true\n}\n\nexport function hasLocalMatch(\n localPatterns: LocalPattern[] | undefined,\n urlPathAndQuery: string\n): boolean {\n if (!localPatterns) {\n // if the user didn't define \"localPatterns\", we allow all local images\n return true\n }\n const url = new URL(urlPathAndQuery, 'http://n')\n return localPatterns.some((p) => matchLocalPattern(p, url))\n}\n","import type { RemotePattern } from './image-config'\nimport { makeRe } from 'next/dist/compiled/picomatch'\n\n// Modifying this function should also modify writeImagesManifest()\nexport function matchRemotePattern(\n pattern: RemotePattern | URL,\n url: URL\n): boolean {\n if (pattern.protocol !== undefined) {\n if (pattern.protocol.replace(/:$/, '') !== url.protocol.replace(/:$/, '')) {\n return false\n }\n }\n if (pattern.port !== undefined) {\n if (pattern.port !== url.port) {\n return false\n }\n }\n\n if (pattern.hostname === undefined) {\n throw new Error(\n `Pattern should define hostname but found\\n${JSON.stringify(pattern)}`\n )\n } else {\n if (!makeRe(pattern.hostname).test(url.hostname)) {\n return false\n }\n }\n\n if (pattern.search !== undefined) {\n if (pattern.search !== url.search) {\n return false\n }\n }\n\n // Should be the same as writeImagesManifest()\n if (!makeRe(pattern.pathname ?? '**', { dot: true }).test(url.pathname)) {\n return false\n }\n\n return true\n}\n\nexport function hasRemoteMatch(\n domains: string[],\n remotePatterns: Array<RemotePattern | URL>,\n url: URL\n): boolean {\n return (\n domains.some((domain) => url.hostname === domain) ||\n remotePatterns.some((p) => matchRemotePattern(p, url))\n )\n}\n","import type { ImageLoaderPropsWithConfig } from './image-config'\n\nconst DEFAULT_Q = 75\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('./match-local-pattern') as typeof import('./match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('./match-remote-pattern') as typeof import('./match-remote-pattern')\n if (\n !hasRemoteMatch(config.domains!, config.remotePatterns!, parsedSrc)\n ) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n\n if (quality && config.qualities && !config.qualities.includes(quality)) {\n throw new Error(\n `Invalid quality prop (${quality}) on \\`next/image\\` does not match \\`images.qualities\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n }\n\n const q =\n quality ||\n config.qualities?.reduce((prev, cur) =>\n Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q) ? cur : prev\n ) ||\n DEFAULT_Q\n\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${\n src.startsWith('/_next/static/media/') && process.env.NEXT_DEPLOYMENT_ID\n ? `&dpl=${process.env.NEXT_DEPLOYMENT_ID}`\n : ''\n }`\n}\n\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true\n\nexport default defaultLoader\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n forwardRef,\n use,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Head from '../shared/lib/head'\nimport { getImgProps } from '../shared/lib/get-img-props'\nimport type {\n ImageProps,\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from '../shared/lib/get-img-props'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n} from '../shared/lib/image-config'\nimport { imageConfigDefault } from '../shared/lib/image-config'\nimport { ImageConfigContext } from '../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../shared/lib/utils/warn-once'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\nimport { useMergedRef } from './use-merged-ref'\n\n// This is replaced by webpack define plugin\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nexport type { ImageLoaderProps }\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\ntype ImageElementProps = ImgProps & {\n unoptimized: boolean\n placeholder: PlaceholderValue\n onLoadRef: React.MutableRefObject<OnLoad | undefined>\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>\n setBlurComplete: (b: boolean) => void\n setShowAltText: (b: boolean) => void\n sizesInput: string | undefined\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n placeholder: PlaceholderValue,\n onLoadRef: React.MutableRefObject<OnLoad | undefined>,\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>,\n setBlurComplete: (b: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined\n) {\n const src = img?.src\n if (!img || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true)\n }\n if (onLoadRef?.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load')\n Object.defineProperty(event, 'target', { writable: false, value: img })\n let prevented = false\n let stopped = false\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: () => prevented,\n isPropagationStopped: () => stopped,\n persist: () => {},\n preventDefault: () => {\n prevented = true\n event.preventDefault()\n },\n stopPropagation: () => {\n stopped = true\n event.stopPropagation()\n },\n })\n }\n if (onLoadingCompleteRef?.current) {\n onLoadingCompleteRef.current(img)\n }\n if (process.env.NODE_ENV !== 'production') {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n } else {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement)\n const valid = ['absolute', 'fixed', 'relative']\n if (!valid.includes(position)) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and parent element with invalid \"position\". Provided \"${position}\" should be one of ${valid\n .map(String)\n .join(',')}.`\n )\n }\n }\n if (img.height === 0) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`\n )\n }\n }\n\n const heightModified =\n img.height.toString() !== img.getAttribute('height')\n const widthModified = img.width.toString() !== img.getAttribute('width')\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n warnOnce(\n `Image with src \"${origSrc}\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: \"auto\"' or 'height: \"auto\"' to maintain the aspect ratio.`\n )\n }\n }\n })\n}\n\nfunction getDynamicProps(\n fetchPriority?: string\n): Record<string, string | undefined> {\n if (Boolean(use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return { fetchPriority }\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return { fetchpriority: fetchPriority }\n}\n\nconst ImageElement = forwardRef<HTMLImageElement | null, ImageElementProps>(\n (\n {\n src,\n srcSet,\n sizes,\n height,\n width,\n decoding,\n className,\n style,\n fetchPriority,\n placeholder,\n loading,\n unoptimized,\n fill,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n sizesInput,\n onLoad,\n onError,\n ...rest\n },\n forwardedRef\n ) => {\n const ownRef = useCallback(\n (img: ImgElementWithDataProp | null) => {\n if (!img) {\n return\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n if (img.getAttribute('alt') === null) {\n console.error(\n `Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.`\n )\n }\n }\n if (img.complete) {\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }\n },\n [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput,\n ]\n )\n\n const ref = useMergedRef(forwardedRef, ownRef)\n\n return (\n <img\n {...rest}\n {...getDynamicProps(fetchPriority)}\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading={loading}\n width={width}\n height={height}\n decoding={decoding}\n data-nimg={fill ? 'fill' : '1'}\n className={className}\n style={style}\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes={sizes}\n srcSet={srcSet}\n src={src}\n ref={ref}\n onLoad={(event) => {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }}\n onError={(event) => {\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true)\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n )\n }\n)\n\nfunction ImagePreload({\n isAppRouter,\n imgAttributes,\n}: {\n isAppRouter: boolean\n imgAttributes: ImgProps\n}) {\n const opts: ReactDOM.PreloadOptions = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority),\n }\n\n if (isAppRouter && ReactDOM.preload) {\n ReactDOM.preload(imgAttributes.src, opts)\n return null\n }\n\n return (\n <Head>\n <link\n key={\n '__nimg-' +\n imgAttributes.src +\n imgAttributes.srcSet +\n imgAttributes.sizes\n }\n rel=\"preload\"\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href={imgAttributes.srcSet ? undefined : imgAttributes.src}\n {...opts}\n />\n </Head>\n )\n}\n\n/**\n * The `Image` component is used to optimize images.\n *\n * Read more: [Next.js docs: `Image`](https://nextjs.org/docs/app/api-reference/components/image)\n */\nexport const Image = forwardRef<HTMLImageElement | null, ImageProps>(\n (props, forwardedRef) => {\n const pagesRouter = useContext(RouterContext)\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter\n\n const configContext = useContext(ImageConfigContext)\n const config = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return { ...c, allSizes, deviceSizes, qualities }\n }, [configContext])\n\n const { onLoad, onLoadingComplete } = props\n const onLoadRef = useRef(onLoad)\n\n useEffect(() => {\n onLoadRef.current = onLoad\n }, [onLoad])\n\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [showAltText, setShowAltText] = useState(false)\n\n const { props: imgAttributes, meta: imgMeta } = getImgProps(props, {\n defaultLoader,\n imgConf: config,\n blurComplete,\n showAltText,\n })\n\n return (\n <>\n {\n <ImageElement\n {...imgAttributes}\n unoptimized={imgMeta.unoptimized}\n placeholder={imgMeta.placeholder}\n fill={imgMeta.fill}\n onLoadRef={onLoadRef}\n onLoadingCompleteRef={onLoadingCompleteRef}\n setBlurComplete={setBlurComplete}\n setShowAltText={setShowAltText}\n sizesInput={props.sizes}\n ref={forwardedRef}\n />\n }\n {imgMeta.priority ? (\n <ImagePreload\n isAppRouter={isAppRouter}\n imgAttributes={imgAttributes}\n />\n ) : null}\n </>\n )\n }\n)\n","import type { ImageConfigComplete, ImageLoaderProps } from './image-config'\nimport type { ImageProps, ImageLoader, StaticImageData } from './get-img-props'\n\nimport { getImgProps } from './get-img-props'\nimport { Image } from '../../client/image-component'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\n\n/**\n * For more advanced use cases, you can call `getImageProps()`\n * to get the props that would be passed to the underlying `<img>` element,\n * and instead pass to them to another component, style, canvas, etc.\n *\n * Read more: [Next.js docs: `getImageProps`](https://nextjs.org/docs/app/api-reference/components/image#getimageprops)\n */\nexport function getImageProps(imgProps: ImageProps) {\n const { props } = getImgProps(imgProps, {\n defaultLoader,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete,\n })\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)) {\n if (value === undefined) {\n delete props[key as keyof typeof props]\n }\n }\n return { props }\n}\n\nexport default Image\n\nexport type { ImageProps, ImageLoaderProps, ImageLoader, StaticImageData }\n","module.exports = require('./dist/shared/lib/image-external')\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { toast } from 'sonner'\r\n\r\ntype UseCopyToClipboardProps = {\r\n text: string\r\n copyMessage?: string\r\n}\r\n\r\nexport function useCopyToClipboard({\r\n text,\r\n copyMessage = 'Copied to clipboard!'\r\n}: UseCopyToClipboardProps) {\r\n const [isCopied, setIsCopied] = useState(false)\r\n\r\n useEffect(() => {\r\n if (isCopied) {\r\n const timer = setTimeout(() => {\r\n setIsCopied(false)\r\n }, 2000)\r\n return () => clearTimeout(timer)\r\n }\r\n return undefined\r\n }, [isCopied])\r\n\r\n const handleCopy = useCallback(() => {\r\n navigator.clipboard\r\n .writeText(text)\r\n .then(() => {\r\n toast.success(copyMessage)\r\n setIsCopied(true)\r\n })\r\n .catch(() => {\r\n toast.error('Failed to copy to clipboard.', {\r\n style: {\r\n color: 'red'\r\n }\r\n })\r\n })\r\n }, [text, copyMessage])\r\n\r\n return { isCopied, handleCopy }\r\n}\r\n","import { useEffect, useRef, useState } from 'react'\r\n\r\n// How many pixels from the bottom of the container to enable auto-scroll\r\nconst ACTIVATION_THRESHOLD = 50\r\n// Minimum pixels of scroll-up movement required to disable auto-scroll\r\nconst MIN_SCROLL_UP_THRESHOLD = 10\r\n\r\nexport function useAutoScroll(dependencies: React.DependencyList) {\r\n const containerRef = useRef<HTMLDivElement | null>(null)\r\n const previousScrollTop = useRef<number | null>(null)\r\n const [shouldAutoScroll, setShouldAutoScroll] = useState(true)\r\n\r\n const scrollToBottom = () => {\r\n if (containerRef.current) {\r\n containerRef.current.scrollTop = containerRef.current.scrollHeight\r\n }\r\n }\r\n\r\n const handleScroll = () => {\r\n if (containerRef.current) {\r\n const { scrollTop, scrollHeight, clientHeight } = containerRef.current\r\n\r\n const distanceFromBottom = Math.abs(scrollHeight - scrollTop - clientHeight)\r\n\r\n const isScrollingUp = previousScrollTop.current\r\n ? scrollTop < previousScrollTop.current\r\n : false\r\n\r\n const scrollUpDistance = previousScrollTop.current ? previousScrollTop.current - scrollTop : 0\r\n\r\n const isDeliberateScrollUp = isScrollingUp && scrollUpDistance > MIN_SCROLL_UP_THRESHOLD\r\n\r\n if (isDeliberateScrollUp) {\r\n setShouldAutoScroll(false)\r\n } else {\r\n const isScrolledToBottom = distanceFromBottom < ACTIVATION_THRESHOLD\r\n setShouldAutoScroll(isScrolledToBottom)\r\n }\r\n\r\n previousScrollTop.current = scrollTop\r\n }\r\n }\r\n\r\n const handleTouchStart = () => {\r\n setShouldAutoScroll(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (containerRef.current) {\r\n previousScrollTop.current = containerRef.current.scrollTop\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (shouldAutoScroll) {\r\n scrollToBottom()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, dependencies)\r\n\r\n return {\r\n containerRef,\r\n scrollToBottom,\r\n handleScroll,\r\n shouldAutoScroll,\r\n handleTouchStart\r\n }\r\n}\r\n","import { useLayoutEffect, useRef } from 'react'\r\n\r\ninterface UseAutosizeTextAreaProps {\r\n ref: React.RefObject<HTMLTextAreaElement>\r\n maxHeight?: number\r\n borderWidth?: number\r\n dependencies: React.DependencyList\r\n}\r\n\r\nexport function useAutosizeTextArea({\r\n ref,\r\n maxHeight = Number.MAX_SAFE_INTEGER,\r\n borderWidth = 0,\r\n dependencies\r\n}: UseAutosizeTextAreaProps) {\r\n const originalHeight = useRef<number | null>(null)\r\n\r\n useLayoutEffect(() => {\r\n if (!ref.current) return\r\n\r\n const currentRef = ref.current\r\n const borderAdjustment = borderWidth * 2\r\n\r\n // 1. 在计算前隐藏滚动条,防止闪烁\r\n currentRef.style.overflow = 'hidden'\r\n\r\n if (originalHeight.current === null) {\r\n originalHeight.current = currentRef.scrollHeight - borderAdjustment\r\n }\r\n\r\n // 重置高度以获取准确的 scrollHeight\r\n currentRef.style.removeProperty('height')\r\n const scrollHeight = currentRef.scrollHeight\r\n\r\n const clampedToMax = Math.min(scrollHeight, maxHeight)\r\n const clampedToMin = Math.max(clampedToMax, originalHeight.current)\r\n\r\n // 设置新的高度\r\n currentRef.style.height = `${clampedToMin + borderAdjustment}px`\r\n\r\n // 2. 恢复 overflow 属性,以便在达到 maxHeight 后可以滚动\r\n currentRef.style.overflow = 'auto'\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [maxHeight, borderWidth, ref, ...dependencies]) // 别忘了把 borderWidth 加入依赖项\r\n}\r\n","import * as React from 'react'\r\n\r\nconst MOBILE_BREAKPOINT = 768\r\n\r\nconst getIsMobile = () => {\r\n if (typeof window === 'undefined') return false\r\n return window.innerWidth < MOBILE_BREAKPOINT\r\n}\r\n\r\nexport function useIsMobile() {\r\n const [isMobile, setIsMobile] = React.useState<boolean>(getIsMobile)\r\n\r\n React.useEffect(() => {\r\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\r\n const onChange = () => {\r\n setIsMobile(mql.matches)\r\n }\r\n onChange()\r\n mql.addEventListener('change', onChange)\r\n return () => mql.removeEventListener('change', onChange)\r\n }, [])\r\n\r\n return isMobile\r\n}\r\n","import * as React from 'react'\r\n\r\nconst NARROW_BREAKPOINT = 1280\r\n\r\nconst getIsNarrow = () => {\r\n if (typeof window === 'undefined') return false\r\n return window.innerWidth < NARROW_BREAKPOINT\r\n}\r\n\r\nexport function useIsNarrow() {\r\n const [isNarrow, setIsNarrow] = React.useState<boolean>(getIsNarrow)\r\n\r\n React.useEffect(() => {\r\n const mql = window.matchMedia(`(max-width: ${NARROW_BREAKPOINT - 1}px)`)\r\n const onChange = () => {\r\n setIsNarrow(mql.matches)\r\n }\r\n onChange()\r\n mql.addEventListener('change', onChange)\r\n return () => mql.removeEventListener('change', onChange)\r\n }, [])\r\n\r\n return isNarrow\r\n}\r\n","import { clsx, type ClassValue } from 'clsx'\r\nimport { twMerge } from 'tailwind-merge'\r\n\r\n/**\r\n * 合并 Tailwind CSS 类名的工具函数\r\n * 结合 clsx 和 tailwind-merge,避免类名冲突\r\n */\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n","import { cva } from 'class-variance-authority'\r\n\r\n/**\r\n * Button 样式变体\r\n *\r\n * 直接使用 nextify-coo globals.css 中定义的按钮样式类\r\n */\r\nexport const buttonVariants = cva(\r\n // 基础类:使用 Tailwind 工具类 + 通用样式\r\n 'cursor-pointer inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-button-radius text-sm font-medium transition-all duration-200 disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\r\n {\r\n variants: {\r\n variant: {\r\n // default: 'default-button',\r\n default: 'outline-button', // 默认按钮样式\r\n defaultShade: 'default-shade-button',// 默认阴影按钮样式 (globals.css:1210)\r\n submit: 'submit-rect-button', // 提交按钮样式 (globals.css:1229)\r\n submitRect: 'submit2-rect-button w-10 h-10', // 提交矩形按钮样式\r\n submitGenerate: 'submit2-rect-button',// 生成提交按钮样式 (globals.css:1250)\r\n outline: 'outline-button', // 轮廓按钮样式 (globals.css:1268)\r\n ghost: 'outline-button', // 幽灵按钮样式\r\n outlineRect: 'outline-button w-10 h-10', // 轮廓矩形按钮\r\n colourful: 'gradient-btn', // 彩色渐变按钮\r\n primary: 'primary-button', // 主要按钮样式 (globals.css:1288)\r\n chrome: 'chrome-button !h-11', // Chrome 风格按钮 (globals.css:1301)\r\n lightColor: 'lightColor-button h-10',// 浅色按钮样式 (globals.css:1351)\r\n close: 'close-button', // 关闭按钮样式 (globals.css:1316)\r\n destructive: 'danger-button', // 危险按钮样式 (globals.css:1331)\r\n lightBlue: 'light-blue-button', // 浅蓝按钮样式 (globals.css:1361)\r\n pricePrimary: 'price-primary-button',// 价格主按钮样式 (globals.css:1374)\r\n none: '', // 无样式\r\n\r\n // 下面的暂时待删除\r\n // destructive:\r\n // 'bg-gradient-to-b from-[#E36323] to-[#DF5A18] hover:from-[#F9712D] text-background shadow-[inset_0_1px_0_0_rgba(255,255,255,0.33),0_0_0_1px_#BF4A0F,0_3px_4px_-1px_rgba(252,96,16,0.95)] hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.33),0_0_0_1px_#BF4A0F,0_3px_4px_-1px_rgba(226,79,5,0.95)]',\r\n // outline:\r\n // 'text-foreground bg-gradient-gray hover:bg-[linear-gradient(180deg,rgba(229,229,229,0.8)_0%,#E2E2E2_100%),linear-gradient(0deg,rgba(255,255,255,0.4),rgba(255,255,255,0.4))] active:bg-foreground/4 shadow-[0px_0px_0px_1px_rgba(212,212,212,1),inset_0px_1px_0px_0px_rgba(255,255,255,0.33),0px_3px_4px_-1px_rgba(0,0,0,0.15)] hover:shadow-[0px_0px_0px_1px_rgba(230,230,230,1),inset_0px_1px_0px_0px_rgba(255,255,255,0.7),0px_3px_8px_-2px_rgba(0,0,0,0.3)]',\r\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\r\n // ghost: 'hover:bg-foreground/8 hover:text-foreground active:bg-foreground/4',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n neutral: 'bg-white/5 text-foreground shadow-sm hover:bg-white/10 active:bg-white/3',\r\n empty: 'text-white hover:bg-[#1B1B1B]',\r\n green: 'bg-[#16613B] text-white hover:opacity-80',\r\n cancel: 'text-white border border-primary hover:bg-[#1B1B1B]',\r\n darkgray: 'bg-[#242424] text-white hover:bg-[#242424]/80 rounded-normal',\r\n white: 'bg-white text-black hover:bg-white/80',\r\n },\r\n size: {\r\n default: 'h-10 px-5 py-[10px]',\r\n sm: 'h-9 px-5 py-2',\r\n lg: 'h-11 rounded-normal px-8',\r\n icon: 'h-9 w-9'\r\n }\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'default'\r\n }\r\n }\r\n)\r\n","import * as React from 'react'\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { buttonVariants } from './button.styles'\r\nimport type { ButtonProps } from './button.types'\r\nimport { cn } from '@/lib/cn'\r\nimport { Loader2 } from 'lucide-react'\r\n\r\n/**\r\n * Button 组件\r\n *\r\n * 基于 Radix UI Slot 实现的按钮组件,支持多种变体和尺寸\r\n * 支持 asChild 模式用于组合其他组件\r\n * 支持 loading 状态显示加载图标\r\n */\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n (\r\n {\r\n className,\r\n variant,\r\n size,\r\n asChild = false,\r\n loading = false,\r\n children,\r\n disabled,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const Comp = asChild ? Slot : 'button'\r\n\r\n const content = loading ? (\r\n <>\r\n <Loader2 className=\"animate-spin\" />\r\n {children}\r\n </>\r\n ) : (\r\n children\r\n )\r\n\r\n const finalContent =\r\n asChild && loading ? <span className=\"inline-flex items-center gap-2\">{content}</span> : content\r\n\r\n return (\r\n <Comp\r\n className={cn(buttonVariants({ variant, size }), className)}\r\n ref={ref}\r\n disabled={disabled || loading}\r\n {...props}\r\n >\r\n {finalContent}\r\n </Comp>\r\n )\r\n }\r\n)\r\n\r\nButton.displayName = 'Button'\r\n\r\nexport { Button }\r\n","import * as React from 'react'\r\nimport { Eye, EyeOff } from 'lucide-react'\r\nimport { cn } from '@/lib/cn'\r\nimport type { InputProps } from './input.types'\r\nimport { useState } from 'react'\r\n\r\n/**\r\n * Input 组件\r\n *\r\n * 支持密码显示/隐藏切换\r\n * 支持前缀和后缀图标\r\n */\r\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\r\n ({ className, type, prependIcon, suffixIcon, ...props }, ref) => {\r\n const [isPasswordVisible, setIsPasswordVisible] = useState(type !== 'password')\r\n\r\n const togglePasswordVisibility = () => {\r\n setIsPasswordVisible(!isPasswordVisible)\r\n }\r\n\r\n return (\r\n <div className=\"relative\">\r\n <input\r\n type={isPasswordVisible ? 'text' : 'password'}\r\n className={cn(\r\n 'flex h-12 w-full rounded-normal text-input-foreground border border-border bg-input-bg py-3 text-base transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-input-placeholder placeholder:text-sm placeholder:font-medium disabled:cursor-not-allowed disabled:opacity-50 md:text-sm input-shadow focus-visible:outline-none',\r\n `${type === 'password' ? 'pl-6 pr-10' : 'px-6'}`,\r\n `${prependIcon ? suffixIcon ? 'pl-10 pr-10' : 'pl-10 pr-6' : suffixIcon ? 'pl-6 pr-10' : 'px-6' }`,\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n />\r\n {type === 'password' && (\r\n <span\r\n className=\"absolute right-[14px] top-1/2 transform -translate-y-1/2 cursor-pointer\"\r\n onClick={togglePasswordVisibility}\r\n >\r\n {isPasswordVisible ? (\r\n <EyeOff size={16} color={'var(--input-icon)'} />\r\n ) : (\r\n <Eye size={16} color={'var(--input-icon)'} />\r\n )}\r\n </span>\r\n )}\r\n {prependIcon && (\r\n <span className=\"absolute left-[14px] top-1/2 transform -translate-y-1/2 cursor-pointer\">\r\n {prependIcon}\r\n </span>\r\n )}\r\n {suffixIcon && (\r\n <span className=\"absolute right-[14px] top-1/2 transform -translate-y-1/2 cursor-pointer\">\r\n {suffixIcon}\r\n </span>\r\n )}\r\n </div>\r\n )\r\n }\r\n)\r\nInput.displayName = 'Input'\r\n\r\n/**\r\n * EditInput 组件\r\n *\r\n * 深色主题的输入框,用于编辑场景\r\n * 与 nextify-coo 中的 EditInput 保持一致\r\n */\r\nconst EditInput = React.forwardRef<HTMLInputElement, React.ComponentProps<'input'>>(\r\n ({ className, type, ...props }, ref) => {\r\n return (\r\n <input\r\n type={type}\r\n className={cn(\r\n 'file:text-foreground placeholder:text-muted-foreground bg-[#242424] flex h-9 w-full min-w-0 rounded-normal border px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm text-white border-zinc-700',\r\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\r\n 'aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\r\n // 隐藏数字输入框的上下控件\r\n '[&[type=number]]:[-moz-appearance:textfield] [&[type=number]]:[&::-webkit-outer-spin-button]:appearance-none [&[type=number]]:[&::-webkit-inner-spin-button]:appearance-none',\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nEditInput.displayName = 'Input'\r\n\r\nexport { Input, EditInput }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as LabelPrimitive from '@radix-ui/react-label'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst labelVariants = cva(\r\n 'text-sm text-foreground font-normal inline-block peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\r\n)\r\n\r\nconst Label = React.forwardRef<\r\n React.ElementRef<typeof LabelPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\r\n>(({ className, ...props }, ref) => (\r\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\r\n))\r\nLabel.displayName = LabelPrimitive.Root.displayName\r\n\r\nexport { Label }\r\n","import * as React from 'react'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst badgeVariants = cva(\r\n 'inline-flex items-center rounded-normal border px-2.5 py-0.5 text-xs font-medium transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:opacity-80',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'badge-default',\r\n secondary: 'badge-secondary',\r\n destructive: 'badge-destructive',\r\n outline: 'badge-outline'\r\n }\r\n },\r\n defaultVariants: {\r\n variant: 'default'\r\n }\r\n }\r\n)\r\n\r\nexport interface BadgeProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof badgeVariants> {}\r\n\r\nfunction Badge({ className, variant, ...props }: BadgeProps) {\r\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />\r\n}\r\n\r\nexport { Badge, badgeVariants }\r\n","import * as React from 'react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'rounded-card-radius border border-border bg-card text-card-foreground default-card-shadow',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n)\r\nCard.displayName = 'Card'\r\n\r\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\r\n )\r\n)\r\nCardHeader.displayName = 'CardHeader'\r\n\r\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('font-medium leading-none', className)} {...props} />\r\n )\r\n)\r\nCardTitle.displayName = 'CardTitle'\r\n\r\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('text-sm text-secondary-foreground', className)} {...props} />\r\n )\r\n)\r\nCardDescription.displayName = 'CardDescription'\r\n\r\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\r\n )\r\n)\r\nCardContent.displayName = 'CardContent'\r\n\r\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\r\n )\r\n)\r\nCardFooter.displayName = 'CardFooter'\r\n\r\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\r\nimport { Check } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Checkbox = React.forwardRef<\r\n React.ElementRef<typeof CheckboxPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <CheckboxPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n 'peer h-4 w-4 shrink-0 rounded-sm border border-checkbox-border shadow-sm focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-checkbox-bg data-[state=checked]:text-checkbox-foreground',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <CheckboxPrimitive.Indicator className={cn('flex items-center justify-center text-current')}>\r\n <Check className=\"h-4 w-4\" />\r\n </CheckboxPrimitive.Indicator>\r\n </CheckboxPrimitive.Root>\r\n))\r\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\r\n\r\nexport { Checkbox }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as SwitchPrimitives from '@radix-ui/react-switch'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Switch = React.forwardRef<\r\n React.ElementRef<typeof SwitchPrimitives.Root>,\r\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\r\n>(({ className, ...props }, ref) => (\r\n <SwitchPrimitives.Root\r\n className={cn(\r\n 'peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-switch-active-bg data-[state=unchecked]:bg-switch-bg',\r\n className\r\n )}\r\n {...props}\r\n ref={ref}\r\n >\r\n <SwitchPrimitives.Thumb\r\n className={cn(\r\n 'pointer-events-none block h-4 w-4 rounded-full bg-switch-btn data-[state=checked]:bg-switch-btn shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0'\r\n )}\r\n />\r\n </SwitchPrimitives.Root>\r\n))\r\nSwitch.displayName = SwitchPrimitives.Root.displayName\r\n\r\nexport { Switch }\r\n","'use client'\n\nimport * as React from 'react'\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\n\nimport { cn } from '@/lib/cn'\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = ({ delayDuration = 0, ...props }) => (\n <TooltipPrimitive.Root delayDuration={delayDuration} {...props} />\n)\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\nconst TooltipPortal = TooltipPrimitive.Portal\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & {\n container?: HTMLElement | null\n }\n>(({ className, sideOffset = 4, container, ...props }, ref) => (\n <TooltipPrimitive.Portal container={container}>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 overflow-hidden rounded-normal bg-tooltip-bg backdrop-blur-sm px-3 py-1.5 text-xs text-tooltip-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, TooltipPortal }","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as SliderPrimitive from '@radix-ui/react-slider'\r\nimport { Loader2 } from 'lucide-react'\r\nimport { cn } from '@/lib/cn'\r\nimport { motion, AnimatePresence } from 'framer-motion'\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipTrigger,\r\n} from '@/components/tooltip'\r\n\r\n/**\r\n * Slider 组件\r\n *\r\n * 基于 Radix UI Slider 的滑块组件\r\n * 支持 loading 状态和 tooltip 显示\r\n */\r\nconst Slider = React.forwardRef<\r\n React.ElementRef<typeof SliderPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> & {\r\n hiddenThumb?: boolean\r\n loading?: boolean\r\n showTooltip?: boolean\r\n formatTooltip?: (value: number) => string\r\n thumbClassName?: string\r\n trackClassName?: string\r\n rangeClassName?: string\r\n }\r\n>(({ className, hiddenThumb = false, loading = false, showTooltip = false, formatTooltip, thumbClassName, trackClassName, rangeClassName, ...props }, ref) => {\r\n const [currentValue, setCurrentValue] = React.useState<number>(\r\n Array.isArray(props.value) ? props.value[0] : props.defaultValue ? (Array.isArray(props.defaultValue) ? props.defaultValue[0] : props.defaultValue) : 0\r\n )\r\n\r\n React.useEffect(() => {\r\n if (props.value !== undefined) {\r\n setCurrentValue(Array.isArray(props.value) ? props.value[0] : props.value)\r\n }\r\n }, [props.value])\r\n\r\n const handleValueChange = (value: number[]) => {\r\n setCurrentValue(value[0])\r\n if (props.onValueChange) {\r\n props.onValueChange(value)\r\n }\r\n }\r\n\r\n return (\r\n <SliderPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n 'relative cursor-pointer flex w-full touch-none select-none items-center',\r\n className\r\n )}\r\n {...props}\r\n onValueChange={handleValueChange}\r\n >\r\n <SliderPrimitive.Track className={cn(\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-slider-bg\", trackClassName)}>\r\n <SliderPrimitive.Range className={cn(\"absolute h-full bg-slider-process\", rangeClassName)} />\r\n </SliderPrimitive.Track>\r\n {!hiddenThumb && (\r\n showTooltip ? (\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <SliderPrimitive.Thumb\r\n className={cn(\r\n 'block h-[26px] w-4 rounded-[4px] border border-slider-btn-border bg-slider-btn-bg shadow-sm transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\r\n loading && 'border-transparent',\r\n thumbClassName\r\n )}\r\n >\r\n <AnimatePresence>\r\n {loading && (\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n transition={{\r\n duration: 0.2,\r\n ease: 'easeInOut'\r\n }}\r\n className=\"absolute inset-0 flex items-center justify-center\"\r\n >\r\n <Loader2 className=\"h-5 w-5 animate-spin stroke-3 text-primary\" />\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </SliderPrimitive.Thumb>\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n <p>{formatTooltip ? formatTooltip(currentValue) : currentValue.toFixed(1)}</p>\r\n </TooltipContent>\r\n </Tooltip>\r\n ) : (\r\n <SliderPrimitive.Thumb\r\n className={cn(\r\n 'block h-[26px] w-4 rounded-[4px] border border-slider-btn-border bg-slider-btn-bg shadow-sm transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\r\n loading && 'border-transparent',\r\n thumbClassName\r\n )}\r\n >\r\n <AnimatePresence>\r\n {loading && (\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n transition={{\r\n duration: 0.2,\r\n ease: 'easeInOut'\r\n }}\r\n className=\"absolute inset-0 flex items-center justify-center\"\r\n >\r\n <Loader2 className=\"h-5 w-5 animate-spin stroke-3 text-primary\" />\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </SliderPrimitive.Thumb>\r\n )\r\n )}\r\n </SliderPrimitive.Root>\r\n )\r\n})\r\nSlider.displayName = SliderPrimitive.Root.displayName\r\n\r\nexport { Slider }\r\n","'use client'\n\nimport * as React from 'react'\nimport * as ProgressPrimitive from '@radix-ui/react-progress'\n\nimport { cn } from '@/lib/cn'\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn('relative h-2 w-full overflow-hidden rounded-full bg-process-bg/10', className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full flex-1 bg-process-bg\"\n style={{\n transform: `translateX(-${100 - (value || 0)}%)`,\n transition: 'transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n willChange: 'transform'\n }}\n />\n </ProgressPrimitive.Root>\n))\nProgress.displayName = ProgressPrimitive.Root.displayName\n\nexport { Progress }\n","import * as React from 'react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nexport interface TextareaProps extends React.ComponentProps<'textarea'> {\r\n shadow?: boolean\r\n}\r\n\r\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\r\n ({ className, shadow = true, ...props }, ref) => {\r\n return (\r\n <textarea\r\n className={cn(\r\n 'flex min-h-[60px] w-full rounded-normal text-input-foreground border border-border bg-input-bg px-6 py-3 text-base placeholder:text-sm placeholder:font-input-placeholder placeholder:text-secondary-foreground disabled:cursor-not-allowed disabled:opacity-30 md:text-sm focus-visible:outline-none',\r\n { 'input-shadow': shadow },\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nTextarea.displayName = 'Textarea'\r\n\r\nexport { Textarea }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\r\nimport { Circle } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst RadioGroup = React.forwardRef<\r\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\r\n>(({ className, ...props }, ref) => {\r\n return <RadioGroupPrimitive.Root className={cn('grid gap-2', className)} {...props} ref={ref} />\r\n})\r\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\r\n\r\nconst RadioGroupItem = React.forwardRef<\r\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <RadioGroupPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n 'aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow-sm focus:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\r\n <Circle className=\"h-2 w-2 fill-primary\" />\r\n </RadioGroupPrimitive.Indicator>\r\n </RadioGroupPrimitive.Item>\r\n )\r\n})\r\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\r\n\r\nexport { RadioGroup, RadioGroupItem }\r\n","'use client'\n\nimport * as React from 'react'\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\n\nimport { cn } from '@/lib/cn'\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-separator',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n))\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n","import { cn } from '@/lib/cn'\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: 'default' | 'purai'\n}\n\nfunction Skeleton({ className, variant = 'default', ...props }: SkeletonProps) {\n const variantClass = variant === 'default' ? 'skeleton-card' : 'skeleton-card-purai'\n return <div className={cn(variantClass, 'rounded-normal', className)} {...props} />\n}\n\nexport { Skeleton }\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Avatar = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Root\r\n ref={ref}\r\n className={cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', className)}\r\n {...props}\r\n />\r\n))\r\nAvatar.displayName = AvatarPrimitive.Root.displayName\r\n\r\nconst AvatarImage = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Image>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Image\r\n ref={ref}\r\n className={cn('aspect-square h-full w-full', className)}\r\n {...props}\r\n />\r\n))\r\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\r\n\r\nconst AvatarFallback = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Fallback\r\n ref={ref}\r\n className={cn(\r\n 'flex h-full w-full items-center justify-center rounded-full bg-avatar-bg',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\r\n\r\nexport { Avatar, AvatarImage, AvatarFallback }\r\n","'use client'\r\n\r\nimport * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio'\r\n\r\nconst AspectRatio = AspectRatioPrimitive.Root\r\n\r\nexport { AspectRatio }\r\n","import * as React from \"react\";\nimport { cn } from \"@/lib/cn\";\n\nconst VisuallyHidden = React.forwardRef<\n\tHTMLSpanElement,\n\tReact.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => {\n\treturn (\n\t\t<span\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0\",\n\t\t\t\t\"clip-[rect(0,0,0,0)]\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nVisuallyHidden.displayName = \"VisuallyHidden\";\n\nexport { VisuallyHidden };\n","export default function CloseIcon3(props: React.SVGProps<SVGSVGElement>) {\r\n return (\r\n <svg width=\"100\" height=\"100\" viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\r\n<path d=\"M91.4059 1.40589C93.2804 -0.468629 96.3204 -0.468629 98.1949 1.40589C100.069 3.2804 100.069 6.32043 98.1949 8.19495L56.5895 49.8004L98.1949 91.4059C100.069 93.2804 100.069 96.3204 98.1949 98.1949C96.3204 100.069 93.2804 100.069 91.4059 98.1949L49.8004 56.5895L8.19495 98.1949C6.32043 100.069 3.2804 100.069 1.40589 98.1949C-0.468629 96.3204 -0.468629 93.2804 1.40589 91.4059L43.0114 49.8004L1.40589 8.19495C-0.468629 6.32043 -0.468629 3.2804 1.40589 1.40589C3.2804 -0.468629 6.32043 -0.468629 8.19495 1.40589L49.8004 43.0114L91.4059 1.40589Z\" fill=\"currentColor\"/>\r\n</svg>\r\n )\r\n}\r\n","'use client'\n\nimport * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { Button } from '@/components/button'\nimport CloseIcon3 from '@/components/svg/CloseIcon3'\n\nimport { cn } from '@/lib/cn'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-dialog-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 ',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\ninterface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n disableOutsideClick?: boolean\n hideCloseButton?: boolean\n}\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, children, disableOutsideClick = true, hideCloseButton = false, onInteractOutside, ...props }, ref) => {\n const handleInteractOutside = (e: any) => {\n if (disableOutsideClick) {\n e.preventDefault()\n return\n }\n onInteractOutside?.(e)\n }\n\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-dialog-bg p-6 shadow-dialog duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-normal sm:rounded-dialog',\n className\n )}\n onInteractOutside={handleInteractOutside}\n {...props}\n >\n {children}\n\n {/* shadcn 原始dialog 关闭按钮 */}\n {/* <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-normal opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close> */}\n\n {!hideCloseButton && (\n <DialogPrimitive.Close className=\"absolute right-4 top-4\">\n <Button variant={'close'} asChild className='px-0 w-10 h-10'>\n <div className=\"flex items-center\">\n <CloseIcon3 className='!w-3 !h-3' />\n </div>\n </Button>\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n})\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-medium leading-none', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription\n}\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as SelectPrimitive from '@radix-ui/react-select'\r\nimport { cn } from '@/lib/cn'\r\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\r\n\r\n// 全局状态管理:记录当前打开的 select\r\nlet currentOpenSelect: string | null = null\r\nconst selectListeners = new Set<(id: string | null) => void>()\r\n\r\nconst notifySelectOpen = (id: string | null) => {\r\n currentOpenSelect = id\r\n selectListeners.forEach(listener => listener(id))\r\n}\r\n\r\nconst Select: React.FC<React.ComponentPropsWithoutRef<typeof SelectPrimitive.Root>> = (props) => {\r\n const selectId = React.useId()\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n\r\n React.useEffect(() => {\r\n const listener = (openId: string | null) => {\r\n if (openId !== selectId && isOpen) {\r\n setIsOpen(false)\r\n }\r\n }\r\n selectListeners.add(listener)\r\n return () => {\r\n selectListeners.delete(listener)\r\n }\r\n }, [selectId, isOpen])\r\n\r\n const handleOpenChange = React.useCallback((open: boolean) => {\r\n setIsOpen(open)\r\n if (open) {\r\n notifySelectOpen(selectId)\r\n } else if (currentOpenSelect === selectId) {\r\n notifySelectOpen(null)\r\n }\r\n props.onOpenChange?.(open)\r\n }, [selectId, props])\r\n\r\n return (\r\n <SelectPrimitive.Root\r\n {...props}\r\n open={props.open !== undefined ? props.open : isOpen}\r\n onOpenChange={handleOpenChange}\r\n />\r\n )\r\n}\r\n\r\nconst SelectGroup = SelectPrimitive.Group\r\n\r\nconst SelectValue = SelectPrimitive.Value\r\n\r\nconst SelectTrigger = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n <SelectPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n 'flex h-10 w-full items-center justify-between whitespace-nowrap rounded-normal border border-border bg-background px-2.5 py-1 text-sm text-foreground ring-offset-background data-placeholder:text-secondary-foreground focus:outline-none cursor-pointer disabled:cursor-not-allowed disabled:opacity-30 [&>span]:line-clamp-1',\r\n `${props.name === 'secondary' ? 'select-secondary' : 'select-primary'}`,\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {\r\n props.nonce !== 'noIcon' &&\r\n <SelectPrimitive.Icon asChild>\r\n <ChevronDownIcon className=\"h-4 w-4 opacity-50 ml-2\" />\r\n </SelectPrimitive.Icon>\r\n }\r\n </SelectPrimitive.Trigger>\r\n))\r\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\r\n\r\nconst SelectScrollUpButton = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\r\n>(({ className, ...props }, ref) => (\r\n <SelectPrimitive.ScrollUpButton\r\n ref={ref}\r\n className={cn('flex cursor-default items-center justify-center py-1', className)}\r\n {...props}\r\n >\r\n <ChevronUpIcon className=\"h-4 w-4\" />\r\n </SelectPrimitive.ScrollUpButton>\r\n))\r\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\r\n\r\nconst SelectScrollDownButton = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\r\n>(({ className, ...props }, ref) => (\r\n <SelectPrimitive.ScrollDownButton\r\n ref={ref}\r\n className={cn('flex cursor-default items-center justify-center py-1', className)}\r\n {...props}\r\n >\r\n <ChevronDownIcon className=\"h-4 w-4\" />\r\n </SelectPrimitive.ScrollDownButton>\r\n))\r\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName\r\n\r\nconst SelectContent = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> & {\r\n /**\r\n * 是否限制下拉框宽度为 trigger 的宽度\r\n * @default false\r\n */\r\n limitWidth?: boolean\r\n }\r\n>(({ className, children, position = 'popper', limitWidth = false, ...props }, ref) => (\r\n <SelectPrimitive.Portal>\r\n <SelectPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n 'relative z-50 rounded-select-radius p-2 max-h-[var(--radix-select-content-available-height)] min-w-[8rem] overflow-hidden border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n position === 'popper' &&\r\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\r\n className\r\n )}\r\n position={position}\r\n {...props}\r\n >\r\n <SelectScrollUpButton />\r\n <SelectPrimitive.Viewport\r\n className={cn(\r\n 'p-1',\r\n position === 'popper' &&\r\n limitWidth\r\n ? 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] max-w-[var(--radix-select-trigger-width)]'\r\n : 'h-[var(--radix-select-trigger-height)] w-full min-w-[calc(var(--radix-select-trigger-width)-18px)]'\r\n )}\r\n >\r\n {children}\r\n </SelectPrimitive.Viewport>\r\n <SelectScrollDownButton />\r\n </SelectPrimitive.Content>\r\n </SelectPrimitive.Portal>\r\n))\r\nSelectContent.displayName = SelectPrimitive.Content.displayName\r\n\r\nconst SelectLabel = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Label>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\r\n>(({ className, ...props }, ref) => (\r\n <SelectPrimitive.Label\r\n ref={ref}\r\n className={cn('px-2 py-1.5 text-sm font-medium', className)}\r\n {...props}\r\n />\r\n))\r\nSelectLabel.displayName = SelectPrimitive.Label.displayName\r\n\r\nconst SelectItem = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> & {\r\n /**\r\n * 是否截断文本并显示省略号\r\n * @default false\r\n */\r\n truncate?: boolean\r\n }\r\n>(({ className, children, truncate = false, ...props }, ref) => (\r\n <SelectPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n 'relative flex w-full cursor-pointer select-none items-center rounded-select-item-radius py-[10px] pl-3 pr-8 text-sm text-foreground outline-none focus:bg-option-hover focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-30',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <SelectPrimitive.ItemIndicator>\r\n <CheckIcon className=\"h-4 w-4\" />\r\n </SelectPrimitive.ItemIndicator>\r\n </span>\r\n {truncate ? (\r\n <SelectPrimitive.ItemText asChild>\r\n <span className=\"block truncate\">{children}</span>\r\n </SelectPrimitive.ItemText>\r\n ) : (\r\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\r\n )}\r\n </SelectPrimitive.Item>\r\n))\r\nSelectItem.displayName = SelectPrimitive.Item.displayName\r\n\r\nconst SelectSeparator = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <SelectPrimitive.Separator\r\n ref={ref}\r\n className={cn('-mx-1 my-1 h-px bg-muted', className)}\r\n {...props}\r\n />\r\n))\r\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\r\n\r\nexport {\r\n Select,\r\n SelectGroup,\r\n SelectValue,\r\n SelectTrigger,\r\n SelectContent,\r\n SelectLabel,\r\n SelectItem,\r\n SelectSeparator,\r\n SelectScrollUpButton,\r\n SelectScrollDownButton\r\n}\r\n","'use client'\n\nimport * as React from 'react'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\n\nimport { cn } from '@/lib/cn'\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n container?: HTMLElement | null\n }\n>(({ className, align = 'center', sideOffset = 4, container, ...props }, ref) => (\n <PopoverPrimitive.Portal container={container}>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 rounded-normal border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","'use client'\n\nimport * as React from 'react'\nimport * as HoverCardPrimitive from '@radix-ui/react-hover-card'\n\nimport { cn } from '@/lib/cn'\n\nconst HoverCard = HoverCardPrimitive.Root\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\nconst HoverCardContent = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Portal>\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-64 rounded-normal border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n))\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","'use client'\n\nimport * as React from 'react'\nimport * as SheetPrimitive from '@radix-ui/react-dialog'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { X } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm'\n }\n },\n defaultVariants: {\n side: 'right'\n }\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content ref={ref} className={cn(sheetVariants({ side }), className)} {...props}>\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-normal opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\n)\nSheetHeader.displayName = 'SheetHeader'\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nSheetFooter.displayName = 'SheetFooter'\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-foreground', className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription\n}\n","import { cva } from 'class-variance-authority'\r\n\r\nexport const sheetVariants = cva(\r\n 'fixed z-50 gap-4 bg-dialog-bg p-6 shadow-[var(--dialog-shadow)] transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out',\r\n {\r\n variants: {\r\n side: {\r\n top: 'inset-x-0 top-0 border-b border-shade-5 data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\r\n bottom:\r\n 'inset-x-0 bottom-0 border-t border-shade-5 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\r\n left: 'inset-y-0 left-0 h-full w-3/4 border-r border-shade-5 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\r\n right:\r\n 'inset-y-0 right-0 h-full w-3/4 border-l border-shade-5 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\r\n },\r\n },\r\n defaultVariants: {\r\n side: 'right',\r\n },\r\n }\r\n)\r\n","'use client'\n\nimport * as React from 'react'\nimport { Drawer as DrawerPrimitive } from 'vaul'\n\nimport { cn } from '@/lib/cn'\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root shouldScaleBackground={shouldScaleBackground} {...props} />\n)\nDrawer.displayName = 'Drawer'\n\nconst DrawerTrigger = DrawerPrimitive.Trigger\n\nconst DrawerPortal = DrawerPrimitive.Portal\n\nconst DrawerClose = DrawerPrimitive.Close\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn('fixed inset-0 z-50 bg-black/80', className)}\n {...props}\n />\n))\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background',\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n))\nDrawerContent.displayName = 'DrawerContent'\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('grid gap-1.5 p-4 text-center sm:text-left', className)} {...props} />\n)\nDrawerHeader.displayName = 'DrawerHeader'\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('mt-auto flex flex-col gap-2 p-4', className)} {...props} />\n)\nDrawerFooter.displayName = 'DrawerFooter'\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none', className)}\n {...props}\n />\n))\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription\n}\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog'\r\n\r\nimport { cn } from '@/lib/cn'\r\nimport { buttonVariants } from '@/components/button'\r\n\r\nconst AlertDialog = AlertDialogPrimitive.Root\r\n\r\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\r\n\r\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\r\n\r\nconst AlertDialogOverlay = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Overlay\r\n className={cn(\r\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\r\n className\r\n )}\r\n {...props}\r\n ref={ref}\r\n />\r\n))\r\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\r\n\r\nconst AlertDialogContent = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPortal>\r\n <AlertDialogOverlay />\r\n <AlertDialogPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-normal',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </AlertDialogPortal>\r\n))\r\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\r\n\r\nconst AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\r\n)\r\nAlertDialogHeader.displayName = 'AlertDialogHeader'\r\n\r\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\r\n {...props}\r\n />\r\n)\r\nAlertDialogFooter.displayName = 'AlertDialogFooter'\r\n\r\nconst AlertDialogTitle = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Title\r\n ref={ref}\r\n className={cn('text-lg font-medium', className)}\r\n {...props}\r\n />\r\n))\r\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\r\n\r\nconst AlertDialogDescription = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Description\r\n ref={ref}\r\n className={cn('text-sm text-muted-foreground', className)}\r\n {...props}\r\n />\r\n))\r\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName\r\n\r\nconst AlertDialogAction = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Action ref={ref} className={cn(buttonVariants(), className)} {...props} />\r\n))\r\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\r\n\r\nconst AlertDialogCancel = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Cancel\r\n ref={ref}\r\n className={cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', className)}\r\n {...props}\r\n />\r\n))\r\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\r\n\r\nexport {\r\n AlertDialog,\r\n AlertDialogPortal,\r\n AlertDialogOverlay,\r\n AlertDialogTrigger,\r\n AlertDialogContent,\r\n AlertDialogHeader,\r\n AlertDialogFooter,\r\n AlertDialogTitle,\r\n AlertDialogDescription,\r\n AlertDialogAction,\r\n AlertDialogCancel\r\n}\r\n","'use client'\n\nimport * as React from 'react'\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\n\nimport { cn } from '@/lib/cn'\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn('relative overflow-hidden', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as TogglePrimitive from '@radix-ui/react-toggle'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst toggleVariants = cva(\r\n 'inline-flex items-center justify-center gap-2 rounded-normal text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-toggle-bg text-toggle-foreground hover:bg-toggle-hover-bg hover:text-toggle-foreground data-[state=on]:bg-toggle-active-bg data-[state=on]:text-toggle-active-foreground',\r\n },\r\n size: {\r\n default: 'h-9 px-2 min-w-9',\r\n sm: 'h-8 px-1.5 min-w-8',\r\n lg: 'h-10 px-2.5 min-w-10'\r\n }\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'default'\r\n }\r\n }\r\n)\r\n\r\nconst Toggle = React.forwardRef<\r\n React.ElementRef<typeof TogglePrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>\r\n>(({ className, variant, size, ...props }, ref) => (\r\n <TogglePrimitive.Root\r\n ref={ref}\r\n className={cn(toggleVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n))\r\n\r\nToggle.displayName = TogglePrimitive.Root.displayName\r\n\r\nexport { Toggle, toggleVariants }\r\n","'use client'\n\nimport * as React from 'react'\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group'\nimport { type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/cn'\nimport { toggleVariants } from '@/components/toggle'\n\nconst ToggleGroupContext = React.createContext<VariantProps<typeof toggleVariants>>({\n size: 'default',\n variant: 'default'\n})\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn('flex items-center justify-center gap-1', className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>{children}</ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n))\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>\n>(({ className, children, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size\n }),\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\n\nexport { ToggleGroup, ToggleGroupItem }\n","'use client'\r\n\r\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible'\r\n\r\nconst Collapsible = CollapsiblePrimitive.Root\r\n\r\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\r\n\r\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\r\n\r\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\r\n","import * as React from 'react'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst alertVariants = cva(\r\n 'relative w-full rounded-normal border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-background text-foreground',\r\n destructive:\r\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive'\r\n }\r\n },\r\n defaultVariants: {\r\n variant: 'default'\r\n }\r\n }\r\n)\r\n\r\nconst Alert = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\r\n>(({ className, variant, ...props }, ref) => (\r\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\r\n))\r\nAlert.displayName = 'Alert'\r\n\r\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\r\n ({ className, ...props }, ref) => (\r\n <h5 ref={ref} className={cn('mb-1 font-medium leading-none', className)} {...props} />\r\n )\r\n)\r\nAlertTitle.displayName = 'AlertTitle'\r\n\r\nconst AlertDescription = React.forwardRef<\r\n HTMLParagraphElement,\r\n React.HTMLAttributes<HTMLParagraphElement>\r\n>(({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\r\n))\r\nAlertDescription.displayName = 'AlertDescription'\r\n\r\nexport { Alert, AlertTitle, AlertDescription }\r\n","'use client'\n\nimport * as React from 'react'\nimport * as ToastPrimitives from '@radix-ui/react-toast'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { X } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst ToastProvider = ToastPrimitives.Provider\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n 'fixed top-0 z-100 flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]',\n className\n )}\n {...props}\n />\n))\nToastViewport.displayName = ToastPrimitives.Viewport.displayName\n\nconst toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-normal border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full sm:data-[state=open]:slide-in-from-bottom-full',\n {\n variants: {\n variant: {\n default: 'border bg-background text-foreground',\n destructive:\n 'destructive group border-destructive bg-destructive text-foreground'\n }\n },\n defaultVariants: {\n variant: 'default'\n }\n }\n)\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <ToastPrimitives.Root\n ref={ref}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n )\n})\nToast.displayName = ToastPrimitives.Root.displayName\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n 'inline-flex h-8 shrink-0 items-center justify-center rounded-normal border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-hidden focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 hover:group-[.destructive]:border-destructive/30 hover:group-[.destructive]:bg-destructive hover:group-[.destructive]:text-foreground focus:group-[.destructive]:ring-destructive',\n className\n )}\n {...props}\n />\n))\nToastAction.displayName = ToastPrimitives.Action.displayName\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n 'absolute right-1 top-1 rounded-normal p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-hidden focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 hover:group-[.destructive]:text-red-50 focus:group-[.destructive]:ring-red-400 focus:group-[.destructive]:ring-offset-red-600',\n className\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n))\nToastClose.displayName = ToastPrimitives.Close.displayName\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title\n ref={ref}\n className={cn('text-sm font-semibold [&+div]:text-xs', className)}\n {...props}\n />\n))\nToastTitle.displayName = ToastPrimitives.Title.displayName\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description\n ref={ref}\n className={cn('text-sm opacity-90', className)}\n {...props}\n />\n))\nToastDescription.displayName = ToastPrimitives.Description.displayName\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>\n\nexport {\n type ToastProps,\n type ToastActionElement,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction\n}\n","import { cva } from 'class-variance-authority'\r\n\r\nexport const toastVariants = cva(\r\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border border-shade-5 p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'border bg-background text-foreground',\r\n destructive:\r\n 'destructive group border-destructive bg-destructive text-destructive-foreground',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n)\r\n","'use client'\n\n// Inspired by react-hot-toast library\nimport * as React from 'react'\n\nimport type { ToastActionElement, ToastProps } from '@/components/toast'\n\nconst TOAST_LIMIT = 1\nconst TOAST_REMOVE_DELAY = 1000000\n\ntype ToasterToast = ToastProps & {\n id: string\n title?: React.ReactNode\n description?: React.ReactNode\n action?: ToastActionElement\n}\n\nconst actionTypes = {\n ADD_TOAST: 'ADD_TOAST',\n UPDATE_TOAST: 'UPDATE_TOAST',\n DISMISS_TOAST: 'DISMISS_TOAST',\n REMOVE_TOAST: 'REMOVE_TOAST'\n} as const\n\nlet count = 0\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER\n return count.toString()\n}\n\ntype ActionType = typeof actionTypes\n\ntype Action =\n | {\n type: ActionType['ADD_TOAST']\n toast: ToasterToast\n }\n | {\n type: ActionType['UPDATE_TOAST']\n toast: Partial<ToasterToast>\n }\n | {\n type: ActionType['DISMISS_TOAST']\n toastId?: ToasterToast['id']\n }\n | {\n type: ActionType['REMOVE_TOAST']\n toastId?: ToasterToast['id']\n }\n\ninterface State {\n toasts: ToasterToast[]\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>()\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId)\n dispatch({\n type: 'REMOVE_TOAST',\n toastId: toastId\n })\n }, TOAST_REMOVE_DELAY)\n\n toastTimeouts.set(toastId, timeout)\n}\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case 'ADD_TOAST':\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT)\n }\n\n case 'UPDATE_TOAST':\n return {\n ...state,\n toasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t))\n }\n\n case 'DISMISS_TOAST': {\n const { toastId } = action\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId)\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id)\n })\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false\n }\n : t\n )\n }\n }\n case 'REMOVE_TOAST':\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: []\n }\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId)\n }\n }\n}\n\nconst listeners: Array<(state: State) => void> = []\n\nlet memoryState: State = { toasts: [] }\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action)\n listeners.forEach((listener) => {\n listener(memoryState)\n })\n}\n\ntype Toast = Omit<ToasterToast, 'id'>\n\nfunction toast({ ...props }: Toast) {\n const id = genId()\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: 'UPDATE_TOAST',\n toast: { ...props, id }\n })\n const dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id })\n\n dispatch({\n type: 'ADD_TOAST',\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss()\n }\n }\n })\n\n return {\n id: id,\n dismiss,\n update\n }\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState)\n\n React.useEffect(() => {\n listeners.push(setState)\n return () => {\n const index = listeners.indexOf(setState)\n if (index > -1) {\n listeners.splice(index, 1)\n }\n }\n }, [state])\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId })\n }\n}\n\nexport { useToast, toast }\n","'use client'\n\nimport { useToast } from '@/hooks/use-toast'\nimport {\n Toast,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport\n} from '@/components/toast'\n\nexport function Toaster() {\n const { toasts } = useToast()\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && <ToastDescription>{description}</ToastDescription>}\n </div>\n {action}\n <ToastClose />\n </Toast>\n )\n })}\n <ToastViewport />\n </ToastProvider>\n )\n}\n","'use client'\n\nimport { useTheme } from 'next-themes'\nimport { Toaster as Sonner } from 'sonner'\n\ntype ToasterProps = React.ComponentProps<typeof Sonner>\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n description: 'group-[.toast]:text-muted-foreground',\n actionButton: 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',\n cancelButton: 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground'\n }\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","import * as React from 'react'\n\nimport { cn } from '@/lib/cn'\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn('w-full caption-bottom text-sm', className)} {...props} />\n </div>\n )\n)\nTable.displayName = 'Table'\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n))\nTableHeader.displayName = 'TableHeader'\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n))\nTableBody.displayName = 'TableBody'\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn('border-t bg-table-hover/50 font-normal last:[&>tr]:border-b-0', className)}\n {...props}\n />\n))\nTableFooter.displayName = 'TableFooter'\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-table-hover/50 data-[state=selected]:bg-table-hover',\n className\n )}\n {...props}\n />\n )\n)\nTableRow.displayName = 'TableRow'\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-10 px-2 text-left align-middle font-normal text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = 'TableHead'\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = 'TableCell'\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-foreground', className)} {...props} />\n))\nTableCaption.displayName = 'TableCaption'\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Tabs = TabsPrimitive.Root\r\n\r\nconst TabsList = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.List>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.List\r\n ref={ref}\r\n className={cn(\r\n 'inline-flex h-11 border border-border items-center justify-center rounded-normal bg-tabs-bg p-1 text-tabs-foreground',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsList.displayName = TabsPrimitive.List.displayName\r\n\r\nconst TabsTrigger = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n 'inline-flex text-sm font-medium h-9 rounded-normal items-center justify-center whitespace-nowrap rounded-normal px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-tabs-active-bg data-[state=active]:text-tabs-active-foreground hover:text-tabs-hover-foreground data-[state=active]:shadow-sm',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\r\n\r\nconst TabsContent = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n 'mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsContent.displayName = TabsPrimitive.Content.displayName\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\r\nimport { ChevronDown } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Accordion = AccordionPrimitive.Root\r\n\r\nconst AccordionItem = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\r\n>(({ className, ...props }, ref) => (\r\n <AccordionPrimitive.Item ref={ref} className={cn('border-b', className)} {...props} />\r\n))\r\nAccordionItem.displayName = 'AccordionItem'\r\n\r\nconst AccordionTrigger = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n <AccordionPrimitive.Header className=\"flex\">\r\n <AccordionPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n 'flex flex-1 items-center justify-between py-4 text-sm font-normal transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronDown className=\"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200\" />\r\n </AccordionPrimitive.Trigger>\r\n </AccordionPrimitive.Header>\r\n))\r\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\r\n\r\nconst AccordionContent = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\r\n>(({ className, children, ...props }, ref) => (\r\n <AccordionPrimitive.Content\r\n ref={ref}\r\n className=\"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\r\n {...props}\r\n >\r\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\r\n </AccordionPrimitive.Content>\r\n))\r\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\r\n\r\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\r\n","import * as React from 'react'\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { ChevronRight, MoreHorizontal } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/cn'\r\n\r\nconst Breadcrumb = React.forwardRef<\r\n HTMLElement,\r\n React.ComponentPropsWithoutRef<'nav'> & {\r\n separator?: React.ReactNode\r\n }\r\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\r\nBreadcrumb.displayName = 'Breadcrumb'\r\n\r\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\r\n ({ className, ...props }, ref) => (\r\n <ol\r\n ref={ref}\r\n className={cn(\r\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n)\r\nBreadcrumbList.displayName = 'BreadcrumbList'\r\n\r\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\r\n ({ className, ...props }, ref) => (\r\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\r\n )\r\n)\r\nBreadcrumbItem.displayName = 'BreadcrumbItem'\r\n\r\nconst BreadcrumbLink = React.forwardRef<\r\n HTMLAnchorElement,\r\n React.ComponentPropsWithoutRef<'a'> & {\r\n asChild?: boolean\r\n }\r\n>(({ asChild, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : 'a'\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n className={cn('transition-colors hover:text-foreground', className)}\r\n {...props}\r\n />\r\n )\r\n})\r\nBreadcrumbLink.displayName = 'BreadcrumbLink'\r\n\r\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\r\n ({ className, ...props }, ref) => (\r\n <span\r\n ref={ref}\r\n role=\"link\"\r\n aria-disabled=\"true\"\r\n aria-current=\"page\"\r\n className={cn('font-normal text-foreground', className)}\r\n {...props}\r\n />\r\n )\r\n)\r\nBreadcrumbPage.displayName = 'BreadcrumbPage'\r\n\r\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\r\n <li\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn('[&>svg]:w-3.5 [&>svg]:h-3.5', className)}\r\n {...props}\r\n >\r\n {children ?? <ChevronRight />}\r\n </li>\r\n)\r\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\r\n\r\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\r\n <span\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn('flex h-9 w-9 items-center justify-center', className)}\r\n {...props}\r\n >\r\n <MoreHorizontal className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">More</span>\r\n </span>\r\n)\r\nBreadcrumbEllipsis.displayName = 'BreadcrumbElipssis'\r\n\r\nexport {\r\n Breadcrumb,\r\n BreadcrumbList,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n BreadcrumbEllipsis\r\n}\r\n","import * as React from 'react'\nimport * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu'\nimport { cva } from 'class-variance-authority'\nimport { ChevronDown } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn('relative z-10 flex max-w-max flex-1 items-center justify-center', className)}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n))\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn('group flex flex-1 list-none items-center justify-center space-x-1', className)}\n {...props}\n />\n))\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\nconst navigationMenuTriggerStyle = cva(\n 'group inline-flex h-9 w-max items-center justify-center rounded-normal bg-background px-4 py-2 text-sm font-normal transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 data-[state=open]:bg-accent/50'\n)\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDown\n className=\"relative top-[1px] ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n))\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ',\n className\n )}\n {...props}\n />\n))\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn('absolute left-0 top-full flex justify-center')}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n 'origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-normal border bg-popover text-popover-foreground shadow-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]',\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n))\nNavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n 'top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in',\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n))\nNavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as MenubarPrimitive from '@radix-ui/react-menubar'\nimport { Check, ChevronRight, Circle } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst MenubarMenu = MenubarPrimitive.Menu\n\nconst MenubarGroup = MenubarPrimitive.Group\n\nconst MenubarPortal = MenubarPrimitive.Portal\n\nconst MenubarSub = MenubarPrimitive.Sub\n\nconst MenubarRadioGroup = MenubarPrimitive.RadioGroup\n\nconst Menubar = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Root\n ref={ref}\n className={cn(\n 'flex h-9 items-center space-x-1 rounded-normal border bg-background p-1 shadow-xs',\n className\n )}\n {...props}\n />\n))\nMenubar.displayName = MenubarPrimitive.Root.displayName\n\nconst MenubarTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex cursor-default select-none items-center rounded-normal px-3 py-1 text-sm font-normal outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n className\n )}\n {...props}\n />\n))\nMenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName\n\nconst MenubarSubTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'flex cursor-default select-none items-center rounded-normal px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n))\nMenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName\n\nconst MenubarSubContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.SubContent\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-normal border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n))\nMenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName\n\nconst MenubarContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>\n>(({ className, align = 'start', alignOffset = -4, sideOffset = 8, ...props }, ref) => (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 min-w-[12rem] overflow-hidden rounded-normal border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </MenubarPrimitive.Portal>\n))\nMenubarContent.displayName = MenubarPrimitive.Content.displayName\n\nconst MenubarItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n))\nMenubarItem.displayName = MenubarPrimitive.Item.displayName\n\nconst MenubarCheckboxItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n))\nMenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName\n\nconst MenubarRadioItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <MenubarPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"h-4 w-4 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n))\nMenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName\n\nconst MenubarLabel = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-medium', inset && 'pl-8', className)}\n {...props}\n />\n))\nMenubarLabel.displayName = MenubarPrimitive.Label.displayName\n\nconst MenubarSeparator = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-muted', className)}\n {...props}\n />\n))\nMenubarSeparator.displayName = MenubarPrimitive.Separator.displayName\n\nconst MenubarShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n )\n}\nMenubarShortcut.displayname = 'MenubarShortcut'\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarPortal,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarSub,\n MenubarShortcut\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { Check, ChevronRight, Circle } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'flex cursor-default gap-2 select-none items-center rounded-dropdown-menu-item px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-dropdown-menu border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n))\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-dropdown-menu border border-border bg-dropdown-menu-bg backdrop-blur-sm p-1 text-dropdown-menu-foreground shadow-md',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 rounded-dropdown-menu-item px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-dropdown-menu-hover-bg focus:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-dropdown-menu-item py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-dropdown-menu-item py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-medium', inset && 'pl-8', className)}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-separator', className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return <span className={cn('ml-auto text-xs tracking-widest opacity-60', className)} {...props} />\n}\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut'\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as ContextMenuPrimitive from '@radix-ui/react-context-menu'\nimport { Check, ChevronRight, Circle } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst ContextMenu = ContextMenuPrimitive.Root\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'flex cursor-default select-none items-center rounded-normal px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n))\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-normal border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n))\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-normal border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n))\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n))\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n))\nContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-normal py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-4 w-4 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n))\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-semibold text-foreground', inset && 'pl-8', className)}\n {...props}\n />\n))\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n))\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\n\nconst ContextMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n )\n}\nContextMenuShortcut.displayName = 'ContextMenuShortcut'\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { VariantProps, cva } from 'class-variance-authority'\nimport { PanelLeft } from 'lucide-react'\n\nimport { useIsMobile } from '@/hooks/use-mobile'\nimport { useIsNarrow } from '@/hooks/use-narrow'\nimport { cn } from '@/lib/cn'\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Separator } from '@/components/separator'\nimport { Sheet, SheetContent } from '@/components/sheet'\nimport { Skeleton } from '@/components/skeleton'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/tooltip'\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar:state'\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = '16.06rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3.5rem'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b'\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.')\n }\n\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const isMobile = useIsMobile()\n const isNarrow = useIsNarrow()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return (isMobile || isNarrow) ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, isNarrow, setOpen, setOpenMobile])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed'\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile: isMobile || isNarrow,\n openMobile,\n setOpenMobile,\n toggleSidebar\n }),\n [state, open, setOpen, isMobile, isNarrow, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n }\n)\nSidebarProvider.displayName = 'SidebarProvider'\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n }\n>(\n (\n {\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n forceMount\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden xl:block text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'duration-200 relative h-svh w-(--sidebar-width) bg-transparent transition-[width] ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)'\n )}\n />\n <div\n className={cn(\n 'duration-200 fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] ease-linear xl:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-normal group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n }\n)\nSidebar.displayName = 'Sidebar'\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n const isNarrow = useIsNarrow()\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant={ isNarrow ? 'neutral' : 'none'}\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n})\nSidebarTrigger.displayName = 'SidebarTrigger'\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarRail.displayName = 'SidebarRail'\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))] md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-normal md:peer-data-[variant=inset]:shadow-sm',\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarInset.displayName = 'SidebarInset'\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none',\n className\n )}\n {...props}\n />\n )\n})\nSidebarInput.displayName = 'SidebarInput'\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-1 pt-3 pb-1 px-3', className)}\n {...props}\n />\n )\n }\n)\nSidebarHeader.displayName = 'SidebarHeader'\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-3', className)}\n {...props}\n />\n )\n }\n)\nSidebarFooter.displayName = 'SidebarFooter'\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n )\n})\nSidebarSeparator.displayName = 'SidebarSeparator'\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-1 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarContent.displayName = 'SidebarContent'\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col py-0 px-3 gap-[2px]', className)}\n {...props}\n />\n )\n }\n)\nSidebarGroup.displayName = 'SidebarGroup'\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'duration-200 flex h-8 shrink-0 items-center rounded-normal px-2.5 text-xs font-normal text-sidebar-secondary-foreground outline-hidden ring-sidebar-ring transition-[margin,opa] ease-linear [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupLabel.displayName = 'SidebarGroupLabel'\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-normal p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = 'SidebarGroupAction'\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n )\n)\nSidebarGroupContent.displayName = 'SidebarGroupContent'\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-[2px]', className)}\n {...props}\n />\n )\n)\nSidebarMenu.displayName = 'SidebarMenu'\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n )\n)\nSidebarMenuItem.displayName = 'SidebarMenuItem'\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full !h-10 items-center gap-2 overflow-hidden rounded-normal p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:[&_svg]:text-foreground [&_svg]:text-sidebar-secondary-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-normal data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2 group-data-[collapsible=icon]:pl-1.5 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]'\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!'\n }\n },\n defaultVariants: {\n variant: 'default',\n size: 'default'\n }\n }\n)\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : 'button'\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className, 'sidebar-item-radius pl-1 pr-2')}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n }\n)\nSidebarMenuButton.displayName = 'SidebarMenuButton'\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean\n showOnHover?: boolean\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-normal p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = 'SidebarMenuAction'\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-normal px-1 text-xs font-normal tabular-nums text-sidebar-foreground select-none pointer-events-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n)\nSidebarMenuBadge.displayName = 'SidebarMenuBadge'\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('rounded-normal h-8 flex gap-2 px-2 items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-normal\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 flex-1 max-w-(--skeleton-width)\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width\n } as React.CSSProperties\n }\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton'\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n ' flex min-w-0 translate-x-px flex-col gap-[2px] my-0.5 sidebar-item-radius',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n)\nSidebarMenuSub.displayName = 'SidebarMenuSub'\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ ...props }, ref) => <li ref={ref} {...props} />\n)\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem'\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-10 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-r-md px-1 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n 'data-[active=true]:border-foreground hover:border-foreground/50 sidebar-item-radius',\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton'\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar\n}\n","'use client'\n\nimport * as React from 'react'\nimport { type DialogProps } from '@radix-ui/react-dialog'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Search } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { Dialog, DialogContent } from '@/components/dialog'\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-normal bg-popover text-popover-foreground command-shadow',\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-normal bg-transparent py-3 text-sm outline-hidden placeholder:text-secondary-foreground disabled:cursor-not-allowed disabled:opacity-30',\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-2 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-secondary-foreground',\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 h-px bg-border', className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex gap-2 select-none cursor-pointer items-center rounded-normal p-2 text-sm text-foreground outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-option-hover data-[selected=true]:text-foreground data-[selected=true]:rounded-normal data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator\n}\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\r\nimport { DayPicker } from 'react-day-picker'\r\n\r\nimport { cn } from '@/lib/cn'\r\nimport { buttonVariants } from '@/components/button'\r\n\r\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>\r\n\r\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\r\n return (\r\n <DayPicker\r\n showOutsideDays={showOutsideDays}\r\n className={cn('p-3', className)}\r\n classNames={{\r\n months: 'flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0',\r\n month: 'space-y-4',\r\n caption: 'flex justify-center pt-1 relative items-center',\r\n caption_label: 'text-sm font-medium',\r\n nav: 'space-x-1 flex items-center',\r\n nav_button: cn(\r\n buttonVariants({ variant: 'outline' }),\r\n 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100'\r\n ),\r\n nav_button_previous: 'absolute left-1',\r\n nav_button_next: 'absolute right-1',\r\n table: 'w-full border-collapse space-y-1',\r\n head_row: 'flex',\r\n head_cell: 'text-muted-foreground rounded-normal w-8 font-normal text-[0.8rem]',\r\n row: 'flex w-full mt-2',\r\n cell: cn(\r\n 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md',\r\n props.mode === 'range'\r\n ? '[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md'\r\n : '[&:has([aria-selected])]:rounded-normal'\r\n ),\r\n day: cn(\r\n buttonVariants({ variant: 'ghost' }),\r\n 'h-8 w-8 p-0 font-normal aria-selected:opacity-100'\r\n ),\r\n day_range_start: 'day-range-start',\r\n day_range_end: 'day-range-end',\r\n day_selected:\r\n 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground',\r\n day_today: 'bg-accent text-accent-foreground',\r\n day_outside:\r\n 'day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground',\r\n day_disabled: 'text-muted-foreground opacity-50',\r\n day_range_middle: 'aria-selected:bg-accent aria-selected:text-accent-foreground',\r\n day_hidden: 'invisible',\r\n ...classNames\r\n }}\r\n components={{\r\n IconLeft: ({ className, ...props }) => (\r\n <ChevronLeft className={cn('h-4 w-4', className)} {...props} />\r\n ),\r\n IconRight: ({ className, ...props }) => (\r\n <ChevronRight className={cn('h-4 w-4', className)} {...props} />\r\n )\r\n }}\r\n {...props}\r\n />\r\n )\r\n}\r\nCalendar.displayName = 'Calendar'\r\n\r\nexport { Calendar }\r\n","'use client'\r\n\r\nimport * as React from 'react'\r\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react'\r\nimport { ArrowLeft, ArrowRight } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/cn'\r\nimport { Button } from '@/components/button'\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: 'horizontal' | 'vertical'\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error('useCarousel must be used within a <Carousel />')\r\n }\r\n\r\n return context\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\r\n>(({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }, ref) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === 'horizontal' ? 'x' : 'y'\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n\r\n const onSelect = React.useCallback((api: CarouselApi) => {\r\n if (!api) {\r\n return\r\n }\r\n\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n }, [])\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'ArrowLeft') {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === 'ArrowRight') {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) {\r\n return\r\n }\r\n\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) {\r\n return\r\n }\r\n\r\n onSelect(api)\r\n api.on('reInit', onSelect)\r\n api.on('select', onSelect)\r\n\r\n return () => {\r\n api?.off('select', onSelect)\r\n }\r\n }, [api, onSelect])\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn('relative', className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n})\r\nCarousel.displayName = 'Carousel'\r\n\r\nconst CarouselContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'flex',\r\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n }\r\n)\r\nCarouselContent.displayName = 'CarouselContent'\r\n\r\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n 'min-w-0 shrink-0 grow-0 basis-full',\r\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nCarouselItem.displayName = 'CarouselItem'\r\n\r\nconst CarouselPrevious = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\r\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-left-12 top-1/2 -translate-y-1/2'\r\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ArrowLeft className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n }\r\n)\r\nCarouselPrevious.displayName = 'CarouselPrevious'\r\n\r\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\r\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-right-12 top-1/2 -translate-y-1/2'\r\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ArrowRight className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n }\r\n)\r\nCarouselNext.displayName = 'CarouselNext'\r\n\r\nexport { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext }\r\n","import * as React from 'react'\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { ButtonProps, buttonVariants } from '@/components/button'\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n)\nPagination.displayName = 'Pagination'\n\nconst PaginationContent = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul ref={ref} className={cn('flex flex-row items-center gap-1', className)} {...props} />\n )\n)\nPaginationContent.displayName = 'PaginationContent'\n\nconst PaginationItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => <li ref={ref} className={cn('', className)} {...props} />\n)\nPaginationItem.displayName = 'PaginationItem'\n\ntype PaginationLinkProps = {\n isActive?: boolean\n size?: ButtonProps['size']\n} & React.ComponentProps<'a'>\n\nconst PaginationLink = ({ className, isActive, size = 'icon', ...props }: PaginationLinkProps) => (\n <a\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n buttonVariants({\n variant: 'outline',\n size\n }),\n className\n )}\n {...props}\n />\n)\nPaginationLink.displayName = 'PaginationLink'\n\nconst PaginationPrevious = ({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn('gap-1 pl-2.5 hover:cursor-pointer', className)}\n {...props}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span className=\"hover:cursor-pointer\">{children ?? 'Previous'}</span>\n </PaginationLink>\n)\nPaginationPrevious.displayName = 'PaginationPrevious'\n\nconst PaginationNext = ({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn('gap-1 pr-2.5 hover:cursor-pointer', className)}\n {...props}\n >\n <span className=\"hover:cursor-pointer\">{children ?? 'Next'}</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n)\nPaginationNext.displayName = 'PaginationNext'\n\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n aria-hidden\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n)\nPaginationEllipsis.displayName = 'PaginationEllipsis'\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\nimport { Slot } from '@radix-ui/react-slot'\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext\n} from 'react-hook-form'\n\nimport { cn } from '@/lib/cn'\nimport { Label } from '@/components/label'\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>({} as FormFieldContextValue)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState, formState } = useFormContext()\n\n const fieldState = getFieldState(fieldContext.name, formState)\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>')\n }\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState\n }\n}\n\ntype FormItemContextValue = {\n id: string\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>({} as FormItemContextValue)\n\nconst FormItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const id = React.useId()\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn('space-y-2', className)} {...props} />\n </FormItemContext.Provider>\n )\n }\n)\nFormItem.displayName = 'FormItem'\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n ref={ref}\n className={cn(error && 'text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n )\n})\nFormLabel.displayName = 'FormLabel'\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n )\n})\nFormControl.displayName = 'FormControl'\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn('text-[0.8rem] text-muted-foreground', className)}\n {...props}\n />\n )\n})\nFormDescription.displayName = 'FormDescription'\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message) : children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn('text-sm font-medium text-destructive', className)}\n {...props}\n >\n {body}\n </p>\n )\n})\nFormMessage.displayName = 'FormMessage'\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField\n}\n","'use client'\n\nimport { GripVertical } from 'lucide-react'\nimport * as ResizablePrimitive from 'react-resizable-panels'\n\nimport { cn } from '@/lib/cn'\n\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (\n <ResizablePrimitive.PanelGroup\n className={cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', className)}\n {...props}\n />\n)\n\nconst ResizablePanel = ResizablePrimitive.Panel\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n withHandle?: boolean\n}) => (\n <ResizablePrimitive.PanelResizeHandle\n className={cn(\n 'relative flex w-px items-center justify-center bg-primary',\n 'after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2',\n 'focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1',\n 'data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full',\n 'data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:top-1/2',\n 'data-[panel-group-direction=vertical]:after:h-2 data-[panel-group-direction=vertical]:after:w-full',\n 'data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0',\n '[&[data-panel-group-direction=vertical]>div]:rotate-90',\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-normal border bg-border cursor-grab active:cursor-grabbing\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n)\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n","'use client'\n\nimport { Check, Copy } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard'\nimport { Button } from '@/components/button'\n\ntype CopyButtonProps = {\n content: string\n copyMessage?: string\n}\n\nexport function CopyButton({ content, copyMessage }: CopyButtonProps) {\n const { isCopied, handleCopy } = useCopyToClipboard({\n text: content,\n copyMessage\n })\n\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"relative h-6 w-6\"\n aria-label=\"Copy to clipboard\"\n onClick={handleCopy}\n >\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <Check\n className={cn(\n 'h-4 w-4 transition-transform ease-in-out',\n isCopied ? 'scale-100' : 'scale-0'\n )}\n />\n </div>\n <Copy\n className={cn(\n 'h-4 w-4 transition-transform ease-in-out',\n isCopied ? 'scale-0' : 'scale-100'\n )}\n />\n </Button>\n )\n}\n","'use client'\n\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { X } from 'lucide-react'\n\ninterface InterruptPromptProps {\n isOpen: boolean\n close: () => void\n}\n\nexport function InterruptPrompt({ isOpen, close }: InterruptPromptProps) {\n return (\n <AnimatePresence>\n {isOpen && (\n <motion.div\n initial={{ top: 0, filter: 'blur(5px)' }}\n animate={{\n top: -40,\n filter: 'blur(0px)',\n transition: {\n type: 'spring',\n filter: { type: 'tween' }\n }\n }}\n exit={{ top: 0, filter: 'blur(5px)' }}\n className=\"absolute left-1/2 flex -translate-x-1/2 overflow-hidden whitespace-nowrap rounded-full border bg-background py-1 text-center text-sm text-muted-foreground\"\n >\n <span className=\"ml-2.5\">Press Enter again to interrupt</span>\n <button\n className=\"ml-1 mr-2.5 flex items-center\"\n type=\"button\"\n onClick={close}\n aria-label=\"Close\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n </motion.div>\n )}\n </AnimatePresence>\n )\n}\n","'use client'\n\nimport React, { useEffect, useRef, useState } from 'react'\nimport { ArrowUp, Square } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { useAutosizeTextArea } from '@/hooks/use-autosize-textarea'\nimport { Button } from '@/components/button'\nimport { InterruptPrompt } from '@/components/interrupt-prompt'\n\ninterface MessageInputBaseProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n value: string\n submitOnEnter?: boolean\n stop?: () => void\n isGenerating: boolean\n enableInterrupt?: boolean\n}\n\ninterface MessageInputWithoutAttachmentProps extends MessageInputBaseProps {\n allowAttachments?: false\n}\n\ntype MessageInputProps = MessageInputWithoutAttachmentProps\n\nexport function MessageInput({\n placeholder = 'Ask AI...',\n className,\n onKeyDown: onKeyDownProp,\n submitOnEnter = true,\n stop,\n isGenerating,\n enableInterrupt = true,\n ...props\n}: MessageInputProps) {\n const [showInterruptPrompt, setShowInterruptPrompt] = useState(false)\n\n useEffect(() => {\n if (!isGenerating) {\n setShowInterruptPrompt(false)\n }\n }, [isGenerating])\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (submitOnEnter && event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault()\n\n if (isGenerating && stop && enableInterrupt) {\n if (showInterruptPrompt) {\n stop()\n setShowInterruptPrompt(false)\n event.currentTarget.form?.requestSubmit()\n } else if (props.value) {\n setShowInterruptPrompt(true)\n return\n }\n }\n\n event.currentTarget.form?.requestSubmit()\n }\n\n onKeyDownProp?.(event)\n }\n\n const textAreaRef = useRef<HTMLTextAreaElement>(null)\n const [, setTextAreaHeight] = useState<number>(0)\n\n useEffect(() => {\n if (textAreaRef.current) {\n setTextAreaHeight(textAreaRef.current.offsetHeight)\n }\n }, [props.value])\n\n useAutosizeTextArea({\n ref: textAreaRef as React.RefObject<HTMLTextAreaElement>,\n maxHeight: 240,\n borderWidth: 1,\n dependencies: [props.value]\n })\n\n return (\n <div className=\"relative flex w-full\">\n {enableInterrupt && (\n <InterruptPrompt isOpen={showInterruptPrompt} close={() => setShowInterruptPrompt(false)} />\n )}\n\n <div className=\"relative flex w-full items-center space-x-2\">\n <div className=\"relative flex-1\">\n <textarea\n aria-label=\"Write your prompt here\"\n placeholder={placeholder}\n ref={textAreaRef}\n onKeyDown={onKeyDown}\n className={cn(\n 'z-10 w-full grow resize-none rounded-normal border border-input bg-background p-3 pr-24 text-sm ring-offset-background transition-[border] placeholder:text-muted-foreground focus-visible:border-primary focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n />\n </div>\n </div>\n\n <div className=\"absolute right-3 top-3 z-20 flex gap-2\">\n {isGenerating && stop ? (\n <Button\n type=\"button\"\n size=\"icon\"\n className=\"h-8 w-8\"\n aria-label=\"Stop generating\"\n onClick={stop}\n >\n <Square className=\"h-3 w-3 animate-pulse\" fill=\"currentColor\" />\n </Button>\n ) : (\n <Button\n type=\"submit\"\n size=\"icon\"\n className=\"h-8 w-8 transition-opacity\"\n aria-label=\"Send message\"\n disabled={props.value === '' || isGenerating}\n >\n <ArrowUp className=\"h-5 w-5\" />\n </Button>\n )}\n </div>\n </div>\n )\n}\nMessageInput.displayName = 'MessageInput'\n","import React, { Suspense } from 'react'\r\nimport Markdown from 'react-markdown'\r\nimport remarkGfm from 'remark-gfm'\r\n\r\nimport { cn } from '@/lib/cn'\r\nimport { CopyButton } from '@/components/copy-button'\r\n\r\ninterface MarkdownRendererProps {\r\n children: string\r\n}\r\n\r\nexport function MarkdownRenderer({ children }: MarkdownRendererProps) {\r\n return (\r\n <div className=\"space-y-3\">\r\n <Markdown remarkPlugins={[remarkGfm]} components={COMPONENTS}>\r\n {children}\r\n </Markdown>\r\n </div>\r\n )\r\n}\r\n\r\ninterface HighlightedPre extends React.HTMLAttributes<HTMLPreElement> {\r\n children: string\r\n language: string\r\n}\r\n\r\n// @ts-expect-error - Async component with React.memo works in Next.js RSC environment\r\nconst HighlightedPre = React.memo(async ({ children, language, ...props }: HighlightedPre) => {\r\n const { codeToTokens, bundledLanguages } = await import('shiki')\r\n\r\n if (!(language in bundledLanguages)) {\r\n return <pre {...props}>{children}</pre>\r\n }\r\n\r\n const { tokens } = await codeToTokens(children, {\r\n lang: language as keyof typeof bundledLanguages,\r\n defaultColor: false,\r\n themes: {\r\n light: 'github-light',\r\n dark: 'github-dark'\r\n }\r\n })\r\n\r\n return (\r\n <pre {...props}>\r\n <code>\r\n {tokens.map((line, lineIndex) => (\r\n <>\r\n <span key={lineIndex}>\r\n {line.map((token, tokenIndex) => {\r\n const style = typeof token.htmlStyle === 'string' ? undefined : token.htmlStyle\r\n\r\n return (\r\n <span\r\n key={tokenIndex}\r\n className=\"text-shiki-light bg-shiki-light-bg dark:text-shiki-dark dark:bg-shiki-dark-bg\"\r\n style={style}\r\n >\r\n {token.content}\r\n </span>\r\n )\r\n })}\r\n </span>\r\n {lineIndex !== tokens.length - 1 && '\\n'}\r\n </>\r\n ))}\r\n </code>\r\n </pre>\r\n )\r\n})\r\nHighlightedPre.displayName = 'HighlightedCode'\r\n\r\ninterface CodeBlockProps extends React.HTMLAttributes<HTMLPreElement> {\r\n children: React.ReactNode\r\n className?: string\r\n language: string\r\n}\r\n\r\nconst CodeBlock = ({ children, className, language, ...restProps }: CodeBlockProps) => {\r\n const code = typeof children === 'string' ? children : childrenTakeAllStringContents(children)\r\n\r\n const preClass = cn(\r\n 'overflow-x-scroll rounded-normal border bg-background/50 p-4 font-mono text-sm [scrollbar-width:none]',\r\n className\r\n )\r\n\r\n return (\r\n <div className=\"group/code relative mb-4\">\r\n <Suspense\r\n fallback={\r\n <pre className={preClass} {...restProps}>\r\n {children}\r\n </pre>\r\n }\r\n >\r\n <HighlightedPre language={language} className={preClass}>\r\n {code}\r\n </HighlightedPre>\r\n </Suspense>\r\n\r\n <div className=\"invisible absolute right-2 top-2 flex space-x-1 rounded-normal p-1 opacity-0 transition-all duration-200 group-hover/code:visible group-hover/code:opacity-100\">\r\n <CopyButton content={code} copyMessage=\"Copied code to clipboard\" />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nfunction childrenTakeAllStringContents(element: any): string {\r\n if (typeof element === 'string') {\r\n return element\r\n }\r\n\r\n if (element?.props?.children) {\r\n let children = element.props.children\r\n\r\n if (Array.isArray(children)) {\r\n return children.map((child) => childrenTakeAllStringContents(child)).join('')\r\n } else {\r\n return childrenTakeAllStringContents(children)\r\n }\r\n }\r\n\r\n return ''\r\n}\r\n\r\nconst COMPONENTS = {\r\n h1: withClass('h1', 'text-2xl font-medium'),\r\n h2: withClass('h2', 'font-medium text-xl'),\r\n h3: withClass('h3', 'font-medium text-lg'),\r\n h4: withClass('h4', 'font-medium text-base'),\r\n h5: withClass('h5', 'font-normal'),\r\n strong: withClass('strong', 'font-medium'),\r\n a: withClass('a', 'text-primary underline underline-offset-2'),\r\n blockquote: withClass('blockquote', 'border-l-2 border-primary pl-4'),\r\n code: ({ children, className, node, ...rest }: any) => {\r\n const match = /language-(\\w+)/.exec(className || '')\r\n return match ? (\r\n <CodeBlock className={className} language={match[1]} {...rest}>\r\n {children}\r\n </CodeBlock>\r\n ) : (\r\n <code\r\n className={cn(\r\n 'font-mono [:not(pre)>&]:rounded-normal [:not(pre)>&]:bg-background/50 [:not(pre)>&]:px-1 [:not(pre)>&]:py-0.5'\r\n )}\r\n {...rest}\r\n >\r\n {children}\r\n </code>\r\n )\r\n },\r\n pre: ({ children, ...props }: React.HTMLAttributes<HTMLPreElement>) => (\r\n <pre {...props}>{children}</pre>\r\n ),\r\n ol: withClass('ol', 'list-decimal space-y-2 pl-6'),\r\n ul: withClass('ul', 'list-disc space-y-2 pl-6'),\r\n li: withClass('li', 'my-1.5'),\r\n table: withClass(\r\n 'table',\r\n 'w-full border-collapse overflow-y-auto rounded-normal border border-foreground/20'\r\n ),\r\n th: withClass(\r\n 'th',\r\n 'border border-foreground/20 px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right'\r\n ),\r\n td: withClass(\r\n 'td',\r\n 'border border-foreground/20 px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right'\r\n ),\r\n tr: withClass('tr', 'm-0 border-t p-0 even:bg-muted'),\r\n p: withClass('p', 'whitespace-pre-wrap'),\r\n hr: withClass('hr', 'border-foreground/20')\r\n}\r\n\r\nfunction withClass(Tag: keyof React.JSX.IntrinsicElements, classes: string) {\r\n const Component = ({ node, ...props }: any) => <Tag className={classes} {...props} />\r\n Component.displayName = Tag\r\n return Component\r\n}\r\n\r\nexport default MarkdownRenderer\r\n","'use client'\n\nimport React, { useState } from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { motion } from 'framer-motion'\nimport { Ban, ChevronRight, Code2, Loader2, Terminal } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\nimport { MarkdownRenderer } from '@/components/markdown-renderer'\n\nconst chatBubbleVariants = cva(\n 'group/message relative break-words rounded-normal p-3 text-sm sm:max-w-[70%]',\n {\n variants: {\n isUser: {\n true: 'bg-primary text-primary-foreground',\n false: 'bg-muted text-foreground'\n },\n animation: {\n none: '',\n slide: 'duration-300 animate-in fade-in-0',\n scale: 'duration-300 animate-in fade-in-0 zoom-in-75',\n fade: 'duration-500 animate-in fade-in-0'\n }\n },\n compoundVariants: [\n {\n isUser: true,\n animation: 'slide',\n class: 'slide-in-from-right'\n },\n {\n isUser: false,\n animation: 'slide',\n class: 'slide-in-from-left'\n },\n {\n isUser: true,\n animation: 'scale',\n class: 'origin-bottom-right'\n },\n {\n isUser: false,\n animation: 'scale',\n class: 'origin-bottom-left'\n }\n ]\n }\n)\n\ntype Animation = VariantProps<typeof chatBubbleVariants>['animation']\n\ninterface PartialToolCall {\n state: 'partial-call'\n toolName: string\n}\n\ninterface ToolCall {\n state: 'call'\n toolName: string\n}\n\ninterface ToolResult {\n state: 'result'\n toolName: string\n result: {\n __cancelled?: boolean\n [key: string]: any\n }\n}\n\ntype ToolInvocation = PartialToolCall | ToolCall | ToolResult\n\ninterface ReasoningPart {\n type: 'reasoning'\n reasoning: string\n}\n\ninterface ToolInvocationPart {\n type: 'tool-invocation'\n toolInvocation: ToolInvocation\n}\n\ninterface TextPart {\n type: 'text'\n text: string\n}\n\n// For compatibility with AI SDK types, not used\ninterface SourcePart {\n type: 'source'\n}\n\nexport type MessagePart = TextPart | ReasoningPart | ToolInvocationPart | SourcePart\n\nexport interface Message {\n id: string\n role: 'user' | 'assistant' | (string & {})\n content: string\n createdAt?: Date\n toolInvocations?: ToolInvocation[]\n parts?: MessagePart[]\n}\n\nexport interface ChatMessageProps extends Message {\n showTimeStamp?: boolean\n animation?: Animation\n actions?: React.ReactNode\n}\n\nexport const ChatMessage: React.FC<ChatMessageProps> = ({\n role,\n content,\n createdAt,\n showTimeStamp = false,\n animation = 'scale',\n actions,\n toolInvocations,\n parts\n}) => {\n const isUser = role === 'user'\n\n const formattedTime = createdAt?.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit'\n })\n\n if (isUser) {\n return (\n <div className={cn('flex flex-col', isUser ? 'items-end' : 'items-start')}>\n <div className={cn(chatBubbleVariants({ isUser, animation }))}>\n <MarkdownRenderer>{content}</MarkdownRenderer>\n </div>\n\n {showTimeStamp && createdAt ? (\n <time\n dateTime={createdAt.toISOString()}\n className={cn(\n 'mt-1 block px-1 text-xs opacity-50',\n animation !== 'none' && 'duration-500 animate-in fade-in-0'\n )}\n >\n {formattedTime}\n </time>\n ) : null}\n </div>\n )\n }\n\n if (parts && parts.length > 0) {\n return parts.map((part, index) => {\n if (part.type === 'text') {\n return (\n <div\n className={cn('flex flex-col', isUser ? 'items-end' : 'items-start')}\n key={`text-${index}`}\n >\n <div className={cn(chatBubbleVariants({ isUser, animation }))}>\n <MarkdownRenderer>{part.text}</MarkdownRenderer>\n {actions ? (\n <div className=\"absolute -bottom-4 right-2 flex space-x-1 rounded-normal border bg-background p-1 text-foreground opacity-0 transition-opacity group-hover/message:opacity-100\">\n {actions}\n </div>\n ) : null}\n </div>\n\n {showTimeStamp && createdAt ? (\n <time\n dateTime={createdAt.toISOString()}\n className={cn(\n 'mt-1 block px-1 text-xs opacity-50',\n animation !== 'none' && 'duration-500 animate-in fade-in-0'\n )}\n >\n {formattedTime}\n </time>\n ) : null}\n </div>\n )\n } else if (part.type === 'reasoning') {\n return <ReasoningBlock key={`reasoning-${index}`} part={part} />\n } else if (part.type === 'tool-invocation') {\n return <ToolCall key={`tool-${index}`} toolInvocations={[part.toolInvocation]} />\n }\n return null\n })\n }\n\n if (toolInvocations && toolInvocations.length > 0) {\n return <ToolCall toolInvocations={toolInvocations} />\n }\n\n return (\n <div className={cn('flex flex-col', isUser ? 'items-end' : 'items-start')}>\n <div className={cn(chatBubbleVariants({ isUser, animation }))}>\n <MarkdownRenderer>{content}</MarkdownRenderer>\n {actions ? (\n <div className=\"absolute -bottom-4 right-2 flex space-x-1 rounded-normal border bg-background p-1 text-foreground opacity-0 transition-opacity group-hover/message:opacity-100\">\n {actions}\n </div>\n ) : null}\n </div>\n\n {showTimeStamp && createdAt ? (\n <time\n dateTime={createdAt.toISOString()}\n className={cn(\n 'mt-1 block px-1 text-xs opacity-50',\n animation !== 'none' && 'duration-500 animate-in fade-in-0'\n )}\n >\n {formattedTime}\n </time>\n ) : null}\n </div>\n )\n}\n\nconst ReasoningBlock = ({ part }: { part: ReasoningPart }) => {\n const [isOpen, setIsOpen] = useState(false)\n\n return (\n <div className=\"mb-2 flex flex-col items-start sm:max-w-[70%]\">\n <Collapsible\n open={isOpen}\n onOpenChange={setIsOpen}\n className=\"group w-full overflow-hidden rounded-normal border bg-muted/50\"\n >\n <div className=\"flex items-center p-2\">\n <CollapsibleTrigger asChild>\n <button className=\"flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground\">\n <ChevronRight className=\"h-4 w-4 transition-transform group-data-[state=open]:rotate-90\" />\n <span>Thinking</span>\n </button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent forceMount>\n <motion.div\n initial={false}\n animate={isOpen ? 'open' : 'closed'}\n variants={{\n open: { height: 'auto', opacity: 1 },\n closed: { height: 0, opacity: 0 }\n }}\n transition={{ duration: 0.3, ease: [0.04, 0.62, 0.23, 0.98] }}\n className=\"border-t\"\n >\n <div className=\"p-2\">\n <div className=\"whitespace-pre-wrap text-xs\">{part.reasoning}</div>\n </div>\n </motion.div>\n </CollapsibleContent>\n </Collapsible>\n </div>\n )\n}\n\nfunction ToolCall({ toolInvocations }: Pick<ChatMessageProps, 'toolInvocations'>) {\n if (!toolInvocations?.length) return null\n\n return (\n <div className=\"flex flex-col items-start gap-2\">\n {toolInvocations.map((invocation, index) => {\n const isCancelled = invocation.state === 'result' && invocation.result.__cancelled === true\n\n if (isCancelled) {\n return (\n <div\n key={index}\n className=\"flex items-center gap-2 rounded-normal border bg-muted/50 px-3 py-2 text-sm text-muted-foreground\"\n >\n <Ban className=\"h-4 w-4\" />\n <span>\n Cancelled{' '}\n <span className=\"font-mono\">\n {'`'}\n {invocation.toolName}\n {'`'}\n </span>\n </span>\n </div>\n )\n }\n\n switch (invocation.state) {\n case 'partial-call':\n case 'call':\n return (\n <div\n key={index}\n className=\"flex items-center gap-2 rounded-normal border bg-muted/50 px-3 py-2 text-sm text-muted-foreground\"\n >\n <Terminal className=\"h-4 w-4\" />\n <span>\n Calling{' '}\n <span className=\"font-mono\">\n {'`'}\n {invocation.toolName}\n {'`'}\n </span>\n ...\n </span>\n <Loader2 className=\"h-3 w-3 animate-spin\" />\n </div>\n )\n case 'result':\n return (\n <div\n key={index}\n className=\"flex flex-col gap-1.5 rounded-normal border bg-muted/50 px-3 py-2 text-sm\"\n >\n <div className=\"flex items-center gap-2 text-muted-foreground\">\n <Code2 className=\"h-4 w-4\" />\n <span>\n Result from{' '}\n <span className=\"font-mono\">\n {'`'}\n {invocation.toolName}\n {'`'}\n </span>\n </span>\n </div>\n <pre className=\"overflow-x-auto whitespace-pre-wrap text-foreground\">\n {JSON.stringify(invocation.result, null, 2)}\n </pre>\n </div>\n )\n default:\n return null\n }\n })}\n </div>\n )\n}\n","import { Dot } from 'lucide-react'\n\nexport function TypingIndicator() {\n return (\n <div className=\"justify-left flex space-x-1\">\n <div className=\"rounded-normal bg-muted p-3\">\n <div className=\"flex -space-x-2.5 text-muted-foreground\">\n <Dot className=\"h-5 w-5 animate-typing-dot-bounce\" />\n <Dot className=\"h-5 w-5 animate-typing-dot-bounce [animation-delay:90ms]\" />\n <Dot className=\"h-5 w-5 animate-typing-dot-bounce [animation-delay:180ms]\" />\n </div>\n </div>\n </div>\n )\n}\n","import { ChatMessage, type ChatMessageProps, type Message } from '@/components/chat-message'\nimport { TypingIndicator } from '@/components/typing-indicator'\n\ntype AdditionalMessageOptions = Omit<ChatMessageProps, keyof Message>\n\ninterface MessageListProps {\n messages: Message[]\n showTimeStamps?: boolean\n isTyping?: boolean\n messageOptions?: AdditionalMessageOptions | ((message: Message) => AdditionalMessageOptions)\n}\n\nexport function MessageList({\n messages,\n showTimeStamps = true,\n isTyping = false,\n messageOptions\n}: MessageListProps) {\n return (\n <div className=\"space-y-4 overflow-visible\">\n {messages.map((message, index) => {\n const additionalOptions =\n typeof messageOptions === 'function' ? messageOptions(message) : messageOptions\n\n return (\n <ChatMessage\n key={index}\n showTimeStamp={showTimeStamps}\n {...message}\n {...additionalOptions}\n />\n )\n })}\n {isTyping && <TypingIndicator />}\n </div>\n )\n}\n","interface PromptSuggestionsProps {\n label: string\n append: (message: { role: 'user'; content: string }) => void\n suggestions: string[]\n}\n\nexport function PromptSuggestions({ label, append, suggestions }: PromptSuggestionsProps) {\n return (\n <div className=\"space-y-6\">\n <h2 className=\"text-center text-2xl font-bold\">{label}</h2>\n <div className=\"flex gap-6 text-sm\">\n {suggestions.map((suggestion) => (\n <button\n key={suggestion}\n onClick={() => append({ role: 'user', content: suggestion })}\n className=\"h-max flex-1 rounded-normal border bg-background p-4 hover:bg-muted\"\n >\n <p>{suggestion}</p>\n </button>\n ))}\n </div>\n </div>\n )\n}\n","'use client'\n\nimport { forwardRef, useCallback, useRef, type ReactElement } from 'react'\nimport { ArrowDown, ThumbsDown, ThumbsUp } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\nimport { useAutoScroll } from '@/hooks/use-auto-scroll'\nimport { Button } from '@/components/button'\nimport { type Message } from '@/components/chat-message'\nimport { CopyButton } from '@/components/copy-button'\nimport { MessageInput } from '@/components/message-input'\nimport { MessageList } from '@/components/message-list'\nimport { PromptSuggestions } from '@/components/prompt-suggestions'\n\ninterface ChatPropsBase {\n handleSubmit: (event?: { preventDefault?: () => void }) => void\n messages: Array<Message>\n input: string\n className?: string\n handleInputChange: React.ChangeEventHandler<HTMLTextAreaElement>\n isGenerating: boolean\n stop?: () => void\n onRateResponse?: (messageId: string, rating: 'thumbs-up' | 'thumbs-down') => void\n setMessages?: (messages: any[]) => void\n transcribeAudio?: (blob: Blob) => Promise<string>\n}\n\ninterface ChatPropsWithoutSuggestions extends ChatPropsBase {\n append?: never\n suggestions?: never\n}\n\ninterface ChatPropsWithSuggestions extends ChatPropsBase {\n append: (message: { role: 'user'; content: string }) => void\n suggestions: string[]\n}\n\ntype ChatProps = ChatPropsWithoutSuggestions | ChatPropsWithSuggestions\n\nexport function Chat({\n messages,\n handleSubmit,\n input,\n handleInputChange,\n stop,\n isGenerating,\n append,\n suggestions,\n className,\n onRateResponse,\n setMessages\n}: ChatProps) {\n const lastMessage = messages.at(-1)\n const isEmpty = messages.length === 0\n const isTyping = lastMessage?.role === 'user'\n\n const messagesRef = useRef(messages)\n messagesRef.current = messages\n\n // Enhanced stop function that marks pending tool calls as cancelled\n const handleStop = useCallback(() => {\n stop?.()\n\n if (!setMessages) return\n\n const latestMessages = [...messagesRef.current]\n const lastAssistantMessage = latestMessages.findLast((m) => m.role === 'assistant')\n\n if (!lastAssistantMessage) return\n\n let needsUpdate = false\n let updatedMessage = { ...lastAssistantMessage }\n\n if (lastAssistantMessage.toolInvocations) {\n const updatedToolInvocations = lastAssistantMessage.toolInvocations.map((toolInvocation) => {\n if (toolInvocation.state === 'call') {\n needsUpdate = true\n return {\n ...toolInvocation,\n state: 'result',\n result: {\n content: 'Tool execution was cancelled',\n __cancelled: true // Special marker to indicate cancellation\n }\n } as const\n }\n return toolInvocation\n })\n\n if (needsUpdate) {\n updatedMessage = {\n ...updatedMessage,\n toolInvocations: updatedToolInvocations\n }\n }\n }\n\n if (lastAssistantMessage.parts && lastAssistantMessage.parts?.length > 0) {\n const updatedParts = lastAssistantMessage.parts.map((part: any) => {\n if (\n part.type === 'tool-invocation' &&\n part.toolInvocation &&\n part.toolInvocation.state === 'call'\n ) {\n needsUpdate = true\n return {\n ...part,\n toolInvocation: {\n ...part.toolInvocation,\n state: 'result',\n result: {\n content: 'Tool execution was cancelled',\n __cancelled: true\n }\n }\n }\n }\n return part\n })\n\n if (needsUpdate) {\n updatedMessage = {\n ...updatedMessage,\n parts: updatedParts\n }\n }\n }\n\n if (needsUpdate) {\n const messageIndex = latestMessages.findIndex((m) => m.id === lastAssistantMessage.id)\n if (messageIndex !== -1) {\n latestMessages[messageIndex] = updatedMessage\n setMessages(latestMessages)\n }\n }\n }, [stop, setMessages, messagesRef])\n\n const messageOptions = useCallback(\n (message: Message) => ({\n actions: onRateResponse ? (\n <>\n <div className=\"border-r pr-1\">\n <CopyButton content={message.content} copyMessage=\"Copied response to clipboard!\" />\n </div>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n className=\"h-6 w-6\"\n onClick={() => onRateResponse(message.id, 'thumbs-up')}\n >\n <ThumbsUp className=\"h-4 w-4\" />\n </Button>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n className=\"h-6 w-6\"\n onClick={() => onRateResponse(message.id, 'thumbs-down')}\n >\n <ThumbsDown className=\"h-4 w-4\" />\n </Button>\n </>\n ) : (\n <CopyButton content={message.content} copyMessage=\"Copied response to clipboard!\" />\n )\n }),\n [onRateResponse]\n )\n\n return (\n <ChatContainer className={className}>\n {isEmpty && append && suggestions ? (\n <PromptSuggestions label=\"Try these prompts ✨\" append={append} suggestions={suggestions} />\n ) : null}\n\n {messages.length > 0 ? (\n <ChatMessages messages={messages}>\n <MessageList messages={messages} isTyping={isTyping} messageOptions={messageOptions} />\n </ChatMessages>\n ) : null}\n\n <ChatForm\n className=\"mt-auto\"\n isPending={isGenerating || isTyping}\n handleSubmit={handleSubmit}\n >\n <MessageInput\n value={input}\n onChange={handleInputChange}\n stop={handleStop}\n isGenerating={isGenerating}\n />\n </ChatForm>\n </ChatContainer>\n )\n}\nChat.displayName = 'Chat'\n\nfunction ChatMessages({\n messages,\n children\n}: React.PropsWithChildren<{\n messages: Message[]\n}>) {\n const { containerRef, scrollToBottom, handleScroll, shouldAutoScroll, handleTouchStart } =\n useAutoScroll([messages])\n\n return (\n <div\n className=\"grid grid-cols-1 overflow-y-auto pb-4\"\n ref={containerRef}\n onScroll={handleScroll}\n onTouchStart={handleTouchStart}\n >\n <div className=\"max-w-full [grid-column:1/1] [grid-row:1/1]\">{children}</div>\n\n {!shouldAutoScroll && (\n <div className=\"pointer-events-none flex flex-1 items-end justify-end [grid-column:1/1] [grid-row:1/1]\">\n <div className=\"sticky bottom-0 left-0 flex w-full justify-end\">\n <Button\n onClick={scrollToBottom}\n className=\"pointer-events-auto h-8 w-8 rounded-full ease-in-out animate-in fade-in-0 slide-in-from-bottom-1\"\n size=\"icon\"\n variant=\"ghost\"\n >\n <ArrowDown className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n )}\n </div>\n )\n}\n\nexport const ChatContainer = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('grid max-h-full w-full grid-rows-[1fr_auto]', className)}\n {...props}\n />\n )\n }\n)\nChatContainer.displayName = 'ChatContainer'\n\ninterface ChatFormProps {\n className?: string\n isPending: boolean\n handleSubmit: (event?: { preventDefault?: () => void }) => void\n children: ReactElement\n}\n\nexport const ChatForm = forwardRef<HTMLFormElement, ChatFormProps>(\n ({ children, handleSubmit, className }, ref) => {\n const onSubmit = (event: React.FormEvent) => {\n handleSubmit(event)\n }\n\n return (\n <form ref={ref} onSubmit={onSubmit} className={className}>\n {children}\n </form>\n )\n }\n)\nChatForm.displayName = 'ChatForm'\n","import React, { useEffect, useRef, useState } from \"react\";\n\nconst sizerStyle: React.CSSProperties = {\n\tposition: \"absolute\",\n\ttop: 0,\n\tleft: 0,\n\tvisibility: \"hidden\",\n\theight: 0,\n\toverflow: \"scroll\",\n\twhiteSpace: \"pre\",\n};\n\nconst INPUT_PROPS_BLACKLIST: Array<keyof AutosizeInputProps> = [\n\t\"extraWidth\",\n\t\"injectStyles\",\n\t\"inputClassName\",\n\t\"inputRef\",\n\t\"inputStyle\",\n\t\"minWidth\",\n\t\"onAutosize\",\n\t\"placeholderIsMinWidth\",\n];\n\ninterface AutosizeInputProps\n\textends React.InputHTMLAttributes<HTMLInputElement> {\n\tclassName?: string;\n\textraWidth?: number | string;\n\tinjectStyles?: boolean;\n\tinputClassName?: string;\n\tinputRef?: React.RefCallback<HTMLInputElement | null>;\n\tinputStyle?: React.CSSProperties;\n\tminWidth?: number | string;\n\tonAutosize?: (newWidth: number) => void;\n\tplaceholderIsMinWidth?: boolean;\n}\n\nconst cleanInputProps = (\n\tinputProps: AutosizeInputProps,\n): AutosizeInputProps => {\n\tconst cleanedProps = { ...inputProps };\n\tfor (const field of INPUT_PROPS_BLACKLIST) {\n\t\tdelete cleanedProps[field];\n\t}\n\treturn cleanedProps;\n};\n\nconst copyStyles = (styles: CSSStyleDeclaration, node: HTMLElement) => {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nconst AutosizeInput: React.FC<AutosizeInputProps> = (props) => {\n\tconst {\n\t\tclassName,\n\t\tstyle,\n\t\tinputStyle,\n\t\tinputClassName,\n\t\tid,\n\t\tminWidth = 1,\n\t\tinjectStyles = true,\n\t\tonAutosize,\n\t\textraWidth,\n\t\tinputRef,\n\t\tplaceholder,\n\t\tvalue,\n\t\tdefaultValue,\n\t\tplaceholderIsMinWidth,\n\t\t...rest\n\t} = props;\n\n\tconst [inputWidth, setInputWidth] = useState<number>(\n\t\ttypeof minWidth === \"number\" ? minWidth : Number.parseInt(minWidth),\n\t);\n\tconst [inputId] = useState<string>(id || \"uniqueid\");\n\tconst inputEl = useRef<HTMLInputElement | null>(null);\n\tconst sizerEl = useRef<HTMLDivElement | null>(null);\n\tconst placeHolderSizerEl = useRef<HTMLDivElement | null>(null);\n\n\tuseEffect(() => {\n\t\tconst updateInputWidth = () => {\n\t\t\tif (\n\t\t\t\t!sizerEl.current ||\n\t\t\t\ttypeof sizerEl.current.scrollWidth === \"undefined\"\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tlet newInputWidth: number;\n\t\t\tif (placeholder && (!value || (value && placeholderIsMinWidth))) {\n\t\t\t\tnewInputWidth =\n\t\t\t\t\tMath.max(\n\t\t\t\t\t\tsizerEl.current.scrollWidth,\n\t\t\t\t\t\tplaceHolderSizerEl.current?.scrollWidth || 0,\n\t\t\t\t\t) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = sizerEl.current.scrollWidth + 2;\n\t\t\t}\n\n\t\t\tconst calculatedExtraWidth =\n\t\t\t\tprops.type === \"number\" && extraWidth === undefined\n\t\t\t\t\t? 16\n\t\t\t\t\t: Number.parseInt(extraWidth as string) || 0;\n\t\t\tnewInputWidth += calculatedExtraWidth;\n\n\t\t\tif (\n\t\t\t\tnewInputWidth <\n\t\t\t\t(typeof minWidth === \"number\" ? minWidth : Number.parseInt(minWidth))\n\t\t\t) {\n\t\t\t\tnewInputWidth =\n\t\t\t\t\ttypeof minWidth === \"number\" ? minWidth : Number.parseInt(minWidth);\n\t\t\t}\n\n\t\t\tif (newInputWidth !== inputWidth) {\n\t\t\t\tsetInputWidth(newInputWidth);\n\t\t\t\tif (onAutosize) {\n\t\t\t\t\tonAutosize(newInputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst handleCopyInputStyles = () => {\n\t\t\tif (!window.getComputedStyle) return;\n\t\t\tconst inputStyles =\n\t\t\t\tinputEl.current && window.getComputedStyle(inputEl.current);\n\t\t\tif (!inputStyles) return;\n\t\t\tif (sizerEl.current) {\n\t\t\t\tcopyStyles(inputStyles, sizerEl.current);\n\t\t\t}\n\t\t\tif (placeHolderSizerEl.current) {\n\t\t\t\tcopyStyles(inputStyles, placeHolderSizerEl.current);\n\t\t\t}\n\t\t};\n\n\t\thandleCopyInputStyles();\n\t\tupdateInputWidth();\n\t}, [\n\t\tvalue,\n\t\tplaceholder,\n\t\tplaceholderIsMinWidth,\n\t\textraWidth,\n\t\tminWidth,\n\t\tinputWidth,\n\t\tonAutosize,\n\t]);\n\n\tconst sizerValue = [defaultValue, value, \"\"].reduce<any>(\n\t\t(previousValue, currentValue) => {\n\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\treturn previousValue;\n\t\t\t}\n\t\t\treturn currentValue;\n\t\t},\n\t\tundefined, // Initial value for reduce\n\t);\n\n\treturn (\n\t\t<div className={className} style={{ display: \"inline-block\", ...style }}>\n\t\t\t<input\n\t\t\t\t{...cleanInputProps(rest)}\n\t\t\t\tclassName={inputClassName}\n\t\t\t\tid={inputId}\n\t\t\t\tvalue={value}\n\t\t\t\tstyle={{\n\t\t\t\t\tboxSizing: \"content-box\",\n\t\t\t\t\twidth: `${inputWidth}px`,\n\t\t\t\t\t...inputStyle,\n\t\t\t\t}}\n\t\t\t\tref={(el) => {\n\t\t\t\t\tinputEl.current = el;\n\t\t\t\t\tif (inputRef) inputRef(el);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<div ref={sizerEl} style={sizerStyle}>\n\t\t\t\t{sizerValue}\n\t\t\t</div>\n\t\t\t{placeholder && (\n\t\t\t\t<div ref={placeHolderSizerEl} style={sizerStyle}>\n\t\t\t\t\t{placeholder}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default AutosizeInput;\n","import * as React from 'react'\nimport { cn } from '@/lib/cn'\n\ninterface ShellProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport function Shell({ className, children, ...props }: ShellProps) {\n return (\n <div className={cn('w-full h-full', className)} {...props}>\n {children}\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport { OTPInput, OTPInputContext } from 'input-otp'\nimport { Minus } from 'lucide-react'\n\nimport { cn } from '@/lib/cn'\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn('flex items-center gap-2 has-disabled:opacity-50', containerClassName)}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n))\nInputOTP.displayName = 'InputOTP'\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center', className)} {...props} />\n))\nInputOTPGroup.displayName = 'InputOTPGroup'\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n\n return (\n <div\n ref={ref}\n className={cn(\n 'relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-sm shadow-xs transition-all first:rounded-l-md first:border-l last:rounded-r-md',\n isActive && 'z-10 ring-1 ring-ring',\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n})\nInputOTPSlot.displayName = 'InputOTPSlot'\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Minus />\n </div>\n))\nInputOTPSeparator.displayName = 'InputOTPSeparator'\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import { cn } from \"@/lib/cn\";\n\ninterface BorderBeamProps {\n\tclassName?: string;\n\tsize?: number;\n\tduration?: number;\n\tborderWidth?: number;\n\tanchor?: number;\n\tcolorFrom?: string;\n\tcolorTo?: string;\n\tdelay?: number;\n}\n\nexport function BorderBeam({\n\tclassName,\n\tsize = 200,\n\tduration = 15,\n\tanchor = 90,\n\tborderWidth = 1.5,\n\tcolorFrom = \"#ffaa40\",\n\tcolorTo = \"#9c40ff\",\n\tdelay = 0,\n}: BorderBeamProps) {\n\treturn (\n\t\t<div\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\t\"--size\": size,\n\t\t\t\t\t\"--duration\": duration,\n\t\t\t\t\t\"--anchor\": anchor,\n\t\t\t\t\t\"--border-width\": borderWidth,\n\t\t\t\t\t\"--color-from\": colorFrom,\n\t\t\t\t\t\"--color-to\": colorTo,\n\t\t\t\t\t\"--delay\": `-${delay}s`,\n\t\t\t\t} as React.CSSProperties\n\t\t\t}\n\t\t\tclassName={cn(\n\t\t\t\t\"pointer-events-none absolute inset-0 rounded-[inherit] [border:calc(var(--border-width)*1px)_solid_transparent]\",\n\n\t\t\t\t// mask styles\n\t\t\t\t\"![mask-clip:padding-box,border-box] ![mask-composite:intersect] [mask:linear-gradient(transparent,transparent),linear-gradient(white,white)]\",\n\n\t\t\t\t// pseudo styles\n\t\t\t\t\"after:animate-border-beam after:absolute after:aspect-square after:w-[calc(var(--size)*1px)] after:[animation-delay:var(--delay)] after:[background:linear-gradient(to_left,var(--color-from),var(--color-to),transparent)] after:[offset-anchor:calc(var(--anchor)*1%)_50%] after:[offset-path:rect(0_auto_auto_0_round_calc(var(--size)*1px))]\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t/>\n\t);\n}\n","\"use client\";\n\nimport { memo, useCallback, useEffect, useRef } from \"react\";\nimport { cn } from \"@/lib/cn\";\nimport { animate } from \"motion/react\";\n\ninterface GlowingEffectProps {\n\tblur?: number;\n\tinactiveZone?: number;\n\tproximity?: number;\n\tspread?: number;\n\tvariant?: \"default\" | \"white\";\n\tglow?: boolean;\n\tclassName?: string;\n\tdisabled?: boolean;\n\tmovementDuration?: number;\n\tborderWidth?: number;\n}\nconst GlowingEffect = memo(\n\t({\n\t\tblur = 0,\n\t\tinactiveZone = 0.7,\n\t\tproximity = 0,\n\t\tspread = 20,\n\t\tvariant = \"default\",\n\t\tglow = false,\n\t\tclassName,\n\t\tmovementDuration = 2,\n\t\tborderWidth = 1,\n\t\tdisabled = true,\n\t}: GlowingEffectProps) => {\n\t\tconst containerRef = useRef<HTMLDivElement>(null);\n\t\tconst lastPosition = useRef({ x: 0, y: 0 });\n\t\tconst animationFrameRef = useRef<number>(0);\n\n\t\tconst handleMove = useCallback(\n\t\t\t(e?: MouseEvent | { x: number; y: number }) => {\n\t\t\t\tif (!containerRef.current) return;\n\n\t\t\t\tif (animationFrameRef.current) {\n\t\t\t\t\tcancelAnimationFrame(animationFrameRef.current);\n\t\t\t\t}\n\n\t\t\t\tanimationFrameRef.current = requestAnimationFrame(() => {\n\t\t\t\t\tconst element = containerRef.current;\n\t\t\t\t\tif (!element) return;\n\n\t\t\t\t\tconst { left, top, width, height } = element.getBoundingClientRect();\n\t\t\t\t\tconst mouseX = e?.x ?? lastPosition.current.x;\n\t\t\t\t\tconst mouseY = e?.y ?? lastPosition.current.y;\n\n\t\t\t\t\tif (e) {\n\t\t\t\t\t\tlastPosition.current = { x: mouseX, y: mouseY };\n\t\t\t\t\t}\n\n\t\t\t\t\tconst center = [left + width * 0.5, top + height * 0.5];\n\t\t\t\t\tconst distanceFromCenter = Math.hypot(\n\t\t\t\t\t\tmouseX - center[0],\n\t\t\t\t\t\tmouseY - center[1],\n\t\t\t\t\t);\n\t\t\t\t\tconst inactiveRadius = 0.5 * Math.min(width, height) * inactiveZone;\n\n\t\t\t\t\tif (distanceFromCenter < inactiveRadius) {\n\t\t\t\t\t\telement.style.setProperty(\"--active\", \"0\");\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst isActive =\n\t\t\t\t\t\tmouseX > left - proximity &&\n\t\t\t\t\t\tmouseX < left + width + proximity &&\n\t\t\t\t\t\tmouseY > top - proximity &&\n\t\t\t\t\t\tmouseY < top + height + proximity;\n\n\t\t\t\t\telement.style.setProperty(\"--active\", isActive ? \"1\" : \"0\");\n\n\t\t\t\t\tif (!isActive) return;\n\n\t\t\t\t\tconst currentAngle =\n\t\t\t\t\t\tNumber.parseFloat(element.style.getPropertyValue(\"--start\")) || 0;\n\t\t\t\t\tconst targetAngle =\n\t\t\t\t\t\t(180 * Math.atan2(mouseY - center[1], mouseX - center[0])) /\n\t\t\t\t\t\t\tMath.PI +\n\t\t\t\t\t\t90;\n\n\t\t\t\t\tconst angleDiff = ((targetAngle - currentAngle + 180) % 360) - 180;\n\t\t\t\t\tconst newAngle = currentAngle + angleDiff;\n\n\t\t\t\t\tanimate(currentAngle, newAngle, {\n\t\t\t\t\t\tduration: movementDuration,\n\t\t\t\t\t\tease: [0.16, 1, 0.3, 1],\n\t\t\t\t\t\tonUpdate: (value) => {\n\t\t\t\t\t\t\telement.style.setProperty(\"--start\", String(value));\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\t[inactiveZone, proximity, movementDuration],\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\tif (disabled) return;\n\n\t\t\tconst handleScroll = () => handleMove();\n\t\t\tconst handlePointerMove = (e: PointerEvent) => handleMove(e);\n\n\t\t\twindow.addEventListener(\"scroll\", handleScroll, { passive: true });\n\t\t\tdocument.body.addEventListener(\"pointermove\", handlePointerMove, {\n\t\t\t\tpassive: true,\n\t\t\t});\n\n\t\t\treturn () => {\n\t\t\t\tif (animationFrameRef.current) {\n\t\t\t\t\tcancelAnimationFrame(animationFrameRef.current);\n\t\t\t\t}\n\t\t\t\twindow.removeEventListener(\"scroll\", handleScroll);\n\t\t\t\tdocument.body.removeEventListener(\"pointermove\", handlePointerMove);\n\t\t\t};\n\t\t}, [handleMove, disabled]);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"pointer-events-none absolute -inset-px hidden rounded-[inherit] border opacity-0 transition-opacity\",\n\t\t\t\t\t\tglow && \"opacity-100\",\n\t\t\t\t\t\tvariant === \"white\" && \"border-white\",\n\t\t\t\t\t\tdisabled && \"!block\",\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t\t<div\n\t\t\t\t\tref={containerRef}\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--blur\": `${blur}px`,\n\t\t\t\t\t\t\t\"--spread\": spread,\n\t\t\t\t\t\t\t\"--start\": \"0\",\n\t\t\t\t\t\t\t\"--active\": \"0\",\n\t\t\t\t\t\t\t\"--glowingeffect-border-width\": `${borderWidth}px`,\n\t\t\t\t\t\t\t\"--repeating-conic-gradient-times\": \"5\",\n\t\t\t\t\t\t\t\"--gradient\":\n\t\t\t\t\t\t\t\tvariant === \"white\"\n\t\t\t\t\t\t\t\t\t? `repeating-conic-gradient(\n from 236.84deg at 50% 50%,\n var(--black),\n var(--black) calc(25% / var(--repeating-conic-gradient-times))\n )`\n\t\t\t\t\t\t\t\t\t: `radial-gradient(circle, #dd7bbb 10%, #dd7bbb00 20%),\n radial-gradient(circle at 40% 40%, #d79f1e 5%, #d79f1e00 15%),\n radial-gradient(circle at 60% 60%, #5a922c 10%, #5a922c00 20%), \n radial-gradient(circle at 40% 60%, #4c7894 10%, #4c789400 20%),\n repeating-conic-gradient(\n from 236.84deg at 50% 50%,\n #dd7bbb 0%,\n #d79f1e calc(25% / var(--repeating-conic-gradient-times)),\n #5a922c calc(50% / var(--repeating-conic-gradient-times)), \n #4c7894 calc(75% / var(--repeating-conic-gradient-times)),\n #dd7bbb calc(100% / var(--repeating-conic-gradient-times))\n )`,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"pointer-events-none absolute inset-0 rounded-[inherit] opacity-100 transition-opacity\",\n\t\t\t\t\t\tglow && \"opacity-100\",\n\t\t\t\t\t\tblur > 0 && \"blur-[var(--blur)] \",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\tdisabled && \"!hidden\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"glow\",\n\t\t\t\t\t\t\t\"rounded-[inherit]\",\n\t\t\t\t\t\t\t'after:content-[\"\"] after:rounded-[inherit] after:absolute after:inset-[calc(-1*var(--glowingeffect-border-width))]',\n\t\t\t\t\t\t\t\"after:[border:var(--glowingeffect-border-width)_solid_transparent]\",\n\t\t\t\t\t\t\t\"after:[background:var(--gradient)] after:[background-attachment:fixed]\",\n\t\t\t\t\t\t\t\"after:opacity-[var(--active)] after:transition-opacity after:duration-300\",\n\t\t\t\t\t\t\t\"after:[mask-clip:padding-box,border-box]\",\n\t\t\t\t\t\t\t\"after:[mask-composite:intersect]\",\n\t\t\t\t\t\t\t\"after:[mask-image:linear-gradient(#0000,#0000),conic-gradient(from_calc((var(--start)-var(--spread))*1deg),#00000000_0deg,#fff,#00000000_calc(var(--spread)*2deg))]\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t},\n);\n\nGlowingEffect.displayName = \"GlowingEffect\";\n\nexport { GlowingEffect };\n","import { Loader2 } from \"lucide-react\";\n\ninterface ImageLoadingProps {\n\tmessage?: string;\n}\n\nexport function ImageLoading({\n\tmessage = \"Loading images...\",\n}: ImageLoadingProps) {\n\treturn (\n\t\t<div className=\"flex flex-col items-center justify-center p-8 text-center\">\n\t\t\t<Loader2 className=\"h-8 w-8 animate-spin text-muted-foreground mb-4\" />\n\t\t\t<p className=\"text-sm text-muted-foreground\">{message}</p>\n\t\t</div>\n\t);\n}\n","'use client'\n\nimport { useState } from 'react'\nimport Image, { ImageProps } from 'next/image'\nimport { cn } from '@/lib/cn'\n\ninterface ImageSkeletonProps extends ImageProps {\n skeletonClassName?: string\n containerClassName?: string\n}\n\nexport default function ImageSkeleton({\n className,\n skeletonClassName,\n containerClassName,\n alt,\n ...props\n}: ImageSkeletonProps) {\n const [isLoading, setIsLoading] = useState(true)\n\n const handleLoad = () => {\n setIsLoading(false)\n }\n\n return (\n <div\n className={cn('relative overflow-hidden', containerClassName)}\n style={{\n width: props.width || '100%',\n height: props.height || 'auto'\n }}\n >\n {/* 骨架屏 */}\n {isLoading && (\n <div\n className={cn(\n 'absolute inset-0 animate-pulse bg-gray-200 dark:bg-gray-700 rounded-normal overflow-hidden',\n skeletonClassName\n )}\n >\n <div className=\"h-full w-full bg-gradient-to-r from-gray-200 via-gray-100 to-gray-200 animate-shimmer bg-[length:200%_100%]\" />\n </div>\n )}\n\n {/* Next.js Image 组件 */}\n <Image\n {...props}\n alt={alt}\n className={cn(\n 'transition-opacity duration-300',\n isLoading ? 'opacity-0' : 'opacity-100',\n className\n )}\n onLoad={handleLoad}\n />\n\n {/* @ts-ignore */}\n <style jsx global>{`\n @keyframes shimmer {\n 0% {\n background-position: -200% 0;\n }\n 100% {\n background-position: 200% 0;\n }\n }\n .animate-shimmer {\n animation: shimmer 2s infinite linear;\n }\n `}</style>\n </div>\n )\n}\n","import * as React from \"react\";\nimport Dropzone, {\n\ttype DropzoneProps,\n\ttype FileRejection,\n} from \"react-dropzone\";\nimport { cn } from \"@/lib/cn\";\nimport { PlusIcon } from \"lucide-react\";\nimport { useTranslations } from \"next-intl\";\nimport { toast } from 'sonner'\n\ninterface DroppableProps extends React.HTMLAttributes<HTMLDivElement> {\n\tonValueChange?: (files: File[]) => void;\n\taccept?: DropzoneProps[\"accept\"];\n\tmaxSize?: DropzoneProps[\"maxSize\"];\n\tmaxFileCount?: DropzoneProps[\"maxFiles\"];\n\tmultiple?: boolean;\n\tdisabled?: boolean;\n\tchildren?: React.ReactNode;\n}\n\nexport function Droppable(props: DroppableProps) {\n\tconst t = useTranslations();\n\tconst {\n\t\tonValueChange,\n\t\taccept = {\n\t\t\t\"image/*\": [],\n\t\t},\n\t\tmaxSize = 1024 * 1024 * 50,\n\t\tmaxFileCount = 5,\n\t\tmultiple = true,\n\t\tdisabled = false,\n\t\tclassName,\n\t\tchildren,\n\t\t...dropzoneProps\n\t} = props;\n\n\tconst onDrop = React.useCallback(\n\t\t(acceptedFiles: File[], rejectedFiles: FileRejection[]) => {\n\t\t\tif (acceptedFiles.length + rejectedFiles.length > maxFileCount) {\n\t\t\t\ttoast.error(t('editor_maxFileCount', {num: maxFileCount}), {\n\t\t\t\t\tposition: 'top-center',\n style: {\n color: 'red'\n }\n })\n\t\t\t\treturn;\n\t\t\t}else if (rejectedFiles.length > 0) {\n\t\t\t\tconst code = rejectedFiles[0].errors[0].code\n\t\t\t\tif(code === 'file-invalid-type') {\n\t\t\t\t\ttoast.error(t('editor_fileType', {types: Object.keys(accept).join('、')}), {\n\t\t\t\t\t\tposition: 'top-center',\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: 'red'\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}else if(code === 'file-too-large') {\n\t\t\t\t\ttoast.error(t('editor_fileTooLarge', {size: Math.floor(maxSize / 1024 / 1024) + 'MB'}), {\n\t\t\t\t\t\tposition: 'top-center',\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: 'red'\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\tonValueChange?.(acceptedFiles);\n\t\t},\n\t\t[maxFileCount, multiple],\n\t);\n\n\treturn (\n\t\t<Dropzone\n\t\t\tonDrop={onDrop}\n\t\t\taccept={accept}\n\t\t\tmaxSize={maxSize}\n\t\t\tmaxFiles={maxFileCount}\n\t\t\tmultiple={maxFileCount > 1 || multiple}\n\t\t\tdisabled={disabled}\n\t\t\t// noClick\n\t\t>\n\t\t\t{({ getRootProps, getInputProps, isDragActive }) => (\n\t\t\t\t<div\n\t\t\t\t\t{...getRootProps()}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n\t\t\t\t\t\tdisabled && \"pointer-events-none opacity-60\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...dropzoneProps}\n\t\t\t\t>\n\t\t\t\t\t<input {...getInputProps()} />\n\t\t\t\t\t{isDragActive ? (\n\t\t\t\t\t\t<div className=\"flex h-full flex-col items-center justify-center gap-4 border-2 border-dashed border-zinc-600 bg-zinc-900\">\n\t\t\t\t\t\t\t<div className=\"rounded-full border border-dashed p-3\">\n\t\t\t\t\t\t\t\t<PlusIcon\n\t\t\t\t\t\t\t\t\tclassName=\"size-5 text-muted-foreground\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<p className=\"font-medium text-muted-foreground\">\n\t\t\t\t\t\t\t\t{t('editor_dragFileHere')}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>{children}</>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Dropzone>\n\t);\n}\n","\"use client\";\n\nimport React, { useEffect } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { FileIcon, X } from \"lucide-react\";\n\ninterface FilePreviewProps {\n\tfile: File;\n\tonRemove?: () => void;\n}\n\nexport const FilePreview = React.forwardRef<HTMLDivElement, FilePreviewProps>(\n\t(props, ref) => {\n\t\tif (props.file.type.startsWith(\"image/\")) {\n\t\t\treturn <ImageFilePreview {...props} ref={ref} />;\n\t\t}\n\n\t\tif (\n\t\t\tprops.file.type.startsWith(\"text/\") ||\n\t\t\tprops.file.name.endsWith(\".txt\") ||\n\t\t\tprops.file.name.endsWith(\".md\")\n\t\t) {\n\t\t\treturn <TextFilePreview {...props} ref={ref} />;\n\t\t}\n\n\t\treturn <GenericFilePreview {...props} ref={ref} />;\n\t},\n);\nFilePreview.displayName = \"FilePreview\";\n\nconst ImageFilePreview = React.forwardRef<HTMLDivElement, FilePreviewProps>(\n\t({ file, onRemove }, ref) => {\n\t\treturn (\n\t\t\t<motion.div\n\t\t\t\tref={ref}\n\t\t\t\tclassName=\"relative flex max-w-[200px] rounded-normal border p-1.5 pr-2 text-xs\"\n\t\t\t\tlayout\n\t\t\t\tinitial={{ opacity: 0, y: \"100%\" }}\n\t\t\t\tanimate={{ opacity: 1, y: 0 }}\n\t\t\t\texit={{ opacity: 0, y: \"100%\" }}\n\t\t\t>\n\t\t\t\t<div className=\"flex w-full items-center space-x-2\">\n\t\t\t\t\t{/* eslint-disable-next-line @next/next/no-img-element */}\n\t\t\t\t\t<img\n\t\t\t\t\t\talt={`Attachment ${file.name}`}\n\t\t\t\t\t\tclassName=\"grid h-10 w-10 shrink-0 place-items-center rounded-normal border bg-muted object-cover\"\n\t\t\t\t\t\tsrc={URL.createObjectURL(file)}\n\t\t\t\t\t/>\n\t\t\t\t\t<span className=\"w-full truncate text-muted-foreground\">\n\t\t\t\t\t\t{file.name}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t{onRemove ? (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"absolute -right-2 -top-2 flex h-4 w-4 items-center justify-center rounded-full border bg-background\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\taria-label=\"Remove attachment\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<X className=\"h-2.5 w-2.5\" />\n\t\t\t\t\t</button>\n\t\t\t\t) : null}\n\t\t\t</motion.div>\n\t\t);\n\t},\n);\nImageFilePreview.displayName = \"ImageFilePreview\";\n\nconst TextFilePreview = React.forwardRef<HTMLDivElement, FilePreviewProps>(\n\t({ file, onRemove }, ref) => {\n\t\tconst [preview, setPreview] = React.useState<string>(\"\");\n\n\t\tuseEffect(() => {\n\t\t\tconst reader = new FileReader();\n\t\t\treader.onload = (e) => {\n\t\t\t\tconst text = e.target?.result as string;\n\t\t\t\tsetPreview(text.slice(0, 50) + (text.length > 50 ? \"...\" : \"\"));\n\t\t\t};\n\t\t\treader.readAsText(file);\n\t\t}, [file]);\n\n\t\treturn (\n\t\t\t<motion.div\n\t\t\t\tref={ref}\n\t\t\t\tclassName=\"relative flex max-w-[200px] rounded-normal border p-1.5 pr-2 text-xs\"\n\t\t\t\tlayout\n\t\t\t\tinitial={{ opacity: 0, y: \"100%\" }}\n\t\t\t\tanimate={{ opacity: 1, y: 0 }}\n\t\t\t\texit={{ opacity: 0, y: \"100%\" }}\n\t\t\t>\n\t\t\t\t<div className=\"flex w-full items-center space-x-2\">\n\t\t\t\t\t<div className=\"grid h-10 w-10 shrink-0 place-items-center rounded-normal border bg-muted p-0.5\">\n\t\t\t\t\t\t<div className=\"h-full w-full overflow-hidden text-[6px] leading-none text-muted-foreground\">\n\t\t\t\t\t\t\t{preview || \"Loading...\"}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span className=\"w-full truncate text-muted-foreground\">\n\t\t\t\t\t\t{file.name}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t{onRemove ? (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"absolute -right-2 -top-2 flex h-4 w-4 items-center justify-center rounded-full border bg-background\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\taria-label=\"Remove attachment\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<X className=\"h-2.5 w-2.5\" />\n\t\t\t\t\t</button>\n\t\t\t\t) : null}\n\t\t\t</motion.div>\n\t\t);\n\t},\n);\nTextFilePreview.displayName = \"TextFilePreview\";\n\nconst GenericFilePreview = React.forwardRef<HTMLDivElement, FilePreviewProps>(\n\t({ file, onRemove }, ref) => {\n\t\treturn (\n\t\t\t<motion.div\n\t\t\t\tref={ref}\n\t\t\t\tclassName=\"relative flex max-w-[200px] rounded-normal border p-1.5 pr-2 text-xs\"\n\t\t\t\tlayout\n\t\t\t\tinitial={{ opacity: 0, y: \"100%\" }}\n\t\t\t\tanimate={{ opacity: 1, y: 0 }}\n\t\t\t\texit={{ opacity: 0, y: \"100%\" }}\n\t\t\t>\n\t\t\t\t<div className=\"flex w-full items-center space-x-2\">\n\t\t\t\t\t<div className=\"grid h-10 w-10 shrink-0 place-items-center rounded-normal border bg-muted\">\n\t\t\t\t\t\t<FileIcon className=\"h-6 w-6 text-foreground\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<span className=\"w-full truncate text-muted-foreground\">\n\t\t\t\t\t\t{file.name}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t{onRemove ? (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"absolute -right-2 -top-2 flex h-4 w-4 items-center justify-center rounded-full border bg-background\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\taria-label=\"Remove attachment\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<X className=\"h-2.5 w-2.5\" />\n\t\t\t\t\t</button>\n\t\t\t\t) : null}\n\t\t\t</motion.div>\n\t\t);\n\t},\n);\nGenericFilePreview.displayName = \"GenericFilePreview\";\n","'use client'\n\nimport * as React from 'react'\nimport * as RechartsPrimitive from 'recharts'\n\nimport { cn } from '@/lib/cn'\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />')\n }\n\n return context\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n config: ChartConfig\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children']\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n})\nChartContainer.displayName = 'Chart'\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color)\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join('\\n')}\n}\n`\n )\n .join('\\n')\n }}\n />\n )\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: 'line' | 'dot' | 'dashed'\n nameKey?: string\n labelKey?: string\n }\n>(\n (\n {\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey\n },\n ref\n ) => {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey || item.dataKey || item.name || 'value'}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot'\n\n return (\n <div\n ref={ref}\n className={cn(\n 'grid min-w-[8rem] items-start gap-1.5 rounded-normal border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || item.payload.fill || item.color\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n 'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\n indicator === 'dot' && 'items-center'\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n 'shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)',\n {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent':\n indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed'\n }\n )}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center'\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n }\n)\nChartTooltipContent.displayName = 'ChartTooltip'\n\nconst ChartLegend = RechartsPrimitive.Legend\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\n hideIcon?: boolean\n nameKey?: string\n }\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center justify-center gap-4',\n verticalAlign === 'top' ? 'pb-3' : 'pt-3',\n className\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || 'value'}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={item.value}\n className={cn(\n 'flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground'\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n})\nChartLegendContent.displayName = 'ChartLegend'\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (key in payload && typeof payload[key as keyof typeof payload] === 'string') {\n configLabelKey = payload[key as keyof typeof payload] as string\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === 'string'\n ) {\n configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle\n}\n","import React, { useState, useEffect, useRef, ReactNode } from \"react\";\r\n\r\ninterface HorizontalScrollProps {\r\n\tchildren: ReactNode;\r\n\tclassName?: string;\r\n\tshowShadows?: boolean;\r\n\tshadowColor?: string;\r\n\tshadowWidth?: number;\r\n\tdebug?: boolean;\r\n}\r\n\r\nexport const HorizontalScroll: React.FC<HorizontalScrollProps> = ({\r\n\tchildren,\r\n\tclassName = \"\",\r\n\tshowShadows = true,\r\n\tshadowColor = \"black\",\r\n\tshadowWidth = 6,\r\n\tdebug = false,\r\n}) => {\r\n\tconst [showLeftShadow, setShowLeftShadow] = useState(false);\r\n\tconst [showRightShadow, setShowRightShadow] = useState(false);\r\n\tconst scrollRef = useRef<HTMLDivElement>(null);\r\n\r\n\tconst checkShadows = () => {\r\n\t\tif (!scrollRef.current) return;\r\n\r\n\t\tconst { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;\r\n\t\tconst shouldShowLeft = scrollLeft > 0;\r\n\t\tconst shouldShowRight = scrollLeft < scrollWidth - clientWidth - 1;\r\n\r\n\t\tsetShowLeftShadow(shouldShowLeft);\r\n\t\tsetShowRightShadow(shouldShowRight);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tconst element = scrollRef.current;\r\n\t\tif (!element) return;\r\n\r\n\t\tcheckShadows();\r\n\t\telement.addEventListener(\"scroll\", checkShadows);\r\n\t\twindow.addEventListener(\"resize\", checkShadows);\r\n\r\n\t\treturn () => {\r\n\t\t\telement.removeEventListener(\"scroll\", checkShadows);\r\n\t\t\twindow.removeEventListener(\"resize\", checkShadows);\r\n\t\t};\r\n\t}, [debug]);\r\n\r\n\treturn (\r\n\t\t<div className={`relative ${className}`}>\r\n\t\t\t{/* Debug indicator */}\r\n\t\t\t{debug && (\r\n\t\t\t\t<div className=\"absolute -top-6 left-0 text-xs text-red-400\">\r\n\t\t\t\t\tLeft: {showLeftShadow ? \"ON\" : \"OFF\"} | Right:{\" \"}\r\n\t\t\t\t\t{showRightShadow ? \"ON\" : \"OFF\"}\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\r\n\t\t\t{/* Left shadow */}\r\n\t\t\t{showShadows && showLeftShadow && (\r\n\t\t\t\t<div className=\"absolute left-0 top-0 bottom-0 w-6 bg-gradient-to-r from-black/50 via-black/30 to-transparent pointer-events-none z-20\" />\r\n\t\t\t)}\r\n\r\n\t\t\t{/* Right shadow */}\r\n\t\t\t{showShadows && showRightShadow && (\r\n\t\t\t\t<div className=\"absolute right-0 top-0 bottom-0 w-6 bg-gradient-to-l from-black/50 via-black/30 to-transparent pointer-events-none z-20\" />\r\n\t\t\t)}\r\n\r\n\t\t\t{/* Scrollable content */}\r\n\t\t\t<div\r\n\t\t\t\tref={scrollRef}\r\n\t\t\t\tclassName=\"overflow-x-auto [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]\"\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n"]}
|