{"_id":"@agroshine/ags-mobile-ui-kit","_rev":"4-d32340b6e583038c7b15ca7aee56afcd","name":"@agroshine/ags-mobile-ui-kit","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@agroshine/ags-mobile-ui-kit","version":"1.0.0","author":{"name":"AgroShine"},"license":"MIT","_id":"@agroshine/ags-mobile-ui-kit@1.0.0","maintainers":[{"name":"miigangls","email":"miigangls@gmail.com"}],"homepage":"https://github.com/AgroShine/ags-mobile-ui-kit#readme","bugs":{"url":"https://github.com/AgroShine/ags-mobile-ui-kit/issues"},"dist":{"shasum":"355a3224dd4bf16c3dcb3f9b682bceeb4178e558","tarball":"https://registry.npmjs.org/@agroshine/ags-mobile-ui-kit/-/ags-mobile-ui-kit-1.0.0.tgz","fileCount":968,"integrity":"sha512-4XNkb+VtHcGWBwXu0UO/VGn7zTFukeXQJfNezWiDAJknz7UQkap5omPU5vDJ6wfRZDVaw5E5ZzNWMjkfNWNe6g==","signatures":[{"sig":"MEQCIBcSY8GOHVsd5jVa4GxQ8SfiWv7Xyy32owSrDl+jUWmNAiAjgatkPMGGLkwxj1BS0V+uU8FbUF4H6Vlq82Ed4KVuQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734964},"main":"./lib/commonjs/index.js","type":"module","types":"./lib/typescript/commonjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-customizable","config":".cz-config.js"}},"module":"./lib/module/index.js","source":"./src/index.ts","engines":{"node":">=20","pnpm":">=10"},"exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"},"react-native":"./src/index.ts"},"./ui":{"import":{"types":"./lib/typescript/module/src/ui/index.d.ts","default":"./lib/module/ui/index.js"},"require":{"types":"./lib/typescript/commonjs/src/ui/index.d.ts","default":"./lib/commonjs/ui/index.js"},"react-native":"./src/ui/index.ts"},"./lib":{"import":{"types":"./lib/typescript/module/src/lib/index.d.ts","default":"./lib/module/lib/index.js"},"require":{"types":"./lib/typescript/commonjs/src/lib/index.d.ts","default":"./lib/commonjs/lib/index.js"},"react-native":"./src/lib/index.ts"},"./atoms":{"import":{"types":"./lib/typescript/module/src/atoms/index.d.ts","default":"./lib/module/atoms/index.js"},"require":{"types":"./lib/typescript/commonjs/src/atoms/index.d.ts","default":"./lib/commonjs/atoms/index.js"},"react-native":"./src/atoms/index.ts"},"./hooks":{"import":{"types":"./lib/typescript/module/src/hooks/index.d.ts","default":"./lib/module/hooks/index.js"},"require":{"types":"./lib/typescript/commonjs/src/hooks/index.d.ts","default":"./lib/commonjs/hooks/index.js"},"react-native":"./src/hooks/index.ts"},"./molecules":{"import":{"types":"./lib/typescript/module/src/molecules/index.d.ts","default":"./lib/module/molecules/index.js"},"require":{"types":"./lib/typescript/commonjs/src/molecules/index.d.ts","default":"./lib/commonjs/molecules/index.js"},"react-native":"./src/molecules/index.ts"},"./organisms":{"import":{"types":"./lib/typescript/module/src/organisms/index.d.ts","default":"./lib/module/organisms/index.js"},"require":{"types":"./lib/typescript/commonjs/src/organisms/index.d.ts","default":"./lib/commonjs/organisms/index.js"},"react-native":"./src/organisms/index.ts"},"./tailwind.preset":"./tailwind.preset.cjs","./styles/global.css":"./src/styles/global.css"},"gitHead":"34b67f2c22b376eab1fa771474c216035b7d9935","private":false,"scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","build":"bob build","clean":"rm -rf lib","commit":"git cz","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"husky install","release":"semantic-release","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","format-check":"pnpm format:check","format:check":"prettier --check 'src/**/*.{ts,tsx}'","build-storybook":"storybook build"},"_npmUser":{"name":"miigangls","email":"miigangls@gmail.com"},"repository":{"url":"git+https://github.com/AgroShine/ags-mobile-ui-kit.git","type":"git"},"_npmVersion":"11.6.2","description":"AgroShine · librería de componentes React Native reutilizables (NativeWind + rn-primitives + lucide-react-native).","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.13.0","react-native":"./src/index.ts","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"vite":"^6.0.5","husky":"^8.0.3","react":"19.1.0","eslint":"^9.17.0","globals":"^15.14.0","postcss":"^8.4.49","prettier":"^3.4.2","react-dom":"19.1.0","storybook":"^8.5.0","@eslint/js":"^9.17.0","commitizen":"^4.3.1","nativewind":"^4.2.3","typescript":"~5.6.2","@babel/core":"^7.25.2","@types/node":"^22.10.0","tailwindcss":"^3.4.0","@types/react":"^19.0.0","autoprefixer":"^10.4.20","react-native":"0.81.5","@commitlint/cli":"^19.6.1","cz-customizable":"^7.4.0","@storybook/react":"^8.5.0","@types/react-dom":"^19.0.0","react-native-svg":"15.12.1","react-native-web":"~0.19.13","semantic-release":"^24.2.1","@babel/preset-env":"^7.25.0","@storybook/blocks":"^8.5.0","babel-preset-expo":"~12.0.0","typescript-eslint":"^8.18.2","eslint-plugin-react":"^7.37.0","@vitejs/plugin-react":"^4.3.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","@storybook/addon-a11y":"^8.5.0","@storybook/react-vite":"^8.5.0","@semantic-release/exec":"^7.1.0","react-native-reanimated":"~4.1.1","@semantic-release/github":"^11.0.1","react-native-builder-bob":"^0.40.0","eslint-plugin-react-hooks":"^5.0.0","@react-native/babel-preset":"^0.81.0","@semantic-release/changelog":"^6.0.3","@storybook/addon-essentials":"^8.5.0","react-native-safe-area-context":"~5.6.0","@commitlint/config-conventional":"^19.6.0","eslint-plugin-simple-import-sort":"^12.1.1","conventional-changelog-conventionalcommits":"^8.0.0"},"peerDependencies":{"clsx":"^2.0.0","jotai":"^2.0.0","react":"^18.0.0 || ^19.0.0","nativewind":"^4.0.0","tailwindcss":"^3.4.0","react-native":">=0.73.0","tailwind-merge":"^2.0.0 || ^3.0.0","react-native-svg":">=15.0.0","@rn-primitives/slot":"^1.4.0","@rn-primitives/tabs":"^1.4.0","lucide-react-native":"^0.300.0 || ^1.0.0","@rn-primitives/label":"^1.4.0","@rn-primitives/types":"^1.4.0","@rn-primitives/avatar":"^1.4.0","@rn-primitives/dialog":"^1.4.0","@rn-primitives/select":"^1.4.0","@rn-primitives/switch":"^1.4.0","@rn-primitives/toggle":"^1.4.0","@rn-primitives/popover":"^1.4.0","@rn-primitives/tooltip":"^1.4.0","@rn-primitives/checkbox":"^1.4.0","@rn-primitives/progress":"^1.4.0","react-native-reanimated":">=3.0.0","@react-navigation/native":"^7.0.0","@rn-primitives/accordion":"^1.4.0","@rn-primitives/separator":"^1.4.0","class-variance-authority":"^0.7.0","@rn-primitives/hover-card":"^1.4.0","@rn-primitives/collapsible":"^1.4.0","@rn-primitives/radio-group":"^1.4.0","@rn-primitives/toggle-group":"^1.4.0","@rn-primitives/dropdown-menu":"^1.4.0","react-native-gesture-handler":">=2.0.0","react-native-safe-area-context":">=4.0.0"},"peerDependenciesMeta":{"jotai":{"optional":true},"@rn-primitives/slot":{"optional":true},"@rn-primitives/tabs":{"optional":true},"@rn-primitives/label":{"optional":true},"@rn-primitives/types":{"optional":true},"@rn-primitives/avatar":{"optional":true},"@rn-primitives/dialog":{"optional":true},"@rn-primitives/select":{"optional":true},"@rn-primitives/switch":{"optional":true},"@rn-primitives/toggle":{"optional":true},"@rn-primitives/popover":{"optional":true},"@rn-primitives/tooltip":{"optional":true},"@rn-primitives/checkbox":{"optional":true},"@rn-primitives/progress":{"optional":true},"@react-navigation/native":{"optional":true},"@rn-primitives/accordion":{"optional":true},"@rn-primitives/separator":{"optional":true},"@rn-primitives/hover-card":{"optional":true},"@rn-primitives/collapsible":{"optional":true},"@rn-primitives/radio-group":{"optional":true},"@rn-primitives/toggle-group":{"optional":true},"@rn-primitives/dropdown-menu":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ags-mobile-ui-kit_1.0.0_1779899160625_0.4583359046185622","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","exclude":"**/{__tests__,__fixtures__,__mocks__}/**,**/*.{spec,test,stories,examples}.{ts,tsx,js,jsx}","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]}},"1.0.1":{"name":"@agroshine/ags-mobile-ui-kit","version":"1.0.1","author":{"name":"AgroShine"},"license":"MIT","_id":"@agroshine/ags-mobile-ui-kit@1.0.1","maintainers":[{"name":"miigangls","email":"miigangls@gmail.com"}],"homepage":"https://github.com/AgroShine/ags-mobile-ui-kit#readme","bugs":{"url":"https://github.com/AgroShine/ags-mobile-ui-kit/issues"},"dist":{"shasum":"3a2c544159300d49908010f991211a64d7397899","tarball":"https://registry.npmjs.org/@agroshine/ags-mobile-ui-kit/-/ags-mobile-ui-kit-1.0.1.tgz","fileCount":968,"integrity":"sha512-Aj03/dxEinZ8Ie/0pIb4pC39w4kb0ym5aahl4BiY6AZfA3XCbL/D3OC7I9YA3BtN1INQ2kzixJQMKKK32j6bbQ==","signatures":[{"sig":"MEYCIQDJqfwAB+LmUx95giq4Avo6oX2vD3oo/BQI+U3hfTGZXAIhAP6jUowiINjYwSN9h+aA6a6HWrOCUIgajbf8pcZkdZBC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":735184},"main":"./lib/commonjs/index.js","type":"module","types":"./lib/typescript/commonjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-customizable","config":".cz-config.js"}},"module":"./lib/module/index.js","source":"./src/index.ts","engines":{"node":">=20","pnpm":">=10"},"exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"},"react-native":"./src/index.ts"},"./ui":{"import":{"types":"./lib/typescript/module/src/ui/index.d.ts","default":"./lib/module/ui/index.js"},"require":{"types":"./lib/typescript/commonjs/src/ui/index.d.ts","default":"./lib/commonjs/ui/index.js"},"react-native":"./src/ui/index.ts"},"./lib":{"import":{"types":"./lib/typescript/module/src/lib/index.d.ts","default":"./lib/module/lib/index.js"},"require":{"types":"./lib/typescript/commonjs/src/lib/index.d.ts","default":"./lib/commonjs/lib/index.js"},"react-native":"./src/lib/index.ts"},"./atoms":{"import":{"types":"./lib/typescript/module/src/atoms/index.d.ts","default":"./lib/module/atoms/index.js"},"require":{"types":"./lib/typescript/commonjs/src/atoms/index.d.ts","default":"./lib/commonjs/atoms/index.js"},"react-native":"./src/atoms/index.ts"},"./hooks":{"import":{"types":"./lib/typescript/module/src/hooks/index.d.ts","default":"./lib/module/hooks/index.js"},"require":{"types":"./lib/typescript/commonjs/src/hooks/index.d.ts","default":"./lib/commonjs/hooks/index.js"},"react-native":"./src/hooks/index.ts"},"./molecules":{"import":{"types":"./lib/typescript/module/src/molecules/index.d.ts","default":"./lib/module/molecules/index.js"},"require":{"types":"./lib/typescript/commonjs/src/molecules/index.d.ts","default":"./lib/commonjs/molecules/index.js"},"react-native":"./src/molecules/index.ts"},"./organisms":{"import":{"types":"./lib/typescript/module/src/organisms/index.d.ts","default":"./lib/module/organisms/index.js"},"require":{"types":"./lib/typescript/commonjs/src/organisms/index.d.ts","default":"./lib/commonjs/organisms/index.js"},"react-native":"./src/organisms/index.ts"},"./tailwind.preset":"./tailwind.preset.cjs","./styles/global.css":"./src/styles/global.css"},"gitHead":"0e531dcb03a7c2960f203e6690ed4b58f29dcde2","private":false,"scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","build":"bob build","clean":"rm -rf lib","commit":"git cz","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"husky install","release":"semantic-release","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","format-check":"pnpm format:check","format:check":"prettier --check 'src/**/*.{ts,tsx}'","build-storybook":"storybook build"},"_npmUser":{"name":"miigangls","email":"miigangls@gmail.com"},"repository":{"url":"git+https://github.com/AgroShine/ags-mobile-ui-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"AgroShine · librería de componentes React Native reutilizables (NativeWind + rn-primitives + lucide-react-native).","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","react-native":"./src/index.ts","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"vite":"^6.0.5","husky":"^8.0.3","react":"19.1.0","eslint":"^9.17.0","globals":"^15.14.0","postcss":"^8.4.49","prettier":"^3.4.2","react-dom":"19.1.0","storybook":"^8.5.0","@eslint/js":"^9.17.0","commitizen":"^4.3.1","nativewind":"^4.2.3","typescript":"~5.6.2","@babel/core":"^7.25.2","@types/node":"^22.10.0","tailwindcss":"^3.4.0","@types/react":"^19.0.0","autoprefixer":"^10.4.20","react-native":"0.81.5","@commitlint/cli":"^19.6.1","cz-customizable":"^7.4.0","@storybook/react":"^8.5.0","@types/react-dom":"^19.0.0","react-native-svg":"15.12.1","react-native-web":"~0.19.13","semantic-release":"^24.2.1","@babel/preset-env":"^7.25.0","@storybook/blocks":"^8.5.0","babel-preset-expo":"~12.0.0","typescript-eslint":"^8.18.2","eslint-plugin-react":"^7.37.0","@vitejs/plugin-react":"^4.3.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","@storybook/addon-a11y":"^8.5.0","@storybook/react-vite":"^8.5.0","@semantic-release/exec":"^7.1.0","react-native-reanimated":"~4.1.1","@semantic-release/github":"^11.0.1","react-native-builder-bob":"^0.40.0","eslint-plugin-react-hooks":"^5.0.0","@react-native/babel-preset":"^0.81.0","@semantic-release/changelog":"^6.0.3","@storybook/addon-essentials":"^8.5.0","react-native-safe-area-context":"~5.6.0","@commitlint/config-conventional":"^19.6.0","eslint-plugin-simple-import-sort":"^12.1.1","conventional-changelog-conventionalcommits":"^8.0.0"},"peerDependencies":{"clsx":"^2.0.0","jotai":"^2.0.0","react":"^18.0.0 || ^19.0.0","nativewind":"^4.0.0","tailwindcss":"^3.4.0","react-native":">=0.73.0","tailwind-merge":"^2.0.0 || ^3.0.0","react-native-svg":">=15.0.0","@rn-primitives/slot":"^1.4.0","@rn-primitives/tabs":"^1.4.0","lucide-react-native":"^0.300.0 || ^1.0.0","@rn-primitives/label":"^1.4.0","@rn-primitives/types":"^1.4.0","@rn-primitives/avatar":"^1.4.0","@rn-primitives/dialog":"^1.4.0","@rn-primitives/select":"^1.4.0","@rn-primitives/switch":"^1.4.0","@rn-primitives/toggle":"^1.4.0","@rn-primitives/popover":"^1.4.0","@rn-primitives/tooltip":"^1.4.0","@rn-primitives/checkbox":"^1.4.0","@rn-primitives/progress":"^1.4.0","react-native-reanimated":">=3.0.0","@react-navigation/native":"^7.0.0","@rn-primitives/accordion":"^1.4.0","@rn-primitives/separator":"^1.4.0","class-variance-authority":"^0.7.0","@rn-primitives/hover-card":"^1.4.0","@rn-primitives/collapsible":"^1.4.0","@rn-primitives/radio-group":"^1.4.0","@rn-primitives/toggle-group":"^1.4.0","@rn-primitives/dropdown-menu":"^1.4.0","react-native-gesture-handler":">=2.0.0","react-native-safe-area-context":">=4.0.0"},"peerDependenciesMeta":{"jotai":{"optional":true},"@rn-primitives/slot":{"optional":true},"@rn-primitives/tabs":{"optional":true},"@rn-primitives/label":{"optional":true},"@rn-primitives/types":{"optional":true},"@rn-primitives/avatar":{"optional":true},"@rn-primitives/dialog":{"optional":true},"@rn-primitives/select":{"optional":true},"@rn-primitives/switch":{"optional":true},"@rn-primitives/toggle":{"optional":true},"@rn-primitives/popover":{"optional":true},"@rn-primitives/tooltip":{"optional":true},"@rn-primitives/checkbox":{"optional":true},"@rn-primitives/progress":{"optional":true},"@react-navigation/native":{"optional":true},"@rn-primitives/accordion":{"optional":true},"@rn-primitives/separator":{"optional":true},"@rn-primitives/hover-card":{"optional":true},"@rn-primitives/collapsible":{"optional":true},"@rn-primitives/radio-group":{"optional":true},"@rn-primitives/toggle-group":{"optional":true},"@rn-primitives/dropdown-menu":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ags-mobile-ui-kit_1.0.1_1779900025867_0.6357541840757432","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","exclude":"**/{__tests__,__fixtures__,__mocks__}/**,**/*.{spec,test,stories,examples}.{ts,tsx,js,jsx}","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]}},"1.0.2":{"name":"@agroshine/ags-mobile-ui-kit","version":"1.0.2","author":{"name":"AgroShine"},"license":"MIT","_id":"@agroshine/ags-mobile-ui-kit@1.0.2","maintainers":[{"name":"miigangls","email":"miigangls@gmail.com"}],"homepage":"https://github.com/AgroShine/ags-mobile-ui-kit#readme","bugs":{"url":"https://github.com/AgroShine/ags-mobile-ui-kit/issues"},"dist":{"shasum":"04fd5e456aab6ce7aba3ec1bd82a43edaf982683","tarball":"https://registry.npmjs.org/@agroshine/ags-mobile-ui-kit/-/ags-mobile-ui-kit-1.0.2.tgz","fileCount":968,"integrity":"sha512-6+U9Su2jn3ZaumKbuIrEE4H7efK2S03INOP9XAWXdoRW6oG2Fgb58fAMqIbbv7zg4pI8hZ1NTTAkDbRqBgwU5w==","signatures":[{"sig":"MEUCIBwA3dVKHMAYXvrEEzlfM39/8/0HrojqXXuVPJOGvDfbAiEAsGi6aNq+oAxD3HsS/OqA/5JlbB/2bFne8o+k82QuZGM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":735268},"main":"./lib/commonjs/index.js","type":"module","types":"./lib/typescript/commonjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-customizable","config":".cz-config.js"}},"module":"./lib/module/index.js","source":"./src/index.ts","engines":{"node":">=20","pnpm":">=10"},"exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"},"react-native":"./src/index.ts"},"./ui":{"import":{"types":"./lib/typescript/module/src/ui/index.d.ts","default":"./lib/module/ui/index.js"},"require":{"types":"./lib/typescript/commonjs/src/ui/index.d.ts","default":"./lib/commonjs/ui/index.js"},"react-native":"./src/ui/index.ts"},"./lib":{"import":{"types":"./lib/typescript/module/src/lib/index.d.ts","default":"./lib/module/lib/index.js"},"require":{"types":"./lib/typescript/commonjs/src/lib/index.d.ts","default":"./lib/commonjs/lib/index.js"},"react-native":"./src/lib/index.ts"},"./atoms":{"import":{"types":"./lib/typescript/module/src/atoms/index.d.ts","default":"./lib/module/atoms/index.js"},"require":{"types":"./lib/typescript/commonjs/src/atoms/index.d.ts","default":"./lib/commonjs/atoms/index.js"},"react-native":"./src/atoms/index.ts"},"./hooks":{"import":{"types":"./lib/typescript/module/src/hooks/index.d.ts","default":"./lib/module/hooks/index.js"},"require":{"types":"./lib/typescript/commonjs/src/hooks/index.d.ts","default":"./lib/commonjs/hooks/index.js"},"react-native":"./src/hooks/index.ts"},"./molecules":{"import":{"types":"./lib/typescript/module/src/molecules/index.d.ts","default":"./lib/module/molecules/index.js"},"require":{"types":"./lib/typescript/commonjs/src/molecules/index.d.ts","default":"./lib/commonjs/molecules/index.js"},"react-native":"./src/molecules/index.ts"},"./organisms":{"import":{"types":"./lib/typescript/module/src/organisms/index.d.ts","default":"./lib/module/organisms/index.js"},"require":{"types":"./lib/typescript/commonjs/src/organisms/index.d.ts","default":"./lib/commonjs/organisms/index.js"},"react-native":"./src/organisms/index.ts"},"./tailwind.preset":"./tailwind.preset.cjs","./styles/global.css":"./src/styles/global.css"},"gitHead":"d787077a4a8a6d228c27b86242a7fb85faa9d102","private":false,"scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","build":"bob build","clean":"rm -rf lib","commit":"git cz","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"husky install","release":"semantic-release","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","format-check":"pnpm format:check","format:check":"prettier --check 'src/**/*.{ts,tsx}'","build-storybook":"storybook build"},"_npmUser":{"name":"miigangls","email":"miigangls@gmail.com"},"repository":{"url":"git+https://github.com/AgroShine/ags-mobile-ui-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"AgroShine · librería de componentes React Native reutilizables (NativeWind + rn-primitives + lucide-react-native).","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","react-native":"./src/index.ts","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"vite":"^6.0.5","husky":"^8.0.3","react":"19.1.0","eslint":"^9.17.0","globals":"^15.14.0","postcss":"^8.4.49","prettier":"^3.4.2","react-dom":"19.1.0","storybook":"^8.5.0","@eslint/js":"^9.17.0","commitizen":"^4.3.1","nativewind":"^4.2.3","typescript":"~5.6.2","@babel/core":"^7.25.2","@types/node":"^22.10.0","tailwindcss":"^3.4.0","@types/react":"^19.0.0","autoprefixer":"^10.4.20","react-native":"0.81.5","@commitlint/cli":"^19.6.1","cz-customizable":"^7.4.0","@storybook/react":"^8.5.0","@types/react-dom":"^19.0.0","react-native-svg":"15.12.1","react-native-web":"~0.19.13","semantic-release":"^24.2.1","@babel/preset-env":"^7.25.0","@storybook/blocks":"^8.5.0","babel-preset-expo":"~12.0.0","typescript-eslint":"^8.18.2","eslint-plugin-react":"^7.37.0","@vitejs/plugin-react":"^4.3.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","@storybook/addon-a11y":"^8.5.0","@storybook/react-vite":"^8.5.0","@semantic-release/exec":"^7.1.0","react-native-reanimated":"~4.1.1","@semantic-release/github":"^11.0.1","react-native-builder-bob":"^0.40.0","eslint-plugin-react-hooks":"^5.0.0","@react-native/babel-preset":"^0.81.0","@semantic-release/changelog":"^6.0.3","@storybook/addon-essentials":"^8.5.0","react-native-safe-area-context":"~5.6.0","@commitlint/config-conventional":"^19.6.0","eslint-plugin-simple-import-sort":"^12.1.1","conventional-changelog-conventionalcommits":"^8.0.0"},"peerDependencies":{"clsx":"^2.0.0","jotai":"^2.0.0","react":"^18.0.0 || ^19.0.0","nativewind":"^4.0.0","tailwindcss":"^3.4.0","react-native":">=0.73.0","tailwind-merge":"^2.0.0 || ^3.0.0","react-native-svg":">=15.0.0","@rn-primitives/slot":"^1.4.0","@rn-primitives/tabs":"^1.4.0","lucide-react-native":"^0.300.0 || ^1.0.0","@rn-primitives/label":"^1.4.0","@rn-primitives/types":"^1.4.0","@rn-primitives/avatar":"^1.4.0","@rn-primitives/dialog":"^1.4.0","@rn-primitives/select":"^1.4.0","@rn-primitives/switch":"^1.4.0","@rn-primitives/toggle":"^1.4.0","@rn-primitives/popover":"^1.4.0","@rn-primitives/tooltip":"^1.4.0","@rn-primitives/checkbox":"^1.4.0","@rn-primitives/progress":"^1.4.0","react-native-reanimated":">=3.0.0","@react-navigation/native":"^7.0.0","@rn-primitives/accordion":"^1.4.0","@rn-primitives/separator":"^1.4.0","class-variance-authority":"^0.7.0","@rn-primitives/hover-card":"^1.4.0","@rn-primitives/collapsible":"^1.4.0","@rn-primitives/radio-group":"^1.4.0","@rn-primitives/toggle-group":"^1.4.0","@rn-primitives/dropdown-menu":"^1.4.0","react-native-gesture-handler":">=2.0.0","react-native-safe-area-context":">=4.0.0"},"peerDependenciesMeta":{"jotai":{"optional":true},"@rn-primitives/slot":{"optional":true},"@rn-primitives/tabs":{"optional":true},"@rn-primitives/label":{"optional":true},"@rn-primitives/types":{"optional":true},"@rn-primitives/avatar":{"optional":true},"@rn-primitives/dialog":{"optional":true},"@rn-primitives/select":{"optional":true},"@rn-primitives/switch":{"optional":true},"@rn-primitives/toggle":{"optional":true},"@rn-primitives/popover":{"optional":true},"@rn-primitives/tooltip":{"optional":true},"@rn-primitives/checkbox":{"optional":true},"@rn-primitives/progress":{"optional":true},"@react-navigation/native":{"optional":true},"@rn-primitives/accordion":{"optional":true},"@rn-primitives/separator":{"optional":true},"@rn-primitives/hover-card":{"optional":true},"@rn-primitives/collapsible":{"optional":true},"@rn-primitives/radio-group":{"optional":true},"@rn-primitives/toggle-group":{"optional":true},"@rn-primitives/dropdown-menu":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ags-mobile-ui-kit_1.0.2_1784221915392_0.5806868790061954","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","exclude":"**/{__tests__,__fixtures__,__mocks__}/**,**/*.{spec,test,stories,examples}.{ts,tsx,js,jsx}","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]}},"1.1.0":{"_id":"@agroshine/ags-mobile-ui-kit@1.1.0","bugs":{"url":"https://github.com/AgroShine/ags-mobile-ui-kit/issues"},"dist":{"shasum":"17ecddfd63d2a6b44af1b6c77e8ea464fa9ab493","tarball":"https://registry.npmjs.org/@agroshine/ags-mobile-ui-kit/-/ags-mobile-ui-kit-1.1.0.tgz","fileCount":995,"integrity":"sha512-mGGihIDatCud6Nq/ilvzTM03BECxupG9/oyvIxjYonfHzxu37+pU4u6kixGkXWoDsU80KXR+jxq57ji+WVndgQ==","signatures":[{"sig":"MEYCIQCFKMsqm8nLSfjq4NXUiWPz4Zg1mLkGN1gQ92lBQqIb5AIhAP4jnUPJXi50+7gmfNBMQoq3IiB6YUIavrzcjeA2Rmp/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF9Uftz+IjF8zvdOebN345HL1vBrU3zL16QQ6xGcpmuUAiEA7zN+ixQuYTBUELrrYruX8VK6enKnczYmJZjSkTeKvoA="}],"unpackedSize":770438},"main":"./lib/commonjs/index.js","name":"@agroshine/ags-mobile-ui-kit","type":"module","types":"./lib/typescript/commonjs/src/index.d.ts","author":{"name":"AgroShine"},"config":{"commitizen":{"path":"./node_modules/cz-customizable","config":".cz-config.js"}},"module":"./lib/module/index.js","source":"./src/index.ts","engines":{"node":">=20","pnpm":">=10"},"exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"},"react-native":"./src/index.ts"},"./ui":{"import":{"types":"./lib/typescript/module/src/ui/index.d.ts","default":"./lib/module/ui/index.js"},"require":{"types":"./lib/typescript/commonjs/src/ui/index.d.ts","default":"./lib/commonjs/ui/index.js"},"react-native":"./src/ui/index.ts"},"./lib":{"import":{"types":"./lib/typescript/module/src/lib/index.d.ts","default":"./lib/module/lib/index.js"},"require":{"types":"./lib/typescript/commonjs/src/lib/index.d.ts","default":"./lib/commonjs/lib/index.js"},"react-native":"./src/lib/index.ts"},"./atoms":{"import":{"types":"./lib/typescript/module/src/atoms/index.d.ts","default":"./lib/module/atoms/index.js"},"require":{"types":"./lib/typescript/commonjs/src/atoms/index.d.ts","default":"./lib/commonjs/atoms/index.js"},"react-native":"./src/atoms/index.ts"},"./hooks":{"import":{"types":"./lib/typescript/module/src/hooks/index.d.ts","default":"./lib/module/hooks/index.js"},"require":{"types":"./lib/typescript/commonjs/src/hooks/index.d.ts","default":"./lib/commonjs/hooks/index.js"},"react-native":"./src/hooks/index.ts"},"./molecules":{"import":{"types":"./lib/typescript/module/src/molecules/index.d.ts","default":"./lib/module/molecules/index.js"},"require":{"types":"./lib/typescript/commonjs/src/molecules/index.d.ts","default":"./lib/commonjs/molecules/index.js"},"react-native":"./src/molecules/index.ts"},"./organisms":{"import":{"types":"./lib/typescript/module/src/organisms/index.d.ts","default":"./lib/module/organisms/index.js"},"require":{"types":"./lib/typescript/commonjs/src/organisms/index.d.ts","default":"./lib/commonjs/organisms/index.js"},"react-native":"./src/organisms/index.ts"},"./tailwind.preset":"./tailwind.preset.cjs","./styles/global.css":"./src/styles/global.css"},"gitHead":"3adb25c351204b9555bbc8c90c537b7bd3ea912f","license":"MIT","private":false,"scripts":{"lint":"eslint 'src/**/*.{ts,tsx}'","build":"bob build","clean":"rm -rf lib","commit":"git cz","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"husky install","release":"semantic-release","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","format-check":"pnpm format:check","format:check":"prettier --check 'src/**/*.{ts,tsx}'","build-storybook":"storybook build"},"version":"1.1.0","_npmUser":{"name":"miigangls","email":"miigangls@gmail.com"},"homepage":"https://github.com/AgroShine/ags-mobile-ui-kit#readme","repository":{"url":"git+https://github.com/AgroShine/ags-mobile-ui-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"AgroShine · librería de componentes React Native reutilizables (NativeWind + rn-primitives + lucide-react-native).","directories":{},"maintainers":[{"name":"miigangls","email":"miigangls@gmail.com"}],"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","react-native":"./src/index.ts","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"vite":"^6.0.5","husky":"^8.0.3","react":"19.2.8","eslint":"^9.17.0","globals":"^15.14.0","postcss":"^8.4.49","prettier":"^3.4.2","react-dom":"19.2.8","storybook":"^8.5.0","@eslint/js":"^9.17.0","commitizen":"^4.3.1","nativewind":"^4.2.3","typescript":"~5.6.2","@babel/core":"^7.25.2","@types/node":"^22.10.0","tailwindcss":"^3.4.0","@types/react":"^19.2.0","autoprefixer":"^10.4.20","react-native":"0.86.3","@commitlint/cli":"^19.6.1","cz-customizable":"^7.4.0","@storybook/react":"^8.5.0","@types/react-dom":"^19.2.0","react-native-svg":"15.15.5","react-native-web":"~0.19.13","semantic-release":"^24.2.1","@babel/preset-env":"^7.25.0","@storybook/blocks":"^8.5.0","babel-preset-expo":"~57.0.12","typescript-eslint":"^8.18.2","eslint-plugin-react":"^7.37.0","@vitejs/plugin-react":"^4.3.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","@storybook/addon-a11y":"^8.5.0","@storybook/react-vite":"^8.5.0","@semantic-release/exec":"^7.1.0","react-native-reanimated":"~4.7.0","@semantic-release/github":"^11.0.1","react-native-builder-bob":"^0.40.0","eslint-plugin-react-hooks":"^5.0.0","@react-native/babel-preset":"^0.86.0","@semantic-release/changelog":"^6.0.3","@storybook/addon-essentials":"^8.5.0","react-native-safe-area-context":"~5.10.0","@commitlint/config-conventional":"^19.6.0","eslint-plugin-simple-import-sort":"^12.1.1","conventional-changelog-conventionalcommits":"^8.0.0"},"peerDependencies":{"clsx":"^2.0.0","jotai":"^2.0.0","react":"^18.0.0 || ^19.0.0","nativewind":"^4.0.0","tailwindcss":"^3.4.0","react-native":">=0.73.0","tailwind-merge":"^2.0.0 || ^3.0.0","react-native-svg":">=15.0.0","@rn-primitives/slot":"^1.4.0","@rn-primitives/tabs":"^1.4.0","lucide-react-native":"^0.300.0 || ^1.0.0","@rn-primitives/label":"^1.4.0","@rn-primitives/types":"^1.4.0","@rn-primitives/avatar":"^1.4.0","@rn-primitives/dialog":"^1.4.0","@rn-primitives/select":"^1.4.0","@rn-primitives/switch":"^1.4.0","@rn-primitives/toggle":"^1.4.0","@rn-primitives/popover":"^1.4.0","@rn-primitives/tooltip":"^1.4.0","@rn-primitives/checkbox":"^1.4.0","@rn-primitives/progress":"^1.4.0","react-native-reanimated":">=3.0.0","@react-navigation/native":"^7.0.0","@rn-primitives/accordion":"^1.4.0","@rn-primitives/separator":"^1.4.0","class-variance-authority":"^0.7.0","@rn-primitives/hover-card":"^1.4.0","@rn-primitives/collapsible":"^1.4.0","@rn-primitives/radio-group":"^1.4.0","@rn-primitives/toggle-group":"^1.4.0","@rn-primitives/dropdown-menu":"^1.4.0","react-native-gesture-handler":">=2.0.0","react-native-safe-area-context":">=4.0.0"},"peerDependenciesMeta":{"jotai":{"optional":true},"@rn-primitives/slot":{"optional":true},"@rn-primitives/tabs":{"optional":true},"@rn-primitives/label":{"optional":true},"@rn-primitives/types":{"optional":true},"@rn-primitives/avatar":{"optional":true},"@rn-primitives/dialog":{"optional":true},"@rn-primitives/select":{"optional":true},"@rn-primitives/switch":{"optional":true},"@rn-primitives/toggle":{"optional":true},"@rn-primitives/popover":{"optional":true},"@rn-primitives/tooltip":{"optional":true},"@rn-primitives/checkbox":{"optional":true},"@rn-primitives/progress":{"optional":true},"@react-navigation/native":{"optional":true},"@rn-primitives/accordion":{"optional":true},"@rn-primitives/separator":{"optional":true},"@rn-primitives/hover-card":{"optional":true},"@rn-primitives/collapsible":{"optional":true},"@rn-primitives/radio-group":{"optional":true},"@rn-primitives/toggle-group":{"optional":true},"@rn-primitives/dropdown-menu":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ags-mobile-ui-kit_1.1.0_1790353318804_0.22247038147905318"},"react-native-builder-bob":{"output":"lib","source":"src","exclude":"**/{__tests__,__fixtures__,__mocks__}/**,**/*.{spec,test,stories,examples}.{ts,tsx,js,jsx}","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]}}},"time":{"created":"2026-05-27T16:26:00.431Z","modified":"2026-09-25T16:21:59.106Z","1.0.0":"2026-05-27T16:26:00.816Z","1.0.1":"2026-05-27T16:40:26.060Z","1.0.2":"2026-07-16T17:11:55.578Z","1.1.0":"2026-09-25T16:21:58.895Z"},"bugs":{"url":"https://github.com/AgroShine/ags-mobile-ui-kit/issues"},"author":{"name":"AgroShine"},"license":"MIT","homepage":"https://github.com/AgroShine/ags-mobile-ui-kit#readme","repository":{"url":"git+https://github.com/AgroShine/ags-mobile-ui-kit.git","type":"git"},"description":"AgroShine · librería de componentes React Native reutilizables (NativeWind + rn-primitives + lucide-react-native).","maintainers":[{"name":"miigangls","email":"miigangls@gmail.com"}],"readme":"# @agroshine/ags-mobile-ui-kit\n\n[![npm version](https://img.shields.io/npm/v/@agroshine/ags-mobile-ui-kit.svg)](https://www.npmjs.com/package/@agroshine/ags-mobile-ui-kit)\n[![license: MIT](https://img.shields.io/npm/l/@agroshine/ags-mobile-ui-kit.svg)](./LICENSE)\n\nLibrería de componentes **React Native** reutilizables de AgroShine. Es el\nespejo móvil de [`@agroshine/ags-web-ui-kit`](../../Web/ags-web-ui-kit): misma\npaleta, mismos tokens semánticos, misma filosofía AgroShine — adaptada al\nstack RN.\n\n---\n\n## Tabla de contenidos\n\n- [Stack](#stack)\n- [Instalación](#instalación)\n- [Setup en una app Expo / React Native](#setup-en-una-app-expo--react-native)\n- [Setup en Storybook (web)](#setup-en-storybook-web)\n- [Estructura del paquete](#estructura-del-paquete)\n- [API pública](#api-pública)\n  - [Atoms](#atoms)\n  - [Molecules](#molecules)\n  - [Organisms](#organisms)\n  - [UI primitives](#ui-primitives-rn-primitives-style)\n  - [Lib utils](#lib-utils)\n- [Sistema de iconos](#sistema-de-iconos)\n- [Toasts (Toaster)](#toasts-toaster)\n- [Tokens y paleta](#tokens-y-paleta)\n- [Scripts](#scripts)\n- [Compatibilidad](#compatibilidad)\n- [Publicación a npm](#publicación-a-npm)\n- [Contribuir](#contribuir)\n- [Licencia](#licencia)\n\n---\n\n## Stack\n\n- **NativeWind 4** (sintaxis Tailwind v3) — clases utilitarias en React Native.\n- **React Native Reusables** (`@rn-primitives/*`) — primitives accesibles\n  (Radix-style) para RN.\n- **lucide-react-native** — iconografía vectorial.\n- **jotai** — estado del `Toaster`.\n- **react-native-builder-bob 0.40** — empaqueta a CJS, ESM y `.d.ts`.\n- **TypeScript** estricto, ESLint flat config, Prettier.\n\n---\n\n## Instalación\n\n```bash\n# pnpm\npnpm add @agroshine/ags-mobile-ui-kit\n\n# yarn\nyarn add @agroshine/ags-mobile-ui-kit\n\n# npm\nnpm install @agroshine/ags-mobile-ui-kit\n```\n\n### Peer dependencies\n\nEl kit declara como peers (no las trae él mismo) las libs que tu app ya\ndebería estar usando. Instala las que falten:\n\n```bash\npnpm add nativewind tailwindcss@^3 tailwind-merge clsx \\\n  class-variance-authority lucide-react-native \\\n  react-native-gesture-handler react-native-reanimated \\\n  react-native-safe-area-context react-native-svg \\\n  @rn-primitives/slot\n```\n\n`@rn-primitives/*` adicionales (`accordion`, `dialog`, `popover`, `select`,\n`tabs`, `tooltip`, etc.) son **opcionales** — solo instala los que use el\ncomponente que vayas a consumir.\n\n`jotai` es opcional pero **requerido si vas a usar el `Toaster`** o el\n`toastStore` del kit.\n\n---\n\n## Setup en una app Expo / React Native\n\n### 1. `tailwind.config.js`\n\nAsegúrate de incluir el dist del kit en `content` y aplicar tanto el preset\nde NativeWind como el del kit:\n\n```js\nmodule.exports = {\n  content: [\n    './App.{js,jsx,ts,tsx}',\n    './index.{js,jsx,ts,tsx}',\n    './app/**/*.{js,jsx,ts,tsx}',\n    './node_modules/@agroshine/ags-mobile-ui-kit/**/*.{js,ts,jsx,tsx}',\n  ],\n  presets: [\n    require('nativewind/preset'),\n    require('@agroshine/ags-mobile-ui-kit/tailwind.preset'),\n  ],\n};\n```\n\n### 2. `metro.config.js`\n\n```js\nconst { getDefaultConfig } = require('expo/metro-config');\nconst { withNativeWind } = require('nativewind/metro');\n\nconst config = getDefaultConfig(__dirname);\n\nmodule.exports = withNativeWind(config, {\n  input: './global.css', // tu propio CSS app\n});\n```\n\n### 3. `global.css` de la app\n\nRe-exporta los tokens del kit (o cópialos) para que las variables HSL\nestén disponibles:\n\n```css\n@import '@agroshine/ags-mobile-ui-kit/styles/global.css';\n\n/* Y/o agrega tus propios overrides debajo. */\n```\n\n### 4. `babel.config.js`\n\n```js\nmodule.exports = function (api) {\n  api.cache(true);\n  return {\n    presets: [\n      ['babel-preset-expo', { jsxImportSource: 'nativewind' }],\n      'nativewind/babel',\n    ],\n  };\n};\n```\n\n### 5. Provider raíz (opcional pero recomendado)\n\nSi vas a usar `Toaster`, monta `SafeAreaProvider` en la raíz:\n\n```tsx\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\nimport { Toaster } from '@agroshine/ags-mobile-ui-kit';\n\nexport default function App() {\n  return (\n    <SafeAreaProvider>\n      {/* tu app */}\n      <Toaster position=\"bottom\" />\n    </SafeAreaProvider>\n  );\n}\n```\n\n---\n\n## Setup en Storybook (web)\n\nEl kit incluye configuración de Storybook 8 (React + Vite) en\n`.storybook/` que renderiza componentes RN en el browser vía\n`react-native-web`. Para arrancarlo localmente sobre el repo del kit:\n\n```bash\npnpm storybook        # http://localhost:6006\npnpm build-storybook  # static build\n```\n\nDetalles del setup (alias `react-native` → `react-native-web`, stub para\n`react-native-safe-area-context`, NativeWind via PostCSS) viven en\n`.storybook/main.ts` y `.storybook/preview.tsx`. Si añades organisms que\ntoquen APIs nativas adicionales (TurboModules, codegen), recuerda\nstubearlas en `.storybook/mocks/` y excluirlas de `optimizeDeps`.\n\n---\n\n## Estructura del paquete\n\n```\nsrc/\n├── atoms/          Componentes opinionados AgroShine (Button, Input, …)\n├── molecules/      Composiciones (FormField, Select, EntityCard, …)\n├── organisms/      Composiciones de alto nivel (Layout, Drawer, Toaster, …)\n├── ui/             Primitives rn-primitives-style (button, switch, …)\n├── hooks/          Hooks compartidos (placeholder — en desarrollo)\n├── lib/            Utilidades (cn, tailwindColors, toastStore)\n├── foundation/     Catálogo visual (vacío — en desarrollo)\n└── styles/\n    └── global.css  Directivas Tailwind + tokens semánticos HSL\n```\n\n### Subpath exports\n\n| Import path                                         | Contenido                       |\n| --------------------------------------------------- | ------------------------------- |\n| `@agroshine/ags-mobile-ui-kit`                      | Barrel raíz (atoms + molecules + organisms + lib + hooks) |\n| `@agroshine/ags-mobile-ui-kit/atoms`                | Solo atoms                      |\n| `@agroshine/ags-mobile-ui-kit/molecules`            | Solo molecules                  |\n| `@agroshine/ags-mobile-ui-kit/organisms`            | Solo organisms                  |\n| `@agroshine/ags-mobile-ui-kit/ui`                   | Primitives rn-primitives-style  |\n| `@agroshine/ags-mobile-ui-kit/hooks`                | Hooks                           |\n| `@agroshine/ags-mobile-ui-kit/lib`                  | `cn`, `tailwindColors`, toast atoms |\n| `@agroshine/ags-mobile-ui-kit/tailwind.preset`      | Preset de Tailwind              |\n| `@agroshine/ags-mobile-ui-kit/styles/global.css`    | Stylesheet base + tokens HSL    |\n\n> Los primitives bajo `/ui` **no** se re-exportan desde el barrel raíz\n> para evitar colisión con sus wrappers opinionados.\n\n---\n\n## API pública\n\n### Atoms\n\n| Componente   | Props clave                                                                 |\n| ------------ | --------------------------------------------------------------------------- |\n| `Button`     | `variant` (`primary` · `secondary` · `outline` · `ghost` · `danger` · `success` · `link`), `size` (`sm`/`md`/`lg`), `loading`, `disabled`, `fullWidth` |\n| `IconButton` | Igual que `Button` + `icon: IconName`                                       |\n| `Input`      | `label`, `helperText`, `error`, `containerClassName`, etc. (extiende `TextInputProps`) |\n| `TextArea`   | Igual que `Input` + multi-línea                                             |\n| `Badge`      | `tone` (`default` · `secondary` · `success` · `warning` · `danger` · `outline` · `muted`) |\n| `Card`       | Wrapper + `CardHeader`, `CardContent`, `CardFooter`, `CardTitle`, `CardDescription` |\n| `Divider`    | `orientation` (`horizontal`/`vertical`)                                     |\n| `Icon`       | `name: IconName`, `size`, `className` (color por Tailwind)                  |\n| `Snackbar`   | `variant` (`default` · `success` · `info` · `warning` · `error`), `message`, `actionLabel`, `onActionPress` |\n| `Spinner`    | Wrapper de `ActivityIndicator`                                              |\n| `Text`       | `variant` (`default` · `h1`..`h4` · `p` · `blockquote` · `code` · `lead` · `large` · `small` · `muted`) |\n\n```tsx\nimport { Button, Input, Badge } from '@agroshine/ags-mobile-ui-kit';\n\n<Button variant=\"primary\" loading={isSubmitting} onPress={save}>\n  Guardar\n</Button>\n\n<Input label=\"Correo\" error={!!errors.email} helperText={errors.email} />\n\n<Badge tone=\"success\">Sincronizado</Badge>\n```\n\n### Molecules\n\n| Componente             | Descripción                                                  |\n| ---------------------- | ------------------------------------------------------------ |\n| `ActionSheet`          | Bottom sheet modal con acciones                              |\n| `ConfirmActionSheet`   | `ActionSheet` con CTA destructiva + cancelar                 |\n| `CardButton`           | Card táctil con icono + label                                |\n| `EmptyState`           | Estado vacío (icono + título + descripción + CTA)            |\n| `EntityCard`           | Card para listas (avatar/icon + título + subtítulo + actions) |\n| `FormField`            | Wrapper para inputs (`label`, `required`, `error`, `helperText`) |\n| `ObservationCard`      | Card de observación con estado (`pending`/`synced`/`error`)  |\n| `SearchInput`          | `Input` con icono de búsqueda + clear                        |\n| `Select`               | Dropdown con búsqueda opcional (`options`, `searchable`)     |\n| `SyncStatusBadge`      | Badge con estado de sync                                     |\n| `TechnicalSheetButton` | Botón que abre el `TechnicalSheet` organism                  |\n\n```tsx\nimport { FormField, Select } from '@agroshine/ags-mobile-ui-kit';\n\n<FormField label=\"País\" required error={errors.country}>\n  <Select\n    value={country}\n    options={[\n      { label: 'Chile', value: 'CL' },\n      { label: 'Perú', value: 'PE' },\n    ]}\n    onSelect={setCountry}\n    searchable\n  />\n</FormField>\n```\n\n### Organisms\n\n| Componente        | Descripción                                                |\n| ----------------- | ---------------------------------------------------------- |\n| `Layout`          | Contenedor de pantalla (safe area + scroll opcional)       |\n| `ScreenHeader`    | Header con back + título + acciones                        |\n| `Breadcrumbs`     | Migas de pan                                               |\n| `BottomMenu`      | Menú inferior con acciones (observación, ficha, crear, etc.) |\n| `Drawer`          | Drawer lateral / modal sheet                               |\n| `TechnicalSheet`  | Ficha técnica de Block/Ship (datos de cultivo)             |\n| `Toaster`         | Stack de toasts global (consume `toastStore`)              |\n| `QueryState`      | Renderiza loading / error / empty / data para queries      |\n\n### UI primitives (rn-primitives-style)\n\nWrappers shadcn-style, sin opinión de marca. Útiles para construir\ncomponentes nuevos:\n\n`badge` · `button` · `card` · `icon` · `input` · `separator` · `skeleton`\n· `text` · `textarea`\n\n```tsx\nimport { Button, buttonVariants } from '@agroshine/ags-mobile-ui-kit/ui';\n\n// con variants para construir tus propios componentes\n<Pressable className={buttonVariants({ variant: 'outline', size: 'lg' })}>\n  <Text>Custom</Text>\n</Pressable>\n```\n\n### Lib utils\n\n```ts\nimport { cn, addToastAtom, dismissToastAtom, toastsAtom }\n  from '@agroshine/ags-mobile-ui-kit/lib';\n\n// cn: clsx + tailwind-merge\n<View className={cn('p-4', isActive && 'bg-primary-50', extraClass)} />\n```\n\n---\n\n## Sistema de iconos\n\nEl atom `Icon` mapea nombres semánticos a iconos de `lucide-react-native`.\n**Las pantallas y componentes propios deben usar `Icon` y nunca importar\n`lucide-react-native` directamente** (esto centraliza el catálogo y permite\nsustituir el set de iconos en el futuro).\n\n```tsx\nimport { Icon } from '@agroshine/ags-mobile-ui-kit';\n\n<Icon name=\"checkCircle\" size={20} className=\"text-success\" />\n```\n\nNombres disponibles (extracto):\n`alert` · `archive` · `arrowLeft` · `arrowRight` · `check` · `checkCircle` ·\n`checkSquare` · `chevronDown` · `chevronLeft` · `chevronRight` ·\n`chevronUp` · `circle` · `add` · `edit` · `eye` · `eyeOff` · `fileText` ·\n`filter` · `home` · `info` · `list` · `listChecks` · `logout` · `menu` ·\n`more` · `pencil` · `plus` · `refresh` · `save` · `search` · `send` ·\n`settings` · `square` · `trash` · `upload` · `close`\n\nEl catálogo completo está en `src/atoms/Icon/icons.ts`. Si pasas un nombre\ndesconocido y `__DEV__` está activo verás un warning en consola; el render\ncae a `menu` como fallback seguro.\n\n---\n\n## Toasts (Toaster)\n\nEl `Toaster` es un organism global respaldado por átomos de Jotai\n(`toastStore`). Mismo enfoque shadcn/sonner pero RN-native.\n\n```tsx\n// App.tsx\nimport { Toaster } from '@agroshine/ags-mobile-ui-kit';\n\n<Toaster position=\"bottom\" visibleToasts={3} />\n```\n\n```tsx\n// Cualquier pantalla\nimport { useSetAtom } from 'jotai';\nimport { addToastAtom } from '@agroshine/ags-mobile-ui-kit/lib';\n\nconst showToast = useSetAtom(addToastAtom);\n\nshowToast({\n  message: 'Observación guardada',\n  variant: 'success',\n  duration: 4000, // opcional, default 4000\n  actionLabel: 'Deshacer', // opcional\n  onActionPress: () => undo(),\n});\n```\n\nVariantes (heredadas de `Snackbar`): `default` · `success` · `info` ·\n`warning` · `error`.\n\n---\n\n## Tokens y paleta\n\nLa paleta de marca (`default` · `primary` · `secondary` · `success` ·\n`warning` · `danger` · `grey`, escala completa 50→900 + `DEFAULT` +\n`foreground`, además de `content1`-`content4`, `focus`, `overlay`) es\n**idéntica** a la del web kit (`ags-web-ui-kit/src/styles/tokens.css`).\nVive en `tailwind.preset.cjs` con sintaxis Tailwind v3 porque NativeWind 4\naún no soporta el `@theme` de v4.\n\nLos **tokens semánticos shadcn-compatibles** (`--background`, `--border`,\n`--ring`, `--muted`, `--accent`, `--popover`, `--card`, `--destructive`,\n`--input`, `--radius`) viven en `src/styles/global.css` como variables HSL.\nEl soporte de `.dark:root` está activo — para alternarlo, agrega la clase\n`dark` a la raíz desde tu app.\n\nAcceso programático desde JS (útil para `style={}` o componentes que no\naceptan `className`):\n\n```ts\nimport { tailwindColors } from '@agroshine/ags-mobile-ui-kit/lib';\n\n<ActivityIndicator color={tailwindColors.primary.DEFAULT} />\n```\n\n---\n\n## Scripts\n\n| Comando                | Descripción                                                |\n| ---------------------- | ---------------------------------------------------------- |\n| `pnpm build`           | Compila con `react-native-builder-bob` (CJS + ESM + d.ts)  |\n| `pnpm clean`           | Borra `lib/`                                               |\n| `pnpm typecheck`       | `tsc --noEmit`                                             |\n| `pnpm lint`            | ESLint sobre `src/`                                        |\n| `pnpm lint:fix`        | ESLint con `--fix`                                         |\n| `pnpm format`          | Prettier sobre `src/`                                      |\n| `pnpm format:check`    | Prettier en modo check                                     |\n| `pnpm storybook`       | Levanta Storybook web (vite + RN-Web) en `:6006`           |\n| `pnpm build-storybook` | Build estático de Storybook                                |\n| `pnpm commit`          | Commitizen interactivo (cz-customizable)                   |\n| `pnpm release`         | semantic-release                                           |\n\n---\n\n## Compatibilidad\n\n- **Node** ≥ 20\n- **pnpm** ≥ 10 (es el package manager del kit; las apps consumidoras\n  pueden usar yarn/npm)\n- **React** 18 o 19\n- **React Native** ≥ 0.73 (probado con 0.81.x)\n- **Expo SDK** 50+ (NativeWind 4 requiere Reanimated 3+)\n- **NativeWind** 4.x\n- **Tailwind CSS** 3.4+\n\n> ⚠️ El kit se construye y publica con `react-native-builder-bob 0.40`.\n> Los tipos viven en `lib/typescript/{commonjs,module}/src/**`. Si forkeas\n> el kit y cambias `bob`, verifica que el campo `exports.<sub>.import.types`\n> y `.require.types` siga apuntando a archivos existentes (corre\n> `pnpm build && npm pack --dry-run`).\n\n---\n\n## Publicación a npm\n\nEl paquete está bajo el scope público `@agroshine`. Para publicar:\n\n```bash\npnpm typecheck    # debe pasar\npnpm lint         # debe pasar\npnpm build        # genera lib/\nnpm pack --dry-run  # revisa contenido del tarball\n\n# bump de versión (semantic-release lo hace automático en CI):\nnpm version patch | minor | major\n\nnpm publish --access public\n```\n\nLa automatización vía `pnpm release` usa `semantic-release` con changelog,\ngit tag, npm publish y GitHub release.\n\n---\n\n## Contribuir\n\n1. Crea una rama desde `main`.\n2. `pnpm install` (Node ≥ 20, pnpm ≥ 10).\n3. Añade tu componente bajo el nivel correcto (`atoms` / `molecules` /\n   `organisms`) con su `index.ts`, `Component.tsx`, `Component.types.ts` y\n   `Component.stories.tsx`.\n4. Re-exporta desde el barrel del nivel.\n5. `pnpm typecheck && pnpm lint && pnpm build`.\n6. `pnpm commit` para un commit Conventional via Commitizen.\n7. Abre PR.\n\nConvenciones:\n\n- **Nunca importes** `lucide-react-native` directo desde un componente del\n  kit — usa el atom `Icon` y agrega el icono al catálogo si hace falta.\n- **Nunca importes desde pantallas de las apps** — el kit es self-contained.\n- **Estilos solo vía `className`** (NativeWind). Evita `style={{ ... }}`\n  salvo para valores no expresables en Tailwind.\n- **Props con `Props` suffix** en sus types files (`ButtonProps`).\n- Si tu componente necesita un primitive nuevo, agrégalo a `src/ui/`\n  primero y luego envuélvelo en el atom/molecule/organism.\n\n---\n\n## Licencia\n\n[MIT](./LICENSE) © AgroShine\n","readmeFilename":"README.md"}