{"_id":"@dsbissett/ngx-clippy","_rev":"7-31e539144d0aab18c9e903f0961187b3","name":"@dsbissett/ngx-clippy","dist-tags":{"latest":"1.0.9"},"versions":{"1.0.0":{"name":"@dsbissett/ngx-clippy","version":"1.0.0","keywords":["angular","clippy","microsoft","office","assistant","animation","nostalgia"],"author":{"name":"Converted from clippyjs"},"license":"MIT","_id":"@dsbissett/ngx-clippy@1.0.0","maintainers":[{"name":"drakebissett","email":"dsbissett@gmail.com"}],"homepage":"https://github.com/dsbissett/ngx-clippy#readme","bugs":{"url":"https://github.com/dsbissett/ngx-clippy/issues"},"dist":{"shasum":"3eac3d5df7a1e0391f570550d01a6d9018cc1215","tarball":"https://registry.npmjs.org/@dsbissett/ngx-clippy/-/ngx-clippy-1.0.0.tgz","fileCount":55,"integrity":"sha512-I51qXvoztgRVx/YXx5BuoYvCEYssUGIfqWuOfscOh27lSmPd97to+SZ6IVLCXyqb+73iFDTvjjRoaKfzyv8pNw==","signatures":[{"sig":"MEUCIGbjYF8lSSjabgTJhagTC7TZExVTqSkRfBOjQ1+ZgcWBAiEA5mM/lVXq7IsGqnFWpW/izyrHHG97PKBUpLpa6Su4X6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67390385},"module":"fesm2022/dsbissett-ngx-clippy.mjs","exports":{".":{"types":"./types/dsbissett-ngx-clippy.d.ts","default":"./fesm2022/dsbissett-ngx-clippy.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"9af5ae5ff918ee2b900420974f131398800562ec","typings":"types/dsbissett-ngx-clippy.d.ts","_npmUser":{"name":"drakebissett","email":"dsbissett@gmail.com"},"repository":{"url":"git+https://github.com/dsbissett/ngx-clippy.git","type":"git"},"_npmVersion":"11.6.2","description":"Angular component library for adding nostalgic Microsoft Office assistant characters to your application","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.0.0","@angular/core":"^21.2.0","@angular/common":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-clippy_1.0.0_1772300286589_0.24208374195233384","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@dsbissett/ngx-clippy","version":"1.0.3","keywords":["angular","clippy","microsoft","office","assistant","animation","nostalgia"],"author":{"name":"Converted from clippyjs"},"license":"MIT","_id":"@dsbissett/ngx-clippy@1.0.3","maintainers":[{"name":"drakebissett","email":"dsbissett@gmail.com"}],"homepage":"https://github.com/dsbissett/ngx-clippy#readme","bugs":{"url":"https://github.com/dsbissett/ngx-clippy/issues"},"dist":{"shasum":"da5c73847779c0bdcafd2ae0e299f092d7b8bdda","tarball":"https://registry.npmjs.org/@dsbissett/ngx-clippy/-/ngx-clippy-1.0.3.tgz","fileCount":55,"integrity":"sha512-vLvh8PrfiXKc/wVKgROPigS2l1Bg7M8CfqBDhvBQzlo5TkeXlMXpwSvfvqX3OtTEQLelBHT1EZnwEXn/Rtr3Ng==","signatures":[{"sig":"MEYCIQDA+7aEpVWxRQY9liqvFYA09yqf/xu+XjM8FjjtDSbPkAIhAJoAd/kJiv4nAMgG6Nr7enaM6lpCOSQITOybW+LDlj7c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18814478},"module":"fesm2022/dsbissett-ngx-clippy.mjs","exports":{".":{"types":"./types/dsbissett-ngx-clippy.d.ts","default":"./fesm2022/dsbissett-ngx-clippy.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"ac6cccff395d3444500b48f46301723349d30418","typings":"types/dsbissett-ngx-clippy.d.ts","_npmUser":{"name":"drakebissett","email":"dsbissett@gmail.com"},"repository":{"url":"git+https://github.com/dsbissett/ngx-clippy.git","type":"git"},"_npmVersion":"10.9.4","description":"Angular component library for adding nostalgic Microsoft Office assistant characters to your application","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.0.0","@angular/core":"^21.2.0","@angular/common":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-clippy_1.0.3_1772310410649_0.6205697228260589","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@dsbissett/ngx-clippy","version":"1.0.5","keywords":["angular","clippy","microsoft","office","assistant","animation","nostalgia"],"author":{"name":"Converted from clippyjs"},"license":"MIT","_id":"@dsbissett/ngx-clippy@1.0.5","maintainers":[{"name":"drakebissett","email":"dsbissett@gmail.com"}],"homepage":"https://github.com/dsbissett/ngx-clippy#readme","bugs":{"url":"https://github.com/dsbissett/ngx-clippy/issues"},"dist":{"shasum":"19d3eec272d6fe7f5ea930471bce8b4aa44fd33f","tarball":"https://registry.npmjs.org/@dsbissett/ngx-clippy/-/ngx-clippy-1.0.5.tgz","fileCount":55,"integrity":"sha512-NtMm8PlMh5EXLDhgNID8S9XTkHD/KLAVFXUESluxrfT3jN8xfgOLDPFll3tSBpclWRLIRRq3gh37/v9qyObVpA==","signatures":[{"sig":"MEQCIEUI3/pZWacpy92R0YCrURF7u7ASJZM3ZnKzGJeTyUIFAiBWlvWq2EtAVYXx3XkNjANA7f6Z6YQiSN5r41+ENrVX6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18816711},"module":"fesm2022/dsbissett-ngx-clippy.mjs","exports":{".":{"types":"./types/dsbissett-ngx-clippy.d.ts","default":"./fesm2022/dsbissett-ngx-clippy.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"b808be95d7daa36890a8235793900df790ee0f60","typings":"types/dsbissett-ngx-clippy.d.ts","_npmUser":{"name":"drakebissett","email":"dsbissett@gmail.com"},"repository":{"url":"git+https://github.com/dsbissett/ngx-clippy.git","type":"git"},"_npmVersion":"10.9.4","description":"Angular component library for adding nostalgic Microsoft Office assistant characters to your application","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.0.0","@angular/core":"^21.2.0","@angular/common":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-clippy_1.0.5_1772313761151_0.5929485343853809","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@dsbissett/ngx-clippy","version":"1.0.6","keywords":["angular","clippy","microsoft","office","assistant","animation","nostalgia"],"author":{"name":"Converted from clippyjs"},"license":"MIT","_id":"@dsbissett/ngx-clippy@1.0.6","maintainers":[{"name":"drakebissett","email":"dsbissett@gmail.com"}],"homepage":"https://github.com/dsbissett/ngx-clippy#readme","bugs":{"url":"https://github.com/dsbissett/ngx-clippy/issues"},"dist":{"shasum":"e16699978c8c0411b093987b634b96810b2374de","tarball":"https://registry.npmjs.org/@dsbissett/ngx-clippy/-/ngx-clippy-1.0.6.tgz","fileCount":55,"integrity":"sha512-0/QhiZM5ynFBE0gtRQ2rUZFqNRCjer56cOnQalXiBXK6wsUN6sunb4MYSRKKd6D2K7hC23s3slybUZb1tIgQqg==","signatures":[{"sig":"MEYCIQDiN8SJI5r0DwC69RTPmkFY4+KnGgh5MW4ypLnmBesseQIhAI5pdETgo457APrxydkwC9UB9raeszVXUaP6KLFB63Ao","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18816915},"module":"fesm2022/dsbissett-ngx-clippy.mjs","exports":{".":{"types":"./types/dsbissett-ngx-clippy.d.ts","default":"./fesm2022/dsbissett-ngx-clippy.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"6cf98edad42477542fb632a6ab883a683905d255","typings":"types/dsbissett-ngx-clippy.d.ts","_npmUser":{"name":"drakebissett","email":"dsbissett@gmail.com"},"repository":{"url":"git+https://github.com/dsbissett/ngx-clippy.git","type":"git"},"_npmVersion":"10.9.4","description":"Angular component library for adding nostalgic Microsoft Office assistant characters to your application","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.0.0","@angular/core":"^21.2.0","@angular/common":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-clippy_1.0.6_1772315750749_0.038476769627914464","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@dsbissett/ngx-clippy","version":"1.0.7","keywords":["angular","clippy","microsoft","office","assistant","animation","nostalgia"],"author":{"name":"Converted from clippyjs"},"license":"MIT","_id":"@dsbissett/ngx-clippy@1.0.7","maintainers":[{"name":"drakebissett","email":"dsbissett@gmail.com"}],"homepage":"https://github.com/dsbissett/ngx-clippy#readme","bugs":{"url":"https://github.com/dsbissett/ngx-clippy/issues"},"dist":{"shasum":"10e06f8cea5cfb5170950d1377f2b40580de9d52","tarball":"https://registry.npmjs.org/@dsbissett/ngx-clippy/-/ngx-clippy-1.0.7.tgz","fileCount":55,"integrity":"sha512-bk3Bb01an4SDtsCHNz1JwOWO2ZT+vmLQZ5BTFsjHjHR7YjBUulxrq8HU7fAWpXbED6K1rRN9J3vcLtb3YenRYw==","signatures":[{"sig":"MEUCIDl33IiduNbo6DL3lJY3Z4PQJrqCIOOBAtygL7/us6QYAiEAx6bxHL//o2OqOCrDT/NMaih4yuE+fzj/bAMAydCIfjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18824323},"module":"fesm2022/dsbissett-ngx-clippy.mjs","exports":{".":{"types":"./types/dsbissett-ngx-clippy.d.ts","default":"./fesm2022/dsbissett-ngx-clippy.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"60161bf66fb90163241e7083a4a8d0939817e4aa","typings":"types/dsbissett-ngx-clippy.d.ts","_npmUser":{"name":"drakebissett","email":"dsbissett@gmail.com"},"repository":{"url":"git+https://github.com/dsbissett/ngx-clippy.git","type":"git"},"_npmVersion":"10.9.4","description":"Angular component library for adding nostalgic Microsoft Office assistant characters to your application","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.0.0","@angular/core":"^21.2.0","@angular/common":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-clippy_1.0.7_1772317066234_0.742207774684619","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@dsbissett/ngx-clippy","version":"1.0.8","keywords":["angular","clippy","microsoft","office","assistant","animation","nostalgia"],"author":{"name":"Converted from clippyjs"},"license":"MIT","_id":"@dsbissett/ngx-clippy@1.0.8","maintainers":[{"name":"drakebissett","email":"dsbissett@gmail.com"}],"homepage":"https://github.com/dsbissett/ngx-clippy#readme","bugs":{"url":"https://github.com/dsbissett/ngx-clippy/issues"},"dist":{"shasum":"eeef5720008df8137e787cad99ffaaeb49871458","tarball":"https://registry.npmjs.org/@dsbissett/ngx-clippy/-/ngx-clippy-1.0.8.tgz","fileCount":55,"integrity":"sha512-8ZPdqKuGLZPsXIjc9qTyacdYztiNQm73jRQYtMzl1wXdxBBnGnZIMyjhj23t+3cJ+LizpU4CR+nI6a5jmyp3ew==","signatures":[{"sig":"MEUCIQD2r9StLvf/ye6f8JYkUxd6lm5Ngz5zcvspan2FyO/lrQIgXIjjBymbQoadNqJAhi1mKjOLHWd1aqT+cMNDINPHTiU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18831316},"module":"fesm2022/dsbissett-ngx-clippy.mjs","exports":{".":{"types":"./types/dsbissett-ngx-clippy.d.ts","default":"./fesm2022/dsbissett-ngx-clippy.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"707a41e354d846dfc42af25828cefba622b28877","typings":"types/dsbissett-ngx-clippy.d.ts","_npmUser":{"name":"drakebissett","email":"dsbissett@gmail.com"},"repository":{"url":"git+https://github.com/dsbissett/ngx-clippy.git","type":"git"},"_npmVersion":"10.9.4","description":"Angular component library for adding nostalgic Microsoft Office assistant characters to your application","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.0.0","@angular/core":"^21.2.0","@angular/common":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-clippy_1.0.8_1772318272205_0.8968732555543386","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@dsbissett/ngx-clippy","version":"1.0.9","description":"Angular component library for adding nostalgic Microsoft Office assistant characters to your application","keywords":["angular","clippy","microsoft","office","assistant","animation","nostalgia"],"author":{"name":"Converted from clippyjs"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dsbissett/ngx-clippy.git"},"peerDependencies":{"@angular/common":"^21.2.0","@angular/core":"^21.2.0","rxjs":"^7.0.0"},"dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"sideEffects":false,"module":"fesm2022/dsbissett-ngx-clippy.mjs","typings":"types/dsbissett-ngx-clippy.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./types/dsbissett-ngx-clippy.d.ts","default":"./fesm2022/dsbissett-ngx-clippy.mjs"}},"_id":"@dsbissett/ngx-clippy@1.0.9","gitHead":"47ff2934afb60314685581636af86c50e0d5ce43","bugs":{"url":"https://github.com/dsbissett/ngx-clippy/issues"},"homepage":"https://github.com/dsbissett/ngx-clippy#readme","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-FqI7vgYWF1rRy2x55PwqE4HU9sqPlyV6AuZBvrMw8+hxE7qctC7L/cSoRTvUwPPgttnUB+yv7y6AOMvgg28sNw==","shasum":"bc2a3279319c07662f5479bef5c4fb21e3731ffc","tarball":"https://registry.npmjs.org/@dsbissett/ngx-clippy/-/ngx-clippy-1.0.9.tgz","fileCount":55,"unpackedSize":18831316,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICeMilO+LU0O5xC7iIcJM6j2uIrztt0EK6f8IEaQxwLHAiEAxce94PZiXojfrS/jMlrkHKbYdclOreM9iYVn4/O2BOw="}]},"_npmUser":{"name":"drakebissett","email":"dsbissett@gmail.com"},"directories":{},"maintainers":[{"name":"drakebissett","email":"dsbissett@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ngx-clippy_1.0.9_1772459845754_0.3991091106802702"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-28T17:38:06.523Z","modified":"2026-03-02T13:57:26.373Z","1.0.0":"2026-02-28T17:38:08.270Z","1.0.3":"2026-02-28T20:26:51.167Z","1.0.5":"2026-02-28T21:22:41.665Z","1.0.6":"2026-02-28T21:55:51.260Z","1.0.7":"2026-02-28T22:17:46.884Z","1.0.8":"2026-02-28T22:37:52.706Z","1.0.9":"2026-03-02T13:57:26.255Z"},"bugs":{"url":"https://github.com/dsbissett/ngx-clippy/issues"},"author":{"name":"Converted from clippyjs"},"license":"MIT","homepage":"https://github.com/dsbissett/ngx-clippy#readme","keywords":["angular","clippy","microsoft","office","assistant","animation","nostalgia"],"repository":{"type":"git","url":"git+https://github.com/dsbissett/ngx-clippy.git"},"description":"Angular component library for adding nostalgic Microsoft Office assistant characters to your application","maintainers":[{"name":"drakebissett","email":"dsbissett@gmail.com"}],"readme":"# @dsbissett/ngx-clippy\n\nAngular library that brings classic Microsoft Office assistants (Clippy, Merlin, Genie, and others) to Angular apps.\n\n## Install\n\n```bash\nnpm install @dsbissett/ngx-clippy\n```\n\n## Quick Start\n\n```ts\nimport { Component, OnInit, effect, viewChild, signal } from '@angular/core';\nimport { NgxClippyModule, ClippyAgentComponent, AgentLoaderService, AgentConfig, ClippyAgent } from '@dsbissett/ngx-clippy';\n\n@Component({\n  selector: 'app-root',\n  standalone: true,\n  imports: [NgxClippyModule],\n  template: `\n    <button (click)=\"show()\">Show</button>\n    <button (click)=\"speak()\">Speak</button>\n    <clippy-agent *ngIf=\"agentConfig() as config\" [agentConfig]=\"config\"></clippy-agent>\n  `\n})\nexport class AppComponent implements OnInit {\n  readonly agent = viewChild(ClippyAgentComponent);\n  readonly agentConfig = signal<AgentConfig | undefined>(undefined);\n  private initialShown = false;\n\n  constructor(private readonly agentLoader: AgentLoaderService) {\n    // Prevent a first-paint flash at the default position by waiting until\n    // both agentConfig and viewChild(agent) are ready, then showing at target coordinates.\n    effect(() => {\n      const agent = this.agent();\n      const config = this.agentConfig();\n      if (!agent || !config || this.initialShown) {\n        return;\n      }\n\n      const [width, height] = config.agentData.framesize;\n      const margin = 16;\n      const x = Math.max(0, window.innerWidth - width - margin);\n      const y = Math.max(0, window.innerHeight - height - margin);\n      agent.show({ immediate: true, position: { x, y } });\n      this.initialShown = true;\n    });\n  }\n\n  ngOnInit(): void {\n    this.agentLoader.loadAgent(ClippyAgent).subscribe((config) => {\n      this.initialShown = false;\n      this.agentConfig.set(config);\n    });\n  }\n\n  show(): void {\n    this.agent()?.show();\n  }\n\n  showAt(x: number, y: number): void {\n    this.agent()?.show({ position: { x, y } });\n  }\n\n  speak(): void {\n    this.agent()?.speak('Hello from @dsbissett/ngx-clippy!', { tts: true });\n  }\n}\n```\n\n## No-Flash Initial Positioning\n\nIf you want a custom initial position on first render, prefer the `effect` pattern above.\nIt avoids timing races from `setTimeout`/`queueMicrotask` where the child component may not exist yet.\n\n## Available Agents\n\n`ClippyAgent`, `BonziAgent`, `F1Agent`, `GenieAgent`, `GeniusAgent`, `LinksAgent`, `MerlinAgent`, `PeedyAgent`, `RockyAgent`, `RoverAgent`\n\n## IntelliSense Tips\n\n- Built-in loaders include a typed `name`, so `loadAgent(ClippyAgent)` gives strong editor hints and avoids duplicated arguments.\n- `loadAgent(name, loader)` still works for compatibility but is deprecated in favor of `loadAgent(loader)`.\n- `BuiltInAgentName` is exported for strongly typed agent-name variables when needed.\n\n## Positioning on Show\n\n`show()` supports optional position arguments while keeping existing behavior:\n\n```ts\n// Existing behavior (top-center on first show)\nagent.show();\n\n// Boolean signature still works\nagent.show(true);\n\n// Place agent at specific viewport coordinates\nagent.show({ position: { x: 300, y: 120 } });\n\n// Alternate signature with immediate + position\nagent.show(false, { x: 300, y: 120 });\n```\n\n## Build (Library)\n\n```bash\nnpm run ng -- build ngx-clippy\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}