{"_id":"@bimetal/vanilla-components","_rev":"3-ff66d8211e30be64ebda1e57e173290c","name":"@bimetal/vanilla-components","dist-tags":{"latest":"0.30.0"},"versions":{"0.17.0":{"name":"@bimetal/vanilla-components","version":"0.17.0","author":{"name":"Andreas Biederbeck"},"license":"PolyForm-Noncommercial-1.0.0","_id":"@bimetal/vanilla-components@0.17.0","maintainers":[{"name":"biederbe","email":"mail@biederbeck.de"}],"dist":{"shasum":"9de9554cb6850d152d7e5c7e4a2ccfd1022987f8","tarball":"https://registry.npmjs.org/@bimetal/vanilla-components/-/vanilla-components-0.17.0.tgz","fileCount":5,"integrity":"sha512-6cxPlPsoAmmrFR4CZdnhO6ehQ4yaNit/eeX4LpHwZnNSBxVYmDCu5NL5eSpjoXTPyHofrnpimWod8WYowrLSjA==","signatures":[{"sig":"MEQCIB4VutBsIEWhOBKZZgEWGmXTqKewg0vQhgOgpyaLtwL5AiAOpozrD23S/mKh7OtyASZzx6Lm0/56ueDXDxQYFI+OHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16787},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./src/styles/index.css"},"gitHead":"1fc09f98df3a3b525140bf58bd01040715c11e0c","scripts":{"dev":"tsc -b --watch","build":"tsc -b","typecheck":"tsc --noEmit"},"_npmUser":{"name":"biederbe","email":"mail@biederbeck.de"},"_npmVersion":"11.12.1","description":"Zero-framework calendar binding: mountCalendar() drives the canonical @bimetal/headless controller with plain DOM. Proof that any stack binds the controller.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@bimetal/core":"^0.17.0","@bimetal/headless":"^0.17.0","@bimetal/calendar-data":"^0.17.0","@bimetal/calendar-rules":"^0.17.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vanilla-components_0.17.0_1782064931073_0.46415835085459456","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@bimetal/vanilla-components","version":"0.29.0","author":{"name":"Andreas Biederbeck"},"license":"PolyForm-Noncommercial-1.0.0","_id":"@bimetal/vanilla-components@0.29.0","maintainers":[{"name":"biederbe","email":"mail@biederbeck.de"}],"dist":{"shasum":"91a6f468d173f0050957e0b2141ed182541208f9","tarball":"https://registry.npmjs.org/@bimetal/vanilla-components/-/vanilla-components-0.29.0.tgz","fileCount":6,"integrity":"sha512-yeF9f93xGDmdyW/rH6ZwjnP56KXM/flQe4Zuk/CCD+kyeIgewsI6gGVvpuBWMfo2Tg519HCdy/i0cTzXptTVAw==","signatures":[{"sig":"MEUCIE98cHta+DAlRFEoit/xnYmM2pO8ROHt8aXqTakjzzytAiEA9KmOD6LV4vhH0kWcUVtVpMX84GaCqJHsVkbhPxhdXYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19368},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"186d8761ec5cd0a33f6ea349beb975099167fbc9","scripts":{"dev":"tsc -b --watch","build":"tsc -b","typecheck":"tsc --noEmit"},"_npmUser":{"name":"biederbe","email":"mail@biederbeck.de"},"_npmVersion":"11.17.0","description":"Generic zero-framework bindings for the BIMETAL component family: one mount<Component>() per component, plain-DOM renderers driving the canonical controllers. No calendar specifics — calendar mount lives in @bimetal/calendar-vanilla-components.","directories":{},"_nodeVersion":"26.4.0","dependencies":{"@bimetal/a11y-dom":"^0.29.0","@bimetal/list-headless":"^0.29.0","@bimetal/tree-headless":"^0.29.0","@bimetal/table-headless":"^0.29.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vanilla-components_0.29.0_1784138905679_0.314094136961927","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@bimetal/vanilla-components","version":"0.30.0","description":"Generic zero-framework bindings for the BIMETAL component family: one mount<Component>() per component, plain-DOM renderers driving the canonical controllers. No calendar specifics — calendar mount lives in @bimetal/calendar-vanilla-components.","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -b","typecheck":"tsc --noEmit","dev":"tsc -b --watch"},"dependencies":{"@bimetal/a11y-dom":"^0.30.0","@bimetal/table-headless":"^0.30.0","@bimetal/tree-headless":"^0.30.0","@bimetal/list-headless":"^0.30.0"},"license":"PolyForm-Noncommercial-1.0.0","author":{"name":"Andreas Biederbeck"},"gitHead":"51dea0f01db49be01780bf4692853f6882cc98f2","_id":"@bimetal/vanilla-components@0.30.0","_nodeVersion":"26.4.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-T2ddiQ6KfFPo5T42tCeW6vfnRwDUxHSuApfg7kB6zn45zKUX9gTCrepI4+yd226J+BXTsgrFJZgyOL2UK5q0rQ==","shasum":"692f249219a13bbe041180e986eea29bf80e4de9","tarball":"https://registry.npmjs.org/@bimetal/vanilla-components/-/vanilla-components-0.30.0.tgz","fileCount":6,"unpackedSize":19368,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDSQNGdagDWJxBgTPNwtARv3BDFxyKPpoyAd+FQde70HAIhAJTfnwitKLRUgiWsh77QF0szWyA43f1e9NLjeLvihUiL"}]},"_npmUser":{"name":"biederbe","email":"mail@biederbeck.de"},"directories":{},"maintainers":[{"name":"biederbe","email":"mail@biederbeck.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vanilla-components_0.30.0_1784223778870_0.5952409499805269"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-21T18:02:10.953Z","modified":"2026-07-16T17:42:59.201Z","0.17.0":"2026-06-21T18:02:11.216Z","0.29.0":"2026-07-15T18:08:25.821Z","0.30.0":"2026-07-16T17:42:59.009Z"},"author":{"name":"Andreas Biederbeck"},"license":"PolyForm-Noncommercial-1.0.0","description":"Generic zero-framework bindings for the BIMETAL component family: one mount<Component>() per component, plain-DOM renderers driving the canonical controllers. No calendar specifics — calendar mount lives in @bimetal/calendar-vanilla-components.","maintainers":[{"name":"biederbe","email":"mail@biederbeck.de"}],"readme":"# @bimetal/vanilla-components\n\nZero-Framework-Kalender. `mountCalendar(target, options)` konstruiert den kanonischen `createCalendarController` aus `@bimetal/calendar-headless` und rendert dessen Snapshot mit purem DOM — ohne React/Vue/Svelte/Angular.\n\nDieses Paket beweist, dass die Binding-Schicht dünn genug für **jeden** Stack ist: Der Controller besitzt jede Entscheidung, das Binding übersetzt nur Snapshot → DOM und DOM-Event → Intent. Es rendert dieselbe CSS-Klassenstruktur wie die Framework-Komponenten, sodass `@bimetal/calendar-themes` es identisch stylt.\n\n## Installation\n\n```bash\nnpm install @bimetal/vanilla-components @bimetal/calendar-data\n```\n\n## Quick Start\n\n```typescript\nimport { mountCalendar } from '@bimetal/vanilla-components';\nimport { createCalendarStore } from '@bimetal/calendar-data';\nimport '@bimetal/calendar-themes/base.css';\n\nconst calendar = mountCalendar(document.getElementById('app')!, {\n  store: createCalendarStore(),\n  config: { core: { timezone: 'Europe/Berlin' } },\n  showCategoryFilter: true,\n  darkMode: false,\n});\n\n// Aufräumen: unsubscribe, Listener entfernen, Controller destroyen, DOM leeren.\ncalendar.destroy();\n```\n\n## mountCalendar(target, options)\n\n| Parameter | Typ | Beschreibung |\n|-----------|-----|--------------|\n| `target` | `HTMLElement` | Container-Element, in das gerendert wird. |\n| `options` | `MountCalendarOptions` | `CalendarControllerOptions` (`store`, `config`, `rules`, `customViews`) plus `darkMode`, `showCategoryFilter`, `showResourceFilter`. |\n\nRückgabe: `{ destroy(): void }`.\n\nArchitektur-Hintergrund: `doc/02-architecture/06-headless.md`.\n","readmeFilename":"README.md"}