{"_id":"@byre/camber-avatar-editor","name":"@byre/camber-avatar-editor","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@byre/camber-avatar-editor","version":"0.1.0","type":"module","description":"Camber-compliant profile picture cropper component","main":"dist/camber-avatar-editor.cjs","module":"dist/camber-avatar-editor.js","scripts":{"dev":"vite","build":"vite build","preview":"vite preview","test":"vitest"},"keywords":["web-component","avatar-editor","image-cropper","camber","camber-component","web-component"],"author":{"name":"@byre"},"license":"MIT","dependencies":{},"devDependencies":{"vite":"^7.2.4","vitest":"^1.0.0"},"exports":{".":{"import":"./dist/camber-avatar-editor.js","require":"./dist/camber-avatar-editor.cjs"}},"_id":"@byre/camber-avatar-editor@0.1.0","gitHead":"54728a5dda00a58e5d89b8809ba215543681c18d","_nodeVersion":"22.17.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-418Z64BImV1wsPudLWTeuJ94kxgqxGGuL7BPJtJCwg5hX7T1Fny5Hc3bh+lbKjhos9Y8oYExh2TaKX/L16d1Ww==","shasum":"b7cba2e780e7b9fbb7dac6dceef6ecc258455ee1","tarball":"https://registry.npmjs.org/@byre/camber-avatar-editor/-/camber-avatar-editor-0.1.0.tgz","fileCount":4,"unpackedSize":69755,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA0YtjmdxJ0nALmfwxoOVetFJto8BxcdJAVrX/7+v1fKAiEA79nmy+6uariVxW26ka/xlJEWhjNXwDkFqTfRZ30zzsk="}]},"_npmUser":{"name":"sirrobert","email":"sirrobert@gmail.com"},"directories":{},"maintainers":[{"name":"sirrobert","email":"sirrobert@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/camber-avatar-editor_0.1.0_1767974128381_0.5059242468977594"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-09T15:55:28.317Z","0.1.0":"2026-01-09T15:55:28.548Z","modified":"2026-01-09T15:55:28.844Z"},"maintainers":[{"name":"sirrobert","email":"sirrobert@gmail.com"}],"description":"Camber-compliant profile picture cropper component","keywords":["web-component","avatar-editor","image-cropper","camber","camber-component","web-component"],"author":{"name":"@byre"},"license":"MIT","readme":"## Usage\n\n### Example\n\n```es6\nimport { CamberAvatarEditor } from '@byre/camber-avatar-editor';\n\n// Register the component\ncustomElements.define('camber-avatar-editor', CamberAvatarEditor);\n\n// Listen for changes\ndocument.addEventListener('camber:change', e => {\n  console.log('New profile picture data URL:', e.detail.value);\n  console.log('Previous value:', e.detail.previousValue);\n  console.log('Source:', e.detail.source);\n  \n  // Save to localStorage as example\n  if (e.detail.value) {\n    localStorage.setItem('profile-pic', e.detail.value);\n    document.getElementById('saved').textContent = 'Saved! (check localStorage)';\n  } else {\n    localStorage.removeItem('profile-pic');\n    document.getElementById('saved').textContent = 'No image saved';\n  }\n});\n\n// Listen for errors\ndocument.addEventListener('camber:error', e => {\n  console.error('Error:', e.detail.error.message);\n  alert('Error: ' + e.detail.error.message);\n});\n\n// Show saved value on load\nwindow.addEventListener('DOMContentLoaded', () => {\n  const saved = localStorage.getItem('profile-pic');\n  if (saved) {\n    document.getElementById('saved').textContent = 'Saved! (check localStorage)';\n  } else {\n    document.getElementById('saved').textContent = 'No image saved';\n  }\n});\n\n```\n","readmeFilename":"README.md","_rev":"1-41970d6c617b68e8ba79c73a5e2ea4d1"}