{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/uq77BI0I3NhbmzCyF7LZ/QtKtYzUibI8stY0Aux6z/Counter.js"],
  "sourcesContent": ["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useRef } from \"react\";\nimport { useInView, useMotionValue, useSpring } from \"framer-motion\";\nimport { addPropertyControls, ControlType } from \"framer\";\nfunction Counter({\n  value,\n  direction,\n  style\n}) {\n  const ref = useRef(null);\n  const motionValue = useMotionValue(direction === \"down\" ? value : 0);\n  const springValue = useSpring(motionValue, {\n    damping: 10,\n    stiffness: 100\n  });\n  const isInView = useInView(ref, {\n    once: true,\n    margin: \"-100px\"\n  });\n  useEffect(() => {\n    if (isInView) {\n      motionValue.set(direction === \"down\" ? 0 : value);\n    }\n  }, [motionValue, isInView]);\n  useEffect(() => springValue.on(\"change\", latest => {\n    if (ref.current) {\n      ref.current.textContent = Intl.NumberFormat(\"en-US\").format(latest.toFixed(0));\n    }\n  }), [springValue]);\n  return /*#__PURE__*/_jsx(\"span\", {\n    ref: ref,\n    style: style\n  });\n}\nexport default function CounterComponent({\n  value,\n  direction,\n  font\n}) {\n  return /*#__PURE__*/_jsx(Counter, {\n    value: value,\n    direction: direction,\n    style: {\n      fontSize: font.size,\n      fontWeight: font.weight,\n      color: font.color,\n      fontFamily: `'${font.fontFace}'`\n    }\n  });\n}\n;\naddPropertyControls(CounterComponent, {\n  value: {\n    type: ControlType.Number,\n    defaultValue: 100\n  },\n  direction: {\n    type: ControlType.Enum,\n    options: [\"down\", \"up\"],\n    optionTitles: [\"Down\", \"Up\"],\n    defaultValue: \"up\"\n  },\n  font: {\n    type: ControlType.Object,\n    controls: {\n      fontFace: {\n        type: ControlType.String,\n        defaultValue: \"Poppins\"\n      },\n      size: {\n        type: ControlType.Number,\n        defaultValue: 80\n      },\n      color: {\n        type: ControlType.Color,\n        defaultValue: \"#191919\"\n      },\n      weight: {\n        type: ControlType.Enum,\n        defaultValue: \"Medium\",\n        options: [\"normal\", \"bold\", \"Medium\", \"lighter\"]\n      }\n    }\n  }\n});\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"default\": {\n      \"type\": \"reactComponent\",\n      \"name\": \"CounterComponent\",\n      \"slots\": [],\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./Counter.map"],
  "mappings": "6HAIA,SAASA,EAAQ,CACf,MAAAC,EACA,UAAAC,EACA,MAAAC,CACF,EAAG,CACD,IAAMC,EAAMC,EAAO,IAAI,EACjBC,EAAcC,EAAeL,IAAc,OAASD,EAAQ,CAAC,EAC7DO,EAAcC,EAAUH,EAAa,CACzC,QAAS,GACT,UAAW,GACb,CAAC,EACKI,EAAWC,EAAUP,EAAK,CAC9B,KAAM,GACN,OAAQ,QACV,CAAC,EACD,OAAAQ,EAAU,IAAM,CACVF,GACFJ,EAAY,IAAIJ,IAAc,OAAS,EAAID,CAAK,CAEpD,EAAG,CAACK,EAAaI,CAAQ,CAAC,EAC1BE,EAAU,IAAMJ,EAAY,GAAG,SAAUK,GAAU,CAC7CT,EAAI,UACNA,EAAI,QAAQ,YAAc,KAAK,aAAa,OAAO,EAAE,OAAOS,EAAO,QAAQ,CAAC,CAAC,EAEjF,CAAC,EAAG,CAACL,CAAW,CAAC,EACGM,EAAK,OAAQ,CAC/B,IAAKV,EACL,MAAOD,CACT,CAAC,CACH,CACe,SAARY,EAAkC,CACvC,MAAAd,EACA,UAAAC,EACA,KAAAc,CACF,EAAG,CACD,OAAoBF,EAAKd,EAAS,CAChC,MAAOC,EACP,UAAWC,EACX,MAAO,CACL,SAAUc,EAAK,KACf,WAAYA,EAAK,OACjB,MAAOA,EAAK,MACZ,WAAY,IAAIA,EAAK,WACvB,CACF,CAAC,CACH,CAEAC,EAAoBF,EAAkB,CACpC,MAAO,CACL,KAAMG,EAAY,OAClB,aAAc,GAChB,EACA,UAAW,CACT,KAAMA,EAAY,KAClB,QAAS,CAAC,OAAQ,IAAI,EACtB,aAAc,CAAC,OAAQ,IAAI,EAC3B,aAAc,IAChB,EACA,KAAM,CACJ,KAAMA,EAAY,OAClB,SAAU,CACR,SAAU,CACR,KAAMA,EAAY,OAClB,aAAc,SAChB,EACA,KAAM,CACJ,KAAMA,EAAY,OAClB,aAAc,EAChB,EACA,MAAO,CACL,KAAMA,EAAY,MAClB,aAAc,SAChB,EACA,OAAQ,CACN,KAAMA,EAAY,KAClB,aAAc,SACd,QAAS,CAAC,SAAU,OAAQ,SAAU,SAAS,CACjD,CACF,CACF,CACF,CAAC",
  "names": ["Counter", "value", "direction", "style", "ref", "pe", "motionValue", "useMotionValue", "springValue", "useSpring", "isInView", "useInView", "ue", "latest", "p", "CounterComponent", "font", "addPropertyControls", "ControlType"]
}
