{"_id":"@codecollab.co/neopop-rn","_rev":"9-bc21fa45fad6073035c1d227d545af6d","name":"@codecollab.co/neopop-rn","dist-tags":{"latest":"2.3.0"},"versions":{"0.2.0":{"name":"@codecollab.co/neopop-rn","version":"0.2.0","keywords":["react-native","expo","neopop","design-system","ui-library","3d","animation","skia","typescript"],"license":"Apache-2.0","_id":"@codecollab.co/neopop-rn@0.2.0","maintainers":[{"name":"codecollab.co","email":"codecollab.co@gmail.com"}],"homepage":"https://github.com/codecollab-co/neopop-rn#readme","bugs":{"url":"https://github.com/codecollab-co/neopop-rn/issues"},"dist":{"shasum":"1095ea7748e9125592fc339214215238c76b21cf","tarball":"https://registry.npmjs.org/@codecollab.co/neopop-rn/-/neopop-rn-0.2.0.tgz","fileCount":668,"integrity":"sha512-FhdC1Fuzm273vZgd8iG6JgsrwXX11tv/+toLu4G2FbkPo+gFGP8ZI9VsejO2+pM+uQGQzL1G7nchVQqLhjlAOQ==","signatures":[{"sig":"MEUCIQDVm6BBCSfeYXwzQ59uTi4j0wXyPlympio4woFyKpafbQIgcgbgt8Vk09mI8f8a7PtE3M268er5U3L5UdnBNvq+Jqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1109763},"jest":{"preset":"jest-expo","moduleNameMapper":{"^neopop-rn$":"<rootDir>/src/index"},"setupFilesAfterEnv":["@testing-library/react-native/extend-expect"],"collectCoverageFrom":["src/**/*.{ts,tsx}","!src/**/*.types.ts","!src/**/index.ts"],"transformIgnorePatterns":["node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|@shopify/react-native-skia)"]},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","gitHead":"e066ede252c3a8bc85a10a374352e6a298880359","scripts":{"lint":"eslint src --ext .ts,.tsx --max-warnings 0","test":"jest","format":"prettier --write \"src/**/*.{ts,tsx}\"","example":"npm --prefix example","prepare":"bob build","release":"release-it","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"codecollab.co","email":"codecollab.co@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":"angular"}}},"repository":{"url":"git+https://github.com/codecollab-co/neopop-rn.git","type":"git"},"_npmVersion":"10.8.2","description":"NeoPop design system for React Native — unified iOS, Android, Web & Flutter features in one Expo-compatible package","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","react-native":"src/index","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"18.2.0","eslint":"^8.56.0","prettier":"^3.2.0","jest-expo":"^50.0.0","commitlint":"^18.6.0","release-it":"^16.3.0","typescript":"^5.3.3","@types/react":"^18.2.0","expo-haptics":"^13.0.0","react-native":"0.73.4","@types/react-native":"^0.73.0","@storybook/react-native":"^7.6.17","react-native-reanimated":"^3.6.0","react-native-builder-bob":"^0.23.2","eslint-plugin-react-hooks":"^4.6.0","@shopify/react-native-skia":"^1.3.0","@react-native/eslint-config":"^0.73.0","react-native-gesture-handler":"^2.14.0","@testing-library/react-native":"^12.4.0","@commitlint/config-conventional":"^18.6.0","@storybook/addon-ondevice-notes":"^7.6.17","@storybook/addon-ondevice-actions":"^7.6.17","@release-it/conventional-changelog":"^7.0.0","@storybook/addon-ondevice-controls":"^7.6.17","@storybook/addon-ondevice-backgrounds":"^7.6.17"},"peerDependencies":{"react":">=18.0.0","expo-haptics":">=13.0.0","react-native":">=0.73.0","react-native-reanimated":">=3.0.0","@shopify/react-native-skia":">=1.0.0","react-native-gesture-handler":">=2.0.0"},"peerDependenciesMeta":{"expo-haptics":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/neopop-rn_0.2.0_1771925992370_0.7230518766356027","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esmodules":true}],"module","typescript"]}},"0.3.0":{"name":"@codecollab.co/neopop-rn","version":"0.3.0","keywords":["react-native","expo","neopop","design-system","ui-library","3d","animation","skia","typescript"],"license":"Apache-2.0","_id":"@codecollab.co/neopop-rn@0.3.0","maintainers":[{"name":"codecollab.co","email":"codecollab.co@gmail.com"}],"homepage":"https://github.com/codecollab-co/neopop-rn#readme","bugs":{"url":"https://github.com/codecollab-co/neopop-rn/issues"},"dist":{"shasum":"2a377a14b5367f529d59c8641ef5f5c047eeeef7","tarball":"https://registry.npmjs.org/@codecollab.co/neopop-rn/-/neopop-rn-0.3.0.tgz","fileCount":731,"integrity":"sha512-qbptwCKGCv3SC/p6ucs1/PivtbwASORZbuJbTvh6KVTQ3sv+iUOVnfVM6YTpw+2bnF/14v20v1mIVhU8zFffBg==","signatures":[{"sig":"MEUCIQD4McrDttxfPDpL+7N9WYfID94rwVAXUHgS+mVwTv8nsQIgVfKTsNAf+TluXtyuEQbmtGd3ctrBC2DPRNNMZeZeuiA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1250498},"jest":{"preset":"jest-expo","moduleNameMapper":{"^neopop-rn$":"<rootDir>/src/index"},"setupFilesAfterEnv":["@testing-library/react-native/extend-expect"],"collectCoverageFrom":["src/**/*.{ts,tsx}","!src/**/*.types.ts","!src/**/index.ts"],"transformIgnorePatterns":["node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|@shopify/react-native-skia)"]},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","gitHead":"c893de8be4706d766e93eef5b418c59de2f51b2f","scripts":{"lint":"eslint src --ext .ts,.tsx --max-warnings 0","test":"jest","format":"prettier --write \"src/**/*.{ts,tsx}\"","example":"npm --prefix example","prepare":"bob build","release":"release-it","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"codecollab.co","email":"codecollab.co@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":"angular"}}},"repository":{"url":"git+https://github.com/codecollab-co/neopop-rn.git","type":"git"},"_npmVersion":"10.8.2","description":"NeoPop design system for React Native — unified iOS, Android, Web & Flutter features in one Expo-compatible package","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","react-native":"src/index","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"18.2.0","eslint":"^8.56.0","prettier":"^3.2.0","jest-expo":"^50.0.0","commitlint":"^18.6.0","release-it":"^16.3.0","typescript":"^5.3.3","@types/react":"^18.2.0","expo-haptics":"^13.0.0","react-native":"0.73.4","@types/react-native":"^0.73.0","@storybook/react-native":"^7.6.17","react-native-reanimated":"^3.6.0","react-native-builder-bob":"^0.23.2","eslint-plugin-react-hooks":"^4.6.0","@shopify/react-native-skia":"^1.3.0","@react-native/eslint-config":"^0.73.0","react-native-gesture-handler":"^2.14.0","@testing-library/react-native":"^12.4.0","@commitlint/config-conventional":"^18.6.0","@storybook/addon-ondevice-notes":"^7.6.17","@storybook/addon-ondevice-actions":"^7.6.17","@release-it/conventional-changelog":"^7.0.0","@storybook/addon-ondevice-controls":"^7.6.17","@storybook/addon-ondevice-backgrounds":"^7.6.17"},"peerDependencies":{"react":">=18.0.0","expo-haptics":">=13.0.0","react-native":">=0.73.0","react-native-reanimated":">=3.0.0","@shopify/react-native-skia":">=1.0.0","react-native-gesture-handler":">=2.0.0"},"peerDependenciesMeta":{"expo-haptics":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/neopop-rn_0.3.0_1772191615692_0.5946390239512007","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esmodules":true}],"module","typescript"]}},"0.4.0":{"name":"@codecollab.co/neopop-rn","version":"0.4.0","keywords":["react-native","expo","neopop","design-system","ui-library","3d","animation","skia","typescript"],"license":"Apache-2.0","_id":"@codecollab.co/neopop-rn@0.4.0","maintainers":[{"name":"codecollab.co","email":"codecollab.co@gmail.com"}],"homepage":"https://github.com/codecollab-co/neopop-rn#readme","bugs":{"url":"https://github.com/codecollab-co/neopop-rn/issues"},"dist":{"shasum":"f3d8ba0d1a3aff0999390e1da5623f5d89d932bc","tarball":"https://registry.npmjs.org/@codecollab.co/neopop-rn/-/neopop-rn-0.4.0.tgz","fileCount":815,"integrity":"sha512-EP9KenwgakO4NZWbE+uFLzQUYfmDy3uGa0XJi53/1+98gF5qQq4FdsKCtMRUTSFkdzLL/uzSHV/K+3QcEd4e/Q==","signatures":[{"sig":"MEUCIBIEm81O12pwb9MKoU2HBoeYd16bqsVThEwmLzZDupeBAiEAsCxR2JeT3rK7v7ssG5O6SWVVqWAKSMGBRZeak87bSyo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1432834},"jest":{"preset":"react-native","transform":{"^.+\\.(js|jsx|ts|tsx)$":"babel-jest"},"moduleNameMapper":{"^neopop-rn$":"<rootDir>/src/index","^@codecollab\\.co/neopop-rn$":"<rootDir>/src/index"},"coverageThreshold":{"global":{"lines":13,"branches":12,"functions":8,"statements":13},"./src/hooks/":{"lines":90,"branches":80,"functions":85,"statements":90},"./src/utils/":{"lines":90,"branches":75,"functions":80,"statements":85},"./src/theme/NeoPopProvider.tsx":{"lines":95,"branches":75,"functions":95,"statements":95}},"setupFilesAfterEnv":["@testing-library/react-native/extend-expect"],"collectCoverageFrom":["src/**/*.{ts,tsx}","!src/**/*.types.ts","!src/**/index.ts"],"transformIgnorePatterns":["node_modules/(?!((jest-)?react-native|@react-native(-community)?|react-native-reanimated|react-native-gesture-handler|@shopify/react-native-skia|expo-haptics))"]},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","gitHead":"5daeeeeccc2a0ac1fb7c196d043aa16be52996a5","scripts":{"lint":"eslint src --ext .ts,.tsx --max-warnings 0","test":"jest","format":"prettier --write \"src/**/*.{ts,tsx}\"","example":"npm --prefix example","prepare":"bob build","release":"release-it","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"codecollab.co","email":"codecollab.co@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":"angular"}}},"repository":{"url":"git+https://github.com/codecollab-co/neopop-rn.git","type":"git"},"_npmVersion":"10.8.2","description":"NeoPop design system for React Native — unified iOS, Android, Web & Flutter features in one Expo-compatible package","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","react-native":"src/index","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"18.2.0","eslint":"^8.56.0","prettier":"^3.2.0","jest-expo":"^50.0.0","commitlint":"^18.6.0","release-it":"^16.3.0","typescript":"^5.3.3","@types/react":"^18.2.0","expo-haptics":"^13.0.0","react-native":"0.73.4","@types/react-native":"^0.73.0","@storybook/react-native":"^7.6.17","react-native-reanimated":"^3.6.0","react-native-builder-bob":"^0.23.2","eslint-plugin-react-hooks":"^4.6.0","@shopify/react-native-skia":"^1.3.0","@react-native/eslint-config":"^0.73.0","react-native-gesture-handler":"^2.14.0","@testing-library/react-native":"^12.4.0","@commitlint/config-conventional":"^18.6.0","@storybook/addon-ondevice-notes":"^7.6.17","metro-react-native-babel-preset":"^0.77.0","@storybook/addon-ondevice-actions":"^7.6.17","@release-it/conventional-changelog":"^7.0.0","@storybook/addon-ondevice-controls":"^7.6.17","@storybook/addon-ondevice-backgrounds":"^7.6.17"},"peerDependencies":{"react":">=18.0.0","expo-haptics":">=13.0.0","react-native":">=0.73.0","react-native-reanimated":">=3.0.0","@shopify/react-native-skia":">=1.0.0","react-native-gesture-handler":">=2.0.0"},"peerDependenciesMeta":{"expo-haptics":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/neopop-rn_0.4.0_1772613406402_0.9804220092240872","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esmodules":true}],"module","typescript"]}},"0.5.0":{"name":"@codecollab.co/neopop-rn","version":"0.5.0","keywords":["react-native","expo","neopop","design-system","ui-library","3d","animation","skia","typescript"],"license":"Apache-2.0","_id":"@codecollab.co/neopop-rn@0.5.0","maintainers":[{"name":"codecollab.co","email":"codecollab.co@gmail.com"}],"homepage":"https://github.com/codecollab-co/neopop-rn#readme","bugs":{"url":"https://github.com/codecollab-co/neopop-rn/issues"},"dist":{"shasum":"03df8fb95bf6ae0fdf30e0ab5fa646f08df2b871","tarball":"https://registry.npmjs.org/@codecollab.co/neopop-rn/-/neopop-rn-0.5.0.tgz","fileCount":815,"integrity":"sha512-P9xgzzylxkCBjPL05f0/lO8M/nEkI3v+zRuLVnF5DtrY30oQwLUMLoo9K7OLQ2xKLcrU5y60wc3l1VRoB8aP1w==","signatures":[{"sig":"MEYCIQDQZQfydXxxoP5ooNi4IXjgZvG5EpzTTiXrgqYK7J7t2wIhAKIFUdl9UWeorqsrlQZDal3VXEn9LizKSLev8O+1+Cwr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1426396},"jest":{"preset":"react-native","transform":{"^.+\\.(js|jsx|ts|tsx)$":"babel-jest"},"moduleNameMapper":{"^neopop-rn$":"<rootDir>/src/index","^@codecollab\\.co/neopop-rn$":"<rootDir>/src/index"},"coverageThreshold":{"global":{"lines":13,"branches":12,"functions":8,"statements":13},"./src/hooks/":{"lines":90,"branches":80,"functions":85,"statements":90},"./src/utils/":{"lines":90,"branches":75,"functions":80,"statements":85},"./src/theme/NeoPopProvider.tsx":{"lines":95,"branches":75,"functions":95,"statements":95}},"setupFilesAfterEnv":["@testing-library/react-native/extend-expect"],"collectCoverageFrom":["src/**/*.{ts,tsx}","!src/**/*.types.ts","!src/**/index.ts"],"transformIgnorePatterns":["node_modules/(?!((jest-)?react-native|@react-native(-community)?|react-native-reanimated|react-native-gesture-handler|@shopify/react-native-skia|expo-haptics))"]},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","gitHead":"5399858b9cd9566b20cd758659bb9153ea092794","scripts":{"lint":"eslint src --ext .ts,.tsx --max-warnings 0","test":"jest","format":"prettier --write \"src/**/*.{ts,tsx}\"","example":"npm --prefix example","prepare":"bob build","release":"release-it","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"codecollab.co","email":"codecollab.co@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":"angular"}}},"repository":{"url":"git+https://github.com/codecollab-co/neopop-rn.git","type":"git"},"_npmVersion":"10.8.2","description":"NeoPop design system for React Native — unified iOS, Android, Web & Flutter features in one Expo-compatible package","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","react-native":"src/index","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"18.2.0","eslint":"^8.56.0","prettier":"^3.2.0","jest-expo":"^50.0.0","commitlint":"^18.6.0","release-it":"^16.3.0","typescript":"^5.3.3","@types/react":"^18.2.0","expo-haptics":"^13.0.0","react-native":"0.73.4","@types/react-native":"^0.73.0","@storybook/react-native":"^7.6.17","react-native-reanimated":"^3.6.0","react-native-builder-bob":"^0.23.2","eslint-plugin-react-hooks":"^4.6.0","@shopify/react-native-skia":"^1.3.0","@react-native/eslint-config":"^0.73.0","react-native-gesture-handler":"^2.14.0","@testing-library/react-native":"^12.4.0","@commitlint/config-conventional":"^18.6.0","@storybook/addon-ondevice-notes":"^7.6.17","metro-react-native-babel-preset":"^0.77.0","@storybook/addon-ondevice-actions":"^7.6.17","@release-it/conventional-changelog":"^7.0.0","@storybook/addon-ondevice-controls":"^7.6.17","@storybook/addon-ondevice-backgrounds":"^7.6.17"},"peerDependencies":{"react":">=18.0.0","expo-haptics":">=13.0.0","react-native":">=0.73.0","react-native-reanimated":">=3.0.0","@shopify/react-native-skia":">=1.0.0","react-native-gesture-handler":">=2.0.0"},"peerDependenciesMeta":{"expo-haptics":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/neopop-rn_0.5.0_1772617683498_0.6561081112436544","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esmodules":true}],"module","typescript"]}},"0.6.0":{"name":"@codecollab.co/neopop-rn","version":"0.6.0","keywords":["react-native","expo","neopop","design-system","ui-library","3d","animation","skia","typescript"],"license":"Apache-2.0","_id":"@codecollab.co/neopop-rn@0.6.0","maintainers":[{"name":"codecollab.co","email":"codecollab.co@gmail.com"}],"homepage":"https://github.com/codecollab-co/neopop-rn#readme","bugs":{"url":"https://github.com/codecollab-co/neopop-rn/issues"},"dist":{"shasum":"855d784b48f3ca5f208d1dd4023d36e01205a376","tarball":"https://registry.npmjs.org/@codecollab.co/neopop-rn/-/neopop-rn-0.6.0.tgz","fileCount":815,"integrity":"sha512-35P3wGjJnjnBT/2v3uznJfeuSCQSuwthE8Fty0RnY5QDtwGDNRxxyQWr4jkqM6TkJSVdkqZTXl3JM7T6njiLtA==","signatures":[{"sig":"MEQCIGQ+aPGcO6SxSGWakF0gNpqHX172lTgirPE0enh1Tu5pAiByd9QHnJBv9MYH9kCra6+Z6ehec42pICCQsWks6oIueA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1426396},"jest":{"preset":"react-native","transform":{"^.+\\.(js|jsx|ts|tsx)$":"babel-jest"},"moduleNameMapper":{"^neopop-rn$":"<rootDir>/src/index","^@codecollab\\.co/neopop-rn$":"<rootDir>/src/index"},"coverageThreshold":{"global":{"lines":13,"branches":12,"functions":8,"statements":13},"./src/hooks/":{"lines":90,"branches":80,"functions":85,"statements":90},"./src/utils/":{"lines":90,"branches":75,"functions":80,"statements":85},"./src/theme/NeoPopProvider.tsx":{"lines":95,"branches":75,"functions":95,"statements":95}},"setupFilesAfterEnv":["@testing-library/react-native/extend-expect"],"collectCoverageFrom":["src/**/*.{ts,tsx}","!src/**/*.types.ts","!src/**/index.ts"],"transformIgnorePatterns":["node_modules/(?!((jest-)?react-native|@react-native(-community)?|react-native-reanimated|react-native-gesture-handler|@shopify/react-native-skia|expo-haptics))"]},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","gitHead":"49b4d463261b692cd65bca1b48c479c29a5ae545","scripts":{"lint":"eslint src --ext .ts,.tsx --max-warnings 0","test":"jest","format":"prettier --write \"src/**/*.{ts,tsx}\"","example":"npm --prefix example","prepare":"bob build","release":"release-it","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"codecollab.co","email":"codecollab.co@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":"angular"}}},"repository":{"url":"git+https://github.com/codecollab-co/neopop-rn.git","type":"git"},"_npmVersion":"10.8.2","description":"NeoPop design system for React Native — unified iOS, Android, Web & Flutter features in one Expo-compatible package","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","react-native":"src/index","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"18.2.0","eslint":"^8.56.0","prettier":"^3.2.0","jest-expo":"^50.0.0","commitlint":"^18.6.0","release-it":"^16.3.0","typescript":"^5.3.3","@types/react":"^18.2.0","expo-haptics":"^13.0.0","react-native":"0.73.4","@types/react-native":"^0.73.0","@storybook/react-native":"^7.6.17","react-native-reanimated":"^3.6.0","react-native-builder-bob":"^0.23.2","eslint-plugin-react-hooks":"^4.6.0","@shopify/react-native-skia":"^1.3.0","@react-native/eslint-config":"^0.73.0","react-native-gesture-handler":"^2.14.0","@testing-library/react-native":"^12.4.0","@commitlint/config-conventional":"^18.6.0","@storybook/addon-ondevice-notes":"^7.6.17","metro-react-native-babel-preset":"^0.77.0","@storybook/addon-ondevice-actions":"^7.6.17","@release-it/conventional-changelog":"^7.0.0","@storybook/addon-ondevice-controls":"^7.6.17","@storybook/addon-ondevice-backgrounds":"^7.6.17"},"peerDependencies":{"react":">=18.0.0","expo-haptics":">=13.0.0","react-native":">=0.73.0","react-native-reanimated":">=3.0.0","@shopify/react-native-skia":">=1.0.0","react-native-gesture-handler":">=2.0.0"},"peerDependenciesMeta":{"expo-haptics":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/neopop-rn_0.6.0_1772630535619_0.7948266532031174","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esmodules":true}],"module","typescript"]}},"1.0.0":{"name":"@codecollab.co/neopop-rn","version":"1.0.0","keywords":["react-native","expo","neopop","design-system","ui-library","3d","animation","skia","typescript"],"license":"Apache-2.0","_id":"@codecollab.co/neopop-rn@1.0.0","maintainers":[{"name":"codecollab.co","email":"codecollab.co@gmail.com"}],"homepage":"https://codecollab-co.github.io/neopop-rn/","bugs":{"url":"https://github.com/codecollab-co/neopop-rn/issues"},"dist":{"shasum":"530b38d8a34d556b4c631ce8832cf3f53e5dac54","tarball":"https://registry.npmjs.org/@codecollab.co/neopop-rn/-/neopop-rn-1.0.0.tgz","fileCount":815,"integrity":"sha512-n4DswWkHupr5qX39UatxikPKGGyT1EdqM+y5qbUk4dl66xP+177stBZS2ILvEnkyrY/jCqW5kApFcHCJ4jLcQw==","signatures":[{"sig":"MEQCIDahhMw3zHnr5PCERn1dfAzgR5yLOosnpWgSnRuJ6WY5AiA+SCnV6/Ui18PwSB4THKj3N2bd+Ji4B7RpslCQ1tEtKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1427551},"jest":{"preset":"react-native","transform":{"^.+\\.(js|jsx|ts|tsx)$":"babel-jest"},"moduleNameMapper":{"^neopop-rn$":"<rootDir>/src/index","^@codecollab\\.co/neopop-rn$":"<rootDir>/src/index"},"coverageThreshold":{"global":{"lines":13,"branches":12,"functions":8,"statements":13},"./src/hooks/":{"lines":90,"branches":80,"functions":85,"statements":90},"./src/utils/":{"lines":90,"branches":75,"functions":80,"statements":85},"./src/theme/NeoPopProvider.tsx":{"lines":95,"branches":75,"functions":95,"statements":95}},"setupFilesAfterEnv":["@testing-library/react-native/extend-expect"],"collectCoverageFrom":["src/**/*.{ts,tsx}","!src/**/*.types.ts","!src/**/index.ts"],"transformIgnorePatterns":["node_modules/(?!((jest-)?react-native|@react-native(-community)?|react-native-reanimated|react-native-gesture-handler|@shopify/react-native-skia|expo-haptics))"]},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","gitHead":"572ae0f9810bf5d01a08827df1382cae21aee154","scripts":{"lint":"eslint src --ext .ts,.tsx --max-warnings 0","test":"jest","format":"prettier --write \"src/**/*.{ts,tsx}\"","tokens":"node token-build/build.js","example":"npm --prefix example","prepare":"bob build","release":"release-it","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"codecollab.co","email":"codecollab.co@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":"angular"}}},"repository":{"url":"git+https://github.com/codecollab-co/neopop-rn.git","type":"git"},"_npmVersion":"10.8.2","description":"NeoPop design system for React Native — unified iOS, Android, Web & Flutter features in one Expo-compatible package","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","react-native":"src/index","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"18.2.0","eslint":"^8.56.0","prettier":"^3.2.0","jest-expo":"^50.0.0","commitlint":"^18.6.0","release-it":"^16.3.0","typescript":"^5.3.3","@types/react":"^18.2.0","expo-haptics":"^13.0.0","react-native":"0.73.4","@types/react-native":"^0.73.0","@storybook/react-native":"^7.6.17","react-native-reanimated":"^3.6.0","react-native-builder-bob":"^0.23.2","eslint-plugin-react-hooks":"^4.6.0","@shopify/react-native-skia":"^1.3.0","@react-native/eslint-config":"^0.73.0","react-native-gesture-handler":"^2.14.0","@testing-library/react-native":"^12.4.0","@commitlint/config-conventional":"^18.6.0","@storybook/addon-ondevice-notes":"^7.6.17","metro-react-native-babel-preset":"^0.77.0","@storybook/addon-ondevice-actions":"^7.6.17","@release-it/conventional-changelog":"^7.0.0","@storybook/addon-ondevice-controls":"^7.6.17","@storybook/addon-ondevice-backgrounds":"^7.6.17"},"peerDependencies":{"react":">=18.0.0","expo-haptics":">=13.0.0","react-native":">=0.73.0","react-native-reanimated":">=3.0.0","@shopify/react-native-skia":">=1.0.0","react-native-gesture-handler":">=2.0.0"},"peerDependenciesMeta":{"expo-haptics":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/neopop-rn_1.0.0_1772693966263_0.4112427834114092","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esmodules":true}],"module","typescript"]}},"2.0.0-alpha.1":{"name":"@codecollab.co/neopop-rn","version":"2.0.0-alpha.1","keywords":["react-native","expo","neopop","design-system","ui-library","3d","animation","skia","typescript"],"license":"Apache-2.0","_id":"@codecollab.co/neopop-rn@2.0.0-alpha.1","maintainers":[{"name":"codecollab.co","email":"codecollab.co@gmail.com"}],"homepage":"https://codecollab-co.github.io/neopop-rn/","bugs":{"url":"https://github.com/codecollab-co/neopop-rn/issues"},"dist":{"shasum":"bd16d8fea23ffec6f6b4c0ac31174a5d2018d0f0","tarball":"https://registry.npmjs.org/@codecollab.co/neopop-rn/-/neopop-rn-2.0.0-alpha.1.tgz","fileCount":815,"integrity":"sha512-LhOgSTWToSn8Ep91uue3ZzFeYTzA7RTe690MmQKEcvO1mM0J7yZzb165/WD2xWCxjWyuXkVVDZe9+909bpRP7g==","signatures":[{"sig":"MEYCIQD0Va3bzkvnb+Zcs5AhgXX5dEJzO2aSe3x9WoalZDjbvAIhAIKzBj9pz8KLQUDdwxDm+CTH46d27B7J4U6ceCNgUgvc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1428173},"jest":{"preset":"react-native","transform":{"^.+\\.(js|jsx|ts|tsx)$":"babel-jest"},"moduleNameMapper":{"^neopop-rn$":"<rootDir>/src/index","^@codecollab\\.co/neopop-rn$":"<rootDir>/src/index"},"coverageThreshold":{"global":{"lines":13,"branches":12,"functions":8,"statements":13},"./src/hooks/":{"lines":90,"branches":80,"functions":85,"statements":90},"./src/utils/":{"lines":90,"branches":75,"functions":80,"statements":85},"./src/theme/NeoPopProvider.tsx":{"lines":95,"branches":75,"functions":95,"statements":95}},"setupFilesAfterEnv":["@testing-library/react-native/extend-expect"],"collectCoverageFrom":["src/**/*.{ts,tsx}","!src/**/*.types.ts","!src/**/index.ts"],"transformIgnorePatterns":["node_modules/(?!((jest-)?react-native|@react-native(-community)?|react-native-reanimated|react-native-gesture-handler|@shopify/react-native-skia|expo-haptics))"]},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","gitHead":"eeccfd9ef0d65d4be79e9cd4a911096fc91a8dda","scripts":{"lint":"eslint src --ext .ts,.tsx --max-warnings 0","test":"jest","format":"prettier --write \"src/**/*.{ts,tsx}\"","tokens":"node token-build/build.js","example":"npm --prefix example","prepare":"bob build","release":"release-it","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"codecollab.co","email":"codecollab.co@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":"angular"}}},"repository":{"url":"git+https://github.com/codecollab-co/neopop-rn.git","type":"git"},"_npmVersion":"10.8.2","description":"NeoPop design system for React Native — unified iOS, Android, Web & Flutter features in one Expo-compatible package","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","react-native":"src/index","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"18.2.0","eslint":"^8.56.0","prettier":"^3.2.0","jest-expo":"^50.0.0","commitlint":"^18.6.0","release-it":"^16.3.0","typescript":"^5.3.3","@types/react":"^18.2.0","expo-haptics":"^13.0.0","react-native":"0.73.4","@types/react-native":"^0.73.0","@storybook/react-native":"^7.6.17","react-native-reanimated":"^3.6.0","react-native-builder-bob":"^0.23.2","eslint-plugin-react-hooks":"^4.6.0","@shopify/react-native-skia":"^1.3.0","@react-native/eslint-config":"^0.73.0","react-native-gesture-handler":"^2.14.0","@testing-library/react-native":"^12.4.0","@commitlint/config-conventional":"^18.6.0","@storybook/addon-ondevice-notes":"^7.6.17","metro-react-native-babel-preset":"^0.77.0","@storybook/addon-ondevice-actions":"^7.6.17","@release-it/conventional-changelog":"^7.0.0","@storybook/addon-ondevice-controls":"^7.6.17","@storybook/addon-ondevice-backgrounds":"^7.6.17"},"peerDependencies":{"react":">=18.3.0","expo-haptics":">=14.0.0","react-native":">=0.76.0","react-native-reanimated":">=3.6.0","@shopify/react-native-skia":">=1.3.0","react-native-gesture-handler":">=2.14.0"},"peerDependenciesMeta":{"expo-haptics":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/neopop-rn_2.0.0-alpha.1_1772780575207_0.9473760515823502","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esmodules":true}],"module","typescript"]}},"2.2.0":{"name":"@codecollab.co/neopop-rn","version":"2.2.0","keywords":["react-native","expo","neopop","design-system","ui-library","3d","animation","skia","typescript"],"license":"Apache-2.0","_id":"@codecollab.co/neopop-rn@2.2.0","maintainers":[{"name":"codecollab.co","email":"codecollab.co@gmail.com"}],"homepage":"https://codecollab-co.github.io/neopop-rn/","bugs":{"url":"https://github.com/codecollab-co/neopop-rn/issues"},"dist":{"shasum":"ee4ee9f133a55ccd98d86c7877ba502fd2f12692","tarball":"https://registry.npmjs.org/@codecollab.co/neopop-rn/-/neopop-rn-2.2.0.tgz","fileCount":815,"integrity":"sha512-tPOgbkC14hORbvZJsXQ7DkhvdLXdy62YEHPuvOpKyrs5MS3tuyi85H8rBuVgyoAUdS2LQqplMpW19wPpIsmOYg==","signatures":[{"sig":"MEUCIQCgRykHNVW4MCFbyL2srEY3JY7URowJ6R8RjBnkAA14hAIgH4UC5oooz8/2Y/0kK69i43SK2KDYVJrvfFz7vfxt+Jk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1428165},"jest":{"preset":"react-native","transform":{"^.+\\.(js|jsx|ts|tsx)$":"babel-jest"},"moduleNameMapper":{"^neopop-rn$":"<rootDir>/src/index","^@codecollab\\.co/neopop-rn$":"<rootDir>/src/index"},"coverageThreshold":{"global":{"lines":13,"branches":12,"functions":8,"statements":13},"./src/hooks/":{"lines":90,"branches":80,"functions":85,"statements":90},"./src/utils/":{"lines":90,"branches":75,"functions":80,"statements":85},"./src/theme/NeoPopProvider.tsx":{"lines":95,"branches":75,"functions":95,"statements":95}},"setupFilesAfterEnv":["@testing-library/react-native/extend-expect"],"collectCoverageFrom":["src/**/*.{ts,tsx}","!src/**/*.types.ts","!src/**/index.ts"],"transformIgnorePatterns":["node_modules/(?!((jest-)?react-native|@react-native(-community)?|react-native-reanimated|react-native-gesture-handler|@shopify/react-native-skia|expo-haptics))"]},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","gitHead":"43720c8e2df1eebace4324ac44b51bac818c479d","scripts":{"lint":"eslint src --ext .ts,.tsx --max-warnings 0","test":"jest","format":"prettier --write \"src/**/*.{ts,tsx}\"","tokens":"node token-build/build.js","example":"npm --prefix example","prepare":"bob build","release":"release-it","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"codecollab.co","email":"codecollab.co@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":"angular"}}},"repository":{"url":"git+https://github.com/codecollab-co/neopop-rn.git","type":"git"},"_npmVersion":"10.8.2","description":"NeoPop design system for React Native — unified iOS, Android, Web & Flutter features in one Expo-compatible package","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","react-native":"src/index","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"18.2.0","eslint":"^8.56.0","prettier":"^3.2.0","jest-expo":"^50.0.0","commitlint":"^18.6.0","release-it":"^16.3.0","typescript":"^5.3.3","@types/react":"^18.2.0","expo-haptics":"^13.0.0","react-native":"0.73.4","@types/react-native":"^0.73.0","@storybook/react-native":"^7.6.17","react-native-reanimated":"^3.6.0","react-native-builder-bob":"^0.23.2","eslint-plugin-react-hooks":"^4.6.0","@shopify/react-native-skia":"^1.3.0","@react-native/eslint-config":"^0.73.0","react-native-gesture-handler":"^2.14.0","@testing-library/react-native":"^12.4.0","@commitlint/config-conventional":"^18.6.0","@storybook/addon-ondevice-notes":"^7.6.17","metro-react-native-babel-preset":"^0.77.0","@storybook/addon-ondevice-actions":"^7.6.17","@release-it/conventional-changelog":"^7.0.0","@storybook/addon-ondevice-controls":"^7.6.17","@storybook/addon-ondevice-backgrounds":"^7.6.17"},"peerDependencies":{"react":">=18.3.0","expo-haptics":">=14.0.0","react-native":">=0.76.0","react-native-reanimated":">=3.6.0","@shopify/react-native-skia":">=1.3.0","react-native-gesture-handler":">=2.14.0"},"peerDependenciesMeta":{"expo-haptics":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/neopop-rn_2.2.0_1772856720544_0.5581485237074877","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esmodules":true}],"module","typescript"]}},"2.3.0":{"name":"@codecollab.co/neopop-rn","version":"2.3.0","description":"NeoPop design system for React Native — unified iOS, Android, Web & Flutter features in one Expo-compatible package","main":"lib/commonjs/index","module":"lib/module/index","types":"lib/typescript/index.d.ts","react-native":"src/index","source":"src/index","sideEffects":false,"license":"Apache-2.0","homepage":"https://codecollab-co.github.io/neopop-rn/","repository":{"type":"git","url":"git+https://github.com/codecollab-co/neopop-rn.git"},"keywords":["react-native","expo","neopop","design-system","ui-library","3d","animation","skia","typescript"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"scripts":{"prepare":"bob build","typecheck":"tsc --noEmit","lint":"eslint src --ext .ts,.tsx --max-warnings 0","lint:fix":"eslint src --ext .ts,.tsx --fix","format":"prettier --write \"src/**/*.{ts,tsx}\"","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","example":"npm --prefix example","release":"release-it","tokens":"node token-build/build.js"},"peerDependencies":{"@shopify/react-native-skia":">=1.3.0","expo-haptics":">=14.0.0","react":">=18.3.0","react-native":">=0.76.0","react-native-gesture-handler":">=2.14.0","react-native-reanimated":">=3.6.0"},"peerDependenciesMeta":{"expo-haptics":{"optional":true}},"devDependencies":{"@commitlint/config-conventional":"^18.6.0","@react-native/eslint-config":"^0.73.0","@release-it/conventional-changelog":"^7.0.0","@shopify/react-native-skia":"^1.3.0","@storybook/addon-ondevice-actions":"^7.6.17","@storybook/addon-ondevice-backgrounds":"^7.6.17","@storybook/addon-ondevice-controls":"^7.6.17","@storybook/addon-ondevice-notes":"^7.6.17","@storybook/react-native":"^7.6.17","@testing-library/react-native":"^12.4.0","@types/react":"^18.2.0","@types/react-native":"^0.73.0","commitlint":"^18.6.0","eslint":"^8.56.0","eslint-plugin-react-hooks":"^4.6.0","expo-haptics":"^13.0.0","jest":"^29.7.0","jest-expo":"^50.0.0","metro-react-native-babel-preset":"^0.77.0","prettier":"^3.2.0","react":"18.2.0","react-native":"0.73.4","react-native-builder-bob":"^0.23.2","react-native-gesture-handler":"^2.14.0","react-native-reanimated":"^3.6.0","release-it":"^16.3.0","typescript":"^5.3.3"},"react-native-builder-bob":{"source":"src","output":"lib","targets":[["commonjs",{"esmodules":true}],"module","typescript"]},"release-it":{"git":{"commitMessage":"chore(release): ${version}","tagName":"v${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular","infile":"CHANGELOG.md"}}},"commitlint":{"extends":["@commitlint/config-conventional"]},"jest":{"preset":"react-native","setupFilesAfterEnv":["@testing-library/react-native/extend-expect"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"babel-jest"},"transformIgnorePatterns":["node_modules/(?!((jest-)?react-native|@react-native(-community)?|react-native-reanimated|react-native-gesture-handler|@shopify/react-native-skia|expo-haptics))"],"moduleNameMapper":{"^neopop-rn$":"<rootDir>/src/index","^@codecollab\\.co/neopop-rn$":"<rootDir>/src/index"},"collectCoverageFrom":["src/**/*.{ts,tsx}","!src/**/*.types.ts","!src/**/index.ts"],"coverageThreshold":{"global":{"statements":75,"branches":70,"functions":65,"lines":78},"./src/utils/":{"statements":85,"branches":75,"functions":80,"lines":90},"./src/hooks/":{"statements":90,"branches":80,"functions":85,"lines":90},"./src/theme/NeoPopProvider.tsx":{"statements":95,"branches":75,"functions":95,"lines":95}}},"_id":"@codecollab.co/neopop-rn@2.3.0","gitHead":"902cd65c113383a7f481aba43101d9c422867f68","bugs":{"url":"https://github.com/codecollab-co/neopop-rn/issues"},"_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-gyonpgEkfLTIEDOqndPWEx7527fc6kuUArV1tfRJm2vRPpwOxqxCsidP0syqrakEq0p6pwjn4DLBGtwhjFWOXg==","shasum":"ee133d78bfe45d97f8e117e1383200ad91b36734","tarball":"https://registry.npmjs.org/@codecollab.co/neopop-rn/-/neopop-rn-2.3.0.tgz","fileCount":815,"unpackedSize":1436472,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICxEoBvOD6pBWRtQRYoamFJ2IOMia8OdqpZyqJ2EFyJFAiEA6cJ+G5ZiLu+nfS0gddKOaNTNMC1tVoR5WaQbRpzhB7o="}]},"_npmUser":{"name":"codecollab.co","email":"codecollab.co@gmail.com"},"directories":{},"maintainers":[{"name":"codecollab.co","email":"codecollab.co@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/neopop-rn_2.3.0_1773040852018_0.9788903556837829"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-24T09:39:52.303Z","modified":"2026-03-09T07:20:52.296Z","0.2.0":"2026-02-24T09:39:52.517Z","0.3.0":"2026-02-27T11:26:55.862Z","0.4.0":"2026-03-04T08:36:46.645Z","0.5.0":"2026-03-04T09:48:03.721Z","0.6.0":"2026-03-04T13:22:15.791Z","1.0.0":"2026-03-05T06:59:26.431Z","2.0.0-alpha.1":"2026-03-06T07:02:55.385Z","2.2.0":"2026-03-07T04:12:00.874Z","2.3.0":"2026-03-09T07:20:52.196Z"},"bugs":{"url":"https://github.com/codecollab-co/neopop-rn/issues"},"license":"Apache-2.0","homepage":"https://codecollab-co.github.io/neopop-rn/","keywords":["react-native","expo","neopop","design-system","ui-library","3d","animation","skia","typescript"],"repository":{"type":"git","url":"git+https://github.com/codecollab-co/neopop-rn.git"},"description":"NeoPop design system for React Native — unified iOS, Android, Web & Flutter features in one Expo-compatible package","maintainers":[{"name":"codecollab.co","email":"codecollab.co@gmail.com"}],"readme":"# @codecollab.co/neopop-rn\n\n> NeoPop design system for React Native — every feature from CRED's iOS, Android, Web, and Flutter libraries unified into one Expo-compatible TypeScript package.\n\n[![npm version](https://img.shields.io/npm/v/@codecollab.co/neopop-rn.svg)](https://www.npmjs.com/package/@codecollab.co/neopop-rn)\n[![license](https://img.shields.io/npm/l/@codecollab.co/neopop-rn.svg)](./LICENSE)\n[![CI](https://github.com/codecollab-co/neopop-rn/actions/workflows/ci.yml/badge.svg)](https://github.com/codecollab-co/neopop-rn/actions)\n[![codecov](https://codecov.io/gh/codecollab-co/neopop-rn/branch/main/graph/badge.svg)](https://codecov.io/gh/codecollab-co/neopop-rn)\n[![docs](https://img.shields.io/badge/docs-live-EDD514?labelColor=0D0D0D)](https://codecollab-co.github.io/neopop-rn/)\n\n> **v1.0 — stable API.** This release marks the first semver-guaranteed, production-ready version of neopop-rn. See the [Migration Guide](./docs/MIGRATION.md) if upgrading from v0.x.\n\n---\n\n## What is NeoPop?\n\nNeoPop is CRED's \"next generation of beautiful, affirmative design\" — a 3D visual language built around multi-surface rendering, depth effects, shimmer animations, and tactile interactions. This library brings the complete NeoPop system to React Native and Expo, covering every component from all four original CRED repos.\n\n---\n\n## Features\n\n- **27 components** — buttons, form controls, navigation, feedback, display, and more\n- **3D surfaces** — five-face model via Skia Canvas, crisp at any pixel density\n- **Fluid animations** — Reanimated 3 on the UI thread, zero JS-thread jank\n- **Shimmer effects** — standalone wrapper or built into any button\n- **Full dark / light mode** — global provider + per-component override\n- **Complete token system** — exported color palettes, spacing, typography scale\n- **Web support** — same codebase works on iOS, Android, and web via Expo\n- **Haptics** — opt-in per component via `expo-haptics`\n- **Strict TypeScript** — every prop interface exported\n- **WCAG 2.1 AA** — full accessibilityRole, accessibilityState, accessibilityValue coverage\n\n---\n\n## Installation\n\n```bash\nnpm install @codecollab.co/neopop-rn\n```\n\n### Peer Dependencies\n\n```bash\nnpx expo install \\\n  react-native-reanimated \\\n  react-native-gesture-handler \\\n  @shopify/react-native-skia \\\n  expo-haptics\n```\n\n| Peer Dependency | Version | Required |\n|---|---|---|\n| `react-native-reanimated` | `>=3.0.0` | Yes |\n| `react-native-gesture-handler` | `>=2.0.0` | Yes |\n| `@shopify/react-native-skia` | `>=1.0.0` | Yes |\n| `expo-haptics` | `>=13.0.0` | Optional |\n\n### Babel Plugin (Required)\n\nAdd the Reanimated plugin to your `babel.config.js` — it must be last:\n\n```js\nmodule.exports = function (api) {\n  api.cache(true);\n  return {\n    presets: ['babel-preset-expo'],\n    plugins: [\n      'react-native-reanimated/plugin', // must be last\n    ],\n  };\n};\n```\n\n---\n\n## Setup\n\nWrap your app with `NeoPopProvider` and `GestureHandlerRootView`:\n\n```tsx\n// App.tsx\nimport React from 'react';\nimport { GestureHandlerRootView } from 'react-native-gesture-handler';\nimport { NeoPopProvider } from '@codecollab.co/neopop-rn';\n\nexport default function App() {\n  return (\n    <GestureHandlerRootView style={{ flex: 1 }}>\n      <NeoPopProvider colorMode=\"dark\">\n        <RootNavigator />\n      </NeoPopProvider>\n    </GestureHandlerRootView>\n  );\n}\n```\n\n---\n\n## Quick Start\n\n```tsx\nimport {\n  NeoPopButton, NeoPopTypography,\n  FontType, FontWeight,\n  ToastProvider, useToast,\n} from '@codecollab.co/neopop-rn';\n\n// 3D Button\n<NeoPopButton\n  variant=\"elevated\"\n  size=\"big\"\n  fullWidth\n  colorConfig={{ color: '#ffffff' }}\n  onPress={() => console.log('pressed')}\n  enableHaptics\n>\n  <NeoPopTypography fontType={FontType.CAPS} fontWeight={FontWeight.BOLD} fontSize={14} color=\"#0d0d0d\">\n    PAY NOW\n  </NeoPopTypography>\n</NeoPopButton>\n\n// Toast\nconst { addToast } = useToast();\naddToast({ content: 'Payment successful!', type: 'success', autoCloseTime: 3000 });\n```\n\n---\n\n## Components\n\n### Buttons\n\n| Component | Description | Docs |\n|---|---|---|\n| `NeoPopButton` | 3D extruded button with shimmer, adjacency, press animation | [NeoPopButton.md](./docs/components/NeoPopButton.md) |\n| `NeoPopTiltedButton` | Skewed parallelogram button with optional floating animation | [NeoPopTiltedButton.md](./docs/components/NeoPopTiltedButton.md) |\n| `NeoPopFloatingButton` | Levitating button with imperative ref API | [NeoPopFloatingButton.md](./docs/components/NeoPopFloatingButton.md) |\n| `NeoPopCard` | Pressable 3D surface container | [NeoPopCard.md](./docs/components/NeoPopCard.md) |\n\n### Form Controls\n\n| Component | Description | Docs |\n|---|---|---|\n| `NeoPopCheckbox` | 3D checkbox with spring checkmark animation | [NeoPopCheckbox.md](./docs/components/NeoPopCheckbox.md) |\n| `NeoPopRadio` | Radio button with spring dot animation | [NeoPopRadio.md](./docs/components/NeoPopRadio.md) |\n| `NeoPopToggle` | Animated pill toggle with haptics | [NeoPopToggle.md](./docs/components/NeoPopToggle.md) |\n| `NeoPopInputField` | Animated border text input with label, error, char count | [NeoPopInputField.md](./docs/components/NeoPopInputField.md) |\n| `NeoPopDropdown` | Pressable dropdown trigger with chevron rotation | [NeoPopDropdown.md](./docs/components/NeoPopDropdown.md) |\n| `NeoPopSlider` | Pan-gesture slider with step snapping and haptics | [NeoPopSlider.md](./docs/components/NeoPopSlider.md) |\n| `NeoPopStepper` | Increment/decrement control with spring label animation | [NeoPopStepper.md](./docs/components/NeoPopStepper.md) |\n| `NeoPopOTPInput` | Multi-box OTP/PIN entry with auto-advance | [NeoPopOTPInput.md](./docs/components/NeoPopOTPInput.md) |\n| `NeoPopDatePicker` | Three-column FlatList scroll wheels (Day/Month/Year) | [NeoPopDatePicker.md](./docs/components/NeoPopDatePicker.md) |\n\n### Navigation & Layout\n\n| Component | Description | Docs |\n|---|---|---|\n| `NeoPopBottomSheet` | Gesture-driven bottom sheet with imperative ref API | [NeoPopBottomSheet.md](./docs/components/NeoPopBottomSheet.md) |\n| `NeoPopHeader` | Page header with back arrow, title, description | [NeoPopHeader.md](./docs/components/NeoPopHeader.md) |\n| `NeoPopBack` | Back navigation row with westward Chevron | [NeoPopBack.md](./docs/components/NeoPopBack.md) |\n| `Row` / `Column` / `PageContainer` | Flexbox layout helpers | [Row.md](./docs/components/Row.md) |\n\n### Feedback & Display\n\n| Component | Description | Docs |\n|---|---|---|\n| `NeoPopToast` | Spring-animated toast with swipe-to-dismiss | [NeoPopToast.md](./docs/components/NeoPopToast.md) |\n| `NeoPopTags` | Semantic pill/badge with type colors | [NeoPopTags.md](./docs/components/NeoPopTags.md) |\n| `NeoPopProgressBar` | Horizontal and circular Skia arc variants | [NeoPopProgressBar.md](./docs/components/NeoPopProgressBar.md) |\n| `NeoPopAccordion` | Spring expand/collapse with animated chevron | [NeoPopAccordion.md](./docs/components/NeoPopAccordion.md) |\n| `NeoPopCarousel` | Pan-gesture carousel with imperative ref API | [NeoPopCarousel.md](./docs/components/NeoPopCarousel.md) |\n| `NeoPopSwipeRow` | Swipeable list row with left/right action panels | [NeoPopSwipeRow.md](./docs/components/NeoPopSwipeRow.md) |\n\n### Primitives\n\n| Component | Description | Docs |\n|---|---|---|\n| `NeoPopShimmer` | Diagonal sweep shimmer wrapper | [NeoPopShimmer.md](./docs/components/NeoPopShimmer.md) |\n| `NeoPopTypography` | Full font system with FontType × FontWeight | [NeoPopTypography.md](./docs/components/NeoPopTypography.md) |\n| `Chevron` / `Cross` / `Pointer` | Skia-rendered icon primitives | [Chevron.md](./docs/components/Chevron.md) |\n\n---\n\n## Documentation\n\nFull documentation is available at **[codecollab-co.github.io/neopop-rn](https://codecollab-co.github.io/neopop-rn/)**.\n\n| Guide | Description |\n|---|---|\n| [Getting Started](https://codecollab-co.github.io/neopop-rn/docs/getting-started) | Installation, setup, quick examples |\n| [THEMING.md](./docs/THEMING.md) | NeoPopProvider, mergeDeep system, dark/light themes, colorConfig deep-dive |\n| [TOKENS.md](./docs/TOKENS.md) | All color, spacing, typography, opacity, and button tokens |\n| [CONTRIBUTING.md](./docs/CONTRIBUTING.md) | Dev setup, commit conventions, PR checklist, how to add a component |\n| [MIGRATION.md](./docs/MIGRATION.md) | v0.x → v1.0 migration guide, deprecated props, removed exports |\n\n### Design Token Exports\n\nTokens from `src/primitives/` are exported in four platform formats via [Style Dictionary](./token-build/):\n\n| Format | Output file |\n|---|---|\n| CSS custom properties | `tokens/css/variables.css` |\n| Figma Tokens JSON | `tokens/figma/tokens.json` |\n| Android resources | `tokens/android/colors.xml`, `tokens/android/dimens.xml` |\n| iOS Swift constants | `tokens/ios/NeoPopTokens.swift` |\n\nRegenerate with `npm run tokens` (requires `cd token-build && npm install` once).\n\n---\n\n## Theming\n\n```tsx\n<NeoPopProvider\n  colorMode=\"dark\"\n  theme={{\n    button: {\n      color: '#06C270',\n      edgeColors: { bottom: '#04A05C', right: '#059E5A' },\n    },\n  }}\n>\n  <App />\n</NeoPopProvider>\n```\n\nSee [docs/THEMING.md](./docs/THEMING.md) for the full guide.\n\n---\n\n## Design Tokens\n\n```tsx\nimport {\n  POP_BLACK, POP_WHITE,\n  SEMANTIC_SUCCESS, SEMANTIC_ERROR,\n  SPACING_MD, SPACING_LG,\n  FontType, FontWeight,\n  DISABLED_OPACITY,\n} from '@codecollab.co/neopop-rn';\n```\n\nSee [docs/TOKENS.md](./docs/TOKENS.md) for the complete token reference.\n\n---\n\n## Platform Support\n\n| Platform | Support | Notes |\n|---|---|---|\n| iOS | ✅ Full | All 27 components |\n| Android | ✅ Full | All 27 components |\n| Web (Expo) | ✅ Full | Skia via WASM |\n\n---\n\n## Performance\n\nAll animated components run on the **UI thread** via Reanimated 3 worklets — zero JS bridge calls during animations, even at 60 FPS.\n\n| Metric | Value |\n|--------|-------|\n| Animated components | 18 / 27 use Reanimated worklets |\n| Skia canvas components | 8 (NeoPop3DSurface, TiltedButton, ScoreMeter, ProgressBar circular, Chevron, Cross, Pointer) |\n| JS thread work per frame | < 1 ms |\n| Full library size (ESM, gzip) | < 50 KB (peer deps excluded) |\n| `sideEffects` | `false` — fully tree-shakeable |\n\nSee [`perf/BENCHMARKS.md`](./perf/BENCHMARKS.md) for the full benchmark report.\n\n---\n\n## Contributing\n\nSee [docs/CONTRIBUTING.md](./docs/CONTRIBUTING.md) for the full contributor guide.\n\nQuick start:\n```bash\ngit clone https://github.com/codecollab-co/neopop-rn.git\ncd neopop-rn\nnpm install --legacy-peer-deps\nnpm run typecheck && npm run lint && npm test\n```\n\n---\n\n## License\n\n[Apache 2.0](./LICENSE)\n\n---\n\n## Acknowledgements\n\nBuilt on top of CRED's original NeoPop design system:\n- [neopop-ios](https://github.com/CRED-CLUB/neopop-ios)\n- [neopop-android](https://github.com/CRED-CLUB/neopop-android)\n- [neopop-web](https://github.com/CRED-CLUB/neopop-web)\n- [neopop-flutter](https://github.com/CRED-CLUB/neopop-flutter)\n","readmeFilename":"README.md"}