{"version":3,"file":"static/chunks/7118-bf398573e21810bc.js","mappings":"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","sources":["webpack://_N_E/../../src/client/image-component.tsx","webpack://_N_E/../../../src/shared/lib/get-img-props.ts","webpack://_N_E/../../../src/shared/lib/image-blur-svg.ts","webpack://_N_E/../../../src/shared/lib/image-external.tsx","webpack://_N_E/../../../src/shared/lib/image-loader.ts","webpack://_N_E/../../node_modules/.pnpm/next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.85.1/node_modules/next/image.js"],"sourcesContent":["'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// @ts-ignore - 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 = {\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    // See https://github.com/facebook/react/pull/26940\n    ReactDOM.preload(\n      imgAttributes.src,\n      // @ts-expect-error TODO: upgrade to `@types/react-dom@18.3.x`\n      opts\n    )\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 { 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 { 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\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\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 (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  let placeholderStyle = backgroundImage\n    ? {\n        backgroundSize: imgStyle.objectFit || 'cover',\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","/**\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","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// @ts-ignore - 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","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 } = require('./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 } = require('./match-remote-pattern')\n        if (!hasRemoteMatch(config.domains, config.remotePatterns, parsedSrc)) {\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","module.exports = require('./dist/shared/lib/image-external')\n"],"names":["Image","configEnv","process","handleLoading","img","placeholder","onLoadRef","onLoadingCompleteRef","setBlurComplete","unoptimized","sizesInput","src","p","decode","Promise","resolve","catch","then","parentElement","current","event","Event","Object","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","getDynamicProps","fetchPriority","use","Boolean","fetchpriority","ImageElement","forwardRef","forwardedRef","decoding","className","loading","setShowAltText","rest","srcSet","sizes","height","width","style","fill","onLoad","onError","ownRef","useCallback","complete","ref","useMergedRef","data-nimg","ImagePreload","isAppRouter","imgAttributes","opts","as","imageSrcSet","imageSizes","crossOrigin","referrerPolicy","ReactDOM","preload","Head","link","rel","href","undefined","props","pagesRouter","useContext","RouterContext","configContext","ImageConfigContext","config","useMemo","c","imageConfigDefault","allSizes","deviceSizes","sort","a","b","qualities","onLoadingComplete","useRef","useEffect","useState","blurComplete","showAltText","getImgProps","defaultLoader","imgConf","meta","imgMeta","priority","isStaticRequire","default","getInt","x","Number","isFinite","NaN","test","parseInt","_state","blurWidth","blurHeight","quality","blurDataURL","layout","objectPosition","lazyBoundary","overrideSrc","objectFit","lazyRoot","loader","isDefaultLoader","customImageLoader","obj","layoutStyle","intrinsic","maxWidth","responsive","layoutSizes","layoutToSizes","staticSrc","widthInt","heightInt","isStaticImageData","staticImageData","JSON","stringify","Error","ratio","Math","round","isLazy","startsWith","dangerouslyAllowSVG","split","endsWith","qualityInt","imgStyle","assign","position","left","top","right","bottom","color","backgroundImage","getImageBlurSvg","backgroundSize","backgroundPosition","backgroundRepeat","generateImgAttrs","getWidths","viewportWidthRe","percentSizes","match","exec","push","length","smallestRatio","min","widths","filter","s","kind","Set","map","w","find","last","i","join","placeholderStyle","svgWidth","svgHeight","viewBox","std","preserveAspectRatio","getImageProps","imgProps","entries","key","q","reduce","prev","cur","abs","DEFAULT_Q","path","encodeURIComponent","__next_img_default"],"sourceRoot":"","ignoreList":[5]}