{"version":3,"file":"static/chunks/5030-1576a95f084a5252.js","mappings":"8GAaM,MAAO,aAAgB,CAAC,MAAQ,EACpC,CAAC,UAAY,EAAE,OAAQ,CAAoB,sBAAK,SAAU,EAC1D,CAAC,UAAY,EAAE,OAAQ,CAAiB,mBAAK,SAAU,EACxD,oCCHK,MAAO,aAAgB,CAAC,MAAQ,EACpC,CAAC,MAAQ,EAAE,EAAG,CAA+D,iEAAK,SAAU,EAC5F,CAAC,MAAQ,EAAE,EAAG,CAAgE,kEAAK,SAAU,EAC9F,oCCHK,MAAO,aAAgB,CAAC,MAAQ,EACpC,CAAC,MAAQ,EAAE,EAAG,CAAY,cAAK,SAAU,EACzC,CAAC,MAAQ,EAAE,EAAG,CAAY,cAAK,SAAU,EAC1C,oCCHK,MAAI,aAAgB,CAAC,GAAK,EAC9B,CAAC,MAAQ,EAAE,EAAG,CAAc,gBAAK,SAAU,EAC3C,CAAC,MAAQ,EAAE,EAAG,CAAc,gBAAK,SAAU,EAC5C,2NEiBD,OAAoB,mBAApB,GAjBgBA,aAAa,mBAAbA,wBAbY,WACN,eAGI,QASnB,SAASA,EAAcC,CAAoB,EAChD,GAAM,OAAEC,CAAK,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,WAAAA,EAAYF,EAAU,CACtCG,cAAAA,EAAAA,OAAa,CAEbC,QAASC,CAAAA,YAAAA,CAAAA,IAAAA,IAAAA,IAAAA,KAAAA,KAAAA,KAAAA,KAAAA,KAAAA,CAAAA,WAAAA,CAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,IAAAA,IAAAA,IAAAA,CAAAA,KAAAA,gBAAAA,OAAAA,UAAAA,oBAAAA,CAAAA,EAAAA,YAAAA,CAAAA,CAAAA,CAA6B,GAKxC,IAAK,GAAM,CAACC,EAAKC,EAAM,GAAIC,OAAOC,OAAO,CAACR,GAC1BS,IADkC,KAC5CH,EAAqB,CACvB,OAAON,CAAK,CAACK,EAA0B,CAG3C,MAAO,OAAEL,CAAM,CACjB,KAEA,EAAeU,EAAAA,KAAK,sDCzBpB,IAAM,EAAG,SACH,EAAG,SACT,UADS,EACT,CAEA,OACA,IACA,IACA,CAAC,CACD,GACA,aACA,aACA,aACA,YACA,EACA,GACA,YACA,WACA,EAIA,SAAS,EAAQ,KACjB,mBADiB,MACjB,QACA,CACA,SAAS,EAAO,GAChB,uBAEA,SAAS,EAAY,GACrB,uBAKA,EANqB,OAMZ,EAAa,GACtB,0BADsB,IAEtB,CACA,SAAS,EAAW,GACpB,wBADoB,OACpB,CAAoC,EAAO,WAC3C,CACA,SAAS,EAFkC,CAElB,EACzB,MATA,CASS,KAAgB,EAAW,GATpC,OAUA,CAkBA,IApByB,KAoBhB,EAA6B,GACtC,CApBwB,CAAY,KAoBpC,+BACA,CA6BA,GA/BsC,MA+BtC,KACA,kDACA,CAkBA,SAAS,EAAgB,GACzB,IACA,IACA,IACA,QACA,SACA,CAAI,EACJ,OACA,QACA,SACA,MACA,OACA,UACA,WACA,IACA,GACA,CACA,CCpIA,kBACA,IAYA,EAZA,CACA,YACA,WACA,CAAI,EACJ,EAAmB,EAAW,GAC9B,EAAwB,EAAgB,GACxC,EAAsB,EAAa,GACnC,EAAe,EAAO,GACtB,GAJ8B,KAI9B,EACA,SAHmC,CACb,GAEtB,aACA,4BACA,gBAEA,UACA,UACA,GACA,IACA,gBAEA,KACA,cACA,GACA,IACA,gBAEA,KACA,aACA,GACA,cACA,GACA,EACA,KACA,YACA,GACA,cACA,GACA,EACA,KACA,SACA,GACA,MACA,MAEA,CACA,OAAU,EAAY,IACtB,YACA,oBACA,KACA,WACA,mBAEA,CACA,QACA,CASA,qBACA,IACA,qBACA,sBACA,gBACA,WACA,CAAI,EACJ,oBACA,0CACA,2BACA,YACA,WACA,UACA,CAAG,EACH,CACA,IACA,IACA,CAAI,SACJ,IACA,KACA,IACA,YAAkB,WAA4B,KAC9C,IACA,OACA,KACA,CAAM,KACN,CACA,IACA,IACA,OACA,QACA,CAAM,SACN,IACA,IACA,mBACA,YACA,WACA,iBACA,QACA,WACA,UACA,YACA,UACA,CACA,CAAK,EACL,cACA,cACA,GACA,KACA,KACA,QACA,KAEA,EACA,WACA,IACA,qBACA,aACA,gBAEA,SACA,yCACA,YACA,WACA,UACA,CAAW,WAEX,CACA,IACA,IACA,CAAU,UAEV,KAEA,CACA,OACA,IACA,IACA,YACA,WACA,gBACA,CACA,EAUA,0BACA,CACA,aACA,OAEA,IACA,IACA,IACA,WACA,QACA,WACA,WACA,CAAI,EACJ,CACA,+BACA,0BACA,4BACA,iBACA,YACA,CAAI,EAAU,KACd,EDnEA,cCmEwB,GADV,ED3Ed,CACA,MACA,QACA,SACA,KCwEwC,EDvExC,GCuEwC,GDnExC,CACA,ICkEwC,EDjExC,MCiEwC,EDhExC,OCgEwC,ED/DxC,KC+DwC,CD9DxC,ECgEA,MADA,sCACA,GACA,EAA6B,EAAgB,yBAC7C,OAD6C,CAC7C,4JACA,WACA,eACA,UACA,CAAG,GACH,kBACA,IACA,IACA,uBACA,0BACI,YACJ,uEACA,mGACA,IACA,GACA,EAAI,EAIwB,EAAgB,uHAC5C,WACA,OACA,eACA,UACA,CAAG,KACH,OACA,4BACA,wCACA,gCACA,mCACA,CACA,CAogBA,sBACA,IACA,YACA,WACA,WACA,CAAI,EACJ,mDACA,EAAe,EAAO,GACtB,EAAoB,EAAY,GAChC,EAAgC,MAAX,EAAW,GAChC,YAFgC,IAEhC,QADgC,CAChC,SACA,YACA,EAAmB,EAAQ,KAG3B,CACA,WACA,OAL2B,GAK3B,EACA,gBACA,CAAI,oBACJ,WACA,YACA,kBACA,EAAI,CACJ,WACA,YACA,mBACA,MAKA,OAHA,uBACA,qBAEA,GACA,MACA,KACA,EAAI,CACJ,MACA,KACA,CACA,CChwBA,qBACA,KACA,+BAKA,WACA,CACA,cACA,MACA,uEACA,CACA,SAAS,EAAkB,GAC3B,MACA,6BAF2B,QAE3B,wDAEA,cACA,iDAEA,cACA,sDACA,CACA,cACA,+DAEA,oBAEA,gCAGA,uDACA,CACA,cACA,IACA,WACA,YACA,YACA,UACA,CAAI,KACJ,uFACA,CAIA,cACA,0CACA,IACA,mBACA,CAAM,SACN,QACA,CACA,CAAG,CACH,CACA,cACA,UACA,OAGA,iVACA,CAcA,mBACA,yCACA,8CACA,CACA,cACA,gDACA,CACA,cACA,+BACA,CACA,qBACA,KACA,CACA,wBACA,uBAGA,CACA,yBACA,wBAEA,CACA,cACA,iBACA,SAEA,MAEA,gBAEA,cAEA,cAE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","sources":["webpack://_N_E/../../src/icons/code.ts","webpack://_N_E/../../src/icons/link.ts","webpack://_N_E/../../src/icons/plus.ts","webpack://_N_E/../../src/icons/x.ts","webpack://_N_E/./node_modules/.pnpm/next@15.1.3_@babel+core@7.24.6_react-dom@19.0.0-rc-f994737d14-20240522_react@19.0.0-rc-f99473_henqbhbmro4if2cwhftw2bam2a/node_modules/next/dist/api/image.js","webpack://_N_E/../../src/shared/lib/image-external.tsx","webpack://_N_E/./node_modules/.pnpm/@floating-ui+utils@0.2.3/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://_N_E/./node_modules/.pnpm/@floating-ui+core@1.6.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://_N_E/./node_modules/.pnpm/@floating-ui+utils@0.2.3/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://_N_E/./node_modules/.pnpm/@floating-ui+dom@1.6.6/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/context/ReorderContext.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/components/Reorder/Group.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/value/use-motion-value.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/utils/transform.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/value/use-combine-values.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/value/use-computed.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/value/use-transform.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/components/Reorder/Item.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/components/Reorder/index.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/utils/use-force-update.mjs","webpack://_N_E/./node_modules/.pnpm/framer-motion@11.2.10_@emotion+is-prop-valid@1.2.2_react-dom@19.0.0-rc-f994737d14-20240522_re_rspwnyq3kijcns5bmq3lgusu6u/node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Code\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/code\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Code = createLucideIcon('Code', [\n ['polyline', { points: '16 18 22 12 16 6', key: 'z7tu5w' }],\n ['polyline', { points: '8 6 2 12 8 18', key: '1eg1df' }],\n]);\n\nexport default Code;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Link\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Link = createLucideIcon('Link', [\n ['path', { d: 'M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71', key: '1cjeqo' }],\n ['path', { d: 'M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71', key: '19qd67' }],\n]);\n\nexport default Link;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('X', [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n]);\n\nexport default X;\n","export { default } from '../shared/lib/image-external';\nexport * from '../shared/lib/image-external';\n\n//# sourceMappingURL=image.js.map","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 `` 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","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isTopLayer(currentNode)) {\n return null;\n }\n if (isContainingBlock(currentNode)) {\n return currentNode;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = currentWin.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = currentWin.frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `