framer-motion 12.24.0 → 12.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/client.js +1 -1
- package/dist/cjs/dom.js +15 -0
- package/dist/cjs/dom.js.map +1 -1
- package/dist/cjs/{feature-bundle-DhbxBqkJ.js → feature-bundle-DRMwxyzS.js} +16 -1
- package/dist/cjs/feature-bundle-DRMwxyzS.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/m.js +15 -0
- package/dist/cjs/m.js.map +1 -1
- package/dist/dom.js +1 -1
- package/dist/es/components/Reorder/Item.mjs.map +1 -1
- package/dist/es/render/svg/utils/build-attrs.mjs +15 -0
- package/dist/es/render/svg/utils/build-attrs.mjs.map +1 -1
- package/dist/framer-motion.dev.js +15 -0
- package/dist/framer-motion.js +1 -1
- package/dist/size-rollup-animate.js +1 -1
- package/dist/size-rollup-animate.js.map +1 -1
- package/dist/size-rollup-dom-animation-assets.js +1 -1
- package/dist/size-rollup-dom-max-assets.js +1 -1
- package/dist/size-rollup-m.js +1 -1
- package/dist/size-rollup-m.js.map +1 -1
- package/dist/size-rollup-motion.js +1 -1
- package/dist/size-rollup-motion.js.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/package.json +2 -2
- package/dist/cjs/feature-bundle-DhbxBqkJ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"size-rollup-m.js","sources":["../../motion-utils/dist/es/clamp.mjs","../lib/context/LayoutGroupContext.js","../lib/context/LazyContext.js","../lib/context/MotionConfigContext.js","../lib/context/MotionContext/index.js","../lib/animation/utils/is-animation-controls.js","../lib/render/utils/is-variant-label.js","../lib/render/utils/variant-props.js","../lib/render/utils/is-controlling-variants.js","../lib/context/MotionContext/create.js","../lib/context/MotionContext/utils.js","../../motion-dom/dist/es/animation/utils/is-css-variable.mjs","../../motion-dom/dist/es/value/types/numbers/index.mjs","../../motion-dom/dist/es/value/types/utils/sanitize.mjs","../../motion-dom/dist/es/value/types/utils/float-regex.mjs","../../motion-dom/dist/es/value/types/utils/single-color-regex.mjs","../../motion-dom/dist/es/value/types/color/utils.mjs","../../motion-dom/dist/es/value/types/utils/is-nullish.mjs","../../motion-dom/dist/es/value/types/color/rgba.mjs","../../motion-dom/dist/es/value/types/color/hex.mjs","../../motion-dom/dist/es/value/types/numbers/units.mjs","../../motion-dom/dist/es/value/types/color/hsla.mjs","../../motion-dom/dist/es/value/types/color/index.mjs","../../motion-dom/dist/es/value/types/utils/color-regex.mjs","../../motion-dom/dist/es/value/types/complex/index.mjs","../../motion-dom/dist/es/render/utils/keys-transform.mjs","../../motion-dom/dist/es/value/types/int.mjs","../../motion-dom/dist/es/value/types/maps/number.mjs","../../motion-dom/dist/es/value/types/maps/transform.mjs","../../motion-dom/dist/es/value/types/utils/get-as-type.mjs","../../motion-dom/dist/es/value/utils/is-motion-value.mjs","../lib/projection/styles/scale-border-radius.js","../lib/projection/styles/scale-box-shadow.js","../../motion-dom/dist/es/utils/mix/number.mjs","../lib/projection/styles/scale-correction.js","../lib/motion/utils/is-forced-motion-value.js","../lib/render/html/utils/build-transform.js","../lib/render/html/utils/build-styles.js","../lib/render/html/utils/create-render-state.js","../lib/render/html/use-props.js","../lib/render/svg/utils/path.js","../lib/render/svg/utils/build-attrs.js","../lib/render/svg/utils/create-render-state.js","../lib/render/svg/use-props.js","../lib/render/svg/utils/is-svg-tag.js","../lib/motion/utils/valid-prop.js","../lib/render/dom/utils/filter-props.js","../lib/render/svg/lowercase-elements.js","../lib/render/dom/utils/is-svg-component.js","../lib/render/dom/use-render.js","../lib/context/PresenceContext.js","../lib/render/utils/resolve-variants.js","../lib/value/utils/resolve-motion-value.js","../lib/motion/utils/use-visual-state.js","../lib/utils/use-constant.js","../lib/render/html/utils/scrape-motion-values.js","../lib/render/html/use-html-visual-state.js","../lib/render/svg/use-svg-visual-state.js","../lib/render/svg/utils/scrape-motion-values.js","../lib/utils/is-browser.js","../lib/motion/features/definitions.js","../lib/motion/utils/symbol.js","../lib/utils/is-ref-object.js","../lib/motion/utils/use-motion-ref.js","../lib/render/dom/utils/camel-to-dash.js","../lib/animation/optimized-appear/data-id.js","../lib/context/SwitchLayoutGroupContext.js","../lib/utils/use-isomorphic-effect.js","../lib/motion/utils/use-visual-element.js","../lib/motion/index.js","../lib/render/components/m/create.js","../lib/render/components/m/elements.js","../lib/render/components/m/size.js"],"sourcesContent":["const clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nexport { clamp };\n","\"use client\";\nimport { createContext } from \"react\";\nexport const LayoutGroupContext = createContext({});\n//# sourceMappingURL=LayoutGroupContext.js.map","\"use client\";\nimport { createContext } from \"react\";\nexport const LazyContext = createContext({ strict: false });\n//# sourceMappingURL=LazyContext.js.map","\"use client\";\nimport { createContext } from \"react\";\n/**\n * @public\n */\nexport const MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n//# sourceMappingURL=MotionConfigContext.js.map","\"use client\";\nimport { createContext } from \"react\";\nexport const MotionContext = /* @__PURE__ */ createContext({});\n//# sourceMappingURL=index.js.map","export function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n//# sourceMappingURL=is-animation-controls.js.map","/**\n * Decides if the supplied variable is variant label\n */\nexport function isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n//# sourceMappingURL=is-variant-label.js.map","export const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nexport const variantProps = [\"initial\", ...variantPriorityOrder];\n//# sourceMappingURL=variant-props.js.map","import { isAnimationControls } from \"../../animation/utils/is-animation-controls\";\nimport { isVariantLabel } from \"./is-variant-label\";\nimport { variantProps } from \"./variant-props\";\nexport function isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nexport function isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n//# sourceMappingURL=is-controlling-variants.js.map","\"use client\";\nimport { useContext, useMemo } from \"react\";\nimport { MotionContext } from \".\";\nimport { getCurrentTreeVariants } from \"./utils\";\nexport function useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n//# sourceMappingURL=create.js.map","import { isControllingVariants } from \"../../render/utils/is-controlling-variants\";\nimport { isVariantLabel } from \"../../render/utils/is-variant-label\";\nexport function getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n//# sourceMappingURL=utils.js.map","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n\nexport { isCSSVariableName, isCSSVariableToken };\n","import { clamp } from 'motion-utils';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\n\nexport { sanitize };\n","const floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n\nexport { floatRegex };\n","const singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n\nexport { singleColorRegex };\n","import { floatRegex } from '../utils/float-regex.mjs';\nimport { isNullish } from '../utils/is-nullish.mjs';\nimport { singleColorRegex } from '../utils/single-color-regex.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((typeof v === \"string\" &&\n singleColorRegex.test(v) &&\n v.startsWith(type)) ||\n (testProp &&\n !isNullish(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (typeof v !== \"string\")\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","function isNullish(v) {\n return v == null;\n}\n\nexport { isNullish };\n","import { clamp } from 'motion-utils';\nimport { number, alpha } from '../numbers/index.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: /*@__PURE__*/ isColorString(\"rgb\", \"red\"),\n parse: /*@__PURE__*/ splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: /*@__PURE__*/ isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","/*#__NO_SIDE_EFFECTS__*/\nconst createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = /*@__PURE__*/ (() => ({\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n}))();\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: /*@__PURE__*/ isColorString(\"hsl\", \"hue\"),\n parse: /*@__PURE__*/ splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","import { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return typeof v === \"string\"\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n getAnimatableNone: (v) => {\n const parsed = color.parse(v);\n parsed.alpha = 0;\n return color.transform(parsed);\n },\n};\n\nexport { color };\n","const colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n\nexport { colorRegex };\n","import { color } from '../color/index.mjs';\nimport { colorRegex } from '../utils/color-regex.mjs';\nimport { floatRegex } from '../utils/float-regex.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\n\nfunction test(v) {\n return (isNaN(v) &&\n typeof v === \"string\" &&\n (v.match(floatRegex)?.length || 0) +\n (v.match(colorRegex)?.length || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : color.test(v) ? color.getAnimatableNone(v) : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = /*@__PURE__*/ (() => new Set(transformPropOrder))();\n\nexport { transformPropOrder, transformProps };\n","import { number } from './numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { int } from '../int.mjs';\nimport { alpha } from '../numbers/index.mjs';\nimport { px } from '../numbers/units.mjs';\nimport { transformValueTypes } from './transform.mjs';\n\nconst numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n inset: px,\n insetBlock: px,\n insetBlockStart: px,\n insetBlockEnd: px,\n insetInline: px,\n insetInlineStart: px,\n insetInlineEnd: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n paddingBlock: px,\n paddingBlockStart: px,\n paddingBlockEnd: px,\n paddingInline: px,\n paddingInlineStart: px,\n paddingInlineEnd: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n marginBlock: px,\n marginBlockStart: px,\n marginBlockEnd: px,\n marginInline: px,\n marginInlineStart: px,\n marginInlineEnd: px,\n // Misc\n backgroundPositionX: px,\n backgroundPositionY: px,\n ...transformValueTypes,\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { scale, alpha } from '../numbers/index.mjs';\nimport { degrees, px, progressPercentage } from '../numbers/units.mjs';\n\nconst transformValueTypes = {\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n};\n\nexport { transformValueTypes };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n","import { px } from \"motion-dom\";\nexport function pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nexport const correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n//# sourceMappingURL=scale-border-radius.js.map","import { complex, mixNumber } from \"motion-dom\";\nexport const correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mixNumber(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n//# sourceMappingURL=scale-box-shadow.js.map","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\nexport { mixNumber };\n","import { isCSSVariableName } from \"motion-dom\";\nimport { correctBorderRadius } from \"./scale-border-radius\";\nimport { correctBoxShadow } from \"./scale-box-shadow\";\nexport const scaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\nexport function addScaleCorrector(correctors) {\n for (const key in correctors) {\n scaleCorrectors[key] = correctors[key];\n if (isCSSVariableName(key)) {\n scaleCorrectors[key].isCSSVariable = true;\n }\n }\n}\n//# sourceMappingURL=scale-correction.js.map","import { transformProps } from \"motion-dom\";\nimport { scaleCorrectors } from \"../../projection/styles/scale-correction\";\nexport function isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n//# sourceMappingURL=is-forced-motion-value.js.map","import { getValueAsType, numberValueTypes, transformPropOrder, } from \"motion-dom\";\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nexport function buildTransform(latestValues, transform, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n let transformIsDefault = true;\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n const value = latestValues[key];\n if (value === undefined)\n continue;\n let valueIsDefault = true;\n if (typeof value === \"number\") {\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n }\n else {\n valueIsDefault = parseFloat(value) === 0;\n }\n if (!valueIsDefault || transformTemplate) {\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (!valueIsDefault) {\n transformIsDefault = false;\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${valueAsType}) `;\n }\n if (transformTemplate) {\n transform[key] = valueAsType;\n }\n }\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n//# sourceMappingURL=build-transform.js.map","import { getValueAsType, isCSSVariableName, numberValueTypes, transformProps, } from \"motion-dom\";\nimport { buildTransform } from \"./build-transform\";\nexport function buildHTMLStyles(state, latestValues, transformTemplate) {\n const { style, vars, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n continue;\n }\n else if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n else {\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] =\n valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(latestValues, state.transform, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n//# sourceMappingURL=build-styles.js.map","export const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n//# sourceMappingURL=create-render-state.js.map","\"use client\";\nimport { isMotionValue } from \"motion-dom\";\nimport { useMemo } from \"react\";\nimport { isForcedMotionValue } from \"../../motion/utils/is-forced-motion-value\";\nimport { buildHTMLStyles } from \"./utils/build-styles\";\nimport { createHtmlRenderState } from \"./utils/create-render-state\";\nexport function copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState));\n return style;\n}\nexport function useHTMLProps(props, visualState) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n//# sourceMappingURL=use-props.js.map","import { px } from \"motion-dom\";\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nexport function buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n//# sourceMappingURL=path.js.map","import { buildHTMLStyles } from \"../../html/utils/build-styles\";\nimport { buildSVGPath } from \"./path\";\n/**\n * Build SVG visual attributes, like cx and style.transform\n */\nexport function buildSVGAttrs(state, { attrX, attrY, attrScale, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate, styleProp) {\n buildHTMLStyles(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style } = state;\n /**\n * However, we apply transforms as CSS transforms.\n * So if we detect a transform, transformOrigin we take it from attrs and copy it into style.\n */\n if (attrs.transform) {\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n if (style.transform || attrs.transformOrigin) {\n style.transformOrigin = attrs.transformOrigin ?? \"50% 50%\";\n delete attrs.transformOrigin;\n }\n if (style.transform) {\n /**\n * SVG's element transform-origin uses its own median as a reference.\n * Therefore, transformBox becomes a fill-box\n */\n style.transformBox = styleProp?.transformBox ?? \"fill-box\";\n delete attrs.transformBox;\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n//# sourceMappingURL=build-attrs.js.map","import { createHtmlRenderState } from \"../../html/utils/create-render-state\";\nexport const createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n//# sourceMappingURL=create-render-state.js.map","\"use client\";\nimport { useMemo } from \"react\";\nimport { copyRawValuesOnly } from \"../html/use-props\";\nimport { buildSVGAttrs } from \"./utils/build-attrs\";\nimport { createSvgRenderState } from \"./utils/create-render-state\";\nimport { isSVGTag } from \"./utils/is-svg-tag\";\nexport function useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, isSVGTag(Component), props.transformTemplate, props.style);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n//# sourceMappingURL=use-props.js.map","export const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n//# sourceMappingURL=is-svg-tag.js.map","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nexport function isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n//# sourceMappingURL=valid-prop.js.map","import { isValidMotionProp } from \"../../../motion/utils/valid-prop\";\nlet shouldForward = (key) => !isValidMotionProp(key);\nexport function loadExternalIsValidProp(isValidProp) {\n if (typeof isValidProp !== \"function\")\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nexport function filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n//# sourceMappingURL=filter-props.js.map","/**\n * We keep these listed separately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nexport const lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n//# sourceMappingURL=lowercase-elements.js.map","import { lowercaseSVGElements } from \"../../svg/lowercase-elements\";\nexport function isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n//# sourceMappingURL=is-svg-component.js.map","\"use client\";\nimport { isMotionValue } from \"motion-dom\";\nimport { Fragment, createElement, useMemo } from \"react\";\nimport { useHTMLProps } from \"../html/use-props\";\nimport { useSVGProps } from \"../svg/use-props\";\nimport { filterProps } from \"./utils/filter-props\";\nimport { isSVGComponent } from \"./utils/is-svg-component\";\nexport function useRender(Component, props, ref, { latestValues, }, isStatic, forwardMotionProps = false, isSVG) {\n const useVisualProps = (isSVG ?? isSVGComponent(Component)) ? useSVGProps : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== Fragment ? { ...filteredProps, ...visualProps, ref } : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n}\n//# sourceMappingURL=use-render.js.map","\"use client\";\nimport { createContext } from \"react\";\n/**\n * @public\n */\nexport const PresenceContext = \n/* @__PURE__ */ createContext(null);\n//# sourceMappingURL=PresenceContext.js.map","function getValueState(visualElement) {\n const state = [{}, {}];\n visualElement?.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nexport function resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n//# sourceMappingURL=resolve-variants.js.map","import { isMotionValue } from \"motion-dom\";\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nexport function resolveMotionValue(value) {\n return isMotionValue(value) ? value.get() : value;\n}\n//# sourceMappingURL=resolve-motion-value.js.map","\"use client\";\nimport { useContext } from \"react\";\nimport { isAnimationControls } from \"../../animation/utils/is-animation-controls\";\nimport { MotionContext } from \"../../context/MotionContext\";\nimport { PresenceContext, } from \"../../context/PresenceContext\";\nimport { isControllingVariants as checkIsControllingVariants, isVariantNode as checkIsVariantNode, } from \"../../render/utils/is-controlling-variants\";\nimport { resolveVariantFromProps } from \"../../render/utils/resolve-variants\";\nimport { useConstant } from \"../../utils/use-constant\";\nimport { resolveMotionValue } from \"../../value/utils/resolve-motion-value\";\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n return state;\n}\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants = checkIsControllingVariants(props);\n const isVariantNode = checkIsVariantNode(props);\n if (context &&\n isVariantNode &&\n !isControllingVariants &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n for (let i = 0; i < list.length; i++) {\n const resolved = resolveVariantFromProps(props, list[i]);\n if (resolved) {\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd) {\n values[key] = transitionEnd[key];\n }\n }\n }\n }\n return values;\n}\nexport const makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\n//# sourceMappingURL=use-visual-state.js.map","\"use client\";\nimport { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nexport function useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n//# sourceMappingURL=use-constant.js.map","import { isMotionValue } from \"motion-dom\";\nimport { isForcedMotionValue } from \"../../../motion/utils/is-forced-motion-value\";\nexport function scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style &&\n isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props) ||\n visualElement?.getValue(key)?.liveStyle !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n//# sourceMappingURL=scrape-motion-values.js.map","\"use client\";\nimport { makeUseVisualState } from \"../../motion/utils/use-visual-state\";\nimport { createHtmlRenderState } from \"./utils/create-render-state\";\nimport { scrapeMotionValuesFromProps } from \"./utils/scrape-motion-values\";\nexport const useHTMLVisualState = /*@__PURE__*/ makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n});\n//# sourceMappingURL=use-html-visual-state.js.map","\"use client\";\nimport { makeUseVisualState } from \"../../motion/utils/use-visual-state\";\nimport { createSvgRenderState } from \"./utils/create-render-state\";\nimport { scrapeMotionValuesFromProps as scrapeSVGProps } from \"./utils/scrape-motion-values\";\nexport const useSVGVisualState = /*@__PURE__*/ makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeSVGProps,\n createRenderState: createSvgRenderState,\n});\n//# sourceMappingURL=use-svg-visual-state.js.map","import { isMotionValue, transformPropOrder } from \"motion-dom\";\nimport { scrapeMotionValuesFromProps as scrapeHTMLMotionValuesFromProps } from \"../../html/utils/scrape-motion-values\";\nexport function scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = scrapeHTMLMotionValuesFromProps(props, prevProps, visualElement);\n for (const key in props) {\n if (isMotionValue(props[key]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n//# sourceMappingURL=scrape-motion-values.js.map","export const isBrowser = typeof window !== \"undefined\";\n//# sourceMappingURL=is-browser.js.map","const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nexport const featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n//# sourceMappingURL=definitions.js.map","export const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n//# sourceMappingURL=symbol.js.map","export function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n//# sourceMappingURL=is-ref-object.js.map","\"use client\";\nimport { useCallback } from \"react\";\nimport { isRefObject } from \"../../utils/is-ref-object\";\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nexport function useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n if (instance) {\n visualState.onMount && visualState.onMount(instance);\n }\n if (visualElement) {\n if (instance) {\n visualElement.mount(instance);\n }\n else {\n visualElement.unmount();\n }\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n ;\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Include externalRef in dependencies to ensure the callback updates\n * when the ref changes, allowing proper ref forwarding.\n */\n [visualElement]);\n}\n//# sourceMappingURL=use-motion-ref.js.map","/**\n * Convert camelCase to dash-case properties.\n */\nexport const camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\n//# sourceMappingURL=camel-to-dash.js.map","import { camelToDash } from \"../../render/dom/utils/camel-to-dash\";\nexport const optimizedAppearDataId = \"framerAppearId\";\nexport const optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n//# sourceMappingURL=data-id.js.map","\"use client\";\nimport { createContext } from \"react\";\n/**\n * Internal, exported only for usage in Framer\n */\nexport const SwitchLayoutGroupContext = createContext({});\n//# sourceMappingURL=SwitchLayoutGroupContext.js.map","\"use client\";\nimport { useEffect, useLayoutEffect } from \"react\";\nimport { isBrowser } from \"./is-browser\";\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n//# sourceMappingURL=use-isomorphic-effect.js.map","\"use client\";\nimport { useContext, useEffect, useInsertionEffect, useRef } from \"react\";\nimport { optimizedAppearDataAttribute } from \"../../animation/optimized-appear/data-id\";\nimport { LazyContext } from \"../../context/LazyContext\";\nimport { MotionConfigContext } from \"../../context/MotionConfigContext\";\nimport { MotionContext } from \"../../context/MotionContext\";\nimport { PresenceContext } from \"../../context/PresenceContext\";\nimport { SwitchLayoutGroupContext, } from \"../../context/SwitchLayoutGroupContext\";\nimport { isRefObject } from \"../../utils/is-ref-object\";\nimport { useIsomorphicLayoutEffect } from \"../../utils/use-isomorphic-effect\";\nexport function useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor, isSVG) {\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef(null);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement =\n createVisualElement ||\n lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n isSVG,\n });\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (visualElement &&\n !visualElement.projection &&\n ProjectionNodeConstructor &&\n (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n const isMounted = useRef(false);\n useInsertionEffect(() => {\n /**\n * Check the component has already mounted before calling\n * `update` unnecessarily. This ensures we skip the initial update.\n */\n if (visualElement && isMounted.current) {\n visualElement.update(props, presenceContext);\n }\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const optimisedAppearId = props[optimizedAppearDataAttribute];\n const wantsHandoff = useRef(Boolean(optimisedAppearId) &&\n !window.MotionHandoffIsComplete?.(optimisedAppearId) &&\n window.MotionHasOptimisedAnimation?.(optimisedAppearId));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n isMounted.current = true;\n window.MotionIsMounted = true;\n visualElement.updateFeatures();\n visualElement.scheduleRenderMicrotask();\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n // This ensures all future calls to animateChanges() in this component will run in useEffect\n queueMicrotask(() => {\n window.MotionHandoffMarkAsComplete?.(optimisedAppearId);\n });\n wantsHandoff.current = false;\n }\n /**\n * Now we've finished triggering animations for this element we\n * can wipe the enteringChildren set for the next render.\n */\n visualElement.enteringChildren = undefined;\n });\n return visualElement;\n}\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, layoutCrossfade, } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"]\n ? undefined\n : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement,\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n crossfade: layoutCrossfade,\n layoutScroll,\n layoutRoot,\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement)\n return undefined;\n return visualElement.options.allowProjection !== false\n ? visualElement.projection\n : getClosestProjectingNode(visualElement.parent);\n}\n//# sourceMappingURL=use-visual-element.js.map","\"use client\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { invariant, warning } from \"motion-utils\";\nimport { forwardRef, useContext } from \"react\";\nimport { LayoutGroupContext } from \"../context/LayoutGroupContext\";\nimport { LazyContext } from \"../context/LazyContext\";\nimport { MotionConfigContext } from \"../context/MotionConfigContext\";\nimport { MotionContext } from \"../context/MotionContext\";\nimport { useCreateMotionContext } from \"../context/MotionContext/create\";\nimport { useRender } from \"../render/dom/use-render\";\nimport { isSVGComponent } from \"../render/dom/utils/is-svg-component\";\nimport { useHTMLVisualState } from \"../render/html/use-html-visual-state\";\nimport { useSVGVisualState } from \"../render/svg/use-svg-visual-state\";\nimport { isBrowser } from \"../utils/is-browser\";\nimport { featureDefinitions } from \"./features/definitions\";\nimport { loadFeatures } from \"./features/load-features\";\nimport { motionComponentSymbol } from \"./utils/symbol\";\nimport { useMotionRef } from \"./utils/use-motion-ref\";\nimport { useVisualElement } from \"./utils/use-visual-element\";\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nexport function createMotionComponent(Component, { forwardMotionProps = false, type } = {}, preloadedFeatures, createVisualElement) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n /**\n * Determine whether to use SVG or HTML rendering based on:\n * 1. Explicit `type` option (highest priority)\n * 2. Auto-detection via `isSVGComponent`\n */\n const isSVG = type ? type === \"svg\" : isSVGComponent(Component);\n const useVisualState = isSVG ? useSVGVisualState : useHTMLVisualState;\n function MotionDOMComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode, isSVG);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (_jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? (_jsx(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps, isSVG)] }));\n }\n MotionDOMComponent.displayName = `motion.${typeof Component === \"string\"\n ? Component\n : `create(${Component.displayName ?? Component.name ?? \"\"})`}`;\n const ForwardRefMotionComponent = forwardRef(MotionDOMComponent);\n ForwardRefMotionComponent[motionComponentSymbol] = Component;\n return ForwardRefMotionComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n const isStrict = useContext(LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict\n ? warning(false, strictMessage, \"lazy-strict-mode\")\n : invariant(false, strictMessage, \"lazy-strict-mode\");\n }\n}\nfunction getProjectionFunctionality(props) {\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout)\n return {};\n const combined = { ...drag, ...layout };\n return {\n MeasureLayout: drag?.isEnabled(props) || layout?.isEnabled(props)\n ? combined.MeasureLayout\n : undefined,\n ProjectionNode: combined.ProjectionNode,\n };\n}\n//# sourceMappingURL=index.js.map","import { createMotionComponent } from \"../../../motion\";\nexport function createMinimalMotionComponent(Component, options) {\n return createMotionComponent(Component, options);\n}\n//# sourceMappingURL=create.js.map","\"use client\";\nimport { createMinimalMotionComponent } from \"./create\";\n/**\n * HTML components\n */\nexport const MotionA = /*@__PURE__*/ createMinimalMotionComponent(\"a\");\nexport const MotionAbbr = /*@__PURE__*/ createMinimalMotionComponent(\"abbr\");\nexport const MotionAddress = \n/*@__PURE__*/ createMinimalMotionComponent(\"address\");\nexport const MotionArea = /*@__PURE__*/ createMinimalMotionComponent(\"area\");\nexport const MotionArticle = \n/*@__PURE__*/ createMinimalMotionComponent(\"article\");\nexport const MotionAside = /*@__PURE__*/ createMinimalMotionComponent(\"aside\");\nexport const MotionAudio = /*@__PURE__*/ createMinimalMotionComponent(\"audio\");\nexport const MotionB = /*@__PURE__*/ createMinimalMotionComponent(\"b\");\nexport const MotionBase = /*@__PURE__*/ createMinimalMotionComponent(\"base\");\nexport const MotionBdi = /*@__PURE__*/ createMinimalMotionComponent(\"bdi\");\nexport const MotionBdo = /*@__PURE__*/ createMinimalMotionComponent(\"bdo\");\nexport const MotionBig = /*@__PURE__*/ createMinimalMotionComponent(\"big\");\nexport const MotionBlockquote = \n/*@__PURE__*/ createMinimalMotionComponent(\"blockquote\");\nexport const MotionBody = /*@__PURE__*/ createMinimalMotionComponent(\"body\");\nexport const MotionButton = /*@__PURE__*/ createMinimalMotionComponent(\"button\");\nexport const MotionCanvas = /*@__PURE__*/ createMinimalMotionComponent(\"canvas\");\nexport const MotionCaption = \n/*@__PURE__*/ createMinimalMotionComponent(\"caption\");\nexport const MotionCite = /*@__PURE__*/ createMinimalMotionComponent(\"cite\");\nexport const MotionCode = /*@__PURE__*/ createMinimalMotionComponent(\"code\");\nexport const MotionCol = /*@__PURE__*/ createMinimalMotionComponent(\"col\");\nexport const MotionColgroup = \n/*@__PURE__*/ createMinimalMotionComponent(\"colgroup\");\nexport const MotionData = /*@__PURE__*/ createMinimalMotionComponent(\"data\");\nexport const MotionDatalist = \n/*@__PURE__*/ createMinimalMotionComponent(\"datalist\");\nexport const MotionDd = /*@__PURE__*/ createMinimalMotionComponent(\"dd\");\nexport const MotionDel = /*@__PURE__*/ createMinimalMotionComponent(\"del\");\nexport const MotionDetails = \n/*@__PURE__*/ createMinimalMotionComponent(\"details\");\nexport const MotionDfn = /*@__PURE__*/ createMinimalMotionComponent(\"dfn\");\nexport const MotionDialog = /*@__PURE__*/ createMinimalMotionComponent(\"dialog\");\nexport const MotionDiv = /*@__PURE__*/ createMinimalMotionComponent(\"div\");\nexport const MotionDl = /*@__PURE__*/ createMinimalMotionComponent(\"dl\");\nexport const MotionDt = /*@__PURE__*/ createMinimalMotionComponent(\"dt\");\nexport const MotionEm = /*@__PURE__*/ createMinimalMotionComponent(\"em\");\nexport const MotionEmbed = /*@__PURE__*/ createMinimalMotionComponent(\"embed\");\nexport const MotionFieldset = \n/*@__PURE__*/ createMinimalMotionComponent(\"fieldset\");\nexport const MotionFigcaption = \n/*@__PURE__*/ createMinimalMotionComponent(\"figcaption\");\nexport const MotionFigure = /*@__PURE__*/ createMinimalMotionComponent(\"figure\");\nexport const MotionFooter = /*@__PURE__*/ createMinimalMotionComponent(\"footer\");\nexport const MotionForm = /*@__PURE__*/ createMinimalMotionComponent(\"form\");\nexport const MotionH1 = /*@__PURE__*/ createMinimalMotionComponent(\"h1\");\nexport const MotionH2 = /*@__PURE__*/ createMinimalMotionComponent(\"h2\");\nexport const MotionH3 = /*@__PURE__*/ createMinimalMotionComponent(\"h3\");\nexport const MotionH4 = /*@__PURE__*/ createMinimalMotionComponent(\"h4\");\nexport const MotionH5 = /*@__PURE__*/ createMinimalMotionComponent(\"h5\");\nexport const MotionH6 = /*@__PURE__*/ createMinimalMotionComponent(\"h6\");\nexport const MotionHead = /*@__PURE__*/ createMinimalMotionComponent(\"head\");\nexport const MotionHeader = /*@__PURE__*/ createMinimalMotionComponent(\"header\");\nexport const MotionHgroup = /*@__PURE__*/ createMinimalMotionComponent(\"hgroup\");\nexport const MotionHr = /*@__PURE__*/ createMinimalMotionComponent(\"hr\");\nexport const MotionHtml = /*@__PURE__*/ createMinimalMotionComponent(\"html\");\nexport const MotionI = /*@__PURE__*/ createMinimalMotionComponent(\"i\");\nexport const MotionIframe = /*@__PURE__*/ createMinimalMotionComponent(\"iframe\");\nexport const MotionImg = /*@__PURE__*/ createMinimalMotionComponent(\"img\");\nexport const MotionInput = /*@__PURE__*/ createMinimalMotionComponent(\"input\");\nexport const MotionIns = /*@__PURE__*/ createMinimalMotionComponent(\"ins\");\nexport const MotionKbd = /*@__PURE__*/ createMinimalMotionComponent(\"kbd\");\nexport const MotionKeygen = /*@__PURE__*/ createMinimalMotionComponent(\"keygen\");\nexport const MotionLabel = /*@__PURE__*/ createMinimalMotionComponent(\"label\");\nexport const MotionLegend = /*@__PURE__*/ createMinimalMotionComponent(\"legend\");\nexport const MotionLi = /*@__PURE__*/ createMinimalMotionComponent(\"li\");\nexport const MotionLink = /*@__PURE__*/ createMinimalMotionComponent(\"link\");\nexport const MotionMain = /*@__PURE__*/ createMinimalMotionComponent(\"main\");\nexport const MotionMap = /*@__PURE__*/ createMinimalMotionComponent(\"map\");\nexport const MotionMark = /*@__PURE__*/ createMinimalMotionComponent(\"mark\");\nexport const MotionMenu = /*@__PURE__*/ createMinimalMotionComponent(\"menu\");\nexport const MotionMenuitem = \n/*@__PURE__*/ createMinimalMotionComponent(\"menuitem\");\nexport const MotionMeter = /*@__PURE__*/ createMinimalMotionComponent(\"meter\");\nexport const MotionNav = /*@__PURE__*/ createMinimalMotionComponent(\"nav\");\nexport const MotionObject = /*@__PURE__*/ createMinimalMotionComponent(\"object\");\nexport const MotionOl = /*@__PURE__*/ createMinimalMotionComponent(\"ol\");\nexport const MotionOptgroup = \n/*@__PURE__*/ createMinimalMotionComponent(\"optgroup\");\nexport const MotionOption = /*@__PURE__*/ createMinimalMotionComponent(\"option\");\nexport const MotionOutput = /*@__PURE__*/ createMinimalMotionComponent(\"output\");\nexport const MotionP = /*@__PURE__*/ createMinimalMotionComponent(\"p\");\nexport const MotionParam = /*@__PURE__*/ createMinimalMotionComponent(\"param\");\nexport const MotionPicture = \n/*@__PURE__*/ createMinimalMotionComponent(\"picture\");\nexport const MotionPre = /*@__PURE__*/ createMinimalMotionComponent(\"pre\");\nexport const MotionProgress = \n/*@__PURE__*/ createMinimalMotionComponent(\"progress\");\nexport const MotionQ = /*@__PURE__*/ createMinimalMotionComponent(\"q\");\nexport const MotionRp = /*@__PURE__*/ createMinimalMotionComponent(\"rp\");\nexport const MotionRt = /*@__PURE__*/ createMinimalMotionComponent(\"rt\");\nexport const MotionRuby = /*@__PURE__*/ createMinimalMotionComponent(\"ruby\");\nexport const MotionS = /*@__PURE__*/ createMinimalMotionComponent(\"s\");\nexport const MotionSamp = /*@__PURE__*/ createMinimalMotionComponent(\"samp\");\nexport const MotionScript = /*@__PURE__*/ createMinimalMotionComponent(\"script\");\nexport const MotionSection = \n/*@__PURE__*/ createMinimalMotionComponent(\"section\");\nexport const MotionSelect = /*@__PURE__*/ createMinimalMotionComponent(\"select\");\nexport const MotionSmall = /*@__PURE__*/ createMinimalMotionComponent(\"small\");\nexport const MotionSource = /*@__PURE__*/ createMinimalMotionComponent(\"source\");\nexport const MotionSpan = /*@__PURE__*/ createMinimalMotionComponent(\"span\");\nexport const MotionStrong = /*@__PURE__*/ createMinimalMotionComponent(\"strong\");\nexport const MotionStyle = /*@__PURE__*/ createMinimalMotionComponent(\"style\");\nexport const MotionSub = /*@__PURE__*/ createMinimalMotionComponent(\"sub\");\nexport const MotionSummary = \n/*@__PURE__*/ createMinimalMotionComponent(\"summary\");\nexport const MotionSup = /*@__PURE__*/ createMinimalMotionComponent(\"sup\");\nexport const MotionTable = /*@__PURE__*/ createMinimalMotionComponent(\"table\");\nexport const MotionTbody = /*@__PURE__*/ createMinimalMotionComponent(\"tbody\");\nexport const MotionTd = /*@__PURE__*/ createMinimalMotionComponent(\"td\");\nexport const MotionTextarea = \n/*@__PURE__*/ createMinimalMotionComponent(\"textarea\");\nexport const MotionTfoot = /*@__PURE__*/ createMinimalMotionComponent(\"tfoot\");\nexport const MotionTh = /*@__PURE__*/ createMinimalMotionComponent(\"th\");\nexport const MotionThead = /*@__PURE__*/ createMinimalMotionComponent(\"thead\");\nexport const MotionTime = /*@__PURE__*/ createMinimalMotionComponent(\"time\");\nexport const MotionTitle = /*@__PURE__*/ createMinimalMotionComponent(\"title\");\nexport const MotionTr = /*@__PURE__*/ createMinimalMotionComponent(\"tr\");\nexport const MotionTrack = /*@__PURE__*/ createMinimalMotionComponent(\"track\");\nexport const MotionU = /*@__PURE__*/ createMinimalMotionComponent(\"u\");\nexport const MotionUl = /*@__PURE__*/ createMinimalMotionComponent(\"ul\");\nexport const MotionVideo = /*@__PURE__*/ createMinimalMotionComponent(\"video\");\nexport const MotionWbr = /*@__PURE__*/ createMinimalMotionComponent(\"wbr\");\nexport const MotionWebview = \n/*@__PURE__*/ createMinimalMotionComponent(\"webview\");\n/**\n * SVG components\n */\nexport const MotionAnimate = \n/*@__PURE__*/ createMinimalMotionComponent(\"animate\");\nexport const MotionCircle = /*@__PURE__*/ createMinimalMotionComponent(\"circle\");\nexport const MotionDefs = /*@__PURE__*/ createMinimalMotionComponent(\"defs\");\nexport const MotionDesc = /*@__PURE__*/ createMinimalMotionComponent(\"desc\");\nexport const MotionEllipse = \n/*@__PURE__*/ createMinimalMotionComponent(\"ellipse\");\nexport const MotionG = /*@__PURE__*/ createMinimalMotionComponent(\"g\");\nexport const MotionImage = /*@__PURE__*/ createMinimalMotionComponent(\"image\");\nexport const MotionLine = /*@__PURE__*/ createMinimalMotionComponent(\"line\");\nexport const MotionFilter = /*@__PURE__*/ createMinimalMotionComponent(\"filter\");\nexport const MotionMarker = /*@__PURE__*/ createMinimalMotionComponent(\"marker\");\nexport const MotionMask = /*@__PURE__*/ createMinimalMotionComponent(\"mask\");\nexport const MotionMetadata = \n/*@__PURE__*/ createMinimalMotionComponent(\"metadata\");\nexport const MotionPath = /*@__PURE__*/ createMinimalMotionComponent(\"path\");\nexport const MotionPattern = \n/*@__PURE__*/ createMinimalMotionComponent(\"pattern\");\nexport const MotionPolygon = \n/*@__PURE__*/ createMinimalMotionComponent(\"polygon\");\nexport const MotionPolyline = \n/*@__PURE__*/ createMinimalMotionComponent(\"polyline\");\nexport const MotionRect = /*@__PURE__*/ createMinimalMotionComponent(\"rect\");\nexport const MotionStop = /*@__PURE__*/ createMinimalMotionComponent(\"stop\");\nexport const MotionSvg = /*@__PURE__*/ createMinimalMotionComponent(\"svg\");\nexport const MotionSymbol = /*@__PURE__*/ createMinimalMotionComponent(\"symbol\");\nexport const MotionText = /*@__PURE__*/ createMinimalMotionComponent(\"text\");\nexport const MotionTspan = /*@__PURE__*/ createMinimalMotionComponent(\"tspan\");\nexport const MotionUse = /*@__PURE__*/ createMinimalMotionComponent(\"use\");\nexport const MotionView = /*@__PURE__*/ createMinimalMotionComponent(\"view\");\nexport const MotionClipPath = \n/*@__PURE__*/ createMinimalMotionComponent(\"clipPath\");\nexport const MotionFeBlend = \n/*@__PURE__*/ createMinimalMotionComponent(\"feBlend\");\nexport const MotionFeColorMatrix = \n/*@__PURE__*/ createMinimalMotionComponent(\"feColorMatrix\");\nexport const MotionFeComponentTransfer = \n/*@__PURE__*/ createMinimalMotionComponent(\"feComponentTransfer\");\nexport const MotionFeComposite = \n/*@__PURE__*/ createMinimalMotionComponent(\"feComposite\");\nexport const MotionFeConvolveMatrix = \n/*@__PURE__*/ createMinimalMotionComponent(\"feConvolveMatrix\");\nexport const MotionFeDiffuseLighting = \n/*@__PURE__*/ createMinimalMotionComponent(\"feDiffuseLighting\");\nexport const MotionFeDisplacementMap = \n/*@__PURE__*/ createMinimalMotionComponent(\"feDisplacementMap\");\nexport const MotionFeDistantLight = \n/*@__PURE__*/ createMinimalMotionComponent(\"feDistantLight\");\nexport const MotionFeDropShadow = \n/*@__PURE__*/ createMinimalMotionComponent(\"feDropShadow\");\nexport const MotionFeFlood = \n/*@__PURE__*/ createMinimalMotionComponent(\"feFlood\");\nexport const MotionFeFuncA = \n/*@__PURE__*/ createMinimalMotionComponent(\"feFuncA\");\nexport const MotionFeFuncB = \n/*@__PURE__*/ createMinimalMotionComponent(\"feFuncB\");\nexport const MotionFeFuncG = \n/*@__PURE__*/ createMinimalMotionComponent(\"feFuncG\");\nexport const MotionFeFuncR = \n/*@__PURE__*/ createMinimalMotionComponent(\"feFuncR\");\nexport const MotionFeGaussianBlur = \n/*@__PURE__*/ createMinimalMotionComponent(\"feGaussianBlur\");\nexport const MotionFeImage = \n/*@__PURE__*/ createMinimalMotionComponent(\"feImage\");\nexport const MotionFeMerge = \n/*@__PURE__*/ createMinimalMotionComponent(\"feMerge\");\nexport const MotionFeMergeNode = \n/*@__PURE__*/ createMinimalMotionComponent(\"feMergeNode\");\nexport const MotionFeMorphology = \n/*@__PURE__*/ createMinimalMotionComponent(\"feMorphology\");\nexport const MotionFeOffset = \n/*@__PURE__*/ createMinimalMotionComponent(\"feOffset\");\nexport const MotionFePointLight = \n/*@__PURE__*/ createMinimalMotionComponent(\"fePointLight\");\nexport const MotionFeSpecularLighting = \n/*@__PURE__*/ createMinimalMotionComponent(\"feSpecularLighting\");\nexport const MotionFeSpotLight = \n/*@__PURE__*/ createMinimalMotionComponent(\"feSpotLight\");\nexport const MotionFeTile = /*@__PURE__*/ createMinimalMotionComponent(\"feTile\");\nexport const MotionFeTurbulence = \n/*@__PURE__*/ createMinimalMotionComponent(\"feTurbulence\");\nexport const MotionForeignObject = \n/*@__PURE__*/ createMinimalMotionComponent(\"foreignObject\");\nexport const MotionLinearGradient = \n/*@__PURE__*/ createMinimalMotionComponent(\"linearGradient\");\nexport const MotionRadialGradient = \n/*@__PURE__*/ createMinimalMotionComponent(\"radialGradient\");\nexport const MotionTextPath = \n/*@__PURE__*/ createMinimalMotionComponent(\"textPath\");\n//# sourceMappingURL=elements.js.map","import { m } from \"./\";\nexport const MotionDiv = m.div;\n//# sourceMappingURL=size.js.map"],"names":["clamp","min","max","v","LayoutGroupContext","createContext","LazyContext","strict","MotionConfigContext","transformPagePoint","p","isStatic","reducedMotion","MotionContext","isAnimationControls","start","isVariantLabel","Array","isArray","variantProps","isControllingVariants","props","animate","some","name","useCreateMotionContext","initial","context","undefined","inherit","getCurrentTreeVariants","useContext","useMemo","variantLabelsAsDependency","prop","join","isCSSVariableName","token","key","startsWith","checkStringStartsWith","number","test","parse","parseFloat","transform","alpha","scale","default","sanitize","Math","round","floatRegex","singleColorRegex","isColorString","type","testProp","Boolean","isNullish","Object","prototype","hasOwnProperty","call","splitColor","aName","bName","cName","a","b","c","match","rgbUnit","clampRgbUnit","rgba","red","green","blue","alpha$1","hex","r","g","length","substring","parseInt","createUnitType","unit","endsWith","split","degrees","percent","px","progressPercentage","hsla","hue","saturation","lightness","color","getAnimatableNone","parsed","colorRegex","NUMBER_TOKEN","COLOR_TOKEN","complexRegex","analyseComplexValue","value","originalValue","toString","values","indexes","var","types","i","replace","parsedValue","push","parseComplexValue","createTransformer","source","numSections","output","convertNumbersToZero","complex","isNaN","transformer","map","transformPropOrder","transformProps","Set","int","numberValueTypes","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","width","maxWidth","height","maxHeight","top","right","bottom","left","inset","insetBlock","insetBlockStart","insetBlockEnd","insetInline","insetInlineStart","insetInlineEnd","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingBlock","paddingBlockStart","paddingBlockEnd","paddingInline","paddingInlineStart","paddingInlineEnd","margin","marginTop","marginRight","marginBottom","marginLeft","marginBlock","marginBlockStart","marginBlockEnd","marginInline","marginInlineStart","marginInlineEnd","backgroundPositionX","backgroundPositionY","rotate","rotateX","rotateY","rotateZ","scaleX","scaleY","scaleZ","skew","skewX","skewY","distance","translateX","translateY","translateZ","x","y","z","perspective","transformPerspective","opacity","originX","originY","originZ","zIndex","fillOpacity","strokeOpacity","numOctaves","getValueAsType","isMotionValue","getVelocity","pixelsToPercent","pixels","axis","correctBorderRadius","correct","latest","node","target","correctBoxShadow","treeScale","projectionDelta","original","shadow","template","offset","xScale","yScale","averageScale","from","scaleCorrectors","applyTo","boxShadow","isForcedMotionValue","layout","layoutId","has","translateAlias","numTransforms","buildHTMLStyles","state","latestValues","transformTemplate","style","vars","transformOrigin","hasTransform","hasTransformOrigin","valueAsType","transformString","transformIsDefault","valueIsDefault","trim","buildTransform","createHtmlRenderState","copyRawValuesOnly","useStyle","visualState","assign","useInitialMotionValues","useHTMLProps","htmlProps","drag","dragListener","draggable","userSelect","WebkitUserSelect","WebkitTouchCallout","touchAction","tabIndex","onTap","onTapStart","whileTap","dashKeys","array","camelKeys","buildSVGAttrs","attrX","attrY","attrScale","pathLength","pathSpacing","pathOffset","isSVGTag","styleProp","viewBox","attrs","transformBox","spacing","useDashCase","keys","buildSVGPath","createSvgRenderState","useSVGProps","_isStatic","Component","visualProps","tag","toLowerCase","rawStyles","validMotionProps","isValidMotionProp","shouldForward","isValidProp","require","lowercaseSVGElements","isSVGComponent","includes","indexOf","useRender","ref","forwardMotionProps","isSVG","filteredProps","isDom","filterProps","elementProps","Fragment","children","renderedChildren","get","createElement","PresenceContext","resolveVariantFromProps","definition","custom","visualElement","current","velocity","variants","resolveMotionValue","makeLatestValues","presenceContext","scrapeMotionValues","motionValues","checkIsControllingVariants","isVariantNode","checkIsVariantNode","isInitialAnimationBlocked","variantToSet","list","resolved","transitionEnd","transition","valueTarget","makeUseVisualState","config","make","scrapeMotionValuesFromProps","createRenderState","renderState","makeState","init","useRef","useConstant","prevProps","newValues","getValue","liveStyle","useHTMLVisualState","useSVGVisualState","scrapeHTMLMotionValuesFromProps","charAt","toUpperCase","isBrowser","window","featureProps","animation","exit","focus","hover","tap","pan","inView","featureDefinitions","isEnabled","motionComponentSymbol","Symbol","for","isRefObject","useMotionRef","externalRef","useCallback","instance","onMount","mount","unmount","optimizedAppearDataAttribute","SwitchLayoutGroupContext","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","useVisualElement","createVisualElement","ProjectionNodeConstructor","parent","lazyContext","reducedMotionConfig","visualElementRef","renderer","blockInitialAnimation","initialLayoutGroupConfig","projection","initialPromotionConfig","dragConstraints","layoutScroll","layoutRoot","layoutCrossfade","getClosestProjectingNode","setOptions","alwaysMeasureLayout","animationType","crossfade","createProjectionNode","isMounted","useInsertionEffect","update","optimisedAppearId","wantsHandoff","MotionHandoffIsComplete","MotionHasOptimisedAnimation","MotionIsMounted","updateFeatures","scheduleRenderMicrotask","animationState","animateChanges","queueMicrotask","MotionHandoffMarkAsComplete","enteringChildren","options","allowProjection","createMotionComponent","preloadedFeatures","useVisualState","MotionDOMComponent","MeasureLayout","configAndProps","useLayoutId","layoutProjection","combined","ProjectionNode","getProjectionFunctionality","_jsxs","Provider","_jsx","displayName","ForwardRefMotionComponent","forwardRef","layoutGroupId","id","createMinimalMotionComponent","MotionDiv"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"size-rollup-m.js","sources":["../../motion-utils/dist/es/clamp.mjs","../lib/context/LayoutGroupContext.js","../lib/context/LazyContext.js","../lib/context/MotionConfigContext.js","../lib/context/MotionContext/index.js","../lib/animation/utils/is-animation-controls.js","../lib/render/utils/is-variant-label.js","../lib/render/utils/variant-props.js","../lib/render/utils/is-controlling-variants.js","../lib/context/MotionContext/create.js","../lib/context/MotionContext/utils.js","../../motion-dom/dist/es/animation/utils/is-css-variable.mjs","../../motion-dom/dist/es/value/types/numbers/index.mjs","../../motion-dom/dist/es/value/types/utils/sanitize.mjs","../../motion-dom/dist/es/value/types/utils/float-regex.mjs","../../motion-dom/dist/es/value/types/utils/single-color-regex.mjs","../../motion-dom/dist/es/value/types/color/utils.mjs","../../motion-dom/dist/es/value/types/utils/is-nullish.mjs","../../motion-dom/dist/es/value/types/color/rgba.mjs","../../motion-dom/dist/es/value/types/color/hex.mjs","../../motion-dom/dist/es/value/types/numbers/units.mjs","../../motion-dom/dist/es/value/types/color/hsla.mjs","../../motion-dom/dist/es/value/types/color/index.mjs","../../motion-dom/dist/es/value/types/utils/color-regex.mjs","../../motion-dom/dist/es/value/types/complex/index.mjs","../../motion-dom/dist/es/render/utils/keys-transform.mjs","../../motion-dom/dist/es/value/types/int.mjs","../../motion-dom/dist/es/value/types/maps/number.mjs","../../motion-dom/dist/es/value/types/maps/transform.mjs","../../motion-dom/dist/es/value/types/utils/get-as-type.mjs","../../motion-dom/dist/es/value/utils/is-motion-value.mjs","../lib/projection/styles/scale-border-radius.js","../lib/projection/styles/scale-box-shadow.js","../../motion-dom/dist/es/utils/mix/number.mjs","../lib/projection/styles/scale-correction.js","../lib/motion/utils/is-forced-motion-value.js","../lib/render/html/utils/build-transform.js","../lib/render/html/utils/build-styles.js","../lib/render/html/utils/create-render-state.js","../lib/render/html/use-props.js","../lib/render/svg/utils/path.js","../lib/render/svg/utils/build-attrs.js","../lib/render/svg/utils/create-render-state.js","../lib/render/svg/use-props.js","../lib/render/svg/utils/is-svg-tag.js","../lib/motion/utils/valid-prop.js","../lib/render/dom/utils/filter-props.js","../lib/render/svg/lowercase-elements.js","../lib/render/dom/utils/is-svg-component.js","../lib/render/dom/use-render.js","../lib/context/PresenceContext.js","../lib/render/utils/resolve-variants.js","../lib/value/utils/resolve-motion-value.js","../lib/motion/utils/use-visual-state.js","../lib/utils/use-constant.js","../lib/render/html/utils/scrape-motion-values.js","../lib/render/html/use-html-visual-state.js","../lib/render/svg/use-svg-visual-state.js","../lib/render/svg/utils/scrape-motion-values.js","../lib/utils/is-browser.js","../lib/motion/features/definitions.js","../lib/motion/utils/symbol.js","../lib/utils/is-ref-object.js","../lib/motion/utils/use-motion-ref.js","../lib/render/dom/utils/camel-to-dash.js","../lib/animation/optimized-appear/data-id.js","../lib/context/SwitchLayoutGroupContext.js","../lib/utils/use-isomorphic-effect.js","../lib/motion/utils/use-visual-element.js","../lib/motion/index.js","../lib/render/components/m/create.js","../lib/render/components/m/elements.js","../lib/render/components/m/size.js"],"sourcesContent":["const clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nexport { clamp };\n","\"use client\";\nimport { createContext } from \"react\";\nexport const LayoutGroupContext = createContext({});\n//# sourceMappingURL=LayoutGroupContext.js.map","\"use client\";\nimport { createContext } from \"react\";\nexport const LazyContext = createContext({ strict: false });\n//# sourceMappingURL=LazyContext.js.map","\"use client\";\nimport { createContext } from \"react\";\n/**\n * @public\n */\nexport const MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n//# sourceMappingURL=MotionConfigContext.js.map","\"use client\";\nimport { createContext } from \"react\";\nexport const MotionContext = /* @__PURE__ */ createContext({});\n//# sourceMappingURL=index.js.map","export function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n//# sourceMappingURL=is-animation-controls.js.map","/**\n * Decides if the supplied variable is variant label\n */\nexport function isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n//# sourceMappingURL=is-variant-label.js.map","export const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nexport const variantProps = [\"initial\", ...variantPriorityOrder];\n//# sourceMappingURL=variant-props.js.map","import { isAnimationControls } from \"../../animation/utils/is-animation-controls\";\nimport { isVariantLabel } from \"./is-variant-label\";\nimport { variantProps } from \"./variant-props\";\nexport function isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nexport function isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n//# sourceMappingURL=is-controlling-variants.js.map","\"use client\";\nimport { useContext, useMemo } from \"react\";\nimport { MotionContext } from \".\";\nimport { getCurrentTreeVariants } from \"./utils\";\nexport function useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n//# sourceMappingURL=create.js.map","import { isControllingVariants } from \"../../render/utils/is-controlling-variants\";\nimport { isVariantLabel } from \"../../render/utils/is-variant-label\";\nexport function getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n//# sourceMappingURL=utils.js.map","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n\nexport { isCSSVariableName, isCSSVariableToken };\n","import { clamp } from 'motion-utils';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\n\nexport { sanitize };\n","const floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n\nexport { floatRegex };\n","const singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n\nexport { singleColorRegex };\n","import { floatRegex } from '../utils/float-regex.mjs';\nimport { isNullish } from '../utils/is-nullish.mjs';\nimport { singleColorRegex } from '../utils/single-color-regex.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((typeof v === \"string\" &&\n singleColorRegex.test(v) &&\n v.startsWith(type)) ||\n (testProp &&\n !isNullish(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (typeof v !== \"string\")\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","function isNullish(v) {\n return v == null;\n}\n\nexport { isNullish };\n","import { clamp } from 'motion-utils';\nimport { number, alpha } from '../numbers/index.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: /*@__PURE__*/ isColorString(\"rgb\", \"red\"),\n parse: /*@__PURE__*/ splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: /*@__PURE__*/ isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","/*#__NO_SIDE_EFFECTS__*/\nconst createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = /*@__PURE__*/ (() => ({\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n}))();\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: /*@__PURE__*/ isColorString(\"hsl\", \"hue\"),\n parse: /*@__PURE__*/ splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","import { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return typeof v === \"string\"\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n getAnimatableNone: (v) => {\n const parsed = color.parse(v);\n parsed.alpha = 0;\n return color.transform(parsed);\n },\n};\n\nexport { color };\n","const colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n\nexport { colorRegex };\n","import { color } from '../color/index.mjs';\nimport { colorRegex } from '../utils/color-regex.mjs';\nimport { floatRegex } from '../utils/float-regex.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\n\nfunction test(v) {\n return (isNaN(v) &&\n typeof v === \"string\" &&\n (v.match(floatRegex)?.length || 0) +\n (v.match(colorRegex)?.length || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : color.test(v) ? color.getAnimatableNone(v) : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = /*@__PURE__*/ (() => new Set(transformPropOrder))();\n\nexport { transformPropOrder, transformProps };\n","import { number } from './numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { int } from '../int.mjs';\nimport { alpha } from '../numbers/index.mjs';\nimport { px } from '../numbers/units.mjs';\nimport { transformValueTypes } from './transform.mjs';\n\nconst numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n inset: px,\n insetBlock: px,\n insetBlockStart: px,\n insetBlockEnd: px,\n insetInline: px,\n insetInlineStart: px,\n insetInlineEnd: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n paddingBlock: px,\n paddingBlockStart: px,\n paddingBlockEnd: px,\n paddingInline: px,\n paddingInlineStart: px,\n paddingInlineEnd: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n marginBlock: px,\n marginBlockStart: px,\n marginBlockEnd: px,\n marginInline: px,\n marginInlineStart: px,\n marginInlineEnd: px,\n // Misc\n backgroundPositionX: px,\n backgroundPositionY: px,\n ...transformValueTypes,\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { scale, alpha } from '../numbers/index.mjs';\nimport { degrees, px, progressPercentage } from '../numbers/units.mjs';\n\nconst transformValueTypes = {\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n};\n\nexport { transformValueTypes };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n","import { px } from \"motion-dom\";\nexport function pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nexport const correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n//# sourceMappingURL=scale-border-radius.js.map","import { complex, mixNumber } from \"motion-dom\";\nexport const correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mixNumber(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n//# sourceMappingURL=scale-box-shadow.js.map","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\nexport { mixNumber };\n","import { isCSSVariableName } from \"motion-dom\";\nimport { correctBorderRadius } from \"./scale-border-radius\";\nimport { correctBoxShadow } from \"./scale-box-shadow\";\nexport const scaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\nexport function addScaleCorrector(correctors) {\n for (const key in correctors) {\n scaleCorrectors[key] = correctors[key];\n if (isCSSVariableName(key)) {\n scaleCorrectors[key].isCSSVariable = true;\n }\n }\n}\n//# sourceMappingURL=scale-correction.js.map","import { transformProps } from \"motion-dom\";\nimport { scaleCorrectors } from \"../../projection/styles/scale-correction\";\nexport function isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n//# sourceMappingURL=is-forced-motion-value.js.map","import { getValueAsType, numberValueTypes, transformPropOrder, } from \"motion-dom\";\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nexport function buildTransform(latestValues, transform, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n let transformIsDefault = true;\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n const value = latestValues[key];\n if (value === undefined)\n continue;\n let valueIsDefault = true;\n if (typeof value === \"number\") {\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n }\n else {\n valueIsDefault = parseFloat(value) === 0;\n }\n if (!valueIsDefault || transformTemplate) {\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (!valueIsDefault) {\n transformIsDefault = false;\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${valueAsType}) `;\n }\n if (transformTemplate) {\n transform[key] = valueAsType;\n }\n }\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n//# sourceMappingURL=build-transform.js.map","import { getValueAsType, isCSSVariableName, numberValueTypes, transformProps, } from \"motion-dom\";\nimport { buildTransform } from \"./build-transform\";\nexport function buildHTMLStyles(state, latestValues, transformTemplate) {\n const { style, vars, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n continue;\n }\n else if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n else {\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] =\n valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(latestValues, state.transform, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n//# sourceMappingURL=build-styles.js.map","export const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n//# sourceMappingURL=create-render-state.js.map","\"use client\";\nimport { isMotionValue } from \"motion-dom\";\nimport { useMemo } from \"react\";\nimport { isForcedMotionValue } from \"../../motion/utils/is-forced-motion-value\";\nimport { buildHTMLStyles } from \"./utils/build-styles\";\nimport { createHtmlRenderState } from \"./utils/create-render-state\";\nexport function copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState));\n return style;\n}\nexport function useHTMLProps(props, visualState) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n//# sourceMappingURL=use-props.js.map","import { px } from \"motion-dom\";\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nexport function buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n//# sourceMappingURL=path.js.map","import { buildHTMLStyles } from \"../../html/utils/build-styles\";\nimport { buildSVGPath } from \"./path\";\n/**\n * CSS Motion Path properties that should remain as CSS styles on SVG elements.\n */\nconst cssMotionPathProperties = [\n \"offsetDistance\",\n \"offsetPath\",\n \"offsetRotate\",\n \"offsetAnchor\",\n];\n/**\n * Build SVG visual attributes, like cx and style.transform\n */\nexport function buildSVGAttrs(state, { attrX, attrY, attrScale, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate, styleProp) {\n buildHTMLStyles(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style } = state;\n /**\n * However, we apply transforms as CSS transforms.\n * So if we detect a transform, transformOrigin we take it from attrs and copy it into style.\n */\n if (attrs.transform) {\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n if (style.transform || attrs.transformOrigin) {\n style.transformOrigin = attrs.transformOrigin ?? \"50% 50%\";\n delete attrs.transformOrigin;\n }\n if (style.transform) {\n /**\n * SVG's element transform-origin uses its own median as a reference.\n * Therefore, transformBox becomes a fill-box\n */\n style.transformBox = styleProp?.transformBox ?? \"fill-box\";\n delete attrs.transformBox;\n }\n for (const key of cssMotionPathProperties) {\n if (attrs[key] !== undefined) {\n style[key] = attrs[key];\n delete attrs[key];\n }\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n//# sourceMappingURL=build-attrs.js.map","import { createHtmlRenderState } from \"../../html/utils/create-render-state\";\nexport const createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n//# sourceMappingURL=create-render-state.js.map","\"use client\";\nimport { useMemo } from \"react\";\nimport { copyRawValuesOnly } from \"../html/use-props\";\nimport { buildSVGAttrs } from \"./utils/build-attrs\";\nimport { createSvgRenderState } from \"./utils/create-render-state\";\nimport { isSVGTag } from \"./utils/is-svg-tag\";\nexport function useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, isSVGTag(Component), props.transformTemplate, props.style);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n//# sourceMappingURL=use-props.js.map","export const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n//# sourceMappingURL=is-svg-tag.js.map","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nexport function isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n//# sourceMappingURL=valid-prop.js.map","import { isValidMotionProp } from \"../../../motion/utils/valid-prop\";\nlet shouldForward = (key) => !isValidMotionProp(key);\nexport function loadExternalIsValidProp(isValidProp) {\n if (typeof isValidProp !== \"function\")\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nexport function filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n//# sourceMappingURL=filter-props.js.map","/**\n * We keep these listed separately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nexport const lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n//# sourceMappingURL=lowercase-elements.js.map","import { lowercaseSVGElements } from \"../../svg/lowercase-elements\";\nexport function isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n//# sourceMappingURL=is-svg-component.js.map","\"use client\";\nimport { isMotionValue } from \"motion-dom\";\nimport { Fragment, createElement, useMemo } from \"react\";\nimport { useHTMLProps } from \"../html/use-props\";\nimport { useSVGProps } from \"../svg/use-props\";\nimport { filterProps } from \"./utils/filter-props\";\nimport { isSVGComponent } from \"./utils/is-svg-component\";\nexport function useRender(Component, props, ref, { latestValues, }, isStatic, forwardMotionProps = false, isSVG) {\n const useVisualProps = (isSVG ?? isSVGComponent(Component)) ? useSVGProps : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== Fragment ? { ...filteredProps, ...visualProps, ref } : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n}\n//# sourceMappingURL=use-render.js.map","\"use client\";\nimport { createContext } from \"react\";\n/**\n * @public\n */\nexport const PresenceContext = \n/* @__PURE__ */ createContext(null);\n//# sourceMappingURL=PresenceContext.js.map","function getValueState(visualElement) {\n const state = [{}, {}];\n visualElement?.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nexport function resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n//# sourceMappingURL=resolve-variants.js.map","import { isMotionValue } from \"motion-dom\";\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nexport function resolveMotionValue(value) {\n return isMotionValue(value) ? value.get() : value;\n}\n//# sourceMappingURL=resolve-motion-value.js.map","\"use client\";\nimport { useContext } from \"react\";\nimport { isAnimationControls } from \"../../animation/utils/is-animation-controls\";\nimport { MotionContext } from \"../../context/MotionContext\";\nimport { PresenceContext, } from \"../../context/PresenceContext\";\nimport { isControllingVariants as checkIsControllingVariants, isVariantNode as checkIsVariantNode, } from \"../../render/utils/is-controlling-variants\";\nimport { resolveVariantFromProps } from \"../../render/utils/resolve-variants\";\nimport { useConstant } from \"../../utils/use-constant\";\nimport { resolveMotionValue } from \"../../value/utils/resolve-motion-value\";\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n return state;\n}\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants = checkIsControllingVariants(props);\n const isVariantNode = checkIsVariantNode(props);\n if (context &&\n isVariantNode &&\n !isControllingVariants &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n for (let i = 0; i < list.length; i++) {\n const resolved = resolveVariantFromProps(props, list[i]);\n if (resolved) {\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd) {\n values[key] = transitionEnd[key];\n }\n }\n }\n }\n return values;\n}\nexport const makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\n//# sourceMappingURL=use-visual-state.js.map","\"use client\";\nimport { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nexport function useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n//# sourceMappingURL=use-constant.js.map","import { isMotionValue } from \"motion-dom\";\nimport { isForcedMotionValue } from \"../../../motion/utils/is-forced-motion-value\";\nexport function scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style &&\n isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props) ||\n visualElement?.getValue(key)?.liveStyle !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n//# sourceMappingURL=scrape-motion-values.js.map","\"use client\";\nimport { makeUseVisualState } from \"../../motion/utils/use-visual-state\";\nimport { createHtmlRenderState } from \"./utils/create-render-state\";\nimport { scrapeMotionValuesFromProps } from \"./utils/scrape-motion-values\";\nexport const useHTMLVisualState = /*@__PURE__*/ makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n});\n//# sourceMappingURL=use-html-visual-state.js.map","\"use client\";\nimport { makeUseVisualState } from \"../../motion/utils/use-visual-state\";\nimport { createSvgRenderState } from \"./utils/create-render-state\";\nimport { scrapeMotionValuesFromProps as scrapeSVGProps } from \"./utils/scrape-motion-values\";\nexport const useSVGVisualState = /*@__PURE__*/ makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeSVGProps,\n createRenderState: createSvgRenderState,\n});\n//# sourceMappingURL=use-svg-visual-state.js.map","import { isMotionValue, transformPropOrder } from \"motion-dom\";\nimport { scrapeMotionValuesFromProps as scrapeHTMLMotionValuesFromProps } from \"../../html/utils/scrape-motion-values\";\nexport function scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = scrapeHTMLMotionValuesFromProps(props, prevProps, visualElement);\n for (const key in props) {\n if (isMotionValue(props[key]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n//# sourceMappingURL=scrape-motion-values.js.map","export const isBrowser = typeof window !== \"undefined\";\n//# sourceMappingURL=is-browser.js.map","const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nexport const featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n//# sourceMappingURL=definitions.js.map","export const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n//# sourceMappingURL=symbol.js.map","export function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n//# sourceMappingURL=is-ref-object.js.map","\"use client\";\nimport { useCallback } from \"react\";\nimport { isRefObject } from \"../../utils/is-ref-object\";\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nexport function useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n if (instance) {\n visualState.onMount && visualState.onMount(instance);\n }\n if (visualElement) {\n if (instance) {\n visualElement.mount(instance);\n }\n else {\n visualElement.unmount();\n }\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n ;\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Include externalRef in dependencies to ensure the callback updates\n * when the ref changes, allowing proper ref forwarding.\n */\n [visualElement]);\n}\n//# sourceMappingURL=use-motion-ref.js.map","/**\n * Convert camelCase to dash-case properties.\n */\nexport const camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\n//# sourceMappingURL=camel-to-dash.js.map","import { camelToDash } from \"../../render/dom/utils/camel-to-dash\";\nexport const optimizedAppearDataId = \"framerAppearId\";\nexport const optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n//# sourceMappingURL=data-id.js.map","\"use client\";\nimport { createContext } from \"react\";\n/**\n * Internal, exported only for usage in Framer\n */\nexport const SwitchLayoutGroupContext = createContext({});\n//# sourceMappingURL=SwitchLayoutGroupContext.js.map","\"use client\";\nimport { useEffect, useLayoutEffect } from \"react\";\nimport { isBrowser } from \"./is-browser\";\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n//# sourceMappingURL=use-isomorphic-effect.js.map","\"use client\";\nimport { useContext, useEffect, useInsertionEffect, useRef } from \"react\";\nimport { optimizedAppearDataAttribute } from \"../../animation/optimized-appear/data-id\";\nimport { LazyContext } from \"../../context/LazyContext\";\nimport { MotionConfigContext } from \"../../context/MotionConfigContext\";\nimport { MotionContext } from \"../../context/MotionContext\";\nimport { PresenceContext } from \"../../context/PresenceContext\";\nimport { SwitchLayoutGroupContext, } from \"../../context/SwitchLayoutGroupContext\";\nimport { isRefObject } from \"../../utils/is-ref-object\";\nimport { useIsomorphicLayoutEffect } from \"../../utils/use-isomorphic-effect\";\nexport function useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor, isSVG) {\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef(null);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement =\n createVisualElement ||\n lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n isSVG,\n });\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (visualElement &&\n !visualElement.projection &&\n ProjectionNodeConstructor &&\n (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n const isMounted = useRef(false);\n useInsertionEffect(() => {\n /**\n * Check the component has already mounted before calling\n * `update` unnecessarily. This ensures we skip the initial update.\n */\n if (visualElement && isMounted.current) {\n visualElement.update(props, presenceContext);\n }\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const optimisedAppearId = props[optimizedAppearDataAttribute];\n const wantsHandoff = useRef(Boolean(optimisedAppearId) &&\n !window.MotionHandoffIsComplete?.(optimisedAppearId) &&\n window.MotionHasOptimisedAnimation?.(optimisedAppearId));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n isMounted.current = true;\n window.MotionIsMounted = true;\n visualElement.updateFeatures();\n visualElement.scheduleRenderMicrotask();\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n // This ensures all future calls to animateChanges() in this component will run in useEffect\n queueMicrotask(() => {\n window.MotionHandoffMarkAsComplete?.(optimisedAppearId);\n });\n wantsHandoff.current = false;\n }\n /**\n * Now we've finished triggering animations for this element we\n * can wipe the enteringChildren set for the next render.\n */\n visualElement.enteringChildren = undefined;\n });\n return visualElement;\n}\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, layoutCrossfade, } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"]\n ? undefined\n : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement,\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n crossfade: layoutCrossfade,\n layoutScroll,\n layoutRoot,\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement)\n return undefined;\n return visualElement.options.allowProjection !== false\n ? visualElement.projection\n : getClosestProjectingNode(visualElement.parent);\n}\n//# sourceMappingURL=use-visual-element.js.map","\"use client\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { invariant, warning } from \"motion-utils\";\nimport { forwardRef, useContext } from \"react\";\nimport { LayoutGroupContext } from \"../context/LayoutGroupContext\";\nimport { LazyContext } from \"../context/LazyContext\";\nimport { MotionConfigContext } from \"../context/MotionConfigContext\";\nimport { MotionContext } from \"../context/MotionContext\";\nimport { useCreateMotionContext } from \"../context/MotionContext/create\";\nimport { useRender } from \"../render/dom/use-render\";\nimport { isSVGComponent } from \"../render/dom/utils/is-svg-component\";\nimport { useHTMLVisualState } from \"../render/html/use-html-visual-state\";\nimport { useSVGVisualState } from \"../render/svg/use-svg-visual-state\";\nimport { isBrowser } from \"../utils/is-browser\";\nimport { featureDefinitions } from \"./features/definitions\";\nimport { loadFeatures } from \"./features/load-features\";\nimport { motionComponentSymbol } from \"./utils/symbol\";\nimport { useMotionRef } from \"./utils/use-motion-ref\";\nimport { useVisualElement } from \"./utils/use-visual-element\";\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nexport function createMotionComponent(Component, { forwardMotionProps = false, type } = {}, preloadedFeatures, createVisualElement) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n /**\n * Determine whether to use SVG or HTML rendering based on:\n * 1. Explicit `type` option (highest priority)\n * 2. Auto-detection via `isSVGComponent`\n */\n const isSVG = type ? type === \"svg\" : isSVGComponent(Component);\n const useVisualState = isSVG ? useSVGVisualState : useHTMLVisualState;\n function MotionDOMComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode, isSVG);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (_jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? (_jsx(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps, isSVG)] }));\n }\n MotionDOMComponent.displayName = `motion.${typeof Component === \"string\"\n ? Component\n : `create(${Component.displayName ?? Component.name ?? \"\"})`}`;\n const ForwardRefMotionComponent = forwardRef(MotionDOMComponent);\n ForwardRefMotionComponent[motionComponentSymbol] = Component;\n return ForwardRefMotionComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n const isStrict = useContext(LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict\n ? warning(false, strictMessage, \"lazy-strict-mode\")\n : invariant(false, strictMessage, \"lazy-strict-mode\");\n }\n}\nfunction getProjectionFunctionality(props) {\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout)\n return {};\n const combined = { ...drag, ...layout };\n return {\n MeasureLayout: drag?.isEnabled(props) || layout?.isEnabled(props)\n ? combined.MeasureLayout\n : undefined,\n ProjectionNode: combined.ProjectionNode,\n };\n}\n//# sourceMappingURL=index.js.map","import { createMotionComponent } from \"../../../motion\";\nexport function createMinimalMotionComponent(Component, options) {\n return createMotionComponent(Component, options);\n}\n//# sourceMappingURL=create.js.map","\"use client\";\nimport { createMinimalMotionComponent } from \"./create\";\n/**\n * HTML components\n */\nexport const MotionA = /*@__PURE__*/ createMinimalMotionComponent(\"a\");\nexport const MotionAbbr = /*@__PURE__*/ createMinimalMotionComponent(\"abbr\");\nexport const MotionAddress = \n/*@__PURE__*/ createMinimalMotionComponent(\"address\");\nexport const MotionArea = /*@__PURE__*/ createMinimalMotionComponent(\"area\");\nexport const MotionArticle = \n/*@__PURE__*/ createMinimalMotionComponent(\"article\");\nexport const MotionAside = /*@__PURE__*/ createMinimalMotionComponent(\"aside\");\nexport const MotionAudio = /*@__PURE__*/ createMinimalMotionComponent(\"audio\");\nexport const MotionB = /*@__PURE__*/ createMinimalMotionComponent(\"b\");\nexport const MotionBase = /*@__PURE__*/ createMinimalMotionComponent(\"base\");\nexport const MotionBdi = /*@__PURE__*/ createMinimalMotionComponent(\"bdi\");\nexport const MotionBdo = /*@__PURE__*/ createMinimalMotionComponent(\"bdo\");\nexport const MotionBig = /*@__PURE__*/ createMinimalMotionComponent(\"big\");\nexport const MotionBlockquote = \n/*@__PURE__*/ createMinimalMotionComponent(\"blockquote\");\nexport const MotionBody = /*@__PURE__*/ createMinimalMotionComponent(\"body\");\nexport const MotionButton = /*@__PURE__*/ createMinimalMotionComponent(\"button\");\nexport const MotionCanvas = /*@__PURE__*/ createMinimalMotionComponent(\"canvas\");\nexport const MotionCaption = \n/*@__PURE__*/ createMinimalMotionComponent(\"caption\");\nexport const MotionCite = /*@__PURE__*/ createMinimalMotionComponent(\"cite\");\nexport const MotionCode = /*@__PURE__*/ createMinimalMotionComponent(\"code\");\nexport const MotionCol = /*@__PURE__*/ createMinimalMotionComponent(\"col\");\nexport const MotionColgroup = \n/*@__PURE__*/ createMinimalMotionComponent(\"colgroup\");\nexport const MotionData = /*@__PURE__*/ createMinimalMotionComponent(\"data\");\nexport const MotionDatalist = \n/*@__PURE__*/ createMinimalMotionComponent(\"datalist\");\nexport const MotionDd = /*@__PURE__*/ createMinimalMotionComponent(\"dd\");\nexport const MotionDel = /*@__PURE__*/ createMinimalMotionComponent(\"del\");\nexport const MotionDetails = \n/*@__PURE__*/ createMinimalMotionComponent(\"details\");\nexport const MotionDfn = /*@__PURE__*/ createMinimalMotionComponent(\"dfn\");\nexport const MotionDialog = /*@__PURE__*/ createMinimalMotionComponent(\"dialog\");\nexport const MotionDiv = /*@__PURE__*/ createMinimalMotionComponent(\"div\");\nexport const MotionDl = /*@__PURE__*/ createMinimalMotionComponent(\"dl\");\nexport const MotionDt = /*@__PURE__*/ createMinimalMotionComponent(\"dt\");\nexport const MotionEm = /*@__PURE__*/ createMinimalMotionComponent(\"em\");\nexport const MotionEmbed = /*@__PURE__*/ createMinimalMotionComponent(\"embed\");\nexport const MotionFieldset = \n/*@__PURE__*/ createMinimalMotionComponent(\"fieldset\");\nexport const MotionFigcaption = \n/*@__PURE__*/ createMinimalMotionComponent(\"figcaption\");\nexport const MotionFigure = /*@__PURE__*/ createMinimalMotionComponent(\"figure\");\nexport const MotionFooter = /*@__PURE__*/ createMinimalMotionComponent(\"footer\");\nexport const MotionForm = /*@__PURE__*/ createMinimalMotionComponent(\"form\");\nexport const MotionH1 = /*@__PURE__*/ createMinimalMotionComponent(\"h1\");\nexport const MotionH2 = /*@__PURE__*/ createMinimalMotionComponent(\"h2\");\nexport const MotionH3 = /*@__PURE__*/ createMinimalMotionComponent(\"h3\");\nexport const MotionH4 = /*@__PURE__*/ createMinimalMotionComponent(\"h4\");\nexport const MotionH5 = /*@__PURE__*/ createMinimalMotionComponent(\"h5\");\nexport const MotionH6 = /*@__PURE__*/ createMinimalMotionComponent(\"h6\");\nexport const MotionHead = /*@__PURE__*/ createMinimalMotionComponent(\"head\");\nexport const MotionHeader = /*@__PURE__*/ createMinimalMotionComponent(\"header\");\nexport const MotionHgroup = /*@__PURE__*/ createMinimalMotionComponent(\"hgroup\");\nexport const MotionHr = /*@__PURE__*/ createMinimalMotionComponent(\"hr\");\nexport const MotionHtml = /*@__PURE__*/ createMinimalMotionComponent(\"html\");\nexport const MotionI = /*@__PURE__*/ createMinimalMotionComponent(\"i\");\nexport const MotionIframe = /*@__PURE__*/ createMinimalMotionComponent(\"iframe\");\nexport const MotionImg = /*@__PURE__*/ createMinimalMotionComponent(\"img\");\nexport const MotionInput = /*@__PURE__*/ createMinimalMotionComponent(\"input\");\nexport const MotionIns = /*@__PURE__*/ createMinimalMotionComponent(\"ins\");\nexport const MotionKbd = /*@__PURE__*/ createMinimalMotionComponent(\"kbd\");\nexport const MotionKeygen = /*@__PURE__*/ createMinimalMotionComponent(\"keygen\");\nexport const MotionLabel = /*@__PURE__*/ createMinimalMotionComponent(\"label\");\nexport const MotionLegend = /*@__PURE__*/ createMinimalMotionComponent(\"legend\");\nexport const MotionLi = /*@__PURE__*/ createMinimalMotionComponent(\"li\");\nexport const MotionLink = /*@__PURE__*/ createMinimalMotionComponent(\"link\");\nexport const MotionMain = /*@__PURE__*/ createMinimalMotionComponent(\"main\");\nexport const MotionMap = /*@__PURE__*/ createMinimalMotionComponent(\"map\");\nexport const MotionMark = /*@__PURE__*/ createMinimalMotionComponent(\"mark\");\nexport const MotionMenu = /*@__PURE__*/ createMinimalMotionComponent(\"menu\");\nexport const MotionMenuitem = \n/*@__PURE__*/ createMinimalMotionComponent(\"menuitem\");\nexport const MotionMeter = /*@__PURE__*/ createMinimalMotionComponent(\"meter\");\nexport const MotionNav = /*@__PURE__*/ createMinimalMotionComponent(\"nav\");\nexport const MotionObject = /*@__PURE__*/ createMinimalMotionComponent(\"object\");\nexport const MotionOl = /*@__PURE__*/ createMinimalMotionComponent(\"ol\");\nexport const MotionOptgroup = \n/*@__PURE__*/ createMinimalMotionComponent(\"optgroup\");\nexport const MotionOption = /*@__PURE__*/ createMinimalMotionComponent(\"option\");\nexport const MotionOutput = /*@__PURE__*/ createMinimalMotionComponent(\"output\");\nexport const MotionP = /*@__PURE__*/ createMinimalMotionComponent(\"p\");\nexport const MotionParam = /*@__PURE__*/ createMinimalMotionComponent(\"param\");\nexport const MotionPicture = \n/*@__PURE__*/ createMinimalMotionComponent(\"picture\");\nexport const MotionPre = /*@__PURE__*/ createMinimalMotionComponent(\"pre\");\nexport const MotionProgress = \n/*@__PURE__*/ createMinimalMotionComponent(\"progress\");\nexport const MotionQ = /*@__PURE__*/ createMinimalMotionComponent(\"q\");\nexport const MotionRp = /*@__PURE__*/ createMinimalMotionComponent(\"rp\");\nexport const MotionRt = /*@__PURE__*/ createMinimalMotionComponent(\"rt\");\nexport const MotionRuby = /*@__PURE__*/ createMinimalMotionComponent(\"ruby\");\nexport const MotionS = /*@__PURE__*/ createMinimalMotionComponent(\"s\");\nexport const MotionSamp = /*@__PURE__*/ createMinimalMotionComponent(\"samp\");\nexport const MotionScript = /*@__PURE__*/ createMinimalMotionComponent(\"script\");\nexport const MotionSection = \n/*@__PURE__*/ createMinimalMotionComponent(\"section\");\nexport const MotionSelect = /*@__PURE__*/ createMinimalMotionComponent(\"select\");\nexport const MotionSmall = /*@__PURE__*/ createMinimalMotionComponent(\"small\");\nexport const MotionSource = /*@__PURE__*/ createMinimalMotionComponent(\"source\");\nexport const MotionSpan = /*@__PURE__*/ createMinimalMotionComponent(\"span\");\nexport const MotionStrong = /*@__PURE__*/ createMinimalMotionComponent(\"strong\");\nexport const MotionStyle = /*@__PURE__*/ createMinimalMotionComponent(\"style\");\nexport const MotionSub = /*@__PURE__*/ createMinimalMotionComponent(\"sub\");\nexport const MotionSummary = \n/*@__PURE__*/ createMinimalMotionComponent(\"summary\");\nexport const MotionSup = /*@__PURE__*/ createMinimalMotionComponent(\"sup\");\nexport const MotionTable = /*@__PURE__*/ createMinimalMotionComponent(\"table\");\nexport const MotionTbody = /*@__PURE__*/ createMinimalMotionComponent(\"tbody\");\nexport const MotionTd = /*@__PURE__*/ createMinimalMotionComponent(\"td\");\nexport const MotionTextarea = \n/*@__PURE__*/ createMinimalMotionComponent(\"textarea\");\nexport const MotionTfoot = /*@__PURE__*/ createMinimalMotionComponent(\"tfoot\");\nexport const MotionTh = /*@__PURE__*/ createMinimalMotionComponent(\"th\");\nexport const MotionThead = /*@__PURE__*/ createMinimalMotionComponent(\"thead\");\nexport const MotionTime = /*@__PURE__*/ createMinimalMotionComponent(\"time\");\nexport const MotionTitle = /*@__PURE__*/ createMinimalMotionComponent(\"title\");\nexport const MotionTr = /*@__PURE__*/ createMinimalMotionComponent(\"tr\");\nexport const MotionTrack = /*@__PURE__*/ createMinimalMotionComponent(\"track\");\nexport const MotionU = /*@__PURE__*/ createMinimalMotionComponent(\"u\");\nexport const MotionUl = /*@__PURE__*/ createMinimalMotionComponent(\"ul\");\nexport const MotionVideo = /*@__PURE__*/ createMinimalMotionComponent(\"video\");\nexport const MotionWbr = /*@__PURE__*/ createMinimalMotionComponent(\"wbr\");\nexport const MotionWebview = \n/*@__PURE__*/ createMinimalMotionComponent(\"webview\");\n/**\n * SVG components\n */\nexport const MotionAnimate = \n/*@__PURE__*/ createMinimalMotionComponent(\"animate\");\nexport const MotionCircle = /*@__PURE__*/ createMinimalMotionComponent(\"circle\");\nexport const MotionDefs = /*@__PURE__*/ createMinimalMotionComponent(\"defs\");\nexport const MotionDesc = /*@__PURE__*/ createMinimalMotionComponent(\"desc\");\nexport const MotionEllipse = \n/*@__PURE__*/ createMinimalMotionComponent(\"ellipse\");\nexport const MotionG = /*@__PURE__*/ createMinimalMotionComponent(\"g\");\nexport const MotionImage = /*@__PURE__*/ createMinimalMotionComponent(\"image\");\nexport const MotionLine = /*@__PURE__*/ createMinimalMotionComponent(\"line\");\nexport const MotionFilter = /*@__PURE__*/ createMinimalMotionComponent(\"filter\");\nexport const MotionMarker = /*@__PURE__*/ createMinimalMotionComponent(\"marker\");\nexport const MotionMask = /*@__PURE__*/ createMinimalMotionComponent(\"mask\");\nexport const MotionMetadata = \n/*@__PURE__*/ createMinimalMotionComponent(\"metadata\");\nexport const MotionPath = /*@__PURE__*/ createMinimalMotionComponent(\"path\");\nexport const MotionPattern = \n/*@__PURE__*/ createMinimalMotionComponent(\"pattern\");\nexport const MotionPolygon = \n/*@__PURE__*/ createMinimalMotionComponent(\"polygon\");\nexport const MotionPolyline = \n/*@__PURE__*/ createMinimalMotionComponent(\"polyline\");\nexport const MotionRect = /*@__PURE__*/ createMinimalMotionComponent(\"rect\");\nexport const MotionStop = /*@__PURE__*/ createMinimalMotionComponent(\"stop\");\nexport const MotionSvg = /*@__PURE__*/ createMinimalMotionComponent(\"svg\");\nexport const MotionSymbol = /*@__PURE__*/ createMinimalMotionComponent(\"symbol\");\nexport const MotionText = /*@__PURE__*/ createMinimalMotionComponent(\"text\");\nexport const MotionTspan = /*@__PURE__*/ createMinimalMotionComponent(\"tspan\");\nexport const MotionUse = /*@__PURE__*/ createMinimalMotionComponent(\"use\");\nexport const MotionView = /*@__PURE__*/ createMinimalMotionComponent(\"view\");\nexport const MotionClipPath = \n/*@__PURE__*/ createMinimalMotionComponent(\"clipPath\");\nexport const MotionFeBlend = \n/*@__PURE__*/ createMinimalMotionComponent(\"feBlend\");\nexport const MotionFeColorMatrix = \n/*@__PURE__*/ createMinimalMotionComponent(\"feColorMatrix\");\nexport const MotionFeComponentTransfer = \n/*@__PURE__*/ createMinimalMotionComponent(\"feComponentTransfer\");\nexport const MotionFeComposite = \n/*@__PURE__*/ createMinimalMotionComponent(\"feComposite\");\nexport const MotionFeConvolveMatrix = \n/*@__PURE__*/ createMinimalMotionComponent(\"feConvolveMatrix\");\nexport const MotionFeDiffuseLighting = \n/*@__PURE__*/ createMinimalMotionComponent(\"feDiffuseLighting\");\nexport const MotionFeDisplacementMap = \n/*@__PURE__*/ createMinimalMotionComponent(\"feDisplacementMap\");\nexport const MotionFeDistantLight = \n/*@__PURE__*/ createMinimalMotionComponent(\"feDistantLight\");\nexport const MotionFeDropShadow = \n/*@__PURE__*/ createMinimalMotionComponent(\"feDropShadow\");\nexport const MotionFeFlood = \n/*@__PURE__*/ createMinimalMotionComponent(\"feFlood\");\nexport const MotionFeFuncA = \n/*@__PURE__*/ createMinimalMotionComponent(\"feFuncA\");\nexport const MotionFeFuncB = \n/*@__PURE__*/ createMinimalMotionComponent(\"feFuncB\");\nexport const MotionFeFuncG = \n/*@__PURE__*/ createMinimalMotionComponent(\"feFuncG\");\nexport const MotionFeFuncR = \n/*@__PURE__*/ createMinimalMotionComponent(\"feFuncR\");\nexport const MotionFeGaussianBlur = \n/*@__PURE__*/ createMinimalMotionComponent(\"feGaussianBlur\");\nexport const MotionFeImage = \n/*@__PURE__*/ createMinimalMotionComponent(\"feImage\");\nexport const MotionFeMerge = \n/*@__PURE__*/ createMinimalMotionComponent(\"feMerge\");\nexport const MotionFeMergeNode = \n/*@__PURE__*/ createMinimalMotionComponent(\"feMergeNode\");\nexport const MotionFeMorphology = \n/*@__PURE__*/ createMinimalMotionComponent(\"feMorphology\");\nexport const MotionFeOffset = \n/*@__PURE__*/ createMinimalMotionComponent(\"feOffset\");\nexport const MotionFePointLight = \n/*@__PURE__*/ createMinimalMotionComponent(\"fePointLight\");\nexport const MotionFeSpecularLighting = \n/*@__PURE__*/ createMinimalMotionComponent(\"feSpecularLighting\");\nexport const MotionFeSpotLight = \n/*@__PURE__*/ createMinimalMotionComponent(\"feSpotLight\");\nexport const MotionFeTile = /*@__PURE__*/ createMinimalMotionComponent(\"feTile\");\nexport const MotionFeTurbulence = \n/*@__PURE__*/ createMinimalMotionComponent(\"feTurbulence\");\nexport const MotionForeignObject = \n/*@__PURE__*/ createMinimalMotionComponent(\"foreignObject\");\nexport const MotionLinearGradient = \n/*@__PURE__*/ createMinimalMotionComponent(\"linearGradient\");\nexport const MotionRadialGradient = \n/*@__PURE__*/ createMinimalMotionComponent(\"radialGradient\");\nexport const MotionTextPath = \n/*@__PURE__*/ createMinimalMotionComponent(\"textPath\");\n//# sourceMappingURL=elements.js.map","import { m } from \"./\";\nexport const MotionDiv = m.div;\n//# sourceMappingURL=size.js.map"],"names":["clamp","min","max","v","LayoutGroupContext","createContext","LazyContext","strict","MotionConfigContext","transformPagePoint","p","isStatic","reducedMotion","MotionContext","isAnimationControls","start","isVariantLabel","Array","isArray","variantProps","isControllingVariants","props","animate","some","name","useCreateMotionContext","initial","context","undefined","inherit","getCurrentTreeVariants","useContext","useMemo","variantLabelsAsDependency","prop","join","isCSSVariableName","token","key","startsWith","checkStringStartsWith","number","test","parse","parseFloat","transform","alpha","scale","default","sanitize","Math","round","floatRegex","singleColorRegex","isColorString","type","testProp","Boolean","isNullish","Object","prototype","hasOwnProperty","call","splitColor","aName","bName","cName","a","b","c","match","rgbUnit","clampRgbUnit","rgba","red","green","blue","alpha$1","hex","r","g","length","substring","parseInt","createUnitType","unit","endsWith","split","degrees","percent","px","progressPercentage","hsla","hue","saturation","lightness","color","getAnimatableNone","parsed","colorRegex","NUMBER_TOKEN","COLOR_TOKEN","complexRegex","analyseComplexValue","value","originalValue","toString","values","indexes","var","types","i","replace","parsedValue","push","parseComplexValue","createTransformer","source","numSections","output","convertNumbersToZero","complex","isNaN","transformer","map","transformPropOrder","transformProps","Set","int","numberValueTypes","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","width","maxWidth","height","maxHeight","top","right","bottom","left","inset","insetBlock","insetBlockStart","insetBlockEnd","insetInline","insetInlineStart","insetInlineEnd","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingBlock","paddingBlockStart","paddingBlockEnd","paddingInline","paddingInlineStart","paddingInlineEnd","margin","marginTop","marginRight","marginBottom","marginLeft","marginBlock","marginBlockStart","marginBlockEnd","marginInline","marginInlineStart","marginInlineEnd","backgroundPositionX","backgroundPositionY","rotate","rotateX","rotateY","rotateZ","scaleX","scaleY","scaleZ","skew","skewX","skewY","distance","translateX","translateY","translateZ","x","y","z","perspective","transformPerspective","opacity","originX","originY","originZ","zIndex","fillOpacity","strokeOpacity","numOctaves","getValueAsType","isMotionValue","getVelocity","pixelsToPercent","pixels","axis","correctBorderRadius","correct","latest","node","target","correctBoxShadow","treeScale","projectionDelta","original","shadow","template","offset","xScale","yScale","averageScale","from","scaleCorrectors","applyTo","boxShadow","isForcedMotionValue","layout","layoutId","has","translateAlias","numTransforms","buildHTMLStyles","state","latestValues","transformTemplate","style","vars","transformOrigin","hasTransform","hasTransformOrigin","valueAsType","transformString","transformIsDefault","valueIsDefault","trim","buildTransform","createHtmlRenderState","copyRawValuesOnly","useStyle","visualState","assign","useInitialMotionValues","useHTMLProps","htmlProps","drag","dragListener","draggable","userSelect","WebkitUserSelect","WebkitTouchCallout","touchAction","tabIndex","onTap","onTapStart","whileTap","dashKeys","array","camelKeys","cssMotionPathProperties","buildSVGAttrs","attrX","attrY","attrScale","pathLength","pathSpacing","pathOffset","isSVGTag","styleProp","viewBox","attrs","transformBox","spacing","useDashCase","keys","buildSVGPath","createSvgRenderState","useSVGProps","_isStatic","Component","visualProps","tag","toLowerCase","rawStyles","validMotionProps","isValidMotionProp","shouldForward","isValidProp","require","lowercaseSVGElements","isSVGComponent","includes","indexOf","useRender","ref","forwardMotionProps","isSVG","filteredProps","isDom","filterProps","elementProps","Fragment","children","renderedChildren","get","createElement","PresenceContext","resolveVariantFromProps","definition","custom","visualElement","current","velocity","variants","resolveMotionValue","makeLatestValues","presenceContext","scrapeMotionValues","motionValues","checkIsControllingVariants","isVariantNode","checkIsVariantNode","isInitialAnimationBlocked","variantToSet","list","resolved","transitionEnd","transition","valueTarget","makeUseVisualState","config","make","scrapeMotionValuesFromProps","createRenderState","renderState","makeState","init","useRef","useConstant","prevProps","newValues","getValue","liveStyle","useHTMLVisualState","useSVGVisualState","scrapeHTMLMotionValuesFromProps","charAt","toUpperCase","isBrowser","window","featureProps","animation","exit","focus","hover","tap","pan","inView","featureDefinitions","isEnabled","motionComponentSymbol","Symbol","for","isRefObject","useMotionRef","externalRef","useCallback","instance","onMount","mount","unmount","optimizedAppearDataAttribute","SwitchLayoutGroupContext","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","useVisualElement","createVisualElement","ProjectionNodeConstructor","parent","lazyContext","reducedMotionConfig","visualElementRef","renderer","blockInitialAnimation","initialLayoutGroupConfig","projection","initialPromotionConfig","dragConstraints","layoutScroll","layoutRoot","layoutCrossfade","getClosestProjectingNode","setOptions","alwaysMeasureLayout","animationType","crossfade","createProjectionNode","isMounted","useInsertionEffect","update","optimisedAppearId","wantsHandoff","MotionHandoffIsComplete","MotionHasOptimisedAnimation","MotionIsMounted","updateFeatures","scheduleRenderMicrotask","animationState","animateChanges","queueMicrotask","MotionHandoffMarkAsComplete","enteringChildren","options","allowProjection","createMotionComponent","preloadedFeatures","useVisualState","MotionDOMComponent","MeasureLayout","configAndProps","useLayoutId","layoutProjection","combined","ProjectionNode","getProjectionFunctionality","_jsxs","Provider","_jsx","displayName","ForwardRefMotionComponent","forwardRef","layoutGroupId","id","createMinimalMotionComponent","MotionDiv"],"mappings":"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"}
|