Full reference
Everything in zeyo-ui, for completeness — including the handful this showcase doesn't render live, and why.
A few more, live
Three small pieces that didn't earn their own page. CopyButton is already doing real work — it's what renders the copy button on every code block on this site.
<BackButton href={resolve('/components/buttons')} label="Buttons" />
<CopyButton clipboardText={async () => 'npm install zeyo-ui'} />
<CopyArea clipboardText={async () => 'pureleaves'}>
{#snippet children({ copied, onclick })}
<button {onclick}>{copied ? 'Copied!' : 'pureleaves'}</button>
{/snippet}
</CopyArea>App-specific
Needs a live app context this static showcase doesn’t have
| Component | Import | Note |
|---|---|---|
| QueryState | zeyo-ui/query-state/QueryState.svelte | Renders the pending/error/empty states of a real remote query() instance. |
More form fields
Same Field pattern already shown — not repeated for every variant
| Component | Import | Note |
|---|---|---|
| DateField / TimeField / DateRangeField | zeyo-ui/form/fields | Built on @internationalized/date — see docs/datetime.md for the CalendarDate/ZonedDateTime convention. |
| PinField / HexColorField / PasswordField | zeyo-ui/form/fields | Same Field pattern as TextField/EmailField shown in Components → Forms. |
| PhoneField | zeyo-ui/form/PhoneField.svelte | Wraps libphonenumber-js for validated phone input. |
More form primitives
Exist and are used elsewhere, just not yet demoed here
| Component | Import | Note |
|---|---|---|
| Choice / ChoiceMulti / WeekdayChoice(Multi) | zeyo-ui/form/primitives | Segmented single/multi picker, generic over item type. |
| ContextMenu + Content/Item/Separator/Trigger | zeyo-ui/form/primitives | Right-click menu primitives. |
| Draggable / Dropzone / DragManager | zeyo-ui/form/primitives | Drag-and-drop primitives. |
| DateInput | zeyo-ui/form/primitives | Raw date input, lower-level than DateField. |
A few more
Simple, but need real data/route context to look right
| Component | Import | Note |
|---|---|---|
| ErrorPage | zeyo-ui/error/ErrorPage.svelte | Full-page error state, meant for a route’s +error.svelte. |
Found while building this:
packages/ui/package.json exports ./typing-dots/*, but no typing-dots directory exists in packages/ui and nothing in the repo imports it — a dead export worth removing.Also found:
zeyo-ui/table/Table.svelte renders <TableRow> (a <tr>) as a direct child of <table>, with no <tbody> — every consumer (this app's Table/GroupedGrid demos included) logs a
Svelte node_invalid_placement_ssr hydration warning in dev, even though the browser
auto-corrects it and the rendered table looks right. Cosmetic today, but wrapping children in a <tbody> inside Table.svelte would clear it
repo-wide in one place.