@vibes.diy/prompts 14.3.199 → 14.3.201
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.js +1 -1
- package/llms/board-games.js.map +1 -1
- package/llms/board-games.md +43 -0
- package/package.json +5 -5
package/llms/board-games.js
CHANGED
|
@@ -5,7 +5,7 @@ export const boardGamesConfig = {
|
|
|
5
5
|
"daily word guesses with an on-screen keyboard and a share grid, crosswords, word searches, grouping puzzles, letter hives, " +
|
|
6
6
|
"sudoku, minesweeper, 2048, checkers, chess, go, hex, mancala, solitaire and other card games with hidden hands, trivia rooms " +
|
|
7
7
|
"and dice scoresheets with house rules. Covers SVG boards in the app's theme tokens (square, hex, ring, graph and stacked " +
|
|
8
|
-
"shapes), seeded deals and daily seeds, win-line detection, turns, undo, AI opponents, and who sees what — public tables, " +
|
|
8
|
+
"shapes) dressed in a look from the request's world (a dauber on paper, skate wheels, poker chips, wooden tiles), seeded deals and daily seeds, win-line detection, turns, undo, AI opponents, and who sees what — public tables, " +
|
|
9
9
|
"private hands, members-only clubs.",
|
|
10
10
|
cues: [
|
|
11
11
|
"bingo",
|
package/llms/board-games.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-games.js","sourceRoot":"","sources":["../../jsr/llms/board-games.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,4BAA4B;IACnC,WAAW,EACT,uHAAuH;QACvH,6HAA6H;QAC7H,+HAA+H;QAC/H,2HAA2H;QAC3H,
|
|
1
|
+
{"version":3,"file":"board-games.js","sourceRoot":"","sources":["../../jsr/llms/board-games.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,4BAA4B;IACnC,WAAW,EACT,uHAAuH;QACvH,6HAA6H;QAC7H,+HAA+H;QAC/H,2HAA2H;QAC3H,mOAAmO;QACnO,oCAAoC;IACtC,IAAI,EAAE;QACJ,OAAO;QACP,WAAW;QACX,QAAQ;QACR,WAAW;QACX,aAAa;QACb,QAAQ;QACR,OAAO;QACP,UAAU;QACV,WAAW;QACX,WAAW;QACX,YAAY;QACZ,eAAe;QACf,cAAc;QACd,aAAa;QACb,SAAS;QACT,aAAa;KACd;CACF,CAAC"}
|
package/llms/board-games.md
CHANGED
|
@@ -27,6 +27,49 @@ The board is one `<svg>` with a `viewBox`, and every fill and stroke on it is a
|
|
|
27
27
|
- **Tap targets.** A cell is at least 44 CSS px on a 375 px phone: a 5×5 board at full width gives 70 px cells, a 9×9 sudoku 40 px — so a 9×9 board drops its outer margin and grows to the screen edge. Put `touch-manipulation select-none` on the `<svg>` so a quick double tap marks twice instead of zooming.
|
|
28
28
|
- **Each cell is a focusable button.** `<g role="button" tabIndex={0} aria-label={text} aria-pressed={on} onClick onKeyDown>` — Enter and Space toggle it, so the board plays from a keyboard and a screen reader names every square.
|
|
29
29
|
- **Text that fits.** Words wrap into at most four `<tspan>` lines and the font steps down as lines grow (`wrapLabel` below). Cap what a host can type at about 40 characters per square, and show the count while they type, so every square reads at arm's length.
|
|
30
|
+
- **A cell is a board shape, never an icon button.** A square that holds words is an SVG `<g role="button">` (or a plain `<button>` tile that fills its grid column); an `IconButton` is a fixed small square sized for one glyph, so a phrase inside it shrinks and clips.
|
|
31
|
+
|
|
32
|
+
## Dress the board in the game's world
|
|
33
|
+
|
|
34
|
+
A board in plain rounded rectangles plays fine and looks like a spreadsheet. Before drawing, pick **one physical thing from the request's world** that a player would recognise on a real table, and let it decide four parts of the board: the frame, the column header, what a mark looks like, and how a win shows. Everything stays in the theme's token classes, so the dressing restyles with the palette.
|
|
35
|
+
|
|
36
|
+
**Choose the material from the request, in this order:**
|
|
37
|
+
|
|
38
|
+
1. **The request's own subject.** A rollerblade club's bingo marks squares with skate wheels; a baby-shower bingo uses pacifiers or footprints; a road trip uses licence plates; a bird walk uses binocular rings; a wine night uses glass rings.
|
|
39
|
+
2. **The game's classic table.** Bingo is a paper card with a dauber; checkers are poker chips on felt; chess is an inlaid wood board; word tiles are wooden letter tiles; sudoku is pencil on graph paper; mancala is seeds in carved pits; memory is a deck of card backs; a trivia board is a TV game-show wall.
|
|
40
|
+
3. **The look the app already has.** When neither gives a strong picture, the board takes the shapes of the room's own components (its radius, its ledge shadow, its type).
|
|
41
|
+
|
|
42
|
+
**Then dress the four parts:**
|
|
43
|
+
|
|
44
|
+
- **Frame.** The material's edge: a ruled paper card with an ink border (`stroke-foreground`), a felt table (`fill-muted`), an inlaid border, a game-show wall with gaps between panels.
|
|
45
|
+
- **Header.** A bingo card's five column letters can spell a word from the theme instead of B-I-N-G-O: SKATE for a skate club, BIRDS for a bird walk, ROADS for a road trip. A header with exactly as many letters as columns reads as part of the card.
|
|
46
|
+
- **Mark.** The thing a real player puts down: a dauber blot, a wheel, a sticker, a chip, a pencil cross. The words underneath stay readable, so a mark is translucent (`opacity-60`) or the text flips to `fill-primary-foreground` on a solid mark. A mark animates once when it lands (a scale or a quarter turn, 150–500 ms) and stays put under `motion-reduce:transition-none`.
|
|
47
|
+
- **Win.** The table's own celebration: a stroke drawn through the line, the winning marks changing colour together, a game-show panel flip. The win line is `stroke-accent` drawn over the marks.
|
|
48
|
+
|
|
49
|
+
**Two dressed bingo cards** (the same `BingoBoard` as below, with a different cell and frame):
|
|
50
|
+
|
|
51
|
+
- **Dauber on paper.** Cells are square `<rect>`s with no gaps and `stroke-foreground` rules; a dark header band carries the theme word. A mark is a slightly lumpy blot — a `<path>` circle with uneven radii, rotated a little per cell from the seed — in `fill-primary opacity-60`, drawn above the cell and below the text.
|
|
52
|
+
- **Skate wheels** (or any round token: chips, caps, coins). Each cell is a `<circle>` in `fill-muted`; a marked cell fills `fill-foreground` with `fill-background` text and gains a dashed tread ring (`stroke-primary`, `strokeDasharray="6 5"`) that turns half a turn as it lands. The free centre is the hub, in `fill-accent`.
|
|
53
|
+
|
|
54
|
+
```jsx
|
|
55
|
+
// A dauber blot and a wheel, each one cell of a 100-unit grid centred on (cx, cy).
|
|
56
|
+
function Blot({ cx, cy, turn }) {
|
|
57
|
+
return <path d={`M ${cx - 36} ${cy} q 2 -38 38 -37 q 37 3 35 39 q -3 34 -38 35 q -37 -2 -35 -37 z`} transform={`rotate(${turn} ${cx} ${cy})`} className="fill-primary opacity-60 transition-transform duration-200 motion-reduce:transition-none" />;
|
|
58
|
+
}
|
|
59
|
+
function Wheel({ cx, cy, on }) {
|
|
60
|
+
// Drawn round (0, 0) inside a translated group, so a CSS rotate turns the ring about its own centre.
|
|
61
|
+
return (
|
|
62
|
+
<g transform={`translate(${cx} ${cy})`}>
|
|
63
|
+
<circle r="44" className={on ? "fill-foreground" : "fill-muted"} />
|
|
64
|
+
{/* Always mounted, so marking changes the rotation and the transition has a "from". */}
|
|
65
|
+
<circle r="44" fill="none" strokeWidth="5" strokeDasharray="6 5" className={`stroke-primary transition duration-500 motion-reduce:transition-none ${on ? "rotate-180 opacity-100" : "rotate-0 opacity-0"}`} />
|
|
66
|
+
</g>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
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
|
+
|
|
30
73
|
|
|
31
74
|
## Seeds — the same deal on every device
|
|
32
75
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibes.diy/prompts",
|
|
3
|
-
"version": "14.3.
|
|
3
|
+
"version": "14.3.201",
|
|
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.201",
|
|
43
|
+
"@vibes.diy/call-ai-v2": "14.3.201",
|
|
44
|
+
"@vibes.diy/identity": "14.3.201",
|
|
45
|
+
"@vibes.diy/use-vibes-types": "14.3.201",
|
|
46
46
|
"arktype": "~2.2.8",
|
|
47
47
|
"json-schema-faker": "~0.6.3"
|
|
48
48
|
},
|