trellis
Version:
Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications
45 lines • 1.64 kB
TypeScript
/**
* Kanban Svelte — `createKanbanStore` store-contract bindings
* (ADR 0034 wedge 13).
*
* Import from `trellis/kanban/svelte`:
*
* const board = createKanbanStore({ data, columns, groupFields, groupFieldId });
* // {#each $board.state.columns as col (col.id)}
* // {col.title} · {col.count}
* // {#each col.cards as card (card.id)}
* // {card.cells.title}
* // {/each}
* // {/each}
*
* No dependency on the svelte package — only the store contract, so it
* works across Svelte 4/5 (see `src/svelte/stores.ts`).
*
* @module trellis/kanban/svelte
*/
import type { KanbanConfig, KanbanState, UseKanbanReturn } from '../core/index.js';
/** Accept either a config (fresh core) or an existing core (shared mount). */
export type KanbanInput<T> = KanbanConfig<T> | UseKanbanReturn<T>;
export interface KanbanStore<T> {
/** Full board state (auto-subscribable). */
state: {
subscribe(run: (value: KanbanState) => void): () => void;
};
/** Derived: can undo (auto-subscribable). */
canUndo: {
subscribe(run: (value: boolean) => void): () => void;
};
/** Derived: can redo (auto-subscribable). */
canRedo: {
subscribe(run: (value: boolean) => void): () => void;
};
actions: UseKanbanReturn<T>['actions'];
/** Raw core (framework-free) for advanced use. */
core: UseKanbanReturn<T>;
}
/**
* Create a store-contract board from a config or an existing core;
* actions mutate the shared core.
*/
export declare function createKanbanStore<T extends object>(input: KanbanInput<T>): KanbanStore<T>;
//# sourceMappingURL=index.d.ts.map