{"_id":"@affino/overlay-kernel","name":"@affino/overlay-kernel","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"@affino/overlay-kernel","version":"0.2.0","author":{"name":"Anton Pavlov","email":"a.pavlov@affino.dev"},"type":"module","description":"Shared overlay interaction kernel that coordinates stacking, focus, pointer, and scroll policies across Affino primitives.","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/affinio/affinio.git#main"},"homepage":"https://affino.dev","keywords":["overlay","focus-management","tooltip","dialog","combobox","a11y","interaction-kernel"],"license":"MIT","bugs":{"url":"https://github.com/affinio/affinio/issues"},"module":"dist/index.js","scripts":{"build":"tsc -p tsconfig.json","test":"vitest run"},"_id":"@affino/overlay-kernel@0.2.0","_integrity":"sha512-yPbhRuzMKBuUEDVM8ZhKTQcWH9jonuhTEaG6UXlpYaLNNiaWofYmmqOuP3J46ZZmlbHZInXIGFNuXo5LdhzeCg==","_resolved":"/tmp/3fe4168a77afbf3726712321d5ed7374/affino-overlay-kernel-0.2.0.tgz","_from":"file:affino-overlay-kernel-0.2.0.tgz","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-yPbhRuzMKBuUEDVM8ZhKTQcWH9jonuhTEaG6UXlpYaLNNiaWofYmmqOuP3J46ZZmlbHZInXIGFNuXo5LdhzeCg==","shasum":"1d244395f3004016acd261815d93f3bfe1a26c43","tarball":"https://registry.npmjs.org/@affino/overlay-kernel/-/overlay-kernel-0.2.0.tgz","fileCount":6,"unpackedSize":47639,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG7JKtNpj0WNBB4ohnEcx8W8b3N70/yn+m+1zdp/9naYAiEA2vEQ1eLP6u5upbNVyDr9EhCC7vY9y2Z2Z07A2mBk5KM="}]},"_npmUser":{"name":"affino","email":"anton.pavlov.personal@gmail.com"},"directories":{},"maintainers":[{"name":"affino","email":"anton.pavlov.personal@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/overlay-kernel_0.2.0_1771104815727_0.8020791490435442"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-14T21:33:35.654Z","0.2.0":"2026-02-14T21:33:35.898Z","modified":"2026-02-14T21:33:36.072Z"},"maintainers":[{"name":"affino","email":"anton.pavlov.personal@gmail.com"}],"description":"Shared overlay interaction kernel that coordinates stacking, focus, pointer, and scroll policies across Affino primitives.","homepage":"https://affino.dev","keywords":["overlay","focus-management","tooltip","dialog","combobox","a11y","interaction-kernel"],"repository":{"type":"git","url":"git+https://github.com/affinio/affinio.git#main"},"author":{"name":"Anton Pavlov","email":"a.pavlov@affino.dev"},"bugs":{"url":"https://github.com/affinio/affinio/issues"},"license":"MIT","readme":"# @affino/overlay-kernel\n\nShared overlay interaction kernel that coordinates stacking, focus, pointer, and scroll policies across Affino primitives.\n\n## Installation\n\n```bash\npnpm add @affino/overlay-kernel\n```\n\n## What it provides\n\n- Overlay manager with deterministic stack ordering.\n- Close/open request routing (`escape`, pointer outside, owner-close, programmatic).\n- Ownership model for nested overlays (`ownerId`).\n- Focus/scroll policy metadata per overlay entry.\n- Livewire/DOM observer helpers used by adapter runtimes.\n\n## Core API (high-level)\n\n- `createOverlayManager()`\n- `getDocumentOverlayManager(document)`\n- `createOverlayIntegration(...)`\n- `bindLivewireHooks(...)`\n- `ensureDocumentObserver(...)`\n- `registerDocumentScrollLock(...)` / `releaseDocumentScrollLock(...)`\n\n## Guardrails\n\n- Keep one overlay manager per document scope.\n- Use stable overlay ids.\n- Ensure `destroy()` is called for every integration on teardown.\n- Route close reasons through the manager for consistent stack behavior.\n\n## Related packages\n\n- `@affino/surface-core`\n- `@affino/overlay-host`\n- `@affino/dialog-core`\n- `@affino/menu-core`\n","readmeFilename":"README.md","_rev":"1-018e6c2efd2cd5843d56ed342aa0c765"}