UI building blocks for Foldkit — the Elm Architecture on
Effect — that @foldkit/ui does not ship. Each one is an ordinary Foldkit
Submodel: a Schema Model, a Message union, a pure update, Subscriptions for what happens outside
the component, and a view. The host owns the data and hears intents back as OutMessages.
| Package | What it is |
|---|---|
foldkit-scheduler |
Time grid: resources × time, drag to create / move / resize with mouse and long-press touch, overlapping events in lanes, blocked ranges, a now-line, keyboard moves. |
foldkit-sidenav |
Grouped side navigation: groups that expand in place, an icon rail with an overlay on narrower screens, a full mode for phone drawers, focus management and aria-current. |
foldkit-command-palette |
⌘K / Ctrl+K palette on @foldkit/ui Dialog: sectioned listbox with aria-activedescendant, arrow keys with wrap, loading / error / empty states; the host supplies the items. |
All three are themed through CSS custom properties with neutral defaults, so a light and a dark theme are one set of variables each. They carry no domain types.
effect4.x (tested with4.0.0-rc.112)foldkit0.158.x (and@foldkit/ui0.158.x for the palette)
pnpm add foldkit-scheduler foldkit-sidenav foldkit-command-paletteEach package's README has a complete, compiled host example.
0.1.x: built for and used in the author's own app, not yet widely used; the API may still move with Foldkit and the Effect 4 release
candidates. Known limitations are listed in each README.
pnpm install
pnpm check # typecheck, tests (Story/Scene tests with foldkit/test), buildIf one of these packages saved you time, a ⭐ on GitHub helps others find it. Issues and pull requests are welcome.
MIT © Oleksandr Antonenko