@vibes.diy/prompts 14.3.201 → 14.3.203
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/llms/board-games.md +94 -0
- package/llms/github.md +4 -0
- package/llms/maps.js +14 -2
- package/llms/maps.js.map +1 -1
- package/llms/maps.md +211 -8
- package/llms/reskin.js +8 -1
- package/llms/reskin.js.map +1 -1
- package/llms/reskin.md +79 -0
- package/llms/web-audio.md +48 -25
- package/package.json +5 -5
- package/themes/looks/pouf/brief.md +2 -0
- package/themes/looks/pouf/catalog.generated.d.ts +1 -1
- package/themes/looks/pouf/catalog.generated.js +31 -1
- package/themes/looks/pouf/catalog.generated.js.map +1 -1
package/llms/board-games.md
CHANGED
|
@@ -71,6 +71,100 @@ function Wheel({ cx, cy, on }) {
|
|
|
71
71
|
**The same move on other boards:** checkers as poker chips (two concentric `<circle>`s with a dashed edge stripe); a word-guess as wooden tiles (a `<rect>` with a lighter top edge, letters in the display face); sudoku as graph paper (thin `stroke-border` rules, thick box rules, entries in a handwritten-looking face and givens in the body face); memory as a deck (a card back with a pattern drawn from the deck's seed, flipped with a `scaleX` transition); mancala as carved pits (an ellipse with an inner shadow ring and seeds as small circles scattered from the seed).
|
|
72
72
|
|
|
73
73
|
|
|
74
|
+
## Board surface — the board is the app
|
|
75
|
+
|
|
76
|
+
On a board game the board is the thing people came for, so the look's components only frame it: the title, a `Stat` or `Badge` for the score and the turn, `Button`s for New game / Undo / Share, a `Dialog` for the win. Taste goes into the board itself — its material, tiles, pieces, texture and motion — and a board drawn from `Card`s, `RowCard`s or one `IconButton` per square reads as an admin screen, whatever the palette.
|
|
77
|
+
|
|
78
|
+
On a pouf app (or any look on its surface) the board takes the `reskin` technique, even when the person never asked for a look:
|
|
79
|
+
|
|
80
|
+
- **One wrapper.** The app renders inside a root `<div data-reskin>` with `<style>{SKIN}</style>` as its first child, `SKIN` one module-level CSS string. A later "make it look like a 1970s wooden set" then lands in the same place.
|
|
81
|
+
- **Colour from the look's tokens.** The board's CSS reads `var(--surface)`, `var(--ink)`, `var(--purple)`, `var(--up)`, `var(--down)` and `var(--r-card)`, so the Look tab and a reskin restyle the board with the chrome. A material colour no token carries (walnut, felt green) is set as a token on the wrapper first, `--felt: …`, and read from there.
|
|
82
|
+
- **Plain elements for tiles and pieces.** The board is SVG or a CSS grid of `div`s with the app's own class names (`.board`, `.sq`, `.sq--dark`, `.piece`), each cell a `<g role="button">` or `div role="button" tabIndex={0}` as above. They take classes freely; the look's components never do.
|
|
83
|
+
- **Texture and motion on the board, capture-safe.** Grain or felt is a gradient on `.board`; a piece slides with a `transform` transition and lands once; the first frame is already a full board.
|
|
84
|
+
|
|
85
|
+
```jsx
|
|
86
|
+
import React, { useState } from "react";
|
|
87
|
+
import { Badge, Button, Heading, Row, Stack } from "@vibes.diy/pouf";
|
|
88
|
+
|
|
89
|
+
const SKIN = `
|
|
90
|
+
[data-reskin], body:has([data-reskin]) { --felt: color-mix(in srgb, var(--up) 55%, var(--ink)); }
|
|
91
|
+
[data-reskin] .board { display: grid; grid-template: repeat(8, 1fr) / repeat(8, 1fr); width: min(100%, 28rem); aspect-ratio: 1;
|
|
92
|
+
padding: 10px; border-radius: var(--r-card); background: var(--ink); touch-action: manipulation; user-select: none; }
|
|
93
|
+
[data-reskin] .sq { display: grid; place-items: center; background: var(--surface); }
|
|
94
|
+
[data-reskin] .sq--dark { background: repeating-linear-gradient(135deg, var(--felt) 0 3px, color-mix(in srgb, var(--felt) 88%, var(--ink)) 3px 6px); }
|
|
95
|
+
[data-reskin] .piece { width: 76%; aspect-ratio: 1; border-radius: 50%; border: 3px dashed color-mix(in srgb, var(--surface) 60%, transparent);
|
|
96
|
+
box-shadow: 0 3px 0 color-mix(in srgb, var(--ink) 45%, transparent); transition: transform 180ms ease; }
|
|
97
|
+
[data-reskin] .piece--red { background: var(--down); }
|
|
98
|
+
[data-reskin] .piece--black { background: var(--ink); border-color: var(--text-secondary); }
|
|
99
|
+
[data-reskin] .sq[aria-pressed="true"] .piece { transform: translateY(-4px) scale(1.06); }
|
|
100
|
+
`;
|
|
101
|
+
|
|
102
|
+
const START = Array.from({ length: 64 }, (_, i) => {
|
|
103
|
+
const dark = (Math.floor(i / 8) + i) % 2 === 1;
|
|
104
|
+
return !dark ? null : i < 24 ? "black" : i >= 40 ? "red" : null;
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
export default function App() {
|
|
108
|
+
const [cells, setCells] = useState(START);
|
|
109
|
+
const [held, setHeld] = useState(-1);
|
|
110
|
+
const [turn, setTurn] = useState("red");
|
|
111
|
+
|
|
112
|
+
// Any empty square takes the held piece here; a real game asks legalMoves(state) first (below).
|
|
113
|
+
function tap(i) {
|
|
114
|
+
if (cells[i] === turn) return setHeld(i);
|
|
115
|
+
if (held < 0 || cells[i] !== null) return;
|
|
116
|
+
setCells(cells.map((c, j) => (j === i ? turn : j === held ? null : c)));
|
|
117
|
+
setHeld(-1);
|
|
118
|
+
setTurn(turn === "red" ? "black" : "red");
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function newGame() {
|
|
122
|
+
setCells(START);
|
|
123
|
+
setHeld(-1);
|
|
124
|
+
setTurn("red");
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return (
|
|
128
|
+
<div data-reskin>
|
|
129
|
+
<style>{SKIN}</style>
|
|
130
|
+
<Stack gap={4}>
|
|
131
|
+
<Row gap={2} align="center">
|
|
132
|
+
<Heading level={1}>Checkers</Heading>
|
|
133
|
+
<Badge tone={turn === "red" ? "down" : "idle"}>{turn} to move</Badge>
|
|
134
|
+
</Row>
|
|
135
|
+
<div className="board" role="group" aria-label="Checkers board">
|
|
136
|
+
{cells.map((c, i) => (
|
|
137
|
+
<div
|
|
138
|
+
key={i}
|
|
139
|
+
role="button"
|
|
140
|
+
tabIndex={0}
|
|
141
|
+
aria-label={`Square ${i + 1}${c ? `, ${c}` : ""}`}
|
|
142
|
+
aria-pressed={held === i}
|
|
143
|
+
className={(Math.floor(i / 8) + i) % 2 === 1 ? "sq sq--dark" : "sq"}
|
|
144
|
+
onClick={() => tap(i)}
|
|
145
|
+
onKeyDown={(e) => {
|
|
146
|
+
if (e.key !== "Enter" && e.key !== " ") return;
|
|
147
|
+
e.preventDefault();
|
|
148
|
+
tap(i);
|
|
149
|
+
}}
|
|
150
|
+
>
|
|
151
|
+
{c && <span className={`piece piece--${c}`} />}
|
|
152
|
+
</div>
|
|
153
|
+
))}
|
|
154
|
+
</div>
|
|
155
|
+
<Row gap={2}>
|
|
156
|
+
<Button variant="quiet" onClick={newGame}>
|
|
157
|
+
New game
|
|
158
|
+
</Button>
|
|
159
|
+
</Row>
|
|
160
|
+
</Stack>
|
|
161
|
+
</div>
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
The rules functions, seeds and access shapes below are unchanged; this is only where the board's look lives. The same move covers a puzzle grid, a card table (a `.table` in felt, `.card` faces as plain elements) and the HUD around a canvas or voxel world, where the canvas is the board and the components are the frame.
|
|
167
|
+
|
|
74
168
|
## Seeds — the same deal on every device
|
|
75
169
|
|
|
76
170
|
Every deal, shuffle and daily puzzle comes from a seed, so the same player sees the same card on every reload and every device.
|
package/llms/github.md
CHANGED
|
@@ -73,9 +73,13 @@ own, and `:write` includes `:read`:
|
|
|
73
73
|
| `checks:read` | read check results on commits | `/check-runs`, `/check-suites`, `/commits/{ref}/check-runs` (GET) |
|
|
74
74
|
| `checks:write` | post check results on commits | creating and updating check runs |
|
|
75
75
|
| `actions:read` | read its Actions runs | `/actions/runs`, `/actions/workflows`, `/actions/jobs`, `/actions/artifacts` (GET) |
|
|
76
|
+
| `workflows:write` | add and update its CI workflows | writing a file under `.github/workflows/` with `/contents` (together with `contents:write`) |
|
|
76
77
|
|
|
77
78
|
- A repo's own record (`GET /repos/{owner}/{repo}`) and
|
|
78
79
|
`/installation/repositories` need no permission; every app has them.
|
|
80
|
+
- An app that adds a CI workflow (a file under `.github/workflows/`, such as a
|
|
81
|
+
linter run) declares `contents:write` and `workflows:write`, plus
|
|
82
|
+
`pull_requests:write` when it opens a pull request for it.
|
|
79
83
|
- A pull request's conversation comments and labels live at
|
|
80
84
|
`/repos/{owner}/{repo}/issues/{number}/comments` and `…/labels` on GitHub, and
|
|
81
85
|
`pull_requests:write` covers them when `{number}` is a pull request. An app
|
package/llms/maps.js
CHANGED
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
export const mapsConfig = {
|
|
2
2
|
name: "maps",
|
|
3
3
|
label: "maps",
|
|
4
|
-
description: "
|
|
5
|
-
cues: [
|
|
4
|
+
description: "maps of every kind. World overviews (countries, travel journals, places visited, best places to live, territory games, choropleths) use bundled country outlines and SVG markers that render immediately. Street maps of places near the person (restaurants, coffee, parks, \"near me\", a city or zip, directions) use MapLibre vector tiles plus an OpenStreetMap place search that opens already full of real places, with friends' ratings and directions links on top",
|
|
5
|
+
cues: [
|
|
6
|
+
"world map",
|
|
7
|
+
"countries",
|
|
8
|
+
"places visited",
|
|
9
|
+
"choropleth",
|
|
10
|
+
"travel map",
|
|
11
|
+
"geography",
|
|
12
|
+
"near me",
|
|
13
|
+
"nearby",
|
|
14
|
+
"local map",
|
|
15
|
+
"street map",
|
|
16
|
+
"driving directions",
|
|
17
|
+
],
|
|
6
18
|
};
|
|
7
19
|
//# sourceMappingURL=maps.js.map
|
package/llms/maps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maps.js","sourceRoot":"","sources":["../../jsr/llms/maps.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAc;IACnC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"maps.js","sourceRoot":"","sources":["../../jsr/llms/maps.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAc;IACnC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,WAAW,EACT,6cAA6c;IAC/c,IAAI,EAAE;QACJ,WAAW;QACX,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,SAAS;QACT,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,oBAAoB;KACrB;CACF,CAAC"}
|
package/llms/maps.md
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
# Maps — a world overview
|
|
1
|
+
# Maps — a world overview, or a street map of places near the person
|
|
2
|
+
|
|
3
|
+
Maps come in two shapes, and the ask picks one. Countries, travel journals,
|
|
4
|
+
territory games and choropleths get the **world overview** below, drawn from
|
|
5
|
+
bundled outlines. An ask about places someone can walk or drive to (restaurants,
|
|
6
|
+
coffee, parks, "near me", "local", a city or zip, directions) gets the
|
|
7
|
+
**street map of places near the person** further down: vector tiles, a place
|
|
8
|
+
search, and a feed of real places that is full on the first screen.
|
|
9
|
+
|
|
10
|
+
## World overview
|
|
2
11
|
|
|
3
12
|
For world maps, travel journals, country comparisons and territory games, import
|
|
4
13
|
shapes and geometry from `@vibes.diy/geo`. The platform bundles the data and
|
|
@@ -65,12 +74,206 @@ country IDs and display the units and range in their legend; missing data has
|
|
|
65
74
|
its own fill and label.
|
|
66
75
|
|
|
67
76
|
World outlines come with the app; no runtime shape fetch is needed.
|
|
68
|
-
The data is generalized Natural Earth 4.1.0 via world-atlas 2.0.2. It is
|
|
69
|
-
|
|
70
|
-
map provider with its own coverage, credentials and attribution. Keep that choice
|
|
71
|
-
separate from a request to show results on a world map.
|
|
77
|
+
The data is generalized Natural Earth 4.1.0 via world-atlas 2.0.2. It is made for
|
|
78
|
+
world overviews; streets, neighborhoods and places to go are the street map's job.
|
|
72
79
|
|
|
73
|
-
Verify
|
|
80
|
+
Verify a world overview at phone width: outlines, matching fills and place
|
|
74
81
|
markers appear, tapping a result opens its details, the legend is readable, and
|
|
75
|
-
|
|
76
|
-
|
|
82
|
+
the outlines arrive with the app rather than from a shape download.
|
|
83
|
+
|
|
84
|
+
## Street map of places near the person
|
|
85
|
+
|
|
86
|
+
**A local ask opens on results.** "Vegan restaurants I can share with friends",
|
|
87
|
+
"coffee near me", "dog parks in my city": the first screen is a street map with
|
|
88
|
+
numbered pins and a feed of real places beside it, with no form to fill first.
|
|
89
|
+
The area comes from, in order: the area the person picked last time (kept in
|
|
90
|
+
`localStorage`), a city-level guess from their connection
|
|
91
|
+
(`https://get.geojs.io/v1/ip/geo.json`: `city`, `region`, `latitude`,
|
|
92
|
+
`longitude`; no permission prompt), and a well-known city when neither answers.
|
|
93
|
+
One line beside the results says what it shows and how the area was chosen: "38
|
|
94
|
+
spots within 5 mi of Portland, Oregon (a guess from your connection)".
|
|
95
|
+
|
|
96
|
+
That opening is for places the public world holds. When the ask is the person's
|
|
97
|
+
own collection ("places I've been", "my favorite spots", "my trips"), the app
|
|
98
|
+
opens on their own records and the place search is how they add the next one.
|
|
99
|
+
A public list never stands in for their own.
|
|
100
|
+
|
|
101
|
+
**The first paint reads well with no network.** Above the map, the area line,
|
|
102
|
+
the city or zip box and the location button render from code alone. The feed
|
|
103
|
+
holds framed placeholders until the places arrive, and the map box shows a quiet
|
|
104
|
+
background color until its tiles arrive. Keep the last good answer for each area
|
|
105
|
+
in `localStorage` and paint it before the next search goes out, so a return
|
|
106
|
+
visit opens instantly and a busy place search still shows real places.
|
|
107
|
+
|
|
108
|
+
**The location prompt runs only inside the handler of a button the person taps.**
|
|
109
|
+
A "Use my location" button calls `navigator.geolocation.getCurrentPosition`
|
|
110
|
+
from its click handler, rounds to three decimals (a block, not a doorstep), and
|
|
111
|
+
searches there. Never call it from an effect or at load: the guess already gave
|
|
112
|
+
them a map, and the button is the upgrade they choose. A city or zip box sits
|
|
113
|
+
beside it, looked up on submit with Photon
|
|
114
|
+
(`https://photon.komoot.io/api/?q=<text>&limit=5&lat=<lat>&lon=<lng>`, biased
|
|
115
|
+
toward the current area so "97214" finds Portland, not a village abroad).
|
|
116
|
+
Reverse lookups for a friendly label use `https://photon.komoot.io/reverse?lat=…&lon=…`.
|
|
117
|
+
|
|
118
|
+
**Draw the map with MapLibre and OpenFreeMap vector tiles**: free, keyless and
|
|
119
|
+
sharp at every zoom. Load the library on first render from its pinned URL, give
|
|
120
|
+
the map a container with a real height, and theme the pins with the app's own
|
|
121
|
+
classes:
|
|
122
|
+
|
|
123
|
+
```jsx
|
|
124
|
+
import React, { useEffect, useRef, useState } from "react";
|
|
125
|
+
|
|
126
|
+
let lib;
|
|
127
|
+
const loadMapLibre = () => (lib ??= (() => {
|
|
128
|
+
const css = document.createElement("link");
|
|
129
|
+
css.rel = "stylesheet";
|
|
130
|
+
css.href = "https://unpkg.com/maplibre-gl@5.6.0/dist/maplibre-gl.css";
|
|
131
|
+
document.head.appendChild(css);
|
|
132
|
+
return import("https://esm.sh/maplibre-gl@5.6.0").then((m) => m.default ?? m);
|
|
133
|
+
})());
|
|
134
|
+
|
|
135
|
+
const styleUrl = () => matchMedia("(prefers-color-scheme: dark)").matches
|
|
136
|
+
? "https://tiles.openfreemap.org/styles/dark"
|
|
137
|
+
: "https://tiles.openfreemap.org/styles/positron"; // also: liberty, bright
|
|
138
|
+
|
|
139
|
+
export function PlaceMap({ places, center, selectedId, onPick }) {
|
|
140
|
+
const box = useRef(null);
|
|
141
|
+
const map = useRef(null);
|
|
142
|
+
const pins = useRef(new Map());
|
|
143
|
+
const [ready, setReady] = useState(false);
|
|
144
|
+
useEffect(() => {
|
|
145
|
+
let alive = true;
|
|
146
|
+
loadMapLibre().then((ml) => {
|
|
147
|
+
if (!alive) return;
|
|
148
|
+
map.current = new ml.Map({ container: box.current, style: styleUrl(),
|
|
149
|
+
center: [center.lng, center.lat], zoom: 12, attributionControl: false, cooperativeGestures: true });
|
|
150
|
+
map.current.addControl(new ml.NavigationControl({ showCompass: false }), "top-right");
|
|
151
|
+
map.current.on("load", () => alive && setReady(true));
|
|
152
|
+
});
|
|
153
|
+
return () => { alive = false; map.current?.remove(); };
|
|
154
|
+
}, []);
|
|
155
|
+
// Places arrive after the map: redraw whenever the list changes, once the map is ready.
|
|
156
|
+
const ids = places.map((p) => p.id).join("|");
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
if (!ready) return;
|
|
159
|
+
loadMapLibre().then((ml) => {
|
|
160
|
+
pins.current.forEach((pin) => pin.remove());
|
|
161
|
+
pins.current = new Map();
|
|
162
|
+
places.forEach((place, i) => {
|
|
163
|
+
const el = document.createElement("button");
|
|
164
|
+
el.className = "grid size-8 place-items-center rounded-full border-2 border-background bg-primary text-xs font-bold text-primary-foreground shadow";
|
|
165
|
+
el.textContent = String(i + 1); // the same number the feed shows
|
|
166
|
+
el.setAttribute("aria-label", `${i + 1}. ${place.name}`);
|
|
167
|
+
el.onclick = () => onPick(place.id);
|
|
168
|
+
pins.current.set(place.id, new ml.Marker({ element: el }).setLngLat([place.lng, place.lat]).addTo(map.current));
|
|
169
|
+
});
|
|
170
|
+
if (places.length > 1) {
|
|
171
|
+
const b = new ml.LngLatBounds();
|
|
172
|
+
places.forEach((p) => b.extend([p.lng, p.lat]));
|
|
173
|
+
map.current.fitBounds(b, { padding: 48, maxZoom: 14 });
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}, [ready, ids]);
|
|
177
|
+
useEffect(() => {
|
|
178
|
+
const pin = pins.current.get(selectedId);
|
|
179
|
+
if (pin) map.current.easeTo({ center: pin.getLngLat(), zoom: Math.max(map.current.getZoom(), 14) });
|
|
180
|
+
}, [selectedId]);
|
|
181
|
+
return <div className="relative h-80 overflow-hidden rounded-lg border border-border lg:h-screen">
|
|
182
|
+
<div ref={box} className="h-full w-full" role="region" aria-label="Map of places" />
|
|
183
|
+
<span className="absolute bottom-1 left-2 text-xs text-muted-foreground">© OpenFreeMap · © OpenStreetMap contributors</span>
|
|
184
|
+
</div>;
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
MapLibre sets `position: relative` on the element it is handed, so size that
|
|
189
|
+
element with `h-full w-full` inside a sized wrapper; an `absolute inset-0` map
|
|
190
|
+
box collapses to zero height. Once the person drags the map, offer a "Search
|
|
191
|
+
this area" button that searches the map's center with a radius taken from its
|
|
192
|
+
bounds.
|
|
193
|
+
|
|
194
|
+
**Places come from OpenStreetMap through the app's own `backend.js`.** A `GET
|
|
195
|
+
/_api/places?lat=…&lng=…&r=…` route asks Overpass and answers the raw elements.
|
|
196
|
+
A read the backend makes is shared through the platform's read cache, so
|
|
197
|
+
friends opening the same area share one answer. When the owner has set a
|
|
198
|
+
`GEOAPIFY_KEY` secret, the same route asks Geoapify's hosted copy of
|
|
199
|
+
OpenStreetMap instead, which answers steadily:
|
|
200
|
+
|
|
201
|
+
```js
|
|
202
|
+
const MIRRORS = ["https://overpass-api.de/api/interpreter", "https://overpass.private.coffee/api/interpreter"];
|
|
203
|
+
const json = (d, status = 200) => new Response(JSON.stringify(d), { status, headers: { "content-type": "application/json" } });
|
|
204
|
+
|
|
205
|
+
export async function fetch(request, ctx) {
|
|
206
|
+
const url = new URL(request.url);
|
|
207
|
+
if (url.pathname !== "/places") return json({ ok: false }, 404);
|
|
208
|
+
const lat = Number(url.searchParams.get("lat")), lng = Number(url.searchParams.get("lng"));
|
|
209
|
+
const r = Math.min(Number(url.searchParams.get("r")) || 8000, 40000);
|
|
210
|
+
if (!Number.isFinite(lat) || !Number.isFinite(lng)) return json({ ok: false, reason: "Pick a spot on the map." }, 400);
|
|
211
|
+
try {
|
|
212
|
+
const key = ctx.secrets.GEOAPIFY_KEY;
|
|
213
|
+
if (key) {
|
|
214
|
+
const res = await ctx.fetch(`https://api.geoapify.com/v2/places?categories=catering.restaurant,catering.cafe` +
|
|
215
|
+
`&conditions=vegan&filter=circle:${lng},${lat},${r}&limit=100&apiKey=${encodeURIComponent(key)}`);
|
|
216
|
+
const d = await res.json();
|
|
217
|
+
// datasource.raw carries the OSM tags, so the page reads one shape either way.
|
|
218
|
+
const TYPES = { n: "node", w: "way", r: "relation" };
|
|
219
|
+
return json({ ok: true, elements: d.features.map(({ properties: p }) => {
|
|
220
|
+
const raw = p.datasource?.raw ?? {};
|
|
221
|
+
// Keep the OSM identity (osm-way-12 stays osm-way-12); a result with none gets its own namespace.
|
|
222
|
+
const osm = TYPES[raw.osm_type] && raw.osm_id;
|
|
223
|
+
return { type: osm ? TYPES[raw.osm_type] : "geoapify", id: osm ? raw.osm_id : p.place_id,
|
|
224
|
+
lat: p.lat, lon: p.lon, tags: { name: p.name, ...raw } };
|
|
225
|
+
}) });
|
|
226
|
+
}
|
|
227
|
+
const q = `[out:json][timeout:20];nwr["amenity"~"^(restaurant|cafe|fast_food)$"]["diet:vegan"~"^(only|yes)$"](around:${r},${lat},${lng});out center tags 300;`;
|
|
228
|
+
const elements = await Promise.any(MIRRORS.map(async (base) => {
|
|
229
|
+
const res = await ctx.fetch(`${base}?data=${encodeURIComponent(q)}`);
|
|
230
|
+
if (!res.ok) throw new Error(String(res.status));
|
|
231
|
+
return (await res.json()).elements;
|
|
232
|
+
}));
|
|
233
|
+
return json({ ok: true, elements });
|
|
234
|
+
} catch {
|
|
235
|
+
return json({ ok: false, reason: "The place list is taking its time." }, 502);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Write the Overpass filter for what the person asked about, using the tags
|
|
241
|
+
OpenStreetMap actually carries: `diet:vegan` / `diet:vegetarian` (`only` or
|
|
242
|
+
`yes`), `cuisine=…`, `amenity=cafe|restaurant|bar|ice_cream`, `shop=bakery`,
|
|
243
|
+
`leisure=park|playground|dog_park`, `tourism=museum`. Geoapify names the same
|
|
244
|
+
things as `categories` (`catering.cafe`, `leisure.park`) and `conditions`
|
|
245
|
+
(`vegan`, `vegan.only`, `dogs`, `wheelchair`). Each element becomes a place:
|
|
246
|
+
`id: "osm-" + type + "-" + id`, name, coordinates (`lat`/`lon`, or `center` for a
|
|
247
|
+
building), `addr:*` for the address, `website`, `opening_hours`, `cuisine`.
|
|
248
|
+
Round the search point to two decimals so nearby visitors share a cached answer.
|
|
249
|
+
|
|
250
|
+
Overpass is run by volunteers and is often slow or busy. Give the search about
|
|
251
|
+
20 seconds, then show a "Try again" button and a link that opens the same area
|
|
252
|
+
on a directory that covers it (HappyCow for vegan food, the phone's maps app for
|
|
253
|
+
anything else). Real places only: an empty area says so and suggests the
|
|
254
|
+
nearest city or widening the circle. The person's own pins and notes are how a
|
|
255
|
+
missing spot gets in, never invented names.
|
|
256
|
+
|
|
257
|
+
"Top" and "best" name their ranking in that one line: "fully vegan first, then
|
|
258
|
+
friends' favorites, then the closest". Show up to 50, start with a circle of
|
|
259
|
+
about 5 miles, and widen it when fewer than 25 come back. Rank on what the data
|
|
260
|
+
holds: a strong tag such as `diet:vegan=only`, the friends' own ratings, how
|
|
261
|
+
complete the listing is (website, hours, cuisine, address), and distance.
|
|
262
|
+
|
|
263
|
+
**The person's layer sits on top of the places.** Ratings, comments, saves and
|
|
264
|
+
"been there" checks are the app's own records, keyed to the place's id
|
|
265
|
+
(`restaurantId: "osm-node-123"`) and carrying a snapshot of its name, address
|
|
266
|
+
and coordinates, so a note still reads well if the listing changes. Every
|
|
267
|
+
signed-in friend writes as themselves; pins the owner adds by hand join the feed
|
|
268
|
+
with their own note.
|
|
269
|
+
|
|
270
|
+
**Directions open the phone's maps app**:
|
|
271
|
+
`https://www.google.com/maps/dir/?api=1&destination=<lat>,<lng>&travelmode=driving`,
|
|
272
|
+
or `https://maps.apple.com/?daddr=<lat>,<lng>&dirflg=d` on Apple devices. A place
|
|
273
|
+
shares as the app's public address with `#place=<id>&at=<lat>,<lng>` in the
|
|
274
|
+
fragment. A friend opening it lands on that area with the place open.
|
|
275
|
+
|
|
276
|
+
Verify the first preview at phone width. The map paints, the numbered pins match
|
|
277
|
+
the feed, and tapping a pin brings its card into view. The location prompt
|
|
278
|
+
appears only after "Use my location". A typed zip moves the map, and the page
|
|
279
|
+
credits OpenStreetMap.
|
package/llms/reskin.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const reskinConfig = {
|
|
2
2
|
name: "reskin",
|
|
3
3
|
label: "Reskin",
|
|
4
|
-
description: 'The person says "look like…", "make it feel…" or names a style or mood — "a 90s Mac app", "a newspaper", "chopped and screwed", "Y2K", "neo-brutalist", "like Stripe\'s dashboard" — with nothing to copy supplied: keep the look\'s components, logic and Look tab, and give them that appearance — the look\'s tokens re-scoped on one wrapper, its hook classes styled from a <style> string, web fonts, borders, texture, motion and a recomposed layout',
|
|
4
|
+
description: 'The person says "look like…", "make it feel…" or names a style or mood — "a 90s Mac app", "a newspaper", "chopped and screwed", "Y2K", "neo-brutalist", "like Stripe\'s dashboard" — with nothing to copy supplied: keep the look\'s components, logic and Look tab, and give them that appearance — the look\'s tokens re-scoped on one wrapper, its hook classes styled from a <style> string, web fonts, borders, texture, motion and a recomposed layout. Also the keepsake pattern for a thing people print, share or hand out — a ticket, invitation, menu, poster or certificate: one framed artifact drawn by the skin, with the components as its editing controls and a print style',
|
|
5
5
|
cues: [
|
|
6
6
|
"look like a",
|
|
7
7
|
"looks like a",
|
|
@@ -26,6 +26,13 @@ export const reskinConfig = {
|
|
|
26
26
|
"linear style",
|
|
27
27
|
"like linear",
|
|
28
28
|
"like stripe",
|
|
29
|
+
"printable",
|
|
30
|
+
"to print",
|
|
31
|
+
"print out",
|
|
32
|
+
"invitation card",
|
|
33
|
+
"a poster",
|
|
34
|
+
"certificate",
|
|
35
|
+
"place card",
|
|
29
36
|
],
|
|
30
37
|
};
|
|
31
38
|
//# sourceMappingURL=reskin.js.map
|
package/llms/reskin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reskin.js","sourceRoot":"","sources":["../../jsr/llms/reskin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reskin.js","sourceRoot":"","sources":["../../jsr/llms/reskin.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,WAAW,EACT,+pBAA+pB;IACjqB,IAAI,EAAE;QACJ,aAAa;QACb,cAAc;QACd,mBAAmB;QACnB,mBAAmB;QACnB,cAAc;QACd,aAAa;QACb,iBAAiB;QACjB,SAAS;QACT,aAAa;QACb,YAAY;QACZ,KAAK;QACL,WAAW;QACX,qBAAqB;QACrB,iBAAiB;QACjB,eAAe;QACf,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,aAAa;QACb,WAAW;QACX,UAAU;QACV,WAAW;QACX,iBAAiB;QACjB,UAAU;QACV,aAAa;QACb,YAAY;KACb;CACF,CAAC"}
|
package/llms/reskin.md
CHANGED
|
@@ -205,6 +205,85 @@ export default function App() {
|
|
|
205
205
|
}
|
|
206
206
|
```
|
|
207
207
|
|
|
208
|
+
## Keepsake — the thing they print, share or hand out
|
|
209
|
+
|
|
210
|
+
Tickets, invitations, menus, posters, certificates, place cards, a recipe
|
|
211
|
+
card: the designed object is the point, and a page of `Card`s and `RowCard`s
|
|
212
|
+
around it makes it look like an admin screen. Build one framed artifact and
|
|
213
|
+
let the components edit it.
|
|
214
|
+
|
|
215
|
+
- **The keepsake is plain elements styled by the skin.** One `.keepsake`
|
|
216
|
+
element with a fixed shape (`aspect-ratio: 5 / 7` for a card, `2 / 1` for a
|
|
217
|
+
ticket, `1 / 1.414` for an A-size poster) holds the words as `div`s and
|
|
218
|
+
`span`s with the app's own classes (`.keepsake-title`, `.keepsake-meta`), set
|
|
219
|
+
in the display face, with the border, ornament, paper and stamp drawn in the
|
|
220
|
+
`SKIN` string. It is never a `Card`, and its words are never `Heading`s:
|
|
221
|
+
the hook classes belong to the screen, the keepsake has its own.
|
|
222
|
+
- **The components are the editing controls around it.** `Field` and `Input`
|
|
223
|
+
for the words, `Segmented` for a variant (theme, size), `Button` for Print
|
|
224
|
+
and Share. On a wide screen they sit beside the keepsake; on a phone the
|
|
225
|
+
keepsake comes first and the controls follow, so the first frame is the
|
|
226
|
+
thing itself, filled with a believable example rather than blanks.
|
|
227
|
+
- **Print shows only the keepsake.** A `@media print` block in the skin hides
|
|
228
|
+
everything else and sets `@page` to the keepsake's size; the Print button
|
|
229
|
+
calls `window.print()`.
|
|
230
|
+
- **Its colours come from the wrapper's tokens**, so the Look tab and a later
|
|
231
|
+
reskin restyle the keepsake along with the controls.
|
|
232
|
+
|
|
233
|
+
```jsx
|
|
234
|
+
import React, { useState } from "react";
|
|
235
|
+
import { Button, Field, Input, Stack } from "@vibes.diy/pouf";
|
|
236
|
+
|
|
237
|
+
const SKIN = `
|
|
238
|
+
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,600;1,400&display=swap');
|
|
239
|
+
[data-reskin] .studio { display: grid; gap: 24px; padding: 16px; grid-template-columns: 1fr; }
|
|
240
|
+
@media (min-width: 48rem) { [data-reskin] .studio { grid-template-columns: 22rem 1fr; align-items: start; } [data-reskin] .studio > .keepsake { order: 2; } }
|
|
241
|
+
[data-reskin] .keepsake { aspect-ratio: 5 / 7; width: min(100%, 26rem); margin-inline: auto; padding: 12%; display: grid; place-content: center; gap: 14px;
|
|
242
|
+
text-align: center; background: var(--surface); color: var(--ink); outline: 1px solid var(--ink); outline-offset: -14px;
|
|
243
|
+
box-shadow: 0 18px 40px color-mix(in srgb, var(--ink) 18%, transparent); font-family: 'Fraunces', serif; }
|
|
244
|
+
[data-reskin] .keepsake-eyebrow { font-style: italic; color: var(--text-secondary); }
|
|
245
|
+
[data-reskin] .keepsake-title { font-size: clamp(28px, 7vw, 44px); font-weight: 600; line-height: 1.05; }
|
|
246
|
+
[data-reskin] .keepsake-rule { width: 40%; height: 1px; margin-inline: auto; background: var(--purple); }
|
|
247
|
+
@media print {
|
|
248
|
+
@page { size: 5in 7in; margin: 0; }
|
|
249
|
+
body:has([data-reskin]) * { visibility: hidden; }
|
|
250
|
+
[data-reskin] .keepsake, [data-reskin] .keepsake * { visibility: visible; }
|
|
251
|
+
[data-reskin] .keepsake { position: fixed; inset: 0; width: 100%; box-shadow: none; }
|
|
252
|
+
}
|
|
253
|
+
`;
|
|
254
|
+
|
|
255
|
+
export default function App() {
|
|
256
|
+
const [title, setTitle] = useState("Maya turns thirty");
|
|
257
|
+
const [when, setWhen] = useState("Saturday 14 June · 7pm · The Rooftop");
|
|
258
|
+
|
|
259
|
+
return (
|
|
260
|
+
<div data-reskin>
|
|
261
|
+
<style>{SKIN}</style>
|
|
262
|
+
<div className="studio">
|
|
263
|
+
<div className="keepsake">
|
|
264
|
+
<span className="keepsake-eyebrow">You are invited</span>
|
|
265
|
+
<span className="keepsake-title">{title}</span>
|
|
266
|
+
<span className="keepsake-rule" />
|
|
267
|
+
<span>{when}</span>
|
|
268
|
+
</div>
|
|
269
|
+
<Stack gap={3}>
|
|
270
|
+
<Field label="Headline">{(id, d) => <Input id={id} describedBy={d} value={title} onChange={setTitle} />}</Field>
|
|
271
|
+
<Field label="When and where">{(id, d) => <Input id={id} describedBy={d} value={when} onChange={setWhen} />}</Field>
|
|
272
|
+
<Button onClick={() => window.print()}>Print the invitation</Button>
|
|
273
|
+
</Stack>
|
|
274
|
+
</div>
|
|
275
|
+
</div>
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
## Board surface
|
|
281
|
+
|
|
282
|
+
A game board, a puzzle or a card table is the same split: the board is plain
|
|
283
|
+
elements the skin draws, the look's components frame it (score, buttons, the
|
|
284
|
+
win dialog). The board-games skill's _Board surface_ section has the worked
|
|
285
|
+
example.
|
|
286
|
+
|
|
208
287
|
## Reading a named style
|
|
209
288
|
|
|
210
289
|
Name the five things a stranger would recognise and set each one:
|
package/llms/web-audio.md
CHANGED
|
@@ -441,7 +441,12 @@ Why it sounds good, in four moves:
|
|
|
441
441
|
|
|
442
442
|
The engine is a plain module (§6): the gate from §1, the lookahead scheduler
|
|
443
443
|
from §4, and a `playhead()` the interface polls each animation frame, so the
|
|
444
|
-
lit step follows what is reaching the speakers rather than the timer. The
|
|
444
|
+
lit step follows what is reaching the speakers rather than the timer. The steps
|
|
445
|
+
are `StepGrid` rows of `Pad`s from `@vibes.diy/pouf/interactive`: square pads
|
|
446
|
+
in beats of four, a light on the playing step, sixteen across on a laptop and
|
|
447
|
+
eight a line on a phone. A pad is an instrument's square, so the grid reads as a
|
|
448
|
+
drum machine, never as a column of settings toggles; a single `Pad` is the
|
|
449
|
+
finger-drumming pad of an MPC-style kit or a launch cell. The
|
|
445
450
|
interface calls `getDrums()` synchronously at the top of every tap handler —
|
|
446
451
|
Play, and each step — which is what unlocks sound on iOS.
|
|
447
452
|
|
|
@@ -704,8 +709,8 @@ save button waits on `can.create`, the same verdict the server enforces.
|
|
|
704
709
|
import React, { useEffect, useRef, useState } from "react";
|
|
705
710
|
import { useFireproof } from "use-fireproof";
|
|
706
711
|
import { useVibe, useViewer } from "use-vibes";
|
|
707
|
-
import { Badge, Button, Card, Field, Heading,
|
|
708
|
-
import { Slider } from "@vibes.diy/pouf/interactive";
|
|
712
|
+
import { Badge, Button, Card, Field, Heading, Input, Row, Skeleton, Spacer, Stack, Text } from "@vibes.diy/pouf";
|
|
713
|
+
import { Slider, StepGrid } from "@vibes.diy/pouf/interactive";
|
|
709
714
|
import { STEPS, TRACKS, getDrums } from "./lib/drum-engine.js";
|
|
710
715
|
|
|
711
716
|
const START = {
|
|
@@ -715,7 +720,8 @@ const START = {
|
|
|
715
720
|
open: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
|
|
716
721
|
};
|
|
717
722
|
|
|
718
|
-
|
|
723
|
+
// A labelled fader: a straight slider with its reading. It is a fader, not a knob: a knob turns.
|
|
724
|
+
function Fader({ label, value, min, max, step = 1, shown, onChange }) {
|
|
719
725
|
return (
|
|
720
726
|
<Stack gap={1}>
|
|
721
727
|
<Row gap={2} align="center">
|
|
@@ -835,23 +841,8 @@ export default function App() {
|
|
|
835
841
|
<Text size="sm" muted>
|
|
836
842
|
{label}
|
|
837
843
|
</Text>
|
|
838
|
-
{/*
|
|
839
|
-
<
|
|
840
|
-
{Array.from({ length: STEPS }, (_, i) => {
|
|
841
|
-
const on = Boolean(grid[id][i]);
|
|
842
|
-
return (
|
|
843
|
-
<IconButton
|
|
844
|
-
key={i}
|
|
845
|
-
size="sm"
|
|
846
|
-
label={`${label} step ${i + 1}${on ? ", on" : ", off"}`}
|
|
847
|
-
variant={on || i === step ? "solid" : "quiet"}
|
|
848
|
-
tone={i === step ? "info" : on ? "up" : "idle"}
|
|
849
|
-
icon={<Icon name={on ? "idle" : i % 4 === 0 ? "dots" : "off"} size="sm" />}
|
|
850
|
-
onClick={() => toggleStep(id, i)}
|
|
851
|
-
/>
|
|
852
|
-
);
|
|
853
|
-
})}
|
|
854
|
-
</div>
|
|
844
|
+
{/* Square pads in beats of four, the lit one following the sound: sixteen across, eight a line on a phone. */}
|
|
845
|
+
<StepGrid label={label} steps={grid[id]} playhead={step} groupSize={4} onToggle={(i) => toggleStep(id, i)} />
|
|
855
846
|
</Stack>
|
|
856
847
|
))}
|
|
857
848
|
</Stack>
|
|
@@ -866,10 +857,10 @@ export default function App() {
|
|
|
866
857
|
Clear
|
|
867
858
|
</Button>
|
|
868
859
|
</Row>
|
|
869
|
-
<
|
|
870
|
-
<
|
|
871
|
-
<
|
|
872
|
-
<
|
|
860
|
+
<Fader label="Tempo" value={bpm} min={60} max={180} shown={`${bpm} bpm`} onChange={setBpm} />
|
|
861
|
+
<Fader label="Swing" value={swing} min={0} max={100} shown={`${swing}%`} onChange={setSwing} />
|
|
862
|
+
<Fader label="Saturation" value={drive} min={0} max={100} shown={`${drive}%`} onChange={setDrive} />
|
|
863
|
+
<Fader label="Volume" value={volume} min={0} max={100} shown={`${volume}%`} onChange={setVolume} />
|
|
873
864
|
</Stack>
|
|
874
865
|
</Card>
|
|
875
866
|
|
|
@@ -917,4 +908,36 @@ export default function App() {
|
|
|
917
908
|
}
|
|
918
909
|
```
|
|
919
910
|
|
|
911
|
+
### Looking like hardware
|
|
912
|
+
|
|
913
|
+
When the person names a machine or a material — "make it look like an 808",
|
|
914
|
+
"an MPC", "brushed metal", "a Game Boy" — the app keeps every component above
|
|
915
|
+
and wears that look through the `reskin` skill: the app inside one
|
|
916
|
+
`data-reskin` wrapper, the look's tokens re-set on it, and the pads, faders and
|
|
917
|
+
cards styled through their hook classes. A pad carries its state for exactly
|
|
918
|
+
this: `.pouf-pad[data-state="on"]`, `[data-playhead]`, `[data-downbeat]`,
|
|
919
|
+
`[data-group]` (0, 1, 2, 3 across a bar) and `[data-parity]`, with its light at
|
|
920
|
+
`.pouf-pad__led` and the playhead ring at `.pouf-pad__ring`, so the 808's four coloured beat groups are four rules:
|
|
921
|
+
|
|
922
|
+
```jsx
|
|
923
|
+
const SKIN = `
|
|
924
|
+
[data-reskin], body:has([data-reskin]) { --bg: #2b2b2b; --surface: #3a3a38; --ink: #f2efe6; --info: #ff3b1f; --purple: #ff3b1f; --r-control: 3px; --lip: 0px; }
|
|
925
|
+
[data-reskin] .pouf-pad[data-group="0"] { background: #d8321f; }
|
|
926
|
+
[data-reskin] .pouf-pad[data-group="1"] { background: #f08a1c; }
|
|
927
|
+
[data-reskin] .pouf-pad[data-group="2"] { background: #f4d32a; }
|
|
928
|
+
[data-reskin] .pouf-pad[data-group="3"] { background: #f2efe6; }
|
|
929
|
+
[data-reskin] .pouf-pad[data-state="on"] .pouf-pad__led { background: #ff3b1f; box-shadow: 0 0 8px #ff3b1f; }
|
|
930
|
+
[data-reskin] .pouf-slider__track { border-radius: 2px; }
|
|
931
|
+
`;
|
|
932
|
+
|
|
933
|
+
export default function App() {
|
|
934
|
+
return (
|
|
935
|
+
<div data-reskin>
|
|
936
|
+
<style>{SKIN}</style>
|
|
937
|
+
{/* …the drum machine above, unchanged… */}
|
|
938
|
+
</div>
|
|
939
|
+
);
|
|
940
|
+
}
|
|
941
|
+
```
|
|
942
|
+
|
|
920
943
|
— End —
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibes.diy/prompts",
|
|
3
|
-
"version": "14.3.
|
|
3
|
+
"version": "14.3.203",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"exports": {
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"license": "Apache-2.0",
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@adviser/cement": "~0.5.34",
|
|
42
|
-
"@vibes.diy/api-types": "14.3.
|
|
43
|
-
"@vibes.diy/call-ai-v2": "14.3.
|
|
44
|
-
"@vibes.diy/identity": "14.3.
|
|
45
|
-
"@vibes.diy/use-vibes-types": "14.3.
|
|
42
|
+
"@vibes.diy/api-types": "14.3.203",
|
|
43
|
+
"@vibes.diy/call-ai-v2": "14.3.203",
|
|
44
|
+
"@vibes.diy/identity": "14.3.203",
|
|
45
|
+
"@vibes.diy/use-vibes-types": "14.3.203",
|
|
46
46
|
"arktype": "~2.2.8",
|
|
47
47
|
"json-schema-faker": "~0.6.3"
|
|
48
48
|
},
|
|
@@ -88,6 +88,7 @@ Every control below exists; use it, never a hand-built element.
|
|
|
88
88
|
- `DropdownMenu` (`@vibes.diy/pouf/interactive`) — A menu of actions that opens from a trigger button. Props: `items` (required) ("separator" | MenuItem)[]; `label` string
|
|
89
89
|
- `HoverCard` (`@vibes.diy/pouf/interactive`) — A preview card that appears on hover over its trigger. Props: `content` (required) ReactNode; `side` top|right|bottom|left; `align` start|center|end
|
|
90
90
|
- `Menubar` (`@vibes.diy/pouf/interactive`) — An application menu bar (File / Edit / View…). Props: `menus` (required) MenubarMenu[]
|
|
91
|
+
- `Pad` (`@vibes.diy/pouf/interactive`) — A square instrument pad that toggles on and off, with a playhead light and beat-group shading. Props: `on` (required); `onPress` (required) () => void; `label` (required) string; `playhead`; `downbeat`; `group` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `disabled`
|
|
91
92
|
- `Progress` (`@vibes.diy/pouf/interactive`) — A progress bar for a value out of a maximum. Props: `value` (required) number; `max` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `label` string
|
|
92
93
|
- `RadioGroup` (`@vibes.diy/pouf/interactive`) — A labelled set of options where exactly one is chosen. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) RadioOption[]; `label` (required) string; `disabled`
|
|
93
94
|
- `ScrollArea` (`@vibes.diy/pouf/interactive`) — A fixed-height region that scrolls its own content. Props: `maxHeight` string
|
|
@@ -95,6 +96,7 @@ Every control below exists; use it, never a hand-built element.
|
|
|
95
96
|
- `Separator` (`@vibes.diy/pouf/interactive`) — A thin divider line between groups of content.
|
|
96
97
|
- `Sheet` (`@vibes.diy/pouf/interactive`) — A panel that slides in from the side for secondary tasks. Props: `title` (required) string; `description` string; `open`
|
|
97
98
|
- `Slider` (`@vibes.diy/pouf/interactive`) — Picks a number in a range by dragging. Props: `value` (required) number[]; `onChange` (required) (value: number[]) => void; `min` number; `max` number; `step` number; `disabled`; `label` string
|
|
99
|
+
- `StepGrid` (`@vibes.diy/pouf/interactive`) — One sequencer row of Pads with a moving playhead and beat groups, wrapping to two lines on a phone. Props: `steps` (required) readonly (number | boolean)[]; `onToggle` (required) (index: number) => void; `label` (required) string; `playhead` number; `groupSize` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)
|
|
98
100
|
- `Switch` (`@vibes.diy/pouf/interactive`) — A labelled on/off toggle for a setting that applies at once. Props: `checked` (required); `onChange` (required) (checked: boolean) => void; `id` string; `describedBy` string; `disabled`; `label` string
|
|
99
101
|
- `Tabs` (`@vibes.diy/pouf/interactive`) — Switches between panels of content under one heading. Props: `tabs` (required) Tab[]; `value` (required) string; `onChange` (required) (value: string) => void; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)
|
|
100
102
|
- `Toast` (`@vibes.diy/pouf/interactive`) — One alert message with a severity and a dismiss button. Props: `id` (required) number; `severity` (required) critical|info; `onDismiss` (required) (id: number) => void
|
|
@@ -13,4 +13,4 @@ export interface PoufCatalogEntry {
|
|
|
13
13
|
}
|
|
14
14
|
export declare const POUF_CATALOG: readonly PoufCatalogEntry[];
|
|
15
15
|
export declare const POUF_COMPONENT_NAMES: Readonly<Record<PoufEntry, readonly string[]>>;
|
|
16
|
-
export declare const POUF_CATALOG_MD = "- `AlertBell` (`@vibes.diy/pouf`) \u2014 A bell button with an unread count that opens the session's alert history. Props: `alerts` (required) AlertBellItem[]; `unread` (required) number; `connected` (required); `onOpen` (required) () => void\n- `Badge` (`@vibes.diy/pouf`) \u2014 A small tonal label for a count, category or state. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Blob` (`@vibes.diy/pouf`) \u2014 A tonal icon tile that fronts a stat, list row or feature. Props: `icon` (required) IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `label` string\n- `Breadcrumb` (`@vibes.diy/pouf`) \u2014 Shows where the current page sits in a hierarchy, with links back up. Props: `items` (required) BreadcrumbItem[]\n- `Button` (`@vibes.diy/pouf`) \u2014 The action button; give one primary action per area. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `variant` solid|quiet; `block`; `disabled`; `loading`; `type` button|submit; `label` string; `tint` string\n- `CTA` (`@vibes.diy/pouf`) \u2014 A call-to-action banner: a big tonal cushion with a headline and an action. Props: `title` (required) string; `description` string; `action` (required) ReactNode; `tone` purple (lead)|pink|blue|mint|yellow|surface\n- `Card` (`@vibes.diy/pouf`) \u2014 The raised surface that groups related content into a panel. Props: `variant` default|flush|tight; `motion` none|lift|tilt-left|tilt-right\n- `Dot` (`@vibes.diy/pouf`) \u2014 A status dot. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Empty` (`@vibes.diy/pouf`) \u2014 The empty state for a list or panel with nothing in it yet. Props: `icon` IconLike; `title` (required) string\n- `ErrorBoundary` (`@vibes.diy/pouf`) \u2014 Catches render crashes so one broken part can't blank the whole page. Props: `name` (required) string; `resetKey` string\n- `ErrorNote` (`@vibes.diy/pouf`) \u2014 An inline message that says a request or action failed.\n- `Eyebrow` (`@vibes.diy/pouf`) \u2014 A small uppercase label above a section heading.\n- `Field` (`@vibes.diy/pouf`) \u2014 Wraps a form control with its label, hint and error text. Props: `label` (required) string; `children` (required) (id: string, describedBy: string | undefined) => ReactNode; `hint` string; `error` string\n- `Figure` (`@vibes.diy/pouf`) \u2014 An image, framed in clay. Props: `src` (required) string; `alt` (required) string; `width` (required) number; `height` (required) number\n- `Footer` (`@vibes.diy/pouf`) \u2014 A site footer on one big cushion: brand block plus columns of links, with an optional bottom note. Props: `brand` (required) ReactNode; `tagline` string\n- `Freshness` (`@vibes.diy/pouf`) \u2014 Speaks only when the data on screen can no longer be trusted. Props: `at` (required) number; `isError`\n- `Grid` (`@vibes.diy/pouf`) \u2014 Lays children out in columns, or main plus side, stacking on narrow screens. Props: `cols` 2|3|4|sidebar; `gap` 1|2|3|4|5|6\n- `Heading` (`@vibes.diy/pouf`) \u2014 A page or section heading at level 1, 2 or 3. Props: `level` 1|2|3\n- `Highlight` (`@vibes.diy/pouf`) \u2014 Puts a tonal swatch behind a word or short phrase to make it pop. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Icon` (`@vibes.diy/pouf`) \u2014 A named glyph from the built-in icon set. Props: `name` (required) up|down|warn|info|idle|overview|chart|log|channels|activity|lab|history|performance|settings|database|menu|flat|ok|fail|off|live|draft|target|alerts|add|remove|search|close|expand|prev|next|photo|heart|heart-filled|comment|play|pause|rewind|forward|sun|cloud|rain|star|calendar|clock|user|users|mail|lock|send|home|trophy|flame|sparkle|music|cart|tag|dots|sword|shield|wand|smile|card|pin|wind|drop; `size` sm|md|lg; `label` string\n- `IconButton` (`@vibes.diy/pouf`) \u2014 A square, labelled icon action. Props: `icon` (required) ReactNode; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `variant` solid|quiet; `disabled`; `loading`; `type` button|submit; `tint` string\n- `Input` (`@vibes.diy/pouf`) \u2014 A single-line text field; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `id` string; `name` string; `describedBy` string; `placeholder` string; `type` string; `autoComplete` string; `inputMode` search|none|email|tel|text|url|numeric|decimal; `autoCapitalize` string; `spellCheck`; `required`; `mono`; `invalid`; `disabled`; `label` string; `bare`\n- `Metric` (`@vibes.diy/pouf`) \u2014 A labelled readout: small muted label, value beneath. Props: `label` (required) string; `value` (required) ReactNode; `num`; `mono`\n- `ModeBanner` (`@vibes.diy/pouf`) \u2014 The draft/live (or any two-mode) indicator. Props: `live` (required)\n- `NavLink` (`@vibes.diy/pouf`) \u2014 A navigation link that marks itself active on the current path. Props: `href` (required) string; `currentPath` (required) string; `icon` (required) IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Navbar` (`@vibes.diy/pouf`) \u2014 A top navigation bar on a floating cushion. Props: `brand` (required) ReactNode; `label` string\n- `NumberInput` (`@vibes.diy/pouf`) \u2014 A numeric field with step buttons; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `step` number; `min` number; `max` number; `id` string; `describedBy` string; `placeholder` string; `invalid`; `disabled`; `label` string\n- `Pagination` (`@vibes.diy/pouf`) \u2014 Previous and next page controls with a page indicator for long lists. Props: `page` (required) number; `total` (required) number; `onChange` (required) (page: number) => void\n- `Row` (`@vibes.diy/pouf`) \u2014 Lays children out horizontally with a gap, alignment and wrapping. Props: `gap` 1|2|3|4|5|6; `align` center|top; `justify` start|center|between|end; `wrap`\n- `RowCard` (`@vibes.diy/pouf`) \u2014 One raised row per item in a list; clickable when given onClick. Props: `selected`\n- `Segmented` (`@vibes.diy/pouf`) \u2014 A mutually-exclusive choice: grid vs list, draft vs live, and similar. Props: `value` (required) T; `onChange` (required) (value: T) => void; `options` (required) SegmentedOption<T>[]; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Shell` (`@vibes.diy/pouf`) \u2014 The page frame: a sidebar column beside the main content.\n- `Sidebar` (`@vibes.diy/pouf`) \u2014 The side navigation column inside Shell. Props: `mobile` show|hide\n- `Skeleton` (`@vibes.diy/pouf`) \u2014 A loading placeholder shaped like the text, row or card it stands in for. Props: `variant` text|row|card; `count` number\n- `Spacer` (`@vibes.diy/pouf`) \u2014 Pushes the items after it to the far end of a Row.\n- `Stack` (`@vibes.diy/pouf`) \u2014 Stacks children vertically with an even gap. Props: `gap` 1|2|3|4|5|6\n- `Stat` (`@vibes.diy/pouf`) \u2014 A headline figure on its own cushion. Props: `label` (required) string; `value` (required) string; `icon` (required) IconLike; `tone` (required) up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Status` (`@vibes.diy/pouf`) \u2014 A labelled status dot that turns unknown when its reading goes stale. Props: `label` (required) string; `tone` (required) up|down|warn|info|idle|purple (lead)|orange (decorative); `at` number\n- `Table` (`@vibes.diy/pouf`) \u2014 A data table with typed columns; rows can be clickable. Props: `columns` (required) TableColumn<T>[]; `rows` (required) T[]; `getKey` (required) (row: T) => string\n- `Text` (`@vibes.diy/pouf`) \u2014 Body text: size, muted, numeric and monospace variants. Props: `size` sm|md; `muted`; `num`; `mono`; `truncate`\n- `Textarea` (`@vibes.diy/pouf`) \u2014 A multi-line text field; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `id` string; `name` string; `describedBy` string; `placeholder` string; `autoComplete` string; `spellCheck`; `required`; `rows` number; `mono`; `invalid`; `disabled`; `label` string\n- `Accordion` (`@vibes.diy/pouf/interactive`) \u2014 A stack of expandable sections with one open at a time. Props: `items` (required) AccordionItem[]; `defaultValue` string\n- `AspectRatio` (`@vibes.diy/pouf/interactive`) \u2014 Holds media at a fixed width-to-height ratio. Props: `ratio` number\n- `Avatar` (`@vibes.diy/pouf/interactive`) \u2014 A person's picture, with initials or an icon when there is none. Props: `src` string; `alt` string; `fallback` string; `icon` IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg\n- `BottomNav` (`@vibes.diy/pouf/interactive`) \u2014 Mobile bottom navigation. Props: `primary` (required) NavItem[]; `groups` (required) NavGroup[]; `currentPath` (required) string\n- `Checkbox` (`@vibes.diy/pouf/interactive`) \u2014 A labelled on/off checkbox. Props: `checked` (required) boolean | \"indeterminate\"; `onChange` (required) (checked: boolean | \"indeterminate\") => void; `id` string; `disabled`; `label` string; `hideLabel`\n- `Collapsible` (`@vibes.diy/pouf/interactive`) \u2014 A single section that shows or hides its content from a trigger. Props: `trigger` (required) ReactNode; `open`\n- `Combobox` (`@vibes.diy/pouf/interactive`) \u2014 A text field with suggestions to pick or type; its default lives in `value`, not placeholder. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) string[]; `loading`; `error` string; `id` string; `describedBy` string; `placeholder` string; `mono`; `label` string\n- `Confirm` (`@vibes.diy/pouf/interactive`) \u2014 Wraps the button that opens it; asks to confirm an irreversible action such as a delete. Props: `title` (required) string; `body` (required) string; `confirmLabel` (required) string; `cancelLabel` (required) string; `onConfirm` (required) () => void; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `loading`\n- `ContextMenu` (`@vibes.diy/pouf/interactive`) \u2014 A menu of actions that opens on right-click or long-press. Props: `items` (required) (MenuEntry | \"separator\")[]\n- `Dialog` (`@vibes.diy/pouf/interactive`) \u2014 A modal window for a focused task or form. Props: `trigger` (required) ReactNode; `title` (required) string; `description` string; `open`; `size` md|lg\n- `DropdownMenu` (`@vibes.diy/pouf/interactive`) \u2014 A menu of actions that opens from a trigger button. Props: `items` (required) (\"separator\" | MenuItem)[]; `label` string\n- `HoverCard` (`@vibes.diy/pouf/interactive`) \u2014 A preview card that appears on hover over its trigger. Props: `content` (required) ReactNode; `side` top|right|bottom|left; `align` start|center|end\n- `Menubar` (`@vibes.diy/pouf/interactive`) \u2014 An application menu bar (File / Edit / View\u2026). Props: `menus` (required) MenubarMenu[]\n- `Progress` (`@vibes.diy/pouf/interactive`) \u2014 A progress bar for a value out of a maximum. Props: `value` (required) number; `max` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `label` string\n- `RadioGroup` (`@vibes.diy/pouf/interactive`) \u2014 A labelled set of options where exactly one is chosen. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) RadioOption[]; `label` (required) string; `disabled`\n- `ScrollArea` (`@vibes.diy/pouf/interactive`) \u2014 A fixed-height region that scrolls its own content. Props: `maxHeight` string\n- `Select` (`@vibes.diy/pouf/interactive`) \u2014 A dropdown for picking one option; its default lives in `value`, not placeholder. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) SelectOption[]; `id` string; `describedBy` string; `placeholder` string; `disabled`; `label` string\n- `Separator` (`@vibes.diy/pouf/interactive`) \u2014 A thin divider line between groups of content.\n- `Sheet` (`@vibes.diy/pouf/interactive`) \u2014 A panel that slides in from the side for secondary tasks. Props: `title` (required) string; `description` string; `open`\n- `Slider` (`@vibes.diy/pouf/interactive`) \u2014 Picks a number in a range by dragging. Props: `value` (required) number[]; `onChange` (required) (value: number[]) => void; `min` number; `max` number; `step` number; `disabled`; `label` string\n- `Switch` (`@vibes.diy/pouf/interactive`) \u2014 A labelled on/off toggle for a setting that applies at once. Props: `checked` (required); `onChange` (required) (checked: boolean) => void; `id` string; `describedBy` string; `disabled`; `label` string\n- `Tabs` (`@vibes.diy/pouf/interactive`) \u2014 Switches between panels of content under one heading. Props: `tabs` (required) Tab[]; `value` (required) string; `onChange` (required) (value: string) => void; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Toast` (`@vibes.diy/pouf/interactive`) \u2014 One alert message with a severity and a dismiss button. Props: `id` (required) number; `severity` (required) critical|info; `onDismiss` (required) (id: number) => void\n- `ToastViewport` (`@vibes.diy/pouf/interactive`) \u2014 Renders a list of alert messages your app keeps in state. Props: `toasts` (required) ToastItem[]; `onDismiss` (required) (id: number) => void\n- `Toaster` (`@vibes.diy/pouf/interactive`) \u2014 Mount once in the app so toast() calls appear on screen.\n- `ToggleGroup` (`@vibes.diy/pouf/interactive`) \u2014 A row of toggle buttons where several can be on at once. Props: `value` (required) string[]; `onChange` (required) (value: string[]) => void; `options` (required) ToggleOption[]; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Tooltip` (`@vibes.diy/pouf/interactive`) \u2014 Wraps an element with a short hint on hover or focus; needs a TooltipProvider above it. Props: `tip` (required) string\n- `TooltipProvider` (`@vibes.diy/pouf/interactive`) \u2014 Wrap the app once; every Tooltip must sit inside it.\n- `AreaChart` (`@vibes.diy/pouf/charts`) \u2014 An area chart of one or more series over a category axis. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number; `stacked`\n- `BarChart` (`@vibes.diy/pouf/charts`) \u2014 A bar chart of one or more series, optionally stacked. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number; `stacked`; `toneKey` string\n- `LineChart` (`@vibes.diy/pouf/charts`) \u2014 A line chart of one or more series over a category axis. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number\n- `PieChart` (`@vibes.diy/pouf/charts`) \u2014 A pie or donut chart of parts of a whole. Props: `data` (required) PieSlice[]; `height` number; `donut`; `labelled`";
|
|
16
|
+
export declare const POUF_CATALOG_MD = "- `AlertBell` (`@vibes.diy/pouf`) \u2014 A bell button with an unread count that opens the session's alert history. Props: `alerts` (required) AlertBellItem[]; `unread` (required) number; `connected` (required); `onOpen` (required) () => void\n- `Badge` (`@vibes.diy/pouf`) \u2014 A small tonal label for a count, category or state. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Blob` (`@vibes.diy/pouf`) \u2014 A tonal icon tile that fronts a stat, list row or feature. Props: `icon` (required) IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `label` string\n- `Breadcrumb` (`@vibes.diy/pouf`) \u2014 Shows where the current page sits in a hierarchy, with links back up. Props: `items` (required) BreadcrumbItem[]\n- `Button` (`@vibes.diy/pouf`) \u2014 The action button; give one primary action per area. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `variant` solid|quiet; `block`; `disabled`; `loading`; `type` button|submit; `label` string; `tint` string\n- `CTA` (`@vibes.diy/pouf`) \u2014 A call-to-action banner: a big tonal cushion with a headline and an action. Props: `title` (required) string; `description` string; `action` (required) ReactNode; `tone` purple (lead)|pink|blue|mint|yellow|surface\n- `Card` (`@vibes.diy/pouf`) \u2014 The raised surface that groups related content into a panel. Props: `variant` default|flush|tight; `motion` none|lift|tilt-left|tilt-right\n- `Dot` (`@vibes.diy/pouf`) \u2014 A status dot. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Empty` (`@vibes.diy/pouf`) \u2014 The empty state for a list or panel with nothing in it yet. Props: `icon` IconLike; `title` (required) string\n- `ErrorBoundary` (`@vibes.diy/pouf`) \u2014 Catches render crashes so one broken part can't blank the whole page. Props: `name` (required) string; `resetKey` string\n- `ErrorNote` (`@vibes.diy/pouf`) \u2014 An inline message that says a request or action failed.\n- `Eyebrow` (`@vibes.diy/pouf`) \u2014 A small uppercase label above a section heading.\n- `Field` (`@vibes.diy/pouf`) \u2014 Wraps a form control with its label, hint and error text. Props: `label` (required) string; `children` (required) (id: string, describedBy: string | undefined) => ReactNode; `hint` string; `error` string\n- `Figure` (`@vibes.diy/pouf`) \u2014 An image, framed in clay. Props: `src` (required) string; `alt` (required) string; `width` (required) number; `height` (required) number\n- `Footer` (`@vibes.diy/pouf`) \u2014 A site footer on one big cushion: brand block plus columns of links, with an optional bottom note. Props: `brand` (required) ReactNode; `tagline` string\n- `Freshness` (`@vibes.diy/pouf`) \u2014 Speaks only when the data on screen can no longer be trusted. Props: `at` (required) number; `isError`\n- `Grid` (`@vibes.diy/pouf`) \u2014 Lays children out in columns, or main plus side, stacking on narrow screens. Props: `cols` 2|3|4|sidebar; `gap` 1|2|3|4|5|6\n- `Heading` (`@vibes.diy/pouf`) \u2014 A page or section heading at level 1, 2 or 3. Props: `level` 1|2|3\n- `Highlight` (`@vibes.diy/pouf`) \u2014 Puts a tonal swatch behind a word or short phrase to make it pop. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Icon` (`@vibes.diy/pouf`) \u2014 A named glyph from the built-in icon set. Props: `name` (required) up|down|warn|info|idle|overview|chart|log|channels|activity|lab|history|performance|settings|database|menu|flat|ok|fail|off|live|draft|target|alerts|add|remove|search|close|expand|prev|next|photo|heart|heart-filled|comment|play|pause|rewind|forward|sun|cloud|rain|star|calendar|clock|user|users|mail|lock|send|home|trophy|flame|sparkle|music|cart|tag|dots|sword|shield|wand|smile|card|pin|wind|drop; `size` sm|md|lg; `label` string\n- `IconButton` (`@vibes.diy/pouf`) \u2014 A square, labelled icon action. Props: `icon` (required) ReactNode; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `variant` solid|quiet; `disabled`; `loading`; `type` button|submit; `tint` string\n- `Input` (`@vibes.diy/pouf`) \u2014 A single-line text field; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `id` string; `name` string; `describedBy` string; `placeholder` string; `type` string; `autoComplete` string; `inputMode` search|none|email|tel|text|url|numeric|decimal; `autoCapitalize` string; `spellCheck`; `required`; `mono`; `invalid`; `disabled`; `label` string; `bare`\n- `Metric` (`@vibes.diy/pouf`) \u2014 A labelled readout: small muted label, value beneath. Props: `label` (required) string; `value` (required) ReactNode; `num`; `mono`\n- `ModeBanner` (`@vibes.diy/pouf`) \u2014 The draft/live (or any two-mode) indicator. Props: `live` (required)\n- `NavLink` (`@vibes.diy/pouf`) \u2014 A navigation link that marks itself active on the current path. Props: `href` (required) string; `currentPath` (required) string; `icon` (required) IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Navbar` (`@vibes.diy/pouf`) \u2014 A top navigation bar on a floating cushion. Props: `brand` (required) ReactNode; `label` string\n- `NumberInput` (`@vibes.diy/pouf`) \u2014 A numeric field with step buttons; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `step` number; `min` number; `max` number; `id` string; `describedBy` string; `placeholder` string; `invalid`; `disabled`; `label` string\n- `Pagination` (`@vibes.diy/pouf`) \u2014 Previous and next page controls with a page indicator for long lists. Props: `page` (required) number; `total` (required) number; `onChange` (required) (page: number) => void\n- `Row` (`@vibes.diy/pouf`) \u2014 Lays children out horizontally with a gap, alignment and wrapping. Props: `gap` 1|2|3|4|5|6; `align` center|top; `justify` start|center|between|end; `wrap`\n- `RowCard` (`@vibes.diy/pouf`) \u2014 One raised row per item in a list; clickable when given onClick. Props: `selected`\n- `Segmented` (`@vibes.diy/pouf`) \u2014 A mutually-exclusive choice: grid vs list, draft vs live, and similar. Props: `value` (required) T; `onChange` (required) (value: T) => void; `options` (required) SegmentedOption<T>[]; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Shell` (`@vibes.diy/pouf`) \u2014 The page frame: a sidebar column beside the main content.\n- `Sidebar` (`@vibes.diy/pouf`) \u2014 The side navigation column inside Shell. Props: `mobile` show|hide\n- `Skeleton` (`@vibes.diy/pouf`) \u2014 A loading placeholder shaped like the text, row or card it stands in for. Props: `variant` text|row|card; `count` number\n- `Spacer` (`@vibes.diy/pouf`) \u2014 Pushes the items after it to the far end of a Row.\n- `Stack` (`@vibes.diy/pouf`) \u2014 Stacks children vertically with an even gap. Props: `gap` 1|2|3|4|5|6\n- `Stat` (`@vibes.diy/pouf`) \u2014 A headline figure on its own cushion. Props: `label` (required) string; `value` (required) string; `icon` (required) IconLike; `tone` (required) up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Status` (`@vibes.diy/pouf`) \u2014 A labelled status dot that turns unknown when its reading goes stale. Props: `label` (required) string; `tone` (required) up|down|warn|info|idle|purple (lead)|orange (decorative); `at` number\n- `Table` (`@vibes.diy/pouf`) \u2014 A data table with typed columns; rows can be clickable. Props: `columns` (required) TableColumn<T>[]; `rows` (required) T[]; `getKey` (required) (row: T) => string\n- `Text` (`@vibes.diy/pouf`) \u2014 Body text: size, muted, numeric and monospace variants. Props: `size` sm|md; `muted`; `num`; `mono`; `truncate`\n- `Textarea` (`@vibes.diy/pouf`) \u2014 A multi-line text field; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `id` string; `name` string; `describedBy` string; `placeholder` string; `autoComplete` string; `spellCheck`; `required`; `rows` number; `mono`; `invalid`; `disabled`; `label` string\n- `Accordion` (`@vibes.diy/pouf/interactive`) \u2014 A stack of expandable sections with one open at a time. Props: `items` (required) AccordionItem[]; `defaultValue` string\n- `AspectRatio` (`@vibes.diy/pouf/interactive`) \u2014 Holds media at a fixed width-to-height ratio. Props: `ratio` number\n- `Avatar` (`@vibes.diy/pouf/interactive`) \u2014 A person's picture, with initials or an icon when there is none. Props: `src` string; `alt` string; `fallback` string; `icon` IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg\n- `BottomNav` (`@vibes.diy/pouf/interactive`) \u2014 Mobile bottom navigation. Props: `primary` (required) NavItem[]; `groups` (required) NavGroup[]; `currentPath` (required) string\n- `Checkbox` (`@vibes.diy/pouf/interactive`) \u2014 A labelled on/off checkbox. Props: `checked` (required) boolean | \"indeterminate\"; `onChange` (required) (checked: boolean | \"indeterminate\") => void; `id` string; `disabled`; `label` string; `hideLabel`\n- `Collapsible` (`@vibes.diy/pouf/interactive`) \u2014 A single section that shows or hides its content from a trigger. Props: `trigger` (required) ReactNode; `open`\n- `Combobox` (`@vibes.diy/pouf/interactive`) \u2014 A text field with suggestions to pick or type; its default lives in `value`, not placeholder. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) string[]; `loading`; `error` string; `id` string; `describedBy` string; `placeholder` string; `mono`; `label` string\n- `Confirm` (`@vibes.diy/pouf/interactive`) \u2014 Wraps the button that opens it; asks to confirm an irreversible action such as a delete. Props: `title` (required) string; `body` (required) string; `confirmLabel` (required) string; `cancelLabel` (required) string; `onConfirm` (required) () => void; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `loading`\n- `ContextMenu` (`@vibes.diy/pouf/interactive`) \u2014 A menu of actions that opens on right-click or long-press. Props: `items` (required) (MenuEntry | \"separator\")[]\n- `Dialog` (`@vibes.diy/pouf/interactive`) \u2014 A modal window for a focused task or form. Props: `trigger` (required) ReactNode; `title` (required) string; `description` string; `open`; `size` md|lg\n- `DropdownMenu` (`@vibes.diy/pouf/interactive`) \u2014 A menu of actions that opens from a trigger button. Props: `items` (required) (\"separator\" | MenuItem)[]; `label` string\n- `HoverCard` (`@vibes.diy/pouf/interactive`) \u2014 A preview card that appears on hover over its trigger. Props: `content` (required) ReactNode; `side` top|right|bottom|left; `align` start|center|end\n- `Menubar` (`@vibes.diy/pouf/interactive`) \u2014 An application menu bar (File / Edit / View\u2026). Props: `menus` (required) MenubarMenu[]\n- `Pad` (`@vibes.diy/pouf/interactive`) \u2014 A square instrument pad that toggles on and off, with a playhead light and beat-group shading. Props: `on` (required); `onPress` (required) () => void; `label` (required) string; `playhead`; `downbeat`; `group` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `disabled`\n- `Progress` (`@vibes.diy/pouf/interactive`) \u2014 A progress bar for a value out of a maximum. Props: `value` (required) number; `max` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `label` string\n- `RadioGroup` (`@vibes.diy/pouf/interactive`) \u2014 A labelled set of options where exactly one is chosen. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) RadioOption[]; `label` (required) string; `disabled`\n- `ScrollArea` (`@vibes.diy/pouf/interactive`) \u2014 A fixed-height region that scrolls its own content. Props: `maxHeight` string\n- `Select` (`@vibes.diy/pouf/interactive`) \u2014 A dropdown for picking one option; its default lives in `value`, not placeholder. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) SelectOption[]; `id` string; `describedBy` string; `placeholder` string; `disabled`; `label` string\n- `Separator` (`@vibes.diy/pouf/interactive`) \u2014 A thin divider line between groups of content.\n- `Sheet` (`@vibes.diy/pouf/interactive`) \u2014 A panel that slides in from the side for secondary tasks. Props: `title` (required) string; `description` string; `open`\n- `Slider` (`@vibes.diy/pouf/interactive`) \u2014 Picks a number in a range by dragging. Props: `value` (required) number[]; `onChange` (required) (value: number[]) => void; `min` number; `max` number; `step` number; `disabled`; `label` string\n- `StepGrid` (`@vibes.diy/pouf/interactive`) \u2014 One sequencer row of Pads with a moving playhead and beat groups, wrapping to two lines on a phone. Props: `steps` (required) readonly (number | boolean)[]; `onToggle` (required) (index: number) => void; `label` (required) string; `playhead` number; `groupSize` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Switch` (`@vibes.diy/pouf/interactive`) \u2014 A labelled on/off toggle for a setting that applies at once. Props: `checked` (required); `onChange` (required) (checked: boolean) => void; `id` string; `describedBy` string; `disabled`; `label` string\n- `Tabs` (`@vibes.diy/pouf/interactive`) \u2014 Switches between panels of content under one heading. Props: `tabs` (required) Tab[]; `value` (required) string; `onChange` (required) (value: string) => void; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Toast` (`@vibes.diy/pouf/interactive`) \u2014 One alert message with a severity and a dismiss button. Props: `id` (required) number; `severity` (required) critical|info; `onDismiss` (required) (id: number) => void\n- `ToastViewport` (`@vibes.diy/pouf/interactive`) \u2014 Renders a list of alert messages your app keeps in state. Props: `toasts` (required) ToastItem[]; `onDismiss` (required) (id: number) => void\n- `Toaster` (`@vibes.diy/pouf/interactive`) \u2014 Mount once in the app so toast() calls appear on screen.\n- `ToggleGroup` (`@vibes.diy/pouf/interactive`) \u2014 A row of toggle buttons where several can be on at once. Props: `value` (required) string[]; `onChange` (required) (value: string[]) => void; `options` (required) ToggleOption[]; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Tooltip` (`@vibes.diy/pouf/interactive`) \u2014 Wraps an element with a short hint on hover or focus; needs a TooltipProvider above it. Props: `tip` (required) string\n- `TooltipProvider` (`@vibes.diy/pouf/interactive`) \u2014 Wrap the app once; every Tooltip must sit inside it.\n- `AreaChart` (`@vibes.diy/pouf/charts`) \u2014 An area chart of one or more series over a category axis. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number; `stacked`\n- `BarChart` (`@vibes.diy/pouf/charts`) \u2014 A bar chart of one or more series, optionally stacked. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number; `stacked`; `toneKey` string\n- `LineChart` (`@vibes.diy/pouf/charts`) \u2014 A line chart of one or more series over a category axis. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number\n- `PieChart` (`@vibes.diy/pouf/charts`) \u2014 A pie or donut chart of parts of a whole. Props: `data` (required) PieSlice[]; `height` number; `donut`; `labelled`";
|
|
@@ -597,6 +597,21 @@ export const POUF_CATALOG = [
|
|
|
597
597
|
purpose: "An application menu bar (File / Edit / View…)",
|
|
598
598
|
props: [{ name: "menus", type: "MenubarMenu[]", required: true }],
|
|
599
599
|
},
|
|
600
|
+
{
|
|
601
|
+
name: "Pad",
|
|
602
|
+
entry: "interactive",
|
|
603
|
+
purpose: "A square instrument pad that toggles on and off, with a playhead light and beat-group shading",
|
|
604
|
+
props: [
|
|
605
|
+
{ name: "on", required: true },
|
|
606
|
+
{ name: "onPress", type: "() => void", required: true },
|
|
607
|
+
{ name: "label", type: "string", required: true },
|
|
608
|
+
{ name: "playhead", required: false },
|
|
609
|
+
{ name: "downbeat", required: false },
|
|
610
|
+
{ name: "group", type: "number", required: false },
|
|
611
|
+
{ name: "tone", values: ["up", "down", "warn", "info", "idle", "purple", "orange"], required: false },
|
|
612
|
+
{ name: "disabled", required: false },
|
|
613
|
+
],
|
|
614
|
+
},
|
|
600
615
|
{
|
|
601
616
|
name: "Progress",
|
|
602
617
|
entry: "interactive",
|
|
@@ -666,6 +681,19 @@ export const POUF_CATALOG = [
|
|
|
666
681
|
{ name: "label", type: "string", required: false },
|
|
667
682
|
],
|
|
668
683
|
},
|
|
684
|
+
{
|
|
685
|
+
name: "StepGrid",
|
|
686
|
+
entry: "interactive",
|
|
687
|
+
purpose: "One sequencer row of Pads with a moving playhead and beat groups, wrapping to two lines on a phone",
|
|
688
|
+
props: [
|
|
689
|
+
{ name: "steps", type: "readonly (number | boolean)[]", required: true },
|
|
690
|
+
{ name: "onToggle", type: "(index: number) => void", required: true },
|
|
691
|
+
{ name: "label", type: "string", required: true },
|
|
692
|
+
{ name: "playhead", type: "number", required: false },
|
|
693
|
+
{ name: "groupSize", type: "number", required: false },
|
|
694
|
+
{ name: "tone", values: ["up", "down", "warn", "info", "idle", "purple", "orange"], required: false },
|
|
695
|
+
],
|
|
696
|
+
},
|
|
669
697
|
{
|
|
670
698
|
name: "Switch",
|
|
671
699
|
entry: "interactive",
|
|
@@ -835,6 +863,7 @@ export const POUF_COMPONENT_NAMES = {
|
|
|
835
863
|
"DropdownMenu",
|
|
836
864
|
"HoverCard",
|
|
837
865
|
"Menubar",
|
|
866
|
+
"Pad",
|
|
838
867
|
"Progress",
|
|
839
868
|
"RadioGroup",
|
|
840
869
|
"ScrollArea",
|
|
@@ -842,6 +871,7 @@ export const POUF_COMPONENT_NAMES = {
|
|
|
842
871
|
"Separator",
|
|
843
872
|
"Sheet",
|
|
844
873
|
"Slider",
|
|
874
|
+
"StepGrid",
|
|
845
875
|
"Switch",
|
|
846
876
|
"Tabs",
|
|
847
877
|
"Toast",
|
|
@@ -853,5 +883,5 @@ export const POUF_COMPONENT_NAMES = {
|
|
|
853
883
|
],
|
|
854
884
|
charts: ["AreaChart", "BarChart", "LineChart", "PieChart"],
|
|
855
885
|
};
|
|
856
|
-
export const POUF_CATALOG_MD = '- `AlertBell` (`@vibes.diy/pouf`) — A bell button with an unread count that opens the session\'s alert history. Props: `alerts` (required) AlertBellItem[]; `unread` (required) number; `connected` (required); `onOpen` (required) () => void\n- `Badge` (`@vibes.diy/pouf`) — A small tonal label for a count, category or state. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Blob` (`@vibes.diy/pouf`) — A tonal icon tile that fronts a stat, list row or feature. Props: `icon` (required) IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `label` string\n- `Breadcrumb` (`@vibes.diy/pouf`) — Shows where the current page sits in a hierarchy, with links back up. Props: `items` (required) BreadcrumbItem[]\n- `Button` (`@vibes.diy/pouf`) — The action button; give one primary action per area. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `variant` solid|quiet; `block`; `disabled`; `loading`; `type` button|submit; `label` string; `tint` string\n- `CTA` (`@vibes.diy/pouf`) — A call-to-action banner: a big tonal cushion with a headline and an action. Props: `title` (required) string; `description` string; `action` (required) ReactNode; `tone` purple (lead)|pink|blue|mint|yellow|surface\n- `Card` (`@vibes.diy/pouf`) — The raised surface that groups related content into a panel. Props: `variant` default|flush|tight; `motion` none|lift|tilt-left|tilt-right\n- `Dot` (`@vibes.diy/pouf`) — A status dot. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Empty` (`@vibes.diy/pouf`) — The empty state for a list or panel with nothing in it yet. Props: `icon` IconLike; `title` (required) string\n- `ErrorBoundary` (`@vibes.diy/pouf`) — Catches render crashes so one broken part can\'t blank the whole page. Props: `name` (required) string; `resetKey` string\n- `ErrorNote` (`@vibes.diy/pouf`) — An inline message that says a request or action failed.\n- `Eyebrow` (`@vibes.diy/pouf`) — A small uppercase label above a section heading.\n- `Field` (`@vibes.diy/pouf`) — Wraps a form control with its label, hint and error text. Props: `label` (required) string; `children` (required) (id: string, describedBy: string | undefined) => ReactNode; `hint` string; `error` string\n- `Figure` (`@vibes.diy/pouf`) — An image, framed in clay. Props: `src` (required) string; `alt` (required) string; `width` (required) number; `height` (required) number\n- `Footer` (`@vibes.diy/pouf`) — A site footer on one big cushion: brand block plus columns of links, with an optional bottom note. Props: `brand` (required) ReactNode; `tagline` string\n- `Freshness` (`@vibes.diy/pouf`) — Speaks only when the data on screen can no longer be trusted. Props: `at` (required) number; `isError`\n- `Grid` (`@vibes.diy/pouf`) — Lays children out in columns, or main plus side, stacking on narrow screens. Props: `cols` 2|3|4|sidebar; `gap` 1|2|3|4|5|6\n- `Heading` (`@vibes.diy/pouf`) — A page or section heading at level 1, 2 or 3. Props: `level` 1|2|3\n- `Highlight` (`@vibes.diy/pouf`) — Puts a tonal swatch behind a word or short phrase to make it pop. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Icon` (`@vibes.diy/pouf`) — A named glyph from the built-in icon set. Props: `name` (required) up|down|warn|info|idle|overview|chart|log|channels|activity|lab|history|performance|settings|database|menu|flat|ok|fail|off|live|draft|target|alerts|add|remove|search|close|expand|prev|next|photo|heart|heart-filled|comment|play|pause|rewind|forward|sun|cloud|rain|star|calendar|clock|user|users|mail|lock|send|home|trophy|flame|sparkle|music|cart|tag|dots|sword|shield|wand|smile|card|pin|wind|drop; `size` sm|md|lg; `label` string\n- `IconButton` (`@vibes.diy/pouf`) — A square, labelled icon action. Props: `icon` (required) ReactNode; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `variant` solid|quiet; `disabled`; `loading`; `type` button|submit; `tint` string\n- `Input` (`@vibes.diy/pouf`) — A single-line text field; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `id` string; `name` string; `describedBy` string; `placeholder` string; `type` string; `autoComplete` string; `inputMode` search|none|email|tel|text|url|numeric|decimal; `autoCapitalize` string; `spellCheck`; `required`; `mono`; `invalid`; `disabled`; `label` string; `bare`\n- `Metric` (`@vibes.diy/pouf`) — A labelled readout: small muted label, value beneath. Props: `label` (required) string; `value` (required) ReactNode; `num`; `mono`\n- `ModeBanner` (`@vibes.diy/pouf`) — The draft/live (or any two-mode) indicator. Props: `live` (required)\n- `NavLink` (`@vibes.diy/pouf`) — A navigation link that marks itself active on the current path. Props: `href` (required) string; `currentPath` (required) string; `icon` (required) IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Navbar` (`@vibes.diy/pouf`) — A top navigation bar on a floating cushion. Props: `brand` (required) ReactNode; `label` string\n- `NumberInput` (`@vibes.diy/pouf`) — A numeric field with step buttons; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `step` number; `min` number; `max` number; `id` string; `describedBy` string; `placeholder` string; `invalid`; `disabled`; `label` string\n- `Pagination` (`@vibes.diy/pouf`) — Previous and next page controls with a page indicator for long lists. Props: `page` (required) number; `total` (required) number; `onChange` (required) (page: number) => void\n- `Row` (`@vibes.diy/pouf`) — Lays children out horizontally with a gap, alignment and wrapping. Props: `gap` 1|2|3|4|5|6; `align` center|top; `justify` start|center|between|end; `wrap`\n- `RowCard` (`@vibes.diy/pouf`) — One raised row per item in a list; clickable when given onClick. Props: `selected`\n- `Segmented` (`@vibes.diy/pouf`) — A mutually-exclusive choice: grid vs list, draft vs live, and similar. Props: `value` (required) T; `onChange` (required) (value: T) => void; `options` (required) SegmentedOption<T>[]; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Shell` (`@vibes.diy/pouf`) — The page frame: a sidebar column beside the main content.\n- `Sidebar` (`@vibes.diy/pouf`) — The side navigation column inside Shell. Props: `mobile` show|hide\n- `Skeleton` (`@vibes.diy/pouf`) — A loading placeholder shaped like the text, row or card it stands in for. Props: `variant` text|row|card; `count` number\n- `Spacer` (`@vibes.diy/pouf`) — Pushes the items after it to the far end of a Row.\n- `Stack` (`@vibes.diy/pouf`) — Stacks children vertically with an even gap. Props: `gap` 1|2|3|4|5|6\n- `Stat` (`@vibes.diy/pouf`) — A headline figure on its own cushion. Props: `label` (required) string; `value` (required) string; `icon` (required) IconLike; `tone` (required) up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Status` (`@vibes.diy/pouf`) — A labelled status dot that turns unknown when its reading goes stale. Props: `label` (required) string; `tone` (required) up|down|warn|info|idle|purple (lead)|orange (decorative); `at` number\n- `Table` (`@vibes.diy/pouf`) — A data table with typed columns; rows can be clickable. Props: `columns` (required) TableColumn<T>[]; `rows` (required) T[]; `getKey` (required) (row: T) => string\n- `Text` (`@vibes.diy/pouf`) — Body text: size, muted, numeric and monospace variants. Props: `size` sm|md; `muted`; `num`; `mono`; `truncate`\n- `Textarea` (`@vibes.diy/pouf`) — A multi-line text field; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `id` string; `name` string; `describedBy` string; `placeholder` string; `autoComplete` string; `spellCheck`; `required`; `rows` number; `mono`; `invalid`; `disabled`; `label` string\n- `Accordion` (`@vibes.diy/pouf/interactive`) — A stack of expandable sections with one open at a time. Props: `items` (required) AccordionItem[]; `defaultValue` string\n- `AspectRatio` (`@vibes.diy/pouf/interactive`) — Holds media at a fixed width-to-height ratio. Props: `ratio` number\n- `Avatar` (`@vibes.diy/pouf/interactive`) — A person\'s picture, with initials or an icon when there is none. Props: `src` string; `alt` string; `fallback` string; `icon` IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg\n- `BottomNav` (`@vibes.diy/pouf/interactive`) — Mobile bottom navigation. Props: `primary` (required) NavItem[]; `groups` (required) NavGroup[]; `currentPath` (required) string\n- `Checkbox` (`@vibes.diy/pouf/interactive`) — A labelled on/off checkbox. Props: `checked` (required) boolean | "indeterminate"; `onChange` (required) (checked: boolean | "indeterminate") => void; `id` string; `disabled`; `label` string; `hideLabel`\n- `Collapsible` (`@vibes.diy/pouf/interactive`) — A single section that shows or hides its content from a trigger. Props: `trigger` (required) ReactNode; `open`\n- `Combobox` (`@vibes.diy/pouf/interactive`) — A text field with suggestions to pick or type; its default lives in `value`, not placeholder. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) string[]; `loading`; `error` string; `id` string; `describedBy` string; `placeholder` string; `mono`; `label` string\n- `Confirm` (`@vibes.diy/pouf/interactive`) — Wraps the button that opens it; asks to confirm an irreversible action such as a delete. Props: `title` (required) string; `body` (required) string; `confirmLabel` (required) string; `cancelLabel` (required) string; `onConfirm` (required) () => void; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `loading`\n- `ContextMenu` (`@vibes.diy/pouf/interactive`) — A menu of actions that opens on right-click or long-press. Props: `items` (required) (MenuEntry | "separator")[]\n- `Dialog` (`@vibes.diy/pouf/interactive`) — A modal window for a focused task or form. Props: `trigger` (required) ReactNode; `title` (required) string; `description` string; `open`; `size` md|lg\n- `DropdownMenu` (`@vibes.diy/pouf/interactive`) — A menu of actions that opens from a trigger button. Props: `items` (required) ("separator" | MenuItem)[]; `label` string\n- `HoverCard` (`@vibes.diy/pouf/interactive`) — A preview card that appears on hover over its trigger. Props: `content` (required) ReactNode; `side` top|right|bottom|left; `align` start|center|end\n- `Menubar` (`@vibes.diy/pouf/interactive`) — An application menu bar (File / Edit / View…). Props: `menus` (required) MenubarMenu[]\n- `Progress` (`@vibes.diy/pouf/interactive`) — A progress bar for a value out of a maximum. Props: `value` (required) number; `max` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `label` string\n- `RadioGroup` (`@vibes.diy/pouf/interactive`) — A labelled set of options where exactly one is chosen. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) RadioOption[]; `label` (required) string; `disabled`\n- `ScrollArea` (`@vibes.diy/pouf/interactive`) — A fixed-height region that scrolls its own content. Props: `maxHeight` string\n- `Select` (`@vibes.diy/pouf/interactive`) — A dropdown for picking one option; its default lives in `value`, not placeholder. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) SelectOption[]; `id` string; `describedBy` string; `placeholder` string; `disabled`; `label` string\n- `Separator` (`@vibes.diy/pouf/interactive`) — A thin divider line between groups of content.\n- `Sheet` (`@vibes.diy/pouf/interactive`) — A panel that slides in from the side for secondary tasks. Props: `title` (required) string; `description` string; `open`\n- `Slider` (`@vibes.diy/pouf/interactive`) — Picks a number in a range by dragging. Props: `value` (required) number[]; `onChange` (required) (value: number[]) => void; `min` number; `max` number; `step` number; `disabled`; `label` string\n- `Switch` (`@vibes.diy/pouf/interactive`) — A labelled on/off toggle for a setting that applies at once. Props: `checked` (required); `onChange` (required) (checked: boolean) => void; `id` string; `describedBy` string; `disabled`; `label` string\n- `Tabs` (`@vibes.diy/pouf/interactive`) — Switches between panels of content under one heading. Props: `tabs` (required) Tab[]; `value` (required) string; `onChange` (required) (value: string) => void; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Toast` (`@vibes.diy/pouf/interactive`) — One alert message with a severity and a dismiss button. Props: `id` (required) number; `severity` (required) critical|info; `onDismiss` (required) (id: number) => void\n- `ToastViewport` (`@vibes.diy/pouf/interactive`) — Renders a list of alert messages your app keeps in state. Props: `toasts` (required) ToastItem[]; `onDismiss` (required) (id: number) => void\n- `Toaster` (`@vibes.diy/pouf/interactive`) — Mount once in the app so toast() calls appear on screen.\n- `ToggleGroup` (`@vibes.diy/pouf/interactive`) — A row of toggle buttons where several can be on at once. Props: `value` (required) string[]; `onChange` (required) (value: string[]) => void; `options` (required) ToggleOption[]; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Tooltip` (`@vibes.diy/pouf/interactive`) — Wraps an element with a short hint on hover or focus; needs a TooltipProvider above it. Props: `tip` (required) string\n- `TooltipProvider` (`@vibes.diy/pouf/interactive`) — Wrap the app once; every Tooltip must sit inside it.\n- `AreaChart` (`@vibes.diy/pouf/charts`) — An area chart of one or more series over a category axis. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number; `stacked`\n- `BarChart` (`@vibes.diy/pouf/charts`) — A bar chart of one or more series, optionally stacked. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number; `stacked`; `toneKey` string\n- `LineChart` (`@vibes.diy/pouf/charts`) — A line chart of one or more series over a category axis. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number\n- `PieChart` (`@vibes.diy/pouf/charts`) — A pie or donut chart of parts of a whole. Props: `data` (required) PieSlice[]; `height` number; `donut`; `labelled`';
|
|
886
|
+
export const POUF_CATALOG_MD = '- `AlertBell` (`@vibes.diy/pouf`) — A bell button with an unread count that opens the session\'s alert history. Props: `alerts` (required) AlertBellItem[]; `unread` (required) number; `connected` (required); `onOpen` (required) () => void\n- `Badge` (`@vibes.diy/pouf`) — A small tonal label for a count, category or state. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Blob` (`@vibes.diy/pouf`) — A tonal icon tile that fronts a stat, list row or feature. Props: `icon` (required) IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `label` string\n- `Breadcrumb` (`@vibes.diy/pouf`) — Shows where the current page sits in a hierarchy, with links back up. Props: `items` (required) BreadcrumbItem[]\n- `Button` (`@vibes.diy/pouf`) — The action button; give one primary action per area. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `variant` solid|quiet; `block`; `disabled`; `loading`; `type` button|submit; `label` string; `tint` string\n- `CTA` (`@vibes.diy/pouf`) — A call-to-action banner: a big tonal cushion with a headline and an action. Props: `title` (required) string; `description` string; `action` (required) ReactNode; `tone` purple (lead)|pink|blue|mint|yellow|surface\n- `Card` (`@vibes.diy/pouf`) — The raised surface that groups related content into a panel. Props: `variant` default|flush|tight; `motion` none|lift|tilt-left|tilt-right\n- `Dot` (`@vibes.diy/pouf`) — A status dot. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Empty` (`@vibes.diy/pouf`) — The empty state for a list or panel with nothing in it yet. Props: `icon` IconLike; `title` (required) string\n- `ErrorBoundary` (`@vibes.diy/pouf`) — Catches render crashes so one broken part can\'t blank the whole page. Props: `name` (required) string; `resetKey` string\n- `ErrorNote` (`@vibes.diy/pouf`) — An inline message that says a request or action failed.\n- `Eyebrow` (`@vibes.diy/pouf`) — A small uppercase label above a section heading.\n- `Field` (`@vibes.diy/pouf`) — Wraps a form control with its label, hint and error text. Props: `label` (required) string; `children` (required) (id: string, describedBy: string | undefined) => ReactNode; `hint` string; `error` string\n- `Figure` (`@vibes.diy/pouf`) — An image, framed in clay. Props: `src` (required) string; `alt` (required) string; `width` (required) number; `height` (required) number\n- `Footer` (`@vibes.diy/pouf`) — A site footer on one big cushion: brand block plus columns of links, with an optional bottom note. Props: `brand` (required) ReactNode; `tagline` string\n- `Freshness` (`@vibes.diy/pouf`) — Speaks only when the data on screen can no longer be trusted. Props: `at` (required) number; `isError`\n- `Grid` (`@vibes.diy/pouf`) — Lays children out in columns, or main plus side, stacking on narrow screens. Props: `cols` 2|3|4|sidebar; `gap` 1|2|3|4|5|6\n- `Heading` (`@vibes.diy/pouf`) — A page or section heading at level 1, 2 or 3. Props: `level` 1|2|3\n- `Highlight` (`@vibes.diy/pouf`) — Puts a tonal swatch behind a word or short phrase to make it pop. Props: `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Icon` (`@vibes.diy/pouf`) — A named glyph from the built-in icon set. Props: `name` (required) up|down|warn|info|idle|overview|chart|log|channels|activity|lab|history|performance|settings|database|menu|flat|ok|fail|off|live|draft|target|alerts|add|remove|search|close|expand|prev|next|photo|heart|heart-filled|comment|play|pause|rewind|forward|sun|cloud|rain|star|calendar|clock|user|users|mail|lock|send|home|trophy|flame|sparkle|music|cart|tag|dots|sword|shield|wand|smile|card|pin|wind|drop; `size` sm|md|lg; `label` string\n- `IconButton` (`@vibes.diy/pouf`) — A square, labelled icon action. Props: `icon` (required) ReactNode; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg; `variant` solid|quiet; `disabled`; `loading`; `type` button|submit; `tint` string\n- `Input` (`@vibes.diy/pouf`) — A single-line text field; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `id` string; `name` string; `describedBy` string; `placeholder` string; `type` string; `autoComplete` string; `inputMode` search|none|email|tel|text|url|numeric|decimal; `autoCapitalize` string; `spellCheck`; `required`; `mono`; `invalid`; `disabled`; `label` string; `bare`\n- `Metric` (`@vibes.diy/pouf`) — A labelled readout: small muted label, value beneath. Props: `label` (required) string; `value` (required) ReactNode; `num`; `mono`\n- `ModeBanner` (`@vibes.diy/pouf`) — The draft/live (or any two-mode) indicator. Props: `live` (required)\n- `NavLink` (`@vibes.diy/pouf`) — A navigation link that marks itself active on the current path. Props: `href` (required) string; `currentPath` (required) string; `icon` (required) IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Navbar` (`@vibes.diy/pouf`) — A top navigation bar on a floating cushion. Props: `brand` (required) ReactNode; `label` string\n- `NumberInput` (`@vibes.diy/pouf`) — A numeric field with step buttons; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `step` number; `min` number; `max` number; `id` string; `describedBy` string; `placeholder` string; `invalid`; `disabled`; `label` string\n- `Pagination` (`@vibes.diy/pouf`) — Previous and next page controls with a page indicator for long lists. Props: `page` (required) number; `total` (required) number; `onChange` (required) (page: number) => void\n- `Row` (`@vibes.diy/pouf`) — Lays children out horizontally with a gap, alignment and wrapping. Props: `gap` 1|2|3|4|5|6; `align` center|top; `justify` start|center|between|end; `wrap`\n- `RowCard` (`@vibes.diy/pouf`) — One raised row per item in a list; clickable when given onClick. Props: `selected`\n- `Segmented` (`@vibes.diy/pouf`) — A mutually-exclusive choice: grid vs list, draft vs live, and similar. Props: `value` (required) T; `onChange` (required) (value: T) => void; `options` (required) SegmentedOption<T>[]; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Shell` (`@vibes.diy/pouf`) — The page frame: a sidebar column beside the main content.\n- `Sidebar` (`@vibes.diy/pouf`) — The side navigation column inside Shell. Props: `mobile` show|hide\n- `Skeleton` (`@vibes.diy/pouf`) — A loading placeholder shaped like the text, row or card it stands in for. Props: `variant` text|row|card; `count` number\n- `Spacer` (`@vibes.diy/pouf`) — Pushes the items after it to the far end of a Row.\n- `Stack` (`@vibes.diy/pouf`) — Stacks children vertically with an even gap. Props: `gap` 1|2|3|4|5|6\n- `Stat` (`@vibes.diy/pouf`) — A headline figure on its own cushion. Props: `label` (required) string; `value` (required) string; `icon` (required) IconLike; `tone` (required) up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Status` (`@vibes.diy/pouf`) — A labelled status dot that turns unknown when its reading goes stale. Props: `label` (required) string; `tone` (required) up|down|warn|info|idle|purple (lead)|orange (decorative); `at` number\n- `Table` (`@vibes.diy/pouf`) — A data table with typed columns; rows can be clickable. Props: `columns` (required) TableColumn<T>[]; `rows` (required) T[]; `getKey` (required) (row: T) => string\n- `Text` (`@vibes.diy/pouf`) — Body text: size, muted, numeric and monospace variants. Props: `size` sm|md; `muted`; `num`; `mono`; `truncate`\n- `Textarea` (`@vibes.diy/pouf`) — A multi-line text field; wrap it in Field for its label. Props: `value` (required) string; `onChange` (required) (value: string) => void; `id` string; `name` string; `describedBy` string; `placeholder` string; `autoComplete` string; `spellCheck`; `required`; `rows` number; `mono`; `invalid`; `disabled`; `label` string\n- `Accordion` (`@vibes.diy/pouf/interactive`) — A stack of expandable sections with one open at a time. Props: `items` (required) AccordionItem[]; `defaultValue` string\n- `AspectRatio` (`@vibes.diy/pouf/interactive`) — Holds media at a fixed width-to-height ratio. Props: `ratio` number\n- `Avatar` (`@vibes.diy/pouf/interactive`) — A person\'s picture, with initials or an icon when there is none. Props: `src` string; `alt` string; `fallback` string; `icon` IconLike; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `size` sm|md|lg\n- `BottomNav` (`@vibes.diy/pouf/interactive`) — Mobile bottom navigation. Props: `primary` (required) NavItem[]; `groups` (required) NavGroup[]; `currentPath` (required) string\n- `Checkbox` (`@vibes.diy/pouf/interactive`) — A labelled on/off checkbox. Props: `checked` (required) boolean | "indeterminate"; `onChange` (required) (checked: boolean | "indeterminate") => void; `id` string; `disabled`; `label` string; `hideLabel`\n- `Collapsible` (`@vibes.diy/pouf/interactive`) — A single section that shows or hides its content from a trigger. Props: `trigger` (required) ReactNode; `open`\n- `Combobox` (`@vibes.diy/pouf/interactive`) — A text field with suggestions to pick or type; its default lives in `value`, not placeholder. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) string[]; `loading`; `error` string; `id` string; `describedBy` string; `placeholder` string; `mono`; `label` string\n- `Confirm` (`@vibes.diy/pouf/interactive`) — Wraps the button that opens it; asks to confirm an irreversible action such as a delete. Props: `title` (required) string; `body` (required) string; `confirmLabel` (required) string; `cancelLabel` (required) string; `onConfirm` (required) () => void; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `loading`\n- `ContextMenu` (`@vibes.diy/pouf/interactive`) — A menu of actions that opens on right-click or long-press. Props: `items` (required) (MenuEntry | "separator")[]\n- `Dialog` (`@vibes.diy/pouf/interactive`) — A modal window for a focused task or form. Props: `trigger` (required) ReactNode; `title` (required) string; `description` string; `open`; `size` md|lg\n- `DropdownMenu` (`@vibes.diy/pouf/interactive`) — A menu of actions that opens from a trigger button. Props: `items` (required) ("separator" | MenuItem)[]; `label` string\n- `HoverCard` (`@vibes.diy/pouf/interactive`) — A preview card that appears on hover over its trigger. Props: `content` (required) ReactNode; `side` top|right|bottom|left; `align` start|center|end\n- `Menubar` (`@vibes.diy/pouf/interactive`) — An application menu bar (File / Edit / View…). Props: `menus` (required) MenubarMenu[]\n- `Pad` (`@vibes.diy/pouf/interactive`) — A square instrument pad that toggles on and off, with a playhead light and beat-group shading. Props: `on` (required); `onPress` (required) () => void; `label` (required) string; `playhead`; `downbeat`; `group` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `disabled`\n- `Progress` (`@vibes.diy/pouf/interactive`) — A progress bar for a value out of a maximum. Props: `value` (required) number; `max` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative); `label` string\n- `RadioGroup` (`@vibes.diy/pouf/interactive`) — A labelled set of options where exactly one is chosen. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) RadioOption[]; `label` (required) string; `disabled`\n- `ScrollArea` (`@vibes.diy/pouf/interactive`) — A fixed-height region that scrolls its own content. Props: `maxHeight` string\n- `Select` (`@vibes.diy/pouf/interactive`) — A dropdown for picking one option; its default lives in `value`, not placeholder. Props: `value` (required) string; `onChange` (required) (value: string) => void; `options` (required) SelectOption[]; `id` string; `describedBy` string; `placeholder` string; `disabled`; `label` string\n- `Separator` (`@vibes.diy/pouf/interactive`) — A thin divider line between groups of content.\n- `Sheet` (`@vibes.diy/pouf/interactive`) — A panel that slides in from the side for secondary tasks. Props: `title` (required) string; `description` string; `open`\n- `Slider` (`@vibes.diy/pouf/interactive`) — Picks a number in a range by dragging. Props: `value` (required) number[]; `onChange` (required) (value: number[]) => void; `min` number; `max` number; `step` number; `disabled`; `label` string\n- `StepGrid` (`@vibes.diy/pouf/interactive`) — One sequencer row of Pads with a moving playhead and beat groups, wrapping to two lines on a phone. Props: `steps` (required) readonly (number | boolean)[]; `onToggle` (required) (index: number) => void; `label` (required) string; `playhead` number; `groupSize` number; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Switch` (`@vibes.diy/pouf/interactive`) — A labelled on/off toggle for a setting that applies at once. Props: `checked` (required); `onChange` (required) (checked: boolean) => void; `id` string; `describedBy` string; `disabled`; `label` string\n- `Tabs` (`@vibes.diy/pouf/interactive`) — Switches between panels of content under one heading. Props: `tabs` (required) Tab[]; `value` (required) string; `onChange` (required) (value: string) => void; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Toast` (`@vibes.diy/pouf/interactive`) — One alert message with a severity and a dismiss button. Props: `id` (required) number; `severity` (required) critical|info; `onDismiss` (required) (id: number) => void\n- `ToastViewport` (`@vibes.diy/pouf/interactive`) — Renders a list of alert messages your app keeps in state. Props: `toasts` (required) ToastItem[]; `onDismiss` (required) (id: number) => void\n- `Toaster` (`@vibes.diy/pouf/interactive`) — Mount once in the app so toast() calls appear on screen.\n- `ToggleGroup` (`@vibes.diy/pouf/interactive`) — A row of toggle buttons where several can be on at once. Props: `value` (required) string[]; `onChange` (required) (value: string[]) => void; `options` (required) ToggleOption[]; `label` (required) string; `tone` up|down|warn|info|idle|purple (lead)|orange (decorative)\n- `Tooltip` (`@vibes.diy/pouf/interactive`) — Wraps an element with a short hint on hover or focus; needs a TooltipProvider above it. Props: `tip` (required) string\n- `TooltipProvider` (`@vibes.diy/pouf/interactive`) — Wrap the app once; every Tooltip must sit inside it.\n- `AreaChart` (`@vibes.diy/pouf/charts`) — An area chart of one or more series over a category axis. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number; `stacked`\n- `BarChart` (`@vibes.diy/pouf/charts`) — A bar chart of one or more series, optionally stacked. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number; `stacked`; `toneKey` string\n- `LineChart` (`@vibes.diy/pouf/charts`) — A line chart of one or more series over a category axis. Props: `data` (required) Record<string, unknown>[]; `dataKey` (required) string; `series` (required) ChartSeries[]; `height` number\n- `PieChart` (`@vibes.diy/pouf/charts`) — A pie or donut chart of parts of a whole. Props: `data` (required) PieSlice[]; `height` number; `donut`; `labelled`';
|
|
857
887
|
//# sourceMappingURL=catalog.generated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.generated.js","sourceRoot":"","sources":["../../../../jsr/themes/looks/pouf/catalog.generated.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalog.generated.js","sourceRoot":"","sources":["../../../../jsr/themes/looks/pouf/catalog.generated.ts"],"names":[],"mappings":"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"}
|