{"_id":"@affino/disclosure-core","name":"@affino/disclosure-core","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@affino/disclosure-core","version":"0.1.0","author":{"name":"Anton Pavlov","email":"a.pavlov@affino.dev"},"type":"module","description":"Headless disclosure controller for Affino primitives","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"license":"MIT","devDependencies":{"vitest":"^4.0.15"},"repository":{"type":"git","url":"git+https://github.com/affinio/affinio.git#main"},"homepage":"https://affino.dev","bugs":{"url":"https://github.com/affinio/affinio/issues"},"keywords":["affino","core","headless","disclosure","accordion","accessibility"],"module":"dist/index.js","scripts":{"build":"tsc -p tsconfig.json","test":"vitest run"},"_id":"@affino/disclosure-core@0.1.0","_integrity":"sha512-Px1/9Dn10sHUFscueL8z4CtAm0NEexn41INGng+fAQDb8H2EgROyJ4JPFXOg0iGYZlM/8E9iP2rfqI0NKMc/4A==","_resolved":"/tmp/261e9bd5f36df5dc9e494c3af6952ebd/affino-disclosure-core-0.1.0.tgz","_from":"file:affino-disclosure-core-0.1.0.tgz","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Px1/9Dn10sHUFscueL8z4CtAm0NEexn41INGng+fAQDb8H2EgROyJ4JPFXOg0iGYZlM/8E9iP2rfqI0NKMc/4A==","shasum":"10755f87867a9ab8f5e82d80535c3c0aad0eb7b3","tarball":"https://registry.npmjs.org/@affino/disclosure-core/-/disclosure-core-0.1.0.tgz","fileCount":12,"unpackedSize":6618,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBPssT7S4EvAiWrIqJN1EQJx3ERXFDuwm64apCnwVi4xAiB5uhRcUWit5Nu8K4OV16KeGsQKnyynBSw93sGQIDBKPQ=="}]},"_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/disclosure-core_0.1.0_1771104654444_0.6927155538734884"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-14T21:30:54.316Z","0.1.0":"2026-02-14T21:30:54.599Z","modified":"2026-02-14T21:30:55.116Z"},"maintainers":[{"name":"affino","email":"anton.pavlov.personal@gmail.com"}],"description":"Headless disclosure controller for Affino primitives","homepage":"https://affino.dev","keywords":["affino","core","headless","disclosure","accordion","accessibility"],"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/disclosure-core\n\nHeadless disclosure/collapsible primitive with deterministic boolean state.\n\n## Installation\n\n```bash\npnpm add @affino/disclosure-core\n```\n\n## Quick start\n\n```ts\nimport { DisclosureCore } from \"@affino/disclosure-core\"\n\nconst disclosure = new DisclosureCore(false)\n\ndisclosure.open()\ndisclosure.close()\ndisclosure.toggle()\n\nconst snapshot = disclosure.getSnapshot()\nconst isOpen = disclosure.isOpen()\n```\n\n## API\n\n- `new DisclosureCore(defaultOpen?)`\n- `open()`\n- `close()`\n- `toggle()`\n- `isOpen()`\n- `getSnapshot()`\n- `subscribe(listener)`\n- `destroy()`\n\n## Behavioral guarantees\n\n- Duplicate `open()`/`close()` operations are no-ops.\n- Subscriber callbacks run only on meaningful state changes.\n- `getSnapshot()` returns frozen immutable objects (runtime-enforced).\n- Snapshot reference stays stable between no-op operations.\n\n## Adapter guidance\n\n- Keep one disclosure source of truth in adapter state.\n- Treat snapshots as immutable outputs.\n- Bind UI triggers directly to `open`/`close`/`toggle`.\n","readmeFilename":"README.md","_rev":"1-22b4afba21364827e451fc0dfd31e9a0"}