{"ast":null,"code":"import { createScrollUpdater, createScrollMotionValues } from './utils.js';\nimport { addDomEvent } from '../../events/use-dom-event.js';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.js';\nvar viewportScrollValues;\nfunction getViewportScrollOffsets() {\n  return {\n    xOffset: window.pageXOffset,\n    yOffset: window.pageYOffset,\n    xMaxOffset: document.body.clientWidth - window.innerWidth,\n    yMaxOffset: document.body.clientHeight - window.innerHeight\n  };\n}\nvar hasListeners = false;\nfunction addEventListeners() {\n  hasListeners = true;\n  if (typeof window === \"undefined\") return;\n  var updateScrollValues = createScrollUpdater(viewportScrollValues, getViewportScrollOffsets);\n  addDomEvent(window, \"scroll\", updateScrollValues, {\n    passive: true\n  });\n  addDomEvent(window, \"resize\", updateScrollValues);\n}\n/**\n * Returns MotionValues that update when the viewport scrolls:\n *\n * - `scrollX` — Horizontal scroll distance in pixels.\n * - `scrollY` — Vertical scroll distance in pixels.\n * - `scrollXProgress` — Horizontal scroll progress between `0` and `1`.\n * - `scrollYProgress` — Vertical scroll progress between `0` and `1`.\n *\n * **Warning:** Setting `body` or `html` to `height: 100%` or similar will break the `Progress`\n * values as this breaks the browser's capability to accurately measure the page length.\n *\n * @library\n *\n * ```jsx\n * import * as React from \"react\"\n * import {\n *   Frame,\n *   useViewportScroll,\n *   useTransform\n * } from \"framer\"\n *\n * export function MyComponent() {\n *   const { scrollYProgress } = useViewportScroll()\n *   return <Frame scaleX={scrollYProgress} />\n * }\n * ```\n *\n * @motion\n *\n * ```jsx\n * export const MyComponent = () => {\n *   const { scrollYProgress } = useViewportScroll()\n *   return <motion.div style={{ scaleX: scrollYProgress }} />\n * }\n * ```\n *\n * @public\n */\nfunction useViewportScroll() {\n  /**\n   * Lazy-initialise the viewport scroll values\n   */\n  if (!viewportScrollValues) {\n    viewportScrollValues = createScrollMotionValues();\n  }\n  useIsomorphicLayoutEffect(function () {\n    !hasListeners && addEventListeners();\n  }, []);\n  return viewportScrollValues;\n}\nexport { useViewportScroll };","map":{"version":3,"names":["createScrollUpdater","createScrollMotionValues","addDomEvent","useIsomorphicLayoutEffect","viewportScrollValues","getViewportScrollOffsets","xOffset","window","pageXOffset","yOffset","pageYOffset","xMaxOffset","document","body","clientWidth","innerWidth","yMaxOffset","clientHeight","innerHeight","hasListeners","addEventListeners","updateScrollValues","passive","useViewportScroll"],"sources":["C:/LDT/DSP_Management/node_modules/framer-motion/dist/es/value/scroll/use-viewport-scroll.js"],"sourcesContent":["import { createScrollUpdater, createScrollMotionValues } from './utils.js';\nimport { addDomEvent } from '../../events/use-dom-event.js';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.js';\n\nvar viewportScrollValues;\nfunction getViewportScrollOffsets() {\n    return {\n        xOffset: window.pageXOffset,\n        yOffset: window.pageYOffset,\n        xMaxOffset: document.body.clientWidth - window.innerWidth,\n        yMaxOffset: document.body.clientHeight - window.innerHeight,\n    };\n}\nvar hasListeners = false;\nfunction addEventListeners() {\n    hasListeners = true;\n    if (typeof window === \"undefined\")\n        return;\n    var updateScrollValues = createScrollUpdater(viewportScrollValues, getViewportScrollOffsets);\n    addDomEvent(window, \"scroll\", updateScrollValues, { passive: true });\n    addDomEvent(window, \"resize\", updateScrollValues);\n}\n/**\n * Returns MotionValues that update when the viewport scrolls:\n *\n * - `scrollX` — Horizontal scroll distance in pixels.\n * - `scrollY` — Vertical scroll distance in pixels.\n * - `scrollXProgress` — Horizontal scroll progress between `0` and `1`.\n * - `scrollYProgress` — Vertical scroll progress between `0` and `1`.\n *\n * **Warning:** Setting `body` or `html` to `height: 100%` or similar will break the `Progress`\n * values as this breaks the browser's capability to accurately measure the page length.\n *\n * @library\n *\n * ```jsx\n * import * as React from \"react\"\n * import {\n *   Frame,\n *   useViewportScroll,\n *   useTransform\n * } from \"framer\"\n *\n * export function MyComponent() {\n *   const { scrollYProgress } = useViewportScroll()\n *   return <Frame scaleX={scrollYProgress} />\n * }\n * ```\n *\n * @motion\n *\n * ```jsx\n * export const MyComponent = () => {\n *   const { scrollYProgress } = useViewportScroll()\n *   return <motion.div style={{ scaleX: scrollYProgress }} />\n * }\n * ```\n *\n * @public\n */\nfunction useViewportScroll() {\n    /**\n     * Lazy-initialise the viewport scroll values\n     */\n    if (!viewportScrollValues) {\n        viewportScrollValues = createScrollMotionValues();\n    }\n    useIsomorphicLayoutEffect(function () {\n        !hasListeners && addEventListeners();\n    }, []);\n    return viewportScrollValues;\n}\n\nexport { useViewportScroll };\n"],"mappings":"AAAA,SAASA,mBAAmB,EAAEC,wBAAwB,QAAQ,YAAY;AAC1E,SAASC,WAAW,QAAQ,+BAA+B;AAC3D,SAASC,yBAAyB,QAAQ,sCAAsC;AAEhF,IAAIC,oBAAoB;AACxB,SAASC,wBAAwBA,CAAA,EAAG;EAChC,OAAO;IACHC,OAAO,EAAEC,MAAM,CAACC,WAAW;IAC3BC,OAAO,EAAEF,MAAM,CAACG,WAAW;IAC3BC,UAAU,EAAEC,QAAQ,CAACC,IAAI,CAACC,WAAW,GAAGP,MAAM,CAACQ,UAAU;IACzDC,UAAU,EAAEJ,QAAQ,CAACC,IAAI,CAACI,YAAY,GAAGV,MAAM,CAACW;EACpD,CAAC;AACL;AACA,IAAIC,YAAY,GAAG,KAAK;AACxB,SAASC,iBAAiBA,CAAA,EAAG;EACzBD,YAAY,GAAG,IAAI;EACnB,IAAI,OAAOZ,MAAM,KAAK,WAAW,EAC7B;EACJ,IAAIc,kBAAkB,GAAGrB,mBAAmB,CAACI,oBAAoB,EAAEC,wBAAwB,CAAC;EAC5FH,WAAW,CAACK,MAAM,EAAE,QAAQ,EAAEc,kBAAkB,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAC,CAAC;EACpEpB,WAAW,CAACK,MAAM,EAAE,QAAQ,EAAEc,kBAAkB,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,iBAAiBA,CAAA,EAAG;EACzB;AACJ;AACA;EACI,IAAI,CAACnB,oBAAoB,EAAE;IACvBA,oBAAoB,GAAGH,wBAAwB,CAAC,CAAC;EACrD;EACAE,yBAAyB,CAAC,YAAY;IAClC,CAACgB,YAAY,IAAIC,iBAAiB,CAAC,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EACN,OAAOhB,oBAAoB;AAC/B;AAEA,SAASmB,iBAAiB","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}