{"_id":"@aivue/voice-actions","_rev":"4-132f078e3009026e81b11fe723e9a9a4","name":"@aivue/voice-actions","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@aivue/voice-actions","version":"1.0.0","keywords":["vue","ai","voice","speech","recognition","commands","voice-control","speech-to-text","text-to-speech","natural-language","ui","components"],"author":{"name":"reachbrt"},"license":"MIT","_id":"@aivue/voice-actions@1.0.0","maintainers":[{"name":"aivue","email":"reachbrt@gmail.com"}],"homepage":"https://github.com/reachbrt/vueai#readme","bugs":{"url":"https://github.com/reachbrt/vueai/issues"},"dist":{"shasum":"77d1df96628935caf50d2b354189da070f7d9dc4","tarball":"https://registry.npmjs.org/@aivue/voice-actions/-/voice-actions-1.0.0.tgz","fileCount":29,"integrity":"sha512-ea4jK1Vv8DAyH3+QK8e6rjBs/U2QaYXiITxl9nzz0THajC4akrV9WGLWXF9pNNyAGIHcy3w/rr0ZQvJP+NMrxQ==","signatures":[{"sig":"MEUCIQDVr3zGjG6XwqNWj55TGaeR8zN11l0JJx/62HEuXRFXzAIgbjjn5dAc4UIdd05/jdlsvcYmVpl2NRxtVIJiLVeN+vc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272714},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/voice-actions.css","./components/*":{"import":"./dist/components/*","require":"./dist/components/*"}},"gitHead":"25c5a7b9b54ebff7300463942ea87b49805da951","scripts":{"dev":"vite --watch","lint":"eslint \"src/**/*.{ts,vue}\"","test":"vitest run","build":"npm run clean && vite build && npm run postbuild","clean":"rm -rf dist","postbuild":"cp -r src/components dist/components && cp -r src/composables dist/composables && cp -r src/utils dist/utils && cp README.md dist/ && cp CHANGELOG.md dist/ 2>/dev/null || true","test:watch":"vitest"},"_npmUser":{"name":"aivue","email":"reachbrt@gmail.com"},"repository":{"url":"git+https://github.com/reachbrt/vueai.git","type":"git","directory":"packages/voice-actions"},"_npmVersion":"10.9.2","description":"AI-powered voice command controller with speech recognition, natural language processing, and custom actions for Vue.js","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","tsup":"^8.0.0","eslint":"^8.56.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.16.0","vite-plugin-dts":"^3.7.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^2.6.0 || ^3.0.0","@aivue/core":"^1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/voice-actions_1.0.0_1764900959384_0.24415202357544574","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aivue/voice-actions","version":"1.0.1","keywords":["vue","ai","voice","speech","recognition","commands","voice-control","speech-to-text","text-to-speech","natural-language","ui","components"],"author":{"name":"reachbrt"},"license":"MIT","_id":"@aivue/voice-actions@1.0.1","maintainers":[{"name":"aivue","email":"reachbrt@gmail.com"}],"homepage":"https://github.com/reachbrt/vueai#readme","bugs":{"url":"https://github.com/reachbrt/vueai/issues"},"dist":{"shasum":"5a123593750b9ab6ee28392bc65319e0780219be","tarball":"https://registry.npmjs.org/@aivue/voice-actions/-/voice-actions-1.0.1.tgz","fileCount":29,"integrity":"sha512-ufzaijUwwpXkaZTUzcKxS6kVRJaXI8Z+ooiL+ZUFH3+d8UZCAnREGRfZM3/d+8ErlRqzMIicW2QQg15tH/OPsg==","signatures":[{"sig":"MEYCIQCPFnFZ1JmY+6uHI3lFKrEnBmvGpT3l5Ux2xSRF652xXAIhAN20dPJ2FWlPxj2GCqVYK4ftietlIoiH5Ea0ViarkQZg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274110},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/voice-actions.css","./components/*":{"import":"./dist/components/*","require":"./dist/components/*"}},"gitHead":"c3a2b65fec27d25b9f1287eadf3f18abfc6e225e","scripts":{"dev":"vite --watch","lint":"eslint \"src/**/*.{ts,vue}\"","test":"vitest run","build":"npm run clean && vite build && npm run postbuild","clean":"rm -rf dist","postbuild":"cp -r src/components dist/components && cp -r src/composables dist/composables && cp -r src/utils dist/utils && cp README.md dist/ && cp CHANGELOG.md dist/ 2>/dev/null || true","test:watch":"vitest"},"_npmUser":{"name":"aivue","email":"reachbrt@gmail.com"},"repository":{"url":"git+https://github.com/reachbrt/vueai.git","type":"git","directory":"packages/voice-actions"},"_npmVersion":"10.9.2","description":"AI-powered voice command controller with speech recognition, natural language processing, and custom actions for Vue.js","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","tsup":"^8.0.0","eslint":"^8.56.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.16.0","vite-plugin-dts":"^3.7.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^2.6.0 || ^3.0.0","@aivue/core":"^1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/voice-actions_1.0.1_1764907578151_0.45313897078212895","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aivue/voice-actions","version":"1.0.2","keywords":["vue","ai","voice","speech","recognition","commands","voice-control","speech-to-text","text-to-speech","natural-language","ui","components"],"author":{"name":"reachbrt"},"license":"MIT","_id":"@aivue/voice-actions@1.0.2","maintainers":[{"name":"aivue","email":"reachbrt@gmail.com"}],"homepage":"https://github.com/reachbrt/vueai#readme","bugs":{"url":"https://github.com/reachbrt/vueai/issues"},"dist":{"shasum":"181dcf62bf78cd7cfb9f791200567fb1ab15f3d4","tarball":"https://registry.npmjs.org/@aivue/voice-actions/-/voice-actions-1.0.2.tgz","fileCount":29,"integrity":"sha512-kDAZJNrYWJBRwUGIcP3Fnbt/klbrWc+kuvRgHdZ0tgPxUx+KsgupP3c+QtxJX8cLy0XQ/FgjR00eW2ZR4KpE8g==","signatures":[{"sig":"MEQCIDH3Voz5tXbESRGKuKEy+2JZbn7sOeEYouyIMOP9FS2SAiAu+MNcbbNNkOy4Rz1Whh4Y4FKSgks7h3f0BD3ozCGf6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275567},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/voice-actions.css","./components/*":{"import":"./dist/components/*","require":"./dist/components/*"}},"gitHead":"2567f0769c449fe4333ccc807a82444957dc0cd3","scripts":{"dev":"vite --watch","lint":"eslint \"src/**/*.{ts,vue}\"","test":"vitest run","build":"npm run clean && vite build && npm run postbuild","clean":"rm -rf dist","postbuild":"cp -r src/components dist/components && cp -r src/composables dist/composables && cp -r src/utils dist/utils && cp README.md dist/ && cp CHANGELOG.md dist/ 2>/dev/null || true","test:watch":"vitest"},"_npmUser":{"name":"aivue","email":"reachbrt@gmail.com"},"repository":{"url":"git+https://github.com/reachbrt/vueai.git","type":"git","directory":"packages/voice-actions"},"_npmVersion":"10.9.2","description":"AI-powered voice command controller with speech recognition, natural language processing, and custom actions for Vue.js","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","tsup":"^8.0.0","eslint":"^8.56.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.16.0","vite-plugin-dts":"^3.7.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^2.6.0 || ^3.0.0","@aivue/core":"^1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/voice-actions_1.0.2_1765265310337_0.8362639712013555","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aivue/voice-actions","version":"1.0.3","description":"AI-powered voice command controller with speech recognition, natural language processing, and custom actions for Vue.js","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/voice-actions.css","./components/*":{"import":"./dist/components/*","require":"./dist/components/*"}},"scripts":{"build":"npm run clean && vite build && npm run postbuild","dev":"vite --watch","lint":"eslint \"src/**/*.{ts,vue}\"","clean":"rm -rf dist","test":"vitest run","test:watch":"vitest","postbuild":"cp -r src/components dist/components && cp -r src/composables dist/composables && cp -r src/utils dist/utils && cp README.md dist/ && cp CHANGELOG.md dist/ 2>/dev/null || true"},"keywords":["vue","ai","voice","speech","recognition","commands","voice-control","speech-to-text","text-to-speech","natural-language","ui","components"],"author":{"name":"reachbrt"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/reachbrt/vueai.git","directory":"packages/voice-actions"},"homepage":"https://github.com/reachbrt/vueai#readme","bugs":{"url":"https://github.com/reachbrt/vueai/issues"},"publishConfig":{"access":"public"},"peerDependencies":{"@aivue/core":"^1.3.2","vue":"^2.6.0 || ^3.0.0"},"devDependencies":{"@types/node":"^20.16.0","@vitejs/plugin-vue":"^5.0.0","eslint":"^8.56.0","tsup":"^8.0.0","typescript":"^5.3.0","vite-plugin-dts":"^3.7.0","vitest":"^1.0.0","vue":"^3.5.0"},"_id":"@aivue/voice-actions@1.0.3","gitHead":"c54d7def7f2bad63a3e63881dd7ac15ba3e957a4","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-3wRqUXPoLKEkv46QIUOdW2+Yy53nedQDVuYEZHuYSDCbVA8i/6LlHdShr5yg3P8pYC8F7cjSeh3F4Xfc5R+wWg==","shasum":"1d4bcfb1f4b6bc921cf364d9dc611eeff1f553cf","tarball":"https://registry.npmjs.org/@aivue/voice-actions/-/voice-actions-1.0.3.tgz","fileCount":29,"unpackedSize":275202,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDReGr18v/2WlxGSMPilZW72XODyzraE98exYopIAprxgIgIVo6G38rnMnEt7XA7eDJi8YUsJsiKq08/7PPjY5i6WQ="}]},"_npmUser":{"name":"aivue","email":"reachbrt@gmail.com"},"directories":{},"maintainers":[{"name":"aivue","email":"reachbrt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/voice-actions_1.0.3_1768404869435_0.8257186275276485"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-05T02:15:59.277Z","modified":"2026-01-14T15:34:29.717Z","1.0.0":"2025-12-05T02:15:59.535Z","1.0.1":"2025-12-05T04:06:18.336Z","1.0.2":"2025-12-09T07:28:30.512Z","1.0.3":"2026-01-14T15:34:29.587Z"},"bugs":{"url":"https://github.com/reachbrt/vueai/issues"},"author":{"name":"reachbrt"},"license":"MIT","homepage":"https://github.com/reachbrt/vueai#readme","keywords":["vue","ai","voice","speech","recognition","commands","voice-control","speech-to-text","text-to-speech","natural-language","ui","components"],"repository":{"type":"git","url":"git+https://github.com/reachbrt/vueai.git","directory":"packages/voice-actions"},"description":"AI-powered voice command controller with speech recognition, natural language processing, and custom actions for Vue.js","maintainers":[{"name":"aivue","email":"reachbrt@gmail.com"}],"readme":"# @aivue/voice-actions\n\n[![npm version](https://img.shields.io/npm/v/@aivue/voice-actions.svg)](https://www.npmjs.com/package/@aivue/voice-actions)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Netlify Status](https://api.netlify.com/api/v1/badges/your-badge-id/deploy-status)](https://aivue.netlify.app/)\n[![npm downloads](https://img.shields.io/badge/downloads-185%2Fmonth-CB3837?style=flat-square&logo=npm)](https://www.npmjs.com/package/@aivue/voice-actions)\n\n> 🎤 AI-powered voice command controller with speech recognition, natural language processing, and custom actions for Vue.js\n\nTransform your Vue applications with powerful voice control capabilities. @aivue/voice-actions provides an intuitive interface for voice commands, speech recognition, and AI-powered natural language processing.\n\n## ✨ Features\n\n### 🎯 Core Features\n- **🎤 Speech Recognition** - Real-time voice-to-text conversion\n- **🗣️ Text-to-Speech** - Voice feedback for commands\n- **🤖 AI Processing** - Natural language understanding with AI\n- **⚡ Custom Commands** - Register and execute custom voice commands\n- **🔄 Continuous Mode** - Keep listening for commands\n- **👂 Wake Word Detection** - Activate with custom wake words\n- **🌍 Multi-language** - Support for 12+ languages\n- **📊 Command History** - Track and review executed commands\n\n### 🎨 UI Features\n- **🎨 Customizable Themes** - Light and dark mode support\n- **📱 Responsive Design** - Works on all devices\n- **🔊 Volume Indicator** - Visual feedback for audio levels\n- **💬 Live Transcript** - See what you're saying in real-time\n- **✅ Confidence Score** - Visual confidence indicator\n- **💡 Smart Suggestions** - Contextual command suggestions\n\n### 🚀 Advanced Features\n- **🔌 Composable API** - Use programmatically with `useVoiceActions`\n- **🎯 Pattern Matching** - Regex and string pattern support\n- **📈 Analytics** - Track command usage and success rates\n- **⌨️ Keyboard Shortcuts** - Alternative input methods\n- **♿ Accessibility** - ARIA labels and keyboard navigation\n- **🔒 Privacy-focused** - All processing happens locally\n\n## 📦 Installation\n\n```bash\nnpm install @aivue/voice-actions @aivue/core\n```\n\n## 🚀 Quick Start\n\n```vue\n<template>\n  <div>\n    <VoiceActions\n      :ai-client=\"aiClient\"\n      :commands=\"commands\"\n      :suggestions=\"suggestions\"\n      show-transcript\n      show-suggestions\n      show-history\n      voice-feedback\n      @command=\"handleCommand\"\n    />\n  </div>\n</template>\n\n<script setup>\nimport { VoiceActions } from '@aivue/voice-actions';\nimport { AIClient } from '@aivue/core';\n\nconst aiClient = new AIClient({\n  provider: 'openai',\n  apiKey: 'your-api-key'\n});\n\nconst commands = [\n  {\n    pattern: /open (.*)/i,\n    action: (matches) => {\n      console.log('Opening:', matches[1]);\n      window.location.href = `/${matches[1]}`;\n    },\n    description: 'Open a page',\n    icon: '🔗'\n  },\n  {\n    pattern: /search for (.*)/i,\n    action: (matches) => {\n      console.log('Searching for:', matches[1]);\n      // Perform search\n    },\n    description: 'Search for something',\n    icon: '🔍'\n  }\n];\n\nconst suggestions = [\n  { text: 'Open dashboard', icon: '📊' },\n  { text: 'Search for products', icon: '🔍' },\n  { text: 'Show help', icon: '❓' }\n];\n\nfunction handleCommand(command, result) {\n  console.log('Command executed:', command, result);\n}\n</script>\n```\n\n## 📖 Usage Examples\n\n### Basic Voice Commands\n\n```vue\n<template>\n  <VoiceActions\n    :commands=\"commands\"\n    show-transcript\n    @command=\"onCommand\"\n  />\n</template>\n\n<script setup>\nimport { VoiceActions } from '@aivue/voice-actions';\n\nconst commands = [\n  {\n    pattern: 'hello',\n    action: () => alert('Hello!'),\n    description: 'Say hello'\n  },\n  {\n    pattern: /go to (home|about|contact)/i,\n    action: (matches) => {\n      router.push(`/${matches[1]}`);\n    },\n    description: 'Navigate to pages'\n  }\n];\n\nfunction onCommand(command, result) {\n  console.log('Command:', command);\n}\n</script>\n```\n\n### AI-Powered Processing\n\n```vue\n<template>\n  <VoiceActions\n    :ai-client=\"aiClient\"\n    use-ai-processing\n    voice-feedback\n    show-transcript\n  />\n</template>\n\n<script setup>\nimport { VoiceActions } from '@aivue/voice-actions';\nimport { AIClient } from '@aivue/core';\n\nconst aiClient = new AIClient({\n  provider: 'openai',\n  apiKey: import.meta.env.VITE_OPENAI_API_KEY\n});\n</script>\n```\n\n### Continuous Listening Mode\n\n```vue\n<template>\n  <VoiceActions\n    :commands=\"commands\"\n    continuous-mode\n    show-continuous-toggle\n    wake-word=\"hey assistant\"\n    wake-word-enabled\n  />\n</template>\n```\n\n### Multi-language Support\n\n```vue\n<template>\n  <VoiceActions\n    :commands=\"commands\"\n    language=\"es-ES\"\n    show-language-selector\n    show-transcript\n  />\n</template>\n```\n\n### Custom Styling\n\n```vue\n<template>\n  <VoiceActions\n    :commands=\"commands\"\n    theme=\"dark\"\n    show-volume-indicator\n    show-transcript\n  />\n</template>\n\n<style>\n.voice-actions {\n  max-width: 600px;\n  margin: 0 auto;\n}\n</style>\n```\n\n## 🎯 API Reference\n\n### Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `aiClient` | `AIClient` | `undefined` | AI client for natural language processing |\n| `commands` | `VoiceCommand[]` | `[]` | Array of voice commands to register |\n| `suggestions` | `VoiceActionsSuggestion[]` | `[]` | Command suggestions to display |\n| `theme` | `'light' \\| 'dark'` | `'light'` | UI theme |\n| `language` | `string` | `'en-US'` | Speech recognition language |\n| `showTranscript` | `boolean` | `true` | Show live transcript |\n| `showSuggestions` | `boolean` | `true` | Show command suggestions |\n| `showHistory` | `boolean` | `true` | Show command history |\n| `showLanguageSelector` | `boolean` | `false` | Show language selector |\n| `showContinuousToggle` | `boolean` | `false` | Show continuous mode toggle |\n| `showVolumeIndicator` | `boolean` | `false` | Show volume level indicator |\n| `continuousMode` | `boolean` | `false` | Enable continuous listening |\n| `wakeWord` | `string` | `undefined` | Wake word to activate commands |\n| `wakeWordEnabled` | `boolean` | `false` | Enable wake word detection |\n| `voiceFeedback` | `boolean` | `false` | Enable voice feedback |\n| `maxHistoryDisplay` | `number` | `10` | Maximum history items to display |\n| `transcriptLabel` | `string` | `'You said'` | Label for transcript section |\n| `useAiProcessing` | `boolean` | `false` | Use AI for unmatched commands |\n\n### Events\n\n| Event | Payload | Description |\n|-------|---------|-------------|\n| `command` | `(command: string, result?: any)` | Emitted when a command is executed |\n| `transcript` | `(transcript: string)` | Emitted when transcript updates |\n| `error` | `(error: Error)` | Emitted on errors |\n| `listening-start` | `()` | Emitted when listening starts |\n| `listening-stop` | `()` | Emitted when listening stops |\n| `wake-word-detected` | `()` | Emitted when wake word is detected |\n\n### Types\n\n#### VoiceCommand\n\n```typescript\ninterface VoiceCommand {\n  pattern: string | RegExp;\n  action: (matches?: string[]) => void | Promise<void>;\n  description?: string;\n  icon?: string;\n}\n```\n\n#### VoiceActionsSuggestion\n\n```typescript\ninterface VoiceActionsSuggestion {\n  text: string;\n  command?: string;\n  icon?: string;\n}\n```\n\n#### CommandHistoryItem\n\n```typescript\ninterface CommandHistoryItem {\n  command: string;\n  timestamp: Date;\n  status: 'success' | 'error' | 'pending';\n  result?: any;\n}\n```\n\n## 🔧 Composable API\n\nUse the `useVoiceActions` composable for programmatic control:\n\n```typescript\nimport { useVoiceActions } from '@aivue/voice-actions';\n\nconst {\n  state,\n  isListening,\n  isProcessing,\n  transcript,\n  confidence,\n  error,\n  isSupported,\n  initialize,\n  start,\n  stop,\n  speak,\n  cleanup\n} = useVoiceActions({\n  aiClient,\n  commands,\n  language: 'en-US',\n  continuousMode: false,\n  voiceFeedback: true\n});\n\n// Initialize\ninitialize();\n\n// Start listening\nstart();\n\n// Stop listening\nstop();\n\n// Speak text\nspeak('Hello, world!');\n\n// Cleanup\ncleanup();\n```\n\n## 🛠️ Utilities\n\n### Command Parser\n\n```typescript\nimport { parseCommand, matchCommand, findBestMatch } from '@aivue/voice-actions';\n\n// Parse command\nconst parsed = parseCommand('search for laptops');\n// { command: 'search for laptops', intent: 'search', entities: {...}, confidence: 1.0 }\n\n// Match command\nconst matches = matchCommand('open dashboard', /open (.*)/i);\n// ['open dashboard', 'dashboard']\n\n// Find best match\nconst best = findBestMatch('search products', commands);\n// { index: 2, confidence: 0.85 }\n```\n\n### Speech Synthesis\n\n```typescript\nimport { speak, getVoices, SpeechQueue } from '@aivue/voice-actions';\n\n// Speak text\nawait speak('Hello, world!', {\n  lang: 'en-US',\n  rate: 1.0,\n  pitch: 1.0,\n  volume: 1.0\n});\n\n// Get available voices\nconst voices = await getVoices();\n\n// Use speech queue\nconst queue = new SpeechQueue();\nqueue.add('First message');\nqueue.add('Second message');\nqueue.add('Third message');\n```\n\n## 🌍 Supported Languages\n\n- 🇺🇸 English (US) - `en-US`\n- 🇬🇧 English (UK) - `en-GB`\n- 🇪🇸 Spanish - `es-ES`\n- 🇫🇷 French - `fr-FR`\n- 🇩🇪 German - `de-DE`\n- 🇮🇹 Italian - `it-IT`\n- 🇧🇷 Portuguese - `pt-BR`\n- 🇯🇵 Japanese - `ja-JP`\n- 🇨🇳 Chinese - `zh-CN`\n- 🇰🇷 Korean - `ko-KR`\n- 🇮🇳 Hindi - `hi-IN`\n- 🇸🇦 Arabic - `ar-SA`\n\n## 🎨 Styling\n\nThe component uses scoped styles and CSS variables for easy customization:\n\n```css\n.voice-actions {\n  --voice-primary: #667eea;\n  --voice-secondary: #764ba2;\n  --voice-success: #10b981;\n  --voice-error: #ef4444;\n  --voice-text: #1f2937;\n  --voice-bg: #ffffff;\n}\n```\n\n## 📝 Examples\n\n### Smart Home Control\n\n```vue\n<template>\n  <VoiceActions\n    :commands=\"smartHomeCommands\"\n    continuous-mode\n    wake-word=\"hey home\"\n    wake-word-enabled\n    voice-feedback\n  />\n</template>\n\n<script setup>\nconst smartHomeCommands = [\n  {\n    pattern: /turn (on|off) the (.*)/i,\n    action: (matches) => {\n      const [, state, device] = matches;\n      controlDevice(device, state === 'on');\n    },\n    description: 'Control devices'\n  },\n  {\n    pattern: /set (.*) to (\\d+) percent/i,\n    action: (matches) => {\n      const [, device, level] = matches;\n      setDeviceLevel(device, parseInt(level));\n    },\n    description: 'Set device level'\n  }\n];\n</script>\n```\n\n### Navigation Assistant\n\n```vue\n<template>\n  <VoiceActions\n    :commands=\"navCommands\"\n    :suggestions=\"navSuggestions\"\n    show-suggestions\n    voice-feedback\n  />\n</template>\n\n<script setup>\nconst navCommands = [\n  {\n    pattern: /go to (.*)/i,\n    action: (matches) => router.push(`/${matches[1]}`),\n    icon: '🔗'\n  },\n  {\n    pattern: /go back/i,\n    action: () => router.back(),\n    icon: '⬅️'\n  }\n];\n\nconst navSuggestions = [\n  { text: 'Go to dashboard', icon: '📊' },\n  { text: 'Go to settings', icon: '⚙️' },\n  { text: 'Go back', icon: '⬅️' }\n];\n</script>\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📦 Related Packages\n\nExplore the complete @aivue ecosystem:\n\n### 🧠 [@aivue/core](https://www.npmjs.com/package/@aivue/core)\nCore AI functionality for Vue.js components\n\n### 💬 [@aivue/chatbot](https://www.npmjs.com/package/@aivue/chatbot)\nAI-powered chat components for Vue.js\n\n### ✨ [@aivue/autosuggest](https://www.npmjs.com/package/@aivue/autosuggest)\nAI-powered suggestion components for Vue.js\n\n### 📝 [@aivue/smartform](https://www.npmjs.com/package/@aivue/smartform)\nAI-powered form validation for Vue.js\n\n### 🎭 [@aivue/emotion-ui](https://www.npmjs.com/package/@aivue/emotion-ui)\nEmotion-aware UI components with sentiment analysis\n\n### 📄 [@aivue/doc-intelligence](https://www.npmjs.com/package/@aivue/doc-intelligence)\nDocument processing and OCR with AI\n\n### 🧠 [@aivue/predictive-input](https://www.npmjs.com/package/@aivue/predictive-input)\nAI-powered predictive text input\n\n### 🔔 [@aivue/smart-notify](https://www.npmjs.com/package/@aivue/smart-notify)\nIntelligent notification system\n\n### 📋 [@aivue/smart-datatable](https://www.npmjs.com/package/@aivue/smart-datatable)\nAdvanced data table components\n\n### 🖼️ [@aivue/image-caption](https://www.npmjs.com/package/@aivue/image-caption)\nAI-powered image captioning with OpenAI Vision models\n\n### 📊 [@aivue/analytics](https://www.npmjs.com/package/@aivue/analytics)\nAI-powered analytics and insights\n\n## 📄 License\n\nMIT © [reachbrt](https://github.com/reachbrt)\n\n## 🔗 Links\n\n- [Documentation](https://github.com/reachbrt/vueai#readme)\n- [Demo](https://aivue.netlify.app/)\n- [NPM Package](https://www.npmjs.com/package/@aivue/voice-actions)\n- [GitHub](https://github.com/reachbrt/vueai)\n- [Issues](https://github.com/reachbrt/vueai/issues)\n\n## 🌟 Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=reachbrt/vueai&type=Date)](https://star-history.com/#reachbrt/vueai&Date)\n\n\n","readmeFilename":"README.md"}