{"_id":"@amharic-virtual-keyboard/react","_rev":"8-04c89aa6e1d84dcd5f954802d9c9828f","name":"@amharic-virtual-keyboard/react","dist-tags":{"latest":"1.0.1"},"versions":{"0.1.0":{"name":"@amharic-virtual-keyboard/react","version":"0.1.0","license":"MIT","_id":"@amharic-virtual-keyboard/react@0.1.0","maintainers":[{"name":"amuif","email":"amudiworks@gmail.com"}],"dist":{"shasum":"797b6ff42fc65a38d740f61d01c2fa9122bffbfb","tarball":"https://registry.npmjs.org/@amharic-virtual-keyboard/react/-/react-0.1.0.tgz","fileCount":24,"integrity":"sha512-KWoJPh9Tf7g+HcMv8arkUcFEont4OxP8znkK0C6x09LM0tzZ9kBaq7GJu1XsR+FhuBH3NHLJ0rwJ1A+Zn7Hhqw==","signatures":[{"sig":"MEUCIFI/VXs//bHvTvz9EdkzhmfGywF2C52aDzRVHNg5T7IOAiEAjDWCglmrgmJHi7e/b3anx55m/55UExu3vgr4udxsD8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75541},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"aa211c90dc6fe56af57fcd7fc7234f0718047ad4","private":false,"scripts":{"dev":"vite dev","lint":"eslint .","test":"vitest","build":"vite build","test:ui":"vitest --ui","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"amuif","email":"amudiworks@gmail.com"},"_npmVersion":"11.6.2","description":"Amharic virtual keyboard React component","directories":{},"_nodeVersion":"24.11.1","dependencies":{"@amharic-keyboard/core":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^28.0.0","react":"^18.2.0","eslint":"^8.56.0","vitest":"^4.0.18","react-dom":"^18.2.0","@types/react":"^18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^18.2.0","@repo/eslint-config":"workspace:*","@vitejs/plugin-react":"^5.1.3","@amharic-keyboard/core":"workspace:*","@testing-library/react":"^16.3.2","@repo/typescript-config":"workspace:*","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.0_1770210718398_0.9666524689161105","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@amharic-virtual-keyboard/react","version":"0.1.2","license":"MIT","_id":"@amharic-virtual-keyboard/react@0.1.2","maintainers":[{"name":"amuif","email":"amudiworks@gmail.com"}],"dist":{"shasum":"87560a3a671813096673a274ff7193525973a121","tarball":"https://registry.npmjs.org/@amharic-virtual-keyboard/react/-/react-0.1.2.tgz","fileCount":24,"integrity":"sha512-UaI0aundBsdMN5pO+VNz05mYI/hK2K1oZHA9p7K8HMHjF0P4VayeQy7BM/WZGUb2OTUc+Qk5GbjG+t8RkFqWsQ==","signatures":[{"sig":"MEUCIFcPYqsa8pXEr/a1WP0S7jN2NbY4MkGnVfQy/4w/ucgWAiEAmZ1a7xGUKhX4nft3aNdhfbc/Pmj3QK7PhXOdXCnSjJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75478},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"aa211c90dc6fe56af57fcd7fc7234f0718047ad4","private":false,"scripts":{"dev":"vite dev","lint":"eslint .","test":"vitest","build":"vite build","test:ui":"vitest --ui","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"amuif","email":"amudiworks@gmail.com"},"_npmVersion":"11.6.2","description":"Amharic virtual keyboard React component","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^28.0.0","react":"^18.2.0","eslint":"^8.56.0","vitest":"^4.0.18","react-dom":"^18.2.0","@types/react":"^18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^18.2.0","@repo/eslint-config":"workspace:*","@vitejs/plugin-react":"^5.1.3","@amharic-keyboard/core":"workspace:*","@testing-library/react":"^16.3.2","@repo/typescript-config":"workspace:*","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.2_1770211963392_0.774439425805828","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@amharic-virtual-keyboard/react","version":"0.1.3","license":"MIT","_id":"@amharic-virtual-keyboard/react@0.1.3","maintainers":[{"name":"amuif","email":"amudiworks@gmail.com"}],"dist":{"shasum":"382b3188ad0f0a71f64986be76aa8bce9f8bac33","tarball":"https://registry.npmjs.org/@amharic-virtual-keyboard/react/-/react-0.1.3.tgz","fileCount":24,"integrity":"sha512-PEBp9fKvM8ichkokRZcIE+yXXBInOAA+JjNGdPOktLaZjBoYEwIOSkubY/dXtcY9bh/FMkOoZA1FgabUHtNUGQ==","signatures":[{"sig":"MEYCIQDPSE543wK97RRUPP8yc175hCcP8JuB7Tr22HCGWFZcFAIhAKvqZp/pwKS/dWbDRynHMttCCl6oE3FHPZ/B/Z3Ia+km","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75648},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./dist/react.css":"./dist/react.css"},"gitHead":"aa211c90dc6fe56af57fcd7fc7234f0718047ad4","private":false,"scripts":{"dev":"vite dev","lint":"eslint .","test":"vitest","build":"vite build","test:ui":"vitest --ui","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"amuif","email":"amudiworks@gmail.com"},"_npmVersion":"11.6.2","description":"Amharic virtual keyboard React component","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^28.0.0","react":"^18.2.0","eslint":"^8.56.0","vitest":"^4.0.18","react-dom":"^18.2.0","@types/react":"^18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^18.2.0","@repo/eslint-config":"workspace:*","@vitejs/plugin-react":"^5.1.3","@amharic-keyboard/core":"workspace:*","@testing-library/react":"^16.3.2","@repo/typescript-config":"workspace:*","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.3_1770212909317_0.5929532442731347","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@amharic-virtual-keyboard/react","version":"0.1.4","license":"MIT","_id":"@amharic-virtual-keyboard/react@0.1.4","maintainers":[{"name":"amuif","email":"amudiworks@gmail.com"}],"dist":{"shasum":"a804d8ec5cb79077aec2f2650261adce2e8af07e","tarball":"https://registry.npmjs.org/@amharic-virtual-keyboard/react/-/react-0.1.4.tgz","fileCount":24,"integrity":"sha512-ZPpwgB9v478Il18ivwtYT5kway3e932K3C9171QLReZHkt6xBFCwTus/eImiMDdJE++VMzzDMznAreLOKA3dsA==","signatures":[{"sig":"MEYCIQDQacwdxFubg5EkXtAP23uSEcAw1b552YVItLfiCogvUwIhAN4X6e1OFvjc72+L9NRo7ZJ/D9BYb1JSkrsVMp2sZ/5C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75648},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./dist/react.css":"./dist/react.css"},"gitHead":"aa211c90dc6fe56af57fcd7fc7234f0718047ad4","private":false,"scripts":{"dev":"vite dev","lint":"eslint .","test":"vitest","build":"vite build","test:ui":"vitest --ui","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"amuif","email":"amudiworks@gmail.com"},"_npmVersion":"11.6.2","description":"Amharic virtual keyboard React component","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^28.0.0","react":"^18.2.0","eslint":"^8.56.0","vitest":"^4.0.18","react-dom":"^18.2.0","@types/react":"^18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^18.2.0","@repo/eslint-config":"workspace:*","@vitejs/plugin-react":"^5.1.3","@amharic-keyboard/core":"workspace:*","@testing-library/react":"^16.3.2","@repo/typescript-config":"workspace:*","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.4_1770213281649_0.7944827189258303","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@amharic-virtual-keyboard/react","version":"0.1.5","license":"MIT","_id":"@amharic-virtual-keyboard/react@0.1.5","maintainers":[{"name":"amuif","email":"amudiworks@gmail.com"}],"dist":{"shasum":"1e87d386d2920ca68d72cd0b23b28db23f414cf9","tarball":"https://registry.npmjs.org/@amharic-virtual-keyboard/react/-/react-0.1.5.tgz","fileCount":7,"integrity":"sha512-lSYQh9L3rJtb9xDxx2pghiyG28sdJInXeq7/EPTx3G7ShzP2Enk/zxcvmvlhY9q8aEudjSjiTTfuKOKzmqQ0OQ==","signatures":[{"sig":"MEYCIQCA+tvinqcOrjo5fjZ8er7Gl/1Pa6GKiW4D1OJwQhvKiQIhANK7xSgX8/Q3XuupgNhkUHQD35GezzjEeGcsy7Of/Kg9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127680},"main":"dist/index.umd.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./dist/react.css":"./dist/react.css"},"gitHead":"aa211c90dc6fe56af57fcd7fc7234f0718047ad4","private":false,"scripts":{"dev":"vite dev","lint":"eslint .","test":"vitest","build":"vite build","test:ui":"vitest --ui","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"amuif","email":"amudiworks@gmail.com"},"_npmVersion":"11.6.2","description":"Amharic virtual keyboard React component","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^28.0.0","react":"^18.2.0","eslint":"^8.56.0","vitest":"^4.0.18","react-dom":"^18.2.0","@types/react":"^18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^18.2.0","@repo/eslint-config":"workspace:*","@vitejs/plugin-react":"^5.1.3","@amharic-keyboard/core":"workspace:*","@testing-library/react":"^16.3.2","@repo/typescript-config":"workspace:*","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.5_1770214710376_0.4785738940390245","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@amharic-virtual-keyboard/react","version":"0.1.6","license":"MIT","_id":"@amharic-virtual-keyboard/react@0.1.6","maintainers":[{"name":"amuif","email":"amudiworks@gmail.com"}],"dist":{"shasum":"81e6d63d67757e3fb457a1718915405f3f5b35f6","tarball":"https://registry.npmjs.org/@amharic-virtual-keyboard/react/-/react-0.1.6.tgz","fileCount":8,"integrity":"sha512-avSqVMoQxQ6Fw5nI5Bo2TJdMkQXS6FFdPiIkxNP1YCByJkMizXvwZvhYMV0CppUP81Z33ojgO3TvGY7tT2PuXg==","signatures":[{"sig":"MEUCIQDkWoEnbV+qtUSt0rhOUJUeBQNkB9u3QF4beSgAX2s82wIgVf03KSO+/AJ5TWtE6bYhrDusqq8zVHPWWJ/YSEWOebw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131563},"main":"dist/index.umd.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./dist/react.css":"./dist/react.css"},"gitHead":"1af8066337c5f3919f0d32013964211be8ac237b","private":false,"scripts":{"dev":"vite dev","lint":"eslint .","test":"vitest","build":"vite build","test:ui":"vitest --ui","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"amuif","email":"amudiworks@gmail.com"},"_npmVersion":"11.6.2","description":"Amharic virtual keyboard React component","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^28.0.0","react":"^18.2.0","eslint":"^8.56.0","vitest":"^4.0.18","react-dom":"^18.2.0","@types/react":"^18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^18.2.0","@repo/eslint-config":"workspace:*","@vitejs/plugin-react":"^5.1.3","@amharic-keyboard/core":"workspace:*","@testing-library/react":"^16.3.2","@repo/typescript-config":"workspace:*","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.6_1770279088631_0.34799898265586693","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@amharic-virtual-keyboard/react","version":"1.0.0","keywords":["amharic","amharic keyboard","virtual keyboard","ethiopian keyboard","geez","ethiopic","react keyboard","virtual keyboard react","draggable keyboard","onscreen keyboard","amharic input","ethiopian language","አማርኛ ኪቦርድ","react component","input keyboard","touchscreen keyboard","customizable keyboard","amharic typing"],"license":"MIT","_id":"@amharic-virtual-keyboard/react@1.0.0","maintainers":[{"name":"amuif","email":"amudiworks@gmail.com"}],"dist":{"shasum":"74b1bc48402a17e1683801ae49ca511b9bf9d761","tarball":"https://registry.npmjs.org/@amharic-virtual-keyboard/react/-/react-1.0.0.tgz","fileCount":8,"integrity":"sha512-2KoyTG311kgZ1QLcixu/xtV3ZfRGLSN8X3giKMQJxM58lBeGaLbvH0swHq8n/lbVjf9IOhk6yCJjVbVNhdu49Q==","signatures":[{"sig":"MEUCIQClCkWodjkpgEo3EqSpRNYlI/rNaa7KeQHWiESSO1ybEAIgVv8QuSURFoSLCKk4sdctgEfSjfSOcKwcl72VnWkvVA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132007},"main":"dist/index.umd.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./dist/react.css":"./dist/react.css"},"gitHead":"587b81e3c69fc3b965c956872a3f53e008e1e065","private":false,"scripts":{"dev":"vite dev","lint":"eslint .","test":"vitest","build":"vite build","test:ui":"vitest --ui","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"amuif","email":"amudiworks@gmail.com"},"_npmVersion":"11.6.2","description":"Amharic virtual keyboard React component","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","jsdom":"^28.0.0","react":"^18.2.0","eslint":"^8.56.0","vitest":"^4.0.18","react-dom":"^18.2.0","@types/react":"^18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^18.2.0","@repo/eslint-config":"workspace:*","@vitejs/plugin-react":"^5.1.3","@amharic-keyboard/core":"workspace:*","@testing-library/react":"^16.3.2","@repo/typescript-config":"workspace:*","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react_1.0.0_1770279324675_0.36641347793822643","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@amharic-virtual-keyboard/react","version":"1.0.1","private":false,"description":"Amharic virtual keyboard React component","license":"MIT","main":"dist/index.umd.js","module":"dist/index.es.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./dist/react.css":"./dist/react.css"},"scripts":{"lint":"eslint .","dev":"vite dev","build":"vite build","test":"vitest","test:watch":"vitest --watch","test:coverage":"vitest --coverage","test:ui":"vitest --ui"},"devDependencies":{"@amharic-keyboard/core":"workspace:*","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/react":"^18.2.0","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^5.1.3","eslint":"^8.56.0","jsdom":"^28.0.0","react":"^18.2.0","react-dom":"^18.2.0","vite":"^7.3.1","vite-plugin-dts":"^4.5.4","vitest":"^4.0.18"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"keywords":["amharic","amharic keyboard","virtual keyboard","ethiopian keyboard","geez","ethiopic","react keyboard","virtual keyboard react","draggable keyboard","onscreen keyboard","amharic input","ethiopian language","አማርኛ ኪቦርድ","react component","input keyboard","touchscreen keyboard","customizable keyboard","amharic typing"],"gitHead":"dc2324f880200dd636937aa1d94f76e09368a095","_id":"@amharic-virtual-keyboard/react@1.0.1","_nodeVersion":"24.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-v4VY5MWDxqsgb7LaazcmTEnTsGmwqTSSbutIoDRYYDlMo3liFO5pZmF2gxCcS4c2ufmvm7XZneCm8H8TYOKbqA==","shasum":"8ed1d6416a891c12e7d9634a4bcfa7ffcde461f9","tarball":"https://registry.npmjs.org/@amharic-virtual-keyboard/react/-/react-1.0.1.tgz","fileCount":8,"unpackedSize":134945,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC2MP+mI22KaAOan8EqxaLJMAXiyh95Wioifk/ZiGRYzwIhAOGCIIH/ph58sdDeOcLWU9jVYm9SUk3SQcGBFUTErCuY"}]},"_npmUser":{"name":"amuif","email":"amudiworks@gmail.com"},"directories":{},"maintainers":[{"name":"amuif","email":"amudiworks@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react_1.0.1_1777448363226_0.3051184838387959"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-04T13:11:58.299Z","modified":"2026-04-29T07:39:23.571Z","0.1.0":"2026-02-04T13:11:58.538Z","0.1.2":"2026-02-04T13:32:43.532Z","0.1.3":"2026-02-04T13:48:29.479Z","0.1.4":"2026-02-04T13:54:41.841Z","0.1.5":"2026-02-04T14:18:30.522Z","0.1.6":"2026-02-05T08:11:28.785Z","1.0.0":"2026-02-05T08:15:24.824Z","1.0.1":"2026-04-29T07:39:23.403Z"},"license":"MIT","keywords":["amharic","amharic keyboard","virtual keyboard","ethiopian keyboard","geez","ethiopic","react keyboard","virtual keyboard react","draggable keyboard","onscreen keyboard","amharic input","ethiopian language","አማርኛ ኪቦርድ","react component","input keyboard","touchscreen keyboard","customizable keyboard","amharic typing"],"description":"Amharic virtual keyboard React component","maintainers":[{"name":"amuif","email":"amudiworks@gmail.com"}],"readme":"# @amharic-virtual-keyboard/react\n\nA powerful, customizable, and draggable Amharic virtual keyboard component for React applications.\n\n## Features\n\n- ⌨️ **Full Amharic Support**: Support for all Amharic characters and families.\n- 🖱️ **Draggable & Resizable**: Users can move and resize the keyboard freely.\n- 📱 **Responsive**: Works well across different screen sizes.\n- 🔄 **Multi-input Support**: Easily attach the keyboard to one or multiple input fields.\n- 🪝 **Custom Hook**: Includes `useAmharicKeyboard` for easy programmatic control.\n- 🎨 **Customizable**: Built with Vanilla CSS, easy to style.\n\n## Installation\n\n```bash\nnpm install @amharic-virtual-keyboard/react\n# or\nyarn add @amharic-virtual-keyboard/react\n# or\npnpm add @amharic-virtual-keyboard/react\n```\n\n## Quick Start\n\n1. **Import the component and styles**:\n\n```tsx\nimport { AmharicKeyboard } from '@amharic-virtual-keyboard/react';\nimport '@amharic-virtual-keyboard/react/dist/react.css';\n\nfunction App() {\n  const [target, setTarget] = useState<HTMLInputElement | null>(null);\n\n  return (\n    <div>\n      <input \n        type=\"text\" \n        ref={(el) => setTarget(el)} \n        placeholder=\"Type here...\" \n      />\n      <AmharicKeyboard targetInput={target} />\n    </div>\n  );\n}\n```\n\n## Props\n\nThe `AmharicKeyboard` component accepts the following props:\n\n| Prop | Type | Default | Description |\n| :--- | :--- | :--- | :--- |\n| `targetInput` | `HTMLInputElement \\| HTMLTextAreaElement` | - | A single input or textarea element to attach the keyboard to. |\n| `targetInputs` | `(HTMLInputElement \\| HTMLTextAreaElement)[]` | - | An array of input or textarea elements. The keyboard will automatically switch context to the focused input. |\n| `layout` | `KeyboardLayout` | `amharicLayout` | Custom keyboard layout from `@amharic-keyboard/core`. |\n| `draggable` | `boolean` | `true` | Whether the keyboard can be dragged. |\n| `showHeader` | `boolean` | `true` | Whether to show the header/drag handle. |\n| `minimizeButton` | `boolean` | `true` | Whether to show the minimize button. |\n| `closeButton` | `boolean` | `false` | Whether to show a close button. |\n| `minWidth` | `number` | `300` | Minimum width of the keyboard. |\n| `minHeight` | `number` | `200` | Minimum height of the keyboard. |\n| `maxWidth` | `number` | `800` | Maximum width of the keyboard. |\n| `maxHeight` | `number` | `350` | Maximum height of the keyboard. |\n| `onClose` | `() => void` | - | Callback function when the keyboard is closed. |\n| `className` | `string` | `\"\"` | Additional CSS class for the keyboard container. |\n| `style` | `React.CSSProperties` | `{}` | Inline styles for the keyboard container. |\n\n## Programmatic Control with `useAmharicKeyboard`\n\nThe `useAmharicKeyboard` hook provides methods to control the keyboard programmatically.\n\n```tsx\nimport { AmharicKeyboard, useAmharicKeyboard } from '@amharic-virtual-keyboard/react';\n\nfunction CustomApp() {\n  const { \n    keyboardRef, \n    showKeyboard, \n    hideKeyboard, \n    addInput \n  } = useAmharicKeyboard();\n\n  return (\n    <>\n      <button onClick={showKeyboard}>Open Keyboard</button>\n      <input ref={(el) => el && addInput(el)} />\n      <AmharicKeyboard ref={keyboardRef} />\n    </>\n  );\n}\n```\n\n### Available Methods\n\n- `addInput(input)`: Adds a new input field to the keyboard's target list.\n- `removeInput(input)`: Removes an input field from the target list.\n- `switchToInput(input)`: Manually switches the keyboard focus to a specific input.\n- `showKeyboard()`: Shows the keyboard.\n- `hideKeyboard()`: Hides the keyboard.\n- `minimizeKeyboard()`: Minimizes the keyboard to a small icon.\n- `restoreKeyboard()`: Restores the keyboard from its minimized state.\n- `moveKeyboard(x, y)`: Moves the keyboard to specific coordinates.\n- `resizeKeyboard(width, height)`: Resizes the keyboard.\n- `getValue()`: Gets the current value from the active input field.\n\n## Styling\n\nThe keyboard uses CSS variables that you can override to match your theme. Make sure to import the CSS file in your application root:\n\n```tsx\nimport '@amharic-virtual-keyboard/react/dist/react.css';\n```\n\n## License\n\nMIT © [amuif](https://github.com/amuif)\n","readmeFilename":"README.md"}