{"_id":"@d0paminedriven/motion","_rev":"8-b1801182cfb70c7bacf7b8b4dbfbc0b4","name":"@d0paminedriven/motion","dist-tags":{"latest":"3.0.0"},"versions":{"0.1.0":{"name":"@d0paminedriven/motion","version":"0.1.0","license":"MIT","_id":"@d0paminedriven/motion@0.1.0","maintainers":[{"name":"d0paminedriven","email":"andrew@windycitydevs.io"}],"dist":{"shasum":"bcd61ca980fd59d525ba59009c8c375f6178d662","tarball":"https://registry.npmjs.org/@d0paminedriven/motion/-/motion-0.1.0.tgz","fileCount":31,"integrity":"sha512-5AgCjgJUvbepD99FO200hjXsg4wHCBppOzVzeak72jJDn6BD3HVmqACtR5hJeK8fGYJKEO0nT7X8t8HZeoXfjw==","signatures":[{"sig":"MEUCIEtz3V/8mqjSojXAT7FrS5zpYmY4VZIlQgDwcPNnYq4xAiEAutQPBpfZayJMdXlBhKDHlFpBME8MvZg25BZdUj/dmbc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72179},"type":"module","_from":"file:d0paminedriven-motion-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","source":"src/index.ts","exports":{".":"./dist/index.js","./*":"./dist/*.js","./types":"./dist/types/*.js","./ui/scatter-text":"./dist/ui/scatter-text.js","./hooks/use-resize-observer":"./dist/hooks/use-resize-observer.js"},"scripts":{"dev":"pnpm build","lint":"eslint","build":"tsup","clean":"git clean -xdf dist node_modules","types":"tsc --emitDeclarationOnly","prebuild":"rm -rf dist"},"_npmUser":{"name":"d0paminedriven","email":"andrew@windycitydevs.io"},"prettier":"@portfolio/prettier-config","_resolved":"/tmp/71f0cca07983b83cc05e6e4e0e1a9689/d0paminedriven-motion-0.1.0.tgz","_integrity":"sha512-5AgCjgJUvbepD99FO200hjXsg4wHCBppOzVzeak72jJDn6BD3HVmqACtR5hJeK8fGYJKEO0nT7X8t8HZeoXfjw==","_npmVersion":"11.2.0","description":"a text-animation-based react library built on motion","directories":{},"sideEffects":true,"_nodeVersion":"22.14.0","dependencies":{"@swc/helpers":"^0.5.15"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/*.d.ts","dist/*/index.d.ts"],"ui":["dist/ui/scatter-text.d.ts"],"hooks":["dist/hooks/use-resize-observer.d.ts"],"types":["dist/types/helpers.d.ts","dist/types/scatter-text.d.ts","dist/types/split-text.d.ts","dist/types/wave-text.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","clsx":"^2.1.1","jiti":"^2.4.2","tsup":"latest","react":"^19.0.0","tslib":"latest","eslint":"latest","motion":"^12.5.0","terser":"^5.39.0","postcss":"^8.5.3","chokidar":"^4.0.3","prettier":"latest","@swc/core":"^1.11.9","react-dom":"^19.0.0","typescript":"latest","@types/node":"^22.13.10","motion-plus":"^0.1.5","@types/react":"^19.0.10","autoprefixer":"^10.4.21","lodash.throttle":"^4.1.1","@types/react-dom":"^19.0.4","motion-plus-react":"^0.1.5","@portfolio/tsconfig":"0.1.0","@types/lodash.throttle":"^4.1.9","@microsoft/api-extractor":"^7.52.1","@portfolio/eslint-config":"1.0.0","@portfolio/prettier-config":"0.1.0"},"peerDependencies":{"react":">=19","motion":"^12.5.0","react-dom":">=19","motion-plus":"^0.1.5","motion-plus-react":"^0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/motion_0.1.0_1742196869891_0.7144578126133745","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@d0paminedriven/motion","version":"1.0.0","license":"MIT","_id":"@d0paminedriven/motion@1.0.0","maintainers":[{"name":"d0paminedriven","email":"andrew@windycitydevs.io"}],"dist":{"shasum":"56d20f1e9b6b1544f28b346aad72282cdbbf6089","tarball":"https://registry.npmjs.org/@d0paminedriven/motion/-/motion-1.0.0.tgz","fileCount":31,"integrity":"sha512-H2zB8qCJOAuuTa67I7WQsESh+y1nU5cpapw+zwM/pvmdO5bqE8T6FQkgSayyohqi//ZZ64yWJ/HKr2otN1bVVQ==","signatures":[{"sig":"MEUCIE+tJawDDiYMck5icspcr2/e3bqp4R5vY4iIB4V16j/mAiEAqqkBLVq9ORJ5NJ40tN7w3+DbinHGDa198+FNNkUsvfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52649},"type":"module","_from":"file:d0paminedriven-motion-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","source":"src/index.ts","exports":{".":"./dist/index.js","./*":"./dist/*.js","./types":"./dist/types/*.js","./ui/scatter-text":"./dist/ui/scatter-text.js","./hooks/use-resize-observer":"./dist/hooks/use-resize-observer.js"},"scripts":{"dev":"pnpm build","lint":"eslint","build":"tsup","clean":"git clean -xdf dist node_modules","types":"tsc --emitDeclarationOnly","prebuild":"rm -rf dist","postbuild":"tsx src/services/postbuild.ts flag-check"},"_npmUser":{"name":"d0paminedriven","email":"andrew@windycitydevs.io"},"prettier":"@portfolio/prettier-config","_resolved":"/tmp/952bd097d4970e232fd0ac06566e9c91/d0paminedriven-motion-1.0.0.tgz","_integrity":"sha512-H2zB8qCJOAuuTa67I7WQsESh+y1nU5cpapw+zwM/pvmdO5bqE8T6FQkgSayyohqi//ZZ64yWJ/HKr2otN1bVVQ==","_npmVersion":"11.2.0","description":"a text-animation-based react library built on motion","directories":{},"sideEffects":true,"_nodeVersion":"22.14.0","dependencies":{"@swc/helpers":"^0.5.15","lodash.throttle":"^4.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/*.d.ts","dist/*/index.d.ts"],"ui":["dist/ui/scatter-text.d.ts"],"hooks":["dist/hooks/use-resize-observer.d.ts"],"types":["dist/types/helpers.d.ts","dist/types/scatter-text.d.ts","dist/types/split-text.d.ts","dist/types/wave-text.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","clsx":"^2.1.1","jiti":"^2.4.2","tsup":"latest","react":"^19.0.0","tslib":"latest","eslint":"latest","motion":"^12.5.0","terser":"^5.39.0","postcss":"^8.5.3","chokidar":"^4.0.3","prettier":"latest","@swc/core":"^1.11.9","react-dom":"^19.0.0","typescript":"latest","@types/node":"^22.13.10","motion-plus":"^0.1.5","@types/react":"^19.0.10","autoprefixer":"^10.4.21","@types/react-dom":"^19.0.4","motion-plus-react":"^0.1.5","@d0paminedriven/fs":"^0.2.0","@portfolio/tsconfig":"0.1.0","@types/lodash.throttle":"^4.1.9","@microsoft/api-extractor":"^7.52.1","@portfolio/eslint-config":"1.0.0","@portfolio/prettier-config":"0.1.0"},"peerDependencies":{"react":">=19","motion":"^12.5.0","react-dom":">=19","motion-plus":"^0.1.5","motion-plus-react":"^0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/motion_1.0.0_1742238319729_0.21223931256630157","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@d0paminedriven/motion","version":"1.1.0","license":"MIT","_id":"@d0paminedriven/motion@1.1.0","maintainers":[{"name":"d0paminedriven","email":"andrew@windycitydevs.io"}],"dist":{"shasum":"cee2a56a904f98243f62a6e0509086fc00c6175c","tarball":"https://registry.npmjs.org/@d0paminedriven/motion/-/motion-1.1.0.tgz","fileCount":50,"integrity":"sha512-VjgxziWw0IqByw8gpSOaC6SPyA+xwEsDJD9B4xhNHJu0jPfub8x8Nn47U9UWkcr5OokBDDvWaHpowtMDoVGxWQ==","signatures":[{"sig":"MEUCIFZIQq/lVKz97d2M+zJwIf3dgRXtAMkRXHlI7bxnGeM0AiEA6Gm1ORSmti6UNeCl86OfJuKC3bN/dlYKbDzWbQze9Wc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104506},"type":"module","_from":"file:d0paminedriven-motion-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","source":"src/index.ts","exports":{".":"./dist/index.js","./*":"./dist/*.js","./types/*":"./dist/types/*.js","./ui/gentle-text":"./dist/ui/gentle-text.js","./ui/scatter-text":"./dist/ui/scatter-text.js","./hooks/use-resize-observer":"./dist/hooks/use-resize-observer.js","./hooks/use-gentle-text-effect":"./dist/hooks/use-gentle-text-effect.js"},"scripts":{"dev":"pnpm build","lint":"eslint","build":"tsup","clean":"git clean -xdf dist node_modules","types":"tsc --emitDeclarationOnly","prebuild":"rm -rf dist","postbuild":"tsx src/services/postbuild.ts flag-check"},"_npmUser":{"name":"d0paminedriven","email":"andrew@windycitydevs.io"},"prettier":"@portfolio/prettier-config","_resolved":"/tmp/768a4477ff1de1e86c85b439a5551002/d0paminedriven-motion-1.1.0.tgz","_integrity":"sha512-VjgxziWw0IqByw8gpSOaC6SPyA+xwEsDJD9B4xhNHJu0jPfub8x8Nn47U9UWkcr5OokBDDvWaHpowtMDoVGxWQ==","_npmVersion":"11.2.0","description":"a text-animation-based react library built on motion","directories":{},"sideEffects":true,"_nodeVersion":"22.14.0","dependencies":{"@swc/helpers":"^0.5.15","lodash.throttle":"^4.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/*.d.ts","dist/*.d.cts","dist/*/index.d.ts"],"ui":["dist/ui/gentle-text.d.ts","dist/ui/scatter-text.d.ts"],"hooks":["dist/hooks/use-gentle-text-effect.d.ts","dist/hooks/use-resize-observer.d.ts"],"types":["dist/types/gentle-text.d.ts","dist/types/helpers.d.ts","dist/types/hooks.d.ts","dist/types/scatter-text.d.ts","dist/types/split-text.d.ts","dist/types/wave-text.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","clsx":"^2.1.1","jiti":"^2.4.2","tsup":"latest","react":"^19.0.0","tslib":"latest","eslint":"latest","motion":"^12.5.0","terser":"^5.39.0","postcss":"^8.5.3","chokidar":"^4.0.3","prettier":"latest","@swc/core":"^1.11.11","react-dom":"^19.0.0","typescript":"latest","@types/node":"^22.13.10","motion-plus":"^0.1.6","@types/react":"^19.0.12","autoprefixer":"^10.4.21","@types/react-dom":"^19.0.4","motion-plus-react":"^0.1.5","@d0paminedriven/fs":"^0.2.0","@portfolio/tsconfig":"0.1.0","@types/lodash.throttle":"^4.1.9","@microsoft/api-extractor":"^7.52.1","@portfolio/eslint-config":"1.0.0","@portfolio/prettier-config":"0.1.0"},"peerDependencies":{"react":">=19","motion":"^12.5.0","react-dom":">=19","motion-plus":"^0.1.6","motion-plus-react":"^0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/motion_1.1.0_1742504004568_0.40798396999577835","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@d0paminedriven/motion","version":"1.2.0","license":"MIT","_id":"@d0paminedriven/motion@1.2.0","maintainers":[{"name":"d0paminedriven","email":"andrew@windycitydevs.io"}],"dist":{"shasum":"d44677cd1e0973ebc92a8cfa19ee86a6c0004f57","tarball":"https://registry.npmjs.org/@d0paminedriven/motion/-/motion-1.2.0.tgz","fileCount":50,"integrity":"sha512-V/jSWnRXQRwACvx+dXt9n7Iu5XKLPqbWHhsno/AOcSIJ6sIQ9s8EvO3wVFaNvCd1mT34OShw3f67sylc5kuAbg==","signatures":[{"sig":"MEQCIAKfeYVMAPcMKseN4y/OjwdnO7vN3VGlZTfGoYw5/T/TAiAHUjK+gmwOXP2ple1p+szguTBgIaB9Td19plMSlLmWCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104540},"type":"module","_from":"file:d0paminedriven-motion-1.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","source":"src/index.ts","exports":{".":"./dist/index.js","./*":"./dist/*.js","./types/*":"./dist/types/*.js","./ui/gentle-text":"./dist/ui/gentle-text.js","./ui/scatter-text":"./dist/ui/scatter-text.js","./hooks/use-resize-observer":"./dist/hooks/use-resize-observer.js","./hooks/use-gentle-text-effect":"./dist/hooks/use-gentle-text-effect.js"},"scripts":{"dev":"pnpm build","lint":"eslint","build":"tsup","clean":"git clean -xdf dist node_modules","types":"tsc --emitDeclarationOnly","prebuild":"rm -rf dist","postbuild":"tsx src/services/postbuild.ts flag-check"},"_npmUser":{"name":"d0paminedriven","email":"andrew@windycitydevs.io"},"prettier":"@portfolio/prettier-config","_resolved":"/tmp/5c2e49cc19971e38f60a4e5cba817364/d0paminedriven-motion-1.2.0.tgz","_integrity":"sha512-V/jSWnRXQRwACvx+dXt9n7Iu5XKLPqbWHhsno/AOcSIJ6sIQ9s8EvO3wVFaNvCd1mT34OShw3f67sylc5kuAbg==","_npmVersion":"11.2.0","description":"a text-animation-based react library built on motion","directories":{},"sideEffects":true,"_nodeVersion":"22.14.0","dependencies":{"@swc/helpers":"^0.5.15","lodash.throttle":"^4.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/*.d.ts","dist/*.d.cts","dist/*/index.d.ts"],"ui":["dist/ui/gentle-text.d.ts","dist/ui/scatter-text.d.ts"],"hooks":["dist/hooks/use-gentle-text-effect.d.ts","dist/hooks/use-resize-observer.d.ts"],"types":["dist/types/gentle-text.d.ts","dist/types/helpers.d.ts","dist/types/hooks.d.ts","dist/types/scatter-text.d.ts","dist/types/split-text.d.ts","dist/types/wave-text.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","clsx":"^2.1.1","jiti":"^2.4.2","tsup":"latest","react":"^19.0.0","tslib":"latest","eslint":"latest","motion":"^12.5.0","terser":"^5.39.0","postcss":"^8.5.3","chokidar":"^4.0.3","prettier":"latest","@swc/core":"^1.11.11","react-dom":"^19.0.0","typescript":"latest","@types/node":"^22.13.10","motion-plus":"^0.1.6","@types/react":"^19.0.12","autoprefixer":"^10.4.21","@types/react-dom":"^19.0.4","motion-plus-react":"^0.1.5","@d0paminedriven/fs":"^0.2.0","@portfolio/tsconfig":"0.1.0","@types/lodash.throttle":"^4.1.9","@microsoft/api-extractor":"^7.52.1","@portfolio/eslint-config":"1.0.0","@portfolio/prettier-config":"0.1.0"},"peerDependencies":{"react":">=19","motion":"^12.5.0","react-dom":">=19","motion-plus":"^0.1.6","motion-plus-react":"^0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/motion_1.2.0_1742592018980_0.7357197300981932","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@d0paminedriven/motion","version":"1.3.0","license":"MIT","_id":"@d0paminedriven/motion@1.3.0","maintainers":[{"name":"d0paminedriven","email":"andrew@windycitydevs.io"}],"dist":{"shasum":"e1d59b1dbe87eeb22e43bae2f90096bf4e516025","tarball":"https://registry.npmjs.org/@d0paminedriven/motion/-/motion-1.3.0.tgz","fileCount":50,"integrity":"sha512-1zlKT6yf7tx9mX1muSHFbtVOw+jfRzec3vAxTytNb6YsVWjzGOC8aBntu2w1SG20WaOZOTbO/Lc3OqbsdVGmtg==","signatures":[{"sig":"MEUCIHPxpuxmaeXQJ0Z3Wl+NJ360ZDhA6ebDRpmClekI689lAiEAjPcmMRB1DZabITXSwhsMW5RdPflquDMfRQVULs692Kc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106775},"type":"module","_from":"file:d0paminedriven-motion-1.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","source":"src/index.ts","exports":{".":"./dist/index.js","./*":"./dist/*.js","./types/*":"./dist/types/*.js","./ui/gentle-text":"./dist/ui/gentle-text.js","./ui/scatter-text":"./dist/ui/scatter-text.js","./hooks/use-resize-observer":"./dist/hooks/use-resize-observer.js","./hooks/use-gentle-text-effect":"./dist/hooks/use-gentle-text-effect.js"},"scripts":{"dev":"pnpm build","lint":"eslint","build":"tsup","clean":"git clean -xdf dist node_modules","types":"tsc --emitDeclarationOnly","prebuild":"rm -rf dist","postbuild":"tsx src/services/postbuild.ts flag-check"},"_npmUser":{"name":"d0paminedriven","email":"andrew@windycitydevs.io"},"prettier":"@portfolio/prettier-config","_resolved":"/tmp/59d2833eb9fafd1ac73e730abc8e8da0/d0paminedriven-motion-1.3.0.tgz","_integrity":"sha512-1zlKT6yf7tx9mX1muSHFbtVOw+jfRzec3vAxTytNb6YsVWjzGOC8aBntu2w1SG20WaOZOTbO/Lc3OqbsdVGmtg==","_npmVersion":"11.2.0","description":"a text-animation-based react library built on motion","directories":{},"sideEffects":true,"_nodeVersion":"22.14.0","dependencies":{"@swc/helpers":"^0.5.15","lodash.throttle":"^4.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/*.d.ts","dist/*.d.cts","dist/*/index.d.ts"],"ui":["dist/ui/gentle-text.d.ts","dist/ui/scatter-text.d.ts"],"hooks":["dist/hooks/use-gentle-text-effect.d.ts","dist/hooks/use-resize-observer.d.ts"],"types":["dist/types/gentle-text.d.ts","dist/types/helpers.d.ts","dist/types/hooks.d.ts","dist/types/scatter-text.d.ts","dist/types/split-text.d.ts","dist/types/wave-text.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","clsx":"^2.1.1","jiti":"^2.4.2","tsup":"latest","react":"^19.0.0","tslib":"latest","eslint":"latest","motion":"^12.5.0","terser":"^5.39.0","postcss":"^8.5.3","chokidar":"^4.0.3","prettier":"latest","@swc/core":"^1.11.11","react-dom":"^19.0.0","typescript":"latest","@types/node":"^22.13.10","motion-plus":"^0.1.6","@types/react":"^19.0.12","autoprefixer":"^10.4.21","@types/react-dom":"^19.0.4","motion-plus-react":"^0.1.5","@d0paminedriven/fs":"^0.2.0","@portfolio/tsconfig":"0.1.0","@types/lodash.throttle":"^4.1.9","@microsoft/api-extractor":"^7.52.1","@portfolio/eslint-config":"1.0.0","@portfolio/prettier-config":"0.1.0"},"peerDependencies":{"react":">=19","motion":"^12.5.0","react-dom":">=19","motion-plus":"^0.1.6","motion-plus-react":"^0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/motion_1.3.0_1742592527633_0.204790805110747","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@d0paminedriven/motion","version":"1.4.0","license":"MIT","_id":"@d0paminedriven/motion@1.4.0","maintainers":[{"name":"d0paminedriven","email":"andrew@windycitydevs.io"}],"dist":{"shasum":"d5839a2915e7b91f318af065016eddbbfa3f5681","tarball":"https://registry.npmjs.org/@d0paminedriven/motion/-/motion-1.4.0.tgz","fileCount":50,"integrity":"sha512-EZb2+c8ffbW4CQe9FWFb2NfxxCn0vVUG1a9FZ/3HO0DtemaR6pEr6iAGfHRCfzwUZYYRCiE2K50Cq8541cnejQ==","signatures":[{"sig":"MEUCIHj00dQGd3KPvMpDH2StnKr9msq7pQrBGao1Q1XyEkX2AiEAvF+wb7nBrecw0xbeg2JRo4OIX+e3fUTlcfYhnWkurlE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106775},"type":"module","_from":"file:d0paminedriven-motion-1.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","source":"src/index.ts","exports":{".":"./dist/index.js","./*":"./dist/*.js","./types/*":"./dist/types/*.js","./ui/gentle-text":"./dist/ui/gentle-text.js","./ui/scatter-text":"./dist/ui/scatter-text.js","./hooks/use-resize-observer":"./dist/hooks/use-resize-observer.js","./hooks/use-gentle-text-effect":"./dist/hooks/use-gentle-text-effect.js"},"scripts":{"dev":"pnpm build","lint":"eslint","build":"tsup","clean":"git clean -xdf dist node_modules","types":"tsc --emitDeclarationOnly","prebuild":"rm -rf dist","postbuild":"tsx src/services/postbuild.ts flag-check"},"_npmUser":{"name":"d0paminedriven","email":"andrew@windycitydevs.io"},"prettier":"@portfolio/prettier-config","_resolved":"/tmp/ca501147490224c7b0af0134b844998e/d0paminedriven-motion-1.4.0.tgz","_integrity":"sha512-EZb2+c8ffbW4CQe9FWFb2NfxxCn0vVUG1a9FZ/3HO0DtemaR6pEr6iAGfHRCfzwUZYYRCiE2K50Cq8541cnejQ==","_npmVersion":"11.2.0","description":"a text-animation-based react library built on motion","directories":{},"sideEffects":true,"_nodeVersion":"22.14.0","dependencies":{"@swc/helpers":"^0.5.15","lodash.throttle":"^4.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/*.d.ts","dist/*.d.cts","dist/*/index.d.ts"],"ui":["dist/ui/gentle-text.d.ts","dist/ui/scatter-text.d.ts"],"hooks":["dist/hooks/use-gentle-text-effect.d.ts","dist/hooks/use-resize-observer.d.ts"],"types":["dist/types/gentle-text.d.ts","dist/types/helpers.d.ts","dist/types/hooks.d.ts","dist/types/scatter-text.d.ts","dist/types/split-text.d.ts","dist/types/wave-text.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","clsx":"^2.1.1","jiti":"^2.4.2","tsup":"latest","react":"^19.1.0","tslib":"latest","eslint":"latest","motion":"^12.6.3","terser":"^5.39.0","postcss":"^8.5.3","chokidar":"^4.0.3","prettier":"latest","@swc/core":"^1.11.16","react-dom":"^19.1.0","typescript":"latest","@types/node":"^22.14.0","motion-plus":"^0.1.6","@types/react":"^19.1.0","autoprefixer":"^10.4.21","@types/react-dom":"^19.1.1","motion-plus-react":"^0.1.5","@d0paminedriven/fs":"^1.0.0","@portfolio/tsconfig":"0.1.0","@types/lodash.throttle":"^4.1.9","@microsoft/api-extractor":"^7.52.2","@portfolio/eslint-config":"1.0.0","@portfolio/prettier-config":"0.1.0"},"peerDependencies":{"react":">=19","motion":">=12.6.x","react-dom":">=19","motion-plus":"^0.1.6","motion-plus-react":">=0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/motion_1.4.0_1743643540672_0.23748121603301042","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@d0paminedriven/motion","version":"2.0.0","license":"MIT","_id":"@d0paminedriven/motion@2.0.0","maintainers":[{"name":"d0paminedriven","email":"andrew@windycitydevs.io"}],"dist":{"shasum":"a830f49f29e040606c9d578c598bc11cc167d871","tarball":"https://registry.npmjs.org/@d0paminedriven/motion/-/motion-2.0.0.tgz","fileCount":50,"integrity":"sha512-s6uo0NAgj/0Au7bc/OydTz6npxj+d/laLB6D02XZpQ/uznWlClBEJnKrhZt+tiprSFrKkzDaQs6HA7uVoUdWxA==","signatures":[{"sig":"MEYCIQCMdfacoDbLaV9sXFLObmk+vCFFDIR8x9g3Z6Txv9euPQIhANrULnyFhv0Clk3y5eqB8fkSIevCeB97FYnxp0xD5MgG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107106},"type":"module","_from":"file:d0paminedriven-motion-2.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","source":"src/index.ts","exports":{".":"./dist/index.js","./*":"./dist/*.js","./types/*":"./dist/types/*.js","./ui/gentle-text":"./dist/ui/gentle-text.js","./ui/scatter-text":"./dist/ui/scatter-text.js","./hooks/use-resize-observer":"./dist/hooks/use-resize-observer.js","./hooks/use-gentle-text-effect":"./dist/hooks/use-gentle-text-effect.js"},"scripts":{"dev":"pnpm build","lint":"eslint","build":"tsup","clean":"git clean -xdf dist node_modules","types":"tsc --emitDeclarationOnly","prebuild":"rm -rf dist","postbuild":"tsx src/services/postbuild.ts flag-check"},"_npmUser":{"name":"d0paminedriven","email":"andrew@windycitydevs.io"},"prettier":"@portfolio/prettier-config","_resolved":"/tmp/73f6559e2979116002d52eff98b9e2ff/d0paminedriven-motion-2.0.0.tgz","_integrity":"sha512-s6uo0NAgj/0Au7bc/OydTz6npxj+d/laLB6D02XZpQ/uznWlClBEJnKrhZt+tiprSFrKkzDaQs6HA7uVoUdWxA==","_npmVersion":"11.3.0","description":"a text-animation-based react library built on motion","directories":{},"sideEffects":true,"_nodeVersion":"22.15.0","dependencies":{"@swc/helpers":"^0.5.17","lodash.throttle":"^4.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/*.d.ts","dist/*.d.cts","dist/*/index.d.ts"],"ui":["dist/ui/gentle-text.d.ts","dist/ui/scatter-text.d.ts"],"hooks":["dist/hooks/use-gentle-text-effect.d.ts","dist/hooks/use-resize-observer.d.ts"],"types":["dist/types/gentle-text.d.ts","dist/types/helpers.d.ts","dist/types/hooks.d.ts","dist/types/scatter-text.d.ts","dist/types/split-text.d.ts","dist/types/wave-text.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","clsx":"^2.1.1","jiti":"^2.4.2","tsup":"latest","react":"^19.1.0","tslib":"latest","eslint":"latest","motion":"^12.9.4","terser":"^5.39.0","postcss":"^8.5.3","chokidar":"^4.0.3","prettier":"latest","@swc/core":"^1.11.24","react-dom":"^19.1.0","motion-dom":"^12.9.4","typescript":"latest","@types/node":"^22.15.3","motion-plus":"^0.1.6","@types/react":"^19.1.2","autoprefixer":"^10.4.21","motion-utils":"^12.9.4","@types/react-dom":"^19.1.3","@d0paminedriven/fs":"^4.0.0","@portfolio/tsconfig":"0.1.0","@types/lodash.throttle":"^4.1.9","@microsoft/api-extractor":"^7.52.7","@portfolio/eslint-config":"1.0.0","@portfolio/prettier-config":"0.1.0"},"peerDependencies":{"react":">=19","motion":">=12","react-dom":">=19","motion-dom":">=12","motion-plus":"^0.1.6","motion-utils":">=12"},"_npmOperationalInternal":{"tmp":"tmp/motion_2.0.0_1746266253230_0.53262415040382","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@d0paminedriven/motion","version":"3.0.0","description":"a text-animation-based react library built on motion","license":"MIT","sideEffects":true,"type":"module","typesVersions":{"*":{"*":["dist/*.d.ts","dist/*.d.cts","dist/*/index.d.ts"],"hooks":["dist/hooks/use-gentle-text-effect.d.ts","dist/hooks/use-resize-observer.d.ts"],"types":["dist/types/gentle-text.d.ts","dist/types/helpers.d.ts","dist/types/hooks.d.ts","dist/types/scatter-text.d.ts","dist/types/split-text.d.ts","dist/types/wave-text.d.ts"],"ui":["dist/ui/gentle-text.d.ts","dist/ui/scatter-text.d.ts"]}},"publishConfig":{"access":"public"},"source":"src/index.ts","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./*":"./dist/*.js","./types/*":"./dist/types/*.js","./hooks/use-gentle-text-effect":"./dist/hooks/use-gentle-text-effect.js","./hooks/use-resize-observer":"./dist/hooks/use-resize-observer.js","./ui/gentle-text":"./dist/ui/gentle-text.js","./ui/scatter-text":"./dist/ui/scatter-text.js"},"peerDependencies":{"react":">=19","react-dom":">=19","motion":">=12","motion-dom":">=12","motion-utils":">=12","motion-plus":"^0.1.6"},"dependencies":{"@swc/helpers":"^0.5.17","lodash.throttle":"^4.1.1"},"devDependencies":{"@d0paminedriven/fs":"^4.0.0","@microsoft/api-extractor":"^7.52.7","@swc/core":"^1.11.24","@types/lodash.throttle":"^4.1.9","@types/node":"^22.15.3","@types/react":"^19.1.2","@types/react-dom":"^19.1.3","autoprefixer":"^10.4.21","clsx":"^2.1.1","chokidar":"^4.0.3","eslint":"latest","jiti":"^2.4.2","motion":"^12.9.4","motion-dom":"^12.9.4","motion-plus":"^0.1.6","motion-utils":"^12.9.4","postcss":"^8.5.3","prettier":"latest","react":"^19.1.0","react-dom":"^19.1.0","terser":"^5.39.0","tslib":"latest","tsup":"latest","tsx":"latest","typescript":"latest","@portfolio/prettier-config":"0.1.0","@portfolio/tsconfig":"0.1.0","@portfolio/eslint-config":"1.0.0"},"prettier":"@portfolio/prettier-config","scripts":{"lint":"eslint","dev":"pnpm build","prebuild":"rm -rf dist","postbuild":"tsx src/services/postbuild.ts flag-check","build":"tsup","clean":"git clean -xdf dist node_modules","types":"tsc --emitDeclarationOnly"},"_id":"@d0paminedriven/motion@3.0.0","_integrity":"sha512-o3wM+9Pg+CPeArrjh6kcrzWb2sv8LjmnadCLgmBtsSWuWOYaNNtNQUbfnXUSHLO1DyTWTj0cKYESrxnS5+nxtA==","_resolved":"/tmp/812d2d9994e5fbc4aa76579cc7a5cd50/d0paminedriven-motion-3.0.0.tgz","_from":"file:d0paminedriven-motion-3.0.0.tgz","_nodeVersion":"22.15.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-o3wM+9Pg+CPeArrjh6kcrzWb2sv8LjmnadCLgmBtsSWuWOYaNNtNQUbfnXUSHLO1DyTWTj0cKYESrxnS5+nxtA==","shasum":"748d471af38e9551736497309c3d6017195686bb","tarball":"https://registry.npmjs.org/@d0paminedriven/motion/-/motion-3.0.0.tgz","fileCount":51,"unpackedSize":119805,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDl8RmsZwbe/gS55c44AiT5U2aoXpXfvV8xBLNiVU5IPAiEA/Y+jYOvgXORrLav0dnwrrddt1SOV7LPhZvOxuvp0M1o="}]},"_npmUser":{"name":"d0paminedriven","email":"andrew@windycitydevs.io"},"directories":{},"maintainers":[{"name":"d0paminedriven","email":"andrew@windycitydevs.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/motion_3.0.0_1746353379155_0.5746811937482428"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-17T07:34:29.811Z","modified":"2025-05-04T10:09:39.508Z","0.1.0":"2025-03-17T07:34:30.060Z","1.0.0":"2025-03-17T19:05:19.924Z","1.1.0":"2025-03-20T20:53:24.730Z","1.2.0":"2025-03-21T21:20:19.268Z","1.3.0":"2025-03-21T21:28:47.890Z","1.4.0":"2025-04-03T01:25:40.897Z","2.0.0":"2025-05-03T09:57:33.420Z","3.0.0":"2025-05-04T10:09:39.327Z"},"license":"MIT","description":"a text-animation-based react library built on motion","maintainers":[{"name":"d0paminedriven","email":"andrew@windycitydevs.io"}],"readme":"# @d0paminedriven/motion\n\n### *A text-animation-based React library built on Motion.*\n\n<p align=\"center\">\n\n[![npm](https://img.shields.io/npm/v/@d0paminedriven/motion?color=blue)](https://www.npmjs.com/package/@d0paminedriven/motion)\n[![npm](https://img.shields.io/npm/dm/@d0paminedriven/motion)](https://www.npmjs.com/package/@d0paminedriven/motion)\n  <a style=\"fill:black;\" href=\"https://github.com/DopamineDriven/portfolio-2025/tree/master/packages/motion\"><svg height=\"32\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" version=\"1.1\" width=\"32\" data-view-component=\"true\" class=\"octicon octicon-mark-github\"><path d=\"M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z\"></path>\n</svg></a>\n</p>\n\n\n---\n\n## 📦 Installation\n\nThis library uses **peer** dependencies, so you’ll need to install Motion and React yourself:\n\n```bash\nnpm install @d0paminedriven/motion \\\n  motion motion-dom motion-utils motion-plus \\\n  react react-dom\n```\n\n```bash\nyarn add @d0paminedriven/motion \\\n  motion motion-dom motion-utils motion-plus \\\n  react react-dom\n```\n\n```bash\npnpm add @d0paminedriven/motion \\\n  motion motion-dom motion-utils motion-plus \\\n  react react-dom\n```\n\n---\n\n## 🛠️ GentleText\n\nSoft, subtle text animations with two mutually-exclusive modes:\n\n* **Stagger** — per-character/word/line stagger timing\n* **Delay** — explicit delay before each element\n\nTypeScript enforces that you supply **exactly one** of these options.\n\n### Basic usage\n\n```tsx\n\"use client\";\n\nimport { GentleText } from '@d0paminedriven/motion'\n\nexport default function Demo() {\n  return (\n    <GentleText\n      content=\"Hello, world!\"\n\n      // ─── STAGGER MODE ───────────────────\n      withStagger={{\n        duration:   0.05,    // seconds between each char\n        from:       'first', // 'first' | 'last' | 'center' | index\n        startDelay: 0.1,     // initial delay\n        ease:       'easeOut',\n      }}\n\n      // ─── or ──────────────────────────────────\n\n      // ─── DELAY MODE ────────────────────────\n      animationOptions={{\n        delay: (i, total) => i * 0.04, // can be of type `number | ((i: number, total: number) => number)`\n        duration: 1.2,\n        ease:     'easeInOut',\n      }}\n\n      // ─── common props ──────────────────────\n      as=\"h1\"\n      debug\n      duration={1.5}\n      yOffset={8}\n      initialScale={0.95}\n      blurAmount={3}\n      autoPlay\n      allowOverflow\n      animateTarget=\"chars\"       // 'chars' | 'words' | 'lines'\n      animateOnlyInView\n      inViewThreshold={0.5}\n      inViewMargin=\"0px\"\n      keyframes={{                // custom keyframes example\n        opacity: [0, 1],\n        y: [-10, 10],\n        scale: [0.5, 1],\n        rotate: [-10, 0],\n        color: [\"#83e6f7\", \"#ffffff\"]\n      }}\n      animationOptions={{\n        delay: 0,\n        repeat: Number.POSITIVE_INFINITY,\n        repeatType: \"mirror\",\n        repeatDelay: 2\n      }}\n    />\n  )\n}\n```\n\n### Props\n\n| Prop                  | Type                               | Default   | Description                                                         |\n| --------------------- | ---------------------------------- | --------- | ------------------------------------------------------------------- |\n| `content`             | `string`                           | —         | Text to animate                                                     |\n| `as`                  | `TextElementTagUnion`              | `\"p\"`     | HTML tag for the text element                                       |\n| `duration`            | `number`                           | `1`       | Global animation duration (seconds)                                 |\n| `withStagger`         | `StaggerConfig`                    | *xor*     | Stagger mode config (see above)                                     |\n| `animationOptions`    | `BaseAnimationOptions & { delay }` | *xor*     | Explicit delay mode (see above)                                     |\n| `animateTarget`       | `\"chars\" \\| \"words\" \\| \"lines\"`    | `\"chars\"` | Split target (characters, words or lines)                           |\n| `keyframes`           | `DOMKeyframesDefinition`           | —         | Override default motion keyframes (opacity, transform, color, etc.) |\n| `yOffset`             | `number`                           | `10`      | Initial vertical offset (px)                                        |\n| `initialScale`        | `number`                           | `0.9`     | Initial scale                                                       |\n| `blurAmount`          | `number`                           | `4`       | Initial blur (px)                                                   |\n| `autoPlay`            | `boolean`                          | `true`    | Play on mount                                                       |\n| `animateOnlyInView`   | `boolean`                          | `false`   | Wait until in-view                                                  |\n| `inViewThreshold`     | `number`                           | `0.5`     | Percent in-view to trigger (0–1)                                    |\n| `inViewMargin`        | `string`                           | `\"0px\"`   | Margin around element for in-view detection                         |\n| `debug`               | `boolean`                          | `false`   | Show debug UI                                                       |\n| `allowOverflow`       | `boolean`                          | `false`   | Let characters overflow container                                   |\n| `onAnimationStart`    | `() => void`                       | —         | Callback at animation start                                         |\n| `onAnimationComplete` | `() => void`                       | —         | Callback at animation end                                           |\n\n<details>\n  <summary>🔍 Allowed HTML tags (<code>TextElementTagUnion</code>)</summary>\n\n```\n\"a\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\",\n\"p\", \"span\", \"div\", \"pre\", \"cite\", \"address\",\n\"aside\", \"blockquote\", \"button\", \"caption\",\n\"figcaption\", \"code\", \"article\", \"header\",\n\"mark\", \"sup\", \"label\", \"title\", \"small\",\n\"sub\", \"details\", \"ins\", \"del\", \"figure\",\n\"li\", \"ol\", \"ul\", \"i\", \"kbd\", \"summary\"\n```\n\n</details>\n\n### 🔑 Custom Keyframes\n\nThe `keyframes` prop accepts any valid `DOMKeyframesDefinition`, letting you override the default motion keyframes. Common uses include chaining opacity, translating, scaling, rotating, and color transitions.\n\n```ts\nkeyframes: {\n  opacity: [0, 1],\n  y:       [-10, 10],\n  scale:   [0.5, 1],\n  rotate:  [-10, 0],\n  color:   [\"#83e6f7\", \"#ffffff\"]\n}\n```\n\n### ⚙️ Animation Generator Types\n\nYou can customize the `type` of animation under `animationOptions`. Supported values:\n\n```ts\n// imported from motion-dom\n\n/**\n * A factory function or one of the built-in generator types:\n */\ntype AnimationGeneratorType =\n  | GeneratorFactory      // custom generator\n  | \"decay\"\n  | \"spring\"\n  | \"keyframes\"\n  | \"tween\"\n  | \"inertia\";\n```\n\n* **spring**: Physics-based spring animation. Ignores `duration` and adds options:\n\n  * `stiffness` (number)\n  * `damping` (number)\n  * `mass`    (number)\n\n* **decay**: Natural decay motion. Ignores `duration`, uses:\n\n  * `power`        (number)\n  * `timeConstant` (number)\n  * `velocity`     (number)\n\n* **tween**, **keyframes**, **inertia**: Standard easing or inertia-based animations. `duration` applies as usual.\n\n---\n\n## 🔗 Links\n\n* **npm**: [@d0paminedriven/motion](https://www.npmjs.com/package/@d0paminedriven/motion)\n* **Source**: [https://github.com/DopamineDriven/portfolio-2025/tree/master/packages/motion](https://github.com/DopamineDriven/portfolio-2025/tree/master/packages/motion)\n\n---\n\n## ⚖️ License\n\nMIT © [Andrew Ross](https://github.com/DopamineDriven)\n","readmeFilename":"README.md"}