@bimetal/vanilla-components
v0.30.0
Published
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.
Readme
@bimetal/vanilla-components
Zero-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.
Dieses 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.
Installation
npm install @bimetal/vanilla-components @bimetal/calendar-dataQuick Start
import { mountCalendar } from '@bimetal/vanilla-components';
import { createCalendarStore } from '@bimetal/calendar-data';
import '@bimetal/calendar-themes/base.css';
const calendar = mountCalendar(document.getElementById('app')!, {
store: createCalendarStore(),
config: { core: { timezone: 'Europe/Berlin' } },
showCategoryFilter: true,
darkMode: false,
});
// Aufräumen: unsubscribe, Listener entfernen, Controller destroyen, DOM leeren.
calendar.destroy();mountCalendar(target, options)
| Parameter | Typ | Beschreibung |
|-----------|-----|--------------|
| target | HTMLElement | Container-Element, in das gerendert wird. |
| options | MountCalendarOptions | CalendarControllerOptions (store, config, rules, customViews) plus darkMode, showCategoryFilter, showResourceFilter. |
Rückgabe: { destroy(): void }.
Architektur-Hintergrund: doc/02-architecture/06-headless.md.
