@bimetal/svelte
v0.35.0
Published
Generic Svelte bindings for the BIMETAL component family: createControllerBinding + one binding per component controller. No calendar specifics — the calendar Svelte adapter lives in @bimetal/calendar-svelte-components.
Downloads
1,730
Maintainers
Readme
@bimetal/svelte
Die generische Svelte-Bindung für die BIMETAL-Komponenten-Familie. Dieses Paket bindet einen
kanonischen Controller (aus einem der @bimetal/*-headless-Pakete) über Sveltes Reaktivität ein — es
enthält keine eigene Interaktionslogik und keine Kalender-Spezifika. Jedes if lebt im
Controller; Svelte rendert nur den identitätsstabilen Snapshot und übersetzt DOM-Events in
Intent-Aufrufe.
Die fertigen Komponenten liegen in den @bimetal/<familie>-svelte-components-Paketen. Dieses Paket
liefert die Bausteine darunter für eigene Svelte-UIs.
Installation
npm install @bimetal/svelte @bimetal/<familie>-headless
# z. B. @bimetal/svelte @bimetal/kanban-headlessWas das Paket liefert
| Export | Zweck |
|--------|-------|
| createControllerBinding(factory, options) | Das generische Primitiv: erzeugt einen Controller (stabil über die store-Identität) und exponiert seinen Snapshot als Svelte-Store. |
| createKanbanControllerBinding, createTableControllerBinding, createGanttControllerBinding, createWhiteboardControllerBinding, createTreeControllerBinding, createListControllerBinding, createPickerControllerBinding, createFormBuilderControllerBinding/createFormRendererControllerBinding | Vorkonfigurierte Bindings je Familie. |
| focusTrap (Action) | Fokus-Trap als Svelte-use:-Action (Dialog-Lifecycle), gewrappt um @bimetal/a11y-dom. |
| renderProbe / probeRender | Test-Utilities für Re-Render-Zählung. |
Der Calendar-Binding (
createCalendarControllerBinding) liegt aus historischen Gründen direkt in@bimetal/calendar-svelte-components, nicht hier. Alle anderen acht Familien laufen über dieses Paket.
Hinweis zu $state
Externe, identitätsstabile Controller-Snapshots gehören in $state.raw, nicht in tiefes $state —
ein Deep-Proxy mintet je notify frische Event-Refs, wodurch alle Blätter unnötig re-rendern.
Architektur
Framework-Ebene, Bindings-Schicht. Tiefe: doc/architecture/07-framework-adapter.md.
