{"_id":"@aargon-ui/input","name":"@aargon-ui/input","dist-tags":{"latest":"1.0.0-beta.1"},"versions":{"1.0.0-beta.1":{"name":"@aargon-ui/input","version":"1.0.0-beta.1","description":"Animated input component for React Native","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc","build:watch":"tsc --watch","dev":"tsc --watch","type-check":"tsc --noEmit","lint":"eslint src --ext .ts,.tsx","clean":"rm -rf lib","publish":"npm publish"},"keywords":["react-native","input","animated","ui","component"],"author":{"name":"Md Muhaiminul"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aargon007/aargon-ui.git","directory":"packages/input"},"homepage":"https://github.com/aargon007/aargon-ui/packages/input#readme","bugs":{"url":"https://github.com/aargon007/aargon-ui/issues"},"peerDependencies":{"react":">=19.0.0","react-native":">=0.81.0","react-native-reanimated":">=3.0.0","@expo/vector-icons":"^15.0.2"},"devDependencies":{"@types/react":"~19.1.10","@types/react-native":"^0.72.8","typescript":"~5.9.2"},"_id":"@aargon-ui/input@1.0.0-beta.1","gitHead":"92091459196e85a243093de4c3c95c8ef84026c3","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-KwC0EwqYAqM73CJfcQyZJQ8DWfDOUi68FkYl+un/mmNOkkf+TaLG/5OP0juR3DtK3Gj88fuD3yfRJ3KxdSwDrA==","shasum":"183dcdfbd93550570bf3b56ca2ba95f73713e0a3","tarball":"https://registry.npmjs.org/@aargon-ui/input/-/input-1.0.0-beta.1.tgz","fileCount":14,"unpackedSize":34297,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCGvP5mLm8btShPvJTxsXc5+KrM10TMCMer4avtFFtZugIhALNTCTix5vEgYm5Y6rmFrQkIXyTemmEHzl0XVf/oYxrE"}]},"_npmUser":{"name":"aargon007","email":"muhaiminul032@gmail.com"},"directories":{},"maintainers":[{"name":"aargon007","email":"muhaiminul032@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/input_1.0.0-beta.1_1759206181561_0.4518794653235738"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-30T04:23:01.461Z","1.0.0-beta.1":"2025-09-30T04:23:01.758Z","modified":"2025-09-30T04:23:02.049Z"},"maintainers":[{"name":"aargon007","email":"muhaiminul032@gmail.com"}],"description":"Animated input component for React Native","homepage":"https://github.com/aargon007/aargon-ui/packages/input#readme","keywords":["react-native","input","animated","ui","component"],"repository":{"type":"git","url":"git+https://github.com/aargon007/aargon-ui.git","directory":"packages/input"},"author":{"name":"Md Muhaiminul"},"bugs":{"url":"https://github.com/aargon007/aargon-ui/issues"},"license":"MIT","readme":"# Aargon Input\r\n\r\nA highly customizable, animated input component for React Native with smooth animations and modern design.\r\n\r\n[![npm version](https://badge.fury.io/js/@aargon-ui/input.svg)](https://www.npmjs.com/package/@aargon-ui/input)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\n## Features\r\n\r\n- 🎨 **Multiple Variants** - Default, filled, and outlined styles\r\n- 📏 **Size Options** - Small, medium, and large sizes\r\n- ⚡ **Smooth Animations** - Spring, timing, and bounce animations\r\n- 🎯 **Accessibility** - Full accessibility support with proper ARIA attributes\r\n- 🎨 **Customizable Themes** - Complete theming system with colors and styling\r\n- 🔧 **Flexible API** - Easy to use with comprehensive props\r\n- 📱 **React Native** - Built specifically for React Native with Reanimated\r\n- 🎭 **Icon Support** - Customizable icons with multiple positions\r\n- 🌟 **TypeScript** - Full TypeScript support with comprehensive types\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @aargon-ui/input\r\n# or\r\nyarn add @aargon-ui/input\r\n```\r\n\r\n### Peer Dependencies\r\n\r\nMake sure you have the required peer dependencies installed:\r\n\r\n```bash\r\nnpm install react react-native react-native-reanimated @expo/vector-icons\r\n```\r\n\r\n## Quick Start\r\n\r\n```tsx\r\nimport React, { useState } from 'react';\r\nimport { View } from 'react-native';\r\nimport { AnimatedInput } from '@aargon-ui/input';\r\n\r\nexport default function App() {\r\n    const [value, setValue] = useState('');\r\n\r\n    return (\r\n        <View>\r\n            <AnimatedInput value={value} onChangeText={setValue} placeholder=\"Enter text...\" />\r\n        </View>\r\n    );\r\n}\r\n```\r\n\r\n## Basic Usage\r\n\r\n### Simple Input\r\n\r\n```tsx\r\nconst [value, setValue] = useState('');\r\n\r\n<AnimatedInput value={value} onChangeText={setValue} placeholder=\"Enter text...\" />;\r\n```\r\n\r\n### With Label\r\n\r\n```tsx\r\n<AnimatedInput label=\"Email\" value={value} onChangeText={setValue} placeholder=\"Enter your email\" />\r\n```\r\n\r\n### Password Input\r\n\r\n```tsx\r\n<AnimatedInput label=\"Password\" value={value} onChangeText={setValue} placeholder=\"Enter password\" secureTextEntry={true} />\r\n```\r\n\r\n## Variants\r\n\r\n### Default Variant\r\n\r\n```tsx\r\n<AnimatedInput variant=\"default\">Default</AnimatedInput>\r\n```\r\n\r\n### Filled Variant\r\n\r\n```tsx\r\n<AnimatedInput variant=\"filled\">Filled</AnimatedInput>\r\n```\r\n\r\n### Outlined Variant\r\n\r\n```tsx\r\n<AnimatedInput variant=\"outlined\">Outlined</AnimatedInput>\r\n```\r\n\r\n## Sizes\r\n\r\n```tsx\r\n<AnimatedInput size=\"sm\">Small</AnimatedInput>\r\n<AnimatedInput size=\"md\">Medium</AnimatedInput>\r\n<AnimatedInput size=\"lg\">Large</AnimatedInput>\r\n```\r\n\r\n## Animation Types\r\n\r\n### Spring Animation (Default)\r\n\r\n```tsx\r\n<AnimatedInput animationType=\"spring\">Spring</AnimatedInput>\r\n```\r\n\r\n### Timing Animation\r\n\r\n```tsx\r\n<AnimatedInput animationType=\"timing\" duration={500}>\r\n    Timing\r\n</AnimatedInput>\r\n```\r\n\r\n### Bounce Animation\r\n\r\n```tsx\r\n<AnimatedInput animationType=\"bounce\">Bounce</AnimatedInput>\r\n```\r\n\r\n## Custom Styling\r\n\r\n### Custom Theme\r\n\r\n```tsx\r\nconst customTheme = {\r\n    colors: {\r\n        background: '#FFFFFF',\r\n        border: '#E5E7EB',\r\n        text: '#374151',\r\n        placeholder: '#9CA3AF',\r\n    },\r\n    borderRadius: 8,\r\n};\r\n\r\n<AnimatedInput theme={customTheme}>Custom Theme</AnimatedInput>;\r\n```\r\n\r\n### With Shadow\r\n\r\n```tsx\r\n<AnimatedInput shadow={true}>With Shadow</AnimatedInput>\r\n```\r\n\r\n## Advanced Usage\r\n\r\n### With Icon\r\n\r\n```tsx\r\n<AnimatedInput icon=\"search\" iconPosition=\"left\" value={value} onChangeText={setValue} placeholder=\"Search...\" />\r\n```\r\n\r\n### With Error State\r\n\r\n```tsx\r\n<AnimatedInput value={value} onChangeText={setValue} placeholder=\"Enter email\" error=\"Invalid email format\" />\r\n```\r\n\r\n### Disabled State\r\n\r\n```tsx\r\n<AnimatedInput disabled={true}>Disabled</AnimatedInput>\r\n```\r\n\r\n### Multiline Input\r\n\r\n```tsx\r\n<AnimatedInput multiline={true} numberOfLines={4} value={value} onChangeText={setValue} placeholder=\"Enter message...\" />\r\n```\r\n\r\n## API Reference\r\n\r\n### Props\r\n\r\n| Prop              | Type                                  | Default     | Description                         |\r\n| ----------------- | ------------------------------------- | ----------- | ----------------------------------- |\r\n| `value`           | `string`                              | -           | Input value                         |\r\n| `onChangeText`    | `(text: string) => void`              | -           | Function called when text changes   |\r\n| `placeholder`     | `string`                              | -           | Placeholder text                    |\r\n| `label`           | `string`                              | -           | Label text                          |\r\n| `variant`         | `\"default\" \\| \"filled\" \\| \"outlined\"` | `\"default\"` | Visual variant                      |\r\n| `size`            | `\"sm\" \\| \"md\" \\| \"lg\"`                | `\"md\"`      | Size of the input                   |\r\n| `animationType`   | `\"timing\" \\| \"spring\" \\| \"bounce\"`    | `\"spring\"`  | Type of animation                   |\r\n| `duration`        | `number`                              | `300`       | Animation duration in milliseconds  |\r\n| `icon`            | `string`                              | -           | Icon name from @expo/vector-icons   |\r\n| `iconPosition`    | `\"left\" \\| \"right\"`                   | `\"left\"`    | Position of the icon                |\r\n| `secureTextEntry` | `boolean`                             | `false`     | Whether the input is for passwords  |\r\n| `multiline`       | `boolean`                             | `false`     | Whether the input is multiline      |\r\n| `numberOfLines`   | `number`                              | `1`         | Number of lines for multiline input |\r\n| `disabled`        | `boolean`                             | `false`     | Whether the input is disabled       |\r\n| `error`           | `string`                              | -           | Error message to display            |\r\n| `theme`           | `InputTheme`                          | -           | Custom theme object                 |\r\n| `shadow`          | `boolean`                             | `false`     | Whether to show shadow effect       |\r\n\r\n### Types\r\n\r\n```tsx\r\ninterface InputTheme {\r\n    colors: {\r\n        background: string;\r\n        border: string;\r\n        text: string;\r\n        placeholder: string;\r\n        error: string;\r\n    };\r\n    borderRadius: number;\r\n    fontFamily?: string;\r\n}\r\n\r\ntype InputVariant = 'default' | 'filled' | 'outlined';\r\ntype InputSize = 'sm' | 'md' | 'lg';\r\ntype AnimationType = 'timing' | 'spring' | 'bounce';\r\n```\r\n\r\n## Accessibility\r\n\r\nThe input component includes full accessibility support:\r\n\r\n- **ARIA attributes** - Proper `role` and `aria-label` attributes\r\n- **Keyboard navigation** - Supports keyboard interaction\r\n- **Screen reader support** - Announces value changes to screen readers\r\n- **Focus management** - Proper focus handling for keyboard users\r\n\r\n## Requirements\r\n\r\n- React Native 0.81.0+\r\n- React 19.0.0+\r\n- react-native-reanimated 3.0.0+\r\n- @expo/vector-icons 15.0.2+\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## Support\r\n\r\nIf you have any questions or need help, please:\r\n\r\n1. Check the [documentation](https://github.com/aargon007/aargon-ui#readme)\r\n2. Search [existing issues](https://github.com/aargon007/aargon-ui/issues)\r\n3. Create a [new issue](https://github.com/aargon007/aargon-ui/issues/new)\r\n\r\n## Changelog\r\n\r\nSee [CHANGELOG.md](CHANGELOG.md) for a list of changes and version history.\r\n\r\n---\r\n\r\nMade with ❤️ by [Aargon](https://github.com/aargon007)\r\n","readmeFilename":"README.md","_rev":"1-70b731a9f13fb93b0d384ea46d955a39"}